Canevas de développement agile pour l'évolution fiable de systèmes logiciels à composants et orientés services

Les systemes logiciels modernes se caracterisent par un besoin d'evolutions perpetuelles et rapides, comme par exemple dans le monde de l'informatique mobile. Pour faciliter le developpe\-ment et l'evolution rapide de systemes complexes, des approches de genie logiciel ont ete proposees, telles que les architectures logicielles et la methode de conception agile. Neanmoins, les solutions actuelles offrent peu de support pour permettre l'evolution fiable d'un systeme, c'est-a-dire permettre sa modification tout en garantissant le respect de ses exigences de qualites de service et de bon fonctionnement global. La contribution de cette these est CALICO, un canevas de developpement agile pour la conception et l'evolution fiable de systemes logiciels a composants et orientes services. Le developpement agile repose sur l'utilisation d'un cycle de developpement iteratif et incremental qui permet a l'architecte d'iterer entre les etapes de conception de l'architecture et de debogage du logiciel dans son environnement d'execution. A chaque iteration du cycle, l'architecte peut faire evoluer son logiciel et fiabiliser ses evolutions grâce a l'execution d'analyses statiques et dynamiques complementaires. Ainsi, lors de la conception et de l'evolution d'un systeme, l'architecte dispose d'un ensemble de metamodeles pour specifier la structure de l'architecture de son logiciel et ses diverses exigences de qualite de services. Lors du deploiement, CALICO utilise les modeles specifies pour instancier le systeme sur la plate-forme d'execution cible et les garde synchronises avec le logiciel lors de son execution. De cette facon, l'architecte dispose toujours d'une vue conceptuelle qui lui permet de raisonner sur les proprietes critiques de son logiciel lors d'une evolution. De plus, pour fiabiliser ces evolutions, CALICO offre un cadre federateur qui autorise la reutilisation de nombreux outils d'analyse statique des architectures logicielles et de debogage dynamique qui etaient jusqu'alors disperses dans differentes plates-formes existantes. Ainsi, chaque evolution peut etre analysee statiquement sur la vue conceptuelle avant d'etre propagee au systeme logiciel. Les analyses dynamiques reposent quant a elles sur des valeurs disponibles a l'execution. La capture de ces valeurs est effectuee grâce a une instrumentation automatique du systeme logiciel. CALICO permet donc de fiabiliser les evolutions meme si les plates-formes d'execution sous-jacentes ne le proposent pas nativement. Notre contribution se concretise par une implementation multi plates-formes. La version actuelle prend en charge quatre plates-formes a composants et une plate-forme a services. Par ailleurs, les tests de performances que nous avons realises demontrent que CALICO est utilisable pour la conception et l'evolution fiable de larges applications jusqu'a 10000 composants et services, ce qui correspond a la montee en charge maximale de la plupart des plates-formes d'execution.

[1]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[2]  Meir M. Lehman,et al.  Program evolution: processes of software change , 1985 .

[3]  Julia L. Lawall,et al.  Proceedings of the 2002 Usenix Annual Technical Conference Think: a Software Framework for Component-based Operating System Kernels , 2022 .

[4]  Klara Nahrstedt,et al.  Dynamic reconfiguration for complex multimedia applications , 1999, Proceedings IEEE International Conference on Multimedia Computing and Systems.

[5]  Vijay Karamcheti,et al.  Optimal resource-aware deployment planning for component-based distributed applications , 2004, Proceedings. 13th IEEE International Symposium on High performance Distributed Computing, 2004..

[6]  Thaís Vasconcelos Batista,et al.  Managing Dynamic Reconfiguration in Component-Based Systems , 2005, EWSA.

[7]  Kevin Lee,et al.  OpenCOM v2: A Component Model for Building Systems Software , 2004 .

