IoTSyS: A communication stack and integration …files.meetup.com/14335402/markus_jung_iotsys.pdfIoTSyS: A communication stack and integration middleware for the Internet of Things

Post on 30-Mar-2020

9 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

10.09.2014

Institute of Computer Aided Automation

Automation Systems Group

Vienna University of Technology

Vienna, Austria

http://www.auto.tuwien.ac.at

IoTSyS: A communication stack and integration middleware for the Internet of Things

Markus Jung

Part of computer science faculty at TU Vienna

Group lead by Ao. Univ. Prof. Dr. techn. Wolfgang Kastner

Research and teaching in the domain of automation

Industrial automation

Home- and building automation

Wireless Sensor Networks

Research areas

Deep integration

Security and Safety

Smart grids, Smart Cities, Internet of Things

Wireless sensor networks, Web of Things

Standardization (OASIS OBIX TC Member, Cooperation with KNX Association)

Automation Systems Group

IoTSyS

The Internet of Things – Interoperability Challenge

IoTSyS

Many application domains, a lot of (existing) technologies and protocols Interoperability Challenge!

Motivating application scenarios

IoTSyS

Smart Homes

Smart Buildings

Smart Grids

Heterogeneity is a problem

Existing Technologies

IoTSyS

State of the Art - Web services based integration of home and building automation:

DPWS

UPnP

OASIS Open Building Information Exchange

BACnet/WS

OPC UA

IoT related standards

Constrained RESTful environments (CoAP)

ETSI M2M

OMA Lightweight M2M Web objects

IPSO application profile

Popular Non-Web-Service technologies

Extensible Messaging and Presence Protocol (XMPP)

Message Queuing Telemetry Transport (MQTT)

Integration approaches

IoTSyS

We need a common standardized communication stack for the IoT

IoTSyS

• Open standard including the application layer service and information models

• Based on existing interoperable Web and Internet technologies

• Reusing existing standards as much as possible

Communication stack alternatives

IoTSyS

Feature Alternatives

Information Models & Application Layer Services

OASIS oBIX (or ETSI M2M)

OPC UA BACnet/ WS

OMA LWM2M

IPSO web objects

Custom

Information Encoding

XML JSON EXI Technology specific binary

Custom (text or binary-based)

Message exchange protocol

HTTP SOAP COAP XMPP Platform specific (DCOM, .NET Remoting, Java RMI, JMS)

Custom (TCP- or UDP-based)

Transport protocol

TCP UDP

Networking IPv4 IPv6

“Instead of running a control network specific building automation protocol such as BACnet/IP or KNX over 6LoWPAN, OBIX together with compression and UDP/IP binding may be a solution. Careful design of the OBIX objects and elements used would be important to keep packet sizes reasonable.”, 6LoWPAN: The Wireless Embedded Internet by Zach Shelby and Carsten Bormann, 2009

IoTSyS motivating idea

IoTSyS

IoTSyS technology choice

IoTSyS

Feature Alternatives

Information Models & Application Layer Services

OASIS OBIX OPC UA BACnet/ WS

OMA LWM2M

IPSO web objects

Custom

Information Encoding

XML JSON EXI Technology specific binary

Custom (text or binary-based)

Message exchange protocol

HTTP SOAP COAP XMPP Platform specific (DCOM, .NET Remoting, Java RMI, JMS)

Custom (TCP- or UDP-based)

Transport protocol

TCP UDP

Networking IPv4 IPv6

Internet of Things communication stack for „native“ IoT devices (e.g. 6LoWPAN devices based on Contiki) and integration middleware (BACnet, KNX, EnOcean, Wireless M-Bus, RFID, Weather Data)

OASIS OBIX used for a normalized device representation and M2M features like data points, histories and alarming

HTTP or better CoAP (async. comm. + group comm. + optional non-reliable) for RESTful interaction

Efficient encodings (JSON, EXI, schema-informed EXI)

IPv6 for addressing each device, datapoint

Peer-to-peer interaction for 6LoWPAN devices based on IPv6 multicast

HTML5 control interface at the gateway

Java based gateway (Raspberry PI), Contiki-based stack for 6LoWPAN devices

http://code.google.com/p/iotsys

IoTSyS

IoTSyS Stack

IoTSyS

IoTSyS Integration Middlware

IoTSyS

IoTSyS Gateway

Platform: Java 7

SCM: Mercurial

Build and Dependency Management: Gradle

Runtime: OSGi / Standalone

Protocol bundles: KNX, BACnet, EnOcean, W-Mbus, RFID, Weather data

Software: Tomcat 8, OBIX implementation with HTTP, CoAP, SOAP message exchange and XML, JSON, EXI, OBIX Binary message encoding, CouchDB

Security: SSL/TLS, username/password or certificate based client auth

