Coordination of Dynamic Software Components with JavaBIP

  • Anastasia MavridouEmail author
  • Valentin Rutz
  • Simon Bliudze
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10487)


JavaBIP allows the coordination of software components by clearly separating the functional and coordination aspects of the system behavior. JavaBIP implements the principles of the BIP component framework rooted in rigorous operational semantics. Recent work both on BIP and JavaBIP allows the coordination of static components defined prior to system deployment, i.e., the architecture of the coordinated system is fixed in terms of its component instances. Nevertheless, modern systems, often make use of components that can register and deregister dynamically during system execution. In this paper, we present an extension of JavaBIP that can handle this type of dynamicity. We use first-order interaction logic to define synchronization constraints based on component types. Additionally, we use directed graphs with edge coloring to model dependencies among components that determine the validity of an online system. We present the software architecture of our implementation, provide and discuss performance evaluation results.


  1. 1.
    Agha, G.: Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge (1986)Google Scholar
  2. 2.
    Akers, S.B.: Binary decision diagrams. IEEE Trans. Comput. C-27(6), 509–516 (1978)Google Scholar
  3. 3.
    Allen, R., Douence, R., Garlan, D.: Specifying and analyzing dynamic software architectures. In: Astesiano, E. (ed.) FASE 1998. LNCS, vol. 1382, pp. 21–37. Springer, Heidelberg (1998). doi: 10.1007/BFb0053581 CrossRefGoogle Scholar
  4. 4.
    Arnold, A.: Synchronized behaviours of processes and rational relations. Acta Informatica 17, 21–29 (1982)MathSciNetCrossRefzbMATHGoogle Scholar
  5. 5.
    Basu, A., Bensalem, S., Bozga, M., Combaz, J., Jaber, M., Nguyen, T.-H., Sifakis, J.: Rigorous component-based system design using the BIP framework. IEEE Softw. 28(3), 41–48 (2011)CrossRefGoogle Scholar
  6. 6.
    Basu, A., Bozga, M., Sifakis, J.: Modeling heterogeneous real-time components in BIP. In: 4th IEEE International Conference on Software Engineering and Formal Methods (SEFM 2006), pp. 3–12, September 2006, Invited talkGoogle Scholar
  7. 7.
    Bensalem, S., Bozga, M., Nguyen, T.-H., Sifakis, J.: D-Finder: a tool for compositional deadlock detection and verification. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 614–619. Springer, Heidelberg (2009). doi: 10.1007/978-3-642-02658-4_45 CrossRefGoogle Scholar
  8. 8.
    Bliudze, S., Cimatti, A., Jaber, M., Mover, S., Roveri, M., Saab, W., Wang, Q.: Formal verification of infinite-state BIP models. In: Finkbeiner, B., Pu, G., Zhang, L. (eds.) ATVA 2015. LNCS, vol. 9364, pp. 326–343. Springer, Cham (2015). doi: 10.1007/978-3-319-24953-7_25 CrossRefGoogle Scholar
  9. 9.
    Bliudze, S., Mavridou, A., Szymanek, R., Zolotukhina, A.: Coordination of software components with BIP: application to OSGi. In: Proceedings of the 6th International Workshop on Modeling in Software Engineering, MiSE 2014, pp. 25–30. ACM, New York (2014)Google Scholar
  10. 10.
    Bliudze, S., Mavridou, A., Szymanek, R., Zolotukhina, A.: Exogenous coordination of concurrent software components with JavaBIP. Software: Practice and Experience (2017). Early view:
  11. 11.
    Bonakdarpour, B., Bozga, M., Jaber, M., Quilbeuf, J., Sifakis, J.: From high-level component-based models to distributed implementations. In: Proceedings of the Tenth ACM International Conference on Embedded Software, EMSOFT 2010, pp. 209–218. ACM, New York (2010)Google Scholar
  12. 12.
    Bozga, M., Jaber, M., Maris, N., Sifakis, J.: Modeling dynamic architectures using Dy-BIP. In: Gschwind, T., De Paoli, F., Gruhn, V., Book, M. (eds.) SC 2012. LNCS, vol. 7306, pp. 1–16. Springer, Heidelberg (2012). doi: 10.1007/978-3-642-30564-1_1 CrossRefGoogle Scholar
  13. 13.
    Bradbury, J.S., Cordy, J.R., Dingel, J., Wermelinger, M.: A survey of self-management in dynamic software architecture specifications. In: Proceedings of the 1st ACM SIGSOFT Workshop on Self-Managed Systems, WOSS 2004, pp. 28–33. ACM, New York (2004)Google Scholar
  14. 14.
    Bruni, R., Bucchiarone, A., Gnesi, S., Melgratti, H.: Modelling dynamic software architectures using typed graph grammars. Electron. Notes Theoret. Comput. Sci. 213(1), 39–53 (2008)CrossRefzbMATHGoogle Scholar
  15. 15.
    Bruni, R., Melgratti, H., Montanari, U.: Behaviour, interaction and dynamics. In: Iida, S., Meseguer, J., Ogata, K. (eds.) Specification, Algebra, and Software. LNCS, vol. 8373, pp. 382–401. Springer, Heidelberg (2014). doi: 10.1007/978-3-642-54624-2_19 CrossRefGoogle Scholar
  16. 16.
    Cámara, J., Salaün, G., Canal, C.: Composition and run-time adaptation of mismatching behavioural interfaces. J. Univ. Comput. Sci. 14(13), 2182–2211 (2008)zbMATHGoogle Scholar
  17. 17.
    Canal, C., Pimentel, E., Troya, J.M.: Specification and refinement of dynamic software architectures. In: Donohoe, P. (ed.) Software Architecture. ITIFIP, vol. 12, pp. 107–125. Springer, Boston (1999). doi: 10.1007/978-0-387-35563-4_7 CrossRefGoogle Scholar
  18. 18.
    Clarke, D.: A basic logic for reasoning about connector reconfiguration. Fundamenta Informaticae 82(4), 361–390 (2008)MathSciNetzbMATHGoogle Scholar
  19. 19.
    Cuesta, C.E., de la Fuente, P., Barrio-Solárzano, M.: Dynamic coordination architecture through the use of reflection. In: Proceedings of the 2001 ACM Symposium on Applied Computing, pp. 134–140. ACM (2001)Google Scholar
  20. 20.
    Di Giusto, C., Stefani, J.-B.: Revisiting glue expressiveness in component-based systems. In: De Meuter, W., Roman, G.-C. (eds.) COORDINATION 2011. LNCS, vol. 6721, pp. 16–30. Springer, Heidelberg (2011). doi: 10.1007/978-3-642-21464-6_2 CrossRefGoogle Scholar
  21. 21.
    Edelmann, R., Bliudze, S., Sifakis, J., Functional, B.I.P.: Embedding connectors in functional programming languages. J. Logical Algebraic Methods Program. (2017) (Under review)Google Scholar
  22. 22.
    Georgiadis, I., Magee, J., Kramer, J.: Self-organising software architectures for distributed systems. In: Proceedings of the First Workshop on Self-Healing Systems, pp. 33–38. ACM (2002)Google Scholar
  23. 23.
    Henrio, L., Madelaine, E., Zhang, M.: A theory for the composition of concurrent processes. In: Albert, E., Lanese, I. (eds.) FORTE 2016. LNCS, vol. 9688, pp. 175–194. Springer, Cham (2016). doi: 10.1007/978-3-319-39570-8_12 CrossRefGoogle Scholar
  24. 24.
    Hirsch, D., Inverardi, P., Montanari, U.: Graph grammars and constraint solving for software architecture styles. In: Proceedings of the Third International Workshop on Software Architecture, pp. 69–72. ACM (1998)Google Scholar
  25. 25.
    Jackson, D.: Alloy: a lightweight object modelling notation. ACM Trans. Softw. Eng. Methodol. (TOSEM) 11(2), 256–290 (2002)CrossRefGoogle Scholar
  26. 26.
    Koehler, C., Costa, D., Proença, J., Arbab, F.: Reconfiguration of Reo connectors triggered by dataflow. ECEASST 10 (2008)Google Scholar
  27. 27.
    Krause, C., Maraikar, Z., Lazovik, A., Arbab, F.: Modeling dynamic reconfigurations in Reo using high-level replacement systems. Sci. Comput. Program. 76(1), 23–36 (2011)CrossRefzbMATHGoogle Scholar
  28. 28.
    Le Métayer, D.: Describing software architecture styles using graph grammars. IEEE Trans. Softw. Eng. 24(7), 521–533 (1998)CrossRefGoogle Scholar
  29. 29.
    Magee, J., Kramer, J.: Dynamic structure in software architectures. ACM SIGSOFT Softw. Eng. Notes 21(6), 3–14 (1996)CrossRefGoogle Scholar
  30. 30.
    Mavridou, A., Baranov, E., Bliudze, S., Sifakis, J.: Configuration logics: modeling architecture styles. J. Logical Algebraic Methods Program. 86(1), 2–29 (2017)MathSciNetCrossRefzbMATHGoogle Scholar
  31. 31.
    Mavridou, A., Rutz, V., Bliudze, S.: Coordination of dynamic software components with JavaBIP. Technical report (2017),
  32. 32.
    Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, I. Inf. Comput. 100(1), 1–40 (1992)MathSciNetCrossRefzbMATHGoogle Scholar
  33. 33.
    Papadopoulos, G.A., Arbab, F.: Configuration and dynamic reconfiguration of components using the coordination paradigm. Future Gener. Comput. Syst. 17(8), 1023–1038 (2001)CrossRefzbMATHGoogle Scholar
  34. 34.
    Poizat, P., Salaün, G.: Adaptation of open component-based systems. In: Bonsangue, M.M., Johnsen, E.B. (eds.) FMOODS 2007. LNCS, vol. 4468, pp. 141–156. Springer, Heidelberg (2007). doi: 10.1007/978-3-540-72952-5_9 CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Anastasia Mavridou
    • 1
    Email author
  • Valentin Rutz
    • 2
  • Simon Bliudze
    • 3
  1. 1.Institute for Software Integrated SystemsVanderbilt UniversityNashvilleUSA
  2. 2.Microsoft CorporationDublinIreland
  3. 3.Ecole Polytechnique Fédérale de LausanneLausanneSwitzerland

Personalised recommendations