Mobile objects in distributed Oz

Some of the most difficult questions to answer when designing a distributed application are related to mobility: what information to transfer between sites and when and how to transfer it. Network-transparent distribution, the property that a program's behavior is independent of how it is partitioned among sites, does not directly address these questions. Therefore we propose to extend all language entities with a network behavior that enables efficient distributed programming by giving the programmer a simple and predictable control over network communication patterns. In particular, we show how to give objects an arbitrary mobility behavior that is independent of the objects definition. In this way, the syntax and semantics of objects are the same regardless of whether they are used as stationary servers, mobile agents, or simply as caches. These ideas have been implemented in Distributed Oz, a concurrent object-oriented language that is state aware and has dataflow synchronization. We prove that the implementation of objects in Distributed Oz is network transparent. To satisfy the predictability condition, the implementation avoids forwarding chains through intermediate sites. The implementation is an extension to the publicly available DFKI Oz 2.0 system.

[1]  Nicholas Carriero,et al.  Coordination languages and their significance , 1992, CACM.

[2]  Andrew S. Tanenbaum,et al.  Distributed operating systems , 2009, CSUR.

[3]  K. Fischer,et al.  Distributed, knowledge-based, reactive scheduling of transportation tasks , 1994, Proceedings of the Tenth Conference on Artificial Intelligence for Applications.

[4]  Joachim Paul Walser Feasible Cellular Frequency Assignment Using Constraint Programming Abstractions , 1996 .

[5]  Henri E. Bal,et al.  Orca: A Language For Parallel Programming of Distributed Systems , 1992, IEEE Trans. Software Eng..

[6]  Andrew Birrell,et al.  Implementing Remote procedure calls , 1983, SOSP '83.

[7]  Doug DeGroot,et al.  Parallel Machines: Parallel Machine Languages: The Emergence of Hybrid Dataflow Computer Architectures , 1990 .

[8]  Martin Henz,et al.  Using Oz for College Timetabling , 1995, PATAT.

[9]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

[10]  Gert Smolka The Oz Programming Model , 1996 .

[11]  Jörg P. Müller,et al.  A Model for Cooperative Transportation Scheduling , 1995, ICMAS.

[12]  Seif Haridi,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[13]  Claes Wikstrom,et al.  Distributed programming in Erlang , 1994 .

[14]  Nicholas Carriero,et al.  Coordination languages and their significance , 1992, CACM.

[15]  Henri E. Bal,et al.  Programming languages for distributed computing systems , 1989, CSUR.

[16]  Butler W. Lampson,et al.  Reliable messages and connection establishment , 1993 .

[17]  Mark Roy,et al.  Understanding CORBA - common object request broker architecture , 1995 .

[18]  Robert A. Iannucci,et al.  Parallel Machines: Parallel Machine Languages , 1990 .

[19]  Martin Henz,et al.  Objects in Oz , 1997 .

[20]  Peter Van Roy,et al.  An overview of the design of Distributed Oz , 1997, PASCO '97.

[21]  Marc Shapiro,et al.  A Survey of Distributed Garbage Collection Techniques , 1995, IWMM.

[22]  Arvind,et al.  M-Structures: Extending a Parallel, Non-strict, Functional Language with State , 1991, FPCA.

[23]  Gert Smolka,et al.  Object-Oriented Concurrent Constraint Programming in Oz , 1993, KI.

[24]  Christer Carlsson,et al.  DIVE - A platform for multi-user virtual environments , 1993, Comput. Graph..

[25]  Ehud Shapiro,et al.  The family of concurrent logic programming languages , 1989, CSUR.

[26]  Douglas Comer,et al.  Internetworking with TCP/IP , 1988 .

[27]  Gul Agha,et al.  Research directions in concurrent object-oriented programming , 1993 .

[28]  Martin Henz,et al.  COMPOzE-intention-based music composition through constraint programming , 1996, Proceedings Eighth IEEE International Conference on Tools with Artificial Intelligence.

[29]  Willy Zwaenepoel,et al.  Implementation and performance of Munin , 1991, SOSP '91.

[30]  Paul Coleman,et al.  How I Learned To Stop Worrying , 1987 .

[31]  Seif Haridi,et al.  Virtual reality programming in Oz , 1996 .

[32]  Eric Jul Object mobility in a distributed object-oriented system , 1990 .

[33]  Gerard Tel,et al.  Introduction to Distributed Algorithms: Contents , 2000 .

[34]  Seif Haridi,et al.  Ports for objects in concurrent logic programs , 1993 .

[35]  Stephen E. Deering,et al.  Host extensions for IP multicasting , 1986, RFC.

[36]  Douglas E. Comer,et al.  Internetworking with TCP/IP. Vol.1: Principles, protocols, and architecture; Vol.2: Design, implementation, and internals , 2000 .

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

[38]  Andrew P. Black,et al.  Fine-grained mobility in the Emerald system , 1987, TOCS.

[39]  M.N. Sastry,et al.  Structure and interpretation of computer programs , 1986, Proceedings of the IEEE.

[40]  Joe Armstrong,et al.  Concurrent programming in ERLANG , 1993 .

[41]  George Coulouris,et al.  Distributed systems - concepts and design , 1988 .