Grid computing is a collection of computing resources that appear to the end user as one large system and provide a single point of access for performing tasks. Grid computing allows for hundreds, if not thousands, of services and their requests to run concurrently, without being concerned about where they execute.
Grid computing gives enterprises the equivalent of a supercomputer without adding one to their data centers. The ability to use computational power not only within your organization but also from third parties further increases availability.
In a grid, the computational unit of work is a ticket. When a service in the grid requests work, computational resources are assigned according to the share entitlement policy. If an administrator assigns 5,000 tickets to a grid, they will be distributed consistent with the entitlements of the share. Grid computing uses tickets to guarantee quality of service in a distributed environment.
Grid resource managers control execution requests submitted by services and schedule them on selected servers, based on resource management policies. Resource management policies are typically determined by a grid system administrator and monitored by the grid resource managers. Currently, four types of policies can be specified: shared, functional, override, and deadline.
Share-based policies allot a percentage of computing resources to all defined users and services in the grid. Share policies also take into consideration prior use of resources. If a service consumes more than its entitlement, the grid manager lowers the entitlement until its use meets the allocation. The grid manager also increases entitlement to compensate for underutilization.
A functional policy is analogous to the shared policy but does not penalize a service based on past usage. Override policies are typically assigned to a service by the grid administrator and allow for dynamic alteration of resource usage. Over-ride polices are valid until either the administrator removes them or the service executes.
Finally, an administrator allocates a deadline policy by creating a large number of tickets for the service when it executes. This creates additional opportunities for the service to run ahead of others. The grid manager removes extra tickets from the service after completion.
Web services are about integrating services across distributed heterogeneous infrastructures and creating virtual organizations through resource sharing and service provider relationships. This form of dynamic collaboration should also extend to the infrastructure. The Globus project has defined a grid service that provides the functionality to create, name, and discover transient grid-service instances in a service-oriented manner (with location transparency and support for multiple bindings). This specification is referred to as the Open Grid Services Architecture (OGSA).
OGSA builds on constructs in the WSDL interface and describes lifetime management, change management, and notification. OGSA also supports authentication, authorization, delegation, and reliable invocation. Grid security is based digital certificates. Dynamic service creation is supported through a standard factory interface that all service creation services must implement.
Grid computing also has many fault tolerant characteristics. A distributed infrastructure that uses transient, stateful service instances should provide a method for reclaiming the service itself and the state associated with failed operations. In the Flute Bank example, the portfolio analysis Web service uses both internal and external resources. Unexpected termination of an analysis run also terminates all upstream and downstream services.
Figure 16.7 shows how Flute Bank uses the grid for its infrastructure. The portfolio analysis Web service invokes the create grid service in the second hosting environment. The create grid call likewise creates two factories, one that performs data mining on behalf of the portfolio analysis service and one for the storage reservation used to create the performance statements.
The factory specifies in its service description that mutual authentication of the calling service and the relevant factory must occur. Upon successful authentication, the factory creates a grid service instance. The mining service instance is provided with delegated proxy credentials that allow it to perform remote operations on behalf of the portfolio analysis service.
The mining service uses its proxy credentials to request data from two databases and keeps any intermediate result sets in local storage. The mining service also provides periodic status notifications to its client. The calling client also generates periodic keepalive requests to both grid service instances.
Grid computing may become a solution that will also translate to cheaper infrastructure costs. Unused CPU cycles on idle machines were previously unavailable. The typical infrastructure has more capacity than it uses at any point-it just isn't in the right place at the right time. Many enterprises throw hardware at the problem, filling the data center with bigger and faster servers. Others have upgraded their infrastructures to support Gigabit Ethernet, and some are even looking toward ten Gigabit in the future. Taking such an expensive approach will more than likely lead to expenses higher than the revenue gained.
For enterprises wishing to use Web services for exposing customer relationship management (CRM) systems, grid computing offers some unique solutions. The typical organization that purchases CRM products, such as Siebel or SalesForce.com, hope to integrate data distributed across sales, customer support, billing, shipping, accounts receivable, and other systems. Using a Web service as an integration layer for this has several advantages. Collecting customer data in a single place is a noble goal. Grid computing could massively parallel the customer data analysis and deliver this functionality to every point of customer access in the company. In this scenario, creating a CRM analytics Web service that uses grid computing could be powerful.
The components of the grid service can be used for many higher-level Web services Workflow services can be built, where multiple tasks can be executed on multiple resources. Fraud detection services can be created to analyze data across multiple services. Intrusion detection services can be built to look for use patterns, employing idle resources.