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)
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).
The typical target deployment is a power constrained gateway (microcontroller).
## High-level features
## High-level features
This part describes the main features (high-level point of view) of LOM2M.
This part describes the main features (high-level point of view) of LOM2M.
### Communication binding
### 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:
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:
-[MQTTS (not included in opensource version)](LOM2M/Features-and-capabilities/MQTT-Binding)
### Security (not included in opensource version)
### Security
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 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.
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)
WIP: recursive access control policy verification in case of multi level request (level parameter)
### Data mapping: JSON
### 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.
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
### 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.).
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
### 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.
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
### 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.
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
### 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.
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
## Supported oneM2M resources
For more detailed information, cf. [Features & conformance](https://docs.google.com/spreadsheets/d/1rGx882Nl4MRpZ7I9Mh-MPYlLAW4LCnS1VweM8PxzEHs/edit?usp=sharing)
For more detailed information, cf. [Features & conformance](https://docs.google.com/spreadsheets/d/1rGx882Nl4MRpZ7I9Mh-MPYlLAW4LCnS1VweM8PxzEHs/edit?usp=sharing)
- 1: ACP, Access Control Policy
- 1: ACP, Access Control Policy (not included in opensource version)
- 2: AE, Application Entity
- 2: AE, Application Entity
- 3: CNT, Container
- 3: CNT, Container
- 4: CIN, Content Instance
- 4: CIN, Content Instance
...
@@ -47,42 +56,48 @@ For more detailed information, cf. [Features & conformance](https://docs.google.
...
@@ -47,42 +56,48 @@ For more detailed information, cf. [Features & conformance](https://docs.google.
- Ol: Oldest
- Ol: Oldest
Currently under implementation (WIP):
Currently under implementation (WIP):
- 9: GROUP
- 9: GROUP
## Supported oneM2M capabilities
## Supported oneM2M capabilities
### oneM2M release
### oneM2M release
LOM2M supports oneM2M release:
LOM2M supports oneM2M release:
- 2a
- 2a
- 3
- 3
### Resource addressing
### Resource addressing
- SP-RELATIVE addressing
- SP-RELATIVE addressing
-**NEW**: CSE-RELATIVE addressing (WIP)
- CSE-RELATIVE addressing (WIP)
- Hierarchical
- Hierarchical
- Non-hierarchical
- Non-hierarchical
### resource & data management
### resource & data management
The following oneM2M operations are supported at the API level:
The following oneM2M operations are supported at the API level:
- CREATE
- CREATE
- RETRIEVE
- RETRIEVE
-**NEW**: UPDATE (initial version, WIP)
- UPDATE (initial version, WIP)
- DELETE
- DELETE
- NOTIFY (target is LOM2M CSE, WIP)
- NOTIFY (target is LOM2M CSE, WIP)
- DISCOVERY
- DISCOVERY
### Security
### Security (not included in opensource version)
Security is implemented with ACP resources in LOM2M. Access Rights are checked before executing any operation.
Security is implemented with ACP resources in LOM2M. Access Rights are checked before executing any operation.
### Subscription & notification
### Subscription & notification
The following notification event criteria are supported:
The following notification event criteria are supported:
- XXX TBD
The following notification content type are supported:
- XXX TBD
**NEW**: now supports subscription with AE Resource id as notification uri.
- supports subscription with AE Resource id as notification uri.
### Supported result content types
### Supported result content types
- RCN NOTHING (0)
- RCN NOTHING (0)
- RCN ATTRIBUTES (1)
- RCN ATTRIBUTES (1)
- RCN HIERARCHICAL ADDRESS (2)
- RCN HIERARCHICAL ADDRESS (2)
...
@@ -90,28 +105,34 @@ The following notification content type are supported:
...
@@ -90,28 +105,34 @@ The following notification content type are supported:
- RCN ATTRIBUTES CHILD RESOURCES (4)
- RCN ATTRIBUTES CHILD RESOURCES (4)
- RCN ATTRIBUTES CHILD RESOURCES REFERENCES (5)
- RCN ATTRIBUTES CHILD RESOURCES REFERENCES (5)
- RCN CHILD RESOURCES REFERENCES (6)
- RCN CHILD RESOURCES REFERENCES (6)
-**NEW**: RCN MODIFIED ATTRIBUTES ONLY (9)
- RCN MODIFIED ATTRIBUTES ONLY (9)
WIP:
WIP:
- RCN ORIGINAL RESOURCE (7)
- RCN ORIGINAL RESOURCE (7)
- RCN CHILD RESOURCES ATTRIBUTES ONLY (8)
- RCN CHILD RESOURCES ATTRIBUTES ONLY (8)
Not implemented:
Not implemented:
- RCN SEMANTIC CONTENT (10)
- RCN SEMANTIC CONTENT (10)
### Discovery
### Discovery
The discovery operation is implemented with the following filter criteria:
The discovery operation is implemented with the following filter criteria:
- Resource Type (ty)
- Resource Type (ty)
- Label (lbl)
- Label (lbl)
- Level (depth of recursive retrieval of resource, in combination with result content type including child resources attributes and/or child resources)
- 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
-**NEW**: limit (lim): enables to fix a limit number of results to return while performing a discovery request
### Group management (WIP)
### Group management (WIP)
This feature is currently under development.
This feature is currently under development.
### Blocking / non blocking requests
### Blocking / non blocking requests
LOM2M only supports blocking requests.
LOM2M only supports blocking requests.
### Retargeting
### Retargeting
LOM2M supports retargeting to any known remote CSE or to the CSE LOM2M is registered to.
LOM2M supports retargeting to any known remote CSE or to the CSE LOM2M is registered to.