Why Is a Grid Different From a Cluster?
There are several key features of grid systems that distinguish them from resource collections such as clusters, service-oriented architectures, and other implementations of federated systems. Although often qualitative, these criteria help to maintain a definition of a grid that may hold promise beyond today's common system designs, and may help grid systems meet their potential (instead of expense and disillusionment, as is often the destination of exciting new paradigms).
Grid Resources Are Distributed
Resources on a grid are usually geographically dispersed. The distribution of grid resources, and therefore the heterogeneous administration of these resources, requires that discovery and use of these resources be decoupled from the underlying implementations. Even grids that are limited to a single enterprise (enterprise grids) are different from traditional clusters in that there are no assumptions made about the underlying implementation, operational policies, and administration of the grid nodes.
Grid Resources Are Heterogeneous
Unlike traditional clusters of systems that are administered under a single domain, grid resources are heterogeneous and might be allocated to the grid by virtually any organization. Different domains might make different implementation choices based on standards, budgets, and availability. Indeed, contributors to a computing grid might provide specialized implementations that specifically serve their local needs while generally serving a need on a grid. For example, an organization might contribute specialized MPEG decoding services. As such, the underlying implementation details of a resource should be abstracted from the users of the grid to providing maximum flexibility for grid participants and grid consumers.
Grid Resources Are Dynamic
Resources are allocated and removed from grids dynamically. The Quality of Service (QoS) (a characterization of service with respect to the speed, cost, quality, and other service attributes) provided by a grid should be shielded as much as possible from the availability of any particular resource on the grid. This means that the client is shielded (as much as is feasible) from the dynamic nature of the grid.
Grid Requests Are Dynamically Allocated to Services
Several grid implementations rely on dynamic coordinated bindings between a job or service request, and a resource on the grid. The entities responsible for this coordination are referred to as resource brokers. These brokers can be centralized or distributed. As you will see, JavaSpaces provides an allocation model that is fundamentally different from the scheduling paradigm of resource brokers.