SlideShare a Scribd company logo

REST APIs and MQ

Compares REST APIs and MQ. Then describes the capabilities of MQ's new built in REST messaging API. Finally covers MQ's support for z/OS Connect EE which is an alternative way of accessing MQ using REST.

1 of 49
Download to read offline
Integration Technical Conference 2019
M05: RESTAPIs
and MQ
Matt Leming
lemingma@uk.ibm.com
Agenda
• Why REST?
• Why MQ?
• Putting them together: The MQ messaging REST API
• z/OS Connect EE and MQ
2
NB: I will not be covering ACE as part of this presentation.
However ACE is a very powerful way of exposing REST APIs that
interact with MQ and many other systems.
© 2019 IBM Corporation
Why REST?
Why REST?
4
REST was coined in 2000 by Roy Fielding as a
result of his work on the various w3 standards
that make up the web
REST exposes resources as URLs and
operations on those resources using HTTP
verbs
REST APIs can be consumed from any
programming language and environment for as
long as it supports HTTP
REST APIs provide a simple, light-weight,
loosely-coupled way to expose synchronous
programmatic interfaces to resources
https://<host>:<port>/path/parameter?name=value&name=value
Operation to be
performed
Create
Read
Update
Delete
Query parameters are used
for refinement of the request
POST
GET
PUT
DELETE
The object that the action
is to be performed on
+
HTTP
body
URL
Representing the state of
the object
© 2019 IBM Corporation
Why MQ?
Why MQ?
6
MQ provides a simple set of APIs for allowing
applications to communicate, and share data, in
an asynchronous, decoupled manner
Applications communicate indirectly via queues
in a queue manager which means that they can
continue to work together even when they aren’t
available at the same time
MQ provides the ability to queue messages
when they are being produced faster than can be
consumed, acting as a “shock absorber” when
necessary
MQ provides simple scaling: just point another
instance of the application at the queue
MQ provides advanced capabilities such as
transactions, AMS and built in HA/DR

Recommended

IBM MQ High Availability 2019
IBM MQ High Availability 2019IBM MQ High Availability 2019
IBM MQ High Availability 2019David Ware
 
IBM MQ and Kafka, what is the difference?
IBM MQ and Kafka, what is the difference?IBM MQ and Kafka, what is the difference?
IBM MQ and Kafka, what is the difference?David Ware
 
Integrating Microservices with Apache Camel
Integrating Microservices with Apache CamelIntegrating Microservices with Apache Camel
Integrating Microservices with Apache CamelChristian Posta
 
Introduction To RabbitMQ
Introduction To RabbitMQIntroduction To RabbitMQ
Introduction To RabbitMQKnoldus Inc.
 
IBM MQ Whats new - including 9.3 and 9.3.1
IBM MQ Whats new - including 9.3 and 9.3.1IBM MQ Whats new - including 9.3 and 9.3.1
IBM MQ Whats new - including 9.3 and 9.3.1Robert Parker
 
The RabbitMQ Message Broker
The RabbitMQ Message BrokerThe RabbitMQ Message Broker
The RabbitMQ Message BrokerMartin Toshev
 
MQ Support for z/OS Connect
MQ Support for z/OS ConnectMQ Support for z/OS Connect
MQ Support for z/OS ConnectMatt Leming
 
Process Orchestration with Flowable and Spring Boot
Process Orchestration with Flowable and Spring BootProcess Orchestration with Flowable and Spring Boot
Process Orchestration with Flowable and Spring BootChavdar Baikov
 

More Related Content

What's hot

Anypoint platform architecture and components
Anypoint platform architecture and componentsAnypoint platform architecture and components
Anypoint platform architecture and componentsD.Rajesh Kumar
 
IBM MQ Online Tutorials
IBM MQ Online TutorialsIBM MQ Online Tutorials
IBM MQ Online TutorialsBigClasses.com
 
IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)MarkTaylorIBM
 
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming ApplicationsRunning Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming ApplicationsLightbend
 
IBM WebSphere MQ Introduction
IBM WebSphere MQ Introduction IBM WebSphere MQ Introduction
IBM WebSphere MQ Introduction ejlp12
 
IBM MQ Overview (IBM Message Queue)
IBM MQ Overview (IBM Message Queue)IBM MQ Overview (IBM Message Queue)
IBM MQ Overview (IBM Message Queue)Juarez Junior
 
MuleSoft Surat Meetup#45 - Anypoint Flex Gateway as a Kubernetes Ingress Cont...
MuleSoft Surat Meetup#45 - Anypoint Flex Gateway as a Kubernetes Ingress Cont...MuleSoft Surat Meetup#45 - Anypoint Flex Gateway as a Kubernetes Ingress Cont...
MuleSoft Surat Meetup#45 - Anypoint Flex Gateway as a Kubernetes Ingress Cont...Jitendra Bafna
 
Designing IBM MQ deployments for the cloud generation
Designing IBM MQ deployments for the cloud generationDesigning IBM MQ deployments for the cloud generation
Designing IBM MQ deployments for the cloud generationDavid Ware
 
IBM MQ - High Availability and Disaster Recovery
IBM MQ - High Availability and Disaster RecoveryIBM MQ - High Availability and Disaster Recovery
IBM MQ - High Availability and Disaster RecoveryMarkTaylorIBM
 
IBM MQ - What's new in 9.2
IBM MQ - What's new in 9.2IBM MQ - What's new in 9.2
IBM MQ - What's new in 9.2David Ware
 
Mq presentation
Mq presentationMq presentation
Mq presentationxddu
 
Denver MuleSoft Meetup: Deep Dive into Anypoint Runtime Fabric Security
Denver MuleSoft Meetup: Deep Dive into Anypoint Runtime Fabric Security Denver MuleSoft Meetup: Deep Dive into Anypoint Runtime Fabric Security
Denver MuleSoft Meetup: Deep Dive into Anypoint Runtime Fabric Security Stephanie Lawrence
 
