LOM2M Features and Capabilities
LOM2M is a message oriented middleware implementing the oneM2M standard and its REST API. The aim of the platform is to be used as a gateway in an IoT solution deployment. (MN or ASN in oneM2M terminology)
The typical target deployment is a power constrained gateway (microcontroller).
High-level features
This part describes the main features (high-level point of view) of LOM2M.
Communication binding
Communication is a key feature for a oneM2M platform. The aim of this feature is to integrate a transport protocol in order to enable a communication with the platform through a network connection. Here is the list of communication protocols that are currently supported:
Security (not included in opensource version)
LOM2M is configured to use the AWS IoT Core platform for communication purpose (MQTTS). This configuration ensures a high level of security for the communication channel. The provisioning is ensured by the AWS IoT core platform. The communication and authentication uses X.509 certificates and SSL/TLS encryption.
LOM2M uses the Access Control Policy resource to check access rights regarding to operations to perform on a target resource. WIP: recursive access control policy verification in case of multi level request (level parameter)
Data mapping: JSON
In order to exchange data through a communication protocol, data serialization and deserialization is a key feature. This enable the system to parse any kind of resources thanks to a specific data format. By design LOM2M support JSON serialization and deserialization through the ArduinoJson library.
Subscription & Notification
This feature enables an external entity (AE) to subscribe to any resource they have the right to, and to receive notifications when different events occur on this target resource (child creation, resource deletion, etc.).
Discovery
This feature enables to retrieve information on the platform without any previous knowledge of it. Several types of filter criteria can be used such as the resource type.
Data persistence
LOM2M persists data and can reload it after a reboot. In order to minimize the impact of persisting data on performances, the period of the persistence operation can be configured to have more reliability or better performances.
Request Redirection
LOM2M supports request redirection in case it receives a request targeting a remote CSE known by the current CSE or that the IN-CSE could be aware of.
Supported oneM2M resources
For more detailed information, cf. Features & conformance
- 1: ACP, Access Control Policy
- 2: AE, Application Entity
- 3: CNT, Container
- 4: CIN, Content Instance
- 5: CSB, CSE Base
- 16: CSR, Remote CSE
- 24: SUB, Subscription
- La: Latest
- Ol: Oldest
Currently under implementation (WIP):
- 9: GROUP
Supported oneM2M capabilities
oneM2M release
LOM2M supports oneM2M release:
- 2a
- 3
Resource addressing
- SP-RELATIVE addressing
- CSE-RELATIVE addressing (WIP)
- Hierarchical
- Non-hierarchical
resource & data management
The following oneM2M operations are supported at the API level:
- CREATE
- RETRIEVE
- UPDATE (initial version, WIP)
- DELETE
- NOTIFY (target is LOM2M CSE, WIP)
- DISCOVERY
Security
Security is implemented with ACP resources in LOM2M. Access Rights are checked before executing any operation.
Subscription & notification
The following notification event criteria are supported:
- supports subscription with AE Resource id as notification uri.
Supported result content types
- RCN NOTHING (0)
- RCN ATTRIBUTES (1)
- RCN HIERARCHICAL ADDRESS (2)
- RCN HIERARCHICAL ADDRESS AND ATTRIBUTES (3)
- RCN ATTRIBUTES CHILD RESOURCES (4)
- RCN ATTRIBUTES CHILD RESOURCES REFERENCES (5)
- RCN CHILD RESOURCES REFERENCES (6)
- RCN MODIFIED ATTRIBUTES ONLY (9)
WIP:
- RCN ORIGINAL RESOURCE (7)
- RCN CHILD RESOURCES ATTRIBUTES ONLY (8)
Not implemented:
- RCN SEMANTIC CONTENT (10)
Discovery
The discovery operation is implemented with the following filter criteria:
- Resource Type (ty)
- Label (lbl)
- Level (depth of recursive retrieval of resource, in combination with result content type including child resources attributes and/or child resources)
- NEW: limit (lim): enables to fix a limit number of results to return while performing a discovery request
Group management (WIP)
This feature is currently under development.
Blocking / non blocking requests
LOM2M only supports blocking requests.
Retargeting
LOM2M supports retargeting to any known remote CSE or to the CSE LOM2M is registered to.