BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News WebLogic Server 10 Update: Java EE 5, Spring Pitchfork, WS-*

WebLogic Server 10 Update: Java EE 5, Spring Pitchfork, WS-*

Bookmarks
BEA has released a new tech preview of WebLogic Server 10 that has passed the Java EE 5 CTS (compatibility test suite), making WebLogic the first of the big 3 to feature a release that passes the tests. WebLogic Server 10 uses the Kodo JPA container (based on Apache OpenJPA) for JPA and also Spring's Pitchfork project to provide EJB and Java EE 5 features. In addition to Java EE 5 support, WebLogic Server 10 also adds side-by-side deployment of multi-version apps, JMS automatic failover, tools & standards for document-centric web services development, filtering class loader, clusterwide-singleton EJB timer etc. The tech preview also includes the BEA Workshop for WebLogic, which provides Eclipse 3.2-based tooling support for WebLogic.

InfoQ spoke to BEA's Patrick Linksey to learn more about what's cool  about WebLogic 10, including the Spring integration (discussed later in this article).   Some of the key new things according to Patrick are:
The primary focus of WebLogic Server 10 is Java EE 5. This translates into a lot of specification updates and new specification support, including the new Web Services specifications and the EJB 3 / Java Persistence API specifications.

The filtering classloader functionality will be another welcome addition - this allows developers to use different versions of the same libraries that WebLogic Server depends upon, by configuring the application's classloader to exclude classes and packages found in the server classpath.

We've also done some interesting work in the deployment arena. Most notably, we've fleshed out the side-by-side production deployment functionality that was introduced in the WebLogic Server 9 release cycle, and we've implemented an option to record console activity and store it as WLST (WebLogic Scripting Tool) admin scripts for later execution.

One neat new feature in WebLogic Server 10 is our support for clusterwide-singleton EJB timers. We've had this functionality in previous versions via proprietary APIs, but now it's possible to designate that an EJB timer should be unique in the cluster. This is useful when you want a timer to kick off to run an application-level operation that should only happen at one location in the cluster, such as database cleanup, bulk imports of data, or periodic system status emails.
A key focus for WebLogic 10 was interoperability with other vendors in the Java space, older versions of BEA Web Services stacks, and with Microsoft / Indigo. "Another major focus was better support for document-centric web services such as the JAX-WS 2.0 spec in JEE5, while continuing to support existing RPC-based web services via retention and enhancement  of our JAX-RPC stack," Patrick said. The most notable new specifications are:
  • WS-SecureConversation (2005/02)
  • WS-Security 1.1
  • WS-SecurityPolicy 1.1/1.2
  • WS-Trust (2005/02)
  • WS-MTOM
  • .NET WCF/Indigo interoperability
  • Standalone WS client
  • Improved XMLBeans support
  • Asynch callback support from Workshop 8.1-based Web Services
WS-MTOM is a standard for high-performance non-XML-in-XML processing (Message Transmission Optimization Mechanism). It is designed for optimizing SOAP with non-XML attachments. The really useful thing about it (versus its predecessors, like SOAP With Attachments and Microsoft's Direct Internet Message Encapsulation) is that it is supported broadly by the SOAP vendor community, including vendors in the Java space and Microsoft.
Another new feature in WebLogic 10 is automatic JMS failover. Patrick explained:
Automatic JMS failover kicks in when a JMS client is unable to reach the server, either because the server went down or because of network problems. For JMS producers, this is pretty transparent: by default, if a producer fails to reach a server, it will transparently attempt to fail over to another available server instance. Things are a bit more tricky for JMS consumers: since consumers are often stateful, the default behavior is to not automatically reconnect in case of failure. If you are sure that your consumer logic can tolerate reconnects gracefully, then you can write some code (or do some admin configuration) to enable consumer reconnects. http://edocs.bea.com/wls/docs100/jms/recover.html goes into the various options and considerations in more complete detail. Internally, this is implemented with the same facilities we use for service migration in general, including cluster-singleton service migration.
WebLogic Server allows multiple versions of the same application to be deployed to the same server (or server cluster) at the same time:
So, if you have version 1 of your stock trading application on-line and in use, you can then deploy version 2 into a staging mode, test it out with internal folks or a few eager customers, and then bring it online to replace version 1.  You even get to choose how to bring down version 1 of the application: gracefully (meaning that clients currently using version 1 keep on using them indefinitely, until they disconnect and reconnect), graceful with a timeout, or immediate shutdown of the old version.
BEA and Interface21 (providers of Spring) collaborated on a project called Pitchfork to deliver Java EE 5 bindings for Spring 2 in WebLogic 10; the EJB3 and web container implementations make use of Spring via Pitchfork to provide some of the new dependency injection and interceptor capabilities:
This architecture also provides us with some opportunities down the road to expose Spring artifacts to WebLogic Server developers at a more integrated level. Meanwhile, our EJB 2 code paths remain virtually unchanged from WebLogic Server 9.2. This helps ensure that customers upgrading from the WebLogic Server 9 family will have a very smooth experience. We expect that upgrades from the WebLogic Server 9 family will be trivial.
A frequent question about the Spring WebLogic integration is if there will be any externally facing Spring features that WebLogic users can benefit from. Patrick named a few:
...deployment of Spring beans in a WebLogic Server cluster; Spring session replication (piggybacking on WebLogic HTTP session replication); WebLogic security integration with Spring beans; WebLogic-based clustered remoting of Spring beans; and management of  Spring beans in the WebLogic Server administration console. Additionally, we've laid the groundwork internally for some compelling new externally-facing Spring integration capabilities, but we aren't exposing these just yet in WebLogic Server 10.
See more news about BEA at http://infoq.com/bea.  Patrick Linksey & Spring's Rod Johnson and Rob Harrop are all speaking at the QCon London event, this March 12-16.

Rate this Article

Adoption
Style

BT