Presentation on theme: "Agent Based Software Development"— Presentation transcript:
1Agent Based Software Development Michael Luck, Ronald Ashri and Mark d’InvernoChapter 3: Agent Toolkits
2IntroductionAgent-based systems require significant infrastructure providing several layers of functionality, from message transportation to dynamic discovery mechanismsUnrealistic to expect adopters of agent technologies to develop such infrastructure for each application at handAgent Toolkits are software for deploying an agent infrastructure and for aiding in the development of agent applicationsToolkits provide the basic building blocks to support an agent-based system allowing developers to focus on the domain-specific application challenges
3Introduction www.agentlink.org lists more than 100 toolkits There is as yet no accepted overall generic architecture although overall patterns are beginning to emergeReview some of the most influential toolkits from both academia and industry
4Generic Toolkit Framework In order to compare and contrast toolkits in a consistent manner we make use of a generic toolkit frameworkThe development of individual agents is separated from their interface to the environment.Distinguish between high and low-level servicesDistinguish between agent-building software and software to manage a functioning agent system
5ZEUS - BackgroundThe Zeus agent toolkit has been under development since 1997 at BTexact.According to the Zeus philosophy, there are five issues that represent the main infrastructural problems that need to be tackled by an agent toolkitInformation Discovery – finding out about other agentsCommunication – supporting message exchangeOntology – common language for describing application domainCoordination – mechanisms for coordination actions between agentsLegacy software integration
6ZEUS - AgentsZEUS Agents are deliberative, goal-directed, versatile, truthful and temporally continuousThe generic agent architecture provides all the rudimentary tools to form the base of an agent functioning in a variety of domains
7ZEUS – Multi-agent Systems Low-level servicesAll communication in ZEUS is based on message exchange using the TCP/IP protocol and ASCII messagesHigh-level ServicesZeus makes use of utility agents that provide support to agents performing application tasksThe Agent Name Server provides a white pages serviceThe Facilitator provides a yellow pages serviceAgent Communication uses FIPA ACL
8ZEUS – Supporting Software ZEUS provides a graphical agent building environmentOntology EditorZEUS Agent EditorManagement ServicesSociety tool – visual information about message exchangeReport tool – progress of the main tasks and execution state of each subtaskControl tool – allows execution states to be alteredStatistic tool
9RETSINA - BackgroundRETSINA (Reusable Environment for Task Structured Intelligent Network Agents) is a multi-agent systems toolkit developed over a period of years, since 1995, at the Intelligent Software Agents laboratory of Carnegie Mellon University’s Robotic Institute.The design of RETSINA is based on two central assumptions about agent applications developmentMulti-agent systems infrastructure should support complex social interactions between agents through the provision of services based on predefined conventions on how social interaction will take place. These predefined conventions refer, mainly, to the use of a common communication language, protocols and ontologies.Agents in a multi-agent system engage in peer-to peer relationships. Any societal structures, such as hierarchies, should emerge through these peer-to peer interactions, and should not be imposed by a centralized approach.
10RETSINA – Agents IAn agent in RETSINA is understood, in abstract terms, as a standalone survivable piece of code with communicative and intelligent behavior.The agent-specific functionality is separated from operation within specific operating environments by placing agents in an AgentShell, which provides the necessary interfaces for interaction with the underlying operating system.The reasoning and planning for agents is handled by the RETSINA Agent architecture
11RETSINA – Agents II There are four types of RETSINA Agents Interface Agents interact with users by receiving inputs and displaying results.Task Agents carry out the main problem-solving activities by formulating plans and executing them by coordinating and exchanging information with other agents.Information Agents interact with information sources such as databases or web pages. The task agents provide the queries, and the information agents are specialized in retrieving the required information by interfacing with databases, the web, and so on.Middle Agents provide the infrastructural support for the discovery of services between agents.
12RETSINA – Multi-agent systems Low-level services are handled by:The RETSINA Communicator module, which enables agent-agent communication and abstracts beyond the underlying physical transmission layer and network typeAgent discovery is facilitated through the use of Simple Service Discovery Protocol, which is part of the Universal Plug-n-Play ad-hoc networking effortHigh Level ServicesAgent Name Server that maps agent identifiers to logical network addressesMiddle Agents and a Language for Advertisement and Request for Knowledge Sharing (LARKS)
13RETSINA – Supporting Software The RETSINA Agent Foundation Classes are integrated within the Microsoft VisualStudio development environment.For debugging, RETSINA provides a graphical tool that enables developers to receive, compose and send KQML messages to agents in order to test their ability to respond to messages.RETSINA provides three types of management:The Logger is a service that is able to record the main state transitions between agents for inspection by developers.This logging service can be connected to an ActivityVisualizer, which provides a graphical representation of the activity in a RETSINA application.A Launcher service can coordinate the configuration and startup of infrastructural components and agents on diverse machines, platforms and operating systems from a single control point.Finally, a graphical tool is available for managing Agent Name Servers, allowing direct inspection of the information currently registered with an ANS, and the configuration of the ANS itself
14IMPACT - BackgroundIMPACT (Interactive Maryland Platform for Agents Acting Together) is a joint research project between the University of Maryland in the USA, Bar Ilan University in Israel, the University of Koblenz-Landau in Germany, the University of Vienna in Austria, and the University of Milan in Italy.The view of what constitutes appropriate infrastructure support and software agent development is illustrated through ten desiderata that the IMPACT project aims to meet:It should always be possible to agentize non-agent programs.The methods in which data is stored should be versatile in recognition of the current diversity in data storage mechanisms.The theory of agents should be independent from the specific actions any agent may perform. Such actions are a parameter of the agent.The decision-making mechanisms of each agent should be clearly articulated in order to enable modification at any point of an agent’s life.
15It should be possible to reason about beliefs, uncertainty and time. Security mechanisms are critical to protect the infrastructure from malicious agents, and to protect agents from other agents assuming false identities.There should be some method of providing guarantees as to the performance of agents.A theory of agents needs to be accompanied by an efficient implementation and should be such as to allow for an efficient implementation.Infrastructure reliability is paramount.Testing a theory through practical applications is essential.
16IMPACT - Agents Agents in IMPACT are divided into two parts: the software code, which consists of data types and functions that can manipulate those data types; andthe wrapper, which provides the actual intelligent agent functionality.IMPACT places particular importance on the need to specify exactly what an agent can and cannot do through action constraints and integrity constraints
17IMPACT – Multi-Agent systems Agents in IMPACT operate in a dedicated platform called an agent roost, which provides network connectivity and manages the agents operating within itHigh-level services come in the form of:Yellow Pages services that are supported by:The Type service, which allows developers to define relationships between types (e.g. japanese_car can be defined as a sub-type of car)The Thesaurus service, which allows the matchmaking algorithm to discover information such as car and automobile are synonyms
18IMPACT – Supporting Software The IMPACT toolkit provides an agent development environment, called AgentDE, that allows developers to define every aspect of the agent that forms part of the agent wrapper.The AgentDE can maintain a library of actions, agent programs, service descriptions, and other definitions used during development so that they can be quickly recalled and reused.
19JADE/LEAP – Background JADE is an open source project distributed by TILab (Telecom Italia Labs) that has been under development since 1999 at TILabThe JADE (Java Agent Development Environment) toolkit provides a FIPA compliant agent platform and a package to develop Java agents.LEAP is a lightweight implementation of the core functionalities of the JADE FIPA platform, and can be used in conjunction with the JADE libraries for agent development.
20JADE - AgentsThe JADE toolkit facilitates the development of agents that can participate in FIPA compliant multi-agent systems.It does not define any specific agent architectures but provides a basic set of functionalities essential for an autonomous agent architectureAutonomy is interpreted as an implementation of agents as active objects (that is, with their own thread of operation).The requirement for sociality leads to enabling agents to hold multiple conversations on a peer-to-peer basis through an asynchronous messaging protocol.
21JADE – Multi-agent systems Low-level Services - A JADE Platform is made up of a number of Containers that operate on individual machines.A Platform can be thought of as defining a common application domain, and agents within this platform have access to the same infrastructural services.Each Container can have a number of agents within it.Containers handle communication between agents and access to Platform services.Communication between platforms is based on FIPA-defined Message Transport Protocol (MTP) over which ACL messages can be sent.The high level services offered by JADE follow the FIPA specificationsEach JADE platform has access to an Agent Management System, which manages the platform and supervises access to it as well as providing White Pages services.Yellow Pages services are offered by Directory Facilitators and several can exist within a FIPA platform. JADE provides implementations of the SL-0 content language and Agent Management Ontology that is used by the AMS and DF services to communicate.
22JACK - BackgroundJACK is an agent development environment produced by the Agent Oriented Software Group - first released in 1998 and currently at version 5.0There are two principles underpinning the development of JACK.Agent-oriented development can be thought of as an extension of object-oriented development. As a result, JACK operates on top of the Java programming language, acting as an extension that provides agent-related concepts.Agents in JACK are intelligent agents in that they are based on the Belief-Desire-Intention architecture.The JACK development environment can be divided into three main components.The JACK Agent Language is a superset of the Java language, and introduces new semantic and syntactic features, new base classes, interfaces, and methods to deal with agent-oriented concepts.The JACK Compiler compiles the JACK Agent Language down to pure Java, so that the resulting agents can operate on any Java platform.Finally, the JACK Agent Kernel is the runtime program within which JACK agents operate, and provides the underlying agent functionality that is defined within the JACK Agent Language.
23JACK - AgentsAlthough JACK can, in principle, support a wide variety of agent architectures, the default architecture is the BDI architectureAgents schedule actions, including concurrent actions, using the TaskManager.Beliefs represent the knowledge that an agent possesses about the world.Plans are sequences of actions that agents execute on recording an event.Events within the agent architecture are divided into:external events (such as messages from other agents);internal events initiated by the agent itself;and motivations (which are described as goals that the agent wants to achieve).Capabilities provide a means for structuring a set of reasoning elements into a coherent cluster that can be plugged into agents.
24JACK – Multi-agent systems Networking capabilities in JACK are based on UDP over IP, with a thin layer of management on top of that to provide reliable peer-to-peer communication.Agent communication between agents is handled by the JACK Kernel, which handles the routing of messages and the interface with lower-level networking infrastructureA rudimentary Agent Name Server is providedFIPA ACL is supported
25JACK – Supporting Software JACK provides a comprehensive, graphical agent development environmentA high level design tool allows a multi-agent system application to be designed by defining the agents and relationships between them, in a notation similar to UML.A plan editor allows plans to be specified as decision diagrams.A plan tracing tool and an agent interaction tool allow developers to visualize the monitoring of an application.An application can be monitored through an Agent Tracing Controller, which allows a developer to choose which agents to trace and provides a visual representation of the agents stepping through their plans.
26Living MarketsThe living markets toolkit is developed by Whitestein Technologies (who acquired Living Systems AG)The living markets toolkit consists of:A base agent server, which handles the application domain independent issues relating to agent developmentSpecific solutions for specific markets (ranging from transportation to intra enterprise production and deal flow optimization) are built on top of the agent server.
27Living Markets - Agents Agents in living markets are understood as proactive, goal directed entities able to perform actions and perceive the environment. They have specific domain expertise and may adopt roles.Application agents are domain specific agents and represent the main core functionality of the system.Integration agents are dedicated to integrating the rest of the system with existing systems outside of the living markets environment.Interface agents handle interaction with people for the system as a whole.System Agents are the agents that handle the management of the living markets system itself, performing tasks such as performance monitoring and load balancing.
28Living Markets – Multi-agent systems Agents operate within the living agents run-time system (LARS), which provides the required communication channelsThe living markets system offers a number of high-level services through a dedicated toolkit, divided in four tiersSearch for partners, products or servicesMatching of service providers to service requestsDynamic pricing mechanisms, negotiationClearing and settlement of deals
29Living Markets – Supporting Software Agent development is supported by an integrated graphical agent development environment, the living markets Development SuiteAllows application developers to visually design agent scenarios, which are representations of the main agents in the system, and the communication flows between themManagement in a living markets system is divided between day to day management of entire systems and more detailed management of agents and serversGeneral management capabilities are provided through a living markets Management Console, which provides a web-based interface to allow day to day administration of the application.Individual agents can be managed through a Control Center which allows access to the LARS server
30Discussion - AgentsOf the six toolkits compared, three offer variations of the BDI architecture for agents (ZEUS, RETSINA, JACK), JADE and living markets are relatively neutral, and IMPACT represents a significantly different stanceThere is as yet little agreement or means of measuring the suitability of one approach versus anotherDevelopers are left to make their own choice based on a variety of factors from ease of use and personal preference to application requirements
31Discussion – Multi-Agent systems Low-level servicesOf the systems reviewed only ZEUS and JACK make use of just TCP and UDP for communicationIMPACT, living markets and JADE make use of RMI which is costlyEach approach has its relative benefits but the current trend is certainly towards more lightweight approaches, with Web Service technologies beginning to play an important role – although not yet integrated with most agent toolkitsThere are clear management benefits to having agents operate within dedicated platforms (JADE, living markets) since they can easily offer monitoring and management toolsStand-alone architectures, however, offer more flexibility
32Discussion – Multi-Agent systems High-Level ServicesMatchmakingPredominantly via Yellow Page servicesCommunication based on FIPA ACL (except IMPACT)Ontology support to varying degreesTruly open agent systems are yet to be achieved – no agent developed for one system would easily communicate with an agent developed for another system without considerable modification
33Supporting SoftwareThere is a clear distinction between commercial software and research lab efforts, with commercial software offering extensive and integrated development environments while research software is more rudimentaryEach development environment adopts a relatively ad-hoc approach to development and there is no support for a design methodologyAll toolkits stress the importance of management and monitoring software, for which there are varying degrees of support
34SummaryThere are now numerous examples of agent toolkits that have been used to create a number of applicationsAs yet there is little consensus as to which approach is most suited, although broad patterns are emerging, especially on issues such as matchmaking and communication languagesIncreasingly, existing middleware technologies are being adopted, allowing toolkits to focus on the purely agent-related issuesFuture challenges include:Truly open systemsSophisticated security mechanismsTackling scalability issuesAppropriate design methodologies