Two Patterns in Adaptive, Distributed Real-Time, Embedded Middleware

Slides:



Advertisements
Similar presentations
Chapter 13 Review Questions
Advertisements

1 Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
MIS 385/MBA 664 Systems Implementation with DBMS/ Database Management Dave Salisbury ( )
Variability Oriented Programming – A programming abstraction for adaptive service orientation Prof. Umesh Bellur Dept. of Computer Science & Engg, IIT.
1 Quality Objects: Advanced Middleware for Wide Area Distributed Applications Rick Schantz Quality Objects: Advanced Middleware for Large Scale Wide Area.
Business Intelligence Michael Gross Tina Larsell Chad Anderson.
Overview Distributed vs. decentralized Why distributed databases
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Tutorials 1 1.What is the definition of a distributed system? 1.A distributed system is a collection of independent computers that appears to its users.
Software Engineering and Middleware A Roadmap Author: Wolfgang Emmerich Presented by: Sam Malek.
Page 1Prepared by Sapient for MITVersion 0.1 – August – September 2004 This document represents a snapshot of an evolving set of documents. For information.
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Software Architecture in Practice (3rd Ed) Introduction
Computer System Architectures Computer System Software
IMS 4212: Distributed Databases 1 Dr. Lawrence West, Management Dept., University of Central Florida Distributed Databases Business needs.
BDP Behavioral Pattern. BDP-2 Behavioral Patters Concerned with algorithms & assignment of responsibilities Patterns of Communication between Objects.
CS101 Introduction to Computing Lecture SW Development Methodology.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Chapter 5 Design Principles II: Flexibility, Reusability, and Efficiency.
Lecture # 06 Design Principles II
Chapter 5 Design Principles II: Flexibility, Reusability, and Efficiency.
UNIT – II ARCHITECTING WEB SERVICES. WHAT ARE WEB SERVICES ? Web Services are loosely coupled, contracted components that communicate via XML-based interfaces.
9/5/2012ISC329 Isabelle Bichindaritz1 Web Database Environment.
© Pearson Education Limited, Chapter 16 Physical Database Design – Step 7 (Monitor and Tune the Operational System) Transparencies.
WDMS 2002 June page 1 Middleware Policies for Intrusion Tolerance QuO Franklin Webber, Partha Pal, Chris Jones, Michael Atighetchi, and Paul Rubel.
DISTRIBUTED COMPUTING Introduction Dr. Yingwu Zhu.
1 Distributed Databases BUAD/American University Distributed Databases.
MDD approach for the Design of Context-Aware Applications.
A QoS Policy Modeling Language for Publish/Subscribe Middleware Platforms A QoS Policy Modeling Language for Publish/Subscribe Middleware Platforms Joe.
Software Engineering Principles Practical Advice and Steps for Managing Your Project.
Secure middleware patterns E.B.Fernandez. Middleware security Architectures have been studied and several patterns exist Security aspects have not been.
Chapter 8 Object Design Reuse and Patterns. More Patterns Abstract Factory: Provide manufacturer independence Builder: Hide a complex creation process.
The Service in Service Oriented Architecture November 2, 2005 Aderbad Tamboli Petris.
SOA & Event Driven Architecture Steve Else, Ph.D., Certified Enterprise Architect, SOA COP Srinidhi Boray, Certified Enterprise Architect, Ingine, Inc.
1 Market Research 1. Purpose of market research Market research is carried out to: Help firms make marketing decisions Reduce risk Data may be gathered.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
Why Freelance Developers Are Switching To Econtracts
Embedded Systems Software Engineering
Presented by FACADE PATTERN
Clouds , Grids and Clusters
Master thesis: Automatic Extraction of Design Decision Relationships from a Task Management System Kick-Off Matthias Ruppel, 8th of May 2017, Munich.
Distributed Database Management Systems
Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
Middleware Policies for Intrusion Tolerance
System: Team WikiSpeed Process
CSC 480 Software Engineering
Distributed Multimedia Systems
Methodology – Monitoring and Tuning the Operational System
Database Architectures and the Web
Introduction to Cloud Computing
The American Red Cross Architecting for Emergency Response
Promotion Valid From Sep. 1st 2009 ~ July 23rd 2010
Tools of Software Development
Parallel and Multiprocessor Architectures – Shared Memory
Mobile Computing.
Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
Princess Nourah bint Abdulrahman University
Software models - Software Architecture Design Patterns
Simulation in a Distributed Computing Environment
Ph.D Status Report: A part of WEBSYS Project
CS101 Introduction to Computing Lecture 20 SW Development Methodology
Cost Xpert Group Copyright © 2001, Marotz, Inc..
Methodology – Monitoring and Tuning the Operational System
Business Intelligence
Architectures of distributed systems
Better Architecture Management Made Easy
Chapter 17 - Component-based software engineering
Database System Architectures
Presentation transcript:

Two Patterns in Adaptive, Distributed Real-Time, Embedded Middleware Paul Rubel prubel@bbn.com

Patterns Presented Snapshot for obtaining a useful approximation of the system state. QoS Contract for managing adaptive decisions and tradeoffs

Snapshot Provide a useful approximation of a consistent view of the system’s state. Especially Useful for facilitating runtime adaptations. Refresh data as it is available under the covers from apps who use the information Easily add new consumers

Problem: Finding Approximately Consistent System State We can trade strict consistency for speed Strict consistency is expensive By using approximations of state we can often get a “good enough” answer faster. Not necessarily totally consistent, approximate

Problem continued For loose coupling, reuse, and location transparency Users of state need not be aware of each other Gathering and aggregating should be disjoint. Promotes loose coupling and reuse Location transparency

Implementation Implement system conditions Wrap lower level state information Place system conditions at points of interest Implement aggregate system conditions Support views at different levels Hide underlying architecture Aggregate, perhaps replicated values

Variations Consistency of system state Reporting of state to consumers Loose, where coherency is best effort but responses can be quicker Consistent, via transactions which may be slow but the results will be internally consistent Reporting of state to consumers Push/Pull Publish/Subscribe Pub sub in here too

QoS Contract The QoS Contract pattern decouples quality of service negotiation, measurement, adaptation, and management from a functional application. Manages change via middleware. Promotes loose coupling of adaptation and functional components. How would you architect an application to meet this goal? Promotes Loose Coupling Managing change via middleware

Problem: Competing Goals We may not be able to provide everyone all the resources they would like. How do we make and manage reasonable tradeoffs?

Trade-off Issues Consider only issues of interest Bandwidth may be important while disk space is not Combinations of competing issues How do we trade off bandwidth versus compression in different situations? Controlling complexity Do all the issues need to interact with one another? Customization for different environments

Implementation Determine regions of concern Define System Conditions What do we do when more CPU is available than bandwidth? Define System Conditions What will we need to measure and control to make our decisions? Create predicates that define regions with respect to system conditions Determine transitions and actions What do we do when we move from one region to the next? Integrate with the application System conditions, automatic and manual for users. Assign QoS requirements in accordance w/ system modes

Other DRE Patterns