Você está na página 1de 13

The Journal of Systems and Software 47 (1999) 7587

www.elsevier.com/locate/jss

Intelligent mobile agents in large distributed autonomous


cooperative systems
a,* b,1
Johnny S.K. Wong , Armin R. Mikler
a
Department of Computer Science, Iowa State University, Ames, Iowa 50011, USA
b
Department of Computer Sciences, University of North Texas, Denton, TX 76203, USA

Abstract
A large distributed autonomous cooperative system is a system that provides fundamental services for integrating high-level
services in a large distributed system with local autonomy for individual system platforms and processes. This paper discusses the
role and the functions of Intelligent Mobile Agents (IMAs) in large distributed autonomous cooperative systems. Rather than
providing services to a user at the application level, IMAs considered in this paper are deemed an integral part of system level
software and perform tasks that are considered central to the distributed system. A variety of solutions to problems that are inherent
to the distributed nature of the computing infrastructure may be implemented through a system of IMAs. These problems include,
but are by no means limited to, load balancing, scheduling, information retrieval and management, distributed decision support,
routing and ow control, security and intrusion detection. In this paper we discuss some of characteristics of IMA based systems
central to solving some of these problems. The eectiveness of IMAs in large distributed systems clearly depends on the design and
implementation of the underlying IMA architecture. This paper discusses the features that must be provided by the IMA infra-
structure in support of IMAs that are an integral part of the large distributed autonomous cooperative system. 1999 Elsevier
Science Inc. All rights reserved.

1. Introduction The eectiveness of coordination and the soundness


of individual decisions in the global context are a
We view a decentralized autonomous cooperative function of the precision and the uncertainty of infor-
system (DACS) as a collection of independent comput- mation upon which these decisions are based. Due to the
ing resources, which cooperate to provide fundamental fact, that knowledge acquisition takes a nite amount of
functionality for integrating high-level services upon time and the message delay in a large decentralized in-
which a distributed system can be built (Chow and frastructure is non-negligible, the views of the system, as
Johnson, 1997). The system is decentralized in that there established by the participating hosts, are often incom-
is not one dedicated entity, which can coordinate the plete and incoherent. In addition, there are generally
cooperative eort to provide this functionality. Auton- limitations on the availability of resources that can be
omy comes from the fact that the system represents an extended to the acquisition and representation of a
open computing environment in which participating global state view. In general, we would expect the indi-
hosts make autonomous decisions about actions neces- vidual entities in the decentralized infrastructure to
sary to perform the required functions. In order to co- display some type of rational behavior. Rational be-
ordinate their eorts, individual hosts must be able to havior, dened informally, is the ability to choose the
acquire information about the state of the system and most preferable from a set of available. In terms of
communicate actions and decisions among each other. utility-functions, an entity will select an action in the
This, however, represents a non-trivial task, particularly attempt to maximize the expected utility (Luce and
if the system is composed of hundreds or even thousands Raia, 1985). The meaning of utility or preferences in
of loosely coupled hosts, distributed over a large geo- the context of a decentralized autonomous cooperative
graphic region. system has not been dened and is not at all obvious. In
fact, we have to recognize that the constituent sub-sys-
tems of the DACS, such as the underlying communi-
*
Corresponding author. E-mail: wong@cs.iastate.edu cation network, are themselves a DACS with their own
1
E-mail: milker@cs.unt.edu concept of preference.
0164-1212/99/$ see front matter 1999 Elsevier Science Inc. All rights reserved.
PII: S 0 1 6 4 - 1 2 1 2 ( 9 9 ) 0 0 0 2 7 - 8
76 J.S.K. Wong, A.R. Mikler / The Journal of Systems and Software 47 (1999) 7587

Clearly, a DACS may display rational behavior at a Recent research emphasis on mobile code in the form
number of dierent and not necessarily consistent tiers. of intelligent mobile agents (Bradshaw, 1997) and active
At the user level, users may expect the system to per- networks (Tennenhouse and Wetherall, 1996), oers
form, so as to optimize the current application. At the new exciting possibilities for developing solutions that
systems level, we may expect the system to attempt to scale well for a variety of Decentralized Autonomous
optimize performance over all the applications that are Cooperative Systems. The merging of the two research
currently active. In addition, the DACS must be able to areas is deemed to yield new mechanisms for building
optimize system-level activities for it to provide basic very large, robust distributed systems. Hence, we should
functionality and to attempt optimality. It will be nec- revisit the various research areas in distributed com-
essary to tradeo among the preferences of the indi- puting system and reexamine existing solutions to
vidual tiers in order to make the system cooperative at determine whether they can be improved through IMA-
multiple levels. An example of such tradeo is the based mechanisms (Smith, 1998).
necessity to delay or reduce application-oriented com-
putation in order to optimize throughput at the com-
munication level. In general, the participating entities in 2. Software agents and their execution environment
the DACS must be able to categorize and rank-order all
possible actions based on information about the global In general, an agent is a computer program (thread)
state of the system. The emerging decisions will gener- that acts autonomously on behalf of a person or orga-
ally have multiple objectives. nization. Agents can be stationary (executes only on the
Knowledge Acquisition (KA) and Knowledge Rep- system where it began execution) or mobile (can move to
resentation (KR), associated with the computation of a a remote system for execution). When an agent travels,
global view of the state of the system are directly im- it transports its state and code with it. In this context,
pacted by the magnitude and complexity of the DACS. the agent state can be either its execution state, or the
New KA and KR mechanisms are needed that are ca- agent attribute values that help it determine what to do
pable of discriminating among knowledge sources in the when it resumes execution at its destination. An agent's
system so as to generate a suciently precise view of the execution state is its runtime state, including its program
system. Resource monitoring, performance monitoring, counter and frame stacks (Bradshaw, 1997; OMG,
resource discovery, and system load management are 1998).
examples of tasks that generally rely on the performance An agent's authority identies the person or organi-
of the underlying KA and KR mechanisms. zation on whose behalf the agent acts. Constituent sys-
Distributed system research over the last two decades tem components must be able to authenticate this
has resulted in a variety of innovative mechanisms, authority. Agents require names so that they can be
which enable distributed hosts to cooperate in forming a identied in management operations, and can be located
common, ubiquitous computing platform. While the via a directory service. Agents are named by their au-
algorithms and tools developed in recent years support thority and identity. An agent's identity is a unique
the realization of distributed systems, they generally are value within the scope of the authority that identies a
not designed to easily adapt to an ever changing com- particular agent instance.
puting infrastructure with often unpredictable dynam- The location of an agent is the address of a place. A
ics. Also, these mechanisms are not suitable for ad-hoc place resides within an agent system. Therefore, an
collaborative environments, as the availability of agent location should contain the network address (for
mechanisms is usually a precursor for becoming a par- example, IP address and port number) of the agent
ticipant in the distributed computing infrastructure. system where the agent resides and a place name. An
However, as the computing infrastructures grow it is agent system is a platform that can create, interpret,
dicult to take various goals and preferences of the execute, transfer and terminate agents. Like an agent, it
subsystems into consideration. In most cases, there does is associated with an authority that identies the person
not exist a single optimal strategy, which yields optimal or organization on whose behalf the agent system acts.
decisions for all the subsystems. For reasons mentioned A host can contain one or more agent systems. An agent
above, hosts generally do not have access to global state system can contain one or more places and a place can
information and it is often impossible or impractical to contain one or more agents. An agent system type de-
compute a consistent preference structure among the scribes the capability of an agent. For example, if the
hosts. This warrants the reevaluation of the existing agent system type is Aglet, the agent system is imple-
mechanisms in distributed computing in the context of mented by IBM, supports Java as the Agent Language,
large decentralized autonomous systems. In addition to uses Itinerary for travel, and uses Java Archive Format
scalable KA and KR implementation, new mechanisms for its serialization. All communication between agent
for the coordination of actions and the cooperation systems goes through the Communication Infrastructure
among the constituent computing resources are needed. (CI).
J.S.K. Wong, A.R. Mikler / The Journal of Systems and Software 47 (1999) 7587 77

