Impact 2014 Best practices for_cics_soa_co
-
Upload
nickgarrod -
Category
Technology
-
view
231 -
download
0
Transcript of Impact 2014 Best practices for_cics_soa_co
© 2014 IBM Corporation
Best practices for CICS SOA ConnectivityEzriel GrossCircle Software
Matthew WebsterIBM
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 factorsApplication 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 TS
Web service Client
CICS Program
Business logic
B
Requester
connector
Web services end-point
Service Provider
DIntegration
logic
I
ASOAP
CICS TS
Web service Client
CICSWeb
servicessupport
Integration logic
Dataaccess
Business Function
DI
Business logic
B
Requester (Service Provider)
SOAPA
CICS Web Services
CICS Transaction Gateway
11
CICS Web Services
12
Exposing CICS application as Web service Direct service call approach
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 !
CICS TS
Web service Client
CICSWeb
servicessupport
Integration logic
Dataaccess
Business Function
DI
Business logic
B
Requester (Service Provider)
SOAPA
CICS Web Services Considerations
Inbound and outbound
Loosely coupled
Synchronous
HTTP (and MQ)
CICS configuration required
Native & Java Pipelines
14
Standard architecture – Web services
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
Client
A
CICS Web support
WebSphere MQ Trigger Monitor
Pipeline
CICS or custom data mapping
CICS TS
SOAP
DB
Proxy
15
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
Bottom up – Start with a languagestructure and convert it into a formusable as a CICS web service
Approach to web services development (1 of 2)
Top down – Start with a WSDLdocument and convert it into a formusable as a CICS web service.
Web service requester Web service
providerCICS as provider CICS as requesterCICS
Bottomup
Topdown
WSDL
Languagestructures
Provider – means thatCICS is the host of the web service which isbeing invoked fromelsewhere.
Requester – meansthat CICS is the userof a web serviceprovided elsewhere
Approach to web services development (2 of 2)
Existing business application
(COBOL, C, C++, PLI)
New service: WSDL
New business application(COBOL, C, C++, PLI)
Existing service description WSDL
Existing servicedescription WSDL
Existing business application
(COBOL, C, C++, PLI)
Bottom-up Top-down Meet in the middle
Generate Generate Map and
Generate
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.
Client
SOAP/HTTP
WAS+CICS connector
CICS Web ServicesSOAP/HTTP
Security and Management for CICS Web services
DataPower XI52
DataPower XI52
CIC
S
CIC
S A
pp
lication
MQ
Serv er
CICSBrdg
MQ
Clien
t
COBOL/MQ
Client
SOAP/HTTP
DataPower provides Web service enablement
Using DataPower XI52
21
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
CICS TS
Web Service Client
CICS Program
Business logic
B
Other/Any
CICS Transaction
Gateway
CICS TG
WebSphere Application Server Web
Service Support
JEE Server
JCA
D
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
A
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)
Application Component (e.g EJB)
Resource Adapter(e.g CICS ECI resource adapter)
Enterprise Information System (e.g CICS)
System Contracts
Container-Component Contract
Common Client Interface (CCI)
EIS Specific Interface
ConnectionFactory cf =<JNDI lookup>
Connection connection =cf.getConnection();
Interaction interaction
=connection.createInteraction();
interaction.execute(<input and output data>);
interaction.close();
connection.close();
Resource adapters provided by CICS TG ECI (cicseci.rar) EPI (cicsepi.rar)
Connection ManagementTransaction ManagementSecurity Management
26
CICS Transaction Gateway Topologies
Whitepaper: Integrating WebSphere Application Server and CICS using the CICS Transaction Gateway http://www.ibm.com/software/htp/cics/ctg/zos/
CICS
Network
HTML
WebSphere Application Server
and CICS TG on System z
WebSphere Application Server and CICS TG on a
distributed platform
WebSphere Application Server
on a distributed platform
CICS TGz/OS
Topology 1
Topology 3
Topology 2
System z
ServiceConsumer SOAP
27
CICS
SYSTEM
z
LPAR
LPAR
CICSCICS TG z/OS
LPAR
LPAR
CICSCTG
CTG
WAS
WAS
WAS
CICSWAS
WOLA
WOLA
Network
JCA Topologies – CTG and WOLA
HTML
ServiceConsumer
SOAP
28
MQ, HTTP, CICS sockets
29
CICS messaging support
Web Service Client
Other/Any
WebSphere Application Server Web
Service Support
WAS
JMSA
WebSphere MQ Trigger Monitor
CICS MQ Bridge
CICS TS
DB
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 outboundMedium couplingAsynchronous, with almost-synchronous capabilitiesAssured delivery
HTTP / Atom / REST
Inbound and outboundMedium couplingSynchronousMedium QoS
31
CICS Sockets
Inbound and outboundVery tight couplingSynchronousLimited QoSUse 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
37
CICS TG for z/OS V9.1 open beta - JSON Web Services
Technology aligned with z/OS Connect
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
Options for Integrating CICS applications in an SOA
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
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