Check out the new USENIX Web site. next up previous
Next: Design Alternatives Up: Extending the BAST Framework Previous: Overview of the Protocol.

Methodology for Extending BAST.

A five steps methodology guides programmers in extending the BAST framework using the Strategy pattern. We illustrate each of these steps below, by presenting how the methodology was applied to the design of class DTMObject. Figure 5 summarizes the methodology.

  1. Establish what services the new protocol class DTMObject provides, i.e., what operations are given to programmers wanting to use DTMObject; those operations are dtmcast(), dtmReceive() and dtmInterpret().
  2. Choose an algorithm implementing DTM and determine what services it requires, by decomposing it in a way that allows to reuse as many existing protocols as possible; those services are: consensus, failure detections, as well as reliable point-to-point and reliable multicast communications (see [11] for algorithmic details).
  3. Implement the chosen algorithm in some DTMAlgo class; all calls to the above required services are issued to an instance variable representing the context object, i.e., an instance of class DTMObject.
  4. Choose the protocol class that will be derived to obtain new class DTMObject; the choice of class CSSObject is directly inferred from step 2, since the chosen superclass has to provide at least all the services required by protocol DTM.
  5. Implement class DTMObject by connecting services provided by class DTMAlgo to new DTM-specific services of class DTMObject, and by connecting services required by class DTMAlgo to corresponding inherited services of class DTMObject.

Figure 5: Extending BAST with protocol class DTMObject

Wed May 14 17:28:46 MET DST 1997