Next: Using the Framework
Up: The Bayanihan Framework
Previous: The Bayanihan Framework
The Bayanihan framework defines a set of interacting components that can be extended and composed to build Bayanihan systems like that shown in
Fig. 1.
Figure 1:
A Bayanihan system with worker and watcher clients.
|
A Bayanihan system consists of many clients connected to one or more servers. A client can either be a Java applet started from a web browser, or a Java application started from the command line.
There can be different kinds of clients, such as
worker clients for performing computation, and watcher clients for viewing
results and statistics. Each client has a chassis, which contains an active engine object that communicates with a manager on the server by exchanging data objects. A work engine, for example, may get work data objects from the work manager, execute them, and return result data objects when they are done. Data objects are generally polymorphic, and know how to process themselves. Work data objects, for example, may implement a
doWork() method, which the work engine can call. Both the engine and the
data objects have associated GUI objects that provide a user interface.
A server typically contains a commodity HTTP server for serving out Java class files, and a command-line Java application that creates one or more problem objects representing different ongoing computations. Each problem has a program object which creates and controls manager
and data pool objects of different kinds. Figure 1, for
example, shows a program object controlling a work manager which takes care of
distributing work and collecting results from worker clients, and a watch
manager which distributes results to watcher clients. Each client connected to
the server is represented by an advocate object, which forwards the
client's remote calls to the appropriate manager.
Next: Using the Framework
Up: The Bayanihan Framework
Previous: The Bayanihan Framework
Luis Sarmenta
12/9/1998