Upload
li-chunlin
View
213
Download
0
Embed Size (px)
Citation preview
Journal of Systems Architecture 50 (2004) 521–535
www.elsevier.com/locate/sysarc
The use of economic agents under price driven mechanismin grid resource management q
Li Chunlin *, Li Layuan
Department of Computer Science, Wuhan University of Technology, Yu Jia Tou Campus, Wuhan 430063, People�s Republic of China
Received 17 April 2002; received in revised form 25 August 2003; accepted 10 December 2003
Available online 5 March 2004
Abstract
This paper presents multi-economic agent for grid resource management. A system model is described that allows
agents representing various grid resources and grid users to interact without assuming priori cooperation. The system
model consists of three layers. The lower layer is the underlying grid resource. The middle layer is the agent-based grid
resource management system. It consists of three types of agent and market institution that allocates resources. The grid
task agents buy resources to complete tasks. Grid resource agents charge the task agents for the amount of resource
capacity allocated. Grid resource agents are registered with a Grid Manager. The third layer is the user layer at which
grid request agents provide interfaces to the grid user� request. The three processes involved in grid resource man-
agement are given. A price-directed algorithm for solving the grid task agent resource allocation problem is presented.
A basic performance evaluation is given. Finally, some conclusions are given.
� 2004 Elsevier B.V. All rights reserved.
Keywords: Economic agent; Grid; Resource management; Resource allocation; Market
1. Introduction
Grid computing raises challenging issues in
many areas of computer science, and especially in
the area of distributed computing. A computa-
tional grid is a hardware and software infrastruc-ture that provides dependable, consistent,
pervasive, and inexpensive access to high-end
qThe work is Supported by National Natural Science Foun-
dation of China and NSF of Hubei Province.* Corresponding author.
E-mail addresses: [email protected], jwtu@pub-
lic.wh.hb.cn (L. Chunlin).
1383-7621/$ - see front matter � 2004 Elsevier B.V. All rights reserv
doi:10.1016/j.sysarc.2003.12.002
computational capability. It provides the proto-
cols, services, and software development kits nee-
ded to enable flexible, controlled resource sharing
on a large scale [1]. However, a practical grid
environment does not yet exist. Currently many
grid-oriented software systems are being developedseparately with different motivations, methodolo-
gies and tools. The ultimate goal of the CA*net 4
program [2] is to provide end users with the ability,
on a peer to peer basis to provision, manage and
control the routing of their own light paths across
the network without the need to signal or request
service from any central network manage-
ment authority or server. WebService agents and
ed.
522 L. Chunlin, L. Layuan / Journal of Systems Architecture 50 (2004) 521–535
protocols such as WSDL, UDDI, JXTA, J2EE,
JINI, CORBA, .NET etc. are used for resource
discovery, message passing and inter agent com-
munication between end users and associated
network elements. Condor [29] system is one of the
earliest systems to harvest the unused resources; itcan manage a large collection of computers such as
PCs, workstations, and clusters that are owned by
different individuals. JXTA [31] aims at stan-
dardizing a set of protocols for building P2P
applications. The major contribution of SETI@-
home [32] is to demonstrate how to apply distrib-
uted computing challenges in a P2P network.
Avaki is a grid middleware that enables sharing ofdata, applications, and computing resources tar-
geting the enterprise-wide computing area. Avaki
system [33] as an example of the currently emerging
grid-oriented approaches, Avaki grid is can contain
desktops, workstations, servers and clusters. Each
machine in the grid is autonomous and conse-
quently the system management is distributed.
New software development technologies areneeded for the implementation of the grid software
infrastructure. Several new grid projects are uti-
lizing existing distributed computing technologies,
such as CORBA and Jini [26]. Agent technologies
have been used for the development of distributed
software systems for several years. Software agents
have been used in several grid projects, such as
AppLeS [3], DPSS, and NetSolve [4]. In theseprojects, agents are high-level abstractions of
software entities, which usually act as resource or
data brokers or representations of grid users in the
grid software infrastructure. �Agent Grid� project[20] is described that integrates services and re-
sources for establishing multi-disciplinary PSEs
(Problem Solving Environments). Specialized
agents contain behavioral rules, and can modifythese rules based on their interaction with other
agents, and with the environment in which they
operate. The A4 methodology can also be applied
for integrating multiple services and resources.
Rather than using a collection of many specialized
agents, a hierarchy of homogenous agents is used
the A4 methodology [28].
In this paper, economic agents are used as ameans of tackling grid resource allocation tasks. In
this system, the producers and consumers of the
resources of grid are modeled as the self-interested
decision-makers described in microeconomic
theory. We apply economic agents to build grid
resource management, where grid resource con-
sumers and providers can buy and sell computing
resource based on an underlying economic archi-tecture. The agents of the system interact by
offering to buy or sell commodities at given prices.
All market participants in the grid environment
including computing resources and services can be
represented as agents. A grid market participant
can be a service agent that provides the actual grid
service to the other market participants. Market
participant is registered with a Grid Manager. Thedesign goals of our model focus on combining
market approach and agent technology to manage
computational resource consumers and providers
on the grid in distributed style. In our method,
such an approach has the advantage that owner-
ship and accountability of resource utilization is
built into the design philosophy. Thus, market-
based solutions can be applied to the managementof multi-enterprise systems without forcing the
sub-system owners to cooperate on matters
affecting their own commercial interest.
The rest of the paper is organized as follows.
Section 2 discusses backgrounds and motivation.
Section 3 gives grid resource management system
Model. Section 4 describes the use economic for
grid resource management. Section 5 gives a basicexperiment. Section 6 describes some related work.
Section 7 concludes the paper.
2. Backgrounds and motivation
Resource advertisement and discovery is an
important issue in the implementation of grid re-source management. An overview of several dis-
tributed system infrastructures with service
discovery capabilities is presented below. Sun
Microsystems� Jini [8] is perhaps the prototypical
discovery system, incorporating the roles of client,
server, and service. Services register themselves
with a server that sends multi-cast advertisements
of its presence to the local network. Clients in turnquery the server to find services. Clients interact
with services through Java events or by down-
L. Chunlin, L. Layuan / Journal of Systems Architecture 50 (2004) 521–535 523
loading Java code that implements the service or
allows the client to control the service. Network
directory data storage is based on IETF standards,
such as LDAP [12] and SNMP, or utilizes spe-
cialized distributed database implementation. The
information service in Globus resource manage-ment system uses a Metacomputing Directory
Service (MDS) [13], which adopts the data repre-
sentations and API defined by the LDAP service.
Berkeley�s Secure Service Discovery System (SDS)
[11] focuses on building a scalable server infra-
structure for providing reliable, secure service
discovery. A hierarchy of servers can maintain it-
self to a large extent, by creating or killing newservers based on demand, but still assume that a
set of secured, dedicated servers is available. Uni-
versal Plug and Play (UPnP) [9] departs from the
systems above in that it is completely server-less.
In this sense, UPnP and other purely peer-to-peer
systems are auto configuring. Salutation [11] tries
to avoid many of the problems involved in using
high-level protocol standards like IP by introduc-ing a Transport Manager which allows for services
to be discovered and offered on alternative trans-
port layers such as Bluetooth or IrDA, two phys-
ical and link layer protocols which both
incorporate limited discovery protocols. Blue-
tooth�s service discovery protocol (SDP) [7] can
only discovery devices which interact on the
Bluetooth physical layer. IETF�s Service LocationProtocol (SLP) [12] supports both server-based
and peer-to-peer modes of operation, with the goal
of functioning in both small and enterprise net-
works. SLP uses TCP/IP for transport and an
open binary data format, which may be more
appropriate for resource constrained devices than
text formats such as Extensible Markup Language
(XML). The design of our grid resource manage-ment has benefited from previous Service Dis-
covery researches while attempting to make
improvements in selected areas. The requirement
to incorporate legacy systems into computational
grid is a feature, which distinguishes our method
from Jinie system. Jinie is reliant on the use of a
standardized java based interface implemented by
both the clients and servers in the network. Thisrequires existing systems to be modified for use
with Jinie. Another limits are that the Jini dis-
covery process is tightly bound with the simple
interface description advertisement [10]. This leads
to a loss of expressive power in the component
description. The chosen method is to use XML to
describe components, because it allows a mean-
ingful semantic description.Markets have emerged as a new paradigm for
managing and allocating resources in complex
systems. Markets are appropriate for decentralized
systems because once a currency exchange proto-
col is established, negotiations can occur simulta-
neously at various nodes without the necessity of a
central authority [3–7]. Scalability is another
advantage as new resources and new resourceusers can be added simply by establishing the
ability to receive or give currency [34]. Also, prices
serve as useful low-dimensional feedback for con-
trol. Seve- ral research systems have explored the
use of different economic models for trading re-
sources to manage resources in different applica-
tion domains: CPU cycles, storage space, database
query processing, and distributed computing. Theyinclude Popcorn [25], Java Market [23], Mungi
[22], Enhanced MOSIX [19], JaWS [24], GRACE
[20,21], G-Commerce [28], Nimrod-G [16]. Grid
Architecture for Computational Economy (GRACE)
[20,21] proposes a distributed computational eco-
nomy as an effective metaphor for the manage-
ment of resources and application scheduling. It
proposes an architectural framework that supportsresource trading and quality of services based
scheduling. Nimrod-G [15,16] is a Grid resource
broker that allows managing and steering task
farming applications on computational Grids. It
uses an economic model for resource management
and scheduling. The Java Market [23] has no
dependence on any given architecture––both pro-
ducers and consumers can be running any kind ofmachine, and any operating system, that has a
Java-capable Web browser. In other words, it can
handle heterogeneous machines with no modifi-
cations. POPCORN [25] is a system that uses
markets to distribute ‘‘computelets’’ through the
network to take advantage of idle CPUs. The ap-
proach is intended for parallel programs where
interaction among threads is limited.Agent economies are appropriate mechanisms
for computational grid resources allocation. Our
524 L. Chunlin, L. Layuan / Journal of Systems Architecture 50 (2004) 521–535
grid resource management takes advantage of
market oriented model and agent technology to
build grid resource management, and provides
users with a consistent and transparent interface
for accessing grid resources. The grid task agents
buy resources to complete tasks. Grid resourceagents charge the task agents for the amount of
resource capacity allocated.
3. Grid resource management system model
The overall system model consists of three lay-
ers (Fig. 1). The lower layer is the underlying grid
resource. Resources on this layer are owned andallocated by grid resource agents deployed at the
nodes in the grid. The top layer is the system�sinterface to grid user. The middle layer is the
agent-based grid resource management system. It
consists of three types of agent and market insti-
tution that allocates resources in response to the
selling of grid resource agent and buying behavior
of the grid task agents. The third layer is the userlayer at which grid request agents provide inter-
faces to the grid user� request. Grid resource agents
sell the underlying resources of the grid. A task
agent that represents the grid user makes buying
decisions within budget constraints to acquire
computation resources.
The system model makes use of two economic
agent types: (1) the grid resource agents that rep-
Fig. 1. Grid resource mana
resent the economic interests of the underlying
resources of the computational grid, (2) the grid
task agents that represent the interests of grid user
using the grid to achieve goals. A grid resource
agent is used at the source node in the grid and is
deployed at the entry node. The Grid resourceagents have varied computational resource
capacity, and the computational resource capacity
is shared among the grid task agents. The grid
resource agents charge the task agents for the
portion of the computational resource capacity
occupies. We assume that the grid resource agents
of a grid does not cooperate, probably due to high
messaging and processing overheads associatedwith cooperative allocating. Instead, they act non-
cooperatively with the objective of maximizing
their individual profits. The grid resource agents
compete among each other to serve the task
agents. The task agents do not collaborate either,
and try to purchase as much computational re-
source as possible with the objective of maximizing
their net benefit. The agents communicate bymeans of a simple set of signals that encapsulate
offers, bids, commitments, and payments for re-
sources. We couple the resources and payments
with the offers and requests respectively. This re-
duces the number of steps involved in a transac-
tion (committing agents to their payments and
offers ahead of the market outcome), and so in-
creases the speed of the system�s decision making.
gement system model.
L. Chunlin, L. Layuan / Journal of Systems Architecture 50 (2004) 521–535 525
To enforce these rules the interactions between the
two agent types are mediated by means of market
mechanisms. In our market mechanisms, agent
communication is restricted to setting a price on a
single unit of a known grid resource. Therefore,
agents set their prices solely on the basis of theirimplicit perception of supply and demand of grid
resource at a given time. When a resource is scarce,
grid task agents have to increase the prices they are
willing to buy, just as resource agents decrease the
price at which they are willing to offer the resource.
3.1. Grid resource agents
Grid resource agents publish resource/service
descriptions to Grid Resource Manager. A grid
resource agent can appear or leave the grid at any
time. Resource grid agent provides services that
can be used by other grid agents. Grid resource
agents can have multiple accessing interfaces,
though an agent does not need to publish all of its
interfaces for use. Each published interface isadvertised as an agent entry point. An agent entry
point is a URI that uniquely identify an agent�sinterface. Grid resource agent entry points are used
by other grid agents to establish direct point-to-
point connection between two grid agents [13–17].
A grid resource agent has a set of n resources
units of grid resource� computation capacity re-
quired to serve task agent�s requirement, that itcan sell under market control. At time t, the price
to be asked for each of these units is stored in a
vector pt ¼ fp1t ; p2t ; . . . ; pnt g with the range of pos-
sible prices being zero to infinity, pnt 2 ð0;1Þ, foreach member of the vector i ¼ 1; . . . ; n and each
time period t. At time t ¼ 0 the prices for each unit
are randomly (uniformly) distributed on ½0;H where H is the initial upper limit on prices asked.Given its baseline level, the resource agent at-
tempts to maximize its income. When x units havebeen allocated, the remaining n x units are of-
fered for sale simultaneously. Suppose that of the
n x units offered for sale in a given period t, the munits with the lowest prices are successfully sold.
The prices in the vector are updated by using price-
directed allocation algorithm. Thus the grid re-source agent increases or decreases the price of any
unit by a small amount e after each negotiation.
Here e is obtained from a uniform random distri-
bution. This approach was chosen so that the
prices of each resource should adapt to the dy-
namic demand on the grid.
3.2. Grid task agent
Grid resource agents sell the underlying re-
sources of the grid. A grid task agent that repre-
sents the grid user makes buying decisions within
budget constraints to acquire computation re-
sources. The offers placed on the grid market by
grid resource agents are allocated to grid task
agent. Grid task agents buy computation resourcessolely on the basis of the most recent price infor-
mation they have. Grid task agents initiate com-
pete for grid resource by signaling that they wish
to buy resources to complete certain tasks. The
task agent retains a vector of prices that it is
willing to pay for resources. The price paid for
each resource agent should be as low as possible
without failing to obtain the resource. Thereforethe task agent makes a request for each resource
that it needs separately. If a request was rejected,
the agent increases the price it will send to resource
agent at the next negotiation. If a request was
accepted, the agent reduces the price it pays for
that resource in subsequent negotiations.
3.3. Grid market
Grid task agents and grid resource agents do
not communicate directly with one another or
amongst themselves. All interactions are by the
means of grid market. The grid market also
broadcast the prices at which trades are agreed, so
the agents have more information upon which to
base their trading behavior. The negotiation be-tween agents is mediated by means of a grid
market. It allows multiple grid task agents and
grid resource agents to negotiate simultaneously, it
provides a dense set of market price information
and it allows supply and demand to be reconciled
at the same time. Grid markets provides a means
to complete institutionally mediated bargaining in
one shot that would take an indeterminate timeusing iterated market allocation algorithms. The
resources exchanged at the grid markets are the
526 L. Chunlin, L. Layuan / Journal of Systems Architecture 50 (2004) 521–535
right to use slices of computation resource of grid
resource agent, which when taken together, pro-
vide the necessary capacity to grid task agent. The
grid markets use price-directed allocation algo-
rithm that will be described in Section 4. In this
algorithm an initial set of prices is announced tothe task agent. In each iteration, grid resource
tasks individually determine their optimal alloca-
tion and communicate their results to the grid re-
source agent. Grid resource agents then update
their prices and communicate the new prices to the
task agents and the cycle repeats. Prices are then
iteratively changed to accommodate the demands
for resources until the total demand equals to thetotal amount of resources available.
3.4. Grid Manager
The Grid Manager allows market participants
to discover and utilize the capabilities of other
market participants. A market participant may be
a resource provider, called a Grid Resource Agent.The resource registers its capability with a Grid
Manager. A market participant may be a resource
user, called a Resource Requestor agent. The
Requestor agent accept user�s request, deliver it togrid task agent, which discovers Grid Resources
and requests to use them through a Grid Manager.
The Grid Manager communicates with other Grid
Managers to perform its role as a resource broker.Each Grid Manager has a universally unique
identifier, GM-ID. GM-ID is a string used by grid
task agents, grid resource agents, and Grid Market
Managers to uniquely identify a particular Grid
Manager in a transport independent way.
Each Grid Manager listens on a resource
announcement channel, which is a multi-cast ad-
dress set in each Grid Manager�s announcement.Grid Resource Agent�s services that want to par-
ticipate in the system get this address from the
Grid Manager announcement and then periodi-
cally broadcast their own resource description to
it. Grid Manager caches the resource descriptions
of grid resource agent that are advertised. The
Grid Manager does this by receiving all incoming
resource announcements using the resourceannouncement protocol that provides resource
description authentication. The Grid Manager
adds the description to its database and updates
the description�s timestamp. Periodically, the Grid
Manager flushes old resource descriptions based
on the timestamp of their last announcement.
In addition to receiving resource descriptions of
grid resource agent, another function of GridManager is to answer grid task agent� s queries.
The Grid Manager searches for resource descrip-
tions that match the query. Depending upon the
type of query, the Grid Manager returns either the
best match or a list of possible matches. A Grid
Manager works together with each other. Each
one discovers other remote grid manager by its
Connection Module. For each discovered remoteGrid Manager, the Connection Modula finds the
ID code of the remote one, registers the ID code
with the local manager, and maintains the associ-
ation between the transport address and the ID of
the remote Grid Manager. The Grid Manager can
discover other remote Grid Managers and deter-
mine the resources registered there. Resource
Discovery is performed by comparing requiredresources type(s), as specified by the local grid
manager, with the resource type(s) available on a
remote grid manager. Remote Procedure Calls are
used to transmit the required resource type(s) from
the local grid Manager to the remote Grid Man-
ager and to transmit the response from the remote
Grid Manager to the local grid manager.
4. Economic agents for grid resource management
The main actions involved in grid resource
management are registry, discovery, and access.
There are three processes: Grid Resource Registry,
Grid Resource Discovery, and Grid Resource
Allocation. Grid Resource Registry is activated
when Grid Resource Agents register their presence
by publishing their resource descriptions. The GridResource Discovery provides a basic mechanism
to discover grid resources for grid task agents.
Grid Resource Allocation is used for grid task
agents to access the located resource.
4.1. Grid Resource Registry
In order for a new grid resource to become part
of the grid, the resource must be known to a grid
L. Chunlin, L. Layuan / Journal of Systems Architecture 50 (2004) 521–535 527
resource manager. Resource registration is the
process to make its resource description available
in the grid resource manager. Grid Resource
Registry is used to register grid resources repre-
sented as Grid Resource Agent (GRA) (See Fig.
2). Each Grid Resource Agent makes its resourcesavailable for other grid member by registering the
resources to Grid Manager (GM). Grid resource
registration is performed as follows. By sending
out Grid Manager announcement over a range, a
GRA can detect Grid Manager running within
that range. Included in the Grid Manager
announcement is an IP address and port number
through which Grid Manager can contact theGRA. Grid Manager monitors the well-known
port for service announcement packets of GRA.
When Grid Manager receives a service announce-
ment, it opens and inspects the packet. The packet
contains information that enables the Grid Man-
ager to determine whether or not it should contact
GRA. If so, it contacts the GRA directly by
making a TCP connection to the IP address andport number extracted from the packet. Using
RMI, the Grid Manager sends an object, called a
Registry, across the network to the GRA. The
purpose of the Registry object is to facilitate fur-
ther communication with Grid Manager. By
invoking methods on this object, GRA can register
its service as a part of service collection in Grid
Manager. The GRA signs its service using Ser-
viceSigner. The ServiceSigner stores a number of
items, including the service public key, the service
certificates, a computed code certificate, and a
computed data certificate. The GRA sends its
service to Grid Manager, now the service contains
a bunch of security related information. The GRA
GM GRA
Registration acknowledgement
Resource forward to parent GM
Notification
Registration initiation
GM
Resource advertisement
Resource registry
ServiceSigner
Resource authorization
Fig. 2. The process of Grid Resource Registry.
calls RegisterService() or UnregisterService() to
register or unregistered itself, respectively, with the
local Grid Manager. Several important objects to
implement service registry will be described in de-
tails.
Once GRA has a Registry object that is gotfrom Grid Manager, GRA prepares to register its
service. There are several classes that implement
the grid resource registery: Servicebuilder, Ser-
viceSpace interface and ServiceHandler class. The
Servicebuilder registers grid services in the Grid
Manager. It is state-less. It just implements the
method to register a grid service. Service-type
specific Servicebuilder objects do the real work.When the Grid Manager started up, it instantiated
those Servicebuilder objects and saved them in the
ServiceRegistry object. When a registerservice()
request is received, Servicetype attribute in the
given service specification is used to determine
the type of grid service. Based on the service type,
the appropriate Servicebuilder object is retrieved
from the ServiceRegistry. Then the Servicebuilerinvokes CreateService() method to create the new
service reference. Before a service is registered, its
ServiceDescription will be validated by the Ser-
vicebuiler. It is acceptable to have a null Service-
Description, or a ServiceDescription with no
ServiceAttributes. Both cases signify that this ser-
vice cannot be discovered after registration. If the
ServiceDescription contains one or more Service-Attributes, the validation ensures that all attri-
butes in a given ServiceDescription are consistent
with the ServiceAttribute Description.
Fig. 3 gives the formal descriptions of grid re-
source registration, Fig. 3(a) describes the actions
of grid resource manager; Fig. 3(a) describes the
actions of grid resource agents.
4.2. Grid Service Discovery
The Grid Service Discovery is used to discover
any published resource or service. Resources or
services are represented as advertisements. The
Grid Service Discovery enables a grid task agent to
find advertisements in its grid unit.
The Grid Manager can discover other remoteGrid Managers and determine the services regis-
tered there. Service Discovery is performed by
// Actions of grid resource manager Announce (presence); While (not listen from Agent) {If (receive announcement) break;}//receive response from resourceagent address= ResponseInspector.address();//extract address Connect(address.IP, address.port); registry=new Reigistry(); SendTo(registry, address); // send registry object to resource agent
// Actions of grid resource agents While (not listen from manager) { If (receive announcement) break;}/ /receive announcement from grid manager Publish(advertisment);
sock.receive(packet) port = ResponseInspector.getPort();//get manager address ServiceAgentref=new ServiceAgent();Agent SS=New ServiceSigner();Service=SS.AddSercurity(ServiceAgentref); Registry.Advertise(Service);//publish resources of grid resource agent
(a) (b)
Fig. 3. Formal descriptions of grid resource registration.
528 L. Chunlin, L. Layuan / Journal of Systems Architecture 50 (2004) 521–535
comparing required services type(s), as specified by
the local Grid Manager, with the service type(s)
available on a remote Grid Manager. Remote
Procedure Calls are used to transmit the required
service type(s) from the local Grid Manager to theremote Grid Manager and to transmit the re-
sponse from the remote Grid Manager to the local
Grid Manager. Through manipulation of the
specification of required service type, the Grid
Manager can determine characteristics of all the
services registered at a remote Grid Manager and
the presence of a service on a remote Grid Man-
ager matching a specific set of constraints.Requests of grid task agent are expressed in
terms of constraints. Constraints represent the
requirements for the service to be found. Con-
straint language of service discovery is based upon
XML. Constraints are passed as strings to the
constructor of the XML class. During construc-
tion, the constraint is parsed and the expression
tree is created. The grid task agent calls Search-Service() to ask the local Grid Manager to search
for Grid Managers containing registered services
with a particular constraints. The local Grid
Manager returns the list of GM-IDs to the Grid
task agent. The Grid Manager with the GM-ID
included in the list has information about Grid
Service Agent that can provide the service re-
quested by the Grid task agent. If Grid Manager isa parent manager it performs the search on the
parent Grid Service Registry that should contain
information on all registered services in the grid. If
the local Grid Manager is a child manager, it will
find a local service if a suitable one is available
otherwise it will query a parent node for a suitable
service. The searching process can also explicitly
request a parent Grid Manager search. When
multiple parent managers are available, the childmanager has the option of selecting a parent based
on some criteria such as node load. GRA provides
an XML Description describing its functionality
and properties when it registers into the Grid
Manager. When a grid task agent wants to use a
service, it creates a XML DOM object describing
the service it needs along with constraints. Grid
task agent then finds the appropriate service usingthe XML match. The XML match handles con-
straints such as requirements, cost etc. For in-
stance, grid task agent can ask that the service cost
less than some amount, or that it must have some
special functions or requirement. Similarly, the
matching process ensures that a grid task agent
gets only those services, which it is capable of
executing in the required hardware or softwareenvironment. The register() method invoked by
GRA is declared in the Registration interface,
which all Registry objects implement. GRA talks
to Grid Manager through the Registry object by
invoking methods declared in the Registration
interface. Once GRA�s service has registered with
Grid Manager, that service is available for use by
grid task agents that will query the Grid Manager.Grid task agent must find and enlist the help of
GRA to perform some task. To find a service, grid
task agents query Grid Manager by invoking the
locate() method on Registry object. The grid task
Grid resource agentGrid managerGrid task agent
Get Connected Forward price information
Decide allocation Negotiation
Forward allocation request
Resource allocation
Fig. 5. The process of resource negotiation.
L. Chunlin, L. Layuan / Journal of Systems Architecture 50 (2004) 521–535 529
agent passes a XML service template as an argu-
ment to locate() method, XML service template
serves as search criteria for the query. The locate()
method sends the XML service template to the
Grid Manager, which performs the query and
sends back many matching service descriptions.If the grid task agent does not specify any
particular constraints when it calls SearchSer-
vice(), the list of all the GM-ID of Grid Managers
known to the local Grid Manager is returned. The
grid task agent calls Queryservice() to discover
what grid services are registered at a Grid Man-
ager. The grid task agent may specify either the
local Grid Manager or a remote Grid Manager.The specified Grid Manager automatically re-
sponds to this query as well as to the SearchSer-
vice() without involving the specified Grid
Manager. Fig. 4 gives the formal descriptions of
grid resource discovery.
4.3. Grid Resource Allocation
Grid Resource Allocation is used for grid task
agent to access the located grid resource. Once a
grid task agent receives the Reply Description of a
Grid Manager, it can start communication with
the GM to use the services. Negotiation is the
process by which grid task agent and grid resource
agent interacts to reach an agreement through grid
market. In general, negotiation consists of thefollowing steps:
// Actions of grid resource manager While (not listen from Router)
{ If (receive announcement) break;}
Query= new BuildQuery ( Querytype, Attributes); //create query object SetQuerytype(type); If ( Querytype=”1”) SendQueryToAll(); If (Querytype=”2”) SendQueryToNeighbor(); If (Querytype=”3”) SendQueryToLocal(); Result=ReturnResult();
//resCoReEn // AReIf No
Se
Els
Fig. 4. Formal descriptions of
(1) Grid task agents request the grid marketplace
for admission to the negotiation. If they are
accepted, they receive rules specifying how
the negotiation takes place.
(2) Grid task agents submit resource allocation re-quest to grid marketplace according to the
rules of the negotiation received at admission.
(3) If the request is valid, the Market Manager
forwards then the request to the intended
addressees. During negotiation, the grid mar-
ketplace informs grid participants of the cur-
rent status of the negotiation by sending
some short messages such as the current prices.(4) After negotiation completes, determines any
final resource allocation results.
The process of resource negotiation is shown in
Fig. 5.
We design a price-directed market-based algo-
rithm for solving the grid task agent resource
allocation problem. In this algorithm, an initial set
actions of grid request agents. ult=GetResponse();//receive manager’s response nnectService(result.Description);//establish sessionsult=receive(); dConnect();//end connection
ctions of grid resource manager ceive(message); (CheckAvailable(message))//check description tify(Agent, message);//notify agent of connection Result=Receive(response);
If (Result. accept) ndResult(ServiceAgentRef);//send result to agent
Else SendResult(NULL); e reject(RequestAgent,’ not available’);
grid resource discovery.
530 L. Chunlin, L. Layuan / Journal of Systems Architecture 50 (2004) 521–535
of prices is announced to the task agent. The task
agents determine their resource demands accord-
ing to these prices. The task agents request these
resources capacity from the resource agents. Prices
are then iteratively changed to accommodate the
demands for resources until the total demandequals to the total amount of resources available.
The detail of whole process can be described as
follows: Grid resource agents announce a set of
initial prices P ¼ ðp1; p2; . . . ; pjÞ, each grid task
agent i calculates its optimal resource demand for
grid resource agent.
Then, forward these resource demands to the
grid resource agents. At iteration n, each grid re-source agent j updates its price according to the
grid task agent�s demands.
pðnþ1Þj ¼ max e; pðnÞj
nþ g xjP ðnÞ�
Cj
�o
where xji is the resource units allocated to task
agent i by resource agent j, xj ¼P
i xji , n is the step
size. cj is the capacity in computational units of jthgrid resource agent. Let e > 0i be a sufficientlysmall constant preventing prices to approach zero.
Thus, if the total demandP
i xji is greater than the
cache capacity Cj, then the new price pðnþ1Þj is in-
creased, otherwise it is decreased. Grid resource
agent announces the new prices P ðnÞ to the grid
task agents. This cycle stops until the total demand
equals to the total amount of resources available,
P ðnÞ are the set of prices at the equilibrium.
Algorithm 1: Price-directed resource allocation
algorithm
Grid task agent part algorithm {
If a task submitted {
For every task agent participating in compet-
ing resources {send request to grid resource agent; }
}
If grid resource agent reply comes in {
Store the reply;
If all price replies for this task are received {
For all price replies
Repeat { n ¼ nþ 1;
calculates its optimal resource demand;Send resource demands to the grid re-
source agents;}
Until the total demand equals to the total
amount of resources available. }
Send payment to resource grid agent;
Get allocated resource.
Grid resource agent part algorithm {
Grid resource agents announce a set of initial
prices:
P ¼ ðp1; p2; . . . ; pjÞif grid task agent reply comes in {
For each grid resource agent {
n ¼ nþ 1;
pðnþ1Þj ¼ max e; pðnÞj þ g xjP ðnÞ Cj
� �n o
Cj ¼P
j xji
Announce the new prices P ðnÞ to the grid task
agents;
} Until the total demand equals to the totalamount of resources available.
5. Experiments
Based on the prototype implementation of the
proposed model, a basic performance evaluation
was done. Our experiment divides into two parts,one is overhead of registering a grid resource
agent, and other one is overhead of locating a grid
resource agent. The experiment environment con-
sists of 100 nodes. Each machines run Windows
NT 4.0 and the agent execution environment use
JDK 1.1. These machines are located in different
subnets. Grid Manager is populated with different
number of agents. Timing measurements are madeon machines that host agents. There are two main
factors that affect results, one is network latency,
and another is machine speed. All the experiments
are repeated at least three times. In the experi-
ments we change some of test parameters, such as
the number of agents used in the test, number of
machines comprising service discovery networks
that are denoted by M in bellow figures. We devisetests with local search and global searches. The
size of the agent code without additional data is
around 1.6 Kb.
In the first experiment, we have measured the
time to register ten service agents. The results are
shown in Fig. 6. Times to register agents are little
56789
1011121314
1 5 10 20 25 35 40 45 50 60 70Number of agents registered
Tim
es to
reg
iser
age
nts(
s)
Fig. 6. Register time vs. number of agents registered.
51015202530354045505560
1 3 5 8 12 16 18 20 23 25Number of agents returned
Tim
es to
loca
te a
gent
slo
cally
(ms)
20 agents 30 agents 50 agents
Fig. 8. Local search time vs. number of agents returned.
102030405060708090
1 3 5 8 12 16 18 20 23 25Number of agents returned
Tim
es to
loca
teag
ents
(ms)
20 agents 30 agents 50 agents
Fig. 9. Global search time vs. number of agents returned
(m ¼ 4).
L. Chunlin, L. Layuan / Journal of Systems Architecture 50 (2004) 521–535 531
affected by number of agents already registered. In
the second experiment, we measure times to locate
different number of service agents locally vs.
number of agents registered in the Grid Manager.In this experiment, One, 15, and 30 service agents
are located respectively. Fig. 7 shows time to lo-
cate multiple agents is independent of number of
agents registered. In the third experiment, we also
measure times to locate service agents locally vs.
number of agents returned by lookup with differ-
ent number of lookup agents. In the following four
experiments, we use 20, 30, and 50 lookup agentsrespectively to measure search times. Fig. 8 shows
that time for lookup of many agents increases
proportionally to number of agents returned by
the lookup. In the fourth experiment, we measure
times to locate service agents globally vs. number
of agents returned by lookup with different num-
ber of lookup agents (lookup 20, 30, and 50 agents
respectively) and configure four machines com-prising agent/resource discovery networks
(M ¼ 4). The results are presented in Fig. 9. In this
case, it was interesting to observe that before the
5
10
15
20
25
30
35
40
45
1 5 10 20 25 35 40 45 50 60 70Number of agents registered
Tim
es to
loca
te a
gent
slo
cally
(ms)
1 agent 15 agents 30 agents
Fig. 7. Local search time vs. number of agents registered.
number of agents returned by lookup increases to12, the curves of 30 lookup agents and 50 lookup
agents are very close. But from entire figure, time
increases proportionally to number of agents re-
turned by the lookup. In the fifth experiment, we
use eight machines to comprise agent discovery
network (M ¼ 8) and other conditions are as same
as third experiment. As can be seen in Fig. 10, the
difference of three curves is small. The curve of 30lookup agents is parallel to the curve of 50 lookup
10
30
50
70
90
110
1 3 5 8 12 16 18 20 23 25Number of agents returned
Tim
es to
loca
teag
ents
(ms)
20 agents 30 agents 50 agents
Fig. 10. Global search time vs. number of agents returned
(m ¼ 8).
20406080
100120140160180200
1 3 5 8 12 16 18 20 23 25Number of agents returned
Tim
es to
loca
teag
ents
(ms)
20 agents 30 agents 50 agents
Fig. 11. Global search time vs. number of agents returned
(m ¼ 12).
532 L. Chunlin, L. Layuan / Journal of Systems Architecture 50 (2004) 521–535
agents. In the sixth experiment, the number of
machines is increased by 12 (M ¼ 12) and other
conditions remain unchanged. As can be seen in
Fig. 11, time of lookup 50 agents increases dra-
matically to number of agents returned by thelookup.
Results of above performance evaluations are
approximate, but are illuminating. Some conclu-
sions can be made. Firstly, times to register agents
are little affected by number of agents already
registered. Secondly, locating agents globally
spend more times than locating agents locally.
Thirdly, time to locate multiple agents is inde-pendent of number of agents registered. Fourth,
time to locate many agents increases proportion-
ally to number of agents returned by the lookup.
Further experiments are in progress to refine ori-
ginal results.
6. Related work and discussion
There several important computational grid
projects that inspire our grid resource manage-
ment.
The DARPA CoABS (Control of Agent Based
Systems) project [27] aims to develop agent sys-
tems for offering specialized services, such as
component interaction managers, database wrap-pers, traders/brokers, to resource planners and
interactions managers. The CoABS Grid provides
a framework for integrating diverse agent-based
systems in a robust and agile manner. Agents and
object-based systems dynamically register and
discover relevant participants in order to collabo-
rate meaningfully. Systems evolve, join and leave
the Grid over time without the necessity to rec-
onfigure the network. If systems become unavail-
able due to partial network failures, other similar
systems can be discovered and substituted for the
missing systems.
A4 (Agile Architecture and AutonomousAgents) methodology [28], which can be used for
resource management for grid computing. An
initial system implementation utilizes the perfor-
mance prediction techniques of the PACE toolkit
to provide quantitative data regarding the perfor-
mance of complex applications running on local
grid resources. At the meta-level, a hierarchy of
identical agents is used to provide an abstractionof the system architecture. Each agent is able to
cooperate with other agents to provide service
advertisement and discovery to schedule applica-
tions that need to utilize grid resources. A per-
formance monitor and advisor are in development
to optimize the performance of agent behaviors.
Condor [29] is a high-throughput computing
environment developed at the University of Wis-consin at Madison. It can manage a large collec-
tion of computers such as PCs, workstations, and
clusters that are owned by different individuals.
The Condor matchmaker queries the collector for
resource discovery that it uses to determine com-
patible resource requests and offers. The agents are
then notified of their compatibility. The compati-
ble agents then contact each other directly and ifthey are satisfied, then the customer agent initiates
computation on the resource. Resource requests
and offers are described in the Condor classified
advertisement (ClassAd) language. ClassAds use a
semi-structured data model for resource descrip-
tion. Thus no specific schema is required by the
matchmaker allowing it to work naturally in a
heterogeneous environment.Grid Architecture for Computational Economy
(GRACE) [20,21] proposes a distributed compu-
tational economy as an effective metaphor for the
management of resources and application sched-
uling. It proposes an architectural framework that
supports resource trading and quality of services
based scheduling. It enables the regulation of
supply and demand for resources; provides anincentive for resource owners to participate in the
Grid; and motivates the users to trade-off between
L. Chunlin, L. Layuan / Journal of Systems Architecture 50 (2004) 521–535 533
deadline, budget, and the required level of quality-
of-service. It also demonstrates the capability of
economic-based systems for peer-to-peer distrib-
uted computing by developing users� quality-of-service requirements driven scheduling strategies,
algorithms, and systems.Nimrod-G [18] is a Grid resource broker that
allows managing and steering task farming appli-
cations on computational Grids. It uses an eco-
nomic model for resource management and
scheduling. Users formulate parameter studies
using a declarative parametric modeling language
or GUI with the experiment being run on the Grid.
Nimrod-G provides resource discovery, resourcetrading, scheduling, resource staging on Grid
nodes, result gathering, and final presentation to
the user. Nimrod-G uses GRACE services to
dynamically trade with resource owner agents
to select appropriate resources. GRACE enabled
Nimrod-G has been used for scheduling parameter
sweep application jobs on the WWG test bed re-
sources.The Globus project [30] defines an extensive
framework for metacomputing. The project builds
a metacomputing toolkit that encapsulates a col-
lection of low-level services (for resource alloca-
tion, communication, authentication and file
access). Globus is constructed as a layered archi-
tecture in which higher-level services can be
developed using the lower level core services. Itsemphasis is on the hierarchical integration of Grid
components and their services. This feature
encourages the usage of one or more lower level
services in developing higher-level services. Re-
source and status information is provided via an
LDAP-based network directory called MDS.
MDS consists of two components, Grid Index
Information Service (GIIS) and Grid ResourceInformation Service (GRIS). GRIS implements a
uniform interface for querying resource providers
on a Grid for their current configuration, capa-
bilities, and status.
Legion [30] is an object-based metasystem or
Grid operating system developed at the University
of Virginia. Legion provides the software infra-
structure so that a system of heterogeneous, geo-graphically distributed, high performance
machines can seamlessly interact. Legion provides
application users with a single, coherent, virtual
machine. The Legion system is organized into
classes and metaclasses. Legion appears as a
complete vertically integrated system, its architec-
ture follows the hierarchical model. It uses an
object based information store organizationthrough the Collection objects. Collections peri-
odically pull resource state information from host
objects. Host objects track load and users can call
the individual host directly to get the resource
information. Information about multiple objects is
aggregated into Collection objects. Users or sys-
tem administrators can organize collections into
suitable arrangements.Compared with above grid projects, our method
takes advantage of market oriented model and
agent technology to build grid resource manage-
ment, and provides users with a consistent and
transparent interface for accessing grid services.
All market participants in the grid environment
including computing resources and services can be
represented as agents. A grid market participantcan be a service agent that provides the actual grid
service to the other market participants. Market
participant is registered with a Grid Market
Manager.
7. Conclusions
This paper presents exploiting economic agent
to build computational grid resource management.
A realistic model for three layer of the overall
system is presented. The grid task agents buy re-
sources to complete tasks. Grid resource agents
charge the task agents for the amount of resource
capacity allocated. The three processes involved in
grid resource management are Grid ResourceRegistry, Grid Resource Discovery, and Grid
Resource Allocation. Grid Resource Registry is
used to register Grid Resource Agents their pres-
ence by publishing their resource descriptions. The
Grid Resource Discovery provides a basic mech-
anism to discover grid resources for grid task
agents. Grid Resource Allocation is used for grid
task agent to access the located grid resource. Thispaper provides a price-directed market-based
algorithm for solving the grid task agent resource
534 L. Chunlin, L. Layuan / Journal of Systems Architecture 50 (2004) 521–535
allocation problem. A basic performance evalua-
tion is given. Future works will focus on optimi-
zation problems related to grid task agent and grid
resource agent�s pricing policy.
Acknowledgements
The authors thank subject area editor Prof.
Damiani and the anonymous reviewers for their
useful comments and suggestions. The work is
supported by National Natural Science Founda-
tion of China and NSF of Hubei Province.
References
[1] I. Foster, C. Kesselman, The Grid: Blueprint for a New
Computing Infrastructure, Morgan Kaufmann, 1999.
[2] Available from <www.canet3.net/>.
[3] H. Casanova, G. Obertelli, F. Berman, et al., The AppLeS
parameter sweep template: User-level middleware for the
grid, in: Proc. of Super Computing, Springer Verlag, 2000,
pp. 75–76.
[4] H. Casanova, J. Dongarra, NetSolve: A network server for
solving computational science problems, International
Journal of Supercomputing Applications and High Per-
formance Computing 11 (3) (1997) 212–223.
[5] Li Chunlin, Lu zhengding, Li layuan, Design and imple-
mentation of a distributed computing environment model
for Object_Oriented Networks Programming, Journal of
Computer Communications 25/5 (2002) 517–522.
[6] N. Antonopoulos, A. Shafarenko, An active organization
system for customized, secure agent discovery, The Journal
of Supercomputing 20 (2001) 5–35.
[7] Bluetooth SIG, Bluetooth Specification, Version 1.1,
Available from <www.bluetooth.com>, 2001.
[8] J. Waldo, Jini Architecture Overview, Sun Microsystems
Whitepaper, 1999.
[9] Universal Plug and Play Forum. Universal Plug and Play
Device Architecture, Version 1.0, Available from
<www.upnp.org>, 13 June 2000.
[10] S. Czerwinski, B. Zhao, T. Hoddes, A. Joseph, R. Katz, An
architecture for a secure service discovery service, in:
Proceedings of MobiCom�99, ACM, Seattle, WA, 1999.
[11] Salutation Consortium. White paper: salutation architec-
ture: Overview. Available from <www.salutation.org/
whitepaper/originalwp.pdf>, 1999.
[12] E. Guttman, C.E. Perkins, M. Day. Service Location
Protocol, Version 2. Internet RFC 2608, June 1999.
[13] I. Foster, C. Kesselman, J. Nick, et al., Grid services for dis-
tributed system integration, Computer 35 (6) (2002) 37–46.
[14] M. Litzkow, M. Livny, M.W. Mutka, Condor––A hunter
of idle workstations, in: Proceedings of the 8th Interna-
tional Conference of Distributed Computing Systems, June
1988.
[15] R. Buyya, S. Chapin, D. DiNucci, Architectural models for
resource management in the grid, in: First IEEE/ACM
International Workshop on Grid Computing (GRID
2000), LNCS Series, Springer Verlag, Germany, 2000.
[16] R. Buyya, D. Abramson, J. Giddy, Nimrod/G: An
architecture for a resource management and scheduling
system in a global computational grid, in: International
Conference on High Performance Computing in Asia–
Pacific Region (HPC Asia 2000), Beijing, China, IEEE
Computer Society Press, USA, 2000.
[17] Li Chunlin, Li Layuan, Integrate software agents and
CORBA in computational grid, Journal of Computer
Standard and Interface 25/4 (2003) 357–371.
[18] Li Chunlin, Lu Zhengding, Li Layuan, Design and
implementation of a hybrid agent platform, Programming
and Computer Software 29 (1) (2003) 28–42.
[19] Li Layuan, Li Chunlin, A distributed QoS-Aware multicast
routing protocol, Acta Informatica 40/3 (2003) 211–233.
[20] R. Buyya, J. Giddy, D. Abramson, A case for economy
grid architecture for service-oriented grid computing, 10th
IEEE International Heterogeneous Computing Workshop
(HCW 2001), In conjunction with IPDPS 2001, San
Francisco, California, USA, April 2001.
[21] Li Chunlin, Zhengding Lu, Li Layuan, Apply market
mechanism to agent-based grid resource management,
International Journal of Software Engineering and Knowl-
edge Engineering 13/3 (2003) 327–340.
[22] Y. Amir, B. Awerbuch, A. Barak, S. Borgstrom, A. Keren,
An opportunity cost approach for job assignment in a
scalable computing cluster, IEEE Transactions on Parallel
and Distributed Systems 11 (7) (2000) 760–768.
[23] Y. Amir, B. Awerbuch, R. Sean Borgstrom, A cost-benefit
framework for online management of a metacomputing
system, in: Proceedings of 1st International Conference on
Information and Computational Economy, Charleston,
SC, USA, 25–28 October 1998.
[24] S. Lalis, A. Karipidis, An open market-based framework
for distributed computing over the Internet, in: Proceed-
ings of the First IEEE/ACM International Workshop on
Grid Computing (GRID 2000), Bangalore, India, Springer
Verlag Press, Germany, 2000.
[25] N. Nisan, S. London, O. Regev, N. Camiel, Globally
distributed computation over the Internet: The POPCORN
project, in: International Conference on Distributed Com-
puting Systems (ICDCS�98), Amsterdam, The Netherlands,
IEEE CS Press, USA, 1998.
[26] R. Ashri, M. Luck, Paradigma: Agent implementation
through Jini, in: Proceedings of the Eleventh International
Workshop on Database and Expert Systems Applications,
IEEE Computer Society Press, 2000.
[27] The CoABS DARPA Project, Control of Agent Based
Systems, Available from <coabs.globalinfotek.com/>.
[28] J. Cao, D.J. Kerbyson, G.R. Nudd, Performance evalua-
tion of an agent-based resource management infrastructure
for grid computing, in: Proceedings of 1st IEEE/ACM
L. Chunlin, L. Layuan / Journal of Systems Architecture 50 (2004) 521–535 535
International Symposium on Cluster Computing and the
Grid, Brisbane, Australia, May 2001, pp. 311–318.
[29] J. Basney, M. Livny, Deploying a High Throughput
Computing Cluster, High Performance Cluster Comput-
ing, vol. 1, Chapter 5, Prentice Hall PTR, 1999.
[30] S. Chapin, J. Karpovich, A. Grimshaw, The legion
resource management system, in: Proceedings of the 5th
Workshop on Job Scheduling Strategies for Parallel
Processing, April 1999.
[31] Project JXTA, Available from <www.jxta.org>.
[32] SETI@home, Available from <setiathome.ssl.berke-
ley.edu>.
[33] Avaki, Available from <www.avaki.com>.
[34] Li Layuan, Li Chunlin, A QoS-guaranteed multicast
routing protocol, Journal of Computer Communications
27/1 (2004) 59–69.
Li Chunlin was born in 1974. She re-ceived the M.E. in computer sciencefrom Wuhan Transportation Univer-sity in 2000, and Ph.D. degrees inComputer Software and Theory fromHuazhong University of Science andTechnology in 2003. She now is a lec-turer of Computer Science in WuhanUniversity of Technology. Her re-search interests include mobile agent,distributed computing and computa-tional grid. She has published over 15Papers in international journals.
Li Layuan was born in Hubei, Chinaon 26 February 1946. He received theBE degree in Communication Engi-neering from Harbin Institute of Mil-itary Engineering, China in 1970 andthe ME degree in Communication andElectrical Systems from HuazhongUniversity of Science and Technology,China in 1982. He academically visitedMassachusetts Institute of Technol-ogy, USA in 1985 and 1999, respec-tively. Since 1982, he has been with theWuhan University of Technology,China, where he is currently a Profes-
sor and Ph.D. tutor of Computer Science, and Editor in Chiefof the Journal of WUT. He is Director of International Societyof High-Technol. and Paper Reviewer of IEEE INFOCOM,ICCC and ISRSDC. He was the head of the Technical Groupof Shaanxi Lonan PO Box 72, Ministry of Electrical Industry,China from 1970 to 1978.His research interests include highspeed computer networks, protocol engineering and imageprocessing. Professor Li has published over one hundred andfifty technical papers and is the author of six books. He also wasawarded the National Special Prize by the Chinese Governmentin 1993.