Open research

In the spirit of free and open source software the central topic of this site is to make my research open to the public. My methodology is freely available via the internet, along with any data or results extracted or derived from them. This permits collaboration, which anyone may participate at any level of the project. So feel free to contribute on Github.

Homepage » M2M - Machine to Machine technology

M2M

Use cases

Type and public safety Description
Security and public safety surveillance systems, control of physical access (e.g. buildings), environmental monitoring (e.g., for natural desasters), backup for landlines
Smart grid electricy, gas, water, heating, grid control, industrial metering, demand response
Tracking and tracing order management, asset tracking, human monitoring
Vehicular telematics fleet management, car/driver security, enhanced navigation, traffic info, tolls, pay as you drive, remote vehicle diagnostics
 Payment point of sale, ATM, vending machines, gaming machines
Healthcare monitoring vital signs, supporting the aged or handicapped, web access telemedicine points, remote diagnostics
Remote maintenance and control Industrial automation, sensors, lighting, pumps, vending machine control
Consumer devices digital photo frame, digital camera, ebook, home management hubs

Source: http://www.iith.ac.in/~tbr/teaching/presentations/15.pdf

Examples

Resources

Devices must communicate with each other (D2D). Device data then must be collected and sent to the server infrastructure (D2S). That server infrastructure has to share device data (S2S), possibly providing it back to devices, to analysis programs, or to people. From 30,000 feet, the protocols can be described in this framework as:

Ajax, Web services, RESTful

Ajax, Web services, RESTful communication protocols. These sit on top of HTTP, thus suffering from the same limitations as HTTP. Many of these protocols also require extensive processing and have a huge code size footprint. Many service providers promote the use of these protocols since their backend infrastructure is based on standard web servers that cannot handle any other type of protocol than HTTP.

Protocols

AllJoyn

by AllSeen Alliance
The AllSeen Alliance consists of several manufacturers. Qualcomm is the star player in the alliance, but other leading members include Haier, LG Electronics, Panasonic, Sharp, Silicon Image and TP-LINK. Lower-level members include Canary, Cisco Systems, D-Link, doubleTwist, Fon, Harman, HTC, Letv, LIFX, Lite-on, Moxtreme, Musaic, Sears Brand Management Corporation, Sproutling, The Sprosty Network, Weaved and Wilocity.

A persistent publish/subscribe solution promoted by Qualcomm. This protocol has the limitation of being mainly targeted towards home electronics. This protocol includes code for marshalling and unmarshalling (encode/decode) data and suffers from the same size and proxy problems as MQTT

XMPP

by XMPP Standards Foundation
An open source persistent publish/subscribe protocol that can also be tunneled over HTTP. Data is encoded in XML, thus it includes a huge code size footprint for the device.

MQTT

by IBM
MQTT is a publish/subscribe messaging system that allows clients to publish messages without concerning themselves about their eventual destination; messages are sent to an MQTT broker where they may be retained. Other clients can subscribe to these messages and get updated by the broker when new messages arrive. To allow for the variety of possible situations where MQTT can be put to use, it lets clients and brokers set a “Quality of Service” on a per-message basis from “fire and forget” to “confirmed delivery”. This protocol is not suitable for environments that include a proxy, as it is not designed to work via a proxy.

At a glance…

CoAP

by IP for Smart Objects Alliance
CoAP is a software protocol intended to be used in very simple electronics devices that allows them to communicate interactively over the Internet. It is particularly targeted for small low power sensors, switches, valves and similar components that need to be controlled or supervised remotely, through standard Internet networks. Source: Wikipedia

DDS

by Object Management Group
In contrast to MQTT and XMPP, the Data Distribution Service (DDS) targets devices that directly use device data. It distributes data to other devices. While interfacing with the IT infrastructure is supported, DDS’s main purpose is to connect devices to other devices. It is a data-centric middleware standard with roots in high-performance defense, industrial, and embedded applications. DDS can efficiently deliver millions of messages per second to many simultaneous receivers.

AMQP

by AMQP working group
The Advanced Message Queuing Protocol (AMQP) is sometimes considered an IoT protocol. AMQP is all about queues. It sends transactional messages between servers. As a message-centric middleware that arose from the banking industry, it can process thousands of reliable queued transactions.
AMQP is focused on not losing messages. Communications from the publishers to exchanges and from queues to subscribers use TCP, which provides strictly reliable point-to-point connection. Further, endpoints must acknowledge acceptance of each message. The standard also describes an optional transaction mode with a formal multiphase commit sequence. True to its origins in the banking industry, AMQP middleware focuses on tracking all messages and ensuring each is delivered as intended, regardless of failures or reboots.

Interesting articles on protocols

Platforms

Octoblu Meshblue

Projects

Tutorials

Other platforms

Broker (for MQTT)

A broker in MQTT handles receiving published messages and sending them on to any clients who have subscribed.

Mosquitto

C, small standalone binary, fast, standards-compliant/complete, MQTT only

RabbitMQ

Erlang, enterprise quality, larger footprint, MQTT plugin to AMQP broker

Mosca

Mosca is a node.js mqtt broker.

Other brokers

Frameworks (for MQTT)

Tools (for MQTT)

Events