In recent years, Microsoft's toolsets and Sun Microsystems' Java-based products have been major players in the corporate Web-application-development world. The products have been used to build many enterprise applications and have earned both vendors considerable revenue.
Now, though, a set of open source technologies is pushing its way into mainstream corporate software development: the LAMP stack, which includes the Linux operating system, Apache Web server, MySQL database, and scripting languages Perl, PHP, and Python.
Proponents tout what they see as LAMP's advantages over proprietary application-development tools: lower costs, greater flexibility, and faster improvements in the component technologies.
"The platform is also easy to work with and reliable," said Zack Urlocker, database vendor MySQL AB's vice president of business development.
Companies, cautious about the open source approach, typically have used LAMP for small-scale development of Web databases and other applications. However, vendors have been upgrading the component technologies by increasing their functionality, simplifying information flow between them, and providing the technical support that companies want for their applications.
Now, a number of companies are using LAMP for large Web applications, as the " Growing Commercial Adoption of LAMP
" sidebar describes. For example, Google and Yahoo used the approach to build search applications, while Lufthansa and the Sabre Travel Network used it to develop travel reservations systems.
However, numerous companies won't use the approach, which still faces several important challenges.
The LAMP stack is a loose collection of open source components that developers can combine to build various types of Web applications. For example, a company could build an e-commerce application written in Perl with the Apache Web server running on Linux servers as the front end and MySQL databases on the back end.
LAMP component technologies
LAMP has four basic component technologies. Linux. The open source, Unix-like operating system runs on many types of computer hardware. Apache Web server. Apache runs on most Unix-based operating systems, some Unix/Posix-derived systems such as BeOS, a few Windows versions, and several other OS types. It is the most popular software of its kind, running 69.6 percent of Web servers, according to a July 2005 survey by NetCraft, an Internet-services company. MySQL. This relational database management system (RDBMS) is based on the Structured Query Language. About 6 million applications use the technology, according to parent company MySQL AB.
The RDBMS is used in a range of settings, including data warehouses, e-commerce systems, and distributed applications. Scripting languages. LAMP works with dynamic, open source scripting languages such as Perl, PHP, and Python. Businesses and IT professionals are increasingly looking to scripting languages because of the advantages they offer, explained Andi Gutmans, vice president of technology at PHP vendor Zend Technologies.
Traditional, low-level programming languages require annotating an application with information that makes compile-time checking possible. Instead of using these annotations, dynamic languages work with information available at runtime.
In general, traditional languages tend to offer programmers more flexibility with and fine-grained control over code. Also, scripting languages, often interpreted, can execute slowly and consume more memory when running.
However, supporters consider scripting languages to be easier to learn and use; faster to write and debug; more efficient, with a single line of code often performing the work of many lines of low-level code; and portable, with scripts usually being able to run on different platforms with few modifications.
Tim Bray, Sun's director of Web technologies, said some scripting languages, such as Python, can be easier to learn than Java, but others, such as Perl, are harder. In addition, he said, Java is more effective for many types of programs because it offers better threading, memory management, APIs, and other capabilities than most scripting languages.
Potential LAMP advantages
Proponents say LAMP has several key advantages over proprietary software development approaches. Cost. The shift toward LAMP is in part a reaction to high commercial software prices, explained MySQL AB's Urlocker. Open source software is either free or low cost compared to proprietary software, he said.
Of course, companies sometimes must pay for customer support for open source products they buy from vendors. Users also sometimes must pay developers to make sure the software work in their systems and to add features, explained Clint Oram, vice president of open source for SugarCRM, a vendor of open source customer relationship management applications.
Microsoft argues that because it designs and integrates the components of its development environments so that they will work together, they entail a lower total ownership cost than open source approaches.
Analyst Stephen O'Grady with Red Monk, a market-research firm, said the total ownership cost argument between LAMP and commercial approaches is difficult to resolve because it depends on various factors such as in-house expertise, the cost of outsourcing development and maintenance, available resources, and the existing infrastructure. Open source. One key argument reflects some long-standing disputes over the relative merits of open source and proprietary software.
Proponents contend that because anyone can review, modify, and work with open source software, developers can improve and fix the technology faster. For example, users have translated SugarCRM's products into 24 languages.
Proprietary software goes through a slower and more deliberate development process. Microsoft controls all work on its software, while Sun—with input from vendors such as BEA Systems, IBM, and Oracle—uses its formal Java Community Process to develop Java technology.
Proprietary software proponents say this offers advantages, such as careful, coordinated development of applications designed to work together.
Robert Brewin, Distinguished Engineer with Sun Developer Tools, said that his company's approach provides an industry-standard, robust, scalable, and well-rounded stack that can be used for many purposes such as client development, security, and highly scalable server-side processing.
Critics contend that commercial software frequently locks users into one vendor's products. "Fear of platform lock-in is one of the major reasons that the open source movement has become so popular," said MySQL AB's Urlocker.
In the past, corporate developers shied away from LAMP because they worried about open source software's quality and a lack of customer support for applications created by independent developers, not vendors, noted SugarCRM's Oram. They also had intellectual property concerns such as competitors being able to use capabilities a company adds to open source software or a business being sued for using open source software that allegedly includes someone else's intellectual property, Oram said.
However, he added, improvements to LAMP's elements have alleviated some of these fears. For example, many vendors offer legal indemnification to protect customers from intellectual property lawsuits over open source software, said Jacob Taylor, SugarCRM's chief technology officer.
Companies are now working with licenses that let them keep their own additions to open source software from being freely used by competitors.
Red Monk's O'Grady said, "We are finding improvements in every component of LAMP, which has given it the ability to move to higher-end tasks."
Companies such as ActiveGrid, a vendor of open source grid-server software, are building common enterprise features like data caching and the ability to replicate a transaction across servers for redundancy into the LAMP architecture.
Better LAMP support
In the past, users had difficulty combining the various LAMP components to make them work together optimally, said Jeff Veis, ActiveGrid's vice president of business development.
"You had to handcraft these LAMP-based solutions," he said. "You needed a rocket scientist to piece the components together. A limited number of corporations had the expertise to do it."
Now, a number of vendors help companies build and manage open source-based Web applications. For example, Covalent Technologies provides support for programs based on Apache, said Jim Jagielski, a senior consultant at the company and one of Apache's original developers.
In fact, an increasing number of businesses, such as MySQL AB, sell and support the various technologies used in the LAMP stack, and this has encouraged more companies to use them. For example, Linspire, Novell, Red Hat, and Terra Soft Solutions support Linux. Zend sells development and application frameworks for use with open source scripting languages such as Perl, PHP, and Python.
Commercial software responds
Vendors are responding to the challenge that LAMP presents to their traditional business model.
To address the threat that LAMP poses, Microsoft is adding features to its lower-cost Web application-development products, which have generally competed with the open source approach. The company says that its ASP.Net Web development tool will have new controls designed to reduce the amount of code necessary in common development scenarios by up to 70 percent.
Microsoft is also now offering several SQL Server versions—Enterprise, Standard, Workgroup, and the free Express—to make the database-management software useful in more situations, including those in which LAMP might otherwise be used.
The company also is readying an Apache-like version of its Internet Information Server Web server suite featuring a plug-in architecture that will make IIS more modular. According to Microsoft, this will let users load just the IIS pieces they need and speed up performance.
Sun's Bray said his company is taking several steps to improve Java-based development tools. For example, he said, Sun is focusing the next release of the Java 2 Platform, Enterprise Edition (J2EE), on ease of development.
Explained the company's Brewin, "With tools like NetBeans and Java Studio, Sun is investing heavily to make sure that the core infrastructure and ease-of-use facilities are baked into the foundation of the developer platform and IDE to make it simpler for developers."
According to Bray, Sun supports the open source Coyote project ( http://coyote.dev.java.net) to add support for dynamic languages.
High-end database vendors are also supporting dynamic scripting languages. IBM and Oracle are working with Zend on the Zend Core development environment to make it easier to build PHP applications that work with their database engines.
MySQL AB's Urlocker predicted that adoption will increase as vendors release more LAMP-based applications and tools. For now, though, corporate LAMP use is still relatively new, so many companies are unwilling to try it.
Vendors and users still must work out some kinks in making the LAMP components work together consistently as a unified development platform. Problems can arise when new versions of LAMP components are issued. One program might require PHP 5.0 to work, while others might not be compatible with PHP 5.0.
Soon, companies could begin developing Web applications using open source components not in the LAMP stack. Covalent's Jagielski did not anticipate that a Web server will replace Apache, but he said there could be competition for MySQL and the scripting languages. For example, he noted, LAMP's popularity has rejuvenated interest in open source databases such as Berkeley DB, PostgreSQL, and the Java-based Derby.
In some cases, companies will still prefer using proprietary tools. Increasingly, said Sun's Bray, companies are developing applications using both proprietary and open source components to take advantage of each approach's strengths.
is a freelance technology writer based in Brisbane, California. Contact him at firstname.lastname@example.org.