DILIGENT Provider
From Gcube Wiki
Revision as of 16:30, 18 March 2007 by Andrea (Talk | contribs) (→HOW TO PLUG the DILIGENT Provider into DILIGENT Services.)
HOW TO PLUG the 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:
- Modify yourservice.wsdl importing DiligentProvider.wsdl.
- add the namespace mapping:
xmlns:diligent="http://diligentproject.org/namespaces/common/provider/DILIGENTProvider"
- import DiligentProvider.wsdl from standard globus schema location:
<wsdl:import namespace= "http://diligentproject.org/namespaces/common/provider/DILIGENTProvider" location="../../common/provider/DILIGENTProvider/DiligentProvider.wsdl"/>
- 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">
- 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"/>
- Add DiligentProvider functionalities to your service Resource class implementation;
- import diligent provider package: import org.diligentproject.common.provider.*;
- 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="DiligentType" type="xsd:string"/> <xsd:element name="DLs" type="xsd:string"/>
- 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 of 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:DiligentType</agg:ResourcePropertyNames> <agg:ResourcePropertyNames>provider:DLs</agg:ResourcePropertyNames> <agg:ResourcePropertyNames>provider:DHNID</agg:ResourcePropertyNames> </agg:GetMultipleResourcePropertiesPollType> </agg:AggregatorConfig> <agg:AggregatorData/> </Content> </ServiceGroupRegistrationParameters>
- Your Service Build file has to be modified in order to copy into the build schema dir the DILIGENT Provider WSDL. So in the init target of your build file, just add the command :
<!-- Sets up the build directory structure --> <target name="init"> <mkdir dir="${build.dir}" /> <mkdir dir="${build.dest}" /> .......... <mkdir dir="${schema.dest}" /> <copy toDir="${schema.dest}"> ........... <fileset dir="${schema.provider.src}" casesensitive="yes"> <include name="diligentproject/common/**/*"/> </fileset> </copy>
The DiligentProvider Resource Properties are filled during registration to DIS by DIS-IP/NAL methods.
--Andrea 17:15, 15 February 2007 (EET)