Hossein Tajalli & Joshua Garcia. Motivation Self-* or autonomic systems Self-configuration, self-adaptation, and self-healing Why we might want self-adaptive.

Slides:



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

Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes
3° Workshop Nazionale del Gruppo di Interesse in Ingegneria del Software Genova, 2-3 ottobre 2006 CASE – Libera Università di Bolzano-Bozen RCOST – Università
Architecture Representation
KAIS T The Vision of Autonomic Computing Jeffrey O. Kephart, David M Chess IBM Watson research Center IEEE Computer, Jan 발표자 : 이승학.
Towards Self-Testing in Autonomic Computing Systems Tariq M. King, Djuradj Babich, Jonatan Alava, and Peter J. Clarke Software Testing Research Group Florida.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.
By Xiangzhe Li Thanh Nguyen.  Components and connectors are composed in a specific way in a given system’s architecture to accomplish that system’s objective.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Improving Software Quality with Generic Autonomics Support Richard Anthony The University of Greenwich.
© Copyright Jeff Offutt, 2000 WESAS, 5/00 1 Analyzing Software Architecture Descriptions to Generate System-level Tests Aynur Abdurazik, Zhenyi Jin, Jeff.
Challenges in Adapting Automated Planning for Autonomic Computing Biplav Srivastava Subbarao Kambhampati IBM India Research Lab Arizona State University.
Π-Method: A Model-Driven Formal Method for Architecture- Centric Software Engineering By Flavio Oquendo Presented by: Sajith Wickramaratne.
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
An Architectural Approach to Robotics Software Design, Implementation, and Deployment Brian D’Souza Joshua Garcia Ivo Krka Natachart Laotheppitak Hossein.
1 Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors Nenad Medvidovic with Marija Rakic and Barry Boehm University.
Self-Architecting Software SYstems (SASSY) from QoS-Annotated Activity Models Sam Malek Naeem Esfahani Daniel A. Menascé João P. Sousa Hassan Gomaa May.
The future is bright with clouds Hong Zhu Dept of Computing and Communications technology Oxford Brookes University, Oxford OX33 1HX, UK
Software Self-Adaptation A survey of the field “Self-adaptive software evaluates its own behavior and changes behavior when the evaluation indicates it.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
1 Ivano Malavolta, University of L’aquila, Computer Science Department Ivano Malavolta DUALLy: an Eclipse platform for architectural languages interoperability.
David Garlan Ivan Ruchkin Carnegie Mellon University Pittsburgh, PA, USA December 2014.
Hossein Tajalli and Nenad Medvidovic. Software Development Environments Augment or automate activities and processes in the software life-cycle Spanning.
1 Autonomic Computing An Introduction Guenter Kickinger.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Architecture-based Adaptivity by Amir Taherkordi INF5360: Seminar on Dependable and Adaptive Distributed Systems Department of Informatics.
Software Engineering Lab. 석사 1 기 허 석 “Dynamic Reconfiguration and Load Distribution in Component Middleware" "Maarten Wegdam" "CTTI PhD.-thesis series.
Automating service management Tiina Niklander Faculty of Science Department of Computer Science In AMICT 2008 Petrozavodsk, May 2008.
Action ADAPT / IDM, November 13th, 2008 Dynamic Adaptive Software Components: The MOCAS Approach1.
2/6/01USC - Center for Software Engineering 1 Marrying Software Architecture with Configuration Management Techniques Roshanak Roshandel
Formalizing the Asynchronous Evolution of Architecture Patterns Workshop on Self-Organizing Software Architectures (SOAR’09) September 14 th 2009 – Cambrige.
Christian Heinzemann 11. Oktober 2015 Modeling Behavior of Self-Adaptive Systems Seminar Software Quality and Safety.
Plan-Directed Architectural Change for Autonomous Systems Daniel Sykes, William Heaven, Jeff Magee, Jeff Kramer Imperial College London.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
JCMP: Linking Architecture with Component Building Guoqing Xu, Zongyuan Yang and Haitao Huang Software Engineering Lab, East China Normal University SACT-01,
Class 5 Architecture-Based Self-Healing Systems David Garlan Carnegie Mellon University.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Basic Concepts of Component- Based Software Development (CBSD) Model-Based Programming and Verification.
THE VISION OF AUTONOMIC COMPUTING. WHAT IS AUTONOMIC COMPUTING ? “ Autonomic Computing refers to computing infrastructure that adapts (automatically)
A Self-Configuring Test Harness for Web Applications Jairo Pava School of Computing and Information Sciences Florida International University Courtney.
Architecture Analysis Techniques
Software Deployment and Mobility. Introduction Deployment is the placing of software on the hardware where it is supposed to run. Redeployment / migration.
Enabling Self-management of Component-based High-performance Scientific Applications Hua (Maria) Liu and Manish Parashar The Applied Software Systems Laboratory.
Hossein Tajalli, Joshua Garcia, George Edwards, and Nenad Medvidovic Computer Science Department University of Southern California.
Self-Organizing Architectures SOAR 2010 International Conference on Autonomic Computing and Communication, ICAC Washington DC, USA June 7, 2010.
Survey of Tools to Support Safe Adaptation with Validation Alain Esteva-Ramirez School of Computing and Information Sciences Florida International University.
Wscomp An Approach for the Automated Composition of BPEL Processes Annapaola Marconi ITC–irst / University of Trento Joint work.
Basic Concepts and Definitions
Architecture-Driven Self- Adaptation and Self- Management in Robotics Systems By George Edwards, Joshua Garcia, Farshad Tajalli, Daniel Popescu, Nenad.
Architecture Description Languages (ADLs) Cf. Architecture Analysis and Design Languages.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
The PLA Model: On the Combination of Product-Line Analyses 강태준.
Software Architecture Lecture 3
Software Architecture
Software Architecture Lecture 3
Model-Driven Analysis Frameworks for Embedded Systems
The Extensible Tool-chain for Evaluation of Architectural Models
Software Architecture Lecture 3
The Extensible Tool-chain for Evaluation of Architectural Models
The Vision of Autonomic Computing
Software Architecture Lecture 3
Software Architecture Lecture 3
Automated Analysis and Code Generation for Domain-Specific Models
Software Architecture Lecture 3
Self-Managed Systems: an Architectural Challenge
Presentation transcript:

