![]() |
| The Author Photo credit: Peter Menzel |
Distributed networks of ``Things That Think''[#!ttt!#] are far too rare. Things That Think is used as a term to include essentially anything with computation, sensing or actuation capability. Typically, however, it implies items that have embedded computation, sensing, or actuation that are not normally thought of as computational or thinking devices. Networks of these things are not common, despite the growing presence of the things themselves. Distributed software networks are ubiquitous. Distributed networks of things, however, are not.
Domestic environments provide a rich domain in which networked systems of things can be built. The kitchen in particular is an area ripe with devices that could be networked together in a useful manner. Specifically, a kitchen capable of aiding in the execution of a recipe, particularly in the planning, instruction, and sequencing of activities would be very useful. Further, a natural extension of such a system would include inventory management to allow questions like ``What can I make with what I've got?'' to be readily answerable.
There are a number of problems associated with building a distributed network of things, in the kitchen or otherwise, that are not addressed by either disconnected things or most existing distributed software systems. One such problem is a wider range of capabilities of components of the system. In most distributed software systems, while there may be some heterogeneity, most of the participants are similar computers. In a network of things, capabilities are much more variable. Another problem is that the description of the components of the system is not necessarily limited to the capabilities accessible through an API.
This work will focus on issues of managing a range of heterogeneous devices, semantic labeling of those devices, and building a recipe assistant for the kitchen using this infrastructure. Some of the other issues that are particular to distributed networks of things will also be discussed.
![]() |
| Nelson Minar |
Using the Hive system, a networked kitchen was built, and the ``recipe assistant'' scenario implemented. Construction of this system highlighted the strengths and weaknesses of the Hive architecture. Particularly, the kitchen provided a good test bed for utilization of Hive's semantic labeling system.
Further deployments of Hive within the MIT Media Laboratory, and development of other applications altogether, such as the new ``Honey, I Shrunk the CDs'' system1 (a jukebox demo), has allowed evaluation of the utility of the Hive system.
![]() |
| Oliver Roup Photo credit: Webb Chappell |
A brief discussion of prior work in the domain of networked kitchens appears in Section 2. This includes prior work at the Media Lab, commercial development work, and work on the ``Universal Kitchen'' project at the Rhode Island School of Design. A description of other distributed systems that were examined and share qualities with Hive appears in Section 3.
Section 4 describes the architecture of the Hive system, including details on cells, agents and shadows. It also covers the specifics of the implementation. Section 5 covers the semantic labeling system used in Hive, where it comes from, and how it is applied.
In Section 6, details of the kitchen demonstration system are covered. The architecture and design of the system, and details of the implementation are covered. A comparison to prior work in the area is made, and the effectiveness of Hive is evaluated for this application.
Hive has been applied in a number of other scenarios, and some of these are covered in Section 7. The scenarios discussed include ``Honey, I Shrunk the CDs'', an RF based location system, and the Hive demonstration system.
While Hive shares many qualities with other distributed systems, it is more similar to Jini than any other. These similarities warrant particular attention. Section 8 discusses the similarities, differences, and how these systems can interact.
Section 9 analyzes the overall effectiveness of Hive, and identifies lessons learned, and suggests areas for future work.