Best practices for CICS SOA Connectivity Ezriel Gross Circle Software Matthew Webster IBM © 2014 IBM Corporation.
Download ReportTranscript 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