BIP Overview

Visible to the public 

The Behavior-Interaction-Priority (BIP) framework allows constructing systems by superposing three layers of modelling: Behaviour, Interaction, and Priority. The lower layer consists of a set of atomic components represented by transition systems. The second layer models Interaction between components. Interactions are sets of ports specified by connectors. Priority, given by a strict partial order on interactions, is used to enforce scheduling policies applied to interactions of the second layer. Atomic components are communicating automata with transitions labelled by sets of communication ports. Compound components are obtained from subcomponents by application of glue operators (connectors and priorities). BIP has a formal operational semantics given in terms of Labelled Transition Systems and Structural Operational Semantics derivation rules. It has been successfully used for modelling and analysis of a variety of case studies and applications, such as performance evaluation, modelling and analysis of TinyOS-based wireless sensor network applications, construction and verification of a robotic system. 

The execution of a BIP system is driven by a dedicated engine, which has access to the set of connectors and the priority model of the system. In a given global state, each atomic component waits for an interaction through a set of active ports (i.e. ports labelling active transitions) communicated to the engine. The engine computes from the connectors of the BIP program and the set of all active ports, the set of maximal interactions (involving active ports). It chooses one of these interactions, computes the associated data transfer functions and notifies the involved components.

Several engines are available for execution of BIP models on various architectures. Two engines can be used for centralised execution on single processor architectures: the enumerative engine maintains explicitly the set of enabled interactions as a list, whereas the symbolic engine represents this set as a Binary Decision Diagram (BDD). For execution on distributed platforms, BIP models are transformed into Send-Receive BIP, where components communicate by sending messages and the choice of the interaction to be executed is distributed across the platform. In Send-Receive BIP models, this choice is realised by additional automatically generated components, which are replaced by appropriate communication protocols in the generated code.

We have developed DesignBIP, which is a design studio for the BIP framework. DesignBIP can be accessed via a web interface and allows specifying BIP models in a purely graphical way and generating the equivalent code. To facilitate scaling and reusability of BIP models, we have extended architecture diagrams, a graphical language for modeling architecture styles, to define parameterized BIP models. DesignBIP provides dedicated behavior and architecture model editors, architecture style and component type libraries, Java and XML code generation plugins, consistency checking mechanisms, integration with the JavaBIP-engine and visualization of its execution output.

More technical information about BIP

Related publications

Related presentations