/  8
 
GUSTOFarm: A Software Framework for Constructing a Utility ComputingInfrastructure
Sivadon Chaisiri
 Asia Pacific Science and Technology Facility,Faculty of Engineering, Kasetsart University,Thailand  E-mail: sivadonc@apstf.cpe.ku.ac.th
Putchong Uthayopas
 High Performance Computing and NetworkingCenter, Faculty of Engineering, Kasetsart University, Thailand  E-mail: pu@ku.ac.th
Abstract
 Building a utility computing infrastructure is achallenging task since it requires a very scalable and  flexible middleware that can control resourcesallocation in an on demand fashion. This paper  presents a design of a software framework called GUSTOFarm. This Java and JXTA based systemallows programmer to provide utility like services in ahighly heterogeneous computing environment. Thearchitecture and design have been presented alongwith the discussion of implementation issues involved.The prototype system has been evaluated using agraphic rendering application. The experimentalresults show that this system can function well in aheterogeneous distributed system. GUSTOFarmsystem is a useful starting point toward the building of  full utility computing infrastructure.
Keywords
:
peer-to-peer computing, utilitycomputing, grid computing
1. Introduction
Utility computing [1, 2] is a model forautomatically constructing and managing resourceslocated in large distributed systems. In this model, theinfrastructure can dynamically provide resources thatmatch the users’ need. For example, a user needsresources included 1 gigabytes of physical memory, 10teraflops of processor, and installed matricesmultiplication software. After the user requests thoseresources from the infrastructure, the user should getan access method to connect those resources from theinfrastructure as well. The benefit of the model makesresources can be utilized in a much more efficient way[4].In this work, we propose a framework called“GUSTOFarm” (referred to Grid Utilization SystemToolkit on Office Farm). GUSTOFarm helps manage agroup of computers that provides a set of services. Theframework can utilize the computing power of thosecomputers by allocating them based on properservices, then returning their locations to users. So theusers can develop software that utilized thesefunctionality computers. GUSTOFarm providesarchitecture and application programming interface forconstructing an effective utility computing basedapplications.
2. Related Works
Utility computing is a model that view resources asutilities that user can use regardless of the locationsand pay for the cost based on the real utilization of those resources by users [3]. The work in this area isstill in a very beginning stage. One of the widelyadopted models is grid computing [6]. Themechanisms of the utility computing infrastructure aremuch related to the mechanisms of grid computing.These include services such as resource discoverymechanism, job submission mechanism, monitormechanism and security mechanism. However, utilitycomputing infrastructure must deal with a much moredynamic requirement from users and manage muchmore dynamic infrastructure than Grid.
 
In this work, the part of the proposed architecturerelies on peer-to-peer mechanism [9] to support utilitycomputing infrastructure. The peer-to-peer system
 
provides efficient mechanisms to make a very largeresource sharing network [13]. Additionally, theresource discovery mechanism provided by peer-to-peer system can fully distribute the work withoutrequiring a centralized server for indexing thelocations of resources. Consequently, the system canavoid the single point of failure that can be found onmany centralized systems and it still works on the largescalable network. Moreover, the peer-to-peer systemusually provides dynamism solution to support freely joining to and leaving from the network of anyresources without interfering to the whole system.To implement our framework and also itsinfrastructure of the utility computing, we choose Javaand JXTA [8] to be the runtime environment of thesystem. JXTA is a framework for developing a peer-to-peer application. It also provides a set of standardprotocols that most of peer-to-peer applicationsrequire. Hence, the other frameworks that rely on suchprotocols can be possibly interoperated with ourframework.
3. Proposed Work
In this work, we propose a framework calledGUSTOFarm. This framework is designed to build asystem consisted a collection of services provided bycomputers. 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. Forexample, a utility service with a matricesmultiplication function and a utility service with agraphics rendering function. A collection of someutility services provide a solution for IT applications.To provide shared resources on the system, wepropose that the resources must be provided via utilityservices. For example, if we need to share a databaseon the system, then we must provide a utility servicethat can share and discovery the local database. Wedefine the basic requirements for developing theframework as the following:
- Dynamism
utility services can freely join andleave the system without interfering to the wholeruntime system. Furthermore, utility services can beunavailable for a period of time.
- Scalability
a utility computing infrastructureshould be able to scale to a very large size. This featurecan provide a variety of utility services and alsosupport more redundancy of utility services.
- Heterogeneity
a utility computing infrastructurecould be composed of the multiple computer platforms(e.g., Microsoft Windows platforms, UNIX platforms,and Apple Macintosh platforms).
- Interoperability
a utility computing infrastructureshould interoperate with other utility computinginfrastructures.To make a framework that supports the fourfeatures listed above, so we design the architecture thatis described as the next section.
3.1 GUSTOFarm Architecture
In Figure 1, we present the GUSTOFarmarchitecture. The architecture is divided into 5 layers asfollows:
1)
 
