In this thesis, we propose to take a unified approach in addressing these issues, by taking advantage of and novelly extending techniques that people learned over decades from various distributed computing area: S-DSM, message passing, remote execution, mobile code and mobile agent, application partitioning, distributed database, World Wide Web, content distribution and multicast. Our belief is that efforts in narrowing the gap between local computing and distributed computing cannot be viewed as a success until middlewares can provide programmers with a natural and rich programming environment that allows efficient implementation of both the middleware itself and applications.
To this end, we propose a middleware system called InterWeave, featuring transparent and efficient data sharing among multiple languages and heterogeneous platforms; scalable and cache coherent hierarchy for data distribution; a combination of data shipping and function shipping enhanced by a shared global space; dynamic application partitioning; version-based relaxed coherence models; 3-level architecture that is able to take advantage of available hardware shared memory at the lowest level, software distributed shared memory across tightly coupled cluster nodes at the second level, and version based coherence in a more loosely coupled environment such as the Internet. In this thesis, we will focus on introducing the first four aspects of InterWeave.