robusta an approach to building dynamic applications
play

Robusta : An approach to building dynamic applications Walter - PowerPoint PPT Presentation

Robusta : An approach to building dynamic applications Walter RUDAMETKIN Dissertation defense 21 February 2013 Pr. Noel DE PALMA President UJF, Grenoble Pr. Luciano BARESI Reviewer Politecnico di Milano Dr. Benoit BAUDRY Reviewer INRIA,


  1. Wh a t ' s mi s s i n g ? S e l e c t i v e l y e n a b l e d y n a mi s m M a n a g e t h e i mp a c t o f d y n a mi s m D e v e l o p me n t g u i d e l i n e s E n s u r e c o n s i s t e n c y a t r u n t i me d e s p i t e u n e x p e c t e d c h a n g e 37

  2. Wh a t d o e s t h e r u n t i me n e e d t o s u p p o r t u n e x p e c t e d d y n a mi s m? 38

  3. R u n t i me r e q u i r e me n t s f o r u n e x p e c t e d d y n a mi s m C o r r e c t n e s s & C o n s i s t e n c y P r o a c t i v e & R e a c t i v e R e c o v e r y 39

  4. A d d i t i o n a l r u n t i me r e q u i r e me n t s C h a n g e i mp a c t M i n i ma l d i s r u p t i o n T i me l i n e s s 40

  5. O u t l i n e C o n t e x t & C h a l l e n g e s S t a t e o f t h e A r t R o b u s t a I mp l e me n t a t i o n & V a l i d a t i o n C o n c l u s i o n & P e r s p e c t i v e s 41

  6. T h e s o f t w a r e c y c l e Development Design Packaging Execution Deployment 42

  7. T h e s o f t w a r e c y c l e Development Design Packaging Execution Deployment 43

  8. D y n a mi s m i s . . . C r o s s - c u t t i n g D e s i g n , d e p l o y , d e v e l o p , p a c k a g e , e x e c u t e I n v a s i v e C a n n o t b e f u l l y t r a n s p a r e n t D i f f i c u l t t o u n d e r s t a n d L a c k o f t o o l s a n d g u i d e l i n e s E a s y t o g e t wr o n g S u b t l e mi s t a k e s c a u s e d i s a s t e r s 44

  9. R o b u s t a i s A n a r c h i t e c t u r a l a p p r o a c h t o ma n a g i n g d y n a mi s m M a n a g e s d y n a mi s m a t mu l t i p l e l e v e l s S e r v i c e , c o mp o n e n t , mo d u l e a n d c l a s s , o b j e c t P a r t i c u l a r l y f o c u s e d o n d e s i g n , p a c k a g i n g a n d e x e c u t i o n 45

  10. R o b u s t a p r i n c i p l e s D y n a mi s m i s n o t n e e d e d e v e r y wh e r e M a n a g e d y n a mi s m e a r l y A r c h i t e c t u r e c e n t r i c S e r v i c e s → c o mp o n e n t a r c h i t e c t u r e C o mp o n e n t s → mo d u l e a r c h i t e c t u r e M o d u l e s → p a c k a g i n g a r c h i t e c t u r e 46

  11. C o mp o n e n t b e h a v i o r 47

  12. R o b u s t a c o mp o n e n t b e h a v i o r @S t a b l e @D e t a c h a b l e @V o l a t i l e 48

  13. R o b u s t a c o mp o n e n t b e h a v i o r D e t e r mi n e d e c o u p l i n g a n d r e s i l i e n c e r e q u i r e d b y d e p e n d e n c i e s R e s i l i e n c e t o v o l a t i l i t y C o u p l e d d e p e n d e n c y 49

  14. E x a mp l e 50

  15. E x a mp l e 51

  16. E x a mp l e 52

  17. R o b u s t a c o mp o n e n t b e h a v i o r @stable P r o t e c t c o mp o n e n t s @detachable D e c o u p l e c o mp o n e n t s @volatile I s o l a t e c o mp o n e n t s 53

  18. C o mp o n e n t d e c o u p l i n g 54

  19. D e c o u p l i n g r e q u i r e me n t s M u l t i p l e c o n s u me r s & p r o v i d e r s M u l t i p l e v e r s i o n s o f t h e s a me c l a s s C o mp l e x o b j e c t s S e r v i c e s p e c i a l i z a t i o n 55

  20. D e c o u p l i n g e x a mp l e 56

  21. D e c o u p l i n g e x a mp l e 57

  22. D e c o u p l i n g e x a mp l e 58

  23. D e c o u p l i n g e x a mp l e 59

  24. T h e s e r v i c e c o n t r a c t T h e S e r v i c e I n t e r f a c e a n d t h e t y p e s t h a t i t d i r e c t l y d e p e n d s o n . 60

  25. H o w e v e r , t h e r e ' s s t i l l i n d i r e c t ( h i d d e n ) c o u p l i n g ! 61

  26. D e c o u p l i n g e x a mp l e 62

  27. D e c o u p l i n g e x a mp l e 63

  28. D e c o u p l i n g e x a mp l e 64

  29. T h e e x t e n d e d s e r v i c e c o n t r a c t T h e S e r v i c e I n t e r f a c e a n d t h e t y p e s t h a t i t d i r e c t l y a n d i n d i r e c t l y d e p e n d s o n . 65

  30. C o mp o n e n t p a c k a g i n g 66

  31. P a c k a g i n g D e f i n e s c l a s s mo → d u l e s M o d u l e s a r e u n i t s o f d e p l o y me n t I t ' s g u i d e d b y S e r v i c e C o n t r a c t C o n t r a c t E x t e n s i o n s C o mp o n e n t I mp l e me n t a t i o n s 67

  32. P a c k a g i n g e x a mp l e 68

  33. P a c k a g i n g r e s u l t s C o mp o n e n t s e v o l v e i n d e p e n d e n t l y I s o l a t e S e r v i c e C o n t r a c t S p e c i a l i z e S e r v i c e C o n t r a c t A v o i d s e r v i c e i n c o mp a t i b i l i t i e s M u l t i p l e c o n s u me r p → r o v i d e r 69

  34. P a c k a g i n g e x a mp l e 70

  35. A r c h i t e c t u r e a n a l y s i s 71

  36. A r c h i t e c t u r e a n a l y s i s r e q u i r e me n t s S e l e c t i v e d y n a mi s m Z o n e - i f i c a t i o n P r o p e r t y c o mp o s i t i o n 72

  37. V o l a t i l e e x a mp l e 73

  38. V o l a t i l e e x a mp l e 74

  39. V o l a t i l e e x a mp l e 75

  40. S t a b l e e x a mp l e 76

  41. P l u g i n e x a mp l e 77

  42. O u t l i n e C o n t e x t & C h a l l e n g e s S t a t e o f t h e A r t P r o p o s i t i o n I mp l e me n t a t i o n & V a l i d a t i o n C o n c l u s i o n & P e r s p e c t i v e s 78

  43. R e q u i r e me n t s B u i l d c l a s s d e p e n d e n c y g r a p h A n a l y z e a l l C l a s s e s I d e n t i f y C l a s s ↔ M o d u l e r e l a t i o n s C a l c u l a t e S e r v i c e C o n t r a c t S i mp l e g r a p h a l g o r i t h ms Op e n - wo r l d s o l u t i o n 79

  44. S o l u t i o n c o mp a r i s o n D e s i g n - t i me R u n t i me v e r s u s S o u r c e c o d e B y t e c o d e v e r s u s A u t o ma t e d I n t e r a c t i v e v e r s u s A n a l y s i s d i a g n o s t i c s H a r d e s t c a s e p o s s i b l e 80

  45. T e c h n i c a l s o l u t i o n J a v a a g e n t f o r I n s t r u me n t a t i o n G e t a n d I n s t r u me n t A L L C l a s s e s C o d e i n j e c t i o n ( A S M ) @Robusta @ClassDependency & I n c l u d e s f i l t e r i n g o p t i o n s I n t e r a c t i v e C o mma n d s w i t h S h e l b i e A n O S G i S h e l l 81

  46. T e c h n i c a l s o l u t i o n 82

  47. I n t e r a c t i v e c o mma n d - l i n e C l a s s l o a d e r s ( i . e . , M o d u l e s ) C l a s s e s D u p l i c a t e s S e r v i c e C o n t r a c t c a l c u l a t i o n T r a n s i t i v e d e p e n d e n c y g r a p h E x t e n s i o n s t o o G r a p h s r e p r e s e n t c u r r e n t s t a t e u n a mb i g u o u s l y . 83

  48. E x p e r i me n t a t i o n O W2 J o n A S J a v a E E A p p l i c a t i o n S e r v e r + 3 0 0 mo d u l e s + 1 2 0 c o mp o s a n t s + 4 0 0 k L i n e s o f C o d e 84

  49. C o n s o l e b a s e d o u t p u t 85

  50. D e p e n d e n c y t r e e s 86

  51. D u p l i c a t e d c l a s s e s 87

  52. S t a t i s t i c s 88

  53. O v e r h e a d Me mo r y 1 X a n n o t a t i o n p e r c l a s s - d e p e n d e n c y 4 X a t t r i b u t e s p e r a n n o t a t i o n E x e c u t i o n G r a p h c a l c u l a t i o n t i me s : 2 0 ms – 1 6 0 ms A g e n t ma n i p u l a t i o n t i me s : ~ 9 ms B e t w e e n 0 ms – 2 2 0 ms N o e x e c u t i o n o v e r h e a d wh e n n o t u s e d . 89

  54. L e s s o n s L o a d i n g a l l c l a s s e s J a v a i s l a z y , G a r b a g e C o l l e c t i o n i s l a z y D u p l i c a t e c l a s s e s d o h a p p e n R o o t h i e r a r c h y Ob j e c t c l a s s c a u s e s h i d d e n c o u p l i n g C o mp l e x i t y S e r v i c e s c a n b e q u i t e c o mp l e x R e q u i r e s t o o l i n g 90

  55. S i mp l e a p p l i c a t i o n 91

  56. S i mp l e a p p l i c a t i o n 92

  57. O u t l i n e C o n t e x t & C h a l l e n g e s S t a t e o f t h e A r t P r o p o s i t i o n I mp l e me n t a t i o n & V a l i d a t i o n C o n c l u s i o n & P e r s p e c t i v e s 93

  58. R o b u s t a a s a n a p p r o a c h t o d y n a mi s m 94

  59. D e v e l o p i n g D y n a mi c A p p l i c a t i o n s 95

  60. F i n a l r e ma r k s 96

  61. P r o b l e m Wr i t e r o b u s t c e n t r a l i z e d d y n a mi c a p p l i c a t i o n s D e s i g n Wr i t e Un d e r s t a n d Ma n a g e 97

  62. C o n t r i b u t i o n s A r c h i t e c t u r e - c e n t r i c a p p r o a c h t o d y n a mi s m I mp r o v e d u n d e r s t a n d i n g C o u p l i n g & D y n a mi s m S a f e d y n a mi s m t h r o u g h d e c o u p l i n g P r o o f - o f - C o n c e p t ( o p e n - w o r l d ) h t t p s : / / g i t h u b . c o m/ r u d a me t w / R o b u s t a 98

  63. P e r s p e c t i v e s I n t e g r a t e i n t o F e l i x We b C o n s o l e M @R T & M o n i t o r i n g I D E J a v a s c r i p t 99

  64. I mp a c t N e w me t h o d o l o g y f o r d y n a mi s m? G e n e r a l i z a b l e s o l u t i o n o r n i c h e ? C o mp o n e n t s ↔ O b j e c t s F u t u r e a d o p t i o n ? 100

Recommend


More recommend