Difference between revisions of "IS-Notification"
From Gcube Wiki
Lucio.lelii (Talk | contribs) (→New Features) |
Lucio.lelii (Talk | contribs) (→How to configure clients running outside the gCore container) |
||
Line 20: | Line 20: | ||
=== How to configure clients running outside the gCore container === | === How to configure clients running outside the gCore container === | ||
+ | |||
+ | To register a Topic outside a gCore cotnainer this library requires 2 steps of configuration: | ||
+ | |||
+ | * modify the file $GLOBUS_LOCATION/etc/globus_wsrf_core/client-server-config.wsdd adding in the '''globalConfiguration''' session the parameter hostname | ||
+ | <code> | ||
+ | ... | ||
+ | <globalConfiguration> | ||
+ | <parameter name="containerThreads" value="1"/> | ||
+ | <parameter name="containerThreadsMax" value="3"/> | ||
+ | <parameter name="hostname" value="yourhost"/> | ||
+ | <parameter name="sendXsiTypes" value="true"/> | ||
+ | |||
+ | <!-- Authentication service --> | ||
+ | <parameter name="authenticationService" | ||
+ | value="gsi/AuthenticationService"/> | ||
+ | ... | ||
+ | <\code> | ||
=== Examples === | === Examples === |
Revision as of 15:54, 9 September 2010
Contents
Design
The IS-Notification is a library that provides a subscription/notification mechanism based on Remote Events. This library helps the clients to interact with the Notifier Service and allows:
- for a Client or a Service (Subscriber) to subscribe for a Topic and receiving notifications
- for a Service (producer) to register its own topic and sending notification.
Interface
- public <T extends BaseNotificationConsumer> void registerToISNotification(T consumer,List<GCUBENotificationTopic> notifications, GCUBESecurityManager manager, GCUBEScope ... scope) throws ISNotifierException – this method registers a entity of type T (consumer) for a list of GCUBENotificationTopic in selected Scopes (scope) with a GCUBESecurityManager (manager) in the IS-Notifier;
- public void unregisterFromISNotification( GCUBESecurityManager manager, List<GCUBENotificationTopic> notifications, GCUBEScope ... scope) throws ISNotifierException – this method unregisters the consumer for a list of GCUBENotificationTopic from the IS-Notifier in the selected scopes (scope) with a GCUBESecurityManager (manager);
- public void registerISNotification (EndpointReferenceType producerEPR, List<? extends Topic> notifications, GCUBESecurityManager manager, GCUBEScope ... scope) throws ISNotifierException – this method registers the reference to a resource (producerEPR) that produces a list of topics (notifications) in the IS-Notifier in the selected scopes (scope) with a GCUBESecurityManager (manager);
- public void unregisterISNotification (EndpointReferenceType producerEPR, List<? extends Topic> notifications, GCUBESecurityManager manager, GCUBEScope ... scope) throws ISNotifierException – this method unregister the reference to a resource (producerEPR) for a list of topics (notifications) in the IS-Notifier in the selected scopes (scope) with a GCUBESecurityManager (manager);
- public boolean[] isTopicRegistered(GCUBESecurityManager securityManager, GCUBEScope scope, List<TopicData> topics) throws ISNotifierException - this methods checks if a topic (topic) registration is completed or not for a producer (producerEpr) in the IS-Notifier in the selected scopes (scope) with a GCUBESecurityManager (manager);
New Features
From version 1.4 this library contains new features:
- the possibility to register for a client running outside a gcore container;
- the possibility to register to a Topic specifying a 'precodition'. The 'precodition' is represented by an XPath specified at Topic creation time an evaluated producer-side. This feature reduces the number of messages exchanged between producer and consumer.
How to configure clients running outside the gCore container
To register a Topic outside a gCore cotnainer this library requires 2 steps of configuration:
- modify the file $GLOBUS_LOCATION/etc/globus_wsrf_core/client-server-config.wsdd adding in the globalConfiguration session the parameter hostname
...
<globalConfiguration>
<parameter name="containerThreads" value="1"/> <parameter name="containerThreadsMax" value="3"/> <parameter name="hostname" value="yourhost"/> <parameter name="sendXsiTypes" value="true"/>
<parameter name="authenticationService" value="gsi/AuthenticationService"/> ...
<\code>
=== Examples ===