Java Platform Layer
is the lowest layer thatprovides the runtime environment of every peer in thesystem. The environment includes operating systemsand computer hardware. Moreover, the layer alsoprovides shared resources (e.g., shared files anddatabase etc.).
Figure 1. The proposed architecture ofGUSTOFarm framework
To make the framework to support heterogeneityplatform, we define that the Java runtime environmentmust be installed on every peer.
2)
 
Utility Services Layer
is the layer of utilityservices. A utility service will provide some functionsbased on the Service Oriented Architecture (SOA)[11]. So a utility service can be implemented as webservice or grid service [7]. To provide aninteroperability feature between utility services andapplications which call them, a utility service shouldbe relied on the Simple Object Access Protocol(SOAP) and communicating messages should beimplemented as XML documents.This layer must provide a mechanism for declaringthe existence and status of a utility service to be knownby other peers. The mechanism is called “Service
 
Advertisement” that will be discussed in the nextsubsection.
3)
 
JXTA Runtime Layer
is the layer that providesa communication mechanism and functions thatsupporting the core services (that running on the Coreservices layer). JXTA can support the scalability anddynamism of the system. Furthermore, The JXTAprovides the communication mechanism that uses thestandard XML as communicated messages betweenpeers. So the framework can be possibly interpolatedwith other frameworks that relied on the samemessages (e.g., the framework that uses Microsoft.NET Framework as the runtime environment of thesystem).
4) Core service Layer
is the layer that provides thecore services for supporting the basic functions of theapplications running on the utility computinginfrastructure. The core services are listed as follows:
- Resource Discovery Service (RDS)
is the servicefor discovery the required utility services. The RDSalso functions the indexing and caching the locationsof utility service to accelerate the speed of discovery.
- Resource Monitoring Service (RMS)
is theservice for monitoring and tracking the existence andperformance status of peers (e.g., uptime anddowntime, available memory, free physical storage,load of processor, and bandwidth network etc.). Thestatic status can be retrieved by this service too (e.g.,the kernel version of the operating system, the modelof processor, and the number of processor etc.).
- Job Execution Service (JES)
is the service forsubmitting jobs to compute on a specified peer. A jobis meant as a program that may include parameters anddata to run.
- Workload Distribution Service (WDS)
is theservice for balancing load of computing jobs that willbe submitted to peers. WDS must also support theloads that occurred from calling utility services.The WDS collaborates with JES for distributing jobs and with RMS for decision making of choosingpeers which will be submitted jobs to. So the WDSmust provide some efficient algorithms for efficientutilization of the system.
- File Management Service (FMS)
is the servicefor sharing files and transferring files among peersinside the system.
- Authentication and Authorization Service(AAS)
is the service for control security inside thesystem. The AAS consists of 2 functions:authentication and authorization. The authenticationfunction is used to authenticate users and peers thatlogin to the system. The authorization function is usedto control the access of peers to resources or utilityservices which the peers have the right to access.
5) Application Layer
is the top layer of users’applications. An application is developed to callrequired utility services. To allocate the utility servicesto an application, hence; the application must invokethe underlying core services (provided on the coreservices layer) for discovery the required utilityservices, monitor the connecting peers, and others. Todevelop an application to call the core services, hence;the framework provides an Application ProgrammingInterface API) for the calling.
3.2 Service Advertisement Mechanism
In this subsection, we will discuss the serviceadvertisement mechanism that used to declaring autility service to be known by other peers. Themechanism works at the utility service layer.In fact, the mechanism is developed by anadvertisement mechanism provided by the JXTA.
 
Theadvertisement mechanism is used to declare themetadata of a resource shared in a peer-to-peernetwork. The metadata consists of key and value pairs.The metadata is helpful for discovery by any peers.When a peer needs to find out some resources, itmust specify the required attributes via some key andvalue pairs. Then it sends the requirement to adiscovery mechanism. The mechanism will search thematched resources by comparing the user’srequirement with the metadata declared in thesearching peer.
Figure 2. An example of a serviceadvertisement of a utility service
In the JXTA, the advertisement is a common XMLdocument consisted of some tags that each tag referredto a key and value pair of the metadata. For ourframework, we define that a service advertisement

Share & Embed

More from this user

Add a Comment

Characters: ...