WebLogic Server 10.3 Adds HTTP Pub/Sub Server, Optional Services Startup and FastSwap Deployment
BEA systems recently released a technology preview of WebLogic Server 10.3 version. This tech preview is a pre-release of WL Server 10.3 which is the follow-on release to version 10.0. The new server release focuses on the enhancements in the following three areas:
- Lightweight WebLogic Server: This includes the improvements in the download and installation options of the server by making it flexible and modular for the developers to choose which server components they want to download and install. It also includes "optional services startup" feature where the developers can selectively start only the server components they really use in their applications.
- Programming Model and API Support: The new release will provide support for developing SOA applications using both JAX-RPC and JAX-WS web services. It also includes distributed management of Spring based applications in a WebLogic cluster environment.
- Technology Integration and Standards: There is a new C# JMS Client API that .NET developers can use to interface directly with the JMS subsystem without requiring any Java on the .NET client. This release also supports SAML 2.0 standard for single sign-on (SSO) requirements in web applications as well as web services.
InfoQ spoke with Blake Connell at BEA to get more details on the server features that will be part of version 10.3 release. Responding to a question if the "Optional service startup" feature is based on OSGi or JMX technologies, Blake said that this capability is not based on OSGi or JMX technologies but it is based on internal WLS code. Optional Service Startup (also called WebLogic Server Lightweight Runtime) is a refactoring of internal systems within WebLogic Server such that a group of services can be turned off based on licensing or configuration. This is part of the microServices Architecture (mSA) created by WebLogic Server development team to enable fine-grained startup options. Blake also said:
In this release, the team targeted the services that are unavailable in WebLogic Express (WLX): EJB, JMS, and JCA. The developers can optionally start WebLogic Server in a "WLX" mode in which those services are not started.
Regarding WebLogic v10.3 being more modular, Blake said that the modularization applies to both services and optional installation and startup of various components. Lightweight Installation allows the web administrators and developers to selectively download and install the core WebLogic Server and all of its components, including the Administration Console, Configuration Wizard, JDBC drivers, and other open-source libraries. He also talked about the installation options:
In the Tech Preview, you can see the installation options that will help reduce install size, the smallest being about 150 MB plus the JDK size. In the GA release, we will make JDK selections optional, which will further reduce installation sizes, and we will re-instate the Net Installer, which will enable you to download only the pieces that you intend to install. The end result is: select what you want, download only those options, and install.
There is also a new feature called "FastSwap" introduced in WebLogic server to allow the developers to deploy any code changes in a single class or set of classes without the loss of server context. FastSwap is a "change-aware classloader" based technique used to upgrade a deployed application in production without needing to take BEA WebLogic Server offline. When a class changes, the system automatically loads the new class and the application state is maintained in the running application.
With FastSwap (which uses java.lang.instrument and WebLogic specific java packages under the covers), developers can add and remove methods, change method signatures, add and remove static fields and deploy those changes dynamically. Blake summarized the FastSwap technique as follows:
It means that you don't need to redeploy your application and you don't need to recreate the state to get back to where you were in the application. The typical workflow changes from "save -> auto-compile -> redeploy -> navigate back to where you were" to "save -> auto-compile -> refresh your browser."
WebLogic 10.3 doesn't currently support deploying the applications (EAR, WAR, and JARs) as OSGi bundles, but it is possible to run an OSGI backplane in a WebLogic Server thread and then deploy OSGi bundles on that backplane. BEA does have an OSGi-based mSA product in BEA WebLogic Event Server. BEA mSA provides the following services:
- Jetty HTTP container for running servlets.
- javax.sql.DataSource implementation and thin JDBC drivers for accessing a relational database.
- Logging and Debugging.
- Authentication and Authorization security.
In the management and monitoring area, one of the new features WL 10.3 provides is the distributed management of Spring applications. Responding to a question on the technical details of this new feature, Blake said:
In WLS 10.0, we offer WLS console support for management of Spring Beans/applications. However, this support required that the Spring Beans were exposed as MBeans, and that they were deployed on the same server as Console. The WLS console did not support distributed management scenarios where the console would run on one (administration) server, and the Spring Beans would run on separate managed servers.
In WLS 10.3, we support distributed management scenarios by better leveraging the WLS management infrastructure for management of Spring Beans. In this release, the deployment of Spring Beans results in the automatic creation of standard WLS MBeans for distributed management. The WLS console can now run on one (administration) server and perform management activities on Spring Beans running on separate managed servers. Administrators can now view a list of all Spring Beans deployed on managed servers, and view configuration information for those Spring Beans. We also provide distributed management for the transaction services being used by Spring Beans/applications.
While we are evaluating the Comet API for a future release, in WLS 10.3 we are delivering a HTTP Pub/Sub Server which is a channels based publish/subscribe mechanism for web based clients to send and receive asynchronous messages over HTTP. The Pub/Sub Server is based on the Bayeux protocol proposed by the Comet project. It works with Dojo toolkit on the client side. With this HTTP pub/sub server, you can have multiple clients connect to a server, subscribe to channels and publish or listen for messages on these channels. Clients can concurrently share data with other clients on other servers for synchronous collaboration and allowing users to share experiences and work with other users. The current implementation leverages WLS JMS messaging architecture on the server side (e.g. distributed destination, JMS cluster, indexed subscribers etc.) for reliable communication.
WebLogic Server 10.3 supports Java SE 6 specification. It will also support the development of Service Component Architecture (SCA) as an add-on component to WebLogic Server 10.3 in a future release. More details on the server features can be found at the technology preview web site.
With the recent announcement of Oracle to acquire BEA, it will be interesting to see how the future roadmap of WebLogic Server will shape out.
Ben Linders May 28, 2015