by Michael
Luck
Department
of Computer Science
King’s
College London,UK
Agent
Technologies
Agents
can be defined to be autonomous, problem-solving computational entities capable
of effective operation in dynamic and open environments. They 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. These environments are known as multi-agent systems. Since
agents are autonomous entities capable of exercising choice over their actions
and interactions, act to achieve individual objectives, they cannot, therefore,
be directly invoked but can be assigned tasks by their owners. These notions
find application in relation to three distinct views, considered below.
First,
agents provide software 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 the design
metaphor. In this sense, they offer a new and often more appropriate route to
the development of complex computational 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 software components, tools and
abstractions are required to enable developers to deal with the complexity of
implemented systems, and supporting infrastructure (embracing other relevant,
widely used technologies, such as web services) must be integrated.
Agent
technologies are distinct and span a
range of specific techniques and
algorithms for dealing with interactions in dynamic, open environments. These
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 (and other organisations). Moreover, the adoption of agent-based
approaches is increasingly influential in other domains. For example,
multi-agent systems are already providing new and more effective methods of
resource allocation in complex environments than previous approaches.
Finally,
multi-agent systems offer strong
models for representing complex and
dynamic real-world environments. For example, 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-based simulation spans: social structures and institutions to develop
plausible explanations of observed phenomena, to help in the design of
organisational structures, and to inform policy or managerial decisions;
physical systems, including intelligent buildings, traffic systems and
biological populations; and software systems of all types, currently including
e-commerce and information agency.
Trends
and Drivers
The
development of agent technologies has taken place within a context of wider
visions for information technology. In addition to the specific technologies
mentioned in the above, there are also several key trends and drivers that
suggest that agents and agent technologies will be vital. The three considered
below are examples.
Semantic
Web
Since
it was first developed in the early 1990s, the World Wide Web has rapidly and
dramatically become a critically important and powerful medium for
communication, research and commerce. However, the Web was designed for use by
humans, and its power is limited by the ability of humans to navigate the data
of different information sources.
The
Semantic Web is based on the idea that the data on the Web can be defined and
linked in such a way that it can be used by machines for the automatic
processing and integration of data across different applications [1]. This is
motivated by the fundamental recognition that, in order for web-based
applications to scale, programs must be able to share and process data,
particularly when they have been designed independently. The key to achieving
this is by augmenting web pages with descriptions of their content in such a
way that it is possible for machines to reason automatically about that
content. Among the particular requirements for the realisation of the Semantic
Web vision are: rich descriptions of media and content to improve search and
management; rich descriptions of web services to enable and improve discovery
and composition; common interfaces to simplify integration of disparate
systems; and a common language for the exchange of semantically-rich information
between software agents.
It
should be clear from this that the Semantic Web demands effort and involvement
from the field of agent-based computing, and the two fields are intimately
connected. Indeed, the Semantic Web offers a rich breeding ground for both
further fundamental research and a whole range of agent applications that can
(and should) be built on top of it.
Web Services and Service Oriented Computing
Web
services technologies provide a standard means of interoperating between
different software applications, running on a variety of different platforms.
Specifications cover a wide range of interoperability issues, from basic
messaging, security and architecture, to service discovery and the composition
of individual services into structured workflows.
In
a more general sense, web services standards serve as a potential convergence
point for diverse technology efforts such as eBusiness frameworks (ebXML,
RosettaNet, etc), Grid architectures (which are now increasingly based on web
services infrastructures) and others, towards a more general notion of
service-oriented architectures (SOA). Here, distributed systems are
increasingly viewed as collections of service provider and service consumer
components, interlinked by dynamically defined workflows. Web services can
therefore be realised by agents that send and receive messages, while the
services themselves are the resources characterised by the functionality
provided. In the same way as agents may perform tasks on behalf of a user, a
web service provides this functionality on behalf of its owner, a person or
organisation.
Web
services thus provide a ready-made infrastructure that is almost ideal for use
in supporting agent interactions in a multi-agent system. More importantly,
perhaps, this infrastructure is widely accepted, standardised, and likely to be
the dominant base technology over the coming years. Conversely, an
agent-oriented view of web services is gaining increased traction and exposure,
since provider and consumer web services environments are naturally seen as a
form of agent-based system.
Grid
Computing
The
Grid is the high-performance computing infrastructure for supporting large
scale distributed scientific endeavour that has recently gained heightened and
sustained interest from several communities [2]. The Grid provides a means of
developing e-science applications such as those demanded by, for example, the
Large Hadron Collider facility at CERN, engineering design optimisation,
bioinformatics and combinatorial chemistry. Yet it also provides a computing
infrastructure for supporting more general applications that involve
large-scale information handling, knowledge management and service provision.
The
Grid thus refers to an infrastructure that enables the integrated,
collaborative use of high-end computers, networks, databases, and scientific
instruments owned and managed by multiple organisations. Grid applications
often involve large amounts of data and computer processing, and often require
secure resource sharing across organisational boundaries; they are thus not
easily handled by today’s Internet and Web infrastructures. The key benefit of
Grid computing more generally is flexibility – the distributed system and
network can be reconfigured on demand in different ways as business needs change,
in principle enabling more flexible IT deployment and more efficient use of
computing resources. According to BAE Systems, while the technology is already
in a state in which it can realise these benefits in a single organisational
domain, the real value comes from cross- organisation use, through virtual
organisations, which require ownership, management and accounting to be handled
within trusted partnerships. In economic terms, such virtual organisations
provide an appropriate way to develop new products and services in high value markets;
this facilitates the notion of service-centric software, which is only now
emerging because of the constraints imposed by traditional
organisations. The future of the Grid is not in the provision of computing
power, but in the provision of information and knowledge in a service-oriented
economy.
Ambient
Intelligence
The
notion of ambient intelligence has largely arisen through the efforts of the
European Commission in identifying challenges for European research and
development in Information Society Technologies. Aimed at seamless delivery of
services and applications, it relies on the areas of ubiquitous computing,
ubiquitous communication and intelligent user interfaces. The vision describes
an environment of potentially thousands of embedded and mobile devices (or
software components) interacting to support user-centred goals and activity,
and suggests a component-oriented view of the world in which the components are
independent and distributed. The consensus is that autonomy, distribution,
adaptation, responsiveness, and so on, are key characteristics of these
components, and in this sense they share the same characteristics as agents.
Ambient
intelligence requires these agents to be able to interact with numerous other
agents in the environment around them in order to achieve their goals. Such
interactions take place between pairs of agents (in one-to-one collaboration or
competition), between groups (in reaching consensus decisions or acting as a
team), and between agents and the infrastructure resources that comprise their
environments (such as large-scale information repositories). Interactions like
these enable the establishment of virtual organisations, in which groups of
agents come together to form coherent groups able to achieve overarching
objectives.
Applications
Adoption
of agent technologies has not yet entered the mainstream of commercial organisations,
unlike, for example, object-oriented technologies. Indeed, the majority of
commercial organisations adopting agent technologies might be classified as
early adopters, since only a relatively small number of deployed commercial and
industrial applications of agent technology are visible, and because
considerable potential exists for other organisations to apply the technology.
To
date, deployed applications of agent technologies have been concentrated in a small
number of industrial sectors, and for particular, focused, applications. These have
included: automated trading in online market-places, such as for financial
products and commodities; 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, such as transport and
medicine.
For
example, Tankers International, which operates one of the largest oil tanker pools
in the world, has applied agent technology to dynamically schedule the most
profitable deployment of ships-to-cargo for its Very Large Crude Carrier fleet.
An agent-based optimiser was developed by Magenta Technology for use in
real-time planning of cargo assignment to vessels in the fleet. The system can
dynamically adapt plans in response to unexpected changes, such as
transportation cost fluctuations or changes to vessels, ports or cargo.
Agent-based optimisation techniques not only provided improved responsiveness,
but also reduced the human effort
necessary to deal with the vast amounts of information required, thus reducing
costly mistakes, and preserving the knowledge developed in the process of
scheduling. In a similar vein, after implementing recommendations derived from
an agent-based simulation model of a corrugated box plant developed by
Eurobios, SCA Packaging was able to make a 200% return-on-investment in the first
month.
The
Future
Agent
technologies can be distinguished from other programming technologies on the
basis of their differing objectives. For agent technologies, the objectives are
to create systems situated in dynamic and open environments, able to adapt to
these environments and capable of incorporating autonomous and self-interested components.
How quickly agent technology is adopted by software developers, therefore, will
depend at least partly on how many application domains require systems with these
characteristics. Considering the domains receiving attention from agent
software development companies such as Agentis, Magenta, Lost Wax or Whitestein
(among others), the main areas are currently: logistics, transportation,
utility management and defence. Common to many of these domains are multiple
stakeholders or organisations linked in a network, such as a supply-chain, and
with mission-critical, real-time processing requirements. In other words, there
are both functional and technical requirements for these applications, a divide
that agent technologies are able to bridge.
Most
new software technologies require supporting tools and methodologies. A
fundamental obstacle to the take-up of agent technology is the current lack of mature
software development methodologies for agent-based systems. Clearly, basic
principles of software and knowledge engineering need to be applied to the
development and deployment of multi-agent systems, as with any software. This
applies equally to issues of scalability, security, transaction management,
etc, for which there are already available solutions. A key challenge with
agent-based computing is to augment these existing solutions to suit the
differing demands of the new paradigm, while taking as much as possible from
proven methods. For example, agent software development needs to draw on
insights gained from the design of economic systems, social systems, and
complex engineering control systems. In addition, existing middleware solutions
need to be leveraged as much as possible, and this message has been understood:
several companies have been working on platforms based on existing and standard
middleware that is known and understood in the commercial domain.
In
application terms, we are already seeing the deployment of agent-like systems
(in the areas of pervasive computing, the Semantic Web, P2P networks, and so
on). In the longer term, we expect to see the industrial development of
infrastructures for building highly scalable applications comprising pre-existing
agents that must be organised or orchestrated. However, making the transition
from research laboratory to deployed industrial applications is indeed a
challenge, and it will be important to make scientifically sound business cases
for implementations and descriptions that work as stimulators both for industry
adoption and for further research.
For
commercial and industrial systems, agent technologies must emerge from the
laboratory with a focus on business issues, on quality and on convergence with
existing and emerging industrial technologies rather than innovation. Here,
safety, reliability and traditional software quality measures are equally
important, and must all be addressed to achieve wider adoption. In particular,
we need agent solutions for distributed, enterprise-wide environments with
exacting development requirements. This might be achieved through transition
approaches by which existing systems can be upgraded with a successively
increased agent presence in a seamless fashion. Wrapping legacy systems within
autonomous agents situated in a larger multi-agent system is one approach that
is being tried, for example, in connecting new and old telecommunications
switches together seamlessly, allowing legacy switches to be gradually replaced
without major disruption to the overall system.
More
generally, the adoption of agent technologies in business environments depends
on how fast and how well agent technologies can be linked to existing and
proven software and software methods. Agent technologies should be targeted at
those application domains to which they are best suited, augmenting traditional
techniques that should be used when agents are not applicable or appropriate.
Ultimately, achieving this aim requires a commitment on the part of both business
and research communities to collaborate effectively in support of more
effective solutions for all. Such a dialogue is already underway.
This
paper is based on material from the AgentLink Roadmaps [3,4].
[1]
T. Berners-Lee, J. Hendler, and O. Lassila. The semantic web. Scientific
American, pages 35–43, May 2001.
[2]
I. Foster and C. Kesselman, editors. The Grid 2: Blueprint for a New Computing
Infrastructure. Morgan Kaufmann, 2004.
[3]
M. Luck, P. McBurney, and C. Preist. A manifesto for agent technology: Towards
next generation computing. Autonomous Agents and Multi-Agent Systems, 9(3),
2004.
[4]
M. Luck, P. McBurney, O. Shehory, and S. Willmott. Agent Technology: Computing
as Interaction (A Roadmap for Agent-Based Computing). AgentLink, 2005.
http://www.dcs.kcl.ac.uk/staff/mml/papers/al3roadmap.pdf
Post new comment