What are oneM2M Resources?
oneM2M Resources
A oneM2M system is a collection of oneM2M resources. A oneM2M resource can represent an IoT device, an IoT application, an IoT data structure, a functionality or a service in a oneM2M system.
Resources are organized in a hierarchical structure, the resource tree, with each resource having a parent resource and zero or more child resources. The root of the resource tree is the CSEBase resource, which represents the CSE itself. Every CSE hosts one resource tree.
various resource types are defined by the oneM2M standard. Each resource can have a set of attributes that define the resource's properties and behavior. They also have a defined set of child resources that can be created under the resource.
Resources are uniquely addressable. The root of the resource structure in a CSE shall be assigned an absolute address.
Figure 1: oneM2M Resource Structure1
In Figure 1 we see a generic resource representation. Square boxes are used for possible child-resources, and square boxes with round corners are used for resource attributes.
Each resource has a resource type (e.g. <AE> for an Application Entity), a resource ID (e.g. ae-12345), a resource name (e.g. MyAE), and other universal attributes that describe common aspects of a resource. The resource type is a number that uniquely identifies the resource type. The resource ID is a unique identifier for the resource within the CSE. The resource name is a human-readable name for the resource, which must be unique among its siblings.
Resource Types
oneM2M defines a set of resource types that represent different entities, functionalities and services in a oneM2M system.
The following, not exhaustive, table list some of the most common oneM2M resource types. A complete list of resource types and their functionality can be found in the oneM2M standard in the document TS-0001 - Functional Architecture.
Resource Type | Description |
---|---|
<CSEBase> | The root resource of the oneM2M resource tree. |
<AccessControlPolicy> | An access control policy resource, which defines access rights to resources. |
<AE> | An Application Entity, representing an application in the oneM2M system. |
<container> | A container resource, which can hold other resources or data. |
<contentInstance> | A content instance resource, which holds data. |
<subscription> | A subscription resource, which defines a subscription to notifications. |
<group> | A group resource, which can group other resources together. |
<node> | A node resource, which represents a physical or virtual device. |
<remoteCSE> | A remote CSE resource, which represents another CSE in a oneM2M system. |
<semanticDescriptor> | A semantic descriptor resource, which adds semantic information to resources. |
<flexContainer> | A resource that be used to represent any data structure. |
Table 1: Some oneM2M Resource Types
-
Source: oneM2M ↩