Presentation on theme: "Agent Based Software Development"— Presentation transcript:
1 Agent Based Software Development Michael Luck, Ronald Ashri and Mark d’Inverno
2 FIPAThe Foundation for Intelligent Physical Agents (FIPA) is a non-profit organization founded in 1996 to promote interoperability between heterogeneous software agents and agent-based systems.It is the major standards body in the area of agent-based computing, with standards in areas such asAgent Communication Languages (ACLs)Interaction Protocols (IPs)content languagesagent managementmessage infrastructuresFIPA standards cover many of the main areas of agent development
3 To date, there are nearly 20 implementations of the current generation of specifications, many open source, with significant user communities.In late 2000, FIPA adopted a new process for development of its standards (draft, experimental and final standard levels of development)The consortium recently voted to approve the first full set of specifications to the final standards status after extensive comment periods.New standard level documents were ratified in November 2002, finalizing and formalizing the experimental level specifications that proceeded them.It is expected that implementations will begin to adopt the new standards as part of their new development cycle.
4 FIPA Abstract Architecture The FIPA Abstract Architecture Specification gives an overall description of the FIPA standard set.It defines core notions such as agents, services for agents and elements necessary to enable agents to handle multiple message transport systems, agent languages and other components.
5 Mappings to the Abstract Architecture The network architecture enables the reification of FIPA agent concepts into target technology environments (concrete realizations).The abstract architecture definitions act as reference points for defining mappings between the different realizations
6 Abstract Architecture Specification The abstract architecture specification is useful for orientation but not essential for development of specific implementationsMost implementations derive from agent management, agent communication and other concrete specifications (below the abstract layer)There are two reifications of the architecture:The Java Agent Services API: designed to validate the Abstract ArchitectureThe FIPA2003 Standard Specification setThese concrete specifications generally implement and specialize the abstract architecture
7 FIPA Agent Management The FIPA Agent Management Specification defines type of runtime environment that FIPA agents inhabitservices expected to be available to themmanagement actions that can be carried out by or for themIt introduces the notion of an agent platform as the key building block of such an environment.FIPA agent platforms include the following mandatory components:an agent runtime environmenta Directory Facilitatoran Agent Management Systemmessage transport systems
8 Each component is specified in detail in terms of functionality and interfaces (for the agent runtime in terms of a lifecycle) and is widely implemented in a range of FIPA agent platform implementationsNote that management of platform resources is currently not usually handled by the AMS in most platform implementations but by external user accessible interfaces
10 Agent runtime environment Agent runtime environment defines the notion of agenthood used in FIPA and a lifecycle for such systems.A platform can implement its runtime environment in almost any wayinside a single Java virtual machineusing a distributed object system to manage separate processes on many remote machinesetc
11 Directory Facilitator A Directory Facilitator (DF) acts as a yellow pages service for the agents on the platformIt enables them to advertise and discover service offeringsProvisions are made for the federation of DFs between different agent platforms
12 Agent Management System An Agent Management System (AMS) acts as a white pages serviceAgents registered on the platform can locate one anotherIt is the main authority on the platform controlling service and resource use (enforcing the agent lifecycle)
13 Message Transport Systems Message Transport Systems provide communication services for on and off platform agent message exchange
14 Agent Message Transport Service Message transport specifies encodings, interfaces and subsystems for message exchangeMessage Transport Service specifies the overall message transport architectureMessage Transport Protocol for IIOP, and Message Transport Protocol for HTTP define low level details required for on-the-wire transfer of messages between interfaces on different agent platformsMessage Transport Envelope Specifications define how metadata required for message forwarding over individual Message Transport Protocols (MTPs) is encoded. In principle, they are reusable across different MTPsSeveral ACL message representation specifications that define the precise syntax to be used when sending messages. (implemented by a number of platforms)
15 Agent Communication Channel These components fit together to enable message transport between agents in two different waysFIPA also allows agents to interact in an arbitrary direct way but this does not require standardsFIPA defines external transport interfaces of agent platforms (via agent communication channel - ACC) in terms of overall transport architecture, MTPs and message envelopesthe resulting external interfaces can then be accessed by either ACCs (method 1) or agents (method 2) directly from other platforms or on the same platformthe internal interface of an agent to its platform's messaging services is not defined, to provide flexibility for toolkit developers.
17 Agent Communication Standards Need to define is the precise meaning (or semantics) of the bits being transportedFIPA-ACL Message Structure Specification defines the framework for FIPA-ACL messages, the components that must be present and how they must be interpreted.A library of communicative acts or performatives defines formal and informal meanings (semantics) for a set of different communicative acts specified by FIPA.FIPA Protocols define a number of different interaction sequences (message sequences) for standard situations that may occur in agent systems, eg. a request sequence, Contract Nets, auctions, etc.Content Language defines (FIPA-SL) for use in FIPA Messages (also used in all agent management interactions and for formally defining the FIPA-ACL semantics)
18 Generic communication stack LevelDescriptionExampleConversation (Interaction Protocol)A sequence of communicative acts related to a particular topicSequence of messages about buying and eating an appleCommunicative ActCommunication (Expression of Agent Attitude) about a piece of contentRequesting somebody to perform action of …Content ExpressionDescription of states of world over objectsExpressing the action of eating an appleOntologyDescription of objects in domainMeaning of ``apple'’ and ``eat''SyntaxRepresentation of ContentHTML, JPG, SQLProtocolData exchange protocol (ISO layer7)HTTP, GIIOP, SMTPTransportPhysical transport and low level transport protocols (ISO layers 1-6)Optical Fiber, TCP-IP, etc
19 Together, these specifications can be used to construct interactions between agents Protocols are often used first, indicating which ACL messages (performatives) are neededThe ACL message structure, syntaxes and definitions are then used to construct messages, and FIPA-SL is used to express the message contentNote that FIPA remains neutral on the ontology language to be used for expressing domain knowledge associated with a communicationIncreasingly, though, FIPA platform implementations seem likely to support DAML-OIL or OWL as the ontology representations of choice
20 Agent message exampleRepresenting a query for any known object matching the object variable ?x?x is just defined as meeting the criteria for the predicate is-car,which must be defined in the car ontologyThe query-ref performative indicates that the agent is asking about information related to a particular reference (in this case represented by variable ?x.(query-ref:sender (agent-identifier :name i):receiver (agent-identifier :name j):ontology car:language FIPA-SL:content“((any ?x (is-car ?x)))”)
21 ApplicationsFIPA Nomadic Application Support Specification supports deployment of FIPA compliant systems in limited connectivity environments.Includes provisions for management of communication channels, management of directory entries and negotiation of message transport characteristics.The FIPA Device Ontology Specification defines a standard nomenclature for specifying device characteristics used in mobile environments.Quality of Service Ontology Specification defines a standard nomenclature for specifying quality of service characteristics used in mobile environments.
22 Java Agent Services (JAS) Concrete instantiation of the abstract architecture in the form of a Java APILed by several FIPA member organizations, including Fujitsu Laboratories of America, Sun and IBMThe resulting Java Agent Services project followed the Sun Microsystems Java Community Process (JCP) to register the API in the “javax.agent’” namespace.Reference implementation has been produced.More information at
23 Other FIPA Specifications FIPA Ontology Service Specificationuseful model of functionality and interfaces providing ontological informationFIPA Application Specifications are not yet standardsPersonal Travel Assistant, Audio-Visual Entertainment and Broadcasting, Network Management and Provisioning and Personal Assistant provide motivating scenariosFIPA Agent Management Support for MobilityUseful starting point for developers of mobile agentsHowever FIPA is no longer active in area of mobile agents
24 Other FIPA Specifications FIPA Domains and Policies SpecificationHigh level description of notions such as domain, policyA range of use cases and descriptions of architectural elements needed for implementationStill incomplete but already provides a useful introduction to the issues involvedAll these are generally not in active use, but are useful for developers working on specific problems in these areasAvailable from FIPA website
25 KQMLDeveloped as part of the DARPA Knowledge Sharing Effort in the early 1990'sLanguage specifications provide syntax and semantics for exchanging information and knowledgeDesigned to enable construction of large scale knowledge bases via more flexible data exchangeRapidly adopted by agent researchers to structure message exchanges between systemsAs with FIPA-ACL, it is based on Speech Act Theory and notion of performatives (around 35 compared to FIPA's 20)
26 Example KQML messages (ask-one :content (PRICE IBM ?price) :receiver stock-server:language LPROLOG:ontology NYSE-TICKS)Asking for a single stock price quote for a particular company(subscribe:content(stream-all(PRICE IBM?price)))Requesting future updates on all price changes for the same stock item - note the embedded message inside another message.
27 KQML vs FIPA ACL Several flavors of KQML emerged Eg. Stanford's KQML+KIF ACLMain differentiating factor is a recent trend towards the greater adoption of FIPA-ACL, which nowhas a greater number of available toolkits and active usersis more uniform in use (there are few dialects)Differences in the semanticsProblem if implemented agents were to actively use the modal logic levels of the languages (relating to belief, desire, intention, uncertainty, etc.) for reasoning.Some toolkits are based primarily on KQMLEg. Stanford's JatLiteKQML resources at
28 Mobile Agent Standards Mobile agents can freeze execution (code, state and data) at a runtime location (virtual or physical machine) and be transported via a network to another location to continue operationThe development of standards is challenging:The range of systems is wide, from specially coded self-executing TCP-IP packets in active networks to mobile CORBA (OMG's Common Object Request Broker Architecture) objects as in Voyager more complex AgletsLevel of interoperability is different from message exchanges; agents arriving at a location must be able toexecute (code compatibility)access local resources (file handles, threads, etc.)be securely sandboxed for agent and platform security
29 Available mobile standards Standardization is thus concerned more with code level, and issues are more closely related to distributed object technologies such as CORBA than FIPA standardsBut both levels together would be required to develop what might be regarded as a complete mobile agent systemThe main standards efforts in the mobile agents area to date have been:OMG MASIF (Mobile Agent System Interoperability Facility) SpecificationFIPA Agent Management Support for Mobility Specification
30 Both of these groups are now unfortunately relatively inactive and have not produced complete standards documents. However, results include reference models for mobility that may be useful as a basis for future standards.To date still rely heavily on all participants using the same mobile agent toolkit, creating single vendor environments that cannot strictly be described as standards based.In the future, however, one of these toolkits may become sufficiently established to create a de facto standard in the area.
31 OMG MASIFOriginally a submission by organizations including General Magic, IBM, Crystaliz and GMD FokusResulting specification was completed in 1998:Agent Management enables remotely creating agents, starting and stopping them, and other lifecyle functionsAgent Tracking addresses location of agents in a mobile agent environment, including remote queries to directories of agents on different platformsAgent Transport enables receiving and fetching agent class files between platforms and making them available for agent management functions and executionThe first two elements are considered easy to implement, but the last is more complex
32 MASIF terminologyMASIF defines a reference terminology for mobile agent systems containing definitions for notions of agents, mobility, state and, in particular, several notions of locality.A place is a context in which an agent can execute, so a place is an execution environment.An agency is an agent system. An agency can have several places. An agent system represents a platform that can create, interpret, execute, and transfer agents.A region is a group of agencies that belong to a single authority.
33 MASIF standardsThe technical specifications are defined in terms of standard CORBA services (naming, lifecycle, externalization and security services) available in many CORBA ORB implementations.The standards are captured in two Interface Definition Language (IDL) interface definitions:MAFAgentSystem and MAFFinder must be implemented by mobile agent platforms in order to be considered compliant with the MASIF standardThey allow the specified remote operations implied by the standard to be carried out transparently, whatever the software platform the remote platform is actually using.
34 FIPA Agent Mobility Standard FIPA Agent Management Support for Mobility Specification was part of FIPA'98 but not developed after 1999Sought to determine minimum provisions necessary to allow agents to take advantage of mobility:definition of terms related to mobility (stationary agents, mobile agents, migration and so forth)management actions to be supported by a FIPA platform to provide mobile agent functionalityontology specification for elements of agent profile that described agent data, code and other associated information in a standard frameworka mobility lifecycle and different mobility protocols describing different modes of agent transfer between systems.