0% found this document useful (0 votes)
40 views18 pages

Tutorial On O-MI/O-DF Standards: Asad Javed

The document provides an overview of the O-MI and O-DF standards for IoT messaging and data formatting. It describes how O-MI provides a framework for publishing and subscribing to real-time device information represented using the O-DF data format. It also outlines two assignments - to analyze the O-MI/O-DF design and implement a demo using real traffic data, and to propose a solution to increase the standards' scalability.

Uploaded by

helsinkiboy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
40 views18 pages

Tutorial On O-MI/O-DF Standards: Asad Javed

The document provides an overview of the O-MI and O-DF standards for IoT messaging and data formatting. It describes how O-MI provides a framework for publishing and subscribing to real-time device information represented using the O-DF data format. It also outlines two assignments - to analyze the O-MI/O-DF design and implement a demo using real traffic data, and to propose a solution to increase the standards' scalability.

Uploaded by

helsinkiboy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

Tutorial on O-MI/O-DF Standards

Asad Javed
Department of Computer Science, Aalto University
[email protected]

January 26, 2018


Table of Contents

I Introduction to O-MI/O-DF
I Softwares and Tools
I Reference Implementation Demo
I Sensoring "under the hood"
I Assignments Description
I Summary and Q&A

ELEC-E7320: Internet Protocols


January 26, 2018
2/18
Introduction
I Defined by The Open Group1 as Open Messaging
Interface (O-MI) and Open Data Format (O-DF).
I Provide peer-to-peer communication and real-time
interaction between devices.
I Capabilities: IoT CRUD (Create, Read, Update, Delete)
I O-MI: Provides a framework to publish and consume
real-time information.
I O-DF: Represents a data payload for IoT applications.

1
http://www.opengroup.org/
ELEC-E7320: Internet Protocols
January 26, 2018
3/18
Introduction

ELEC-E7320: Internet Protocols


January 26, 2018
4/18
O-DF
I It is defined as a simple ontology, specified using XML
Schema.
I Generic enough for representing "any" object and
information.

ELEC-E7320: Internet Protocols


January 26, 2018
5/18
O-MI

I Enables communication between heterogeneous devices


and information systems.
I O-MI node act both as a "server" and as a "client".
I Maintains database where O-DF data model, consisting of
Objects and InfoItems, is stored.
I O-MI properties:
I Protocol independent
I Self-contained messages
I Protocol-agnostic messages
I Different payload formats
I Specifying live time
I Publication and discovery of new services and metadata

ELEC-E7320: Internet Protocols


January 26, 2018
6/18
O-MI Basic Operations

Write information, such as sensor values, setpoints, alerts, etc.


Read current and historical information, alerts, other events.
Subscribe to information with or without callback
Cancel subscriptions before expiration
ELEC-E7320: Internet Protocols
January 26, 2018
7/18
An example Read message

ELEC-E7320: Internet Protocols


January 26, 2018
8/18
Reference Implementation Components

ELEC-E7320: Internet Protocols


January 26, 2018
9/18
Softwares and Tools

I Java 1.8
I SBT (Simple Build Tool)
I Wireshark
I Git
I Java IDE
I Eclipse
I IntelliJ IDEA

ELEC-E7320: Internet Protocols


January 26, 2018
10/18
Reference Implementation
I Developed using Java and Scala
I Test server available:
https://otaniemi3d.cs.hut.fi/omi/node/
I Run pre-compiled server:
I Code at GitHub: https://github.com/AaltoAsia/O-MI
I Download the latest release version (.zip) and unpack it.
https://github.com/AaltoAsia/O-MI/releases
I Go to the <Extracted folder>/bin and run .bat (for Windows)
or .sh (for Linux) script file. The server can be accessed
with URL localhost:8080
I "application.conf" file in <Extracted folder>/configs can be
used to edit server configurations.
I Live Demo
I Compiling and packaging from code: instructions available
in code repository.

ELEC-E7320: Internet Protocols


January 26, 2018
11/18
Sensoring "under the hood"
I create_odf.sh
I test_omi_write.sh
I Send with curl:
curl --header "Content-Type:text/xml;charset=UTF-8"
--data "‘./test_omi_write.sh‘" "http://localhost:8080/"
I Result:

ELEC-E7320: Internet Protocols


January 26, 2018
12/18
Assignments Description

I Assignment 1: Analyze and evaluate the design of O-MI


/O-DF
I Read the protocol specifications and analyze 5 elements.
I Run reference implementation, perform all basic
operations, create Objects and InfoItems, and write a small
documentation about your work.
I Implement a wrapper function (front-end service/external
agent) to expose real-time traffic data through O-MI/O-DF
standards.
I Evaluate the performance of this wrapper service (e.g. total
time taken, throughput, latency, etc).
I Assignment 2: Propose and implement solution to increase
the scalability of O-MI/O-DF

ELEC-E7320: Internet Protocols


January 26, 2018
13/18
Assignment 1
I 1.1: Read the protocol specifications and analyze 5
elements.
I 1.2: A wrapper service to expose real-time Digitraffic road
data through O-MI/O-DF (Any programming language).
I Fetch road traffic data in JSON using HTTP GET. The APIs
are available online.
https://tie.digitraffic.fi/api/v1/data/
documentation/swagger-ui.html#/
I Parse JSON data and convert them into O-DF Objects and
InfoItems with proper key-value mapping.
I Create O-MI write envelope/message with appropriate
Objects and InfoItems.
I Send the write message to the O-MI sandbox (back-end
server) using HTTP POST. You need to run the O-MI server
at the backend.

ELEC-E7320: Internet Protocols


January 26, 2018
14/18
Assignment 1

I 1.3: Evaluate the performance of your wrapper and the


protocol design.
I Measure total time taken to send write message
I Measure the throughput
I Compare the design of these standards with MQTT or other
similar protocols

ELEC-E7320: Internet Protocols


January 26, 2018
15/18
Assignment 2

I Programming language: Java or Scala


I Propose and implement solution to increase the scalability
of O-MI/O-DF in terms of:
I Event subscriptions:
- Consistent hashing for data distribution, subscriptions will also
distribute.
- Lookup table for storing information.
I Storage database:
- Use distributed database, for example Hadoop, Warp10, etc.
- More information can be found at: https://github.com/
AaltoAsia/O-MI/blob/master/docs/DatabaseGuide.md

ELEC-E7320: Internet Protocols


January 26, 2018
16/18
References

I (Open Messaging Interface O-MI)


http://www.opengroup.org/iot/omi/
I (Open Data Format O-DF)
http://www.opengroup.org/iot/odf/index.htm
I (Reference Implementation Code)
https://github.com/AaltoAsia/O-MI
I (Digitraffic Road API) https://tie.digitraffic.fi/api/
v1/data/documentation/swagger-ui.html#/
I Främling, K., Kubler, S., & Buda, A. (2014). Universal
messaging standards for the IoT from a lifecycle
management perspective. IEEE Internet of things journal,
1(4), 319-327.

ELEC-E7320: Internet Protocols


January 26, 2018
17/18
Thank You
Q&A

ELEC-E7320: Internet Protocols


January 26, 2018
18/18

You might also like