The BAST framework was designed to help programmers in building
reliable distributed systems, and is based on protocols as basic
structuring components. With BAST, a distributed system is composed
of protocol objects that have the ability to remotely designate
each other and to participate in various protocols. A distributed
protocol is a set of interactions between protocol objects that
aim at solving distributed problem
. We use a
Object
to name a protocol object capable of participating in protocol
, and we
say that
Object is its protocol class. Each
Object provides a set of operations that interface protocol
, i.e.,
these operations act as entry points to the protocol. Abstract class
Protobject is the root of the protocol class hierarchy.
With such broad definitions, any interaction between objects located on
distinct network nodes is a distributed protocol, even a mere
point-to-point communication. For example, class RMPObject
implements a reliable point-to-point communication protocol and provides
operations rSend() and rDeliver() that enable to reliably send,
respectively receive, any object; callback operation
rDeliver() is redefinable and is said to be triggered by the
protocol. Note that such an homogeneous view of what distributed protocols
are does not contradict the fact that some protocols are more basic than
others. Communication protocols, for example, are fundamental to almost
any other distributed protocol.