Title: Grid Database Service Spec Target GGF9
1Grid Database Service Spec (Target GGF9)
2Recent DAIS Model Activity
- The DAIS sessions at GGF8
- A number of discussion threads have appeared on
the DAIS mail list - Various out of band conversations between those
interested in DAIS and the evolution of the model - These slides are based on the above
- the model section is yet to be revised in
anticipation of lively debate at the face to face
meeting 21st 22nd August - Savas has posted a thought provoking paper to the
DAIS mailing list that should also be considered
as it makes comments about data
3Changes In Thinking Since GGF8
- drm/edrm removed
- Management requests are assumed to occur through
dr - dr remains and can notionally represent
- Any collection of external data resources, other
dr or both as long as a coherent mechanism for
access is possible - One dr can be derived from another at the server
to provide a different view of the same edr - das is used when request context must be
maintained outside the original request call - For simplicity synchronous requests go directly
to dr. A das is created implicitly. - ds is a format for request/response data and not
a service instance - It is a collection of name/type/value tuples
- The eds concept is consumed by ds accordingly
4Vocabulary For External ResourcesRDBMS As An
Example
DBMS
external data resource
DB
External external to the OGSI compliant grid
5Vocabulary For Logical Resources RDBMS As An
Example
DBMS
DB
data resource
data activity session
Data
data set
6Mapping The Model
- data resource (dr) grid service
- data access session (das) grid service
- data set (ds) data format
7Mapping The Model
EDR
dr
edr
edr
edr
derivation
dr
edr
edr
movement
edr
dr
dr data resource
8Example Data Resources
dr
DB
dr
DB
dr
DB
aggregation
dr
dr
DB
DB
dr
Client only sees dr interface and data structure
exposed through SDEs
DBMS
dr
derivation
DB
dr
9Data Resource
- As per current spec will be typed depending on
the type of data being represented - Relational
- XML
-
- Will expose meta-data appropriate to the type of
the data represented - Will expose synchronous data access request
methods - See the synchronous access methods currently
defined on das
10Data Access Session
- Differs from current spec in that it concentrates
on asynchronous access to data only - The role of the das is to manage the state of
asynchronous or long running data access
operations - Is also the extension point for other modes of
operation, for example, event based delivery. - Will expose meta data about the context of the
request - Transaction
- Security
- Progress
- Created
- By a factory either independently or exposed by
dr
11Dr Interface
- Meta Data
- Technical description
- Versions, Ownership, Type, Features, Security,
Software - Structural description
- Data structure
- Capabilities available activities
- What operations can be performed against dr
- Operations
- outDs performImmediate ( DataSet inDs )
- OR
- outDs sqlQuery ( DataSet inDS )
- Protocol vs API argument
12Das Interface
- Meta Data
- Status
- Progress, Context
- Capabilities available activities
- What operations can be performed against das
- Operations
- outDs performAsynchronous ( DataSet inDs )
- OR
- outDs sqlQuery ( DataSet inDS )
- Protocol vs API
13Synchronous Operation
ds
Client
SR
dr
ds
SR Synchronous Request portTypes SF - Session
Factory portType AR Asynchronous Request
portTypes
14SR Sequence
- Accept ds
- Action each request in input ds in turn
- Construct output ds containing
- Repeated pairs of
- Request status
- Result
- Return ds
15Asynchronous Operation
ds1
ds
Client
SF
dr
ds2
ds
ds3
das
AR
ds
AR
SR Synchronous Request portTypes SF - Session
Factory portType AR Asynchronous Request
portTypes
16SF/AR Sequence
- SF
- Accept request as ds1
- Create das and return ds containing
- Request status
- Reference to das
- Recipe for ds identification
- AR
- Ds2 is status request
- Ds3 is request to retrieve the whole ds
17Server Side Derivation
ds
ds
Client
SR
dr
ds
ds
dr
SR
SR Synchronous Request portTypes SF - Session
Factory portType AR Asynchronous Request
portTypes
18Data Set
- Packaging to avoid round trips
- Unit for data movement services to handle
19All DataSets
- A packaged sequence of triples
- Identifier
- unique within the dataset
- A type
- e.g. an identifier or URI that can be tested for
equality - e.g. a reference to an XML schema
- e.g. a DIME type
- A value
- In a format appropriate / specified for that type
- e.g. a table in a row set or more compact format
- e.g. an XML document
- Two special kinds of value
- A data delivery recipe
- A data collection recipe
- Separate data movement from data grouping
- A package to be transferred by a movement
mechanism
20All Datasets
- A pair of APIs for
- Constructing / assembling the package
- Parsing, extracting values from the package
- Similar to ADO .NET datasets
- But with extended range of types
- No (for now) support for update
21Input Data Set
22Input Data Set
RequestDataRequest.xsd ltdataRequestgt
lt/dataRequestgt
IdentType Value
IdentType Value
IdentType Value
IdentType Value
IdentType Value
IdentType Value
IdentType Value
IdentType Value
23Input Data Set
TableOfReferenceGalaxiesWebRowSet.xsd lttablegt
lt/tablegt
IdentType Value
IdentType Value
IdentType Value
IdentType Value
IdentType Value
IdentType Value
IdentType Value
IdentType Value
24Output Data Set
ResultStatusStatus.xsd ltstatusgt lt/statusgt
IdentType Value
IdentType Value
IdentType Value
IdentType Value
IdentType Value
IdentType Value
IdentType Value
IdentType Value
0
1
2
3
4
5
6
7
25Output Data Set
ResultTable1WebRowSet.xsd lttablegt lt/tablegt
IdentType Value
IdentType Value
IdentType Value
IdentType Value
IdentType Value
IdentType Value
IdentType Value
IdentType Value
26Third Party Data Access And Delivery
27Requirements for Data Recipes
- For the dr to obtain ds via step 2
- The ds in step 1 must define how to obtain ds2
- Where to obtain it
- How to identify the particular subset of data
from that source - Use a Data Access Recipe
- For dr to despatch ds4 to a consumer
- The ds in step 1 must define how to deliver it
- Where to send it
- With what delivery note, i.e. how do we ask the
consumer to do things with it, such as store for
later collection - Use a Data Delivery Recipe
28Data Access Recipe
Data Access Recipe
RemoteRequiredTableDataAccessRecipe.xsd ltdargt
ltgshgt lt/gshgt lttypegt lt/typegt ltdataSetgt
lt/dataSetgt lt/dargt
29Data Delivery Recipe
Data Delivery Recipe
TableToBeDeliveredDataDeliveryRecipe.xsd ltddrgt
ltgshgt lt/gshgt ltdataRequestgt lt/dataRequest
gt lt/ddrgt