502305e8866b0ed788918858190ac99cae394704
[docs.git] / docs / getting-started-guide / project-release-notes / iotdm.rst
1 =====
2 IoTDM
3 =====
4
5 Major Features
6 ==============
7
8 odl-onem2m-core
9 ---------------
10
11 * **Feature URL:** https://git.opendaylight.org/gerrit/gitweb?p=iotdm.git;a=blob_plain;f=onem2m/onem2m-features/features-onem2m/src/main/features/features.xml;hb=refs/heads/stable/carbon
12 * **Feature Description:** This feature implements CSE services described in OneM2M specifications and provides some
13   APIs simplifying development and usage of new plugins. These APIs and related services are considered as IoTDM's plugin
14   infrastructure.
15 * **Top Level:** Yes
16 * **User Facing:** Yes
17 * **Experimental:** Yes
18 * **CSIT Test:** https://jenkins.opendaylight.org/releng/view/iotdm/job/iotdm-csit-1node-basic-all-carbon/
19
20 odl-onem2m-http
21 ---------------
22
23 * **Feature URL:** https://git.opendaylight.org/gerrit/gitweb?p=iotdm.git;a=blob_plain;f=onem2m/onem2m-features/features-onem2m/src/main/features/features.xml;hb=refs/heads/stable/carbon
24 * **Feature Description:** Implements communication over HTTP and HTTPS according to OneM2M specifications.
25 * **Top Level:** Yes
26 * **User Facing:** Yes
27 * **Experimental:** Yes
28 * **CSIT Test:** https://jenkins.opendaylight.org/releng/view/iotdm/job/iotdm-csit-1node-basic-all-carbon/
29
30 odl-onem2m-coap
31 ---------------
32
33 * **Feature URL:** https://git.opendaylight.org/gerrit/gitweb?p=iotdm.git;a=blob_plain;f=onem2m/onem2m-features/features-onem2m/src/main/features/features.xml;hb=refs/heads/stable/carbon
34 * **Feature Description:** Implements communication over CoAP and CoAPS according to OneM2M specifications.
35 * **Top Level:** Yes
36 * **User Facing:** Yes
37 * **Experimental:** Yes
38 * **CSIT Test:** https://jenkins.opendaylight.org/releng/view/iotdm/job/iotdm-csit-1node-basic-all-carbon/
39
40 odl-onem2m-mqtt
41 ---------------
42
43 * **Feature URL:** https://git.opendaylight.org/gerrit/gitweb?p=iotdm.git;a=blob_plain;f=onem2m/onem2m-features/features-onem2m/src/main/features/features.xml;hb=refs/heads/stable/carbon
44 * **Feature Description:** Implements communication over MQTT according to OneM2M specifications.
45 * **Top Level:** Yes
46 * **User Facing:** Yes
47 * **Experimental:** Yes
48 * **CSIT Test:** https://jenkins.opendaylight.org/releng/view/iotdm/job/iotdm-csit-1node-basic-all-carbon/
49
50 odl-onem2m-websocket
51 --------------------
52
53 * **Feature URL:** https://git.opendaylight.org/gerrit/gitweb?p=iotdm.git;a=blob_plain;f=onem2m/onem2m-features/features-onem2m/src/main/features/features.xml;hb=refs/heads/stable/carbon
54 * **Feature Description:** Implements communication over websocket according to OneM2M specifications.
55 * **Top Level:** Yes
56 * **User Facing:** Yes
57 * **Experimental:** Yes
58 * **CSIT Test:** https://jenkins.opendaylight.org/releng/view/iotdm/job/iotdm-csit-1node-basic-all-carbon/
59
60 odl-iotdmbundleloader
61 ---------------------
62
63 * **Feature URL:** https://git.opendaylight.org/gerrit/gitweb?p=iotdm.git;a=blob_plain;f=onem2mplugins/iotdmbundleloader/features/features-iotdmbundleloader/src/main/features/features.xml;hb=refs/heads/stable/carbon
64 * **Feature Description:** Provides REST API to dynamically install/uninstall/reinstall new OSGI bundles to Karaf.
65 * **Top Level:** Yes
66 * **User Facing:** Yes
67 * **Experimental:** Yes
68 * **CSIT Test:** N/A
69
70 odl-iotdmkaraffeatureloader
71 ---------------------------
72
73 * **Feature URL:** https://git.opendaylight.org/gerrit/gitweb?p=iotdm.git;a=blob_plain;f=onem2mplugins/iotdmkaraffeatureloader/features/features-iotdmkaraffeatureloader/src/main/features/features.xml;hb=refs/heads/stable/carbon
74 * **Feature Description:** Provides REST API to dynamically install/uninstall/reinstall new Karaf features from Karaf archive file.
75 * **Top Level:** Yes
76 * **User Facing:** Yes
77 * **Experimental:** Yes
78 * **CSIT Test:** N/A
79
80 Documentation
81 =============
82
83 There is some outdated documentation at our wiki page: https://wiki.opendaylight.org/view/IoTDM:Main
84
85 Some general information can be found in developer guide for IoTDM, see :ref:`iotdm_dev_guide`.
86
87 There is more actual developers documentation as README files in IoTDM's sources.
88
89 Security Considerations
90 =======================
91
92 Since this project implements OneM2M specifications including protocol bindings it is also opening multiple ports
93 for plugins providing mapping between protocol specific representation of data to the common format used by
94 onem2m-core. Port numbers opened by IoTDM depends on configuration of these plugins and also depends on number of
95 instances of the plugins.
96
97 There are some default server port numbers pre-configured for OneM2M related plugins,
98 e.g.: HTTP: 8282(TCP), CoAP: 5683(UDP), Websocket: 8888(TCP) which are enabled by default.
99
100 HTTPS and CoAPS communication can be used instead of unsecured versions but it must be configured properly.
101 There are implemented also other experimental plugins opening ports by default: odl-onem2mexample:: 8283(TCP),
102 dl-onem2medevice:: 8284(TCP) and 123(UDP)
103
104 The experimental features odl-iotdmbundleloader and odl-iotdmkaraffeatureloader are insecure in this version since
105 there are not implemented any security mechanisms yet.
106
107 Quality Assurance
108 =================
109
110 * `Link to Sonar Report <https://sonar.opendaylight.org/overview?id=org.opendaylight.iotdm%3Aiotdm-aggregator>`_ (0.6 %)
111 * `Link to CSIT Jobs <https://jenkins.opendaylight.org/releng/view/iotdm/job/iotdm-csit-1node-basic-all-carbon/>`_
112 * Other manual testing and QA information
113   HTTP communication tested manually by Postman collections and other communication (MQTT, CoAP, Websocket) tested
114   occasionally using some opensource tools.
115   We are using code coverage achieved by our CSIT test suites as QA metrics what is currently 35 %.
116
117 * Testing methodology. How extensive was it? What should be expected to work? What hasn't been tested as much?
118   We have defined CSIT test suites including list of test cases without implementation including description only.
119   These tests are marked as "excluded" so they are not executed by CSIT jobs.
120   There are described 736 tests and 278 of them are implemented. These tests are testing HTTP communication only.
121   Other communication protocols are not being tested by CSIT jobs now.
122
123 Migration
124 ---------
125
126 * Is it possible to migrate from the previous release? If so, how?
127   No, current release is backward incompatible.
128
129 Compatibility
130 -------------
131
132 * Is this release compatible with the previous release?
133   No
134
135 * Any API changes?
136   Yes, the REST API of onem2m-api feature has been modified and implementations of the OneM2M APIs have been
137   modified as well.
138
139 * Any configuration changes?
140   There was not any configurable module in previous releases.
141
142 Bugs Fixed
143 ----------
144
145 * List of bugs fixed since the previous release
146   Only bugs related to current release have been fixed.
147
148 Known Issues
149 ------------
150
151 There are several low priority issues opened in IoTDM's Bugzilla.
152 Here are some major issues:
153 7990 - Race condition after resource delete - https://bugs.opendaylight.org/show_bug.cgi?id=7990
154 4316 - "mni" and "mbs" does not work stable - https://bugs.opendaylight.org/show_bug.cgi?id=4316
155
156 End-of-life
157 ===========
158
159 * List of features/APIs which are EOLed, deprecated, and/or removed in this release
160   N/A
161
162 Standards
163 =========
164
165 Subset of functionality described in OneM2M specifications: http://onem2m.org/technical/published-documents
166
167 * TS 0001, version 2.10.0
168 * TS 0004, version 2.7.1
169 * TS 0008, version 1.3.2
170 * TS 0009, version 2.6.1
171 * TS 0010, version 2.4.1
172 * TS 0020, version 2.1.0
173
174 Release Mechanics
175 =================
176
177 * `Link to release plan <https://wiki.opendaylight.org/view/Iotdm:_Carbon_Release_Plan>`_