Introduction to Kong API Gateway
Introduction to Kong API GatewayIntroduction to Kong API Gateway
Introduction to Kong API GatewayYohann Ciurlik
 
Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)Weaveworks
 
What's new with MQ on z/OS 9.3 and 9.3.1
What's new with MQ on z/OS 9.3 and 9.3.1What's new with MQ on z/OS 9.3 and 9.3.1
What's new with MQ on z/OS 9.3 and 9.3.1Matt Leming
 
19 08-22 introduction to activeMQ
19 08-22 introduction to activeMQ19 08-22 introduction to activeMQ
19 08-22 introduction to activeMQWoo Young Choi
 
Integrating Apache Kafka Into Your Environment
Integrating Apache Kafka Into Your EnvironmentIntegrating Apache Kafka Into Your Environment
Integrating Apache Kafka Into Your Environmentconfluent
 
Z api overview
Z api overviewZ api overview
Z api overviewbamadhu
 
Red hat ansible automation technical deck
Red hat ansible automation technical deckRed hat ansible automation technical deck
Red hat ansible automation technical deckJuraj Hantak
 

What's hot (20)

Anypoint platform architecture and components
Anypoint platform architecture and componentsAnypoint platform architecture and components
Anypoint platform architecture and components
 
IBM MQ Online Tutorials
IBM MQ Online TutorialsIBM MQ Online Tutorials
IBM MQ Online Tutorials
 
IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)IBM MQ High Availabillity and Disaster Recovery (2017 version)
IBM MQ High Availabillity and Disaster Recovery (2017 version)
 
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming ApplicationsRunning Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
Running Kafka On Kubernetes With Strimzi For Real-Time Streaming Applications
 
IBM WebSphere MQ Introduction
IBM WebSphere MQ Introduction IBM WebSphere MQ Introduction
IBM WebSphere MQ Introduction
 
RabbitMQ
RabbitMQRabbitMQ
RabbitMQ
 
IBM MQ Overview (IBM Message Queue)
IBM MQ Overview (IBM Message Queue)IBM MQ Overview (IBM Message Queue)
IBM MQ Overview (IBM Message Queue)
 
MuleSoft Surat Meetup#45 - Anypoint Flex Gateway as a Kubernetes Ingress Cont...
MuleSoft Surat Meetup#45 - Anypoint Flex Gateway as a Kubernetes Ingress Cont...MuleSoft Surat Meetup#45 - Anypoint Flex Gateway as a Kubernetes Ingress Cont...
MuleSoft Surat Meetup#45 - Anypoint Flex Gateway as a Kubernetes Ingress Cont...
 
Designing IBM MQ deployments for the cloud generation
Designing IBM MQ deployments for the cloud generationDesigning IBM MQ deployments for the cloud generation
Designing IBM MQ deployments for the cloud generation
 
IBM MQ - High Availability and Disaster Recovery
IBM MQ - High Availability and Disaster RecoveryIBM MQ - High Availability and Disaster Recovery
IBM MQ - High Availability and Disaster Recovery
 
IBM MQ - What's new in 9.2
IBM MQ - What's new in 9.2IBM MQ - What's new in 9.2
IBM MQ - What's new in 9.2
 
Mq presentation
Mq presentationMq presentation
Mq presentation
 
Denver MuleSoft Meetup: Deep Dive into Anypoint Runtime Fabric Security
Denver MuleSoft Meetup: Deep Dive into Anypoint Runtime Fabric Security Denver MuleSoft Meetup: Deep Dive into Anypoint Runtime Fabric Security
Denver MuleSoft Meetup: Deep Dive into Anypoint Runtime Fabric Security
 
Introduction to Kong API Gateway
Introduction to Kong API GatewayIntroduction to Kong API Gateway
Introduction to Kong API Gateway
 
Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)Introduction to the Container Network Interface (CNI)
Introduction to the Container Network Interface (CNI)
 
What's new with MQ on z/OS 9.3 and 9.3.1
What's new with MQ on z/OS 9.3 and 9.3.1What's new with MQ on z/OS 9.3 and 9.3.1
What's new with MQ on z/OS 9.3 and 9.3.1
 
19 08-22 introduction to activeMQ
19 08-22 introduction to activeMQ19 08-22 introduction to activeMQ
19 08-22 introduction to activeMQ
 
Integrating Apache Kafka Into Your Environment
Integrating Apache Kafka Into Your EnvironmentIntegrating Apache Kafka Into Your Environment
Integrating Apache Kafka Into Your Environment
 
Z api overview
Z api overviewZ api overview
Z api overview
 
Red hat ansible automation technical deck
Red hat ansible automation technical deckRed hat ansible automation technical deck
Red hat ansible automation technical deck
 

Similar to REST APIs and MQ

Real Time Web with SignalR
Real Time Web with SignalRReal Time Web with SignalR
Real Time Web with SignalRBilal Amjad
 
What's new in MQ 9.1.* on z/OS
What's new in MQ 9.1.* on z/OSWhat's new in MQ 9.1.* on z/OS
What's new in MQ 9.1.* on z/OSMatt Leming
 
Cloud Presentation.pdf
Cloud Presentation.pdfCloud Presentation.pdf
Cloud Presentation.pdfMandanaHazeri
 
Realtime mobile&iot solutions using mqtt and message sight
Realtime mobile&iot solutions using mqtt and message sightRealtime mobile&iot solutions using mqtt and message sight
Realtime mobile&iot solutions using mqtt and message sightfloridawusergroup
 
Understanding and Using Client JBoss A-MQ APIs
Understanding and Using Client JBoss A-MQ APIsUnderstanding and Using Client JBoss A-MQ APIs
Understanding and Using Client JBoss A-MQ APIsKenneth Peeples
 
