You are on page 1of 8

GUSTOFarm: A Software Framework for Constructing a Utility Computing

Infrastructure

Sivadon Chaisiri Putchong Uthayopas


Asia Pacific Science and Technology Facility, High Performance Computing and Networking
Faculty of Engineering, Kasetsart University, Center, Faculty of Engineering, Kasetsart
Thailand University, Thailand
E-mail: sivadonc@apstf.cpe.ku.ac.th E-mail: pu@ku.ac.th

Abstract infrastructure as well. The benefit of the model makes


resources can be utilized in a much more efficient way
Building a utility computing infrastructure is a [4].
challenging task since it requires a very scalable and In this work, we propose a framework called
flexible middleware that can control resources “GUSTOFarm” (referred to Grid Utilization System
allocation in an on demand fashion. This paper Toolkit on Office Farm). GUSTOFarm helps manage a
presents a design of a software framework called group of computers that provides a set of services. The
GUSTOFarm. This Java and JXTA based system framework can utilize the computing power of those
allows programmer to provide utility like services in a computers by allocating them based on proper
highly heterogeneous computing environment. The services, then returning their locations to users. So the
architecture and design have been presented along users can develop software that utilized these
with the discussion of implementation issues involved. functionality computers. GUSTOFarm provides
The prototype system has been evaluated using a architecture and application programming interface for
graphic rendering application. The experimental constructing an effective utility computing based
results show that this system can function well in a applications.
heterogeneous distributed system. GUSTOFarm
system is a useful starting point toward the building of 2. Related Works
full utility computing infrastructure.
Utility computing is a model that view resources as
Keywords: peer-to-peer computing, utility utilities that user can use regardless of the locations
computing, grid computing and pay for the cost based on the real utilization of
those resources by users [3]. The work in this area is
still in a very beginning stage. One of the widely
1. Introduction adopted models is grid computing [6]. The
mechanisms of the utility computing infrastructure are
Utility computing [1, 2] is a model for much related to the mechanisms of grid computing.
automatically constructing and managing resources These include services such as resource discovery
located in large distributed systems. In this model, the mechanism, job submission mechanism, monitor
infrastructure can dynamically provide resources that mechanism and security mechanism. However, utility
match the users’ need. For example, a user needs computing infrastructure must deal with a much more
resources included 1 gigabytes of physical memory, 10 dynamic requirement from users and manage much
teraflops of processor, and installed matrices more dynamic infrastructure than Grid.
multiplication software. After the user requests those In this work, the part of the proposed architecture
resources from the infrastructure, the user should get relies on peer-to-peer mechanism [9] to support utility
an access method to connect those resources from the computing infrastructure. The peer-to-peer system
provides efficient mechanisms to make a very large - Interoperability a utility computing infrastructure
resource sharing network [13]. Additionally, the should interoperate with other utility computing
resource discovery mechanism provided by peer-to- infrastructures.
peer system can fully distribute the work without To make a framework that supports the four
requiring a centralized server for indexing the features listed above, so we design the architecture that
locations of resources. Consequently, the system can is described as the next section.
avoid the single point of failure that can be found on
many centralized systems and it still works on the large 3.1 GUSTOFarm Architecture
scalable network. Moreover, the peer-to-peer system
usually provides dynamism solution to support freely In Figure 1, we present the GUSTOFarm
joining to and leaving from the network of any architecture. The architecture is divided into 5 layers as
resources without interfering to the whole system. follows:
To implement our framework and also its 1) Java Platform Layer is the lowest layer that
infrastructure of the utility computing, we choose Java provides the runtime environment of every peer in the
and JXTA [8] to be the runtime environment of the system. The environment includes operating systems
system. JXTA is a framework for developing a peer- and computer hardware. Moreover, the layer also
to-peer application. It also provides a set of standard provides shared resources (e.g., shared files and
protocols that most of peer-to-peer applications database etc.).
require. Hence, the other frameworks that rely on such
protocols can be possibly interoperated with our
framework.

