Professional Documents
Culture Documents
Infrastructure
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
70
1000x1000
60 2000x2000
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
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.