Linux Containers Authors: Liz McMillan, Sematext Blog, Elizabeth White, Yeshim Deniz, Stackify Blog

Related Topics: Linux Containers

Linux Containers: 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.

IoT & Smart Cities Stories
Artificial intelligence, machine learning, neural networks. We're in the midst of a wave of excitement around AI such as hasn't been seen for a few decades. But those previous periods of inflated expectations led to troughs of disappointment. This time is (mostly) different. Applications of AI such as predictive analytics are already decreasing costs and improving reliability of industrial machinery. Pattern recognition can equal or exceed the ability of human experts in some domains. It's devel...
The term "digital transformation" (DX) is being used by everyone for just about any company initiative that involves technology, the web, ecommerce, software, or even customer experience. While the term has certainly turned into a buzzword with a lot of hype, the transition to a more connected, digital world is real and comes with real challenges. In his opening keynote, Four Essentials To Become DX Hero Status Now, Jonathan Hoppe, Co-Founder and CTO of Total Uptime Technologies, shared that ...
The Japan External Trade Organization (JETRO) is a non-profit organization that provides business support services to companies expanding to Japan. With the support of JETRO's dedicated staff, clients can incorporate their business; receive visa, immigration, and HR support; find dedicated office space; identify local government subsidies; get tailored market studies; and more.
After years of investments and acquisitions, CloudBlue was created with the goal of building the world's only hyperscale digital platform with an increasingly infinite ecosystem and proven go-to-market services. The result? An unmatched platform that helps customers streamline cloud operations, save time and money, and revolutionize their businesses overnight. Today, the platform operates in more than 45 countries and powers more than 200 of the world's largest cloud marketplaces, managing mo...
At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throug...
When Enterprises started adopting Hadoop-based Big Data environments over the last ten years, they were mainly on-premise deployments. Organizations would spin up and manage large Hadoop clusters, where they would funnel exabytes or petabytes of unstructured data.However, over the last few years the economics of maintaining this enormous infrastructure compared with the elastic scalability of viable cloud options has changed this equation. The growth of cloud storage, cloud-managed big data e...
Your applications have evolved, your computing needs are changing, and your servers have become more and more dense. But your data center hasn't changed so you can't get the benefits of cheaper, better, smaller, faster... until now. Colovore is Silicon Valley's premier provider of high-density colocation solutions that are a perfect fit for companies operating modern, high-performance hardware. No other Bay Area colo provider can match our density, operating efficiency, and ease of scalability.
At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throug...
As you know, enterprise IT conversation over the past year have often centered upon the open-source Kubernetes container orchestration system. In fact, Kubernetes has emerged as the key technology -- and even primary platform -- of cloud migrations for a wide variety of organizations. Kubernetes is critical to forward-looking enterprises that continue to push their IT infrastructures toward maximum functionality, scalability, and flexibility. As they do so, IT professionals are also embr...
ScaleMP is the leader in virtualization for in-memory high-end computing, providing higher performance and lower total cost of ownership as compared with traditional shared-memory systems. The company's innovative Versatile SMP (vSMP) architecture aggregates multiple x86 systems into a single virtual x86 system, delivering an industry-standard, high-end shared-memory computer. Using software to replace custom hardware and components, ScaleMP offers a new, revolutionary computing paradigm. vSMP F...