Comments
Richard Davies wrote: The UK has a good crop of technology pioneers in cloud computing - for example ElasticHosts, FlexiScale, Flexiant, OnApp - and also some strong government initiatives such as G-Cloud. We will have to see whether this kind of technical leadership converts into swift mass-market adoption or not.
Cloud Expo on Google News

SYS-CON.TV
Cloud Expo & Virtualization 2009 East
PLATINUM SPONSORS:
IBM
Smarter Business Solutions Through Dynamic Infrastructure
IBM
Smarter Insights: How the CIO Becomes a Hero Again
Microsoft
Windows Azure
GOLD SPONSORS:
Appsense
Why VDI?
CA
Maximizing the Business Value of Virtualization in Enterprise and Cloud Computing Environments
ExactTarget
Messaging in the Cloud - Email, SMS and Voice
Freedom OSS
Stairway to the Cloud
Sun
Sun's Incubation Platform: Helping Startups Serve the Enterprise
POWER PANELS:
Cloud Computing & Enterprise IT: Cost & Operational Benefits
How and Why is a Flexible IT Infrastructure the Key To the Future?
Click For 2008 West
Event Webcasts
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.


About 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.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

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.


Your Feedback
Java News Desk wrote: 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.
Latest Cloud Developer Stories
Rackspace Hosting, the service leader in cloud computing, on Thursday announced its acquisition of SharePoint911, an industry leader in SharePoint consulting, training, and "JumpStart" services within SharePoint. The unification of both companies provides capabilities to deliver ...
Skill at computing comes naturally to those who are adept at abstraction. The best developers can instantly change focus—one moment they are orchestrating high level connections between abstract entities; the next they are sweating through the side effects of each …
Apache Deltacloud, the Red Hat-contributed ReSTful API that abstracts differences between clouds so services on any cloud can be managed – provided of course there’s a driver – has graduated from the Apache Foundation’s incubator and is now a full-fledged Top-Level Project (TLP)....
Swisscom, the Swiss telecom, is going into the cloud business. Its subsidiary Swisscom IT Services AG has signed up with Red Hat as a Certified Cloud Provider and launched a public cloud Infrastructure-as-a-Service (IaaS) cloud targeting enterprise-class customers primarily in ...
CONGRATULATIONS to National Reconnaissance Office (NRO) CIO Jill T. Singer for being selected as one of the 10 winners of the first annual CloudNOW awards presented in Santa Clara, California earlier this week...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

SYS-CON Featured Whitepapers
ADS BY GOOGLE

Breaking Cloud Computing News

Codenomicon, the leading vendor of proactive security solutions today announced its...