IBM MQ for z/OS The Latest and Greatest Enhancements
IBM MQ for z/OS The Latest and Greatest EnhancementsIBM MQ for z/OS The Latest and Greatest Enhancements
IBM MQ for z/OS The Latest and Greatest EnhancementsPete Siddall
 
Creating microservices architectures using node.js and Kubernetes
Creating microservices architectures using node.js and KubernetesCreating microservices architectures using node.js and Kubernetes
Creating microservices architectures using node.js and KubernetesPaul Goldbaum
 
1. WCF Services - Exam 70-487
1. WCF Services - Exam 70-4871. WCF Services - Exam 70-487
1. WCF Services - Exam 70-487Bat Programmer
 
Advancio, Inc. Academy: Web Sevices, WCF & SOAPUI
Advancio, Inc. Academy: Web Sevices, WCF & SOAPUIAdvancio, Inc. Academy: Web Sevices, WCF & SOAPUI
Advancio, Inc. Academy: Web Sevices, WCF & SOAPUIAdvancio
 
Service mesh in action with onap
Service mesh in action with onapService mesh in action with onap
Service mesh in action with onapHuabing Zhao
 
Mule getting started
Mule getting startedMule getting started
Mule getting startedKarim Ezzine
 
Kubernetes connectivity to Cloud Native Kafka | Evan Shortiss and Hugo Guerre...
Kubernetes connectivity to Cloud Native Kafka | Evan Shortiss and Hugo Guerre...Kubernetes connectivity to Cloud Native Kafka | Evan Shortiss and Hugo Guerre...
Kubernetes connectivity to Cloud Native Kafka | Evan Shortiss and Hugo Guerre...HostedbyConfluent
 
MQ Guide France - What's new in ibm mq 9.1.4
MQ Guide France - What's new in ibm mq 9.1.4MQ Guide France - What's new in ibm mq 9.1.4
MQ Guide France - What's new in ibm mq 9.1.4Robert Parker
 
What's new in MQ 9.1 on z/OS
What's new in MQ 9.1 on z/OSWhat's new in MQ 9.1 on z/OS
What's new in MQ 9.1 on z/OSMatt Leming
 
Subscription based control system to automate management of events for robots
Subscription based control system to automate management of events for robotsSubscription based control system to automate management of events for robots
Subscription based control system to automate management of events for robotsdbpublications
 
Connecting mq&amp;kafka
Connecting mq&amp;kafkaConnecting mq&amp;kafka
Connecting mq&amp;kafkaMatt Leming
 
HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity ...
 HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity ... HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity ...
HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity ...Matt Leming
 

Similar to REST APIs and MQ (20)

Real Time Web with SignalR
Real Time Web with SignalRReal Time Web with SignalR
Real Time Web with SignalR
 
What's new in MQ 9.1.* on z/OS
What's new in MQ 9.1.* on z/OSWhat's new in MQ 9.1.* on z/OS
What's new in MQ 9.1.* on z/OS
 
Cloud Presentation.pdf
Cloud Presentation.pdfCloud Presentation.pdf
Cloud Presentation.pdf
 
Realtime mobile&iot solutions using mqtt and message sight
Realtime mobile&iot solutions using mqtt and message sightRealtime mobile&iot solutions using mqtt and message sight
Realtime mobile&iot solutions using mqtt and message sight
 
Understanding and Using Client JBoss A-MQ APIs
Understanding and Using Client JBoss A-MQ APIsUnderstanding and Using Client JBoss A-MQ APIs
Understanding and Using Client JBoss A-MQ APIs
 
IBM MQ for z/OS The Latest and Greatest Enhancements
IBM MQ for z/OS The Latest and Greatest EnhancementsIBM MQ for z/OS The Latest and Greatest Enhancements
IBM MQ for z/OS The Latest and Greatest Enhancements
 
Creating microservices architectures using node.js and Kubernetes
Creating microservices architectures using node.js and KubernetesCreating microservices architectures using node.js and Kubernetes
Creating microservices architectures using node.js and Kubernetes
 
1. WCF Services - Exam 70-487
1. WCF Services - Exam 70-4871. WCF Services - Exam 70-487
1. WCF Services - Exam 70-487
 
Advancio, Inc. Academy: Web Sevices, WCF & SOAPUI
Advancio, Inc. Academy: Web Sevices, WCF & SOAPUIAdvancio, Inc. Academy: Web Sevices, WCF & SOAPUI
Advancio, Inc. Academy: Web Sevices, WCF & SOAPUI
 
Service mesh in action with onap
Service mesh in action with onapService mesh in action with onap
Service mesh in action with onap
 
Mule getting started
Mule getting startedMule getting started
Mule getting started
 
Kubernetes connectivity to Cloud Native Kafka | Evan Shortiss and Hugo Guerre...
Kubernetes connectivity to Cloud Native Kafka | Evan Shortiss and Hugo Guerre...Kubernetes connectivity to Cloud Native Kafka | Evan Shortiss and Hugo Guerre...
Kubernetes connectivity to Cloud Native Kafka | Evan Shortiss and Hugo Guerre...
 
MQ Guide France - What's new in ibm mq 9.1.4
MQ Guide France - What's new in ibm mq 9.1.4MQ Guide France - What's new in ibm mq 9.1.4
MQ Guide France - What's new in ibm mq 9.1.4
 
What's new in MQ 9.1 on z/OS
What's new in MQ 9.1 on z/OSWhat's new in MQ 9.1 on z/OS
What's new in MQ 9.1 on z/OS
 
Subscription based control system to automate management of events for robots
Subscription based control system to automate management of events for robotsSubscription based control system to automate management of events for robots
Subscription based control system to automate management of events for robots
 
Web services
Web servicesWeb services
Web services
 
