Java active extensions: Scalable middleware for performance-isolated remote execution

We present the design and implementation of a highly scalable and easily deployed middleware system that provides performance-isolated execution environments for client and server application functionality. The Java Active Extensions system allows clients or servers to 'extend' their operation by hosting portions of their codes, called extensions, at network vantage points for improved performance and reliability, and by providing them with quality of service via rate-based resource reservations. This system is especially useful for wireless resource-limited clients, which can remotely locate filters, caches, monitors, buffers, etc., to act on their behalf and improve interactions with servers. Servers also benefit by moving some of their services close to their clients (e.g. those near a common base station) to reduce latency and improve bandwidth. In both cases, the client's or server's extended functionality executes with a specified fraction of the (remote) system's processor. The system design is based on a scalable distributed architecture that allows for incremental hardware growth, and is highly deployable as it runs entirely at user level, including its rate-based scheduling system.

[1]  Grzegorz Czajkowski,et al.  A resource management interface for the Java™ platform , 2005, Softw. Pract. Exp..

[2]  David R. Cheriton,et al.  Leases: an efficient fault-tolerant mechanism for distributed file cache consistency , 1989, SOSP '89.

[3]  Lei Gao,et al.  Using Mobile Extensions to Support Disconnected Services , 2000 .

[4]  Ben Y. Zhao,et al.  The Ninja architecture for robust Internet-scale systems and services , 2001, Comput. Networks.

[5]  Joseph Pasquale,et al.  A user-level framework for scheduling within service execution environments , 2004, IEEE International Conference onServices Computing, 2004. (SCC 2004). Proceedings. 2004.

[6]  Guy L. Steele,et al.  Java Language Specification, Second Edition: The Java Series , 2000 .

[7]  Bruce Zenel,et al.  General purpose proxies: solved and unsolved problems , 1997, Proceedings. The Sixth Workshop on Hot Topics in Operating Systems (Cat. No.97TB100133).

[8]  Klara Nahrstedt,et al.  A distributed resource management architecture that supports advance reservations and co-allocation , 1999, 1999 Seventh International Workshop on Quality of Service. IWQoS'99. (Cat. No.98EX354).

[9]  B. R. Badrinath,et al.  Web&: an architecture for non-interactive Web , 2001, Proceedings. The Second IEEE Workshop on Internet Applications. WIAPP 2001.

[10]  Marianne Shaw,et al.  Scale and performance in the Denali isolation kernel , 2002, OSDI '02.

[11]  Ian T. Foster,et al.  Grid Services for Distributed System Integration , 2002, Computer.

[12]  Grzegorz Czajkowski,et al.  Application isolation in the Java Virtual Machine , 2000, OOPSLA '00.

[13]  David K. Gifford,et al.  Remote evaluation , 1990, TOPL.

[14]  Grzegorz Czajkowski,et al.  A resource management interface for the Java™ platform , 2005 .

[15]  Grzegorz Czajkowski Application isolation in the JavaTM Virtual Machine , 2000, OOPSLA.

[16]  Lei Gao,et al.  Application specific data replication for edge services , 2003, WWW '03.

[17]  Jeffrey C. Mogul,et al.  Architecture and performance of server-directed transcoding , 2003, TOIT.

[18]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .

[19]  Aruna Seneviratne,et al.  MARCH: A distributed content adaptation architecture , 2003, Int. J. Commun. Syst..

[20]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[21]  Guy L. Steele,et al.  Java(TM) Language Specification , 2005 .

[22]  Mahadev Satyanarayanan,et al.  Tactics-based remote execution for mobile computing , 2003, MobiSys '03.

[23]  Weisong Shi,et al.  CANS: Composable, Adaptive Network Services Infrastructure , 2001, USITS.