caGrid Data Services present an object view of a data resource. The data resource is exposed through a well defined query method, which also relies on well defined query objects to perform queries and return results as a strongly typed set. Since caGrid Data Services operate with objects registered in the caDSR and modeled via XML schema stored in the GME, caGrid Data Services are caBIG Gold Level services.
In this diagram, a client formulates a CQL Query. This query contains information regarding which data type will be targeted and therefore returned by the query, as well as properties which the returned objects must fulfill. Additionally, the query specifies associated objects which further qualify the target data objects. The query is then submitted to the grid method on the caGrid Data Service via standard grid protocol. This method deserializes the XML received into an object model representation of the query, and then hands it off to a query processor. The query processor has the task of interpreting the CQL Query in a manner that allows it to query an underlying data source (for example, a Silver level caCORE SDK generated system), and generating the result set. Once the result set has been generated, the results are serialized as XML and returned to the client as a single query results set object. The client has tools which can iterate the result set as either raw XML strings, or deserialize the XML into objects. A simplified data service handle class is provided which immediately returns an object iterator without the intermediate step of creating one and configuring it to return objects instead of XML.
The Data Service architecture also supports integration with WS-Enumeration and caGrid Bulk Data Transport to provide a simplified and standard means of returning results of queries lazily. This avoids returning a potentially very large set of data at once, and allows the client to retrieve the results as they are needed or able to be processed.
View the Project Status.