information agents on the move

6
Copyright © 2001 John Wiley & Sons, Ltd. focus software 31 Volume 2, Issue 2 Information agents on the move Michael Schroeder Department of Computing, City University, London, EC1V 0HB, UK [email protected] Summer 2001 focus review Information agents process and integrate heterogeneous, distributed information. To achieve this task efficiently, some researchers promote the idea of mobile information agents that migrate between a user’s host and other hosts in the network. JACEK GOMOLUCH and MICHAEL SCHROEDER outline the concepts behind mobile information agents and give a survey on load balancing, which aims to optimise distributed information processing. Keywords: agents; mobile agents; information agents; load-balancing Introduction The advent of the Internet proclaimed the dawn of an information society, whose inhabitants have the right information at the right time at their fingertips. But although aspects of this vision are already true — never before was so much information accessible — it is still a vision, as users are overloaded with information, which they cannot use effectively. One approach to the resolution of this dilemma makes use of information agents, which retrieve, analyse, manipulate, integrate, and evaluate information obtained from heterogeneous, distributed information sources. They promise to reduce the time to discover valuable information, improve the quality of information and thus reduce the user’s time and cost spent hunting for information. Consider the following examples: Example 1 Biology has become an information- heavy science. In vitro experiments in drug discovery are now preceded by in silico experiments, which speed up drug discovery at reduced costs. Often, biologists discover an unknown protein and want to learn more about it. They consult a few in-house systems and publicly available online databases and tools. However, with over 500 publicly available tools, they potentially miss out on important information. EditToTrembl [1] is an information agent, which integrates a number of databases and analysis tools for protein annotation. A dispatcher reads entries from a database and sends the entries to various analysers, which are located on different hosts. The analysers enrich the entries and eventually send them back to the dispatcher. Since many proteins have to be annotated it is important that annotation is done in parallel and we have to solve the problem of how to achieve an optimal load-balancing, i.e. how can dispatchers spread the entries as evenly as possible, optimising the load of each host in the network. Information agents can automate the information gathering process, but can they do so efficiently? Can they reduce network traffic and enable asynchronous computing, i.e. allowing machines to go off- and online? Can they achieve load- balancing? Information agents Before we answer these questions, let us define what an agent is. Research into agents developed over the past years (for reviews see e.g. [2][3][4][5]) and most researchers agree upon the definition that agenthood is constituted by four properties [2]: Reactive: Agents are embedded into an environment, which they perceive and in which they act. Pro-active: Agents exhibit goal-directed behaviour. Information agents, [which] retrieve, analyse, manipulate, integrate, and evaluate information obtained from heterogeneous, distributed information sources.

Upload: michael-schroeder

Post on 06-Jul-2016

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Information agents on the move

Copyright © 2001 John Wiley & Sons, Ltd.focussoftware 31Volume 2, Issue 2

Information agentson the move

Michael SchroederDepartment of Computing, City University,London, EC1V 0HB, [email protected]

Summer 2001focusreview

Information agents process and

integrate heterogeneous, distributed

information. To achieve this task

efficiently, some researchers promote

the idea of mobile information agents

that migrate between a user’s host

and other hosts in the network.

JACEK GOMOLUCH and

MICHAEL SCHROEDER outline the

concepts behind mobile information

agents and give a survey on load

balancing, which aims to optimise

distributed information processing.

Keywords: agents; mobile agents; information agents; load-balancing

IntroductionThe advent of the Internet proclaimed thedawn of an information society, whoseinhabitants have the right information atthe right time at their fingertips. Butalthough aspects of this vision are alreadytrue — never before was so muchinformation accessible — it is still a vision,as users are overloaded with information,which they cannot use effectively. Oneapproach to the resolution of this dilemmamakes use of information agents, whichretrieve, analyse, manipulate, integrate,and evaluate information obtained fromheterogeneous, distributed information

sources. They promise to reduce the timeto discover valuable information, improvethe quality of information and thus reducethe user’s time and cost spent hunting forinformation. Consider the followingexamples:

Example 1

Biology has become an information-heavy science. In vitro experimentsin drug discovery are now precededby in silico experiments, which speedup drug discovery at reduced costs.Often, biologists discover anunknown protein and want to learnmore about it. They consult a fewin-house systems and publiclyavailable online databases and tools.However, with over 500 publicly

available tools, they potentially missout on important information.

