Academia.eduAcademia.edu

Outline

Mobile objects in distributed Oz

1997, ACM Transactions on Programming Languages and Systems

Abstract

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. Networktransparent 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 object's 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.

References (55)

  1. ∧ P.state=FREE Send(P.manager,get(P.
  2. P
  3. Request content and reply to thread (content present). Receive(P,request(T,N y ))
  4. ∧ P.content =NULL Send(T,proceed(P.content))
  5. P.content ← N y
  6. Accept content and reply to thread. Receive(P,put(N z ))
  7. P.content ← N z Send(P.thread,proceed(P.content))
  8. P.content ← P.newcontent
  9. Accept forward. Receive(P,forward(P'))
  10. P.forward ← P'
  11. Forward content. P.forward =NULL ∧ P.content =NULL Send(P.forward,put(P.content))
  12. P.forward ← NULL P.content ← NULL P.state ← FREE
  13. Serialize content requests (at manager). Receive(M,get(P)) Send(M.tail,forward(P))
  14. M.tail ← P REFERENCES Abelson, H., Sussman, G. J., and Sussman, J. 1985. Structure and Interpretation of Computer Programs. MIT Press, Cambridge, Mass.
  15. Armstrong, J., Williams, M., Wikström, C., and Virding, R. 1996. Concurrent Programming in Erlang. Prentice-Hall, Englewood Cliffs, N.J.
  16. Axling, T., Haridi, S., and Fahlen, L. 1995. Concurrent constraint programming virtual reality applications. In the 2nd International Conference on Military Applications of Synthetic Envi- ronments and Virtual Reality (MASEVR 95 ). Defence Material Administration, Stockholm, Sweden.
  17. Bal, H. E., Kaashoek, F. E., and Tanenbaum, A. S. 1992. Orca: A language for parallel programming of distributed systems. IEEE Trans. Softw. Eng. 18, 3 (Mar.), 190-205.
  18. Bal, H. E., Steiner, J. G., and Tanenbaum, A. S. 1989. Programming languages for distributed computing systems. ACM Comput. Surv. 21, 3 (Sept.), 261-322.
  19. Barth, P. S., Nikhil, R. S., and Arvind. 1991. M-structures: Extending a parallel, nonstrict, functional language with state. In Functional Programming and Computer Architecture. Springer-Verlag, Berlin.
  20. Birrell, A. D. and Nelson, B. J. 1984. Implementing remote procedure calls. ACM Trans. Comput. Syst. 2, 1 (Feb.), 39-59.
  21. Callaghan, B. 1996. WebNFS-The file system for the World-Wide Web. White paper, Sun Microsystems, Mountain View, Calif. May.
  22. Cardelli, L. 1995. A language with distributed scope. ACM Trans. Comput. Syst. 8, 1 (Jan.), 27-59. Also appeared in POPL 95.
  23. Carlsson, C. and Hagsand, O. 1996. DIVE-A platform for multi-user virtual environments. Comput. and Graph. 17, 6.
  24. Carriero, N. and Gelernter, D. 1992. Coordination languages and their significance. Commun. ACM 35, 2 (Feb.), 96-107.
  25. Carter, J. B., Bennett, J. K., and Zwaenepoel, W. 1991. Implementation and performance of Munin. In the 13th ACM Symposium on Operating System Principles. ACM, New York, 152-164.
  26. Comer, D. E. 1995. Internetworking with TCP/IP. Vol. 1, Principles, Protocols, and Architec- ture. Prentice-Hall, Englewood Cliffs, N.J.
  27. Coulouris, G., Dollimore, J., and Kindberg, T. 1994. Distributed Systems Concepts and Design, 2nd ed. Addison-Wesley, Reading, Mass.
  28. Crowcroft, J. 1996. Open Distributed Systems. University College London Press, London, U.K. Deering, S. 1989. Host extensions for IP multicasting. Tech. Rep. RFC1112. Aug. Ericsson. 1996. Open Telecom Platform-User's Guide, Reference Manual, Installation Guide, OS Specific Parts. Telefonaktiebolaget LM Ericsson, Stockholm, Sweden.
  29. Fischer, K., Kuhn, N., and Müller, J. P. 1994. Distributed, knowledge-based, reactive schedul- ing in the transportation domain. In the 10th IEEE Conference on Artificial Intelligence and Applications. IEEE, New York.
  30. Fischer, K., Muller, J. P., and Pischel, M. 1995. A model for cooperative transportation scheduling. In the 1st International Conference on Multiagent Systems (ICMAS 95 ). 109- 116.
  31. Foody, M. 1997. Let's talk (Special report building networked applications). BYTE 22, 4 (Apr.), 99-102.
  32. Halstead, R. H. 1985. MultiLisp: A language for concurrent symbolic computation. ACM Trans. Program. Lang. Syst. 7, 4 (Oct.), 501-538.
  33. Haridi, S. 1996. An Oz 2.0 tutorial. Tech. rep., Swedish Inst. of Computer Science, Stockholm, Sweden. Available at http://www.sics.se/ seif/oz.html.
  34. Haridi, S., Van Roy, P., and Smolka, G. 1997. An overview of the design of Distributed Oz. In the 2nd International Symposium on Parallel Symbolic Computation (PASCO 97 ). ACM, New York.
  35. Henz, M. 1997. Objects in Oz. Doctoral dissertation, Univ. des Saarlandes, Saarbrücken, Germany.
  36. Henz, M., Lauer, S., and Zimmermann, D. 1996. COMPOzE-Intention-based music composi- tion through constraint programming. In the International Conference on Tools with Artificial Intelligence. IEEE, New York.
  37. Henz, M. and Würtz, J. 1996. Using Oz for college timetabling. In the International Conference on the Practice and Theory of Automated Timetabling, E. K. Burke and P. Ross, Eds. Lecture Notes in Computer Science, vol. 1153. Springer-Verlag, Berlin, 162-177.
  38. Iannucci, R. A. 1990. Parallel Machines: Parallel Machine Languages. The Emergence of Hybrid Dataflow Computer Architectures. Kluwer, Dordrecht, The Netherlands.
  39. Janson, S., Montelius, J., and Haridi, S. 1993. Ports for objects in concurrent logic programs. In Research Directions in Concurrent Object-Oriented Programming. MIT Press.
  40. Jul, E. 1988. Object mobility in a distributed object-oriented system. Ph.D. thesis, Univ. of Washington, Seattle, Wash.
  41. Jul, E., Levy, H., Hutchinson, N., and Black, A. 1988. Fine-grained mobility in the Emerald system. ACM Trans. Comput. Syst. 6, 1 (Feb.), 109-133.
  42. Lampson, B. W. 1993. Reliable messages and connection establishment. In Distributed Systems, S. Mullender, Ed. Addison-Wesley, Reading, Mass., 251-281.
  43. Leth, L. and Thomsen, B. 1992. Some Facile chemistry. Tech. Rep. ECRC-92-14, ECRC, Munich, Germany. May.
  44. Lynch, N. 1996. Distributed Algorithms. Morgan Kaufmann, San Francisco, Calif. Sun Microsystems. 1996. The Java Series. Sun Microsystems, Mountain View, Calif. Available at http://www.aw.com/cp/javaseries.html.
  45. Otte, R., Patrick, P., and Roy, M. 1996. Understanding CORBA: The Common Object Request Broker Architecture. Prentice-Hall PTR, Upper Saddle River, N.J.
  46. Plainfossé, D. and Shapiro, M. 1995. A survey of distributed garbage collection techniques. In the International Workshop on Memory Management. Lecture Notes in Computer Science, vol. 986. Springer-Verlag, Berlin, 211-249.
  47. Schmeier, S. and Achim, S. 1996. PASHA II-Personal assistant for scheduling appointments. In the 1st International Conference on the Practical Application of Intelligent Agents and Multi-Agent Technology (PAAM 96 ). The Practical Application Company, Lancashire, United Kingdom.
  48. Shapiro, E. 1989. The family of concurrent logic programming languages. ACM Comput. Surv. 21, 3 (Sept.), 413-510.
  49. Smolka, G. 1995a. An Oz Primer. Programming Systems Lab, Univ. des Saarlandes, Saarbrücken, Germany. Available at http://www.ps.uni-sb.de.
  50. Smolka, G. 1995b. The Oz programming model. In Computer Science Today. Lecture Notes in Computer Science, vol. 1000. Springer-Verlag, Berlin, 324-343.
  51. Smolka, G., Henz, M., and Würtz, J. 1995. Object-oriented concurrent constraint program- ming in Oz. In Principles and Practice of Constraint Programming, P. Van Hentenryck and V. Saraswat, Eds. MIT Press, Cambridge, Mass., 29-48.
  52. Smolka, G., Schulte, C., and Van Roy, P. 1995. PERDIO-Persistent and distributed pro- gramming in Oz. BMBF project proposal. Available at http://www.ps.uni-sb.de.
  53. Tanenbaum, A. S. 1995. Distributed Operating Systems. Prentice-Hall, Englewood Cliffs, N.J. Tel, G. 1994. An Introduction to Distributed Algorithms. Cambridge University Press, Cam- bridge, United Kingdom.
  54. Walser, J. P. 1996. Feasible cellular frequency assignment using constraint programming ab- stractions. In the 1st Workshop on Constraint Programming Applications, CP 96.
  55. Wikström, C. 1994. Distributed programming in Erlang. In the 1st International Symposium on Parallel Symbolic Computation (PASCO 94 ). World Scientific, Singapore, 412-421.