A key Role in the Initial Growth of the World Wide Web

Apache Web Server Journal

Subscribe to Apache Web Server Journal: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get Apache Web Server Journal: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Apache Web Server Authors: Elizabeth White, Liz McMillan, Pat Romanski, Janakiram MSV, Gil Allouche

Related Topics: Java EE Journal, Apache Web Server Journal, Online Shopping, Java Developer Magazine, Open Web Magazine, Open Source Journal

J2EE Journal: Article

Mixing Open Source and Commercial Software - The Best of Both Worlds

Mixing Open Source and commercial software isn't a new concept. IT departments have been doing it for years

Defining Your Requirements
Most mixed Open Source and commercial software strategies focus on creating more value for users and developers, but not all blends are created equal. When evaluating blended solutions, here's what to look for:

The best blended application development and deployment platforms are ones that deeply integrate innovative Open Source components with the proven features of the commercial solution.

Focus on blended solutions that support multiple Open Source components or frameworks instead of providing isolated support for just a few. Make sure the vendor fully certifies its software to work with the frameworks. The solution should support multiple server platforms and offer good development tool support. Underlying runtime server capabilities should be tightly integrated. And IP issues related to creating code using the blended solution should be crystal clear.

Additional factors to consider: How are the performance, reliability, and scalability? What management features does the blended solution offer? Is clustering supported? Is transaction management well integrated? And look at whether the vendor truly understands and participates in the Open Source communities for the components and products that are part of the solution.

Braswell also advocates doing a cost/benefit analysis. Manhattan Associates is using the blended approach tactically within the company, not yet across-the-board, in part because the initial outlay for completely Open Source IDEs is usually free, whereas a blended solution for several hundred seats can still add up. Braswell explains that Manhattan Associates takes both costs and benefits into account in using a blended approach. In some areas, the freely available tools are sufficient, but in other development areas, they aren't.

Braswell says, "For UI development, a blended solution definitely makes sense," and a blended approach might potentially be justified for workflow and business process integration. "Those groups that have blended solutions really like them," he says. But he mentions that blended solutions with their richer features may not be needed everywhere and suggests doing a cost/benefit analysis for each group. This could mean giving lower-level managers the autonomy to decide where to adopt a blended solution, letting them take into account the ROI of improved productivity and reliability versus licensing costs.

Conclusion
The right blended solution offers advantages in flexibility, functionality, performance, and management that aren't available when either Open Source or commercial technologies are used alone.

By offering solid support, certification, integration, and testing for Open Source components, a blended solution makes using Open Source for mission-critical enterprise applications feasible, and lets you use Open Source with ease and confidence.

To sum it up, a blended solution reduces the effort, risks, and hidden costs associated with using pure Open Source. It makes it simple for companies to take advantage of the benefits of Open Source software.

Popular Open Java Application Development Technologies and Frameworks

Apache Beehive
An Open Source extensible Java application development framework with an integrated metadata-driven programming model, designed to make it easier to develop Java Enterprise Edition-based applications. It leverages Apache XML Beans and Java 5 innovations. Beehive builds on technology developed in BEA WebLogic Workshop 8.1; BEA donated the code to the Apache Foundation.

Apache Geronimo
An Open Source application server that's compatible with all flavors of J2EE.

Apache Struts/Tiles
An Open Source framework for developing Java EE applications based on the Java Servlet API. Tiles, included with the Struts distribution, is the template framework for Struts to create reusable presentation components.

Apache XML Beans
A Java-XML binding tool that offers a Java object-based view of XML data while preserving the XML structure and schema. It was originated by BEA, which donated it to the Apache Foundation.

Eclipse
A platform-independent Open Source development framework often used to develop Integrated Development Environments (IDEs). Originally developed by IBM, it is now managed by the Eclipse Foundation.

EJB3 (Enterprise JavaBeans 3)
One of several Java APIs in Java EE, the original versions were developed by Sun Microsystems, later versions under the Java Community Process. EJB technology is the server-side component architecture for the J2EE platform; it encapsulates an application's business logic.

Hibernate
An Open Source object-relational mapping solution for Java that offers a framework for mapping an object-oriented domain model to a traditional relational database.

JDO (Java Data Objects)
A specification of Java object persistence developed under the Java Community Process.

JDT (Java Development Tools)
A set of Java development plug-ins with open APIs to add IDE capabilities and features to the Eclipse platform.

JSF (JavaServer Faces)
An application framework that simplifies developing user interfaces for Java EE applications; developed under the Java Community Process.

JSP (JavaServer Pages)
JavaServer Pages technology (open sourced by Sun) extends Java servlet technology, using XML-like tags to create dynamic Web content in a fast, simplified way.

Open JPA
Open JPA is a set of Java persistence APIs that are based on the forthcoming EJB3 standard. Persisting in-memory objects in relational databases is a key element of the draft EJB3 specification. This means that transient objects like the contents of an online shopping cart or airline ticket reservations can be permanently stored in a relational database and retrieved.

Spring
An Open Source layered Java/Java EE/.NET application framework designed to standardize many J2EE best practices and homogenize J2EE patterns.

More Stories By Pieter Humphrey

Pieter Humphrey has been at Oracle (by way of BEA Systems) for 7+ years, working in development, marketing, sales, and developer relations to advance Java technology in the enterprise. He ran the dev2dev community at BEA and continues to with work with Oracle OTN and Eclipse Foundation communities. His current role is focused on application development tools like Oracle Enterprise Eclipse Pack, Oracle Workshop for WebLogic, JDeveloper, TopLink and the ADF framework, and is a frequent speaker at industry events and workshops.

Comments (1)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.