AGENT TECHNOLOGY ROADMAP
1 Agent-based
Computing
As the computing landscape moves from a focus on the individual
standalone computer system to a situation in which the real power
of computers
is realised through distributed, open and dynamic systems, we are
faced with new technological challenges and new opportunities.
The characteristics
of dynamic and open environments in which, for example, heterogeneous
systems must interact, span organisational boundaries, and operate
effectively within rapidly changing circumstances and with dramatically
increasing quantities of available information, suggest that improvements
on the traditional computing models and paradigms are required.
In particular, the need for some degree of autonomy, to enable
components
to respond dynamically to changing circumstances while trying to
achieve over-arching objectives, is seen by many as fundamental.
While this
notion is not intended to suggest an absence of control, some application
contexts offer no alternative to autonomous software. In practical
developments, Web Services, for example, now offer fundamentally
new ways of doing business through a set of standardised tools,
and support
a service-oriented view of distinct and independent software components
interacting to provide valuable functionality. In the context of
such developments, agent technologies have become some of the
primary weapons
in the arsenal aimed at addressing the emergent problems, and managing
the complexity.
Agent-based systems are one of the most vibrant and important areas
of research and development to have emerged in information technology
in the 1990s. Put at its simplest, an agent is a computer system
that is capable of flexible autonomous action in dynamic, unpredictable,
typically multi-agent domains. Many observers believe that agents
represent
the most important new paradigm for software development since
object-orientation. The concept of an agent has found currency
in a diverse range of sub-disciplines
of information technology, including computer networks, software
engineering, object-oriented programming, artificial intelligence,
human-computer
interaction, distributed and concurrent systems, mobile systems,
telematics, computer-supported cooperative work, control systems,
mining, decision
support, information retrieval and management, and electronic commerce.
Because of the horizontal nature of agent technology, it is likely
that the successful European adoption of agent technology in these
areas will have a profound, long-term impact both on the competitiveness
and viability of European IT industries, and also on the way in which
future computer systems will be conceptualised and implemented.
1.1 What is an agent?
Agents can be defined to be 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 maybe 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 the sense of object-oriented software) in that they
are autonomous entities capable of exercising choice over their
actions
and interactions. Agents cannot, therefore, be directly invoked
like objects. However, they may be constructed using object technology.
These notions find application in relation to several distinct
aspects,
considered in turn below.
1.2 Agents as a design metaphor
Agents provide designers and developers with a way of structuring
an application around autonomous, communicative elements, and
lead to the construction of software tools and infrastructure
to support
the design metaphor (Jennings, 2001). In this sense, they offer
a new and often more appropriate route to the development of
complex systems, especially in open and dynamic environments.
In order
to support this view of systems development, particular tools
and techniques need to be introduced. For example, methodologies
to
guide analysis and design are required; agent architectures are
needed for the design of individual components, and supporting
infrastructure (including more general, current technologies,
such as Web Services) must be integrated.
1.3 Agents as a source of technologies
Agent technologies span a range of specific
techniques and algorithms for dealing with interactions with others
in dynamic and open
environments. These include issues such as balancing reaction
and deliberation
in individual agent architectures, learning from and about other
agents in the environment and user preferences, finding ways
to negotiate and cooperate with agents and developing appropriate
means of forming and managing coalitions. Moreover, the adoption
of agent-based approaches is increasingly influential in other
domains. For example, multi-agent systems can provide faster
and
more effective methods of resource allocation in complex environments,
such as the management of utility networks, than any human-centred
approach. Similarly, the use of agent systems to simulate real-world
domains may provide answers to complex physical or social problems
which would be otherwise unobtainable, as in the modelling of
the impacts of climate change on various biological populations,
or
modelling the impact of public policy options on social or economic
behaviour.
|