OGSA-DAI Grid Data Service Factory EPCC, University of Edinburgh Mike Jackson, michaelj@epcc.ed.ac.uk OGSA-DAI Training Workshop – April 2003 Release: P2R2 Talk Outline Grid Data Service Factory 4Release 2: – Capabilities. – Java API. 4Release 3: – Planned Capabilities. 2 OGSA-DAI Training Workshop, Release: P2R2 Grid Data Service Factory 4Implements OGSA PortTypes: – GridService – Factory – NotificationSource 4Provides services for: – Creating new Grid Data Services for pre-defined data resources. – Querying of service data: • Pre-defined data resources for which the GDSF can create GDSs. • Information relating to these data resources – schemes, locations, paths, resources. – Subscribing to changes in the GDSF state. 4Is a persistent Grid service. 3 OGSA-DAI Training Workshop, Release: P2R2 Initialisation 4Configuration documents specify: – Available data resources: • • • • • Schemes Locations Resources Paths Activities – Activity Maps. – Data Resource Implementations. – Registration List. 4On creation, the GDSF registers with specified Grid Data Service Registries. 4 OGSA-DAI Training Workshop, Release: P2R2 Initialisation + Deployment <service name="ogsadai/GridDataServiceFactoryP2R2" provider="Handler" style="wrapped"> <parameter name="ogsadai.gdsf.config.xml.file" value="OGSADAI.PROPERTIES.DIR/GDSFConfig.xml"/> <parameter name="ogsadai.gdsf.registrations.xml.file" value="OGSADAI.PROPERTIES.DIR/registrationList.xml"/> <parameter name="ogsadai.gdsf.activities.xml.file" value="OGSADAI.PROPERTIES.DIR/activityMap.xml"/> <parameter name="ogsadai.gdsf.dataresource.impl.map.xml.file" value="OGSADAI.PROPERTIES.DIR/dataResourceImplementationMap.xml"/> <parameter name="allowedMethods" value="*"/> <parameter name="className" value="uk.org.ogsadai.service.gdsf.GridDataServiceFactoryP2R2"/> <parameter name="persistent" value="true"/> <parameter name="activateOnStartup" value="true"/> <parameter name="schemaPath" value="schema/ogsadai/gdsf/gdsf_service.wsdl"/> <parameter name="instanceSchemaPath" value="schema/ogsadai/gds/grid_data_service.wsdl"/> <parameter name="handlerClass" value="org.globus.ogsa.handlers.RPCURIProvider"/> </service> 5 OGSA-DAI Training Workshop, Release: P2R2 Accessing a GDSF 4 Interface and implementing class: uk.org.ogsadai.client.gdsf.GridDataServiceFactory uk.org.ogsadai.client.gdsf.GridDataServiceFactoryLocator 4 Methods: GridServicePortType getGridServicePort(URL url) FactoryPortType getFactoryPort(URL url) NotificationSourcePortType getNotificationSourcePort(URL url) – Where: • • • 6 url is the GSH of a GDSR. Return objects all belong to org.gridforum.ogsa. All methods throw javax.xml.rpc.ServiceException. OGSA-DAI Training Workshop, Release: P2R2 Creating a GDS – CreateService Documents <?xml version="1.0" encoding="UTF-8"?> <gdsf:gridDataServiceFactoryCreate xmlns:gds="http://ogsadai.org.uk/P2R2/schemas/gds" xmlns:gdsf="http://ogsadai.org.uk/P2R2/schemas/gdsf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ogsadai.org.uk/P2R2/schemas/gdsf ../../src/wsdlR2/types/grid_data_service_factory_types.xsd http://ogsadai.org.uk/P2R2/schemas/gds grid_data_service_types.xsd "> <gdsf:dataResourceName> myDataResource </gdsf:dataResourceName> </gdsf:gridDataServiceFactoryCreate> 7 OGSA-DAI Training Workshop, Release: P2R2 Creating a GDS – Eliciting Information 4Query available data resources for which the GDSF can provide GDSs. 4Use GridService::FindServiceData: <gsdl:QueryByServiceDataName xmlns:gsdl= ‘‘http://www.gridforum.org/namespaces/2002/10/gridServices’’> <serviceDataName name= ‘‘{http://ogsadai.org.uk/schemas/gdsf/definitions}DataResources’’/> </gsdl:QueryByServiceDataName> 4 Namespace: {http://ogsadai.org.uk/schemas/gdsf/definitions} 4 Local parts: – – – – 8 Schemes Locations Resources DataResources OGSA-DAI Training Workshop, Release: P2R2 DataResources Service Data <ns1:serviceData xsi:type="ns1:ServiceDataType" ns1:availableUntil="200304-22T08:40:54.330Z" ns1:goodFrom="2003-04-21T08:40:54.330Z" ns1:goodUntil="2003-04-22T08:40:54.330Z" ns1:name="ns2:DataResources" xmlns:ns2="http://ogsadai.org.uk/schemas/gdsf/definitions" xmlns:ns1="http://www.gridforum.org/namespaces/2002/10/gridServices" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <ns3:dataResource xsi:type="ns3:DataResourceType“ name="myXMLDBDataResource” xmlns:ns3="http://ogsadai.org.uk/P2R2/schemas/gdsf"> <ns3:scheme-ref>xindice</ns3:scheme-ref> <ns3:path-ref>myXMLDB</ns3:path-ref> <ns3:location-ref>myXMLDBMS</ns3:location-ref> </ns3:dataResource> <ns4:dataResource xsi:type="ns4:DataResourceType" name="myDataResource" xmlns:ns4="http://ogsadai.org.uk/P2R2/schemas/gdsf"> <ns4:scheme-ref>mysql1</ns4:scheme-ref> <ns4:path-ref>myDB</ns4:path-ref> <ns4:location-ref>myJDBCDBMS</ns4:location-ref> </ns4:dataResource> </ns1:serviceData> 9 OGSA-DAI Training Workshop, Release: P2R2 Factory::CreateService 4 Method of interface org.gridforum.ogsa.FactoryPortType ServiceTerminationReferenceType createService(CreationType creation) throws java.rmi.RemoteException, org.gridforum.ogsa.ServiceAlreadyExistsFault 4 Where: – creation holds: • CreateService Document specifying the data resource to which new new GDS should manage access. • Requested termination time of the new GDS (optional). – ServiceTerminationReferenceType belongs to org.gridforum.ogsa and holds: • GSH of the new GDS. • Termination time of the new GDS. 10 OGSA-DAI Training Workshop, Release: P2R2 Future Capabilities 4 Revising GDSF service data: – Exposing activities corresponding to data resources. – Exposing information about activities themselves. – Exposing dynamic information about a data resource: • Database tables or XML Schema. • Database memory usage and availability. • Database load. 4 Registering newly-created GDSs with GDSRs. 4 Allowing clients to define new data resources based on the GDSF configuration: – Updating GDSF configuration documents for reuse. 4 Client authorisation: – Restrict abilities of clients to create services. 4 Transient GDSFs. 11 OGSA-DAI Training Workshop, Release: P2R2