Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.

Slides:



Advertisements
Similar presentations
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
Advertisements

ECE 750 Topic 8 Meta-programming languages, systems, and applications Load-time structural reflection in Java – Shigeru Chiba, 2000 May 27, 2004 Shimin.
Issues of Security and Privacy in Networking in the CBA Karen Sollins Laboratory for Computer Science July 17, 2002.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
Reseach in DistriNet (department of computer science, K.U.Leuven) General overview and focus on embedded systems task-force.
Software Engineering Techniques for the Development of System of Systems Seminar of “Component Base Software Engineering” course By : Marzieh Khalouzadeh.
19/02/2004 Slide 1 Internal Presentation by : Sergio Maffioletti Pervasive and Artificial Intelligenge research group On : « The.
1 Quality Objects: Advanced Middleware for Wide Area Distributed Applications Rick Schantz Quality Objects: Advanced Middleware for Large Scale Wide Area.
Rigorous Fault Tolerance Using Aspects and Formal Methods Shmuel Katz Computer Science Department The Technion Haifa, Israel
Software Engineering and Middleware A Roadmap Author: Wolfgang Emmerich Presented by: Sam Malek.
CS 290C: Formal Models for Web Software Lecture 6: Model Driven Development for Web Software with WebML Instructor: Tevfik Bultan.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
26th May, Middleware or Simulator for Autonomic Communications Yang Qiu Networking Laboratory Helsinki University of Technology
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.
QoS-enabled middleware by Saltanat Mashirova. Distributed applications Distributed applications have distinctly different characteristics than conventional.
Philip K. McKinley Software Engineering and Network Systems Laboratory Department of Computer Science and Engineering Michigan State University RAPIDware:
Run-Time Support for Adaptive Communication Services By: SeyedMasoud Sadjadi Advisor: Dr. Philip K. McKinley Computer Science and Engineering Michigan.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
Univ. Notre Dame, September 25, 2003 Support for Run-Time Adaptation in RAPIDware Philip K. McKinley Software Engineering and Networking Systems Laboratory.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Introduction to MDA (Model Driven Architecture) CYT.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Supporting Heterogeneous Users in Collaborative Virtual Environments using AOP CoopIS 2001 September 5-7, Trento, Italy M. Pinto, M. Amor, L. Fuentes,
McGraw-Hill/Irwin © The McGraw-Hill Companies, All Rights Reserved BUSINESS PLUG-IN B17 Organizational Architecture Trends.
® IBM Software Group © 2007 IBM Corporation J2EE Web Component Introduction
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
Dynamic Choreographies Safe Runtime Updates of Distributed Applications Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Joint.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Distributed Systems: Concepts and Design Chapter 1 Pages
A SENS Internal Presentation on Friday, October 3, 2003 TRAP Transparent Reflective Aspect Programming SeyedMasoud Sadjadi Supervised by Dr. McKinley
Proof Carrying Code Zhiwei Lin. Outline Proof-Carrying Code The Design and Implementation of a Certifying Compiler A Proof – Carrying Code Architecture.
Programming Models & Runtime Systems Breakout Report MICS PI Meeting, June 27, 2002.
SelfCon Foil no 1 Design of Self-Adaptive Systems Course introduction 2013 Rolv Bræk, ITEM.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
Slide title In CAPITALS 50 pt Slide subtitle 32 pt Model based development for the RUNES component middleware platform Gabor Batori
International Symposium on Distributed Objects and Applications (DOA 2002) MetaSockets MetaSockets Run-Time Support for Adaptive Communication Services.
1 The Modular Structure of Complex Systems Presented by: SeyedMasoud Sadjadi and Wei Zhu David L. Parnas, Paul C. Clement, and David M. Weiss ICSE 1984.
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
TRANSPARENT EXTENSION OF SINGLE- USER APPLICATIONS TO MULTI-USER REAL-TIME COLLABORATIVE SYSTEMS An Aspect Oriented Approach to Framework Integration ICEIS.
SCALABLE EVOLUTION OF HIGHLY AVAILABLE SYSTEMS BY ABHISHEK ASOKAN 8/6/2004.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
Future Directions in Middleware Research and Technology Fabio Kon Department of Computer Science University of São Paulo, Brazil
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
CRG talk on Tuesday, August 19, 2003 SeyedMasoud Sadjadi Software Engineering and Networking Systems Laboratory Department of.
 Copyright 2005 Digital Enterprise Research Institute. All rights reserved. Enabling Components Management and Dynamic Execution Semantic.
