Download presentation
Presentation is loading. Please wait.
1
University of Southern California Center for Systems and Software Engineering 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 neno@usc.edu
2
University of Southern California Center for Systems and Software Engineering Goals of the Talk Identify some challenges Suggest some solutions Motivate future research Invite dissenting opinions
3
University of Southern California Center for Systems and Software Engineering Goals of the Talk The problem is this big and sometimes ill-defined
4
University of Southern California Center for Systems and Software Engineering Goals of the Talk I will talk to you about this much of it
5
University of Southern California Center for Systems and Software Engineering Goals of the Talk I will suggest a solution for this much of it
6
University of Southern California Center for Systems and Software Engineering Goals of the Talk But, hopefully, we will have this much fun!
7
University of Southern California Center for Systems and Software Engineering What Is Dependability? Degree of user confidence that the system will operate as expected Key dimensions –Availability –Reliability –Security –Safety But also –Repairability –Maintainability –Survivability –Fault tolerance
8
University of Southern California Center for Systems and Software Engineering What Is Architecture? A high-level model of a system –The system’s “blueprint” Represents system organization –Data –Computation –Interaction –Structure Embodies system properties –Communication integrity, performance, throughput, liveness,... Can/does it embody dependability? (how) Can those properties be transferred to the system itself?
9
University of Southern California Center for Systems and Software Engineering A “Traditional” Architectural Model
10
University of Southern California Center for Systems and Software Engineering A “Traditional” Architectural Model What/where is the dependability?
11
University of Southern California Center for Systems and Software Engineering A “Standard” Architectural Model
12
University of Southern California Center for Systems and Software Engineering A “Standard” Architectural Model
13
University of Southern California Center for Systems and Software Engineering A “Standard” Architectural Model What/where is the dependability?
14
University of Southern California Center for Systems and Software Engineering But, We Can Model Anything Meta-H, ROOM, UniCon, etc. can help ensure real-time properties in models Markov chains can help ensure reliability in models Multi-versioning connectors can help ensure fault tolerance Code/data mobility and replication formalisms can help ensure availability...
15
University of Southern California Center for Systems and Software Engineering But, We Can Model Anything Meta-H, ROOM, UniCon, etc. can help ensure real-time properties in models Markov chains can help ensure reliability in models Multi-versioning connectors can help ensure fault tolerance Code/data mobility and replication formalisms can help ensure availability... So then the problem is solved, right?
16
University of Southern California Center for Systems and Software Engineering Why the Problem Isn’t Solved
17
University of Southern California Center for Systems and Software Engineering Architecture (ADL) Why the Problem Isn’t Solved
18
University of Southern California Center for Systems and Software Engineering Architecture (ADL) Design (UML) Why the Problem Isn’t Solved
19
University of Southern California Center for Systems and Software Engineering Architecture (ADL) Implementation (middleware, bus technolgies) Design (UML) Object-Oriented Programming Language (OOPL) D/COM CORBA C++ Java Visual Basic JEDI Java Beans C2 Why the Problem Isn’t Solved
20
University of Southern California Center for Systems and Software Engineering Why the Problem Isn’t Solved
21
University of Southern California Center for Systems and Software Engineering Why the Problem Isn’t Solved
22
University of Southern California Center for Systems and Software Engineering Why the Problem Isn’t Solved
23
University of Southern California Center for Systems and Software Engineering Why the Problem Isn’t Solved
24
University of Southern California Center for Systems and Software Engineering From Models to Systems
25
University of Southern California Center for Systems and Software Engineering From Models to Systems
26
University of Southern California Center for Systems and Software Engineering From Models to Systems
27
University of Southern California Center for Systems and Software Engineering The remainder of this talk will focus on two key questions:
28
University of Southern California Center for Systems and Software Engineering 1. How do we get from
29
University of Southern California Center for Systems and Software Engineering and 1. How do we get from
30
University of Southern California Center for Systems and Software Engineering to and 1. How do we get from
31
University of Southern California Center for Systems and Software Engineering to ? and 1. How do we get from
32
University of Southern California Center for Systems and Software Engineering 2. How do we know
33
University of Southern California Center for Systems and Software Engineering 2. How do we know
34
University of Southern California Center for Systems and Software Engineering 2. How do we know is “better” than?
35
University of Southern California Center for Systems and Software Engineering Outline From architectures to systems Ensuring dependability Problem definition Proposed solution Concluding remarks
36
University of Southern California Center for Systems and Software Engineering Outline From architectures to systems Ensuring dependability Problem definition Proposed solution Concluding remarks
37
University of Southern California Center for Systems and Software Engineering How Do I Dependably Implement an Architecture? 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., connectors, configurations) –Impose particular architectural styles
38
University of Southern California Center for Systems and Software Engineering How Do I Dependably Implement an Architecture? 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., connectors, configurations) –Impose particular architectural styles What is needed is “architectural middleware”
39
University of Southern California Center for Systems and Software Engineering Architectural Middleware Natively support architectural concepts as middleware constructs Include system design support –Typically via an accompanying ADL and analysis tools –May support explicit architectural styles 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
40
University of Southern California Center for Systems and Software Engineering Dependable Implementation Architecture (ADL) Implementation (middleware, bus technolgies) Design (UML) Object-Oriented Programming Language (OOPL) D/COM CORBA C++ Java Visual Basic JEDI Java Beans C2
41
University of Southern California Center for Systems and Software Engineering Architecture (ADL) Implementation (middleware, bus technolgies) Object-Oriented Programming Language (OOPL) D/COM CORBA C++ Java Visual Basic JEDI Java Beans C2 Dependable Implementation
42
University of Southern California Center for Systems and Software Engineering Architecture (ADL) Implementation (middleware, bus technolgies) Object-Oriented Programming Language (OOPL) D/COM CORBA C++ Java Visual Basic JEDI Java Beans C2 Dependable Implementation
43
University of Southern California Center for Systems and Software Engineering Example: Prism-MW
44
University of Southern California Center for Systems and Software Engineering Example: Prism-MW
45
University of Southern California Center for Systems and Software Engineering Example: Prism-MW
46
University of Southern California Center for Systems and Software Engineering Example: Prism-MW
47
University of Southern California Center for Systems and Software Engineering Example: Prism-MW
48
University of Southern California Center for Systems and Software Engineering Example: Prism-MW
49
University of Southern California Center for Systems and Software Engineering Using Prism-MW
50
University of Southern California Center for Systems and Software Engineering Architecture - DEMO class DemoArch { static public void main(String argv[]) { Architecture arch = new Architecture ("DEMO"); Using Prism-MW
51
University of Southern California Center for Systems and Software Engineering 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
52
University of Southern California Center for Systems and Software Engineering 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"); // create connectors Connector conn = new Connector("C"); Component B Component A Component D CConnector C
53
University of Southern California Center for Systems and Software Engineering 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"); // create connectors Connector conn = new Connector("C"); // add components and connectors arch.addComponent(a); arch.addComponent(b); arch.addComponent(d); arch.addConnector(conn); Component BComponent A Component D CConnector C
54
University of Southern California Center for Systems and Software Engineering 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"); // create connectors Connector conn = new Connector("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) }
55
University of Southern California Center for Systems and Software Engineering Deploying a Prism-MW Architecture
56
University of Southern California Center for Systems and Software Engineering Deploying a Prism-MW Architecture add (DataRepository : source HQ) : HQ; weld (TopDistributionConnector, C1_AvailableTroops) : Commander1;
57
University of Southern California Center for Systems and Software Engineering Outline From architectures to systems Ensuring dependability Problem definition Proposed solution Concluding remarks
58
University of Southern California Center for Systems and Software Engineering Outline From architectures to systems Ensuring dependability Problem definition Proposed solution Concluding remarks
59
University of Southern California Center for Systems and Software Engineering Let’s Pick Availability The degree to which a system is operational and accessible when required for use [IEEE] Deployment architecture influences availability –Components on the same host can communicate regardless of the network’s status –Components on different hosts are insulated from each other’s failures Quantifying availability –Ratio of the number of successfully completed interactions in the system to the total number of attempted interactions
60
University of Southern California Center for Systems and Software Engineering We may not know many relevant system parameters –Dependability of each component –Frequency of component interactions –Volume of component interactions –Dependability of component interactions –CPU usage on each host –Dependability of each host –Effective bandwidth of each network connection –Dependability of each network connection –... Maximizing Availability a priori
61
University of Southern California Center for Systems and Software Engineering We may not know many relevant system parameters –Dependability of each component –Frequency of component interactions –Volume of component interactions –Dependability of component interactions –CPU usage on each host –Dependability of each host –Effective bandwidth of each network connection –Dependability of each network connection –... Maximizing Availability a priori Current deployment architecture may not work well
62
University of Southern California Center for Systems and Software Engineering We may not know many relevant system parameters –Dependability of each component –Frequency of component interactions –Volume of component interactions –Dependability of component interactions –CPU usage on each host –Dependability of each host –Effective bandwidth of each network connection –Dependability of each network connection –... Maximizing Availability a priori Current deployment architecture may not work well Number of possible deployment architectures is k n
63
University of Southern California Center for Systems and Software Engineering Find a function such that the system’s overall availability is maximized, and the following conditions are satisfied: Simplified Problem Definition
64
University of Southern California Center for Systems and Software Engineering Outline From architectures to systems Ensuring dependability Problem definition Proposed solution Concluding remarks
65
University of Southern California Center for Systems and Software Engineering Overview of the Approach Objective –Identify the problem Log and examine system events Actively monitor the system during runtime –Develop a solution Decide which data to cache Decide which components to replicate Introduce multiple execution modes Calculate an improved system deployment –Apply the solution to eliminate the problem Cache or hoard data Replicate data or code Redeploy (parts of) the system
66
University of Southern California Center for Systems and Software Engineering Improving Availability via Redeployment
67
University of Southern California Center for Systems and Software Engineering First Identify the Problem
68
University of Southern California Center for Systems and Software Engineering First Identify the Problem
69
University of Southern California Center for Systems and Software Engineering Monitoring in Prism-MW
70
University of Southern California Center for Systems and Software Engineering Monitoring in Action
71
University of Southern California Center for Systems and Software Engineering Then Develop a Solution
72
University of Southern California Center for Systems and Software Engineering Then Develop a Solution
73
University of Southern California Center for Systems and Software Engineering Suite of algorithms: Exact – exponential complexity Stochastic – quadratic complexity Adaptive greedy – cubic complexity Decentralized – quadratic complexity Estimating in Action
74
University of Southern California Center for Systems and Software Engineering Automatic Algorithm Selection
75
University of Southern California Center for Systems and Software Engineering Automatic Algorithm Selection
76
University of Southern California Center for Systems and Software Engineering Then Apply the Solution
77
University of Southern California Center for Systems and Software Engineering Then Apply the Solution
78
University of Southern California Center for Systems and Software Engineering Redeployment in Prism-MW
79
University of Southern California Center for Systems and Software Engineering Redeployment in Action
80
University of Southern California Center for Systems and Software Engineering Going from
81
University of Southern California Center for Systems and Software Engineering to
82
University of Southern California Center for Systems and Software Engineering Outline From architectures to systems Ensuring dependability Problem definition Proposed solution Concluding remarks
83
University of Southern California Center for Systems and Software Engineering Concluding Remarks Still so much to do Enrich/complete the models Focus on additional aspects of dependability Address dependability trade-offs Address feature interactions Address emergent properties Determine which concerns are (not) architectural
84
University of Southern California Center for Systems and Software Engineering Promise or Illusion? If we can define it, we should be able to Analyze for it Build it Measure it Act on it So, why haven’t we done it yet?
85
University of Southern California Center for Systems and Software Engineering The Playing Field H/W Properties S/W Properties Dependability
86
University of Southern California Center for Systems and Software Engineering Exploring the Problem Space
87
University of Southern California Center for Systems and Software Engineering Exploring the Problem Space
88
University of Southern California Center for Systems and Software Engineering Exploring the Problem Space
89
University of Southern California Center for Systems and Software Engineering Exploring the Problem Space
90
University of Southern California Center for Systems and Software Engineering Questions?
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.