Data Abstraction in Coordination Constraints
This paper studies complex coordination mechanisms based on constraint satisfaction. In particular, it focuses on data-sensitive connectors from the Reo coordination language. These connectors restrict how and where data can flow between loosely-coupled components taking into account the data being exchanged. Existing engines for Reo provide a very limited support for data-sensitive connectors, even though data constraints are captured by the original semantic models for Reo.
When executing data-sensitive connectors, coordination constraints are not exhaustively solved at compile time but at runtime on a per-need basis, powered by an existing SMT (satisfiability modulo theories) solver. To deal with a wider range of data types and operations, we abstract data and reduce the original constraint satisfaction problem to a SAT problem, based on a variation of predicate abstraction. We show soundness and completeness of the abstraction mechanism for well-defined constraints, and validate our approach by evaluating the performance of a prototype implementation with different test cases, with and without abstraction.
KeywordsData Abstraction Coordination Pattern Boolean Formula Satisfiability Modulo Theory Data Constraint
Unable to display preview. Download preview PDF.
- 5.Bruni, R., Ferreira, C., Kauer, A.K.: First-order dynamic logic for compensable processes. In: Sirjani , pp. 104–121Google Scholar
- 6.Changizi, B., Kokash, N.: Arbab. A constraint-based method to compute semantics of channel-based coordination models. In: International Conference on Software Engineering Advances (2012)Google Scholar
- 7.Clarke, D., Proença, J., Lazovik, A., Arbab, F.: Channel-based coordination via constraint satisfaction. Science of Computer Programming 76 (2011)Google Scholar
- 11.Khosravi, R., Sabouri, H.: Using coordinated actors to model families of distributed systems. In: Sirjani , pp. 74–88Google Scholar
- 16.Proença, J., Clarke, D.: Solving data-sensitive coordination constraints. CW Reports CW637, Department of Computer Science, KU Leuven (February 2013)Google Scholar