|
|
|

An Open Source Software Solution:
Maintenance, Function and Support.
As
the presence of Open Source software begins to be felt on desktops
around the world, I am finding the people are asking me for more
information about this phenomenon. As I have mentioned in past articles,
I have been given the privilege to present at the Visual Resource
Association Conference in Houston, TX. This incredible opportunity
included a chance to see Houston from on top of the Warwick Hotel, as
well as, spend time eating great food in the "Chinatown" district. It
also gave me a chance to see how you, the end-users, feel about Open
Source and the licensing issues involved in implementation of an Open
Source solution. Since you were there for me when I was preparing for
this presentation, I thought that it would only be fitting that I
present to you the final version of the presentation as it was given on
April 12, 2003. Thank you for your input and your help!
The Presentation
As a member of Central Web Support at the University of North Texas,
I am responsible for maintaining a web presence for the fourth largest
university in the State of Texas. With over 29,000 students, our web
servers play an important role in communicating with our students, and
also act as our first-point-of-contact for prospective students
throughout the world. These web servers are attacked, beaten, and
bloodied by over 45 million hits a month, and yet, it is not uncommon
for them to remain up for almost 150 days. How is this possible? Through
research, we have found that server software offered by the Open Source
community is by far the most stable and secure server software
available. Through openness, and sheer user base, these products are
becoming the standards for computing, and not just a "fad" that will
soon go away.
Why, then, is Open Source software maligned by proprietary
software corporations?
First, Open Source software represents a credible threat to their
business infrastructure. If the Apache web server holds 64% of the web
server installations on the internet, how can Microsoft or Sun
Microsystems market their own web servers? And, why should corporations
pay for a web server that does not have the stability and security of
the industry standard Apache? Second, the business model of Open Source
software does not make sense to most private corporations. How can
random groups of people, working for free, create mission critical
applications that compete with high-dollar proprietary software? Open
Source developers have shown that it's not only possible, but some
private corporations are finding that the Open Source business model is
actually very lucrative. Finally, the idea of Open Source removes
competition. If everyone has access to the source code of an
application, there is no way to hinder other developers from using that
code in their own products. Hence, the process of applying all
improvements to all applications would eventually be seen as redundant,
and only one application would emerge as the standard.
What does this mean for us?
This means that Visual Resource managers have the capabilities to
create Open Source applications that can take the place of high-dollar
applications, such as House of Images, Argus Collection Management
System, and even, PastPerfect. How can we do this? First, we need to
become familiar with the "component" tools that I am going to introduce
to you today, their role, capabilities and weaknesses. Second, we need
to decide which management area would most benefit from the introduction
of an Open Source variant, and third, we need to call on developers from
around the world, who are willing to bring their particular expertise to
our project. Let me show you how...
Let's Introduce our "component" tools
Now, because of the enormous volume of relevant Open Source software
and restrictions on time, I feel that it would be most beneficial for
you, if I were to focus our discussion on the Open Source applications
that we are using as "component" tools for our dynamic content web
hosting services at the University of North Texas. These tools include,
but are not limited to, the GNU/Linux operating system, the Apache web
server, the PHP: Hypertext Preprocessor, and the MySQL database server.
Through a general overview of each of these "component" tools, I hope to
raise your awareness about Open Source software, and also, open your
eyes to the possibilities associated with mixing these tools in
different combinations.
First of all, the importance of choosing a server operating system
cannot be overstated. If you choose an operating system that is not
available for free, it is likely that most of the software available to
run on this operating system will be expensive, or at the very least,
cost-based. This became the main motivation for our department to move
off of Sun Solaris, and make the move to a newer variant of Unix, most
commonly referred to as Linux, or perhaps more appropriately,
Gnu/Linux.
Linux, as an operating system, is perhaps better understood as the
marriage of Gnu software, the software created and maintained by the
developers of the Free Software Foundation, and the Linux kernel, which
was created under the direction of Linus Torvalds, at the University of
Helsinki, Finland. It is this marriage of Linux kernel and
third-party software that has led to the development of a the wide array
of different "distributions" of Linux. These distributions, such as Red
Hat or Debian, are really only a compilation of third-party software
"wrapped" around the linux kernel. For our purposes, as managers of
large, sustained collections, I would suggest using one of the major
distributions, preferably either, Red Hat or Debian.
Red Hat Linux is a fairly mature Linux distribution with good
documentation and a good fee-based customer support infrastructure. It
is the standard distribution for many institutions, and also has a good
working relationship with many large commercial corporations, such as
Oracle, Sun, and Macromedia. These relationships, as well as, the
popularity of this distribution make it very easy to find software that
is easily configured to work with the directory structure, the package
manager, and the libraries that are shipped with Red Hat.
Debian, or more appropriately Debian GNU/Linux, is one of the last
true open source Linux distributions. The development community, made up
of over 900 developers, has made a "Social Contract" with the open
source community promising to keep Debian 100% free, and will not allow
any component that is not 100% free and open sourced to be added to the
distribution. (Debian) They have also striven to have a stable,
error-free linux distribution, which means that Debian does not contain
the newest versions of third-party applications or kernel, but relies on
versions that have been tried and tested.
The second most important piece of software in our web design scheme
is the database system. There are many top quality database servers
available for use as resource storage tools. When deciding on a database
system, especially in a web environment, it is always better to choose a
database server. This is because a database server is always waiting for
connections from clients, and the operating system doesn't have to start
the program every time a call is made to the database, as it would when
using a desktop database system such as Microsoft Access. Under heavy
load, the latter can cause severe strain on the server hardware. It is
also important to find out which operating systems a database server
will support. Most database servers do, in fact, support multiple
operating systems and only differ in the complexity of administration
and feature support.
With over four million installations throughout the world, the MySQL
database is currently the world's most popular Open Source database
server. (Kirkpatrick) It is stable, robust, and FAST. Under rigorous
testing, MySQL was found to surpass all other database systems in speed,
and was equal to Oracle in stability. (Dyck) The ease of administration
and number of clients make this database server a key competitor.
MySQL does have some shortcomings, though, such as:
– doesn't support some newer
SQL standard features.
– doesn't support
sub-selects.
– Doesn't have an easy way
to store and create stored procedures.
Third, we have found that the Apache web server is the best choice
for serving web server content. Apache has been the industry standard
since 1995, and currently runs 64% of all sites on the internet. (Netcraft)
Apache is not the fastest, nor the most powerful web server available,
but is extremely configurable, extremely stable, and its modular
architecture and mature API make it very easy to program third-party
modules. It is this modular design which allows Apache to support such a
large number of programming languages, and allows any number of tools to
be mixed and matched to create an installation that is uniquely perfect
for your installation. Also, with the release of Apache 2, we have the
introduction of Multi-Processing Modules, which will allow Apache to
proliferate across even more platforms. (Apache)
Finally, the PHP: Hypertext Preprocessor, or PHP, programming
language has become one of the most prolific web programming languages
with usage in over 10,500,000 domains. (PHP) Its object oriented
capabilities, and large user base have helped this relatively young
language mature very quickly. Now, with the release of "The PHP
Extension and Application Repository", or PEAR, PHP has a centralized
location for obtaining reusable components to help speed the creation
process. (PEAR) PHP also has access to a great many image libraries,
such as ImageMagick and GD, (now bundled with the newest versions of PHP),
which will allow you to create and manipulate images on the fly. I think
that given the huge user base, and the amount of development that is
currently going on in PHP, we have much to look forward too.
At this point...
It is important for us to step back and look at the proprietary tools
that are being used in our jobs. Many of these tools, such as, Calm2000
and House of Images, cost thousands of dollars, and some even cost tens
of thousands of dollars, such as Argus Collection Management System and
Multi MIMSY 2000. When we take a step back and look at these tools, we
can see that they are only database back-ends with a Graphical User
Interface, or GUI, front-end. If we look at the tools that we have just
covered, we can see that we have, 1) a free database back-end, and 2) a
free language with which to create the GUI front-end. Now, if we wanted
serve these files across the local area network, we could also choose,
instead of PHP, a different front-end language such as QT, TCL/TK, Perl,
Java, Python, or any number of languages that would allow us to connect
to a central database that is located on the network. If we chose to
create an Intranet web site, then we could use a Linux server, running
Apache and use Perl, PHP, Ruby, Python for the GUI, or even install
Jakarta, and create applications using Java. All of these tools have the
same capabilities as the expensive products that you are now using.
So, you may ask, how does one start an open source project...
After deciding on the projects needs and capabilities, it is time to
start calling on developers to work on our Open Source application.
Obviously, librarians and information systems designers will be our
greatest contributors, but you may be surprised that other programmers
will find this application interesting as well, and will spend the time
to add a module or two to the application. It is also important to set
the development site at a single location, use versioning tools to keep
the development from becoming confused, and have an administrative
structure that will allow us to restrict write access to the source
code. You may also be surprised that many internet sites actually
specialize in hosting Open Source development projects, and which
already have the tools and infrastructure necessary to maintain a
project in place. One site, which Mr. Rorissa mentioned, is
SourceForge.net. This site is run by the Open Source Development
Network, and offers free access to all of its development tools and
infrastructure to all Open Source projects. (OSDN) With over 60,000
projects currently hosted on SourceForge.net, it is a very popular site
for seekers of Open Source software, and would be a great place to host
and advertise our applications to the general public. Using the site
template that they offer project coordinators, we can post news,
application bugs and wishes, create mailing lists, and track version
changes.
In conclusion, I feel that it is important for Visual Resource
managers to respond to the current economic situation with bravery and
integrity. They must look to the future, and know that their decisions
today will safeguard their libraries in the future. They must realize
that good software does not always mean expensive software, and they
must know that "free" software, does not always mean "cheap" software.
It is with this in mind, that I propose to you that Open Source software
and its ideals are the place that we should be. Librarians are an
untapped resource for Open Source, and we have so much to offer. With
our knowledge, we can begin to put Open Source tools to use, and create
competitive applications that would be available for free to all. Even
if it only using Apache and PHP to serve your content on the world wide
web, deciding to run Linux and GIMP on all of your desktop machines for
image manipulation, or collaborating on and implementing a newer, better
Open Source image management system, Open Source applications can help
save you money, while you remain on the "cutting edge". As Richard
Stallman, founder of the Gnu Project, is fond of saying, "Free software
is not free, as in beer, but as in Freedom".
Resources
*
You can read Part I
here.
|