EditToTrembl [1] is an informationagent, which integrates a number ofdatabases and analysis tools forprotein annotation. A dispatcherreads entries from a database andsends the entries to variousanalysers, which are located ondifferent hosts. The analysers enrichthe entries and eventually sendthem back to the dispatcher. Sincemany proteins have to be annotatedit is important that annotation isdone in parallel and we have tosolve the problem of how to achievean optimal load-balancing, i.e. howcan dispatchers spread the entries asevenly as possible, optimising theload of each host in the network.

Information agents can automate theinformation gathering process, but canthey do so efficiently? Can they reducenetwork traffic and enable asynchronouscomputing, i.e. allowing machines to gooff- and online? Can they achieve load-balancing?

Information agentsBefore we answer these questions, let usdefine what an agent is. Research intoagents developed over the past years (forreviews see e.g. [2][3][4][5]) and mostresearchers agree upon the definition thatagenthood is constituted by fourproperties [2]:

• Reactive: Agents are embedded into anenvironment, which they perceive and inwhich they act.

• Pro-active: Agents exhibit goal-directedbehaviour.

Information agents, [which]retrieve, analyse, manipulate,

integrate, and evaluateinformation obtained fromheterogeneous, distributed

information sources.

swf2.2_v2 8/8/01 6:54 am Page 31

Page 2: Information agents on the move

focussoftware32 Volume 2, Issue 2

Summer 2001 focus review

Copyright © 2001 John Wiley & Sons, Ltd.

public void receive(MobileInfoObj m) {...}

public static voidmain(String args[]){

try{

System.setSecurityManager(newRMISecurityManager());

MobileObjectReceiver mor= newMobileObjectReceiver();

Naming.rebind(LocalHost/MOR, mor);

}catch(Exceptione){...}

}

}

The above code fragments are allthat is needed to migrate objectswith RMI.

In general, there are two types of mobility:strong mobility and weak mobility. Instrong mobility, the execution state of theobject is preserved during migration,whereas in weak mobility the code isrestarted on arrival at the remotedestination. Java only supports weakmobility, because it does not allow accessto the execution stack. Nonetheless, it hasbeen used by many mobile agent platformssuch as Voyager [21], Aglets [22], HIVE[23], MOLE [24], D’Agents [25], and manyothers (see Reference [26] for a morecomprehensive list). Strong mobility canbe provided by modifying the Java VirtualMachine (JVM), which has been done inthe D’Agents platform [25].

Load-balancing with mobileagentsMobile agents are promoted asinfrastructure for information agents[27][28][29][30][31], as they potentiallydecrease the data, which has to betransmitted, and enable asynchronouscomputing, in that not all infrastructurehas to be available all the time. A thirdreason why mobile agents can be usefulrelates to load-balancing. The aim of aload-balancing strategy is to adapt to theutilisation and performance of themachines available and to therequirements of the agents. In operatingsystems, researchers investigated how

or RPCs can be used. However, to be ableto distribute the load within the systemdynamically, mobile agents are useful.

Mobile agentsMobile agents are objects comprising dataand code, which can migrate from onehost to another. Historically, they arebased on work carried out in the 80s onprocess migration and on distributedobject computing [16][17][18][19]. Thecombination of the two areas, i.e. tomigrate distributed objects was first coinedby Jul et al. [17]. However, only with thespread of Java researchers became widelyinterested in object mobility. Java has beenso crucial for the development of mobileagents, as it has been designed as anarchitecture-independent network-centricprogramming language, which providesmany of the requirements to implementobject mobility as a standard feature.

With Java’s Remote Method Invocation(RMI) it is very simple to use mobileobjects. RMI has been developed tosupport the invocation of methods onremote hosts, but it also caters formobility, however, indirectly. When local,

serialisable objects are passed asparameters to remote methods, RMIcopies the object to the target machine. Ifthe object at the source is then destroyed,the object has effectively migrated from onemachine to another. To support code mobilityof classes used by the migrated object Javaprovides dynamic class loading [20].

Example 3

In EDITtoTrEMBL, RMI is used toimplement mobility. The mobileinformation objects are easy toimplement. They simply have to usethe following declaration:

public voidMobileInfoObj(...)implements Serialisable {...}

The dispatcher and analyser areRMI servers, which provide aremote method to receive mobileinformation objects. Their codefragment looks as follows:

