Agent-Oriented Computing : Agents as a Paradigm for Computer Programming and Software Development

The notion of agent more and more appears in different contexts of computer science, often with different meanings. The main acceptation is the AI (Artificial Intelligence) and Distributed AI one, where agents are essentially exploited as a technique to develop special-purpose systems exhibiting some kind of intelligent behavior. In this paper, we introduce a further perspective, shifting the focus from AI to computer programming and programming languages. In particular, we consider agents and related concepts as generalpurpose abstractions useful for programming software systems in general, conceptually extending object-oriented programming with features that – we argue – are effective to tackle some main challenges of modern software development. Accordingly, the main contribution of the work is first the definition of a conceptual space framing the basic features that characterize the agent-oriented approach as a programming paradigm, then its validation in practice by using a platform called JaCa, with real-word programming examples. Keywords-agent-oriented programming; multi-agent systems; concurrent programming; distributed programming

[1]  Martin Odersky,et al.  Scala Actors: Unifying thread-based and event-based programming , 2009, Theor. Comput. Sci..

[2]  Andrew Lucas,et al.  JACK Intelligent Agents – Summary of an Agent Infrastructure , 2001 .

[3]  Yoav Shoham,et al.  Agent-Oriented Programming , 1992, Artif. Intell..

[4]  Les Gasser,et al.  Research Directions for Service-Oriented Multiagent Systems , 2005, IEEE Internet Comput..

[5]  Stuart J. Russell,et al.  Artificial Intelligence , 1999 .

[6]  Agostino Poggi,et al.  Developing Multi-agent Systems with JADE , 2007, ATAL.

[7]  Anand S. Rao,et al.  BDI Agents: From Theory to Practice , 1995, ICMAS.

[8]  Marvin Minsky,et al.  Programming with agents: new metaphors for thinking about computation , 1996 .

[9]  Michael Wooldridge,et al.  Programming Multi-Agent Systems in AgentSpeak using Jason (Wiley Series in Agent Technology) , 2007 .

[10]  Andrea Omicini,et al.  Artifacts in the A&A meta-model for multi-agent systems , 2008, Autonomous Agents and Multi-Agent Systems.

[11]  Alessandro Ricci,et al.  Programming SOA/WS Systems with Cognitive Agents and Artifact-Based Environments , 2009, MALLOW.

[12]  Y. Shoham Introduction to Multi-Agent Systems , 2002 .

[13]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[14]  Carl Hewitt,et al.  The Scientific Community Metaphor , 1988, IEEE Transactions on Systems, Man, and Cybernetics.

[15]  Henry Lieberman The Continuing Quest for Abstraction , 2006, ECOOP.

[16]  Rafael H. Bordini,et al.  BDI agent programming in AgentSpeak using Jason , 2006 .

[17]  Alessandro Ricci,et al.  simpA: An agent-oriented approach for programming concurrent applications on top of Java , 2011, Sci. Comput. Program..

[18]  Alessandro Ricci,et al.  Environment programming in multi-agent systems: an artifact-based perspective , 2011, Autonomous Agents and Multi-Agent Systems.

[19]  James R. Larus,et al.  Software and the Concurrency Revolution , 2005, ACM Queue.

[20]  Winfried Lamersdorf,et al.  Jadex: A BDI Reasoning Engine , 2005, Multi-Agent Programming.