MESSAGING SYSTEMS
WHY SHOULD I USE THEM?

http://slidesha.re/1dwZ1eS
Hi!
Hanneli
!

•
•
•

@hannelita	

Software Developer	

Coffee and Pokémon
Addicted

http://slidesha.re/1dwZ1eS
What we will see

• How can we integrate 2 or more systems?	

• A list of alternatives to integrate them	

• Problems and ...
Software development - very
simple

http://slidesha.re/1dwZ1eS
Simple software development

Web!
1. Number of users increases
2. Number of requested
functionalities increases
How can we expand the system?
How can we integrate?
???????
@&ˆ!@!

Hi!
How can we integrate?

The systems need to change information.
Method 1
Hi!
Method 1 - TXT
Method 1 - TXT

• How should I format the TXT file?	

• Parse == Hell	

• Speed (development and execution)
Method 1 - TXT
Method 1I
Hello!
Hi!

ESB
Method 1I - ESB
Method 1I - ESB

• SOA Expertise	

• High skill set	

• $$$$$ in some cases.
Method I1 - ESB
One example
Support 	

Company
Example
Sure! I will contact
IT department.
PLZ FIX MY
SYSTEM.

Sales Guy
Example
We have work to
do!
Heeeyy IT guy!

Yo!
Example
Have you seen the
hockey game
yesterday?

YEEESS 	

AWESOME!
bla bla bla

bla bla bla
Example
bla bla bla
bla bla bla
Example

Synchronous communication
Example
Have you seen the
hockey game
yesterday?

YEEESS 	

AWESOME!
Example

The SHALL NOT directly communicate.
Example

Client 1	

Request 1
Example

Now they won’t directly communicate!
Example

Asynchronous Communication
They don’t waste time!
Example
Some problems
Some Problems
Message Transmission
Asynchronous communication
No direct communication
There’s a ‘keeper' for the message board
M essage
...
Message Transmission

Message

Destination

Sender

Receiver
Broker
More Technical

Sender

Receiver
Broker
Java World
M essage
O riented
M iddleware
Specification(PDF)
ActiveMQ
HornetQ
Oracle AQ

J ava
M essage
S ervice

Some impl...
Implementations
HornetQ
ActiveMQ
A vanced
M essage
Q ueuing
P rotocol

Work with different
languages 	

(interoperability)...
Implementations
HornetQ
ActiveMQ
S treaming
T ext
O riented
M essage
P rotocol

-

Work with different
languages 	

(inter...
{

Implementations

ØMQ

- Multiple Languages
- Concurrency
- Transports messages
between protocols
- Multicast
- Written ...
{

Implementatiosn

Sidekiq

- Ruby
- Rails
- Redis
- Performance
{

Implementations

Kafka

- Performance
- Scalability
- Messages
persisted on disk
and replicated on
cluster
- Environmen...
{

Implementations

ActiveMQ

- Performance
- Java
- ESBs
{

When I should use messaging systems

Asynchronous
communication

- Email
- Reports

- Long running
operations in batch
{

When I should NOT use messaging systems

- Requires
immediate response

Synchronous
communication

- Cannot provide
inf...
MOAR Examples
Imagine a system:
Sends Emails
S

Captures and log	

S
events
JM

CRUD

GeneratesS
Daily 	

JM
Reports

JM
Before Messaging Systems
doSomething();
doMOAR();
sadsdsda();
return();

What happens if
it takes too long?

Synchronous
c...
After Messaging Systems
sendMessageToQueue();

return();

All done for this
message!
Asynchronous
communication

Queue

Co...
Where to go now

Enterprise Integration Patterns
Apache Camel
JMS
Questions?

THANK YOU!
hannelita@gmail.com!
Twitter: @hannelita
References

•
•
•

http://academictech.doit.wisc.edu/blend/facilitate/communicate	


•
•
•
•
•
•

http://www.practicingsaf...
Confoo 2014 Messaging Systems
Confoo 2014 Messaging Systems
Upcoming SlideShare
Loading in …5
×

Confoo 2014 Messaging Systems

498 views
428 views

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
498
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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/

×