Skip to main content
Log in

A framework for automated distributed implementation of component-based models

  • Published:
Distributed Computing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Ajtai M., Komlós J., Szemerédi E.: Sorting in c log n parallel steps. Combinatorica 3(1), 1–19 (1983)

    Article  MathSciNet  MATH  Google Scholar 

  2. Arbab F.: Reo: a channel-based coordination model for component composition. Math. Struct. Comp. Sci. 14, 329–366 (2004)

    Article  MathSciNet  MATH  Google Scholar 

  3. 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)

  4. Bagrodia R.: Process synchronization: design and performance evaluation of distributed algorithms. IEEE Trans. Softw. Eng. (TSE) 15(9), 1053–1065 (1989)

    Article  Google Scholar 

  5. 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)

  6. Basu, A., Bozga, M., Sifakis, J.: Modeling heterogeneous real-time components in BIP. In: Software Engineering and Formal Methods (SEFM), pp. 3–12 (2006)

  7. 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)

  8. Bliudze, S., Sifakis, J.: A notion of glue expressiveness for component-based systems. In: Concurrency Theory (CONCUR), pp. 508–522 (2008)

  9. 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)

  10. 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)

  11. Bonakdarpour, B., Devismes, S., Petit, F.: Snap-stabilizing committee coordination. In: IEEE International Parallel and Distributed Processing Symposium (IPDPS), pp. 231–242 (2011)

  12. 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)

  13. 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)

    Article  Google Scholar 

  14. Chandy K.M., Misra J.: The drinking philosophers problem. ACM Trans. Program. Lang. Syst. (TOPLAS) 6(4), 632–646 (1984)

    Article  Google Scholar 

  15. Chandy K.M., Misra J.: Parallel Program Design: A Foundation. Addison-Wesley Longman Publishing Co., Inc., Boston (1988)

    MATH  Google Scholar 

  16. 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)

  17. Dijkstra E.W., Scholten C.S.: Termination detection for diffusing computations. Inf. Process. Lett. 11(1), 1–4 (1980)

    Article  MathSciNet  MATH  Google Scholar 

  18. 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)

    Article  MathSciNet  MATH  Google Scholar 

  19. Gössler G., Sifakis J.: Composition for component-based modeling. Sci. Comput. Program. 55(1–3), 161–183 (2005)

    Article  MATH  Google Scholar 

  20. Herlihy, M., Moss, J.E.B.: Transactional memory: architectural support for lock-free data structures. In: ISCA, pp. 289–300 (1993)

  21. ISO/IEC. Information Processing Systems—Open Systems Interconnection: LOTOS, A Formal Description Technique Based on the Temporal Ordering of Observational Behavior (1989)

  22. Joung Y.-J., Smolka S.A.: Strong interaction fairness via randomization. IEEE Trans. Parallel Distrib. Syst. 9(2), 137–149 (1998)

    Article  Google Scholar 

  23. Kumar, D.: An implementation of n-party synchronization using tokens. In: ICDCS, pp. 320–327 (1990)

  24. Luby M.: A simple parallel algorithm for the maximal independent set problem. SIAM J. Comput. 15(4), 1036–1053 (1986)

    Article  MathSciNet  MATH  Google Scholar 

  25. Lynch N.: Distributed Algorithms. Morgan Kaufmann, San Mateo (1996)

    MATH  Google Scholar 

  26. Manne F., Mjelde M., Pilard L., Tixeuil S.: A new self-stabilizing maximal matching algorithm. Theor. Comput. Sci. 410(14), 1336–1345 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  27. Milner, R.: A Calculus of Communicating Systems, volume 92 of Lecture Notes in Computer Science. Springer, Berlin (1980)

  28. Milner R.: Communication and Concurrency. Prentice Hall, Hertfordshire (1995)

    Google Scholar 

  29. Murata T.: Petri nets: Properties, analysis and applications. Proc. IEEE 77(4), 541–580 (1989)

    Article  Google Scholar 

  30. 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)

    Article  Google Scholar 

  31. Proença, J.: Synchronous Coordination of Distributed Components. PhD thesis, Faculteit der Wiskunde en Natuurwetenschappen (May 2011)

  32. Shavit N., Touitou D.: Software transactional memory. Distrib. Comput. 10(2), 99–116 (1997)

    Article  Google Scholar 

  33. 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)

  34. von Bochmann, G., Gao, Q., Wu, C.: On the distributed implementation of lotos. In: FORTE, pp. 133–146 (1989)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Borzoo Bonakdarpour.

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

Reprints 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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00446-012-0168-6

Keywords

Navigation