When an agent transfers from one system to another, Autonomy: It allows agents to execute without the in-
it travels between execution environments called places. terference of users. An agent displays autonomous
A place is a context within an agent system in which an behavior if it is able to complete an assigned task
agent can execute. This context can provide functions by appropriately choosing from a set of possible
such as access control, for example. The source place strategies.
and the destination place can reside on the same agent Mobility: It describes an agent's ability to transfer be-
system, or on dierent agent systems that support the tween dierent hosts. We need to distinguish two
same agent prole. types of mobility: remote execution and migration.
A region is a set of agent systems that have the same For remote execution, an agent transfers to a remote
authority, but are not necessarily of the same agent site and executes until task completion. A migrating
system type. The concept of region allows more than agent may utilize a number of hosts for the comple-
one agent system to represent the same person or or- tion of the task, that is, the agent may suspend its ex-
ganization. Regions allow scalability because we can ecution, move to a dierent host, and resume
distribute the load across multiple agent systems. Mul- execution there.
tiple regions can be interconnected via one or more Although the particular manifestation of these char-
networks. They may or may not share a Directory Ser- acteristics in specic applications may dier, we believe
vice, this depends on the agreement between region that the above denitions are general enough to classify
authorities and the implementation of these regions. A the agent's functional modules.
non-agent system can also communicate with the agent Most software agents that have been developed in
systems within any region as long as it has the autho- recent years perform on behalf of the user. Examples of
rization to do so. A region can contain one or more such agents are e-mail agents, lter agents, and search
agent systems. The systems outside of a region may agents. These agents usually require interaction with the
access the region via the agent systems that are exposed user. In contrast, the proposed program emphasizes the
to the outside world, similar to a rewall conguration. experimental design, implementation, and analysis of
These agent systems are called region access points. IMAs as an integral part of the DACS. These agents
Agents, Software Agents, Intelligent Mobile Agents implement system functions and will execute without
(IMA), and Softbots are terms, which describe the explicit user control. For these agents, autonomy is
concept of mobile computing or mobile code (Brad- clearly an important characteristic. Instead of executing
shaw, 1997). Mobile code is orthogonal to the well- on behalf of a user, the IMAs for a DACS are consid-
known Remote Procedure Call (RPC), in that the ered system agents, which execute on behalf or in sup-
program is migrating to the data, rather than the data port of the system itself. In general, the IMA approach
being transferred to the executing program. Over the is deemed appropriate for problems that require a sys-
last decade, the AI community has put forth eorts to tem to autonomously fulll a variety of tasks in a dy-
dene the characteristics of software agents in general namic, unpredictable environment (Maes, 1994).
and IMA in particular. One can dichotomize IMA ac- The tremendous increase in research activities that
cording to four characteristics, namely, intelligence, focus on agents-based mechanisms is indicative of the
cooperative behavior, autonomy, and mobility (Ro- versatility of the concept at large. Dierent scientic
thermel and Baumann, 1997). While most computer communities are investigating a large variety of issues
scientists would agree that these characteristics are in- that are related to agents (Baumann, 1995). While the
trinsic to an IMA, there is little consensus on how and to AI community extends research eorts towards the
what degree the IMA will manifest each of them. We principles of agent behavior, agent cooperation, and
dene the characteristics of an IMA as follows: multi-agent systems, current systems research empha-
Intelligence: It is the ability to adapt to circumstances sizes on the design and the deployment of agents to
brought upon by the dynamics of the system. This ad- meet specic functional goals (Schelen and Pink, 1997).
aptation may be limited to each individual agent or Most notably, recent research eort in the area of ac-
encompass the entire agent system. Examples of tive networks (Tennenhouse and Wetherall, 1996) is
adaptive behavior are changes in agent's itineraries indicative for the trend to deploy mobile agents thereby
as a function of resource dynamics and variation in enabling system components to perform functions that
size of the agent population as a function of system otherwise cannot be provided. With the emergence of
dynamics. active networks, applications (and users) will be able to
Cooperative behavior: It describes the ability to share install customized code in network nodes, thereby bi-
knowledge among agents and/or negotiate a common asing basic network function for certain classes of
strategy that yields actions that lead to an overall ac- trac. In the context of this paper, this customized
ceptable performance (Rosenschein and Zlotkin, code may be viewed as a mobile agent. The idea of
1994). Systems composed of multiple agents are gen- deploying mobile agents in telecommunication systems
erally referred to as `Multi-Agent Systems'. was introduced in the mid 1990s and led to a research
78 J.S.K. Wong, A.R. Mikler / The Journal of Systems and Software 47 (1999) 7587

area generally referred to as intelligent networks (IN) agent cooperation in solving system-related tasks, such
(Magendanz et al., 1996). In this context, however, as resource discovery.
mobile agents have been used as a catalyst for pro- In large decentralized systems, agent collaboration
viding intelligent network services, very similar to the has been exploited for the distributed allocation and
concept of enabling routers in active networks to exe- sharing of resources. Challenger is a multi-agent system
cute user/application specic code. The next generation that is capable of managing a large set of distributed
of mobile agent research in the eld of communication resources (Chavez et al., 1997). Agents individually
aimed at the deployment of mobile code in support of manage single resources and cooperate with each other
network management. This triggered the design and to allow for global resource sharing, thereby increasing
implementation of new service architectures that pro- the system utilization. The reported research results are
vide the necessary mechanisms to accommodate mobile promising, and suggest that the deployment of cooper-
agents (Krause, 1997; Magendanz et al., 1996). In the ating agents in a large DACS for resource allocation and
research domain of computer networking, agents have sharing is a promising and very feasible approach.
been designed to interact with existing network proto- A system of intelligent agents using collaborative in-
cols, such as RSVP and SNMP, for the purpose of formation and mobile agent technologies (Bradshaw,
network resource reservation and management. Intelli- 1997; Nwana, 1996) is being developed to implement a
gent agents form the basis for the development of new prototype intrusion detection system (Crosbie and
mechanisms that enable the network to maintain the Spaord, 1995). The goals of the system design are to
requested quality of service (QOS) (Schelen and Pink, (Helmer et al., 1998):
1998). learn to detect intrusions on hosts and via networks
The signicance of agents, mobile or stationary, being using individual agents targeted at particular subsys-
able to adapt to the often unpredictable dynamics of the tems;
environment has been investigated (Mikler et al., 1996). use agent technologies to intelligently process audit
The use of utility-theoretic heuristics for message rout- data at the sources by using mobile agents;
ing in large grid networks prone to failure, has resulted have agents collaborate to share information on sus-
in a framework for designing and analyzing routing al- picious events and determine when to be more vigi-
gorithms in general, and their knowledge acquisition lant or more relaxed;
and knowledge representation mechanisms in particular. apply data mining techniques to the heterogeneous
One of the major results of this work was the design and data and knowledge sources to identify and react to
implementation of routing heuristics, which weighed the coordinated attacks on multiple subsystems.
signicance of network state information as a function A notable feature of the intrusion detection system
of distance, thereby reducing the overhead that is asso- based on data mining is the support it oers for gath-
ciated with the knowledge acquisition process. ering and operating on data and knowledge sources
Recently, a number of research projects have emerged from the entire observed system. The system could
aiming at the design and implementation of system identify sources of concerted or multi-stage attacks,
oriented agents. As systems increase in size and com- initiate countermeasures in response to the attack, and
plexity, more control is delegated to the system itself. In provide supporting documentation for system adminis-
the network domain, the ever-increasing heterogeneity trators that would help in procedural or legal action
of large communication networks has triggered the de- taken against the attacker.
ployment of agents to provide uniform capabilities. An An example of an attack involving more than one
example of this approach is the research work on Tunnel subsystem would be a combined NFS and rlogin attack.
Agents (de Meer et al., 1998). This work has focused on In the rst step, an attacker would determine an NFS
the use of tunnel agents to provide end-to-end quality of le handle for an .rhosts le or /etc/hosts.equiv (as-
service guarantees across a heterogeneous network in- suming the appropriate le systems are exported by the
frastructure, even though some of the intermediate UNIX system) (van Doorn, 1994). Using the NFS le
networks do not provide the support of the RSVP res- handle, the attacker would re-write the le to give
ervation protocol. himself login privileges to the attacked host. Then, using
The use of intelligent mobile agents in the context of rlogin from the formerly untrusted host, the attacker
resource discovery is another area of research, which would be able to login to an account on the attacked
encompasses a number of dierent types of systems. In host, since the attacked host now mistakenly trusts the
large communication systems, for instance, agents are attacker. At this point, the attacker may be able to
used to discover the topology of the underlying network further compromise the system. The intrusion detection
infrastructure (Minar et al., 1998). The performance of a system based on data mining would be able to correlate
single agent represents the baseline, against which the these attacks, help identify the origin of the attack, and
performance of collaborative agents of dierent types is support system management in responding to the at-
compared. This work clearly depicts the advantages of tack.
J.S.K. Wong, A.R. Mikler / The Journal of Systems and Software 47 (1999) 7587 79

There are many other on-going research and devel- As mentioned above, thus far, most agent-based
opment eorts based on software agents. In what fol- systems have been developed at the application level. In
lows, we will be discussing several issues related to the these systems, the details of the operating system as well
design and implementation of an IMA-based DACS. as the properties of the underlying communication in-
These issues include requirements for a system level frastructure are transparent to the user and the agents
agent framework, agent-based knowledge acquisition, that act on their behalf. It is not the agent runtime en-
resource monitoring, inter-agent communication, and vironment that provides this transparency but a special
security. abstraction layer, often referred to as Middleware. With
this abstraction, individual agents and in fact, the entire
agent execution environment can be dened on top of a
3. Towards IMA-based DACS variety of very powerful services (rather than single
functions). With the use of these services, one can con-
Intelligent autonomous multi-agent systems represent struct an arbitrary computational infrastructure in
a new programming paradigm for designing, analyzing which the relationship between constituent nodes is de-
and implementing complex and sophisticated software termined by functionality rather than topological and
systems. Agent-based systems have been claimed as `the system related properties. At this level, it is irrelevant
next signicant break-through in software development' whether two communicating entities reside on the same
(Sargent, 1998), `the new software revolution in soft- host, or are half a world apart, separated by a complex
ware' (Jenning and Wooldridge, 1998), and `another conglomeration of interconnected networks. For the
emerging concept in the evolution of modern operating design of a distributed system at this level, the ability to
systems' (Chow and Johnson, 1997). The key abstrac- communicate among processes on dierent nodes
tion used in this new software paradigm is the concept of through inter-process-communication (IPC) is assumed
an agent, as dened previously. (Lynch, 1996). The topological properties are built into
At this moment, there are two major obstacles for the the distributed system through constraining the ability
widespread use of the multi-agent technology, namely, of processes (or nodes) to communicate. In fact, the
the lack of a systematic design methodology to specify computational model may be drastically dierent from
the multi-agent system for software systems and the lack the physical computing and communication infrastruc-
of available industrial-strength multi-agent toolkits ture, as depicted in Fig. 1. Clearly, the mapping from
(Jenning et al., 1998). Furthermore, intelligent mobile the physical infrastructure to the computational model
agents are not the silver bullet that result in unprece- can eect the attainable system performance. An agent-
dented improvements in the performance of software based software system, implemented at the level of the
systems. As Wooldridge and Jennings (1998) pointed computational model, will have to work with the ab-
out, it would be nave to assume that the benets of stract constraints, and specic quality of service levels
agent technology are implicit. As a matter of fact, it can will have to be negotiated across the abstraction layers.
be shown that whether or not agent-based solution
constitute an improvement over conventional ap- 3.1. The need for agent system interoperability
proaches depends (among other things) on the type of
problem to be solved, the topology of the distributed While strictly delineated DACS will generally be
computing environment, and the availability of com- based on a single agent implementation, very large in-
putational resources. As mentioned above, most agent- frastructures, and ad-hoc systems in particular may be
based systems are dened and implemented at the ap- based upon dierent implementations of agent systems.
plication level. This constitutes an abstraction, which
allows the environment to be modeled to the agent's
ability. For agent-based service integration at the system
level, the agents and their respective execution envi-
ronment must be modeled to the parameters of the
communication and computing infrastructure. That is, if
the network of agent daemons is implemented as ap-
plication on top of the operating system layer and
physical network, it is easy to disregard certain system
constraints. If, however, agents are to execute as an in-
tegral part of the operating system itself, the agent in-
terfaces must be implemented at the system level. Hence,
the topological properties and computational charac-
teristics of constituent hosts, routers, and gateways will
aect the performance of the agent-based system. Fig. 1. Computational model embedded in a physical network.
80 J.S.K. Wong, A.R. Mikler / The Journal of Systems and Software 47 (1999) 7587