Hardware: Raspberry PI + GPIO extension + USB comm. Modules

IoTSyS Devices

Contiki-based implementation

Prototype implementation for Z1 platform

Fact Sheet

IoTSyS

OBIX was designed around the REST paradigm from the very beginning.

Automation systems and datapoint orientation tends to be fitting better to REST oriented Web service than procedure or service oriented SOAP Web services

OBIX provides a simple object model + standardized representation of common features found in automation systems (datapoints, time series, alarming, watches, …)

OBIX 1.1 committee draft for public review (July, 2013) contains protocol binding to CoAP and message encodings for EXI and JSON.

Internet of Things and M2M: IPSO alliance advocates IP(v6) on smart objects relying on OBIX as object model + custom extension (c.f. IPSO application framework, Aug. 2012). ETSI oneM2M - TR 102966 advocates for using OBIX as common XML syntax for REST interaction with fieldbus protocols.

Why ?

IoTSyS

IoTSyS

Object model

Everything is modeled as object.

An object can have a set of standardized attributes and may contain an arbitrary number of children objects.

An object can be a basic value object having a „val“ attribute with a value based on XML schema data types, a list, operation or reference to any other object.

Standardized objects: Nil, Range, Weekday, Units, …

Standardized services:

Point semantic: writable point

Watches: observe datapoints

Histories: query historical values

Feeds: retrieve latest events

Alarming

OBIX contracts can be used to define templates and rules how to represent KNX datapoint types, group communication objects, devices and different views. OBIX contracts are exchanged out-of-band

Security:

Apply state-of-the art transport level security (HTTPS, SSL/TLS, DLTS)

Authorization implementation specific

OBIX 1.1 core library

IoTSyS

OBIX example object

REST interaction with HTTP:

OBIX 1.1 object interaction

IoTSyS

OBIX Request HTTP Method Target

Read GET Any object with an ref

Write PUT Any object with an href and writable=true

Invoke POST Any op object

Delete DELETE Any object with an href and writable=true

IoTSyS OBIX Contracts

IoTSyS

IPv6 multicast address on every oBIX basic data point (bool, real, int)

Group similar devices

Group sensors and actuators (e.g. push button and light switch actuator) allows to avoid single point of failure

IoTSyS Group Communication

IoTSyS

IoTSyS Obelix

IoTSyS

• HTML5 User Interface

• Generic OBIX browser

• AngularJS + jsPlumb

• Wire objects graphically together to assign group communication relationship

• Group communication is persisted directly on the IoTSyS devices and within a group address table at the gateway

Temperature Controller

Weather Controller

Binary numeric operations

+, -, *, /, %

Logical operations

AND, OR, XOR, NAND

==, <, <=, >=, >

IoTSyS Logic

IoTSyS

IoTSyS Gateway

IoTSyS

• Java-based gateway

• OSGI container

• For each technology a separate bundle

• Based on the OBIX abstraction services such as discovery, histories, group communication, etc. are provided.

Any Contiki-compatible hardware platform

E.g. Zolertia Z1 platform (TI MSP430 + CC 2430) + phidgets

IoTSyS Devices

IoTSyS

Any embedded PC platform supporting Java

E.g. Raspberry PI + extension boards + USB comm. Modules “Swiss army knife for building automation systems”

IoTSyS Gateway

IoTSyS

Comprehensive Lab for automation systems

IoTSyS Test lab @ Automation Systems Group

IoTSyS

IoTSyS demo suitcase - BACnet

IoTSyS

LEDs simulate HVAC system:

• Valves

• Ventilation

• Heat Register

• Cool Register

Potentiometer to simulate outside temperature

• PXC22-E.D. Compact Controller (BACnet/IP)

• Simulated HVAC system controlled through analog outputs (10V)

• Room is simulated through a virtual OBIX object

IoTSyS demo suitcase – KNX room model

IoTSyS

• KNX text display + alarm signal

• KNX Room thermostat

• Displays Comfort-Mode, Standby Mode

• Target value difference (+/- 3 Grad)

• KNX switching actuator

• KNX 3-fold push button

• Toggles light

• Manual alarm signal

• 3rd button dynamic configurable

IoTSyS demo suitcase– EnOcean

IoTSyS

• 6 LoWPAN temperature sensor

• EnOcean contact sensor

• If contact open standby mode

• In case of bad weather alarm

Zolertia WSN Gateway

Wifi AP

DHCP Server

6LoWPAN border router

IoTSyS Gateway on Raspberry Pi deployed

Java 7

OSGI based gateway

USB connectors and GPIO extensions to various bus systems

IoTSyS demo suitcase – internals

IoTSyS

IoTSyS demo suitcase – internals

IoTSyS

• USB connectors for Raspberry PI

• Ethernet plug for Internet-uplink and local DHCP clients

www.iotsys.org

IoTSyS

top related