WebSphere
|
- WAS redirects here. For other meanings, see WAS (disambiguation).
WebSphere refers to a brand of IBM software products, although the term also popularly refers to one specific product: WebSphere Application Server (WAS). WebSphere helped define the middleware software category and is designed to set up, operate and integrate e-business applications across multiple computing platforms using web technologies.
WebSphere is built using open standards such as the Java 2 Platform, Enterprise Edition (J2EE), XML and Web Services. Multiple IBM labs around the world participate in designing and developing WebSphere products.
Contents |
|
WAS Versions
IBM has shipped several versions and editions of the application server:
- Version 3
- This version of WebSphere was a JDK 1.2, J2EE 1.0 version. IBM provided many enhancements to the basic J2EE 1.0 spec.
- Version 3.5
- AE (Advanced Edition)
- EE (Enterprise Edition)
- Version 4
- This was a J2EE 1.2 certified application server. It inherited the database based configuration model from V3.x for all but the single-server edition, which already used an XML datastore.
- AE (Advanced Edition)
- AEs
- Single-server edition that was not able to run in a cluster configuration.
- AEd (Developer Edition)
- Functionally equivalent to AEs, but only for non-production development use.
- EE (Enterprise Edition)
- Version 5
- This was a J2EE 1.3 certified application server. It was a major rewrite of the V3, V4 code base. The database based configuration repository was replaced with a replication file based configuration repository. A server called the deployment manager had the master copy of the cell configuration and nodes had the file they needed for the node copied from this master server when ever they changed. It also included a cut down version of MQ 5.3 called the embedded JMS server.
- Network Deployment
- This version supports deployment of a cell configuration with cluster and J2EE failover support.
- Enterprise Edition
- This version added a workflow engine for the first time but did not use the BPEL standard. It also added the first fully supported application threading model called WebSphere Async Beans.
- Version 5.1
- The main change from V5.0 was a JDK upgrade to 1.4.2 and use of the Jython language for wsadmin scripting support instead of only supporting Jacl.
- WebSphere Business Integration Server Foundation V5.1
- This is the follow on product to WebSphere Application Server Enterprise Edition V5.0. The workflow engine was updated to support BPEL rather than the proprietary FDML format used in V5.0. The product was also repriced.
- WebSphere eXtended Deployment (XD)
- For more information please reference the #WebSphere eXtended Deployment section below.
- Version 6
- This version was released in December 2004. It is a J2EE 1.4 compliant application server.
- Many programming model extensions previously found in WebSphere Application Server V5.0 Enterprise Edition were moved out of enterprise and into base. These APIs included application profile, startup beans, the scheduler and async beans.
- The JMS engine was rewritten in 100% Java and its functionality greatly enhanced.
- The clustering was rewritten to use the high availability manager. This manages all singletons in the WebSphere environment and can provide hot recovery for those singletons.
WebSphere eXtended Deployment
WebSphere Application Server V5.1 Extended Deployment Edition (WebSphere XD) was initially released in October 2004 as an addon for WebSphere 5.1.1 or WebSphere WBISF 5.1 (integration offering). XD provides advanced features for both administrators who manage multiple J2EE based applications and developers building advanced applications that require asymmetric clustering techniques.
Administrator benefits (ie load balancing)
Many businesses run multiple server farms but wish to consolidate them into a single smaller server farm because most server farms are underutilizied or over provisioned. The boxes are typically running at 10% load which is quite costly and is not flexible. For example, one server farm goes hot and maxes out while the farm in the next room is still basically idle at 10%. XD allows administrator to define a single cluster (a node group) and then deploy multiple applications to that node group. The administrator then tells XD that application A should have a response time of one second, application B 500ms and application C two seconds. The administrator can also tell us that A is more important than B and C and C is more important than B. XD will then monitor the workload and dynamically decide which boxes in the node group should host which application in order to meet these goals. If application A currently has a response time of 1.5 seconds then XD will add run A on more nodes and reduce the number of nodes running B and C to bring more resources to application A so it can meet its goal. XD can also predict that A will likely exceed its response time in 10 minutes based on a trend and react in anticipation of the event. This greatly simplifies the life of an administrator and allows the machines to be more efficiently used than a conventional multiple, independent farm of farms approach. XD also offers options to generate various email alerts when conditions are exceeded, it can restart servers when they appear to have a memory leak or after X requests.
Developer benefits
Traditional J2EE applications work well for a large class of applications. The class can broadly be categorized as applications that run in a stateless symmetric cluster in front of a database:
- all the cluster members can perform any task at any time
- the application is stateless
- the application is modal which means it only performs work synchronously in response to a client request which can be received using HTTP/IIOP or JMS.
There are other applications that do not work well in such an environment, for example, an electronic trading system in a bank. Such applications typically use tricks that can greatly improve performance such as partitioning, multi-threading and write through caching. These are applications that can exploit asymmetric clustering. An asymmetric cluster is practically the opposite of a symmetric cluster:
- Applications can declare named partitions at any point while it is running partitions are highly available, are mobile within the cluster and usually only run on a single cluster member at a time.
- Incoming work for a partition is routed to the cluster member hosting the partition.
- The application is amodal. Partitions have a lifecycle of their own and can start background threads/alarms as well as respond to incoming events whether they are IIOP/HTTP or JMS/foreign messages.
WebSphere XD offers a new set of APIs called the "WebSphere Partition Facility" or WPF for short. These APIs allow applications that require an asymmetric cluster to be deployed on a J2EE server for the first time to my knowledge.
See also
External links
- WebSphere software brand site (http://www.ibm.com/websphere)nl:WebSphere