public voidMobileObjReceiver(...)... {

• Social: Agents interact with each otherand the user.

• Autonomous: Agents operate withouthuman intervention and have control overtheir actions.

This definition is broad and often toobroad. Shoham [6] draws the borderline ofagenthood elegantly by saying that “whatmakes any hardware or software an agentis precisely the fact that one has chosen toanalyse and control it in these mentalterms”. That is, if it is useful for theunderstanding of requirements, analysis,and design of a system it is useful toemploy the agent metaphor.

Nwana [3] classifies agents along the fouraxes of mobility, architecture, behaviour,and role. One particular role is aninformation agent and a commonarchitecture for information agentsconsists of information providers,wrappers, facilitators, and mediators [7]. Awrapper associated with each informationprovider prepares the possiblyunstructured data for the mediator. Themediator is the point of contact for a user(human or agent); it uses the facilitator toget in touch with the wrappers and knowswhat kind of information the wrappers canprovide. Given a user query it will thencontact the wrappers, integrate the results,and return them to the user.

Research into information agents hasresulted in the development of severalsystems such as e.g. SIMS [8][9], UMDL[10], Infomaster [11], InfoSleuth [12], andSoftbot [13], KRAFT [14], TAMBIS [15],and EDITtoTrEMBL [1] to name a few.

Example 2

In EDITtoTrEMBL, there are threetypes of agents: information objectsencapsulating the database entries,dispatchers, and analysers.Dispatchers create itineraries forinformation objects, which visitanalysers according to theseitineraries and collect informationthere. In order to be used, analysershave to register with the dispatcher.Thus dispatchers act as mediatorsand facilitators at the same time andanalysers act as wrappers.

How can such systems be implemented?Basically, any distributed computinginfrastructure, such as sockets, message-passing libraries, or distributed objectcomputing platforms like CORBA, RMI,

Java only supports weak mobility,because it does not allow access to

the execution stack.

swf2.2_v2 8/8/01 6:54 am Page 32

Page 3: Information agents on the move

Copyright © 2001 John Wiley & Sons, Ltd.

Summer 2001 focus review

focussoftware 33Volume 2, Issue 2

enough participants such a simpleapproach can scale up to form a massivemachine. In fact, a similar approach,www.distributed.net, consisting of over 100 000 participants, claims to be thefastest computer on earth. There are anumber of such systems and many areJava-based [37][38][39][40][41][42][43][44]. A good survey can be found inReference [45]. Other approaches to load-balancing in multi-agent system can befound in References [46][47][48][49].

Market-based approaches An efficient way to represent the systemstate and balance load uses a marketmechanism to value resources and achievean efficient match of supply and demandfor resources. While some systems use onlya price and match offers and bids, othersemploy more sophisticated auctionprotocols [50]. In these auctions, resourceconsumers bid for resources according tothe auction style employed. An advantageof auctions as a market mechanism is thatthey allow one to determine an unknownresource value in a group of agents.However, this agreement comes at a price:the communication needed to determine it.

Spawn [46] has been the first system whichemploys market-based load-balancingstrategies. POPCORN [43] provides amarket-based infrastructure for coarse-grained parallelism with applets. Threeauction mechanisms are evaluated in a

State-based load-balancingIn state-based load-balancing informationabout the system state is used to decide thehost where to start a task. The quality ofthis approach depends on the amount ofstate data available. Gathering the data isexpensive, but leads to more accuratedecisions.

Static, state-based load-balancing

In static load-balancing the task cannot bemigrated elsewhere once it was launchedon a host. Since this form of load-balancing is easy to implement and canlead to good results, it is widely adopted.

PVM, Corba, Applets Basic middleware like PVM [35], Corba[36], or Applets can be used to this end:The message-passing library PVM [35] canadapt to variations in the utilisation ofmachines and to reconfigurations of thenetwork (e.g. adding new machines). InCorba, load-balancing can be achievedwith a trader, which recommends serviceson the least loaded machine. An evensimpler approach uses Applets. Ratherthan having a central component decidingwhen and where to launch processes,human users can decide if they want toprovide their resources by downloading anApplet, which communicates results backto its server. Among others, this has beenimplemented in Bayanihan [37]. With

load-balancing can be optimised withmobility [32][33]. In this section we surveyhow load-balancing with and withoutmobility is used for agent systems. We candistinguish systems according to twocriteria:

• static vs. mobile, i.e. are tasks assignedto hosts once and then stay there or canthey migrate if it turns out at a later stage

that it is advantageous to leave themachine;

• state-based vs. model-based load-balancing [34], i.e. is the load balancedaccording to a current snapshot of thesystem state, which is expensive toobtain, or according to a model, whichpredicts the system state and which maybe inaccurate.

The following survey is summarised inFigure 1, which provides additionalinformation on the middleware underlyingthe systems and mechanisms of securityand fault-tolerance implemented on top ofthe middleware’s provisions.

The aim of a load-balancingstrategy is to adapt to the utilisationand performance of the machinesavailable and to the requirements

of the agents.

System Middleware LB Mo Ma W L S FT SO N R Si

PVM [35] PVM s - - p - y y - y - -

Corba [36] Corba s - - y - y y - y - -

Bayanihan [37] HORB,appl. s - - y - y y - - - -

Spawn [46] C,RPC s - y - - - - - - - y

POPCORN [43] Java appl. s - y y - - - - - y y

Dynasty [47] C (?) s - y - - - - - - - -

OCEAN[38] Java/Sockets s - y y - - - - - y -

MATS [51] Voyager s w - - - - - y - - -

FLASH [52] Voyager s w - p - - y - y - -

Traveler [56] RMI s s y p - - y - - - -

Bredin et al. [53] D’Agents s s y p - y - - - y -

Keren/Barak [57] Voy/propr. s w y p - - - - - - y

Challenger [58] Java m - y - y - y y - - y

Figure 1 Explanation: LB: Load-balancing (s=state-based, m=model-based), Ma: Market mechanism, Mo: Type of mobility (w=weak,s=strong), W: WAN support (y=yes, p=possible), L: Learning, S: Security, FT: Fault tolerance, SO: Self-organisation, N: Native code support, R: Resource accounting, Si: Simulation model

swf2.2_v2 8/8/01 6:54 am Page 33

Page 4: Information agents on the move

Summer 2001 focus review

focussoftware34 Volume 2, Issue 2 Copyright © 2001 John Wiley & Sons, Ltd.

simulation testbed: Vickrey auction,sealed-bid double auction and repeatedclearinghouse double auction. The maingoal is to maximise gains from trade. Theauthors aim to compare social efficiency,price stability and the role of reservationprices. Two other systems, Dynasty [47]and OCEAN [38], avoid thecommunication overhead of auctions anduse a pricing mechanism without anynegotiation. Dynasty [47] employs ahierarchical brokering architecture. Forthe allocation of resources dynamicpricing is used: the rent for resources isperiodically fixed. In addition, fees formigration and data transport services areintroduced, according to the distancebetween source and destination. The local

cluster brokers determine several statistics(e.g. load indices), and pass them up thehierarchy. Also, global knowledge ispassed down. The brokers evaluate thequalification of their sub-brokers in orderto allocate the tasks efficiently. OCEAN[38] aims to become a commercialplatform for the exchange ofcomputational processing power. In theproposed system, a number of arbitratorsassist in tasks such as disseminatingmarket price information, helping clientsto find the type and quantity ofcomputational resources they need andserving as trusted middlemen to assist insecure transaction protocols. The buyermakes a price bid and specifies therequired security measures, resourcerequirements and platform dependencies.It also estimates the size of thecomputation task. The seller provides theask price, the security measures supported,several hardware metrics, the networkbandwidth, supported platforms, etc.

Mobile, state-based load-balancing

An efficient way to represent the systemstate and balance load uses a marketmechanism to value resources and achievean efficient match of supply and demandfor resources. In static, state-based load-balancing, agents are stuck on onemachine once launched. However, if the

environment is very dynamic it may beadvantageous for the agent to migrateelsewhere. This can be achieved by mobileobjects (see for example the mobile RMIobjects described above). Mobile agents,which are active threads and which candecide independently when and where tomove to, add a further degree of flexibilityin that scheduling can be handled locally.Rather than having a central schedulerdecide where tasks execute, the tasksbecome agents and can decide themselveslocally with a global pattern of load-balancing emerging. There exist a numberof systems that use a mobile-agent basedinfrastructure [51][52][53][54][55][56][57].Three systems, TRAVELER [55][56],MATS [51], and FLASH [52], makespecifically use of autonomous mobileagents roaming the Net in search of thebest host.

Autonomous, mobile agentsTRAVELER [55][56] allows clients to wraptheir parallel applications as mobile agentswhich are dispatched to a resource broker.The broker forms a parallel virtualmachine atop available servers to executethe agents. Instead of hosts asking thebroker, when they have capacities, thesystems lets its autonomous agents roamthe Net to find servers to run on. Theplatform is based on RMI, but has beenextended to support strong mobility ofmulti-threaded agents.

MATS [51] distinguishes three roles. A‘Hive’ is responsible for managing userinteraction and determining how tasks areto be distributed, while ‘Queen’ agents arerun on local servers and control severalworker threads. Specialised light-weightmobile agents (‘Scouts’) are used formessaging and finding idle computerresources on remote workstations.

In FLASH [52], a system agent maintainsinformation of the whole system andpasses it to nodes, which keep informationabout the locally residing mobile agents.The mobile agents migrate through thecluster searching for free resources. Thesystem combines application and systeminformation-based load management.Therefore it is able to react efficiently ondynamic background load and avoidsunnecessary migration of agents with ashort life span.

A market-based approachIn Reference [53], a system is presented,which provides market-based resourcecontrol for mobile agents. It is based on

the D’Agents platform [25] and thereforeallows strong mobility of the agents. Toallocate resources to the agents the systemuses electronic cash, a banking system anda set of resource managers. In the paper,fixed-pricing and dynamic pricing policiesfor resources are presented. The authorsfocus is on the sealed-bid second priceauction as a mechanism for dynamicpricing.

Additional optimisation ofcommunicationWhile most of the above systems aim tooptimise CPU usage, Keren and Barak[57] also optimise an agent’s location withrespect to its communication partners.The system is geared towards improvingthe overall performance by a dynamicmatch between the available resources andthe execution requirements of the agents.This is accomplished by agents migratingto the hosts where the agents reside withwhich they communicate. A 30%–40%improvement to a static placement schemeis achieved.

Model-based load-balancingModel-based approaches to load-balancingare much rarer, as it involves two verychallenging problems: how to obtain aninitial model and how to adapt the modelas time passes. In the area of operatingsystems, some authors [32][33] exploredthis approach and use distributions ofCPU load and expected process lifetime todecide if and when to migrate. A similaridea is used in Challenger [58]. Itimplements load-balancing with a marketapproach. However, instead of usingmoney agents make bids giving theestimated time to complete the job.Important parameters, which have a majorimpact on the system performance, are themessage delay and errors in estimating thejob’s completion time. To deal with theseproblems the learning behaviour has beenintroduced to the bidding agents.

ConclusionMobile information agents[27][28][29][30][31] roam in a networkand integrate distributed information.Lange and Oshima [59] point out sevenreasons why mobile agents may be useful.Among others they can reduce datatransfer as shown in Reference [31].However, Waldo [60] points out thatintelligent agents are typically heavy-weight and therefore will not reducetraffic. Another reason for mobile agents is

An efficient way to represent thesystem state and balance load uses

a market mechanism to valueresources and achieve an efficientmatch of supply and demand for

resources.

swf2.2_v2 8/8/01 6:54 am Page 34

Page 5: Information agents on the move

Copyright © 2001 John Wiley & Sons, Ltd.

Summer 2001 focus review

focussoftware 35Volume 2, Issue 2

asynchronous computing: a machinelaunches a task and can then go offlinewithout affecting the task, which isexecuted elsewhere and collected later.Although this works in theory it is notclear for how long an agent and its initialhost wait for each other [60]. It is not clearwhen the host can assume that the agenthas a permanent failure and a new one hasto be created. Also, asynchronouscomputing requires only a very limitedform of mobility, namely between onehost, which may dis/connect at its leisureand a server, which is guaranteed to stayonline permanently. And finally,asynchronous computing can be easilyimplemented in distributed object systems

by amending the default request/replyprotocol to have the client send a requestand then poll for the result rather than theserver pushing it to the client. In Corba,such a deferred synchronous request isavailable as a standard feature.

A third reason for using mobility is load-balancing. Mobile processes have beeninvestigated since the 1980s[16][17][18][19] and used for load-balancing in operating systems [32][33].Similarly, there are a number of agentsystems using mobility for load-balancing[51][52][53][55][56]. We put these into ageneral context and compared agentsystems catering for static or mobile load-balancing and state-based or model-basedload-balancing [34]. State-basedapproaches balance the load according tothe current system state, which isexpensive to obtain. They are used byalmost all of these systems whereas model-based load-balancing is not widely used, asit is difficult to define and maintain anaccurate model of the workload within thesystem.

If this task is solved, systems likeEditToTrembl [1] can run more efficientlywith entries to be annotated autonomouslydeciding on which analyser to migrate tofirst, thus locally optimising computationalresources aiming for an overall optimalworkload. And in a next step, such systemscan be made even more flexible withinformation providers migrating as wellultimately achieving an emergent evenbalance of workload for the whole system.

References[1] Möller S, Leser U, Fleischmann W & Apweiler R.EDITtoTrEMBL: A distributed approach to high-qualityautomated protein sequence annotation.Bioinformatics 1999; 15: 219–227.

[2] Wooldridge MJ & Jennings NR. Agent theories,architectures and languages: A survey. In: WooldridgeM & Jennings NR (eds), Intelligent Agents I. LNAI890. Springer-Verlag, 1995.

[3] Nwana H. Software agents: An overview.Knowledge Engineering Review 1996; 11(3):205–244.

[4] Jennings N, Sycara K &l Wooldrigde M. Aroadmap of agent research and development.Autonomous Agents and Multi-Agent Systems 1998;1(1): 275–306.

[5] Nwana H & Ndumu D. A perspective on softwareagents research. The Knowledge Engineering Review1999; 14(2): 125–142.

[6] Shoham Y. Agent-oriented programming. ArtificialIntelligence 1993; 60(1): 51–92.

[7] Wiederhold G & Genesereth M. The basis formediation. Technical report, Standford University,1996.

[8] Arens Y, Chee CY, Hsu C-N & Knoblock CA.Retrieving and integrating data from multipleinformation sources. International Journal onIntelligent and Cooperative Information Systems1993: 127–158.

[9] Arens Y, Hsu C-N & Knoblock CA. Queryprocessing in the SIMS information mediator. In:Proceedings of the ARPA/Rome LaboratoryKnowledge-based Planning and Scheduling InitiativeWorkshop, 1996. Reprinted in Readings in Agents.Huhns, Singh (eds.), Morgan Kaufmann.

[10] Durfee E, Kiskis DL & Birmingham WP. Theagent architecture of the University of MichiganDigital Library. IEEE Proceedings, SoftwareEngineering 1997; 144(1): 61–71.

[11] Genesereth MR, Keller AM & Dischka O.Infomaster: An information integration systsm. In:ACM SIGMOD, 1997.

[12] Bayardo RJ, Bohrer W, Brice R, Cichoki A,Fowler J, Helal A, Kashyap V, Ksiezyk T, Martin G,Nodine M, Rashid M, Rusinkiewicz M, Shea R,Unnikrishnan C, Unruh A & Woelk D. Infosleuth:Agent-based semantic integration of information inopen and dynamic environments. In: ACM SIGMOD,1997: 195–206.

[13] Etzioni O & Weld D. A softbot-based interface tothe Internet. Communications of the ACM 1994:72–76.

[14] Gray PMD, Preece A, Fiddian NJ, Gray WA,Bench-Capon TJM, Shave MJR, Azarmi N, WiegandM, Ashwell M, Beer M, Cui Z, Diaz B, Embury SM,Hui K, Jones AC, Jones DM, Kemp GJL, Lawson EW,Lunn K, Marti P, Shao J & Visser PRS. Kraft:Knowledge fusion from distributed databases andknowledge bases. In: Database and Expert SystemApplications (DEXA97), 1997.

[15] Baker PG, Brass A, Bechhofer S, Goble C, PatonN & Stevens R. TAMBIS: Transparent access tomultiple bioinformatics information sources. In:Proceedings of the Sixth International Conference onIntelligent Systems for Molecular Biology ISMB98,Montreal, Canada, 1998.

[16] Shoch F & Hupp J. The worm programs — earlyexperience with a distributed computation.Communications of the ACM 1982; 25(3):172–180.

[17] Jul E, Levy H, Hutchinson N & Black A. Fine-grained mobility in the Emerald system. ACM

Transactions on Computer Systems 1988; 6(1):109–133.

[18] Artsy Y & Finkel R. Designing a processmigration facility: the Charlotte experience. Computer1989; 22(9): 47–56.

[19] Douglas F & Ousterhout J. Transparent processmigration: design alternatives and the spriteimplementation. Software Practice and Experience1991; 21(8): 757–785.

[20] Liang S & Bracha G. Dynamic class loading inthe Java Virtual Machine. In: Proc. of the Conferenceon Object Oriented Programming Systems Languagesand Applications (OOPSLA’99), Denver, CO, USA,1998; 33: 36–44. ACM Press.

[21] Glass G. ObjectSpace Voyager — the Agent ORBfor Java. In: Proc. of Worldwide Computing and itsApplications (WWCA’98). Second InternationalConference, Tsukuba, Japan, March 1998: 38–55.Springer.

[22] Lange DB & Oshima M. Programming andDeploying Java Mobile Agents with Aglets. Addison-Wesley, 1998.

[23] Minar N, Gray M, Roup O, Krikorian R & MaesP. Hive: Distributed agents for networking things. In:Proc. of the First International Symposium on AgentSystems and Applications (ASA’99) / ThirdInternational Symposium on Mobile Agents (MA’99),Palm Springs, CA, USA, 1999. IEEE.

[24] Strasser M, Baumann J & Hohl F. Mole — aJava based mobile agent system. In: Proc. ofECOOP’96, Workshop on Mobile Object Systems.Springer, 1996.

[25] Rus D, Gray R & Kotz D. Transportableinformation agents. Journal of Intelligent InformationSystems 1997; 9.

[26] Hohl F. The mobile agent list, a repository ofmobile agent systems. http://mole.informatik.uni-stuttgart.de/mal/mal.html, 2000.

[27] Dale J & DeRoure DC. A mobile agentarchitecture for distributed information management.In: Proceedings of the International Workshop on theVirtual Multicomputer, March 1997.

[28] Tolksdorf R. Coordination patterns of mobileinformation agents. In: Klusch M & Weiss G (eds),Proc. 2nd Int. Workshop on Cooperative InformationAgents, Paris, France, 1998. Lecture Notes inArtificial Intelligence 1998; 1435: 246–261.Springer-Verlag, Berlin.

[29] Omicini A & Zambonelli F. Coordination ofmobile information agents in TuCSoN. Journal ofInternet Research 1998; 8(5).

[30] Gehmeyr A, Müller J & Schappert A. Mobileinformation agents on the Web. In: Klusch M & WeiβG (eds), Proceedings of the 2nd InternationalWorkshop on Cooperative Information Agents II:Learning, Mobility and Electronic Commerce forInformation Discovery on the Internet, Berlin,Germany, July 1998. Lecture Notes in ArtificialIntelligence 1998; 1435: 262–277. Springer.

[31] Brewington B, Gray R, Moizumi K, Kotz D,Cybenko G & Rus D. Mobile agents for distributedinformation retrieval. In: Klusch M (ed.), IntelligentInformation Agents. Springer, 1999.

[32] Cabrera LF. The influence of workload on loadbalancing strategies. In: USENIX summer conference,1986: 446–458.

[33] Harchol-Balter M & Downey AB. Exploitingprocess lifetime distributions for dynamic load-balancing. ACM Transactions on Computer Systems1997; 15(3): 253–285.

[34] Sen S, Biswas A & Ghosh S. Adaptive choice ofinformation sources. In: Klusch M (ed.), IntelligentInformation Agents. Springer, 1999.

For future work the challenge willbe to integrate state- and model-

based load-balancing to change themodel according to minimal current

information.

swf2.2_v2 8/8/01 6:54 am Page 35

Page 6: Information agents on the move

Copyright © 2001 John Wiley & Sons, Ltd.

Summer 2001 focus review

focussoftware36 Volume 2, Issue 2

[35] Geist A et al. PVM: Parallel Virtual Machine.MIT Press, 1994.

[36] Object Management Group. The Common ObjectRequest Broker: Architecture and Specification.Wiley, 1992.

[37] Sarmenta LFG & Hirano S. Bayanihan: Buildingand studying Web-based volunteer computingsystems using Java. Future Generation ComputerSystems 1999; 15(5/6).

[38] Frank M. O.C.E.A.N. The open computationexchange and arbitration network.www.cise.ufl.edu/~mpf/ocean, October 2000.

[39] Takagi H, Matsuoka S & Nakada H. Ninflet: amigratable parallel object framework using Java. In:Proc. of the Workshop on Java for High-PerformanceNetwork Computing, Stanford University, Palo Alto,CA, USA, 1998. ACM Press.

[40] Judd G, Clement M & Snell Q. DOGMA:Distributed Object Group Management Architecture.In: Proc. of the Workshop on Java for High-Performance Network Computing, StanfordUniversity, Palo Alto, CA, USA, 1998. ACM Press.

[41] van Nieuwpoort R, Maassen J, Bal HE,Kielmann T & Veldema R. Wide-area parallelcomputing in Java. In: Proc. of Java GrandeConference, San Francisco, CA, USA, 1999. ACMPress.

[42] Neary MO, Brydon SP, Kmiec P, Rollins S &Cappello P. Javelin++: Scalability issues in globalcomputing. In: Proc. of the Java Grande Conference,San Francisco, CA, USA, 1999. ACM Press.

[43] Nisan N, London S, Regev O & Camiel N.Globally distributed computation over the Internet —the POPCORN project. In: Proc. of the 18thInternational Conference on Distributed ComputingSystems (ICDCS’98), Amsterdam, Netherlands,1998. IEEE.

[44] Jacob M, Philippsen M & Karrenbach M. Large-

scale parallel geophysical algorithms in Java: Afeasibility study. In: Proc. of the Workshop on Javafor High-Performance Network Computing, StanfordUniversity, Palo Alto, CA, USA, 1998. ACM Press.

[45] Allan RJ. Parallel Application Software on HighPerformance Computers. Survey of ComputationalGrid, Meta-computing and Network InformationTools. http://www.cse.clrc.ac.uk/Activity/HPCI, May2000.

[46] Waldspurger CA, Hogg T, Huberman BA,Kephart JO & Stornetta WS. Spawn: A distributedcomputational economy. Transactions on SoftwareEngineering 1992; 18(2): 103–117.

[47] Backschat M, Pfaffinger A & Zenger C.Economic-based dynamic load distribution in largeworkstation networks. In: Fraigniaud P et al. (eds),Proc. of the 2nd International Euro-Par Conference,Lyon, France, August 1996. Lecture Notes inComputer Sciences 1996; 2: 631–634. Springer-Verlag.

[48] Shaheen Fatima S. TRACE — an adaptiveorganizational policy for MAS. In: Working Notes ofUKMAS 2000 — The Third UK Workshop on Multi-Agent Systems, St Catherine’s College, Oxford, UK,December 2000.

[49] Muthukrishnan CR & Suresh TB. A multi-agentapproach to distributed computing. In: Proc. of theThird International Conference on AutonomousAgents AA99, Mineapolis, USA, May 1999. ACMPress.

[50] Sandholm T. Distributed rational decisionmaking. In: Weiss G (ed.), Multi-Agent Systems. MITPress, 2000.

[51] Ghanea-Hercock R, Collis JC & Ndumu DT. Co-operating mobile agents for distributed parallelprocessing. In: Proc. of the Third InternationalConference on Autonomous Agents AA99,Mineapolis, USA, May 1999. ACM Press.

[52] Obeloeer W, Grewe C & Pals H. Load

management with mobile agents. In: Proc. of the24th EUROMICRO Conference, 1998: 1005–1012.IEEE, 1998.

[53] Bredin J, Kotz D & Rus D. Market-basedresource control for mobile agents. In: Proc. of theSecond International Conference on AutonomousAgents AA98, Mineapolis, USA, May 1998. ACMPress.

[54] Bredin J, Kotz D & Rus D. Economic markets asa means of open mobile-agent systems. In: Proc. ofthe Workshop on Mobile Agents in the Context ofCompetition and Cooporation (MAC3) at the ThirdInternational Conference on Autonomous AgentsAA99, Mineapolis, USA, May 1999. ACM Press.

[55] Xu C-Z & Wims B. A mobile agent based pushmethodology for global parallel computing. Currency:Practice and Experience, 2000.

[56] Wims B & Xu C. Traveler: A mobile agent basedinfrastructure for global parallel computing. In: Proc.of the First International Symposium on AgentSystems and Applications (ASA’99) / ThirdInternational Symposium on Mobile Agents (MA’99).IEEE, October 1999.

[57] Keren A & Barak A. Adaptive placement ofparallel java agents in a scalable computer cluster. In:Proc. of the Workshop on Java for High-PerformanceNetwork Computing, Stanford University, Palo Alto,CA, USA, February 1998. ACM Press.

[58] Chavez A, Moukas A & Maes P. Challenger: Amulti-agent system for distributed resource allocation.In: Proc. of the First International Conference onAutonomous Agents AA97, Marina del Ray, CA,USA, February 1997. ACM Press.

[59] Lange DB & Oshima M. Seven good reasons formobile agents. Communications of the ACM, March1999.

[60] Waldo J. Mobile code, distributed computing,and agents. IEEE Intelligent Systems 2001; 16(2).

Journal of Software Maintenance and EvolutionResearch and Practice

• Features papers on software evolution

• Publishes research papers covering all aspects of software

maintenance

• Includes articles from practitioners working in the field,

including the user community

2533

Your gateway to Wiley journals online

For further information visit thejournal’s homepage on WileyInterscience

swf2.2_v2 8/8/01 6:54 am Page 36