3. Proposed Work
In this work, we propose a framework called
GUSTOFarm. This framework is designed to build a
system consisted a collection of services provided by
computers. A computer located on the system is called
“Peer” and a service provided on a computer is called
“Utility service”.
A utility service provides a specified function. For
example, a utility service with a matrices
multiplication function and a utility service with a
graphics rendering function. A collection of some
utility services provide a solution for IT applications. Figure 1. The proposed architecture of
To provide shared resources on the system, we GUSTOFarm framework
propose that the resources must be provided via utility
services. For example, if we need to share a database To make the framework to support heterogeneity
on the system, then we must provide a utility service platform, we define that the Java runtime environment
that can share and discovery the local database. We must be installed on every peer.
define the basic requirements for developing the 2) Utility Services Layer is the layer of utility
framework as the following: services. A utility service will provide some functions
- Dynamism utility services can freely join and based on the Service Oriented Architecture (SOA)
leave the system without interfering to the whole [11]. So a utility service can be implemented as web
runtime system. Furthermore, utility services can be service or grid service [7]. To provide an
unavailable for a period of time. interoperability feature between utility services and
- Scalability a utility computing infrastructure applications which call them, a utility service should
should be able to scale to a very large size. This feature be relied on the Simple Object Access Protocol
can provide a variety of utility services and also (SOAP) and communicating messages should be
support more redundancy of utility services. implemented as XML documents.
- Heterogeneity a utility computing infrastructure This layer must provide a mechanism for declaring
could be composed of the multiple computer platforms the existence and status of a utility service to be known
(e.g., Microsoft Windows platforms, UNIX platforms, by other peers. The mechanism is called “Service
and Apple Macintosh platforms).
Advertisement” that will be discussed in the next 5) Application Layer is the top layer of users’
subsection. applications. An application is developed to call
3) JXTA Runtime Layer is the layer that provides required utility services. To allocate the utility services
a communication mechanism and functions that to an application, hence; the application must invoke
supporting the core services (that running on the Core the underlying core services (provided on the core
services layer). JXTA can support the scalability and services layer) for discovery the required utility
dynamism of the system. Furthermore, The JXTA services, monitor the connecting peers, and others. To
provides the communication mechanism that uses the develop an application to call the core services, hence;
standard XML as communicated messages between the framework provides an Application Programming
peers. So the framework can be possibly interpolated Interface API) for the calling.
with other frameworks that relied on the same
messages (e.g., the framework that uses Microsoft 3.2 Service Advertisement Mechanism
.NET Framework as the runtime environment of the
system). In this subsection, we will discuss the service
4) Core service Layer is the layer that provides the advertisement mechanism that used to declaring a
core services for supporting the basic functions of the utility service to be known by other peers. The
applications running on the utility computing mechanism works at the utility service layer.
infrastructure. The core services are listed as follows: In fact, the mechanism is developed by an
- Resource Discovery Service (RDS) is the service advertisement mechanism provided by the JXTA. The
for discovery the required utility services. The RDS advertisement mechanism is used to declare the
also functions the indexing and caching the locations metadata of a resource shared in a peer-to-peer
of utility service to accelerate the speed of discovery. network. The metadata consists of key and value pairs.
- Resource Monitoring Service (RMS) is the The metadata is helpful for discovery by any peers.
service for monitoring and tracking the existence and When a peer needs to find out some resources, it
performance status of peers (e.g., uptime and must specify the required attributes via some key and
downtime, available memory, free physical storage, value pairs. Then it sends the requirement to a
load of processor, and bandwidth network etc.). The discovery mechanism. The mechanism will search the
static status can be retrieved by this service too (e.g., matched resources by comparing the user’s
the kernel version of the operating system, the model requirement with the metadata declared in the
of processor, and the number of processor etc.). searching peer.
- Job Execution Service (JES) is the service for
submitting jobs to compute on a specified peer. A job
is meant as a program that may include parameters and
data to run.
- Workload Distribution Service (WDS) is the
service for balancing load of computing jobs that will
be submitted to peers. WDS must also support the
loads that occurred from calling utility services.
The WDS collaborates with JES for distributing
jobs and with RMS for decision making of choosing
peers which will be submitted jobs to. So the WDS
must provide some efficient algorithms for efficient
utilization of the system.
- File Management Service (FMS) is the service
for sharing files and transferring files among peers
inside the system.
- Authentication and Authorization Service
Figure 2. An example of a service
(AAS) is the service for control security inside the
advertisement of a utility service
system. The AAS consists of 2 functions:
authentication and authorization. The authentication
In the JXTA, the advertisement is a common XML
function is used to authenticate users and peers that
document consisted of some tags that each tag referred
login to the system. The authorization function is used
to a key and value pair of the metadata. For our
to control the access of peers to resources or utility
framework, we define that a service advertisement
services which the peers have the right to access.
describes the metadata of a utility service. The 3.3 Implementation of the Framework
metadata includes service name (the name of the utility
service), service description (short description of the The GUSTOFarm framework is implemented by
utility service), peer ID (unique code of the peer), Java and JXTA. In this subsection, we discuss on the
service type (type of the utility service: web service or implementation of the core services layer.
grid service), and service location (the URL to invoke In the core services layer, we finished the
the utility service). The example of a service implementation of RDS, RMS and AAS. The detail of
advertisement is presented in Figure 2. implementation of such services is presented as
Figure 2 presents that this service advertisement follows
describes the metadata of a utility service named The RDS is implemented by the discovery
“Raytrace” (see from the Name tag). The peer ID mechanism provided by the JXTA. The JXTA also
(presented in the “PeerID” tag) is a unique code of the provides the Java library to call the mechanism. The
peer that provides this utility service. A peer can get its mechanism can allocate the specified utility services
own peer ID when it firstly entered the system. The by searching the metadata described in the service
“URL” tag represents the location for invoking the advertisement located on the searching peers. The
function of the utility service. The “ServiceType” tag matched advertisement will be replied to the requested
shows that this utility service was implemented as a application (also see the Figure 3)
web service. The “Description” tag gives the short The RMS is implemented by a mechanism called
description of the utility service to be more “resolver service” provided by the JXTA. The JXTA
understandable by the user. provides the Java library for creating a query message.
The RDS will use the service advertisement for The query message describes the status that the request
discovery. Hence, the application must build a query application needs to know. The library also includes a
message (included the key and value pair of service function to submit the query message to the peer
advertisement) and submit it to RDS. In Figure 3, we specified by the peer ID. The specified peer can reply
present the time diagram of calling the RDS. its current status requested by the query message to the
The interaction of calling the RDS consists of 4 request application.
steps as follows Currently, the AAS is implemented by a framework
1) The application requests the RDS for discovery a named “JXTA security toolkit”. The framework
required utility service. provides the security model for using in a peer-to-peer
2) The RDS searches for the matched service system. The AAS can authenticate a peer by
advertisements that declared on the peers that the RDS determining the specified username and password
connects to. filled when the peer entering the system.
3) When the RDS find the matched service The AAS currently does not support the
advertisement, it will reply such service advertisement authorization. Because the JXTA security toolkit still
to the requested application. does not provides methods of the authorization.
4) The application invokes the utility service via the However, we expect to use the Java Authorization and
URL retrieved from the replied service advertisement. Authentication Service (JAAS) for implementing the
authorization.
JES, FMS, and WDS are still in the development
step. To develop the JES, we will develop a utility
service installed to all peers for getting a request for
running a specified program from an application. The
request includes the name of the running program
(may include some parameters to run the program),
and the destination peer that program will run on.
Moreover, we define that the running program must be
preinstalled on the destination peer. However, the
application can submit a program with the FMS to
install on the destination peer.
For the first stage, we will develop the FMS by
using the advertisement mechanism provided by the
JXTA. We called the advertisement for described the
metadata of a file as “File Advertisement”. The
Figure 3. A time diagram of calling the RDS metadata consists of file name, file type (e.g., movies,
music, and picture etc.), file size, and a protocol for The query method is used to call the RDS for
downloading and uploading the file. discovery. The method will return an array of
The WDS is a part of the “Broker Agent Project” – ServiceAdvertisement object as the querying result.
the project of the OpenUCI. The broker agent is the This method consists of 4 parameters: peerID,
daemon software for providing the required utility serviceName, timeout, and minRequire. After invoking
services with some specified performance status of the method, the RDS will create a query message
peers that hosted the utility services. Moreover, the depends on such parameters. If a user sets peerID as
agent also provides some load balancing mechanism the Java null pointer, the RDS will propagate the query
for distributing loads to the appropriate peers. message to a group of random known peers.
Otherwise, if the user sets a specified peerID which
3.4 Application Programming Interface exists in the system, the RDS will directly submit the
message to that peer.
This subsection introduces the application The serviceName parameter is used to specify the
programming interface (API) provided for calling the name of utility service that we need to find out. We
core services. The API provides some useful Java can use an asterisk (*) wildcard. For example, we can
classes for developing an application for running on specify “Raytrace” for the absolute name.
the application layer. Although the API provides many Additionally, the user can specify “Raytrace*” as a
classes, in fact a user can use a few classes for prefix “Raytrace” of the name.
developing his own application. The timeout parameter is used to control the infinite
In Figure 4, we present three class diagrams of Java waiting of the replied results. The minRequire is used
classes that a user can use for implementing an to stop waiting the result when the size of array of
application using on the GUSTOFarm framework. ServiceAdvertisement is adequate to the requirement of
The GUSTOEngine is a main class for calling the the user’s application.
core services. Currently, the GUSTOEngine class still We can monitor the specified peer by the monitor
supports the calling to 3 core services: AAS, RDS, and method. The method consists of only one peerID
RMS. Each core service can be called by invoking the parameter for specifying the peer ID of the peer which
method of GUSTOEngine. we need to monitor. The result will be returned in the
The login method is used to enter to the system of Performance object.
GUSTOFarm via connecting to the AAS. The AAS The ServiceAdvertisement class represents the
can authenticate a user via determining the parameters object of the service advertisement which consists of
username and password. The method returns the the metadata of the utility service (also see Figure 2).
unique peer ID (in the String format) of the local The class consists of five methods for accessing such
computer which the application running on. The logout metadata.
method is used to leave from the system. The Performance class represents the object of the
currently performance status of the peer. A user can
retrieve the status via the provided methods. For
example, if a user wants to retrieve the free physical
memory, he can invoke the getMemUsed for this data.
Although the API provides only Java classes for
implement an application. However, providing APIs
for supporting other languages can be possible.

