Model-Driven Engineering for Development-Time QoS Validation of Component-based Software Systems James Hill, Sumant Tambe & Aniruddha Gokhale Vanderbilt.

Slides:



Advertisements
Similar presentations
Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
Advertisements

Object-Oriented Software Development CS 3331 Fall 2009.
Chapter 3 Process Models
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
CiCUTS: Combining System Execution Modeling Tools with Continuous Integration Environments James H. Hill, Douglas Schmidt Vanderbilt University Nashville,
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB JavaForum.
Variability Oriented Programming – A programming abstraction for adaptive service orientation Prof. Umesh Bellur Dept. of Computer Science & Engg, IIT.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Chapter 13 Embedded Systems
CS 290C: Formal Models for Web Software Lecture 6: Model Driven Development for Web Software with WebML Instructor: Tevfik Bultan.
Course Instructor: Aisha Azeem
Introduction to Software Testing
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
23 September 2004 Evaluating Adaptive Middleware Load Balancing Strategies for Middleware Systems Department of Electrical Engineering & Computer Science.
QoS-enabled middleware by Saltanat Mashirova. Distributed applications Distributed applications have distinctly different characteristics than conventional.
Chapter 10 Architectural Design
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Sumant Tambe, et. al LEESA DSPD 2008 An Embedded Declarative Language for Hierarchical Object Structure Traversal Sumant Tambe* Aniruddha Gokhale Vanderbilt.
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
UML - Development Process 1 Software Development Process Using UML (2)
Chapter 2 The process Process, Methods, and Tools
Sumant Tambe, et. al LEESA DSPD 2008 An Embedded Declarative Language for Hierarchical Object Structure Traversal Sumant Tambe* Aniruddha Gokhale Vanderbilt.
Chapter 8 Architecture Analysis. 8 – Architecture Analysis 8.1 Analysis Techniques 8.2 Quantitative Analysis  Performance Views  Performance.
An Introduction to Software Architecture
Introduction to MDA (Model Driven Architecture) CYT.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
RepoMan A Component Repository Manager for Enterprise DRE Systems Stoyan Paunov & Douglas C. Schmidt Vanderbilt University Institute for Software Integrated.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Performance evaluation of component-based software systems Seminar of Component Engineering course Rofideh hadighi 7 Jan 2010.
DataReader 2 Enhancing Security in Ultra-Large Scale (ULS) Systems using Domain- specific Modeling Joe Hoffert, Akshay Dabholkar, Aniruddha Gokhale, and.
CoSMIC: Tool-suite for Weaving Deployment & Configuration Crosscutting Concerns of CCM-based DRE Systems Dr. Aniruddha Gokhale (PI) Institute for Software.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
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.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Software Design Process
CUTS UNITE DSML for Dataflow Modeling By Pooja Varshneya.
Aniruddha Gokhale and Jeff Gray Institute for Software Integrated Systems (ISIS) Vanderbilt University Software Composition and Modeling Laboratory University.
Component-based System Integration via (Meta)Model Composition
A QoS Policy Modeling Language for Publish/Subscribe Middleware Platforms A QoS Policy Modeling Language for Publish/Subscribe Middleware Platforms Joe.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Domain-Specific Modeling Languages for Configuring and Evaluating Enterprise DRE System Quality of Service Stoyan G. Paunov, James H. Hill, Douglas C.
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.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Towards A QoS Modeling and Modularization Framework for Component-based Systems Sumant Tambe* Akshay Dabholkar Aniruddha Gokhale Amogh Kavimandan (Presenter)
Domain-Specific Modeling Languages for Configuring and Evaluating Enterprise DRE System Quality of Service Stoyan G. Paunov, James H. Hill, Douglas C.
Model-Driven Optimizations of Component Systems Vanderbilt University Nashville, Tennessee Institute for Software Integrated Systems OMG Real-time Workshop.
1 Component Workload Emulator (CoWorkEr) Utilization Test Suite (CUTS) Augmenting the Fighting Spirit of the Warrior Dr. Douglas C. Schmidt & James Hill.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Software Architecture Architecture represents different things from use cases –Use cases deal primarily with functional properties –Architecture deals.
Sumant Tambe* Akshay Dabholkar Aniruddha Gokhale
The Development Process of Web Applications
IEEE Std 1074: Standard for Software Lifecycle
Distribution and components
Model-Driven Analysis Frameworks for Embedded Systems
Applying Domain-Specific Modeling Languages to Develop DRE Systems
Tools for Composing and Deploying Grid Middleware Web Services
An Introduction to Software Architecture
Presentation transcript:

Model-Driven Engineering for Development-Time QoS Validation of Component-based Software Systems James Hill, Sumant Tambe & Aniruddha Gokhale Vanderbilt University, Nashville, TN, USA IEEE International Conference & Workshop on Engineering of Computer Based Systems (ECBS 07) March , 2007 Tucson, AZ, USA

CBML & WML Presentation James H. Hill Motivation: Model-Driven Engineering Historically, distributed real-time & embedded (DRE) systems were built directly atop OS & protocols Operating System & Communication Protocols Hardware Devices Applications

