Skip to main content

From Procedures, Objects, Actors, Components, Services, to Agents

A Comparative Analysis of the History and Evolution of Programming Abstractions

  • Chapter
  • First Online:
The French School of Programming

Abstract

The objective of this chapter is to propose some retrospective analysis of the evolution of programming abstractions, from procedures, objects, actors, components, services, up to agents, by replacing them within a general historical perspective. Some common referential with three axes/dimensions is chosen: action selection at the level of one entity, coupling flexibility between entities, and abstraction level. We indeed may observe some continuous quest for higher flexibility (through notions such as late binding, or reification of connections) and higher level of abstraction. Concepts of components, services and agents have some common objectives (notably, software modularity and reconfigurability), with multi-agent systems raising further concepts of autonomy and coordination, notably through the notion of auto-organization and the use of knowledge. We hope that this analysis helps to highlight some of the basic forces motivating the progress of programming abstractions and therefore that it may provide some seeds for the reflection about future programming abstractions.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 149.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 199.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Agha, G.: Actors: a Model of Concurrent Computation in Distributed Systems. Series in Artificial Intelligence. MIT Press (1986)

    Book  Google Scholar 

  2. Allen, R., Garlan, D.: Formal connectors. Research Report CMU-CS-94–115, Department of Computer Science, Carnegie Mellon University, Pittsburgh, PA, USA (1994)

    Google Scholar 

  3. Beugnard, A., Jézéquel, J.M., Plouzeau, N., Watkins, D.: Making components contract aware. IEEE Computer 32(7), 38–45 (1999)

    Article  Google Scholar 

  4. Bigus, J., Schlosnagle, D., Pilgrim, J., Mills, W., Diao, Y.: Able: A toolkit for building multiagent autonomic systems. IBM Systems Journal 41(3), 350–371 (2002)

    Article  Google Scholar 

  5. Boissier, O.: (editor) Composants et systèmes multi-agents. L’Objet 12(4) (2006)

    Google Scholar 

  6. Bordini, R., Dastani, M., Dix, J., Seghrouchni, A.E.F., Gomez-Sanz, J., Leite, J., O’Hare, G., Pokahr, A., Ricci, A.: A survey of programming languages and platforms for multi-agent systems. Informatica 30(1), 33–44 (2006)

    Google Scholar 

  7. Briot, J.P.: Modélisation et classification de langages de programmation concurrente à objets : l’expérience Actalk. In: Actes du Colloque Langages et Modèles à Objets (LMO 94), pp. 153–165. INRIA/IMAG/PRC-IA, Grenoble, France (1994)

    Google Scholar 

  8. Briot, J.P.: An experiment in classification and specialization of synchronization schemes. In: K. Futatsugi, S. Matsuoka (eds.) Object Technologies for Advanced Software (ISOTAS 96), no. 1049 in LNCS, pp. 227–249. Springer, Kanazawa, Japan (1996)

    Google Scholar 

  9. Briot, J.P.: Composants et agents : évolution de la programmation et analyse comparative. Technique et Science Informatiques (TSI) 33(1–2), 85–115 (2014)

    Article  Google Scholar 

  10. Briot, J.P., Cointe, P.: A uniform model for object-oriented languages using the class abstraction. In: J. McDermott (ed.) 10th International Joint Conference on Artificial Intelligence (IJCAI’87), vol. 1, pp. 40–43. Morgan-Kaufmann, Milano, Italy (1987)

    Google Scholar 

  11. Briot, J.P., Guerraoui, R., Löhr, K.P.: Concurrency and distribution in object-oriented programming. Computing Surveys 30(3), 291–329 (1998)

    Article  Google Scholar 

  12. Briot, J.P., Meurisse, T., Peschanski, F.: Architectural design of component-based agents: A behavior-based approach. In: R.H. Bordini, M. Dastani, J. Dix, A.E.F. Seghrouchni (eds.) Programming Multi-Agent Systems - ProMAS 2006, no. 4411 in LNCS, pp. 73–92. Springer (2007)

    Google Scholar 

  13. Bruneton, E., Coupaye, T., Leclerc, M., Quéma, V., Stefani, J.B.: An open component model and its support in Java. In: 7th International Symposium on Component-Based Software Engineering, no. 3054 in LNCS, pp. 7–22. Springer (2004)

    Google Scholar 

  14. Caromel, D.: Toward a method of object-oriented concurrent programming. Communications of the ACM (CACM) 36(9), 90–102 (1993)

    Article  Google Scholar 

  15. Castagna, G.: Covariance and contravariance: Conflict without a cause. ACM Transactions on Programming Languages and Systems (TOPLAS) 17, 431–447 (1995)

    Article  Google Scholar 

  16. Chauvet, J.M.: Services Web avec SOAP, WSDL, UDDI, et XML. Eyrolles (2002)

    Google Scholar 

  17. Chen, G., Kotz, D.: A survey of context-aware mobile computing research. Technical Report TR2000-381, Department of Computer Science, Dartmouth College, Hanover, NH, USA (2000)

    Google Scholar 

  18. Cointe, P.: Metaclasses are first class: The ObjVlisp model. In: Conference Proceedings on Object-Oriented Programming Systems, Languages and Applications (OOPSLA ’87), pp. 156–162. ACM (1987)

    Google Scholar 

  19. Cointe, P. (ed.): Meta-Level Architectures and Reflection – Second International Conference, Reflection’99 Saint-Malo, France, July 19–21, 1999 Proceedings. No. 1616 in LNCS. Springer (1999)

    Google Scholar 

  20. Coutaz, J., Crowley, J.L., Dobson, S., Garlan, D.: Context is key. Communications of the ACM 48(3), 49–53 (2005)

    Article  Google Scholar 

  21. Crnković, I., Sentilles, S., Vulgarakis, A., Chaudron, M.R.V.: A classification framework for software component models. IEEE Transactions on Software Engineering 37(5), 593–615 (2011)

    Article  Google Scholar 

  22. Cutsem, T.V., Dedecker, J., Mostinckx, S., Gonzalez, E., D’Hondt, T., Meuter, W.D.: Ambient references: Addressing objects in mobile networks. In: OOPSLA ’06: Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications, pp. 986–997. ACM (2006)

    Google Scholar 

  23. Drogoul, A., Collinot, A.: Applying an agent-oriented methodology to the design of artificial organisations: a case study in robotic soccer. Journal of Autonomous Agents and Multi-Agent Systems (JAAMAS) 1(1), 113–129 (1998)

    Article  Google Scholar 

  24. Dubus, J., Merle, P.: Vers l’auto-adaptabilité des architectures logicielles dans les environnements ouverts distribués. In: M. Oussalah, F. Oquendo (eds.) 1ère Conférence francophone sur les Architectures Logicielles (CAL 2006), pp. 13–29. Hermès/Lavoisier, Nantes, France (2006)

    Google Scholar 

  25. Eugster, P., Felber, P., Guerraoui, R., Kermarrec, A.M.: The many faces of publish/subscribe. ACM Computing Surveys 35(2), 114–131 (2003)

    Article  Google Scholar 

  26. Ferber, J., Gutknecht, O.: A meta-model for the analysis and design of organizations in multi-agent systems. In: 3rd International Conference on Multi-Agent Systems (ICMAS 98), pp. 128–135. IEEE, Paris, France (1998)

    Google Scholar 

  27. Finin, T., Labrou, Y., Mayfield, J.: KQML as an agent communication language. In: J. Bradshaw (ed.) Software Agents, pp. 291–316. MIT-Press (1997)

    Google Scholar 

  28. FIPA: Agent Communication Language Specifications (accessed: 13/08/2021). http://www.fipa.org/repository/aclspecs.html

  29. FIPA: Foundation for Intelligent Physical Agents (accessed: 13/08/2021). http://www.fipa.org/

  30. Gasser, L., Briot, J.P.: Object-based concurrent programming and distributed artificial intelligence. In: N.M. Avouris, L. Gasser (eds.) Distributed Artificial Intelligence: Theory and Praxis, pp. 81–107. Kluwer (1992)

    Google Scholar 

  31. Gasser, L., Briot, J.P.: Agents and concurrent objects. IEEE Concurrency 6(4), 74–81 (1998). Interview of Les Gasser by Jean-Pierre Briot

    Google Scholar 

  32. Gelernter, D., Carrierro, D.: Coordination languages and their significance. Communications of the ACM 35(2), 97–107 (1992)

    Article  Google Scholar 

  33. Georgeff, M., Pell, B., Pollack, M., Tambe, M., Wooldridge, M.: The belief-desire-intention model of agency. In: 5th International Workshop on Intelligent Agents V: Agent Theories, Architectures, and Languages (ATAL’98), no. 1555 in LNCS, pp. 1–10. Springer (1999)

    Google Scholar 

  34. Ghezzi, C., Picco, G.: An outlook on software engineering for modern distributed systems. In: Monterey Workshop on Radical Approaches to Software Engineering. Venezia, Italy (2002)

    Google Scholar 

  35. Hewitt, C.: Viewing control structures as patterns of passing messages. Artificial Intelligence 8(3), 323–364 (1977)

    Article  Google Scholar 

  36. Hübner, J.F., Sichman, J.S., Boissier, O.: Developing organised multiagent systems using the MOISE+ model: programming issues at the system and agent levels. International Journal of Agent-Oriented Software Engineering (IJAOSE) 1(3–4), 370–395 (2007)

    Article  Google Scholar 

  37. RoboCup Federation Inc: RoboCup (accessed: 13/08/2021). https://www.robocup.org/

  38. Janson, P.A.: Dynamic linking and environment initialization in a multi-domain process. ACM SIGOPS Operating Systems Review 9(5), 43–50 (1975)

    Article  Google Scholar 

  39. Kafura, D., Briot, J.P.: Introduction to actors and agents. IEEE Concurrency 6(2), 24–29 (1998)

    Article  Google Scholar 

  40. Kiczales, G., des Rivieres, J., Bobrow, D.G.: The Art of the Metaobject Protocol. MIT Press (1991)

    Google Scholar 

  41. Lau, K.K., Wang, Z.: Software component models. IEEE Transactions on Software Engineering 33(10), 709–724 (2007)

    Article  Google Scholar 

  42. Meyer, B.: Object-Oriented Software Construction. Prentice Hall (1988)

    Google Scholar 

  43. Meyer, B.: Applying design by contract. IEEE Computer 25(10), 40–51 (1992)

    Article  Google Scholar 

  44. Müller, J.P., Pischel, M.: The agent architecture InteRRaP: Concept and application. Technical Report RR-93-26, DFKI, Saarbrücken, Germany (1993)

    Google Scholar 

  45. OASIS: Open composite services architecture (CSA). Tech. rep., OASIS (Organization for the Advancement of Structured Information Standards), http://www.oasis-opencsa.org (accessed: 13/08/2021)

  46. OASIS: Web services business process execution language (BPEL). Tech. rep., OASIS (Organization for the Advancement of Structured Information Standards), http://bpel.xml.org (accessed: 13/08/2021)

  47. Odell, J.: Objects and agents compared. Journal of Object Technology (JOT) 1(1) (2002)

    Google Scholar 

  48. Odersky, M., Spoon, L., Venners, B.: Programming in Scala. Artima (2010)

    Google Scholar 

  49. OMG: Common object request broker architecture (CORBA). Tech. rep., Object Management Group (OMG), http://www.omg.org/corba/ (accessed: 13/08/2021)

  50. OMG: Corba component model (CCM). Tech. rep., Object Management Group (OMG), http://www.omg.org/technology/documents/formal/components.htm (accessed: 13/08/2021)

  51. OMG: Model driven architecture (MDA). Tech. rep., Object Management Group (OMG), http://www.omg.org/mda/ (accessed: 13/08/2021)

  52. Omicini, A., Ricci, A., Viroli, M.: Artifacts in the A&A meta-model for multi-agent systems. Journal of Autonomous Agents and Multi-Agent Systems (JAAMAS) 17(3), 432–456 (2008)

    Article  Google Scholar 

  53. Papazoglou, M.: Web Services & SOA, Principles and Technology, Second Edition. Pearson (2012)

    Google Scholar 

  54. Payne, T.: Web services from an agent perspective. IEEE Intelligent Systems 23(2), 12–14 (2008)

    Article  Google Scholar 

  55. Perrot, J.F.: Objets, classes et héritage : Définitions. In: R. Ducournau, J. Euzenat, G. Masini, A. Napoli (eds.) Langages et modèles à objets – État des recherches et perspectives, Collection Didactique, pp. 3–31. INRIA (1998)

    Google Scholar 

  56. Shaw, M., Garlan, D.: Software Architectures – Perspective on an Emerging Discipline. Prentice Hall (1996)

    Google Scholar 

  57. Shoham, Y.: Agent oriented programming. Artificial Intelligence 60(1), 51–92 (1993)

    Article  MathSciNet  Google Scholar 

  58. Silva, V., Choren, R., Lucena, C.: Using UML 2.0 activity diagram to model agent plans and actions. In: International Conference on Autonomous Agents and Multi-Agent Systems (AAMAS 2005), pp. 594–600. Utrecht, The Netherlands (2005)

    Google Scholar 

  59. Smith, R.: The contract net protocol: High-level communication and control in a distributed problem solver. IEEE Transactions on Computers 29(12), 1104–1113 (1980)

    Article  Google Scholar 

  60. van Splunter, S., Wijngaards, N., Brazier, F., Richards, D.: Automated component-based configuration: Promises and fallacies. In: AISB 2004 Convention 4th Symposium on Adaptive Agents and Multi-Agent Systems (AAMAS-4), pp. 130–145. Leeds, UK (2004)

    Google Scholar 

  61. Sun: Javabeans specification. Tech. rep., Sun Microsystems Inc., http://java.sun.com/products/javabeans/ (2006)

  62. Szyperski, C., Gruntz, D., Murer, S.: Component software: beyond object-oriented programming. Pearson Education (2002)

    Google Scholar 

  63. W3C: World Wide Web Consortium (accessed: 13/08/2021). https://www.w3.org/

  64. Weyns, D., Parunak, H.V.D., Michel, F., Holvoet, T., Ferber, J.: Environments for multiagent systems – state-of-the-art and research challenges. In: D. Weyns, H.V.D. Parunak, F. Michel (eds.) Environments for Multi-Agent Systems – First International Workshop, E4MAS 2004, New York, NY, July 19, 2004, Revised Selected Papers, no. 3374 in LNAI, pp. 1–47. Springer (2005)

    Google Scholar 

  65. Yonezawa, A., Briot, J.P., Shibayama, E.: Object-oriented concurrent programming in ABCL/1. Sigplan Notices 21(11), 258–268 (1986). Special Issue. Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 86), Portland OR, USA

    Google Scholar 

  66. Ziemke, T., Balkenius, C., Hallam, J. (eds.): From Animals to Animats 12 – 12th International Conference on Simulation of Adaptive Behavior, SAB 2012, Odense, Denmark, August 2012, Proceedings. No. 7426 in LNAI. Springer (2012)

    Google Scholar 

Download references

Acknowledgements

The premises of this study go back to an interview that we conducted with Les Gasser on the relationship between objects and agents, published in a journal special series on actors and agents [31]. We thank him for his pioneering and fundamental contribution to this reflection and we dedicate this chapter to his memory. We also would like to thank Pierre Cointe and Jean-François Perrot for having introduced us to the magic of programming. Last, we thank Jean-Marc Jézéquel, Joëlle Coutaz and Michel Raynal for their careful reading and constructive comments on the initial version of this chapter.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jean-Pierre Briot .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Briot, JP. (2024). From Procedures, Objects, Actors, Components, Services, to Agents. In: Meyer, B. (eds) The French School of Programming. Springer, Cham. https://doi.org/10.1007/978-3-031-34518-0_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-34518-0_6

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-34517-3

  • Online ISBN: 978-3-031-34518-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics