Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

OSGi in the Enterprise: Agility, Modularity, and Architecture's Paradox

7,940 views

Published on

Published in: Technology
  • Good OSGi presentation for Software Architect.

    I'd like the ppt file converted from keynote too. Could you pls. send it to me?
    My email is miqi05 at gmail.com.

    Thanks a lot.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Could you please send the ppt file converted from keynote to me ?
    My email is winfavor at gmail.com.
    Thanks and best regards.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

OSGi in the Enterprise: Agility, Modularity, and Architecture's Paradox

  1. 1. Kirk Knoernschild Analyst, SDLC and Containers, OSGi in the Enterprise Languages, & Frameworks Burton Group Agility, Modularity, and Architecture’s Paradox www.burtongroup.com kknoernschild@burtongroup.com Blog: http://apsblog.burtongroup.com JAX London & OSGi DevCon Blog: http://techdistrict.kirkk.com Twitter: pragkirk February 23rd, 2010
  2. 2. OSGi in the Enterprise 2 “First they ignore you, then they ridicule you, then they fight you, then you win.” -- Mahatma Gandhi
  3. 3. OSGi in the Enterprise 2 “First they ignore you, then they ridicule you, then they fight you, then you win.” -- Mahatma Gandhi OSGi is a disruptive technology that will transform how enterprise Java applications are designed, developed, and managed!
  4. 4. OSGi in the Enterprise 3 1972
  5. 5. OSGi in the Enterprise 4 Complexity Architectural Agility Paradox Modularity
  6. 6. OSGi in the Enterprise 4 Complexity Architectural Agility Paradox Modularity
  7. 7. OSGi in the Enterprise 5 Complexity Why i What’ s soft st co mpl ware so How d o we mo dul he role of ex? co mpl tame arity? exity?
  8. 8. Complexity 6 Rising Cost of Software Complexity - 120 billion loc in 1990 Source: http://users.jyu.fi/~koskinen/smcosts.htm - 250 billion loc in 2000 - loc doubles every 7 years - 50% of development time spent understanding code - 90% of software cost is maintenance & evolution
  9. 9. Complexity 6 Rising Cost of Software Complexity - 120 billion loc in 1990 Source: http://users.jyu.fi/~koskinen/smcosts.htm - 250 billion loc in 2000 - loc doubles every 7 years - 50% of development time spent understanding code - 90% of software cost is maintenance & evolution Perspective: Not only double the past 7 years, but more than total amount ever written combined!
  10. 10. Complexity 7 Case in Point 2002 2008
  11. 11. Complexity 7 Case in Point 500% 2002 2008
  12. 12. Complexity 8 Reason to Celebrate Lehman’s Law: As a system evolves, its complexity increases unless work is done to maintain or reduce it. www.lumaxart.com/
  13. 13. Complexity 9 BAUF Doesn’t Cut It - BDU F - Exce an d BAUF! s docu m sive en - Resi tation! sting Chang e! We are often asked to design solutions to problems that require knowledge we currently do not possess.
  14. 14. Complexity 9 BAUF Doesn’t Cut It - BDU F - Exce an d BAUF! s docu m sive en - Resi tation! sting Chang e! We are often asked to design solutions to problems that require knowledge we currently do not possess.
  15. 15. Complexity 10 Gall’s Law A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over, beginning with a working simple system.
  16. 16. Complexity 11 Question --------------------------------------------------------------- How do we manage software complexity? Answer --------------------------------------------------------------- Modularity
  17. 17. Complexity 12 Defining Module Hey, it’s a JAR file! - unit of reu - unit se of co m - unit po of dep sition - unit loyme of ma nt nagem ent A module system provides a runtime environment for modules
  18. 18. Complexity 13 Advantages of Modularity - reus e - re du ce co m - ease ple mainte xity - incr nance ease exten sibility Umm...we can already do this with objects and services!
  19. 19. Complexity 13 Advantages of Modularity - reus - re du e Increases architectural agility! ce co m - ease ple mainte xity - incr nance ease exten sibility Umm...we can already do this with objects and services!
  20. 20. Complexity 14 Module Design Few teams are designing modular software systems today! POLL: Question: Response: ----------------------------------------------------- - How many design class relationships? _____ - How many design package relationships? _____ - How many design service relationships? _____ - How many design module (JAR, Assembly) relationships? _____
  21. 21. Complexity 15 Platform Modularity Why a re design n’t we Platforms discourage modularity! ing mo mo dul re ar sof tware ?
  22. 22. Complexity 16 Platform Modularity - Dyn am - Mult ic deployme ipl nt - Enfo e versions rce depen dencie s
  23. 23. Complexity 16 Platform Modularity - Dyn am - Mult ic deployme This is the next generation application platform! ipl - Enfo e versions nt rce depen dencie s
  24. 24. OSGi in the Enterprise 17 Architectural Agility What What What is arc is is hitect ure? archit the goal of ag ility architectur ecture ? al ?
  25. 25. Architectural Agility 18 What is Architecture? • An architecture is the set of significant decisions about the organization of a software system, the selection of the structural elements and their interfaces by which the system is composed, together with their behavior as specified in the collaborations among those elements, the composition of these structural elements and behavioral elements into progressively larger subsystems, and the architecture style that guides this organization -- these elements and their interfaces, their collaborations, and their composition. Source: Kruchten: The Rational Unified Process. Also cited in Booch, Rumbaugh, and Jacobson: The Unified Modeling Language User Guide, Addison-Wesley, 1999
  26. 26. Architectural Agility 19 What is Architecture? • In most successful software projects, the expert developers working on that project have a shared understanding of the system design. This shared understanding is called ‘architecture.’ This understanding includes how the system is divided into components and how the components interact through interfaces. These components are usually composed of smaller components, but the architecture only includes the components and interfaces that are understood by all the developers...Architecture is about the important stuff. Whatever that is. Source: Fowler, Martin. IEEE Software, 2003. “Who Needs an Architect?” A quote from Ralph Johnson on the XP mailing list.
  27. 27. Architectural Agility 20 What is Architecture? • The fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution. Source: ANSI/IEEE Std 1471-2000
  28. 28. Architectural Agility 21 What is Architecture? • A formal description of a system, or a detailed plan of the system at component level to guide its implementation • The structure of components, their inter-relationships, and the principles and guidelines governing their design and evolution over time. Source: TOGAF - http://www.opengroup.org/architecture/togaf8-doc/arch/chap01.html
  29. 29. Architectural Agility 22 What is Architecture? • Architecture embodies the critical design decisions that typify a system. • Relates to cost of change, organizational structure, structure of code, capabilities of a system, etc. • The significance of decisions needs to be understood and assessed • A heavy-weight approach is likely to reduce understanding and our ability to assess Source: QCON London Presentation by James Coplien & Kevlin Henney title Agile Architecture Is not Fragile Architecture - http://www.infoq.com/presentations/Agile- Architecture-Is-Not-Fragile-Architecture-James-Coplien-Kevlin-Henney
  30. 30. Architectural Agility 23 The Goal of Architecture
  31. 31. Architectural Agility 23 The Goal of Architecture What if we were able to reduce the impact and cost of change?
  32. 32. Architectural Agility 23 The Goal of Architecture What if we were able to reduce the impact and cost of change? We n ee d t elimin o ate archit ectur e!
  33. 33. Architectural Agility 24 Reversibility Rever sible Ir reve can b Decisi rsible e eas o ns are n Decisi ily ch ot ea becau se the ange d becau sily c ons archit se the hange ec expen y are d acco m ture is abl siv to o mo dat e to intens e or reso u e cha ive. rce nge. First and foremost, we should try to make most decisions reversible, so they can be made and then easily changed. -- “Implementing Lean Software Development: From Concept to Cash”
  34. 34. Architectural Agility 24 Reversibility Rever sible Ir reve can b Decisi rsible e eas o ns are n Decisi ily ch ot ea becau se the ange d becau sily c ons archit se the hange ec expen y are d acco m ture is abl siv to o mo dat e to intens e or reso u e cha ive. rce nge. First and foremost, we should try to make most decisions reversible, so they can be made and then easily changed. -- “Implementing Lean Software Development: From Concept to Cash” Irreversible Decisions should be made as late as possible!
  35. 35. Architectural Agility 25 Defeating Complexity
  36. 36. OSGi in the Enterprise 26 Paradox Ho w d How d Are w o we o we ed more de dream realize failure o o me d to flexib sign of reu the ? system le soft se? s? ware
  37. 37. Paradox 27 Architecture Paradox Increa sing e decre vo ases s lvability ur viva bility ... making everything easy to change makes the entire system very complex... - Ralph Johnson in “Who Needs an Architect”
  38. 38. Paradox 28 Tension Maximizing reuse complicates use
  39. 39. Paradox 28 Tension Maximizing reuse complicates use - SOL ID - Desi gn Pat - Mo d terns ularity Patter ns - SOA Princi ples
  40. 40. Paradox 29 Architecture Paradox Increa sing e decre vo ases s lvability ur viva bility ... making everything easy to change makes the entire system very complex... - Ralph Johnson in “Who Needs an Architect”
  41. 41. Paradox 29 Architecture Paradox We m Increa ust re sing e decre vo which cogniz e ases s lvability areas ur viva system of the bility deman increa d the se d co that w mplex ill bri ity greate ng r flex ibility! ... making everything easy to change makes the entire system very complex... - Ralph Johnson in “Who Needs an Architect”
  42. 42. Paradox 30 Increasing Flexibility, Increasing Complexity
  43. 43. OSGi in the Enterprise 31 Modularity Ho w d How d How d oe oe oe help i s mo dularit help u s mo dularit help u s mo dularit ncrea y s real y s o ver y archit se ize re para d co me ectura use? ox? the l ag ilit y?
  44. 44. Modularity 32 Flexibility Where? Here? Which ar system ea of the Here? deman flexib ds mo ility? re Here? Here? Here? Here? Here?
  45. 45. Modularity 33 Something is Missing ?
  46. 46. Modularity 34 Turtles & Architecture What do archit es ecture do w it have t h turt o les? Photo courtesy of: http://www.flickr.com/photos/mybloodyself/1108834349/
  47. 47. Modularity 34 Turtles & Architecture What do archit es ecture do w it have t h turt o les? “ Yo u’r e ver y yo ung clever man, v , clever er y ”, la dy. “ sai d the old But it all th ’s turt e way les down! -- A B ” rief H of Tim istor y e Photo courtesy of: http://www.flickr.com/photos/mybloodyself/1108834349/
  48. 48. Modularity 35 Architecture “all the way down” ? Reuse Release Equivalence: Unit of reuse is the unit of release!
  49. 49. Modularity 35 Architecture “all the way down” Reuse Release Equivalence: Unit of reuse is the unit of release!
  50. 50. Modularity 36 Shared Understanding
  51. 51. Modularity 36 Shared Understanding
  52. 52. Modularity 37 Architectural Joints Here? Which ar system ea of the Here? deman flexib ds mo ility? re Here? Here? Here? Here? Here?
  53. 53. Modularity 37 Architectural Joints Which ar system ea of the deman flexib ds mo ility? re
  54. 54. Modularity 38
  55. 55. Modularity 38 as change occurs
  56. 56. Modularity 38 as change occurs modules and their dependencies
  57. 57. Modularity 38 as change occurs isolate change modules and their dependencies
  58. 58. Modularity 38 as change occurs isolate change modules and their dependencies
  59. 59. Modularity 39 Before and After
  60. 60. Modularity 39 Before and After
  61. 61. Modularity 39 Before and After
  62. 62. Modularity 39 Before and After
  63. 63. Modularity 39 Before and After
  64. 64. Modularity 39 Before and After
  65. 65. Modularity 40 Reuse
  66. 66. Modularity 40 Reuse
  67. 67. Modularity 41 It’s All Good!
  68. 68. Modularity 42 Modular Architecture - Where to Now? Infras Progra Design tructu m m in g Para d - Run re - The Mo del - The igm time p frame techn suppo latfor an d te w o r ks use d t iques rt hel m ch o i den enforc ps that a nolog ies create tify a nd e mo d llow u the ri archit ular create s to of mo ght se ecture mo dul dules t . softw ar are
  69. 69. Modularity 42 Modular Architecture - Where to Now? Infras Progra Design tructu m m in g Para d - Run re - The Mo del - The igm time p frame techn suppo latfor an d te w o r ks use d t iques rt hel m ch o i den enforc ps that a nolog ies create tify a nd e mo d llow u the ri archit ular create s to of mo ght se ecture mo dul dules t . softw ar are The Design Paradigm - What’s the right granularity for a module? - What the right weight for a module?
  70. 70. OSGi in the Enterprise 43 Additional Resources • http://techdistrict.kirkk.com - Kirk’s blog with lots of content on modularity. • Modular Architecture Patterns - Book in Progress • http://modularity.kirkk.com/ • http://www.osgi.org - OSGi HomePage • OSGi in Practice by Neil Bartlett • http://neilbartlett.name/blog/osgibook/ • Modular Java by Craig Walls • OSGi and Equinox: Creating Highly Modular Java Systems by Jeff McAffer, et. al. • Tried to develop a modular architecture without OSGi? • JarAnalyzer - http://code.google.com/p/jaranalyzer/

×