19
Model-Driven Engineering for Model-Driven Engineering for Development-Time QoS Validation of Development-Time QoS Validation of Component-based Software Systems 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 26- 29, 2007 Tucson, AZ, USA

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

Embed Size (px)

Citation preview

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

Model-Driven Engineering for Development-Model-Driven Engineering for Development-Time QoS Validation of Component-based Time QoS Validation of Component-based

Software SystemsSoftware SystemsJames Hill, Sumant Tambe & Aniruddha Gokhale

Vanderbilt University, Nashville, TN, USA

IEEE International Conference & Workshop on Engineering of Computer Based Systems (ECBS 07)

March 26- 29, 2007Tucson, AZ, USA

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

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.

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

CBML & WML Presentation James H. Hill

Application components developed after

infrastructure is mature

Development Timeline

Level of

Ab

stra

ctio

n

System infrastructure components developed

first

Serialized Phasing is Common in Large-scale Systems (1/2)

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

CBML & WML Presentation James H. Hill

Serialized Phasing is Common in Large-scale Systems (2/2)

Development Timeline

Level of

Ab

stra

ctio

n

Integration Surprises!!!

System integration & testing

Finished development

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

CBML & WML Presentation James H. Hill

Complexities of Serialized Phasing

Development Timeline

Level of

Ab

stra

ctio

n

Still in development

Ready for testingComplexities• System infrastructure cannot be

tested adequately until applications are done

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

CBML & WML Presentation James H. Hill

Complexities of Serialized Phasing

Development Timeline

Level of

Ab

stra

ctio

n

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

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

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 lifecyclehttp://www.dre.vanderbilt.edu/~hillj/docs/publications/CUTS-RTCSA06.pdf

Component Workload Emulator (CoWorkEr) Utilization Test Suite (CUTS) Workflow

ValidateDesign

Conformance

ValidateDesignRules

Conduct“What If”Analysis

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

CBML & WML Presentation James H. Hill

Case Study: Distributed Stock Application (DSA) (1/2)

Usage Patterns by User Type

Type Percentage Response Time (msec)

Basic (Client A) 65% 300

Gold (Client B) 35% 150Implementation 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

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

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

CCMMicrosoft .NET

Replaceable with “real” component

Realistic behavior & workload

Realistic user behavior

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

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 (http://www.isis.vanderbilt.edu/projects/GME)

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

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

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

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

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

CBML & WML Presentation James H. Hill

Ensuring Scalability of CBMLContext• 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)

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

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

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

CBML & WML Presentation James H. Hill

Integrating WML Models with CBML ModelsIntegration 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

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

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

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

CBML & WML Presentation James H. Hill

Code Generation for EmulationContext • 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

emulationtemplate / benchmarking

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

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:http://www.dre.vanderbilt.edu/CoSMIC & http://www.dre.vanderbilt.edu/CUTS

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

CBML & WML Presentation James H. Hill

Questions