Supported Resource Types and Functionalities
This article lists the supported oneM2M resource types, functionalities, and additional runtime features of the ACME CSE.
oneM2M Features
oneM2M Specification Conformance
The CSE implementation successfully passes all the relevant oneM2M test cases for the supported resource types, attributes and behaviours.
Release Versions
The ACME CSE supports oneM2M release 1 - 4 and the upcoming release 5 for the supported resource types and functionalities listed below.
CSE Types
The ACME CSE supports the following CSE types:
CSE Type | Supported |
---|---|
IN | ✓ |
MN | ✓ |
ASN | ✓ |
Resource Types
The ACME CSE supports the following oneM2M resource types:
Resource Type | Supported | Remarks |
---|---|---|
Access Control Policy (ACP) | ✓ | Attribute-based access control is yet not supported |
Action (ACTR) | ✓ | No support for the input attribute. |
Application Entity (AE) | ✓ | |
Container (CNT) | ✓ | |
ContentInstance (CIN) | ✓ | |
CrossResourceSubscription (CRS) | ✓ | |
CSEBase (CB) | ✓ | |
Dependency (DEPR) | ✓ | |
FlexContainer & Specializations | ✓ | Any specialization is supported and validated. See Attribute Policies for further details. Supported specializations include: TS-0023 R4, GenericInterworking, AllJoyn. |
FlexContainerInstance | ✓ | Experimental. This is an implementation of the draft FlexContainerInstance specification. |
Group (GRP) | ✓ | The support includes requests via the fopt (fanOutPoint) virtual resource. Groups may contain remote resources. |
LocationPolicy (LCP) | ✓ | Only device based location policy is supported. The LCP's cnt stores geo-coordinates and geo-fencing results. |
Management Objects | ✓ | See also the list of supported management objects. |
Node (NOD) | ✓ | |
Polling Channel (PCH) | ✓ | Support for Request and Notification long-polling via the pcu (pollingChannelURI) virtual resource. requestAggregation functionality is supported, too. |
Remote CSE (CSR) | ✓ | Announced resources are supported. Transit request to resources on registered CSE's are supported. |
Request (REQ) | ✓ | Support for non-blocking requests. |
Schedule (SCH) | ✓ | Support for CSE communication, nodes, subscriptions and crossResourceSubscriptions. |
SemanticDescriptor (SMD) | ✓ | Support for basic resource handling and semantic queries. |
Subscription (SUB) | ✓ | Notifications via http(s) (direct url or an AE's Point-of-Access (POA)). BatchNotifications, attributes, statistics. Not all features are supported yet. |
TimeSeries (TS) | ✓ | Including missing data notifications. |
TimeSeriesInstance (TSI) | ✓ | dataGenerationTime attribute only supports absolute timestamps. |
TimeSyncBeacon (TSB) | ✓ | Experimental. Implemented functionality might change according to specification changes. |
Management Object Specializations
The following table presents the supported management object specifications.
Management Objects |
---|
AreaNwkDeviceInfo (ANDI) |
AreaNwkInfo (ANI) |
Battery (BAT) |
DataCollect (DATC) |
DeviceCapability (DVC) |
DeviceInfo (DVI) |
EventLog (EVL) |
Firmware (FWR) |
Memory (MEM) |
MobileNetwork (MNWK) |
MyCertFileCred (NYCFC) |
Reboot (REB) |
SIM (SIM) |
Software (SWR) |
WifiClient (WIFIC) |
FlexContainer Specializations
ACME CSE supports all FlexContainerSpecializations of oneM2M TS-0023.
Protocols Bindings
The following Protocol Bindings are supported:
Protocol Binding | Supported | Remark |
---|---|---|
http | ✓ | incl. TLS (https) and CORS support. basic and bearer authentication. Experimental: Using PATCH to replace missing DELETE in http/1.0 |
coap | ✗ | |
mqtt | ✓ | incl. mqtts |
WebSocket | ✓ | incl. TLS (wss) support |
The supported bindings can be used together, and combined and mixed in any way.
Serialization Types
The following serialization types are supported:
Serialization Type | Supported | Remark |
---|---|---|
JSON | ✓ | In addition to normal JSON syntax, C-style comments ("//...", "#..." and "/* ... */") are supported as well. |
CBOR | ✓ | |
XML | ✗ |
The supported serializations can be used together, e.g. between different or even with the same entity.
Result Content Types
The following result contents are implemented for standard oneM2M requests and discovery:
Discovery Type | RCN |
---|---|
nothing | 0 |
attributes | 1 |
hierarchical address | 2 |
hierarchical address + attributes | 3 |
attributes + child-resources | 4 |
attributes + child-resource-references | 5 |
child-resource-references | 6 |
original-resource | 7 |
child-resources | 8 |
modified attributes | 9 |
semantic content | 10 |
discovery result references | 11 |
oneM2M Service Functions
The following oneM2M service functions are supported:
Functionality | Supported | Remark |
---|---|---|
AE registration | ✓ | |
Blocking requests | ✓ | |
Delayed request execution | ✓ | Through the Operation Execution Timestamp request attribute. |
Discovery | ✓ | |
Geo-query | ✓ | |
Location | ✓ | Only device based, and no network based* location policies are supported. |
Long polling | ✓ | Long polling for request unreachable AEs and CSEs through <pollingChannel>. |
Non-blocking requests | ✓ | Non-blocking synchronous and asynchronous, and flex-blocking, incl. Result Persistence. |
Notifications | ✓ | E.g. for subscriptions and non-blocking requests. |
Partial Retrieve | ✓ | Support for partial retrieve of individual resource attributes. |
Remote CSE registration | ✓ | |
Request expiration | ✓ | The Request Expiration Timestamp request attribute |
Request forwarding | ✓ | Forwarding requests from one CSE to another. |
Request parameter validations | ✓ | |
Resource addressing | ✓ | CSE-Relative, SP-Relative and Absolute as well as hybrid addressing are supported. |
Resource announcements | ✓ | Under the CSEBaseAnnc resource (R4 feature). Bi-directional update sync. |
Resource expiration | ✓ | |
Resource validations | ✓ | |
Result expiration | ✓ | The Result Expiration Timestamp request attribute. Result timeouts for non-blocking requests depend on the resource expiration interval. |
Semantics | ✓ | Basic support for semantic descriptors and semantic queries and discovery. |
Standard oneM2M requests | ✓ | CREATE, RETRIEVE, UPDATE, DELETE, NOTIFY |
Subscriptions | ✓ | Incl. batch notification, and resource type and attribute filtering. |
Time Synchronization | ✓ | |
TimeSeries data handling | ✓ | Incl. missing data detection, monitoring and notifications. |
Notification Event Types
The following notification event types for Subscriptions are supported:
Notification Event Types | Supported |
---|---|
resourceUpdate | ✓ |
resourceUpdate | ✓ |
createDirectChild | ✓ |
deleteDirectChild | ✓ |
retrieveCNTNoChild | ✗ |
triggerReceivedForAE | ✗ |
blockingUpdate | ✓ |
missingData | ✓ |
Additional CSE Runtime Features
Runtime Environments
The ACME CSE runs at least on the following runtime environments:
Runtime Environment | Supported | Remark |
---|---|---|
Generic Linux | ✓ | Including Raspberry Pi OS (32bit) on Raspberry Pi 3 and 4. |
Mac OS | ✓ | Intel and Apple silicon. |
MS Windows | ✓ | |
Jupyter Notebooks | ✓ | ACME CSE can be run headless inside a Jupyter Notebook. |
Functionality | Remark |
---|---|
HTTP CORS | Support for Cross-Origin Resource Sharing to support http(s) redirects. |
HTTP Authorization | Basic support for basic and bearer (token) authorization. |
HTTP WSGI | Support for the Python Web Server Gateway Interface to improve integration with a reverse proxy or API gateway, ie. Nginx. |
Text Console | Control and manage the CSE, inspect resources, run scripts in a text console. |
Test UI | Text-based UI to inspect resources and requests, configurations, stats, and more |
Testing: Upper Tester | Basic support for the Upper Tester protocol defined in TS-0019, and additional command execution support. |
Request Recording | Record requests to and from the CSE to learn and debug requests over Mca and Mcc. |
Script Interpreter | Lisp-based scripting support to extent functionalities, implement simple AEs, prototypes, test, ... |
Web UI |
Database Bindings
The following database bindings are supported:
Database Binding | Supported | Remark |
---|---|---|
PostgreSQL | ✓ | |
TinyDB in-memory | ✓ | Fast and simple in-memory database. |
TinyDB file-based | ✓ | Fast and simple file-based database. |
Experimental CSE Features
These features are prove-of-concept implementations of new and currently discussed oneM2M features. They are not yet part of the oneM2M standard.
Functionality | Remark |
---|---|
Enhanced CSR functionality | Support of new eventEvaluationMode to react in missing events |
Subscription References | Support for subscription references for resource instead of direct subscriptions. |
Advanced Queries | Experimental implementation of a new query language to support enhanced query capabilities |
Simplified Time Synchronization | Experimental implementation of a simplified time synchronization mechanism. |
Support for DELETE requests for http/1.0 | Using PATCH requests to emulate DELETE requests for http/1.0 clients. |