Scalability: Distribution provides a mechanism by which to expand capability to scale an application to meet demand. This is simple, on the face of it: the more computers responding to the same request means more people can make requests. This is the quintessential reason behind clustering, and behind load balancing.
Redundancy: Computers fail. It’s built in. The only thing you can guarantee about a hard disk of any make? That it will, at some point or another, fail, and more than likely in your lifetime. Having the ability to have a computer take over when something else becomes ineffective, or to have a computer’s load lessened by adjoining members in a cluster, is a valuable benefit of distribution.
Parallelization: Distribution enables solutions designed to split problems into more manageable chunks, or to expedite processing by bringing more power to bear on the problem. Some problems are inherently, embarrassingly parallelizable. These often reflect real life. Take, for example, a process that’s designed to check hotels, car rentals, and airline accommodations and show you the best possible options. All three checks can be done concurrently, as they share no state. It would be a crime not to parallelize this sort of thing. Other problem domains are not so clearly parallelizable. For example, a binary sort is an ideal candidate for parallelization.
KeywordsVirtual Machine Object Graph Public Class Thread Application Processing Grid
Unable to display preview. Download preview PDF.