Package cam.netapp
Classes for the Creation of Distributed Applications
The programming model for which these classes were written is very simple. Distributed applications are built from two components, a "front" component and a "back" component. These components communicate using input and output streams. The sending/receiving is blocking, so there is data driven synchronization. Additionally, the "front" component has control over the "back" component and can start, pause and stop the "back" component.
These classes were developed for the task of creating distributed applications in which the "back" component is a CPU intensive calculation and the "front" component is a user interface. These sorts of applications do not require a very sophisticated communication interface; we therefore created "minimal" classes that enable this type of application construction (as opposed to using other class structures primarily developed within the commercial sector;. CORBA, RMI etc.). See Creating Distributed Applications In Java Using cam.netapp Classes for a general description of the use of the cam.netapp classes.
Source Files (in compressed form)
Chris Anderson, Dan Delsol © UCLA 1997
This class performs two important functions
Instances of this class are used by the "front end" of a distributed application.
Remote ("back end") application classes are required to implement this interface (in addition to the Runnable interface).
Instances of this class run(continuously) on the remote machine and communicate with NetworkConnection instances. Methods of this class dynamically load the remote classes and manage streams and threads on the remote machine. To get an instance running, one need only invoke the ServerManagers' main(…) method.
These classes provide functionality required by the NetworkConnection and ServerManager classes.
These classes and their associated methods were not meant for general use and consequently may change without warning. They are purposely not documented.
ControlThread
A class, derived from Thread, that is used to control a remote application.
JavaServer
A class that facilitates the setting up of the communication between a NetworkConnection instance and a remote class.
CPUscheduler
A standalone scheduler which schedules threads in a round-robin, equal time-slicing, fashion.
ProcessControl
A class that scavenges threads under CPUscheduler control, and removes threads which are no longer alive.