Transcript

Taking Your Enterprise to the Next Level with

WSO2 MB and WSO2 ESB

Agenda

2

● Introduction to ESB○ What is ESB in the context of SOA○ Role of the ESB○ What is an ESB ?

● Introduction to MB○ Role of Message Broker in Service Integration ○ Messaging Models – Queues (Point to Point)○ Messaging Models – Publish/Subscribe○ Messaging Models – Shared Subscriptions○ Messaging Concepts – Delivery & Acknowledgements○ WSO2 Message Broker (Design)○ WSO2 MB differentiator

● Integrating ESB with the Message Broker● JMS Terminology● Flexibility● Throttling● Reliability● Protocol Switching JMS - MQTT● Message Broker Features● What’s coming up next

About the Presenters

3

๏ Shafreen Anfar senior software engineer WSO2

๏ Pamod Sylvester Associate Technical Lead WSO2

What is ESB in the context of SOA

4

● Modern Enterprises ○ Comprised of so many systems and services○ Built based on open standards, custom built, acquired from a third

party, part of a legacy system or any combination of these.

● Integration ○ Organizations are moving away from MONOLITHIC systems. ○ Multiple systems connected with SOA as the blueprint.

Role of the ESB

5

● Service Integration

Role of the ESB

6

● Spaghetti Integration○ What about maintainability, scalability, troubleshooting and governance

Role of the ESB

7

● ESB in action

What is an ESB ?

8

● An ESB is a middleware solution that enables interoperability, among heterogeneous environments using a service oriented model

● Stateless and Seamless Integration● Standard protocols/formats like SOAP, REST, JSON ● Transports like HTTP/S, JMS, TCP, VFS (and many more)

Sender Receiver

Role of Message Broker in Service Integration

Messaging Models - Queues (Point to Point)

• Verify the Order• Ship to Address• Update Stocks• Acknowledge Message

Messaging Models- Publish/Subscribe

Messaging Models – Shared Subscriptions

Messaging Concepts – Delivery & Acknowledgements

At most once: Message would be delivered to its best performance, less reliable At least once: More reliable than At most once. Duplicated could occur Exactly once: Most reliable option. Ensures a message is delivered to its receivers only once

WSO2 Message Broker (Design)

• Avoid routing messages over the network multiple hops

• Use storage to share messages between nodes.

• Use distributed coordination to control the behavior (i.e. Hazelcast)

• Leaner deployment layout ( and clustering story)

WSO2 MB differentiator

• Simplified clustering story (- Queues/Topics)– Users don’t have to worry about how brokers transmit messages in

the cluster.

• RDBMS for persistence →Easy to manage and use

• Simpler Cluster deployments → Minimum deployment effort + maintenance.

Java Message Service (JMS)

● A specification that define a standard API for java programmer to perform messaging by interacting with a message broker

● It does not define the message format or how java API interacts with the message broker

● Enables communication that is○ Flexible and Agility○ Asynchronous - JMS provider can deliver messages as they

arrive, client does not have to request messages.○ Reliable - The JMS API ensures that a message is delivered

once and only once

Integrating ESB with the Message Broker

JMS Terminology

17

● Message Consumer, Producer and Broker

Message Producer

Message Consumer

Message Broker

dest = (Destination) jndiContext.lookup(destName);queue = (Queue) jndiContext.lookup(queueName);

MessageProducer producer = session.createProducer(dest);TextMessage message = session.createTextMessage();message.setText(“Hello”);producer.send(message);

dest = (Destination) jndiContext.lookup(destName);queue = (Queue) jndiContext.lookup(queueName);

MessageConsumer consumer = session.createConsumer(dest);Message m = consumer.receive();

Flexibility and Agility

18

● Producer/Consumer

Flexibility and Agility

19

● Synapse configuration for Consumer

Flexibility

20

● Synapse configuration for Producer

Throttling

21

● Store/Forward Pattern○ Asynchronous/One-way Messaging ○ Guaranteed Delivery and Rate matching ○ JMS Message broker as the persistence store – WSO2 MB, Apache

Active MQ etc.

Throttling

22

● Store/Forward Requesting Matching

Reliability

23

● Store/Forward - Guaranteed Delivery

Reliability

24

● Store/Forward - Guaranteed Delivery

Reliability

25

● Store/Forward - In order delivery

Reliability

26

● JMS Transactions

Reliability

27

● JMS Transactions

Reliability

28

● JMS Synchronous invocation

Protocol Switching JMS - MQTT

29

JMS Producers

JMS Consumers

JMS Topic

MQTT Topic

MQTTConsumers

Message Broker Features

30

• Protocols/Specifications : JMS 1.1, AMQP 0-9-1, MQTT 3.1.1

• Simplified Clustering Story (and related concepts)

• Databases : MySQL, MSSQL, Oracle, PostgreSQL, H2

• Real time statistics - Quickly figure out bottlenecks in a production deployments.

- Database read/write latencies

- Inbound/Outbound event rates

- Number of Connections/Channels etc.

What’s coming up next

WSO2 Message Broker

• Support for AMQP 1.0 and JMS 2.0

• Improvements to Storage Scheme, Performance improvements

• Analytics for MB

• Move Carbon 5

• Improved GUI

• MQTT + Websockets

WSO2 Enterprise Service Bus

• JMS 2 support

• Distributed Transactions on JMS producer side

31

Thank you!

32


Recommended