Abstract

1. Introduction
	1.1. Problem
	1.2. Motivation
	1.3. Thesis Outline

2. Background
	2.1. Foundations of Distributed Programming
	2.2. Distributed Middleware
		2.2.1. Overview
		2.2.2. DCOM
		2.2.3. RMI
		2.2.4. CORBA
		2.2.5. CORBA Example
	2.3. Distributed Programming Languages
		2.3.1. SR
		2.3.2. Emerald
	2.4. Distributed Frameworks
		2.4.1. ACE
		2.4.2. DCE
	2.5. Partitioning Systems
		2.5.1. Coign
	2.6. Java for Distributed Programming
		2.6.1. Object Serialization
		2.6.2. Reflection
		2.6.3. Inherent Object-orientation
		2.6.4. Multithreaded Capabalities
		2.6.5. Interfaces for Sockets

3. Options for Units of Distribution
	3.1. Overview
	3.2. JavaBeans
		3.2.1. Concepts
		3.2.2. Granularity
		3.2.3. Advantages
		3.2.4. Disadvantages
	3.3. Inner Classes
		3.3.1. Concepts
		3.3.2. Granularity
		3.3.3. Advantages
		3.3.4. Disadvantages
	3.4. Namespaces
		3.4.1. Concepts
		3.4.2. Granularity
		3.4.3. Advantages
		3.4.4. Disadvantages

4. xDU Programming Model
	4.1. Basic Concepts
	4.2. Syntax
	4.3. Examples
	
5. xDU Implementation
	5.1. Translator
	5.2. Run-time Environment

6. Experimental Results
	6.1. Microbenchmarks
	6.2. Distributed Sieve
	6.3. Readers/Writers
	6.x. [others...]

7. Conclusion

Appendices
	Appendix A. xDU Example
	Appendix B. Source Code for Experiments
	Appendix C. Usage of JavaCC/JJTree

References
