NOTE: This is a work in progress
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
TBD
oslc:context
(String, only-one) - brief title of the service.
OSLC services are available via a Service Resource which specifies the other resources that a client needs to interact with the service.
This is the Service Provider Resource.
ServiceProvider
oslc
http://open-services.net/xmlns/oslc-core#
http://open-services.net/xmlns/oslc-core#ServiceProvider
dc:title
(String, at-most-one) -
dc:description
(String, at-most-one)) -
dc:contributor
(Node of type oslc:Contributor
, at-most-one)
oslc:context
(anyURI, at-most-one)
This is the Service Resource.
Service
oslc
http://open-services.net/xmlns/oslc-core#
http://open-services.net/xmlns/oslc-core#Service
oslc:version
(String, at-most-one) - NOTE: perhaps this should be a URI
factory
(Node of type oslc:Factory
, zero-or-many) - a Service MAY have one or more creation capabilities.
query
(Node of type oslc:Query
, zero-or-many) - a Service MAY have one or more query capabilities.
selectionDialog
(Node of type oslc:Dialog
, zero-or-many) -
creationDialog
(Node of type oslc:Dialog
, zero-or-many) -
Contributor
oslc
http://open-services.net/xmlns/oslc-core#
http://open-services.net/xmlns/oslc#Contributor
dc:title
(String, only-one) - title string that could be used for display * oslc:label
(String, at-most-one) - very short label for use in menu items * 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 * A Contributor Resource MAY provide other property values.
Factory
oslc
http://open-services.net/xmlns/oslc-core#
http://open-services.net/xmlns/oslc#Factory
dc:title
(String, only-one) - title string that could be used for display * oslc:label
(String, at-most-one) - very short label for use in menu items * oslc:service
(anyURI, only-one) - the URI of the factory service. * oslc:shape
(Link, at-most-one) - a Factory Capability MAY provide Resource Shapes that describe the resources that can be created by the capability.
Query
oslc
http://open-services.net/xmlns/oslc-core#
http://open-services.net/xmlns/oslc#Query
dc:title
(String, only-one) - title string that could be used for display * oslc:label
(String, at-most-one) - very short label for use in menu items * oslc:service
(anyURI, only-one) - the URI of the query service. * oslc:shape
(Link, at-most-one) - a Query Capability MAY provide Resource Shapes that describe the resources that can be created by the capability.
Dialog
oslc
http://open-services.net/xmlns/oslc-core#
http://open-services.net/xmlns/oslc#Dialog
dc:title
(String, only-one) - title string that could be used for dialog title * oslc:label
(String, at-most-one) - very short label for use in menu items * oslc:service
(anyURI, only-one) - the URI of the dialog * oslc:hintWidth
(String, at-most-one) - valid values for these attributes is defined by the CSS 2 width and height attributes. * oslc:hintHeight
(String, at-most-one) - valid values for these attributes is defined by the CSS 2 width and height attributes. * There MAY be other property values.
TBD How to define domain specific information
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.
TBD Include in OslcServiceProviderCatalogV1
<?xml version="1.0" encoding="UTF-8"?> <oslc:ServiceProvider 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/2.0/" xmlns:oslc_re="http://open-services.net/xmlns/reporting/2.0/" rdf:about="http://example.com/bugs/service-descriptor.xml" xml:lang="en"> <dc:title>Project X</dc:title> <dc:description>My Product Name's OSLC CM and Reporting Service Description for Project X.</dc:description> <dc:contributor> <oslc:Contributor> <dc:title>My Company Name, My ALM 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:context rdf:resource="http://example.com/catalog" /> <oslc_cm:changeRequests> <oslc:Service> <oslc:version>2.0</oslc:version> <oslc:factory> <oslc:Factory> <oslc:default>true</oslc:default> <dc:title>Location for creation of bugs</dc:title> <oslc:label>Bugs</oslc:label> <oslc:service>http://example.com/bugs</oslc:service> <oslc:shape rdf:resource="http://example.com/bugs/schema" /> </oslc:Factory> </oslc:factory> <oslc:factory> <oslc:Factory> <dc:title>Location for creation of *HIGH PRIORITY* bugs</dc:title> <oslc:label>Bugs(High)</oslc:label> <oslc:service>./bug?priority=High</oslc:service> <oslc:shape rdf:resource="http://example.com/bugs/schema?priority=High" /> </oslc:Factory> </oslc:factory> <oslc:query> <oslc:Query> <dc:title>Simple GET-based Bug Query</dc:title> <oslc:label>Bugs</oslc:label> <oslc:service>http://example.com/bugs</oslc:service> <oslc:shape rdf:resource="http://example.com/bugs/schema" /> </oslc:Query> </oslc:query> <oslc:selectionDialog> <oslc:Dialog> <dc:title>Web Dialog for finding and selecting bugs.</dc:title> <oslc:label>Bugs</oslc:label> <oslc:service>http://example.com/bugs/ui/resourcePicker</oslc:service> <oslc:hintWidth>740px</oslc:hintWidth> <oslc:hintHeight>480px</oslc:hintHeight> </oslc:Dialog> </oslc:selectionDialog> <oslc:creationDialog> <oslc:Dialog> <dc:title>Bug Submit Dialog for creating bugs.</dc:title> <oslc:label>Bugs</oslc:label> <oslc:service>http://example.com/bugs/ui/submitDialog</oslc:service> <oslc:hintWidth>600px</oslc:hintWidth> <oslc:hintHeight>320px</oslc:hintHeight> </oslc:Dialog> </oslc:creationDialog> </oslc:Service> </oslc_cm:changeRequests> <oslc_re:reporting> <oslc:Service> <oslc:version>2.0</oslc:version> <oslc:query> <oslc:Query> <dc:title>Simple GET-based Bug Query</dc:title> <oslc:label>Bugs</oslc:label> <oslc:service>http://example.com/bugs</oslc:service> <oslc:shape rdf:resource="http://example.com/bugs/schema" /> </oslc:Query> </oslc:query> </oslc:Service> </oslc_re:reporting> </oslc:ServiceProvider>