Overview of Prism-MW CS 795 / SWE 699 Sam Malek Spring 2010.

Slides:



Advertisements
Similar presentations
A Tailorable Environment for Assessing the Quality of Deployment Architectures in Highly Distributed Settings Sam Malek and Marija Mikic-Rakic Nels Beckman.
Advertisements

Content Interaction and Formatting, Tayeb LEMLOUMA & Nabil Layaïda. November Tayeb Lemlouma & Nabil Layaïda Presented by Sébastien Laborie November.
A component- and message-based architectural style for GUI software
Software Architecture Frameworks A Family of Implementations Nikunj Mehta Computer Science Department University of Southern California Los Angeles, CA.
Architecture Representation
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Sensor Network Platforms and Tools
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Software Architectures and Embedded Systems Nenad Medvidovic with Sam Malek and Marija Mikic-Rakic Computer Science Department University of Southern California.
Filling the Gap Between System Design & Performance Verification Rafik HENIA, Laurent RIOUX, Nicolas SORDON Thales Research & Technology.
Chapter 13 Embedded Systems
Technical Architectures
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
03/11/20021 PRISM Programming in the Small and Many Nenad Medvidovic Marija Mikic-Rakic
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Programming in the Many Software Engineering Paradigm for the 21 st Century Nenad Medvidovic Center for Software Engineering Computer Science Department.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
Prism-MW Tutorial. From Architecture to Design 2.
Chapter 13 Embedded Systems
1 Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors Nenad Medvidovic with Marija Rakic and Barry Boehm University.
Software Engineering and Middleware A Roadmap Author: Wolfgang Emmerich Presented by: Sam Malek.
1 Programming systems for distributed applications Seif Haridi KTH/SICS.
IACT 901 Module 9 Establishing Technology Strategy - Scope & Purpose.
University of Southern California Center for Systems and Software Engineering From Dependable Architectures To Dependable Systems Nenad Medvidovic Center.
Institute for Software Research©2001, University of California, Irvine Product-Line Architectures André van der Hoek Institute for Software Research University.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Thammanoon Kawinfruangfukul CSSE MS, ID: Middleware.
Computer Science 12 Embedded Systems Group © H. Falk | Dortmund, 08-Jul-08 Overview about Computer Science 12 at Dortmund University of Technology Heiko.
An Introduction to Software Architecture
International Conference on Software Engineering 2007
 Applied Architectures and Styles Chapter 11, Part 2 Service-Oriented Architectures and Web Services Architectures from Specific Domains Robotics Wireless.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Implementing Architectures Software Architecture.
Introduction to Distributed Systems Slides for CSCI 3171 Lectures E. W. Grundke.
A Style-Aware Architectural Middleware for Resource-Constrained, Distributed Systems CS 5381 Steven Ruiz Authors: Sam Malek, Marija Mikic-Rakic, and Nenad.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Plan  Introduction  What is Cloud Computing?  Why is it called ‘’Cloud Computing’’?  Characteristics of Cloud Computing  Advantages of Cloud Computing.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
Embedding Constraint Satisfaction using Parallel Soft-Core Processors on FPGAs Prasad Subramanian, Brandon Eames, Department of Electrical Engineering,
+ Overview of Embedded Systems & Embedded Software Engineering CSCI 589: Software Engineering for Embedded Systems.
Slide title In CAPITALS 50 pt Slide subtitle 32 pt Model based development for the RUNES component middleware platform Gabor Batori
Reliable Scheduling Again – just a single hit onto a very large area.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
DAME: A Distributed Diagnostics Environment for Maintenance Duncan Russell University of Leeds.
Prism-MW Tutorial CS 795 / SWE 699 Sam Malek Spring 2010.
Software Deployment and Mobility. Introduction Deployment is the placing of software on the hardware where it is supposed to run. Redeployment / migration.
Abstract A Structured Approach for Modular Design: A Plug and Play Middleware for Sensory Modules, Actuation Platforms, Task Descriptions and Implementations.
Internet of Things. IoT Novel paradigm – Rapidly gaining ground in the wireless scenario Basic idea – Pervasive presence around us a variety of things.
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Improving System Availability in Distributed Environments Sam Malek with Marija Mikic-Rakic Nels.
Architecture Description Languages (ADLs) Cf. Architecture Analysis and Design Languages.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
Software Architecture Lecture 3
Software Architecture
Implementing Architectures
Software Design and Architecture
Software Architecture Lecture 3
Model-Driven Analysis Frameworks for Embedded Systems
The Extensible Tool-chain for Evaluation of Architectural Models
Software Architecture Lecture 3
Implementing Architectures
Software Architecture Lecture 3
Software Connectors.
An Introduction to Software Architecture
Software Architecture Lecture 3
Automated Analysis and Code Generation for Domain-Specific Models
Software Architecture Lecture 3
Challenges in Implementing Software Architectures
Overview of Embedded Software Research at USC
Presentation transcript:

