InterConnect2017
HHM-6894Messaging APIs for Cloud, Enterprise & Digital Applications
Matthew WhiteheadIBM MQ Development
• IBM Messaging APIs and Servers
• Languages, Wire Formats, and APIs
• Recap of the Key Messaging Features
• Features supported in the different
Messaging APIs
Agenda
IBM Messaging
• IBM MQ
• Enterprise & hybrid messaging
• Ideal for inter-cloud communication, cloud ingress/egress
• Deployable anywhere that can host VMs or containers
• MessageHub
• Bluemix message streaming service based on Apache Kafka
• Ideal for micro-service architectures
• Streaming & real-time analytics
• MQ Light Development Server
• Ideal for rapid development of nodejs, Ruby, Java apps
• Simple messaging interface designed with language specific idioms
• Develop on Windows/Linux/Mac, deploy against MQ or MessageHub
• MessageSight and Watson IoT Platform
• Internet of Things platforms
• Connect huge numbers of devices
• Well suited to low-bandwidth networks
IBM Messaging
IBM
MessageHub
MQ Bridge
MQ Light
Microservice
Applications
Apache
Spark
Watson IoT
Platform / Message Sight
IBM Messaging
IBM
MessageHub
MQ Bridge
MQ Light
Microservice
Applications
Apache
Spark
• C MQI
• MQ JMS
• XMS C/C++/.Net
• MQ Light/AMQP 1.0
• MQTT 3.1
• …
Watson IoT
Platform / Message Sight
IBM Messaging
IBM
MessageHub
MQ Bridge
MQ Light
Microservice
Applications
Apache
Spark
• MQTT v3.1
Watson IoT
Platform / Message Sight
IBM Messaging
IBM
MessageHub
MQ Bridge
MQ Light
Microservice
Applications
Apache
Spark
• MQ Light / AMQP 1.0
Watson IoT
Platform / Message Sight
IBM Messaging
Watson IoT
Platform / Message Sight
IBM
MessageHub
MQ Bridge
• Kafka
MQ Light
Microservice
Applications
Apache
Spark
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
Languages, Wire Formats, and APIs
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
MQTT
Languages, Wire Formats, and APIs
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
MQTT HTTP
Languages, Wire Formats, and APIs
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
MQTT HTTP AMQP 1.0
Languages, Wire Formats, and APIs
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
MQTT HTTP AMQP 1.0
MQI
Languages, Wire Formats, and APIs
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
MQTT HTTP AMQP 1.0
MQIMQ Object
Oriented
Languages, Wire Formats, and APIs
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
MQTT HTTP AMQP 1.0
MQI XMSMQ Object
Oriented
Languages, Wire Formats, and APIs
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
MQTT HTTP AMQP 1.0
MQI XMSMQ Object
OrientedWCF
Languages, Wire Formats, and APIs
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
MQTT HTTP AMQP 1.0
MQI XMSMQ Object
OrientedWCF JMS
Languages, Wire Formats, and APIs
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
MQTT HTTP AMQP 1.0
MQI XMSMQ Object
OrientedWCF JMS MQTT
Languages, Wire Formats, and APIs
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
MQTT HTTP AMQP 1.0
MQI XMSMQ Object
OrientedWCF JMS MQ HTTPMQTT
Languages, Wire Formats, and APIs
Wire FormatsMQ Wire Format
(& Local Bindings)
Languages/
Runtimes
MQTT HTTP AMQP 1.0
MQI XMSMQ Object
OrientedWCF JMS HTTPMQTT MQ LightMQ HTTP MQ Light
Languages, Wire Formats, and APIs
APIs
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
MQTT HTTP AMQP 1.0
MQI XMSMQ Object
OrientedWCF JMS MQTT MQ HTTP MQ Light
Languages, Wire Formats, and APIs
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
MQTT HTTP AMQP 1.0
MQI XMS WCF JMS MQTTMQ Object
OrientedMQ HTTP MQ Light
Languages, Wire Formats, and APIs
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
MQTT HTTP AMQP 1.0
MQI XMS WCF JMS MQTTMQ Object
OrientedMQ HTTP MQ Light
Languages, Wire Formats, and APIs
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
MQTT HTTP AMQP 1.0
MQI XMS WCF JMS MQTTMQ Object
OrientedMQ HTTP MQ Light
Languages, Wire Formats, and APIs
Wire FormatsMQ Wire Format
(& Local Bindings)
Languages/
Runtimes
MQTT HTTP AMQP 1.0
Cobol
MQI XMSMQ Object
OrientedWCF JMS HTTPMQTT MQ LightMQ HTTP MQ Light
Languages, Wire Formats, and APIs
APIs
Wire FormatsMQ Wire Format
(& Local Bindings)
Languages/
Runtimes
MQTT HTTP AMQP 1.0
Cobol
PL/1
MQI XMSMQ Object
OrientedWCF JMS HTTPMQTT MQ LightMQ HTTP MQ Light
Languages, Wire Formats, and APIs
APIs
Wire FormatsMQ Wire Format
(& Local Bindings)
Languages/
Runtimes
MQTT HTTP AMQP 1.0
Cobol
PL/1
VB
MQI XMSMQ Object
OrientedWCF JMS MQTT
Languages, Wire Formats, and APIs
HTTP MQ LightMQ HTTP MQ LightAPIs
Wire FormatsMQ Wire Format
(& Local Bindings)
Languages/
Runtimes
MQTT HTTP AMQP 1.0
Cobol
PL/1
VB
C++
MQI XMSMQ Object
OrientedWCF JMS MQTT
Languages, Wire Formats, and APIs
HTTP MQ LightMQ HTTP MQ LightAPIs
Wire FormatsMQ Wire Format
(& Local Bindings)
Languages/
Runtimes
MQTT HTTP AMQP 1.0
Cobol
PL/1
VB
C++
Perl
MQI XMSMQ Object
OrientedWCF JMS MQTT
Languages, Wire Formats, and APIs
HTTP MQ LightMQ HTTP MQ LightAPIs
Wire FormatsMQ Wire Format
(& Local Bindings)
Languages/
Runtimes
MQTT HTTP AMQP 1.0
Cobol
PL/1
VB
C++
Perl
C
MQI XMSMQ Object
OrientedWCF JMS MQTT
Languages, Wire Formats, and APIs
HTTP MQ LightMQ HTTP MQ LightAPIs
Wire FormatsMQ Wire Format
(& Local Bindings)
Languages/
Runtimes
MQTT HTTP AMQP 1.0
Cobol
PL/1
VB
C++
Perl
C
ActiveX
MQI XMSMQ Object
OrientedWCF JMS MQTT
Languages, Wire Formats, and APIs
HTTP MQ LightMQ HTTP MQ LightAPIs
Wire FormatsMQ Wire Format
(& Local Bindings)
Languages/
Runtimes
MQTT HTTP AMQP 1.0
Cobol
PL/1
VB
C++
Perl
C
ActiveX
WCF
MQI XMSMQ Object
OrientedWCF JMS MQTT
Languages, Wire Formats, and APIs
HTTP MQ LightMQ HTTP MQ LightAPIs
Wire FormatsMQ Wire Format
(& Local Bindings)
Languages/
Runtimes
MQTT HTTP AMQP 1.0
Cobol
PL/1
VB
C++
Perl
C
ActiveX
WCF
Java
MQI XMSMQ Object
OrientedWCF JMS MQTT
Languages, Wire Formats, and APIs
HTTP MQ LightMQ HTTP MQ LightAPIs
Wire FormatsMQ Wire Format
(& Local Bindings)
Languages/
Runtimes
MQTT HTTP AMQP 1.0
Cobol
PL/1
VB
C++
Perl
C
ActiveX
WCF
Java
.Net
MQI XMSMQ Object
OrientedWCF JMS MQTT
Languages, Wire Formats, and APIs
HTTP MQ LightMQ HTTP MQ LightAPIs
Wire FormatsMQ Wire Format
(& Local Bindings)
Languages/
Runtimes
MQTT HTTP AMQP 1.0
Cobol
PL/1
VB
C++
Perl
C
ActiveX
WCF
Java
.Net
MQI XMSMQ Object
OrientedWCF JMS MQTT
C#
Languages, Wire Formats, and APIs
HTTP MQ LightMQ HTTP MQ LightAPIs
Wire FormatsMQ Wire Format
(& Local Bindings)
Languages/
Runtimes
MQTT HTTP AMQP 1.0
Cobol
PL/1
VB
C++
Perl
C
ActiveX
WCF
Java
.Net Ruby
MQI XMSMQ Object
OrientedWCF JMS MQTT
C#
Languages, Wire Formats, and APIs
HTTP MQ LightMQ HTTP MQ LightAPIs
Wire FormatsMQ Wire Format
(& Local Bindings)
Languages/
Runtimes
MQTT HTTP AMQP 1.0
Cobol
PL/1
VB
C++
Perl
C
ActiveX
WCF
Java
.Net
nodejs
Ruby
MQI XMSMQ Object
OrientedWCF JMS MQTT
C#
Languages, Wire Formats, and APIs
HTTP MQ LightMQ HTTP MQ LightAPIs
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
MQTT HTTP AMQP 1.0
C
MQI XMSMQ Object
OrientedWCF JMS HTTPMQTT MQ LightMQ HTTP MQ Light
Languages, Wire Formats, and APIs
Cobol
PL/1
VB
C++
Perl ActiveX
WCF
Java
.Net
nodejs
RubyC#
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
MQTT HTTP AMQP 1.0
MQI XMSMQ Object
OrientedWCF JMS HTTPMQTT MQ Light
Native C++ is now
stabilised.
Recommendations
are XMS or the C MQI
MQ HTTP MQ Light
Languages, Wire Formats, and APIs
Cobol
PL/1
VB
C++
Perl
C
ActiveX
WCF
Java
.Net
nodejs
RubyC#
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
MQTT HTTP AMQP 1.0
Base Java is now
stabilised. JMS is the
recommended MQ-
Java interface
MQI XMS
MQ Object
Oriented
(Base Java)WCF JMS HTTPMQTT MQ LightMQ HTTP MQ Light
Languages, Wire Formats, and APIs
Cobol
PL/1
VB
C++
Perl
C
ActiveX
WCF
Java
.Net
nodejs
RubyC#
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
MQTT HTTP AMQP 1.0
MQI XMS
MQ Object
Oriented
(Base Java)
WCF JMS HTTPMQTT MQ LightHTTP MQ LightMQ HTTP MQ Light
Languages, Wire Formats, and APIs
Cobol
PL/1
VB
C++
Perl
C
ActiveX
WCF
Java
.Net
nodejs
RubyC#
Wire FormatsMQ Wire Format
(& Local Bindings)
APIs
Languages/
Runtimes
MQTT HTTP AMQP 1.0
Cobol
PL/1
VB
C++
Perl
C
ActiveX
WCF
Java
.Net
nodejs
RubyC#
MQI XMSMQ Object
OrientedWCF JMS HTTPMQTT MQ LightHTTP MQ LightMQ HTTP MQ Light
Languages, Wire Formats, and APIs
Wire Formats
C
Cobol
Java
WCF
PL/1
VB .Net
C++
Perl ActiveX
MQ Wire Format
(& Local Bindings)AMQP 1.0MQTT
nodejs
Ruby
HTTP
APIs
Languages/
RuntimesC#
MQI XMSMQ Object
OrientedWCF JMS HTTPMQTT MQ LightHTTP MQ LightMQ HTTP MQ Light
Languages, Wire Formats, and APIs
Point-to-Point messaging
Publish/Subscribe messaging
Shared subscriptions
Message persistence
Message expiry
Message grouping
Message segmentation
Message selection
Local transactions
Global transactions
HA failover
MQ Messaging Features
Message properties
Asynchronous consume
Message browsing
Qualities of service
• At most once msg delivery
• At least once msg delivery
• Exactly once msg delivery
Point-to-Point messaging
Publish/Subscribe messaging
Shared subscriptions
Message persistence
Message expiry
Message grouping
Message segmentation
Message selection
Local transactions
Global transactions
HA failover
MQ Messaging Features
Message properties
Asynchronous consume
Message browsing
Qualities of service
• At most once msg delivery
• At least once msg delivery
• Exactly once msg delivery
MQ Wire Format MQTT HTTP AMQP 1.0
~
MQI MQ OO MQTT MQ HTTP MQ Light
~
Examples
C/MQIstrncpy(od.ObjectName, “Q1”, (size_t)MQ_Q_NAME_LENGTH);
MQOPEN(Hcon, &od, O_options,&Hobj, &OpenCode, &Reason);
JMSdestination = session.createQueue(“Q1”);
producer = session.createProducer(destination);
nodejs/
MQ Light
Notes:
• ~ can be used indirectly
at the subscriber
var options = { ttl: “300000” };
client.subscribe(“topic1”, “share1”, options, msgArrivedCallback);
Point-to-point messaging
MQ Wire Format MQTT HTTP AMQP 1.0
~
MQI MQ OO MQTT MQ HTTP MQ Light
Examples
C/MQI
od.ObjectString.VSPtr=“my/first/messaging/topic”;
od.ObjectString.VSLength=(MQLONG)strlen(argv[1]);
od.ObjectType = MQOT_TOPIC;
MQOPEN(Hcon, &od, O_options,&Hobj, &OpenCode, &Reason);
JMSdestination = session.createTopic(“my/first/topic”);
producer = session.createProducer(destination);
nodejs/
MQ Light
client.send(“my/first/messaging/topic”, body, options,
callback);
Notes:
• ~ can be used
indirectly
Publish/Subscribe Messaging
MQ Wire Format MQTT HTTP AMQP 1.0
~
MQI MQ OO MQTT MQ HTTP MQ Light
JMS 2
Examples
C/MQI
JMS 2
MessageConsumer messageConsumer =
session.createSharedConsumer(topic,"mySubscription");
MessageConsumer messageConsumer =
session.createSharedDurableConsumer(topic,"myDurableSub");
nodejs/
MQ Light
client.subscribe(pattern, “myShare”, options,
function(err, pattern) { // Handle errors });
N/A
Notes:
• ~ can be used indirectly
• Not supported by C MQI
• Primarily added to MQ for
JMS 2 support
• MQI has other ways of
achieving similar pattern
Shared Subscriptions
MQ Wire Format MQTT HTTP AMQP 1.0
~
MQI MQ OO MQTT MQ HTTP MQ Light
~ ~
Examples
C/MQIMQMD md = {MQMD_DEFAULT};
md.Persistence = MQPER_PERSISTENT;
…
MQPUT(Hcon, Hobj, &md, &pmo, messlen, buffer, &CC, &RC);
JMSMessageProducer producer = session.createProducer(dest);
producer.setDeliveryMode(DeliveryMode.PERSISTENT);
nodejs/
MQ Light
var options = { qos: mqlight.QOS_AT_LEAST_ONCE };
client.send(topic, body, options, callback);
Notes:
• ~ can be set indirectly
Message Persistence
MQ Wire Format MQTT HTTP AMQP 1.0
MQI MQ OO MQTT MQ HTTP MQ Light
Examples
C/MQIMQMD md = {MQMD_DEFAULT};
md.Expiry = 3000; // Expire in 5
minutes
…
MQPUT(Hcon, Hobj, &md, &pmo, messlen, buffer, &CC, &RC);
JMSMessageProducer producer = session.createProducer(dest);
producer.setTimeToLive(300000); // Expire in 5 minutes
nodejs/
MQ Light
var options = { ttl: 300000 }; // Expire in 5 minutes
client.send(topic, body, options, callback);
Notes:
• MQ expiry value is ‘tenths of a
second’
Message Expiry
MQ Wire Format MQTT HTTP AMQP 1.0
MQI MQ OO MQTT MQ HTTP MQ Light
Examples
C/MQI
JMSString selector = “NewsType = ’Sports’”;
MessageConsumer consumer =
session.createConsumer(queue, selector);
nodejs/
MQ LightN/A
Notes:
• Use on MQOPEN to filter
queued messages
• Applies to message properties
od.SelectionString.VSPtr=“Colour=‘red’”;
od.SelectionString.VSLength=MQVS_NULL_TERMINATED;
MQOPEN(Hcon, &od, O_options, &Hobj, &CC, &RC);
Message Selection (1)
MQ Wire Format MQTT HTTP AMQP 1.0
MQI MQ OO MQTT MQ HTTP MQ Light
Examples
C/MQI
JMSString selector = “NewsType = ’Sports’”;
MessageConsumer consumer =
session.createConsumer(queue, selector);
nodejs/
MQ LightN/A
Notes:
• Use on MQSUB to filter
published messages
• Applies to message properties
sd.SelectionString.VSPtr=“Colour=‘red’”;
sd.SelectionString.VSLength=MQVS_NULL_TERMINATED;
MQSUB(Hcon, &sd, &Hobj, &Hsub, &CompCode, &Reason);
Message Selection (2)
• Ability to put or get multiple messages to/from a destination, either all of them or none at all
• Messages are hidden from other applications until the transaction is committed.
• If a failure occurs mid-sequence, the transaction is rolled back and none of the messages are delivered. Other applications are never aware of the messages.
• If everything completes successfully, the messages are made available to other applications.
Local Transactions
MQ Wire Format MQTT HTTP AMQP 1.0
MQI MQ OO MQTT MQ HTTP MQ Light
Examples
C/MQI
pmo.Options = MQPMO_SYNCPOINT;
MQPUT(Hcon, Hobj, &md, &pmo, messlen, buffer, &CC, &RC);
MQCMIT(Hcon, &CC, &RC);
JMS
session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
// Get and put messages
session.commit();
nodejs/
MQ LightN/A
gmo.Options = MQGMO_SYNCPOINT;
MQGET(Hcon, Hobj, &md, &gmo, bufflen, buff, &msglen, &CC, &RC);
MQCMIT(Hcon, &CC, &RC);
Notes:
• Only queue manager
resources involved
• JEE containers manage
JMS transactions for you
Local Transactions
Similar to local transactions, but with multiple resources to update e.g.
• Application consumes 5 related messages from a queue and writes them all to a database
• If everything happens successfully, the messages are guaranteed to be removed from the queue and written to the database
• If a failure occurs, the messages are rolled back to the queue and none are in the database
• Potential for a transaction to go in-doubt needing manual resolution
Global Transactions
MQ Wire Format MQTT HTTP AMQP 1.0
MQI MQ OO MQTT MQ HTTP MQ Light
Examples
C/MQIMQBEGIN(Hcon, &bo, &CC, &RC);
// Read from database
pmo.Options = MQPMO_SYNCPOINT;
MQPUT(Hcon, Hobj, &md, &pmo, messlen, buffer, &CC, &RC);
MQCMIT(Hcon, &CC, &RC);
JMS
session = connection.createXASession();
// Read from database, put messages
xaResource = session.getXAResource();
xaResource.prepare(xaId, false);
xaResource.commit(xaId, false);
nodejs/
MQ LightN/A
Notes:
• Multiple resources coordinated
together (e.g. MQ and
Database)
• In this example the queue
manager is coordinating the
transaction
• Can be coordinated by DB/WAS
etc.
• Can result in in-doubt
transactions if a resource fails
mid-transaction
• In JMS/JEE the container does
the work
• MQ must be configured with the
DB XA libraries
Global Transactions
Describes the level of assurance given that a message will be delivered
• At most once delivery
The message might not arrive, but it is guaranteed that you won’t receive duplicates
• At least once delivery
The message will definitely arrive, but you may receive duplicates
• Exactly once delivery
The message is guaranteed to be delivered once and exactly once.
Often considered to be the ‘best’ option but brings with it various additional costs and complexities
Where are you measuring from?
Quality of Service
MQ Wire Format MQTT HTTP AMQP 1.0
MQI MQ OO MQTT MQ HTTP MQ Light
Examples
C/MQImd.Persistence = MQPER_NOT_PERSISTENT;
…
MQPUT(Hcon, Hobj, &md, &pmo, messlen, buffer, &CC, &RC);
JMS
nodejs/
MQ Light
var options = { qos: mqlight.QOS_AT_MOST_ONCE };
client.send(topic, body, options, callback);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
session = connection.createSession(transacted,
Session.AUTO_ACKNOWLEDGE);
producer.send(destination, message)
At-Most-Once Delivery
MQ Wire Format MQTT HTTP AMQP 1.0
MQI MQ OO MQTT MQ HTTP MQ Light
Examples
C/MQI
md.Persistence = MQPER_PERSISTENT;
pmo.Options = MQPMO_SYNCPOINT;
MQPUT(Hcon, Hobj, &md, &pmo, messlen, buffer, &CC, &RC);
MQCMIT(Hcon, &CC, &RC);
JMS
nodejs/
MQ Light
var options = { qos: mqlight.QOS_AT_LEAST_ONCE };
client.send(topic, body, options, callback);
Notes:
• Can’t always just turn at-least-
once ON with a single
parameter
• Relates to several areas:
• Reliability of network protocol
• Persistence of messages
• Durability of subscriptions
• ACK features in client libraries
producer.setDeliveryMode(DeliveryMode.PERSISTENT);
session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
message.acknowledge();
At-Least Once Delivery
MQ Wire Format MQTT HTTP AMQP 1.0
MQI MQ OO MQTT MQ HTTP MQ Light
Examples
C/MQI
MQBEGIN(Hcon, &bo, &CC, &RC);
pmo.Options = MQPMO_SYNCPOINT;
MQPUT(Hcon, Hobj, &md, &pmo, messlen, buffer, &CC, &RC);
MQCMIT(Hcon, &CC, &RC);
JMS
session = connection.createXASession();
// Put messages
xaResource = session.getXAResource();
xaResource.prepare(xaId, false);
xaResource.commit(xaId, false);
nodejs/
MQ LightN/A
Notes:
• Requires XA/Global
transactions
• Useful if messages MUST
arrive and MUSTN’T be
duplicated, but:
• Network flow more
complicated
• Might require a human
to resolve in-doubt
transactions
Exactly-Once Delivery
MQ Wire Format MQTT HTTP AMQP 1.0
N/A N/A N/A N/A
MQI MQ OO MQTT MQ HTTP MQ Light
N/A N/A N/A N/A N/A
Client Built-in HA reconnect?
C MQI Client
JMS MQ Client
Cobol MQI Client
MQ Base Java Client
C++ MQ Client
XMS C/C++/.Net
VB
.Net WCF
MQ Light Node/Ruby/Java/Python clients
Notes:
• Really a feature of the client
library rather than the wire
format or API
HA Failover/Auto-Reconnect
MQI MQ OO MQTT MQ HTTP MQ Light
Not base java
Message properties
MQI MQ OO MQTT MQ HTTP MQ Light
Not base java
or .Net/C#
some langs
Asynchronous consume
MQI MQ OO MQTT MQ HTTP MQ Light
Message browsing
Miscellaneous…
MQI MQ OO MQTT MQ HTTP MQ Light
Some langs
Message segmentation
MQI MQ OO MQTT MQ HTTP MQ Light
Message grouping
InterConnect2017
Thank you
IBM Messaging Developer Centre
developer.ibm.com/messaging
IBM Messaging Youtube
www.youtube.com/IBMmessagingMedia
ibm.biz/ibmmessaging
@IBMmessaging
IBM MQ Facebook
facebook.com/IBMMQ
InterConnect2017
IBM MQ Sessions at a Glance
71
Monday
1:00-1:45pm 6880 IBM MQ Appliance: Messaging in a Box
6894 Messaging APIs
2:00-2:45pm 6879 IBM MQ Advanced
3:15-4:00pm 6882 What’s New in the World of IBM MQ
4:15-5:00pm 3559 Banrisul Bank’s Migration to the MQ Appliance
6904 Help Shape the Future of IBM MQ
6:00-6:20pm 7441 IBM MQ in the Cloud
Tuesday
11:30-12:15pm 1487 IBM MQ Versus Open Source Messaging
1:30-2:15pm 1183 IBM MQ Appliance: Best Practices from the Field
2:30-3:15pm 6881 Unlock the data flowing through the infrastructure
3:45-4:30pm 4555 Allstate’s Experience with the MQ Appliance
4:15-4:35pm 7440 Managed Event Streams
4:45-5:30pm 5214 Managing Loyalty Programs with IBM MQ
6895 IBM MQ for z/OS: The Latest and Greatest
Wednesday
8:00-8:45am 2699 IBM MQ for z/OS: Performance Tuning
6885 Deploying IBM MQ into the Cloud
6906 IBM MQ Appliance: Hands-on Lab (8:00-9-45)
10:15-12:00pm 6907 IBM MQ Hybrid Cloud: Hands-on Lab
11:15-12:00pm 6884 Designing MQ for the Cloud Generation
6904 Help Shape the Future of IBM MQ
1:00-1:45pm 6903 Share your Experiences with the IBM MQ Experts
2:00-2:45pm 3695 How Banco Bradesco Manages IBM MQ for z/OS
3:15-4:00pm 6892 Availability and Scalability with MQ Clusters
4:15-5:00pm 6891 Making MQ Resilient across DCs and the Cloud
6893 Keep Out the Bad Guys by Securing MQ
Thursday
8:30-9:15am 6886 Simple, Resilient Messaging with MQ Appliance
9:30-10:15am 6878 You Need MQ Messaging!
6887 Managing MQ Messaging in the Hybrid Cloud
6890 New Tools and Interfaces to Manage IBM MQ
10:30-11:15am 6889 Help! Has Anyone seen my MQ Message?
Find us in the EXPO: Hybrid Integration Booth, Messaging Ped
72 3/19/2017
Notices and disclaimers
Copyright © 2017 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM.
U.S. Government Users Restricted Rights — use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM.
Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for accuracy as of the date of initial publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to update this information. This document is distributed “as is” without any warranty, either express or implied. In no event shall IBM be liable for any damage arising from the use of this information, including but not limited to, loss of data, business interruption, loss of profit or loss of opportunity. IBM products and services are warranted according to the terms and conditions of the agreements under which they are provided.
IBM products are manufactured from new parts or new and used parts. In some cases, a product may not be new and may have been previously installed. Regardless, our warranty terms apply.”
Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice.
Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as illustrations of how those customers have used IBM products and
the results they may have achieved. Actual performance, cost, savings or other results in other operating environments may vary.
References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in which IBM operates or does business.
Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the views of IBM. All materials and discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal or other guidance or advice to any individual participant or their specific situation.
It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the identification and interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actionsthe customer may need to take to comply with such laws. IBM does not
provide legal advice or represent or warrant that its services or products will ensure that the customer is in compliance with any law.
73 3/19/2017
Notices and disclaimers continued
Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products in connection with this publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to interoperate with IBM’s products. IBM expressly disclaims all warranties, expressed or implied, including but not limited to, the implied warranties of merchantability and fitness for a particular, purpose.
The provision of the information contained herein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or other intellectual property right.
IBM, the IBM logo, ibm.com, Aspera®, Bluemix, Blueworks Live, CICS, Clearcase, Cognos®, DOORS®, Emptoris®, Enterprise Document Management System™, FASP®, FileNet®, Global Business Services®,Global Technology Services®, IBM ExperienceOne™, IBM SmartCloud®, IBM Social Business®, Information on Demand, ILOG, Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®, pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®, pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, Smarter Commerce®, SoDA, SPSS, Sterling Commerce®, StoredIQ, Tealeaf®, Tivoli® Trusteer®, Unica®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.