This wiki is locked. Future workgroup activity and specification development must take place at our new wiki. For more information, see this blog post about the new governance model and this post about changes to the website.

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.

Topic revision: r15 - 10 Aug 2009 - 14:15:51 - TWikiAdminUser
Main.OslcServiceProviderCatalogV1 moved from Main.OslcServiceProviderCatalog on 28 May 2009 - 14:16 by ScottBosworth - put it back
 
This site is powered by the TWiki collaboration platform Copyright � by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Contributions are governed by our Terms of Use
Ideas, requests, problems regarding this site? Send feedback