When I hear the word internet I tend to think about information, interaction and communication as it relates to people using and controlling all sorts of devices, but it’s much more dynamic than that. More and more, devices, computers and even interconnected computer systems are interacting and communicating with each other to assist us humans, and in a lot of cases, control our activity. The Internet of Things (IoT) is drastically changing the traditional view of the internet.
For this article I sat down with Michael Hackett to pick his brain about the IoT. Since his early experience testing embedded devices, Michael has been actively looking at the space and help- ing companies create and develop ways to test the systems that are becoming too critical to fail.
JL: Isn’t “The Internet of Things” just a conglomeration of embedded systems?
MH: Embedded systems are the foundation of the IoT. Embedded devices and systems have been around for a very long time—since the beginning of computers. It is widely believed the first internet appliance or first thing in the IoT went online in 1982, the Networked Coke Machine. Four students at Carnegie Mellon University used a sensor to find out remotely if a coke machine had coke or was empty – sounds super simple by today’s standards. It was 30 years ago.
An embedded device could simply be a chip in a small system or a very, very large system with a narrow scope of specific tasks. They range from controls in things like large factory automation systems or airplanes to narrower focused medical devices or mobile phones, to light switches and door locks. These systems can have sensors and electrical and/or mechanical parts. They may even connect to a server through the internet and up and download data.
The IoT can grossly be described as interacting, embedded systems. More efficient wireless protocols, improved sensors, cheaper processors, and creativity have come together to produce a flood of new products where embedded devices are connected through the internet and can be remotely controlled— for example, from your mobile device—and even control each other. Using a program on your phone to turn your lights a few minutes before you arrive home is the IoT at work.
JL: What’s the direction of the IoT?
MH: The space is growing rapidly. Vast webs of interconnected devices are already communicating machine to machine (M2M) for specific purposes while at the same time creating and then using big sets of data and cloud services that provide products and services to all kinds of people and organizations from individuals to power companies.
What makes this time special is the newness of so many products and the speed at which they are being delivered to consumers.
It was not too long ago that someone on a heart monitor had to stay in the hospital. Now, people go about their daily life with implanted heart monitors. Data is uploaded wirelessly, and in if an emergency happens, all kinds of notifications and emergency calls will be triggered automatically through Wi-Fi or cellular service. This isn’t new. What is new is the speed at which these things are entering the market.
The IoT is also shrinking ideas of what we think of as embedded systems. Early devices typically had little processing power and little memory, and a rudimentary UI. The devices being developed today are smaller with even tinier batteries, non-existent UIs, and more lines of code. These things make programming and testing interest- ing,challenging and difficult all at the same time. Even the few functions they perform probably don’t run on MS Windows Embedded. It probably has a tiny proprietary operating system that will have a steep learning curve for programmers and testers to climb.
JL: Speaking of Windows, is Microsoft in the position to own the OS in the space?
MH: This is the hot question today—Who will own the IoT? Cisco? Intel/WindRiver? Apple/iOS? Google/Android? Or will it be a company like GE, that is seemingly a step ahead of everyone on sensors, devices and consumer products?
On one hand you could say it doesn’t matter. But really, it does. When it comes to developing products, programmers and testers work and build in separate environments. Specifically with the IoT, these environments or platforms—clearly— have to talk to each other. Some companies don’t make it easy for products to communicate with each other. If I need a heating unit that can quickly communicate with mobile devices, web browsers, the local power company and the national weather service API in the cloud, there can be problems. It would be far easier if everyone used the same internet protocols and messaging.
Also, programmers use platform tools and have favorite programming languages. Testers have knowledge of common operating systems and tools that work on some platforms and not others. Proprietary or uncommon operating systems will slow teams down at the start. Which platform will teams be more knowledgeable of and have access to more tools: Windows Embedded 8, iOS, WindRiver VxWorks or embedded Linux?
Currently, the rush into health and smart home devices seems to favor Android and iOS due to their dominance in the mobile device market.
There are many, many big players— all in fierce competition. I only care about programmers and testers that need to have quick ramp-up on platforms that will cooperate with each other and provide interoperability. These programmers and testers will have to have access to tools, particularly test automation tools, that will not slow them down under pressure to get products to consumers.
I mentioned Microsoft and Windows Embedded 8 not because Microsoft is a sexy company again, but because their Embedded OS has quick and easy communication to a wide variety of enterprise services, all kinds of backend services, desktop, tablet and smart phone integration. Plus, Microsoft has spent decades making it possible for their platforms communicate with other systems, network protocols and, a ton of tools. These are important interoperability considerations for companies, programmers and testers on the cusp of the world full of connected embedded systems.
JL: You mentioned “standards”; are there any standards?
MH: No. Not yet and I doubt there will be soon. Right now there are competing attempts at standards. There is the Internet Engineering Task Force (IETF www.ietf.org) for embedded devices. At their event, members of the alliance focused on device and protocol interoperability for build- ing the IoT.
There’s the IPSO Alliance that is seeking to establish the Internet Protocol as the network for the connection of Smart Objects. The alliance includes chip, sensor and network makers plus Oracle, SAP, National Instruments, Fujitsu, and a few more. Competing with that group is the Open Interconnect Consortium with Intel, Dell and Samsung, Broadcom (BRCM) and Wind River.
Of course Apple and Google are each obviously interested in creating a dominant standard. The most likely scenario is there will be a lot of com- petition early and more fragmentation, but eventually there will be have to be some standards.
JL: Does it matter?
MH: Well, for testing it certainly does! The whole purpose of the IoT is interconnectivity. Not having standards presents a myriad of testing issues.
JL: What will be the primary wireless connection?
MH: Good question. Different technologies will be used in different situations. Some machines will use TCP/IP and Wi-Fi. Bluetooth and cellular (3G and 4G) will also be common. For example, automobiles and their various devices and systems use cellular to communicate and that looks pretty stable. TCP/IP and Wi-Fi will probably wind up being most common for fixed location devices.
Bluetooth is being used in all kinds of IoT applications. It is especially useful with low and very low power products for close proximity communication. RFID (radio frequency Identification) tags and NFC (near field communication) will also continue to have a presence in the IoT.
Each of these has limitations, problem areas and unique error conditions. These are technologies that will be helpful to learn about for programmers and testers to do their jobs more effectively.
JL: Interesting. You have mentioned M2M a few times. What is special about that?
MH: M2M is actually the foundation for the IoT. Machines communicating with other machines on a much larger scale is IoT. M2M communication is enabling connected devices to exchange and use information without human involvement.
A common example of the use of M2M, without calling it M2M is in Smart Homes. Motion sensors communicate with light switches and cameras. Door locks and window sensors communicate with alarm sensors. All this happens without human intervention. M2M is common in industrial applications, removing humans from hazardous work environments.
JL: Some people discuss the IoT together with other current tech trends like Cloud APIs and Big Data. How are they related?
MH: For many companies, that is the goal. This gets to the core of the IoT—to connect devices, not only to control them, but to integrate and do things with them. Having sensors constantly report conditions, build massive data, use some cloud service to correlate the data and then predict behavior that will change the response of any number of devices. This is already common in public and industrial application. From traffic controls to power grids, the IoT builds big data, uses cloud APIs, recognizes issues or predicts behavior and adjusts, adapts devices as a result.
There are a wide range of test issues that come up for these situations: very different technologies to test, different areas of expertise to build, integration and interoperability issues, latency, performance, load, and clearly, security.
JL: Security must be a big problem.
MH: There have been some very public, high profile security problems like baby monitors and insulin pumps getting hacked. The baby monitor breach highlights the fear that anyone can hack into your home security system. Think about this:
If you can access a camera in your house to see if anyone is there, a thief can hack into the cam- era and get the same information. That pretty much negates the purpose of having a home security system.
The possibility that someone could hack into your insulin pump and turn it off or overdose you does not need explanation; it is dangerous. Reports say security problems are abundant on de- vices. When you open up these devices to the internet, you are opening it up to all kinds of danger.
Some of the organizations trying to set standards are focusing on the need for more secure communication as the whole reason for standards. Although security testing has typically been separate from functional testing, a big part of IoT product development will be security testing.
JL: With embedded systems, we often hear the phrase “real time system.” How are these different?
MH: Real time is a category of devices of systems that have time critical functionality. Anti-locking brakes are a typical example. The brake embedded system can’t have a delay. I do not know how fast the anti-locking brake response must be, but it must be in mille-seconds.
It is typically safety critical, mission critical services that have to happen without buffering or queueing delay. These systems have advanced algorithms for scheduling and tend to have very narrow functional focus and strict latency requirements to meet. Adding more functionality to these devices: connectivity, data collection, security will often have a performance hit.
JL: So what’s the take away from this?
MH: More learning, more testing, new discoveries and then even more testing will have to be done.