Teaching computers to ‘talk’
Can teaching computers to ‘talk’ to one another improve digital cooperation between enterprises and reduce CEO stress levels?
In a recent LinkedIn post, Zach Wilson (Staff Data Engineer at Airbnb) asked the question: “How can two computers talk to one another?”[1]. Most of the responses to Zach’s question articulated the role that UDP, TCP, RPC, REST etc play in the communication between computers and services.
But I was intrigued by the language of the question itself. The question was: how can two computers TALK to one another? The forms of communication enabled by UDP, TCP, RPC, REST etc are not what I think of as ‘talking’ in a human sense. They are transactions: requests and responses formatted specifically to ensure that each computer knows what is being asked and how a response should be provided. Such is the rigid behaviour of these interactions that we are able to visualise the expected steps in structured sequence diagrams.
Imagine if humans interacted in this way! Beyond the formulaic norms of introductions and greetings, ‘talking’ is so much more exciting, dynamic and unpredictable than transactions and sequence diagrams. In the context of business, new ventures, services or product ideas are not formed as a result of highly-structured, transactional interactions – they’re formed at the water cooler, or at the side of the sports field, or over lunch.
Let’s consider a scenario where talking can be observed: the business conference
When we network at a conference, we do so without the knowledge of whether any engagement is going to be particularly useful or interesting. Perhaps we heard someone mention a topic on stage that seemed like a good business opportunity, so we seek that person out and make an initial introduction: “Hi, I’m Phil and I really liked what you said at your session about grasshoppers. Can we have a quick chat, as I think you may find my experience of crickets interesting!”.
The talking has started. Two humans are now in the process of evaluating whether the interaction is of interest to each other. In the following seconds, each person will decide whether to continue discussing grasshoppers and crickets, or politely wish each other well and move on.
Now, if we return to the original question about how computers can talk to one another with a similar dynamic in mind, we have an altogether different view of the challenge.
How can computers describe the information that they are required to find, and how can other computers declare that they have the information relevant to that subject?
If there does happen to be an interest in interacting, how can a computer decide whether to grant another computer access to its information?
How can computers have these types of communication if interfaces are purely transactional in nature?
These questions may sound far fetched, but allow me to propose a very common scenario in which these problems manifest themselves in real business situations
Many enterprise CEOs will be familiar with the frustrations of their teams being unable to establish simple and robust technology relationships with suppliers or partners. Perhaps it is in the acquisition of a vendor’s market data feed, or obtaining reliable information about upstream and downstream supply chain metrics. The information exists, but accessing it seems disproportionately difficult. Data can’t be accessed. Daily delivery of data files frequently fails. Why can’t teams just solve these problems? Is it really so difficult? Why does the CEO so often have to lift the phone to another CEO to resolve operational issues in order to get things moving?
The problem is that, until recently, the necessary technology was not mature enough to enable computers to describe the information that they held, nor to enable other machines to access that information in an automated way without bespoke engineering changes. Furthermore, modern information security standards (correctly) make establishing 3rd party access to systems challenging. This makes finding and accessing information across ecosystems all but impossible for machines, and therefore the responsibility defaults to humans to establish relationships, define contracts and build bespoke systems to enable the transfer of information – all of which is slow, expensive and prohibitive to innovation.
Industry needs technology systems which can facilitate the dynamic nature of our innovative human engagements. If there existed a secure method for computers to broadcast the existence of useful, right-time information to other authorised computers, then many of the issues related to traditional data sharing techniques would be minimised.
“Do you have information that I’m interested in?
You do? Great!
May I use it?”
This is how any two computers can talk to one another, and by doing so technology can flex in parallel to the human activities involved in solving business problems. Just as two business people shake hands, make introductions and explore common interests, so too the technology systems supporting those businesses now have reliable protocols for facilitating service discovery and interoperability. By enabling these types of autonomous interactions between computers, traditional information acquisition challenges are eliminated:
For consumers of information: easy to find information of relevance to a specific use case.
For producers of information: safe means to quickly grant (and revoke) access to that information without opening up access to their own systems.
No need for expensive bespoke centralising systems or unreliable transfer mechanisms.
Access to the right information at the right time for low risk innovation and creation of new business value.
This capability elevates the ‘conversation’ protocols between computers from structured exchange of raw data, to a more human-like exchange of information. IOTICS is enabling such ecosystems for enterprises today.