 |
Open Services for Lifecycle Collaboration Common Resource Type Vocabulary Version 2.0
|
Status: v2.0 initial draft - March 20, 2012
This Version
Latest Version
PreviousVersion
Authors
Table of Contents
Notation and Conventions
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in
RFC2119. Domain name examples use
RFC2606.
Introduction
(this section is informative)
As generally used in Linked Data concepts, "vocabulary" is a list of terms known to a given audience, e.g. a person or tool. The Common Resource Type Vocabulary (CRTV) resources define the identifying characteristics of certain common resources that are not themselves electronic documents, e.g. software, hardware, and organizational entities. Electronic documents describing aspects of these resources relate and interact with many other resources, such as performance data, change requests, requirements, events, etc. In order to recognize which electronic documents describe aspects of the same CRTV resource instance, it is useful to establish a shared vocabulary capturing the information commonly used for this purpose. The recognition process need not yield unique results, so it is distinct from Web resource identification via URIs. The goal is to include only details which need to be understood for resource identity purposes. This vocabulary is initially being developed within the Performance Monitoring working group, where these resources are commonly encountered. It is being proposed separately from the PM vocabulary in order to encourage its re-use in other domains; if this re-use occurs in practice, it might be more straightforward to manage it as a common vocabulary in the Core area or merge it into Core’s existing common vocabulary
OSLCCoreSpecAppendixA. If it is moved under Core, we should be careful to do so prior to PM entering the convergence phase. As new resources are needed for individual OSLC Domains, working groups will determine whether or not these Resources (definitions, and/or properties) should be added to the CRTV.
Importance of Identity
Whenever there is a situation where one product is communicating with another product about a resource instance, it is important to the user using both products to understand how to identify the resource is the "same thing" across multiple systems. For example, if a user launches in context to another product, without proper identity information the user does not know the context view is correct for the resource. Imagine viewing an application resource in Product "A", then launching in context to obtain more information about the application resource from Product "B", but the information returned back (unbeknownst to the user) describes a completely different resource!
Identity allows users to know they have visibility, control, or apply automation on the correct "thing" when there are multiple products in use to perform those operations.
A solution could use 1 of the product-specific names for a resource, but that is a challenging solution. Each tool has a different name for the same thing, so a user is left to writing down the name from Product "A" and then looks for the same resource in Product "B" and writes that name down. Multiply this effort by 5 different products and 1000000 resources, and the problem rapidly demonstrates a need to do this automatically.
How we propose solving this is through a solution that can receive resource information from each of the products, process this information, and then make a determination as to which resource data should combine together and create a reconciled representation of the resources across the various products. It's just as hard for a machine (if not, harder) to evaluate product-specific names of resources and try to combine the right resources together, so using the product-specific names for a common resource identity is difficult. What we offer in this Vocabulary is the set of properties that are not only common across multiple products, but these properties create a way to uniquely identify a resource instance when the properties are combined as a set.
Namespaces
In addition to the namespace URIs and namespace prefixes
oslc
,
rdf
,
dcterms
and
foaf
defined in the
OSLC Core specification, this proposal defines the namespace URI of
http://open-services.net/ns/crtv#
with a namespace prefix of
crtv
This specification also uses these namespace prefix definitions:
- oslc_asset :
http://open-services.net/ns/asset#
(Reference: OSLC AM)
Resource Definitions
Property value types that are not defined in the following sections, are defined in
OSLC Core - Defining OSLC Properties
The resource properties are not limited to the ones defined in this vocabulary; service providers MAY provide additional properties. Any additional properties SHOULD be defined in their own unique namespace and SHOULD NOT use the namespaces defined in this vocabulary.
Resource: Asset
Note: This proposal re-uses the Asset resource definition from the OSLC Asset Management Workgroup [
http://open-services.net/bin/view/Main/AssetMgSpecificationV2]; when used to specify the identifying characteristics of an Asset, the following property combinations should be used. We are placing the CRTV identification rules for Assets in this vocabulary (under "additional requirements", below), as the Asset Management Domain does not require these identification rules. This creates an implied dependency between this Vocabulary and the Asset Management Domain. We will evaluate how best to proceed based on dialog within the community, given OSLC restrictions on cross-Domain dependencies.
Additional Requirements
In order to be generally useful to implementations, instances of the Resource Definition MUST contain at least 1 set of properties in the bulleted list below. All properties within a single bullet point (row) must contain a value in order to be valid. Multiple bullets may be satisfied.
-
oslc_asset:assetTag, oslc_asset:manufacturer, oslc_asset:model, oslc_asset:serialNumber
Resource: ComputerSystem
An intelligent device, such as a computer, that can perform computing, data collection, and/or communication operations. This category includes general purpose computers, such as laptops, servers, and virtual machines; computers with specific functions, such as Networking and Storage hardware, Voice over IP Telephony devices, HVAC systems; monitoring data collection devices in buildings, automobiles, or electronic grids.
- Name:
ComputerSystem
- Type URI
http://open-services.net/ns/crtv#ComputerSystem
Prefixed Name |
Occurs |
Read-only |
Value-type |
Represen-tation |
Range |
Description |
dcterms:identifier |
exactly-one |
unspecified |
String |
n/a |
n/a |
A value that uniquely identifies the resource instance. |
rdf:type |
zero-or-many |
unspecified |
Resource |
Reference |
any |
A feature provided by the system. A system may provide more than one function at the same time. |
crtv:manufacturer |
zero-or-one |
False |
String |
n/a |
n/a |
Name of the asset manufacturer. This attribute SHOULD be a publicly available manufacturer name vocabulary. |
crtv:model |
zero-or-one |
False |
String |
n/a |
any |
Value of the asset model. The model number as provided by the device manufacturer. |
crtv:serialNumber |
zero-or-one |
False |
String |
n/a |
n/a |
Serial number assigned by the asset manufacturer. The value should be provided by the manufacturer of the resource. |
crtv:systemBoardUUID |
zero-or-one |
False |
String |
n/a |
n/a |
The unique identifier of the system board. |
crtv:vmid |
zero-or-one |
False |
String |
n/a |
n/a |
The VMID is a unique identifier for the virtual machine. |
Additional Requirements
In order to be generally useful to implementations, instances of the Resource Definition MUST contain at least 1 set of properties in the bulleted list below. All properties within a single bullet point (row) must contain a value in order to be valid. Multiple bullets may be satisfied.
-
crtv:manufacturer, crtv:model, crtv:serialNumber
-
crtv:systemBoardUUID
Resource: Location
A specific position pertaining to a given area, such as a single location (e.g. point), a set of multiple locations (e.g. Building) or a collection of different geographical locations (e.g. Industrial Park Site). Often locations physically exist, but this is not required.
- Name:
Location
- Type URI
http://open-services.net/ns/crtv#Location
Prefixed Name |
Occurs |
Read-only |
Value-type |
Represen-tation |
Range |
Description |
crtv:coordinateSystem |
zero-or-many |
unspecified |
Resource |
Reference |
n/a |
A coordinate system typically arises in the context of a physical geography. The coordinate system is distinguished by having an origin, and a set of oriented axes that, with the exception of the highest level, GPS coordinates, live within a parent coordinate system. A coordinate system also has coordinates that taken together uniquely identify a point in the context of the coordinate system. |
crtv:name |
zero-or-one |
False |
String |
n/a |
n/a |
The name of the geographical location as it is recognized by the organization. Locations can be single points, or by geographical components of a individual country or state/province, or by a city or town boundary, or simply by a building or collection of buildings. |
crtv:point |
zero-or-many |
False |
String |
n/a |
n/a |
A point defined within the context of a coordinate system. |
Additional Requirements
In order to be generally useful to implementations, instances of the Resource Definition MUST contain at least 1 set of properties in the bulleted list below. All properties within a single bullet point (row) must contain a value in order to be valid. Multiple bullets may be satisfied.
-
crtv:point, crtv:coordinateSystem
-
crtv:name
Resource: ServiceInstance
A Service Instance is the representation of a service offering that was selected by the customer and then instantiated for that specific customer. Service Instances are supported by definite and measurable warranties or guarantees that the expected level of service/value will be met. Instances of the resource carry exposure from the group that is responsible for supporting the offering externally to the group that is utilizing the offering. It is common to group or nest instances together to form a service instance hierarchy. This resource definition does not represent the individual processes and/or activities that comprise an overall service except in the case where such processes are viewed as an independent service. In this condition, an instance of ServiceInstance would be created to represent the ServiceInstance of the process, then creating a hierarchy of ServiceInstances (to the containing ServiceInstance).
- Name:
ServiceInstance
- Type URI
http://open-services.net/ns/crtv#ServiceInstance
Prefixed Name |
Occurs |
Read-only |
Value-type |
Represen-tation |
Range |
Description |
rdf:type |
zero-or-many |
unspecified |
Resource |
Reference |
n/a |
The type of service being delivered. Value must be a URI. |
crtv:name |
exactly-one |
False |
String |
n/a |
n/a |
As defined by the group responsible for the resource. |
crtv:parameter |
zero-or-many |
False |
Resource |
Either Reference or Inline |
any |
A particular parameter (attribute modeled as a name/value pair) that characterizes an aspect of this ServiceInstance. Note: need to determine if OSLC Automation’s parameter definition can be re-used. |
crtv:policies |
zero-or-many |
False |
Resource |
Reference |
any |
A set of service policies that are enforced by this ServiceInstance. |
Additional Requirements
In order to be generally useful to implementations, instances of the Resource Definition MUST contain at least 1 set of properties in the bulleted list below. All properties within a single bullet point (row) must contain a value in order to be valid. Multiple bullets may be satisfied.
Resource: SoftwareServer
Represents an instance of software that participates in hosting a particular application.
- Name:
SoftwareServer
- Type URI
http://open-services.net/ns/crtv#SoftwareServer
Prefixed Name |
Occurs |
Read-only |
Value-type |
Represen-tation |
Range |
Description |
rdf:type |
zero-or-many |
unspecified |
Resource |
Reference |
n/a |
A designation of the function of this software. Value must be a URI. |
crtv:manufacturer |
zero-or-one |
False |
String |
n/a |
n/a |
Name of the Software Server manufacturer. |
crtv:name |
zero-or-one |
False |
String |
n/a |
n/a |
An Application Server-specific set of values that uniquely identify the Software Server. Each Software Server softwareType has accompanying rules for constructing the value of this property. |
crtv:port |
zero-or-one |
False |
String |
n/a |
n/a |
the port number as defined by the IETF and IANA |
crtv:serverAccessPoint |
zero-or-one |
False |
Resource |
Reference |
any |
The Network Interface which clients use for communications with this resource. |
Additional Requirements
In order to be generally useful to implementations, instances of the Resource Definition MUST contain at least 1 set of properties in the bulleted list below. All properties within a single bullet point (row) must contain a value in order to be valid. Multiple bullets may be satisfied.
-
crtv:name
-
crtv:serverAccessPoint, crtv:port
Resource: SoftwareModule
Represents packaged components that are deployed to a SoftwareServer.
- Name:
SoftwareModule
- Type URI
http://open-services.net/ns/crtv#SoftwareModule
Prefixed Name |
Occurs |
Read-only |
Value-type |
Represen-tation |
Range |
Description |
crtv:deployedTo |
zero-or-one |
False |
Resource |
Reference |
any |
The specific Application Server resource which the SoftwareModule is deployed to. |
crtv:fileName |
zero-or-one |
False |
String |
n/a |
n/a |
The actual file name of the SoftwareModule, including path information relative to the hosting Application Server. |
crtv:name |
zero-or-one |
False |
String |
n/a |
n/a |
The local unique name as it is known by the Application Server that is hosting the Software Module. |
Additional Requirements
In order to be generally useful to implementations, instances of the Resource Definition MUST contain at least 1 set of properties in the bulleted list below. All properties within a single bullet point (row) must contain a value in order to be valid. Multiple bullets may be satisfied.
-
crtv:deployedTo, crtv:name, crtv:fileName
Resource: StorageVolume
StorageVolume represents an identifiable unit of data storage. A StorageVolume can be a physical device ( e.g. a removable hard drive ) or a logical unit created by combining one or more other storage volumes.
- Name:
StorageVolume
- Type URI
http://open-services.net/ns/crtv#StorageVolume
Prefixed Name |
Occurs |
Read-only |
Value-type |
Represen-tation |
Range |
Description |
dcterms:identifier |
exactly-one |
unspecified |
String |
n/a |
n/a |
A value that uniquely identifies the resource instance. |
crtv:name |
zero-or-one |
False |
String |
n/a |
n/a |
The unique name for the storage extent. |
crtv:path |
exactly-one |
False |
String |
n/a |
n/a |
The absolute volume UUID |
Additional Requirements
In order to be generally useful to implementations, instances of the Resource Definition MUST contain at least 1 set of properties in the bulleted list below. All properties within a single bullet point (row) must contain a value in order to be valid. Multiple bullets may be satisfied.
Appendix A: Common Properties
See
OSLC Core: Common Properties for more common properties
Prefixed Name |
Occurs |
Read-only |
Value-type |
Represen-tation |
Range |
Description |
crtv:name |
zero-or-one |
False |
String |
n/a |
n/a |
Typically in use as an identity field, this property is in use to represent a known name of a resource instance. The property contents SHOULD be human-readable. |
crtv:observationTime |
zero-or-one |
False |
DateTime? |
n/a |
n/a |
The time the resource was last observed by the provider |
crtv:version |
zero-or-one |
False |
String |
n/a |
n/a |
The complete version specification of the entity, expressed as a single string. Note that this string should not contain any information about the manufacturer of the entity, the model of the entity, or the name of the product associated with the entity. It must contain version information only, in a format described by the manufacturer of the entity. |
crtv:actualConfiguration |
zero-or-many |
False |
Resource |
Reference |
any |
URL of an actual configuration record. |
crtv:healthStatus |
zero-or-many |
False |
Resource |
Reference |
any |
URL of a health status record. |
crtv:monitoring |
zero-or-many |
False |
Resource |
Reference |
any |
URL of a monitoring record. |
crtv:dependsOn |
zero-or-many |
False |
Resource |
Reference |
any |
A relationship denoting that the source of the relationship cannot function properly without an association with the target. The dependency is directional ( the source depends on the target but the reverse is not necessarily true ) and can represent any cause or type of dependency. For instance, this relationship can be used to denote that a device depends on its power supply(s) or that an IP path depends on a layer 2 connection. |
Appendix B: Samples
(this section is informative)
Appendix C: Resource Shapes
(this section is informative)
Reporting Issues on the Specification
The working group participants who author and maintain this initial draft vocabulary, monitor a distribution list where issues or questions can be raised, see
Performance Monitoring Mailing List
Also the issues found with this specification and their resolution can be found at
CrtVocabularyIssues
--
JacobYackenovich - 01 Mar 2012