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 (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.




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 certi cates. 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.


Copyright 2004 FlowGrid Consortium | Please send questions or comments to Norberto.Fueyo@posta.unizar.es, or to any other FlowGrid partner | Last modified on 02/04/2004