I’ve noticed that the priority of interoperability as a requirement for software applications and systems has been increasing over the past couple of years. This goes hand-in-hand with the shift we’re seeing many organizations make from desktop-oriented environments to Cloud, or Enterprise, environments. Interoperability is the ability for diverse systems to work together. This is a definition I found on Wikipedia:
Interoperability is a property of a product or system, whose interfaces are completely understood, to work with other products or systems, present or future, without any restricted access or implementation.
As a requirement, interoperability means that applications and systems need to be able to communicate with each other. Sometimes this means sharing data, but it also means that applications need to call each other or query each other about their individual capabilities.
One way we can achieve interoperability is by adherence to standards. In our community, the OGC (Open Geospatial Consortium) is responsible for a number of relevant standards, including WMS, WCS, and WPS. These standards, and many others, are completed and accepted, although they continue to evolve. Other standards are under development, and some are just emerging. In some cases, there are no standards defined for how applications inter-operate.
I was having a conversation with one of my colleagues about the increasing importance of standards the other day, and I made the comment that “it really all comes down to interoperability”. If we didn’t need systems and applications to interoperate, we wouldn’t care so much about standards. I found myself defining several levels of interoperability that I thought might be interesting to others.
Levels of Interoperability
1. Private Interface Control Document (ICD)
At the lowest level of interoperability, developers mutually agree on a format or protocol for interaction. This can be informal, or formally captured as an ICD. Only other developers who can access the ICD can achieve interoperability.
2. Public Interface Control Document (ICD)
At a mid-level of interoperability, system developers publish interfaces that can be used to access their systems. These are still unique to each system, but access is broader and available to anyone who is willing to implement the ICD.
Standards are both publicly available and mutually agreed upon by key stakeholders in a community. There are often tests available that assure compliance to the standards which guarantees interoperability.
As technologies and domains mature, they move through these levels until we have openly published and widely available and used standards. In the meantime, we make do by sharing information and cobbling together systems that can inter-operate.
Keep watching this blog for more about Enterprise technologies, standards, and interoperability.