IoT Developer’s Software Toolkit. Part II: Middleware And M2M Communication

October 22, 2015

Recently we took a close look at the main operating systems and frameworks for various appliances of the Internet of Things. In the second part of the article, let’s check out tools for machine-to-machine communication and middleware to use with your IoT system.

M2M Communication

The rapid increase in numbers of smart things, from fridges to cars and from humidity sensors to door locks, has inevitably led to significant fragmentation in terms of the ways, in which devices talk to each other and/or to a central hub.

Machine-to-machine communication solutions are in most cases created to solve this problem and make interaction between all kinds of hardware as smooth and seamless as possible.

OpenHAB

Aimed at the host of smart home devices released to date, OpenHAB is a “vendor-neutral and hardware/protocol-agnostic” platform that can work on any device capable of running a Java Virtual Machine (JVM). That means it’s good to go on any computer running Windows, OS X or Linux, including most micro-devices like Raspberry Pi.

The open-source solution comes with a set of web-based UIs, as well as native apps for Android and iOS. OpenHAB claims to be able to integrate virtually any smart home systems, but also can be integrated into another system through an API.

OpenHAB supports more than a hundred technologies, services and protocols, including Zwave, Withings, Nest, Dropbox, Twitter, and so on. The system also has an integrated rule engine, in which rules are written in a Java-like language and can be triggered by all kinds of events. Parts of rules can be reused as scripts.

The Thing System

Another open source solution in the pack, the Thing System promises users to make them finally able to take control of their things. The range of things to take control of is quite long, too, from Nest and Apple TV to Samsung’s smart air conditioners and Cube Sensors.

The heart of the solution is called a steward system. Written in Node.js, it’s lightweight and flexible, and can run on pretty much any computer, no matter how resource-restricted it is.

The creators of the Thing System encourage third-party developers to build their own clients using the steward and contribute to its code base.

Paraimpu

Named after a variant of a Sardinian word that can be translated as “mediator,” Paraimpu positions itself as a social tool that allows users to connect, manage and mash up their smart devices and online services.

The service emphasizes its social aspect, which means that users are encouraged to share their connected things and produced data with friends, as well as play with the others’ shared stuff.

As opposed to the first two M2M communication tools of this overview, Paraimpu is a fully functional cloud-based platform that employs the freemium model. The free tier lets you create, edit, run and share up to four things with one communication between any thing and Paraimpu per minute. The premium version, pricing of which isn’t disclosed on the website, allows 14 things and three communications per minute.

Middleware

iottoolkit2-02

Another crucial element in building Internet of Things appliances, middleware can be described as an abstraction level necessary to connect different devices that also provides API for communications on the physical level. The definition of middleware in the domain of the Internet of Things can seem vague and change depending on who’s talking. If you want to familiarize yourself with its different aspects, we’d recommend reading this detailed post.

Meanwhile, here’s a list of a few middleware offerings from different providers worth attention.

MachineShop

This enterprise-level middleware platform can be used in a wide range of environments, from public cloud to on-premise deployment to other options like hybrid or EDGE. The main idea here is that the platform can be seen as a large collection of services with RESTful APIs, which developers can use as building blocks for their products.

This middleware is compliant with everything an enterprise solution should be compliant with, including Cisco IoT Blueprint for Edge Computing and Industrial Internet Consortium open interoperability standards. In addition to that, it promises to be able to connect to all the major public cloud providers.

ProSyst

ProSyst is another large-scale middleware provider focused on connection and managing IoT devices in the cloud. The range of usage of the solution is quite wide, from eHealth and connected cars and to smart homes and industrial appliances.

The middleware also allows to conduct remote diagnostics and servicing of the connected devices, as well as implement complex use cases for context-aware IoT systems like multifunctional house monitoring solutions.

IoTSys

An open source solution created with EU funding, IoTSys doesn’t seem to be actively developed anymore but could serve a good basis for a home-grown middleware product.

The middleware works as a gateway for sensor and actuator systems. The project’s stack includes standards (and proposed standards) such as IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN), OASIS Open Building Information Exchange (oBIX), Constrained Application Protocol (CoAP), and Efficient XML Interchange.

OpenIoT

Like IoTSys, OpenIoT is a EU-funded project, which means it can be used as a building block for any other solution thanks to its open nature.

The middleware is created for sensor networks and promises to “support flexible configuration and deployment of algorithms for collection, and filtering information streams stemming from the internet-connected objects, while at the same time generating and processing important business/applications events.”

The Internet of Things appliances are complex systems with multiple hardware and software layers, and building them won’t become any easier in the future, as new concepts and use cases appear on a daily basis. It is, however, a highly exciting world of ever-changing technology paradigms and solutions.

Feel free to share which communication systems, middleware, and platforms you use for your own development – let’s discuss!