BT FIPA Proposal



An Architecture, Life-cycle & Generic Model for Service-Oriented Agents


Paul O'Brien & Mark Wiegand

Intelligent Systems Research Group

Advanced Applications & Technology

BT Labs

Martlesham Heath

Ipswich IP5 7RE

U.K.

Filing : Turin-1-97.doc

Status : Issue

Issue : 1.0

Date : 8/01/97




Intelligent Systems Research

Advanced Applications and Technology






0. Summary

This proposal describes a service-oriented agent architecture, an agent service management life-cycle and an associated generic reference model. This proposal is intended to meet the requirements described in section 5.2.4 for an agent life-cycle model and provide a framework for the analysis of proposals.

1.0 A Service-Oriented Agent Architecture

The architecture consists of computer-based agents that can communicate and negotiate with one another to reach agreement on how services are to be provided across distributed computing platforms. The agents then manage the execution of the tasks (i.e. applications) and component services which make up an agreed service. An agent is characterised by the services that it provides.

There are three high level requirements of the architecture :

1. Autonomy - agents are empowered to define how they will manage their local tasks and services.

2. Concurrency - services must be able to be run concurrently, with the interactions monitored and managed automatically.

3. Extensibility - Agents will need to define new services incrementally, without the need to redesign an entire distributed system.

The multi-agent system architecture is designed to ensure maximum flexibility to adapt as the agent service market changes. The autonomy of each agent and the agreements it enters into with other agents is the key to this flexibility. An agent will behave in a proactive manner where possible; for example it can enter into negotiation in anticipation of a future need for some component service. Agents use negotiation as a mechanism for the distribution of resources, problem solving effort, and the management of dependencies between the activities to be carried out. The result of negotiation is a service level agreement. The existence of such an agreement is both a precondition for a service to be provided, and serves to bind future activity and any subsequent resource commitments. This architecture provides a method for designing service-oriented agent systems.

Agency

The basic building block of the architecture is shown in Figure 1. This basic unit comprises an agent and the tasks that are under its direct control. This unit provides one or more services all of which are under the control of the agent. In a `free market' model each of these units would be able to negotiate with any other agent when supplying a service. Furthermore, an agent could negotiate with any other agent in order to enhance its services or to create new services.


FIGURE 1. Basic Unit of Agent Organisation

The free market agent model is very simplistic, and not practical in a commercial environment. Commercial environments are founded on organisational models where an organisation is logically divided into a collection of services. This architecture draws upon this principle to group services and tasks where it makes pragmatic sense. A grouping of tasks and services is known collectively as an agency.

An agency is defined recursively: an agency consists of a single responsible (or controlling) agent, a (possibly empty) set of tasks that the responsible agent can perform, and a (possibly empty) set of sub-agencies. An agency must contain at least one task or two sub-agencies for it to be meaningful. For example, in Figure 1 agency D has a single responsible agent that has two distinct tasks (Task3 and Task4) and two sub-agencies (agencies E and F). (A task is an atomic service; a service being some unit of problem solving activity performed by some application). The responsible agent represents the interests of the agency to its peers. Peer agencies are those with responsible agents that may communicate without crossing an agency boundary. For example, in Figure 1 agency F is a peer of agency E and agency A is a peer of agency D, but agency E is not a peer of agency A.

Any communication with the agency must go through the responsible agent. A sub-agency (e.g. agency F is a sub-agency of agency D) typically behaves in a co-operative manner towards its responsible agent, this agent being responsible for representing the interests of the agency in the wider community. This relationship between sub-agency and responsible agent can be viewed as a type of social commitment, and provides a mechanism for the encapsulation and abstraction of services. This commitment can be enforced by restricting access to/use of agent services to the responsible agent. Suppose that the responsible agent requests a service from one of its sub-agencies. This request cannot be flatly refused, a legitimate reason must be given. However, a sub-agency is not a subroutine, but rather a subsidiary agency. A sub-agency retains a high degree of local autonomy, but will necessarily co-operate with the responsible agent where possible.

The hierarchical structuring of agencies in the architecture provides a mechanism for the encapsulation and abstraction of services. It allows agents to represent and reason about services at an appropriate level of abstraction. To the agent managing a task, that task can be viewed as an atomic service with well defined input, output and functional specifications.

During its lifetime, an agent may register new services as they become available, or withdraw services if necessary (e.g. due to other agents or tasks becoming inactive). An agent will agree to provide a service that it has registered only if a mutually advantageous agreement can be made with the agent requesting that service. The agent registering a service is responsible for negotiating the terms under which that service may be provided to other agents, and the reliable execution of the service under the terms of such an agreement. If an agent agrees to provide a service to another, it is referred to as the `server' agent, and the agent receiving the service is the `client' agent for that service (roles that may be reversed). (Note that this characterisation of agents as client agents and server agents is different from the use of these terms in more traditional client-server systems; the agents are autonomous, and will only co-operate under a negotiated agreement.)

