Note: This vocabulary was originally part of the Performance Monitoring workgroup. It is moved to the Reconciliation workgroup as it is more applicable to the work done here.
|
Open Services for Lifecycle Collaboration Common Resource Type Vocabulary Version 2.0
|
Status: v2.0 initial draft - August 17, 2012
This Version
Latest Version
Previous Version
Authors
Table of Contents
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/wiki/asset-management/]; 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.
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 |
Representation |
Range |
Description |
rdf:type |
zero-or-many |
unspecified |
Resource |
Reference |
any |
The qualifier to describe the kind of ComputerSystem as well as the functions provided by the ComputerSystem. 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. |
crtv:hostid |
zero-or-one |
False |
String |
n/a |
n/a |
A globally unique ID assigned to their machines by some manufacturers (.e.g Sun Solaris |
Resource: Database
An organized collection of digital data that is managed by a database management system (DBMS). (A Database Management System, in turn, is represented as a SoftwareServer)
- Name:
Database
- Type URI
http://open-services.net/ns/crtv#Database
Prefixed Name |
Occurs |
Read-only |
Value-type |
Representation |
Range |
Description |
crtv:dbInstance |
zero-or-many |
False |
Resource |
Reference |
any |
The Software Server representing the database instance that manages this database. |
crtv:name |
zero-or-one |
False |
String |
n/a |
n/a |
The name assigned to the database by the DBA. |
Resource: IPAddress
Represents an IP address, either IPv4-based or IPv6-based.
- Name:
IPAddress
- Type URI
http://open-services.net/ns/crtv#IPAddress
Prefixed Name |
Occurs |
Read-only |
Value-type |
Representation |
Range |
Description |
crtv:address |
zero-or-one |
False |
String |
n/a |
n/a |
The canonical string representation of the IP address. |
crtv:contextAddressSpace |
zero-or-one |
False |
Resource |
Reference |
any |
|
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 |
Representation |
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. |
Resource: Path
Path represents individual components of a directed graph of resources, where specific ordering is necessary to preserve a graph. Examples of such directed graphs are the representation of workflows or processes.
- Name:
ServiceInstance
- Type URI
http://open-services.net/ns/crtv#ServiceInstance
Prefixed Name |
Occurs |
Read-only |
Value-type |
Representation |
Range |
Description |
crtv:elementFrom |
exactly-one |
False |
Resource |
Reference |
any |
The resource acting as the origination point in the ordered path. |
crtv:elementTo |
exactly-one |
False |
Resource |
Reference |
any |
The resource acting as the destination point in the ordered path. |
crtv:occursBefore |
zero-or-one |
False |
Resource |
Reference |
any |
If there is a temporal order between other Path or ServiceInstance Resource Definitions, the Resource Definition action that occur after this Resource Instance are listed here. |
Resource: crtv:Process
A resource representing a process on a Computer System
- Name:
Process
- Type URI
http://open-services.net/ns/crtv#Process
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 |
Representation |
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 |
Name of the entity as it is known to the organization. The contents of this attribute are assumed to be unique within the context of the organization. |
crtv:parentServiceInstance |
zero-or-one |
unspecified |
Resource |
Reference |
any |
When context is required, this is the containing Application for the set of Transactions. |
Resource: ServerAccessPoint
A network endpoint, i.e. the combination of IP address and port number that clients connect to when accessing a SoftwareServer.
- Name:
ServerAccessPoint
- Type URI
http://open-services.net/ns/crtv#ServerAccessPoint
Prefixed Name |
Occurs |
Read-only |
Value-type |
Representation |
Range |
Description |
crtv:ipAddress |
zero-or-one |
False |
Resource |
Reference |
any |
The specific IPAddress resource which the ServerAccessPoint uses. |
crtv:portNumber |
zero-or-one |
False |
String |
n/a |
n/a |
The port number as defined by IETF and IANA |
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 |
Representation |
Range |
Description |
rdf:type |
zero-or-many |
unspecified |
Resource |
Reference |
n/a |
The qualifier to describe the kind of (or function of) this software. A SoftwareServer may have more than one function at the same time. 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. Depending on its rdf:type, a SoftwareServer may have accompanying rules for constructing the value of this property. |
crtv:serverAccessPoint |
zero-or-many |
False |
Resource |
Reference |
any |
The Server Access Point clients use for communication with this resource. |
crtv:instancePath |
zero-or-one |
False |
String |
n/a |
n/a |
The directory where the files for this SoftwareServer are stored. |
crtv:runsOn |
zero-or-one |
False |
Resource |
Reference |
any |
The ComputerSystem this SoftwareServer instance is running on |
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 |
Representation |
Range |
Description |
rdf:type |
zero-or-many |
unspecified |
Resource |
Reference |
n/a |
The qualifier to describe the kind of (or function of) this software module. A SoftwareModule may have more than one function at the same time. |
crtv:deployedTo |
zero-or-one |
False |
Resource |
Reference |
any |
The SoftwareServer on which this SoftwareModule is deployed. |
crtv:fileName |
zero-or-one |
False |
String |
n/a |
n/a |
The file name of the package containing the SoftwareModule. You should use the syntax specified in RFC 1630 and 1738, for example file:///inst1.config |
crtv:name |
zero-or-one |
False |
String |
n/a |
n/a |
The name of the Software Module. |
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 |
Representation |
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 |
Appendix A: Common Properties
See OSLC Core: Common Properties for more common properties
Prefixed Name |
Occurs |
Read-only |
Value-type |
Representation |
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 CRT Vocabulary Issues.