You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

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:

  1. There are serious problems with using multicast technologies on NCSA's production resource subnets.
  2. 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.
  3. We do not require the full peer-to-peer capabilities offered by Jini.

API

Service WSDL

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 the ncsa.service.vizier.tspace.ConfigurationEntry object (see below).
  • read and take are batch methods, both requiring a serialized string representing the ncsa.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 (if set to t <= 0, the non-blocking method is called), whereas takeNB will return immediately subsequent to issuing a the request against the data store.
    • takeNB can return null if no tuples satisfy the request constraints.
    • take will not return null unless timeout <= 0.
    • take may return an empty array (length 0) if its timeout has been exceeded.
  • No labels