WebSphere XD is designed for a site that wants to be able to run multiple applications in a cluster of application servers and ensure that some of those applications run really well, even in high-load situations--even if that means making the other applications run not as well because of insufficient overall capacity. It helps take the guesswork out of deciding how much hardware will be needed to meet demand and adjusting the allocation of applications to meet peak demand; XD makes sure that whatever hardware you have is used optimally according to the criteria you configure.
WebSphere XD takes a lot of developments in autonomic computing and grid computing and applies them to WAS. (See The Future of Computing: Pervasive, Autonomic, and Grid.) Like these emerging technologies, XD is a rather complex product that does a lot of different things and could take forever to discuss thoroughly. Since I don't have that long, here's an overview of five of the main capabilities that XD gives you:
- Dynamic Operations -- You define the response time goals that an application must meet. If an app is not meeting these goals, XD will start more copies of the app in underutilized servers and spread the client load, improving the performance clients receive.
- Prioritization -- You weight applications to indicate their importance. When an important application isn't meeting its response time goals, XD takes resources from less important applications and uses them to make the more important applications run better.
- WebSphere Partitioning Facility (WPF) -- A database can be partitioned to spread the load of different kinds of database users onto different servers. With XD WPF, you partition an application so that those different database users get sent to different app servers. XD runs each app partition only once, so that it's the only user of the data partition and can safely cache data from the database.
- Health Monitoring -- You define the normal operating range of an app server. XD detects if an app server falls outside that range, and if so, takes corrective action such as safely shutting down and restarting the server and its apps.
- Visualization -- Enables an administrator to see peformance statistics for all of the app servers in a cluster and drill down into details on an individual server. Enables you to spot servers that aren't running properly before they start causing problems.
Here's how the products in the WAS family compare:
- WebSphere Application Server (WAS Base) -- An implementation of the J2EE specification that provides a single application server (a.k.a. single J2EE container), running in a single JVM, for deploying and running one or more J2EE applications.
- WebSphere Application Server Network Deployment (WAS ND) -- Runs J2EE applications in a cluster of application servers (where each one is essentially a WAS Base server). WAS ND provides workload management (WLM) for load-balancing of client requests across the app servers in the cluster, and high availability is achieved through failover of client sessions between app servers in a cluster. Each app server is essentially identical, capable of running any of the cluster's applications; therefore a client request can potentially be fulfilled by any of the app servers.
- WebSphere Extended Deployment (WebSphere XD) -- Enables each application server in the cluster to be managed uniquely, so resources can be used where they're needed most. Declarative and programmatic policies configure how to optimize the resources and what tradeoffs to make. An application can run in a single app server and still have high availability--the entire application and all of its client sessions will failover to a new app server. Since different app servers run different applications, XD routes client requests more specifically.
The initial version of WebSphere XD is 5.1, which is built on WAS ND 5.1. Although WAS 6 is now available, WebSphere XD V6 is not yet available.
Here are some resources where you can learn more:
- WebSphere Extended Deployment -- The main WebSphere XD site.
- WebSphere Extended Deployment spec sheet -- A business case overview executives will understand.
- WebSphere Extended Deployment library -- Technical stuff including white papers, tutorials, and the Information Center.
- "Understand WebSphere Extended Deployment" by Patricia Joseph (developerWorks)
- "Optimize your on demand applications and resources using IBM WebSphere Extended Deployment 5.1" by Wilfred Jamison and Ann Black-Ziegelbein (developerWorks)
- Cheat sheets and guided demonstrations available for WebSphere Extended Deployment (IBM Support)
- WebSphere XD ships by Billy Newport, IBM WebSphere development team (blog) -- A good discussion of the On Demand Router (ODR).
- WebSphere Product Family Overview and Architecture (Redbook)
- Scaling for High Availability: WebSphere XD and WebSphere Application Server for z/OS (Redpaper)
- IBM 'Extends' WebSphere for On-demand (Internet News)
- IBM turbocharges WebSphere with add-on (Application Development Trends)
- IBM add-on 'turbocharges' WebSphere app server (Network World)
- Partitioning Facility Editor for WebSphere Extended Deployment -- An Eclipse plug-in that enables users to create partitions.xml files that can be used to define a WASXD application's partitions and partition expressions. (alphaWorks)
Starting next month, Kyle Brown and I will have a series of articles exploring WebSphere XD in detail.