Formalizing the Asynchronous Evolution of Architecture Patterns Workshop on Self-Organizing Software Architectures (SOAR’09) September 14 th 2009 – Cambrige.

Slides:



Advertisements
Similar presentations
Jeremy S. Bradbury, James R. Cordy, Juergen Dingel, Michel Wermelinger
Advertisements

3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre 2006 CASE – Libera Università di Bolzano-Bozen RCOST – Università
TU e technische universiteit eindhoven / department of mathematics and computer science Modeling User Input and Hypermedia Dynamics in Hera Databases and.
Design Issues for General-Purpose Adaptive Hypermedia Systems Hongjing Wu, Erik de Kort, Paul De Bra Eindhoven University of Technology The Netherlands.
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Development of a Formalism for Modelling and Analysis of Dynamic Reconfiguration of Dependable Real-Time Systems: A Technical Diary Anirban Bhattacharyya.
Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
An Aspect-Oriented Approach For Web Application Access Control Presented by: Mohamed Hassan Carleton University Carleton University
Efficient Reachability Analysis for Verification of Asynchronous Systems Nishant Sinha.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
A. Bucchiarone / Pisa/ 30 Jan 2007 Dynamic Software Architectures for Global Computing Antonio Bucchiarone PhD Student – IMT Graduate School Piazza S.
A. Bucchiarone / Dagstuhl/ 2007 APL Antonio Bucchiarone PhD Student – IMT Graduate School Piazza S. Ponziano, Lucca (Italy)
Irina Rychkova. 9/20061 Systemic approach towards model definition Model transformation semantics.
Jiannong IMC Lab - Department of Computing, Hong Kong Polytechnic Univ. Slide 1 Architecture Description of Distributed Systems using UML and XML.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
1 Synchronization strategies for global computing models Ivan Lanese Computer Science Department University of Bologna.
Modeling State-Dependent Objects Using Colored Petri Nets
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
IST Hard Real-time CORBA HRTC WP4 / M. Rodríguez / Lund 16 September 2003 WP4: Process Control Testbed Universidad Politécnica de Madrid.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Community Manager A Dynamic Collaboration Solution on Heterogeneous Environment Hyeonsook Kim  2006 CUS. All rights reserved.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
4.4 Naming And Directory Services Lakshmi Narayana Gupta Kollepara 09/20/2009 CSC-8320.
1 Ivano Malavolta, University of L’aquila, Computer Science Department Ivano Malavolta DUALLy: an Eclipse platform for architectural languages interoperability.
McGill University Proposal Exam School of Computer Science Ph.D. Candidate in the Modelling, Simulation and Design Lab Eugene Syriani.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
Romaric GUILLERM Hamid DEMMOU LAAS-CNRS Nabil SADOU SUPELEC/IETR.
A Survey of Software Refactoring Tom Mens, Tom Tourwé
TC Methodology Massimo Cossentino (Italian National Research Council) Radovan Cervenka (Whitestein Technologies)
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Division of IT Convergence Engineering Towards Unified Management A Common Approach for Telecommunication and Enterprise Usage Sung-Su Kim, Jae Yoon Chung,
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
The Grid Component Model: an Overview “Proposal for a Grid Component Model” DPM02 “Basic Features of the Grid Component Model (assessed)” -- DPM04 CoreGrid.
Dynamic Choreographies Safe Runtime Updates of Distributed Applications Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Joint.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
The Grid Component Model and its Implementation in ProActive CoreGrid Network of Excellence, Institute on Programming Models D.PM02 “Proposal for a Grid.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
SOFTWARE DESIGN.
JCMP: Linking Architecture with Component Building Guoqing Xu, Zongyuan Yang and Haitao Huang Software Engineering Lab, East China Normal University SACT-01,
A. Bucchiarone, Juan P. Galeotti / GT-VMT’08 Dynamic Software Architectures Verification using DynAlloy Antonio Bucchiarone IMT Graduate School of Lucca,
1 A Model-Driven Approach For Information System Migration Raymonde Le Delliou 1, Nicolas Ploquin 2, Mariano Belaunde 3, Reda Bendraou 4, Louis Féraud.
Illustrations and Answers for TDT4252 exam, June
1 LiSyC ENSIETA/DTN 02/04/2008 AADL execution semantics transformation for formal verification Joel Champeau, Thomas Abdoul, Pierre Yves Pillain, Philippe.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Lyra – A service-oriented and component-based method for the development of communicating systems (by Sari Leppänen, Nokia/NRC) Traditionally, the design,
C. André, J. Boucaron, A. Coadou, J. DeAntoni,
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
A Component Platform for Experimenting with Autonomic Composition A component framework for supporting composition of autonomic services and bio-inspired.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Requirements Engineering-Based Conceptual Modelling From: Requirements Engineering E. Insfran, O. Pastor and R. Wieringa Presented by Chin-Yi Tsai.
Enabling Self-management of Component-based High-performance Scientific Applications Hua (Maria) Liu and Manish Parashar The Applied Software Systems Laboratory.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Modeling the ODP Computational Viewpoint with UML 2.0: The Templeman Library Example José Raúl Romero, Antonio Vallecillo Universidad de Málaga, Spain.
Open Incremental Model Checking (OIMC) and the Role of Contracts Model-Based Programming and Verification.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Design-Directed Programming Martin Rinard Daniel Jackson MIT Laboratory for Computer Science.
Basic Concepts and Definitions
A UML-Based Pattern Specification Technique Presented by Chin-Yi Tsai IEEE TRANSACTION ON SOFTWARE ENGINEERING, VOL. 30, NO. 3, MARCH 2004 Robert B. France,
Systems Architectures System Integration & Architecture.
Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Security analysis of COM with Alloy
Gestione di Service Level Agreements (SLA) in sistemi Grid
Architecture Description Languages
The Grid Component Model and its Implementation in ProActive
Presentation transcript:

