This is the second article in the series of articles exploring distributed java
application development. In this article we will continue to discuss about
As discuses in the previous article we need a distributed/clustered system for
the following non-functionality reasons.
Application Server Clustering vs Application(-Level) Clustering
Java 2, Enterprise Edition (J2EE) uses application-server clustering to deliver
mission-critical applications over the web. Within the J2EE framework, clusters
provide mission-critical services to ensure minimal downtime and maximum scalability.
A application server cluster is a group of application servers that transparently
run your J2EE application as if it were a single entity. The clustering support
is available for services/requests like JNDI, EJB, JSP, HttpSession replication
and component fail-over, load-balancing etc..
Most of the Java enterprise servers (JBoss, Resin, WebLogic etc) have built-in support for clustering.
More details about Aplication-Server Clustering available at
Application-Server Clustering alone is not sufficient to build full fledged distributed
application. To build a full fledged distributed application, application should be
aware of other available servers in the cluster. This Application-Level Cluster awareness is required to handle various custom use cases like state sharing , group communication and task co-ordination and distribution, etc..
Next article we will explore capabilities/support required to build Application-Level Server-cluster-aware applications.