Why are
open standards important? There's a lot of talk going on; much of it centers around the need for
Sun to make Java more open and
Microsoft making Office more open.
I remember my first
spelling checker. It ran in a separate program from my
word processor. Since DOS (not
Windows,
MS-DOS) only ran one program at a time, I had to word process my file, save it, quit the word processor, start the spelling checker, and run it on my file. Not only was this not integrated and rather inconvenient, it wasn't compatible. The spelling checker program was from the same vendor as the word processor, and that vendor's word processor's file format (each vendor's word processor had its own file format) was about the only file format the spelling checker supported (i.e., understood how to read and update). What we needed was an open standard between word processors and spelling checkers so that any spelling checker could work with any word processor.
About six years ago was the first time I ever used
a separate workflow engine. It came with its own workflow editor. Why? You imported a workflow into the engine from a file that had a particular text format. Because the format was very specific and rather cryptic, and looked nothing like a workflow, it was a lot easier to use a bubbles-and-arrows, WYSIWYG workflow editor that exported the needed file format. But the file format was proprietary, because there was no standard, so only that vendor's workflow editor and workflow engine worked together. What we needed was a standard workflow file format that any editor and any engine could support.
So is it crazy to think different products from different vendors should work together so seamlessly? Not at all. You can use any web browser to view any web site. Why? Because HTML and HTTP are standards. You can use any Java IDE to write programs that will run in any Java virtual machine (JVM). Why? Because Java code formats, class files, Jar files, and JVMs are all standard (well, specified at least). My
XA article talks about how the
XA Specification and
CORBA OTS Specification enable products from different vendors to participate in the same transaction, which is no easy trick.
Standards enable products from different vendors developed separately and unaware of each other to nevertheless work together. As if they were designed to work together, because, by following the standard, they were in effect designed to work together.
But standards aren't enough. Anyone can make something up and declare it a standard. If enough people start using it, it becomes a
de facto standard. For a standard to be useful, there's the matter of specifications, openness, and standards bodies.
A specification describes how a technology works independent of the implementation. Multiple vendors can implement the same specification differently and still be spec-compliant. Most concepts in Java are specification-driven, so anyone can implement them as long as they comply with the spec. Sun has processes like the
Technology Compatibility Kit (TCK) and the
Compatibility Test Suite (CTS) to verify compliance with specifications.
Openness is that a specification isn't controlled by any one vendor, that any vendor who is interested can participate in the specification process. This way, the spec represents the consensus of multiple vendors; one vendor isn't unilaterally making decisions. This is why
UML is controlled by the
OMG, even though it was invented by Rational; why
Eclipse is owned by the
Eclipse Foundation, even though it was created by IBM.
A standards body is a vendor-neutral, non-profit organization that approves specifications as standards. Effectively, the industry is saying that it accepts the specification as a standard. Some examples include the
W3C (HTTP, HTML, XML, etc.),
OASIS (ebXML, UDDI, WS-Security, etc.), the
WS-I (web services basic profile, attachment profile, security profile, etc.), etc.
People who wish Java were more open say that the
Java Community Process (JCP) is not a standards body and therefore the Java specifications are not true standards. Although the JCP is fairly open and it produces specifications, it tends to be dominated and controlled by a single vendor, Sun Microsystems, the inventor of Java.
Some argue that Java and the JCP should be spun off to an independent organization, so that Sun is on the same footing as all of the other vendors.
Now the issue is coming to a head in another way. OASIS has recently approved OpenDocument,
a standard for office documents. Yet Microsoft, the #1 vendor in office applications,
plans to use its own proprietary XML format. This
does not seem to be an open standard, but rather a document format which isn't specified and which Microsoft can change whenever they like.
Why is an open standard for office documents important? So that you can use the word processor, spreadsheet, or presentation application of your choice to edit your documents. And so that you can easily collaborate with other people, exchanging and editing each other's documents, each using your preferred application to do so. It's like being able to use any web browser to view any web page. Seems like something we ought to be able to expect.
-----
June 9th: Just found this CNET article:
Microsoft adding XML files to Office 12. As mentioned above, it's similar to--but not the same as--
OpenDocument. Seems like, if Microsoft wanted the OpenDocument standard to be different, they could've participated on the OASIS committee.
[
Read More]