DACIA: a mobile component framework for building adaptive distributed applications

Future distributed applications will need to support computing devices with a wide range of capabilities, varying network connectivity, increasing mobility of users, and a wide variation in load placed by clients on services. This paper presents DACIA, a framework for building adaptive distributed applications. In DACIA, distributed applications are viewed as consisting of connected components that typically implement data streaming, processing, and filtering functions. DACIA provides mechanisms for run-time reconfiguration of applications to allow them to adapt to the changing operating environments. Components can be moved to different hosts during execution, while maintaining communication connectivity with other components. New components can also be introduced along data paths, for example, to provide compression on low-bandwidth connections. Keeping communication overheads low is a significant challenge in designing component-based services. DACIA is designed so that communication costs among co-located components are similar to those of procedure calls. Performance results, as well as examples of adaptive services that can be built using DACIA are presented.

[1]  Larry L. Peterson,et al.  Making paths explicit in the Scout operating system , 1996, OSDI '96.

[2]  Ian T. Foster,et al.  Globus: a Metacomputing Infrastructure Toolkit , 1997, Int. J. High Perform. Comput. Appl..

[3]  Luca Cardelli,et al.  A language with distributed scope , 1995, POPL '95.

[4]  Songwu Lu,et al.  Adaptive Service in Mobile Computing Environments , 1997 .

[5]  Peter L. Reiher,et al.  Conductor: a framework for distributed adaptation , 1999, Proceedings of the Seventh Workshop on Hot Topics in Operating Systems.

[6]  Bruce Zenel,et al.  A general purpose proxy filtering mechanism applied to the mobile environment , 1997, MobiCom '97.

[7]  Mark Garland Hayden,et al.  The Ensemble System , 1998 .

[8]  Larry L. Peterson,et al.  The x-Kernel: An Architecture for Implementing Network Protocols , 1991, IEEE Trans. Software Eng..

[9]  Randy H. Katz,et al.  The Bay Area Research Wireless Access Network (BARWAN) , 1996, COMPCON '96. Technologies for the Information Superhighway Digest of Papers.

[10]  Rachid Guerraoui,et al.  Using the Strategy Design Pattern to Compose Reliable Distributed Protocols , 1997, COOTS.

[11]  Mahadev Satyanarayanan,et al.  Agile application-aware adaptation for mobility , 1997, SOSP.

[12]  Joel H. Saltz,et al.  Sumatra: A Language for Resource-Aware Mobile Programs , 1996, Mobile Object Systems.

[13]  Erich M. Nahum,et al.  Locality-aware request distribution in cluster-based network servers , 1998, ASPLOS VIII.

[14]  Eric A. Brewer,et al.  Adapting to network and client variability via on-demand dynamic distillation , 1996, ASPLOS VII.

[15]  Israel Ben-Shaul,et al.  System support for dynamic layout of distributed applications , 1999, Proceedings. 19th IEEE International Conference on Distributed Computing Systems (Cat. No.99CB37003).

[16]  M. Frans Kaashoek,et al.  Rover: a toolkit for mobile information access , 1995, SOSP.

[17]  Giovanni Vigna,et al.  Understanding Code Mobility , 1998, IEEE Trans. Software Eng..

[18]  Oren Etzioni,et al.  Multi-Service Search and Comparison Using the MetaCrawler , 1995 .

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

[20]  Marvin Theimer,et al.  The Bayou Architecture: Support for Data Sharing Among Mobile Users , 1994, 1994 First Workshop on Mobile Computing Systems and Applications.

[21]  H. Zimmermann,et al.  OSI Reference Model - The ISO Model of Architecture for Open Systems Interconnection , 1980, IEEE Transactions on Communications.

[22]  Randy H. Katz,et al.  Composable ad-hoc mobile services for universal interaction , 1997, MobiCom '97.

[23]  Atul Prakash,et al.  Adaptive group communication services for groupware systems , 1998, Proceedings Second International Enterprise Distributed Object Computing (Cat. No.98EX244).