|
The architecture of Grid Searcher includes several components and employs several
techniques.
First, it initiates the queries to one or multiple MDS servers, and get the resource
information from those MDS servers in LDIF data format; next, it translates the LDIF-formatted resource information
into XML format; finally, it takes the user's resource requirement specification as input, and returns
the qualified resources to user for selection.
The following figure depicts the architecture described above.
To make the above architecture a realization, several techinique are employed in the implementation.
They are:
- Java. The whole project is built based on Java technology, for specific, upon JDK 2 platform. Using Java
as the development tool has many advantages: it provides a cross-platform solution; it supports the XML processing
very well; and it constructs the decent GUI. It is preferred to run under Java 1.4.0, but Java 1.3.1 also works.
- XML. XML provides a more flexible way to manage the data which is originally
in LDIF format.
- Java Naming and Directory Interface (JNDI). The JNDI is a standard extension to the Java platform,
providing Java technology-enabled applications with a unified interface to multiple naming and directory
services including LDAP. Since the Grid information service is built upon LDAP technology, we use JNDI as the
accessing medium to LDAP.
- The JavaTM API for XML Processing (JAXP). JXP supports processing of XML documents using DOM, SAX,
and XSLT, which acts as a very important role of processing XML formatted data in Grid Searcher.
- Java Swing. The Swing components, which are parts of the Java Foundation
Class(JFC), is a powerful tool to create graphical user interfaces (GUIs) for Grid Searcher application.
- GNU Regexp package. The gnu.regexp package is a pure-Java implementation of a traditional
(non-POSIX) NFA regular expression engine, which is used as part of the data filtering tool in Grid Searcher.
The following is the detailed description of processing procedures with regard to the techniques mentioned above.
- MDS Query. The first step is to enable a backend query to one or several MDS servers set by the user.
JNDI is used to connect, query, and retrieve the information from those servers, and it will return an enumeration of
SearchResult java objects.
- MDS SearchResult To XML. Since it is relative difficult to deal with the data stored in SearchResult format,
the next step is using JAXP module to convert the SearchResult formatted data into XML format, either an XML file or
a XML DOM object in Java.
- Filter Data and Output. Now the Grid Searcher will instruct the user to input the specification of the application's
resource requirement, which is described by MDS Resource Specification Language (MRSL) and processed by GNU Regexp package,
search and filter the data, return the qualified resources back to user.
- Pluggable GUI Modules. All the above procedures involves with the pluggable GUI modules developed by Java Swing components.
|