4. Evaluation

To evaluate the performance of the GUSTOFarm


framework, we develop a program based on master -
worker computing model. We implement a utility
service as a worker application by Java web service
development library named “Apache Axis” [10]. The
Figure 4. Class diagrams presenting three utility service provides a retracing function for
classes that a user uses for implementing an rendering a scene of picture. The code of rendering is
application improved from open-source rendering software coded
by Computer Graphics Group at MIT [5]. The code
can render the scene coded in a script file. We use a
made script file for every testing. The Figure 5 shows We use 2 testing methods for evaluate a system that
the final rendered picture coded in the script file. built by the GUSTOFarm framework. The methods are
presented in subsection 4.1 and 4.2 as follows

4.1 Parallel Computing Test

70
1000x1000
60 2000x2000

Execution Time (sec.)


3000x3000
50

40

30

20

10

0
0 1 2 3 4 5 6 7 8 9
Figure 5. The picture which rendered by our Number of Block
implemented utility service
Figure 6. The execution time for testing the
We install this utility service on all tested system with the parallel computing
computers. A computer running this utility service is application
called as “worker peer”.
3
Table1: The configuration of computers using
in the test-bed environment 2.5

Type of Peer and Hardware Operating 2


Speedup

a number of Peer Specification System


Dual UltraSparc Solaris 10 for Sun 1.5
1 Master Peer IIIi 1.5 GHz, Sparc platform
2 GB of RAM 1
1000x1000
AMD Athlon64 MS Windows - 2000x2000
8 Worker Peers 2 GHz, 1GB of 2003 Enterprise 0.5 3000x3000
RAM x64 Edition
AMD AthlonXP Linux with kernel 0
0 2 4 6 8 10
8 Worker Peers 1.8 GHz, version 2.4.22
512MB of RAM Number of Block