Hence, an important goal in mobile agent technology is system infrastructure. The fact that we have chosen the
interoperability between various agent systems. When network-mapping task as one example of a class of
the source and destination agent systems are similar, knowledge acquisition problems is secondary. In fact, it
standardization of these actions can result in interop- should be noted that the discovery of system properties
erability. However, when the two agent systems are and the representation of the knowledge that was ac-
dramatically dierent, only minimal interoperability can quired in this process represent fundamental applica-
be achieved. tions for intelligent mobile agents.
The following is a common scenario that would Our experiments are based on the simulation of
benet from standardization of mobile agent actions. agents in an arbitrary network topology modeled by a
Suppose that AgentX (from Agent System A) wants to digraph G (V, E). As an agent traverses the graph,
communicate with AgentY (from Agent System B). If either by random walk or conscientious movement, it
Agent System A and Agent System B support the same acquires information about the topology of G. Upon
agent prole, the ability to inter-operate is implicit. visiting a vertex vi , an agent assimilates knowledge of the
AgentX can request a transfer to Agent System B, ob- existence of all edges eij , selects the next vertex on the
tain whatever information is required, and return to its tour, and makes the transition. Other parameters, such
original agent system. as available bandwidth, current ow, or fault informa-
However, if Agent System A and Agent System B tion may be collected in a more practical scenario. Un-
support dierent agent proles, there are two ways for der the assumption that all agents can move between
the agents to communicate. In one of the two cases local vertices in unit time, the increase of topological know-
communication is possible, in the other case it is not. ledge in each agent over time is recorded. The fact that
Case 1: Agent can take advantage of locality. In this an agent has acquired additional topological informa-
scenario, a new agent system is added (Agent System C). tion is represented as a change of uncertainty, i.e., the
Agent System A and Agent System C supports the same ratio of an agent's knowledge to the total topological
agent prole, and Agent System C is local (same host/ information (in the number of edges eij in G). The graph
network) to AgentY. AgentX discovers this fact via a G used in our experiments consists of the two fully
call to Agent System B, then requests a transfer to Agent connected sub-graphs G1 and G2 , which are connected
System C. Once AgentX travels to Agent System C, it by a single edge e12 to form G (see Fig. 2).
can communicate locally with AgentY via IPC, get the Representative results of our experiments are shown
information it needs, then return to Agent System A. in Fig. 3. All agent execution traces shown in Fig. 3
Case 2: Agent cannot take advantage of locality. In contain sections in which there is no improvement of the
this scenario, AgentX cannot nd an agent system local topological information acquired by an agent. These
to Agent System B that supports the same agent prole plateaus occur whenever an agent traverses an area of
as Agent System A. It therefore remains on HostA, and the graph, which had been visited previously. The size
communicates with AgentY across the network via (or length) of a plateau depends, among other things, on
RPC. Although it does not have the advantage of lo- the agents itinerary, the agent's starting point, and most
cality, communication can still occur. noteworthy, the topology itself. In order to assimilate
There are several areas of mobile agent technology information from new regions, an agent may have to
that the mobile agent community should consider for traverse areas already contained in the agent's know-
early standardization in order to promote interopera- ledge base. Since we assume that agents have no a priori
bility including: agent management, agent transfer, information about the makeup of the environment, a
agent and agent system names, agent system types, and plateau is an insucient condition for the termination of
location syntax. the knowledge acquisition process. In fact, certain
characteristics of the infrastructure may prohibit certain
agent traversal to ever lead to convergence, that is,
4. Agent movement and itineraries certain areas may remain unvisited.
A conscientious agent, as dened in the original ex-
The eects of topological properties on the perfor- periment (Minar et al., 1998), traverses the graph by
mance of the agent system are best illustrated through a
number of experiments in which agents assimilate
properties of the system they are executing in. These
results are based on those experiments used to evaluate
the performance of agents in a network-mapping task
(Minar et al., 1998). While the original experiments
aimed at the evaluation of dierent types of agents, we
emphasize on the eects of the underlying topology on
the agents' ability to discover the parameters of the Fig. 2. Sample graph G.
J.S.K. Wong, A.R. Mikler / The Journal of Systems and Software 47 (1999) 7587 81

