Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
Advertisements

© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Documenting a Software Architecture By Eng. Mohanned M. Dawoud.
Component Interaction in Distributed Systems Nat Pryce Imperial College
Common Object Request Broker Architecture (CORBA) By: Sunil Gopinath David Watkins.
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
CIM2564 Introduction to Development Frameworks 1 Overview of a Development Framework Topic 1.
Technical Architectures
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Agenda Architectural Styles The Alfa Project Architectural framework.
The WSMO / L / X Approach Michael Stollberg DERI – Digital Enterprise Research Institute Alternative Frameworks for Semantics in Web Services: Possibilities.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
JSLEE. What is JSLEE ? is an event oriented application middleware. Its main job is to receive events from external resources and deliver these events.
Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Architectural Styles Characterize –Structure, i.e. external.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Object Based Operating Systems1 Learning Objectives Object Orientation and its benefits Controversy over object based operating systems Object based operating.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Chapter 10 Architectural Design
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
 Cloud computing  Workflow  Workflow lifecycle  Workflow design  Workflow tools : xcp, eucalyptus, open nebula.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
University of Utah SoCCS Lecture 61 Architecture – An Introduction CS Lecture 6 Nathan Dykman.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 10: Service Component Architecture.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
Lecture 9: Chapter 9 Architectural Design
Architecting Web Services Unit – II – PART - III.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
DCE (distributed computing environment) DCE (distributed computing environment)
Chapter 13 Architectural Design
Journée Informatique Embarquée Du Matériel au Logiciel PolyORB a schizophrenic middleware Laurent Pautet, ENST Fabrice Kordon, LIP6/SRC Jérôme Hugues,
Class 5 Architecture-Based Self-Healing Systems David Garlan Carnegie Mellon University.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Secure Systems Research Group - FAU SW Development methodology using patterns and model checking 8/13/2009 Maha B Abbey PhD Candidate.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Rational Unified Process Fundamentals Module 7: Process for e-Business Development Rational Unified Process Fundamentals Module 7: Process for e-Business.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Laboratory of Model Driven Engineering for Embedded Systems An Execution Framework for MARTE-based Models UML&AADL’2008 workshop Belfast, Northern Ireland.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
1 Object Oriented Logic Programming as an Agent Building Infrastructure Oct 12, 2002 Copyright © 2002, Paul Tarau Paul Tarau University of North Texas.
Software Architectural Views By the end of this lecture, you will be able to: list and describe the views in the 4+1 view model of software architecture.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Design Reuse Earlier we have covered the re-usable Architectural Styles as design patterns for High-Level Design. At mid-level and low-level, design patterns.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
1 G52IWS: Web Services Chris Greenhalgh. 2 Contents The World Wide Web Web Services example scenario Motivations Basic Operational Model Supporting standards.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
What’s Ahead for Embedded Software? (Wed) Gilsoo Kim
GRID ANATOMY Advanced Computing Concepts – Dr. Emmanuel Pilli.
Lecture 21: Component-Based Software Engineering
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Chapter 13 설계 개념 Architectural Design 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim for the book “Software Engineering: A Practitioner’s.
Enterprise Architectures Course Code : CPIS-352 King Abdul Aziz University, Jeddah Saudi Arabia.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Architecting Web Services
Architecting Web Services
Inventory of Distributed Computing Concepts and Web services
Tools for Composing and Deploying Grid Middleware Web Services
Analysis models and design models
Distributed Systems through Web Services
Presentation transcript:

Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon

Jérôme HuguesRefining middleware functions for verification purpose 2 Distribution middleware (MW)  Multiple dimensions Domains: avionics, space, transportation Families: reliability, integrity  Application = f (Domains, Families) Different distribution requirements or needs Various facilities: DOC, RPC, MP, (D)SM Different models: CORBA, DSA, JMS  Middleware architectures that enable Customization Verification

Jérôme HuguesRefining middleware functions for verification purpose 3 Goal: build proof-based middleware  A priori: engineering process Guidelines for certification Restricted profiles: e.g. Ravenscar Modeling: MetaH, AADL  A posteriori: verification Modeling + formal methods and tools  How to handle variations (DxF space) ? 1.Reduce MW components scope 2.Define MW component connectors 3.Define a MW architecture to ease verification

Jérôme HuguesRefining middleware functions for verification purpose 4 Variations: configurability  Minor variations at deployment Communication channels OS, runtime or hardware capabilities Implementation of software components  Design patterns and frameworks are appropriate solutions at this level: one can choose the most adequate implementation for a specific component

