Open Source and Open Standards
Posted on September 17, 2016
It would be a rare person who has not encountered the concept of open source software, if not actually used it in some context or another. Open source has become an important approach to software development and management today, but what is it? In simple terms, it is software developed under a licensing model that provides users that agree to the license associated with it various rights. Typically, those rights will include the freedom to use, copy or modify the source code with certain restrictions. Those restrictions may include an obligation to make any changes to the software available under the same terms as the original license, though this is not required by all open source licenses. Some licenses may restrict commercial use of the software, or require that software that embeds the open source code, or otherwise derives from it, to be released under the same license. This is the basis of the distinction between so-called restrictive licenses, such as the GNU General Public License, and non-restrictive licenses, GNU Lesser General Public License.
Why would anyone release software under an open source license in the first place? After all, isn’t source code a valuable resource that shouldn’t be shared? It turns out that there are a number of companies that have built successful businesses around open source software. Examples include:
- MySQL (now part of Oracle)
- Red Hat
- MongoDB Inc.
Other tools, such as the Apache web server, or the Spring framework, are widely used, even if they are not sold (licensed) as commercial applications.
How is it that these companies have been able to succeed when the software (or much of it) is free? To begin with, there is nothing about the open source model that forbids open source software from being sold under a commercial license, often with additional features and tools, and with commercial support. That’s exactly what these companies do. Second, it is a mistake to think of code as being the primary valuable resource that allows software companies to succeed. What is much more important is knowledge and expertise. The code base is always in flux, and is of no use to people who do not understand it. On the other hand, stronger the development team or teams, the better the application or tool will be, and the easier it is to build a successful product based on it. In fact, it is not unusual to pay developers to work on open source projects, because that helps to move the projects forward and improve the quality of the tools/applications.
Many of the same principles apply to open standards. An open standard is not code, not an application, but a standard descibing rules that must be followed for other applicatitons or processes to work correctly. One of the most successful efforts to create open standards is surely the Internet Engineering Task Force, which is responsible for defining the standards that underpin the Internet. Familiar examples of standards developed by the IETF include HTTP (which is obviously one of the core technologies of the web), the domain name service (DNS), and, of course, TCP/IP itself. Transmission Control Protocol (TCP) is responsible for moving data reliably through the Internet, and for creating the illusion of a stream of data (through what is called a connection). By contrast, Internet Protocol (IP) is responsible for getting data to where it is meant to go. It is how what allows us to send mail to another country without knowing what networks it will need to traverse in order to reach its destination. Obviously, an open standards process has proved highly successful in a domain that is highly critical, given our reliancee on modern communication technology! One might think it is dangerous to entrust such an important technology to an open process, but by now, it is obvious the IETF model has been extremely successful (and the lights have stayed on, too.)
In healthcare, there are many standards we rely on everyday. We’ve discussed a number of them on this blog. But when you think of the core terminologies (to take but one example) used in healthcare, for example,
- SNOMED CT
- ICD-10-CM and ICD-10-PCS (used in the U.S.
it will quickcly become obvious that open standards are not the norm in healthcare. There are exceptions. One example, I quite like is DrugBank which is a curated drug database, that is free for non-commercial use. It is curated and maintained by qualified professionals. But I think it is crucial that the University of Alberta (or Dr. Wishart) did not find it necessary to charge license fees for non-commercial use. We need more of this in healthcare.