Best practices for CICS SOA Connectivity Ezriel Gross Circle Software Matthew Webster IBM © 2014 IBM Corporation.

Download Report

Transcript Best practices for CICS SOA Connectivity Ezriel Gross Circle Software Matthew Webster IBM © 2014 IBM Corporation.

Best practices for CICS SOA
Connectivity
Ezriel Gross
Circle Software
Matthew Webster
IBM
© 2014 IBM Corporation
Please Note
IBM’s statements regarding its plans, directions, and intent are subject to change
or withdrawal without notice at IBM’s sole discretion.
Information regarding potential future products is intended to outline our general
product direction and it should not be relied on in making a purchasing decision.
The information mentioned regarding potential future products is not a
commitment, promise, or legal obligation to deliver any material, code or
functionality. Information about potential future products may not be incorporated
into any contract. The development, release, and timing of any future features or
functionality described for our products remains at our sole discretion.
Performance is based on measurements and projections using standard IBM
benchmarks in a controlled environment. The actual throughput or performance
that any user will experience will vary depending upon many factors, including
considerations such as the amount of multiprogramming in the user’s job stream,
the I/O configuration, the storage configuration, and the workload processed.
Therefore, no assurance can be given that an individual user will achieve results
similar to those stated here.
2
Abstract
CICS provides a rich set of connectivity options for SOA integration
including CICS web services, JCA and CICS sockets. The best
choice will depend on your application architecture, existing
middleware environment and required transport protocols. Other
considerations include development languages, client server
coupling and whether requests are to be synchronous or
asynchronous. This session will outline the key SOA deployment
scenarios used by customers today and the best practice choice of
technology in each case. Also covered will be references to
supporting material including redbooks and articles.
This session will also cover recent enhancements to CICS web
services. Data mapping for SOAP and JSON now supports UTF-16
data types, as well as additional COBOL data clauses. Also CICS
web services definitions can now be managed through CICS
bundles and deployed as part of a cloud workload.
3
Outline
Preparing for SOA
SOA Connectivity Options
Enhancements in CICS TS 5.2 and CICS TG V9.1 open beta
4
Choice factors
Application interface
• Operations, input/output messages, message formats, message
exchange patterns and transport protocols
Client/server coupling
• Tightly or loosely coupled?
Synchronous or asynchronous invocation
• Request/reply or event-based?
Application development tools
• Depends on preference or what you already have
Security
• Does choice support your security requirements?
Transactional scope
• 2PC or not 2PC (that is not the only question!)
High availability and scalability
• Who doesn’t want high availability and scalability?
5
SOA Connectivity Options
1. Web services over SOAP
2. JCA – CICS TG or WOLA
3. CICS Web Support
4. Messaging
5. CICS sockets
6
PREPARING FOR SOA
7
CICS essential design concepts
Pseudo-conversational programming
Communication area: COMMAREA, Channels & Containers
Program-to-program communication
8
Problems with raw data communication
Data must be accessed using its relative position
Modifications to fields require application changes
Addition of new fields affect all existing users
Data requires a separate document to describe fields
Data is not portable therefore platform dependent
9
Introduction to XML
Extensible Markup Language (XML), is owned by the World
Wide Web Consortium (W3C).
XML is an open standard protocol that provides a mechanism to
create and define a meta-language that can be used to
structure information.
XML is extensible in that there are no pre-defined tags, as in
HTML. Each set of users defines tags that have meaning to
them and their peers, such as within a business, across an
industry, or across multiple industries.
XML is used to create new Internet languages.
10
Two models of CICS SOA integration
CICS Transaction Gateway
Requester
Service Provider
CICS TS
CICS Program
Web
service
Client
SOAP
Web
services
end-point
Integration
logic
A
connector
I
Business
logic D
B
CICS Web Services
Requester
CICS TS (Service Provider)
Business Function
Web
service
Client
CICS
Web A
SOAP services
support
Integration
logic
I
11
Business
logic
B
Data
access
D
CICS WEB SERVICES
12
Exposing CICS application as Web service
Direct service call approach
Requester
CICS TS (Service Provider)
Business Function
Web
service
Client
CICS
Web A
SOAP services
support
Integration
logic
I
Web Services Clients (examples):
• WebSphere BPEL process (Process Choreography)
• WebSphere Datapower
• .NET assembly
• WebSphere MQ client
• Another program in CICS (invoke Web service)
• Anything that can invoke a Web Service !
Business
logic
B
Data
access
D
CICS Web Services Considerations
Inbound and outbound
Loosely coupled
Synchronous
HTTP (and MQ)
CICS configuration required
Native & Java Pipelines
14
Standard architecture – Web services
Client
CICS TS
A
Proxy
SOAP
CICS Web support
WebSphere MQ Trigger Monitor
Pipeline
CICS or custom data mapping
With CICS TS V3.x a CICS application can be Web service provider or consumer
•
HTTP or MQ transport
Development using CICS supplied utilities or Rational Developer for System z (RDz)
•
Used to generate the data mapping
Runtime
•
•
SOAP envelope removed by a message handler in the Web services pipeline
COMMAREA or container built by “data mapper”
EXEC CICS INVOKE WEBSERVICE|SERVICE API for outbound support
15
B
D
Web service resource interrelationships
16
CICS web services overview
Web services terms and concepts available in CICS TS
Web services architecture:
• Service provider
• Service requestor
• Service registry
WSDL
SOAP messages
Message handlers and pipelines
PIPELINE and WEBSERVICE resource definitions
17
Approach to web services development (1 of 2)
Provider – means that
CICS is the host of the
web service which is
being invoked from
elsewhere.
Web service
requester
CICS as provider
WSDL
Top
down
CICS
Bottom
up
Bottom up – Start with a language
structure and convert it into a form
usable as a CICS web service
Top down – Start with a WSDL
document and convert it into a form
usable as a CICS web service.
Language
structures
CICS as requester
Requester – means
that CICS is the user
of a web service
provided elsewhere
Web service
provider
Approach to web services development (2 of 2)
Bottom-up
New service: WSDL
Generate
Existing
business application
(COBOL, C, C++, PLI)
Top-down
Existing service
description WSDL
Generate
New business application
(COBOL, C, C++, PLI)
Meet in the middle
Existing service
description WSDL
Map
and
Generate
Existing
business application
(COBOL, C, C++, PLI)
Rational Developer for System z
Web Services and XML development
• Offers the ability to create, view, edit and validate WSDL,
document-type definitions (DTD) and XML schemas, transforms
XML documents into text, HTML, or other XML document types.
• Integrates relational databases and XML.
• Generates COBOL adapters and CICS TS V3 WSBind and
COBOL artifacts for converting between Web Service Definition
Language.
The CICS service flow feature provides components that extend CICS
Transaction Server by providing adapters that exploit CICS interfaces
to invoke the CICS terminal-oriented transactions and COMMAREA
programs required by the web service generated from the service flow
project.
Using DataPower XI52
DataPower provides Web service enablement
DataPower
XI52
Security and Management for CICS Web services
`
SOAP/HTTP
SOAP/HTTP
CICS Web Services
WAS+CICS connector
Client
DataPower
XI52
21
CICS Application
Client
CICS
Brdg
CICS
`
COBOL/MQ
MQ Server
MQ Client
SOAP/HTTP
Summary: CICS Web Services
Web services in CICS builds on established CICS concepts and
technologies such as pseudo- conversational transactions and
program-to-program communication via COMMAREAs (or channels
and containers)
Web services introduce new concepts and technologies such as XML,
SOAP, and WSDL
Web services involve a combination of CICS resource definitions
(PIPELINE, WEBSERVICE, URIMAP)
CICS TS provides utilities for converting existing CICS applications
into web services
IBM provides other tools to help develop web services
22
CICS TRANSACTION
GATEWAY
23
Exposing CICS applications as Web service
Connector approach
Other/Any
JEE Server
CICS TG
CICS TS
CICS Program
Web
Service
Client
WebSphere
Application J
Server Web C
Service
A
Support
A
CICS
Transaction
Gateway
Business
logic
B
CICS Transaction Gateway JCA (J2EE Connector Architecture) Resource Adapter
•
Different topologies and transports are supported
Development using Rational Application Developer (RAD)
•
Used to generate J2C bean and records
Runtime
•
•
•
ECI (External Call Interface) used for calling COMMAREA or container based programs
J2C bean performs data conversion and formatting
CICS TG V7.2 supports direct .NET connectivity with ECI V2
CICS TG V8.0 provides Open Integration with any JEE Server compliant with J2EE V1.4 or higher
D
CICS TG Considerations
Inbound only
Tightly coupled
Synchronous
Private protocols
Little CICS configuration required
Java (SE & EE), C, .Net
25
J2EE Connector Architecture (JCA)
JEE Server
(e.g WebSphere Application Server)
Container-Component
Contract
Application
Component
(e.g EJB)
Common Client
Interface (CCI)
ConnectionFactory cf =<JNDI lookup>
Connection connection =cf.getConnection();
System Contracts
Interaction interaction
=connection.createInteraction();
interaction.execute(<input and output data>);
interaction.close();
connection.close();
Connection
Management
Transaction
Management
Security
Management
Resource Adapter
(e.g CICS ECI resource
adapter)
EIS Specific
Interface
Enterprise Information
System (e.g CICS)
Resource adapters provided by CICS TG
 ECI (cicseci.rar)
 EPI (cicsepi.rar)
