SlideShare une entreprise Scribd logo
1  sur  49
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
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
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
© 2019 IBM Corporation
Putting them together:
The MQ messaging REST API
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
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>”
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>
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
© 2019 IBM Corporation
z/OS Connect EE and MQ
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
Simplified access to backend systems with z/OS Connect EE
16
RESTful APIs available from one endpoint
A single entry point is better!
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
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.)
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
Data mapping
Overview – map REST API payload to backend services
20
Data mapping
• A closer look
• Map path and query parameters
• Granular mapping of data structures
21
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
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
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
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
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
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
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).
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
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
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
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
Step 2: generate the RESTful API using the API Toolkit
34
Copy the item id from the URL
Response is mapped back
without change
Step 3: deploy API to z/OS Connect server
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…
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
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
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
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"}]}
Step 7: sanity checks
Or use the API editor
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
Step 8: try it out!
43
Back end receives request message and generates response
Response message
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
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
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
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
Summary
• Why REST?
• Why MQ?
• Putting them together: The MQ messaging REST API
• z/OS Connect EE and MQ
48
Integration Technical Conference 2019 49
Don’t forget to fill out the survey!
Selectyour session, selectsurvey, rate thesession andsubmit!
ThankYou
Matt Leming
lemingma@uk.ibm.com

Contenu connexe

Tendances

IBM WebSphere MQ Introduction
IBM WebSphere MQ Introduction IBM WebSphere MQ Introduction
IBM WebSphere MQ Introduction ejlp12
 
#APIOps- Agile API Development powered by API Connect
#APIOps- Agile API Development powered by API Connect#APIOps- Agile API Development powered by API Connect
#APIOps- Agile API Development powered by API Connectpramodvallanur
 
MQ Guide France - IBM MQ and Containers
MQ Guide France - IBM MQ and ContainersMQ Guide France - IBM MQ and Containers
MQ Guide France - IBM MQ and ContainersRobert Parker
 
IBM DataPower Gateway - Common Use Cases
IBM DataPower Gateway - Common Use CasesIBM DataPower Gateway - Common Use Cases
IBM DataPower Gateway - Common Use CasesIBM DataPower Gateway
 
IBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM MQ: Managing Workloads, Scaling and Availability with MQ ClustersIBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM MQ: Managing Workloads, Scaling and Availability with MQ ClustersDavid Ware
 
IBM MQ High Availability 2019
IBM MQ High Availability 2019IBM MQ High Availability 2019
IBM MQ High Availability 2019David Ware
 
Data power Performance Tuning
Data power Performance TuningData power Performance Tuning
Data power Performance TuningKINGSHUK MAJUMDER
 
Mq presentation
Mq presentationMq presentation
Mq presentationxddu
 
IBM MQ Appliance - Administration simplified
IBM MQ Appliance - Administration simplifiedIBM MQ Appliance - Administration simplified
IBM MQ Appliance - Administration simplifiedAnthony Beardsmore
 
IBM MQ Whats new - up to 9.3.4.pdf
IBM MQ Whats new - up to 9.3.4.pdfIBM MQ Whats new - up to 9.3.4.pdf
IBM MQ Whats new - up to 9.3.4.pdfRobert Parker
 
DataPower API Gateway Performance Benchmarks
DataPower API Gateway Performance BenchmarksDataPower API Gateway Performance Benchmarks
DataPower API Gateway Performance BenchmarksIBM DataPower Gateway
 
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 APIc API security protection mechanism
IBM APIc API security protection mechanismIBM APIc API security protection mechanism
IBM APIc API security protection mechanismShiu-Fun Poon
 
IBM Cloud Pak for Integration 2020.2.1 installation
IBM Cloud Pak for Integration 2020.2.1 installation IBM Cloud Pak for Integration 2020.2.1 installation
IBM Cloud Pak for Integration 2020.2.1 installation khawkwf
 
Fault tolerant and scalable ibm mq
Fault tolerant and scalable ibm mqFault tolerant and scalable ibm mq
Fault tolerant and scalable ibm mqDavid Ware
 
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
 
APIConnect Security Best Practice
APIConnect Security Best PracticeAPIConnect Security Best Practice
APIConnect Security Best PracticeShiu-Fun Poon
 
Amazon EC2 서비스 살펴보기 (박철수) - AWS 웨비나 시리즈
Amazon EC2 서비스 살펴보기 (박철수) - AWS 웨비나 시리즈Amazon EC2 서비스 살펴보기 (박철수) - AWS 웨비나 시리즈
Amazon EC2 서비스 살펴보기 (박철수) - AWS 웨비나 시리즈Amazon Web Services Korea
 
