Your SlideShare is downloading. ×
Asynchronous Messaging @DNUG Cologne, 07.04.2009
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Asynchronous Messaging @DNUG Cologne, 07.04.2009

482
views

Published on

A presentation by Sergey Shishkin on Asynchronous Messaging given on 07.04.2009 at .NET User Group Cologne.

A presentation by Sergey Shishkin on Asynchronous Messaging given on 07.04.2009 at .NET User Group Cologne.

Published in: Technology, Sports

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
482
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
19
Comments
0
Likes
1
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

Transcript

  • 1. Asynchronous Messaging Sergey Shishkin http:// shishkin.org Image source: http://www.flickr.com/photos/joits/1110215271/
  • 2. Agenda Why Messaging? – And what’s wrong with good old RPC? Sample scenario – News module of the Prism’s StockTrader RI Under the hood of Message Bus – Building a Message Bus in 37 lines of code – And what those 37 lines did not cover? Image source: http://www.flickr.com/photos/mychatham/206928250/
  • 3. Communication Styles
    • Remote Procedure Calls
      • Synchronous
      • High coupling
    • One-Way Messages
      • Asynchronous
      • Loose coupling
  • 4. Fallacies of Distributed Computing* * http:// en.wikipedia.org/wiki/Fallacies_of_Distributed_Computing
    • The network is reliable
    • Latency is zero
    • Bandwidth is infinite
    • The network is secure
    • Topology doesn't change
    • There is one administrator
    • Transport cost is zero
    • The network is homogeneous
    Image source: http://www.flickr.com/photos/pascalcharest/308357541/
  • 5. Composite Applications Image source: http://www.flickr.com/photos/curiouslee/2136283589/ Modularized applications are similar to distributed ones
    • GUI composition is solved by:
    • Common region infrastructure
    • Event-based GUI synchronization
    • Same pattern in broader context
    • Common Message Bus infrastructure
    • Message-based components integration
  • 6. Tenets of Service-Orientation* Image source: http://www.flickr.com/photos/hyper-world/2401419260/ Boundaries are explicit Services are autonomous Services share schema and contract, not class Service compatibility is based upon policy * http://msdn.microsoft.com/en-us/magazine/cc164026.aspx
  • 7. Messaging Patterns * http://www.enterpriseintegrationpatterns.com/toc.html Message Bus is a central place for implementing integration patterns*
  • 8. Advantages of Messaging (I) Image source: http://www.flickr.com/photos/renaissancechambara/2288556895/ Loose coupling Separation of concerns Orthogonal architecture
  • 9. Advantages of Messaging (II) Testing Scalability
  • 10. Disadvantages of Messaging
    • Dependency tracing
    • Who is publishing that message?
    • Is publishing of that message required?
    • Debugging
    • Same as debugging of multithreaded apps
    • Learning curve
    • It’s not a new technology, it’s a paradigm shift
    • Requires different mindset and discipline
    Image source: http://www.flickr.com/photos/lwr/2257112719/
  • 11. Guidelines
    • Consider messaging to loose coupling
    • Avoid RPC across modules/business services/bounded contexts*
    * In terms of DDD Image source: http://www.flickr.com/photos/rodneytrotter/3323664794/
  • 12. Look ahead Messaging is the default communication style for cloud-based services Silverlight does not support synchronous communication out of the box Image source: http://www.flickr.com/photos/bestrated1/2441332480/
  • 13. DEMO
  • 14. References
    • Composite WPF guidance aka “Prism”, StockTrader RI
      • http://compositewpf.codeplex.com/
    • StockTrader with messages (revision 12, as shown in demo)
      • http://code.google.com/p/messagingwpf/source/browse/trunk/src/StockTraderRI/
    • Some OSS messaging frameworks
      • http://code.google.com/p/masstransit/
      • http://www.nservicebus.com
      • https://rhino-tools.svn.sourceforge.net/svnroot/rhino-tools/trunk/esb/
    • Fallacies of distributed computing
      • http ://en.wikipedia.org/wiki/Fallacies_of_Distributed_Computing
    • Four tenets of service orientation
      • http://msdn.microsoft.com/en-us/magazine/cc164026.aspx
    • Enterprise integration patterns
      • http ://www.enterpriseintegrationpatterns.com/toc.html