« Problems with JMS 1.1 and J2EE 1.3 app servers | Main | WebSphere Partitioning Facility (WPF) Programming guide online »

November 05, 2004

WebSphere XD ships

We just shipped WebSphere 5.1 XD a couple of weeks ago. XD has many features that should appeal to customers.

The OnDemand Router (or ODR) is a Java proxy server that sits in front of a set of HTTP servers. These HTTP servers can be WAS servers or servers from other vendors such as BEA as well as servers on the LAMP stack (PHP etc). The ODR can 'shape' the traffic on to those boxes so that service level agreements can be met. When used with WebSphere XD servers it can also supports dynamic clusters. A normal cluster is a set of nodes running the application. A dynamic cluster is an application deployed on to a node group. The node group is a set of nodes on which the application can 'potentially' run. Multiple applications can be deployed to the node group. The ODR needs to be configured with a service level agreement for each application. It then decides based on how well the application is meeting it's SLA, how many servers in the node group will run the application. If the application is too slow then it will start the application on more nodes in the node group. If all nodes are currently being used and an application still cannot meet the SLA then lower priority applications will be stopped to 'make room' for the higher priority application. It's pretty cool.

XD also has the new WebSphere Partitioning Facility (WPF). This allows a J2EE application to split it self in to named partitions. A partition is like a named daemon running in the cluster. They are declared programatically by the application at startup and can also be added/removed dynamically at runtime. The partition runs inside the app server. IIOP work can use content based routing to route an IIOP request to the partition that can service it. This allows J2EE applications to have a singleton running in a cluster and then have requests for that singleton routed to it.  JMS requests or requests from middleware like Tibco RV or Reuters Connect can be similarly routed to the server handling that particular data stream. A partition can use threading to dynamically subscribe/unsubscribe to just the feeds that the partition requires.

If a cluster member fails then all partitions running there are failed over to the surviving cluster members very quickly. How quickly depends on tuning but 6 seconds isn't unreasonable.

Partitions can be grouped together using an application grouping scheme and then those groups can be placed on particular cluster members. This allows 'busy' partitions to be placed on more powerful servers or fewer busy partitions can be placed on a single server. Backup servers for these groups can also be specified and whether failback is desired if the original server restarts. This placement logics lets a rule based mechanism be used to determine simple placement. 5-10 rules can manage 9000 partitions in a cluster.

This lets XD be used for very demanding applications such as electronic trading systems or highend batch processing as these applications are typically stateful and which only scale vertically or don't perform well as a stateless server. WPF allows customers use partition such applications and then each partition can be stateful and runs on a cluster member. If the member fails then the partition fails over to another cluster member. WPF provides failover/restart events to the application so that it can react to these events. When WPF is combined with the async beans features from WBI then some pretty serious applications can now be built that leverage the J2EE environment and stateful applications can be made to scale almost linearly horizontally and still be highly available through our failover mechanism thats built in.

WPF and the high availability manager can also integrate with BladeCenter hardware. This allows WebSphere to make sure that a server is really dead if becomes unresponsive before WebSphere actually fails over the partition. This allows WPF applications to be written and not have to worry about a partition running on another server when unexpected events such as a network partition or split brain syndrome occur.

Anyway, it's pretty cool and it's exciting working with some of the big Wall St firms on projects exploiting these features. Enjoy. For more information, check it out here.

November 5, 2004 in J2EE | Permalink


Post a comment