Web Server

Read Complete Research Material

WEB SERVER

Integrating Clustering and Load Balancing for Higher Availability and Scalability in Web Server Environment



Integrating Clustering and Load Balancing for Higher Availability and Scalability in Web Server Environment

Ch # 4: Findings

Main Findings

The latest version of the Web server provides clustering and load balancing capabilities that are essential for deploying scalable and robust web applications. The first part of this research provides an overview of installation, configuration, usage, and extension of clustering and load balancing features. The second will introduce a sample web application to demonstrate the steps involved in configuring Web server instances to enable clustering, and will study session persistence using in-memory replication in the cluster environment.

The Web server comes with a rules-based load balancer application. Two simple custom load balancing rules (extending the rules API) were written based on round-robin and random algorithms to redirect incoming web requests. Performance benchmarks for the sample web application running in the cluster environment are presented(Qin 2007 ). The load testing tool JMeter was used to simulate multiple web users to study the load-balancing mechanism.

Enterprise web portal applications must provide scalability and high availability (HA) for web services in order to serve thousands of users hitting a corporate web site. Scalability is the system's ability to support increasing numbers of users by adding additional servers to the cluster(Pogacnik 2008). High availability is basically providing redundancy in the system. If a cluster member fails for some reason, another member in the cluster can transparently take over the web requests.

Mission-critical services

Large-scale system design provides mission-critical services to ensure minimal downtime and maximum scalability in an enterprise application environment. Rather than run a single server, multiple cooperating servers are run. To scale, you should include additional machines within the cluster and to minimize downtime, you should make sure every component of the cluster is redundant(Park 2007 ). The main ingredient of a large-scale system is clustering, which includes load balancing, fault tolerance, and session state persistence features.

Clustering can be done at various tiers in a J2EE application, including at the database tier. Some database vendors offer clustered databases that support data replication between multiple database servers by providing client transparency where the client (usually an application server) doesn't have to know to which database server it's connecting to get the data.

Examples of JDBC clustering are Oracle9i's Real Application Clusters (RAC) and Clustered JDBC (C-JDBC). RAC supports fail over of database connections and transparently reroutes JDBC connections and database requests to a failed over database node(Papanikolaou 2007 ). C-JDBC is an open source database cluster that allows a web application to transparently access a cluster of databases through a JDBC driver. This implementation not only load balances JDBC connections among the database nodes in the cluster, but also fails over to a secondary database server.

Clustering in Web server

In a typical cluster environment, for servers in the cluster to cooperate and replicate state, they need to communicate with each other. This group communication is achieved either by point-to-point RMI (TCP-IP) or via IP multicast(Pacey, ...
Related Ads