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.

Architecture Management Service Description

Introduction

This document describes how clients can discover services that the service provider offers. This specification leverages the common OSLC specification for service description. This document defines the structure of the catalog of of services. A service provider catalog contains references to a number of services, often organized by project and hosted on the service provider (but not necessarily). The oslc:serviceProvider URL returns a service document that includes the factory, query and selection service URLs.

Service Catalog Discovery

Starting with a single entry point to a service provider {base-url}, clients will discover the (typically hierarchical) arrangement of contexts (which may be development projects) 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 group of collections (Service Provider Catalogs) until identifying a context of interest, where the client will find the Service Description Document.

The number of iterations over the configuration choices should be set by the client application. Typical configurations should not need more than 2 levels of configuration context, so a limit of 5 is recommended.

XML namespace abbreviations used in this resource document:

  • rdf - RDF XML namespace - http://www.w3.org/1999/02/22-rdf-syntax-ns#
  • dcterms - The Dublin Core Metadata Terms namespace - http://purl.org/dc/terms/
  • oslc - The Open Services for Lifecycle Collaboration core namespace - http://open-services.net/ns/core#

Example

A Service Provider Catalog Resource located at http://example.com/am-provider. The document lists 2 service providers.

<?xml version="1.0"?>
<rdf:RDF 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dcterms="http://purl.org/dc/terms" 
   xmlns:oslc="http://open-services.net/ns/core#"
   xml:lang="en">

   <oslc:ServiceProviderCatalog rdf:about="http://example.com/am-provider">

      <dcterms:title>Architecture Management Service Provider Catalog</dcterms:title>

      <dcterms:publisher>
         <oslc:Publisher>
            <dcterms:title>Acme AM Providers</dcterms:title>
            <oslc:label>Acme</oslc:label>
            <dcterms:identifier>com.acme.oslc.am</dcterms:identifier>
            <oslc:icon rdf:resource="http://example.com/icons/acme.png" />
         </oslc:Publisher>
      </dcterms:publisher>

      <oslc:domain rdf:resource="http://open-services.net/ns/am#" />

      <oslc:oauthConfiguration>
         <oslc:OAuthConfiguration>
            <oslc:oauthRequestTokenURI
               rdf:resource="http://example.com/am-provider/request-token" />
            <oslc:authorizationURI
               rdf:resource="http://example.com/am-provider/authorization" />
            <oslc:oauthAccessTokenURI
               rdf:resource="http://example.com/am-provider/accessToken" />
         </oslc:OAuthConfiguration>
      </oslc:oauthConfiguration>

      <oslc:ServiceProvider rdf:resource="http://example.com/am-provider/Project+X" />
      <oslc:ServiceProvider rdf:resource="http://example.com/am-provider/Project+Y" />

      <oslc:ServiceProviderCatalog rdf:resource="http://example.com/am-provider/Project+Y/subproject1" />

   </oslc:ServiceProviderCatalog>

</rdf:RDF>

Service Description Resource

A Service Description Resource is an informational resource describing a the contextual configuration needs of a service provider. It provides configuration definitions needed by consumers of an AM service provider.

XML namespace abbreviations used in this resource document:

  • rdf - RDF XML namespace - http://www.w3.org/1999/02/22-rdf-syntax-ns#
  • dcterms - The Dublin Core Metadata Terms namespace - http://purl.org/dc/terms/
  • oslc - The Open Services for Lifecycle Collaboration Core namespace - http://open-services.net/ns/core#

The Service Descriptor element provides human readable information about the context for which the services are for. A human readable label for the context that these services are for is specified in the text content of a child dcterms:title element. A longer description is specified in the optional text content of a child dcterms:description element.

In oslc:Dialog elements, the two optional child elements; oslc:hintWidth and oslc:hintHeight specify the suggested size of the dialog or frame to render the HTML content in. Expected for the size values are defined by CSS length units.

Example

In this example the service description is for a context called "Project X". The services provided are a Resource Picker a Resource Creator, a Resource Factory for OSLC formats a Resource Factory for non-OSLC formats and finally a QueryService.

