Reporting Service Discovery
SPECIFICATION v1.0 DRAFT
Introduction
Clients with a need to interact with a Reporting provider need a mechanism for discovering the capabilities of that provider, and the URIs used to access those capabilities. There are several aspects to the discovery process. First, clients may need to discover the existence of the Reporting provider itself. On discovering that, clients will want to discover the
contexts in which reporting may be provided (e.g., many systems have an organisational units such as "projects"). On identifying a context, the clients need to discover the services that are provided within that context. This portion of the OSLC Reporting specification addresses the latter two of these scenarios, the discovery of the Reporting provider itself is outwith the scope of this revision of the specification. Therefore, this specification describes how an OSLC Reporting provider will expose context and service discovery, in terms of the required resource formats and namespaces.
Notation and Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in
RFC2119. Domain name examples use
RFC2606.
Terminology
Service Description Resource - an informational resource describing the capabilities and contextual configuration needed for a set of Reporting specific services.
Service Description Document - the representation of a Reporting Services Description Resource.
Service Provider - an implementation of the OSLC Reporting specification. OSLC Reporting clients consume these services.
Service Discovery
Starting with an entry point URI to a service provider, {base-url}, clients will discover the (typically hierarchical) arrangement of contexts managed by the application. To support the wide range of application and project configurations, OSLC is not specifying a predetermined arrangement of these contexts. Instead, clients will be able to iterate through a number of Service Provider Catalogs until the client identifies a context of interest, where the client will find a Reporting Service Description Resource.
The discovery model flow is as follows:
- Request information from an OSLC Reporting based service provider.
- If Response is a Service Provider Catalog:
- An entry is selected from the Service Provider Catalog
- With this entry's URI, goto to step #1
- If the response is a Service Description Document then continue to next step.
- Configuration has completed
The number of iterations over the configuration choices should be set by the client application, and/or the user of that client application.
Termination of the Reporting service discovery occurs when a the client application receives an HTTP response with a Content-Type of
application/x-oslc-reporting-service-description-1.0+xml
and the service description document as the response's content body.
Service Description Resource
A Service Description Resource is an informational resource describing the contextual configuration needs of a service provider.
The GET method on a Service Description Resource MUST retrieve a Service Description Document. This specification only covers retrieving a Service Description Resource with GET. The behavior of POST, PUT, and DELETE methods on Service Description Resources are left Undefined in this specification.
Service Description Document
The Service Description Document provides configuration definitions needed by consumers of a service provider.
The Service Description Document MUST be identified using the media type of
application/x-oslc-reporting-service-description-1.0+xml
.
XML namespace abbreviations used in this specification:
Service Descriptor resource
A resource of rdf:type "oslc_sd:ServiceDescriptor". Has properties whose meaning is defined by the following table:
Property |
Required |
Description |
oslc_report:schemaEnquiry |
No |
The oslc_report:Query resource for the investigation of reportable schemas. |
oslc_report:queryEvaluation |
Yes |
The oslc_report:Query resource for the evaluation of reporting queries. |
Query Resource
Query resources have rdf:type "oslc_report:Query". Such resources have properties whose meaning is described by the following table:
Property |
Required |
Description |
dc:title |
Yes |
Title of the query service. |
oslc_report:query |
Yes |
The URI of the query service. |
Example (RDF/XML)
<?xml version="1.0" encoding="UTF-8"?>
<oslc_sd:ServiceDescriptor
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/terms/"
xmlns:oslc_sd="http://open-services.net/xmlns/commons/servicedescription/1.0/"
xmlns:oslc_report="http://open-services.net/xmlns/reporting/1.0/"
rdf:about="http://example.com/services/rm-service-descriptor.xml">
<dc:title xml:lang="en-GB">Braking System SRS</dc:title>
<dc:description xml:lang="en-GB">DOORS OSLC RM 1.0 provider for Braking System SRS</dc:description>
<dc:contributor>
<oslc_sd:Contributor>
<dc:title>IBM Rational DOORS</dc:title>
<dc:identifier>com.ibm.rdm.doors</dc:identifier>
<oslc_sd:icon rdf:resource="https://doors.example.com/resources/doorsicon.ico"/>
<oslc_sd:home>
<oslc_sd:Home>
<dc:title>IBM Rational DOORS</dc:title>
<oslc_sd:application rdf:resource="doors://doors.example.com/invokedoors"/>
</oslc_sd:Home>
</oslc_sd:home>
</oslc_sd:Contributor>
</dc:contributor>
<oslc_report:schemaEnquiry>
<oslc_report:Query>
<dc:title>Service to explore schema of reporting context.</dc:title>
<oslc_report:query rdf:resource="https://www.example.com/webapp/requirementsSchemaExplorer?SRS%20Braking"/>
</oslc_report:Query>
</oslc_report:schemaEnquiry>
<oslc_report:queryEvaluation >
<oslc_report:Query>
<dc:title>Service to evaluate query within reporting context.</dc:title>
<oslc_report:query rdf:resource="https://www.example.com/webapp/requirementsQueryEvaluator?SRS%20Braking"/>
</oslc_report:Query>
</oslc_report:queryEvaluation >
</oslc_sd:ServiceDescriptor>
References