2005-10-23 23:27Open Protocols, Open FormatsMotivationWe are currently at a critical stage in the development of computer technology, and our choices now affect the sort of world we are going to live in. People are having to make choices about products and services, and often the information they need to make informed choices is not widely available. Over the course of writing this blog I have seen many examples of people making these choices, some poorly, some wisely, in the news and in real life, and have been at a loss for a complete and hopefully compelling commentary on the issues involved. The following, then, is my attempt at such a piece, which should also serve as a lemma for future posts I have in mind. DefinitionsThe obvious start would be explaining the title of this post, that is, the meaning of “open protocols” and “open formats”. In particular, I will define “protocols” and “formats” to give a common basis for this discussion. A “protocol”, in computer terms, is a communication language allowing two or more pieces of software or computers to send data between themselves to carry out some task. For instance, computers communicating over the Internet follow the Internet Protocol (IP), which helps determine how data gets from a start point to an end point, among other things. Also, when a computer makes a request for a HyperText document (an HTML webpage), it uses the HyperText Transfer Protocol (HTTP) to communicate this request to the computer hosting the document, and to understand the response. A “format”, in computer terms, is a language for recording information in a computer-readable way. For instance, when you save a plain text document, the computer will usually use the ASCII format, which specifies a conversion between letters and code numbers. These numbers are then written in binary and stored on some physical medium. Also, when a computer has to store a picture, there are formats like PNG which specify how to split the picture up into blocks of colour, and how to assign numbers to those colours in an efficient way so that the whole picture can be stored as a sequence of binary digits (“bits”). Simply, then, an “open protocol” is a protocol for which the specification describing it is freely available, and an “open format” is a format for which the specification describing it is freely available. What does “free” mean? At best, it means the specification is a document that can be read, distributed and used without restriction, especially without putting any additional restriction on software someone might write which follows (“implements”) it. SuccessesI have already mentioned some examples of successful formats and protocols: IP, HTTP, ASCII and PNG. In fact, most of the Internet and the Web is built on open protocols and formats, which describe everything from the addresses (“URLs”) used to access resources, to the HTML family of formats, one of which this page is written in (view the source of this page to see what that looks like). These open protocols and formats, and others like them, are the cornerstone for every computer, enabling the multitude of capabilities modern devices provide. They stretch far beyond the mundane personal computer, into servers, mobile phones, wireless routers, cars, medical practices, weapon systems, and space missions. Since the beginning of computers, open protocols and formats have been with us allowing us to build almost everything we have today, and if we support them we will reap the benefit long into the future. Justification of successesIt shouldn’t be too hard to see why openness has been a benefit. A basic principle of science is to “stand on the shoulders of giants”, the antithesis of “reinventing the wheel”. Whenever an engineer has been faced with creating something new, something which enriches society and rewards themself, it has been an obvious option to build it using the well-established, tested and understood open protocols and formats which are available to them and to anyone. The skills and accumulated knowledge of the other people who have used these building blocks is then available to them, accelerating their own work and allowing them to concentrate their efforts on the truely innovative part of their invention. Often, the same logic works to encourage the engineer to make their own creation open in terms of its protocols and formats (while reserving the right to keep the actual software of their specific implementation protected by copyright). By being open, third parties can build compatible products and services around their creation, making the original creation a more valuable proposition to potential customers. The skills of the customers themselves should also be more transferable to the new product if it shares a basis with common existing products. For example, if someone was to create a 3D animation program, they would be sensible to include support for importing and exporting models in an open format, so that customers could use their favourite 3D modelling program to create models for it, and manipulate scenes it generates. Customers could even write their own modelling program, or pay a company to produce one for them, designed to work in harmony with the 3D animation program. This makes the program accessible to more people, and allows them to get more out of it, so they would choose that product over a competitor’s. Dangers of foregoing opennessFrom the above it should be clear that openness at least has some merit. In fact it should show that in many cases, openness is the main criteria to judge a technological decision on, but I understand that the engineering benefits may not seem like immediate practical advantages to a consumer. I will thus have to explain the above in terms of the hidden costs of choosing an alternative to an open protocol or format, which should go some way towards making those alternatives less attractive.
ProofThere may still be sceptics who would say the above is just philosophical posturing, not relevant to the real world. Also, the above may not be easy to remember when it comes to actually making a choice in a practical situation, as humans tend to remember quotes and anecdotes better than logical arguments. I therefore include some recent examples, showing the disaster scenarios I put forward are not merely theoretical.
ConclusionEven if you don’t think you understand the definitions, or you think you’re just a casual buyer that doesn’t need to know the engineering issues involved, this does still affect you. There is a simple test of openness: check if there is a compatible competing product. If you are buying a product that creates files, can those files be read by a competitor’s program? If you are buying a product that communicates with other products, do those products have to be made by the same vendor? If you are buying into a service, can third parties add features to that service? If you use a service that creates and stores data, does it let you download and migrate that data? Asking these simple questions now will save hours of frustration and countless expense later. By not protecting your interests, you are letting a company do whatever they want, whether it’s starting to require money for a service that used to be free, scrapping support for a buggy program you rely on, adding unnecessary features which slow the product down, refusing to keep up with competing products, including spyware, taking away existing features or rights you had, or some other money saving / money making scheme a company has yet to invent. Protocols and formats of all software open up! You have nothing to lose but your chains. Trackbacks
Trackback specific URI for this entry
No Trackbacks
Comments
Display comments as
(Linear | Threaded)
Just a reminder that this is a much longer post than I expected it would be. As one of the intended uses was to act as a simple introduction to the issue for people, I should point out that this could be achieved in some cases by pointing people directly to the "Proof" section. I also need to remember to check the relevance and accuracy of the examples listed from time to time, as some of the things mentioned are currently ongoing but will later be settled.
[...] Open standards create value. Not the exclusive sort of “value” which means blocking competitors from entering the market, but the inclusive sort, where anyone can benefit from the low barriers to entry and compete based on the quality of what they build using those standards. Of course, you already know this or at least I don’t need to explain it again, [...]
|
QuicksearchCategoriesSyndicate This BlogBlog Administration |