IoTDM
Welcome to IoTDM
Introduction
The IoT Data Management (IoTDM) project is an open source implementation of oneM2M running on OpenDayLight. It is about developing a data-centric middleware that will act as a oneM2M compliant IoT Data Broker and enable authorized applications to retrieve IoT data uploaded by any device.
Project Facts
Project Creation Date: December 9th, 2014
Lifecycle State: Lithium Release
Primary Contact: Lionel Florit (lflorit@cisco.com), John Burns (johnburn@cisco.com)
Project Lead: John Burns (johnburn@cisco.com)
Committers:
lflorit@cisco.com Lionel Florit, ODL userID lflorit
johnburn@cisco.com John Burns, ODL userID jburns
jmedved@cisco.com Jan Medved
feel free to join our slack: https://join-iotdm.herokuapp.com/
Mailing List: iotdm-dev@lists.opendaylight.org
Archives: mailing list archives
Meetings: See Community Meetings
Repository: git clone https://git.opendaylight.org/gerrit/iotdm
Jenkins: jenkins silo
Gerrit Patches: code patches/reviews
Bugs:
Documentation
Getting started for users
There are several ways to use IoTDM. You may want to just send CRUD to it, you may want to install it locally and CRUD to it, or you may want to access the code and develop modules for it.
If you just want to exercise the APIs and don't want to touch the code, then follow the following procedure:
1. create a local directory and download the tar file distribution from tar.gz file here or zip file zip file here
2. rename your file to “onem2mall-karaf-1.0.0-SNAPSHOT.tar.gz” or “onem2mall-karaf-1.0.0-SNAPSHOT.zip” (if you download a zip file)
3. cd to that directory and type
tar –xvf onem2mall-karaf-1.0.0-SNAPSHOT.tar.gz
or
unzip onem2mall-karaf-1.0.0-SNAPSHOT.zip
(if you download a zip file)
4 cd into onem2mall-karaf-1.0.0-SNAPSHOT/bin
cd onem2mall-karaf-1.0.0-SNAPSHOT/bin
5. Launch IoTDM
./karaf
6. Prompt changes to opendaylight-user@root>
7. Wait for the karaf features to load
8. Verify oneM2M modules are "active"
opendaylight-user@root>list | grep onem2m
256 | Active | 80 | 0.0.1.SNAPSHOT | onem2m-api
257 | Active | 80 | 0.0.1.SNAPSHOT | onem2m-core
259 | Active | 80 | 0.0.1.SNAPSHOT | onem2m-notifier
261 | Active | 80 | 0.0.1.SNAPSHOT | onem2m-protocol-coap
262 | Active | 80 | 0.0.1.SNAPSHOT | onem2m-protocol-http
9. IoTDM is now running on port 8181 and 8282
10. Initialize the resource tree (if prompted for a username/password type admin/admin).
Send a POST to :
localhost:8181/restconf/operations/onem2m:onem2m-cse-provisioning
Headers
Content-Type application/json Accept application/json Authorization Basic YWRtaW46YWRtaW4=
Authorization is used for (user:admin, password:admin)
JSON Body
{ "input": { "onem2m-primitive": [ { "name": "CSE_ID", "value": "InCSE1" }, { "name": "CSE_TYPE", "value": "IN-CSE" } ] } }
This will create a tree called ODL-oneM2M-Cse. You are ready to exercise the CRUDs. See API examples here
A more convenient tool is Postman, we create a collection for you to try iotdm, just click the link and import the collection. https://www.getpostman.com/collections/ff0b20ed5f4d574f6fb5
Video tutorial: https://www.youtube.com/watch?v=FXjkJgw01Yo
Information for developers
If you are unfamiliar with OpenDaylight development see the core tutorials project.
Make sure your development environment is setup:
Getting the iotdm code from the repository:
git clone https://git.opendaylight.org/gerrit/p/iotdm.git cd iotdm git checkout stable/beryllium
Build the code:
mvn clean install -DskipTests
To bring up the iotdm onem2m features in karaf, if you have a successful build,
cd onem2mall/karaf/target/assembly/bin ./karaf
The system is ready for CRUD operations via CoAP (Port 5683) or HTTP (Port 8282).
Externally Consumable APIs
IOTDM OneM2M feature
We do our best to implement IoTDM as closely to the oneM2M spec as possible. Keep in mind that the specification is still evolving. Detailed information about what is supported from the oneM2M is available here for the Boron release (Aug 2016).
RESTconf is also supported but it is a non-oneM2M standard method for accessing the tree.
Bundles providing the API: odl-iotdm-onem2m
REST API commands include:
onem2m-request-primitive for CRUDN
Examples of CRUDN calls and JSON formats are available here
Plugins Overview
It is possible to extend the functionality of IoTDM with the addition of ODL's plugin architecture. See the following got an introduction to adding IOTDM plugin's. Video Tutorial: https://www.youtube.com/channel/UCQFkSjC4Ed7GzuJH51QR5eg
Client API
GUI
Requirements
Release Planning
Release | Release Plan | Release Notes | Release Review | Installation Guide | User Guide | Developer Guide | Operations Guide | How-To's/Tutorials |
---|---|---|---|---|---|---|---|---|
Lithium | - | - | - | |||||
Beryllium | - | - | - | - | - | |||
Boron | - | - | - | - | - | |||
Carbon | - | - | - | - | - |
If you'd like to attend our weekly calls, please send an email to lflorit@cisco.com
Some information below are deprecated. IoTDM sources includes some readme files with more actual documentation.
Architecture Overview
Release Notes
Report Bugs & Discussion
Join our Slack : https://join-iotdm.herokuapp.com/
Postman Collection
Automatic Create a resource tree. https://www.getpostman.com/collections/ed66e63ce1bdca37a568 Video Link: