Purpose
To provide, through a standard web-service interface, a tuple-space-like capability which can be used by other services and by applications running in the ELF container.
We have chosen to implement this service instead of using JavaSpaces, the tuple-space which has long been part of the Jini Technology package (see http://java.sun.com/developer/products/jini and also http://javaspaces.org), for the following reasons:
- There are serious problems with using multicast technologies on NCSA's production resource subnets.
- We do not require the full generality of JavaSpaces with respect to serializable classes; our service accepts an open-ended (i.e., basically untyped) wrapper object containing a serialized xml blob as payload, corresponding to the
ncsa.tools.common.types.Configuration
object. - We do not require the full peer-to-peer capabilities offered by Jini.
API
public interface IConfigurationSpace { void write( String entryXML ) throws Throwable; String[] read( String matchXML, int max ) throws Throwable; String[] take( String matchXML, int max, long timeout ) throws Throwable; String[] takeNB( String matchXML, int max ) throws Throwable; }
write
takes a serialized string representing thencsa.service.vizier.tspace.ConfigurationEntry
object (see below).read
andtake
are batch methods, both requiring a serialized string representing thencsa.service.vizier.tspace.ConfigurationMatchRequest
object (see below), along with an integer indicating the maximum number of tuples to return (default is 10; it is advisable not to set this number too high, as Axis will have trouble managing extremely large SOAP packets.take
also requires a timeout (default is