Services Web CICS
Transcription
Services Web CICS
Services Web CICS Régis DAVID Expert CICS IBM © 2009 IBM Corporation [email protected] Agenda Première partie: Services Web et CICS – Rappels…mais c’est très simple ! – Retour d’expériences 2007 – Où l’on veille au grain – La case de l’oncle MTOM – Services Web et après ? Deuxième partie: CICS et approche SOA – Cycle de vie et gouvernance – CICS prend le bus • CICS et Datapower – CICS et WSRR Troisième partie: – Autour d’un POT ! 2 IBM Systems CICS: Services Web, facile le fournisseur ! Consommateur de Service WSDL Application ‘Cliente’ Fournisseur de Service HTTP ou WebSphere MQ Transport XML Programme existant Application ‘Serveuse’ COMMAREA/CHANNEL CWXN HTTP listener WebSphere MQ trigger monitor LINK CPIH PIPELINE Handler Handler chain chain URIMAP 0. Configuration • TCPIPSERVICE ou WebSphere MQ QLOCAL SOAP body XML CICS TS V3 Data Mapping • PIPELINE WEBSERVICE 1. Choix de l’ Interface • Descriptions code source (Bottom Up) ou • WSDL (Top Down) 2. Génération BATCH ou RDz • DFHLS2WS ou • DFHWS2LS 3. Déploiement • PIPELINE SCAN 4. Exécution Installation Automatique zFS Config Pipeline Bô SOURCE Language PIC X(). structure PIC 9(). 0101001 CSD PIPELINE WSDL TCPIPSERVICE WSBind 3 IBM Systems CICS: Services Web, facile le consommateur ! Application ‘Cliente’ EXEC CICS INVOKE WEBSERVICE PIPELINE Handler chain Service Requester Service Provider HTTP ou WebSphere MQ Transport HTTP Application ‘Serveuse’ WebSphere MQ XML SOAP body URIMAP XML 0. Configuration Language structure 0101001 Data Mapping WEBSERVICE • PIPELINE CICS TS V3 Installation automatique zFS Pipeline config CSD 1. Interface • WSDL 2. Génération 3. Déploiement • DFHWS2LS • PIPELINE SCAN PIPELINE WSDL 4. Exécution WSBind 4 IBM Systems Profitons de l’expérience 1/2 Exposition de COMMAREA CICS sous forme de service – Joie et l’allégresse ☺ Appel de service à partir de CICS – Avec plus de peine (c’est la faute au partenaire ☺ ) • Schéma XML, syndrome du click <compétence>, mise en œuvre non standard Interopérabilité des messages échangés – Schéma XML interopérable = restriction sur les types = pas de surprise • minOccurs/maxOccurs, minInclusive/maxInclusive • maxLength, whitespace preserve/collapse – Messages de longueur variable – Types abstraits Interopérabilité SOAP – SOAPAction (ex. .NET, IIS) – document/literal, document/literal wrapped et RPC/literal • RPC/Encoded n’est pas conforme à WS-I (n’est ce pas outils Java ?) SOAP Fault – A statuer, devraient toujours être pris en compte, ne serait ce que pour le ‘logger’ 5 IBM Systems Profitons de l’expérience 2/2 Cas des types non supportés par les assistants CICS – Merci Rational Developer for system z (RDz) ☺ Sécurité – HTTP Basic Authentication et modification de mot de passe • Est-ce souhaitable – WS-Security • Ca marche Validation XML – Nécessite la mise en œuvre de Java dans CICS PIPELINE handlers (quelle souplesse !) – Gestion d’entêtes SOAP privées possible – SNIFFER du redbook SG24-7206 (www.redbooks.ibm.com) COMMAREA: sujets de réflexions, pistes d’améliorations – – – – – 6 Le ‘filler’ COBOL a-t-il un sens ? OCCURS COBOL, balises vides Appel par CALL Pensée service web, vraiment ? Commune aux messages entrée et sortie ? Granularité du service web ? Bonne à tout faire ? Couches sédimentaires ? Pattern ‘wrapper’ IBM Systems Le pattern wrapper: ‘meet in the middle’ Permet d’adapter ou de moderniser ou d’optimiser une interface existante – Code généré par RDz ! Composant CICS versus programme ? Enchaînements (ex. 3270) ? Belle interface structurée Interface existante optimisée pas structurée moderne pas optimisée pas moderne Interface existante pas structurée Interface existante pas optimisée pas structurée pas moderne pas optimisée pas moderne Transport Transport XML XML 7 ‘wrapper’ GET CONTAINER MOVE MOVE LINK PUT CONTAINER CICS TS V3 CICS TS V3 COBOL, PL/I C/C++ LINK ou CALL COMMAREA COMMAREA Q Q R R CHANNEL Q R PIPELINE PIPELINE Programme existant Programme existant COBOL, PL/I C/C++ COBOL, PL/I (assembleur) C/C++ IBM Systems Service Flow, plus qu’un simple wrapper CICS TS 3.x CICS Server run time Service Flow wizards Service Flow Runtime Flow 3270 Déploiement Automatisé Link3270 bridge FEPI zFS Config COMMAREA XML Applications CSD PIPELINE WSDL TCPIPSERVICE WSBind PROCESSTYPE Server run time HATS Service Interface Flow 3270 8 Service Interface Transport HATS (hors COMMAREA) Rational Developer for System z Aussi ECI, EXCI, LINK, MQ 5250 IBM Systems Support des standards par CICS XML – Extensible Markup Language 1.0 – XML Encryption Syntax and Processing – XML-Signature Syntax and Processing – XML-binary Optimized Packaging (XOP) en V3.2 Profiles – WS-I Simple SOAP Binding Profile 1.0 (V3.2) – WS-I Basic Profile 1.1 (V3.2) Parlez vous MTOM/XOP ? SOAP – SOAP 1.1 et 1.2 – SOAP 1.1 Binding for MTOM 1.0 (V3.2) – SOAP Message Transmission Optimization Mechanism (MTOM) (V3.2) – Web Services Security: SOAP Message Security Web services – Web Services Atomic Transaction Version 1.0 – Web Services Coordination Version 1.0 – Web Services Trust (V3.2) SupportPac CICS CA1N – Support de WebSphere Service Registry and Repository (WSRR) – WSDL 1.1 – WSDL 1.1 Binding Extension for SOAP 1.2 – WSDL Version 2.0 (V3.2) In-Only, In-Out, In-Optional-Out, Robust in-Only – WS-Addressing (V4.1) 9 IBM Systems Support de MTOM/XOP 1/2 SOAP Envelope Le problème posé par les flux binaires – Encodage base64Binary requis dans le Body SOAP • Gloutonnement • Temps de réponse • CPU SOAP Header HeaderBlock Block Header SOAP Body Body sub-element Objet binaire gloutonné Objet binaire en base64Binary image133% Ex: imageEx: zoomée Body sub-element 10 IBM Systems Support de MTOM/XOP 2/2 La soluce – Gros objets binaires séparés du message SOAP sous forme d’attachement – Réduction de la taille du message • Pas besoin de base64Binary – Réductions de la latence réseau CICS TS 3.2 SOAP Envelope SOAP Header Header Block PIPELINE Header Block SOAP Body Body sub-element Body sub-element Transport XML • Message plus petit – Optimisation du parsing Body sub-element • Hors périmètre du parser 11 IBM Systems Support de WS-Security ou CICS Support CICS V3 – – – – 12 Kerberos, SAML, etc ? créances fiables ? Appel entrant • Signature RSA-SHA1 et DSA-SHA1 • Tout un tas d’algorithmes d’encryption Appel sortant • Signature RSA-SHA1 • Le même tas d’algorithmes que le précédent, mais pour le Body SOAP entier Tout un tas de mécanismes permettant de dériver un USERID pour les appels entrants Configuration par le fichier associé au PIPELINE IBM Systems Support de WS-Trust Ex: TIVOLI Federated Identity Manager (TFIM) STS (Issue/Validate Security Tokens) SAML assertion RACF userid token SOAP Envelope SOAP Header Header Block Header Block SOAP Body Body sub-element Body sub-element Body sub-element SOAP Envelope SOAP Header Pipeline CICS V3.2 (Trust Handler) Header Block Header Block SOAP Body Body sub-element Body sub-element Body sub-element WS-Trust – Validation/substitution de créances par un tiers de confiance (Security Token Service ou STS) CICS V3.2 – Evite les appels RACF en cas d’activation de XUSER (classe SURROGAT) 13 IBM Systems Sécurisation des services web CICS: résumé La mise en œuvre CICS permet d’adresser 3 demandes classiques: – Identification (qui t’es toi ?) • Couche transport • URIMAP • WS-Security • WS-Trust • SOAP Header handler privé – Confidentialité • Couche transport • WS-Security (encryption) – Intégrité (mais non, non, non, tu n’as pas changé) • Couche transport ??? • WS-Security (signature digitale) Et qui paye les consommations ? Couche transport – TCPIPSERVICE pour le fournisseur • CLIENTAUTH et CIPHER possibles – Indication de https dans l’URL pour le consommateur • En V3.2 un URIMAP peut cibler un certificat particulier, CIPHER dédié est alors possible – MQSeries – Peut être suffisant HTTP Basic Authentication – Pas vraiment dans le périmètre des services web, à éviter 14 IBM Systems Performance: suivez la tendance, pas les chiffres 1000 WS-Security ID Binary element size in K Assertion & Authorization CTS31 CTS32 CTS32 MTOM/XOP 0 SS L 750 h 500 h+ 250 +A ut 0 0.5 CTS31 CTS32 +A ut 1 WS-Security ID Assertion +S SL 1.5 2.09 1.69 14 12 10 CPU 8 millisecs 6 per msg 4 2 0 A P 2 No WS-Security impact on CPU cost SO cp ms per service 2.5 CPU per msg MTOM/XOP 225 Security 200 175 150 125 100 1.57 75 50 25 0 Parsing de la réponse ! Moins de balises CICS as service requester 7.00 30.00 6.00 25.00 5.00 4.00 RequestComplex 3.00 2.00 1.00 cp ms per service cp ms per service CICS as service provider 20.00 RequestComplex 15.00 RequestDataBlock 10.00 5.00 0.00 10 50 100 200 Number of elements 0.00 10 50 100 200 Number of elements Element RequestComplex =10 sous éléments 15 IBM Systems Mi-temps ! Qu’avons-nous vu ? L’utilisation detrès technologies ne fait pas nécessairement – CICS s’intègre facilement, etstandards de manière très complète, dans une unearchitecture architecture élevons le sujet baséecohérente, sur l’utilisation des services webà un niveau plus global ! – Une approche ‘simple’ de type ‘presse bouton’ est possible – Une approche ‘experte’ de type ‘j’optimise/maîtrise tout’ est possible Cher CICS – Une approche ‘adulte’ mâtinée de culture z est possible Sur tes bases solides Pragmatique Il estautemps decharges construire Mise en œuvre adaptée cahier des Simplicité ou optimisation Un en excitant rapport avec avenir les besoins • • • – 16 et en connaissance de causequ’on SOA débride Tu tiendras tes promesses IBM Systems Quelle architecture pour Le contrôle « QOS » Réduire les coûts Sécuriser « Firewall XML » « Anti intrusion XML » CICS TS V3 Service Provider CICS Application COMMAREA Web Services Runtime Handler chain Administrer Vos WS SOAP Body Data Mapping Language structure 0101001 Accélér les traitements XML Conf ig « Logger » 17 IBM Systems Exemple : Type de protection des malveillances requise pour le Mainframe XML Entity Expansion and Recursion Attacks Data Tampering Message Snooping XML Document Size Attacks XPath Injection XML Document Width Attacks SQL injection XML Document Depth Attacks WSDL Enumeration XML Wellformedness-based Parser Attacks Routing Detour Jumbo Payloads Schema Poisoning Recursive Elements Malicious Morphing MegaTags – aka Jumbo Tag Names Malicious Include – also called XML External Entity (XXE) Attack Public Key DoS Memory Space Breach XML Flood XML Encapsulation Resource Hijack XML Virus Dictionary Attack Falsified Message Message Tampering Replay Attack …others 18 Analyse automatique de tous les appels SOAP aux Web Services pour détecter les malveillances introduites dans les messages et protéger ainsi le Mainframe IBM Systems Exemple : Authentifier et Contrôler les accès AAA Chiffrement des communications Architecture d’authentification et d’autorisation modulaire. Politiques de controle d’accès internes ou externes – – Authentification / Identification multiples – – – – – URL ou SOAP method Support des Standards – – – – – – 19 WS-Security user/pass token SSL client certificate SAML assertion HTTP basic-auth Proprietary SSO cookie/token Resource examples: – Internes: certs, XML file Externes: external access control servers LDAP (for CRL, authentication, authorization) RADIUS (authentication) XKMS (for CRL, authentication) SAML (consume, authentication, authorization, produce) WS-Security, WS-Trust, WS-* Outbound SOAP ou HTTP call IBM Systems Une solution Boîtier SOA - Entre le Réseau & le Logiciel d’Application CICS TS V3 Un boîtier SOA doit apporter Une facilité de gestion Un haut niveau de sécurité Plus extensibilité Une rapidité de déploiement Service Provider CICS Application COMMAREA Web Services Runtime Handler chain SOA P Body Data Mapping Language structure 0101001 Co nfig 20 IBM Systems Comment ? Boitier SOA : Opérations XML Centralisées Route, transforme et sécurise des applications sans changement de code Architecture simple et donc peut onéreuse Permet de nouveaux échanges avec des performances inégalables Sans le Boitier SOA Avec le Boitier SOA Traitement sé sécurisé curisé Routage Transformation Nouveaux standards XML Contrôle d’ d’accè accès Changement de sché schéma Mise à jour de chaque serveur d’ d’applications 21 Sécurise, route, transforme toutes les applications instantané instantanément Pas de changement des applications IBM Systems Définition des boîtiers SOA, vue par DataPower Les boîtiers SOA DataPower sont – Des boîtiers de sécurité “durcis” – Ayant subi des tests d’intrusion – Des systèmes embarqués spécialisés – Optimisés pour le traitement SOA – Grandement configurables – Pour une architecture SOA simplifiée – Capables de traiter tout type de données (XML et autres) – Basés sur les standards – Pour fonctionner avec l’infrastructure existante Les boîtiers SOA DataPower ne sont pas – Des serveurs à utilisation générique avec un logiciel pré-installé – Des équipements avec un système d’exploitation standard – Des boîtiers réseau travaillant sur les “paquets” (sous la couche OSI 7) – Basés sur un socle Java 22 IBM Systems Role du Boîtier Datapower Service Exported Requester WSDL SP Target SRService WSDL CICS TS V3 Service Provider Service Provider CICS Application COMMAREA Web Services Runtime Centralisation des accès Requester (.Net ,External Service) aux Services Web CICS et vice-versa. Handler c h a i n • interception • routage • virtualisation SO A P Bo d y Data Fonction Authentication, identity mapping Audit C o nf ig M a p p i n g Language structur e 0101001 Transformation des messages XML complexes 23 IBM Systems Exemple de Scénario : WS-Security complexe (DP à CICS) Configure DP XSLT for identity assertion WS-Security <UsernameToken> containing RACF id flows in SOAP header across trusted connection CICS TS V3 Requests Request from .Net or from 3rd party SP Datapower SR Processing Datapower SOAP/ HTTPS (with clientauth) Service Provider CICS Application COMMAREA Web Services Runtime Handler chain SOAP Body Authenticate or identity service requester Data Mapping LDAP Language structure 0101001 Con fig Map external identity to internal identity 24 RACF Assign CICS user ID in Pipeline IBM Systems Intégration du boîtier DataPower avec CICS Web Service Annuaire LDAP Authentification Contrôle d’accès Accélération XML CICS TS V3 Contrôle QOS Service Provider CICS Application COMMAREA WebSphere Datapower SOAP sur HTTP(S) WebSphere Datapower Web Services Runtime SOAP sur HTTP(S) Handler chain SOAP sur HTTP(S) SOAP Body Firewall XML Anti intrusion XML Administration WEB ou ITCAM SE Logs Data Mapping Language structure 0101001 Config 25 IBM Systems Example XML Transformation CPU savings from using Datapower CICS as service requester 30.00 cp ms per service 25.00 20.00 RequestComplex 15.00 RequestDataBlock 10.00 5.00 0.00 10 50 100 200 Number of elements 26 CPU savings can be made by transforming messages in Datapower However this saving has to be offset against the additional effort of developing XSLT transformations IBM Systems Cycle de vie et gouvernance de vos services web CICS 27 IBM Systems Questions posées à propos de la gouvernance SOA Comment éliminer les redondances et contrôler mes services SOA ? Comment assurer la gouvernance de mes services comme partie intégrante de mon architecture SOA? Comment assurer la réutilisation des services ? Comment gérer le cycle de vie de mes services? Comment assurer la prise en compte de mes règles de gestion à travers les services externes et internes? Comment assurer que mes services interagissent avec efficacité et dynamisme? 28 Comment assurer un bon contexte d’exécution pour mon ESB? Comment optimiser les interactions entre les services et les aligner avec les process business? IBM Systems C’est quoi un registry … un repository? Registry? Repository? Contient des informations sur les services … Stocke des informations sur la nature et l’usage des services • Service interfaces • Descriptions • Parametres Nécessité d’une solution intégrée Registry / Repository pour tirer le maximum dans la gouvernance et la gestion des “assets” SOA Business process vitality 29 New value through reuse of assets Improved connectivity Closer alignment of IT to business Business Flexibility IBM Systems Solution IBM : WebSphere Service Registry & Repository Maximize Business Value of your SOA Réutilisation Eliminate Redundancy Business and IT Alignment Change Management 30 Connectivité (Externally) Expose Services IT Flexibility Version Management Policy Management Governance Service Reconciliation Service Lifecycle Management IBM Systems Composants de WebSphere Service Registry & Repository Service Description Entities Service Description Metadata Physical Documents Properties WSDL XSD SCDL WS-Policy XML – User-defined Documents Binary Documents Logical derivations Interface Operation Message Type Policy ….. Service Binding Endpoint Policy Attachment name namespace version description modifiedDate Metadata appliquées aux entities name namespace User-defined metrics Relationships imports includes predecessor User-defined derivedFrom operations messages User-defined 31 User-defined States Created Approved Published Operational User-defined Environments Development Test Approval Production User-defined Concepts Application Process Capability Concepts User-defined by classification Business Application Business Process Governed Collection External reference Classifications User-defined owner externalURL User-defined dependantServices serviceInterface governedEntities policies ….. Standard Ontologies NAICS UNSPSC ISO3166 IBM Systems WebSphere Service Registry and Repository Architecture Extensions & Integrations User Interface Web Programming Interfaces Java Eclipse Plugin UDDI Integration SOAP Exploitation de zAAP capabilities, z/OS security facilities DB2 32 Governance Admin Transition Validate Notify Impact Analysis Audit JMX Import / Export Configure Registry & Repository Create Retrieve Update Delete Query Lifecycle Access Control Validation Validators Classifications Notification IBM UDDI Registry UDDI APIs WebSphere Application Server IBM Systems Cas d’utilisation et d’interaction avec WSRR Exemple avec Rational Developer for System z Génération du WSDL à partir d’un language de haut niveau et sa publication dans WSRR Mise à jour / Enrichissement du service web CICS dans WSRR avec les meta-data pour faciliter les recherches (Ex: critères de selection et runtime) Accès au WSDL dans WSRR et génération d’un code structuré (high level) d’invocation du service web CICS 33 IBM Systems Integration de WSRR et CICS Transaction Server V3 CICS Supportpac (CA1N) 1.Batch utility … Publish to WSRR during CICS service creation 2.Batch utility … Get from WSRR to enable service creation 3.Management transaction A CICS transaction to publish a WSDL document to WSRR for each CICS program that is a Web service providers Browse CICS service ‘directory’ Update WSRR as required To get at this address : http://www-1.ibm.com/support/docview.wss?rs=1083&uid=swg24013629 34 IBM Systems Utilitaire Batch z/OS de publication de WSDL dans WSRR 35 IBM Systems Utilitaire Batch z/OS de publication de WSDL dans WSRR WSDL à publier 36 Paramètres d’enrichissement Location du WSRR IBM Systems Utilitaire Batch z/OS de publication de WSDL dans WSRR Résultat dans WSRR 37 IBM Systems Utilitaire Transaction CICS de publication de WSDL dans WSRR CICS TS V3 DESC=A description for all the webservices being published VERSION=1 HOSTPORT=https://wsrr.my-example.server:9443 USERNAME=wsrrusername PASSWORD=wsrrpassword ENCODING=UTF-8 Host=IBM CICS Transaction Server 38 IBM Systems Utilitaire Batch z/OS d’accès aux WSDLs stockés dans WSRR 39 IBM Systems RDz comme environnement d’interaction avec WSRR RDz 40 IBM Systems RDz comme environnement d’interaction avec WSRR 41 IBM Systems + d’infos ? SG24-7386-00 SupportPac : CA1N http://www-1.ibm.com/support/docview.wss?rs=1083&uid=swg24013629 42 IBM Systems Récapitulatif d’une architecture d’intégration WebSphere Service Registry and Repository ll Resolve Services and Enforce Policy Annuaire LDAP Authentification Contrôle d’accès Accélération XML CICS TS V3 Contrôle QOS Service Provider CICS Application COMMAREA WebSphere Datapower Web Services Runtime SOAP sur HTTP(S) SOAP sur HTTP(S) WebSphere Datapower SOAP sur HTTP(S) Handler chain Firewall XML Anti intrusion XML Administration WEB ou ITCAM SE SOAP Body Logs Data Mapping Language structure 0101001 Config 43 IBM Systems Récapitulatif d’une architecture d’intégration CICS TS V3 Serveur d’exécution de vos Services Web Datapower pour : Le routage, La sécurité complexe, AAA, La supervision centralisée Transformation XML Web Service Repository & Registry Publication Enrichissement localisation Gouvernance Les « assets » Web Services CICS et SOA 44 IBM Systems Un « Proof of Technology- PoT» pour aller plus loin L'objectif de ce séminaire est d'explorer l’intégration de CICS dans une architecture SOA, à savoir : - la transformation d’une interface CICS/COBOL en fournisseur de service web - l’accès à un service web à partir d’un programme CICS - la sécurisation des échanges - l’administration des services CICS - des considérations de performance - l’utilisation d’un référentiel de services On étendra le périmètre du séminaire aux sujets suivants : les apports de la version V4 de CICS, la démarche de qualité des applications aide à la migration des versions de CICS 45 Powered by zTEC Type Titre Présentation SOA sur System z Rappels sur le support des services web par CICS Exercice Transformation d’une transaction CICS en fournisseur de service web « provider » à partir de RDz Exercice Développement d’une transaction CICS comme consommateur de service web « Requester » à partir de RDz Présentation -Cycle de vie et gouvernance de vos services web CICS -Performance et sécurité : • Intégration avec un ESB de type DataPower Exercice Intégration des Web Services CICS avec un ESB de type DataPower Présentation - Les apports de la version V4 de CICS - Démarche et outils d’aide à la migration Exercice Le nouveau visage de CICS : • Utiliser CICS Explorer avec les plug-ins (CICS PA, CM & IA) Discussion Discussion de groupe Synthèse IBM Systems Thank You Merci Thai Traditional Chinese Gracias Russian Spanish English French Obrigado Brazilian Portuguese Arabic Danke Grazie Italian German Simplified Chinese Japanese 46 46 IBM Systems