Friday, February 28, 2014
I’d like to announce that I have written a book proposing a new architecture for the coming explosion of devices in the Internet of Things (IoT). I hasten to add that I didn't set out to write a book – rather Intel Corporation approached me on the basis of the blog posts below and asked me to expand my thoughts into a more detailed treatment. You can click the link to learn more about Rethinking the Internet of Things: A Scalable Approach to Connecting Everything.
I did not originally intend to develop a new architecture for the IoT. Rather, I was thinking about the implications of control and scheduling within machine social networks in the context of Metcalfe's Law. The coming tsunami of machine-to-machine interconnections could yield tremendous flows of information – and knowledge. The book builds on the principles outlined in the blog posts below, but it also expands on a number of new directions that I will touch on in later blog posts.
Once we free the machine social network of the drag of human interaction, there is tremendous potential for creating autonomous communities of machines that require only occasional interaction with or reporting to humans. As the Internet of Things expands exponentially over the coming years, it will be expected to connect to devices that are cheaper, dumber, and more diverse. Traditional networking thinking will fail for multiple reasons.
Fundamentally, traditional IP-based peer-to-peer relationships lock out much of the potential richness of the Internet of Things. There will be vast streams of data flowing, many of which are unknown or unplanned. Only a publish/subscribe architecture allows us to tap into this knowledge by discovering interesting data flows and relationships. And only a publish/subscribe network can scale to the tremendous size of the coming Internet of Things. So appliances, sensors, and actuators must use self-classified traffic schemes to allow for discovery and creation of information “neighborhoods”.
Note that the data needs of the IoT are completely different from the traditional global Internet. Most of the communications will be terse machine-to-machine interchanges that are largely asymmetrical, with much more data flowing in one direction (sensor to server, for example) than in the other. And in most cases, losing an individual message to an intermittent or noisy connection will be no big deal. Unlike the traditional Internet, which is primarily human-oriented (and thus averse to data loss), much of the Internet of Things traffic will be analyzed over time, not acted upon immediately. Most of the end devices will be essentially autonomous, operating independently whether anyone is “listening” or not.
Although IPv6 can potentially provide addresses for myriad devices, the largest population of these appliances, sensors, and actuators will lack the horsepower in terms of processors, memory, and bandwidth to run the bloated IP protocol stack. It simply does not make financial sense to burden a simple sensor with all of the protocol overhead needed for host-to-host communications.
Additionally, the conventional implementation of IP protocols implies networking knowledge on the part of device manufacturers: without centrally authorized MAC IDs and end-to-end management, IP falls flat. Many of the hundreds of thousands of manufacturers of all sizes worldwide building moisture sensors, streetlights, and toasters lack the technical expertise to implement legacy network technology in traditional ways.
There is another subtle reason why a new architecture is needed, and it relates to a favorite theme of mine: control loops. When there are real-time sensing and response loops needed in the Internet of Things, traditional network architectures with their round-trip control loops will be problematic. Instead, a way would be needed to engender independent local control loops managing the “business” of appliances, sensors, and actuators while still permitting occasional “advise and consent” communications with central servers.
The only systems on earth that have ever scaled to the size and scope of the Internet of Things are natural systems: pollen distribution, ant colonies, redwoods, and so on. From examining these natural systems, I developed the concept of the three-tiered IoT architecture described in the book: simple end devices, networking specialist propagator nodes, and information-seeking integrator functions.
I hope that you’ll read my explanation of why terse, self-classified messages, networking overhead isolated to a specialized tier of devices, and publish/subscribe relationships are the only way to fully distill the power of the coming Internet of Things. And I hope especially for your feedback, pro and con.