The pace of development of next-generation "Internet of Things" (IoT) networks of wirelessly distributed sensors is ramping up, fueled by a first wave of IoT devices from companies such as TI, STMicro, and Digi International. Embedded developers are starting to explore commercial IoTs based on the current TCP/IP standard, and using paradigms such as the lightweight MQTT protocol for delivery over current Wi-Fi and Zigbee wireless sensor networks.
In addition, researchers are already working on hundreds of projects using the next-generation IPv6-based 6LoWPAN protocols in a variety of wired and wireless environments. Many of those projects, especially within military and government organizations, such as the Department of Defense, Department of Homeland Security, and Department of the Interior, are now deploying networks of many thousands of sensors in a variety of monitoring applications.
But before commercially viable projects can be developed using this technology, there are many questions that remain to be answered, including:
* How do you manage thousands of remote devices occupying URLs in IPv6-based 6LoWPAN networks?
* How do you collect information from such devices and then distribute it to the correct locations?
* How do you allow decision makers to quickly communicate about the use of this information?
* Once a decision is made about the status and deployment of information collected, how do you send that information back to the appropriate locations, even to the remote sensors themselves, and how do you do so in a manner that is compatible with the real-time, deterministic nature of such communications?
To deal with these and other questions, many developers are making use of communications links based on a number of ad hoc and just barely standardized variations of the common publish-subscribe paradigm, combining them with a User Datagram Protocol subset of the full TCP/IP suite to achieve some degree of real-time and deterministic operation.
Publish/Subscribe
A typical publish-subscribe system is organized around the concept of publishers and subscribers. A system or device broadcasts (publishes) "topic issues" over a network to receiving devices (subscribers) that have registered an interest in that topic.
Pub/sub middleware manages such broadcasts so that the subscribing remote sensor applications simply respond to the messages that are appropriate. In that sense, pub/sub is similar to the common message queue paradigms such as Java Message Service (JMS) and RSS feeds.
DARPA and the DDS
But for most real-time and deterministic embedded IoT applications involving controllers, networked sensors, robotics, and remote control, the current pub/sub mechanisms are at best ad hoc and at worst inadequate.
Researchers are developing work-arounds using a number of related 6LoWPAN sub-protocols and mechanisms, but for sophisticated solutions, the best place to look is within projects funded by the U.S. Department of Defense and its Advanced Research Projects Agency (DARPA).
Much DARPA's work on pub/sub has been centered around frameworks based on the Object Management Group's Data Distribution Service (DDS). In fact, for the U.S. military establishment almost anything about the real-time, deterministic use of pub/sub and DDS is a case of "been there, done that." Examples of such projects include the Tactical Internet, the Global Information Grid (GIG), and the Sensor Cloud Project.
GIG is a communications project defined as a globally interconnected, end-to-end set of information capabilities for collecting, processing, storing, disseminating, and managing information on demand to soldiers, manned and unmanned units in the field, manned and unmanned aircraft, policy makers, and support personnel. In GIG, "situationally aware" networks of sensors will play a major role. The aim of DARPA's Tactical Internet is the creation of a command and control capability down to the smallest device and system, supported by a horizontally and vertically integrated digital information network.
The work being done under DARPA sponsorship on proposed net-centric "sensor clouds" of diverse wired or wireless sensor networks is particularly intriguing. These networks are integrated into a cloud computing infrastructure that allows real-time sensor data collection and the sharing of computational and storage resources for sensor data processing and management.
Real-time embedded system developers who have worked with interfacing or bridging to the Global Information Grid (GIG) have been faced with the challenge of maintaining deterministic behavior while moving large quantities of information over non-deterministic network transports.
For the military, when combined with sophisticated database management systems, DDS represents a middleware solution that has a number of advantages, chief among them simplified network programming. Nodes that produce information (publishers) create "topics" (e.g., temperature, location, pressure) and publish "samples." DDS takes care of delivering the samples to all subscribers that declare an interest in that topic. DDS handles all the transfer chores.
But for many of the new Internet of Things applications distributed across thousands and even millions of sensors, this approach has limitations relating to scalability: from large computer systems to limited resource MCUs, from low speed home and wireless networks to high speed backbone networks, from embedded MCU device developers who work in environments that are real-time and resource constrained to IT personnel familiar with implementing large server-based corporate DDS systems across heterogeneous networks.
[To be continued at Understanding pub/sub, the Internet of Things, and 6LoWPAN connectivity (Part 2)]
用户1406868 2012-11-17 00:02