×

zbMATH — the first resource for mathematics

simpA: an agent-oriented approach for programming concurrent applications on top of Java. (English) Zbl 1211.68055
Summary: More and more aspects of concurrency and concurrent programming are becoming part of mainstream programming and software engineering, due to several factors such as the widespread availability of multi-core/parallel architectures and Internet-based systems. This leads to the extension of mainstream object-oriented programming languages and platforms – Java is a main example – with libraries providing fine-grained mechanisms and idioms to support concurrent programming, in particular for building efficient programs. Besides this fine-grained support, a main research goal in this context is to devise higher-level, coarse-grained abstractions that would help building concurrent programs, as pure object-oriented abstractions help building large component-based programs. To this end, in this paper we present simpA, a Java-based framework that provides programmers with agent-oriented abstractions on top of the basic OO layer, as a means to organize and structure concurrent applications. We first describe the application programming interface and annotation framework provided to Java programmers for building simpA applications, and then we discuss the main features of the approach from a software engineering point of view, by showing some programming examples. Finally, we define an operational semantics formalizing the main aspects of this programming model.

MSC:
68N15 Theory of programming languages
68N19 Other programming paradigms (object-oriented, sequential, concurrent, automatic, etc.)
68Q55 Semantics in the theory of computing
PDF BibTeX XML Cite
Full Text: DOI
References:
[1] Agha, G.: Actors: A model of concurrent computation in distributed systems, (1986)
[2] Agha, G.; Callsen, C. J.: Actorspace: an open distributed programming paradigm, SIGPLAN not. 28, No. 7, 23-32 (1993)
[3] , Research directions in concurrent object-oriented programming (1993)
[4] Arbab, F.: The IWIM model for coordination of concurrent activities, , 34-56 (1996)
[5] Armstrong, J.: Programming Erlang: software for a concurrent world, (2007)
[6] Baeten, J. C. M.; Bergstra, J. A.; Klop, J. W.: Decidability of bisimulation equivalence for processes generating context-free languages, Lecture notes in computer science 259, 94-111 (1987) · Zbl 0635.68014
[7] Bellifemine, F. L.; Caire, G.; Greenwood, D.: Developing multi-agent systems with JADE, (2007)
[8] Benton, N.; Cardelli, L.; Fournet, C.: Modern concurrency abstractions for C ACM trans. Program. lang. Syst. 26, No. 5, 769-804 (2004) · Zbl 1049.68754
[9] , Multi-agent programming languages, platforms and applications 15 (2005) · Zbl 1101.68456
[10] Briot, J. -P.; Guerraoui, R.; Lohr, K. -P.: Concurrency and distribution in object-oriented programming, ACM comput. Surv. 30, No. 3, 291-329 (1998)
[11] Caire, G.; Gotta, D.; Banzi, M.: WADE: a software platform to develop mission critical applications exploiting agents and workflows, , 29-36 (2008)
[12] Damiani, F.; Giachino, E.; Giannini, P.; Drossopoulou, S.: A type safe state abstraction for coordination in Java-like languages, Acta inf. 45, No. 7–8, 479-536 (2008) · Zbl 1180.68098
[13] Damiani, F.; Giannini, P.; Ricci, A.; Viroli, M.: Featherweight agent language – a core calculus for agents and artifacts, ICSOFT 2009 – Proceedings of the 4th international conference on software and data technologies, volume 1, 218-225 (2009)
[14] Denti, E.; Natali, A.; Omicini, A.: Programmable coordination media, Lncs 1282, 274-288 (1997)
[15] Dufourd, C.; Finkel, A.; Schnoebelen, P.: Reset nets between decidability and undecidability, Lecture notes in computer science 1443, 103-115 (1998) · Zbl 0909.68124
[16] Fournet, C.; Gonthier, G.: The reflexive chemical abstract machine and the join calculus, , 372-385 (1996)
[17] Frolund, S.; Agha, G.: Abstracting interactions based on message sets, , 107-124 (1995)
[18] Gelernter, D.: Generative communication in linda, ACM trans. Program. lang. Syst. 7, No. 1, 80-112 (1985) · Zbl 0559.68030
[19] Goetz, B.: Java concurrency in practice, (2006)
[20] Haller, P.; Odersky, M.: Scala actors: unifying thread-based and event-based programming, Theoret. comput. Sci. (2008) · Zbl 1162.68396
[21] Haustein, M.; Loehr, K. -P.: JAC: declarative Java concurrency: research articles, Concurr. comput.: pract. Exper. 18, No. 5, 519-546 (2006)
[22] Igarashi, A.; Pierce, B. C.; Wadler, P.: Featherweight Java: a minimal core calculus for Java and GJ, ACM trans. Program. lang. Syst. 23, 396-450 (2001)
[23] Igarashi, A.; Viroli, M.: Variant parametric types: a flexible subtyping scheme for generics, ACM trans. Program. lang. Syst. 28, No. 5, 795-847 (2006)
[24] Iglesias, C.; Garrijo, M.; Gonzalez, J.: A survey of agent-oriented methodologies, Proceedings of the 5th international workshop on intelligent agents V: Agent theories, architectures, and languages, ATAL-98 1555, 317-330 (1999)
[25] G.S. Itzstein, D. Kearney, Join Java: an alternative concurrency semantics for Java, Technical Report ACRC-01-001, University of South Australia, 2001.
[26] Jennings, N. R.: An agent-based approach for building complex software systems, Commun. ACM 44, No. 4, 35-41 (2001)
[27] Keen, A. W.; Ge, T.; Maris, J. T.; Olsson, R. A.: JR: flexible distributed programming in an extended Java, Toplas 26, No. 3, 578-608 (2004)
[28] Larson, J.: Erlang for concurrent programming, Commun. ACM 52, No. 3, 48-56 (2009)
[29] Lavender, R. G.; Schmidt, D. C.: Active object: an object behavioral pattern for concurrent programming, , 483-499 (1996)
[30] Lea, D.: Concurrent programming in Java: design principles and patterns, (1999) · Zbl 0888.68024
[31] Lea, D.: A Java fork/join framework, , 36-43 (2000)
[32] Lea, D.: The java.util.concurrent synchronizer framework, Sci. comput. Programming 58, No. 3, 293-309 (2005)
[33] Matsuoka, S.; Yonezawa, A.: Analysis of inheritance anomaly in object-oriented concurrent programming languages, Research directions in concurrent object-oriented programming (1993)
[34] Meyer, B.: Systematic concurrent object-oriented programming, Commun. ACM 36, No. 9, 56-80 (1993)
[35] Milicia, G.; Sassone, V.: Jeeg: temporal constraints for the synchronization of concurrent objects, Concurr. comput.: pract. Exper. 17, No. 5–6, 539-572 (2005)
[36] Milner, R.: Communicating and mobile systems: the \({\pi}\)-calculus, (1999) · Zbl 0942.68002
[37] Mosses, P. D.: Modular structural operational semantics, J. log. Algebr. program. 60–61, 195-228 (2004) · Zbl 1072.68061
[38] Omicini, A.; Denti, E.: From tuple spaces to tuple centres, Sci. comput. Programming 41, No. 3, 277-294 (2001) · Zbl 0989.68120
[39] Omicini, A.; Ricci, A.; Viroli, M.: Artifacts in the A&A meta-model for multi-agent systems, Auton. agents and multi-agent syst. 19 (2009)
[40] Omicini, A.; Ricci, A.; Viroli, M.; Castelfranchi, C.; Tummolini, L.: Coordination artifacts: environment-based coordination for intelligent agents, , 286-293 (2004)
[41] Pokahr, A.; Braubach, L.; Lamersdorf, W.: Jadex: a BDI reasoning engine, Multi-agent programming (2005)
[42] Resnick, M.: Turtles, termites and traffic jams. Explorations in massively parallel microworlds, (1994)
[43] Ricci, A.; Piunti, M.; Viroli, M.; Omicini, A.: Environment programming in cartago, Multi-agent programming: languages, platforms and applications 2, 259-288 (2009) · Zbl 1189.68150
[44] A. Ricci, M. Viroli, simpA: An agent-oriented approach for prototyping concurrent applications on top of Java, in: V. Amaral, L. Veiga, L. Marcelino, H.C. Cunningham (Eds.), 5th International Conference, Principles and Practice of Programming in Java, PPPJ 2007, Lisbon, Portugal, 5–7 September 2007, pp. 185–194. · Zbl 1211.68055
[45] Ricci, A.; Viroli, M.; Cimadamore, M.: Prototyping concurrent systems with agents and artifacts: framework and core calculus, Electron. notes theor. Comput. sci. 194, No. 4, 111-132 (2008) · Zbl 1277.68203
[46] Ricci, A.; Viroli, M.; Omicini, A.: Give agents their artifacts: the A&A approach for engineering working environments in Mas, 6th international joint conference autonomous agents multi-agent systems, AAMAS 2007, 601-603 (2007)
[47] Ricci, A.; Viroli, M.; Piancastelli, G.: Simpa: a simple agent-oriented Java extension for developing concurrent applications, Lncs 5118/2008, 261-278 (July 2008)
[48] Sangiorgi, D.; Walker, D.: On barbed equivalences in pi-calculus, Lecture notes in computer science 2154, 292-304 (2001) · Zbl 1006.68090
[49] Sewell, P.: On implementations and semantics of a concurrent programming language, Lecture notes in computer science 1243, 391-405 (1997)
[50] Sutter, H.; Larus, J.: Software and the concurrency revolution, ACM queue: tomorrow’s comput. Today 3, No. 7, 54-62 (2005)
[51] Velroyen, H.; Rümmer, P.: Non-termination checking for imperative programs, Lecture notes in computer science 4966/2008, 154-170 (2008) · Zbl 1138.68460
[52] Viroli, M.: A core calculus for correlation in orchestration languages, J. log. Algebr. program. 70, No. 1, 74-95 (2007) · Zbl 1178.68051
[53] Viroli, M.; Denti, E.; Ricci, A.: Engineering a BPEL orchestration engine as a multi-agent system, Sci. comput. Programming 66, No. 3, 226-245 (2007) · Zbl 1121.68084
[54] , J. auton. Agents multi-agent syst. 14, No. 1 (2007)
[55] Wright, A. K.; Felleisen, M.: A syntactic approach to type soundness, Inform. comput. 115, No. 1, 38-94 (1994) · Zbl 0938.68559
[56] , Object-oriented concurrent programming (1986)
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. It attempts to reflect the references listed in the original paper as accurately as possible without claiming the completeness or perfect precision of the matching.