Applying Domain-Specific Modeling Languages to Develop DRE Systems

Slides:



Advertisements
Similar presentations
COM vs. CORBA.
Advertisements

Seminarium on Component-based Software Engineering Jan Willem Klinkenberg CORBA.
Object-Oriented Analysis and Design
Technical Architectures
Software Connectors. Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Client/Server Architecture
QoS-enabled middleware by Saltanat Mashirova. Distributed applications Distributed applications have distinctly different characteristics than conventional.
SSIS Over DTS Sagayaraj Putti (139460). 5 September What is DTS?  Data Transformation Services (DTS)  DTS is a set of objects and utilities that.
XForms: A case study Rajiv Shivane & Pavitar Singh.
Model Driven Techniques for Evaluating QoS of Middleware Configurations Arvind S. Krishna, Emre Turkay Andy Gokhale, & Douglas C. Schmidt Institute for.
An Introduction to Software Architecture
Introduction to MDA (Model Driven Architecture) CYT.
RepoMan A Component Repository Manager for Enterprise DRE Systems Stoyan Paunov & Douglas C. Schmidt Vanderbilt University Institute for Software Integrated.
SaveUML System design. System overview Possible...
Ocean Observatories Initiative Data Management (DM) Subsystem Overview Michael Meisinger September 29, 2009.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
CoSMIC: Tool-suite for Weaving Deployment & Configuration Crosscutting Concerns of CCM-based DRE Systems Dr. Aniruddha Gokhale (PI) Institute for Software.
Secure Systems Research Group - FAU SW Development methodology using patterns and model checking 8/13/2009 Maha B Abbey PhD Candidate.
Elmasri and Navathe, Fundamentals of Database Systems, Fourth Edition Copyright © 2004 Pearson Education, Inc. Slide 2-1 Data Models Data Model: A set.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
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
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Chapter 2 Database Environment.
Model-Driven Optimizations of Component Systems Vanderbilt University Nashville, Tennessee Institute for Software Integrated Systems OMG Real-time Workshop.
Lecture On Introduction (DBMS) By- Jesmin Akhter Assistant Professor, IIT, Jahangirnagar University.
4 th Workshop for TAO and CIAO July 16, 2004 MOF-Compliant Modeling of Middleware Jeff Parsons & Matt Emerson ISIS Vanderbilt University Nashville, TN.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Method – Notation 8 Hours.
Databases (CS507) CHAPTER 2.
Databases and DBMSs Todd S. Bacastow January 2005.
Introduction To DBMS.
Chapter 7: Modifiability
UML Diagrams By Daniel Damaris Novarianto S..
Sumant Tambe* Akshay Dabholkar Aniruddha Gokhale
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Chapter 2 Database System Concepts and Architecture
Unified Modeling Language
Chapter 2: System Structures
Software Design and Architecture
Distribution and components
Introduction to Operating System (OS)
UML Diagrams Jung Woo.
Krishnakumar Balasubramanian
Database System Concepts and Architecture
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Chapter 2 Database Environment Pearson Education © 2009.
A Platform-Independent Component Modeling Language for DRE Systems
The Extensible Tool-chain for Evaluation of Architectural Models
Applying Domain-Specific Modeling Languages to Develop DRE Systems
Data, Databases, and DBMSs
Lecture 1: Multi-tier Architecture Overview
Tools for Composing and Deploying Grid Middleware Web Services
Database Environment Transparencies
Overview of big data tools
Analysis models and design models
Constructing MDA-based Application Using Rational XDE for .NET
Software Connectors.
An Introduction to Software Architecture
Chapter 2: Operating-System Structures
Model-driven Deployment & Configuration of Component-based Systems
Software Analysis.
Design Yaodong Bi.
Database System Concepts and Architecture
Chapter 2: Operating-System Structures
Presentation transcript:

Applying Domain-Specific Modeling Languages to Develop DRE Systems Krishnakumar Balasubramanian kitty@dre.vanderbilt.edu Institute for Software Integrated Systems, Vanderbilt University Acknowledgements: Doug Schmidt November 25, 2018