Formalizing the Asynchronous Evolution of Architecture Patterns Workshop on Self-Organizing Software Architectures (SOAR’09) September 14 th 2009 – Cambrige (Uk) Cristóbal Costa-Soria Universidad Politécnica de Valencia Reiko Heckel University of Leicester

Outline  Introduction  Example: PRISMA ADL  Asynchronous Evolution of Types  Conclusions

Motivation  Need for dealing with unanticipated changes  Self-Adaptive Systems –Governed by centralized architecture specifications –Introduce a new architectural specification  Self-Organized Systems –Governed by local decisions based on the interactions among the different nodes –Modify the criteria for local decisions, introduce agreements, …  Dynamic evolution need to deal with –A distributed environment which cannot be stopped and has some autonomous subsystems  Asynchronous Evolution of Types

Example: PRISMA ADL  PRISMA ADL –Symmetrical Aspect-Oriented ADL –Formal language (modal logic of actions and π-calculus) –Supported by a MDD tool which automatically generates code  System: Primitive to define a composite comp. –Concept for defining hierarchical architectures –Type specification: architecture pattern –Instances: architecture configurations 4  Elements of a System Architecture Pattern –Architectural Elements (AE): components, systems –Attachments: Connections among AE –System ports: to communicate with the environment –Bindings: connect ports to internal AE

Asynchronous Evolution  (Dynamic) Asynchronous Evolution of Types –A type can be evolved several times while its instances are still evolving to a previous version –Instances can evolve independently of each other Sys_S A p B 1..n n 1..1 Att-1 Bin-1 v0v0 Sys_S A p C 1..n n 1..1 A-C Bin-1 v1v1 Sys_S A p C 1..n n 1..1 A-C Bin-1 D 1..1 C-D 1..1 v2v2 S1 : Sys A1B1 S2 : Sys A6 B6 B5 Instance-of S1 : Sys A1 C3 time t5t5 t1t1 t3t3 S1 : Sys A1C3 t8t8 D4 S2 : Sys A6 C6 t6t6 instances types (versions)

Asynchronous Evolution  Additional challenges wrt Synchronous Evolution –Type Conformance –Version Management –Order of evolution processes –Coherence of interactions Sys_S A p B 1..n n 1..1 Att-1 Bin-1 v0v0 Sys_S A p C 1..n n 1..1 A-C Bin-1 v1v1 Sys_S A p C 1..n n 1..1 A-C Bin-1 D 1..1 C-D 1..1 v2v2 S1 : Sys A1B1 S2 : Sys A6 B6 B5 Instance-of S1 : Sys A1 C3 time t5t5 t1t1 t3t3 S1 : Sys A1C3 t8t8 D4 S2 : Sys A6 C6 t6t6 instances types (versions)

