Internet of Streams
Think of “things” as objects that emit and/or consume steams of data. For example a temperature sensor emits temperature data while a light may consume a stream containing control data such as on, off or intensity. A car on the other hand is a complex object composed of many things. A car could emit performance statistics that are aggregated from many sensors and consume streams such as traffic conditions, road conditions and driver alertness (by detecting the drivers pulse through the steering wheel or other means).
Things emit streams over various channels… wi-fi, cellular, bluetooth, zigbee networks, etc. These channels may be public or private. For example the things in your home are likely on your private wi-fi network, allowing only you and other members of your household to control lights, temperature and various appliances. You may also have various bluetooth devices that are privately paired to a personal device. However your neighborhood may contain things that emit streams on public channels. Examples are air quality information, public transit schedules and alternate routes, available real estate, etc.
Streams are simply structures of data. They do not present data. This separation of data, presentation and control enables various applications to present the same stream. For example if you have a wi-fi scale, a bluetooth heart rate monitor and pedometer, a single application could consume steams from all 3 devices. This is counter to the current popular model in which each device has it’s own dedicated interface. This doesn’t mean that makers of things have to stop creating user interfaces for those things, but that any number of developers can create applications based on streams. In fact having this level of separation could help provide better user experiences by allowing the user to find an interface that best visualizes the data, has the most intuitive controls, is best presented in their native language or that otherwise combines data that was previously available from a single application or service.
While the underlying structures such a motor control system or the design of a sensor may be proprietary, the structure of the stream needs to be open and standardized. The stream may be on a private channel, but all light control streams should be the same, all heart-rate sensor streams should be the same, etc. It sounds impossible to create such a coordinated effort, but there are signs of convergence. For example the Bluetooth Low Energy protocol has standardized ‘streams’ for various health and fitness sensors. You can now print from a mobile device without having the printer drivers installed, you can stream audio and video… see streams are not actually new. We just need more of them and we need to keep them open and standardized.
Interface ideas:
Context UI
The context UI is sensitive to streams. It both consumes relevant streams as well as emits various control streams. For example within your home the context UI reveals information and control for things in your home such as lights, appliances, health and fitness equipment, data from your plants, etc. During your commute it consumes streams from transportation vehicles, points of interest, deals in relation to the shopping list stream you chose to publish, etc. Overall the UI display enables the user to discover nearby services and take action on items of interest.
Notifications UI
The notifications UI functions much like it does today, but also includes notifications in response to stream-based services the user has subscribed to. These are services that the user has expressed enough interest in to be interrupted of anything else he/she may be doing.
Universal Search UI
The universal search UI enables the user to conduct standard searches as well as search for streams. There are various ways to search for streams, including image-based search in which capturing a thing will gain access to it’s stream if the stream is available on a public channel or the user otherwise has access to it. For example you could reveal an interface to item in a window display by looking at it through your camera interface… and even purchase the item or manipulate it in some way if it’s controllable. A text or voice search for environmental data could connect your device directly to sensors or to an aggregated feed from a variety of sensors.