next up previous
Next: Preliminary Results Up: System Design Previous: Architecture.


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 [40] 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., the work data interface containing 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:

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, and many other 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.
Components. Programmers can also write their own engines, managers, and data pools to implement additional functionality, or even completely different computation models. Programming at this level allows us to experiment with different forms of adaptive parallelism or different fault-tolerance mechanisms.

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. Also, different chassis objects may provide different ways to let the user select problems from the problem table. Making changes at this level may allow us to implement different security mechanisms, or address scalability issues.

next up previous
Next: Preliminary Results Up: System Design Previous: Architecture.
Luis Sarmenta