130 likes | 283 Views
Using the Vanderbilt Generic Modeling Environment (GME) to Address SOA QoS. Sumant Tambe Graduate Intern, Applied Research, Telcordia Technologies Inc. stambe@telcordia.com June 17, 2009. Outline. Introduction to Model Integrated Computing (MIC) 4 layer meta-level architecture
E N D
Using the Vanderbilt Generic Modeling Environment (GME) to Address SOA QoS SumantTambe Graduate Intern, Applied Research, Telcordia Technologies Inc. stambe@telcordia.com June 17, 2009
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
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.
Defining domain models (Metamodeling) M3 M2 M1 M0 switch (state) { case ‘A’: /* ... */ case ‘B’: /* ... */
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, AkosLedeczi et al., IEEE Computer, Nov 2001
GME Editor (M1) snapshot Tree view A graphical domain model of signal flow graphs Parts browser with custom icons
Architecture of GME Object Constraint Language (OCL) Drag and drop Expand/Collapse Multi-view Event-driven API for model manipulation (R/W) (C++, Java, Python)
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)
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
A DSML Example: Component QoS Modeling Language (CQML) • Hierarchical structuring of component-based systems
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
A Prototype Structural SOA Modeling Language Using GME Metamodel