A Virtual Agency

The grouping of services in support of a single service instance is termed a virtual agency. It is a collection of tasks and sub-services involved in the provision of some service by a controlling agent. The controlling agent will have (or require) contracts for the sub-services that it requires from other participating agents. The advantage of virtual agencies is that services can be provisioned automatically in real-time by pooling resources.

2.0 Agent Service Life-cycle Model

The following life-cycle model describes the full life-span of an agent, the services it provides, and each invocation of that service. It does not define the internal states of an agent as this is not considered a topic of standardisation in FIPA. The model consists of three distinct life-cycles : agent service development life-cycle, agent service registration life-cycle, and agent service-instance usage life-cycle.


FIGURE 2 : Agent Management Life-cycle Model

Agent Service Development Life-cycle

The Agent service development life-cycle consists of those management activities involved in the construction, modification, maintenance and withdrawal of an agent service. A single agent can offer more than one service.

An important aspect of development is the ability to verify and validate an agent service to ensure it meets its functional requirements before it is placed on-line. This is particularly difficult when dealing with autonomous systems that are capable of adaptation over time. In addition to this, it is important to establish suitable minimum levels of performance, resilience and stability so that an agent offers a suitable Quality of Service.

The developers of an agent service must be aware of the availability and interfaces for component tasks and component agent services.

Like most large distributed systems, agent services need to be defined incrementally without the need for an entire distributed system redesign. Similarly, some agent services can be critical and so would be upgraded and registered on-line.

Agent Service Registration Life-cycle

Agent Service Registration

Agent service registration ensures that users and agents are aware of the existence of a new agent service. Agent registration can be achieved by a number of means including :

Agent Service Suspension

Agent services can be temporarily suspended for a variety of reasons both technical (e.g. the upgrading of software) and commercial (e.g. no-longer profitable to offer service). Suspension could involve the removal of a service offering from a trader or broadcasting the unavailability of a service.

Agent Service Usage Life-cycle

Provision

Provisioning occurs when a registered service is requested from or offered by an agent. This might involve agents entering into negotiation using an inter-agent negotiation protocol. The result of a successful process of negotiation is an agreement (referred to as a service level agreement, or SLA) to provide some service under terms and conditions which are acceptable to all parties. Agents negotiate over the contents of an SLA, and if the agents involved in negotiation agree on a final SLA this represents a binding contract between these agents.

The SLA can be a standard unit of exchange between agents, and hence serve to focus the negotiation process. When negotiating over the contents of an SLA, agents must not only agree how a problem is to be solved among the participating agents, but also under what conditions these problem solving activities should take place.

During negotiation the values of parameters in an SLA are agreed (e.g. cost) and if successful a service instance is executed, (see execution). If the negotiation is not successful, then no SLA is made and no service instance executed.

The progress towards an agreement depends on the strategies adopted by the agents involved, which may be different. However, in a practical system agreements must be made in a timely manner, and avoid unnecessary communication (especially in domains such as the Internet where bandwidth is at a premium). Hence, there are three primary motivating factors in the development of inter-agent negotiation mechanisms:-

(1) to minimise computational effort in generating a response;

(2) to minimise communication overheads;

  1. to retain as much as possible the autonomy of each agent involved in the negotiation.

In general, the convergence of the negotiation process (and hence the typical volume of communication required) depends on the relationships between the parties involved, and the negotiation strategies employed.

For agents to negotiate they require:-

(1) a protocol;

(2) a data structure that represents the result of negotiation (i.e. something to negotiate over);

(3) a reasoning model.

Delivery

Service delivery involves the agent executing an agreed service by executing functions it can perform itself, or invoking functionality from external tasks. An SLA governs the terms and conditions for the delivery of a service.

When a service is successfully completed to the satisfaction of both agents the service is deemed completed.

If exceptions occur which cannot be resolved by the agent during execution and which result in the agent not meeting its obligations described in the SLA, then the service reverts to the provisioning phase for re-resourcing or re-negotiation.

Completion

On completion of an agreed service an agent may dispose of the service instance created and recover resources that were reserved to support that service. Depending on the application context an execution record might be recorded in support of a service audit trail.

Failure

On failure of an agreed service an agent may dispose of the service instance created and recover resources that were reserved to support that service. Depending on the nature of the failure corrective action (e.g. logging a fault) might be necessary..

Re-negotiation

Agents can agree modifications to an existing SLA if the original terms and conditions cannot be met. If re-negotiation fails then the service can no longer be provided and is terminated.

3.0 Generic Agent Reference Model

