Before talking in-depth about data centricity, it makes sense to talk a bit about interoperability. For much more detail about interoperability and data modeling, I highly recommend this e-Learning video from rti.com.
To start with the basics, you have to understand your goal for interoperability between systems. I will use a modern car as an example of a system, and the future goal of connected cars as an example of a system of systems.
A system: Performs some function. In the case of a car the functionality this includes: Drive from point A to point B, use sensors to detect vehicle maintenance issues (e.g., low tire pressure), use sensors to help a human avoid crashes, etc.
A system of systems: Multiple individual systems coordinating, and providing a greater whole. In this example, this includes multiple connected cars communicating to spread information about the driving conditions ahead to prevent accidents.
When you are building a system of systems, you have to take into account several non-functional requirements that affect how your systems behave. These functional requirements include:
- Interchangeability: A system can be replaced, and the overall functionality of the system-of-systems remains the same
- Replaceability: A system can be replaced, but may not provide the same capabilities as the original. The functionality of the system-of-systems will not be the same.
- Extensibility: A new system can be added, providing new capabilities
- Integratability: A combination of systems can be composed into a functioning whole.
In the connected-car world, this means:
- Interchangeability: All cars provide the same functionality to the system-of-systems, including, for example, information about the driving conditions ahead.
- Replaceability: Some cars may provide less information, or different information about the driving conditions ahead. However, this information can still be used to help form a picture about upcoming hazards.
- Extensibility: Newer vehicles will provide additional information about driving conditions that were not available in older models. Some cars can use this new information; others cannot, but it will not harm the overall system-of-systems. It will evolve over time as more new vehicles can process this new information.
- Integratability: Vehicles communicate in a way that is well-defined enough that algorithms can be added to individual systems or the system-of-systems that provide emergent behavior; vehicles cooperating in ways that prevent accidents, help traffic flow, etc.
To meet these non-functional requirements, you need to look at the levels of interoperability within your system-of-systems. These are well-defined in modeling and simulation theory.
I will focus for now on levels 0- 3:
Level 0: No interoperability. That is the current level of interoperability between cars.
Level 1: Technical Interoperability. This means that there is some common protocol defined so bits can be shared unambiguously. The connected cars meetup I wrote about in my last post was describing how they were sure that defining the hardware and protocols to be used to communicate between cars would be enough for interoperability. This might be enough, if every car defines exactly the same set of messages – though defining this set of messages is a challenge that will require standards. This is because level 1 allows replaceability of components, but not integratability or interoperability.
Level 2: Syntactic Interoperability. This means that there is a common protocol, and there is a common structure or common data format for exchanging information. At this level, a data model is defined, and each system must send and receive data described by that model. By defining the data that are being communicated, it is possible to integrate vehicles that have different capabilities – as long as they provide the data described in the data model, they can be integrated into the greater system, and algorithms can act on that model to help cars drive more safely. This level of interoperability supports interchangeability and integrateabillty.
Level 3: Semantic Interoperability. This means that the data has a meaning that is explicitly modeled, and shared between systems. When data has a common, well-defined meaning, interoperability can be achieved. At this level, algorithms can easily be developed for vehicles regardless of which manufacturers’ cars are communicating.
If car manufacturers support interoperability levels 2 or 3, they (or third parties) can develop algorithms that can go beyond looking at road conditions, or sharing common sensor data, but will be able to help traffic flow, help prevent accidents and back ups, and make driving more fun.
My concern with the connected-car world is that they are barely thinking about level 1 interoperability – and at that level, with no data model, and no shared meaning of the data, many of the benefits of having cars that communicate will be lost.