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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Agha, G.: Actors: a Model of Concurrent Computation in Distributed Systems. Series in Artificial Intelligence. MIT Press (1986)
Allen, R., Garlan, D.: Formal connectors. Research Report CMU-CS-94–115, Department of Computer Science, Carnegie Mellon University, Pittsburgh, PA, USA (1994)
Beugnard, A., Jézéquel, J.M., Plouzeau, N., Watkins, D.: Making components contract aware. IEEE Computer 32(7), 38–45 (1999)
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)
Boissier, O.: (editor) Composants et systèmes multi-agents. L’Objet 12(4) (2006)
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)
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)
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)
Briot, J.P.: Composants et agents : évolution de la programmation et analyse comparative. Technique et Science Informatiques (TSI) 33(1–2), 85–115 (2014)
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)
Briot, J.P., Guerraoui, R., Löhr, K.P.: Concurrency and distribution in object-oriented programming. Computing Surveys 30(3), 291–329 (1998)
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)
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)
Caromel, D.: Toward a method of object-oriented concurrent programming. Communications of the ACM (CACM) 36(9), 90–102 (1993)
Castagna, G.: Covariance and contravariance: Conflict without a cause. ACM Transactions on Programming Languages and Systems (TOPLAS) 17, 431–447 (1995)
Chauvet, J.M.: Services Web avec SOAP, WSDL, UDDI, et XML. Eyrolles (2002)
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)
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)
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)
Coutaz, J., Crowley, J.L., Dobson, S., Garlan, D.: Context is key. Communications of the ACM 48(3), 49–53 (2005)
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)
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)
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)
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)
Eugster, P., Felber, P., Guerraoui, R., Kermarrec, A.M.: The many faces of publish/subscribe. ACM Computing Surveys 35(2), 114–131 (2003)
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)
Finin, T., Labrou, Y., Mayfield, J.: KQML as an agent communication language. In: J. Bradshaw (ed.) Software Agents, pp. 291–316. MIT-Press (1997)
FIPA: Agent Communication Language Specifications (accessed: 13/08/2021). http://www.fipa.org/repository/aclspecs.html
FIPA: Foundation for Intelligent Physical Agents (accessed: 13/08/2021). http://www.fipa.org/
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)
Gasser, L., Briot, J.P.: Agents and concurrent objects. IEEE Concurrency 6(4), 74–81 (1998). Interview of Les Gasser by Jean-Pierre Briot
Gelernter, D., Carrierro, D.: Coordination languages and their significance. Communications of the ACM 35(2), 97–107 (1992)
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)
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)
Hewitt, C.: Viewing control structures as patterns of passing messages. Artificial Intelligence 8(3), 323–364 (1977)
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)
RoboCup Federation Inc: RoboCup (accessed: 13/08/2021). https://www.robocup.org/
Janson, P.A.: Dynamic linking and environment initialization in a multi-domain process. ACM SIGOPS Operating Systems Review 9(5), 43–50 (1975)
Kafura, D., Briot, J.P.: Introduction to actors and agents. IEEE Concurrency 6(2), 24–29 (1998)
Kiczales, G., des Rivieres, J., Bobrow, D.G.: The Art of the Metaobject Protocol. MIT Press (1991)
Lau, K.K., Wang, Z.: Software component models. IEEE Transactions on Software Engineering 33(10), 709–724 (2007)
Meyer, B.: Object-Oriented Software Construction. Prentice Hall (1988)
Meyer, B.: Applying design by contract. IEEE Computer 25(10), 40–51 (1992)
Müller, J.P., Pischel, M.: The agent architecture InteRRaP: Concept and application. Technical Report RR-93-26, DFKI, Saarbrücken, Germany (1993)
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)
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)
Odell, J.: Objects and agents compared. Journal of Object Technology (JOT) 1(1) (2002)
Odersky, M., Spoon, L., Venners, B.: Programming in Scala. Artima (2010)
OMG: Common object request broker architecture (CORBA). Tech. rep., Object Management Group (OMG), http://www.omg.org/corba/ (accessed: 13/08/2021)
OMG: Corba component model (CCM). Tech. rep., Object Management Group (OMG), http://www.omg.org/technology/documents/formal/components.htm (accessed: 13/08/2021)
OMG: Model driven architecture (MDA). Tech. rep., Object Management Group (OMG), http://www.omg.org/mda/ (accessed: 13/08/2021)
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)
Papazoglou, M.: Web Services & SOA, Principles and Technology, Second Edition. Pearson (2012)
Payne, T.: Web services from an agent perspective. IEEE Intelligent Systems 23(2), 12–14 (2008)
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)
Shaw, M., Garlan, D.: Software Architectures – Perspective on an Emerging Discipline. Prentice Hall (1996)
Shoham, Y.: Agent oriented programming. Artificial Intelligence 60(1), 51–92 (1993)
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)
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)
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)
Sun: Javabeans specification. Tech. rep., Sun Microsystems Inc., http://java.sun.com/products/javabeans/ (2006)
Szyperski, C., Gruntz, D., Murer, S.: Component software: beyond object-oriented programming. Pearson Education (2002)
W3C: World Wide Web Consortium (accessed: 13/08/2021). https://www.w3.org/
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)
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
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)
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
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this chapter
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)