HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity in a Hybrid World
-
Upload
matt-leming -
Category
Software
-
view
242 -
download
3
Transcript of HHM-3481: IBM MQ for z/OS: Enhancing Application and Messaging Connectivity in a Hybrid World
HHM-3481: IBM MQ for z/OS: Enhancing application and messaging connectivity in a hybrid worldMatt Leming – [email protected]
IBM Hursley - UK
Please Note:
1
• IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s solediscretion.
• Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision.
• The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract.
• The development, release, and timing of any future features or functionality described for our products remains at our sole discretion.
• Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user’s job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.
Agenda
• What have we already got?
• Why do we need more?
• JMS
• z/OS Connect
• AMQP Channel
2
What have we already got?And why do we need more?
What have we already got?
z/OS
MSTR
IIBCICS
IMS
DB2Batch
WAS
Clients
MQ
CHIN
4
Why do we need more?
• Skills change
– Java very common
– COBOL much less so
• Economics change
– Java can be offloaded onto zIIP
• Environments change
– Java environments in CICS and IMS have become very important
• New opportunities and paradigms
– Mobile applications need to interact with SOR
• Many of these use MQ as an interface
– Hybrid cloud5
JMS
6
What is JMS and why do I want it?
• Java Message Service
• Standard API for interacting with messaging middleware such as MQ
• Simple support for interacting with both queues and topics
• Widely adopted and used throughout the industry
• Most recent version is JMS 2
– Released in 2013
– Mainly focused on ease of use (new JMSContext API)
– Backwards compatible
– Some minor functionality added
• Delivery delay being the most notable7
What Java support was there for MQ on z until recently?
• JMS supported since MQ v5
• JMS 2.0 support added in v8
• Supported on z/OS in
– z/WAS
– Batch
• In CICS
– MQ base classes for Java supported in OSGi JVM Server
– MQ specific Java API
• In IMS
– No Java support with MQ at all
8
What has been added?
• Support for MQ JMS in CICS 5.3 and 5.2 OSGi environments
– Works with MQ 8 and 7.1
– Depending on environment some APARs needed
– Since 1Q 2015
• Support for MQ JMS in IMS 13
– Works with MQ 8
– Requires MQ APARs
– Since 4Q 2015
9
A few more details…
• MQ JMS builds on top of existing native code
in both CICS and IMS
• Bindings mode connections only
• Security provided using existing mechanisms
– Userid and password not supported
10
MSTR
CICS/IMS
JVM
JMS JNI Adapter
A few more details…
• Needs to maintain expected behaviour for processing environment, so
some restrictions on API
• For example:
– Can only be coordinated using CICS/IMS unit of work
– In CICS can only connect to the queue manager/QSG defined on MQCONN
resource definition
– In IMS can only connect to queue managers defined in CSQQDEFV
– In IMS every time you issue a GU or CHKP the native code disconnects
• If you need to use MQ again you need to reconnect
– Can’t use function which results in threads being spawned
• Message listeners, exception listeners, etc
11
Where can I find out more?
• CICS
– MQ 8 KC: https://ibm.biz/MQJMSinCICSOSGiKC8
– MQ 7.1 KC: https://ibm.biz/MQJMSinCICSOSGiKC71
– Blog articles:
• http://ibm.biz/MQJMSinCICSOSGiBlog
• http://ibm.biz/MQJMSinCICSOSGiJNDI
• IMS
– MQ 8 KC: https://ibm.biz/MQJMSinIMSKC
– Blog article: https://ibm.biz/MQJMSinIMSBlog
12
What is still to come?
• Statement of direction: IBM intends to deliver additional Java EE 7
components and technologies for the CICS TS hosted WebSphere
Liberty profile through continuous delivery of new features in the
coming months. These additional components and technologies are
intended to include support for Java EE 7 Web Profile features,
support for JMS 2.0 with IBM MQ for z/OS, and the ability to LINK
from a CICS TS COBOL program to a CICS TS hosted Liberty
application
• https://ibm.biz/MQCICSWLPSOD
13
z/OS Connect
14
What is z/OS Connect?
It’s about getting REST and JSON into your mainframe environment
in a way that enables you to best take advantage of the assets that
exist there:
Mobile /
Cloud
Ecosystem
CICS
IMS
Batch
DB2REST – Representational State Transfer …
the use of HTTP URLs that map to a
‘service’, such as ‘query account’ or
‘update data’
JSON – JavaScript Object Notation … a
standard of representing data as a set of
name/value pairs. This is passed back
and forth along with REST
request/responses
Where z/OS
Connect fits
• Liberty Profile Server
• Function IBM wrote to
run in Liberty Profile
• No charge function
provided with license
entitlement to WAS
z/OS, CICS or IMS
z/OS Connect
15
Other
z/OS Connect in one picture
16
Liberty Profile for z/OS
z/OS Connect Servlet
CICS
IMS
DB2
Data Transform
RESTful
JSON
3
z/OS Connect is software function
that runs in Liberty Profile for z/OS.
z/OS Connect is described and
configured in the Liberty server.xml file
z/OS Connect is designed to
accept RESTful URIs with JSON
data payloads
A ‘Service Provider’ is software
that provides the connectivity to
the backend system
server.xml
One part of z/OS Connect
is a servlet that runs in
Liberty Profile z/OS.
z/OS Connect provides the
ability to transform JSON to the
layout required by backend
‘Interceptors’ are callout
points where software can be
invoked to do things such as
SAF authorization and SMF
activity recording
Backend systems supported
are CICS, IMS, Batch, and
DB2
1
2
3
4
5
6
7
8
Batch
8
2Interceptors
Service Providers
4
1
6
5
7
Statement of general direction
• IBM intends that a future release of IBM MQ for z/OS will provide
support for both z/OS Connect and z/OS Connect EE
• https://ibm.biz/MQzOSConnectSOD
17
The MQ Service Provider
• A z/OS Connect service provider which allows existing services that
are fronted by MQ to be accessed via a RESTful front end
• Clients need have no knowledge of MQ
18
A bit more detail…
• Each URL in z/OS Connect maps to a service
• With the MQ Service Provider we intend to have two different types of
service
– Two way services
– One way services
19
Two way services
• Intention is that two way service provides request/reply messaging:
1. Client issues HTTP POST with some payload (JSON)
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 client as the body of the HTTP POST response
20
MQ BackendClient MQ SP
1 2
3
44
One way services
• Intention is that one way service exposes standard MQ verbs against a
single destination
– HTTP POST == MQPUT (queue and topic)
– HTTP DELETE == MQGET (queue)
– HTTP GET == MQGET (browse) (queue)
• Allows more advanced interactions with MQ
2121
MQClient MQ SP
Example two-way service
• Insurance quote service which takes a request from an MQ queue and
sends a response to another queue
• COBOL request
• COBOL response
• So COBOL -> JSON conversion needed using built in tooling
22
Example two-way service – request
23
Example two-way service – request on queue
24
Example two-way service – response on queue
25
Example two-way service – response
26
Want more information?
• Join the MQ beta program
– Speak to your account team or to me
27
AMQP Channel
28
The MQ Light API
• A new messaging API
• Simple for developers to use
• Pub/sub based
• Idiomatic clients in fully supported languages across an
open wire protocol (OASIS AMQP 1)
• Fully supported on Node.JS, Java, Ruby and Python (beta)
• More information in slides from session 3540
29
Digital IT Enterprise ITCloud
On-Prem
Message Hub(Based on Apache Kakfa)
MQ Light API
MQ Light API
H
Message-
Connect
30
Enterprise Messaging & Integration
Hybrid messaging
MQ ExplorerMQ ClientMQ Light API
Kafka API REST API IBM MQ Appliance IBM MQ
Digital IT Enterprise ITCloud
On-Prem
Message Hub(Based on Apache Kakfa)
MQ Light API
MQ Light API
H
Message-
Connect
31
Enterprise Messaging & Integration
The AMQP channel
MQ ExplorerMQ ClientMQ Light API
Kafka API REST API IBM MQ Appliance IBM MQ
The AMQP
channel
Statement of direction
IBM intends to deliver features into IBM MQ to allow applications that
have been developed to the MQ Light API to be run on IBM MQ. This
option might be considered when an application requires the qualities of
service provided by an enterprise messaging platform. IBM intends to
make this capability available in a future update to IBM MQ. MQ Light is
currently in open alpha and consequently content, features, and name
are subject to change.
http://ibm.biz/MQAMQPSOD
32
POC for AMQP channel on z/OS
• AMQP channel fully supported in 8.0.0.4 on all platforms apart from i
and z
– In beta form in earlier fix packs (8.0.0.2)
• AMQP channel code written in Java
• POC in progress to try and bring up AMQP channel in MQ on z/OS
running in the chinit
• Following slides show how the POC currently looks
33
JVM configuration
34
Environment, JVM, CLASSPATH etc
The JCL above is standard PROC
used to start MQ queue manager on
z/OS
Starting CHINIT attaches JVM
35
DEFINE and DISPLAY channel
36
MQSC commands can be
entered through console
commands, with response
returning to the console.
Here we see new channel
attributes and type for AMQP
About TPROOT channel attribute
37
MQLight:
connect to port 1548
pub/sub on topics
App provides relative
path, eg “request”
Message published at
/apps/loyalty/request
/
/apps
/loyalty /order
/data
/personnel
DEFINE
CHANNEL(AMQP.LOYALTY)
TPROOT(LOYALTY)
PORT(1548)
DEFINE TOPIC(LOYALTY)
TOPICSTR(/apps/loyalty)
Request Reply
TPROOT allows MQLight applications to be isolated from each other and existing MQ apps
in the MQ topic space.
JavaScript code running in Node.js
39
Connection details, user@host:port
Pass clientId
Driving a CICS transaction
40
/
/apps
/loyalty /order
/data
/personnelRq
Rp
PS.REQUEST
PS.REPLY
Admin
subscriptionQALIAS
to TOPIC
Summary
Summary
• There are already many ways of connecting in to MQ on z/OS
• We have added more to meet customer and industry needs
• We intend to continue to add connectivity options in the future in order
to keep MQ for z/OS as the vital heart of a hybrid messaging world
42
Where can I get more information?
IBM Messaging developerWorks
developer.ibm.com/messaging
IBM Messaging Youtube
https://www.youtube.com/IBMmessagingMedia
Ibm.biz/ibmmessaging
@IBMMessaging
IBM MQ Facebook
Facebook.com/IBM-MQ-8304628654/43
Monday
10:30-11:30 3592 New MQ features
3452 Managing applications
12:00-13:00 2835 MQ on z/OS and Distributed
15:00-16:00 3470 Latest MQ z/OS features
2833 Where is my message?
3544 MQ Light in an MQ infrastructure
16:30-17:30 3573 Hybrid cloud messaging
2941 MQ Advanced
Tuesday
08:30-09:30 3540 The MQ Light API
12:00-13:00 3456 The IBM MQ Appliance
13:15-14:15 3499 Introducing Message Hub
3458 MQ Appliance administration
14:30-15:30 6432 MQ updates and futures (InnerCircle)
2849 Messaging feedback roundtable
16:00-17:00 3544 MQ Light in an MQ infrastructure
3513 MQ hands on lab
Wednesday
08:30-09:30 3602 Managing your MQ environment
12:00-13:00 3613 Designing MQ self service
6408 Hybrid messaging roadmap (InnerCircle)
13:15-14:00 3416 HA and DR with MQ
3433 Why secure your messaging?
15:45-16:30 3429 Securing MQ
2847 Meet the messaging experts
16:00-17:00 3508 MQ Light hands on lab
16:45-17:30 2275 Migrating to the IBM MQ Appliance
Thursday
08:30-09:15 3420 MQ Clustering
2931 Business agility with self service MQ
09:30-10:15 3479 MQ z/OS clusters and shared queue
3450 Optimising MQ applications
2849 Messaging feedback roundtable
10:30-11:15 3465 MQ Appliance high availability
3481 MQ z/OS messaging connectivity
11:30-12:15 3474 Active-active messaging
3537 Monitoring and managing MQ
3425 MQ publish/subscribe
Find us at the EXPO:
Hybrid Integration peds 65-68
Check out the Hybrid Messaging sub topic under the
Hybrid Integration topic for further customer and business
partner sessions
Hybrid Messaging from the IBM experts at InterConnect 2016 Sunday
14:30-15:30 6408 Hybrid messaging roadmap (InnerCircle)
MQ as a service Redpaper now available
• IBM MQ as a Service: A Practical Approach
• Provides information about how to build, deploy, and use IBM MQ as a
service. The information in this paper includes the key factors that must
be considered while planning the use of IBM MQ as a service
• http://ibm.biz/mqaas_red
Questions?
Notices and Disclaimers
47
Copyright © 2016 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission
from IBM.
U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM.
Information in these presentations (including information relating to products that have not yet been announced by IBM) has been reviewed for accuracy as of the date of
initial publication and could include unintentional technical or typographical errors. IBM shall have no responsibility to update this information. THIS DOCUMENT IS
DISTRIBUTED "AS IS" WITHOUT ANY WARRANTY, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL IBM BE LIABLE FOR ANY DAMAGE ARISING FROM THE
USE OF THIS INFORMATION, INCLUDING BUT NOT LIMITED TO, LOSS OF DATA, BUSINESS INTERRUPTION, LOSS OF PROFIT OR LOSS OF OPPORTUNITY.
IBM products and services are warranted according to the terms and conditions of the agreements under which they are provided.
Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without notice.
Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are presented as illustrations of how those customers
have used IBM products and the results they may have achieved. Actual performance, cost, savings or other results in other operating environments may vary.
References in this document to IBM products, programs, or services does not imply that IBM intends to make such products, programs or services available in all countries in
which IBM operates or does business.
Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily reflect the views of IBM. All materials
and discussions are provided for informational purposes only, and are neither intended to, nor shall constitute legal or other guidance or advice to any individual participant or
their specific situation.
It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal counsel as to the identification and
interpretation of any relevant laws and regulatory requirements that may affect the customer’s business and any actions the customer may need to take to comply with such
laws. IBM does not provide legal advice or represent or warrant that its services or products will ensure that the customer is in compliance with any law
Notices and Disclaimers Con’t.
48
Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not
tested those products in connection with this publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products.
Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. IBM does not warrant the quality of any third-party products, or the
ability of any such third-party products to interoperate with IBM’s products. IBM EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
The provision of the information contained h erein is not intended to, and does not, grant any right or license under any IBM patents, copyrights, trademarks or other intellectual
property right.
IBM, the IBM logo, ibm.com, Aspera®, Bluemix, Blueworks Live, CICS, Clearcase, Cognos®, DOORS®, Emptoris®, Enterprise Document Management System™, FASP®,
FileNet®, Global Business Services ®, Global Technology Services ®, IBM ExperienceOne™, IBM SmartCloud®, IBM Social Business®, Information on Demand, ILOG,
Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®, pureCluster™, PureCoverage®, PureData®,
PureExperience®, PureFlex®, pureQuery®, pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, Smarter Commerce®, SoDA, SPSS, Sterling Commerce®,
StoredIQ, Tealeaf®, Tivoli®, Trusteer®, Unica®, urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of International Business
Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM
trademarks is available on the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.
Thank YouYour Feedback is Important!
Access the InterConnect 2016 Conference Attendee
Portal to complete your session surveys from your
smartphone,
laptop or conference kiosk.