Connecting mq&amp;kafka
Connecting mq&amp;kafkaConnecting mq&amp;kafka
Connecting mq&amp;kafka
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
SOA & WCF
SOA & WCFSOA & WCF
SOA & WCF
 
HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity ...
 HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity ... HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity ...
HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity ...
 

More from Matt Leming

IBM MQ Whats new - up to 9.3.4.pptx
IBM MQ Whats new - up to 9.3.4.pptxIBM MQ Whats new - up to 9.3.4.pptx
IBM MQ Whats new - up to 9.3.4.pptxMatt Leming
 
Going Deep with MQ
Going Deep with MQGoing Deep with MQ
Going Deep with MQMatt Leming
 
What's New In MQ 9.2 on z/OS
What's New In MQ 9.2 on z/OSWhat's New In MQ 9.2 on z/OS
What's New In MQ 9.2 on z/OSMatt Leming
 
Building a resilient and scalable solution with IBM MQ on z/OS
Building a resilient and scalable solution with IBM MQ on z/OSBuilding a resilient and scalable solution with IBM MQ on z/OS
Building a resilient and scalable solution with IBM MQ on z/OSMatt Leming
 
Where is my MQ message on z/OS?
Where is my MQ message on z/OS?Where is my MQ message on z/OS?
Where is my MQ message on z/OS?Matt Leming
 
The enterprise differentiator of mq on zos
The enterprise differentiator of mq on zosThe enterprise differentiator of mq on zos
The enterprise differentiator of mq on zosMatt Leming
 
Where is My Message
Where is My MessageWhere is My Message
Where is My MessageMatt Leming
 
New Tools and Interfaces for Managing IBM MQ
New Tools and Interfaces for Managing IBM MQNew Tools and Interfaces for Managing IBM MQ
New Tools and Interfaces for Managing IBM MQMatt Leming
 
HHM-2833: Where is My Message?: Using IBM MQ Tools to Work Out What Applicati...
HHM-2833: Where is My Message?: Using IBM MQ Tools to Work Out What Applicati...HHM-2833: Where is My Message?: Using IBM MQ Tools to Work Out What Applicati...
HHM-2833: Where is My Message?: Using IBM MQ Tools to Work Out What Applicati...Matt Leming
 
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
 HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen... HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...Matt Leming
 

More from Matt Leming (10)

IBM MQ Whats new - up to 9.3.4.pptx
IBM MQ Whats new - up to 9.3.4.pptxIBM MQ Whats new - up to 9.3.4.pptx
IBM MQ Whats new - up to 9.3.4.pptx
 
Going Deep with MQ
Going Deep with MQGoing Deep with MQ
Going Deep with MQ
 
What's New In MQ 9.2 on z/OS
What's New In MQ 9.2 on z/OSWhat's New In MQ 9.2 on z/OS
What's New In MQ 9.2 on z/OS
 
Building a resilient and scalable solution with IBM MQ on z/OS
Building a resilient and scalable solution with IBM MQ on z/OSBuilding a resilient and scalable solution with IBM MQ on z/OS
Building a resilient and scalable solution with IBM MQ on z/OS
 
Where is my MQ message on z/OS?
Where is my MQ message on z/OS?Where is my MQ message on z/OS?
Where is my MQ message on z/OS?
 
The enterprise differentiator of mq on zos
The enterprise differentiator of mq on zosThe enterprise differentiator of mq on zos
The enterprise differentiator of mq on zos
 
Where is My Message
Where is My MessageWhere is My Message
Where is My Message
 
New Tools and Interfaces for Managing IBM MQ
New Tools and Interfaces for Managing IBM MQNew Tools and Interfaces for Managing IBM MQ
New Tools and Interfaces for Managing IBM MQ
 
HHM-2833: Where is My Message?: Using IBM MQ Tools to Work Out What Applicati...
HHM-2833: Where is My Message?: Using IBM MQ Tools to Work Out What Applicati...HHM-2833: Where is My Message?: Using IBM MQ Tools to Work Out What Applicati...
HHM-2833: Where is My Message?: Using IBM MQ Tools to Work Out What Applicati...
 
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
 HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen... HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
HHM-3540: The IBM MQ Light API: From Developer Laptop to Enterprise Data Cen...
 

Recently uploaded

Getting Started with Trello for Beginners.pptx
Getting Started with Trello for Beginners.pptxGetting Started with Trello for Beginners.pptx
Getting Started with Trello for Beginners.pptxmavinoikein
 
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A..."Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...ISPMAIndia
 
App Builder - Hierarchical Data Apps.pptx
App Builder - Hierarchical Data Apps.pptxApp Builder - Hierarchical Data Apps.pptx
App Builder - Hierarchical Data Apps.pptxPoojitha B
 
Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024Asher Sterkin
 
Embracing Change - The Impact of Generative AI on Strategic Portfolio Management
Embracing Change - The Impact of Generative AI on Strategic Portfolio ManagementEmbracing Change - The Impact of Generative AI on Strategic Portfolio Management
Embracing Change - The Impact of Generative AI on Strategic Portfolio ManagementOnePlan Solutions
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...confluent
 
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkDBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkTimothy Spann
 
P1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 SmartsheetP1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 SmartsheetMatthewTHawley
 
Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...
Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...
Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...ISPMAIndia
 
Les02 Restricting and Sorting Data using SQL.ppt
Les02 Restricting and Sorting Data using SQL.pptLes02 Restricting and Sorting Data using SQL.ppt
Les02 Restricting and Sorting Data using SQL.pptDrZeeshanBhatti
 
No more Dockerfiles? Buildpacks to help you ship your image!
No more Dockerfiles? Buildpacks to help you ship your image!No more Dockerfiles? Buildpacks to help you ship your image!
No more Dockerfiles? Buildpacks to help you ship your image!Anthony Dahanne
 
