Interaction Diagram: Discovery
For the discovery of suitable services, an IoT Service Client synchronously calls
the IoT Service Resolution component, using the discoverService operation with
the ServiceSpecification of the service as parameter. The ServiceSpecification
contains a specification of aspects the service must fulfil, e.g., the type of
service, the output to be provided, the post-conditions that need to be valid, the
inputs to be provided, the pre-conditions required, the geographical location
covered etc. IoT Service Resolution finds the Service Descriptions fitting the
Service Specification and returns them in an array.
The content and representation of the ServiceSpecification depends on the
ServiceDescription, e.g. for a ServiceDescription based on RDF, a
ServiceSpecification based on SPARQL may be appropriate. The choice of
structure and representation of ServiceDescription and ServiceSpecification is a
design decision, which is on purpose not taken at the Reference Architecture
level. An example for a Service Model (structure) can be found in [De 2012].
IoT-Service
Client
(from WP4
Interactions)
IoT Service
Resolution
(from WP4
Interactions)
discoverService(ServiceSpecification) :ServiceDescription[]
Figure 126 : Discover Service based on Service Specification.
Interaction Diagram: Subscribe to Discovery
For subscribing to asynchronously receive notifications about the current
service descriptions of services fitting a given service specification, an IoT
Service Client synchronously calls the IoT Service Resolution, using the
subscribeServiceDiscovery operation with the service specification of the
service and the notification callback, to which notifications are to be sent, as