Devices in the Cloud
Delivering Device Data to the Enterprise
To accommodate the vast number of devices connecting the world over and let them also connect with the enterprise, a machine-friendly version of the Enterprise Service Bus with appropriate protocols is an attractive solution.
ROBERT ANDRES, EUROTECH
Page 1 of 1
Whether you believe AT&T’s prediction of 50 billion connected devices by 2020 or IBM’s prediction of 1 trillion devices by 2015, the machine-to-machine (M2M) communications market is spreading like wildfire. Along with the proliferation of these connected devices, there is an increasing need for the embedded world to converge with the enterprise technology world to integrate data and bring value into the enterprise. The growth forecast for this market will depend strongly on the integration and availability of connected devices and the data they provide to the enterprise.
Today’s M2M solutions face some of the same issues enterprise IT organizations have already inherently integrated. In M2M there is a vast array of dissimilar applications, protocols and devices focused primarily on individual vertical market requirements and specific processes. A key to success for the enterprise IT market was the adoption of the Enterprise Service Bus (ESB) concept.
An ESB is middleware that resembles a universal message-oriented communication backbone for enterprise applications. The primary use of an ESB is to integrate enterprise applications across heterogeneous and complex software environments. ESB solutions are designed to do two things: hide complexity by handling complex details in the background, and simplify access by allow developers to access and interact with other software components in a common way.
Now embedded developers can apply the same concepts in M2M that solved implementation barriers in the enterprise IT world and implement an optimal “Enterprise Service Bus for Machines,” by applying the ESB model to the device environment. Without a unifying platform in an M2M solution, you get multiple different integration methods that lead to inconsistency and higher cost of management and change. Instead, by developing an integration platform, you solve this problem by effectively linking device networks and applications and separating the data producers (devices) and data consumers (applications).
Keep in mind that M2M is incredibly complex because the data producers may be constrained in an embedded environment with little processing power, limited tooling and low network bandwidth. To implement the ESB for Machines, an enabling mechanism using technologies like efficient network protocols and cloud solutions plays a vital role.
Sending Data to the Enterprise
The first step in implementing an ESB for Machines is enabling the array of distributed devices and sensors to deliver their value or data. The critical success factor for the traditional ESB is the messaging construct operating asynchronously through publish and subscribe mechanisms, supporting new ways of managing the interactions between producers and consumers. In essence, the data is packed in messages that can be self-describing and discoverable and therefore interoperable within the enterprise. This mechanism was accomplished in the enterprise with broker technologies using substantial networking bandwidth and computational power.
Learning from the enterprise while also understanding that M2M solutions are rarely deployed in a robust network environment, means that the M2M messaging protocol must be lightweight and efficient but still modeled in a publish and subscribe format.
The Message Queue Telemetry Transport (MQTT) protocol is an open source protocol designed specifically for the M2M environment and is an excellent solution. MQTT is an interconnect protocol that delivers data to the ESB and is very efficient and lightweight. MQTT separates (decouples) producers and consumers of data and uses a publish/subscribe architecture (Figure 1). Decoupling publishers and subscribers makes the system scalable to large numbers of publishers and subscribers, and also allows for the delivery of real-time data without dependencies or limitations. With MQTT, producers publish the data and consumers subscribe to the data. The data is sent automatically in an asynchronous manner when it is published, instead of having to be requested.
Decoupling producers and consumers of M2M device data.
MQTT sends and receives data in the form of messages to and from applications and devices over TCP/IP network connections. The protocol is optimized for low bandwidth communication networks with brief messaging headers that conserve bandwidth. MQTT uses many of the advantages of TCP that some software developers ignore. For example, once you establish the TCP socket, you can send a few bytes alone without any overhead and using far less bandwidth than other protocols. MQTT also uses the TCP level to acknowledge the receipt of information, rather than requiring an acknowledgement at a higher level.
Just as in traditional ESB messaging, MQTT enables devices to send and receive alerts and data when significant events occur, allowing for flexible information flow from “many to many” instead of just “one to one.” Independent publishers and subscribers allow developers to collect data from multiple devices and then provide the information to many subscribers or applications.
The MQTT transport protocol is completely agnostic to the data payload that it carries. The protocol mechanics are designed to assign data payloads with topics but do not impose any particular data representation or format on the contents of the payload. The protocol allows you to link any kind of sensor with any kind of enterprise application, so you do not have to worry about how the data gets from point A to point B. Since you can send any type of data, MQTT is valuable for many types of data and devices.
A critical component for adoption is the ease of implementing the MQTT client software for porting into thousands of devices and sensors. Since MQTT is open source and has continued growing support, there is free client software available in many languages such as C, C++, Perl, Java, Python and many more. Almost any device that supports an IP interface should have little problem finding a client solution to fit its purpose.
Integration Platforms to Solve Complexity Problems
In order to effectively use data in the enterprise, the data must be captured then delivered to myriad disparate systems. As shown in Figure 2, the landscape can be chaotic with the typical monolithic solution. There is always going to be a growing enterprise demand to have the data both available and timely, and without proper planning and correct architecture these types of M2M deployments will vastly limit their effectiveness. The ESB for Machines must provide this decoupling, “one to many” approach to simplify and future proof M2M applications as the traditional ESB model has done for IT systems.
The monolithic nature of today’s M2M solutions.
Cloud services and an integration platform using MQTT can give developers the ability to connect any type of device to any type of application. The integration platform bridges the M2M world with the IT world, offering a suite of cloud services that enable development, execution and governance to connect any combination of on-premises and cloud-based processes, services, applications and data within individual or across multiple organizations. The integration platform includes (cloud) services for protocol bridging, messaging transports, transformation, routing, service virtualization, adapters, registry/repository, development tools and others.
On the M2M side, the integration platform includes the broker technology to publish and subscribe data from the vast network of M2M devices. Because managing the devices is just as important as managing the data, the integration platform also provides tools for device management including software and firmware configuration and update. Using MQTT to provide updates to the OS and firmware as well as plug-ins for new processes further enhances the capabilities and enablement. For the enterprise side, the integration platform first and foremost has a robust set of connectors with the ability to quickly add more as new services and technologies emerge. The platform provides the tooling and web services to integrate the data as needed to the business enterprise.
50 million or 1 trillion M2M devices delivering services and data into the fabric of the business enterprise demand robust tools and powerful integration platforms. Decoupling the data producers from the data consumers using MQTT and state-of-the-art cloud technologies includes the basic ingredients necessary to build the kind of integration platforms that significantly reduce the complexity, cost and risk when developing and deploying M2M solutions to deliver device data to the enterprise.