From Dependable Architectures To Dependable Systems

  • View
    60

  • Download
    1

Embed Size (px)

DESCRIPTION

From Dependable Architectures To Dependable Systems. Nenad Medvidovic Center for Systems and Software Engineering Computer Science Department Viterbi School of Engineering University of Southern California Los Angeles, U.S.A. neno@usc.edu. Goals of the Talk. Identify some challenges - PowerPoint PPT Presentation

Text of From Dependable Architectures To Dependable Systems

  • From Dependable ArchitecturesTo Dependable Systems

    Nenad MedvidovicCenter for Systems and Software Engineering Computer Science Department Viterbi School of Engineering University of Southern California Los Angeles, U.S.A. neno@usc.edu

    USC-CSSE

  • Goals of the TalkIdentify some challengesSuggest some solutionsMotivate future researchInvite dissenting opinions

    USC-CSSE

  • Goals of the Talk

    The problem is this big and sometimes ill-defined

    USC-CSSE

  • Goals of the TalkI will talk to you about this much of it

    USC-CSSE

  • Goals of the TalkI will suggest a solution for this much of it

    USC-CSSE

  • Goals of the TalkBut, hopefully, we will have this much fun!

    USC-CSSE

  • What Is Dependability?Degree of user confidence that the system will operate as expectedKey dimensionsAvailabilityReliabilitySecuritySafetyBut alsoRepairabilityMaintainabilitySurvivabilityFault tolerance

    USC-CSSE

  • What Is Architecture?A high-level model of a systemThe systems blueprintRepresents system organizationDataComputationInteractionStructureEmbodies system propertiesCommunication integrity, performance, throughput, liveness, . . .Can/does it embody dependability?(how) Can those properties be transferred to the system itself?

    USC-CSSE

  • A Traditional Architectural Model

    USC-CSSE

  • A Traditional Architectural ModelWhat/where is the dependability?

    USC-CSSE

  • A Standard Architectural Model

    USC-CSSE

  • A Standard Architectural Model

    USC-CSSE

  • A Standard Architectural ModelWhat/where is the dependability?

    USC-CSSE

  • But, We Can Model AnythingMeta-H, ROOM, UniCon, etc. can help ensure real-time properties in modelsMarkov chains can help ensure reliability in modelsMulti-versioning connectors can help ensure fault toleranceCode/data mobility and replication formalisms can help ensure availability. . .

    USC-CSSE

  • But, We Can Model AnythingMeta-H, ROOM, UniCon, etc. can help ensure real-time properties in modelsMarkov chains can help ensure reliability in modelsMulti-versioning connectors can help ensure fault toleranceCode/data mobility and replication formalisms can help ensure availability. . .

    So then the problem is solved, right?

    USC-CSSE

  • Why the Problem Isnt Solved

    USC-CSSE

  • Why the Problem Isnt SolvedArchitecture(ADL)

    USC-CSSE

  • Why the Problem Isnt SolvedArchitecture(ADL)Design(UML)

    USC-CSSE

  • Why the Problem Isnt SolvedArchitecture(ADL)Implementation(middleware, bustechnolgies)Design(UML)Object-OrientedProgramming Language (OOPL)D/COMCORBAC++JavaVisual BasicJEDIJava BeansC2

    USC-CSSE

  • Why the Problem Isnt Solved

    USC-CSSE

  • Why the Problem Isnt SolvedW

    USC-CSSE

  • Why the Problem Isnt SolvedW1WW2W3

    USC-CSSE

  • Why the Problem Isnt SolvedW1WW2W3W11W21W31W12W22W13Q

    USC-CSSE

  • From Models to Systems

    USC-CSSE

  • From Models to Systems

    USC-CSSE

  • From Models to Systems

    USC-CSSE

  • The remainder of this talk will focus on two key questions:

    USC-CSSE

  • 1. How do we get from

    USC-CSSE

  • 1. How do we get fromand

    USC-CSSE

  • 1. How do we get fromtoand

    USC-CSSE

  • 1. How do we get fromtoto?and

    USC-CSSE

  • 2. How do we know

    USC-CSSE

  • 2. How do we know

    USC-CSSE

  • 2. How do we knowis better than?

    USC-CSSE

  • OutlineFrom architectures to systemsEnsuring dependability Problem definitionProposed solutionConcluding remarks

    USC-CSSE

  • OutlineFrom architectures to systemsEnsuring dependability Problem definitionProposed solutionConcluding remarks

    USC-CSSE

  • How Do I Dependably Implement an Architecture?Architectures provide high-level conceptsComponents, connectors, ports, events, configurationsProgramming languages provide low-level constructsVariables, arrays, pointers, procedures, objectsBridging the two often is an art-formMiddleware can help split the differenceExisting middleware technologiesSupport some architectural concepts (e.g., components, events)but not others (e.g., connectors, configurations)Impose particular architectural styles

    USC-CSSE

  • How Do I Dependably Implement an Architecture?Architectures provide high-level conceptsComponents, connectors, ports, events, configurationsProgramming languages provide low-level constructsVariables, arrays, pointers, procedures, objectsBridging the two often is an art-formMiddleware can help split the differenceExisting middleware technologiesSupport some architectural concepts (e.g., components, events)but not others (e.g., connectors, configurations)Impose particular architectural stylesWhat is needed is architectural middleware

    USC-CSSE

  • Architectural MiddlewareNatively support architectural concepts as middleware constructsInclude system design supportTypically via an accompanying ADL and analysis toolsMay support explicit architectural stylesSupport round-trip developmentFrom architecture to implementation and backSupport automated transformation of architectural models to implementationsi.e., dependable implementationExamplesArchJavaAurac2.fwPrism-MW

    USC-CSSE

  • Dependable ImplementationArchitecture(ADL)Implementation(middleware, bustechnolgies)Design(UML)Object-OrientedProgramming Language (OOPL)D/COMCORBAC++JavaVisual BasicJEDIJava BeansC2

    USC-CSSE

  • Dependable ImplementationArchitecture(ADL)Implementation(middleware, bustechnolgies)Object-OrientedProgramming Language (OOPL)D/COMCORBAC++JavaVisual BasicJEDIJava BeansC2

    USC-CSSE

  • Dependable ImplementationArchitecture(ADL)Implementation(middleware, bustechnolgies)Object-OrientedProgramming Language (OOPL)D/COMCORBAC++JavaVisual BasicJEDIJava BeansC2

    USC-CSSE

  • Example: Prism-MW

    USC-CSSE

    IComponent

    IConnector

    Scaffold

    Abstract Dispatcher

    Round Robin Dispatcher

    Abstract Scheduler

    Fifo Scheduler

    Brick

    Architecture

    Extensible Component

    Component

    Connector

    Event

    Port

    IPort

    Serializable

    IArchitecture

    #mutualPort

  • Example: Prism-MW

    USC-CSSE

    IComponent

    IConnector

    Scaffold

    Abstract Dispatcher

    Round Robin Dispatcher

    Abstract Scheduler

    Fifo Scheduler

    Brick

    Architecture

    Extensible Component

    Component

    Connector

    Event

    Port

    IPort

    Serializable

    IArchitecture

    #mutualPort

  • Example: Prism-MW

    USC-CSSE

    IComponent

    IConnector

    Scaffold

    Abstract Dispatcher

    Round Robin Dispatcher

    Abstract Scheduler

    Fifo Scheduler

    Brick

    Architecture

    Extensible Component

    Component

    Connector

    Event

    Port

    IPort

    Serializable

    IArchitecture

    #mutualPort

  • Example: Prism-MW

    USC-CSSE

    IComponent

    IConnector

    Scaffold

    Abstract Dispatcher

    Round Robin Dispatcher

    Abstract Scheduler

    Fifo Scheduler

    Brick

    Architecture

    Extensible Component

    Component

    Connector

    Event

    Port

    IPort

    Serializable

    IArchitecture

    #mutualPort

  • Example: Prism-MW

    USC-CSSE

    IComponent

    IConnector

    Scaffold

    Abstract Dispatcher

    Round Robin Dispatcher

    Abstract Scheduler

    Fifo Scheduler

    Brick

    Architecture

    Extensible Component

    Component

    Connector

    Event

    Port

    IPort

    Serializable

    IArchitecture

    #mutualPort

  • Example: Prism-MW

    USC-CSSE

    IComponent

    IConnector

    Scaffold

    Abstract Dispatcher

    Round Robin Dispatcher

    Abstract Scheduler

    Fifo Scheduler

    Brick

    Architecture

    Extensible Component

    Component

    Connector

    Event

    Port

    IPort

    Serializable

    IArchitecture

    #mutualPort

  • Using Prism-MW

    USC-CSSE

  • Using Prism-MWArchitecture - DEMOclass DemoArch { static public void main(String argv[]) { Architecture arch = new Architecture ("DEMO");

    USC-CSSE

  • Using Prism-MWArchitecture - DEMOclass DemoArch { static public void main(String argv[]) { Architecture arch = new Architecture ("DEMO");// create componentsComponentA a = new ComponentA ("A");ComponentB b = new ComponentB ("B");ComponentD d = new ComponentD ("D");

    USC-CSSE

  • Using Prism-MWArchitecture - DEMOclass DemoArch { static public void main(String argv[]) { Architecture arch = new Architecture ("DEMO");// create componentsComponentA a = new ComponentA ("A");ComponentB b = new ComponentB ("B");ComponentD d = new ComponentD ("D");// create connectorsConnector conn = new Connector("C");

    USC-CSSE

  • Using Prism-MWArchitecture - DEMOclass DemoArch { static public void main(String argv[]) { Architecture arch = new Architecture ("DEMO");// create componentsComponentA a = new ComponentA ("A");ComponentB b = new ComponentB ("B");ComponentD d = new ComponentD ("D");// create connectorsConnector conn = new Connector("C");// add components and connectors arch.addComponent(a);arch.addComponent(b);arch.addComponent(d);arch.addConnector(conn);

    USC-CSSE

  • Using Prism-MWArchitecture - DEMOclass DemoArch { static public void main(String argv[]) { Architecture arch = new Arc