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.

OSLC Service Discovery and Resource Definition DRAFT

NOTE: This is a work in progress

Overview

This intent of this specification is to identify how OSLC services are defined and can be discovered. It also will address the ability to locate a service resource, from any OSLC resource.

This will replace the Service Resources definition in the OSLC Core Spec DRAFT

Scenarios Supported

  • Consumer has a single URL that describes enough configuration information to utilize a domain's services such as:
    • query
    • resource shapes
    • factories
    • delegated UIs
    • vendor info
    • authentication method
    • OSLC specs supported
  • Service provider has multiple levels of contexts in which discovery needs to occur. A tool has a concept of products that contain projects, which is the final configuration end-point for services.
  • A single service provider supports multiple OSLC domain specifications: Reporting and CM

Service Discovery Process

TBD

Service Context

Every OSLC Resource SHOULD have a reference to an resource that provides needed context. Often this will be a resource that references it's Service Resource definition.

  • Properties:
    • oslc:context (String, only-one) - brief title of the service.

Service Resources

OSLC services are available via a Service Resource which specifies the other resources that a client needs to interact with the service.

Conceptual Models

Service Definition

A Service Provider Resource describes the resource's that enable a client to interact with an OSLC Service Provider.

  • QName: oslc:ServiceProvider
  • Type URI: http://open-services.net/xmlns/oslc#ServiceProvider
  • Properties:
    • creationResource (URI, zero-or-many) - a Service MAY have one or more creation resources.
    • queryResource (URI, zero-or-many) - a Service MAY have one or more query resources.
    • resourceShapeResource (URI, zero-or-many) - a Service MAY have one or more Resource Shape Resources.
    • A Service Resource MAY provide other property values.

Provider Definition

  • QName: oslc:ProviderInfo
  • Type URI: http://open-services.net/xmlns/oslc#ProviderInfo
  • Properties:
    • dc:title (String, only-one) - brief title of the service.
    • dc:description (String, only-one) - a detailed description of the provider
    • dc:contributor (In-line, zero-or-one)
      • dc:title (String, only-one) - title string that could be used for display
      • dc:identifier (String, only-one) -This can be of any form but recommend to either be of URN com.{company name}.{product identifier} or URL forms. This property is to be used by a client application to identify the provider of this service.
      • oslc:icon (URL, only-one) - URL to an icon file that represents the provider. This icon should be a favicon format and 16x16 pixels in size
    • TBD
    • A ProviderInfo? Resource MAY provide other property values.

Domain Definition

TBD How to define domain specific information

Service Provider Catalog

TBD Include in OslcServiceProviderCatalogV1

Delegated Service Picker

Since this function could easily be abstracted by a service provider, it would be possible to delegate the presentation of a Web UI to allow for service discovery.

Samples

Service Discovery

<?xml version="1.0" encoding="UTF-8"?>
<oslc:Service xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/terms/" xmlns:oslc="http://open-services.net/xmlns/1.0/"
   xmlns:oslc_cm="http://open-services.net/xmlns/cm/1.0/" rdf:about="http://example.com/bugs/service-descriptor.xml">

   <dc:title>Project X</dc:title>
   <dc:description>My Product Name's OSLC CM Service Description for
      Project X.</dc:description>
   <dc:contributor>
      <oslc:Contributor>
         <dc:title>My Company Name, My CM Product</dc:title>
         <dc:identifier>com.mycompany.myproduct</dc:identifier>
         <oslc:icon rdf_resource="http://example.com/icons/myprod.ico" />
      </oslc:Contributor>
   </dc:contributor>

   <oslc_cm:changeRequests>
      <oslc_cm:ChangeRequests>
         <oslc:version>2.0</oslc:version>

         <!-- Resource creation factory URL -->
         <oslc:factory>
            <oslc:Factory>
               <oslc:default>true</oslc:default>
               <dc:title>Location for creation of bugs</dc:title>
               <oslc:service>http://example.com/bugs</oslc:service>
               <oslc:shape rdf:resource="http://example.com/bugs/schema" />
            </oslc:Factory>
         </oslc:factory>

         <!-- Alternate resource creation factory URL -->
         <oslc:factory>
            <oslc:Factory>
               <dc:title>Location for creation of *HIGH PRIORITY* bugs</dc:title>
               <oslc:service>./bug?priority=High</oslc:service>
               <oslc:shape rdf:resource="http://example.com/bugs/schema?priority=High" />
            </oslc:Factory>
         </oslc:factory>

         <!-- Simple GET-based URL-encoded query -->
         <oslc:query>
            <oslc:Query>
               <dc:title>Simple GET-based Bug Query</dc:title>
               <oslc:service>http://example.com/bugs</oslc:service>
               <oslc:shape rdf:resource="http://example.com/bugs/schema" />
            </oslc:Query>
         </oslc:query>

         <!-- Resource Selection Dialog -->
         <oslc:selectionDialog>
            <oslc:Dialog> <!-- TODO: Might be better called <oslc:Widget> -->
               <oslc:hintWidth>740px</oslc:hintWidth>
               <oslc:hintHeight>480px</oslc:hintHeight>
               <dc:title>Web Dialog for finding and selecting bugs.</dc:title>
               <oslc:service>http://example.com/bugs/ui/resourcePicker</oslc:service>
            </oslc:Dialog>
         </oslc:selectionDialog>

         <!-- Resource Creation Dialog -->
         <oslc:creationDialog>
            <oslc:Dialog>
               <oslc:hintWidth>600px</oslc:hintWidth>
               <oslc:hintHeight>320px</oslc:hintHeight>
               <dc:title>Bug Submit Dialog for creating bugs.</dc:title>
               <oslc:label>Bug</oslc:label>
               <oslc:service>http://example.com/bugs/ui/submitDialog</oslc:service>
            </oslc:Dialog>
         </oslc:creationDialog>
      </oslc_cm:ChangeRequests>
   </oslc_cm:changeRequests>

</oslc:Service>

References

  • OslcServiceProviderCatalogV1?
  • CmServiceDescriptionV1?
  • RmServiceDescriptionV1?

Design Assumptions

  • A single "service descriptor" can contain multiple domains
  • A "service descriptor" can contain references to nested or other descriptors
Edit | Attach | Print version | History: r7 < r6 < r5 < r4 < r3 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r4 - 23 Mar 2010 - 01:46:44 - SteveSpeicher
 
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