Out Of Band Channel

A MicroArchitecture production.

(problem)

When two objects interact, they often need an OOB (out of band) channel to swap meta information e.g. transaction status and connection status.

RichardHenderson.


(context)

Programming languages use exceptions and return codes/parameters to handle this sort of processing. Exceptions provide the desired out-of-band behaviour in that there may be no in-band return data. They tend to be overloaded with local error data, however, making their use for non-critical faults problematic. They also cannot be used effectively in non-local environments.

(solution)

Explicitly define OOB handlers. This may be as simple as a separate interface to an object, or may require more complex adaptation.

(examples)

simple interface

A manager object composes the interacting objects. Each object can now query the OOB channel by method-call. There may be a number of methods, or the particular call may be parameterised within a generic message. Callback functionality may be provided for 'push' style, event-driven processing.

managed channel

This time additional 'channel' objects are composed between the parties. This object may be shared e.g. a STDOUT object. This is much more like the traditional shell-script structure. Peers register with the channel object which moderates interactions. The object may be transparent to the client and thus may be composed in as a strategy. This approach also allows easy interception of the messages for external processing. (see TeeAdapter) .


EditText of this page (last edited July 31, 2001) or FindPage with title or text search