CBML & WML Presentation James H. Hill Applications Traditional methods of development have been replaced by middleware layers to reuse architectures & code Viewed externally as Service-Oriented Architecture (SOA) Middleware Operating System & Communication Protocols Hardware Devices Domain-Specific Services Common Services Distribution Middleware Infrastructure Middleware Historically, distributed real-time & embedded (DRE) systems were built directly atop OS & protocols Component-based (SOA) Middleware Motivation: Model-Driven Engineering

CBML & WML Presentation James H. Hill Applications Traditional methods of development have been replaced by middleware layers to reuse architectures & code Viewed externally as Service-Oriented Architecture (SOA) Middleware Operating System & Communication Protocols Hardware Devices Domain-Specific Services Common Services Distribution Middleware Infrastructure Middleware Historically, distributed real-time & embedded (DRE) systems were built directly atop OS & protocols Component-based (SOA) Middleware Model-driven engineering (MDE) techniques coupled with domain-specific model languages (DSMLs) are increasingly being used to address the challenges of building large-scale component-based systems Motivation: Model-Driven Engineering

CBML & WML Presentation James H. Hill Motivation: Current Model-Driven Engineering Techniques Many existing MDE techniques for large- scaled component-based system focus primarily on: a)Structural issues Component representation (i.e., interfaces & attributes) Component assembly & packaging System deployment & configuration b)Functional & operational issues Model checking (e.g., checking for functional correctness) Runtime validation of performance (e.g., running simulations at design- time, or empirical benchmarks at integration time) There remains a major gap in evaluating system quality of service (QoS) at different phases of development to allow design flaws to be rectified earlier in the development lifecycle.

CBML & WML Presentation James H. Hill Application components developed after infrastructure is mature Development Timeline Level of Abstraction System infrastructure components developed first Serialized Phasing is Common in Large-scale Systems (1/2)

CBML & WML Presentation James H. Hill Serialized Phasing is Common in Large-scale Systems (2/2) Development Timeline Level of Abstraction Integration Surprises!!! System integration & testing Finished development

CBML & WML Presentation James H. Hill Complexities of Serialized Phasing Development Timeline Level of Abstraction Still in development Ready for testing Complexities System infrastructure cannot be tested adequately until applications are done

CBML & WML Presentation James H. Hill Complexities of Serialized Phasing Development Timeline Level of Abstraction Overall performance? Complexities System infrastructure cannot be tested adequately until applications are done Entire system must be deployed & configured properly to meet QoS requirements Existing evaluation tools do not support “what if” evaluation It is hard to address these concerns in processes that use serialized phasing

CBML & WML Presentation James H. Hill QoS Concerns with Serialized Phasing Meet QoS requirements? Key QoS concerns Which D&C’s meet the QoS requirements? Development Timeline Level of Abstraction

CBML & WML Presentation James H. Hill QoS Concerns with Serialized Phasing Performance metrics? Key QoS concerns Which D&C’s meet the QoS requirements? What is the worse/average/best time for various workloads? Development Timeline Level of Abstraction

CBML & WML Presentation James H. Hill QoS Concerns with Serialized Phasing It is hard to address these concerns in processes that use serialized phasing Key QoS concerns Which D&C’s meet the QoS requirements? What is the worse/average/best time for various workloads? How much workload can the system handle until its QoS requirements are compromised? System overload? Development Timeline Level of Abstraction

CBML & WML Presentation James H. Hill Promising Solution Approach: Emulate Behavior using Next Generation System Execution Modeling Tools While target system under development: 1.Use a domain-specific modeling language (DSML) to define & validate infrastructure specifications & requirements 2.Use DSML to define & validate application specifications & requirements 3.Use middleware & MDD tools generate D&C metadata so system conforms to its specifications & requirements 4.Use analysis tools to evaluate & verify QoS performance 5.Redefine system D&C & repeat Enables testing on target infrastructure throughout the development lifecycle Component Workload Emulator (CoWorkEr) Utilization Test Suite (CUTS) Workflow

CBML & WML Presentation James H. Hill Case Study: Distributed Stock Application (DSA) (1/2) Usage Patterns by User Type TypePercentageResponse Time (msec) Basic (Client A)65%300 Gold (Client B)35%150 Implementation Details All components are to implemented as CORBA Component Model (CCM) components using ACE+TAO+CIAO 5.1 middleware Target architectures includes 3 separate hosts running Fedora Core 4. Each component in the DSA is schedule to complete is development at different times in development lifecycle

CBML & WML Presentation James H. Hill Case Study: Distributed Stock Application (2/2) Challenges of Continuous QoS Validation 1.Emulating Business Logic: Emulated components must resemble their counterparts in both supported interfaces & behavior 2.Realistic Mapping of Emulated Behavior: Behavior specification should operate at a high-level of abstraction & map to realistic operations 3.Technology Independence: Behavior specification should not be tightly coupled to a programming language, middleware platform, hardware technology, or MDE tool CCM Microsoft.NET Replaceable with “real” component Realistic behavior & workload Realistic user behavior

