Linux Exploded For Several Reasons
You can’t work in the information technology sector and not be touched by Linux in some way, even if it’s only in a debate about what role Linux might play in your organization.
Linux is an Open Source operating system developed by a team of programmers lead by Linus Torvalds and originally targeted at the Intel x86 platform. Linux is a UNIX-like operating system, but since it was written completely from scratch, it uses no original UNIX source code. On the positive side, that means there are no copyright restrictions on the code. The biggest disadvantage, however, is that the operating system isn’t built upon a base of heavily used code. It also doesn’t have all the features you’d expect from a production UNIX system, like large-scale storage management.
Red Hat recently introduced an Enterprise Edition that includes Computer Associates’ AcrServeIT. The tacit admission is there’s a 100 percent Open Source operating system that still leaves high-end users wanting.
Linux began in the early 1990s and has moved from Intel to Motorola, Alpha, Sparc, and other major platforms. Because of its broad base of programmer support and its ability to run software from the large GNU software library, Linux is a viable alternative to both commercial UNIX servers, and Microsoft Windows and NT client machines. Ease of use–a common concern with UNIX–is less of a problem with two widely available desktop environments, KDE and GNOME, both of which are easy for Windows or Macintosh OS users and developers to learn. Both environments support a variety of themes that affect the appearance of windows, buttons, and scrollbars, letting users adopt a Windows or Macintosh look and feel.
To be a serious contender in the e-business market, Linux needs to offer more than a pretty desktop, and it does. First, it’s becoming the operating system of choice for high-end server vendors, such as IBM, Silicon Graphics, and Compaq Computer. Other vendors, such as Dell Computer, offer Linux preconfigured on its servers. Customer support is available from hardware manufacturers, as well as from Linux distributors like Red Hat, Caldera, and SuSE.
Also, Linux tools abound. The most popular Linux distributions include web and FTP servers, as well as other Internet applications such as Gopher, Domain Name Services (DNS), Mail, News, Proxy, and Search servers. The breadth of applications available with the widely supported, inexpensive operating system makes it an ideal candidate for web server applications. Industry analysts report more than 30 percent of web servers run on Linux.
Apache: Web server of choice
The Apache Web Server is a freely distributed HTTP server developed by the Apache Group and managed by the Apache Project (http://www.apache.org). Evolving from the National Center for Supercomputing Applications (NCSA) web server developed at the University of Illinois, Apache has become the most popular web server. According to a Netcraft survey of more than 13 million web sites conducted in March 2000, (http://www.netcraft.com/survey), Apache is used by 60 percent of the respondents. The next most popular server, Microsoft IIS, came in at just under 21 percent.
Popularity, though, is hardly the only consideration in judging e-business software. Scalability, reliability, and integration with other applications is crucial. Apache has been a stable platform on UNIX for some time, but Windows implementations haven’t proved as reliable. The Apache Group’s recently announced Apache 2.0 includes better support for non-UNIX platforms, which should improve Windows stability.
On the performance side, Apache 2.0 supports a hybrid multiprocessor/multithreaded mode that promises to improve scalability, though more real-world use is required before we know how well it meets that promise. The Apache Software Foundation supports projects focused on integrating Apache into the larger e-business environment, including XML-Apache, Java-Apache, and Java Servlet and Java Server Page support. The mod perl project provides developers the tools to create Apache modules in Perl that eliminate the need to run CGI scripts in a separate process, thus avoiding costly process instantiation.
Web servers also must provide access to middle-tier business services, especially those driven by database applications. Apache is recognized as a viable HTTP server by high-end web applications servers, such as the Oracle Application Server and IBM WebSphere.
Like Linux, Apache’s wide market acceptance demonstrates that Open Source development can create an essential tool for e-business. The release of Apache 2.0 (which was in alpha testing at press time) further shows that Open Source software can keep up with the demands of changing needs. However, while Apache is a solid choice for UNIX and Linux platforms, until a stable Windows version is available (and perhaps it’s close), Microsoft IIS is probably a better alternative for NT.
Perl: Portable programming
While C/C++ is a portable programming language, the learning curve and time required to develop fully-functioning applications is oftentimes prohibitive. While Java has eliminated some of the most (potentially) problematic aspects of C–especially pointers–and offers a rich set of libraries like C/C++, development is still coding-intensive. The Perl programming language has emerged as the programming tool of choice by as many as one million developers, according to The Perl Journal.
Perl was originally used as a systems administration tool on UNIX platforms, but was quickly adopted for Web development and data-intensive programming because it includes many features found in other tools, such as C, awk, sed, and BASIC. According to http://www.perl.com, Perl is the most popular web programming language, due in large part to its powerful text manipulation. From an e-business perspective, the fact that Perl runs on so many platforms and can handle operating system administration tasks, as well as more traditional database-oriented tasks, makes it an ideal candidate for a development tool. Since Perl applications can be written to run as embedded modules in Apache, web server processing can improve as much as 2,000 percent.
Can Perl pass the muster in an e-business environment? Amazon.com and Deja.com are two of the major dot-coms that use Perl to run their sites. In addition to Apache integration, the nsapi_perl module embeds a Perl interpreter in a Netscape web server so e-businesses don’t have to trade the faster performance of an embedded interpreter if they don’t use Apache.
The Perl language is also widely supported by third-party developers, offering more than 400 modules at the Comprehensive Perl Archive Network (CPAN) (http:// www.perl.com/CPAN/). Perl has been ported to major UNIX platforms, as well as Microsoft Windows and NT, and Macintosh. Also, Perl can easily integrate with databases through DBI modules, making it an ideal tool for creating applications from database-centric web pages to data warehouse extraction, transformation, and load scripts.
While popular, the Perl syntax can be cryptic. This is understandable given its origin as a systems management- oriented tool, but this limits its use for large-scale software development. Python, an object-oriented scripting language, is a better choice if you’re looking at larger applications where reuse and object orientation will pay off.
Databases: The weak link
When we think of e-business and databases we generally think of the big names: Oracle, IBM DB2, Microsoft SQL Server, Sybase, and Informix. Occasionally, we’ll hear about the two most popular Open Source offerings–MySQL and Postgres–but not too often. Why not? Those offerings simply can’t compete with the features and functionality of today’s commercial relational database management systems. In some cases, the lack of features makes the Open Source databases unusable in an e-business environment.
For example, MySQL’s lack of subqueries and right outer joins require developer work-around solutions. More seriously, the database’s lack of transaction support completely eliminates it as a serious contender for e-business. The transaction support found in major commercial offerings makes it possible to define a logical unit of work consisting of a series of steps that must all occur for the transaction to be completed. For example, transferring funds from your savings to your checking account may consist of two distinct steps–withdrawing money from savings and then depositing it into checking. Without a way to group those two steps, it would be possible for the withdrawal to be made without the corresponding deposit. That could occur if the server crashed in the middle of the operation, and no server is immune to crashing or other problems that could disrupt a transaction.
PostgreSQL, originally developed at the University of California at Berkeley, has many of the features found in commercial databases systems, including transactions, stored procedures, and extensive SQL support. If you’re looking for an Open Source database, this is probably the best. However, you must remember there’s much more to a database than what meets the programmer. If you need to consider integration with enterprise resource planning systems, failure recovery, parallel query optimization, advanced partitioning options, support for data warehousing (such as summarization and query redirection), then the commercial offerings are your best bet.
Conclusion: No simple answer
Can an e-business succeed with Open Source? Of course. TCP/IP and other core Internet protocols were developed in an Open Source environment. The key to success is to not blindly ignore or embrace Open Source any more than you would a particular vendor’s offering.
Open Source offers strong programming tools, Web servers, and a popular operating system that’s making steady inroads into production environments. In terms of databases, like your Web server, the database must be reliable, scalable, and easily integrate with your other systems. If you stick to the most widely supported Open Source solutions, including Linux, Apache, and Perl–to name just three–you can build a stable, reliable e-business platform.
Linux isn’t as established as UNIX, and it may not scale or promise the kinds of uptime you expect from UNIX, but for small- and mid-sized web sites, it may fit the bill. Apache and Perl both have strong developer support and in key areas, such as database access and performance, they get as much attention as any commercial product would.
For real-world, large-scale e-business, Open Source mixed with commercial applications is the best approach. While making significant inroads, Open Source still can’t marshal the resources to keep up with changes in technology. Red Hat’s alliance with Computer Associates for high-end storage options is a case in point. While advanced storage applications and robust databases may emerge from Open Source development, there aren’t any now–and we need them now.