Automated resolution of connector architectures using constraint solving (ARCAS method)

In current software systems, connectors play an important role by encapsulating the communication and coordination logic. Since they share common patterns (elements) depending on characteristics of the connections, the elements can be predefined and reused. A method of connector implementation based on a composition of predefined elements naturally comprises two steps: resolution of the connector architecture, and creation of the actual connector code based on the architecture. However, manual resolution of a connector architecture is very difficult due to the number of factors to be considered. Thus, the challenge is to come up with an automated method, able to address all the important factors. In this paper, we present a method for automated resolution of connector architectures based on constraint solving techniques. We exploit a propositional logic with relational calculus for defining a connector theory, a constraint specification reflecting both the predefined parts and the important resolution factors, and employ a constraint solver to find a suitable connector architecture as a model of the theory. As a proof of the concept, we show how the theory can be captured in the Alloy language and resolved via the Alloy Analyzer.

[1]  Javier Cubo,et al.  Context-Aware Composition and Adaptation based on Model Transformation , 2011, J. Univers. Comput. Sci..

[2]  Paola Inverardi,et al.  Mediating Connector Patterns for Components Interoperability , 2010, ECSA.

[3]  David Garlan,et al.  Proceedings of the first workshop on Self-healing systems , 2002, Fast Software Encryption Workshop.

[4]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[5]  Tomas Bures,et al.  Communication Style Driven Connector Configurations , 2003, ICSE 2003.

[6]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[7]  Valérie Issarny,et al.  Formal Methods for Eternal Networked Software Systems , 2011, Lecture Notes in Computer Science.

[8]  David Garlan,et al.  Analyzing architectural styles with alloy , 2006, ROSATEA '06.

[9]  Mana Taghdiri,et al.  Relational Reasoning via SMT Solving , 2011, FM.

[10]  Jeff Magee,et al.  Self-organising software architectures for distributed systems , 2002, WOSS '02.

[11]  Mana Taghdiri,et al.  Analyzing Alloy Constraints using an SMT Solver: A Case Study , 2010 .

[12]  Gordon S. Blair,et al.  Interoperability in Complex Distributed Systems , 2011, SFM.

[13]  Joseph Sifakis,et al.  The Algebra of Connectors - Structuring Interaction in BIP , 2008, IEEE Trans. Computers.

[14]  Petr Hnetynka,et al.  SOFA 2.0: Balancing Advanced Features in a Hierarchical Component Model , 2006, Fourth International Conference on Software Engineering Research, Management and Applications (SERA'06).

[15]  Anna Philippou,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 2018, Lecture Notes in Computer Science.

[16]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[17]  Klaus Marius Hansen,et al.  Modeling and analyzing architectural change with alloy , 2010, SAC '10.

[18]  Tomáš Bureš,et al.  Generating Connectors for Homogeneous and Heterogeneous Deployment , 2006 .

[19]  Michal Malohlava Interoperable DSL Families for Code Generation , 2011 .

[20]  Philippe Merle,et al.  A formal specification of the Fractal component model in Alloy , 2008 .

[21]  Yérom-David Bromberg,et al.  Middleware-Layer Connector Synthesis: Beyond State of the Art in Middleware Interoperability , 2011, SFM.

[22]  Indrakshi Ray,et al.  On challenges of model transformation from UML to Alloy , 2008, Software & Systems Modeling.

[23]  Niklas Sörensson,et al.  Translating Pseudo-Boolean Constraints into SAT , 2006, J. Satisf. Boolean Model. Comput..

[24]  Ivica Crnkovic,et al.  Building Reliable Component-Based Software Systems , 2002 .

[25]  Emina Torlak,et al.  A constraint solver for software engineering: finding models and cores of large relational specifications , 2009 .

[26]  Tomás Bures,et al.  Generating connectors for heterogeneous deployment , 2005, SEM '05.

[27]  Valérie Issarny,et al.  COCOA: COnversation-based service COmposition in pervAsive computing environments with QoS support , 2007, J. Syst. Softw..

[28]  Sébastien Gérard,et al.  Generating execution infrastructures for component-oriented specifications with a model driven toolchain: a case study for MARTE's GCM and real-time annotations , 2009, GPCE '09.

[29]  Heiko Koziolek,et al.  CoCoME - The Common Component Modeling Example , 2007, CoCoME.

[30]  Daniel Le Berre,et al.  On SAT Technologies for Dependency Management and Beyond , 2008, SPLC.

[31]  Sébastien Gérard,et al.  Enhancing Interaction Support in the CORBA Component Model , 2005, IESS.

[32]  Paola Inverardi,et al.  Application-Layer Connector Synthesis , 2011, SFM.

[33]  Nenad Medvidovic,et al.  Towards a taxonomy of software connectors , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[34]  Valérie Issarny,et al.  CONNECT Challenges: Towards Emergent Connectors for Eternal Networked Systems , 2009, 2009 14th IEEE International Conference on Engineering of Complex Computer Systems.

[35]  Lubomír Bulej,et al.  Addressing Heterogeneity in OMG D & C-based Deployment , 2004 .

[36]  W. Keith Edwards,et al.  A Bridging Framework for Universal Interoperability in Pervasive Systems , 2006, 26th IEEE International Conference on Distributed Computing Systems (ICDCS'06).

[37]  Daniel Jackson,et al.  Alloy: a lightweight object modelling notation , 2002, TSEM.

[38]  Kevin J. Sullivan,et al.  COM revisited: tool-assisted modelling of an architectural framework , 2000, SIGSOFT '00/FSE-8.

[39]  William R. Cook,et al.  Safe composition of product lines , 2007, GPCE '07.

[40]  Philippe Merle,et al.  Specifying Self-configurable Component-Based Systems with FracToy , 2010, ASM.