Using the Vanderbilt Generic Modeling Environment (GME) to Address SOA QoS
description
Transcript of Using the Vanderbilt Generic Modeling Environment (GME) to Address SOA QoS
Using the Vanderbilt Generic Modeling Environment (GME) to Address SOA QoS
Sumant TambeGraduate Intern, Applied Research, Telcordia Technologies Inc. [email protected] 17, 2009
2 / 13
Outline Introduction to Model Integrated Computing (MIC)
– 4 layer meta-level architecture Overview of GME
– Background, architecture, metamodeling, and tooling Examples of Domain-Specific Modeling
Languages (DSMLs)– Component QoS Modeling Language (CQML)
Tutorial for creating a simple structural SOA modeling language using GME
3 / 13
Model Integrated Computing (MIC)
Motivation– Design documents are not just documentation, they are
part of the system. Capture specification in the form of domain models
– Ideally, correct-by-construction– Higher level and highly intuitive– Speak the language of the domain
Automate system development process– Formal analysis, simulation, platform-specific
code/configuration generation, deployment meta-data, etc.
4 / 13
Defining domain models (Metamodeling)
switch (state) { case ‘A’: /* ... */ case ‘B’: /* ... */
M3
M2
M1
M0
5 / 13
Generic Modeling Environment (GME) – A mature metamodeling tool
Developed at Institute for Software Integrated Systems (ISIS), Vanderbilt University
Under development since 1995 Supports 4-layer metamodeling
architecture
API support in C++, Java, Python Different model storage formats: database, binary, XML Classic paper: Composing Domain-Specific Design
Environments, Akos Ledeczi et al., IEEE Computer, Nov 2001
6 / 13
GME Editor (M1) snapshot
Parts browser with custom icons
A graphical domain modelof signal flow graphs
Tree view
7 / 13
Architecture of GME
Event-driven
Drag and drop
Expand/Collapse
Multi-view
Object Constraint Language (OCL)
API for model manipulation (R/W)(C++, Java, Python)
8 / 13
Metamodeling Using GME
MetaGME: GME’s metamodeling language (M3) MetaGME is meta-circular (can describe itself) Very similar to UML class diagrams Supports general modeling concepts such as
– First class domain concepts (classes)– Textual, numerical, and enumerated attributes – Hierarchy (UML composition)– Connection (UML association)– Inheritance (interface/implementation inheritance)– Reference– Multi-aspect modeling (view-per-concern)
9 / 13
Defining Domain Specific Modeling Languages (DSMLs) Using GME DSMLs capture the domain formally
– E.g., State machines, Component-based systems, Web page navigation modeling language
Only allows ”valid” sentences in the domain – Correct-by-construction
Every DSML has 3 parts– Abstract syntax (relationship of the domain concepts)– Concrete syntax (textual, graphical, tabular)– Semantics
Static semantics specified using metamodel cardinalities & OCL Dynamic semantics implemented using translators
10 / 13
A DSML Example: Component QoS Modeling Language (CQML) Hierarchical structuring of component-based systems
Detector1
Detector2
Planner3 Planner1
Error Recovery
Effector1
Effector2
Config
LEGEND
Receptacle
Event Sink
Event Source
Facet
11 / 13
CQML QoS Modeling(2/2)
FailOverUnit– Annotate protected components and
assemblies– Specify # of replicas
Network-level QoS– Annotate component connections– Specify priority of communication traffic– QoS provisioning using differentiated
services– Work done with Telcordia in 2006!
Security QoS– Annotate component ports or connections– Controls role-based access control
(RBAC) Policies
12 / 13
A Prototype Structural SOA Modeling Language Using GME
Metamodel
13 / 13
Thank you!