Skip to main content
Log in

Programming languages for distributed applications

  • Invited Paper
  • Published:
New Generation Computing Aims and scope Submit manuscript

Abstract

Much progress has been made in distributed computing in the areas of distribution structure, open computing, fault tolerance, and security. Yet, writing distributed applications remains difficult because the programmer has to manage models of these areas explicitly. A major challenge is to integrate the four models into a coherent development platform. Such a platform should make it possible to cleanly separate an application’s functionality from the other four concerns. Concurrent constraint programming, an evolution of concurrent logic programming, has both the expressiveness and the formal foundation needed to attempt this integration. As a first step, we have designed and built a platform that separates an application’s functionality from its distribution structure. We have prototyped several collaborative tools with this platform, including a shared graphic editor whose design is presented in detail. The platform efficiently implements Distributed Oz, which extends the Oz language with constructs to express the distribution structure and with basic primitives for open computing, failure detection and handling, and resource control. Oz appears to the programmer as a concurrent object-oriented language with dataflow synchronization. Oz is based on a higher-order, state-aware, concurrent constraint computation model.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Abelson, H., Sussman, G. J., and Sussman, J.,Structure and Interpretation of Computer Programs, MIT Press, Cambridge, Mass., 1985.

    Google Scholar 

  2. Amoroso, E. G.,Fundamentals of Computer Security Technology, Prentice-Hall, 1994.

  3. Andrews, J., “The Logical Semantics of the Prolog Cut,” inInternational Logic Programming Symposium (ILPS 95), December 1995.

  4. Armstrong, J., Williams, M., Wikström, C., and Virding, R.,Concurrent Programming in Erlang, Prentice-Hall, Englewood Cliffs, N.J., 1996.

    Google Scholar 

  5. Axling, T., Haridi, S., and Fahlen, L., “Concurrent Constraint Programming Virtual Reality Applications,” in the2nd International Conference on Military Applications of Synthetic Environments and Virtual Reality (MASEVR 95), Stockholm, Sweden, 1995. Defence Material Administration.

  6. Brand, P., Franzen, N., Klintskog, E., and Haridi, S., “A Platform for Constructing Virtual Spaces,” inVirtual Worlds and Simulation Conference (VWSIM ’98), January 1998.

  7. Cardelli, L., “A Language with Distributed Scope,”ACM Transactions on Computer Systems, 8, 1, pp. 27–59, January 1995. Also appeared in POPL 95.

    Google Scholar 

  8. Chow, R. and Johnson, T.,Distributed Operating Systems and Algorithms, Addison-Wesley, San Francisco, Calif., 1997.

    Google Scholar 

  9. Crowcroft, J.,Open Distributed Systems, University College London Press, London, U. K., 1996.

    Google Scholar 

  10. DFKI Oz version 2.0, 1998. Available at http://www.ps.uni-sb.de.

  11. Ericsson,Open Telecom Platform — User’s Guide, Reference Manual, Installation Guide, OS Specific Parts, Telefonaktiebolaget LM Ericsson, Stockholm, Sweden, 1996.

    Google Scholar 

  12. Fluckiger, F.,Understanding Networked Multimedia: Applications and Technology, Prentice-Hall, 1995.

  13. Institute for New Generation Computer Technology, ed.,Fifth Generation Computer Systems 1992, volume 1, 2, Ohmsha Ltd. and IOS Press, 1992. ISBN 4-274-007724-1.

  14. Fujise, T., Chikayama, T., Rokusawa, K., and Nakase, A., “KLIC: A Portable Implementation of KL1,” inFifth Generation Computing Systems (FGCS ’94), pp. 66–79, December 1994.

  15. Gosling, J. and McGilton, H., “The Java Language Environment,” white paper, Sun Microsystems, Mountain View, Calif., May 1996.

    Google Scholar 

  16. Haridi, S.,Tutorial of Oz 2. Available at http://www.sics.se/~seif/oz.html, 1996.

  17. Haridi, S., Van Roy, P., Brand, P., Mehl, M., Scheidhauer, R., and Smolka, G., “Using Logic Variables in Distributed Computing,” submitted to ACM TOPLAS, February 1998.

  18. Haridi, S., Van Roy, P., and Smolka, G., “An Overview of the Design of Distributed Oz,” inProceedings of the Second International Symposium on Parallel Symbolic Computation (PASCO ’97), Maui, Hawaii, USA, ACM Press, pp. 176–187, July 1997.

  19. Henz, M.,Objects for Concurrent Constraint Programming, volume 426 of The Kluwer International Series in Engineering and Computer Science, Kluwer Academic Publishers, Boston, November 1997.

    Google Scholar 

  20. Henz, M., “Objects in Oz,”Ph.D. thesis, Universität des Saarlandes, Fachbereich Informatik, Saarbrücken, Germany, June 1997.

    Google Scholar 

  21. Jaffar, J. and Maher, M., “Constraint Logic Programming: A Survey,”J. Log. Prog., 19/20, pp. 503–581, May/July 1994.

    Article  MathSciNet  Google Scholar 

  22. Jalote, P.,Fault Tolerance in Distributed Systems, PTR Prentice-Hall, 1994.

  23. Janson, S. and Haridi, S., “Programming Paradigms of the Andorra Kernel Language,” inInternational Symposium on Logic Programming, pp. 167–183, October 1991.

  24. Jul, E., Levy, H., Hutchinson, N., and Black, A., “Fine-Grained Mobility in the Emerald System,”ACM Transactions on Computer Systems, 6, 1, pp. 109–133, February 1988.

    Article  Google Scholar 

  25. Khoshafian, S. and Buckiewicz, M.,Introduction to Groupware, Workflow, and Workgroup Computing, John Wiley and Sons, 1995.

  26. Knapik, M. and Johnson, J.,Developing Intelligent Agents for Distributed Systems, McGraw-Hill, 1998.

  27. Laprie, J. C., “Dependability: A Unifying Concept for Reliable Computing and Fault Tolerance,” in7th International Conference on Distributed Computing Systems, pp. 129–146, September 1987.

  28. Lea, D.,Concurrent Programming in Java, Addison-Wesley, 1997.

  29. Lloyd, J.,Foundations of Logic Programming, second edition, Springer-Verlag, 1987.

  30. Lynch, N.,Distributed Algorithms, Morgan Kaufmann, San Francisco, Calif., 1996.

    MATH  Google Scholar 

  31. Maher, M., “Logic Semantics for a Class of Committed-Choice Programs,” inInternational Conference on Logic Programming (ICLP 87), pp. 858–876, May 1987.

  32. Müller, M., Müller, T., and Van Roy, P., “Multiparadigm Programming in Oz,” inWorkshop on the Future of Logic Programming, International Logic Programming Symposium (ILPS 95), December 1995.

  33. Sun Microsystems,The Java Series, Mountain View, Calif., 1996. Avaiable at http://www.aw.com/cp/javaseries.html.

  34. Sun Microsystems,The Remote Method Invocation Specification, Mountain View, Calif., 1997. Available at http://www.javasoft.com.

  35. Mehl, M., Scheidhauer, R., and Schulte, C., “An Abstract Machine for Oz,” inProgramming Languages, Implementations, Logics, and Programming (PLILP ’95), 1995.

  36. Naish, L.,Negation and Control in Prolog, Lecture Notes in Computer Science, vol. 238, Springer-Verlag, 1986.

  37. Otte, R., Patrick, P., and Roy, M.,Understanding CORBA: The Common Object Request Broker Architecture, Prentice-Hall PTR, Upper Saddle River, N.J., 1996.

    Google Scholar 

  38. Plainfossé, D. and Shapiro, M., “A Survey of Distributed Garbage Collection Techniques,” inInternational Workshop on Memory Managemment, Lecture Notes in Computer Science, vol. 986, Berlin, Springer-Verlag, pp. 211–249, September 1995.

    Google Scholar 

  39. Podelski, A. and Smolka, G., “Operational Semantics of Constraint Logic Programs with Coroutining,” inInternational Conference on Logic Programming (ICLP 95), pp. 449–463, 1995.

  40. Saraswat, V. and Rinard, M., “Concurrent Constraint Programming,” inPOPL, pp. 232–245, January 1990.

  41. Schulte, C., “Oz Explorer: A Visual Constraint Programming Tool,” inProceedings of the Fourteenth International Conference on Logic Programming (L. Naish, ed.), Leuven, Belgium, July 1997, MIT Press, pp. 286–300, 1997.

  42. Schulte, C., “Programming Constraint Inference Engines,” inProceedings of the Third International Conference on Principles and Practice of Constraint Programming (G. Smolka, ed.),volume 1330 of Lecture Notes in Computer Science, Schloß Hagenberg, Austria, October 1997, Springer-Verlag, pp. 519–533, 1997.

  43. Shapiro, E., “The Family of Concurrent Logic Programming Languages,”ACM Computing Surveys, 21, 3, pp. 413–510, September 1989.

    Article  Google Scholar 

  44. Smolka, G., “The Oz Programming Model,” inComputer Science Today, Lecture Notes in Computer Science, vol. 1000, Springer-Verlag, Berlin, pp. 324–343, 1995.

    Chapter  Google Scholar 

  45. Smolka, G., Schulte, C., and Würtz, J.,Finite Domain Constraint Programming in Oz: A Tutorial, Programming Systems Lab., German Research Center for Artificial Intelligence (DFKI), January 1998. In Oz 2 system documentation. Available at http://www.ps.uni-sb.de.

  46. Smolka, G., Schulte, C., and Van Roy, P.,PERDIO — Persistent and Distributed Programming in Oz, BMBF project proposal. Available at http://www.ps.uni-sb.de, February 1995.

  47. Stroustrup, B.,The C++ Programming Language, third edition, Addison-Wesley, 1997.

  48. Tel, G.,An Introduction to Distributed Algorithms, Cambridge University Press, Cambridge, United Kingdom, 1994.

    Google Scholar 

  49. Thorn, T., “Programming Languages for Mobile Code,”ACM Computing Surveys, 29, 3, pp. 213–239, September 1997.

    Article  Google Scholar 

  50. Van Roy, P., “1983–1993: The Wonder Years of Sequential Prolog Implementation,”J. Log. Prog., 19/20, pp. 385–441, May/July 1994.

    Google Scholar 

  51. Van Roy, P., Haridi, S., Brand, P., and Smolka, G., “Three Moves Are Not as Bad as a Fire,” inWorkshop on Internet Programming Languages, International Conference on Computer Languages (ICCL 98), May 1998.

  52. Van Roy, P., Haridi, S., Brand, P., Smolka, G., Mehl, M., and Scheidhauer, R., “Mobile Objects in Distributed Oz,”ACM Transactions on Programming Languages and Systems, 19, 5, pp. 804–851, September 1997.

    Article  Google Scholar 

  53. Wallach, D. S., Balfanz, D., Dean, D., and Felten, E. W., “Extensible Security Architectures for Java,” in16th Symposium on Operating System Principles, October 1997.

  54. Wikström, C., “Distributed Programming in Erlang,” in1st International Symposium on Parallel Symbolic Computation (PASCO 94), Singapore, September 1994, World Scientific, pp. 412–421, 1994.

