Service interaction patterns
D-NET’s framework is flexible enough to support a number of application construction methodologies, based on various service interaction patterns. D-NET delivers three main classes: resource subscription and notification, resource discovery, and service orchestration.
Resource subscription and notification Resources can subscribe to system events and be notified when these occur. Subscription and Notification (S&N) mechanisms are implemented by the Information Service, following the W3C specification WS notification 2.0. Events are “encoded” in terms of the operations that services perform over their profiles, to signal their participation to the system, their intention to leave, or the update of their internal status. Three main categories of subscriptions are supported, each requiring specific parameters as input:
- Registration of a resource, by “resource type” of the resource;
- Removal of a resource, by identifier of the resource or by resource type;
- Change of the status of a resource, by identifier of the resource and by the properties of the status to be monitored. Such properties are limited to those encoded in the XML profile of the resource, which is “published”, kept up to date by the service, and under control of the Information Service. The subscription mechanism is therefore quite powerful, as a subscription of this kind can consist of an xpath that specifies the “portion” of the profile that is to be controlled for updates.
Resource discovery Services are designed to interact with resources of a given resource type, which they have to discover through the Information Service at run-time. In the case the service needs immediate interaction with the resources it requires and discovery delay would compromise its quality of service, caching mechanisms based on subscription and notification can be realized. By sending the appropriate subscriptions, the service can maintain an up to date map of the resources it requires.
Resource orchestration Manager Services are services that can be instantiated and configured by RO administrators to execute workflows of actions. An action typically consists of a guard, i.e., the wait for a given event, and the sequence of operations to be executed: resource discovery operations, subscriptions of the Manager Service to new events (those required by further actions to occur) and any business logic needed. Manager Services provide admin interfaces through which administrators can verify the status of the active workflows, interact with them, and look up the history of workflows.