Several companies and organizations are working together to create a standardized set of rules called protocols to make it easier to set up grid computing environments. It's possible to create a grid computing system right now and several already exist. But what's missing is an agreed-upon approach. That means that two different grid computing systems may not be compatible with one another, because each is working with a unique set of protocols and tools.
In general, a grid computing system requires:
- At least one computer, usually a server, which handles all the administrative duties for the system. Many people refer to this kind of computer as a control node. Other application and Web servers (both physical and virtual) provide specific services to the system.
- A network of computers running special grid computing network software. These computers act both as a point of interface for the user and as the resources the system will tap into for different applications. Grid computing systems can either include several computers of the same make running on the same operating system (called a homogeneous system) or a hodgepodge of different computers running on every operating system imaginable (a heterogeneous system). The network can be anything from a hardwired system where every computer connects to the system with physical wires to an open system where computers connect with each other over the Internet.
- A collection of computer software called middleware. The purpose of middleware is to allow different computers to run a process or application across the entire network of machines. Middleware is the workhorse of the grid computing system. Without it, communication across the system would be impossible. Like software in general, there's no single format for middleware.
If middleware is the workhorse of the grid computing system, the control node is the dispatcher. The control node must prioritize and schedule tasks across the network. It's the control node's job to determine what resources each task will be able to access. The control node must also monitor the system to make sure that it doesn't become overloaded. It's also important that each user connected to the network doesn't experience a drop in his or her computer's performance. A grid computing system should tap into unused computer resources without impacting everything else.
The potential for grid computing applications is limitless, providing everyone agrees on standardized protocols and tools. That's because without a standard format, third-party developers -- independent programmers who want to create applications on the grid computing platform -- often lack the ability to create applications that work on different systems. While it's possible to make different versions of the same application for different systems, it's time consuming and many developers don't want to do the same work twice. A standardized set of protocols means that developers could concentrate on one format while creating applications.
What are some of the criticisms and concerns people have about grid computing? Keep reading to find out.