The OGSA-DAI resource model is based around that of WSRF, i.e. a set of resources which have identities, properties and lifetimes and can be exposed by web services. This makes the resource model exposable using a WSRF-compliant presentation layer but does not imply that the presentation layer must be WSRF-compliant.
An OGSA-DAI resource is an encapsulation of OGSA-DAI state and behaviour. Through OGSA-DAI resources, clients access the power of OGSA-DAI. A resource can be viewed as analogous to an object in object-oriented programming.
Resources:
Hold state.
Expose some state using resource properties.
Can be dynamically created.
Can have associated lifetime management operations.
Support functionality specific to the type of resource.
Can have associated auditing, logging and accounting operations.
Are a key concept in the OGSA-DAI authorization model.
OGSA-DAI resources have resource IDs.
Resource IDs are simple unique names of resources that exist on an OGSA-DAI server.
Resource IDs have a form similar to that of Java classes, e.g. MyDataResource or some.org.MyOtherDataResource.
Resource IDs are passed within OGSA-DAI workflows when clients want to target activities at specific resources and are also returned to clients when new resources are created server-side.
For those familiar with WSRF, resource IDs are not dependant upon WSRF. WSRF-compliant presentation layers will provide mappings from resource IDs to and from WS-resource qualified endpoint references (WS-EPRs) but within the scope of an OGSA-DAI server all resource identification is done using resource IDs.
Each resource has a number of what are termed resource properties.
A resource may have zero or more resource properties.
Resource properties represent the state of a resource as it is exposed to clients.
Each resource property has a unique name within the scope of its resource.
A data request execution resource is executes OGSA-DAI data-centric workflows (also termed requests) provided by clients. A DRER can execute a number of such requests concurrently and also queue a number more. An OGSA-DAI server must have at least one DRER (else the OGSA-DAI server is rather limited in what it can offer clients!).
A DRER supports the following operations:
Execute - execute an OGSA-DAI data-centric workflow and return the status of the executing request to the client.
GetResourceProperty - get the value of a resource property given its name.
GetMultipleResourceProperties - get the value of a set of resource properties given their names.
QueryResourceProperties - run an XPath query over the complete set of resource properties and return the result.
A DRER supports the following resource properties:
Activities - the OGSA-DAI activities that are supported by the DRER. These will typically be activities that are data resource independent. Typical activities exposed by a DRER will be transformation, delivery, resource creation, resource destruction and management activities.
A data resource is an OGSA-DAI abstraction of a database or other type of data resource. An OGSA-DAI server may have 0 or more data resources. If an OGSA-DAI server has 0 data resources then it will only support data transformation and delivery.
A data resource supports the following operations:
SetTerminationTime - set the termination time of the resource.
Destroy - terminate the resource immediately.
GetResourceProperty - get the value of a resource property given its name.
GetMultipleResourceProperties - get the value of a set of resource properties given their names.
QueryResourceProperties - run an XPath query over the complete set of resource properties and return the result.
A data resource supports the following resource properties:
Activities - the OGSA-DAI activities that are supported by the resource, e.g. query activities, update activities.
CurrentTime - the current time known to the resource.
TerminationTime - the termination time of the resource.
There may be other application-specific resource properties depending upon the data resource implementation.
OGSA-DAI data resources are an application-specific extensibility point - versions of these can be developed so that databases or other data resources can be used from within OGSA-DAI.
OGSA-DAI as shipped provides out-of-the-box support for abstractions of the following types of data resource:
A data sink is an OGSA-DAI resource which allows clients to push data to an OGSA-DAI server. Data sinks are one way in which OGSA-DAI supports asynchronous data transfer. An OGSA-DAI server may have 0 or more data sinks.
A data sink supports the following operations:
PutBlock - put a single block of data into the data sink.
PutNBlocks - put N blocks of data into the data sink.
PutFully - put a complete set of data into the data sink.
SetTerminationTime - set the termination time of the data sink.
Destroy - terminate the data sink immediately.
GetResourceProperty - get the value of a resource property given its name.
GetMultipleResourceProperties - get the value of a set of resource properties given their names.
QueryResourceProperties - run an XPath query over the complete set of resource properties and return the result.
A data sink supports the following resource properties:
DataSinkStatus - the status of the data sink, e.g. waiting to receive data, in the middle of receiving data, completed receiving data, or in an error state.
Activities - the OGSA-DAI activities that are supported by the data sink, e.g. activities to put data into a local data sink or to stream data from a local data sink into an OGSA-DAI workflow.
CurrentTime - the current time known to the data sink.
TerminationTime - the termination time of the data sink.
A data source is an OGSA-DAI resource which allows clients to pull data from an OGSA-DAI server. Data sinks are one way in which OGSA-DAI supports asynchronous data transfer. An OGSA-DAI server may have 0 or more data sources.
A data source supports the following operations:
GetBlock - get a single block of data from the data source.
GetNBlocks - get N blocks of data from the data source.
GetFully - get a complete set of data from the data source.
SetTerminationTime - set the termination time of the data source.
Destroy - terminate the data source immediately.
GetResourceProperty - get the value of a resource property given its name.
GetMultipleResourceProperties - get the value of a set of resource properties given their names.
QueryResourceProperties - run an XPath query over the complete set of resource properties and return the result.
A data source supports the following resource properties:
DataSourceStatus - the status of the data sink, e.g. data is ready to be pulled, pulling of data is underway, all data has been pulled, or in an error state.
Activities - the OGSA-DAI activities that are supported by the daya source, e.g. activities to pull data from a local data source or to stream data to a local data source from an OGSA-DAI workflow.
CurrentTime - the current time known to the data source.
TerminationTime - the termination time of the data source.
A session is an OGSA-DAI resource which allows data and state to be used across multiple requests. State or data deposited during the execution of one OGSA-DAI request can be accessed and used in another. An OGSA-DAI server may have 0 or more sessions.
A session supports the following operations:
SetTerminationTime - set the termination time of the session.
Destroy - terminate the session immediately.
GetResourceProperty - get the value of a resource property given its name.
GetMultipleResourceProperties - get the value of a set of resource properties given their names.
QueryResourceProperties - run an XPath query over the complete set of resource properties and return the result.
A session supports the following resource properties:
Activities - the OGSA-DAI activities that are supported by the session, e.g. activities to save and load session state.
CurrentTime - the current time known to the session.
TerminationTime - the termination time of the session.
A request resource is an OGSA-DAI resource which allows the management of a request submitted to a DRER. These are used for the management of, and access to information about, asynchronous requests. An OGSA-DAI server may have 0 or more request resources.
Request resources are created in response to a request from clients being received by a DRER and queued. Requests that are turned back because a DRER's queue is full do not have associated resources created.
A request resource supports the following operations:
SetTerminationTime - set the termination time of the resource.
Destroy - terminate the resource immediately.
GetResourceProperty - get the value of a resource property given its name.
GetMultipleResourceProperties - get the value of a set of resource properties given their names.
QueryResourceProperties - run an XPath query over the complete set of resource properties and return the result.
A request resource supports the following resource properties:
RequestExecutionStatus - a constant denoting the execution status of a processing request, e.g. unstarted, unstarted due to an error, processing, processing with an error encountered, completed, completed with an error encountered, explicitly terminated. See Section K.2, “Request execution status” for a formal description.
RequestStatus - information on the status of a currently executing request, including information on the status of each activity and (if the request has completed execution) output data. The status is the same format as that returned by the DRER Execute operation. See Section K.3, “Request status” for a formal description.
Activities - the OGSA-DAI activities that are supported by the resources.
CurrentTime - the current time known to the resource.
TerminationTime - the termination time of the resource.