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 and Messaging Building large applications that don't break down Iwein Fuld - SpringSource Copyright 2008 SpringSource...
Topics in this session <ul><li>How things break </li><ul><li>Code supernova
Single threaded breakdown
Synchronous breakdown </li></ul><li>How to fix </li><ul><li>Modularity
Multi threading
Messaging </li></ul><li>Sounds good, let's do it </li></ul>Copyright 2008 SpringSource.  Copying, publishing or distributi...
What is performance? <ul><li>Performance </li><ul><li>Response time (Classic performance)
Throughput (Concurrent processing)
Utilization (Map – Reduce) </li></ul><li>Scalability </li><ul><li>Related to second two types of performance </li></ul><li...
Code supernova <ul><li>Assuming nothing is perfect
Code bases shall grow
Therefore teams shall grow
Therefore code bases shall grow faster
Until they are infinite UNLESS: </li><ul><li>they collapse into a black hole
someone pulls the plug
we modularize and evolve </li></ul></ul>Copyright 2008 SpringSource.  Copying, publishing or distributing without express ...
The single thread breakdown <ul><li>One thread can only occupy a single core
In ten years systems with less than 10 cores will be rare
Web servers work with thread pools  </li></ul>BUT <ul><li>What if a single request takes a lot of effort? </li></ul>Copyri...
The synchronous breakdown <ul><li>A customer orders a coffee </li><ul><li>and waits </li></ul><li>The waiter walks to the ...
Topics in this session <ul><li>How things break </li><ul><li>Code supernova
Single threaded breakdown
Upcoming SlideShare
Loading in …5
×

Os Gi+Spring Integration

3,737 views

Published on

Published in: Technology
  • Be the first to comment

Os Gi+Spring Integration

  1. 1. OSGi and Messaging Building large applications that don't break down Iwein Fuld - SpringSource Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  2. 2. Topics in this session <ul><li>How things break </li><ul><li>Code supernova
  3. 3. Single threaded breakdown
  4. 4. Synchronous breakdown </li></ul><li>How to fix </li><ul><li>Modularity
  5. 5. Multi threading
  6. 6. Messaging </li></ul><li>Sounds good, let's do it </li></ul>Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  7. 7. What is performance? <ul><li>Performance </li><ul><li>Response time (Classic performance)
  8. 8. Throughput (Concurrent processing)
  9. 9. Utilization (Map – Reduce) </li></ul><li>Scalability </li><ul><li>Related to second two types of performance </li></ul><li>Reliability </li><ul><li>Reduced by scalability improvements </li></ul></ul>Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  10. 10. Code supernova <ul><li>Assuming nothing is perfect
  11. 11. Code bases shall grow
  12. 12. Therefore teams shall grow
  13. 13. Therefore code bases shall grow faster
  14. 14. Until they are infinite UNLESS: </li><ul><li>they collapse into a black hole
  15. 15. someone pulls the plug
  16. 16. we modularize and evolve </li></ul></ul>Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  17. 17. The single thread breakdown <ul><li>One thread can only occupy a single core
  18. 18. In ten years systems with less than 10 cores will be rare
  19. 19. Web servers work with thread pools </li></ul>BUT <ul><li>What if a single request takes a lot of effort? </li></ul>Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  20. 20. The synchronous breakdown <ul><li>A customer orders a coffee </li><ul><li>and waits </li></ul><li>The waiter walks to the barista and passes the order </li><ul><li>and waits </li></ul><li>The barista walks to the coffee machine </li><ul><li>and waits </li></ul><li>Is this efficient? </li></ul>Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  21. 21. Topics in this session <ul><li>How things break </li><ul><li>Code supernova
  22. 22. Single threaded breakdown
  23. 23. Synchronous breakdown </li></ul><li>How to fix </li><ul><li>Modularity
  24. 24. Multi threading
  25. 25. Messaging </li></ul></ul>Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  26. 26. OSGi <ul><li>Fix Supernova problem by adding modularity without adding extra latency
  27. 27. Distribute development, colocate at runtime.
  28. 28. Some other really nice things that I don't need to tell you about </li></ul>Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  29. 29. The other problems <ul><li>Synchronous breakdown and single thread breakdown share common solution
  30. 30. Messaging enables: </li><ul><li>Asynchronous handoff
  31. 31. Concurrent processing
  32. 32. Map reduce </li></ul></ul>Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  33. 33. What is Messaging? Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. How can multiple agents work together?... ...without being in each others way. Waiter helps customer and cook to collaborate.
  34. 34. Characteristics of Messaging Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Transport The waiter takes an order and moves it to the barista Asynchronous Different actors can do different things in parallel Translation menu item => number => recipe Routing Orders arrive back at the proper table
  35. 35. Spring Integration Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  36. 36. Pipes and Filters Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Sender Application Receiver Application Channel MessageEndpoint
  37. 37. Hello world Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. <service-activator input-channel = &quot;inputChannel&quot; default-output-channel = &quot;outputChannel&quot; ref = &quot;helloService&quot; method = &quot;sayHello&quot; /> < beans:bean id = &quot;helloService&quot; class = &quot;...HelloService&quot; /> public class HelloService { public String sayHello(String name) { return &quot;Hello &quot; + name; } }
  38. 38. Channels Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. < channel id = &quot;incoming&quot; /> < channel id = &quot;orderedNotifications&quot; > <queue capacity = &quot;10&quot;/ > </channel>
  39. 39. What’s different about Spring Integration? <ul><li>Can be used from within an existing application.
  40. 40. Lightweight (like any Spring application): </li></ul><ul><ul><li>run from JUnit test
  41. 41. run within webapp </li></ul></ul><ul><li>Focussed on messaging and integration
  42. 42. Not an ESB </li></ul>Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  43. 43. Others in general <ul><li>Full blown ESB
  44. 44. It’s an application, not a framework </li></ul><ul><ul><li>You need to install it
  45. 45. You need to run it </li></ul></ul><ul><li>Typically a lot heavier
  46. 46. Focus on the deployment architecture not the actual integration. </li></ul>Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  47. 47. Basic Integration Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  48. 48. With a bus Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  49. 49. Demo Time Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  50. 50. Summary <ul><li>With OSGi + Messaging you fix </li><ul><li>Code supernova
  51. 51. Synchronous and single thread breakdown </li></ul><li>Spring Integration </li><ul><li>lightweight
  52. 52. decentralized (if you want) </li></ul><li>Good to know: </li><ul><li>Hohpe and Woolf + Goetz
  53. 53. STS, dm Server </li></ul></ul>Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  54. 54. Questions and Plugs Ask now... or visit our booth... or google “Iwein Fuld” Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.

×