REO
COORDINATION LANGUAGE
The Reo Coordination Language can be used to construct negotiation protocols as it provides formal semantics that offers dynamic reconfigurability and composability. The project specifies negotiation among patients and nurses where the patients make bids on time for their needs to be taken care of. Reo has several noteworthy attributes such as dynamic reconfigurability that make it an easy language to build negotiation protocols on. The formal semantics also enable one to obtain a clear understanding of the protocol used.
Reo views a system(negotiation between senior citizens and nurses) to be made up of component instances that interact through connectors. Focus is given on the communication between the component instances which takes place through the connectors. The circuit diagram in the next page will help understand this theory.
Reo models a connector as a graph of nodes and edges. There are three types of nodes namely sink, source and mixed. A mixed node contains both source and non-deterministically selects a data item available at one of its sink channel ends and replicates the data item to all of its source channel ends when all of them can accept the data item. A source node contains only source channel ends. If a component writes a data item to a source node, the node replicates the data item to all of its source channel ends when all of them can accept the data item. A sink node contains only sink channel ends. When a component tries to take a data item from a sink node, the node non-deterministically selects a data item available at one of its sink channel ends.
Reo enforces a channel based coordination model that defines how complex coordinators called connectors can be built out of simpler ones. Reo consists a system to be built out of a number of component instances interacting through connectors. Compositional construction of a connector out of simpler ones leads to what are known as channels. A channel has two channel ends namely source and sink. A sink dispenses data out of its channel whereas a source accepts data into its channel. Reo enables one to clearly designate the order of events that take place in a negotiation. This gives rise to the concept of bidding.