Hossein Tajalli & Joshua Garcia

Motivation Self-* or autonomic systems Self-configuration, self-adaptation, and self-healing Why we might want self-adaptive systems? Highly Available Changing Requirements Robust, flexible, scalable Dynamic composition Specification Components configuration should conform to specification Report that they cannot or degrade gracefully Architecture-based [Kramer and Magee] Generality Level of abstraction Scalability Builds on Existing Work

Introduction PLASMA: a Plan-based Architecture for Software Model-driven Adaptation Less burden on System Architect Architect only provides the component Models and goal of the system Architect does not need to design the Application Architecture Topology Architect does not need to design the adaptation policies Automated Adaptation Component failure Goal change System requirement change Automated planning for adaptation Adaptation plans are generated using MBP

PLASMA Components Software Architecture and Evaluation Language component loader is{ state { loaded : Boolean; locked : Boolean; } interface{ prov loading: load(); prov unloading: unload(); } operations{ prov opLoad:{ pre \not(loaded)) \and (\not(locked)); post (loaded); } prov opunLoad:{ pre (loaded)\and(\not(locked)); post \not (loaded); } …. } Layered Self-Management and Self- Adaptation Architecture Model-Based Planning MBP Plan

Software Modeling SADEL: a Software Architecture Description and Evaluation Language C2SADEL: C2 Style. (Medvidovic 99) Model Components, Connectors and topology Component Models: State Variables Component Interfaces Component Behavior (Operations) Pre –condition and Post-Condition Enables architectural consistency- and type-checking, and code generation

Planning Planning As Model Checking Technique (Giunchiglia & Traverso 99) generate plans by checking the correctness of formulas in a model. Can deal with non-determinisim Can deal with partial observablity Goals Reachability Maintainablity Failure or Preference Repeat Model Based Planner We use this technique To generate application plans To generate plans for Adaptation MBP Domain Model Description Goal Plan

Software Self-Adaptation and Self-Management Architecture Each layer manages and adapts the layer below it Meta-level Architecture Specialized Meta-Components Collector, Analyzer, Admin Arbitrary number of layers ( George09 )

System Requirements Application Domain Model

System Requirements Adaptation Domain Model

Drive Component Models from System Requirements Operations: lock unlock Locker Comp Operations: load unload Loader Comp System Requirements (Domain Model) Components SADEL Models

How Are Approach Works Planning Layer Adaptation Layer Application Layer Application Component Models Adaptation Component Models Application Goal Adaptation Plan Application Plan Set & Adapt Component Failure Component Failure

PLASMA Architecture

Conclusions Less burden on System Architect Architect only provides the component Models and goal of the system Architect does not need to design the Application Architecture Topology Architect does not need to design the adaptation policies Automated Adaptation Component failure Goal change System requirement change Automated planning for adaptation Adaptation plans are generated automatically

References F. Giunchiglia and P. Traverso. Planning as model checking. In ECP, pages 1-20, 1999 N. Medvidovic, D. S. Rosenblum, and R. N. Taylor. A language and environment for architecture-based software development and evolution. In ICSE '99: Proceedings of the 21st international conference on Software engineering, pages 44-53, New York, NY, USA, ACM. G. Edwards, J. Garcia, H. Tajalli, D. Popescu, N. Medvidovic, G. Sukhatme, and B. Petrus. Architecture-driven self-adaptation and self- management in robotics systems. In Software Engineering for Adaptive and Self-Managing Systems (SEAMS'09), pages , J. Kramer and J. Magee. Self-managed systems: an architectural challenge Future of Software Engineering, pages , 2007.

Non-deterministic Domain

Details of planning Application Component Models ADL Model Parser Planner Problem Generator Code Generator Domain Model Application Problem Plan Executer (.class) Problem

Plans Plans are Sets of State-Actions to get to a goal state Plan= { {1,unlock} {2,load} {3,lock} {4, DONE} }

Plans to create Architecture Topology Application Plans Are used to drive the Architecture of the system. Algorithm: 1- Extract the required actions in the plan 2- Find the components which perform the required Actions 3- Check the component required interfaces and Include the components which provide those.