ibm impact 2014 amc-1866 introduction to ibm messaging capabilities
DESCRIPTION
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.TRANSCRIPT
© 2014 IBM Corporation
Introduction to IBM Messaging CapabilitiesAMC-1866
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.
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
baremetal
virtualmachine
Why IBM Messaging for Modern Enterprise SOA Applications
Pendingwork
Application
Statedata
Businesslogic
UserinterfacesS
ervi
ce in
terf
ace
Events
TransactionsRequestsfor work
Queries
Batch/files
Transactions and Events
Pendingwork
Application
Statedata
Businesslogic
UserinterfacesS
ervi
ce in
terf
ace
Events
Queries
Transactions
Batch/files
- Transaction integrity via exactly once delivery
- Massive scale event distribution
- Supports all endpoints, from Mainframe to Mobile
- Transaction integrity via exactly once delivery
- Massive scale event distribution
- Supports all endpoints, from Mainframe to Mobile
Requestsfor work
Batch and Files
Pendingwork
Application
Statedata
Businesslogic
UserinterfacesS
ervi
ce in
terf
ace
Events
Requestsfor 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
Request / Reply Queries
Pendingwork
Application
Statedata
Businesslogic
UserinterfacesS
ervi
ce in
terf
ace
Events
Requestsfor 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
Within the application logic
Pendingwork
Application
Statedata
Businesslogic
UserinterfacesS
ervi
ce in
terf
ace
Events
Requestsfor 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
IBM MQ
A single, robust universal messaging backbone for dynamic, diverse systemsHeterogeneous any-to-any connectivity from desktop to mainframeA scalable messaging architecture that enables capacity to be incrementally grown to meet increasing workloadsAssures one-time delivery – messages are never lost or duplicatedLoosely 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
BusinessPartners
MQ as a Universal Messaging Backbone
Active/Active Queue Manager Hubs
Multi-instanceQueue Managers,and HA clustering
Co-locatedQueue Managers
z/OS QueueSharing Groups
Secure MQ Cluster and Channel communications – manage complexity and route around failures
MQ ClusterWorkload Balancing
MQ ClusterWorkload Balancing
Scalable Pattern: Active/Active HA and no SPOF
Every sender/requester uses two connectionsEvery receiver/service has two listenersMake each Queue Manager HA to recover persistent messagesSimple to interoperate with co-located Queue ManagersSimple to interoperate with z/OS Queue Sharing Groups Pattern discussed in detail here: http://ow.ly/vrUUV
App1 QM1App1 QM1
App1QM2App1QM2
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
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 connectto two remote queue managers?
http://ow.ly/vrWEP
Sendingapplication
Connectionlogic
(CCDT orcustom)
QM 1
QM 2
MQ connection 1
MQ connection 2
MQ
Clust er
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
Receivingapplication
Active
Active
MQ Listener 1
MQ Listener 2
MQ
Clust er
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
Scalable pattern: Synchronous request/response
Response 1Requesterapplication
Connectionlogic
(CCDT orcustom)
MQ 1
MQ 2
MQ connection 1
MQ connection 2
MQ
Clust er
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
AsynchronousReceiver
Scalable pattern: Two-way asynchronous messaging
The optimal use of messaging is fully asynchronousRequests 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
Receivingapplication
Active
Active
MQ Listener 1
MQ Listener 2
MQ
Cluste
r
ReceivingGateway 1
ReceivingGateway 2
Fire &ForgetRequester
CCDTor custom
SendingGateway 1
SendingGateway 2
MQ connection 1
MQ connection 2
MQ Listener 1
MQ Listener 2
50% requests
50% requests
50% responses
50% responses
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/S
ub Fan
-Ou
t+
MQ
Clu ster W
LM
Sub2 Inst1
Sub2 Inst2
QM3
QM4
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
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
Use case – Connected car
Connected car
vibration detected, details published
Unlock my car
schedules appointmentwith car owner
Find my car
predicts part failure
MQTT protocol for mobile and M2M messagingMQTT 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
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
IBM MessageSight at the boundary of the Enterprise
25
Managed APIs
Managed APIs
Registration and messaging
Registration and messaging
PartnersCustomers
Developers
Employees
More ThingsBuilt-in IoT Capabilities
Built-in IoT Capabilities
BlueMix devenvironment
BlueMix devenvironment
IBM Internet of Things CloudStatement of direction: http://ow.ly/vGcg7 Quick start: http://quickstart.internetofthings.ibmcloud.com
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
Mes
sagi
ngM
essa
ging
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 AppInstanceWeb AppInstance
Web AppInstanceWeb AppInstance
Web AppInstanceWeb AppInstance
Web AppInstanceWeb AppInstance
Web AppInstanceWeb AppInstance
WorkerWorker
WorkerWorker
WorkerWorker
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
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
Try IBM application messaging today!
MQ Light : www.ibmdw.net/messaging/mq-light/
Elastic MQ : www.bluemix.net
MQ LightJMS
Messaging for Enterprise, Mobile and Cloud Sessions this WeekMonday 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
19
16: H
and
s-on La
b: IB
M W
S M
Q
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
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:30Mon 10:30, Wed 15:45Mon 10:30Mon 13:00Mon 13:00Mon 13:00, Tue 14:15Mon 16:00Mon 16:00Mon 17:15Mon 17:15, Thu 10:30Tue 10:30Tue 10:30, Wed 14:15, Thu 09:00Tue 10:30Tue 12:00Tue 13:00Tue 14:15Tue 15:45Tue 15:45Tue 15:45Tue 17:00Tue 17:00, Wed 13:00, Wed 17:00Wed 10:30Wed 10:30Wed 13:00Wed 14:15Wed 15:45Wed 15:45Wed 15:45Wed 17:00Wed 17:00Thu 09:00Thu 09:00Thu 10:30Thu 13:00Thu 14:15Thu 14:15Thu 15:45
Questions?
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
Thank You
Legal Disclaimer
• © IBM Corporation 2014. All Rights Reserved.• The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained
in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software.
• References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results.
• If the text contains performance statistics or references to benchmarks, insert the following language; otherwise delete: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.
• If the text includes any customer examples, please confirm we have prior written approval from such customer and insert the following language; otherwise delete:All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer.
• Please review text for proper trademark attribution of IBM products. At first use, each product name must be the full name and include appropriate trademark symbols (e.g., IBM Lotus® Sametime® Unyte™). Subsequent references can drop “IBM” but should include the proper branding (e.g., Lotus Sametime Gateway, or WebSphere Application Server). Please refer to http://www.ibm.com/legal/copytrade.shtml for guidance on which trademarks require the ® or ™ symbol. Do not use abbreviations for IBM product names in your presentation. All product names must be used as adjectives rather than nouns. Please list all of the trademarks that you use in your presentation as follows; delete any not included in your presentation. IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both.
• If you reference Adobe® in the text, please mark the first use and include the following; otherwise delete:Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries.
• If you reference Java™ in the text, please mark the first use and include the following; otherwise delete:Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
• If you reference Microsoft® and/or Windows® in the text, please mark the first use and include the following, as applicable; otherwise delete:Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both.
• If you reference Intel® and/or any of the following Intel products in the text, please mark the first use and include those that you use as follows; otherwise delete:Intel, Intel Centrino, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.
• If you reference UNIX® in the text, please mark the first use and include the following; otherwise delete:UNIX is a registered trademark of The Open Group in the United States and other countries.
• If you reference Linux® in your presentation, please mark the first use and include the following; otherwise delete:Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others.
• If the text/graphics include screenshots, no actual IBM employee names may be used (even your own), if your screenshots include fictitious company names (e.g., Renovations, Zeta Bank, Acme) please update and insert the following; otherwise delete: All references to [insert fictitious company name] refer to a fictitious company and are used for illustration purposes only.