Enterprise business applications are typically not a single piece of
monolithic software, and not without good reason. These applications are huge
investments in both effort and money, and are usually deployed over multiple
phases. So they're actually made up of smaller modules or granules, as
addressed by some vendors. In any enterprise, it's imperative to integrate
these applications with others to get seamless flow of information. Nowadays,
this job is being achieved by what's called the middleware layer, and the
process is known as EAI. It's pretty much apparent that all these applications
won't be from the same vendor, or have been built on the same
technology/platform, or even represent the same business need. The only way such
a disparate ecosystem is going to co-exist peacefully and work seamlessly is
when the different applications can talk in languages that could easily be
understood by others. For this communicate to happen seamlessly, they need to
have well-published interfaces to communicate (or 'API'). However,
traditional APIs are application bound and it may not be always desirable to
lock one application on to another. For instance, if one of the applications
changed, the second application might need to be re-compiled and re-deployed as
well. This is why it is important that the data they exchange be compliant to
well defined standards. Here again, it would be beneficial to have them talk
using open standard formats rather than proprietary ones. The reasons for this
are what we shall explore in this article.
Why open standards?
When proprietary standards are used, you get locked down to one vendor,
technology or platform. When technology changes, your upgrade paths may not be
smooth or they may not exist at all, especially when the entire platform
undergoes a drastic no-return change. Also, you would lose the ability (with
proprietary) to pick and choose the modules you want to work with from different
sources in your application. This reduces the risk
associated with investing in that application. Note that quite a lot of useful
scripts and add-ons, utilities and tools are available from various open
communities that can plug into your application. Open standards implementations
(like XML or SQL for instance) are less susceptible to fundamental changes in
how they are structured or communicated.
This can let your enterprise shift focus from getting down and dirty with the
development and building of each of the modules to a more cost and time friendly
'buy them as you need' approach. This gives you the flexibility to adopt
modules that are friendly to the technologies you want to make use of,
consequently making your application itself respond faster to technology
evolution. Open standards let multiple vendors participate in development of
products that use them. This gives you more freedom of choice and flexibility.
Competition also drives quality and innovation in the market so that you can
demand better quality products and are not constrained to choose from just one
or two available products. Do note that here also, subsets of open standards may
exist that pass into the proprietary realms.
Reality check
While it is true that a lot of applications out there claim to be talking using
open standard formats and protocols, it would be worthwhile to also check
whether there is anything at the other end of the line. For instance, a vendor
might make an application and make its data format open but unless there is a
complementary application that also uses that format, the fact that the first
one is there does not make a difference. This is perhaps why there are
discussions about whether it is more useful to have applications that use open
standards or ones that can use the most common formats.
XML and SQL are examples of two successful open standards for data exchange.
Of course, there are various specialized extensions to both of them that have
passed into proprietary implementations. Some of these have very specific
purposes, while other implementations are fixed to a particular purpose.
Coincidentally, both XML and SQL are text-based formats although XML allows you
to have structured data as well as add security and encryption in its files.
Several bodies are trying to bring about a wider adoption of open standards
in enterprise apps. Some of these include the OASIS, the Open Applications
Group, XML.org and ebXML.org (for e-businesses). Other than these, there are
organizations and standards meant for specific verticals (like health care) that
promote open standards for that applications pertaining to that vertical.
XML.org for instance promotes open standards in Web services. To this end, they
have been involved in the development of and the ratification of a variety of
standards and formats. SPML (Service Provisioning Markup Language), WSRF (Web
Services Resource Framework) and the Open Document Format are but a few of them.
SPML is useful for enterprises that use remote services. Each service would
publish its own provisioning and allocation interface which the consumer
enterprise would allocate using a client on an on-demand basis. WSRF is a
standard that allows for management of multiple web services that also describes
the data that is flowing into and out of each service.
Sujay V Sarma