Fig. 3. Rate of knowledge acquisition for a single agent on a random walk. Note: Topological properties may prevent the agent's knowledge base
from ever converging, as shown with ``run6''.

selecting the next vertex to be visited according to the trates the superior traversal by conscientious agents, yet
number of previous visitations to that vertex. The vertex also indicates the variation of performance. For agent
with the least number of visitations is then selected. applications, such as system monitoring, resource dis-
With this strategy, an agent is attracted by new areas, covery, trac management, and fault management, the
which add new topological information. This can dras- performance goal is, however, to obtain complete and
tically reduce the time spent in an already known area of reliable system state information in the least amount of
the graph. The preference order over the reachable time possible.
vertices may be an eective heuristics, however, it does In the above example, network-mapping agents had
not represent an admissible heuristics (Pearl, 1984) for to assimilate knowledge of a static network topology.
weakly connected topologies as the one shown in Fig. 2. Consequently, the information in the agent's knowledge
While the sample graph may appear contrived, we be- base increased monotonically with time. In more real-
lieve that agents in a distributed environment may en- istic applications, the agents may have to monitor dy-
counter such structures due to inconsistent routing table namically changing system parameters, such as network
entries, bandwidth constraints, system faults, or ad-hoc ow, available bandwidth, buer space, system load, or
collaborative infrastructures. quality of service commitments. As before, an agent may
For a strongly connected graph, as shown in Fig. 4, traverse the distributed infrastructure and assimilate the
the preference ordering deployed in conscientious agent corresponding parameters from constituent entities. The
does represent an admissible heuristics. That is, the goal information is then made available to a decision process,
to acquire knowledge from all vertices in the graph, which may be a system administrator, a special process,
thereby guaranteeing the agent's knowledge base to or the agent itself. The quality or eectiveness of actions
converge will be achieved. Nevertheless, an optimal taken as a consequence of the information obtained by
traversal of the graph cannot be guaranteed under the the agent will clearly depend on the precision and
assumption that the agent does not have any a priori completeness of this information. The reliability dy-
information. The graph depicted in Fig. 5 clearly illus- namic system information does not only depend on the
underlying topology, but also the system's dynamics. In
this scenario, the agent's knowledge base changes non-
monotonically, and the strategy previously employed by
conscientious agents is no more admissible, as the ob-
jective has changed to reect the intricacies of a dynamic
environment. Hence, agents must follow an itinerary of
system traversal, which optimizes the reliability of in-
formation. Since system topology and system dynamics
Fig. 4. A strongly connected graph. are seldom known a priori, agents may have to derive an
82 J.S.K. Wong, A.R. Mikler / The Journal of Systems and Software 47 (1999) 7587