Software Testing life cycle (STLC) Importance, Phases, Benefits...
Software Testing life cycle (STLC) Importance, Phases, Benefits...Software Testing life cycle (STLC) Importance, Phases, Benefits...
Software Testing life cycle (STLC) Importance, Phases, Benefits...Flexsin
 
AI Product Management by Abhijit Bendigiri
AI Product Management by Abhijit BendigiriAI Product Management by Abhijit Bendigiri
AI Product Management by Abhijit BendigiriISPMAIndia
 
sql ppt for students who preparing for sql
sql ppt for students who preparing for sqlsql ppt for students who preparing for sql
sql ppt for students who preparing for sqlbharatjanadharwarud
 
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이ssuser82c38d
 
The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!ISPMAIndia
 
killing camp week 6 problem - maximal matrix.pdf
killing camp week 6 problem - maximal matrix.pdfkilling camp week 6 problem - maximal matrix.pdf
killing camp week 6 problem - maximal matrix.pdfssuser82c38d
 
Self scaling Multi cloud nomad workloads
Self scaling Multi cloud nomad workloadsSelf scaling Multi cloud nomad workloads
Self scaling Multi cloud nomad workloadsBram Vogelaar
 
Sql server types of joins with example.pptx
Sql server types of joins with example.pptxSql server types of joins with example.pptx
Sql server types of joins with example.pptxsameer gaikwad
 
killingcamp longest common subsequence.pdf
killingcamp longest common subsequence.pdfkillingcamp longest common subsequence.pdf
killingcamp longest common subsequence.pdfssuser82c38d
 

Recently uploaded (20)

Getting Started with Trello for Beginners.pptx
Getting Started with Trello for Beginners.pptxGetting Started with Trello for Beginners.pptx
Getting Started with Trello for Beginners.pptx
 
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A..."Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
 
App Builder - Hierarchical Data Apps.pptx
App Builder - Hierarchical Data Apps.pptxApp Builder - Hierarchical Data Apps.pptx
App Builder - Hierarchical Data Apps.pptx
 
Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024
 
Embracing Change - The Impact of Generative AI on Strategic Portfolio Management
Embracing Change - The Impact of Generative AI on Strategic Portfolio ManagementEmbracing Change - The Impact of Generative AI on Strategic Portfolio Management
Embracing Change - The Impact of Generative AI on Strategic Portfolio Management
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
 
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and FlinkDBA Fundamentals Group: Continuous SQL with Kafka and Flink
DBA Fundamentals Group: Continuous SQL with Kafka and Flink
 
P1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 SmartsheetP1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 Smartsheet
 
Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...
Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...
Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...
 
Les02 Restricting and Sorting Data using SQL.ppt
Les02 Restricting and Sorting Data using SQL.pptLes02 Restricting and Sorting Data using SQL.ppt
Les02 Restricting and Sorting Data using SQL.ppt
 
No more Dockerfiles? Buildpacks to help you ship your image!
No more Dockerfiles? Buildpacks to help you ship your image!No more Dockerfiles? Buildpacks to help you ship your image!
No more Dockerfiles? Buildpacks to help you ship your image!
 
Software Testing life cycle (STLC) Importance, Phases, Benefits...
Software Testing life cycle (STLC) Importance, Phases, Benefits...Software Testing life cycle (STLC) Importance, Phases, Benefits...
Software Testing life cycle (STLC) Importance, Phases, Benefits...
 
AI Product Management by Abhijit Bendigiri
AI Product Management by Abhijit BendigiriAI Product Management by Abhijit Bendigiri
AI Product Management by Abhijit Bendigiri
 
sql ppt for students who preparing for sql
sql ppt for students who preparing for sqlsql ppt for students who preparing for sql
sql ppt for students who preparing for sql
 
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
 
The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!
 
killing camp week 6 problem - maximal matrix.pdf
killing camp week 6 problem - maximal matrix.pdfkilling camp week 6 problem - maximal matrix.pdf
killing camp week 6 problem - maximal matrix.pdf
 
Self scaling Multi cloud nomad workloads
Self scaling Multi cloud nomad workloadsSelf scaling Multi cloud nomad workloads
Self scaling Multi cloud nomad workloads
 
Sql server types of joins with example.pptx
Sql server types of joins with example.pptxSql server types of joins with example.pptx
Sql server types of joins with example.pptx
 
killingcamp longest common subsequence.pdf
killingcamp longest common subsequence.pdfkillingcamp longest common subsequence.pdf
killingcamp longest common subsequence.pdf
 

