IceGrid is the location and activation service for Ice applications. In prior Ice releases, the IcePack service supplied this functionality. Given the increasing importance of grid computing, IceGrid was introduced in Ice 3.0 to support all of IcePack’s responsibilities and extend it with new features to simplify the development and administration of Ice applications on grid networks.
For the purposes of this chapter, we can loosely define grid computing as the use of a network of relatively inexpensive computers to perform the computational tasks that once required costly "big iron." Developers familiar with distributed computing technologies such as Ice and CORBA may not consider the notion of grid computing to be particularly revolutionary; after all, distributed applications have been running on networks for years, and the definition of grid computing is sufficiently vague that practically any server environment could be considered a "grid."
One possible grid configuration is a homogeneous collection of computers running identical programs. Each computer in the grid is essentially a clone of the others, and all are equally capable of handling a task. As a developer, you need to write the code that runs on the grid computers, and Ice is ideally suited as the infrastructure that enables the components of a grid application to communicate with one another. However, writing the application code is just the first piece of the puzzle. Many other challenges remain:
Of course, these are issues faced by most distributed applications. As you read this chapter and learn more about IceGrid’s capabilities, you will discover that it offers solutions to these challenges. To get you started, we have summarized IceGrid’s feature set below:
Starting an Ice server process is called server activation. IceGrid can be given responsibility for activating a server on demand, that is, when a client attempts to access an object hosted by the server. Activation usually occurs as a side effect of indirect binding, and is completely transparent to the client.
As grid computing enters the mainstream and compute servers become commodities, users expect more value from their applications. IceGrid, in cooperation with the Ice run time, relieves you of these low-level tasks to accelerate the construction and simplify the administration of your distributed applications.