Jump to: navigation, search

IoTDM:Main

IoTDM Facts

Project Creation Date: December 9th, 2014
Lifecycle State: Lithium Release
Type: {{{type}}}
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/
IRC: freenode.net #opendaylight
Mailing List: iotdm-dev@lists.opendaylight.org
    Archives: mailing list archives
Meetings: See global meetings page
Repository: git clone https://git.opendaylight.org/gerrit/p/iotdm
Jenkins: jenkins silo
Gerrit Patches: code patches/reviews
Bugs:

[[Category:{{{type}}} Projects]]

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 Information

Project Proposal

Git patches and reviews

Jenkins


Release Release Plan Release Notes Release Review Installation Guide User Guide Developer Guide Operations Guide How-To's/Tutorials
Lithium Release Plan Release Notes Release Review - User Guide Developer Guide - -
Beryllium Release Plan Release Notes Release Review - - - - -
Boron Release Plan Release Notes Release Review - - - - -
Carbon Release Plan - - - - - - -

If you'd like to attend our weekly calls, please send an email to lflorit@cisco.com

Architecture Overview

Overview


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

IoTDM:PythonAPI

IoTDM:JavaClient

GUI

IoTDM:GUI

List of all subpages

Iotdm:Beryllium Release NotesIotdm:Beryllium Release ReviewIotdm:Boron Release Notes
Iotdm:Lithium Release NotesIotdm:Lithium Release PlanIotdm:Lithium Release Review
Iotdm:MQTT-HowToIotdm:MainIotdm: Beryllium Release Plan
Iotdm: Beryllium Release ReviewIotdm: Boron Release PlanIotdm: Boron Release Review
Iotdm: Carbon Release Plan

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: