This specification defines the OSLC Asset Management domain, a RESTful web services interface for the management of domain specifica and supporting resources defined in the OSLC Core specification. To support these scenarios, this specification defines a set of HTTP-based RESTful interfaces in terms of HTTP methods: GET, POST, PUT and DELETE, HTTP response codes, content type handling and resource formats.
This section is non-normative.
Asset management systems allow enterprises to catalog, govern, manage, search for, and maintain assets. An asset is anything tangible or intangible that provides value through reference or reuse across a wide audience over an extended period of time. Assets typically have a lifecycle and require a formal process to govern both modification and access. Cataloging assets with standardized taxonomies controls usage and discovery by end users. Assets may also have relationships to and dependencies on other assets.
The term asset in this specification generally refers to either software, documentation, or representations of equipment. While other definitions of an asset may be appropriate, financial instruments are not considered an asset in this specification.
Example software assets may include but are not limited to the final binary output from a software development process, libraries such as a Java archive (JAR) or dynamic-link library (DLL), and installable packages that are distributed through digital distribution platforms such as a repository or app store. Documentation assets may include presentation materials, reports, specifications, blue prints, and instructions. Assets may also represent any type of equipment or structure such as computer hardware, automobiles, pumps, buildings, etc.
Assets are described by a set of properties and zero or more artifacts. An artifact is a file of any type and a set of properties that describe the file.
This specification builds on the Open Services for Lifecycle Collaboration (OSLC) Core v2.0 Specification to define the resources, properties and operations supported by an OSLC Asset Management (OSLC-Asset) provider. Asset Management resources include Assets, Artifacts and supporting resources defined in the OSLC Core specification. The properties defined describe these resources and the relationships between resources. Operations are defined in terms of HTTP methods and MIME type handling. The resources, properties and operations defined do not form a comprehensive interface to Asset Management, but instead target specific integration use cases documented by the OSLC-Asset workgroup.
This specification also defines how Assets and Artifacts are represented in OSLC Services. The [[!OSLCAssetResourceDefinition]] is a set of properties for an Asset, and includes properties that describe Artifacts of an Asset.
This version of the OSLC Asset specification is demonstrated in the [[!OSLCAssetSamples]].
This Committee Specification Public Review Draft is being developed under the RF on Limited Terms Mode of the OASIS IPR Policy, the mode chosen when the Technical Committee was established. For information on whether any patents have been disclosed that may be essential to implementing this specification, and any offers of patent licensing terms, please refer to the Intellectual Property Rights section of the TC’s web page ( https://www.oasis-open.org/committees/oslc-domains/ipr.php).
Asset Consumer - A tool or user that performs asset searching and retrieval activities outlined in the search and retrieve scenarios.
Asset Resource - An Asset Resource has a set of properties representing an asset. These properties include such things as name, description, classification, and the Artifact properties for an Asset.
Asset Query Resource - When filtering using simple query, the representation of a list of Asset Resources.
Asset Submitter - A tool or user that performs asset preparation activities outlined in the publish scenario.
Artifact - This term refers to the properties that describe an Asset Artifact and potentially the Artifact Media referenced by this Artifact. An Asset may have zero or more Artifacts.
Artifact Fragment - Fragment within an Asset Resource that describes an Artifact Media Resource. The term fragment is associated with an Artifact instead of resource because Artifacts are referenced by the Asset’s URL with a fragment identifier. Artifacts are considered to be contained within the asset and when the asset is deleted the artifact is also deleted. While two different Artifacts in separate Assets may reference to the same Artifact Media Resource, two different Assets may not contain the same Artifact.
Artifact Media Resource - The Artifact Media Resource represents the actual artifact content. The content can be a presentation, a test case, a binary software component, or any other kind of file.
Property - An attribute of a resource. Typically a property is a name/value pair that describes a certain aspect of the resource. For example, an asset has many properties such as the asset title, subject/short description, version.
Service Provider - An implementation of the OSLC Asset Management specification as a server. OSLC Asset Management clients consume these services.
Work product - This term is often used interchangeably with ‘artifact’ or ‘file’. An asset may have zero or more work products.
The following sub-sections define the mandatory and optional requirements for an OSLC Asset Management (OSLC Aseet) server.
This specification is based on [[!OSLCCore3]]. OSLC Asset Management servers MUST be compliant with both the core specification, MUST follow all the mandatory requirements in the normative sections of this specification, and SHOULD follow all the guidelines and recommendations in both these specifications.
An OSLC Asset Management server MUST implement the domain vocabulary defined in OSLC Asset Management Version 2.1. Part 2: Vocabulary
The following table summarizes the requirements from OSLC Core Specification as well as some additional requirements specific to the Asset domain. Note that this specification further restricts some of the requirements for OSLC Core Specification. See subsequent sections in this specification or the OSLC Core Specification to get further details on each of these requirements.
Number | Requirement | Level | Meaning |
---|---|---|---|
ASSET-1 | Unknown properties and content | MAY / MUST | OSLC services MAY ignore unknown content and OSLC clients MUST preserve unknown content |
ASSET-2 | Resource Operations | MUST | OSLC service MUST support resource operations via standard HTTP operations |
ASSET-3 | Resource Paging | MAY | OSLC services MAY provide paging for resources but only when specifically requested by client |
ASSET-4 | Partial Resource Representations | MAY / MUST | OSLC services MUST support request for a subset of a resource’s properties via the oslc.properties URL parameter retrieval via HTTP GET |
ASSET-5 | Partial Update | MAY | OSLC services MAY support partial update of resources using patch semantics and MAY support via HTTP PUT |
ASSET-6 | Discovery | MUST / MAY / SHOULD | OSLC servers MUST support OSLC Core 3.0 Discovery, MAY provide a ServiceProviderCatalog and SHOULD provide a ServiceProvider resource for Core v2 compatibility. |
ASSET-6 | Creation Factories | MUST | OSLC servers MUST provide LDPC creation factories to enable resource creation of Quality Management resources via HTTP POST |
ASSET-7 | Query Capabilities | SHOULD | OSLC servers SHOULD provide query capabilities to enable clients to query for resources |
ASSET-8 | Query Syntax | SHOULD / MAY | OSLC query capabilities SHOULD support the OSLC Core Query Syntax and MAY use other query syntax |
ASSET-9 | Delegated UI Dialogs | MUST / SHOULD | OSLC Services MUST offer delegated UI dialogs (creation and selections) specified via OSLC Core 3.0 Delegated Dialogs and SHOULD include discovery through a ServiceProvider resource for OSLC v2 compatibility |
ASSET-10 | UI Preview | SHOULD | OSLC Services SHOULD offer UI previews for resources that may be referenced by other resources specified via OSLC Core 3.0 Preview and SHOULD include discovery through a server resource for OSLC v2 compatibility |
ASSET-11 | HTTP Basic Authentication | MAY | OSLC Services MAY support Basic Auth and should do so only over HTTPS |
ASSET-12 | OAuth Authentication | SHOULD | OSLC Services SHOULD support OAuth and can indicate the required OAuth URLs via the ServiceProviderCatalog or ServiceProvider resources |
ASSET-13 | Error Responses | SHOULD | OSLC Services SHOULD provide error responses using OSLC Core 3.0 defined error formats |
ASSET-14 | Turtle Representations | MUST | OSLC services MUST provide a Turtle representation for HTTP GET requests and SHOULD support Turtle representations on POST and PUT requests. |
ASSET-15 | RDF/XML Representations | SHOULD | OSLC services SHOULD provide an RDF/XML representation for HTTP GET requests and SHOULD support RDF/XML representations on POST and PUT requests |
ASSET-16 | XML Representations | SHOULD | OSLC services SHOULD provide a XML representation for HTTP GET, POST and PUT requests that conform to the Core 2.0 Guidelines for XML. |
ASSET-17 | JSON Representations | MUST | OSLC services MUST provide JSON-LD representations for HTTP GET, POST and PUT requests that conform to the Core Guidelines for JSON-LD |
ASSET-18 | HTML Representations | SHOULD | OSLC services SHOULD provide HTML representations for HTTP GET requests |
See [[!OSLCCore2]] Specification Versioning section.
Service providers that support the resource formats and services in this specification MUST use HTTP response
header of OSLC-Core-Version
with a value of 2.0
and
OSLC-Asset-Version
with a value of 2.1
. Consumers MAY request formats and services
defined in this document by providing a HTTP request header of OSLC-Core-Version
with a value of
2.0
. See section below on Version Compatibility with OSLC Asset 1.0 Specifications.
In addition to the namespace URIs and namespace prefixes oslc
, rdf
,
dcterms
and foaf
defined in the [[!OSLCCore2]], OSLC Asset Management defines the
namespace URI of http://open-services.net/ns/asset# with a
namespace prefix of
oslc_asset
In addition to the requirements for [[!OSLCCore2]] Resource Formats section, this section outlines further refinements and restrictions.
For HTTP GET requests on all OSLC Asset Management and OSLC Core defined resource types,
For HTTP PUT/POST request formats for resource type of Asset:
For HTTP GET response formats for Query requests,
Asset Management Providers MUST provide RDF/XML representations, SHOULD provide JSON and Atom Syndication Format XML representations, and MAY provide XML representations.
When Asset Management Consumers request:
application/rdf+xml
Asset Management Providers MUST respond with RDF/XML representation without
restrictions.
application/json
Asset Management Providers SHOULD respond with JSON representation as defined
in the [[!OSLCCore2RepresentationGuidance]].
application/xml
Asset Management Provider MAY respond with OSLC-defined abbreviated XML
representation as defined in the [[!OSLCCore2RepresentationGuidance]]
application/atom+xml
Asset Management Provider SHOULD respond with Atom Syndication Format XML
representation as defined in the [[!OSLCCore2RepresentationGuidance]]
See Query Capabilities for additional information when Resource Shapes affect representation.
OSLC Core Guidance clearly points to RDF representations (and specifically RDF/XML) as a convention that all OSLC Provider implementations minimally provide and accept. OSLC Asset Provider implementations are strongly encouraged to adopt this convention. Future versions of this specification are expected to require RDF representations for all operations and relax requirements for specialized XML representations.
XML Representation - identified by the application/xml
content type. Format
representation rules are outlined in Core [[!OSLCCore2RepresentationGuidance]] Formats section
RDF/XML Representation - identified by the application/rdf+xml
content type.
No additional guidance is given. The OSLC Core describes an algorithm for generating consistent formats that
are used as examples only.
JSON Representation - identified by the application/json
content type. Format
representation rules are outlined in Core [[!OSLCCore2RepresentationGuidance]] Resource Formats section.
Atom Syndication Format XML Representation - identified by the
application/atom+xml
content type. Format representation rules are outlined in Core
[[!OSLCCore2RepresentationGuidance]] OSLC Core Resource Formats section.
See [[!OSLCCore2]] Authentication section. Asset Management puts no additional constraints on authentication.
See [[!OSLCCore2]] Error Responses section. Asset Management puts no additional constraints on error responses.
OSLC Asset service providers SHOULD support pagination of query results and MAY support pagination of a single resource’s properties as defined by the OSLC CoreSpecification.
A client MAY request a subset of a resource’s properties as well as properties from a referenced
resource. In order to support this behavior a service provider MUST support the
oslc.properties
and oslc.prefix
URL parameter on a HTTP GET request on individual
resource request or a collection of resources by query. If the oslc.properties
parameter is
omitted on the request, then all resource properties MUST be provided in the response.
A client MAY request that a subset of a resource’s properties be updated by identifying those
properties to be modified using the oslc.properties
URL parameter on a HTTP PUT request.
If the parameter oslc.properties
contains a valid resource property on the request that is not
provided in the content, the server MUST set the resource’s property to a null or empty value. If the
parameter oslc.properties
contains an invalid resource property, then a
409 Conflict
MUST be returned.
Asset relationships to other resources are represented as properties whose values are the URI of the object or
target resource. When an Asset relationship property is to be presented in a user interface, it may be helpful
to provide an informative and useful textual label for that relationship instance. (This in addition to the
relationship property URI and the object resource URI, which are also candidates for presentation to a user.)
To this end, OSLC providers MAY support a dcterms:title
link property in Asset resource
representations, using the anchor approach outlined in the OSLC Core Links Guidance. In addition to the
textual label, the Asset resource definition defines several properties that can be used to describe the
relationship from one Asset resource to another Asset resource.
RDF/XML and XML example using reified statement:
<rdf:RDF
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:oslc_asset="http://open-services.net/ns/asset#">
<oslc_asset:Asset rdf:about="http://example.com/assets/CDFE4153-9271-5CA6-425A-4CA6BE7BD7CA/1.0">
<dcterms:relation rdf:ID="relationship1" rdf:resource="http://example.com/assets/52C4702C-7CA2-E46E-D373-620482ECBEED/1.0"/>
</oslc_asset:Asset>
<rdf:Description rdf:about="#relationship1">
<dcterms:title>Build Configuration</dcterms:title>
</rdf:Description>
</rdf:RDF>
Asset management providers SHOULD allow consumers to define custom properties. If providers allow consumers to define custom properties, they MUST allow the consumer to optionally specify an HTTP URI for that data element, and the specified URI MUST be used in the RDF representation of all resources that contain the data element. The specified URI MAY be part of an industry standard such as DC, FOAF, or OSLC, or it MAY be defined by the user’s organization. If the URI is defined by the user’s organization, then they SHOULD make it dereferencable as per the [[!W3CBestPractices]].
If the user does not specify the optional URI, then the provider MUST use a default generated HTTP URI. The generated URI SHOULD be as human-readable as possible. One method for achieving human-readability is to apply a human-friendly name mangling algorithm to the user-defined label for the data element. The tool SHOULD make the generated URI dereferencable as per the [[!W3CBestPractices]]. The published RDF vocabulary SHOULD include any relevant descriptive information provided the user as part of the data element definition, e.g. the label and description.
OSLC Asset Management Resources 2.1 Defines the vocabulary terms and constraints for OSLC Automation resources. These terms and constraints are specified according to [[!OSLCCoreVocab]].
OSLC Asset Management service providers MUST provide a [[!OSLCCore2]] Service Provider Resource that can be retrieved at a implementation dependent URI.
OSLC Asset Management service providers MAY provide a [[!OSLCCore2]] Service Provider Catalog Resource that can be retrieved at a implementation dependent URI.
OSLC Asset Management service providers MUST provide a oslc:serviceProvider
property for their
defined resources that will be the URI to a [[!OSLCCore2]] Service Provider Resource.
OSLC Asset Management service providers MUST supply a value of
http://open-services.net/ns/asset# for the property
oslc:domain
on either oslc:Service
or
oslc:ServiceProviderCatalog
resources.
OSLC Asset Management service providers MUST support [[!OSLCCore2]] Creation Factories and list them in the Service Provider Resource as defined by OSLC Core. OSLC Asset Management service providers SHOULD support [[!OSLCCore2]] Resource Shapes for Creation Factories as defined in [[!OSLCCore2]] OSLC Core Specification
OSLC Asset Management service providers MUST support the [[!OSLCCore2]] Query Capabilities as defined by OSLC Core. OSLC Asset Management service providers SHOULD support [[!OSLCCore2]] Resource Shapes for Query Capability as defined in [[!OSLCCore2]] Specification
The Query Capability MUST support these parameters:
oslc.where
oslc.select
oslc.properties
oslc.prefix
If shape information is NOT present with the Query Capability, service providers SHOULD use these default properties to contain the result:
rdf:Description
and rdfs:member
as defined in
[[!OSLCCore2RDFXMLExamples]] RDF/XML Examples
oslc:results
array. See
[[!OSLCCore2JsonRepresentationGuidance]]
OSLC Asset Management service providers SHOULD support the selection of resources by delegated web-based user interface dialogs [[!OSLCCore2]] Delegated UIs as defined by OSLC Core.
OSLC Asset Management service providers MAY support the creation of resources by delegated web-based user interface dialogs [[!OSLCCore2]] Delegated UIs as defined by OSLC Core.
OSLC Asset Management service providers MAY support the pre-filling of creation dialogs based on the definition at [[OSLCCore2]] Delegated UIs.
The service providers supports the delegated UIs as follows:
Asset Management Resource | Selection | Creation |
---|---|---|
Asset | SHOULD | MAY |
The goal is to provide a smooth transition to 2.1 for both Consumers and Providers. This section will clarify the usage of 1.0 media types so that Providers can support both 1.0, 2.0, 2.1 Consumers when HTTP requests are made for a resource with the same URI.
For an Asset Resource format identification of RDF/XML and XML, the media type used for this representation
SHOULD be application/rdf+xml
or application/xml
.
For an Asset Resource format identification of JSON, the media type used for this representation SHOULD be
application/json
.
(this section is informative)
(this section is informative)
The members of the Working Group (or as appropriate, their employers) have documented a Patent Non-Assertion Covenant for implementations of the Asset Management 2.1 Specification, as described in the open-services.net Terms of Use. Details of the Covenant may be found here.
The working group participants who author and maintain this working draft specification, monitor a distribution list where issues or questions can be raised, see Asset Management Mailing List
Also the issues found with this specification and their resolution can be found at OSLC Asset Management 2.1 specification issues.
The following individuals have participated in the creation of this specification and are gratefully acknowledged:
Participants:
Fabio Ribeiro, Koneksys (Editor)
Jim Amsden, IBM (Chair)
Gray Bachelor, IBM (Chair)
Brad Sandler, IBM
Dave Johnson, IBM
Edwin Freekenhorst, Shell
Eric Bordeau, IBM
Gili Mendel, IBM; OSLC Asset Management Lead
Grant Larsen, IBM
Hari
Padmanabhan, IBM
Jaimin Patel, WebLayers
John Favazza, WebLayers
Kevin Bauer, IBM
Randy
Lexvold, the Emphasys Group
Ren Renganathan, Citigroup
Scott Bosworth, IBM
Sheehan Anderson,
IBM
Srimanth Gunturi, IBM
Revision | Date | Editor | Changes Made |
01 | 07/06/2018 | Fabio Ribeiro | Draft OASIS format version created |
02 | 09/08/2018 | Gray Bachelor | Change to V2.1 and add conformance |