MDD approach for the Design of Context-Aware Applications.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
SelfCon Foil no 1 Variability in Self-Adaptive Systems.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Jim Dowling, DSG. Introduction to Reflection1 Reflection and the Metaobject Protocol paradigm by Jim Dowling.
Introduction to OOP CPS235: Introduction.
RobustBPEL2: Transparent Autonomization in Business Processes through Dynamic Proxies Onyeka Ezenwoye S. Masoud Sadjadi Autonomic Computing Research Lab.
CEN-4015, Software Project, Spring 2006 Transparent Shaping of Existing Software to Support Pervasive and Autonomic Computing S. Masoud Sadjadi Autonomic.
1 Javier Ocasio Pérez Mentor: Masoud Sadjadi Graduate Students: Fernando Trigoso Ana M. Sanchez Tuan Cameron Allen Lee A Remote Composer for TRAP.NET.
Software, IEE Proceedings, Vol.152, Num.3, June 2005,Page(s): Prasanthi.S March, Java-based component framework for dynamic reconfiguration.
A Meta-Object Protocol for Environmental Adaptation in a Grid
Visit for more Learning Resources
Walter Binder Giovanna Di Marzo Serugendo Jarle Hulaas
Designing Software for Ease of Extension and Contraction
Luca Simoncini PDCC, Pisa and University of Pisa, Pisa, Italy
Presentation transcript:

Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006

06/21/2006Composing Adaptive Software2 Overview Introduction Enabling Technologies Compositional Adaptation Taxonomy Key Challenges Conclusion

06/21/2006Composing Adaptive Software3 Introduction Software adaptation – software that can adapt dynamically to changes in its environment and non-functional requirements. Increased interest in adaptive systems due to the following: Ubiquitous Computing – dissolving traditional boundaries for how, when, and where humans and computers interact Growing demand for autonomic computing

06/21/2006Composing Adaptive Software4 Introduction Two approaches for implementing dynamic adaptation in software: Parameter Adaptation – modifies program variables that determine behavior Limitation: Cannot adopt new strategies Compositional Adaptation – allows software to modify its structure and behavior dynamically in response to changes in its executing environment Enables dynamic recomposition of software during execution

06/21/2006Composing Adaptive Software5 Enabling Technologies Main Supporting Technologies: Separation of concerns, computational reflection, component-based design

06/21/2006Composing Adaptive Software6 Separation of Concerns Business Logic Crosscutting Concerns QoS, energy consumption, fault tolerance, security Most widely used approach is Aspect- Oriented Programming (AOP) Provides abstraction techniques, language constructs Disentangles crosscutting concerns

06/21/2006Composing Adaptive Software7 Separation of Concerns Development Time Pointcuts are identified Compile Time Weave different aspects of the program together Run Time Program with new behavior

06/21/2006Composing Adaptive Software8 Computational Reflection A program’s ability to reason about, and possibly alter, its own behavior Comprised of two activities: Introspection – observe its own behavior Intercession – act on these observations and modify its own behavior

06/21/2006Composing Adaptive Software9 Computational Reflection Metaobject Protocol (MOP) – introspectation and intercession base-level objects Structural Reflection – class hierarchy, object interconnection, and data types Behavioral Reflection – computational semantics

06/21/2006Composing Adaptive Software10 Component-based Design Software Components – software units that third parties can independently develop, deploy, and compose Two types of composition: Static Composition – combine several components at compile time Dynamic Composition – add, remove, reconfigure components at runtime Promotes software reuse