[8]  Olivier Barais,et al.  Safe integration of new concerns in a software architecture , 2006, 13th Annual IEEE International Symposium and Workshop on Engineering of Computer-Based Systems (ECBS'06).

[9]  K. Beck,et al.  Extreme Programming Explained , 2002 .

[10]  Juliet Sutherland,et al.  SCRUM: An extension pattern language for hyper productive software development , 2000 .

[11]  Michael Goldsmith,et al.  Assumption-Commitment Support for CSP Model Checking , 2007, Electron. Notes Theor. Comput. Sci..

[12]  Karl M. Göschka,et al.  Agile software development for component based software engineering , 2003, OOPSLA '03.

[13]  Petr Tuma,et al.  Distributed Component System Based on Architecture Description: The SOFA Experience , 2002, OTM.

[14]  Frank Eliassen,et al.  MUSIC: Middleware Support for Self-Adaptation in Ubiquitous and Service-Oriented Environments , 2009, Software Engineering for Self-Adaptive Systems.

[15]  Romain Rouvoy,et al.  Software Architecture Patterns for a Context-Processing Middleware Framework , 2008, IEEE Distributed Systems Online.

[16]  Wouter Joosen,et al.  Isolating Process-Level Concerns Using Padus , 2006, Business Process Management.

[17]  Nicolas Pessemier Unification des approches par aspects et à composants , 2007 .

[18]  Jérémy Dubus,et al.  Une démarche orientée modèle pour le déploiement de systèmes en environnements ouverts distribués. (A Model-Driven Approach for Deployment in Open Distributed Systems) , 2008 .

[19]  Aniruddha S. Gokhale,et al.  CQML: Aspect-Oriented Modeling for Modularizing and Weaving QoS Concerns in Component-Based Systems , 2009, 2009 16th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems.

[20]  Richard N. Taylor,et al.  A highly-extensible, XML-based architecture description language , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[21]  Antoine Beugnard,et al.  How to Implement Software Connectors? A Reusable, Abstract and Adaptable Connector , 2005, DAIS.

[22]  Ludovic Henrio,et al.  Behavioural models for distributed Fractal components , 2009, Ann. des Télécommunications.

[23]  Jean-Louis Pazat,et al.  Performance and Practicability of Dynamic Adaptation for Parallel Computing , 2006, 2006 15th IEEE International Conference on High Performance Distributed Computing.

[24]  Naranker Dulay,et al.  Specifying Distributed Software Architectures , 1995, ESEC.

[25]  Jean-Bernard Stefani,et al.  Building Reconfigurable Component-Based OS with THINK , 2006, 32nd EUROMICRO Conference on Software Engineering and Advanced Applications (EUROMICRO'06).

[26]  Bradley R. Schmerl,et al.  AcmeStudio: supporting style-centered architecture development , 2004, Proceedings. 26th International Conference on Software Engineering.

[27]  Jacques Klein,et al.  Semantic-based weaving of scenarios , 2006, AOSD.

[28]  Pierre-Charles David,et al.  Experience with Safe Dynamic Reconfigurations in Component-Based Embedded Systems , 2007, CBSE.

[29]  Luc Fabresse Du découpage à l'assemblage non anticipé de composants : Conception et mise en oeuvre du langage à composants Scl , 2007 .

[30]  Antoine Beugnard,et al.  Towards context-aware components , 2009, CASTA '09.

[31]  Kees M. van Hee,et al.  An SOA-based architecture framework , 2006, Int. J. Bus. Process. Integr. Manag..

[32]  Philippe Collet,et al.  Efficient Implementation Techniques for Advanced Assertion Languages , 1999, Obj. Logiciel Base données Réseaux.

[33]  Didier Donsez,et al.  Towards a Reference Model for Implementing the Fractal Specifications for Java and the .NET Platform , 2006 .

[34]  Robert J. Allen A formal approach to software architecture , 1997 .

[35]  Salah Sadou,et al.  A Component Selection Framework for COTS Libraries , 2008, CBSE.

[36]  Betty H. C. Cheng,et al.  Model-based development of dynamically adaptive software , 2006, ICSE.

[37]  Valerio Schiavoni,et al.  Reconfigurable SCA Applications with the FraSCAti Platform , 2009, 2009 IEEE International Conference on Services Computing.

[38]  Frantisek Plasil,et al.  Behavior Protocols for Software Components , 2002, IEEE Trans. Software Eng..

[39]  Carlos E. Rubio-Medrano,et al.  Architectural Assertions: Checking Architectural Constraints at Run-Time , 2007, Software Engineering Research and Practice.

[40]  Renaud Pawlak Spoon: Compile-time Annotation Processing for Middleware , 2006, IEEE Distributed Systems Online.

[41]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[42]  Jeff Magee,et al.  Compatibility verification for Web service choreography , 2004 .

[43]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[44]  Luciano Baresi,et al.  Towards a unified framework for the monitoring and recovery of BPEL processes , 2008, TAV-WEB '08.

[45]  John A. Zinky,et al.  Using QDL to specify QoS aware distributed (QuO) application configuration , 2000, Proceedings Third IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2000) (Cat. No. PR00607).

[46]  Pekka Abrahamsson,et al.  New directions on agile methods: a comparative analysis , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[47]  Wil M. P. van der Aalst,et al.  Translating BPMN to BPEL , 2006 .

[48]  Charles Consel,et al.  A Domain Specific Language for Video Device Drivers: From Design to Implementation , 1997, DSL.

[49]  Anne-Françoise Le Meur,et al.  Fiesta: a Generic Framework for Integrating New Functionalities into Software Architectures , 2007, Int. J. Cooperative Inf. Syst..

[50]  Gary A. Kildall,et al.  A unified approach to global program optimization , 1973, POPL.

[51]  Marianne Huchard,et al.  Foundations of a simple and unified component-oriented language , 2008, Comput. Lang. Syst. Struct..

[52]  Tariq M. King,et al.  A reusable object-oriented design to support self-testable autonomic software , 2008, SAC '08.

[53]  Romain Rouvoy Une démarche à granularité extrêmement fine pour la construction de canevas intergiciels hautement adaptables : application aux services de transactions. (A extremely fine-grained approach to build highly adaptable middleware frameworks: application to transaction services) , 2006 .

[54]  Jeffrey O. Kephart,et al.  Research challenges of autonomic computing , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[55]  Benoit Baudry,et al.  Exploring the Relationship between Model Composition and Model Transformation , 2005 .

[56]  Emmanuel Cecchet,et al.  Implementing Probes for J2EE Cluster Monitoring , 2005, Stud. Inform. Univ..

[57]  Ernest Teniente López,et al.  Incremental evaluation of OCL constraints , 2005 .

[58]  Thomas Ledoux,et al.  WildCAT: a generic framework for context-aware applications , 2005, MPAC '05.

[59]  Sigrid Eldh,et al.  Certified Tester Foundation Level Syllabus , 2010 .

[60]  W.M.P. van der Aalst,et al.  Analyzing BPEL processes using Petri nets , 2005 .

[61]  Albert L. Baker,et al.  Preliminary design of JML: a behavioral interface specification language for java , 2006, SOEN.

[62]  F. Allen,et al.  Control flow analysis , 1970, Symposium on Compiler Optimization.

[63]  Jordi Cabot,et al.  Incremental integrity checking of UML/OCL conceptual schemas , 2009, J. Syst. Softw..

[64]  Lidia Fuentes,et al.  DAOP-ADL: An Architecture Description Language for Dynamic Component and Aspect-Based Development , 2003, GPCE.

[65]  Thierry Coupaye,et al.  COMPONENTS AND SERVICES: A MARRIAGE OF REASON , 2007 .

[66]  Martin Gogolla,et al.  A Benchmark for OCL Engine Accuracy, Determinateness, and Efficiency , 2008, MoDELS.

[67]  Philippe Collet,et al.  Composite Contract Enforcement in Hierarchical Component Systems , 2007, SC@ETAPS.

[68]  Glêdson Elias da Silveira,et al.  A Search Service for Software Components Based on a Semi-Structured Data Representation Model , 2009, 2009 Sixth International Conference on Information Technology: New Generations.

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

[70]  David Garlan,et al.  Acme: architectural description of component-based systems , 2000 .

[71]  Olivier Dalle,et al.  Component-based Discrete Event Simulation Using the Fractal Component Model , 2007 .

[72]  Yushun Fan,et al.  TOWARDS FORMAL VERIFICATION OF WEB SERVICE COMPOSITION , 2005 .

[73]  Victor R. Basili,et al.  Iterative and incremental developments. a brief history , 2003, Computer.

[74]  Magnus Larsson,et al.  Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles , 2007, 33rd EUROMICRO Conference on Software Engineering and Advanced Applications (EUROMICRO 2007).

[75]  Jeff Magee,et al.  Behavioral analysis of software architectures using LTSA , 1999, ICSE '99.

[76]  Jacques Klein,et al.  Weaving Multiple Aspects in Sequence Diagrams , 2007, LNCS Trans. Aspect Oriented Softw. Dev..

[77]  Amit P. Sheth,et al.  Modeling Quality of Service for Workflows and Web Service Processes , 2002 .

[78]  W. W. Royce,et al.  Managing the development of large software systems , 1970 .

[79]  Takoua Abdellatif Enhancing the management of a J2EE application server using a component-based architecture , 2005 .

[80]  Olivier Barais Construire et maîtriser l'évolution d'une architecture logicielle à base de composants , 2005 .

[81]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[82]  Richard F. Paige,et al.  Model comparison: a foundation for model composition and model transformation testing , 2006, GaMMa '06.

[83]  Norman W. Paton,et al.  Active Rules in Database Systems , 1998, Monographs in Computer Science.

[84]  Jan Friso Groote,et al.  Transformation of BPMN Models for Behaviour Analysis , 2007, MSVVEIS.

[85]  Renaud Pawlak Spoon: annotation-driven program transformation --- the AOP case , 2005, AOMD '05.

[86]  Marek J. Sergot,et al.  A logic-based calculus of events , 1989, New Generation Computing.

[87]  Roger Riggs,et al.  A Distributed Object Model for the Java System , 1996, Comput. Syst..

[88]  Mira Mezini,et al.  AO4BPEL: An Aspect-oriented Extension to BPEL , 2007, World Wide Web.

[89]  Philippe Merle,et al.  OpenCCM : une infrastructure a composants pour le deploiement d'applications a base de composants CORBA , 2004, ArXiv.

[90]  Schahram Dustdar,et al.  Non-intrusive monitoring and service adaptation for WS-BPEL , 2008, WWW.

[91]  Pierre-Charles David,et al.  Développement de composants Fractal adaptatifs : un langage dédié à l'aspect d'adaptation , 2005 .

[92]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[93]  van der Wmp Wil Aalst,et al.  Workflow control-flow patterns : a revised view , 2006 .

[94]  Robert B. France,et al.  Directives for Composing Aspect-Oriented Design Class Models , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[95]  Brice Morin,et al.  Taming Dynamically Adaptive Systems using models and aspects , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[96]  Jean-Marc Jézéquel,et al.  Making Components Contract Aware , 1999, Computer.

[97]  Calton Pu,et al.  Microlanguages for Operating System Specialization , 1997 .

[98]  Douglas C. Schmidt,et al.  Automating deployment planning with an aspect weaver , 2009, IET Softw..