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.