Application clustering (sometimes called software clustering) is a method of turning multiple computer servers into a cluster (a group of servers that acts like a single system). Clustering software is installed in each of the servers in the group. Each of the servers maintains the same information and collectively they perform administrative tasks such as load balancing, determining node failures, and assigning failover duty. The other clustering method, hardware clustering, requires that specialized hardware be installed in a single server that controls the cluster.
Because servers can easily be added or removed from the cluster as needs dictate, an application cluster is more scalable than its hardware-based counterpart. Furthermore, because it doesn't require specialized hardware, an application cluster tends to be easier and cheaper to configure. For these reasons, application clustering is the more commonly practiced method.