HistoryViewLinks to this page Revision from: 2012 September 11 | 02:51 pm
This is the revision from 2012 September 11 at 02:51 pmView the current live version of the article.

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.

OSLC_logo.png

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

<!– %TOC{depth=”3”}% –>

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: 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.