Open source software for business
By Dafydd Rees
Office productivity
Databases
Web projects
It's not about price - it's about confidence
"Open source software" is software that is provided with the source code used in its production. Although the availability of source code
might seem just a curiosity for developers, it claims a few important benefits, notably that since more people read this source, defects
are likely to be found and corrected sooner and that the customer won't be "locked in" to proprietary systems.
Perhaps the best know example of open source software is Linux. Linux is an open source operating system freely available on the
Internet. Although Linux has yet to achieve a significant following as a desktop operating system, it has made significant gains in the
server market. It is widely used as a platform for running websites, mail systems and file servers.
Although Linux itself is known to many as a single entity, it's made up of many different subsystems. Strictly speaking, Linux itself is
only a small, central part of the system itself, called the "kernel". The remaining software, including user applications, are written by
third parties. Assembling a relatively simple to-use, shrinkwrapped, user-centric CD bundle is the work of organisations like Red Hat and
SuSe who select, build, and integrate all the different subsystems in much the same way that a PC manufacturer builds computers from
motherboards, CPUs and other third party components.
The fact that Linux is available in many distributions illustrates an important difference between most open source software and
commercial shrinkwrap products: the developers, and the central website for the project are more likely to be developer-focused than
user-focused.
Most open source websites are striving to build a community of people that will contribute to the software rather than to sell and
support a commercial product. This means that habitual users of shrinkwrap software can easily find open source project websites
frustrating and unhelpful. Bear in mind that this is because many of the sites are really a window on the development process rather than
an after-sales support service.
Netscape's decision to release an open source version of its browser proved to be a breakthrough in the development of the open source
movement. In order to outrun Microsoft's development of Internet Explorer, Netscape took the bold step of releasing the source code of
its browser to encourage third parties to use an improve their source code. (Obviously, carefully crafted legal agreements allowed
Netscape to use improvements returned from third parties in their commercial releases.)
The difference here was that although many variations of the Netscape code became available, it requires development skill to download
and assemble the code. Even then, people might not trust third party modifications. This meant that Netscape could continue to charge for
an official release version, supported and packaged in an easy-to-use format. This event marked the starting point for many other
companies to launch open source products.
As a matter of terminology, it's worth noting that "open source" isn't the same thing as "free software". The Free Software movement
includes the concept of being able to inspect the code used in a software product, but also embraces the notion that software purchasers
and users shouldn't be bound by software patents and restrictive licence agreements. As Richard Stallman
Richard, founder of the
Gnu Project
describes it: "Free as in Speech", not "Free as in Beer". (Further information about the Free Software Foundation can be found at
http://www.fsf.org .) The open source community is more pragmatic, and not all open
source projects or products aspire to the ideals of free software.
Sun Microsystems decided to open up development of its office productivity suite, StarOffice. Like many companies supporting open source
initiatives, they decided to take a similar strategy to the one adopted by Netscape. Distribute a free, open source product (OpenOffice)
and use it as a basis for a commercial product (StarOffice). In this way they can obtain technical feedback and improvements from a
community of developers.
It's clear that Sun are attempting to compete directly with Microsoft Office. For those who aren't familiar with the corporate politics
at Sun, here's the strategy: people won't switch from Microsoft Windows because they need Microsoft Office and that doesn't run on Sun's
operating system. Naturally, StarOffice runs on Linux and Solaris as well as Microsoft Windows. OpenOffice and StarOffice offer word
processor, spreadsheet, and presentation applications. StarOffice also a tool for producing reports from a third party database product.
It takes only a few a hours of use to become comfortable with OpenOffice, and there's very little difference between OpenOffice and
StarOffice. Perhaps some will feel more comfortable with printed manuals and official product support available with StarOffice, given
that it's relatively cheap at £50 in the UK. On the whole both OpenOffice and StarOffice have startlingly good functionality, meeting
Microsoft Office feature for feature in most areas.
Despite the fact that both packages can load and save Microsoft Office files doesn't mean that they implement Visual Basic for
Applications, the native scripting language used in MS Office. If your work involves receiving files from MS Office users that rely on
scripting to do some automated task, that task is unlikely to function in OpenOffice and StarOffice.
Similarly, MS Office has an application programming interface (API) that allows programmers to drive programs like MS Excel. Obviously,
no other office productivity suite is going to be able to support all of this API and the proprietary Visual Basic for Applications
language. It's difficult to see how Sun or any other package developer could overcome this problem. Of course, if you work somewhere that
has explicitly bolted Microsoft Office into its internal applications, its unlikely that you will be able to switch to any other office
package in the near future.
It's also notable that neither OpenOffice nor StarOffice have a contacts manager application. (A previous edition of StarOffice, indeed
used to have a contacts manager.) These days, many people have pocket or handheld computers, or synchronise their mobile phones against
their contact manager. Most mobile device manufacturers are only interested in making their devices synchronise with the market leader
(Microsoft Outlook).
Despite these limitations, for most users that need to write convential business letters, documents and spreadsheets I'd certainly
recommend trying OpenOffice. (See http://www.openoffice.org)
The two major database systems in the open source world are Postgresql (
http://www.postgresql.org ) and MySQL (
http://www.mysql.com ). These are both server-based databases like Oracle and
Microsoft SQL Server rather than simple desktop databases like MS Access.
Postgres is the more mature of the two, and supports some sophisticated features such as table inheritance. MySQL on the other hand is
faster, although until relatively recently, it hasn't been able to support proper transactional queries. (However, even older versions of
MySQL can be used quite safely in some applications where transactional support isn't needed, for example implementing caches.)
In order to get data from both Postgresql and MySQL into your desktop applications, Windows users will need an ODBC driver. (An ODBC
driver is a piece of software that makes streams of data from your database available to other applications running on your PC.) Both
MySQL and Postgresql have ODBC drivers that you can download. Using these drivers you can typically populate spreadsheets with live data
from your database, even though that database may be running on another machine on your network. People using Postgresql may be
interested in the webpage at
http://techdocs.postgresql.org/guides/GUITools where a list
of graphical tools for manipulating postgresql databases can be found.
One of the best known web servers is an open source development project called Apache. It's overwhelmingly likely that you've visited a
site that runs on Apache. (BBC Online and Amazon.com for example are both heavy users of this no-cost, open source web server).
Apache is a success story in the open source world, given the fact that it has attracted a great deal of support from the concept of
"modules" that can be plugged in to the basic product. It has modules for different types of security features, user tracking,
customisable logging, and applications developed in many different languages.
Many security holes have been found and plugged in Apache. We can only speculate about the state of code in non-open source web servers.
With Apache, developers have been volunteering fixes, rather than just reporting problems. It can be argued both that Apache is widely
used because it has many modules, and that it has many modules because developers are willing to invest time writing modules for Apache
because it's such a high profile project. Although the Apache project was originally developed for Unix and Linux-based machines there is
now a Microsoft-Windows NT-based derivation, although it hasn't reached the same level of maturity as the original version. (See
http://www.apache.org )
In addition to using open source as a means of getting a community of collaborators to contribute to the breadth and quality of the
codebase, some open source projects have involved creating "reference implementations" of a standard. The Jakarta subproject within
Apache works this way (
http://jakarta.apache.org ). Jakarta produces Tomcat, the reference
implementation of the Java servlet specification. In other words Tomcat is the most up-to-date Java-based web server available. Tomcat
provides a working implementation of new features for engineers at infrastructure companies such as IBM, Oracle and Weblogic - where they
strive to produce higher performance implementations.
As a developer, downloading and trying out Tomcat can provide familiarity with features not yet available from commercial sources. For
low-volume websites, Tomcat may well be fast enough not to warrant a commercial Java web server after all.
The James Apache subproject is a Java-based mail server, capable of holding mail accounts for a department or a small company. As with
Tomcat and Apache itself, James is a no-cost solution freely available from
http://jakarta.apache.org .
Another interesting example of a company wishing to share an improve its technology can be found in
http://www.openadaptor.org . This project provides a framework for integrating
different systems that use messaging technologies, such as message queue-based banking software. In order to benefit from external
developers and mature their codebase, Dresdener Kleinwort Wasserstein chose to open up their codebase as an open source project.
There are a lot of open source projects in the world. Most of them are experiments and hobby projects. Most of them are only usable by
developers interested in a specialist area. However some influential companies and consortia are using open source development as a means
to build a community of enthusiasts, actively interested in their product.
The business benefits include gaining contributions from the public, and increased loyalty. Technical people supporting business users
also gain, by getting better access to technical information and because access to source code makes it difficult for vendors to lock
companies in to proprietary formats.
When evaluating a product or an open source project ask yourself four questions:
"How free is the technical information?" All open source projects should provide complete source code.
"How mature is this?" Care needs to be taken to avoid vapourware and stale projects. Recent postings on a forum and documents with
recents dates are a good sign. The best sign of life is a web-accessible code repository with a healthy number of files added over time
right up to the present.
"How much does this cost?" Not all open source projects are free. Some companies like Arsdigita Corporation gave away a platform but
charged for consultancy and extra development.
"How easy is it for everyday users to operate?" This is the big weakness for most open source projects. The user usually comes last on
the list of priorities, because most of the effort on websites and in documentation seems to go in to attracting and retaining a
community of developers. Only the most mature projects and those funded by corporations are likely to take ease of use seriously.
It's not about price, it's about confidence. Few projects manage to meet all four criteria, but those that do, should give customers a
great deal of confidence.
About the Author
Dafydd Rees is a software developer specializing in Object Technology and a former student of Swansea University's Computer Science
Department.
Menu: Home, Services, Events, Features, Interviews, Profiles, Reviews, News, Resources, Press