The causal ordering abstraction and a simple way to implement it
Control in distributed systems is mainly introduced to reduce nondeterminism. This nondeterminism is due on the one hand to the asynchronous execution of the processes located on the various sites of the system, and on the other hand to the asynchronous nature of the communication channels. In order to limit the asynchronism due to communication channels, a new message ordering relation, known as causal ordering, has been introduced by Birman and Joseph. After giving some examples of this causal ordering, we propose a simple algorithm to implement it. This algorithm is based on message sequence numbering. A proof of the correctness of the algorithm is also given.