We implement the master application by using Java Figure 7. The speedup of running the parallel
development kit and the API provided by the computing application
GUSTOFarm framework. However, we only choose
the method to call the RDS for discovery the worker
peers for calling the utility service. We call a computer The method is to test the system by developing the
installed the master application as “master peer”. master application to distribute a job to process on
multiple worker peers in the parallel fashion. To
To build a test-bed environment, we prepare 17 implement the parallel application, the application
computers supported by High Performance Computing divides the scene of picture into a set of block. Each
and Networking Center. In Table1, we present the block is independent to others. Then the application
configuration of computers for building a master peer submits the divided blocks to the queried worker peers.
and 16 worker peers. The configuration presents the We test the application by defining the various sizes
heterogeneous system that consists of multiple of the final rendered picture: 1000 x 1000, 2000 x
platforms. We choose the 100 Mbps Ethernet as the 2000 and 3000 x 3000 pixels. The big picture
communication network connecting the computers. consumes more computational time and size of
memory than the smaller one. Then we divide the
picture with different numbers of block. Furthermore,
the master application must discovery the worker peers (wait to submit a new job) until there is a freely worker
with the number of peers equal to the number of block. peer (no computing job). For each testing, we records
Hence, every worker peer will compute only one block the number of throughputs produced within 10
for once time per testing (one testing done by one size minutes.
of picture and a number of blocks). In Figure 8, we present the number of throughputs
Figure 6 presents the execution time of testing the increase when we increase the number of worker peer.
parallel computing application with different testing. In We can conclude that this application is suitable for
Figure 7 presents the speedup achieved when adding solving the high throughput computing problem [12].
more worker peers. We see that the speedup is scaled Therefore, from the evaluation, we find that the
down when we increase more worker peers for the rendering application is not suitable for running as a
picture size 1000 x 1000 pixels. The reason is the parallel computing application on the framework. Due
overhead of the framework and the communication to the limitation of software code for dividing the
time overwhelms the computational time that makes scene of picture into many blocks, so the speedup is
the speed up is slow down. not increased as well. However, the application can
However, the overall speedup is not quite well due produce more throughputs when the number of the
to the additional number of worker peers. The factor utility services is increased. Hence, an application for
that effects to this result is the code of rendering is not running on the framework should be implemented for
quite suitable for dividing the scene into blocks. To solving a high throughput computing problem.
submit a block to a utility service, in master of fact the
application must submit the whole scene (not only that 5. Conclusion
block). Then the application specifies two coordinators
(from one x, y coordinator to another) for locating the The GUSTOFarm framework can be used to build
block that will be rendered. Moreover, submitting the a cluster of peers providing a set of utility service.
whole scene may consume a large size of memory; Hence, an application can be implemented by calling
although, the small block may take more short time of the distributed utility services that provide the required
computing. So the virtual memory may be activated for functions. Moreover, the framework also provides the
the large size of data. Then the overall execution time essential services that a utility computing system
may be tremendous slow down. requires. The services are used for security control,
resource discovery, monitor, and job submission. The
4.2 High Throughput Computing Test application programming interface is also provided for
connecting to those services.
600 In the future work, we expect to finish the
250x250 implementation of the job execution service, workload
500
500x500 distribution service, and file management service.
Throughputs / 1 min.

