The cajo package is used for transparent distributed computing between remote Virtual Machines.

It provides two primary services:

It allows Virtual Machines to dynamically distribute their functionality across the network. It essentially creates a seamless continuum between cooperating remote Virtual Machines, or in other words, creates a composite Virtual Virtual Machine. (VVM)

The cajo package provides a high-level interface to the functionality of the package. It is possible to use the cajo framework very effectively using just this package. However, the other small packages provide ways to further monitor, instrument, and analyse the framework functionality.

The invoke package is common to all cooperating virtual machines. It allows one Virtual Machine to use the functionality of another. While it consists of five classes, only three are necessary in most cases. Two of these are interfaces, each with less than five lines of code!

The utils package is a collection of eight classes used to furnish functionality to remote Virtual Machines. A typical application will use most, if not all, of these classes.

The extra package provides some techniques for applying the framework. It is not critical to understanding the framework, and as such should be reviewed last. It will provide however, both useful supplemental functionality, and a set of interesting examples of the power inherent in this architecture.