|caGrid||caGrid 1.2 Documentation|
|WS-Enumeration||WS-Enumeration 1.2 Documentation||WS-Enumeration 1.2 Administrators Guide|
The caGrid WS-Enumeration infrastructure requires use of the Globus Java WS-Core patched with WS-Enumeration support. The special caGrid distribution of this package meets this requirement.
Information on obtaining the caGrid WS-Enumeration infrastructure may be found on the Downloads Page
When a caGrid service is built with Introduce and the WS-Enumeration extension, a special service property is added which controls the default server-side implementation of the enumeration. This service property is "caGridWsEnumeration_iterImplType", and it may be set to one of five values:
- The Globus-provided simple enum iterator
- A concrete implementation of the EnumIterator interface. It is a very simple implementation that can enumerate over in-memory data passed either as an array of objects or a list (java.util.List). The enumeration contents can be of javax.xml.soap.SOAPElement type, simple types such as java.lang.Integer, etc. or Axis generated Java beans. The SimpleEnumIterator can only be used with transient type of enumerations.
- The Globus-provided indexed file enum iterator
- A memory efficient implementation that can enumerate over data stored in an indexed file created by IndexedObjectFileWriter. The indexed file format is optimized for retrieving objects in a sequential and random manner. The IndexedObjectFileEnumIterator uses the IndexedObjectFileReader to read the indexed file and quickly locate and retrieve the next set of objects of the enumeration. The IndexedObjectFileEnumIterator can be used with transient and persistent types of enumerations.
- A simple iterator which persists objects to disk
- This iterator makes no attempt to respect any values of IterationConstraints except for maxElements.
- A relatively complete implementation of the EnumIterator spec
- This iterator uses threads to respect maxTime constraints, as well as respecting maxCharacters. Elements overflowing either of these constraints, however, are lost, and waits for threads are not optimized.
- The default and most complete implementation of the EnumIterator spec
- This iterator uses the Java 5 java.util.concurrent package to fully support the WS-Enumeration specification for an EnumIterator implementation. All iteration constraints are respected, and elements which cause maxCharacters to be exceded are queued for later retrieval.
The default implementation is CAGRID_CONCURRENT_COMPLETE. If the service property is not found, contains no value, or contains an invalid value, this implementation will be used and a warning will be logged.
The caGrid WS-Enumeration infrastructure is not a stand-alone service so much as a set of tools and interfaces which work together to build a consistent grid service interface, and provide tools to develop enumeration supporting services. It can be installed into the Introduce toolkit as an extension by executing the command "ant installIntroduceExtensions" from either the top level of a source distribution, or from the cabigextensions project, found in projects/cabigextensions under the top level of a source distribution.
The caGrid WS-Enumeration framework can be verified to be installed correctly by building, deploying, and executing a caGrid service which supports WS-Enumeration (i.e. a Data Service).