Fig. 5. Random versus conscientious graph traversal.

optimal itinerary over time and adapt to changing sys- their actions. The advantage of multiple agents in a
tem parameters. In order to meet the above performance DACS lies therefore in the division of labor, similar to
objectives and to tackle some of the issues implicit to a a parallel processing system. The following example
large, dynamic distributed infrastructure, ongoing re- illustrates the advantages of multiple cooperating in-
search in the area of intelligent mobile agents and dis- telligent mobile agents in a resource-monitoring sce-
tributed computing aims at the deployment of multiple nario.
collaborative agents.
5.1. Cooperating agents for resource monitoring

5. Multi-agent systems In any distributed environment, a number of IMAs


with active interaction will lead to a high degree of in-
The area of multi-agent systems has its roots in the formation exchange across the entire domain. Here,
eld of distributed AI. The primary research emphasis uncertainty is the degree of measure of the maximum
has been on distributed problem solving and coordi- error associated with the quantied information carried
nation of computational constituent modules in order by the agents. An agent retrieves information from a
to nd ecient solutions (Jenning et al., 1998). In re- resource R at a time instant t. Some other resource R0
cent years, agent and multi-agent systems have experi- may request for that specic information from the
enced some degree of anthropomorphism, in that agent. Assuming that the reply reaches resource R0 at
agents have been attributed with implicit intellect al- time instant t + t0 , we dene uncertainty of information
lowing computer scientists to study sociological aspects as the maximum phase lag of information reported at R0
of multi-agent systems. In the context of DACS, we when compared to the actual value at this time instant
shall take a more problem oriented approach by in- t + t0 . For simplication, we assume a homogeneous
vestigating the intricacies of the application and how distributed system of n resources. The system is further
agents may exploit the intrinsic properties of the solu- assumed to be topologically independent (i.e., the un-
tion space and the environment they act in. Our em- derlying topology is not taken into consideration), and
phasis shall be the performance of agents in a specic characterized by a uniform stochastic process. The net-
environment applied to a particular problem. Rather work topological constants are proportionality con-
than making the agent's autonomy the central point of stants in a given topology, related to inter-node
study, the goal is to develop an analytical framework in distances in the network. In what follows, we use multi-
support of the design and analysis of agent-based sys- agents for optimization of global information exchange
tems. Although the constituent agent's in a DACS may throughout the distributed system. The problem is to
act autonomously, they coordinate their eort by compute an upper bound on the degree of uncertainty of
sharing information, thereby implicitly synchronizing the information carried by these agents.
J.S.K. Wong, A.R. Mikler / The Journal of Systems and Software 47 (1999) 7587 83

We dene the operators in Table 1 as follows: Clearly, the uncertainty in the later case is greater than
First, we consider a single IMA, which traverses a the uncertainty computed in Eq. (1). Hence, any devia-
system of n resources. Based on a sequential itinerary, tion from the sequential itinerary will result in a larger
the agent visits each of the system's resources in se- uncertainty when considering a single agent in a ho-
quence. Using this itinerary, the agent assimilates a mogeneous set of n resources. Hence, the sequential
knowledge base, which contains the values KB(t) with itinerary yields the least uncertainty under the stated
the following values at time t: conditions.
KBt V1 t n 1u; V2 t n 2u; . . . Vn t: Under the same assumptions as before, we now in-
corporate m mobile agents. We are considering a hy-
However, the actual values maintained by each of the
pothetical model wherein there is no overhead attached
resources are: V1 t; V2 t; . . . ; Vn t. We compute the
to the synchronization for the meeting of the agents.
corresponding uncertainty of information, c, for this
Each of the m agents is responsible for n/m resources.
scenario as a measure of the time lags.
We assume that each of the m agents exchanges infor-
c kn 1u n 2u    u mation with other agents after it traverses its corre-
1
kun 1n=2: sponding resource partition. In what follows, we will
In Fig. 6 intuitively, one would expect the sequential show that an increase in the number of IMAs results in
itinerary to yield a knowledge base with the least un- the diminishing of the dierence between the best and
certainty, under the assumption that the agent monitors the worst case uncertainties. We shall consider the sce-
a set of n independent, homogeneous resources imple- nario of the worst case knowledge base of the agent.
mented by the same stochastic process. To show that KBt V1 tn=m 1u; V2
this conjecture is indeed true, we deviate slightly from  t n=m 2u; . . . ; Vn=m t;
the sequential itinerary. Without loss of generality, we
 m 1Ct n=mu Ct n=m 1u
