Your SlideShare is downloading. ×
0
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Os Gi+Spring Integration
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Os Gi+Spring Integration

3,199

Published on

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

No Downloads
Views
Total Views
3,199
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
8
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.

    ×