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.

Confoo 2014 Messaging Systems

640 views

Published on

Confoo 2014 talk - Messaging systems - why should I use them?

Published in: Technology
  • Be the first to comment

Confoo 2014 Messaging Systems

  1. 1. MESSAGING SYSTEMS WHY SHOULD I USE THEM? http://slidesha.re/1dwZ1eS
  2. 2. Hi! Hanneli ! • • • @hannelita Software Developer Coffee and Pokémon Addicted http://slidesha.re/1dwZ1eS
  3. 3. What we will see • How can we integrate 2 or more systems? • A list of alternatives to integrate them • Problems and good points of these strategies • Messaging systems - the good parts • Messaging systems - the bad points • Cool pictures, stupid jokes and funny gifs (or not that funny) http://slidesha.re/1dwZ1eS
  4. 4. Software development - very simple http://slidesha.re/1dwZ1eS
  5. 5. Simple software development Web!
  6. 6. 1. Number of users increases
  7. 7. 2. Number of requested functionalities increases
  8. 8. How can we expand the system?
  9. 9. How can we integrate? ??????? @&ˆ!@! Hi!
  10. 10. How can we integrate? The systems need to change information.
  11. 11. Method 1 Hi!
  12. 12. Method 1 - TXT
  13. 13. Method 1 - TXT • How should I format the TXT file? • Parse == Hell • Speed (development and execution)
  14. 14. Method 1 - TXT
  15. 15. Method 1I Hello! Hi! ESB
  16. 16. Method 1I - ESB
  17. 17. Method 1I - ESB • SOA Expertise • High skill set • $$$$$ in some cases.
  18. 18. Method I1 - ESB
  19. 19. One example Support Company
  20. 20. Example Sure! I will contact IT department. PLZ FIX MY SYSTEM. Sales Guy
  21. 21. Example We have work to do! Heeeyy IT guy! Yo!
  22. 22. Example Have you seen the hockey game yesterday? YEEESS AWESOME!
  23. 23. bla bla bla bla bla bla
  24. 24. Example bla bla bla bla bla bla
  25. 25. Example Synchronous communication
  26. 26. Example Have you seen the hockey game yesterday? YEEESS AWESOME!
  27. 27. Example The SHALL NOT directly communicate.
  28. 28. Example Client 1 Request 1
  29. 29. Example Now they won’t directly communicate!
  30. 30. Example Asynchronous Communication They don’t waste time!
  31. 31. Example
  32. 32. Some problems
  33. 33. Some Problems
  34. 34. Message Transmission Asynchronous communication No direct communication There’s a ‘keeper' for the message board M essage O riented M iddleware
  35. 35. Message Transmission Message Destination Sender Receiver Broker
  36. 36. More Technical Sender Receiver Broker
  37. 37. Java World M essage O riented M iddleware Specification(PDF) ActiveMQ HornetQ Oracle AQ J ava M essage S ervice Some implementations
  38. 38. Implementations HornetQ ActiveMQ A vanced M essage Q ueuing P rotocol Work with different languages (interoperability) - - Security (Cryptography) - Message delivery guarantee (Reliability) PROTOCOL
  39. 39. Implementations HornetQ ActiveMQ S treaming T ext O riented M essage P rotocol - Work with different languages (interoperability) - Similar to HTTP - Text PROTOCOL
  40. 40. { Implementations ØMQ - Multiple Languages - Concurrency - Transports messages between protocols - Multicast - Written in C++ - Performance - Hard to configure
  41. 41. { Implementatiosn Sidekiq - Ruby - Rails - Redis - Performance
  42. 42. { Implementations Kafka - Performance - Scalability - Messages persisted on disk and replicated on cluster - Environment had to configure
  43. 43. { Implementations ActiveMQ - Performance - Java - ESBs
  44. 44. { When I should use messaging systems Asynchronous communication - Email - Reports - Long running operations in batch
  45. 45. { When I should NOT use messaging systems - Requires immediate response Synchronous communication - Cannot provide information about the destination
  46. 46. MOAR Examples Imagine a system: Sends Emails S Captures and log S events JM CRUD GeneratesS Daily JM Reports JM
  47. 47. Before Messaging Systems doSomething(); doMOAR(); sadsdsda(); return(); What happens if it takes too long? Synchronous communication
  48. 48. After Messaging Systems sendMessageToQueue(); return(); All done for this message! Asynchronous communication Queue Consumer doSomething(); doMOAR(); sadsdsda();
  49. 49. Where to go now Enterprise Integration Patterns Apache Camel JMS
  50. 50. Questions? THANK YOU! hannelita@gmail.com! Twitter: @hannelita
  51. 51. References • • • http://academictech.doit.wisc.edu/blend/facilitate/communicate • • • • • • http://www.practicingsafetechs.com/TechsV1/MOMs/ http://docs.oracle.com/cd/E19340-01/820-6424/aeraq/index.html http://docs.oracle.com/javaee/1.3/jms/tutorial/1_3_1-fcs/doc/ jms_tutorialTOC.html http://www.amqp.org/product/overview http://stomp.github.io/stomp-specification-1.2.html#Protocol_Overview http://zguide.zeromq.org/ https://github.com/mperham/sidekiq/wiki http://kafka.apache.org/

×