Presentation is loading. Please wait.

Presentation is loading. Please wait.

University of Southern California Center for Systems and Software Engineering From Dependable Architectures To Dependable Systems Nenad Medvidovic Center.

Similar presentations


Presentation on theme: "University of Southern California Center for Systems and Software Engineering From Dependable Architectures To Dependable Systems Nenad Medvidovic Center."— Presentation transcript:

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?


Download ppt "University of Southern California Center for Systems and Software Engineering From Dependable Architectures To Dependable Systems Nenad Medvidovic Center."

Similar presentations


Ads by Google