Composition of Software Architectures Christos Kloukinas
Total Page:16
File Type:pdf, Size:1020Kb
Composition of Software Architectures Christos Kloukinas To cite this version: Christos Kloukinas. Composition of Software Architectures. Computer Science [cs]. Université Rennes 1, 2002. English. tel-00469412 HAL Id: tel-00469412 https://tel.archives-ouvertes.fr/tel-00469412 Submitted on 1 Apr 2010 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Composition of Software Architectures - Ph.D. Thesis - - Presented in front of the University of Rennes I, France - - English Version - Christos Kloukinas Jury Members : Jean-Pierre Banâtre Jacky Estublier Cliff Jones Valérie Issarny Nicole Lévy Joseph Sifakis February 12, 2002 Résumé Les systèmes informatiques deviennent de plus en plus complexes et doivent offrir un nombre croissant de propriétés non fonctionnelles, comme la fiabi- lité, la disponibilité, la sécurité, etc.. De telles propriétés sont habituellement fournies au moyen d’un intergiciel qui se situe entre le matériel (et le sys- tème d’exploitation) et le niveau applicatif, masquant ainsi les spécificités du système sous-jacent et permettant à des applications d’être utilisées avec dif- férentes infrastructures. Cependant, à mesure que les exigences de propriétés non fonctionnelles augmentent, les architectes système se trouvent confron- tés au cas où aucun intergiciel disponible ne fournit toutes les propriétés non fonctionnelles visées. Ils doivent alors développer l’infrastructure intergicielle nécessaire à partir de rien, voire essayer de réutiliser les multiples infrastruc- tures intergicielles existantes, où chacune fournit certaines des propriétés exigées. Dans cette thèse, nous présentons une méthode pour composer automati- quement des architectures d’intergiciels, afin d’obtenir une architecture qui fournit les propriétés non fonctionnelles visées. Pour arriver à l’automatisa- tion de la composition, nous montrons d’abord comment on peut reformuler ce problème sous la forme d’un problème de model-checking. Cette reformu- lation donne une définition formelle au problème de la composition et nous permet de réutiliser les méthodes et outils qui ont été développés pour le model-checking. Nous présentons ensuite des améliorations à notre méthode de base, utilisées pour éviter le problème d’explosion d’états dans le cas de la composition d’architectures de grande taille. Nous montrons comment il est possible d’exploiter l’information structurelle, présente dans les architec- tures d’intergiciels que nous souhaitons composer, afin de réduire l’espace de recherche analysé. Ceci nous permet d’obtenir une méthode pour composer les architectures d’intergiciels qui peut être automatisée et donc utilisée en pratique. Nous proposons ainsi une solution à l’analyse systématique de diffé- rentes compositions et offrons un outil pour aider la construction de systèmes de qualité. ii Résumé Abstract Computer systems are becoming more and more complex and need to pro- vide an ever increasing number of non-functional properties, such as reli- ability, availability, security, etc.. Such non-functional properties are usually provided to a system by general mechanisms called middleware. They are thus called, to illustrate that they are supposed to be used between the hardware (and operating system) and the application software levels, masking therefore the differences of the particular underlying system and allowing applications to be used with different underlying infrastructures. However, as the need for more non-functional properties increases, system architects are soon faced with the case where there is no available middleware that will provide all the required non-functional properties. Then, they either have to develop the needed middleware infrastructure from scratch or try to reuse multiple exist- ing middleware infrastructures, where each one provides some of the required properties. In this thesis, we present a method for automatically composing middle- ware architectures, in order to obtain an architecture which provides certain properties. To arrive at the automation of composition, we first show how one can reformulate this problem into a model-checking problem. This reformula- tion gives a formal definition to the composition problem and allows us to reuse the methods and tools which have been developed for model-checking. Then, we present subsequent refinements to our basic method, used for avoiding the state-explosion problem for architectures of a larger size. To avoid state- explosion, we show how it is possible to retrieve the structural information, present in the initial middleware architectures we wish to compose, and ex- ploit it for constraining the search-space we have to investigate. Additional information present in the initial architectures constrains even further the search-space, thus allowing us to obtain a method for composing middleware architectures which can be used in practise. In this way, we facilitate the sys- tematic study and analysis of the different compositions and provide a method for constructing quality systems. iv Abstract Στους γονείς µου Κωνσταντίνο & Νέλλη, την αδερφή µου Μαριάννα & σε όλους τους δασκάλους που είχα. To my parents Konstantinos & Nelly, to my sister Marianna & to all the teachers I had. «Αλησµονώ και χαίροµαι» (Πολυφωνικό της Ηπείρου) Αλησµονώ και χαίροµαι, ϑυµιούµαι και λυπιούµαι, ϑυµήθηκα την ξενιτιά και ϑέλω να πηγαίνω. - Σήκου µάνα µ’ και ύµωσε καθάριο παξιµάδι. Με πόνους άζει το νερό, µε δάκρυα το υµώνει και µε πολύ παράπονο άζει ϕωτιά στο ϕούρνο. - ΄Αργησε ϕούρε να καείς κι εσύ ψωµί να γένεις, για να περάσει ο κερατζής κι ο γιός µου ν’ αποµείνει. Acknowledgements First of all I would like to thank Prof. Jean-Pierre Banâtre from the Uni- versité de Rennes I, Dr. Jacky Estublier from CNRS, Prof. Cliff Jones from the University of Newcastle upon Tyne, Prof. Nicole Lévy from the Université de Versailles St-Quentin en Yvelines, and, Dr. Joseph Sifakis from CNRS, for honouring me by accepting to be members of my thesis committee and for their invaluable comments on my work and its perspectives. This work would have not been possible without the help, guidance and support of my advisor Dr. Valérie Issarny. I could never thank her enough for these three and a half years that I have passed working with her. I would also like to thank the members of the Solidor INRIA research project, both at Rennes where I started and at Rocquencourt. Among these, I wish to thank three persons in particular: Dr. Michel Banâtre, the leader of the Solidor project who fostered a friendly and inspiring working environment, Malika Boukenafed who was kind enough to help me correct the French part of my thesis and Teresa Higuera for all the good time we had while sharing an office and above all her patience and good heart. It was a pleasure and an honour to have worked with them all; I wish them all the best. This work was done while I was at INRIA, without the financial and tech- nical support of which it would have been impossible. I would also like to express my gratitude for my dear friends, Dr. Apostolos Zarras, Dr. Titos Saridakis and Dr. Apostolos Kountouris. They are the best friends a person could wish for. At this moment I would also like to express my gratitude to all the teachers I had. Without them and their help I could not have reached here. Finally, I would like to thank my parents, Konstantinos & Nelly, as well as, my sister Marianna, for their love and continuous support through all these years. viii Acknowledgements Contents Résumé i Abstract iii Acknowledgements vii Contents xii List of Figures xiii List of Tables xv List of Listings xvii I Introduction 1 I.1 Component-Based Software Engineering . 5 I.2 Composing Software Architectures . 7 I.3 Document Structure . 9 x Contents II Basic Concepts of Software Architectures 11 II.1 General Notions . 11 II.2 Notions Specific to Software Architectures . 13 II.2.1 Middleware Architectures . 16 II.3 Representation of Software Architectures . 18 II.3.1 Overview of Existing ADLs . 18 II.3.1.1 Connectors as First Class Architectural Elements ............................ 19 II.3.1.2 Underlying Formalism for an ADL . 20 II.3.2 Model Checkers . 21 II.3.3 An ADL for Composing Middleware Architectures . 23 II.3.3.1 A Graphical ADL for Middleware Architectures 27 II.4 Composition of Middleware Architectures . 34 III Related Work 39 III.1 Specifications . 39 III.2 Composition and Software Architectures . 41 III.2.1 Vertical/Horizontal Composition . 42 III.2.2 Feature Composition in Telephone Systems . 44 III.2.3 Architectural Views . 46 III.2.3.1 Inconsistent Views . 49 III.2.4 Architectural Unification . 51 III.2.5 Connector Transformations . 52 III.2.5.1 Aspect-Oriented Programming . 53 III.3 Composition of Modules . 54 III.3.1 Composition of Linear Architectures . 55 IV Composition as Model Checking 57 IV.1 Composing Middleware Architectures . 57 IV.1.1 Searching for Valid Compositions . 60 IV.2 Composition of Architectures as a Model Checking Problem . 63 Contents xi IV.2.1 Composing with the Spin Model Checker . 64 IV.2.1.1 Composition in Two Stages . 64 IV.2.1.2 The Binder ..................... 65 IV.3 Assessment . 67 V Constraining the Search Space 71 V.1 Constraining Through Structure . 71 V.1.1 Formal Definition of Structural Constraints . 72 V.1.1.1 Constraints for Linear Architectures . 72 V.1.1.2 Constraints for Non-Linear Architectures . 75 V.2 Constraints and Model Checking . 78 V.2.1 Transforming Structural Constraints to a Compatibility Relation . 78 V.2.2 An Example of Composing Architectures - I .