
This article is the conclusion to a four-part series:
– In Part 1, we reviewed the choices facing an embedded developer who needs to build wireless networking into an IoT device (that is, the Thing in the Internet of Things).
– In Part 2, we discussed the different type of IoT devices, and the design choices that you face when designing the hardware and software architectures.
– In Part 3, we looked at the Internet itself, how IoT devices make use of it.
The Cloud
The Cloud: This is another interesting buzzword. When I was Director of Engineering at Teleglobe Canada, every time we sat in a meeting room to design a network, we drew it as a cloud. A network is a cloud. The Internet is a cloud. And cloud computing is nothing more than an array of networked computers that allow you to offload processing tasks from your embedded system. The same is true for data storage: why store data locally, when you can store it in a secured data centre, with guaranteed power and back-ups?
There is, of course, one fundamental assumption in cloud computing: The network is always available!
So “cloud computing” is a term coined to put a simple name on something that has become very complex. Many companies have launched services that try their best to hide this complexity; these include Apple’s iCloud, Google Cloud Platform, Microsoft SkyDrive, and others. These Cloud computing/storage systems are intended for use with desktop and mobile personal computers. Embedded developers need something similar for IoT devices.
Industry analysts are forecasting the creation of billions of IoT devices by 2020, and these devices will produce huge amounts of data. There are a few approaches for managing and processing all this data.
I see two trends developing among companies that are moving into IoT:
– Some companies are developing and selling their own proprietary solutions because they feel they have the lead, and want to leverage it to its maximum.
– Other companies don’t have the capability to deploy a complete infrastructure, and so prefer to rely on emerging public or commercial solutions.
You can define your own IoT from end-to-end. Many large companies are trying to do just that, and want to capture a good portion of this emergent market. Others are specialising in certain parts, such as GE with its Predix platform for the data analytics of the industrial internet. Does it mean you absolutely need to buy the provider cloud service stuff? No, you can probably build your own or outsource the expertise you don’t want to build.
Running a backend service must become a core competency for any company attempting to do so; there will be no room for dilettantes. But not all organisations have the DNA to put in place a server farm, guarantee the fail-safe operation of their network, and guarantee data back-ups, system redundancy, and all the crucial things that come with it. Can your system cope with a network failure? If so, for how long?
Early IoT deployment has revolved around sensors and actuators connected to the public Internet via a gateway or hub, and delivering data to an Internet-based server (cloud computing). This is often a vertical integration built around one primary vendor (such as your utility provider and/or telecommunication carrier). All these providers have little or no interest in working together, resulting in an unmanageable melting-pot of services.
The army of devices that compose the Internet of Things will generate more data than any individual Web application. IBM’s chief executive, Virginia Rometty, in The Economist blog “The World in 2014” [Ref 2], provides IBM’s estimates on the quantity of data to be processed in years to come: “By one estimate, there will be 5,200 Gigabytes of data for every human on the planet by 2020.”
In his TED talk: The Internet of Things is Just Getting Started [Ref 1], Arlen Nipper calculates that to support the 30 billion connected devices expected to arrive by 2020, we would need to deploy about 340 application servers per day (120,000 servers per year), assuming that we want to deploy all these systems as segregated applications. Mr. Nipper suggests that one way to make IoT possible in the coming years will be to adopt cloud computing.
Around the year 2000, all the telecom carriers claimed that they could each provide the Internet all by themselves. They invested billions of dollars into equipment purchases. Everybody was looking for the “killer application,” the application that would create the “gazillions” of bytes of traffic to fill these networks. At that time, the application that was generating most of the network traffic was e-mail. Today, social media and video sharing are replacing e-mails. When the predicted traffic did not materialise on this huge IP network, it triggered the dot-com bubble burst.
With IoT, we are finally seeing a new “killer application.” When billions of devices exchange information over the Internet, they will require significant network bandwidth, and especially enormous data storage and processing capabilities. A new term has been coined lately to represent this new trend: Big Data.
next: Backend Services…
Backend Services
The business of getting data in and out of IoT devices is a gold mine. Your marketing department will pay a fortune for this data, as it will help you spot trends and help you learn how your products are being used.
If you search the Web a bit, you will find many companies offering new backend services. I see one of these new start-ups appear almost every week. The industry has to be careful not to reproduce the 2000 tech bubble. If every backend service provider believes he can build the IoT cloud by himself, then the glut of providers will almost certainly create another overcapacity problem. At the same time, just because it is fairly simple to build a server farm, it doesn’t mean that everybody should do it. Also, the big players such as Intel, Oracle, SalesForce.com and Google have already stated their intention to occupy that space.
It is said that every company will become a software company. Why so? Because the data created by a company’s products, and the systems managing that data, will soon have more value than the products themselves. So, if you are designing and manufacturing an IoT system, and require a backend service, you will need to choose whether to deploy your own, or outsource it. I believe the majority will outsource. If you are a thermostat manufacturer, you probably don’t want to develop IT competency; it will be better to leverage someone else’s.
If you do deploy your own, then you will have to choose from the technologies we reviewed in the Internet section, and then deploy servers to store and process your data, plus maintain and upgrade the systems. You will have to determine how you, and your customers, will access and manipulate this information. Will it be exclusively through Web browsers, or will you provide smartphone native applications (iOS, Android and Windows)?
Another vital feature of an IoT device is, or will be, to perform remote secured firmware upgrades. With the rapid evolution of the IoT field, it is almost impossible to plan for every contingency. This means that your hardware design must also be capable of being upgraded: your device will need enough flash memory, RAM, a bootloader, and all the other components required for your device to update firmware and applications securely.
The same questions need to be asked if you decide to outsource your backend services. But, in this case, you first have to verify that the provider can support the protocol you have selected. Otherwise, it could be your choice of backend service provider that dictates the protocol to be used in your IoT device. And you need to know if the provider can develop and support mobile data applications, or at least provide enough tools for you to do it yourself.
Similarly, are firmware upgrades included in your cloud computing outsourcing package?
Here is a short checklist to get you started. Your backend service should provide:
– Design services to help select communication hardware and software
– Support for cloud protocols (Websocket, RESTful, MQTT, CoAP, etc.)
– Support for secure remote firmware upgrades
– Web-based and mobile applications application for data viewing, processing, and remote device control
– Web and/or mobile application development (consulting services)
– Pricing…Per device/Per transaction/Per data type/Per bandwidth usage/Per storage usage; and by Monthly/annual subscription
Many of the companies offering such services can provide a sandboxed approach, where you can register a free account and test your implementation before going commercial. Some services will also offer you data from public sources to help you build a more complex application. For example, access to weather data or utility prices could be quite useful when building smart energy applications.
Most of the current offerings are based on REST or RESTful APIs, and various Java technologies. These solutions may be best suited for applications that need to move larger data payloads.
At the time of writing, there is no commercial offering for CoAP, as the standard is still in draft mode with IETF. With the ARM/Sensinode and Oracle partnership, we can expect this situation to change soon.
In addition to the list above, there are companies that offer more than cloud services. They also offer design services, or even hardware that can be used by your IoT device, providing a complete end-to-end M2M solution.
next: Big Data…
Data Analysis (Big Data)
The previous section touched on the issue of choosing a backend system to store and process the enormous quantities of data created by your own IoT devices. But the issue gets complicated quickly when you need to correlate your data with information originating in outside systems, whether the data is publicly-accessible or licensed. This is the definition of Big Data; advanced analytics that can crunch vast quantities of digital information to create economic value, and increase efficiency.
In “The World in 2014”[2] edition of The Economist, Virginia Rometty wrote about the type of systems that are required to process all this data: "Our world has become pervasively instrumented and interconnected, with computation infused into things nobody would think of as a computer. There are more than a trillion interconnected and intelligent objects and organisms—including a billion transistors for every person on the planet. About 2.7 billion of those people are now connected to the Internet, a number that is growing rapidly in every part of the world, thanks to the spread of mobile technology."
The result is a planet awash with information. It’s known as Big Data, with good reason.
A new generation of “cognitive” systems, built for big data, can keep up with the flood because they aren’t programmed, they learn—from their own experience and from our interactions with them. Cognitive systems can scrutinise structured information, such as databases, and unstructured information such as medical imaging and social media content, much faster thanks to Cloud computing.
This means we, the embedded community, may now want to learn about distributed database management systems such as Apache Cassendra, and learn Apache Hadoop to run analytics on all this data. Cassandra is an open source distributed database system that is designed for storing and managing large amounts of data across commodity servers. It is named after the prophetess of Greek mythology who had the power of prophecy and the curse of never being believed. Let’s hope we will believe the results of the analysis of our own data!
There are commercial approaches as well as open source ones. For example, GE Predix is a software platform for the Industrial Internet. Predix provides a standardised way to connect devices and data, and so enables industrial-scale analytics. The US government itself is supporting the initiative of GE and its partner in the Industrial Internet.
The questions that remain to be answered, with billions of interconnected things are:
– What is the data representation model?
– What is the network discovery protocol? There are billions of devices predicted by 2020. On any type of network, a discovery protocol such as Bonjour or similar will be required.
And with all these billions of devices generating data, it makes sense to bring that data on the Internet and use what today we call Big Data to store and process all this data.
Conclusion
IoT is conceptually a simple idea. But in practice, it is made of a multitude of hardware and software layers. IoT is the sum of many elements: low-power design, sensors, wireless connectivity, gateways, servers, networks, security, cloud computing, and applications.
We have available to us an abundant supply of low power, highly integrated, memory-dense and efficient embedded processors. The IoT challenge is, therefore, not in the hardware (unless you are trying to fit TCP/IP and Java in a processor with 32k ROM and 8k RAM!). The challenge is in the networking and software.
I believe we already have all the building blocks to develop the Internet of Things, and we are held back only by our own imagination and creativity. Of course, better and cheaper technologies will appear in the years to come that will reduce development time and cost. Does that mean that the time is not yet right to start building your IoT system? Not at all! Just as in the PC market, there’s always a cheaper, faster machine coming next month. Don’t wait for all the lowest-cost IoT building blocks to arrive, because by the time that happens, the market space will be occupied by someone else.
Embedded systems hardware technology, software technology, infrastructure, and cloud computing are actively being tested and deployed, fostering the emerging Internet of Things. To be really successful, and realise the 30 billion devices that will be deployed by 2020, we require the same open standards, development and cooperation that supported the creation of the Internet of People (also known as the Web).
We need to separate the data from the application so that we can do new things with it, things we have not yet imagined. For the typical embedded system developer, thinking specifically about the data the system generates, manages and transmits requires a new frame of mind. There is a value in this data. In embedded system design, we understand very well how to architect the Thing, the local network and even the gateway. The processor, sensor, wireless connectivity, gateway, IP network and security are all elements that are well-known to the embedded developer.
The new challenge for the embedded community is to adapt the application to take advantage of the value inherent in our data by building on and exploiting some type of cloud computing. To monetise the embedded system’s data, some type of cloud computing is absolutely required, be it private, outsourced or public. This is a new paradigm for the embedded community.
Billions of new embedded systems are predicted to appear in the next seven years. If we want to sell to this market, our new embedded systems need to be connected and inter-connected. The companies that don’t get on this new wave and surf it may well disappear.
IoT for embedded systems is the new industrial revolution. The growth potential for the embedded industry is enormous. To realise this potential, the embedded industry needs to adopt the new IoT paradigm. We now understand what needs to be done. We may not yet have well-defined and established standards for each structural element of future IoT systems. But I really think this should not stop anyone from building a system that will provide value to their customers.
Embedded system developers: Catch the IoT wave. Go ahead, and innovate!
References
[1] Arlen Nipper at TEDxNewBedford : The Internet of Things is Just Getting Started Published on Oct 4, 2012
[2] Virginia Rometty, chief executive of IBM, The year of the smarter enterprise, Nov 18th 2013 | From “The World In 2014” print edition, https://www.economist.com/node/21589108
