The industry buzz for a while has been the cloud, mobility, big data, and social. Now that the Internet of Things (IoT) is looming larger, it’s important to put these technology trends in context. In order to see how these technologies will change your life, it’s useful to consider the various interaction patterns that exist between humans and machines. When evaluating the intersection between humans and machines, there are 4 possible interaction patterns.
Human to Human (H2H). This interaction pattern is highly complex semantically, multi-channel, flexible, and extensive in the scope of interactions that are supported. Human civilization has had thousands of years to tune and improve this interaction pattern and it is the interaction pattern of choice for complex issues.
Human to Machine (H2M). In this interaction pattern, the human leverages a machine which in turn provides a service. Query and response is a classic example of H2M. This interaction pattern, where a machine functions in a reactive mode, currently accounts for the majority of all IT-based interactions.
Machine to Human (M2H). This interaction pattern describes situations where a machine senses an opportunity or a concern and responds by alerting a human. In order for this interaction pattern to be useful, the machine must either be “always on,” event-driven, or leverage sense and respond control theory.
Machine to Machine (M2M). This interaction pattern is simplistic from a semantic perspective because of machine limitations but immensely powerful from a utility standpoint. This interaction pattern is often used to describe the Internet of Things (IoT). This interaction pattern is heavily focused on data, decisioning, and process. The characteristics of the M2H interaction pattern also carry over. Some of the excitement around M2M is the potential for high value 2nd and 3rd order effects.
What’s useful about this model is that the number of pattern permutations is just 4, so it’s an easy model to get your head around and remember. A somewhat more subtle characteristic of the model is that H2H and H2M patterns - because of their human centricity - are ad-hoc, can occur in real-time, but cannot readily be performed as batch processes. What’s interesting about these human-centric patterns is that they have existed for all time and largely color our thinking on the role of machines. This accounts for why we largely view machines from simply a process automation standpoint. Humans outsource tasks to machines where they have the ability to do it consistently, faster, and cheaper.
The M2H and M2M patterns introduce a new way of thinking about machines. These are machine-centric patterns which we have little experience with. The concept of a machine being always-on appears insignificant at first. However, when it comes to human availability and location, some concerns arise because there is so little governance over who sees this data and how it is used. But these are teething problems that will get addressed by a combination of consumers, businesses, and government. There is a tremendous amount of utility that gets unlocked by machines that are either “always on” (think sensors) and/or event driven. M2H and M2M machines can function either actively or passively. An example of a passive machine is a home alarm system that will trigger an alarm and message to the home owner if a circuit or sensor changes state. An example of an active machine is a self-driving car.
The M2M pattern is now being actively investigated by every leading software vendor. Taxonomies are being suggested to help classify different M2M approaches. From what I have seen so far, data, decisioning, and process are the key constructs for segmenting M2M activities. This is not surprising because with data, events (which I classify under data), decisions, and process, you can build anything. As soon as you begin talking about always-on, real-time, sensors, and data streaming, you need to also rethink how you are going to approach application development. More on this later. M2M will also require some additional architectural constructs. Gateways (content aggregators and analyzers) are an obvious addition because not everything that you collect locally needs to be shipped over the Internet.
However, the intent here is to get you thinking about interaction patterns and ensure that as you begin thinking more about the newer M2H and M2M interaction patterns, you keep in mind the importance of also thinking about the real time orientation of these patterns and how this fundamentally changes how we have to think about application development.