A. Bucchiarone / Dagstuhl/ 2007 APL Antonio Bucchiarone PhD Student – IMT Graduate School Piazza S. Ponziano, 55100 Lucca (Italy)

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à
Web Services Architecture An interoperability architecture for the World Wide Service Network.
Architecture Representation
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
1© Nokia Siemens Networks Antonio Bucchiarone Marie Curie Host Fellowships for the Transfer of Knowledge (TOK) Modelling Dynamic Software Architectures.
OASIS Reference Model for Service Oriented Architecture 1.0
A. Bucchiarone / Pisa/ 30 Jan 2007 Dynamic Software Architectures for Global Computing Antonio Bucchiarone PhD Student – IMT Graduate School Piazza S.
A. Bucchiarone, Juan P. Galeotti / GT-VMT’08 Dynamic Software Architectures Verification using DynAlloy Antonio Bucchiarone IMT Graduate School of Lucca,
Variability Oriented Programming – A programming abstraction for adaptive service orientation Prof. Umesh Bellur Dept. of Computer Science & Engg, IIT.
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.
An Architecture-Based Approach to Self-Adaptive Software Presenters Douglas Yu-cheng Su Ajit G. Sonawane.
Components for high performance grid programming in the GRID.it project 1 Workshop on Component Models and Systems for Grid Applications - St.Malo 26 june.
Software Connectors. Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s.
Ensuring Non-Functional Properties. What Is an NFP?  A software system’s non-functional property (NFP) is a constraint on the manner in which the system.
Self Adaptive Software
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Web Service Architecture Part I- Overview and Models (based on W3C Working Group Note Frank.
1 Joint work with Antonio Bucchiarone (Fondazione Bruno Kessler - IRST, Trento) and Fabrizio Montesi (University of Bologna/INRIA, Bologna) A Framework.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
[ §4 : 1 ] 4. Requirements Processes II Overview 4.1Fundamentals 4.2Elicitation 4.3Specification 4.4Verification 4.5Validation Software Requirements Specification.
Chapter 10 Architectural Design
THE NEXT STEP IN WEB SERVICES By Francisco Curbera,… Memtimin MAHMUT 2012.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
An Introduction to Software Architecture
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Architecting Web Services Unit – II – PART - III.
Formalizing the Asynchronous Evolution of Architecture Patterns Workshop on Self-Organizing Software Architectures (SOAR’09) September 14 th 2009 – Cambrige.
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
A. Bucchiarone, Juan P. Galeotti / GT-VMT’08 Dynamic Software Architectures Verification using DynAlloy Antonio Bucchiarone IMT Graduate School of Lucca,
Class 5 Architecture-Based Self-Healing Systems David Garlan Carnegie Mellon University.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Secure Systems Research Group - FAU SW Development methodology using patterns and model checking 8/13/2009 Maha B Abbey PhD Candidate.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
® IBM Software Group © 2004 IBM Corporation Developing an SOA with RUP and UML 2.0 Giles Davies.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
DESIGN OF SOFTWARE ARCHITECTURE
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
Qusay H. Mahmoud CIS* CIS* Service-Oriented Computing Qusay H. Mahmoud, Ph.D.
SelfCon Foil no 1 Variability in Self-Adaptive Systems.
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Engr 691 Special Topics in Engineering Science Software Architecture Spring Semester 2004 Lecture Notes.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
Systems Architectures System Integration & Architecture.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Modeling of Service Oriented Architecture: From Business Process to Service Realization Petr Weiss and Marek Rychlý Brno University of Technology, Faculty.
Software Architecture Lecture 3
Software Architecture
Chapter 2 Database System Concepts and Architecture
Software Architecture Lecture 3
Model-Driven Analysis Frameworks for Embedded Systems
Service-centric Software Engineering
Software Architecture Lecture 3
Service-centric Software Engineering 1
Chapter 20 Object-Oriented Analysis and Design
Architecture Description Languages
Software Architecture Lecture 3
An Introduction to Software Architecture
Service Oriented Architectures (SOA): What Users Need to Know.
Software Architecture Lecture 3
Software Architecture Lecture 3
Presentation transcript:

A. Bucchiarone / Dagstuhl/ 2007 APL Antonio Bucchiarone PhD Student – IMT Graduate School Piazza S. Ponziano, Lucca (Italy)

A. Bucchiarone / Dagstuhl/ 2007 Outline  Global Computing Systems  SW Architecture view  Service-Oriented Vision  From SA to SOA  Dynamic Systems  Why DSA?  Dynamisms in SA  Main Issues for the future

A. Bucchiarone / Dagstuhl/ 2007 Global Computing (GC) Systems  Heterogeneous, geographically distributed and highly dynamic  Communication topology can vary  The components can, at any moment, connect to or detach from the system  Evolving systems (dynamicity and adaptability)

A. Bucchiarone / Dagstuhl/ 2007 SW Architecture View  To abstractly model the overall structure of a system in terms of communicating subsystems  Structural description (Topology)  Behavioral description (Behavior)  In a service oriented vision, SOA are meant to abstractly model the overall structure of service-centric sw systems in terms of communicating services

A. Bucchiarone / Dagstuhl/ 2007 Service Oriented Vision  A new paradigm for specifying and implementing such global systems  Services as fundamental elements for developing applications  Services are autonomous, platform-independent and mobile computational entities  Design-Time: services can be independently described, published and categorized  Run-Time: services are searched/discovered and dynamically assembled for building wide area distributed systems

A. Bucchiarone / Dagstuhl/ 2007 From SA to SOA  SA is intended to describe the structure of a system  Interactions of Computational components  Patterns that guide their composition and constraints on these patterns  SOA  Services as fundamental elements for developing applications  SOA should support evolution during runtime for adapting to changes of environment and requirements  Service Composition combines existing services following a certain pattern to form a new value-added service SA elementsSA elements in SOA ComponentService PortInterface: WSDL ConnectorProtocol: SOAP, WS- Coordination RoleInvocation relationship between services ConfigurationService Composition Structure StyleComposition Pattern ConstraintsComposition Constraints  Dynamism of the architecture  Dynamic reconfiguration is prerequisite for more extensible and efficient service- oriented applications  Dynamism in SA specification is naturally reflected to the runtime evolution of SOA

A. Bucchiarone / Dagstuhl/ 2007 Dynamic Systems  To support execution during runtime (SOA) for adapting to changes  Changing Requirements  Request for new functions  May require to integrate new components (statically or at run-time)  Changing Environments  Faulty communication channels  Mobility leading to a reduced bandwidth  May require to replace unreachable components  Key Requirement: “a dynamic system should keep the application in the same state after a change”  Dynamic Reconfiguration

A. Bucchiarone / Dagstuhl/ 2007 What is DSA?  DSA models a system that reacts to certain events at runtime by supporting reconfiguration of the system’s architecture (Garlan ’98)  Support runtime management and reconfiguration of the systems without human interference (Self-adaptive Systems)  Monitoring, analyzing, implementing and validating systems changes  Internally or externally to the application  Reconfiguration operations  Adding interfaces or components  Removing interfaces or components  Updating interfaces or components  Changing the architecture topology by adding or removing connections between interfaces

A. Bucchiarone / Dagstuhl/ 2007 Dynamisms in SA

A. Bucchiarone / Dagstuhl/ 2007 Formal Definition of Dynamicity  Hypergraph that describes a style (or meta- model)  Components and Connectors are hyperedges  Component exposes different ports  Connector has tentacles to the ports  Ports are nodes

A. Bucchiarone / Dagstuhl/ 2007 Formal Definition of Dynamicity  a style  a configuration  a rewriting production

A. Bucchiarone / Dagstuhl/ 2007 Formal Definition of Dynamicity  The set R(G) of reachable configurations, i.e., all configurations to which the initial configuration G in can evolve.  The set D(G) of desirable configurations, i.e., the set of all T-typed configurations that satisfies a desired property p.

A. Bucchiarone / Dagstuhl/ 2007 Programmed dynamism  All architectural changes are identified at design-time and triggered by the system itself  A programmed DSA is associated with a grammar G A =  T stands for the style of the architecture  G in is the initial configuration  P is a set of productions gives the evolution of the architecture  D p (G) = R(G)

A. Bucchiarone / Dagstuhl/ 2007 Ad-hoc dynamism  All architectural changes are established by the user at unpredictable run-time.  An ad-hoc DSA is associated with a typed grammar G A =  T ah is a graph that contains an infinite number of components and connectors  The initial graph G in is any T ah -typed hypergraph that describe a configuration  The set of production P ah is infinite  They can be the combination of add/remove components and add/remove connectors actions

A. Bucchiarone / Dagstuhl/ 2007 Constructible dynamism  All architectural changes are identified at run-time and triggered by the user.  It is similar to ad-hoc but the rewriting productions are not the free combination of basic primitives  G A =  T ah and G in are as ad-hoc dynamism  L c is a language for writing reconfiguration programs  P Lc is the set of all valid reconfiguration programs that can be written in L c

A. Bucchiarone / Dagstuhl/ 2007 Repairing dynamism  Repairing systems are equipped with a mechanism that monitors the system behavior.  G A =  P = P pgm U P env U P rpr  P pgm describe the normal, ideal behavior of the architecture  P env model the einvironment  “ the communication among components may be lost”  “ a non authorized connector become attached to a particular component”  P rpr indicate the way in which an undesirable configuration can be repaired in order to become a valid one

A. Bucchiarone / Dagstuhl/ 2007 Car Assistance Example - I  Components:  Vehicle (V): responsible for transmitting messages destined to the assistant server.  Accident Assistant Server (S): handles help requests  Connectors:  (V/V) : used for mediating the communication between two vehicles (V1/V2)  (V/S) : used for supporting the interaction between a vehicle and a server (V1/S) SV1V1 V2V2 V 1 /S V 1 /V 2

A. Bucchiarone / Dagstuhl/ 2007 Car Assistance Example –II Architectural Style An instance

A. Bucchiarone / Dagstuhl/ 2007 Programmed Dynamism Architectural Style New vehicle connected to the server Vehicles approximation Initial configuration

A. Bucchiarone / Dagstuhl/ 2007 Repairing Dynamism - I  Communication between vehicles is not reliable and can be lost  The architecture should repair itself  G A =  P = P pgm U P env U P rpr  P pgm contains the same productions as Programmed Dynamism

A. Bucchiarone / Dagstuhl/ 2007 Repairing Dynamism - II  P env contains a unique production  It models the loss of connectivity between vehicles  P rpr : “whenever a vehicle without outcoming connections is found, then the vehicle should be connected directly to a server”

A. Bucchiarone / Dagstuhl/ 2007 Constrained and Self Dynamism  Constrained vs unconstrained (When)  Transformation rules can take place at any moment or not  Self vs external (Where)  Whether changes are fired internally by the system itself or activated externally

A. Bucchiarone / Dagstuhl/ 2007 Constrained vs Unconstrained  Constrained  A change may occur only after pre-defined constrains are satisfied  When components are not connected in a specific way  The state of a component, e.g., when a component enters into a quiescent state  The constraints are naturally modeled by both positive and negative application conditions of graph productions  Unconstrained  The transformations can be applied at any moment

A. Bucchiarone / Dagstuhl/ 2007 Self dynamism  Programmed and Repairing are “self”  The changes are initiated by the system itself and not by an external agent  Explicit  The reconfiguration rule is selected by an external source and not by the system itself  Autonomous  The system selects one of all the applicable transformations in a non-deterministic way  Pre-defined  The system selects in a deterministic way (if-then-else)

A. Bucchiarone / Dagstuhl/ 2007 A comparison  “When” the changes are defined  “Who” monitors and triggers the reconfiguration  Flexibility degree

A. Bucchiarone / Dagstuhl/ 2007 Main Issues for the Future  To extend the comparison with a “verification power” column  To map these dynamicities in an Architectural Programming language (ArchJava or Java/A) as new primitives  To verify properties of interest in GC  Consistency and Correctness of the composition (orchestrations and choreographies in SOA)  Non-Functional requirements (QoS)

A. Bucchiarone / Dagstuhl/ 2007 Questions?