change the agent's traversal such that instead of visiting
resource Rn at time t, the agent visits resource R1 . With    Ct 2n=m 1u:
this modied resource traversal, the agent's knowledge Here, C represents the resource information obtained
base can be described as: from the other (m 1) agents. The uncertainty associ-
KBt V1 t; V2 t n 2u; . . . ; Vn t u0 ated with information carried by an agent in this system
is computed as:
where u0 P nu.
The corresponding uncertainty, c, is computed as: cm k 0 un=m 1 n=m 2    1 m 1
c kn 2u n 3u    u u0  n=m n=m 1    2n=m 1
6 kun 2 n 3    1 n k unn m m 1n3n m=2m2 :
0

2
6 kun 1 n 2    1 1 For m 1, cm k0 u [(n1)n/2], which is equivalent to
the uncertainty associated with the single agent system.
6 ku1 n 1n=2:
For a system with multiple agents (i.e. m > 1), the as-
sociated uncertainty cm decreases as the number of
Table 1 agents increases. In practice, however, inter-agent
Operator Interpretation
communication for the exchange of information does
constitute a signicant overhead. This suggests the ex-
c, cm uncertainty of information in an IMA
KB (t) knowledge base of agent at time t
istence of an optimal number of agents for a given
Vi (t) actual value of the ith resource at time t environment. Autonomous control of the agent popu-
u uniform transmission time between resources lation as a function of topology and system dynamics is
n number of resources one of the challenging research issues in the area of in-
m number of IMAs telligent mobile agents. A detailed discussion of possible
k, k0 network topological constants
approaches is beyond the scope of this paper and will be
presented elsewhere. Nevertheless, the above example
illustrates the eects of multiple cooperating agents. In
general, the multi-agent paradigm represents a powerful
and scalable solution to many problems in DACS.

6. Agent security

It has been pointed out that one of the major research


Fig. 6. Sequential itinerary by retrieve agent. areas on software agents (Farmer et al., 1996; Berkovits
84 J.S.K. Wong, A.R. Mikler / The Journal of Systems and Software 47 (1999) 7587

et al., 1998) and active networks (Ortiz, 1998) should be


on agent security issues, including agent authentication
and authorization before multi-agent systems can be
fully deployed. We clearly advocate ubiquitous com-
puting by providing an open computing infrastructure,
which promotes the sharing of resources and services.
Nevertheless, such an environment constitutes a signi-
cant investment that must be protected against de-
struction as well as corruption. In the context of agent
based systems, the problem of providing the necessary
system security is rather complex. Not only do we need
to provide the necessary mechanisms to protect infor-
Fig. 7. High-level view of the Jamba environment.
mation that is transmitted between constituent hosts, we
must develop a security infrastructure which can protect
the entire system from the very mechanisms upon which this facilitator. When an application component wants
the system is based. to interact with Jamba, it registers with the secure fa-
The problem of providing the necessary level of se- cilitator. De-registration mechanism is also provided.
curity is exacerbated by the introduction of mobile code The secure facilitator obtains the digital certicate from
into the system. In addition to conventional information the certier, and manages it on behalf of the Jamba
security, constituent hosts must be protected from system. The public interface of the secure facilitator also
fraudulent agents, agents must be protected from enables request and use of security services of the Jamba
fraudulent hosts, and agents must be protected system. The only Jamba component with which it in-
from other agents. The latter is particularly important teracts directly is the Core Manager. The Core Manager
in a multi-agent environment in which agents may alter interacts with and manages the rest of the components
their behavior as a function of information received of the system (as shown in Fig. 8).
from other agents. The Core Manager is the most crucial component of
Jamba is a secure framework for distributed com- the Jamba system. It creates and manages all the core
puting systems (Havaldar and Wong, 1998). It provides components. The core components include Principal
features for digital certicates, access control, audit authenticator, access decision, audit decision, domain or-
control, and system administration. In the following ganizer, vault. Each of these components provides cer-
section, we will provide a brief overview of Jamba and tain specic functionality to the Jamba system. The core
highlight specic approaches for providing a secure manager manages the relationship among them. It is
framework for multi-agent systems.

7. System architecture of Jamba

The Jamba system is the set of components that


