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

Impact 2014 Best practices for_cics_soa_co

Embed Size (px)

Citation preview

Page 1: Impact 2014 Best practices for_cics_soa_co

© 2014 IBM Corporation

Best practices for CICS SOA ConnectivityEzriel GrossCircle Software

Matthew WebsterIBM

Page 2: Impact 2014 Best practices for_cics_soa_co

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

Page 3: Impact 2014 Best practices for_cics_soa_co

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

Page 4: Impact 2014 Best practices for_cics_soa_co

Outline

Preparing for SOA

SOA Connectivity Options

Enhancements in CICS TS 5.2 and CICS TG V9.1 open beta

4

Page 5: Impact 2014 Best practices for_cics_soa_co

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

Page 6: Impact 2014 Best practices for_cics_soa_co

SOA Connectivity Options

1. Web services over SOAP

2. JCA – CICS TG or WOLA

3. CICS Web Support

4. Messaging

5. CICS sockets

6

Page 7: Impact 2014 Best practices for_cics_soa_co

Preparing for SOA

7

Page 8: Impact 2014 Best practices for_cics_soa_co

CICS essential design concepts

Pseudo-conversational programming

Communication area: COMMAREA, Channels & Containers

Program-to-program communication

8

Page 9: Impact 2014 Best practices for_cics_soa_co

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

Page 10: Impact 2014 Best practices for_cics_soa_co

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

Page 11: Impact 2014 Best practices for_cics_soa_co

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

Page 12: Impact 2014 Best practices for_cics_soa_co

CICS Web Services

12

Page 13: Impact 2014 Best practices for_cics_soa_co

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

Page 14: Impact 2014 Best practices for_cics_soa_co

CICS Web Services Considerations

Inbound and outbound

Loosely coupled

Synchronous

HTTP (and MQ)

CICS configuration required

Native & Java Pipelines

14

Page 15: Impact 2014 Best practices for_cics_soa_co

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

Page 16: Impact 2014 Best practices for_cics_soa_co

Web service resource interrelationships

16

Page 17: Impact 2014 Best practices for_cics_soa_co

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

Page 18: Impact 2014 Best practices for_cics_soa_co

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

Page 19: Impact 2014 Best practices for_cics_soa_co

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

Page 20: Impact 2014 Best practices for_cics_soa_co

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.

Page 21: Impact 2014 Best practices for_cics_soa_co

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

Page 22: Impact 2014 Best practices for_cics_soa_co

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

Page 23: Impact 2014 Best practices for_cics_soa_co

CICS Transaction Gateway

23

Page 24: Impact 2014 Best practices for_cics_soa_co

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

Page 25: Impact 2014 Best practices for_cics_soa_co

CICS TG Considerations

Inbound only

Tightly coupled

Synchronous

Private protocols

Little CICS configuration required

Java (SE & EE), C, .Net

25

Page 26: Impact 2014 Best practices for_cics_soa_co

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

Page 27: Impact 2014 Best practices for_cics_soa_co

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

Page 28: Impact 2014 Best practices for_cics_soa_co

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

Page 29: Impact 2014 Best practices for_cics_soa_co

MQ, HTTP, CICS sockets

29

Page 30: Impact 2014 Best practices for_cics_soa_co

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

Page 31: Impact 2014 Best practices for_cics_soa_co

HTTP / Atom / REST

Inbound and outboundMedium couplingSynchronousMedium QoS

31

Page 32: Impact 2014 Best practices for_cics_soa_co

CICS Sockets

Inbound and outboundVery tight couplingSynchronousLimited QoSUse only when remote client/server only supports TCP/IP sockets communication.

32

Page 33: Impact 2014 Best practices for_cics_soa_co

Enhancements in CICS TS 5.2 and CICS TG V9.1 open beta

33

Page 34: Impact 2014 Best practices for_cics_soa_co

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

Page 35: Impact 2014 Best practices for_cics_soa_co

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

Page 36: Impact 2014 Best practices for_cics_soa_co

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

Page 37: Impact 2014 Best practices for_cics_soa_co

37

CICS TG for z/OS V9.1 open beta - JSON Web Services

Technology aligned with z/OS Connect

Page 38: Impact 2014 Best practices for_cics_soa_co

Summary

Preparing for SOA

SOA Connectivity Options

Enhancements in CICS TS 5.2 and CICS TG V9.1 open beta

38

Page 39: Impact 2014 Best practices for_cics_soa_co

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

Page 40: Impact 2014 Best practices for_cics_soa_co

Questions?

Page 41: Impact 2014 Best practices for_cics_soa_co

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

Page 42: Impact 2014 Best practices for_cics_soa_co

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