There are four key components and five bi-directional interfaces in the generic agent reference model, (figure 3). These interfaces may be realised in a variety of ways in the design of an agent system.


FIGURE 3. Components of an Agent System and Key Agent Interfaces

The key components of the reference model are :

User Interface : The user interface allows users to access agent based services. This can be achieved by a variety of terminal devices (e.g. Personal Digital Assistants) and software packages (e.g. World Wide Web browser).

Agent : An agent is a co-operating knowledge based system capable of communicating and negotiating with other agents and users for the provision and execution of services.

Agent Management System (AMS) : The AMS supports developers in engineering and monitoring agent-based systems. Ideally standardised system languages and interfaces are provided that allow developers to implement and maintain the agent. The design of an agent system involves the transformation of some description of an agent service into a number of communicating and co-operating software agents.

The monitoring and administration of a number of agents demands the ability to collate information from all the agents involved, filter this information, and present it in a way that allows an owner/manager to understand the contribution from all agents in the enterprise, and to see where problems might occur.

Task : Agents can access external systems in support of services they provide to other agents and users. A task is an application that is managed by an agent in support of the services it provides.

The key interfaces in the reference model are:-

A. The task management interface (Section 5.4 FIPA Call for Proposals).

This is an agent-task communication interface that allows an agent to monitor and control applications that are under its direct management or it can access in the execution of services.

B. The agent-user interface. (cf. Section 5.3.2 FIPA Call for Proposals)

This interface supports user interaction with the agent.

C. The agent-agent interface. (cf. Section 5.3.2 FIPA Call for Proposals)

This is an agent-agent communication interface that supports both inter-agent negotiation and service management when an agreed service is being delivered.

D. The management system-agent interface.

This interface supports agent management functions (i.e. monitoring, maintenance etc.) both pre-service and in-service. Whether this interface is a topic for standardisation is an area for debate. The choice is between having an open management interface to agents or keeping it specific to the organisation/individual that is responsible for that agent and its services.

E. The task-task interface

This is likely to be an application specific interface supporting application interaction as agreed by the managing agents and should not be defined by FIPA. Although the nature of this interface is outside the scope of FIPA, agents could be responsible for managing the use of such interfaces. For example, if the two applications are two video conferencing terminals agents could manage when and how the two applications establish a connection.






5.0 Bibliography

O'Brien P.D. & Wiegand M.E. (1996). Agents of Change in Business Process Management, in BT Technical Journal 14(4):133-140.

O'Brien P.D. & Davison R.G. (1994). Decision Support for Service Provisioning, BT Technical Journal, 12(4).

Wiegand M.E. (1996) Building Practical Agent-based Systems (tutorial notes), 1st International Conference on the Practical Applications of Intelligent Agents and Multi-Agent Technology, London, UK, pp.345-360.

Nwana H.S. & Ndumu D.T. (1996) An Introduction to Agent Technology, in BT Technical Journal 14(4):55-68

6.0 Document History

Issue Date of Issue Comments Reviewer
1.0 8/1/97 - DN HN
       

Appendix : General Issues

Agent Heterogeneity

To enable functions such as negotiation and service management, each agent must have the ability to communicate with agents that it needs to interact with through some mechanism. However, agents may be developed for different purposes, by different people at different times, and so neither the languages used in the development of the agent software nor the methods of representing knowledge in each agent will be uniform; i.e. agents are heterogeneous.

Common Information Models

In common with a number of existing approaches to software agent inter-operation in order for an agent to collaborate with other agents it is necessary for it to communicate using a common expressive language. This common language consists of a protocol (i.e. a set of speech acts) and a syntax for expressing information. Furthermore, for one agent to understand the meaning of another's communicative actions they must either share a common information model or have the ability to transform information between their respective models. This use of a common knowledge sharing language and a common semantic interpretation of the symbols used within messages composed using this language enables agents within the community to:

(1) know the intention of a communicating agent via a set of speech acts (e.g. is the message intended to inform, deny, or request some proposition?);

(2) interpret the contents of the message through the use of a common syntax;

(3) understand what the contents of the message mean via the use of ontological commitments (e.g. what is the meaning of the proposition that the agent is being informed of, that is being denied, or requested).

An agent must use one of a set of specified communicative action types to specify the intention of a message. Consider the action "propose": this indicates that the agent sending the message intends the content of the message to be interpreted as a proposal for the provision of a particular service that the recipient has registered as being able to provide.

As well as understanding the intention behind the message, a recipient must be able to interpret the contents of a message for it to be understood. Therefore, either each agent must use the same syntax to communicate information, or the syntax used must be explicitly stated in the message. In the latter case, for agents to communicate they must both be able to interpret the syntax specified in the message. The final requirement for effective inter-agent communication is that the agent receiving a message must be able to understand the intended meaning of the symbols contained in the message.