Jérôme HuguesRefining middleware functions for verification purpose 5 Variations: genericity  Major variations in distribution facilities  Generic middleware: Single architecture Generic components + abstract interfaces  Personality: Instance of generic middleware for a given distribution model Built from a restricted set of general and specific components  Jonathan/Quarterware/ACT Increases code reusability, but limited (10-25%)

Jérôme HuguesRefining middleware functions for verification purpose 6 Beyond configurability & genericity  Several domains/families in one application Integrity, reliability,..  Heterogeneous distribution models in one application Redundant components => Large footprint Interacting components => Support for heterogeneity  Strong architecture and component requirements Aggressive code reuse Interoperable components => Neutral from distribution model  “Schizophrenic middleware” (extreme genericity) Collocating and interacting personalities

Jérôme HuguesRefining middleware functions for verification purpose 7 PolyORB: schizophrenic middleware  Developed in Ada, approx. 110 klocs  Configurability: component-level Well-known or new patterns Tasking profiles: no tasking, full tasking, Ravenscar  Genericity: architecture Separation of key middleware functions Functional implementation of CORBA, MOMA, DSA, AWS, SOAP, IIOP, MIOP Instantiations: 75% code from generic layer  Performance Compete with traditional middleware for similar setups Greater code reuse than generic middleware  Entered industrialization process Supported free software (Ada Core Technologies)

Jérôme HuguesRefining middleware functions for verification purpose 8 Neutral Core Middleware Key MW mechanisms Schizophrenic MW: collocating and interacting personalities  Neutral core MW: MW mechanisms as generic components ensures high code reuse ratio CORBA (DOC)DSA (RPC) AWS (WEB) MOMA (MOM) Application personalities SOAP (XML)IIOP (TCP) DIOP (UDP) MIOP (multicast) Protocol personalities

Jérôme HuguesRefining middleware functions for verification purpose 9 Refining MW functions for verification purpose  Neutral Core Middleware: 7 core functions Simple: finite state machines, data manipulators  Coordinated by a broker architectural component To be verified first ExecutionActivation BindingAddressing RepresentationProtocol Broker Transport

Jérôme HuguesRefining middleware functions for verification purpose 10 How to model the broker ?  Combination of 2 “modeling facilities” 1.To catch broker behavior 2.and then to detail it for verification  One high-level model Descriptive & easy to manipulate  One lower-level model Enable formal verification

Jérôme HuguesRefining middleware functions for verification purpose 11 How to describe the broker ?  Design patterns “Solutions for recurrent problems” Many patterns documented Typical solutions to design middleware  Well-known “broker” patterns Coordinate entities in distributed application Covers client, server, communication,.. Too large !!

Jérôme HuguesRefining middleware functions for verification purpose 12  Reduce broker to generic abstractions Express interactions with core services Refining broker: Broker (1/2)  Broker Addressing Binding Activation Protocol

Jérôme HuguesRefining middleware functions for verification purpose 13 Refining broker: Broker (2/2) Addressing Binding Activation Protocol Job Queues Async. I/O Scheduler  Introduce simpler abstractions  Notionally equivalent to broker pattern  Broker

Jérôme HuguesRefining middleware functions for verification purpose 14 How to verify the Broker ?  Specification of the Broker Driven by external events + parallelism  Modeled using Petri nets Structural methods Model checking CASE tools available Assembly-like Computable properties  Deadlocks, bounds  Execution paths class C is 1.. 2; Domain D is ; Var x, y in C;

Jérôme HuguesRefining middleware functions for verification purpose 15 Modeling steps  Define sub-models One per modeled function/entity Can be tested separately  Build complete model Composition of sub-models  Inherit some properties from sub-models Support for Broker verification  Scenarios Specific Petri nets to model external interactions  Incoming data, local user code

Jérôme HuguesRefining middleware functions for verification purpose 16 One model: Try_Check_Sources  Monitors I/O sources  #1: Poll on event sources ChckSrcB/ChckSrcE SigOut signals events  #2: Process I/O Under mutual exclusion Build jobs “event on s” Queue jobs for processing

Jérôme HuguesRefining middleware functions for verification purpose 17 Properties inheritance benefit  Instances inherit some properties from Neutral Core MW Enable verification of multiple instances.. at reduced cost Genericity Configurability Instances Neutral Core MW Verified Not verified

Jérôme HuguesRefining middleware functions for verification purpose 18 Conclusion  Requirements for new middleware Domain x Family space  Middleware personalization & verification  Flexible architecture that separate concerns Aggressive code configurability and genericity to enable verification  Are “schizophrenic” middleware one step forward in the good direction ? Configurability, genericity Prototyping of distribution middleware Formal verification of core components  Requirements from para-functional elements ?