Service Provider Catalog
1.0 SPECIFICATION
Purpose
This specification, defined as part of the
OSLC-CM 1.0 effort, describes OSLC service provider catalogs. These catalogs are used in the discovery of OSLC service providers, to simplify the configuration of tools that will integrate with providers of OSLC-defined services.
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 Provider Catalog Resource
- An informational resource describing a browsable collection of service providers.
- Service Provider Catalog Document
- The representation of a Service Provider Catalog Resource. A RDF/XML-based document containing entries for service providers and subcatalogs thereof.
- (domain-specific) Services Resource
- An informational resource describing a set of domain-specific services.
- (domain-specific) Services Document
- The representation of a domain-specific Services Resource.
- Change Management Services Resource
- An informational resource describing a set of change management-specific services.
- Change Management Services Document
- The representation of a Change Management Services Resource.
Service Provider Catalog Resources
A Service Provider Catalog Resource is an informational resource describing a browsable collection of service providers.
The GET method on a Service Provider Catalog Resource retrieves a Service Provider Catalog Document. This specification only covers retrieving a Service Provider Catalog Resource with GET. The behavior of POST, PUT, and DELETE methods on Service Provider Catalog Resources are not covered in this specification.
Service Provider Catalog Documents
A Service Provider Catalog Document describes a catalog whose entries describe service providers or out-of-line subcatalogs.
The media type of a Service Provider Catalog Document is REQUIRED to be
application/x-oslc-disc-service-provider-catalog+xml
.
XML namespace abbreviations used in this specification:
-
rdf
- RDF XML namespace - http://www.w3.org/1999/02/22-rdf-syntax-ns#
-
dc
- Dublin Core Metadata Initiative (DCMI) properties namespace URI - http://purl.org/dc/terms/
-
oslc_disc
- OSLC Discovery XML namespace - http://open-services.net/xmlns/discovery/1.0/
A Service Provider Catalog Document is an RDF/XML document with this schematic format:
<?xml version="1.0"?>
<oslc_disc:ServiceProviderCatalog
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/terms/"
xmlns:oslc_disc="http://open-services.net/xmlns/discovery/1.0/"
rdf:about="{self}">
<dc:title>{catalog title}</dc:title>
<oslc_disc:details rdf:resource="{catalog details uri}" />
<oslc_disc:entry>
<oslc_disc:ServiceProvider>
<dc:title>{advisory service provider title}</dc:title>
<oslc_disc:details rdf:resource="{service provider details uri}" />
<oslc_disc:services rdf:resource="{services resource uri}" />
</oslc_disc:ServiceProvider>
</oslc_disc:entry>
...
<oslc_disc:entry>
<oslc_disc:ServiceProviderCatalog rdf:about="{subcatalog uri}" >
<dc:title>{advisory subcatalog title}</dc:title>
</oslc_disc:ServiceProviderCatalog>
</oslc_disc:entry>
...
</oslc_disc:ServiceProviderCatalog>
The
oslc_disc:entry
elements describe either a single service provider (
oslc_disc:ServiceProvider
element) or an out-of-line subcatalog (
oslc_disc:ServiceProviderCatalog
element).
Although the document is RDF/XML, it is in a very restricted form designed to be used by RDF-unaware clients.
Constraints on Service Provider Catalog Documents:
- The root element MUST be
oslc_disc:ServiceProviderCatalog
.
-
oslc_disc:ServiceProviderCatalog
element:
- MUST have a
rdf:about
attribute giving the URI of the catalog. The value of the root element MUST be a self link (i.e., reference the Service Provider Catalog Resource itself, either through an absolute or a relative URI reference). For non-root elements, this is the URI of the subcatalog.
- MUST have a
dc:title
child element. For the root element, this is the displayable title of the catalog. For non-root elements, this is an advisory title of the subcatalog; it does not override a dc:title element of the referenced Service Provider Catalog Resource.
- MAY have an
oslc_disc:details
child element.
- MAY have any number of
oslc_disc:entry
child elements, including none. An inner element MUST have none (i.e., the subcatalog is described out-of-line).
- The order of
oslc_disc:entry
child elements is not significant.
- MAY have additional child elements not specified here.
-
oslc_disc:ServiceProvider
element describes a single service provider:
- MUST have a
dc:title
child element giving a displayable title of the service provider.
- MUST have a
oslc_disc:services
child element.
- MAY have a
oslc_disc:details
child element.
- MAY have additional child elements not specified here.
-
oslc_disc:entry
element:
- MUST have a single child element that is either an
oslc_disc:ServiceProvider
or an oslc_disc:ServiceProviderCatalog
element.
- MAY have additional child elements not specified here.
-
dc:title
element:
- MUST have content.
- MUST NOT have child elements.
- MAY have an
xml:lang
attribute giving the language of the content.
-
oslc_disc:services
element:
- MUST have a
rdf:resource
attribute giving the URI of a domain-specific Services Resource (e.g., a Change Management Services Resource).
-
oslc_disc:details
element:
- MUST have a
rdf:resource
attribute giving the URI of a browsable resource providing details of the service provider or catalog.
- All elements MAY have additional atttributes not specified here.
Clients MUST quietly ignore unknown elements and attributes that they encounter in a Service Provider Catalog Document.
Example
Example 1: A Service Provider Catalog Resource located at
http://rtc1.example.com/jazz/workitems/ChangeManagementCatalog.xml
. The document lists 2 service providers.
<?xml version="1.0"?>
<oslc_disc:ServiceProviderCatalog
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/terms/"
xmlns:oslc_disc="http://open-services.net/xmlns/discovery/1.0/"
rdf:about="http://rtc1.example.com/jazz/workitems/ChangeManagementCatalog.xml" >
<dc:title>Change management service provider catalog</dc:title>
<oslc_disc:entry>
<oslc_disc:ServiceProvider>
<dc:title>Project X</dc:title>
<oslc_disc:details rdf:resource="http://rtc1.example.com/jazz/process/project-areas/_CGwYgAnrEd6_yLxvteIpZw" />
<oslc_disc:services
rdf:resource="http://rtc1.example.com/jazz/workitems/contexts/6ads5ad4a7ds47ad7s/services.xml" />
</oslc_disc:ServiceProvider>
</oslc_disc:entry>
<oslc_disc:entry>
<oslc_disc:ServiceProvider>
<dc:title>Project Y</dc:title>
<oslc_disc:details rdf:resource="http://rtc1.example.com/jazz/process/project-areas/_PVCFEAnrEd6_yLxvteIpZw" />
<oslc_disc:services
rdf:resource="http://rtc1.example.com/jazz/workitems/contexts/dsr4ae4desad47saed/services.xml" />
</oslc_disc:ServiceProvider>
</oslc_disc:entry>
</oslc_disc:ServiceProviderCatalog>
Example 2: A Service Provider Catalog Resource located at
http://cq1.example.com/catalog
. The document lists 1 service provider, and 1 subcatalog located at
http://cq1.example.com/other-catalog
.
<?xml version="1.0"?>
<oslc_disc:ServiceProviderCatalog
xmlns:oslc_disc="http://open-services.net/xmlns/discovery/1.0/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/terms/"
rdf:about="http://cq1.example.com/catalog" >
<dc:title>Change management service provider catalog</dc:title>
<oslc_disc:entry>
<oslc_disc:ServiceProvider>
<dc:title>CQ Service for repo1</dc:title>
<oslc_disc:details rdf:resource="http://cq1.example.com/browse?repo=repo1" />
<oslc_disc:services rdf:resource="http://cq1.example.com/repos/repo1" />
</oslc_disc:ServiceProvider>
</oslc_disc:entry>
<oslc_disc:entry>
<oslc_disc:ServiceProviderCatalog rdf:resource="http://cq1.example.com/other-catalog">
<dc:title>Others</dc:title>
</oslc_disc:ServiceProviderCatalog>
</oslc_disc:entry>
</oslc_disc:ServiceProviderCatalog>
Security
Access to a Service Provider Catalog Resource MAY be restricted.