Overview of Prism-MW CS 795 / SWE 699 Sam Malek Spring 2010

2 Prism-MW A simple and extensible architectural middleware, i.e., a framework of abstract classes for architectural concepts such as (sub)systems, components, connectors, and events. The middleware supports composition of arbitrarily complex components and connectors. Objectives “Programming” Architectural abstractions directly reified in the implementation “Small” Efficiency demanded by resource constraints “Many” Scalability in the numbers of devices, threads, components, connectors, events Extensibility to support awareness, mobility, reconfigurability, security, delivery guarantees

Prism: Programming-in-the-Small-and-Many

Prism Challenges Resource constraints Demand highly efficient computation, communication, and memory footprint Demand unorthodox solutions e.g., off-loading components Hardware and software heterogeneity Proprietary operating systems Dialects of programming languages Device-specific data formats Lack of support for inter-device interaction Lack of support for code mobility

From architecture to implementation Architectures provide high-level concepts Components, connectors, ports, events, configurations Programming languages provide low-level constructs Variables, arrays, pointers, procedures, objects Bridging the two often is an art-form Middleware can help “split the difference” Existing middleware technologies Support some architectural concepts (e.g., components, events) but not others (e.g., configurations) Impose particular architectural styles End result  architectural erosion Architecture does not match the implementation What is needed is “architectural middleware”

Prism-MW An architectural middleware for embedded systems Supports architecture-based software development Architecture-based software development is the implementation of a software system in terms of its architectural elements Efficient Scalable Flexible and Extensible Allows us to cope with heterogeneity Supports arbitrary complex architectural styles

Architectural Middleware Natively support architectural concepts as middleware constructs Include system design support Typically via an accompanying ADL and analysis tools Support round-trip development From architecture to implementation and back Support automated transformation of architectural models to implementations i.e., dependable implementation Examples ArchJava Aura c2.fw Prism-MW

Architecture - DEMO class DemoArch { static public void main(String argv[]) { Architecture arch = new Architecture ("DEMO"); Using Prism-MW // create components ComponentA a = new ComponentA ("A"); ComponentB b = new ComponentB ("B"); ComponentD d = new ComponentD ("D"); Component B Component A Component D // create connectors Connector conn = new Connector("C"); CConnector C // add components and connectors arch.addComponent(a); arch.addComponent(b); arch.addComponent(d); arch.addConnector(conn); Component BComponent A Component D CConnector C // establish the interconnections arch.weld(a, conn); arch.weld(b, conn); arch.weld(conn, d) }

Component B handles the event and sends a response public void handle(Event e) { if (e.equals("Event_D")) {... Event e1= new Event("Response_to_D"); e1.addParameter("response", resp); send(e1); }... } Send (e1) Using Prism-MW Architecture - DEMO Component BComponent A Component D CConnector C Component D sends an event Event e = new Event ("Event_D"); e.addParameter("param_1", p1); send (e); Send (e)

Event Dispatching Component BComponent A D E 1 E 2 E 3 E 4 E 5 send Event handle Event Thread Pool E X E Component B ConnectorC X E2E2 2 E Scaffold Adaptation of an existing worker thread pool technique Topology based routing Single event queue for both locally and remotely generated events Easy redeployment and redistribution of applications onto different hardware configurations

Prism-MW Performance Efficiency 1750 SLOC 4600 B for the core 160 B per component 240 B per connector 70 B per weld 160 B per event 240 B per event parameter components connectors Total event roundtrip time 2.7 sec … Scalability Numbers of devices, threads and events not limited by Prism-MW Numbers of components and connectors available_memory – middleware_size average_element_size

Prism-MW Benchmarks on a PC

Prism-MW has been adopted by several industry partners Troops Deployment Simulation US Army MIDAS Bosch Research and Technology Center

Architecture of MIDAS

Recent Progress