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,500 views
3,424 views

Published on

Published in: Technology
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,500
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide
  • Next up: Introduction to Spring integration which covers: - How and why Spring Integration came into existence
  • Next up: Introduction to Spring integration which covers: - How and why Spring Integration came into existence
  • Next up: Introduction to Spring integration which covers: - How and why Spring Integration came into existence
  • Next up: Introduction to Spring integration which covers: - How and why Spring Integration came into existence
  • Next up: Introduction to Spring integration which covers: - How and why Spring Integration came into existence
  • Spring Integration was created by Mark Fisher of SpringSource. - It is an implementation of the patterns described in Enterprise Integration Patterns by Hohpe and Woolf. - The book itself doesn’t give concrete usable components, Spring Integration does this: non invasive declarative
  • Endpoints connect application code to the integration framework.
  • There is quite some code in the slide. Go over it slowly and promise another look during the demo. TODO enlarge code samples -&gt; two slides
  • Channels are buffers that hold messages, responsible for transporting the messages from sender to receiver(s) Mention equivalence with JMS Queues
  • Download the SI distribution or check out the project from svn, import the sample projects into STS. Show at least the CafeDemo xml variant. If there is time you can show some of the following: - Tweaking for performance (add a thread-pool-task-executor to the poller, play with the trigger) - Other demos - add a JMX based detour (router with @ManagedAttribute outputChannel) to the deliveredOrders
  • 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.

    ×