400 Furthermore, we need to improve the authentication


and authorization service to support the authentication
300
of the X.509 digital certificate, and also integrate the
200 authorization mechanism by using Java Authentication
and Authorization Service (JAAS). Additionally, we
100
need to implement the framework to interoperate with
0
the legacy resource sharing infrastructure (e.g., the
0 2 4 6 8 10
infrastructure managed by the Globus Toolkit [14]).
Number of Peer

Figure 8. The throughputs produced by the 6. References


different numbers of worker peer
[1] J. W. Rose and G. Westerman , “Preparing for utility
The method is testing by counting the throughputs computing: The role of IT management and relation
(or the results) computed by different numbers of management”, IBM Systems Journal, Vol.43, No.1, pp.5-19,
2004
worker peer. To test the system, the master application
[2] T. Eilam, “Using utility computing framework to develop
does not divide the scene. But the application submits utility systems”, IBM Systems Journal, Vol.43, No.1, pp.97-
the whole scene with 2 different sizes of the scene to 120, 2004
the different numbers of queried worker peer. [3] Ken Lynch, “Utility computing (Pay as you go)”,
Additionally, the worker peer can compute only one www.cimslab.com/Resources/Utility_Computing.pdf
job for a time. So the master application must be idle
[4] “Self-managing networks: building the infrastructure for
utility computing”, An AT&T survey and white paper in
cooperation with The Economist Intelligence Unit, 2004
[5] Raytracer source codes: software for rendering
“http://groups.csail.mit.edu/graphics/classes/6.837/F01/Proje
ct05/project5.html”, Computer Graphics Group, MIT
[6] I. Foster, C. Kesselman, S. Tuecke “The Anatomy of the
Grid: Enabling Scalable Virtual Organizations”, International
J. Supercomputer Applications, 2001
[7] I. Foster, C. Kesselman, J. Nick, S. Tuecke “The
Physiology of the Grid: An Open Grid Services Architecture
for Distributed Systems Integration”, Open Grid Service
Infrastructure WG, Global Grid Forum, 2002
[8] L. Gong, “JXTA: A Network Programming
Environment”, IEEE Internet Computing, v. 5. pp. 88-95,
2001
[9] Schollmeier, R, “A definition of peer-to-peer networking
for the classification of peer-to-peer architectures and
applications”, Peer-to-Peer Computing, 2001. Proceedings.
First International Conference, 2001
[10] The website of Apache Axis – An implementation of
the SOAP, “http://ws.apache.org/axis”,
[11] M. S. Palloa, “Service Oriented Architecture: A
Primer”, EAI Journal, pp. 32-35, 2001
[12] M. Livny, J. Basney, R. Raman, and T. Tannenbaum,
“Mechanisms for High Throughput Computing”, SPEEDUP
Journal, Vol.11, No.1, 1997
[13] M. Ripeanu, “Peer-to-peer architecture case study:
Gnutella network”, 2001. Proceedings. First International
Conference, 2001
[14] I. Foster and C. Kesselman, “Globus: A Metacomputing
Infrastructure Toolkit”, International Journal Super
Computer Applications, 1997

You might also like