IBM Messaging provides market-leading capabilities for anywhere-to-anywhere integration across mobile, cloud, and enterprise platforms - from the simplest pair of applications requiring basic connectivity and data exchange, to the most complex business process management environments. Come to this session to understand the value and rationale of message/queuing and the IBM Messaging family of products; its key features and functions; and how it can be used to build a secure, flexible, and scalable messaging backbone for a business.
2. Please Note
IBM’s statements regarding its plans, directions, and intent are subject to change
or withdrawal without notice at IBM’s sole discretion.
Information regarding potential future products is intended to outline our general
product direction and it should not be relied on in making a purchasing decision.
The information mentioned regarding potential future products is not a
commitment, promise, or legal obligation to deliver any material, code or
functionality. Information about potential future products may not be incorporated
into any contract. The development, release, and timing of any future features or
functionality described for our products remains at our sole discretion.
Performance is based on measurements and projections using standard IBM
benchmarks in a controlled environment. The actual throughput or performance
that any user will experience will vary depending upon many factors, including
considerations such as the amount of multiprogramming in the user’s job stream,
the I/O configuration, the storage configuration, and the workload processed.
Therefore, no assurance can be given that an individual user will achieve results
similar to those stated here.
3. Anywhere
Anyone
Anyway
Anyhow
Anything
Creating scalable, resilient and interactive applications
RubyRuby
Node.jsNode.js
PythonPython
CC
C++C++
JavaJava
C#C#
PerlPerl
GoGo
ClojureClojure
LuaLua
ErlangErlang ScalaScala
PHPPHP
XML SOAP JSON COPYBOOK
Zip Image Telemetry CSV
IaaS
XML
PaaS
bare
metal
virtual
machine
4.
5.
6. Why IBM Messaging for Modern Enterprise SOA Applications
Pending
work
Application
State
data
Business
logic
User
interfaces
Serviceinterface
Events
Transactions
Requests
for work
Queries
Batch/files
8. Batch and Files
Pending
work
Application
State
data
Business
logic
User
interfaces
Serviceinterface
Events
Requests
for work
Queries
Transactions
Batch/files
- Secure and auditable Managed File Transfer (MFT)
- Efficient batch processing for any application platform
- Evolve systems from batch to real-time processing
- Secure and auditable Managed File Transfer (MFT)
- Efficient batch processing for any application platform
- Evolve systems from batch to real-time processing
9. Request / Reply Queries
Pending
work
Application
State
data
Business
logic
User
interfaces
Serviceinterface
Events
Requests
for work
Queries
- Prioritize, control and smooth high scale workloads
- Protect critical systems from new REST / HTTP front-end workloads
- Hide the complexity of global infrastructure from apps and developers
- Prioritize, control and smooth high scale workloads
- Protect critical systems from new REST / HTTP front-end workloads
- Hide the complexity of global infrastructure from apps and developers
Transactions
Batch/files
10. Within the application logic
Pending
work
Application
State
data
Business
logic
User
interfaces
Serviceinterface
Events
Requests
for work
Queries
- Optimize processing within the application
- Offload time-intensive processing
- Parallelize complex tasks
- Exploit WebSockets to make UIs responsive
- Optimize processing within the application
- Offload time-intensive processing
- Parallelize complex tasks
- Exploit WebSockets to make UIs responsive
Transactions
Batch/files
11. IBM MQ
A single, robust universal messaging backbone for dynamic,
diverse systems
Heterogeneous any-to-any connectivity from desktop to mainframe
A scalable messaging architecture that enables capacity to be
incrementally grown to meet increasing workloads
Assures one-time delivery – messages are never lost or
duplicated
Loosely coupled application architecture enables you to respond
rapidly to internal and external challenges easily by modifying
existing services
11
WebSphere MQ Advanced for Developers
- Full WebSphere MQ Advanced package
- Package available for download by developers
- Supported offering available priced per Single User Install
12. Business
Partners
MQ as a Universal Messaging Backbone
Active/Active
Queue Manager Hubs
Multi-instance
Queue Managers,
and HA clustering
Co-located
Queue Managers
z/OS Queue
Sharing Groups
Secure MQ Cluster and Channel communications – manage complexity and route around failures
13. MQ Cluster
Workload Balancing
MQ Cluster
Workload Balancing
Scalable Pattern: Active/Active HA and no SPOF
Every sender/requester uses two connections
Every receiver/service has two listeners
Make each Queue Manager HA to recover persistent messages
Simple to interoperate with co-located Queue Managers
Simple to interoperate with z/OS Queue Sharing Groups
Pattern discussed in detail here: http://ow.ly/vrUUV
App1 QM1App1 QM1
App1
QM2
App1
QM2
App2 QM1App2 QM1
Shared QM1Shared QM1
Shared QM2Shared QM2
App1 Inst1App1 Inst1
App1 Inst2App1 Inst2
App1 Inst3App1 Inst3
App1 Inst4App1 Inst4
App2 Inst1App2 Inst1
App2 Inst2App2 Inst2
App2 Inst3App2 Inst3
App2 Inst4App2 Inst4
App2 QM2App2 QM2
App2 QM3App2 QM3
App2 QM4App2 QM4
App1 Inst1App1 Inst1
App1 Inst2App1 Inst2
App1 Inst3App1 Inst3
App1 Inst4App1 Inst4
App2 Inst1App2 Inst1
App2 Inst2App2 Inst2
14. Scalable pattern: Sending messages
Each app instance sends to two different queue managers
Need a workload management strategy
• Prioritised
• Random
• Round robin – my personal preference
Biggest practical concern for customers:
How does my app code connect
to two remote queue managers?
http://ow.ly/vrWEP
Sending
application
Connection
logic
(CCDT or
custom)
QM 1
QM 2
MQ connection 1
MQ connection 2
MQCluster
15. Scalable pattern: Receiving messages
Each application instance needs two active listeners
• Random/prioritised attachment can lead to stranded messages
For Java EE this means two MDB endpoints
• EJB 2.1 style deployment descriptors
– Add a second endpoint to the XML
• EJB 3.0 style annotations
– Create a code hierarchy
Receiving
application
Active
Active
MQ Listener 1
MQ Listener 2
MQCluster
QM 1
QM 2
Note: AMQSCLM provides an alternative if you cannot create two active
listeners. AMQSCLM redirects messages via the cluster if one consumer
is down: http://ow.ly/vrY9y
16. Scalable pattern: Synchronous request/response
Response 1
Requester
application
Connection
logic
(CCDT or
custom)
MQ 1
MQ 2
MQ connection 1
MQ connection 2
MQCluster
Request 1
Response 2
Request 2
Use same MQ connection to receive the response
• e.g. the same JMS Session
MQ fills in the MQMD.ReplyToQMgr on send
• Back-end app must honour this when sending the response
17. Asynchronous
Receiver
Scalable pattern: Two-way asynchronous messaging
The optimal use of messaging is fully asynchronous
Requests are sent “fire & forget”, as are responses
• Critical requests are sent as persistent within a transaction that updates a DB
• Transactional state update + persistent send = exactly once delivery
Responses are handled by any app instance at any time
• No thread is left ‘hung’ in the requesting application
• If responses need to be correlated with requests, then a state store is used
– A Database – DB2 etc.
– An elastic cache – WebSphere eXtreme Scale
Must be designed into the application
• Can revolutionize responsiveness
• Truly decouples applications
Receiving
application
Active
Active
MQ Listener 1
MQ Listener 2
MQCluster
Receiving
Gateway 1
Receiving
Gateway 2
Fire &
Forget
Requester
CCDT
or custom
Sending
Gateway 1
Sending
Gateway 2
MQ connection 1
MQ connection 2
MQ Listener 1
MQ Listener 2
50% requests
50% requests
50% responses
50% responses
18. Scalable pattern: Publish/subscribe messaging
MQ gives the same QoS for pub/sub as for P2P
• Fan out messages one-to-many
• WLM across multiple subscriber instances
Achieved by bridging durable subscriptions to cluster queues
• Define subscriptions on queue managers where publishers
connect
Sub1 Inst1
Sub1 Inst2Pub Inst1
Pub Inst2
QM1
QM2
QM3
QM4
Pub/SubFan-Out
+MQClusterWLM
Sub2 Inst1
Sub2 Inst2
QM3
QM4
19.
20. Internet of Things – 2020 forecast
212 Billion
Installed Things
30 Billion
Autonomously connected Things
Highly sophisticated Mobile Things with
human interaction
Instrumented & Interconnected Things
communicating M2M (machine-to-machine)
Source: IDC, December 2013
21. Why Messaging for Mobile and M2M
The HTTP standard revolutionized how people consume data
• Simple request/response model
• Available via any tablet, laptop, phone, PC etc.
• Not designed for wireless
• Slow and unreliable on mobile networks
Mobile and M2M have additional challenges
• Requires a real-time, event-driven model
• Publishing information one-to-many
• Listening for events as they happen
• Sending small packets of data in huge volumes
• Reliably pushing data over unreliable networks
22. Use case – Connected car
Connected car
vibration detected,
details published
Unlock
my car
schedules appointment
with car owner
Find
my car
predicts part failure
23. MQTT protocol for mobile and M2M messaging
MQTT is a messaging protocol ideally suited to mobile and M2M environments
It has an open specification (http://mqtt.org)
• There are over 40 different client implementations
• Standardization with OASIS is in progress
High-quality, open-source implementations of clients
• Hosted at the Eclipse Paho project
• Build the clients yourself or use free ones from IBM or others
MQTT is very lean and fast
• Efficient format with minimal overhead
• Client implementations are small and can run on small devices
Communication using messaging is much more flexible than request/response
• Bi-directional, asynchronous “push” communication
• Publish/subscribe decouples the senders of information from the receivers
24. IBM MessageSight
24
• A purpose-built messaging appliance
• The gateway to the Internet of Things for the enterprise
• Fast, lightweight, secure, reliable messaging for Mobile
28. A new breed of Developer has evolved
Expects communications to be easy
• Thinks in REST/HTTP, JSON and simple XML
Develops web facing apps, using web technologies
• Both on the web, and of the web
Only cares about infrastructure that rapidly delivers value
• Might prototype multiple components to find something that fits
Assembles apps using a microservices approach
• Well defined components separated by lightweight comms
Expects everything to scale
• Cares about high levels of redundancy, more than transactions
Sees the cloud as the future
• For everything from prototyping to production
RubyRuby
Node.jsNode.js
PythonPython
CC
C++C++
JavaJava
C#C#
PerlPerl
GoGo
ClojureClojure
LuaLua
ErlangErlang ScalaScala
PHPPHP
29. 29
MessagingMessaging
A Typical Developer Use-Case for Messaging
I want to offload expensive tasks to workers
• So I can keep my web requests responsive
I care about the Web App and the Workers
• I don’t care about the details of the messaging
Web App
Instance
Web App
Instance
Web App
Instance
Web App
Instance
Web App
Instance
Web App
Instance
Web App
Instance
Web App
Instance
Web App
Instance
Web App
Instance
WorkerWorker
WorkerWorker
WorkerWorker
30. 30
MQ Light and Application Messaging
Messaging for application developers to help
create responsive applications that scale easily
Trivially easy to get started;
• No setup
• No configuration
• No administration
Available as software download or cloud service
APIs crafted specifically for each language
Tooling that supports app development
Software
Cloud Service
30
31. Application messaging deployment options
Developer coding in Python,
Ruby, JavaScript, Java, C#,
PHP
Elastic MQ
(On BlueMix)
WebSphere MQ
[Statement of Direction]
“MQ Light”
Deploy seamlessly to “MQ Light”, MQ
or Elastic MQ
Builds application and uses MQ
Light messaging and tests in local
developer sandbox
31
33. Messaging for Enterprise, Mobile and Cloud Sessions this Week
Monday Tuesday Wednesday Thursday
09:00 1868: IBM WS MQ: Disaster Recovery
1870: IBM WS MQ: Using Pub Sub in an MQ Network
1924: Roundtable: IBM WS MQ Light in a IBM WS MQ Infrastructure
10:30 1880: Secure Messages with IBM WS MQ
Advanced Message Security
1866: Introduction to IBM Messaging
Capabilities
2640: MQ Telemetry Transport (MQTT) Details
3134: Meet the Experts: IBM MessageSight
1924: Roundtable: IBM WS MQ Light in a IBM
WS MQ Infrastructure
1896: How to Develop Responsive Applications
with IBM WS MQ Light
1885: IBM WS MQ on z/OS & Distributed Platforms - Are They Like
Oil & Water
1917: Hands-on Lab: Developing a First Application with IBM WS MQ
Light
1294: Enable Active-Active Business Through
Enterprise High-availability Messaging Technology
1873: IBM WS MQ Security: Latest Features Deep
Dive
12:00 LUNCH LUNCH LUNCH LUNCH
3420: Managing What Needs to Be Managed - It
Shouldn’t Matter Where It Is
13:00 1227: How Not to Run a Certificate
Management Center of Excellence
1869: IBM WS MQ: Using the Publish
Subscribe Messaging Paradigm
1863: What's New in IBM Messaging
1872: IBM WS MQ: Managing Workloads, Scaling
& Availability with MQ Clusters
1879: Using IBM WS MQ in Managed File Transfer Environments
1922: Roundtable: IBM Messaging Feedback
1883: Where Is the Message - Analyze IBM WS MQ
Recovery Logs, Trace Routes, & Look In
Applications
14:15 1800: IBM WS MQ for z/OS & CICS: Workload
Balancing in a Plexed World
1863: What's New in IBM Messaging
1924: Roundtable: IBM WS MQ Light in a IBM WS MQ Infrastructure
1876: IBM WS MQ for z/OS: Latest Features Deep Dive
1229: The IBM WS MQ Toolbox: 20 Scripts, One-
liners, & Utilities for UNIX & Windows
1804: Mean Time to Innocence: IBM WS MQ
Problem Determination
16:00 1877: IBM WS MQ for z/OS:
Performance & Accounting
1894: What Is IBM WS MQ
Light & Why It Matters
15:45 1882: Building a Scalable & Continuously Avail-
able IBM WS MQ Infrastructure with Travelport
1720: Building a Managed File Transfer Service at
ADP
1897: Messaging in the Cloud with IBM WS MQ
Light & IBM BlueMix
1916:Hands-onLab:IBMWSMQ
3133: Meet the Experts: IBM Messaging
1874: IBM WS MQ: Performance & Internals Deep Dive (Not zOS)
1866: Introduction to IBM Messaging Capabilities
2454: Using IBMs Managed File
Transfer Portfolio to Maximize
Data Effectiveness
17:15 1881: Using IBM WS MQ
with IBM WAS & Liberty
Profile
1873: IBM WS MQ Security:
Latest Features Deep Dive
17:00 1878: IBM WS MQ for zOS: Shared Queues
1922: Roundtable: IBM Messaging Feedback
1867: IBM WS MQ: High Availability
1922: Roundtable: IBM Messaging Feedback
2646: Discover the Value IBM Software Delivers On Top of Open Source
34. Messaging for Enterprise, Mobile and Cloud
• 1880: Secure Messages with IBM WebSphere MQ Advanced Message Security
• 1866: Introduction to IBM Messaging Capabilities
• 2640: MQ Telemetry Transport (MQTT) Details
• 1227: How Not to Run a Certificate Management Center of Excellence
• 1869: IBM WebSphere MQ: Using the Publish Subscribe Messaging Paradigm
• 1863: What's New in IBM Messaging
• 1877: IBM WebSphere MQ for z/OS: Performance & Accounting
• 1894: What Is IBM WebSphere MQ Light & Why It Matters
• 1881: Using IBM WebSphere MQ with IBM WebSphere Application Server & Liberty Profile
• 1873: IBM WebSphere MQ Security: Latest Features Deep Dive
• 3134: Meet the Experts: IBM MessageSight
• 1924: Roundtable: IBM WebSphere MQ Light in a IBM WebSphere MQ Infrastructure
• 1896: How to Develop Responsive Applications with IBM WebSphere MQ Light
• 3420: Managing What Needs to Be Managed - It Shouldnt Matter Where It Is
• 1872: IBM WebSphere MQ: Managing Workloads, Scaling & Availability with MQ Clusters
• 1800: IBM WebSphere MQ for z/OS & CICS: Workload Balancing in a Plexed World
• 1882: Building a Scalable & Continuously Available IBM WebSphere MQ Infrastructure with Travelport
• 1720: Building a Managed File Transfer Service at ADP
• 1897: Messaging in the Cloud with IBM WebSphere MQ Light & IBM BlueMix
• 1878: IBM WebSphere MQ for zOS: Shared Queues
• 1922: Roundtable: IBM Messaging Feedback
• 1885: IBM WebSphere MQ on z/OS & Distributed Platforms - Are They Like Oil & Water
• 1917: Hands-on Lab: Developing a First Application with IBM WebSphere MQ Light
• 1879: Using IBM WebSphere MQ in Managed File Transfer Environments
• 1876: IBM WebSphere MQ for z/OS: Latest Features Deep Dive
• 3133: Meet the Experts: IBM Messaging
• 1874: IBM WebSphere MQ: Performance & Internals Deep Dive (Not zOS)
• 1916: Hands-on Lab: IBM WebSphere MQ
• 1867: IBM WebSphere MQ: High Availability
• 2646: Discover the Value IBM Software Delivers On Top of Open Source
• 1868: IBM WebSphere MQ: Disaster Recovery
• 1870: IBM WebSphere MQ: Using Publish Subscribe in an MQ Network
• 1294: Enable Active-Active Business Through Enterprise High-availability Messaging Technology
• 1883: Where Is the Message - Analyze IBM WebSphere MQ Recovery Logs, Trace Routes, & Look In
Applications
• 1229: The IBM WebSphere MQ Toolbox: 20 Scripts, One-liners, & Utilities for UNIX & Windows
• 1804: Mean Time to Innocence: IBM WebSphere MQ Problem Determination
• 2454: Using IBMs Managed File Transfer Portfolio to Maximize Data Effectiveness
Mon 10:30
Mon 10:30, Wed 15:45
Mon 10:30
Mon 13:00
Mon 13:00
Mon 13:00, Tue 14:15
Mon 16:00
Mon 16:00
Mon 17:15
Mon 17:15, Thu 10:30
Tue 10:30
Tue 10:30, Wed 14:15, Thu 09:00
Tue 10:30
Tue 12:00
Tue 13:00
Tue 14:15
Tue 15:45
Tue 15:45
Tue 15:45
Tue 17:00
Tue 17:00, Wed 13:00, Wed 17:00
Wed 10:30
Wed 10:30
Wed 13:00
Wed 14:15
Wed 15:45
Wed 15:45
Wed 15:45
Wed 17:00
Wed 17:00
Thu 09:00
Thu 09:00
Thu 10:30
Thu 13:00
Thu 14:15
Thu 14:15
Thu 15:45
36. We Value Your Feedback
Don’t forget to submit your Impact session and speaker
feedback! Your feedback is very important to us – we use it to
continually improve the conference.
Use the Conference Mobile App or the online Agenda Builder to
quickly submit your survey
• Navigate to “Surveys” to see a view of surveys for sessions
you’ve attended
36