IBM WebSphere Application Server version to version comparison
IBM WebSphere Application Server version to version comparisonIBM WebSphere Application Server version to version comparison
IBM WebSphere Application Server version to version comparisonejlp12
 

Tendances (20)

IBM WebSphere MQ Introduction
IBM WebSphere MQ Introduction IBM WebSphere MQ Introduction
IBM WebSphere MQ Introduction
 
#APIOps- Agile API Development powered by API Connect
#APIOps- Agile API Development powered by API Connect#APIOps- Agile API Development powered by API Connect
#APIOps- Agile API Development powered by API Connect
 
MQ Guide France - IBM MQ and Containers
MQ Guide France - IBM MQ and ContainersMQ Guide France - IBM MQ and Containers
MQ Guide France - IBM MQ and Containers
 
IBM DataPower Gateway - Common Use Cases
IBM DataPower Gateway - Common Use CasesIBM DataPower Gateway - Common Use Cases
IBM DataPower Gateway - Common Use Cases
 
IBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM MQ: Managing Workloads, Scaling and Availability with MQ ClustersIBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
IBM MQ: Managing Workloads, Scaling and Availability with MQ Clusters
 
IBM MQ High Availability 2019
IBM MQ High Availability 2019IBM MQ High Availability 2019
IBM MQ High Availability 2019
 
Data power Performance Tuning
Data power Performance TuningData power Performance Tuning
Data power Performance Tuning
 
Mq presentation
Mq presentationMq presentation
Mq presentation
 
IBM MQ Appliance - Administration simplified
IBM MQ Appliance - Administration simplifiedIBM MQ Appliance - Administration simplified
IBM MQ Appliance - Administration simplified
 
Gateway deepdive
Gateway deepdiveGateway deepdive
Gateway deepdive
 
IBM MQ Whats new - up to 9.3.4.pdf
IBM MQ Whats new - up to 9.3.4.pdfIBM MQ Whats new - up to 9.3.4.pdf
IBM MQ Whats new - up to 9.3.4.pdf
 
DataPower API Gateway Performance Benchmarks
DataPower API Gateway Performance BenchmarksDataPower API Gateway Performance Benchmarks
DataPower API Gateway Performance Benchmarks
 
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 APIc API security protection mechanism
IBM APIc API security protection mechanismIBM APIc API security protection mechanism
IBM APIc API security protection mechanism
 
IBM Cloud Pak for Integration 2020.2.1 installation
IBM Cloud Pak for Integration 2020.2.1 installation IBM Cloud Pak for Integration 2020.2.1 installation
IBM Cloud Pak for Integration 2020.2.1 installation
 
Fault tolerant and scalable ibm mq
Fault tolerant and scalable ibm mqFault tolerant and scalable ibm mq
Fault tolerant and scalable ibm mq
 
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
 
APIConnect Security Best Practice
APIConnect Security Best PracticeAPIConnect Security Best Practice
APIConnect Security Best Practice
 
Amazon EC2 서비스 살펴보기 (박철수) - AWS 웨비나 시리즈
Amazon EC2 서비스 살펴보기 (박철수) - AWS 웨비나 시리즈Amazon EC2 서비스 살펴보기 (박철수) - AWS 웨비나 시리즈
Amazon EC2 서비스 살펴보기 (박철수) - AWS 웨비나 시리즈
 
IBM WebSphere Application Server version to version comparison
IBM WebSphere Application Server version to version comparisonIBM WebSphere Application Server version to version comparison
IBM WebSphere Application Server version to version comparison
 

Similaire à 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
 
MQ Support for z/OS Connect
MQ Support for z/OS ConnectMQ Support for z/OS Connect
MQ Support for z/OS ConnectMatt Leming
 
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
 
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
 

Similaire à 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
 
MQ Support for z/OS Connect
MQ Support for z/OS ConnectMQ Support for z/OS Connect
MQ Support for z/OS Connect
 
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
 
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 ...
 

Plus de Matt Leming

533-MigratingYourMQIApplicationsToJMS.pdf
533-MigratingYourMQIApplicationsToJMS.pdf533-MigratingYourMQIApplicationsToJMS.pdf
533-MigratingYourMQIApplicationsToJMS.pdfMatt 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
 
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
 

Plus de Matt Leming (10)

533-MigratingYourMQIApplicationsToJMS.pdf
533-MigratingYourMQIApplicationsToJMS.pdf533-MigratingYourMQIApplicationsToJMS.pdf
533-MigratingYourMQIApplicationsToJMS.pdf
 
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
 
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...
 

Dernier

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfayushiqss
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 

Dernier (20)

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 

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!