GRID computing is a method of harnessing the power of many computational resources in a network. GRID computing involves large scale geographically distributed heterogeneous resources, and involves resource sharing by applications and/or high performance processing and network bandwidth. As such, a GRID computing environment or network enables sharing of loosely coupled resources and services required by various applications in a large-scale environment.
Traditionally, GRID computing has provided for the execution of batch jobs in the scientific and academic community. Batch execution on a grid computing environment requires authentication, authorization, resource access, resource discovery, and other services. In support of batch processing of jobs on a grid computing environment, protocols, services, application programming interfaces, and software development kits have been developed.
However, although specifications such as Open Grid Service Infrastructure (OGSI) provide for the basic functionalities of a GRID network, these specifications do not provide sufficient detail in the management of quality of service provided to the client within the GRID network. Experience shows that query times in single instance data bases can vary over several orders of magnitude depending no a large number of factors. In a distributed database environment, this problem is further exacerbated. Moreover, within the traditional GRID network implementing a distributed database environment, it is difficult to determine or commit to a defined level of performance. For instance, the conventional GRID network includes one layer of job scheduling software which is unaware of the current state of the resources in the GRID network. This confines the GRID network to processing specialized computing applications with dedicated machines instead of a distributed model.