The Computing Communities project articulates a novel method of middleware development, which does not suffer from the excruciating problem of having to redesign, re-code, or even recompile applications. All binaries of all existing applications that run on a standard operating system run on the new, distributed platform. This distributed platform realizes a "computing community" (CC for short), which is a single, dynamically changing, virtual multiprocessor system, physically built by coalescing many independent computing and information resources. The CC can be configured to provide a custom environment for application execution across all of its resources, supporting a variety of features such as transparent distribution, global scheduling, fault tolerance, and application adaptation to changes in resource availability. These features are embodied in a middleware layer that is transparently inserted between the application and the base operating system using API interception techniques. The name CC comes from the similarity between such a system and a real community, where diverse people coexist in a cooperative environment.
Computing Communities is a collaborative project involving researchers at New York University and Arizona State University.