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.