Os Gi+Spring Integration

  • 3,118 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
3,118
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
7

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    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 -> 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

Transcript

  • 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. Topics in this session
    • How things break
      • Code supernova
      • 3. Single threaded breakdown
      • 4. Synchronous breakdown
    • How to fix
      • Modularity
      • 5. Multi threading
      • 6. Messaging
    • Sounds good, let's do it
    Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 7. What is performance?
    • Performance
      • Response time (Classic performance)
      • 8. Throughput (Concurrent processing)
      • 9. Utilization (Map – Reduce)
    • Scalability
      • Related to second two types of performance
    • Reliability
      • Reduced by scalability improvements
    Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 10. Code supernova
    • Assuming nothing is perfect
    • 11. Code bases shall grow
    • 12. Therefore teams shall grow
    • 13. Therefore code bases shall grow faster
    • 14. Until they are infinite UNLESS:
      • they collapse into a black hole
      • 15. someone pulls the plug
      • 16. we modularize and evolve
    Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 17. The single thread breakdown
    • One thread can only occupy a single core
    • 18. In ten years systems with less than 10 cores will be rare
    • 19. Web servers work with thread pools
    BUT
    • What if a single request takes a lot of effort?
    Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 20. The synchronous breakdown
    • A customer orders a coffee
      • and waits
    • The waiter walks to the barista and passes the order
      • and waits
    • The barista walks to the coffee machine
      • and waits
    • Is this efficient?
    Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 21. Topics in this session
    • How things break
      • Code supernova
      • 22. Single threaded breakdown
      • 23. Synchronous breakdown
    • How to fix
    Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 26. OSGi
    • Fix Supernova problem by adding modularity without adding extra latency
    • 27. Distribute development, colocate at runtime.
    • 28. Some other really nice things that I don't need to tell you about
    Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 29. The other problems
    • Synchronous breakdown and single thread breakdown share common solution
    • 30. Messaging enables:
      • Asynchronous handoff
      • 31. Concurrent processing
      • 32. Map reduce
    Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 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. 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. Spring Integration Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 36. Pipes and Filters Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Sender Application Receiver Application Channel MessageEndpoint
  • 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. 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. What’s different about Spring Integration?
    • Can be used from within an existing application.
    • 40. Lightweight (like any Spring application):
      • run from JUnit test
      • 41. run within webapp
    • Focussed on messaging and integration
    • 42. Not an ESB
    Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 43. Others in general
    • Full blown ESB
    • 44. It’s an application, not a framework
      • You need to install it
      • 45. You need to run it
    • Typically a lot heavier
    • 46. Focus on the deployment architecture not the actual integration.
    Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 47. Basic Integration Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 48. With a bus Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 49. Demo Time Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 50. Summary
    • With OSGi + Messaging you fix
      • Code supernova
      • 51. Synchronous and single thread breakdown
    • Spring Integration
      • lightweight
      • 52. decentralized (if you want)
    • Good to know:
      • Hohpe and Woolf + Goetz
      • 53. STS, dm Server
    Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 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.