provide the security services. The Jamba environment
consists of the Jamba system, the Certier and the ap-
plication components, which is composed of producer
and consumer agents.
In Fig. 7, the various types of interactions among the
Jamba components are:
1. Request for security services (by both the consumer
agent and the provider agent).
2. Logical communication path between the consumer
agent and the provider agent.
3. Certicate distribution by the certier to Jamba, con-
sumer agent and provider agent.
In general, the Jamba system is a set of components Fig. 8. Component-level view of the Jamba system. Types of interac-
that work together to provide a number of security tions among various components (in the above diagram): (1) stores
component-related information; (2) makes decisions on allowing ac-
services. One of the components, the secure facilitator,
cess; (3) organizes components in a domain hierarchy; (4) makes a
acts as a gateway for the other components. The secure decision on auditing events, and stores event information in an audit
facilitator is the only component that is `publicly' ac- trail; (5) authenticates, registering components and generating cre-
cessible, and all security services are provided through dentials; (6) registered components accessing security services.
J.S.K. Wong, A.R. Mikler / The Journal of Systems and Software 47 (1999) 7587 85

also the only Jamba component that is in direct contact units in a large distributed autonomous cooperative
with the secure facilitator. So, the secure facilitator ac- systems.
cesses all the services through a well-dened interface of The principal authenticator is responsible for gener-
the core manager. ation of privileges and identities for a registered appli-
When the Jamba system initializes at startup, it re- cation component. The credentials, which are generated
quests the certier for digital certicates. These certi- as part of the registration process, are stored in the vault
cates are used in interaction with consumer agent and (by the core manager). The principal authenticator uses
provider agent components, and vouch for the validity information stored persistently in a database as a basis
of the services. The key pairs and the certicates are for assigning of privileges and identities. It communi-
managed by the Jamba system itself. In fact, the man- cates with the database processor with regard to ac-
agement of key pairs, certicates and related security cessing related information.
information is totally dependent on the component that One of the most important services provided by the
owns them. The Jamba environment does not specify Jamba system is access control. When a consumer agent
any specic mechanism in this regard, resulting in better attempts to access certain task-specic services from a
exibility. provider component, the provider agent requests the
The certier plays the central role of a certicate Jamba system (through secure facilitator) to validate the
authority. It generates and maintains certicates and access rights of the consumer. The secure facilitator
related information. This utility component generates passes this request to the core manager, which com-
certicates for any component that requests for certi- municates with the access decision component to make a
cates to be generated and veried. All the components in decision. The access decision component makes the de-
the Jamba environment require and obtain a certicate cision on allowing access based on the component
(during initialization) before proceeding with any other identities of both the consumer agent and provider
interactions (especially with the Jamba system). During agent.
the registration of a component, attributes (privilege and Last but not least, the vault is a passive storage
identity) are assigned, credentials created and a current component. It stores information such as component
object corresponding to the registered component is references, privileges, credentials, current objects and
stored in the vault. The creation of the attributes and the secure associations. This organization simplies access-
credentials is done by the principal authenticator com- ing information regarding a particular application
ponent. The core manager oversees this series of actions, component for operations such as access control. The
and the result is returned to the secure facilitator. In a vault itself contains a set of components. These com-
similar fashion, all other services undergo a pattern of ponents internally organize and manage dierent objects
steps managed by the core manager. based on the component identity of the task component.
The X.509 standard is used for the certicates. The The vault can be easily extended to store new objects,
Digital Signature Algorithm (DSA), which is a public and is a exible storage mechanism. All other core
key cryptosystem, is used to sign the certicates. This components of the Jamba system use the vault at vari-
vouches for the validity of the certicate. The public key ous dierent stages.
of the certier is publicly available, and a public inter- The security framework provided by Jamba allows
face is exposed for communication with the certier. the system developers to build security components into
The components obtain certicates from the certier the multi-agent systems, which include access control,
and use them for accessing services and communication. audit control, authentication and system administration.
These components have a degree of trust in the certier,
which acts as an authority on its certicates. Any
component can use the Jamba system for various secu- 8. Summary
rity services. It has to interact with the certier to obtain
a certicate. This certicate needs to be submitted to the In this paper we have presented the role and the
Jamba system for registration. Once registered, it can functions of Intelligent Mobile Agents (IMAs) in large
request services. A component has a Jamba-specic part distributed autonomous cooperative systems. Our dis-
and an task-specic part. The Jamba specic part is cussion focused on the use of software agents and multi-
small and is provided as a set of utility classes. This agent systems as a new programming paradigm for the
eases system design and development. The task com- design, analysis and implementation of system level
ponents in Jamba can act either as a provider or con- software as an integral part of a large autonomous
sumer of task-specic services. This approach is similar distributed system. The eld of autonomous software
to that used by Kerberos (Treese, 1988) except that agent and multi-agent systems is a fast expanding area
public key cryptosystem is used instead of user name of research and development in recent years. It repre-
and password. This is particularly important to use the sents a melting pot of research results from related areas
public key technology as there are many administrative in computer science such as distributed computing,
86 J.S.K. Wong, A.R. Mikler / The Journal of Systems and Software 47 (1999) 7587

articial intelligence, software engineering, distributed agent communication. The eects of system character-
databases, and programming languages. This new ap- istics on the performance of multi-agent systems must be
proach will provide a diverse range of software solutions carefully investigated through experimental system
to distributed computing at the system-level as well as at modeling and performance analysis. Only when robust
the application-level (Jenning et al., 1998). and scalable solutions to these problems are found will
There are several potential problems that must be the full potential of intelligent mobile agent systems for
overcome before the software agents and multi-agent large distributed autonomous cooperative systems be
systems can be fully deployed and used in an eective realized.
and ecient manner. There are a number of funda-
mental research and development issues that remain to
be solved. These issues include, among others, the con-
trol and management of agent population, the repre- References
sentation of information in agents, ecient agent
Baumann, J., 1995. Agents: A triptychon of problems. In: Proceedings
inter-communication and agent security. of the ECOOP '95 Workshop. Objects and Agents: Love at First
While the multi-agent system represents a powerful Sight or a Shotgun-Wedding?.
and scalable paradigm for the design and implementa- Berkovits, S., Guttman, J., Swarup, V., 1998. Authentication for
tion of DACS, new mechanisms will need to be devel- Mobile Agents. In: Mobile Agents and Security LNCS 1419, pp.
oped that allow the system to control and manage the 114136.
Bradshaw, J.M., 1997. Software Agents, AAAI Press, Menlo Park,
agent population as a function of the underlying to- California/The MIT. Massachusetts Institute of Technology,
pology and the system dynamics. To do so, research Cambridge, Massachusetts and London, UK.
must emphasize on the study of basic principles and nd Chavez, A., Moukas, G.A, Maes, P., 1997. Challenger: A multi-agent
ecient ways to deal with the creation and termination system for distributed resource allocation. In: Proceedings of the
of autonomous agents in large distributed autonomous International Conference on Autonomous Agents, Marina Del
Ray, California.
cooperative systems. For the deployment of multi-agent Chow, R., Johnson, T., 1997. Distributed Operating Systems and
system as a fundamental paradigm in large DACS, the Algorithms. Addison-Wesley, Longman.
complexity of knowledge representation, communica- Crosbie, M., Spaord, G., 1995. Defending a computer system using
tion between agents, and the representation of agents autonomous agents. In: Proceedings of the 18th National
themselves becomes a critical issue. Hence, research ef- Information Systems Security Conference.
de Meer, H., Richter, J.P., Puliato, A., Tomarchio, O., 1998. Tunnel
forts must encompass the study of interaction among agents for enhanced internet QoS. IEEE Concurrency 6 (2), 30
agents in terms of the communication language used, 37.
mutual authentication, and low-level agent infrastruc- Farmer, W., Guttman, J., Swarup, V., 1996. Security for mobile
tures. As the transfer of agents through the distributed agents: Issues and requirements. In: National Information
Systems Security Conference. National Institute of Standards
system infrastructures may represent a signicant re-
and Technology.
source overhead, strategies for compact knowledge Havaldar, R., Wong, J., 1998. Jamba: A Secure Framework for
representation must be developed. Distributed Computing Systems, Submitted for publication.
Although there has been signicant emphasis on the Helmer, G., Wong, J., Honavar, V., Miller, L., 1998. Intelligent agents
development of basic security mechanisms for the design for intrusion detection. IEEE Information Technology Confer-
and implementation of a secure agent infrastructure, the ence, Syracuse, New York, pp. 121124 .
Nwana, H.S., 1996. Software agents: An overview. Knowledge
problem of system level security remains to be in need of Engineering Review 11 (3), 205244.
further investigation. Particularly for ad-hoc distributed Jenning, N., Sycara, K., Wooldridge, M., 1998. A roadmap of agent
systems, for which there may not be any a priori mem- research and development. Autonomous Agents and Multi-Agent
bership in a particular public key infrastructure, the is- Systems 1, 275306.
Jenning, N., Wooldridge, M., 1998. Applying agent technology. In:
sues of authentication between agents, between agents
Jenning, N., Wooldridge, M. (Eds.), Agent Technology: Foun-
and systems, and mutual trust deserve further investi- dations, Applications and Markets. Springer, Berlin, Germany.
gation. Krause, S., 1997. MAGNAA DPE-based Platform for Mobile Agents
One of the most noteworthy advantages of the multi- in Electronic Service Markets. In: The Proceedings of the Third
agent paradigm is its ability to scale and adapt to the International Symposium on Autonomous Decentralized Systems
(ISADS '97).
properties of the DACS. Through dynamic changes in
Luce, R.D., Raia, H., 1985. Games and Decisions. Dover Publica-
behavior of individual agents or the agent population at tions, New York.
large, an agent-based DACS will be able to sustain Lynch, N.A., 1996. Distributed Algorithms. Morgan Kaufmann
constant performance under a variety of possibly ad- Publishers, San Francisco, California.
verse conditions. Among other approaches, agents may Maes, P., 1994. Modeling adaptive autonomous agents. Articial Life
react to changes in the system through adaptive itiner- Journal 1 (1/2), MIT Press, Cambridge, MA.
Magendanz, T., Rothermel, K., Krause, S., 1996. Intelligent agents: an
aries, which alter the agent's traversal of system com- emerging technology for next generation telecommunications?
ponents, adaptive heuristics, which alter the preference Proceedings of INFOCOM '96, San Francisco, California, pp.
ordering in the decision sub-system, or adaptive inter- 2428.
J.S.K. Wong, A.R. Mikler / The Journal of Systems and Software 47 (1999) 7587 87

Mikler, A.R., Honavar, V.G., Wong, J.S.K., 1996. Analysis of utility- Dr. Johnny Wong is an Associate Professor of the Computer Science
Theoretic heuristics for intelligent adaptive network routing. In: Department, Iowa State University at Ames, Iowa, USA. Before he
Proceedings of the International Conference on Articial Intel- came to Iowa State University, he was on the faculty of the Computer
Science Department at the University of Sydney. His research inter-
ligence Portland, Oregon, vol. 1, pp. 96102. ests include Operating Systems, Distributed Systems, Telecommuni-
Minar, N.N., Kramer, K.H., Maes, P., 1998. Cooperating Mobile cation Networks, Broadband-Integrated Services Digital Networks
Agents for Mapping Networks. In: Proceedings of the First (B-ISDN), Concurrency Control and Recovery, Multimedia and
Hungarian National Conference on Agent Based Computing. Hypermedia Systems, Intelligent Multi-Agents Systems, Intrusion
Detection.
Ortiz, S., 1998. Active networks: The programmable pipeline. IEEE He has been an investigator for research contracts with Telecom
Computer 31 (8), 1921. Australia from 1983 to 1986, studying the performance of network
Pearl, J., 1984. Heuristics: Intelligent Search Strategies for Computer protocols of the ISDN. During this period, he has contributed to the
Problem Solving. Addison-Wesley, Reading, MA. study and evaluation of the communication architecture and proto-
cols of ISDN. From 1989 to 1990, he was the Principal Investigator
Rosenschein, J.S., Zlotkin, G., 1994. Rules of Encounter. The MIT for a research contract with Microware Systems Corporation at Des
Press, Cambridge, MA. Moines, Iowa. This involved the study of Coordinated Multimedia
Rothermel, K., Baumann, J., 1997. Mobile Software-Agenten: Communication in ISDN. In Summers 1991 and 1992, Dr. Wong was
Chancen und Risiken, Internet von der Grundlagentechnologie supported by IBM corporation in Rochester. While at IBM, he
worked on the Distributed Computing Environment (DCE) for the
zum Wirtschaftsfaktor, dpunkt-Verlag. Application Systems. This involved the integration of communication
Sargent, P., 1998. Back to school for a brand new ABC. In: The protocols and distributed database concepts. Dr. Wong is also in-
Guardian, 12 March 1992, p. 28. volved in the Coordinated Multimedia System (COMS) in Course-
Schelen, O., Pink, S., 1998. Resource reservation agents in the internet. ware Matrix Software Project, funded by NSF Synthesis Coalition
Project to enhance engineering education. From 1993 to 1996, he was
In: Proceedings of Eighth International Workshop on Network working on a research project on a knowledge-based system for en-
and Operating Systems Support for Digital Audio and Video ergy conservation education using multimedia communication tech-
(NOSSDAV '98). Cambridge, UK. nology, funded by the Iowa Energy Center. From 1995 to 1996, he
Schelen, O., Pink, S., 1997. An Agent-based Architecture for Advance was supported by the Ames Laboratory of the DOE, working in
Middleware for Multidatabases system.
Reservations. In: Proceedings of IEEE 22nd Annual Conference Currently, he is working on Intelligent Multi-Agents for Intrusion
on Computer Networks (LCN '97), Minneapolis. Detection and Countermeasures funded by the oce of INFOSEC
Smith, E.J., 1998. Interview with David Tennenhouse DARPA. Research and Technology of the National Security Agency (NSA)
Computing Research News 10 (3). and Database Generating and X-Ray Displaying on the World Wide
Web Applications funded by Mayo Foundation.
Tennenhouse, D.L., Wetherall, D., 1996. Towards an active network
architecture. In: Proceedings of Multimedia Computing and
Dr. Armin R. Mikler received his Diploma in Informatik from fach-
Networking, San Jose, CA. hochschule Darmstadt, Germany in 1988. He received his M.S. and
Treese, G., 1988. Berkeley UNIX on 1000 Workstations: Athena Ph.D. (Computer Science) from Iowa State University in 1990 and
Changes to 4.3BSD. In: Proceedings of the 1988 Winter USENIX 1995, respectively. From 1995 to 1997, he worked as a postdoctoral
Conference, Dallas, TX, pp. 175182. research associate in the Scalable Computing Laboratory at the Ames
Laboratory, USDOE. Since 1997, Dr. Mikler has been an assistant
van Doorn, L., 1994. nfsbug.c, Available online at http://www.asmo- professor in the Department of Computer Sciences at the University of
deus.com/archive/Xnix/nfsbug/nfsbug.c. North Texas. His research interests include: Intelligent Trac Man-
Wooldridge, M., Jennings, N.R., 1998. Pitfalls of agent-oriented agement, Coordination of Intelligent Mobile Agents, Decision-making
development. In: Proceedings of the Autonomous Agents 98 in Distributed Environments, and Cluster Computing.
Conference, Minneapolis, pp. 385391.

Você também pode gostar