Difference between revisions of "DIS-IP"
(→Introduction) |
(→Implentation Overview) |
||
Line 13: | Line 13: | ||
=== Implentation Overview === | === Implentation Overview === | ||
− | The DISIP is a static class that | + | The DISIP is a static class that creates "Managers" related to the VO the Service is acting. |
− | + | By using Credentials or service EPR it'is possible to instantiate the rigth Manager to use in the scope of a particular VO. | |
− | + | In the case of a secure VO credentials ( of the caller or retreived by the Delegation Service Listener) have to be used. | |
+ | Otherwise the EPR of the Service has to be passed at manager creation time to select among different VO. | ||
+ | |||
+ | The manager that can be created are of 4 Types: | ||
* Resource Manager : Used to publish/remove on the DIS-IC WS-resource properties documents | * Resource Manager : Used to publish/remove on the DIS-IC WS-resource properties documents |
Revision as of 18:35, 19 March 2007
Contents
Introduction
The DISIP is a static library that allows to create Managers for Profile/WS-resource-Properties/topics registration/unregistration to/from the DIS.
For further details about the Aggregator Framework, please see http://www.globus.org/toolkit/docs/development/4.1.0/info/aggregator/index.html
For information about the syntax of the registration file to use in pull mode, please see http://www.globus.org/toolkit/docs/development/4.1.0/info/aggregator/aggregator-sources-query.html
For information about the syntax of the registration file to use in push mode, please see http://www.globus.org/toolkit/docs/development/4.1.0/info/aggregator/aggregator-sources-subscription.html
Implentation Overview
The DISIP is a static class that creates "Managers" related to the VO the Service is acting. By using Credentials or service EPR it'is possible to instantiate the rigth Manager to use in the scope of a particular VO. In the case of a secure VO credentials ( of the caller or retreived by the Delegation Service Listener) have to be used. Otherwise the EPR of the Service has to be passed at manager creation time to select among different VO.
The manager that can be created are of 4 Types:
- Resource Manager : Used to publish/remove on the DIS-IC WS-resource properties documents
- DILIGENTProfile Manager : Used to Register/Unregister to/from DIS-Registry DILIGENT Resource Profiles
- Profile Manager : Used internally by the DIS-Registry to register profiles on the DIS-IC
- Broker Manager : Used by a Notification producer to register/unregister topics to/from DIS-Broker
Resource Manager
The Resource Manager like the Alpha version of the DIS-IP expose the following methods:
- registerPullMode(org.apache.axis.message.addressing.EndpointReferenceType epr, java.lang.String xmlPullFile, org.diligentproject.common.provider.DILIGENTPropertySet propSet)
Registers and publishes a group of WS-Resource properties into the DIS using the Pull Mode by creating an Anonymous Registration.
- registerPullMode(org.apache.axis.message.addressing.EndpointReferenceType epr, java.lang.String xmlPullFile, org.diligentproject.common.provider.DILIGENTPropertySet propSet, java.lang.String name)
Registers and publishes a group of WS-Resource properties into the DIS using the Pull Mode by creating a Named Registration.
- registerPushMode(org.apache.axis.message.addressing.EndpointReferenceType epr, java.lang.String xmlPushFile, org.diligentproject.common.provider.DILIGENTPropertySet propSet)
Registers and publishes a group of WS-Resource properties into the DIS using the Pull Mode by creating an Anonymous Registration. This Method can be used to register *ONLY* a WS-Resource-Properties on the DIS, cause the Globus AggregatorSubscriptionSink doesn't allows to retrieve more thatn one RP using push modality.
- registerPushMode(org.apache.axis.message.addressing.EndpointReferenceType epr, java.lang.String xmlPushFile, org.diligentproject.common.provider.DILIGENTPropertySet propSet, java.lang.String name)
Registers and publishes a group of WS-Resource properties into the DIS using the Pull Mode by creating a Named Registration. This Method can be used to register *ONLY* a WS-Resource-Properties on the DIS, cause the Globus AggregatorSubscriptionSink doesn't allows to retrieve more than one RP using push modality.
- remove(org.apache.axis.message.addressing.EndpointReferenceType epr)
Unregisters a group of WS-Resource properties from the DIS by destroying the related Anonymous Registration.
- remove(org.apache.axis.message.addressing.EndpointReferenceType epr, java.lang.String name)
Unregisters a group of WS-Resource properties from the DIS by destroying the related Named Registration.
DILIGENTProfile Manager
This Manager allows registration of DILIGENT Profiles into the DIS, hiding calls to DIS-Registry Stubs. The information about the DL context is extracted from the Credentials if the Manager has been created with credentials object, if the object has been created
- java.lang.String create(java.lang.String Profile)
This method allows registering a profile into DIS If the Manager has been created with credentials the DIS-Registry stubs are configured with the security enabled
- void remove(java.lang.String ID)
Remove from the DIS the Profile corresponding to the given ID. If the Manager has been created with credentials the DIS-Registry stubs are configured with the security enabled
- void update(java.lang.String profile, java.lang.String ID)
Update the Profile given the ID and the new profile. If the Manager has been created with credentials the DIS-Registry stubs are configured with the security enabled
- java.lang.String removeDL(java.lang.String ID)
This method remove the DL from the Profile represented by the ID. If the Manager has been created with credentials the DIS-Registry stubs are configured with the security enabled. The DL to add is extracted from the certificate or the EPR ( reading the Running Instance Profile)
- java.lang.String addDL(java.lang.String ID)
This method add the DL to the Profile represented by the ID. If the Manager has been created with credentials the DIS-Registry stubs are configured with the security enabled. The DL to add is extracted from the certificate or the EPR ( reading the Running Instance Profile)
Profile Manager
Broker Manager
The Broker Manager allows Notification Producers registering/unregistering topics to/from DIS-Broker of a particular VO. The following methods are both secure and unsecure ( in order to contact DIS-Broker of a secure/unsecure VO )
- void registerToBroker(org.apache.axis.message.addressing.EndpointReferenceType sourceEpr, java.util.ArrayList<javax.xml.namespace.QName> topicsList)
Registers to DIS-Broker a list of topics to be used for brokered Notification
- void registerToBroker(org.apache.axis.message.addressing.EndpointReferenceType sourceEpr, java.util.ArrayList<javax.xml.namespace.QName> topicsList, org.gridforum.jgss.ExtendedGSSCredential credential)
Registers to DIS-Broker a list of topics to be used for brokered Notification using AuthN/Authz
- void unregisterToBroker(org.apache.axis.message.addressing.EndpointReferenceType sourceEpr, java.util.ArrayList<javax.xml.namespace.QName> topicsList)
Unregisters to DIS-Broker a list of topics to be used for brokered Notification
- void unregisterToBroker(org.apache.axis.message.addressing.EndpointReferenceType sourceEpr, java.util.ArrayList<javax.xml.namespace.QName> topicsList, org.gridforum.jgss.ExtendedGSSCredential credential)
Unregisters to DIS-Broker a list of topics to be used for brokered Notification using AuthN/AuthZ
Dependencies
The DISIP exploits Authentication API functionalities to estract DL and VO info from Credentials. In order to parse EPR and retrieve the correct RI profile (In which are stored the info about the DL context), it exploits the NAL functionalities and the Profile Manager library.
Usage Example
Create a profile reading the info of the DL context to insert from the EPR.
String profile =args[0]; BufferedReader in = new BufferedReader(new FileReader(profile)); String xmlfile =""; while ((xmlfile = in.readLine()) != null ){ file += xmlfile; } in.close(); EndpointReferenceType epr = new EndpointReferenceType(); epr.setAddress(new AttributedURI("http://dlib16.isti.cnr.it:8080/wsrf/services/diligentproject/informationservice/disregistry/DISRegistryFactoryService")); System.out.println(DISIP.getDILIGENTProfileManager(null,epr).create(file));
--Andrea 13:14, 19 March 2007 (EET)