apply agent to build grid service management
TRANSCRIPT
Apply agent to build grid service management
Li Chunlin*, Li Layuan
Department of Computer Science, Wuhan University of Technology, Wuhan 430063, People’s Republic of China
Received 24 September 2002; received in revised form 20 February 2003; accepted 21 February 2003
Abstract
This paper presents an Agent-based Grid Service Management, which applies the concept of
agents to computational grid. All entities in the Grid environment including computing resources and
services can be represented as agents. Each entity is registered with a Grid Service Manager. A Grid
service can be a service agent that provides the actual grid service to the other grid member. Grid
members communicate with each other by communication space that is an implementation of tuple
space. The design of three grid protocols for grid resource management is given. They are Grid
Service Discovery Protocol, Grid Service Subscription Protocol and Grid Service Access Protocol.
Grid service Subscription Protocol allows user/requestor agents to dynamically subscribe some grid
services for a finite time period. A grid service can be subscribed before it can be configured or used
by the user/requestor agent. A basic performance evaluation is given. Finally, some conclusions
are given.
q 2003 Elsevier Ltd. All rights reserved.
Keywords: Agent; Service; Grid; Service management
1. Introduction
The computational grid is a combination of distributed and heterogeneous computing
resources for executing large-scale applications. Providing an efficient and scalable
infrastructure to support the management of worldwide computational and data resources
is a very complex task. The Grid should provide the necessary computational and data
power to computational and data intensive applications. Inside the Grid many autonomous
components, including computational resource schedulers, replication managers, indexing
systems, monitoring systems, etc., must be combined in order to provide high level
1084-8045/03/$ - see front matter q 2003 Elsevier Ltd. All rights reserved.
doi:10.1016/S1084-8045(03)00018-3
Journal of Network and
Computer Applications 26 (2003) 323–340
www.elsevier.com/locate/jnca
* Corresponding author. Tel/fax: þ86-86534381.
E-mail addresses: [email protected] (L. Chunlin), [email protected] (L. Layuan).
services to applications. A feasible structure for the Grid is the one in which each
component is specialized in a specific set of services, and complex services that involve
the use of many services, are achieved by making the simpler components collaborate with
one another (Foster and Kesselman, 1999; Chunlin and Layuan, 2001; Chunlin et al., 2001,
2002; Litzkow et al., 1988; Buyya et al., 2000a,b). Agents and Multi-Agent Systems can
provide the necessary technology to fast prototype, experiment, and implement forms of
Grid collaboration.
A series of workshops on Agent-Based Cluster and Grid Computing were initiated in
2001 as part of the IEEE/ACM International Conference on Cluster Computing and the
Grid (Frank Manola and Craig Thompson; Rana and Walker, 2000; Krauter et al., 2002).
The most interesting work in the literature might be is ARMS (Cao et al., 2001). In ARMS,
a hierarchy of identical agents is used to provide an abstraction of the system architecture.
According to Cao et al. (2001), Scalability is one key challenge that must be addressed for
Grid computing. Our approach described below is to address scalable resource
management architecture. In this paper, we propose an Agent-based Computational
Grid (ACG), which combines concept computational grid with agent. It provides a
completely distributed environment within which agent systems and individual agents can
participate in a broader community of agents, utilizing services and capabilities provided
by other participants or the grid itself. ACG allows user/requestor agents to dynamically
subscribe some grid services for a finite time period. A grid service can be subscribed
before it can be configured or used by the user/requestor agent. Grid members
communicate with each other by communication space that is an implementation of
tuple space. ACG supports grid service subscription that allows user/requestor agents to
dynamically subscribe some grid services for a finite time period. The design goals of our
model focus on providing a flexible and efficient grid resource discovery system to
collaborate Grid Service Agents (GSA) in the grid.
The rest of the paper is organized as follows. Section 2 gives an overview of ACG grid.
Section 3 presents grid members communication. Section 4 describes grid resource
specification. Section 5 describes the design of grid protocols to implement grid service
management. Section 6 gives experiment. Section 7 describes some related work. Section
8 concludes the paper.
2. The overview of ACG grid
The ACG Grid is intended to provide a completely distributed environment within
which agent systems and individual agents can participate in a broader community of
agents, utilizing services and capabilities provided by other participants or the Grid itself.
ACG grid applies the grid concept to agents. It provides uniform access layer to a large
variety of Grid services including other libraries and applications. In essence, ACG Grid
can be viewed as a composition or federation of agent systems; it is responsible for
providing services and allocating resources among its members and is used to make agent
systems more interoperable.
The primary goal of the ACG system is to provide users with a consistent and
transparent interface for accessing such services. All entities in the Grid environment
L. Chunlin, L. Layuan / Journal of Network and Computer Applications 26 (2003) 323–340324
including computing resources and services can be represented as GSA. Each entity is
registered with a Grid Service Manager. An ACG Grid service is a service agent that
provides the actual Grid service to the user. ACG grid provides a framework, which
combines the capabilities of a computational grid and agent system architecture. As such,
the grid would need to incorporate services provided by agent system architectures, such
as communications, lifecycle services, matchmaking, facilitating, security, persistence
facilities, system management, and mobility. ACG grid knows not only about agents, but
also about their computational requirements and about available computational resources.
Hence, the ACG grid appears to incorporate both the concepts of the computational grid
and the agent, it provides a unified, heterogeneous distributed computing environment in
which computing resources are seamlessly linked. These agents play the roles of
applications whose computations can be distributed within this distributed computing
environment, resources that can be used within this environment, and infrastructure
components of this environment. There is an interface between the computational and
agent layers. Building the ACG grid involves all the computational grid issues of system
management, distributed computation and load balancing, mobile code, security, etc. This
requires a way of describing resources and capabilities, and resource requirements and
tasks, and a way to map between them, at both agent and computational levels.
The ACG architecture can be viewed as comprising of a number of nodes capable of
running GSA, service requestor agents and some infrastructure services. Grid members
interact with each other to achieve a task. The service usage model is role based. To enable
GSA to be added, updated and removed easily from the network, some form of discovery
system is required. This is the role of the ‘Grid Service Registry ’ which utilizes a database
that can be searched to locate registered grid services. This Grid Service Registry provides
a simple registration mechanism common to all nodes and a simple interface for searching
the registered services common to all nodes; it also provides a mechanism for ensuring the
registration database contains up to date information. It should be robust to guard against
node failure, in meanwhile, it minimize the network traffic required for maintaining the
registration system. Grid Service Registry utilizes a ‘Grid Service Manager’ on every node
in the grid. This manager is located on a fixed, pre-defined port, which is termed the
‘Registry Port’ and provides a common access point into the Grid Service Registry for all
nodes. By locating a server on all nodes, service requestor agents do not need any localized
network information to access the Grid Service Registry. Every node has an individual
Grid Service Manager, so the complete system is defined by the interaction between the
service managers.
3. Grid agents communication by tuple space
In ACG grid, Grid agents communicate with each other by Communication space that
is an implementation of tuple space. Communication space is the key to agent interaction
and collaboration. Communication space supports not only asynchronous messaging, but
also asynchronous group cooperation. In ACG grid, Grid members are wrapped as mobile
agents; they need to communicate over the network. But communication with a remote
mobile agent does have associated problems, caused by the mobility of the agent. Passing
L. Chunlin, L. Layuan / Journal of Network and Computer Applications 26 (2003) 323–340 325
messages to a remote agent requires the receiving agent’s address. However, this
technique can cause problems if the recipient moves to a new location before the
message’s arrival.
The tuple space can be used for indirect communication and more tight cooperation
between agents. Linda introduces an uncoupled communication paradigm that is based on
the abstraction of a tuple space. It acts as a shared store of data, which is kept as tuples that
are addressed associatively by a pattern used in a matching-mechanism to retrieve a tuple.
It is unknown, which agents put the tuples into the tuple space, thus communication
partners remain anonymous to each other. Linda as a coordination language is embedded
in some computational language, by which Linda’s coordination primitives are available.
The primitives out, in and rd deposit and retrieve tuples from the tuple space. The selection
of a tuple with respect to a given pattern provided by in-and rd-operations is governed by a
matching-rule. The basic paradigm of communication is uncoupled in that the sending and
receiving agents do not know about each other. This mechanism therefore needs no
identification scheme of agents, and is more abstract than a directed communication
paradigm. An agent willing to receive data uses a pattern or template to address is
associatively. It specifies what data it is interested in, not what message it wants to receive.
The template makes a semantic statement, whereas “deliver message grid A to grid B” is a
syntactic statement. Linda-like communication paradigm is spatially and temporally
uncoupled by enforcing anonymous and asynchronous interactions. The scheme of
communication through tuple space is shown in Fig. 1.
In order to describe communication via the tuple space, several important objects are
described first. The basic object in implementing Linda-like communication paradigm is
Tuple. Tuple is a set of objects that is referred as Field, each field of the tuple is a reference
to an object that can also represent primitive data type. In order to exploit XML, Class
TupleX, which derive Tuple class, is defined, and FieldX class extends the Field class. A
TupleX is an ordered sequence of Fields that defines a node in the XML DOM tree. A
FieldX is to store XML documents or XML URIs. Given an XML document, it can be
wrapped up in a FieldX simply by naming the XML String as one of the tuple constructor
parameters; the XML string content is passed off and converted into a TupleCluster. A
TupleCluster is essentially a tree of tuples, which as a whole mirrors the DOM (Document
Object Model) tree of the XML document. Every Tuple includes a TupleData object that
embeds the XML related data as one of its fields and its child and its parent Tuple
references. TupleSpace is a shared named collection of tuples. Agent can use TupleSpace
Fig. 1. Communication via Tuple space.
L. Chunlin, L. Layuan / Journal of Network and Computer Applications 26 (2003) 323–340326
to access the XML tuple space in a Linda-like fashion, i.e., by reading, extracting,
inserting fragments of XML data into the tuple space (Chunlin et al., 2002a,b).
4. Grid resource specification
In ACG grid, Service Requestor Agent discovers a resource using its service
description; access to the resource is governed by its service description. Various services
can be located with the use of Grid Service Manager, which reside within grid. When
searching or browsing for grid service, requestor agent requires a certain amount of
description information in order to decide whether or not the service is useful. If the
requestor agent decides to access the service, then it requires a different set of information
to ensure successful operation of the service. There are two types of description defined in
Grid Resource Specification: Grid Service Description and Service Attribute Description.
4.1. Grid service description
The ACG grid defines a syntax and semantics for describing the attributes of these grid
services called a Grid Service Description. The Service Description is a set of Service
Attributes abstract definitions. In general, a Service Description consists of zero or more
Service Attributes. There are three classes of Grid Service Description that are used in
three contexts:
(1) Service Description is a collection of all the Service Attributes registered and
maintained on a given Grid Service Manager.
(2) Request Description is a collection of Service Attributes representing service
requirements of a Requestor agent. It is generated as a result of a Service Discovery
request. Request description is included in the input parameter of SearchService( ) or
QueryService( ), or in the Query Service call message.
(3) Reply Description is a union between the local Service Description and Request
Description. It is generated as a response to a Service Discovery request. The record
is included in the output parameter of QueryService( ), or in the Query Service reply
.
XML is exploited to describe both service descriptions of grid service agent and service
requestor agent’s request description. XML allows the encoding of arbitrary structures of
hierarchical named values; this flexibility allows various service agents to create
descriptions that are tailored to their type of service. Valid service descriptions have a few
required standard parameters, while allowing service agents to add service-specific
information. An important advantage of XML over name-value pairs is the ability to
validate service descriptions against a set schema, in the form of Document Type
Definitions (DTDs). Unlike a database schema, DTDs provide flexibility by allowing
optional validation on a per tag granularity. This allows DTDs to evolve to support new
tags while maintaining backwards compatibility with older XML documents. Grid Service
Agents encode their service metadata as XML documents and register them with the Grid
L. Chunlin, L. Layuan / Journal of Network and Computer Applications 26 (2003) 323–340 327
Service Manager (GSM). Typical metadata fields include required capabilities, functions,
and timeout period. Service requestor agents specify their request description using an
XML template to match against; the template can include service-specific tags.
The Grid Service Description is as illustrated in Fig. 2.
4.2. Service attribute description
A Service Attribute consists of an Attribute ID field, identifying the type of the
attribute, a Result field that indicates the result of the comparison and a Value field,
containing the value of the attribute (see Table 1). The Result field is used in two ways:
† Attribute in registered or Request Description—This field specifies the type of a
function that compares the Attribute Value of the Service Description with that of the
Request Description.
† Attribute in reply Service description—This field indicates the result of the comparison.
In order to quickly and efficiently process a request query, indexes are used in grid
service attributes description. If no indexes were used for attributes of grid service
description in Grid Service Registry, every grid service defined must be compared to the
constraints specified in the query. This causes very slow lookup performance when GSM
has a large number of registered grid services. To reduce memory requirements for in-
memory repositories, index only the most important attributes in a grid service description.
Only attributes that requestor agent will most commonly use in lookup constraints are
indexed. The Indextype field in the ServiceAttribute allows you to specify the key
attributes. Valid values of Indextype include NO_INDEX and INDEX. If the value is
INDEX, the Grid Service Registry uses the attribute as an index.
Table 2 below describes some possible attributes that would be used within a grid
service description.
Fig. 2. Grid Service Description.
Table 1
Service Attribute Description
Attribute ID Result Value Index type
L. Chunlin, L. Layuan / Journal of Network and Computer Applications 26 (2003) 323–340328
Service Description contains the following attributes:
† Description: describes some features of this service.
† Access: describes how to invoke and use a grid service. The access method fields
provide the placeholder for any kinds of service invocation schema. A service
description may contain multiple access method tags as they could be multiple ways to
invoke a service. The intent is for the agent to ultimately decide which invocation
mechanism to use. Some agents may want to use a interface of services, some may
decide to download a requestor agent-proxy code, other agent need migrate to
destination node, access the services locally.
† Interface: indicate agent can access service by a standard interface.
† URL: gives location of services supplied by a legacy system.
† Agent platform: The agent platform in which the application was built on.
† Service type: Informs the user the type of service.
† Properties: Denotes a list of properties of the service.
4.3. Comparison of service attribute
Given a Service description and a Request Description, the following steps are taken to
find out whether the two Service descriptions match. If any of the steps indicates
MISMATCH, the two service descriptions do not match.
(1) For each Attribute in the Request Description, do the following until MISMATCH is
detected or until all attributes are processed: Firstly, check for the existence of
Attributes in the Service Description. If an Attribute with the same Attribute ID exists
in the Service Description, proceed to the following steps. Otherwise, this attribute is
considered to match, and then continue to the next attribute. Secondly, comparison of
values in Attributes. The compare function is called with two arguments: the
Attributes of the Service Description, and the Request Description. If the comparison
is performed and the result of the comparison is FALSE, the two attributes do not
match (MISMATCH). Otherwise, the comparison is not performed, or the result is
TRUE. In these cases, the two attributes are considered to match. The Result field is
filled in with TRUE or a reason code indicating why the Attribute Records were not
compared.
(2) If the entire requested Attributes match, the two Service descriptions match, and a
reply service description is built. Otherwise, the two Service descriptions do not
match, and no reply Service description is built.
(3) If any Attribute in the Service Description has not been compared because the
corresponding record does not exist in the Request Description, the Result field is
filled with a reason code indicating “ Attribute Not Requested”.
Table 2
Possible Attributes in a Grid Service Description
Description Access Interface URL Reference Agent platform Service type Properties
L. Chunlin, L. Layuan / Journal of Network and Computer Applications 26 (2003) 323–340 329
5. Grid service management
The main actions involved in grid service management are service discovery,
subscription, and access. There are three protocols: Grid Service Discovery Protocol
(GSDP), Grid Service Subscription Protocol (GSSP) and Grid Service Access Protocol
(GSAP). The GSDP provides a basic mechanism to discover grid services for requestor
agents. GSSP is responsible for grid service detection and subscription. GSSP allows
user/requestor agents to dynamically subscribe some services for a finite time period.
GSAP is used for service requestor agent to access the located service.
5.1. Grid service discovery protocol
The GSDP is used to discover any published resource or service. Resources or services
are represented as advertisements. The GSDP enables a service requester to find
advertisements. The GSDP protocol is the discovery protocol of the Global Grid. Custom
discovery services may choose to leverage GSDP. The GSDP is implemented by three
kinds of components: Grid Service Agents (GSA) that provides services, Service
Requestor Agents (SRA) that request services and entities that constitute Grid Service
Discovery Service itself.
The Grid Service Manager can discover other remote Grid Service Managers and
determine the services registered there. Service Discovery is performed by comparing
required services type(s), as specified by the local grid service manager, with the service
type(s) available on a remote grid service manager. Remote Procedure Calls are used to
transmit the required service type(s) from the local grid service Manager to the remote
Grid Service Manager and to transmit the response from the remote Grid Service Manager
to the local grid service Manager. Through manipulation of the specification of required
service type, GSM can determine characteristics of all the services registered at a remote
grid service manager and the presence of a service on a remote Grid Service Manager
matching a specific set of constraints.
public class DiscoveryServiceProtocol{
private void updateServiceAdv ( ) { }
public DiscoveryServiceProtocol( ) { }
public GridService getService( ){ }
public Advertisement getAdvertisement( ) { }
public int getRemoteAdvertisements(String gridmember, int type,String attribute,
String value,int entrypoint) { }
public Enumeration getLocalAdvertisements(int type, String attribute,String value)
throws IOException { }
public void init(Grid Unit GU, ID assignedID, Advertisement ad)throws UnitException
{ }
public void flushAdvertisements(String id, int type) throws IOException ( ) { }
public void publish(Advertisement adv, int type) throws IOException ( ) { }
public void publish(Advertisement adv, int type,long timeout)throws IOException { }
public void remotePublish(Advertisement adv, int type, long timeout) { }
L. Chunlin, L. Layuan / Journal of Network and Computer Applications 26 (2003) 323–340330
public void processResponse(ResponseMsg response) { }
public ResponseMsg processQuery(QueryMsg query)throws ResponseException,
IOException { }
public synchronized void addDiscoveryListener(DiscoveryListener listener) { }
private Vector search(int type,String attr, String value, int entrypoint,boolean bytes) { }
private String advToString(Advertisement adv) { }
}
Requests of Requestor Agent are expressed in terms of constraints. Constraints
represent the requirements for the service to be found. In ACG, constraint language of
service discovery is based upon XML. Constraints are passed as strings to the constructor
of the XML class. During construction, the constraint is parsed and the expression tree is
created. The Requestor Agent calls SearchService( ) to ask the local Grid Service Manager
to search for Grid Service Managers containing registered services with a particular
constraints. The local Grid Service Manager returns the list of GSM-IDs to the Requestor
Agent. The Grid Service Manager with the GSM-ID included in the list has information
about Grid Service Agent that can provide the service requested by the Requestor Agent. If
Grid Service Manager is a 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 Service 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 Service Manager search. When multiple
parent managers are available, the child manager has the option of selecting a parent based
on some criteria such as node load. GSA provides an XML Description describing its
functionality and properties when it registers into GSM. When a service requestor agent
wants to use a service, it creates a XML DOM object describing the service it needs along
with constraints. Service requestor agent then finds the appropriate service using the XML
match. The XML match handles constraints such as requirements, cost etc. For instance,
Service requestor 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
service requestor agent gets only those services, which it is capable of executing in the
required hardware or software environment. The register( ) method invoked by GSA is
declared in the Registration interface, which all Registry objects implement. GSA talks to
Grid Service Manager through the Registry object by invoking methods declared in the
Registration interface. Once GSA’s service has registered with Grid Service Manager, that
service is available for use by service requestor agents that will query GSM. Service
requestor agent must find and enlist the help of GSA to perform some task. To find a
service, service requestor agents query Grid Service Manager by invoking the locate( )
method on Registry object. The service requestor agent passes a XML service template as
an argument to locate( ) method, XML service template serves as search criteria for the
query. The locate( ) method sends the XML service template to GSM, which performs the
query and sends back many matching service descriptions.
If the Requestor Agent does not specify any particular constraints when it calls
SearchService( ), the list of all the GSM-ID of Grid Service Managers known to the local
Grid Service Manager is returned. The Requestor Agent calls Queryservice( ) to discover
L. Chunlin, L. Layuan / Journal of Network and Computer Applications 26 (2003) 323–340 331
what grid services are registered at a Grid Service Manager. The Requestor Agent may
specify either the local Grid Service Manager or a remote Grid Service Manager. The
specified Grid Service Manager automatically responds to this query as well as to the
SearchService( ) without involving the specified Grid Service Manager.
5.2. Grid service subscription protocol
The GSSP is responsible for grid service detection and subscription (see Fig. 3). GSSP
allows user/requestor agents to dynamically subscribe some services for a finite time
period. A grid service can be subscribed before it can be configured or used by the user/
requestor agent. The Subscription Service object provides the functionality to locate and to
subscribe/unsubscribe services. It contacts a Grid Service Manager in order to find
available services, and interacts with the service subscription server. This interaction is
necessary to prepare service usage in case of a grid service subscription. The service
subscription server manages all related information of services subscribed by a user/
requestor agent. This information is stored in a Service Subscription Object, which
comprises a formal description of the service and user specific service data. After a grid
service registers itself with a subscription server for the duration of time, a user agent can
present a request to the subscription server to subscribe the service, the request specifies
the parameters of the subscription: start time, duration, entities that participate in the
subscription, and the enforcement mechanism used to control service access during
the subscription. If the requested service is available, the subscription service then grants
the subscription, notifying the “subscribed service” and the users on subscription start/
stop. Service Subscription Server is responsible for the storage and retrieval of grid service
specific data for subscribed services. By means of this server it is possible for GSM to
determine, if the user agent has subscribed a certain grid service and to get hold of the
corresponding user service subscription object.
For each subscribed grid service there exists a service subscription object, which
comprises a reference to the grid service agent, from which the service was subscribed, the
subscription duration (beginning/end of service subscription), a formal service descrip-
tion. If the subscribed grid service is a special type service, GSM contains an additional
service description object, specifying the service. The grid service agent reference is
stored directly in the service subscription object, which can be obtained via getservice( ).
Via listServices( ) GSM can determine all services subscribed by the user agent. This
Fig. 3. The process of GSSP.
L. Chunlin, L. Layuan / Journal of Network and Computer Applications 26 (2003) 323–340332
method returns a list of references to service subscription objects, which can be used to
present the users a list of their subscribed services, so they can make use of the service
(make a call), or unsubscribe it. Whenever a service is subscribed by the user, a new
service subscription object is created by the subscription component, which is then
inserted into the service subscription server by invoking addService( ) with the service
subscription reference as argument. Similarly, if a subscribed service will be unsubscribed
(or the subscription expires), the subscription component invokes removeService( ), also
with the service subscription reference as argument.
If an user agent requests a certain service, GSM searches for a suitable service by
invoking lookupService( ), which takes a service description object as argument. If one is
subscribed, its related service subscription reference is returned, otherwise an exception
occurs. The beginning and end of a service subscription is stored in a duration object. The
start time can be obtained by invoking getStartTime, while the stop time may be
determined by invoking getStopTime( ).
Via listAvailableServices( ) GSM can locate all available grid services in response.
This method returns a list of strings containing textual service names, which can be
presented to the user agent for selection. If the user agent decides to subscribe a grid
service, GSM invokes subscribeService( ) with the textual grid service name as argument.
If the service is available, a grid service agent reference is determined and stored together
with other grid service information in a service subscription object. This object is then
passed to the service subscription server, which is responsible for the management of the
data of subscribed services. By invoking unsubscribeService( ) GSM can unsubscribe a
subscribed grid service. Therefore it passes the reference of the service subscription object
to the method, which then deletes all service related data. A list of descriptions of all
subscribed services can be obtained by invoking listSubscribedServices( ).
SuscriptionServiceObject defines the interface between a subscribed service and a
subscription service—a subscription service communicates with a subscribed service
using a proxy object which implements the methods of this interface. This is not a Remote
interface, each implementation of a subscribed service exports proxy objects that
implement the SubscriptionServiceObject interface local to a subscription service, using
an implementation specific protocol to communicate with the actual remote manager. All
of the proxy methods obey normal RMI remote interface semantics except where
explicitly noted. Two proxy objects are equal if they are proxies for the same subscription
service.
All subscribed services implement the methods of this interface. A subscribed service
adds a temporal element (the subscription) to its access control decisions. When a concrete
implementation of a service is subscribed, it is presented with a credential for each user,
which is authorized to use it while the subscription is in effect. A subscribed service
enforces access control during a subscribe usage period by determining if the client has a
valid subscription and by verifying that the user has the appropriate permissions. If access
is granted, the subject is allowed to execute the privileged action.
By the method StartSubscription( ), a subscription period of a grid service begins. A
well-behaved service will only be accessible to the users specified in the Subscription-
Control argument once this method is called. The users must also possess any other
permission required in order to use this SubscriptionServiceObject. The service will delete
L. Chunlin, L. Layuan / Journal of Network and Computer Applications 26 (2003) 323–340 333
the SubscriptionControl when the reservation expires. A subscription period for this
service is stopped by StopSubscription( ). When this method is invoked the service should
perform whatever activities it needs to perform in order to end a reservation. The service
should also perform any cleanup and/or state restoration actions required.
† public interface SubscriptionServiceObject
† {public SubscriptionLease StartSubscription(SubscriptionServiceID SSD, long dur-
ation,
† SubscriptionID id, SubscriptionControl list) throws Exception;
† public void StopSubscription(SubscriptionServiceID SSD, SubscriptionID id) throws
Exception;
† }
A helper class SubscriptionControl facilitates access control of subscription services.
SubscriptionControl encapsulates fields and methods used to manage a subscription of a
service: the credentials for the authorized users and the method which should be invoked
on the service to enforce access control during the subscription period A subscription list
includes the credential for each authorized user along with any associated permissions
required during the subscription period. When a subscription is activated, the associated
SubscriptionControl is presented (is an argument in the call of beginSubscription( )). The
service then uses the checkSubscription( ) method of the supplied SubscriptionControl to
determine if the calling user should be allowed to execute the action. When
endSubscription( ) is called, the service clears its SubscriptionControl, allowing method
invocation for all authorized clients, and invokes its cleanup method, ostensibly to cleanup
the reserved service’s states.
5.3. Grid service access protocol
Grid Service Access Protocol is used for service requestor agent to access the located
service (see Fig. 4). Once a requestor agent receives the Reply Description of a Grid
Service Manager, it can start communication with the GSM to use the services. Some
methods and messages are defined to utilize a service provided by a Grid Service Manager.
The local Grid Service Manager is GSM that the requestor agent is calling, and the remote
Fig. 4. Grid Service Access process.
L. Chunlin, L. Layuan / Journal of Network and Computer Applications 26 (2003) 323–340334
Grid Service Manager is any other Grid Service Manager. The local Grid Service Manager
may actually be in a remote node if the Requestor agent is calling the services through
Remote Procedure Call.
When a Requestor agent wants to use a service provided by a Grid Service Agent under
a Grid Service Manager Protocol, it requests a Grid Service Manager to establish a Service
Session. The Requestor Agent calls ConnectService( ) to ask the local Grid Service
Manager to initiate a service session with a specific Service agent registered at either the
local Grid Service Manager or a remote Grid Service Manager. The Grid Service Manager,
with which the specified grid services is registered, calls ConnectService( ) to notify the
grid service agent of this Connect Service request. The grid service agent may either
accept or reject the request. The result is communicated back to the Requestor Agent
through the return parameter of the ConnectService( ) call. Once the Service session is
established, the Requestor Agent calls SendMessage( ) to ask its respective local Grid
Service Manager to send Requestor Agent-specific data to the other end of the Service
session. The Grid Service Manager at the other end calls ReceiveMessage( ) to pass the
Requestor Agent-specific data received from the other end of the Service session. After
Connection session completes, the Requestor Agent calls EndConnection( ) to ask the
local Grid Service Manager to terminate the Service session. The specified Grid Service
Manager calls EndConnection( ) to notify that the Service Session is terminated.
6. Experiment
Based on the prototype implementation of the proposed model, a basic performance
evaluation was done. Our experiment focuses on overhead of locating a Grid service agent.
The experiment environment consists of twelve machines and a 10 Mb Ethernet adapter.
Every machine has a 300 MHz Pentium processor and 128MB RAM. These machines run
Windows NT 4.0 and the agent execution environment use JDK 1.1. These machines are
located in different subnets. Grid Service Manager is populated with different number of
agents. Timing measurements are made on 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 experiments 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 devise tests with
local search and global searches. The size of the agent code without additional data is
around 1.6Kb.
In the first experiment, we also measure times to locate service agents locally vs.
number of agents returned by lookup with different number of lookup agents. We use
twenty, thirty, and fifty lookup agents, respectively, to measure search times. Fig. 5 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 number of lookup agents (lookup
20, 30, and 50 agents, respectively) and configure four machines comprising agent/
resource discovery networks ðM ¼ 4Þ: The results are presented in Fig. 6. In this case, it
was interesting to observe that before the number of agents returned by lookup increases to
L. Chunlin, L. Layuan / Journal of Network and Computer Applications 26 (2003) 323–340 335
12, the curves of 30 lookup agents and 50 lookup agents are very close. But from entire
figure, time increases proportionally to number of agents returned 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. 7, the difference of
three curves is small. The curve of 30 lookup agents is parallel to the curve of 50 lookup
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. 8, time of lookup 50 agents
increases dramatically to number of agents returned by the lookup.
Fig. 5. Local search time vs. number of agents returned.
Fig. 6. Global search time vs. number of agents returned ðm ¼ 4Þ.
Fig. 7. Global search time vs. number of agents returned ðm ¼ 8Þ:
L. Chunlin, L. Layuan / Journal of Network and Computer Applications 26 (2003) 323–340336
Results of above performance evaluations are approximate, but are illuminating. Some
conclusions can be made. Firstly, locating agents globally spend more times than locating
agents locally. Secondly, time to locate many agents increases proportionally to number of
agents returned by the lookup. Further experiments are in progress to refine original
results.
7. Related work and discussion
First, we describe several important computational grid projects that inspire ACG grid.
Then we compare our project with others.
An agent-based grid-computing project is described in(Rana and Walker, 2000). This
work on an ‘Agent Grid’, integrates services and resources for establishing multi-
disciplinary problem solving environments. Specialized agents contain behavioral rules
that can be modified based on their interaction with other agents and the environment in
which they operate. Globus (Foster and Kesselman, 1998) provides software infrastructure
that enables applications to view distributed heterogeneous computing resources as a
single virtual machine. Globus is constructed as a layered architecture in which higher-
level services can be developed using the lower level core services. Globus offers Grid
information services via an LDAP-based network directory called Metacomputing
Directory Services (MDS). Thus MDS follows both push and pull Process for resource
dissemination. Higher-level tools such as resource brokers can perform resource discovery
by querying MDS using LDAP protocols. The MDS namespace is organized
hierarchically in the form of a tree structure. Globus offers QoS in the form of resource
reservation. The resource brokers can use heuristics for state estimation while performing
scheduling or re-scheduling whenever the status of the Grid changes. The DARPA CoABS
(Control of Agent Based Systems) project (The CoABS DARPA Project) aims to develop
agent systems for offering specialized services, such as component interaction managers,
database wrappers, 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 collaborate meaningfully. Systems evolve, join and leave
the Grid over time without the necessity to reconfigure the network. If systems become
Fig. 8. Global search time vs. number of agents returned ðm ¼ 12Þ:
L. Chunlin, L. Layuan / Journal of Network and Computer Applications 26 (2003) 323–340 337
unavailable due to partial network failures, other similar systems can be discovered and
substituted for the missing systems. A4 (Agile Architecture and Autonomous Agents)
methodology (Cao et al., 2001), which can be used for resource management for grid
computing. An initial system implementation utilizes the performance prediction
techniques of the PACE toolkit to provide quantitative data regarding the performance
of complex applications running on local grid resources. At the meta-level, a hierarchy of
identical agents is used to provide an abstraction of the system architecture. Each agent is
able to cooperate with other agents to provide service advertisement and discovery to
schedule applications that need to utilize grid resources. A performance monitor and
advisor are in development to optimize the performance of agent behaviors.
Condor (Basney and Livny, 1999) is a high-throughput computing environment
developed at the University of Wisconsin at Madison. It can manage a large collection of
computers such as PCs, workstations, and clusters that are owned by different individuals.
The Condor collector, which provides the resource information store, listens for
advertisements of resource availability. A Condor resource agent runs on each machine
periodically advertising its services to the collector. Customer agents advertise their
requests for resources to the collector. The Condor matchmaker queries the collector for
resource discovery that it uses to determine compatible resource requests and offers. The
agents are then notified of their compatibility. The compatible agents then contact each
other directly and if they 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 description. Thus no specific schema is required by the matchmaker allowing it to
work naturally in a heterogeneous environment.
Legion (Chapin et al., 1999) is an object-based metasystem or Grid operating system
developed at the University of Virginia. Legion provides the software infrastructure so that
a system of heterogeneous, geographically 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 architecture follows the hierarchical model. It
uses an object based information store organization through the Collection objects.
Collections periodically 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 system
administrators can organize collections into suitable arrangements.
Compared with above grid projects, our ACG grid provides a uniform higher-level
management of the computing resources and services on the Grid, and provides users
with a consistent and transparent interface for accessing such services. All entities in the
Grid environment including computing resources and services can be represented as
agents. An ACG Grid service can be a service agent that provides the actual grid service
to the other grid member. Grid members communicate with each other by
communication space that is an implementation of tuple space. ACG supports grid
service subscription that allows user/requestor agents to dynamically subscribe some grid
services for a finite time period. A grid service can be subscribed before it can be
configured or used by the user/requestor agent.
L. Chunlin, L. Layuan / Journal of Network and Computer Applications 26 (2003) 323–340338
8. Conclusions
In this paper, we have presented an agent based grid service management. This paper
mainly describes three grid protocols for grid resource management. They are GSDP,
GSSP and GSAP. Grid members communicate with each other by communication space
that is an implementation of tuple space. Some basic performance evaluations are made.
Acknowledgements
The authors thank editor-in-chief and the anonymous reviewers for their useful
comments and suggestions. The work is supported by National Natural Science
Foundation of China and NSF of Hubei Province.
References
Basney J, Livny M, Deploying a High Throughput Computing Cluster, High Performance Cluster Computing, NJ,
USA: Prentice Hall PTR; 1999. Vol. 1, Chapter 5, pp. 84–96.
Buyya R, Abramson D, Giddy J. Nimrod/G: An Architecture for a Resource Management and Scheduling System
in a Global Computational Grid, International Conference on High Performance Computing in Asia-Pacific
Region (HPC Asia 2000), Beijing, China. USA: IEEE Computer Society Press; 2000b.
Buyya R, Chapin S, DiNucci D. Architectural Models for Resource Management in the Grid, First IEEE/ACM
International Workshop on Grid Computing (GRID 2000). Germany: Springer Verlag LNCS Series; 2000a.
December,17.
Cao J, Kerbyson DJ, Nudd GR, Performance Evaluation of an Agent-Based Resource Management Infrastructure
for Grid Computing, Proceedings of 1st IEEE/ACM International Symposium on Cluster Computing and the
Grid. Brisbane, Australia, 311–318, May 2001.
Chapin S, Karpovich J, Grimshaw A. The Legion Resource Management System. Proceedings of the 5th
Workshop on Job Scheduling Strategies for Parallel Processing; 1999. pp. 162–178.
Chunlin L, Layuan L. A Java-based Multi-tier Distributed Object Enterprise Computing Model. J. Syst. Eng.
Electroc. 2001;12(4):85–90.
Chunlin L, Layuan L. An Agent-oriented and Service-oriented Environment for Deploying Dynamic Distributed
Systems. Journal Computer Standard and Interface 2002;24(4):321–34. Elsevier.
Chunlin L, Zhengding L, Layuan L. A Distributed Computing Model and its Application, IEEE ICCNMC 2001.
IEEE Computer Society Press; 2001. p. 341–6. October.
Chunlin L, Zhengding L, Layuan L. Design and implementation of a distributed computing environment model
for object-oriented networks programming. Journal of Computer Communications 2002;25(5). Elsevier,
March.
Chunlin L, Zhengding L, Layuan L, Shuzhi Z. A Mobile Agent Platform Based On Tuple Space Coordination.
Journal of Advances in Engineering Software 2002;33(4):215–25. Elsevier.
Foster I, Kesselman C, The Globus Project: A Status Report, IPPS/SPDP ’98 Heterogeneous Computing
Workshop, pp. 4–18, 1998.
Foster I, Kesselman C. The Grid: Blueprint for a New Computing Infrastructure. Morgan Kaufmann; 1999.
Frank Manola and Craig Thompson, Characterizing the Agent Grid. Technical Report, Object Services and
Consulting, Inc.http://www.objs.com/
Krauter K, Buyya R, Maheswaran M. A Taxonomy and Survey of Grid Resource Management Systems.
Software: Practice and Experience 2002;32(2):135–164.
Litzkow M, Livny M, Mutka MW. Condor—A Hunter of Idle Workstations. Proceedings of the 8th International
Conference of Distributed Computing Systems; 1988. June.
L. Chunlin, L. Layuan / Journal of Network and Computer Applications 26 (2003) 323–340 339
Rana OF, Walker DW. The Agent Grid: Agent-based Resource Integration in PSEs. Proceedings of 16 th IMACS
World Congress on Scientific Computation, Applied Mathematics and Simulation, Switzerland: Lausanne;
2000.
The CoABS DARPA Project, Control of Agent Based Systems,http://coabs.globalinfotek.com/
Li Chunlin was born in 1974. She received the BE and ME degrees in computer science from Wuhan
Transportation University, China in 1997 and 2000, respectively. She is currently a PhD candidate in the
Department of computer Science and Technology in Huazhong University of Science and Technology. She is
also a lecturer of Computer Science in Wuhan University of Technology. Her research interests include
mobile agent, distributed computing and computational grid. She has published over 10 Papers.
Li Layuan was born in Hubei, China on 26 February 1946. He received the BE degree in Communication
Engineering from Harbin Institute of Military Engineering, China in 1970 and the ME degree in
Communication and Electrical Systems from Huazhong University of Science and Technology, China in
1982. He academically visited Massachusetts Institute of Technology, USA in 1985 and 1999, respectively.
Since 1982, he has been with the Wuhan University of Technology, China, where he is currently a Professor
and Ph.D. tutor of Computer Science, and Editor in Chief of the Journal of WUT. He is Director of
International Society of High-Technol. and Paper Reviewer of IEEE INFOCOM, ICCC and ISRSDC. He was
the head of the Technical Group of Shaanxi Lonan PO Box 72, Ministry of Electrical Industry, China from
1970–1978. His research interests include high speed computer networks, protocol engineering and image
processing. Professor Li has published over one hundred and fifty technical papers and is the author of six
books. He also was awarded the National Special Prize by the Chinese Government in 1993.
L. Chunlin, L. Layuan / Journal of Network and Computer Applications 26 (2003) 323–340340