Browsing all articles from April, 2009

Background: What is Open Source Software

Posted Posted by Martin P in DCM4CHEE     Comments 1 comment
Apr
10

First installment in a user manual for DCM4CHEE.

DCM4CHEE is “Open Source Software”. It is important to have an appreciation for what means.  In particular it is not the same as “freeware”. Freeware is software which, while being provided for no monetary charge, is remains as proprietary and restricted as software for which considerable money changes hands.

DCM4CHEE is also “Free software”, which equally, is very much NOT freeware.  The differences between “Open Source” and “Free” software are in subtle and generally irrelevant details within the licenses under which software is published.  it can be said that the term “Open Source” (as defined by the Open Source Initiative) is a slightly less dogmatic perspective than “Free software” (as defined by the Free Software Foundation) on the vision of freedom in software:

From fsf.org:

Free software is a matter of liberty, not price. To understand the concept, you should think of free as in free speech, not as in free beer.

Free software is a matter of the users’ freedom to run, copy, distribute, study, change and improve the software. More precisely, it refers to four kinds of freedom, for the users of the software:

  • The freedom to run the program, for any purpose (freedom 0).
  • The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help your neighbor (freedom 2).
  • The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.

A program is free software if users have all of these freedoms. Thus, you should be free to redistribute copies, either with or without modifications, either gratis or charging a fee for distribution, to anyone anywhere. Being free to do these things means (among other things) that you do not have to ask or pay for permission.

That does not mean these freedoms extend to blind freedom.  As in “free speech”, Free Software entails responsibilities to go alongside the freedoms.  In the case of both “Free” and “Open Source” software, those responsibilities are enforces by the licenses under which the software is published.

DCM4CHEE is published under 3 different licenses – you can pick one according to your needs, although all 3 enforce the freedoms as above and some basic responsibilities:

  • If you redistribute the software you must:
    • Make the source code available.
    • Make any improvements you have made to the software available to the community.
    • Publish the software under a license which protects the same freedoms and enforces the same responsibilities (generally, THE same license under which you received it).

It is important also to appreciate that intellectual property and copyright do not cease to apply.  Unless specifically transferred, the copyright remains with the original owner – it is simply that the owner is licensing the use/distribution of the software given the associated responsibilities.

It has been said that free software is developed by ‘by definition, unpaid amateurs’. This could not be further from the truth. If we take an example of Linux – free software that has had an enormous impact, it has been estimated that at least 70% of the contributions are from folk who are paid specifically to do so.  It is also true that a very large percentage of the remainder are contributors who are nontheless professional developers but have other motivations.  Some may be motivated by simple benevolence, some by ego, and some by the opportunity for self-promotion and peer recognition.

In this way, DCM4CHEE is not unlike many other Open Software projects – many (all?) of the contributors to the code, the documentation and the support forums are software professionals with specific (if not always financial) motivation.

The benefits of developing software in such an open environment are many, but can be summarised as:

  • Community. While proprietary software has long maintained ‘user groups’ which can support each other, a succesfull Open Source community is far more powerful.  Between support forums, documentation, bug reports and code contribution, a community has the power to offer far more than a proprietary vendor can.  Very often this also feeds through to the quality of the software itself.
  • Value re-use. Although first coined in the 12th century, Isaac Newton phrases it succinctly:

If I have seen a little further it is by standing on the shoulders of Giants.

..although I understand his was in latin.  The Open Source development model facilitates the reuse of work done elsewhere without complex and debilatory cross-vendor arrangements.  DCM4CHEE is built on JBOSS (OSS), which in turn is building on JAVA (admittedly only recently OSS), and which uses TOMCAT (OSS) as a web server.  in turn, other OSS projects (E.g. Mirth amongst others) uses DCM4CHE for DICOM functionality.

  • Transparency.  When the code to software is not made available, claims of specific quality factors, or adherence to standards, must be taken at face value.  Not so with Open Source Software.  Such claims can be tested, increasing user’s confidence in the software.
  • Flexibility.  It is a common enough response to the common enough request of a vendor:

Request: Can we have feature XYZ added to this software?

Response: We’ll submit your request to product management. If it is approved it may make the backlog for version Current+2.

With Open Source software, a feature request may be considered sympathetically or not, but a user always has the option of developing (or having developed on her behalf) the feature herself.

Next up: DCM4CHE and Backround: XML / XSL / XSLT