32
Taking Your Enterprise to the Next Level with WSO2 MB and WSO2 ESB

Taking Your Enterprise to the Next Level with WSO2 Message Broker and WSO2 Enterprise Service Bus

Embed Size (px)

Citation preview

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