World Library  
Flag as Inappropriate
Email this Article

Agent-oriented programming

Article Id: WHEBN0027504787
Reproduction Date:

Title: Agent-oriented programming  
Author: World Heritage Encyclopedia
Language: English
Subject: AgentSpeak, Action language, Multi-Agent Programming Contest, Automatic programming, Attribute-oriented programming
Collection:
Publisher: World Heritage Encyclopedia
Publication
Date:
 

Agent-oriented programming

Agent-oriented programming (AOP) is a programming paradigm where the construction of the software is centered on the concept of software agents. In contrast to object-oriented programming which has objects (providing methods with variable parameters) at its core, AOP has externally specified agents (with interfaces and messaging capabilities) at its core. They can be thought of as abstractions of objects. Exchanged messages are interpreted by receiving "agents", in a way specific to its class of agents.

History

Historically the concept of Agent-oriented programming and the idea of centering your software around the concept of agent was first used by Yoav Shoham within his Artificial Intelligence studies, in 1990.[1][2] His agents are specific to his own paradigm as they have just one method, with a single parameter. To quote Yoav Shoham from his paper in 1990 for a basic difference between of AOP against OOP:

...agent-oriented programming (AOP), which can be viewed as a specialization of object-oriented programming. ...
OOP AOP
Basic unit object agent
Parameters defining state of basic unit unconstrained beliefs, commitments, capabilities, choices....
Process of computation message passing and response methods message passing and response methods
Types of message unconstrained inform, request, offer, promise, decline....
Constraints on methods none honesty, consistency....

Frameworks

There are multiple AOP 'frameworks' also called Agent Platforms that implement Shoham's programming paradigm. The following examples illustrate how a basic agent is programmed as a Hello World Program.

JADE

For the Java-platform one of the frameworks is JADE [3] (http://jade.tilab.com/). Here is a very basic example [1] of an Agent that runs code

package helloworld;
import jade.core.Agent;

public class Hello extends Agent {
        
        protected void setup() { 
                System.out.println("Hello World. ");
                System.out.println("My name is "+ getLocalName()); 
        }
        
        public Hello() {
                System.out.println("Constructor called");
        }

}

At the core of JADE's AOP model is that its API supports the standard FIPA Agent Communication Language

Agent Speak (Jason)

For a literal translation of Agent Oriented concepts into a scheme unobfuscated as is JADE, behind Java and Object Orientedness, Agent Speak [4] (Jason) provides a "natural" language for agents.

        
        started.

        +started <- .print("Hello World. ").
        

SARL Language

SARL[5] (SARL website) provides the fundamental abstractions for coding multiagent systems. It uses a script-like syntax (inspired form Scala and Ruby), and is 100% compatible with Java.

package helloworld
import io.sarl.core.Initialize
agent HelloWorldAgent {
        on Initialize { 
             println("Hello World.")
        }
}       

Middleware

One way to implement modular or extensible AOP support is to define standard AOP APIs to middleware functions that are themselves implemented as software agents. For example, a directory service can be implemented as a FIPA directory facilitator or DF software agent; life-cycle management to start, stop, suspend and resume agents can be implemented as a FIPA Agent Management Service or AMS agent.[6] A benefit of the AOP approach is that it support more dynamic roles between different users and providers of applications, services and networks. For example, traditionally, networks and services were usually managed by the network and service provider on behalf of the customer and offered as a single virtual network service but customers themselves are becoming more empowered to integrate and manage their own services. This can be achieved via AOP and APIs to middleware agents that can flexibly and dynamically manage communication.[7]

References

  1. ^ Shoham, Y. (1990). Agent-Oriented Programming (Technical Report STAN-CS-90-1335). Stanford University: Computer Science Department. 
  2. ^ Shoham, Y. (1993). Agent-Oriented Programming. Artificial Intelligence. pp. 51–92.  
  3. ^ Bellifeminee, Fabio; Agostino Poggi; Giovanni Rimassa (2001). "JADE: a FIPA2000 compliant agent development environment". Proceedings of the fifth international conference on Autonomous agents. pp. 216–217. 
  4. ^ Anand S. Rao, 1996. AgentSpeak(L): BDI Agents Speak Out in a Logical Computable Language. Proceedings of Seventh European Workshop on Modelling Autonomous Agents in a Multi-Agent World (MAAMAW-96).
  5. ^ Sebastian Rodriguez, Nicolas Gaud, Stéphane Galland, 2014. SARL: a general-purpose agent-oriented programming language. In the 2014 IEEE/WIC/ACM International Conference on Intelligent Agent Technology. Warsaw, Poland: IEEE Computer Society Press.
  6. ^ Poslad, S (2007). "Specifying Protocols for Multi-agent System Interaction". ACM Transactions on Autonomous and Adaptive Systems (TAAS) 4 (4).  
  7. ^ Poslad, S; J. Pitt; A. Mamdani; R. Hadingham; P. Buckle (1999). Agent-oriented middleware for integrating customer network services. In: Software Agents for Future Communication Systems, Hayzelden A, Bigham J Eds. pp. 221–242. 

See also

This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
 
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
 
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.
 


Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.