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

Mixing Open Source and commercial software isn't a new concept. IT departments have been doing it for years, especially when building out their core server, networking, and database infrastructures. But using a novel "blended" application development strategy - one that combines Enterprise Java APIs and Open Source Java application frameworks - offers the best of both worlds.

Better Java-based Enterprise Apps with Open Source and Commercial Tools
Many IT organizations already depend on Open Source software for some of their application development or deployment. But pure Open Source solutions don't always meet enterprise requirements. Using a blended application development and deployment model lets developers pick the right tool for the job and results in more flexible deployment options.

Managing the lifecycle of Java-based enterprise applications presents special challenges and opportunities. There are so many standards, programming models, and deployment options that it's hard to choose, let alone integrate them. Java Enterprise Edition APIs provide solid basic standards, but they can offer too many options. The architectures can be overly complex, and their evolution can noticeably lag behind current software practices.

To address these complexities, the Open Source community has developed various solutions. Open Source Java application frameworks - the evolutionary response of the Java Enterprise development community - leverage Java Enterprise standards to simplify application development. They are more quickly responsive to community feedback, and they usually address specific technical problems. (That, however, can mean that one framework may not solve all of a developer's problems.)

But using Open Source solutions can present real challenges. You have to manage releases that vary between continuous and unpredictable, and there are IP concerns as well. To integrate multiple Open Source components, IT organizations have to do rigorous testing as, pre-integrated and pre-tested stacks of Open Source components are still scarce. Multiple deployment platforms add complexity. Development tools may not support an emerging technology if the project's community isn't focused on it. Documentation or support can be erratic and administrator or developer utilities can be inadequate - or dependent on yet other tricky-to-integrate Open Source components.

When project requirements expand, developers look for linked portfolios of products that will integrate well and provide a good forward migration path. Unfortunately, Open Source application development tools don't really exist in such matched, compatible sets.

The upshot: mixing commercial and Open Source products can offer significant advantages for application development. Using a blended strategy lets you mix and match the best features from both commercial applications and Open Source frameworks when developing and managing Java-based applications.

Approaches to Blended Software Development
So what is blended application development? It does not mean randomly taking bits of Open Source software and adding a commercial wrapper ("strip mining") or attempting to increase the adoption of slow-moving technology by donating it to the Open Source community ("waste dumping").

Instead, a blended application development and deployment strategy lets IT organizations combine Open Source and commercial software in a way that fits their requirements and minimizes integration and testing headaches. Ideally, it offers a platform where developers can mix and match the best features of each solution, so that teams can seamlessly develop, deploy, and administer their applications and services.

A blended strategy means identifying and integrating the products that are best-of-breed and that offer the greatest value - whether they're commercial or Open Source - rather than going with "good enough" products just because they were included in a legacy solution or just because they're on SourceForge or free.

For BEA, blended development means working to reduce the technical complexity of enterprise development. It means leveraging the strength and security of BEA's core products, backing open standards and standards-based models, and offering support, certification, and integration for powerful Open Source technologies. It means providing essential framework support, development tools, and multiple deployment platforms and maintaining deep ties with the Open Source communities. Today, BEA's open source and commercial blending includes Open Source Eclipse, Apache Struts/Tiles, Apache Beehive, Apache XML Beans, JDO, EJB3/Open JPA, and the Spring Framework, and offers support for Apache Tomcat, JBoss, Resin, Jetty, and even other commercial deployment platforms.

Meeting Corporate Needs with Blended Development Strategies
But why bother with commercial software at all? Now that enough Open Source products and application development frameworks exist, can't enterprises just use Open Source to develop and deploy all their software, and avoid those lock-in vendors and commercial licensing fees?

These days, few enterprises still use a completely proprietary software-dependent approach, but most find the idea of "all Open Source, all the time" has too many pain points.

Although Open Source technologies offer great benefits (quicker to innovate, no or low licensing fees, the ability to modify them to your needs), Open Source may come with additional risks and without guarantees or dedicated support. The man-hour cost of installating, integrating, and testing tends to be high. Irregular release schedules and inadequate documentation can also add to your cost, as can confusion about IP and conflicting licenses.

Leveraging Open Source software requires integration testing. Lots of integration testing. Some efforts have been made in the Open Source community to standardize testing and to share results, not just for components, but for more complete stacks and combinations of Open Source products. Yet most integration testing still has to be done by each organization using an Open Source product.

Within enterprises, it's hard to gain leverage across projects. Using 31 flavors of Open Source software means lots of inconsistency. Code and frameworks are incompatible or barely compatible, and they don't get reused, which can sadly increase the total cost of ownership for Open Source projects.

Different application frameworks have different strengths. Since most Open Source products and frameworks are developed to solve specific problems, most don't offer the complete set of features an enterprise needs. And many enterprises require flexibility in the server platforms the frameworks run on. That means it's important to keep choices open, as one size does not fit all.

Many Open Source frameworks are primarily geared towards developers and lack administrator tools. If IT organizations want to use Open Source to deploy and administer as well as develop Java-based enterprise software, they're out of luck.

Successful use of Open Source development platforms also requires planning for forward migration to production-quality platforms. That migration path can be tricky, since the superior products for each stage are often separate platforms. And hard-coded resources in custom applications can make applications difficult to evolve from development to production environments.

The Java-based development environment Eclipse is great for editing Java source. The trouble is that modern Web applications typically use technologies like JSP, JSF, Struts, JSTL, Tiles, EJB3, BEA Kodo, Hibernate, and Spring. Eclipse doesn't include the integrated wizards, WYSIWYG screen layout capabilities, and pre-build validation, error checking, and as-you-type configuration validations. It doesn't make Apache Beehive development easy, nor does it provide tools for popular commercial products like BEA WebLogic Portal and BEA JRockit, or partner products from companies like Kapow and MobileAware.

Java application frameworks often incorporate newer technologies - like annotations and Plain Old Java Object (POJO) markup - that make development easier. With lightweight containers and POJO-based frameworks, test design can be a lot simpler. And you can achieve a clean separation between business frameworks, presentation frameworks, and data frameworks - which can make applications less costly and easier to maintain. The same for the actual code; with less complex APIs, it, too, is simpler and easier to maintain. Altogether, frameworks make it possible to use and offer technology innovations more quickly and to provide faster value to the enterprise.

Good frameworks also increase productivity by letting junior developers get up to speed faster; they're an excellent best practice that can reduce programming complexity and simplify their jobs. (http://timothyfisher.javadevelopersjournal.com/ developing_a_common_corporate_framework_for_your_java_applications.htm)

The ability of open source software to quickly take advantage of the latest innovations, combined with the tested and proven stability of a well-known vendor platform, offers faster time to value for deploying new Java applications - and simplifies enterprise software more than either alone.

A Case in Point
One company that's using a blended approach to application development is Manhattan Associates, a supply-chain solutions provider based in Atlanta, GA. Its supply-chain planning and execution, business intelligence, and business process platform capabilities have helped more than 1,200 customers worldwide increase their profits and performance. As an ISV working with multiple partners, the company has to remain platform-independent and flexible. Its multi-platform nature is one reason why it uses Open Source technology like Eclipse in application development.

"Open Source software is very powerful," said Gary Braswell, a senior engineering manager at the company, "but the free toolsets available for leveraging Open Source software are either non-existent or quite primitive." Manhattan Associates decided to become an early adopter of JavaServer Faces (JSF) technology, but didn't want to lose the WYSIWYG capabilities of its existing UI development environment. The solution: a blended approach.

Buying an enterprise-class JSF layout tool based on Eclipse let the company stay within the Eclipse-based framework already used by most of its Java developers, while allowing rapid prototyping of the new UI. "We wanted to have all the benefits of the robust tool sets offered by commercial application server vendors while using Open Source technology. So we looked for a blended solution that provided both platform-independence and extensions to Eclipse that would let us improve our productivity," Braswell said.

In late 2005, the company evaluated the idea of using a blended approach. Braswell's team opted for a blended solution based on BEA Workshop because the developers liked the improved productivity, the QA effort, and how clean and turnkey it was compared to other contenders (www.theserverside.com/news/thread.tss?thread_id=39558). The support for JSF and metadata were crucial, as were the UI design and debugging tools. "That's a real point of differentiation. If your product has a significant number of UI screens - ours had over 3,000 - a tool like BEA Workshop can be really valuable, since it offers substantially improved development and debugging capabilities in the UI layer," Braswell said.

Combining Strengths
Some of the other benefits that companies can get from choosing a blended approach for application development particularly manifest themselves during deployment and runtime.

In migrating from development to deployment or between deployment platforms, downtime has proven a major concern. Companies need "zero downtime" performance. Enterprise-grade commercial software can offer that availability and reliability - letting the Open Source frameworks achieve optimal performance. And the comprehensive management capabilities of a commercial platform can help reduce the cost and effort of running IT operations at required service levels.

One of the strengths of Open Source technologies is that they do a very good job of solving specific problems. But a disadvantage is that they don't always play well together. Some of them can't be loaded together or they fail to integrate properly. In a blended solution, a commercial vendor can integrate, test, and certify Open Source components so they have enterprise-class reliability and support.

In addition, many Open Source frameworks are geared for professional or senior developers, lacking tools for administrators and operations and junior developers. A blended approach can provide those, offering superior tools for diagnostics and monitoring, debugging, and application management. For example, the BEA Workshop family includes value-added Eclipse tools that support Open Source application frameworks, Web application development, database tools, Java Web Services, and BEA WebLogic Platform applications like portals.

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.