Overview Deployment & Configuration of Component-based systems Introduction Challenges Platform-Independent Component Modeling Language (PICML) Future work

Overview of Component Middleware “Write Code That Reuses Code” Components encapsulate application “business” logic Components interact via ports Provided interfaces, e.g.,facets Required connection points, e.g., receptacles Event sinks & sources Attributes Containers provide execution environment for components with common operating requirements Components/containers can also Communicate via a middleware bus and Reuse common middleware services … Container … Middleware Bus Container … Security Replication Notification Persistence Scheduling A/V Streaming Load Balancing

Motivation for Deployment & Configuration Packaging & Deployment Component Properties Display Database Print File Component Assembly File Properties Database Properties Goals Ease component reuse Build complex applications by assembling existing components Standardize deployment of applications into heterogeneous domains Separation of concerns Component development Application assembly Application deployment Application configuration Middleware configuration

OMG Deployment & Configuration Spec Specification defines deployment of component-based applications Intended to replace Packaging & Deployment chapter of CCM specification Meta-information is captured using XML descriptors Platform Independent Model (PIM) Defined in two dimensions Data models vs. management (run-time) models Component software vs. target vs. execution

Platform-independent Model (PIM) Dimensions Modeling view-points Conceptual, logical, & physical view-point Platform-independent model Conceptual & logical viewpoint of deployment & configuration Defined in two-dimensions PIM Data Model Run-time Model Component Software Meta-data to describe component based applications and their requirements Interfaces to browse, store and retrieve such meta-data Target Meta-data to describe heterogeneous distributed systems & their capabilities Interfaces to collect & retrieve such meta-data and commit resources Execution Meta-data to describe a specific deployment of an application into a distributed system Prepare environment, Execute on target to Deployment plan, manage lifecycle

PIM Mapping to CCM Physical viewpoint Mapping from PIM to platform specific model (PSM) for CCM Set of transformations T1  PIM to PSM for CCM T2  PSM to PSM for IDL PSM for XML Set of mapping rules M1  PSM to IDL M2  PSM to XML schema

Deployment & Configuration Activities Descriptors are passive entities Manipulated by Actors Different Stages Development Developer Assembler Packager Target Domain Administrator Deployment Repository Administrator Planner Executor Actors are abstract

Configuration Challenges Context Configuring & composing component-based applications using XML meta-data Problem Meta-data split across multiple XML descriptors Complex inter-dependencies between descriptors XML is error-prone to read/write manually No guarantees about semantic validity (only syntactic validation possible) If meta-data is wrong, what about the application?

Platform-Independent Component Modeling Language Solution PlCML Developed in Generic Modeling Environment (GME) Core of Component Synthesis using Model-Integrated Computing (CoSMIC) toolchain Capture elements & dependencies visually Define “static semantics” using Object Constraint Language (OCL) Define “dynamic semantics” via model interpreters Also used for generating domain specific meta-data “Correct-by-construction”

Steps in a typical usage of PICML (1/2) Define component types Import/Export IDL Define implementation artifacts External libraries, individual component libraries Define component implementations Monolithic components Assembly-based components Assembly of assemblies

Steps in a typical usage of PICML (2/2) Define component packages Configure (previously defined) component packages Define deployment target Can be done as a decoupled activity Define deployment plan Place components on different nodes of the target

Hierarchical Composition Six streams of image data System incomprehensible Hierarchical composition Reason about system at multiple levels of abstraction

Types Of Meta-data generated by PICML Component Interface Descriptor (.ccd) Describes the interface, ports, properties of a single component Implementation Artifact Descriptor (.iad) Describes the implementation artifacts (e.g., DLLs, OS, etc.) of a single component Component Package Descriptor (.cpd) Describes multiple alternative implementations of a single component Package Configuration Descriptor (.pcd) Describes a specific configuration of a component package Component Implementation Descriptor (.cid) Describes a specific implementation of a component interface Contains component inter-connection information Component Deployment Plan (.cdp) Plan which guides the actual deployment Component Domain Descriptor (.cdd) Describes the target domain of deployment Component Packages (.cpk) Aggregation of all of the above

