WebLogic 12c Taking Java EE 6 to the Cloud
At the beginning of December, Oracle released WebLogic Server 12c, succeeding version 11g, which was first released in July 2009. The new version of WebLogic is the first release of the application server to fully support the Java EE 6 standard, originally approved in December 2009. In addition, WebLogic Server 12c is a key part of Oracle's entire cloud strategy, and is the recommended application server infrastructure for Oracle Exalogic Elastic Cloud. Whilst a number of other vendors offer Java EE Web Profile support, Oracle's plans for its Public Cloud are more extensive. "Our target for delivering Java EE 6 support (via Oracle WebLogic Server 12c) in the Oracle Public Cloud is calendar year 2012, and that will include support for EJB 3.1", Vice President of Development at Oracle, Cameron Purdy, told us. "While support for JMS is planned for the Oracle Public Cloud, we have not yet announced when it will be supported."
One of the stated themes of Java EE 7 is cloud support, so we asked Purdy how suitable Java EE 6 was as a basis for cloud deployment
One of the key themes of Oracle WebLogic Server 12c is supporting mission critical, large-scale cloud deployments. Oracle WebLogic Server 12c is unique in that it can be used in conventional data center infrastructures to deliver a private cloud solution, it is the centerpiece of Oracle Exalogic Elastic Cloud – Oracle's hardware and software engineered system delivering a highly optimized and efficient, on-premise, out of the box cloud solution, and finally is the underlying infrastructure of the Oracle Public Cloud.
Specifically to the question, Platform-as-a-Service (PaaS) cloud infrastructures require a minimal set of components in order to host applications effectively. These include a lightweight and standards-based Java server, a Java framework for building cloud applications, an in-memory data grid for caching and clustering, elasticity to adjust to workload variations, integrated traffic management to route traffic throughout the elastic infrastructure, virtualization for optimal use of server resources, and simple provisioning – typically via self-service interfaces. Frequently this type of cloud solution is paired with an Infrastructure-as-a-Service (IaaS) solution to complete the offering. Oracle WebLogic Server 12c provides these core components:
- On the subject of development frameworks, Java EE 6 is the lightest-weight, most productive Java EE release ever, with new technologies such as CDI, EJB 3.1 Lite, managed beans and JAX-RS. While the advances in Java EE 6 mean that third party development frameworks are no longer required, Oracle WebLogic Server 12c includes updated, out of the box, support for the most popular of these frameworks, easing the move to Java EE 6 for existing applications.
- Built into Oracle WebLogic Server 12c is the Oracle Coherence In-Memory Data Grid (IMDG) for distributed caching to enable predictable, high-performance scale out, while being fully managed and operated from Oracle WebLogic Server itself. This provides a unique high performance, predictable and elastic in-memory data grid for cloud deployments of WebLogic Server.
- For messaging, Oracle WebLogic Server provides a high-performance, enterprise-grade Java Messaging Service infrastructure, including in-memory, file, database and Oracle AQ providers, advanced capabilities like unit-of-order, unit-of-work, bridging infrastructure for external messaging integration, and store-and-forward support. Our customers have found these capabilities to be critical to deliver cloud-scale messaging.
- For efficient, elastic and transparent traffic management, which has become a core requirement in highly virtualized cloud infrastructures, Oracle Traffic Director is delivered as part of the Oracle Exalogic Elastic Cloud and WebLogic Server 12c release.
- With the recent release of Oracle Enterprise Manager 12c, which is integrated with Oracle WebLogic Server 12c, a complete, integrated and virtualization-aware provisioning and self-service solution is part of the WebLogic Server 12c cloud solution.
These are the same capabilities that customers can use today to build a private cloud on their conventional hardware in their data centers. These are the same capabilities that can be used by our customers to create a highly optimized cloud infrastructure on Oracle Exalogic Elastic Cloud. And finally, these are the same capabilities that are being used as the basis for our own Oracle Public Cloud at cloud.oracle.com. Ultimately, many of the things that we learn from working with our customers and delivering our own public cloud will be fed back into the Java EE 7 working groups that are actively creating Java EE 7. As one would expect, before something becomes standardized, the industry and our community like to see the concepts successfully implemented in order to ascertain their viability. Oracle's delivery of the Oracle Public Cloud and Oracle Exalogic Elastic Cloud based on Oracle WebLogic Server shows that this is possible with Java EE 5 and 6 and provides field-tested, real-world input for Java EE 7 and its standardization process.
As Purdy notes, WebLogic includes a number of features over and above the Java EE 6 standard, such as
Active GridLink for RAC (Real Application Clusters)
Virtual Assembly Builder: Designed for rapid system provisioning and configuration
- Traffic Director: a Layer 7 software load balancer which allows developers and administrators to balance the flow of internal packets from the database, the message queue, or anywhere else in the stack, and ensure that those packets are evenly distributed across a WebLogic Server cluster. Traffic Director is also tied into Intel's chipsets so that the system can offload cryptography duties to the CPU, thereby speeding up the entire load-balancing process, by as much as three-to-four-times, according to Purdy.
Purdy told us:
In broad strokes, the "outside the specification" work generally focuses on these themes: simpler deployment and management, developer productivity, and the perennial focus on performance, reliability, availability, and scalability.
One of the first items that we'd like to highlight outside of the Java EE specification is the ability to seamlessly upgrade from Oracle WebLogic Server 11g; this is critical for the many thousands of existing customers and users on that version. Also, Oracle WebLogic Server now supports GlassFish web application deployment descriptors, making it even simpler for an application developed on GlassFish to be deployed to Oracle WebLogic Server.
Regarding performance and scalability, which is always a focus area for Oracle WebLogic Server, the integration with Oracle Real Application Clusters (RAC) offers a vast improvement over the original multi-datasource implementation. The new “GridLink data source” capability is RAC-aware, and offers significantly better performance and runtime connection load balancing. For example, when an application needs a new connection, the underlying notification service is already actively monitoring how load is spread across the database cluster, and thus enables the optimal RAC node to be chosen for the new connection.
Available with WebLogic on the Oracle Exalogic Elastic Cloud platform, Oracle Traffic Director (OTD) provides highly-available, extreme-performance traffic shaping and routing capabilities, along with dynamically configurable caching, load-balancing and high-performance proxy support for HTTP-based applications running on Oracle WebLogic Server and Oracle Fusion Middleware. Oracle Traffic Director can deliver a three-to-four-times performance boost for applications running on Oracle WebLogic Server and Oracle Fusion Middleware, compared to traditional web-based architectures, thanks to the optimizations included in our Oracle Exalogic Elastic Cloud engineered system, such as full hardware acceleration for SSL and dynamic compression using Intel's new Advanced Encryption Set and Integrated Performance Primitives.
Oracle also makes great play of how the integration between Oracle WebLogic Server and Oracle Real Application Clusters helps in terms of Reliability and Availability
For example, Oracle WebLogic Server automatically detects and attempts to compensate for failures, since Oracle WebLogic Server is aware of database node availability in real time. It load-balances more intelligently and with less possibility for outage. Many of our customers already rely on Oracle GoldenGate or Oracle Active Data Guard for database high availability, and now Oracle WebLogic Server can re-use these same facilities to provide high availability for Java EE applications across data centers. By storing transaction logs, JMS messages and other application data in the Oracle Database, Oracle WebLogic Server leverages a simple, robust, well-known and widely implemented disaster recovery architecture. This all works in concert with the other capabilities we've described, such as Active Gridlink.
Given the steep pricing differential between WebLogic (which is around $45,000 per processor, plus $9,900 in annual support), and GlassFish (which is free, but an Oracle supported version is $5,000 per processor along with $1,100 in yearly maintenance fees) we asked Purdy when he would choose WebLogic over GlassFish.
First, it’s important to put this into context: Purchasing enterprise software isn't like buying a drink from a vending machine. Customers often have an existing, long-term relationship with Oracle, and tend to purchase a large number of licenses for a number of different products, allowing them to aggregate their buying power across departments and divisions, which translates to a lower cost-per-unit. Oracle also has a number of programs specifically designed to help small-to-medium sized businesses and start-ups gain lower-cost access to our enterprise offerings.
Secondly, over a period of time even as small as 2-5 years, the license cost of enterprise software becomes a relatively small part of the overall cost of the system. As one example, a recent study showed that Oracle WebLogic Server cost 35% less than JBoss over a five-year period. That means that anything that reduces the cost of operation over time will have a dramatically larger impact in reducing the overall cost of the system. For example, Oracle WebLogic Server tends to require fewer servers to support a given amount of load, and for a given number of servers, it requires significantly fewer administrators to operate and maintain those servers. There are many thousands of companies that purchase Oracle WebLogic Server because – having considered their options – Oracle WebLogic Server saves them huge amounts of money compared to using "free" software.
As you note in your question, Oracle GlassFish Server is a commercial offering of GlassFish Open Source Edition. GlassFish serves several purposes including being the basis for the reference implementation of Java EE – as well as being hugely popular with Java developers. GlassFish continues to be a cornerstone of the Java EE community, and we're incredibly proud of its adoption, the way that it has continued to drive the Java EE platform forward, the vibrancy of the community that has grown up around it, and the choice that it has provided to our customers.
Oracle WebLogic Server is used far more frequently in production enterprise application infrastructure, due to a significant number of essential enterprise features – many of which I've already covered as part of the WebLogic Server 12c release. Keep in mind that WebLogic Server 12c is based on the same hardened, secure, reliable, highly available, scalable and performance-proven application server infrastructure that customers have been running in large-scale enterprise deployments for over a decade! Now in Oracle WebLogic Server 12c this has been further extended to include deep Oracle RAC integration, native Oracle Coherence integration, full Oracle Enterprise Manager 12c manageability, diagnostics, administration, and an optimized virtualization infrastructure with Oracle VM and Oracle Virtual Assembly Builder, amongst other extensions and features. These are capabilities that are not available on Oracle GlassFish Server – and many of these capabilities are available nowhere else. Some of these capabilities, such as the Oracle RAC integration, Active GridLink for RAC have operational efficiencies that can more than make up for the cost of the entire product.
Furthermore, Oracle WebLogic Server's new continuous availability architecture, that uses Disaster Recovery (DR) integration with the database, allows our customers to quickly roll out continuous availability solutions at a fraction of the cost of previous approaches.
For developers, what is new and interesting in Oracle WebLogic Server 12c – in addition to the Java EE 6 Full Profile compliance – is the litany of features designed to make the developer experience extremely fast, lightweight and agile. These include capabilities like direct Apache Maven integration for dependency management, a lightweight zip distribution – almost 6x smaller than the full deployment platform distribution – and certification and integration with Java SE 7.
In addition to all these characteristics, Oracle WebLogic Server is the platform that Oracle Fusion Middleware, Oracle Fusion Applications and the entire portfolio of Oracle applications depend on as their enterprise Java server. If and when customers require other components of Oracle Fusion Middleware or Oracle Fusion Applications, Oracle WebLogic Server is generally the default choice due to the tight, out of the box integration. Oracle WebLogic Server also incorporates specific optimizations for the Exalogic Elastic Cloud that dramatically increase performance and reliability as part of Oracle's engineered systems approach. Lastly, Oracle WebLogic Server provides the infrastructure for the Java service in the Oracle Public Cloud, making it possible for our WebLogic customers to move easily among their own infrastructure, our Exalogic engineered systems, and the Oracle Public Cloud. All in all, most customers adopt Oracle WebLogic Server for their enterprise-scale Java applications, both for the developer and enterprise deployment features.
Finally, given that it has taken close on two years for Oracle to produce a Java EE 6 compliant version of WebLogic, we asked Purdy if he felt that reflected declining importance of the platform?
Oracle has really taken its stewardship of the Java platform very seriously, and has benefited significantly with the technical talent that joined Oracle from Sun. I'd like to point out that Oracle was the first to market with Java EE 6 – over two years ago! – with GlassFish Server providing the reference implementation of Java EE 6, and available in open source to the entire Java EE community. Between then and now, and due to the demand for Java EE 6, Oracle incrementally added some of the most popular Java EE 6 APIs into Oracle WebLogic Server 11g as optional features that customers could adopt early, including JavaServer Faces 2.0, Java Persistence API 2.0, and Java API for RESTful Services. With the release of Oracle WebLogic Server 12c and the full platform support of Java EE 6, our customers now have access to the complete API set.
Would we rather have had this release done two years ago? Of course! We are also glad to have it available now, and the adoption rate of Oracle WebLogic Server 12c is very high as the pent-up demand is finally unleashed.
As for the reasons that this particular release is later than we desired, that has much more to do with our work to integrate Oracle WebLogic Server fully into Oracle Fusion Middleware, following the BEA acquisition, than any reflection on the value of the platform. Many of the features that we have announced over the past year or so – including some of the great features of this Oracle WebLogic Server 12c release, like Active GridLink for RAC – have taken many person-years of development to create. Creating tight integration with our management tools and other infrastructure has also been a huge investment, but it's one that our customers have clearly seen the value in, and we are glad to have successfully completed these efforts.
The Java EE platform itself has dramatically increased in importance in Oracle's view, particularly in our vision for creating a seamless path for application developers moving to the cloud. Java EE 6 itself vastly increased developer community interest, and in many ways exceeded its goals as a modern, standards-based, and lightweight platform. In fact, Java EE versions 5 and 6 almost completely reversed the "heavyweight" label that had dogged earlier versions of Java EE. As you can see by Oracle's investment in the stewardship of Java – most recently reflected by the launch of Java SE 7 this past summer and the hugely successful JavaOne 2011 – we continue to invest in the Java platform heavily, and to work closely and cooperatively with the industry and the community in order to create a platform that is far more successful than any of us could create alone.
We believe Java EE, as an area of cooperation across our industry and as a standard, is critical to the forward momentum of cloud in the industry, and to avoid customer lock-in into proprietary cloud programming models. We clearly see Java EE 7 as a fertile ground for standardizing the many innovations we and others in this industry are pioneering in the cloud, so that our enterprise customers have productive, robust, standards-based enterprise infrastructure, designed for the cloud.
Oracle WebLogic Server 12c is currently supported on Eclipse (via the Oracle Enterprise Pack) and the NetBeans IDE, with Oracle JDeveloper support coming later in 2012. More information, including a download, are available here.