Emerging trends in computing
With the emergence of new paradigms for computing, such as peer-to-peer technologies, grid computing, autonomic computing and other approaches, it is becoming increasingly natural to view large systems in terms of the services they offer, and consequently in terms of the entities or agents providing or consuming services.
For example, web services technologies provide a standard means of interoperating between different software applications, running on a variety of platforms.
In a more general sense, web services standards now serve as potential convergence point for diverse technology efforts in support of a more general notion of service-oriented architectures.
Here, distributed systems are increasingly viewed as collections of service provider and service consumer components interlinked by dynamically defined workflows.
Web services must be realised by concrete agents that send and receive messages, while the services themselves are the resources characterised by the functionality provided.
The important characteristics of these emerging domains and environments are that they are open and dynamic so that new agents may join and existing ones leave.
In this view, agents act on behalf of service owners, managing access to services, and ensuring that contracts are fulfilled. They also act on behalf of service consumers, locating services, agreeing contracts, and receiving and presenting results.
In these domains, agents are required to engage in interactions, negotiate with one another and make proactive run-time decisions, individually and collectively, while responding to changing circumstances.
In particular, agents need to collaborate and to form coalitions of agents with different capabilities in support of new virtual organisations.
What is agent-based computing?
Agents can be defined as autonomous, problem-solving computational entities capable of effective operation in dynamic and open environments.
Agents are often deployed in environments in which they interact, and sometimes cooperate, with other agents (including both people and software) that have possibly conflicting aims. Such environments are known as multi-agent systems.
Agents can be distinguished from objects in that they are autonomous entities capable of exercising choice over their actions and interactions, and may act to achieve individual objectives.
Agents cannot, therefore, be directly invoked like objects but can be assigned tasks by their owners.
However, they may be constructed using a wide range of technologies. These notions find application in relation to three distinct views.
First, agents provide designers and developers with a way of structuring an application around autonomous, communicative components and lead to the construction of software tools and infrastructure to support design.
They provide a new and often more appropriate method for the development of complex systems, especially in open and dynamic environments. To support this view of systems development, particular tools and techniques need to be introduced.
For example, agent-oriented methodologies to guide analysis and design are required, agent architectures are needed for the design of individual components and tools and abstractions are required to enable developers to deal with the complexity that is typical of systems with such distribution of control.
Agent technologies are distinct and cover a range of specific techniques for dealing with interactions in dynamic, open environments.
They address issues such as balancing reaction and deliberation in individual agent architectures, learning from and about other agents in the environment, eliciting and acting upon user preferences, finding ways to negotiate and cooperate with other agents, and developing appropriate means of forming and managing coalitions.
Multi-agent systems have already provided faster and more effective methods of resource allocation in complex environments, such as the management of utility networks, than previous centralised approaches.
Finally, multi-agent systems offer strong models for representing real-world environments with an appropriate degree of complexity and dynamism. Simulation of economies, societies and biological environments are typical application areas.
The use of agent systems to simulate real-world domains may provide answers to complex physical or social problems that would be otherwise unobtainable, as in the modelling of the impact of climate change on biological populations, or modelling the impact of public policy options on social or economic behaviour.
Agent systems are not simply panaceas for these large problems, they have been demonstrated to provide concrete competitive advantages such as:
- improving operational robustness with intelligent failure recovery.
- reducing sourcing costs by computing the most beneficial acquisition policies in online markets and.
- improving efficiency of manufacturing processes in dynamic environments.
Adoption of agent technologies
Despite the benefits, agent technologies have not yet entered the mainstream in the way that object-oriented technologies have.
The majority of commercial organisations adopting agent technologies would be classified as early adopters, so considerable potential exists for further applications of the technology.
What is the range of applications? To date these have included: automated trading in online marketplaces; simulation and training applications in defence domains; network management in utilities networks; user-interface and local interaction management in telecommunication networks; schedule planning and optimisation in logistics and supply-chain management; control system management in industrial plants, such as steel works; and simulation modelling to guide decision-makers in public policy domains.
So why are agent technologies still only in the early-adopter phase of diffusion? There are a number of reasons.
Firstly, research in the area of agents is also still only in its infancy. Here, a reasonable comparison is with object-oriented (OO) approaches, where the initial research commenced in 1962, some 32 years before the public release of the first version of Java and the widespread commercial adoption of OO technologies. So knowledge of agent technologies is still not widespread among commercial software developers.
Secondly, since it is still young, the field lacks proven methodologies, tools, and complementary products and services, the availability of which would act to reduce the costs and risks associated with it.
Thirdly, the applications for which agent technologies are most suited are those involving interactions between autonomous intelligent entities.
While some applications of this sort may be implemented as closed systems inside an organisation, most potential applications require the participation of entities from more than one organisation.
Automated purchase decisions along a supply-chain, for example, require the participation of the companies active along that chain.
The application domains for which agent technologies are best suited typically require coordination and collaboration between multiple organisations, a factor that complicates adoption decisions by the companies or organisations involved.
The vision of agent-based computing itself is enough to constitute a grand challenge because of the need to bring together multiple technical and scientific disciplines as well as stakeholders across different sectors.
The specific technical challenges continue to change as the field of agent-based computing advances and matures and as related areas emerge and galvanise efforts that contribute to the general area.
Inevitably, standards will continue to be critical, but it is not clear whether these should come from within the agent community or should emerge from more general computing infrastructure progress. Nevertheless, some key challenges have already been articulated in relevant areas.
In seeking to identify these challenges and to identify the emerging opportunities, AgentLink (a European project aimed at promoting industrial and commercial deployment of agent technologies) has developed a roadmap for agent-based computing.
The roadmap provides a more complete assessment of the current state of the art, considers the research issues, reviews existing deployments for business benefit and outlines the likely future development of both the research field and the commercial environment.
- FIPA - The Foundation for Intelligent Physical Agents
- Understanding Agent Systems, Mark d'Inverno and Michael Luck.
- 'The Vision of Autonomic Computing', IEEE Computer, 36(1) 2003, Jeffrey Kephart and David Chess
- Agent-Based Software, Michael Luck, Ronald Ashri and Mark d'Inverno
Multiagent Systems, Gerhard Weiss.
- Introduction to Multiagent Systems, Michael Wooldridge.