Example Application: RobotAssembly Conveyor Power Switching Unit Conveyor Drive System Management Work Instructions Radio Intrusion Alarm Discretes Pallet Present Switches Pallet Release Switch Human Machine Interface* Watch Setting Manager* Pallet Conveyor Manager Off Enable Off Enable Fast Assembly Area Intrusion Robot Manager* Control Station Robot in Work Area Storage Device Controller Disk Storage Clock Handler

RobotAssembly in PICML

Example output for RobotAssembly <!–-Component Implementation Descriptor(.cid) associates components with impl. artifacts--> <Deployment:ComponentImplementationDescription>   <UUID>FB9D7161-1765-4784-BC1D-EA9EAAB3ED2A</UUID>   <implements href="RobotManager.ccd" /> <monolithicImpl> <primaryArtifact>   <name>RobotManager_exec</name>   <referencedArtifact href="RobotManager_exec.iad" />   </primaryArtifact>   <name>RobotManager_stub</name>   <referencedArtifact href="RobotManager_stub.iad" />   <name>RobotManager_svnt</name>   <referencedArtifact href="RobotManager_svnt.iad“ />   </monolithicImpl> </Deployment:ComponentImplementationDescription>

Example Application: UAV

UAV in PICML

Concluding Remarks Model component-based systems PICML Model component-based systems Allows design-time validation of systems Generates component meta-data Future work Scalability issues Traditional system analysis Complete system generation aka “Middleware Compiler” Generate optimized systems aka “Optimizing Middleware Compiler” Available as open-source http://cvs.dre.vanderbilt.edu (CoSMIC)

Questions?

Types Of Meta-data generated by PICML(2/2)

XML Schema Compiler (XSC) Context Increasing use of XML as a data exchange format Problem Standard XML parsing API such as DOM lacks element type information Complex implementations to create in-memory representation Solution XML Schema Compiler (XSC) Static typing using a set of mapping rules Generates C++ (Native/CORBA) from XML schema Generates parser for creating in-memory representation of XML files Customizable code generation using traversal mechanism

Deployment Challenges Context Deploying an application built using COTS components Problem Complex applications Large no. of components Micro-management of components Difficulty in reasoning complete end-to-end behaviour Manual deployment inherently error-prone Ad hoc scripts no better

Deployment And Configuration Engine (DAnCE) Solution Deployment & Configuration Engine (DAnCE) First-cut implementation of deployment infrastructure Partial implementation of the following interfaces: RepositoryManager NodeManager NodeApplicationManager DomainApplicationManager NodeApplication ExecutionManager Processes XML meta-data generated by PICML Synergy between CIAO, DAnCE and CoSMIC CIAO CoSMIC DAnCE

Node vs. Domain Domain* provides functionality at the domain level Node* provides similar functionality but are restricted to a Node ApplicationManager Deals with application launch and tear-down Application Deals with creation, control of component homes & components

Planning Component Packages are installed into the Component Repository RepositoryManager parses XML meta-data into in-memory representation Executor creates global deployment plan and passes it along to DomainApplicationManager DomainApplicationManager splits it into multiple local plans Contacts NodeManager to create appropriate NodeApplicationManagers

Initiating Application Launch Executor initiates launching of the application DomainApplicationManager creates a DomainApplication object Furthers application launch by contacting individual NodeApplicationManagers NodeApplicationManagers create appropriate number of NodeApplications

Completing Application Launch Executor notifies DomainApplication of completion of application launch DomainApplication initiates NodeApplications to complete application launch Connections between components are done at this stage At the end of this stage, Components are ready to handle calls from clients

Application Teardown Executor initiates tear-down by first terminating the running applications DomainApplicationManager ensures tear down of NodeApplications It then tears down all the managers