Concurrent Objects à la Carte

  • Dave Clarke
  • Einar Broch Johnsen
  • Olaf Owe
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5930)


Services are autonomous, self-describing, technology-neutral software units that can be described, published, discovered, and composed into software applications at run-time. Designing software services and composing services in order to form applications or composite services requires abstractions beyond those found in typical object-oriented programming languages. In this paper, we explore a number of the abstractions used in service-oriented computing and related Internet- and web-based programming models in the context of Creol, an executable concurrent object-oriented modeling language with active objects and futures; i.e., features capable of expressing and dealing with asynchronous actions. By adding various abstractions to the modeling language, we demonstrate how a concurrent object language may naturally address many of the requirements of service-oriented computing. The study of language extensions in the restricted setting of a small, high-level modeling language, such as Creol, suggests a cheap way of developing new abstractions for emerging application domains. In this paper, we explore abstractions in the context of service-oriented computing, particularly with regard to dynamic aspects such as service discovery and structuring mechanisms such as groups.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Ábrahám-Mumm, E., de Boer, F.S., de Roever, W.-P., Steffen, M.: Verification for java’s reentrant multithreading concept. In: Nielsen, M., Engberg, U. (eds.) FOSSACS 2002. LNCS, vol. 2303, pp. 5–20. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  2. 2.
    Agha, G.A.: ACTORS: A Model of Concurrent Computations in Distributed Systems. The MIT Press, Cambridge (1986)Google Scholar
  3. 3.
    Armstrong, J.: Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf (2007)Google Scholar
  4. 4.
    Baker, H.G., Hewitt, C.E.: The incremental garbage collection of processes. ACM SIGPLAN Notices 12(8), 55–59 (1977)CrossRefGoogle Scholar
  5. 5.
    Benton, N., Cardelli, L., Fournet, C.: Modern concurrency abstractions for C\(^{\sharp}\). ACM Transactions on Programming Languages and Systems 26(5), 769–804 (2004)CrossRefMATHGoogle Scholar
  6. 6.
    Bierman, G.M., Meijer, E., Schulte, W.: The essence of data access in Cω. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 287–311. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  7. 7.
    Birman, K.P.: The process group approach to reliable distributed computing. Communications of the ACM (December 1993)Google Scholar
  8. 8.
    Boreale, M., Bruni, R., Caires, L., De Nicola, R., Lanese, I., Loreti, M., Martins, F., Montanari, U., Ravara, A., Sangiorgi, D., Vasconcelos, V., Zavattaro, G.: SCC: A service centered calculus. In: Bravetti, M., Núñez, M., Zavattaro, G. (eds.) WS-FM 2006. LNCS, vol. 4184, pp. 38–57. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  9. 9.
    Bravetti, M., Zavattaro, G.: Service oriented computing from a process algebraic perspective. Journal of Logic and Algebraic Programming 70(1), 3–14 (2007)MathSciNetCrossRefMATHGoogle Scholar
  10. 10.
    Caromel, D., Henrio, L.: A Theory of Distributed Object. Springer, Heidelberg (2005)MATHGoogle Scholar
  11. 11.
    Castagna, G., Nicola, R.D., Varacca, D.: Semantic subtyping for the pi-calculus. In: Proc. 20th IEEE Symp. on Logic in Computer Science (LICS 2005), pp. 92–101. IEEE Computer Society Press, Los Alamitos (2005)Google Scholar
  12. 12.
    Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Quesada, J.F.: Maude: Specification and programming in rewriting logic. Theoretical Computer Science 285, 187–243 (2002)MathSciNetCrossRefMATHGoogle Scholar
  13. 13.
    de Boer, F.S., Clarke, D., Johnsen, E.B.: A complete guide to the future. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 316–330. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  14. 14.
    Dezani-Ciancaglini, M., Mostrous, D., Yoshida, N., Drossopoulou, S.: Session types for object-oriented languages. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 328–352. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  15. 15.
    Felleisen, M., Hieb, R.: The revised report on the syntactic theories of sequential control and state. Theoretical Computer Science 103(2), 235–271 (1992)MathSciNetCrossRefMATHGoogle Scholar
  16. 16.
    Flatt, M., Krishnamurthi, S., Felleisen, M.: A programmer’s reduction semantics for classes and mixins. In: Alves-Foss, J. (ed.) Formal Syntax and Semantics of Java. LNCS, vol. 1523, pp. 241–269. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  17. 17.
    Hooman, J., Verhoef, M.: Formal semantics of a VDM extension for distributed embedded systems. In: Dams, D., Hannemann, U., Steffen, M. (eds.) Correctness, Concurrency, and Components. Festschrift for Willem-Paul de Roever. LNCS, vol. 5930, pp. 142–161. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  18. 18.
    Johnsen, E.B., Owe, O.: An asynchronous communication model for distributed concurrent objects. Software and Systems Modeling 6(1), 35–58 (2007)CrossRefGoogle Scholar
  19. 19.
    Johnsen, E.B., Owe, O., Yu, I.C.: Creol: A type-safe object-oriented model for distributed concurrent systems. Theoretical Computer Science 365(1-2), 23–66 (2006)MathSciNetCrossRefMATHGoogle Scholar
  20. 20.
    JXTA Project,
  21. 21.
    Lea, D.: Objects in groups (December 1993),
  22. 22.
    Liskov, B.H., Shrira, L.: Promises: Linguistic support for efficient asynchronous procedure calls in distributed systems. In: Wise, D.S. (ed.) Proc. SIGPLAN Conf. on Programming Language Design and Implementation (PLDI 1988), pp. 260–267. ACM Press, New York (1988)CrossRefGoogle Scholar
  23. 23.
    Maffeis, S.: Electra: Making distributed programs object-oriented. In: Proc. USENIX Symp. on Experiences with Distributed and Multiprocessor Systems (September 1993)Google Scholar
  24. 24.
    Misra, J., Cook, W.R.: Computation orchestration: A basis for wide-area computing. Software and Systems Modeling 6(1), 83–110 (2007)CrossRefGoogle Scholar
  25. 25.
    Niehren, J., Schwinghammer, J., Smolka, G.: A concurrent lambda calculus with futures. Theoretical Computer Science 364, 338–356 (2006)MathSciNetCrossRefMATHGoogle Scholar
  26. 26.
    Ölveczky, P.C., Meseguer, J.: Semantics and pragmatics of Real-Time Maude. Higher-Order and Symbolic Computation 20(1-2), 161–196 (2007)CrossRefMATHGoogle Scholar
  27. 27.
    Papadopoulos, G.A., Arbab, F.: Coordination models and languages. In: Zelkowitz, M. (ed.) The Engineering of Large Systems. Advances in Computers, vol. 46, pp. 329–400. Academic Press, London (1998)Google Scholar
  28. 28.
    Torjusen, A., Owe, O., Schneider, G.: Towards integration of XML in the Creol object-oriented language. In: Sandnes, F.E. (ed.) Proc. Norsk Informatikkonferase (NIK 2007), pp. 107–111. Tapir Akademisk Forlag (2007)Google Scholar
  29. 29.
    Welc, A., Jagannathan, S., Hosking, A.: Safe futures for Java. In: Proc. 20th Conf. on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2005), pp. 439–453. ACM Press, New York (2005)Google Scholar
  30. 30.
    Yu, I.C., Johnsen, E.B., Owe, O.: Type-safe runtime class upgrades in Creol. In: Gorrieri, R., Wehrheim, H. (eds.) FMOODS 2006. LNCS, vol. 4037, pp. 202–217. Springer, Heidelberg (2006)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Dave Clarke
    • 1
  • Einar Broch Johnsen
    • 2
  • Olaf Owe
    • 2
  1. 1.CWIAmsterdamthe Netherlands
  2. 2.Dept. of InformaticsUniversity of OsloNorway

Personalised recommendations