By Kurt Hochanadel, product manager at Eurotech.
In the past few years, the business world has adopted a new buzzword – Cloud computing. Although many industries are embracing Cloud computing, the embedded device market has yet to find a standard, cost-effective way to connect distributed devices to the Cloud. It can take weeks, months and even years to plan, procure, and deploy IT infrastructure to connect embedded devices to the network and capture valuable data. According to International Data Corporation, worldwide revenue from public IT Cloud services exceeded $16 billion in 2009 and is forecast to reach $55.5 billion in 2014. This rapid growth rate is five times the projected rate for traditional IT products (see Figure 1).
Embedded devices have gone from isolated tools to being a part of every-day life as they connect data over various ubiquitous networks. Networked devices are becoming commonplace among consumers and in industries ranging from healthcare to transportation, giving way to the arrival of the embedded Cloud. The embedded Cloud enables embedded developers to deploy services on robust, reliable and flexible communication infrastructure into the business enterprise.
The Device Cloud
Traditionally, data from embedded devices is either downloaded manually or through some proprietary means within a dedicated infrastructure. The data is downloaded at specified intervals, such as each night, or once per month as in utility bills. Many times the data is never used, or perhaps a user will refer to the data after a problem has occurred.
Device-to-Cloud solutions, that is, connecting devices to business logic through the cloud, can deliver valuable data between distributed devices and vital business applications using standard practices and commonly used methodologies. In many cases, utilising a cloud service saves time, money and increases efficiency by effectively acting on data in real time utilising sound business logic. However, developers must have the correct building blocks in place in order to get to market with a Cloud solution and leverage the benefits offered (see Figure 2).
The Device Cloud is a term coined by Eurotech (Figure 3) to describe how organizations can bring data from device to business application with an integrated solution to turn bits of data into valuable and actionable information. The Device Cloud stores the device data in the cloud, providing organisations access to that data in real-time through standard methodologies while also archiving the data in a secure redundant manner for easy use with analytic applications (see Figure 3).
The Device Cloud is also scalable, secure and many times more cost-effective than traditional infrastructure. As Cloud computing becomes more mainstream, organisations are evaluating whether a cloud solution can be an efficient alternative to traditional computing networks.
The benefits of storing data in the Cloud
Consumers and businesses alike have realised the benefits of storing data in the Cloud.
Most individuals are using the cloud in some capacity – e-mail, social networking, photo sharing sites, online banking, and thousands of other everyday uses. Storing device data, however, is more complicated than these consumer services but can reap even more value.
When device data is stored in the cloud, users can access that data anytime, and anywhere through secure online portals. Device data becomes available not only to one specific location or one manager, but to corporate hubs or any executive looking at data from an overall business perspective. Users can increase efficiency with the Cloud by allowing employees more flexibility in accessing important data, software programs and management functions. For instance, a manager who uses a Cloud-based device solution can work on tasks regardless of location, rather than needing to be at the office to perform these tasks.
Storing device data from a retail warehouse in the Cloud, for example, makes shipping and receiving data available to corporate headquarters in real-time – allowing for an immediate asset management system. Suppose a hot new toy was shipping in time for the holiday season. In the past, retailers might receive daily tallies of inventory. With Cloud computing, they could use RFID scanners to see an accurate picture of inventory at any given moment and redirect inventory, manage production and operations on timely data. The Cloud provides operational efficiencies that did not exist in the embedded device world before. For instance, in the healthcare industry, if a patient had a catastrophic event and was using a home health device connected to the Cloud, their doctor could receive an alert in real time, and life-saving systems could be deployed.
Building blocks for a device-to-Cloud solution
If an organisation decides to collect and store data from distributed devices in the cloud, there are important considerations during product development cycle that can make connecting to the Cloud simpler. Of course hardware and operating system are important building blocks on the device, but in the interest of space we will discuss an ideal and efficient interconnect protocol and application framework for a device-to-Cloud solution.
A variety of protocols connect embedded devices, such as HTTP or SOAP. Some of the drawbacks associated with these options include thousands of bytes sent as a header for the message, rigid formats, and point-to-point communication. HTTP and SOAP provide access to a single embedded device, and some network topologies cannot handle the bandwidth required as it builds up with hundreds of embedded devices. Making efficient use of bandwidth is also a cost-saving measure since some networks charge by the byte of data and it makes little sense to send messages with several thousand bytes of overhead.
IBM and Eurotech developed the Message Queuing Telemetry Transport (MQTT) protocol 10 years ago. As described at www.mqtt.org, the MQTT protocol enables a publish-and-subscribe messaging model in an extremely lightweight way. It is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium. MQTT provides publish-and-subscribe messaging that enables devices to send and receive alerts and data when significant events occur (see Figure 4).
With a single publisher and many subscribers, engineers can send information from a single point to many other devices or listeners interested in receiving the information. One can liken this concept to the social networking tool Twitter. A single person posts information, and many subscribers view the information simultaneously. Embedded devices can utilise the MQTT protocol to collect data from multiple devices while using limited bandwidth and providing the information to many subscribers. As a result, the system is relatively simple to set up and provides an ideal network interconnect protocol for device-to-Cloud solutions.
In addition to a lightweight and flexible interconnect, device-to-cloud solutions need a device application framework built so that connecting to the Cloud and adding the business logic is the simplest part of the final product development. In a device-to-cloud solution, the application framework should include all of the functions and utilities vital to make a product platform useful for the end application as well as for the long-term management of the product as it matures and evolves. In most cases this application framework includes functionality such as:
- Device management (OS updates, application updates, configuration management)
- Application abstraction (running multiple applications or plug-ins in the same environment).
- Application log management (Dynamic log level, Log file rotates).
- Application messaging infrastructure.
- Application event infrastructure.
- Application module management (Start/Stop/Unload/Load).
- Runtime statistics and meta data.
- Configuration management.
- Version management.
Fortunately, the open source community has provided an application framework that performs these functions and more. The specification to this framework has been provided by the OSGi Alliance. The original OSGi specification was completed about 10 years ago as the set-top box industry was struggling to find a common framework to run multiple applications on a single box while securely and reliably managing these applications within the embedded device environment. The OSGi framework can run on any Java platform, and OSGi technology adopters benefit from improved time-to-market and reduced development costs because OSGi technology provides for the integration of pre-built and pre-tested component subsystems.
Choosing a Cloud service
Developers can connect to the cloud over their own IT infrastructure, they can interface with public Cloud computing companies, or they can work with a third-party to deploy a hybrid solution of private and public Cloud capabilities to connect a device. Developers should choose a type of Cloud-based service depending on the end application and business logic that will be added to the solution, as well as their own business processes and in-house IT skill sets. The ideal device Cloud solution processes data coming from any device through a Cloud computing solution that offers high availability, scalability, and complete data security. By leveraging end-to-end solutions now becoming available in the embedded industry, customers can deploy their embedded devices and start receiving data immediately without the need to create provision and maintain a costly IT infrastructure.
Figure 1: According to International Data Corporation, Cloud offerings will gain significantly on traditional IT products by 2014.
Figure 2: In the past it could take years to connect embedded devices to the network and capture data.
Figure 3: Today, ready-made solutions like Eurotech's Everyware Device Cloud greatly reduce deployment time for IT departments.
Figure 4: The publish/subscribe communication model.