Download references

Author information

Authors and Affiliations

Authors

Additional information

Seif Haridi, Ph.D.: He received his Ph.D. in computer science in 1981 from the Royal Institute of Technology, Sweden. After spending 18 months at IBM T. J. Watson Research Center, he moved to the Swedish Institute of Computer Science (SICS) to form a research lab on logic programming and parallel systems. Dr. Haridi is currently the research director of the Swedish Institute of Computer Science. He has been an active researcher in the area of logic and constraint programming and parallel processing since the beginning of the eighties. His earlier work includes contributions to the design of SICStus Prolog, various parallel Prolog systems and a class of scalable cache-coherent multiprocessors known as Cache-Only Memory Architecture (COMA). During the nineties most of his work focused on the design of multiparadigm programming systems based on Concurrent Constraint Programming (CCP). Currently, he is interested in programming systems and software methodology for distributed and agent-based applications.

Peter Van Roy, Ph.D.: He obtained an engineering degree from the Vrije Universiteit Brussel (1983), Masters and Ph.D. degrees from the University of California at Berkeley (1984, 1990), and the Habilitation à Diriger des Recherches from Paris VII Denis Diderot (1996). He has made major contributions to logic language implementation. His research showed for the first time that Prolog can be implemented with the same execution efficiency as C. He was principal developer or codeveloper of Aquarius Prolog, Wild_Life, Logical State Threads, and FractaSketch. He joined the Oz project in 1994 and is currently working on Distributed Oz. His research interests are motivated by the desire to provide increased expressivity and efficiency to application developers.

Per Brand: He is a researcher at the Swedish Institute of Computer Science. He has previously worked on the design and implementation of OR-parallel Prolog (the Aurora project) and optimized compilation techniques for Concurrent Constraint Programming Languages (in particular, AKL). He has been a member of the Distributed Oz design team since the project began. His research interests are focused on techniques, languages, and methodology for distributed programming.

Christian Schulte: He studied computer science at the University of Karlsruhe, Germany, from 1987 to 1992 where he received his diploma. Since 1992 he has been a member of the Programming Systems Lab at DFKI. He is one of the principal designers of Oz. His research interests include design, implementation, and application of concurrent and distributed programming languages as well as constraint programming.

About this article

Cite this article

Haridi, S., Van Roy, P., Brand, P. et al. Programming languages for distributed applications. New Gener Comput 16, 223–261 (1998). https://doi.org/10.1007/BF03037481

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF03037481

Keywords

Navigation