Standards: Why do we care?
There’s a lot of discussion in the Defense and Intelligence technical community about standards these days. OGC, ISO, WPS, WMS, WCS, what’s the difference, and why does it matter so much? One of the benefits we gain from using standards is interoperability, which simply means that systems, applications, components, and tools can communicate with each other easily. And by communicate, I mean share data, products, and information. By implication, this means interoperability is becoming more important, which is true. We’re moving from desktop-oriented environments to enterprise environments. In the desktop world, applications are closed, self-contained systems. We often use the term silos for these kinds of environments. Everything happens in its own little (or big) silo, and there isn’t much sharing or overlap between silos. You use an application to create a product and save that product. Other desktop applications can often make use of the product because it is in a format that they can read. And this is a form of standard. For example, Microsoft™ Word’s RTF format was an early form of a standard. Other word processors couldn’t read the Word document format, but could read RTF, making documents more portable between applications.
In the enterprise world, we’re stringing together discrete components, or apps, to work together to solve specific problems. That means we’re sharing data between apps, or querying for data that resides on other servers. Sometimes, we’re even querying for processes, or apps, that reside on other servers. In order for this to work on a large scale, there needs to be a common language for communication between these various components and apps. For an example, let’s say I write an app that performs one step in an image processing chain and you are going to write the app that performs the next step. In order for this to work, the output of my app needs to work as input to your app. If we’re in the same office, that’s easy. We just agree, write our code, deploy our apps, and we’re processing. No one but us can use those apps because they won’t know the interface for accessing the data. If we want apps to be interoperable so that anyone in the world who can access them can use them, we can use standards to define the interfaces and, more, make it so that the apps can be queried to provide their own interface specifications. This is true interoperability, and it’s the standards that make it happen.
Now, we don’t always like working to a standard, and it can be hard to get people to come together to agree upon and implement a standard. It can be a long and frustrating process, and sometimes we just want to take a shortcut and do it our own way. At a conference I attended this summer, someone made the following statement: “Standards are like toothbrushes, everybody needs one, but no one wants to use anyone else’s.” I love this, and it highlights the importance of coming together to define the standards, painful as it is. In order to move away from our closed, silo-ed worlds, we need to get out there and support and embrace some standards to make our interoperable dreams come true.
Keep watching this blog for more about Enterprise technologies, standards, and interoperability.