DILIGENT Provider

From Gcube Wiki
Revision as of 17:01, 15 February 2007 by Andrea (Talk | contribs) (HOW TO PLUG DILIGENT Provider into DILIGENT Services.)

Jump to: navigation, search

HOW TO PLUG DILIGENT Provider into DILIGENT Services.

The DILIGENTProvider provide new ws-resource properties and operation ( not in this first version ) to DILIGENT services. It's present inside the DHN_installer archive, and automatically deployed on the DHN. These are the steps to follow: 1) Modify yourservice.wsdl importing DiligentProvider.wsdl. 1a) add the namespace mapping: xmlns:diligent="http://diligentproject.org/namespaces/common/provider/DILIGENTProvider" 1b) import DiligentProvider.wsdl from standard globus schema location: <wsdl:import namespace= "http://diligentproject.org/namespaces/common/provider/DILIGENTProvider" location="../../common/provider/DILIGENTProvider/DiligentProvider.wsdl"/> 1c) extends DiligentProvider provider in your porttype: <portType name="YourServicePortType" wsdlpp:extends="wsrpw:GetResourceProperty wsrpw:GetMultipleResourceProperties wsrpw:SetResourceProperties wsrpw:QueryResourceProperties wsrlw:ImmediateResourceTermination wsntw:NotificationProducer diligent:DiligentProvider"> 2) Add DiligentProvider to the list of the provider of your service wsdd file: <parameter name="providers" value="org.diligentproject.common.provider.DILIGENTProvider GetRPProvider GetMRPProvider SetRPProvider QueryRPProvider"/> 3) Add DiligentProvider functionalities to your service Resource class implementation; 3a)import diligent provider package: import org.diligentproject.common.provider.*; 3b)create an object of class DILIGENTPropertySet instead of SimpleResourcePropertySet: this.propSet = new DILIGENTPropertySet(DILIGENTResourceQNames.RESOURCE_PROPERTIES); this will add 7 new resource properties to your resource: <xsd:element name="RunningInstanceID" type="xsd:string"/> <xsd:element name="ServiceID" type="xsd:string"/> <xsd:element name="DHNID" type="xsd:string"/> <xsd:element name="ServiceName" type="xsd:string"/> <xsd:element name="ServiceClass" type="xsd:string"/> <xsd:element name="VOName" type="xsd:string"/> <xsd:element name="ResourceType" type="xsd:string"/> 4) Also you have to modify the registration file that you pass to DIS-IP in order to register also the new ws-properties( in future version the DILIGENT provider new ws-properties will be added automatically to registration file): <ServiceGroupRegistrationParameters xmlns:sgc="http://mds.globus.org/servicegroup/client" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:agg="http://mds.globus.org/aggregator/types" xmlns="http://mds.globus.org/servicegroup/client"> <!-- Specifies that the registration will be renewed every 30 seconds --> <RefreshIntervalSecs>60</RefreshIntervalSecs> <!-- <Content> specifies registration specific information --> <Content xsi:type="agg:AggregatorContent" xmlns:agg="http://mds.globus.org/aggregator/types"> <agg:AggregatorConfig> <agg:GetMultipleResourcePropertiesPollType xmlns:registry="http://diligentproject.org/namespaces/informationservice/disregistry/DISRegistryService" <!-- ADD the DILIGENT provider Ns --> xmlns:provider="http://diligentproject.org/namespaces/common/provider/DILIGENTProvider"> <agg:PollIntervalMillis>60000</agg:PollIntervalMillis> <agg:ResourcePropertyNames>registry:UniqueID</agg:ResourcePropertyNames> <agg:ResourcePropertyNames>registry:ResourceType</agg:ResourcePropertyNames> <agg:ResourcePropertyNames>registry:AuthPolicies</agg:ResourcePropertyNames> <agg:ResourcePropertyNames>registry:Profile</agg:ResourcePropertyNames> <!-- ADD these list of WS-Properties --> <agg:ResourcePropertyNames>provider:RunningInstanceID</agg:ResourcePropertyNames> <agg:ResourcePropertyNames>provider:ServiceID</agg:ResourcePropertyNames> <agg:ResourcePropertyNames>provider:ServiceName</agg:ResourcePropertyNames> <agg:ResourcePropertyNames>provider:ServiceClass</agg:ResourcePropertyNames> <agg:ResourcePropertyNames>provider:VOName</agg:ResourcePropertyNames> <agg:ResourcePropertyNames>provider:ResourceType</agg:ResourcePropertyNames> <agg:ResourcePropertyNames>provider:DHNID</agg:ResourcePropertyNames> </agg:GetMultipleResourcePropertiesPollType> </agg:AggregatorConfig> <agg:AggregatorData/> </Content> </ServiceGroupRegistrationParameters> The DiligentProvider Resource Properties are filled during registration to DIS by DIS-IP/NAL methods.