<rdf:RDF 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dcterms="http://purl.org/dc/terms" 
   xmlns:oslc="http://open-services.net/ns/core#"
   xml:lang="en">

   <oslc:ServiceProvider rdf:about="http://example.com/am-provider/Project+X">

      <dcterms:title>Project X AM Provider</dcterms:title>
      <dcterms:description>Example AM Provider for Project X</dcterms:description>

      <dcterms:publisher>
         <oslc:Publisher>
            <dcterms:title>Acme AM Providers - Project X</dcterms:title>
            <oslc:label>Acme - Project X</oslc:label>
            <dcterms:identifier>com.acme.oslc.am.project-x</dcterms:identifier>
            <oslc:icon rdf:resource="http://example.com/icons/icon1.png" />
         </oslc:Publisher>
      </dcterms:publisher>

      <oslc:prefixDefinition>
         <oslc:PrefixDefinition>
            <oslc:prefix>rdf</oslc:prefix>
            <oslc:prefixBase>http://www.w3.org/1999/02/22-rdf-syntax-ns#</oslc:prefixBase>
         </oslc:PrefixDefinition>
      </oslc:prefixDefinition>

      <oslc:prefixDefinition>
         <oslc:PrefixDefinition>
            <oslc:prefix>dcterms</oslc:prefix>
            <oslc:prefixBase>http://purl.org/dc/terms</oslc:prefixBase>
         </oslc:PrefixDefinition>
      </oslc:prefixDefinition>

      <oslc:prefixDefinition>
         <oslc:PrefixDefinition>
            <oslc:prefix>oslc</oslc:prefix>
            <oslc:prefixBase>http://open-services.net/ns/core#</oslc:prefixBase>
         </oslc:PrefixDefinition>
      </oslc:prefixDefinition>

      <oslc:prefixDefinition>
         <oslc:PrefixDefinition>
            <oslc:prefix>foaf</oslc:prefix>
            <oslc:prefixBase>http://http://xmlns.com/foaf/0.1/</oslc:prefixBase>
         </oslc:PrefixDefinition>
      </oslc:prefixDefinition>

      <oslc:service>
         <oslc:Service>
            <oslc:domain>http://open-services.net/ns/am#</oslc:domain>

            <oslc:creationFactory>
               <oslc:CreationFactory>
                  <dcterms:title>Creation Factory for OSLC AM Resources</dcterms:title>
                  <oslc:label>OSLC AM Resource Creation Factory</oslc:label>
                  <oslc:creation
                     rdf:resource="http://example.com/am-provider/Project+X/oslc-factory" />
                  <oslc:resourceShape
                     rdf:resource="http://example.com/am-provider/shapes/am/resource" />
                  <oslc:resourceType>http://open-services.net/ns/am#resource</oslc:resourceType>
                  <oslc:usage>http://open-services.net/ns/core#default</oslc:usage>
               </oslc:CreationFactory>
            </oslc:creationFactory>

            <oslc:creationFactory>
               <oslc:CreationFactory>
                  <dcterms:title>Creation Factory for AM Resources
                  </dcterms:title>
                  <oslc:label>AM Resource Creation Factory</oslc:label>
                  <oslc:creation rdf:resource="http://example.com/am-provider/Project+X/factory" />
                  <oslc:resourceShape
                     rdf:resource="http://example.com/am-provider/shapes/am/resource" />
                  <oslc:resourceType>http://open-services.net/ns/am#resource</oslc:resourceType>
                  <oslc:usage>http://open-services.net/ns/core#default</oslc:usage>
               </oslc:CreationFactory>
            </oslc:creationFactory>

            <oslc:queryCapability>
               <oslc:QueryCapability>
                  <dcterms:title>OSLC AM Resource Query Service</dcterms:title>
                  <oslc:label>AM Query Service</oslc:label>
                  <oslc:queryBase rdf:resource="http://example.com/am-provider/Project+X/query" />
                  <oslc:resourceShape rdf:resource="http://example.com/am#resource" />
               </oslc:QueryCapability>
            </oslc:queryCapability>

            <oslc:selectionDialog>
               <oslc:Dialog>
                  <dcterms:title>OSLC AM Resource Selector</dcterms:title>
                  <oslc:label>AM Picker</oslc:label>
                  <oslc:dialog
                     rdf:resource="https://example.com/am-provider/resourcePicker?projectId=Project%20X" />
                  <oslc:hintWidth>400px</oslc:hintWidth>
                  <oslc:hintHeight>500px</oslc:hintHeight>
                  <oslc:resourceType rdf:resource="http://open-services.net/ns/am#resource" />
                  <oslc:usage>http://open-services.net/ns/core#default</oslc:usage>
               </oslc:Dialog>
            </oslc:selectionDialog>

            <oslc:creationDialog>
               <oslc:Dialog>
                  <dcterms:title>OSLC AM Resource Creation UI</dcterms:title>
                  <oslc:label>AM Creator</oslc:label>
                  <oslc:dialog
                     rdf:resource="https://example.com/am-provider/resourceCreator?projectId=Project%20X" />
                  <oslc:hintWidth>400px</oslc:hintWidth>
                  <oslc:hintHeight>500px</oslc:hintHeight>
                  <oslc:resourceType rdf:resource="http://open-services.net/ns/am#resource" />
                  <oslc:usage>http://open-services.net/ns/core#default</oslc:usage>
               </oslc:Dialog>
            </oslc:creationDialog>

         </oslc:Service>
      </oslc:service>

   </oslc:ServiceProvider>
</rdf:RDF>
 

Providers of this Service Description Document MAY provide additional properties in a non-OSLC namespace.

Topic revision: r15 - 14 Jul 2010 - 15:33:34 - JimConallen
 
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