CBML & WML Presentation James H. Hill Domain-Specific Modeling Languages for Continuous QoS Validation Component Behavior Modeling Language (CBML) a high-level domain-specific modeling language for capturing the behavior of components –e.g., its actions & states Workload Modeling Language (WML) a domain-specific modeling language for capturing workload, & used to parameterize the actions on CBML CBML & WML were both developed using GME (

CBML & WML Presentation James H. Hill The Component Behavior Modeling Language Context Component’s behavior can be classified as: communication & internal actions Need to define these actions as close as possible to their real counterpart (i.e., Challenge 1) Research Contributions of CBML Based on the semantics of Input/Output (I/O) Automata –i.e., contains representative elements Behavior is specified using a series of action to state transitions Transitions have preconditions that represent guards & effects have postconditions that determine the new state after an action occurs Variables are used to store state & can be used within pre & postconditions

CBML & WML Presentation James H. Hill Domain-Specific Extensions to CBML Context Some aspects of component- based systems are not first-class entities in I/O automata –e.g., lifecycle events & monitoring notification events Extended CBML (without affecting formal semantics) to support domain-specific extensions Domain-Specific Extensions Environment events – input actions to a component that are triggered by the hosting system rather than another component Periodic events - input actions from the hosting environment that occur periodically environment periodic

CBML & WML Presentation James H. Hill Ensuring Scalability of CBML Context One of the main goals of higher- level of abstraction is simplicity & ease of use It is known that one of the main drawbacks of automata languages is scalability Usability Extensions Composite Action – contains other actions & helps reduce model clutter Repetitions - determines how many times to repeat an action to prevent duplicate sequential actions Log Action - an attribute of an Action element that determines if the action should be logged Tool Specific – GME add-on that auto-generates required elements (e.g., states)

CBML & WML Presentation James H. Hill The Workload Modeling Language Context CBML as a standalone language is sufficient enough to capture behavior of a component For emulation purposes, it does not capture the reusable objects of a component & its workload (i.e., Challenge 2) Research Contributions of WML Middleware, hardware, platform, & programming language independent DSML Used to define workload generators (workers) that contains actions to represent realistic operations Defined using a hierarchical structure that resembles common object-oriented programming packaging techniques that are consistent with conventional component technologies workload generator executable actions generic action no payload

CBML & WML Presentation James H. Hill Integrating WML Models with CBML Models Integration Enablers WML worker elements have same model semantics as variables WML actions have same modeling semantics as CBML actions Allows WML elements to be used in CBML models Context CBML & WML are standalone DSMLs with a distinct purpose –i.e., model behavior & workload, respectively WML is designed to complement CBML by provide CBML with reusable operations that can map to realistic operations WML CBML WML action

CBML & WML Presentation James H. Hill Integrating Behavioral and Structural DSMLs Context Structural DSML (e.g., the Platform Independent Component Modeling Language (PICML)) capture the makeup of component-based systems There is no correlation between a component’s ports & its behavior Integration Enablers Defined a set of connector elements that allow structural DSMLs to integrate with (or contain) CBML models Input ports directly connect to Input Action elements Output actions have the same name as their output port to reduce model clutter –i.e., prevent many to one connections input connections output name

CBML & WML Presentation James H. Hill Code Generation for Emulation Context The generation technique should not be dependent on the underlying technology Although we are targeting CUTS, would should be able to generate emulation code for any benchmarking framework Generation Enablers Emulation layer – represents the application layer’s “business logic” where elements in WML used to parameterize CBML behavior are mapped to this layer Template layer – acts as a bridge between the upper emulation layer & lower benchmarking layer to allows each to evolve independently of each other Benchmark layer – the actual benchmarking framework (e.g., CUTS) component method emulation template / benchmarking

CBML & WML Presentation James H. Hill Lessons Learned Using a DSML based on a mathematical formalism to define behavior of components helps in specifying unambiguous behavior when generating code & configuration files for emulation & simulation. Separating the workload, behavior, & structural models allows all to evolve independently of each other. Moreover, it encourages the same behavior model to be supported in multiple structural models to increase portability, flexibility, and usability. Using generative programming with templates that are parameterized by actions from behavioral models allows the DSML to easily be adapted to different environments of execution

CBML & WML Presentation James H. Hill Future Work Extend CBML with a simple programming language that will allow developers to use component properties & elements when defining behavior –e.g., event members Extend the current capabilities of both modeling languages and code generators to handle evaluation of real components –i.e., benchmarking them using ”realistic” input data) Extend the capabilities of WML such that existing class objects in the target programming language can be used in WML models –i.e., enable “real” implementation code to be generated directly from models. “real” component needs “real” data uses use value of input events

CBML & WML Presentation James H. Hill Concluding Remarks We described a MDE generative approach to address the challenges of evaluating component-based system QoS throughout the development lifecycle instead of delaying it to integration time Our approach included two DSMLs, namely CBML & WML, which allows use to generate realistic applications for emulation early in the development lifecycle Our approach facilitates continuous system integration – as real components are completed, they replace the emulated components Likewise, as more is learned about the system, component’s behavior can be refined & regenerated Tools are available as open-source & can be downloaded from: &

CBML & WML Presentation James H. Hill Questions