REST APIs and MQ

  • 1. Integration Technical Conference 2019 M05: RESTAPIs and MQ Matt Leming lemingma@uk.ibm.com
  • 2. Agenda • Why REST? • Why MQ? • Putting them together: The MQ messaging REST API • z/OS Connect EE and MQ 2 NB: I will not be covering ACE as part of this presentation. However ACE is a very powerful way of exposing REST APIs that interact with MQ and many other systems.
  • 3. © 2019 IBM Corporation Why REST?
  • 4. Why REST? 4 REST was coined in 2000 by Roy Fielding as a result of his work on the various w3 standards that make up the web REST exposes resources as URLs and operations on those resources using HTTP verbs REST APIs can be consumed from any programming language and environment for as long as it supports HTTP REST APIs provide a simple, light-weight, loosely-coupled way to expose synchronous programmatic interfaces to resources https://<host>:<port>/path/parameter?name=value&name=value Operation to be performed Create Read Update Delete Query parameters are used for refinement of the request POST GET PUT DELETE The object that the action is to be performed on + HTTP body URL Representing the state of the object
  • 5. © 2019 IBM Corporation Why MQ?
  • 6. Why MQ? 6 MQ provides a simple set of APIs for allowing applications to communicate, and share data, in an asynchronous, decoupled manner Applications communicate indirectly via queues in a queue manager which means that they can continue to work together even when they aren’t available at the same time MQ provides the ability to queue messages when they are being produced faster than can be consumed, acting as a “shock absorber” when necessary MQ provides simple scaling: just point another instance of the application at the queue MQ provides advanced capabilities such as transactions, AMS and built in HA/DR
  • 7. Scaling of REST typically requires use of an IP sprayer to share work around a group of identical backend applications Scaling with MQ is typically a question of starting more backend applications against a single queue manager. Scaling past that requires technologies such as queue sharing groups or MQ clusters Applications communicate synchronously via REST: they need to be available at the same time, and expose the actual API! Provides request/response interactions Comparing MQ and REST APIs A simple, but powerful, API available in a wide range of programming languages and supported platforms REST APIs can be called from practically any programming language and platform Applications communicate asynchronously via MQ: they don’t need to be available at the same time. Provides request/response, fire-and-forget and pub/sub interactions Provides AMS for protecting data end to end without application changes TLS provided but encryption beyond that point would require changes from both the consumer and provider of the API MQ provides support for transactions, allowing several messaging operations to be grouped together in a single atomic unit of work, with reliable message delivery Each and every HTTP operation is unrelated to previous ones. Applications need to code compensating logic, or use techniques such as idempotency, in case of failures 7
  • 8. Example scenarios Healthcare provider updates a patient’s record after treatment. This represents a mission critical update from the healthcare provider to the patient’s record. The transactional, and reliable delivery capabilities of messaging are desirable here. Online store exposing read only view of its product catalogue to partners. This naturally lends itself to being exposed as a RESTful API so it can be accessed from as wide a range of environments as possible. Each interaction is read-only and independent of others. 8
  • 9. © 2019 IBM Corporation Putting them together: The MQ messaging REST API
  • 10. The MQ messaging REST API 10 A built in REST API for messaging provided on all platforms Allows you to interact with existing applications, using existing MQ APIs, from anywhere! Replaces the older HTTP bridge technology which required a user provided web-server Originally added in 9.0.4 CD, and now available in 9.1.0 LTS Currently provides support for sending and receiving text based messages to queues Will continue to evolve in future CD releases REST API HTTPS Existingchannels AppAppAppMQ QM1 Q1 MQPUT(Q1) MQGET(Q1) AppAppApp POST …/qmgr/QM1/queue/Q1/message DELETE …/qmgr/QM1/queue/Q1/message
  • 11. Sending a message 11 Send a message to a target queue / queue manager using the HTTP POST verb Message must have a text based Content-Type HTTP header. Results in a message with a MQMD.Format of MQSTR Certain MQMD properties exposed as HTTP headers Authentication performed using caller’s user ID. Caller must be a member of the MQWebUser role POST …/qmgr/QM1/queue/Q1/message -H “Content-Type: application/xml” -H “ibm-mq-md-correlationId: 414d5346ef…” -H “ibm-mq-md-expiry: 60000” -H “ibm-mq-md-persistence: persistent” -D “<payload>data</payload>”
  • 12. Receiving a message 12 Get a message from a target queue / queue manager using the HTTP DELETE verb Only works if message on queue has a MQMD.Format of MQSTR. Otherwise message will remain on queue and an error is returned Query parameters can be used to select by correlation and / or message id, as well as specifying a wait interval Message body is returned as HTTP response body Certain MQMD fields returned as HTTP headers on response DELETE …/qmgr/QM1/queue/Q1/message ?correlationId=414d5346ef… &wait=60000 Response headers: ibm-mq-md-replyTo:Q2@QMGR1 ibm-mq-md-persistence=persistent ibm-mq-md-correlationId=414d5346ef… Response body: <payload>data</payload>
  • 13. Performance improved in 9.1.2 13 When using the messaging REST API there are two areas which have a big performance impact: Initial connection to MQ: In 9.1.2 the messaging REST API now uses a connection pool which will reuse JMS connections where possible TLS handshake: Each request to the REST API can end up doing a new TLS handshake which really affects performance. Many clients support the ability to perform an abbreviated handshake which reuse the result of an earlier full handshake In our z/OS test environment using both of these resulted in 3.75 throughput improvement and 25 times reduction in cost
  • 14. © 2019 IBM Corporation z/OS Connect EE and MQ
  • 15. Accessing backend systems using HTTP today • Completely different configuration and management • Multiple endpoints for developers to call/maintain access to 15 ACE or from 9.1 MQ REST API
  • 16. Simplified access to backend systems with z/OS Connect EE 16 RESTful APIs available from one endpoint A single entry point is better!
  • 17. 17 What is z/OS Connect EE? • A way to expose your existing mainframe assets as REST APIs, without writing any code • Maximize your return on investment! Data Transformation Swagger Audit Logging Authorization z/OS Connect EE V3.0 MQ Liberty z/OS Runtime REST Clients API Toolkit for building delightful, hand crafted, REST APIS Interceptors ServiceProviders DB2 REST WOLA IMS CICS Provided with z/OS Connect Provided with subsystem
  • 18. API Toolkit 18 Eclipse project view, which is familiar to developers who have used Eclipse-tooling for other development projects Access query parameters from the URL Provide data mapping definitions to the service Assign API function based on HTTP verb API projects can be exported and imported for portability between developers API definitions are created through the tool, which is consistent across backend systems (CICS, IMS, etc.)
  • 19. A key challenge… 19 How do I get from the data structures my backend systems understand such as COBOL, PL/I or C to something that make sense for a REST API where data can be encoded in the URL, the JSON payload and even HTTP headers
  • 20. Data mapping Overview – map REST API payload to backend services 20
  • 21. Data mapping • A closer look • Map path and query parameters • Granular mapping of data structures 21
  • 22. COBOL source vs JSON schema 22 01 MINILOAN-COMMAREA. 10 name pic X(20). 10 creditScore pic 9(16)V99. 10 yearlyIncome pic 9(16)v99. 10 age pic 9(10). 10 amount pic 9999999v99. 10 approved pic X. 88 BoolValue value 'T'. 10 effectDate pic X(8). 10 yearlyInterestRate pic S9(5). 10 yearlyRepayment pic 9(18). 10 messages-Num pic 9(9). 10 messages pic X(60) occurs 1 to 99 times depending on messages-Num. "miniloan_commarea":{ "type":"object", "properties":{ "name":{ "type":"string", "maxLength":20 }, "creditScore":{ "type":"number", "format":"decimal", "multipleOf":0.01, "maximum":9999999999999999.99, "minimum":0 }, ...... COBOL source JSON schema equivalent All information is sent as character string
  • 23. The MQ service provider • Free of charge z/OS Connect service provider, shipped with MQ • Allows existing services fronted by MQ to be accessed via a RESTful front end • EE V2 (and above) supported • Developers need no knowledge of MQ • Can use HTTP headers to override configuration defaults for more control of MQ interaction 23
  • 24. Service types • Each URL in z/OS Connect maps to a service • With the MQ service provider there are two types of services: • One way: uses a single MQ destination or • Two way: uses a pair of MQ queues, for request reply messaging 24
  • 25. One way services A one way service exposes standard MQ verbs against a single destination • HTTP POST = MQPUT (queue and topic) • HTTP GET = MQGET (browse) (queue) • HTTP DELETE = MQGET (destructive) (queue) 25 Client MQMQ Service Provider
  • 26. Two way service Two way service provides request/reply messaging: 1. Client issues HTTP POST with JSON payload 2. MQ service provider in z/OS Connect sends payload (optional transformation) to an MQ queue 3. Back end application processes payload and puts response on reply queue 4. MQ service provider gets response (optional transformation) and sends it to the client as the body of the HTTP POST response 26 Client MQ BackendMQ service provider 1 2 3 44
  • 27. Obtaining the MQ service provider • MQ service provider for z/OS Connect is: • Provided as a USS component in MQ V9.1 LTS, was added originally in 9.0.1 CD • E.g. /mqm/V9R1M0/zosconnect/v2.0/lib • Also available on Fix Central (if you are on V8 or V9) • Only contains the MQ service provider function: • You need to provide z/OS Connect EE • You also need to provide the MQ resource adapter: use the version from your MQ installation • Packaged as a Liberty feature: • Properties file • JAR file • Liberty feature manifest (*.mf) file 27
  • 28. An example of using the MQ service provider Simple stock query service accessed by MQ 28 MQ STOCK_REQ_Q STOCK_RESP_Q Backend Application 01 SQREQ. 05 ITEM-ID PIC 9(9). 01 SQRESP. 05 ITEM-ID PIC 9(9). 05 ITEM-DESC PIC X(20). 05 ITEM-COUNT PIC 9(9). 05 ITEM-COST PIC 9(9).
  • 29. Goal • Extend stock query service so that it can be accessed using a RESTful API • Want request URL to contain the item id => common in REST APIs • Can’t break existing users of the service 29
  • 30. Steps 1. Generate the SAR file 2. Generate the RESTful API using the API toolkit 3. Deploy API to z/OS Connect server 4. Install the MQ service provider 5. Define MQ resources 6. Define the service 7. Sanity checks 8. Try it out! 30 API (.aar) Generated using BAQLS2JS Generated using API toolkit Defined to z/OS Connect server Service (.sar) MQ service provider
  • 31. Step 1: generate the SAR file: BAQLS2JS 32 Request and response copybooks Request and response schemas SAR file, which contains a copy of the request and response schemas This will be important later when linking the API to the actual service instance in z/OS Connect Used for data mapping
  • 32. Step 2: generate the RESTful API using the API Toolkit 33 Item id is part of URL path POST used for two-way MQ services Import SQ service from SAR file generated using BAQLS2JS Brings up data mapping window
  • 33. Step 2: generate the RESTful API using the API Toolkit 34 Copy the item id from the URL Response is mapped back without change
  • 34. Step 3: deploy API to z/OS Connect server 35
  • 35. Recap 36 API (.aar) Generated using BAQLS2JS Generated using API toolkit Defined to z/OS Connect server Service (.sar) MQ service provider Step 1: generate the SAR file Step 2: generate the RESTful API using the API Toolkit + Step 3: deploy API to z/OS Connect server Next…
  • 36. Step 4: install the MQ service provider 37 <server> <featureManager> <feature>zosconnect:zosconnect-2.0</feature> <feature>appSecurity-2.0</feature> <feature>jms-2.0</feature> <feature>mqzosconnect:zosConnectMQ-2.0</feature> <feature>wmqJmsClient-2.0</feature> <feature>zosTransaction-1.0</feature> </featureManager> <variable name="wmqJmsClient.rar.location" value=“ /mqm/V9R1M0/java/lib/jca/wmq.jmsra.rar "/> <wmqJmsClient nativeLibraryPath="/mqm/V9R1M0/java/lib/"/> MQ service provider MQ Client MQ resource adapter MQ native libraries. Required for bindings connections This only needs to be done once regardless of the number of MQ services
  • 37. Step 5: define MQ resources 38 <jmsConnectionFactory id="mq21CF" jndiName="jms/mq21CF" connectionManagerRef="cm1"> <properties.wmqJms transportType="BINDINGS" queueManager="MQ21"/> </jmsConnectionFactory> <connectionManager id="cm1" maxPoolSize="5"/> <jmsQueue id="sqReqQ" jndiName="jms/sqReqQ"> <properties.wmqJms baseQueueName="STOCK_REQ_Q"/> <properties.wmqJms targetClient = "MQ" CCSID="37"/> </jmsQueue> <jmsQueue id="sqRespQ" jndiName="jms/sqRespQ"> <properties.wmqJms baseQueueName="STOCK_RESP_Q"/> <properties.wmqJms targetClient = "MQ" CCSID="37"/> </jmsQueue> Defines connection to queue manager Request queue Response queue Each service will need its own queue/topic definitions Connection factories can be reused between services unless you need to tweak properties Used for connection pooling
  • 38. Step 6: define the service 39 <zosconnect_zosConnectService id="stockQuoteService" invokeURI="/stockQuoteServiceNoAPI" serviceName="SQ" serviceRef="stockQuoteService_mq" dataXformRef="xformJSON2Byte"/> <mqzosconnect_mqzOSConnectService id="stockQuoteService_mq" connectionFactory="jms/mq21CF" destination="jms/sqReqQ" replyDestination="jms/sqRespQ" replySelection="msgIDToCorrelID" waitInterval="30000"/> <zosconnect_zosConnectDataXform id="xformJSON2Byte" bindFileLoc="${XFORM_ROOT}/bindfiles" bindFileSuffix=".wsbind" requestSchemaLoc="${XFORM_ROOT}/json" requestSchemaSuffix=".json" responseSchemaLoc="${XFORM_ROOT}/json" responseSchemaSuffix=".json"/> Defines a service to z/OS Connect Defines an MQ service instance Where to locate the data transformation Each service using the MQ service provider will need both of the top two elements. The bottom element can be used for multiple services. The API generated in the toolkit locates the service using the serviceName The destination, replyDestination and connectionFactory attributes map to the MQ resources we defined earlier
  • 39. Step 7: sanity checks • First check there are no errors in the z/OS Connect Server logs • Check that the API exists • Check that the service exists 40 curl -k https://winmvs41.hursley.ibm.com:12358/zosConnect/apis {"apis":[{"name":"stockquery","version":"1.0.0", "description":"REST API for stock query", "adminUrl":"https://winmvs41.hursley.ibm.com:12358/zosConnect/apis/stockquery"}]} curl -k https://winmvs41.hursley.ibm.com:12358/zosConnect/services zosConnectServices":[{"ServiceName":"SQ", "ServiceDescription":"DATA_UNAVAILABLE", "ServiceProvider":"IBM MQ for z/OS service provider for IBM z/OS Connect EE V2.0", "ServiceURL":"https://winmvs41.hursley.ibm.com:12358/zosConnect/services/SQ"}]}
  • 40. Step 7: sanity checks Or use the API editor 41
  • 41. Step 8: try it out! 42 curl -i -k -X POST -H "Content-Type: application/json" https://winmvs41:12358/stockquery/1234 MQ service provider waiting for response Request message Back-end waiting for request
  • 42. Step 8: try it out! 43 Back end receives request message and generates response Response message
  • 43. Step 8: try it out! 44 curl -i -k -X POST -H "Content-Type: application/json" https://winmvs41.hursley.ibm.com:12358/stockquery/1234 { "SQOperationResponse": { "sqresp": { "item_count":400, "item_cost":80, "item_desc":"A toaster.", "item_id":1234 } } } Or you could use the built in swagger support in the API toolkit
  • 44. Statement of general direction IBM intends to deliver the following new capabilities within future Continuous Delivery releases: • The ability to apply and remove Advanced Message Security policies transparently between Advanced Message Security (AMS) and non-AMS enabled queue managers • An enhanced z/OS Connect Enterprise Edition service provider for MQ to add support for the Build and API Toolkits, and also automated service deployment • zHyperwrite support for MQ log files Statements by IBM regarding its plans, directions, and intent are subject to change or withdrawal without notice at the sole discretion of IBM. Information regarding potential future products is intended to outline general product direction and 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 IBM products remain at the sole discretion of IBM. Coming soon… https://www-01.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_ca/0/897/ENUS218-510/index.html&lang=en&request_locale=en#sodx 45 IBM MQ for z/OS 9.1.1 announcement
  • 45. Synchronous requests able to trigger thousands of backend transactions every second. Uses stateless and non-transactional HTTP protocol Comparing IBM MQ for z/OS and z/OS Connect EE Powerful APIs (MQI, JMS, XMS, MQLight) accessible from a wide variety of supported platforms. Built-in REST APIs for messaging and administration operations Enable z/OS assets to create or consume REST APIs tailored to application needs. Simple to use Eclipse-based API composition tooling Asynchronous transactional messaging able to handle millions of messages every second. Assured once and once only delivery Developers use a range of procedural and object oriented languages and frameworks. MQ service provider available for zCEE Developers use widely available skillsets (node.js, JSON, REST etc.). Data is then transformed appropriate to the service provider Highly available services and data with shared queues and automatic recovery Highly available service configurations using multiple servers or LPARs 46
  • 46. Both two-way and one-way services supported. One- way services support browse, and can publish to topics Comparing the MQ messaging REST API and z/OS Connect EE A REST API for messaging, very obvious that MQ is being used Allows customizable truly RESTful APIS to be built that hide the underlying z/OS subsystem, regardless of what it is Currently limited function: allows text messages to be sent and received to/from queues. Will be extended in future CD releases Tightly integrated with MQ, minimal set up required other than for security Requires service to be defined using SAR, and API Toolkit for API customization. Needs configuration to enable connectivity to MQ No data transformation, but does allow MQ codepage conversion Built in support for conversion to/from JSON to COBOL, PL/I and C 47
  • 47. Summary • Why REST? • Why MQ? • Putting them together: The MQ messaging REST API • z/OS Connect EE and MQ 48
  • 48. Integration Technical Conference 2019 49 Don’t forget to fill out the survey! Selectyour session, selectsurvey, rate thesession andsubmit!