When I first started engaging the topic of the “Internet of Things” I realized I needed a mental model for talking about its pieces and parts. In order to develop this model I asked myself the first and likely the most obvious question, “What is a ‘Thing’?”. This, of course, begs the most obvious second question, “What isn’t a ‘Thing’?”. So that I could at least be consistent in how I talked about this space I created the following sketch.
In abstract information theory, networks are nodes connected to each other by arcs. What the nodes are and what the arcs are can be anything. For the Internet of Things the nodes are the things that are participating in the system created by the network and the arcs are paths across which the nodes communicate with each other. To be a “thing” in a network of things the thing needs to have some attribute or function that specifically enables it to be a part of a network of things. The closely related notion of The Internet of Everything can include nodes that do not have some attribute or function that specifically enables it to be part of a network of things[1. You can quibble about existence being a key necessary attribute to participate in a network of things, but just go with this for a bit.]. For example, a book’s cover can be photographed and the photograph can be analyzed to determine its title. This is a sensing activity and the book is not part of a network of things. In contrast, the book may have a barcode on the back that encodes its ISBN. This ISBN can be read and can be used to look the title up in a database. The barcode is an attribute added to the book in order to enable it to participate in a network of things. For me, this answers the questions, “What is and what isn’t a ‘Thing’?”.
I divide things into three (actually four) categories; Smart Services, Smart Devices, Smart Objects and Smart People. The last category came from a recent showcase at Oregon State University where a couple of of the presenters insisted that we should not forget that people are often a key part of an IoT system. Not all of these categories need to be represented in any particular network but its rare to see a network that doesn’t at least include either smart services or smart devices. Note that the qualifier “Smart” is only used to mean “able to participate in a network of things”. There’s no requirement that any node in a system be any smarter than it needs to be in order to manage its state (if its state can change) and to communicate with other nodes.
In order to participate in a network of things, the nodes in the network need to communicate with each other. I’ve identified three categories of communication mechanisms[2. But I haven’t come up with any pithy names for them yet.]; Datacomm and APIs, Tagging and Marking, and User Interfaces. Datacomm and APIs enable Smart Services and Smart Devices to communicate with each other, Tags and Marks enable Smart Devices and Smart Objects to communicate with each other and User Interfaces enable Smart People to participate in these networks.
Here is a collection of slightly more detailed descriptions of each of these categories:
- Smart Services – Smart services are distinct software elements that can participate in a network. They have no physical manifestation other than as patterns of bits on some storage medium. The software may be executing on any appropriate computing infrastructure, in particular, it may or may not be operating in the cloud. It’s just running somewhere. Instances of software services usually have internal state that they manage, though in some cases that internal state may be very ephemeral. Smart services communicate with smart devices and other smart services via their APIs. Smart services communicate with smart people via user interfaces.
- Smart Devices – Smart devices are collections of sensors and/or actuators that interact with the real world. Sensors are devices that detect the state of some attribute of the real world. Actuators are devices that change the state of some attribute of the real world. Sensors and actuators may work in coordination in order to provide a more complete and synchronized action. For example, a photo sensor may work in coordination with a GPS device in order to geotag an image. Smart devices always have a physical manifestation and are often multifunctional[3. More than one cooperating collection of sensors and actuators in the same box.]. Smart devices always have state that they manage; either the current reading on a sensor, the current state of an actuator or a state derived from the states of included sensors and actuators. Smart devices communicate with smart services and other smart devices via datacomm and APIs. Smart devices communicate with smart objects using readers that can interpret the tags or marks on the smart object. Smart devices communicate with smart people via user interfaces.
- Smart Objects – Smart objects have been augmented in some way that enables them to participate in networks of things. A tag either directly encodes information about the object or provides an identifier that can be used to look up information about that object. Examples of tagging augmentations range from barcodes to RFID tags to beacons. Marks may also be added to objects in order to make it easier to detect their state. For example, calibration marks that can be used to determine if the object has expanded or contracted. Smart objects always have a physical manifestation and may have multiple tags, multiple marks, or combinations. Smart objects always have state. In many cases the state of a smart object may not be changeable without the intervention of a smart device. Smart objects communicate with smart devices via tags and marks. The smart devices use readers to detect these tags and marks. Smart devices use user interfaces to communicate with smart people.
- Smart People – Smart people are humans that interact with and may provide critical functionality to a network of things. Note that people behave like smart devices in that they have sensors and actuators. They have brains which occasionally enable them to behave like smart services. They usually have identifications of some sort[2. Think of your wallet full of cards.] that enable them to participate as smart objects[3. Given this rich set of capabilities and attributes it’s interesting to note that you can create a complete network for things composed entirely of humans.]. Humans always have a physical manifestation. Humans communicate with smart services, smart devices, and smart objects through human interfaces.
- Datacomm and APIs – I’ve resurrected the term datacomm[4. Short for data communications.] in order to distinguish it from the more commonly used term “networks”. Datacomm is the physical medium across which information flows between smart services and smart devices. APIs are the protocols and formats used by smart services and smart devices in order to make the shared information semantically intelligible. Datacomm always at least partly has a physical manifestation. Usually as electrical or optical signals transmitted through wires or space[5. Datacomm is probably a fuzzy term since datacomm often includes lower level protocols and formats.]. APIs never have a physical manifestation. Datacomm and APIs enable smart services to communicate with other smart services and smart devices and enable smart devices to communicate with other smart devices and smart services.
- Tags and Marks – Tags and marks are in some way affixed to an object in the real world. Without the tag or mark that object could not participate in a network of things and could only be sensed. As described above, a tag either directly encodes information about the object or provides a identifier that can be used to look up information about that object or both. Marks are added to objects in order to make it easier to detect their state. Tags and marks always have physical manifestations which vary depending on the technology being used.
- User Interfaces – User interfaces are arrangements of affordances that enable a human to participate in a network of things. Common output affordances include indicators, displays, speakers, and printouts. Common input affordances include keyboards and other buttons, microphones, motion detectors, etc. These affordances typically have protocols and formats associated with them. For example, a display may have a particular arrangement of pixels that are interpreted as windows and those windows may communicate information via the English language. User interfaces always have a physical manifestation since human senses and actors are only able to detect and act on physical objects.
This mental model has helped me to communicate and think about various notions related to the Internet of Things, but it has its limitations. It focuses primarily on the pieces and parts of a network of things and does not address other interesting aspects such as the various applications and behaviors of networks of things. Your milage may vary. If you have a different and better model then I’d love to hear about. I suspect that if we discussed it we’d come up with a new model that’s even better than either of ours. In the meantime this one is working for me. If it works for you then feel free to adopt it, but I’d appreciate it if you’d let people know where it came from.