Difference between revisions of "DILIGENT Provider"

From Gcube Wiki
Jump to: navigation, search
(HOW TO PLUG DILIGENT Provider into DILIGENT Services.)
(HOW TO PLUG DILIGENT Provider into DILIGENT Services.)
Line 7: Line 7:
 
These are the steps to follow:
 
These are the steps to follow:
  
1) Modify yourservice.wsdl importing DiligentProvider.wsdl.
+
* Modify yourservice.wsdl importing DiligentProvider.wsdl.
  
1a) add the namespace mapping:  xmlns:diligent="http://diligentproject.org/namespaces/common/provider/DILIGENTProvider"
+
        ** add the namespace mapping:  xmlns:diligent="http://diligentproject.org/namespaces/common/provider/DILIGENTProvider"
  
     1b) import DiligentProvider.wsdl from standard globus schema location:
+
     ** import DiligentProvider.wsdl from standard globus schema location:
 
 
 
<nowiki><wsdl:import namespace=
 
<nowiki><wsdl:import namespace=
Line 17: Line 17:
 
   location="../../common/provider/DILIGENTProvider/DiligentProvider.wsdl"/>
 
   location="../../common/provider/DILIGENTProvider/DiligentProvider.wsdl"/>
 
</nowiki>
 
</nowiki>
1c) extends DiligentProvider provider in your porttype:
+
** extends DiligentProvider provider in your porttype:
  
 
<nowiki><portType name="YourServicePortType"  
 
<nowiki><portType name="YourServicePortType"  
Line 28: Line 28:
 
    diligent:DiligentProvider">
 
    diligent:DiligentProvider">
 
</nowiki>
 
</nowiki>
2) Add DiligentProvider to the list of the provider of your service wsdd file:
+
* 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"/>
 
<parameter name="providers" value="org.diligentproject.common.provider.DILIGENTProvider GetRPProvider GetMRPProvider SetRPProvider QueryRPProvider"/>
  
3) Add DiligentProvider functionalities to your service Resource class implementation;
+
* Add DiligentProvider functionalities to your service Resource class implementation;
  
3a)import diligent provider package: import org.diligentproject.common.provider.*;
+
** import diligent provider package: import org.diligentproject.common.provider.*;
  
3b)create an object of class DILIGENTPropertySet instead of SimpleResourcePropertySet:
+
** create an object of class DILIGENTPropertySet instead of SimpleResourcePropertySet:
  
 
this.propSet =  new DILIGENTPropertySet(DILIGENTResourceQNames.RESOURCE_PROPERTIES);
 
this.propSet =  new DILIGENTPropertySet(DILIGENTResourceQNames.RESOURCE_PROPERTIES);
Line 56: Line 56:
 
<xsd:element name="ResourceType" 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
+
* 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):
 
new ws-properties will be added automatically to registration file):
  
Line 105: Line 105:
  
 
</ServiceGroupRegistrationParameters>
 
</ServiceGroupRegistrationParameters>
 
 
  
  
  
 
The DiligentProvider Resource Properties are filled during registration to DIS by DIS-IP/NAL methods.
 
The DiligentProvider Resource Properties are filled during registration to DIS by DIS-IP/NAL methods.
</nowiki>
 

Revision as of 16:05, 15 February 2007

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:

  • 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="ResourceType" 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 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">
  <RefreshIntervalSecs>60</RefreshIntervalSecs>


  <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"


     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>
 	
        <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.