Async. Evolution: Evolution Process  New type specification  New Evolution Process  Evolution Process: set of evolution operations that changes the previous type specification –Additions, removals or updates  Each set of evolution operations is propagated to each instance –which applies it independently t1t1 t5t5 AddArchitecturalElement(‘C’,CType,1,-1); AddAttachmentType(‘A-C’, ’A’, ’pA’, 1,1, ’C’, ’pC1’, 1, -1); RemoveAttachmentType(‘A-B’); RemoveArchitecturalElement(‘B’); AddArchitecturalElement(‘D’,DType,1,1); AddAttachmentType(‘C-D’, ’C’, ’pC2’,1, -1, ’D’, ’pD’, 1, 1); Sys_S A p B 1..n n 1..1 Att-1 Bin-1 v0v0 Sys_S A p C 1..n n 1..1 A-C Bin-1 v1v1 Sys_S A p C 1..n n 1..1 A-C Bin-1 D 1..1 C-D 1..1 v2v2

Formalization of the semantics  Typed Graph Transformations to describe the observed behaviour of each evolution operation –Type Graph: PRISMA metamodel (M2) extended with evolution concepts –Instance Graph: A system type (M1) + its instances (M0) –Graph transformation rules: change the instance graph (i.e. affect both type-level and instance-level)  Transformation rules –Describe evolution operations (type-level) or reconfiguration operations (instance-level) –Define preconditions and postconditions –Asynchronously executed –Self-contained –Defined in an architecture-based concrete syntax

Asynchronous Evolution: Type-Level  Evolution operations are directly concerned with changes at the type-level –E.g. AddArchitecturalElement  Each change is stored in the type specification together with the related version –Evolution Tags 9 Sys_S A p B 1..n n 1..1 Att-1 Bin-1 CD 1..n1..1 A-C C-D n t1t1 t5t5 Sys_S A 1..1 B 1..n n 1..1 Att-1 Bin-1 v0v0 p1 Sys_S A p C 1..n n 1..1 A-C Bin-1 v1v1 Sys_S A p C 1..n n 1..1 A-C Bin-1 D 1..1 C-D 1..1 v2v2

Asynchronous Evolution: Type-Level  Evolution Tags –Type conformance: instances can converge gradually to the next version –Version management: each version can be obtained from the tagged specification –Order of evolutions: each instance only takes into account the evolution tags driving to the next version  Example: R1 – AddArchitecturalElement –Integrates a new AE type and adds a new evolution tag (type-level) 10

Async. Evolution: Instance-Level  Reconfiguration operations are concerned with changes at the instance-level –E.g. CreateArchitecturalElement  A reconfiguration operation can be triggered: –by the system instance itself –as a consequence of a change at the type-level  Changes are constrained by the type level: –Properties defined in the specification (e.g. cardinality) –Valid types and connections An instance cannot be created if it has not been defined!  If there are pending evolutions, reconfigurations must converge to the next version –E.g. Cannot create instances of a type that is going to be removed in the next version Sys_S A 1..1 B 1..n n 1..1 Att-1 Bin-1 p1 Sys_S A p C 1..n n 1..1 A-C Bin-1

Async. Evolution: Instance-Level  Example: R2 – CreateArchitecturalElement –The type to instantiate must remain defined until the next version If the type has been removed, it has been done in future versions (> S1.version + 1)

Async. Evolution: Instance-Level  An instance completes an evolution operation when it has integrated all the changes of this operation –The Link pending_evol is removed from this instance  An instance finishes an evolution process when all the evolution operations are completed –Then, the instance will start to converge to version+1

Asynchronous Evolution: Coherence of Interactions  We are assuming conservative changes  Non-conservative changes will impact the context of each system instance  Current interactions are not affected –They are finished safely: Quiescence is a precondition of deletion operations  Future interactions with –Signature mismatches Avoided, since connections are removed –Behavioral mismatches Need the generation of adaptors 14

Conclusions & Further Work  Introduction to the semantics of Async. Evolution –Allows introducing changes concurrently without waiting to sequence all the changes –Evolution semantics defined by means of local rules –Version management by means of evolution tags –Instances evolve gradually to the next version and independently of other instances  Further works –Fully decentralized model. Decentralized at the instance-level  Centralized at the type-level –Evaluation of the complete set of rules Simulation in a graph transformation tool (AGG) 15

Questions Thank you very much for your attention Workshop on Self-Organizing Software Architectures (SOAR’09) September 14 th 2009 – Cambrige (Uk) Cristóbal Costa-Soria Information Systems and Software Engineering Research Group Department of Information Systems and Computation Universidad Politécnica de Valencia Spain Home page:

Towards the Simulation & verification  Graph-based Abstract Syntax –Typed Graph of the PRISMA Metamodel –Example of a Graph Transformation Rule