The need for fast, reliable and secure access to vast amounts of shared data worldwide has been driving the growth of multiprocessing paradigm in which applications, data storage, processing power, and other resources are distributed among a pool of processors.