Next: Addressing Issues
Up: System Design
Previous: Putting It Together.
By using a distributed object system like HORB, the Bayanihan
framework hides the details of network communications from programmers,
and allows them to program in a fully object-oriented manner without
having to worry about communications-level details such as sockets, packet
formats, and message protocols. Programmers can write
a Bayanihan application by simply filling-in hot-spots [23]
in the framework.
They can use existing library components, or define
their own classes, provided that these classes either
implement the appropriate interfaces (e.g., work data
must implement the process() method),
or extend library classes that implement these interfaces.
In this way, implementations of the Bayanihan framework
can be varied at three main levels:
- 1.
- Applications.
At the highest level, application programmers
can write their own data objects and GUIs, and create their own problem
objects by putting together appropriate engines, managers, and data pools
chosen from a component library. Given a library
for eager scheduling, for example, one can write applications for
rendering, RC5 cracking, and any other master-worker type
parallel applications, simply by varying the work data and GUI classes.
Within a single application, it is also possible to change the user interface
(e.g., to display data in different formats) by changing the GUI objects.
- 2.
- Components.
Programmers can also write their own engines, managers,
and data pools.
They can extend currently available components to modify
or add functionality to existing models.
Or, they can implement completely different
computation models by creating their own objects.
For example, a programmer can implement Linda tuple-spaces by
creating managers and data pools that support tuple-space operations,
and engines that are designed to use them.
- 3.
- Infrastructure.
It is also possible to change other support objects such
as the chassis and the problem table.
For example, there may be an application chassis and an applet chassis.
Or, different chassis objects may provide different ways to let
the user select problems from the problem table.
Next: Addressing Issues
Up: System Design
Previous: Putting It Together.
Luis Sarmenta
1/2/1998