06/21/2006Composing Adaptive Software11 Component-based Design

06/21/2006Composing Adaptive Software12 Middleware Middleware – layers of services separating applications from operating systems and network protocols

06/21/2006Composing Adaptive Software13 Middleware Host-infrastructure Middleware High-level API Distribution Middleware High-level programming abstraction Common Middleware Services Fault tolerance, security, persistence Domain-specific Middleware Services Matches class of applications Schmidt’s Middleware Layers

06/21/2006Composing Adaptive Software14 Middleware and Adaptation Based on an object-oriented programming paradigm Many approaches work by intercepting and modifying messages CORBA call sequence

06/21/2006Composing Adaptive Software15 Compositional Adaptation Taxonomy How to Compose When to Compose Where to Compose

06/21/2006Composing Adaptive Software16 How to Compose

06/21/2006Composing Adaptive Software17 How to Compose Composer - entity that uses techniques from Table 2 to adapt an application Who can be the composer? Human Piece of software Transparency – refers to whether an application or system is aware of the “infrastructure” needed for recomposition

06/21/2006Composing Adaptive Software18 When to Compose At development, compile, or load time (Static Composition) Pros: Easier to ensure no anomalous behavior Cons: Limited Dynamism At runtime (Dynamic Composition) Pros: Very powerful Cons: Difficult to use traditional testing and formal verification techniques

06/21/2006Composing Adaptive Software19 When to Compose Use of composition time as the classification metric for adaptive applications

06/21/2006Composing Adaptive Software20 Where to Compose Middleware Layers Host-infrastructure layer Adaptable communication services e.g. ACE Virtual Machine e.g. JVM, CLR Distribution, Common Services, Domain-specific Services Portability across virtual machines Pros: Support Transparent Adaptation Cons: Transparent Adaptation is middleware platform dependent

06/21/2006Composing Adaptive Software21 Where to Compose Application Code Program code using language that directly supports dynamic recomposition e.g. CLOS, Python Weave adaptive code into functional code e.g. AspectJ, Composition Filters

06/21/2006Composing Adaptive Software22 Key Challenges Assurance Certify all components for correctness with respect to their specifications Ensure system still executes in an safe manner during the adaptation process Security Ensure integrity of data and conceal adaptive actions Interoperability Coordinate adaptation across system layers and platforms Decision Making Decide how, when, and where to adapt the system

06/21/2006Composing Adaptive Software23 Conclusion Compositional adaptation is powerful Lack of supporting development environments Without tools to automatically generate and verify code it would impact system integrity and security

06/21/2006Composing Adaptive Software24 References Philip K. McKinley, S. M. Sadjadi, Eric P. Kasten, and Betty H. C. Cheng. Composing adaptive software. IEEE Computer, pages 56-64, July 2004.Composing adaptive software Philip K. McKinley, S. Masoud Sadjadi, Eric P. Kasten, and Betty H. C. Cheng. A taxonomy of compositional adaptation. Technical Report MSU-CSE-04-17, Department of Computer Science, Michigan State University, East Lansing, Michigan, May 2004.A taxonomy of compositional adaptation

06/21/2006Composing Adaptive Software25 Question 1 How is inserting the code for new behavior different from adding a plugin?

06/21/2006Composing Adaptive Software26 Question 2 In order to achieve the separation of concerns, how do you decide which requirements are functional or non functional?

06/21/2006Composing Adaptive Software27 Question 3 When third party component is used to recompose (and re-compile) a piece of software, is that any different from creating a new piece of software with reusable components?

06/21/2006Composing Adaptive Software28 Question 4 The paper states that "reflection enables a system to reveal selected details of its implementation without compromising portability", can you explain?

06/21/2006Composing Adaptive Software29 Question 5 Doesn't decision making in adaptive software have to be “hardwired” into the system at some point? If so, how can the software be said to be dynamic?