| |
|
Middleware/FlowGrid
Toolkit |
|
|
Flowserve
is the main middleware supporting the FlowGrid service. Flowserve
communicates the FlowGrid Client with the Grid. Flowserve has
been specifed as a web service which provides an open and extensible
interface to the CFD front-end. Based on this interface the
Flowserve protocol has been developed building on generally-available
and commonly used-protocols. Flowserve runs under the LINUX
operating system. The generic features of Flowserve are described
below.
The components and interfaces
of Flowserve are depicted in the figure below. The components
and interfaces are described in the following.

Components
of Flowserve
As noted earlier Flowserve interfaces with the
DBMS and the CFD front-end, i.e. GenIUS, using SOAP and HTTPS.
The Flowserve web service uses Apache Tomcat powered
by Apache Axis to handle the SOAP and HTTPS protocols.
|
| |
| HTTPS
and Tomcat |
|
HTTPS (Hypertext Transfer
Protocol Secure) is a widely used protocol which allows
to perform a secure HTTP connection between computers
by encrypting the data using SSL (Secure Socket Layer).
Apache Tomcat is a servlet container that is used
in the oficial Reference Implementation for the Java
Servlet and JavaServer Pages technologies.
|
| |
|
|
| |
| SOAP
and Axis |
|
SOAP
(formerly an acronym of Simple Object Access Protocol)
is a light-weight protocol for
exchange of messages in a decentralized, distributed
environment. It is an XML based protocol
that consists of three parts: an envelope that de
nes a framework for describing what is in a
message and how to process it, a set of encoding rules
for expressing instances of applicationde
ned datatypes, and a convention for representing remote
procedure calls and responses.
Apache Axis is an implementation of SOAP.
|
| |
|
|
| |
| XML |
|
XML
(Extensible Markup Language) is a simple, very exible
text format derived from SGML. Originally designed
to meet the challenges of large-scale electronic publishing,
XML is also playing an increasingly important role
in the exchange of a wide variety of data on the Web
and elsewhere. The goal of XML is to enable generic
SGML to be served, received, and processed on the
Web in the way that is now possible with HTML. XML
has been designed for ease of implementation and for
interoperability with both SGML and HTML.
|
| |
|
|
| |
| Data
Servlet |
|
Additionally
to the web service, FlowServe contains a Data Servlet
which handles the le transfers from and to GenIUS.
Even some SOAP implementations allow le attachments
which could be used to transfer large input and output
les, these attachments are not standardized within
SOAP. So we decided to use plain HTTPS for the le
transfers. This made it necessary to have an additional
program within FlowServe to handle the HTTPS transfers.
These transfers are performed by the Data Servlet.
For the communication between the Data Servlet and
the Flowserve web service the SOAP protocol is used.
|
| |
|
|
| |
| MyProxy |
|
To
allow uncomplicated user authentications by username-password
pairs, the user certificates are stored in a MyProxy
database. The MyProxy database is used by the Flowserve
web service to store and retrieve user certicates.
MyProxy is a credential repository for the Grid. Storing
Grid credentials in a MyProxy repository allows to
retrieve a proxy credential whenever and wherever
it is needed, without worrying about managing private
key and certificate files.
|
| |
|
|
| |
| Globus
Java CoG |
|
For
the interaction with the resource managers, Flowserve
uses the Globus Java CoG library which provides access
to Grid service through the Java framework and implements
some of the Globus 2.x protocols. The Globus 2.x protocols
are not discussed here because they don't have any
influence on the generalization of Flowserve.
|
| |
|
|
| |
| Flowserve
interactions |
|
Based
on the different interfaces different type of interactions
between Flowserve and the other FlowGrid components
are possible. The Flowserve Protocol interactions
can be separated into four groups:
- interactions between front-end
and Flowserve web service
- interactions between front-end
and Data Servlet
- interactions between DBMS
and Flowserve web service
- interactions between Data
Servlet and Flowserve web service
All interactions are initiated
by a message from the user client to Flowserve. Flowserve
always responds with a message.
For the most interactions a job
identifier, called jobId is used. The jobId can contain
letters and digits as characters and is used to uniquely
identify the jobs of a user. The description of the
interaction contains a field named 'requirements'.
If any of the requirements are not fulfilled an appropriate
error message is generated.
Most interactions require HTTP basic authentication
with a valid username-password pair. If the authentication
fails an appropriate error message is generated. Some
of the interactions apply XML-formated structured
information.
|
| |
|
|
|
|