The high availability capabilities of clustered J2EE app servers like WAS ND is pretty incredible. Most applications and middleware systems don't have any built-in HA capabilities; each part is a single instance and if it fails, it fails. To get HA, you need hardware clustering like High Availability Cluster Multiprocessing (HACMP).
WAS ND acts like a operating system for its apps. An app deployed in a properly configured WAS ND cluster benifits from workload management (WLM), which runs multiple instances of the app (the EAR file) and provides load balancing and failover between the instances. Even when an app server dies, what the app clients see is uninterrupted services.
High availability was good in WAS 5.0/5.1, but it's improved greatly in WAS 6. For more info, see:
- WebSphere 6.0 high availability with shared file systems
- WAS 6: Billy Newport Interview on The Server Side
- WebSphere Extended Deployment 6.0
- "Transactional high availability and deployment considerations in WebSphere Application Server V6"
- "Configuring and using XA distributed transactions in WebSphere Studio"
- and the Redbook, of course