26
CICS Transaction Gateway Topologies
Topology 1
WebSphere
Application Server
and CICS TG on a
distributed platform
System z
Topology 2
Service
Consumer
WebSphere
Application Server
on a distributed
platform
CICS TG
z/OS
SOAP
Network
Topology 3
HTML
Whitepaper: Integrating WebSphere Application Server and CICS
using the CICS Transaction Gateway
http://www.ibm.com/software/htp/cics/ctg/zos/
27
WebSphere
Application Server
and CICS TG
on System z
CICS
JCA Topologies – CTG and WOLA
CTG

L
P
A
R
CICS
WAS
CICS
TG z/OS
CICS
WAS
Service
Consumer
SOAP

CTG

CICS
WAS
WOLA
HTML
Network

WAS
28
W
O
L
A
CICS
L
P
A
R
L
P
A
R
L
P
A
R
S
Y
S
T
E
M
z
MQ, HTTP, CICS SOCKETS
29
CICS messaging support
CICS TS
Other/Any
Web
Service
Client
WAS
WebSphere
Application
Server Web
Service
Support
J
M
S
A
WebSphere MQ
Trigger Monitor
CICS MQ Bridge
B
MQ Trigger Monitor
• Starts CICS program that reads the message queue
• Program can be MQ-aware or COMMAREA-based program
CICS MQ Bridge
• Transfers the message to the unchanged CICS business logic.
• Transfers the output message to the Reply_To_Queue
Inbound and outbound
Medium coupling
Asynchronous, with almost-synchronous capabilities
Assured delivery
D
HTTP / Atom / REST
Inbound and outbound
Medium coupling
Synchronous
Medium QoS
31
CICS Sockets
Inbound and outbound
Very tight coupling
Synchronous
Limited QoS
Use only when remote client/server only supports TCP/IP sockets
communication.
32
ENHANCEMENTS IN CICS TS 5.2
AND CICS TG V9.1 OPEN BETA
33
New in CICS TS V5.2
Easier Interaction with Mobile Devices & Gateways
• Integration of CICS TS Feature Pack for Mobile Extensions
JAX-WS and JAXB support in Liberty profile
COBOL Data mapping enhancements
• Arrays of characters are mapped as Strings
• OCCURS DEPENDING ON and OCCURS INDEXED BY
supported in COBOL
CICS Explorer and cloud support for web services
• WEBSERVICE definition
• PIPELINE configuration
34
Easier Interaction with Mobile Devices & Gateways
JSON RESTful web service scenarios
JSON request/response web service scenarios
• Web services assistant programs
• Linkable interface
– Equivalent to EXEC CICS XMLTRANSFORM allows application
programs to process JSON data
Support for Liberty profile JAX-RS and JSON features
35
New in CICS TG V9.1 open beta
Mobile support
• JSON web services
IPIC enhancements
• heartbeat exploitation
• connections managed independently of Gateway lifecycle
Security enhancements
• compliance with NIST SP800-131A
• SSL for .NET applications
36
CICS TG for z/OS V9.1 open beta - JSON Web
Services
Technology aligned with
z/OS Connect
37
Summary
Preparing for SOA
SOA Connectivity Options
Enhancements in CICS TS 5.2 and CICS TG V9.1 open beta
38
More Information
Redbook/Whitepaper Title
Publication N°
Last Update
Architecting Access to CICS within an SOA
SG24-5466-06
March 2012
WSW11339-USEN-00
Sept 2007
Implementing CICS Web Services
SG24-7657-00
Nov 2008
Application Development for CICS Web Services
SG24-7126-00
May 2006
Securing Access to CICS Within an SOA
SG24-5756-01
Dec 2006
Securing CICS Web Services
SG24-7658-00
Dec 2008
WebSphere for z/OS to CICS and IMS Connectivity Performance
REDP-3959-00
May 2006
CICS Web Services Performance
SG24-7687-00
2009
Deploying CICS Web services to preserve IT investments in the Banking Industry
WSW14002-USEN-00
Dec 2007
Integrating WebSphere Application Server and CICS using the CTG
WSW14013-USEN-00
March 2008
CICS Transaction Gateway for z/OS V6.1
SG24-7161-00
May 2006
Developing Connector Applications for CICS
SG24-7714-00
Arpil 2009
Increase the value of CICS applications with WebSphere MQ
WSW14006-USEN-01
Feb 2008
WebSphere MQ for z/OS Highly Available System Design
SupportPac MD17
Jan 2006
Options for Integrating CICS applications in an SOA
Questions?
We Value Your Feedback
Don’t forget to submit your Impact session and speaker
feedback! Your feedback is very important to us – we use it to
continually improve the conference.
Use the Conference Mobile App or the online Agenda Builder to
quickly submit your survey
• Navigate to “Surveys” to see a view of surveys for sessions
you’ve attended
41
Legal Disclaimer
• © IBM Corporation 2014. All Rights Reserved.
• The information contained in this publication is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained
in this publication, it is provided AS IS without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are
subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this publication or any other materials. Nothing
contained in this publication is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and
conditions of the applicable license agreement governing the use of IBM software.
• References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or
capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to
future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by
you will result in any specific sales, revenue growth or other results.
• If the text contains performance statistics or references to benchmarks, insert the following language; otherwise delete:
Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will
experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage
configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.
• If the text includes any customer examples, please confirm we have prior written approval from such customer and insert the following language; otherwise delete:
All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs
and performance characteristics may vary by customer.
• Please review text for proper trademark attribution of IBM products. At first use, each product name must be the full name and include appropriate trademark symbols (e.g., IBM
Lotus® Sametime® Unyte™). Subsequent references can drop “IBM” but should include the proper branding (e.g., Lotus Sametime Gateway, or WebSphere Application Server).
Please refer to http://www.ibm.com/legal/copytrade.shtml for guidance on which trademarks require the ® or ™ symbol. Do not use abbreviations for IBM product names in your
presentation. All product names must be used as adjectives rather than nouns. Please list all of the trademarks that you use in your presentation as follows; delete any not included in
your presentation. IBM, the IBM logo, Lotus, Lotus Notes, Notes, Domino, Quickr, Sametime, WebSphere, UC2, PartnerWorld and Lotusphere are trademarks of International
Business Machines Corporation in the United States, other countries, or both. Unyte is a trademark of WebDialogs, Inc., in the United States, other countries, or both.
• If you reference Adobe® in the text, please mark the first use and include the following; otherwise delete:
Adobe, the Adobe logo, PostScript, and the PostScript logo are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States, and/or other countries.
• If you reference Java™ in the text, please mark the first use and include the following; otherwise delete:
Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
• If you reference Microsoft® and/or Windows® in the text, please mark the first use and include the following, as applicable; otherwise delete:
Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both.
• If you reference Intel® and/or any of the following Intel products in the text, please mark the first use and include those that you use as follows; otherwise delete:
Intel, Intel Centrino, Celeron, Intel Xeon, Intel SpeedStep, Itanium, and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and
other countries.
• If you reference UNIX® in the text, please mark the first use and include the following; otherwise delete:
UNIX is a registered trademark of The Open Group in the United States and other countries.
• If you reference Linux® in your presentation, please mark the first use and include the following; otherwise delete:
Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of
others.
• If the text/graphics include screenshots, no actual IBM employee names may be used (even your own), if your screenshots include fictitious company names (e.g., Renovations, Zeta
Bank, Acme) please update and insert the following; otherwise delete: All references to [insert fictitious company name] refer to a fictitious company and are used for illustration
purposes only.
42