Google search for "enterprise open source" returns more than 1.5 million results. There are Web sites, conferences and trade shows, and even a fairly large number of books devoted to the topic. In this article we'll define what "enterprise open source software" means and describe the characteristics of such applications.
> Defining Enterprise Software
Martin Fowler, chief scientist at ThoughtWorks writes,"Enterprise Application is the name I give to a certain class of software systems: the data intensive software systems on which so many businesses run. Another, and perhaps better, name for them is Information Systems since these are systems that process and manipulate information."
For the purposes of this article, we will use Fowler's definition: Enterprise Software is software that solves problems across an enterprise, rather than specific problems within an enterprise. Thus, most desktop applications would not be considered enterprise applications nor, in this case, would operating systems or database systems since they don't solve problems or process information in and of themselves.
Examples of true enterprise applications include Customer Relationship Management (CRM), Enterprise Resource Planning (ERP), Content Management, and corporate financial applications. At a minimum, enterprise applications should have the following characteristics:
- High availability: If operations or revenue stop when the application stops, then the application must be continuously available.
- Security: The application will be processing the enterprise's most precious possession: its information. When dealing with sensitive information, strong security is a must.
- High performance: The application must perform adequately under the load it is given.
- Scalability: The application must scale to whatever size is required.
- Support: The application must be professionally supported.
Centric CRM is one open source enterprise application that has those characteristics. Let me explain.
> Building Enterprise Open Source Applications
Ever-larger enterprises are beginning to seriously evaluate open source solutions to determine whether such products provide a proprietary applications. "We are making a strategic move to embrace open source technologies," says Brian Shield, CIO of The Weather Channel. "Finding enterprise-ready products such as Centric CRM have allowed us to mothball several expensive proprietary systems already."
The challenge for open source providers is to build an application that simultaneously leverages the advantages of open source development—large groups of developers improving the code, viral spread of solutions, the essential appeal of open source products—while also satisfying all the requirements necessary to be seriously considered ready for the enterprise. This means solving a number of potentially conflicting requirements. On the one hand, it must appeal to an open source community, be accessible, understandable, inexpensive or even free, and run entirely on an open source infrastructure. On the other hand, it must be built on an enterprise architecture, support very large installations and be capable of running on any application stack the customer specifies, with little or no change.
CRM is one of the most critical activities in which successful companies engage. CRM is first and foremost a business strategy. Successive waves of technologies—starting with index cards—have emerged to help businesses do a better job of managing their customer relationships. Most CRM solutions available to date have involved expensive, proprietary software. One of the most exciting developments in CRM technology is the emergence of advanced open source solutions. By their very nature, open source applications are less expensive to acquire, deploy and support than proprietary solutions. When correctly designed and implemented, an open source system like Centric CRM will provide enterprise- class security, scalability and features at a price and in a form accessible to everyone.
> The Emergence of an Enterprise Open Source "Ecosystem"
Centric CRM is by no means the only open source application developer who has thought through the issues involved in building true enterprise-class open source solutions. Without the guiding hand of a single organization, there is now available a suite of complementary, enterprise-ready products that solve a wide range of corporate IT problems. "It may take some getting used to, but open source is the way of the future for enterprise software," notes Peter Winston, CEO of Project.net. "With the product source code, you can customize applications to your own specifications, in much less time and at a much lower cost of financial and human resources."
The emergence of a suite of Java-based enterprise-class applications is also creating tremendous opportunities for VARs and Systems Integrators with open source expertise. "We can now offer our corporate customers cross-departmental open source business functionality," says Ron Bongo, CEO of CorraTech, a large open source integrator with operations in Europe and the US. "By delivering solutions using open source code within a Service Oriented Architecture (SOA), we can provide deep integration that's maintainable.
> An Enterprise Open Source License
Despite the lack of a guiding hand, almost all serious enterprise open source vendors have made substantially similar choices in the architecture they have chosen. In particular, they have all chosen Java J2EE as the correct development platform. They have also made substantially similar choices about how they license their products. Consensus is building around the key elements an enterprise open source license must embrace. In particular, the following elements are important to an effective enterprise license:
- The source code must be truly open.
- The license must discourage "forking" of the code. As long as large enterprises have to worry about multiple variants of a product emerging, they will not embrace open source solutions for mission-critical applications. Instead, they need a unitary code-base backed by a real vendor offering professional service and support. An enterprise open source license creates this condition by restricting redistribution of the source code. Thus, while the full source code is truly open (in other words, freely available to download and inspect), it cannot be resold (presumably with modifications) without the vendor's permission.
- Any modifications that a customer makes to the application for their own internal use must belong to them. Customers who undertake meaningful development to create significant competitive advantage for themselves cannot be forced to involuntarily submit their enhancements back into the core product.