Upload
wso2-inc
View
364
Download
4
Embed Size (px)
Citation preview
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
6
● Spaghetti Integration○ What about maintainability, scalability, troubleshooting and governance
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)
Messaging Models - Queues (Point to Point)
• Verify the Order• Ship to Address• Update Stocks• Acknowledge Message
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();
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.
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