Abstract
Although distributed systems are widely used nowadays, their implementation and deployment are still time-consuming, error-prone, and hardly predictable tasks. In this paper, we propose a method for producing automatically efficient and correct-by-construction distributed implementations from a model of the application software in Behavior, Interaction, Priority (BIP). BIP is a well-founded component-based framework encompassing high-level multi-party interactions for synchronizing components (e.g., rendezvous and broadcast) and dynamic priorities for scheduling between interactions. Our method transforms an arbitrary BIP model into a Send/Receive BIP model that is directly implementable on distributed execution platforms. The transformation consists in (1) breaking the atomicity of actions in components by replacing synchronous multiparty interactions with asynchronous Send/Receive interactions; (2) inserting distributed controllers that coordinate the execution of interactions according to a user-defined partition of interactions, and (3) adding a distributed algorithm for handling conflicts between controllers. The obtained Send/Receive BIP model is proven observationally equivalent to its corresponding initial model. Hence, all functional properties of the initial BIP model are preserved by construction in the implementation. Moreover, the obtained Send/Receive BIP model can be used to automatically derive distributed executable code. The proposed method is fully implemented. Currently, it is possible to generate C++ implementations for (1) TCP sockets for conventional distributed communication, (2) MPI for multi-processor platforms, and (3) POSIX threads for deployment on multi-core platforms. We present four case studies and report experimental results for different design choices including partition of interactions and choice of algorithm for distributed conflict resolution.
Similar content being viewed by others
References
Ajtai M., Komlós J., Szemerédi E.: Sorting in c log n parallel steps. Combinatorica 3(1), 1–19 (1983)
Arbab F.: Reo: a channel-based coordination model for component composition. Math. Struct. Comp. Sci. 14, 329–366 (2004)
Bagrodia, R.: A distributed algorithm to implement n-party rendevouz. In: Foundations of Software Technology and Theoretical Computer Science, Seventh Conference (FSTTCS), pp. 138–152 (1987)
Bagrodia R.: Process synchronization: design and performance evaluation of distributed algorithms. IEEE Trans. Softw. Eng. (TSE) 15(9), 1053–1065 (1989)
Basu, A., Bidinger, P., Bozga, M., Sifakis, J.: Distributed semantics and implementation for systems with interaction and priority. In: Formal Techniques for Networked and Distributed Systems (FORTE), pp. 116–133 (2008)
Basu, A., Bozga, M., Sifakis, J.: Modeling heterogeneous real-time components in BIP. In: Software Engineering and Formal Methods (SEFM), pp. 3–12 (2006)
Batcher, K.E.: Sorting networks and their applications. In: AFIPS ’68 (Spring): Proceedings of the April 30–May 2, 1968, Spring Joint Computer Conference, pp. 307–314 (1968)
Bliudze, S., Sifakis, J.: A notion of glue expressiveness for component-based systems. In: Concurrency Theory (CONCUR), pp. 508–522 (2008)
Bonakdarpour, B., Bozga, M., Jaber, M., Quilbeuf, J., Sifakis, J.: From high-level component-based models to distributed implementations. Technical Report TR-2010-9, VERIMAG, March (2010)
Bonakdarpour, B., Bozga, M., Quilbeuf, J.: Automated distributed implementation of component-based models with priorities. In: ACM International Conference on Embedded Software (EMSOFT), pp. 59–68 (2011)
Bonakdarpour, B., Devismes, S., Petit, F.: Snap-stabilizing committee coordination. In: IEEE International Parallel and Distributed Processing Symposium (IPDPS), pp. 231–242 (2011)
Bozga, M., Jaber, M., Sifakis, J.: Source-to-source architecture transformation for performance optimization in BIP. In: Symposium on Industrial Embedded Systems (SIES), pp. 152–160 (2009)
Bozga M., Jaber M., Sifakis J.: Source-to-source architecture transformation for performance optimization in BIP. IEEE Trans. Ind. Inform. 5(4), 708–718 (2010)
Chandy K.M., Misra J.: The drinking philosophers problem. ACM Trans. Program. Lang. Syst. (TOPLAS) 6(4), 632–646 (1984)
Chandy K.M., Misra J.: Parallel Program Design: A Foundation. Addison-Wesley Longman Publishing Co., Inc., Boston (1988)
Cheiner O.M., Shvartsman A.A.: Implementing an eventuallyserializable data service as a distributed system building block. In: Principles Of Distributed Systems (OPODIS), pp. 9–24 (1998)
Dijkstra E.W., Scholten C.S.: Termination detection for diffusing computations. Inf. Process. Lett. 11(1), 1–4 (1980)
Galil Z., Micali S., Gabow H.N.: An o(ev log v) algorithm for finding a maximal weighted matching in general graphs. SIAM J. Comput. 15(1), 120–130 (1986)
Gössler G., Sifakis J.: Composition for component-based modeling. Sci. Comput. Program. 55(1–3), 161–183 (2005)
Herlihy, M., Moss, J.E.B.: Transactional memory: architectural support for lock-free data structures. In: ISCA, pp. 289–300 (1993)
ISO/IEC. Information Processing Systems—Open Systems Interconnection: LOTOS, A Formal Description Technique Based on the Temporal Ordering of Observational Behavior (1989)
Joung Y.-J., Smolka S.A.: Strong interaction fairness via randomization. IEEE Trans. Parallel Distrib. Syst. 9(2), 137–149 (1998)
Kumar, D.: An implementation of n-party synchronization using tokens. In: ICDCS, pp. 320–327 (1990)
Luby M.: A simple parallel algorithm for the maximal independent set problem. SIAM J. Comput. 15(4), 1036–1053 (1986)
Lynch N.: Distributed Algorithms. Morgan Kaufmann, San Mateo (1996)
Manne F., Mjelde M., Pilard L., Tixeuil S.: A new self-stabilizing maximal matching algorithm. Theor. Comput. Sci. 410(14), 1336–1345 (2009)
Milner, R.: A Calculus of Communicating Systems, volume 92 of Lecture Notes in Computer Science. Springer, Berlin (1980)
Milner R.: Communication and Concurrency. Prentice Hall, Hertfordshire (1995)
Murata T.: Petri nets: Properties, analysis and applications. Proc. IEEE 77(4), 541–580 (1989)
Pérez J.A., Corchuelo R., Toro M.: An order-based algorithm for implementing multiparty synchronization. Concurr. Comput. Pract. Exp. 16(12), 1173–1206 (2004)
Proença, J.: Synchronous Coordination of Distributed Components. PhD thesis, Faculteit der Wiskunde en Natuurwetenschappen (May 2011)
Shavit N., Touitou D.: Software transactional memory. Distrib. Comput. 10(2), 99–116 (1997)
Tauber, J.A., Lynch, N.A., Tsai, M.J.: Compiling IOA without global synchronization. In: Symposium on Network Computing and Applications (NCA), pp. 121–130 (2004)
von Bochmann, G., Gao, Q., Wu, C.: On the distributed implementation of lotos. In: FORTE, pp. 133–146 (1989)
Author information
Authors and Affiliations
Corresponding author
Additional information
This article extends the results in two papers that appeared in ACM International Conference on Embedded Software (EMSOFT’10) and IEEE International Symposium on Industrial Embedded Systems (SIES’10). This work is partially supported by EU FP7 projects no. 215543 (COMBEST), no. 248776 (PRO3D), and by Canada NSERC DG 357121-2008, ORF RE03-045, ORE RE-04-036, and ISOP IS09-06-037.
Rights and permissions
About this article
Cite this article
Bonakdarpour, B., Bozga, M., Jaber, M. et al. A framework for automated distributed implementation of component-based models. Distrib. Comput. 25, 383–409 (2012). https://doi.org/10.1007/s00446-012-0168-6
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00446-012-0168-6