Transcript CICS - Ingenieria de Sistemas e Informatica
UNIVERSIDAD TÉCNICA DE ORURO FACULTAD NACIONAL DE INGENIERÍA CARRERA DE INGENIERÍA INFORMÁTICA
SISTEMA DE CONTROL DE INFORMACIÓN DE CLIENTES CICS
Docente: Nombres: Sistemas Operativos II INF-3420 “A” Ing. Andy Céspedes Rojas - Chocamani Colque Amalia - Terán Mejía Rosario Maribel Oruro - Bolivia
1. INTRODUCCIÓN Y ANTECEDENTES
En la década del 60 después de la creación de los discos magnéticos, aparecieron unos clientes con unas necesidades de procesos nuevos, las líneas aéreas americanas (entre las que se encontraba la TWA). Estas compañías demandaban procesos ON-LINE, pues básicamente tenían 3 tipos de transacciones básicas: - Disponibilidad de plazas.
- Venta de plazas.
- Cancelación de reservas.
Por lo tanto, los requisitos básicos que necesitaba la compañía aérea eran: - Un fichero maestro de plazas, actualizado al instante.
- Una buena velocidad de respuesta.
Y, como el hardware y el software de la época, no permitían esto, aunque había periféricos que sí, la solución que se adoptó consistió en desarrollar un hardware y un software nuevo.
CICS, acrónimo en inglés de Customer
Information Control System (en español, Sistema de control de información de clientes), es un gestor transaccional , o monitor de teleproceso, que se ejecuta principalmente en mainframes IBM con los sistemas operativos OS/390, z/OS o VSE. También existen versiones de CICS para otros entornos, como OS/400, OS/2, etc. La versión para entornos Unix recibe el nombre de TX Series.
IBM define este producto como un sistema de Base de datos/Comunicación de uso general, pues ofrece soporte para sistemas ON-LINE de forma similar a como lo hace el sistema operativo. Pero esto no debe hacernos creer que le puede sustituir, pues se ejecuta bajo el control del sistema operativo MVS (antes DOS/VS) junto con el resto de aplicaciones de la instalación, incluidos los procesos por lotes (Batch).
CICS es un sistema diseñado para procesar tanto transacciones online como batch. En los grandes ordenadores IBM zSeries, un sistema CICS puede dar servicio a miles de transacciones por segundo. Es una pieza clave en los servicios de muchos bancos, administraciones y grandes empresas. Las aplicaciones CICS puede ser escritas en diferentes lenguajes como COBOL, PL/I, C, C++, código ensamblador, REXX y Java. Por motivos históricos, la mayoría de aplicaciones CICS están escritas en COBOL o PL/I.
El lenguaje COBOL (acrónimo de COmmon Business-Oriented Language, Lenguaje Común Orientado a Negocios) fue creado en el año 1959 con el objetivo de crear un lenguaje de programación universal que pudiera ser usado en cualquier ordenador, ya que en los años 1960 existían numerosos modelos de ordenadores incompatibles entre sí, y que estuviera orientado principalmente a los negocios, es decir, a la llamada informática de gestión.
PL/1, acrónimo de Programming Language 1 (Lenguaje de Programación 1), fue propuesto por IBM hacia 1970 para responder simultáneamente a las necesidades de las aplicaciones científicas y comerciales, disponible en las novedosas plataformas de utilidad general IBM 360 y más adelante IBM 370. Este lenguaje tenía muchas de las características que más adelante adoptaría el lenguaje C y C++.
2. PLANTEAMIENTO DEL PROBLEMA
¿Cuáles son los objetivos, arquitectura, características, componentes y seguridad del CICS?
3. OBJETIVOS DEL CICS
3.1. OBJETIVO PRINCIPAL Procesar y gestionar transacciones online y batch.
3.2. OBJETIVOS ESPECÍFICOS Constituirse en un programa de control que atienda simultáneamente el máximo número de transacciones posibles “proceso concurrente de transacciones”.
Brindar un sistema de Base de datos/Comunicación de uso general.
Dar servicio a miles de transacciones por segundo. Proteger la información empresarial tanto para impedir el uso no autorizado del sistema como para comprobar que los usuarios acceden únicamente a los recursos permitidos. Además de proteger los sistemas, las transacciones, los datos y demás recursos que utilizan las aplicaciones.
4. ARQUITECTURA DEL CICS
CICS forma una capa de middleware entre las aplicaciones empresariales y el sistema operativo. Los usuarios finales de la empresa solo ven las interfaces de aplicación y no necesitan tener ningún conocimiento sobre la arquitectura subyacente.
Sistemas de proceso de transacciones
CICS es un sistema de proceso de transacciones líder del sector. CICS es una familia de productos diseñados para el proceso de transacciones en línea y la gestión de transacciones para las aplicaciones en plataformas tanto IBM como no IBM.
CICS se basa en los servicios del sistema operativo. CICS ofrece numerosos servicios de desarrollo de aplicaciones, comunicaciones, recuperación, presentación, gestión de datos, seguridad e intercomunicación.
S
ISTEMAS DE CLIENTE Y PASARELAS DE COMUNICACIONES
Las comunicaciones de un entorno CICS pueden emplear TCP/IP y SNA. CICS puede utilizar PPC TCP/IP o TCP/IP de la familia CICS para comunicarse con los clientes y otros sistemas. Una región CICS puede utilizar SNA directamente con otro sistema, o indirectamente mediante PPC Gateway para obtener una semántica transaccional más sólida.
Clientes CICS
IBM CICS Universal Clients (para AIX, HP-UX, Solaris y Windows) CICS Universal Clients son productos que se instalan aparte y que se comunican con las regiones CICS en las diversas plataformas que admite CICS (el programa de instalación de CICS instala automáticamente una copia de CICS Universal Client). Las comunicaciones se pueden establecer mediante TCP/IP (Transmission Control Protocol/Internet Protocol) o SNA (arquitectura de red de sistemas), disponibles en forma de diversos productos de comunicaciones para las plataformas de estación de trabajo de cliente o (en el caso de TCP/IP) en algunos sistemas operativos de estación de trabajo. Los clientes también pueden comunicarse con otros sistemas de una red SNA; por ejemplo, con CICS de sistema principal IBM. Para ello, los clientes y servidores pueden emplear SNA directamente, o indirectamente mediante PPC (Peer-to-Peer Communications) Gateway. TXSeries for Multiplatforms también incluye PPC Gateway, que proporciona las API para las comunicaciones de igual a igual de unidad lógica (LU) 6.2, así como la emulación de LU 6.2 en TCP/IP.
Comunicaciones TCP/IP
TCP/IP es un protocolo de comunicaciones que forma parte de la estructura subyacente del sistema operativo en las máquinas que ejecutan CICS. Es un protocolo simple que requiere que cada uno de los sistemas proporcione la mayor parte del soporte para la intercomunicación, como por ejemplo los formatos de datos empleados para enviar peticiones entre sistemas y la seguridad necesaria para proteger los recursos del sistema. TXSeries for Multiplatforms admite dos tipos de conexiones TCP/IP: TCP/IP de la familia CICS PPC TCP/IP
G
ESTORES DE RECURSOS Los gestores de recursos son servidores que gestionan los recursos compartidos, como los datos de aplicación de los archivos, los recursos de comunicación y las bases de datos.
Servidor de archivos estructurados (SFS)
SFS es un sistema de archivos orientado a registros que proporciona CICS y se utiliza para la emulación de VSAM.
SFS facilita funciones de proceso de datos y funciones administrativas para el uso fuera del entorno de ejecución de CICS (es decir, de proceso por lotes). Las funciones de proceso de datos proporcionan las operaciones estándar necesarias para acceder a los datos y modificarlos: lectura, inserción, actualización, supresión, bloqueo, desbloqueo, etc. Las funciones administrativas permiten a los programas consultar y modificar los archivos y volúmenes SFS, duplicar y suprimir archivos, etc.
Soporte de bases de datos relacionales
Las transacciones pueden acceder a los sistemas de gestión de bases de datos relacionales (RDBMS) incluyendo llamadas de lenguaje de consulta estructurado (SQL) incorporadas a los programas de aplicación. CICS aporta interfaces para los gestores de bases de datos, así como servicios de supervisión y control.
Con bases de datos que cumplen el estándar X/Open DTP (Distributed Transaction Processing) XA, CICS coordina la actualización transaccional de datos, con plena confirmación en dos fases de las actualizaciones. Los RDBMS destinados al uso con TXSeries for Multiplatforms incluyen lo siguiente: En Windows: DB2 Universal Database, Microsoft SQL Server y Oracle.
En otras plataformas: la familia IBM DB2 y otras bases de datos relacionales como Oracle, Sybase e Informix.
5. CARACTERÍSTICAS DEL CICS
De entre las muchas características que se podrían enunciar, se pueden resaltar en una primera aproximación las siguientes: - De cara al MVS representa un solo espacio de direcciones (Address space).
- Se ejecutan todos los programas a la vez, solapándose las interrupciones generadas por las operaciones de E/S de una tarea con el proceso de otra petición. Pero, es el propio CICS quien asigna ciclos de CPU a otra tarea cuando se solicita una lectura por parte de la transacción que se está ejecutando.
- Así mismo, dispone de su propio despachador de tareas, asignando prioridades a cada una. No utiliza la gestión del despachador del MVS en sus tareas, ya que desde el punto de vista del MVS, el propio CICS es una única tarea.
- Realmente se ejecuta un solo programa, y todos los programas de usuario y del sistema son considerados subprogramas respecto a él.
- Los programas de usuario no están linkeditados con el programa principal, ya que el CICS tiene su propio cargador de programas.
- Desde un programa de aplicación, se tiene acceso a cualquier área de otro programa o de módulos básicos de CICS, lo que da lugar a la posibilidad de corrupción de áreas (violaciones de memoria).
5.1. COMPONENTES
Recursos y componentes de una región CICS
Una región CICS es un conjunto específico de recursos que CICS controla como una unidad. Un recurso CICS es cualquier función o componente de un sistema CICS que es necesario para ejecutar una tarea. Los recursos de una región son los programas, los conjuntos de correlación BMS (soporte de correlación básica), las transacciones, los terminales, los archivos, las colas de datos transitorios, las colas de almacenamiento temporal y los diarios.
B
ASES DE DATOS DE DEFINICIONES DE RECURSOS
Cada recurso necesita una definición de recurso para que CICS pueda utilizarlo. Las definiciones de recursos permanentes definen el estado de una región y sus recursos al arrancarse en frío. Cada una de las máquinas de una región CICS puede iniciarse como una base de datos permanente de definiciones de recursos de CICS. Las definiciones de recursos definen los atributos de regiones CICS que se pueden iniciar, los recursos de la región y otras funciones que utilizan las regiones. Por ejemplo, una definición de región define el nombre y los atributos de una región CICS. Entre otros elementos, define el número de servidores de aplicaciones con los que se iniciará la región CICS. Cada uno de los programas de usuario que puede ejecutar la región CICS se identifica con una definición de programa relacionada con la definición de región. Las definiciones de recursos permanentes se crean antes de iniciarse la región. Cuando la región CICS se arranca en frío, la región carga las definiciones de recursos permanentes que utilizará durante la ejecución. Estas definiciones de recursos se denominan definiciones de recursos de ejecución.
B
IBLIOTECAS
La región CICS se implementa en forma de diversos programas del sistema y ejecuta programas de aplicación de usuario, todos los cuales existen en bibliotecas de la máquina. En Windows, se denominan bibliotecas de enlace dinámico. En las plataformas UNIX, se denominan archivos cargables. Los programas CICS se instalan en el procedimiento de instalación de TXSeries for Multiplatforms.
S
ERVICIOS Y SUBSISTEMAS
Las regiones CICS y los servidores SFS se ejecutan como una categoría especial de programa. En AIX, esta categoría recibe el nombre de subsistema. Los subsistemas se controlan mediante el controlador de recursos del sistema. En otras plataformas UNIX, el concepto de subsistema no existe en el sistema operativo, y CICS emula la función del controlador de recursos del sistema. En Windows, la categoría recibe el nombre de servicio. Los servicios se gestionan mediante el administrador de control de servicios de Windows. Los programas que se ejecutan como servicios o subsistemas se pueden ejecutar simultáneamente.
M
ÁQUINA
W
INDOWS CON UNA REGIÓN EN EJECUCIÓN
CICS
P
ROCESO PRINCIPAL
La función real de una región CICS se controla por medio de un proceso principal. El proceso principal coordina la ejecución paralela de lo siguiente: Gestor de aplicaciones. El gestor de aplicaciones controla la creación, la ejecución y la terminación de los servidores de aplicaciones. Escuchas. Un escucha detecta una petición de transacción de entrada y coloca la petición en una cola de memoria compartida que supervisa el gestor de aplicaciones. Gestor de registro. El gestor de registro graba los datos de punto de comprobación en el registro de región CICS. Gestor de control de intervalos. El gestor de control de intervalos permite iniciar las transacciones del usuario y del sistema a las horas especificadas por el usuario.
M
EMORIA DEL SISTEMA OPERATIVO
Una región CICS en ejecución es un área de la memoria del sistema operativo donde se han cargado (y ejecutado) los programas del sistema CICS, con otra memoria asignada para el uso de la región CICS.
R
EGISTRO DEL SISTEMA
La región CICS registra en el registro del sistema todos los sucesos que se producen durante su ejecución. Por ejemplo, registra la conexión de un cliente CICS con la región CICS y el inicio de sesión de un usuario. El registro del sistema (además del registro de sucesos de Windows) puede proporcionar información adicional sobre un problema con CICS. Por ejemplo, el registro del sistema puede mostrar que había en ejecución una transacción que después se ha terminado anormalmente por algún motivo. Además, cada uno de los servidores de aplicaciones tiene su propio registro de sucesos que utiliza para recuperar su trabajo después de una anomalía.
6. SEGURIDAD DEL CICS
Es necesario proteger un sistema de información empresarial tanto para impedir el uso no autorizado del sistema como para comprobar que los usuarios acceden únicamente a los recursos permitidos.
CICS suministra sus propios servicios de seguridad internos. Estos servicios pueden emplear gestores de seguridad externos desarrollados por el usuario o proporcionados por proveedores para mejorar la seguridad interna de CICS o sustituirla. Además, las estaciones de trabajo de cliente pueden aportar más seguridad mediante recursos de seguridad estándar como los servicios de seguridad web.
Para empezar a utilizar un sistema, un usuario proporciona un identificador de usuario (ID de usuario) y una contraseña para demostrar la identidad del usuario al sistema. Este proceso, que puede ser automático (y ocultarse al usuario), se denomina autenticación.
Tras la autenticación, los usuarios todavía necesitan un permiso para acceder a los recursos del sistema. El proceso de comprobación de los permisos para acceder a un recurso recibe el nombre de autorización.
S
ERVICIOS DE SEGURIDAD DE
CICS
Cada región CICS autentica los usuarios y la comunicación de entrada, y autoriza el acceso a los recursos de ese sistema. El servicio de seguridad que proporciona una región CICS consta de servicios de autenticación y autorización. Puede mejorar los servicios de autorización o sustituirlos mediante un gestor de seguridad externo (ESM) que se invoca desde CICS. Del mismo modo, puede mejorar los servicios de autenticación o sustituirlos mediante un gestor de autenticación externo (EAM) que se invoca desde CICS.
La autenticación de CICS depende de las definiciones de usuario que contienen los elementos siguientes: Base de datos de ejecución de CICS EAM, que permite autenticar el inicio de sesión y la contraseña del usuario desde un origen de autenticación externo, como Windows Active Directory, RACF o LDAP La autorización de CICS depende de las definiciones de usuario y los atributos de otras definiciones de recursos que contienen los elementos siguientes: Base de datos de ejecución de CICS ESM
A
UTENTICACIÓN DE LOS USUARIOS DE MEDIANTE UN
ID
DE USUARIO Y UNA CONTRASEÑA DE
CICS CICS
U
SO DE UN GESTOR DE AUTENTICACIÓN EXTERNO
(EAM)
PARA LA AUTENTICACIÓN DE
CICS
A
UTORIZACIÓN DEL ACCESO A LOS RECURSOS
La autorización garantiza que los usuarios tengan las credenciales (denominadas también permisos) que necesitan para acceder a los recursos. Puede aumentar la seguridad de los servidores restringiendo el acceso de los usuarios a transacciones específicas y otros recursos. CICS proporciona la seguridad de autorización mediante la seguridad de transacciones y recursos. De este modo, se proporciona autorización para los recursos propios de CICS y los recursos a los que se accede mediante CICS. La seguridad de autorización de CICS se basa en el uso de claves predefinidas para las definiciones de usuario, definiciones de terminal y demás definiciones de recursos de CICS en la base de datos de ejecución. Puede utilizar un gestor de seguridad externo para suministrar una seguridad de autorización adicional o diferente.
U
SO DE UN
G
ESTOR DE SEGURIDAD EXTERNO PARA LA SEGURIDAD DE
CICS
Puede utilizar un ESM en lugar de la seguridad interna de CICS, o además de ella, para autenticar los usuarios de CICS y autorizar el acceso a las transacciones y demás recursos CICS. El ESM es un programa suministrado por el usuario que permite definir un mecanismo de seguridad propio del sistema para impedir el acceso no autorizado a los recursos de los programas de aplicación y el inicio no autorizado de las transacciones CICS. (CICS facilita un módulo ESM de ejemplo para mostrar la interfaz que debe seguir si desea desarrollar su propio ESM.) Debe identificar el ESM en la región CICS durante el arranque; puede que también tenga que identificar la región CICS en el ESM.
C
ONSIDERACIONES ACERCA DE LA SEGURIDAD PARA
CICS U
NIVERSAL
C
LIENTS
Cuando un cliente CICS Universal Client se conecta con una región CICS, la región puede pedir al cliente que proporcione un ID de usuario y una contraseña por omisión que se utilizarán para todas las peticiones del cliente. El cliente puede facilitar automáticamente el ID de usuario y la contraseña por omisión (mediante un archivo); de lo contrario, se pedirá al usuario del cliente que especifique los valores adecuados. Posteriormente el servidor utiliza su autenticación de usuarios estándar para determinar la identidad y la autorización del ID de usuario.
S
ERVICIOS DE SEGURIDAD WEB
Se puede proteger la red mediante la autenticación y la autorización. Si la red está conectada a Internet, puede crear una barrera de seguridad, denominada cortafuegos, entre la red e Internet, con objeto de mejorar la seguridad de las comunicaciones a través de Internet. Un cortafuegos forma una barrera entre una red privada interna segura y otra red no segura, como Internet. Se puede dar permiso a los usuarios de Internet para conectarse desde Internet a través del cortafuegos a fin de acceder a los datos de los sistemas de la empresa, que están disponibles en la red interna.
Los siguientes estándares de comunicaciones de Internet proporcionan la seguridad desde un navegador web a CICS Transaction Gateway (mediante el servidor web): Secured Hypertext Transport Protocol (S-HTTP) Secured Sockets Layer (SSL) Estos estándares garantizan que la información está cifrada y llega al destino deseado con total seguridad. Además, CICS Transaction Gateway ofrece: Autenticación, mediante el soporte incorporado para los ID de usuario y las contraseñas que se autentican mediante los servidores de aplicaciones CICS. La pasarela proporciona también una interfaz de seguridad externa (ESI) que permite a las aplicaciones de los clientes verificar los ID de usuario y las contraseñas, así como cambiar las contraseñas caducadas.
Autorización, que se proporciona como una función estándar de todos los servidores CICS y permite a los clientes controlar las transacciones que puede emplear un usuario determinado y los datos a los que puede acceder ese usuario.
C
ONSIDERACIONES ACERCA DE LA SEGURIDAD PARA CLIENTES
T
ELNET
CICS
Todo cliente Telnet que sabe en qué puerto está a la escucha un servidor Telnet CICS puede emplear ese servidor para acceder a CICS. Por lo tanto, para crear un entorno Telnet CICS seguro, se recomienda que lleve a cabo las acciones siguientes: Exija a los clientes Telnet que inicien la sesión en CICS asegurándose de que el servidor Telnet siempre invoca la transacción CESN como primera transacción. (Para ello, debe iniciar el servidor Telnet con una opción especial.) Si CESN falla, el usuario inicia la sesión con el ID de usuario por omisión. Por consiguiente, defina el ID de usuario por omisión con acceso restringido.
Restrinja el acceso de ejecución al programa del servidor Telnet a un grupo de ID de usuario de sistema operativo reducido y controlado. Para ello, puede modificar los permisos del archivo ejecutable del programa.
C
OMPROBACIÓN DE LA SEGURIDAD DE LAS COMUNICACIONES
Un sistema que recibe una comunicación de otro sistema debe realizar las tareas siguientes: Autenticación del sistema remoto que ha enviado la petición Autenticación del usuario que ha iniciado la petición Autorización del acceso a sus recursos La intercomunicación de CICS proporciona extensiones de seguridad de CICS para una región autónoma con objeto de permitir realizar comprobaciones de seguridad de las peticiones entre sistemas. La región CICS que recibe la petición realiza las comprobaciones de seguridad de la intercomunicación de CICS.
7.
IMPLEMENTACIÓN E JEMPLO DE CONFIGURACIÓN DE CICS
El servidor SFS se utiliza para los archivos y las colas de región CICS, y se puede emplear para almacenar datos de usuario.
Las comunicaciones entre la región CICS y el servidor SFS utilizan mecanismos IPC.
El cliente CICS proporciona soporte inmediato de 3270 y acceso de programa a la región CICS.
D
ESARROLLO DE APLICACIONES
CICS
Programación general de aplicaciones de tres capas
Lógica de presentación
La lógica de presentación se utiliza para las comunicaciones entre el usuario final y el sistema de proceso de transacciones. La lógica de presentación de un programa de aplicación utiliza estos servicios para interactuar con los recursos de gestión de presentación del servidor. Normalmente es un cliente el que proporciona los servicios.
Lógica empresarial
La lógica empresarial forma la parte principal de un programa de aplicación y efectúa la manipulación y el cálculo de datos que requieren las transacciones. La lógica empresarial normalmente se divide en varios módulos, cada uno de los cuales proporciona un servicio distinto. Por ejemplo, puede dividir una aplicación en diversos módulos para realizar las tareas siguientes: Comprobar la validez de los datos de entrada Manejar las comunicaciones Realizar el acceso a los datos Acceder a la información del sistema Configurar el entorno de proceso Solicitar los servicios del sistema Este método de división de la lógica empresarial se denomina aislamiento. Las aplicaciones diseñadas según este método tienen las ventajas siguientes: Mejor portabilidad para la distribución de aplicaciones en diferentes servidores y plataformas Mayor productividad de los programadores al poder reutilizar el código en otras aplicaciones Menores costes de mantenimiento al agrupar funciones similares, lo que facilita la localización y modificación del código Interfaces bien definidas que facilitan la adición de módulos nuevos o la sustitución de módulos obsoletos
Servicios de datos
Los servicios de datos, que proporcionan los gestores de recursos, permiten recuperar y actualizar los datos.
P ROGRAMACIÓN DE APLICACIONES CICS
U
SO DE
CICS
CON
DB2
PURE
XML
Se mostrará una introducción al uso de DB2® pureXML® con aplicaciones CICS® redactadas en Common Business Oriented Language (COBOL).
Se verá cómo usar el soporte de servicios web CICS para almacenar y recuperar mensajes SOAP usando CICS y DB2 pureXML. . Los escenarios le ofrecen una descripción básica de la configuración y la implementación necesaria para conectar ambos extremos entre los servicios web CICS y un back-end de DB2 pureXML. El código fuente de muestra está redactado en COBOL, pero resultaría bastante directo convertir el código en los lenguajes de programación PL/I o C.
L
ISTADO
1. C
REACIÓN DE UNA TABLA CON UNA SOLA COLUMNA PARA INGRESAR
XML
CREATE TABLE REDBOOK.PUREXML (SOAP XML) CCSID EBCDIC IN DATABASE REDBOOK; Incluye el SQL completo que se usó para crear STOGROUP, TABLESPACE y TABLE en la base de datos.
El primer escenario le muestra cómo un programa COBOL CICS denominado WEBINST (un controlador de canalización y proveedor de servicios) inserta un mensaje XML que recibió desde un servicio web en una columna de DB2 pureXML. El segundo escenario le muestra cómo un programa COBOL CICS denominado WEBSLCT (que también es un controlador de canalización y proveedor de servicios) recupera el XML desde una columna de DB2 pureXML y lo devuelve como una respuesta a la invocación de un servicio web.
ESCENARIO 1: A
LMACENAMIENTO DE DATOS ENTRANTES POR MEDIO DE SERVICIOS WEB
CICS
Los pasos que forman parte de este escenario le muestran cómo configurar su región CICS para aceptar una solicitud de servicio web entrante y almacenar la carga útil SOAP en DB2. Con el objetivo de simplificar el ejemplo y seguirnos concentrando en la mecánica de la configuración del servicio web, el mensaje de entrada se devuelve como el mensaje de salida del servicio web.
En vez de usar el controlador de canalización provisto por CICS (DFHWS2LS0), que convierte los datos SOAP (el XML) en estructuras de lenguaje binario, este escenario usa un programa controlador de canalización personalizado (denominado WEBINST) para recibir el mensaje SOAP e insertarlo directamente en DB2. Esto mejora el rendimiento al eliminar la necesidad de hacer que CICS analice el XML.
P
ASO
1:—C
REACIÓN DE UN ARCHIVO DE CONFIGURACIÓN DE CANALIZACIÓN
CICS
Copie el archivo de configuración de canalización que se puede observar en el Listado 2 en UNIX® System Services (USS) como /u/user/config/insert_pipeline.xml. Este archivo de configuración le informa a CICS que el programa controlador de canalización personalizado denominado WEBINST se debe usar para controlar las solicitudes de servicios web.
L
ISTADO
2. A
RCHIVO DE CONFIGURACIÓN DE CANALIZACIÓN
CICS
version="1.0" encoding="EBCDIC-CP-US"?>
P
ASO
2:—C
REACIÓN E INSTALACIÓN DE RECURSOS
CICS
Cree e instale los siguientes recursos CICS en su región: PIPELINE(WEBINST) CONFIGFILE(/u/user/config/insert_pipeline.xml) SHELF(/u/user/shelf) URIMAP(WEBINST) USAGE(PIPELINE) PIPELINE(WEBINST) HOST( * ) PATH(/pureXML/insert) PROGRAM(WEBINST) DATALOCATION(ANY) TCPIPSERVICE(PUREXML) PORT(xxxxx) PROTOCOL(HTTP) DB2 necesita los siguientes recursos, que también se pueden compartir con el programa WEBSLCT que se describe en el Escenario 2 de este artículo.
DB2ENTRY(PUREXML) ACCOUNTREC(TXid) AUTHTYPE(Userid) DRollback(Yes) PLAN(PUREXML) DB2TRAN(PUREXML) ENTRY(PUREXML) TRANSID(CPIH) Copie el programa COBOL que figura en el Listado 3 en z/OS y compílelo con el compilador DB2/CICS/COBOL integrado.
L
ISTADO
3. P
ROGRAMA
COBOL
****************************************************************** IDENTIFICATION DIVISION. PROGRAM-ID. WEBINST. ENVIRONMENT DIVISION.
CONFIGURATION SECTION. * DATA DIVISION. * WORKING-STORAGE SECTION.
* 01 WSRESP PIC S9(8) COMP VALUE 0. 01 WSRESP2 PIC S9(8) COMP VALUE 0.
01 WSFLENGTH PIC S9(8) COMP VALUE 1024.
01 XMLDATA PIC X(1024) VALUE SPACES. EXEC SQL INCLUDE SQLCA END-EXEC.LINKAGE
SECTION. PROCEDURE DIVISION. MAINLINE SECTION. * Get the SOAP data EXEC CICS GET CONTAINER('DFHREQUEST') INTO(XMLDATA) FLENGTH(WSFLENGTH) RESP(WSRESP) RESP2(WSRESP2) END-EXEC. EXEC SQL INSERT INTO REDBOOK.PUREXML ( SOAP ) VALUES ( :XMLDATA ) END-EXEC * Respond with the original XML data by deleting DFHREQUEST * container and returning DFHRESPONSE container EXEC CICS DELETE CONTAINER('DFHREQUEST') END-EXEC.
EXEC CICS PUT CONTAINER('DFHRESPONSE') FROM(XMLDATA) RESP(WSRESP) RESP2(WSRESP2) END-EXEC. * Exit program EXEC CICS RETURN END-EXEC.
MAINLINE-EXIT. EXIT.
*----------------------------------------------------------------*
P
ASO
3:—P
RUEBA DEL SERVICIO WEB DESDE
R
ATIONAL
D
EVELOPER FOR
S
YSTEM Z Cree un proyecto en una IDE basada en Eclipse (como, por ejemplo, Rational® Developer for System z® ) e importe el archivo SWITCH.wsdl desde el código de muestra hacia su proyecto.
Haga clic en el botón derecho del mouse sobre el archivo WSDL de muestra y seleccione Web
Services (servicios web)> Test with Web
Services Explorer (Probar con Web Services Explorer).
P
RUEBA CON WEB
S
ERVICES
E
XPLORER
A
GREGADO DE PUNTO FINAL NUEVO
I
NGRESO DE LOS DATOS DE LA PRUEBA PARA GENERAR UN MENSAJE
SOAP
Eclipse genera un mensaje SOAP basándose en los datos que usted ingresó en el formulario y lo envía a CICS. CICS transfiere el SOAP al controlador de canalización personalizado WEBINST que se creó en el Paso 1. WEBINST inserta los datos en la columna XML de la tabla de DB2 denominada REDBOOK.PUREXML. La aplicación WEBINST también devuelve el mensaje SOAP original como una respuesta
M
ENSAJES RESPUESTA
SOAP
DE SOLICITUD Y
P
ASO
4:—D
EMOSTRACIÓN DE QUE LOS DATOS SE GUARDARON EN LA BASE DE DATOS Este último paso demuestra que los datos se insertaron en la tabla de DB2. Desde una herramienta como, por ejemplo, DB2 SPUFI, ejecute la instrucción SQL que figura en el Listado 4.
L
ISTADO
4. I
NSTRUCCIÓN
SQL
PARA MOSTRAR LOS DATOS ALMACENADOS EN LA BASE DE DATOS
SELECT * FROM REDBOOK.PUREXML
El Listado 5 le muestra los datos de DB2 que devolvió la instrucción SQL anterior.
L
ISTADO
5. D
ATOS DEVUELTOS DESDE LA INSTRUCCIÓN
SQL
---------+---------+---------+---------+---------+---------+---------+---------+ SELECT * FROM REDBOOK.PUREXML; 00010000 ---------+---------+---------+---------+---------+ ---------+---------+---------+ ....
---------+---------+---------+---------+---- ----+---------+---------+---------+ COLUMN NUMBER 1 WAS TRUNCATED DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 100 ---------+---------+---------+--- -----+---------+---------+---------+---------+ ---------+---------+---------+--- -----+---------+---------+---------+---------+ DSNE617I COMMIT PERFORMED, SQLCODE IS 0 DSNE616I STATEMENT EXECUTION WAS SUCCESSFUL, SQLCODE IS 0 ---------+---------+---------+--- -----+---------+---------+---------+---------+ DSNE601I SQL STATEMENTS ASSUMED TO BE BETWEEN COLUMNS 1 AND 72 DSNE620I NUMBER OF SQL STATEMENTS PROCESSED IS 1 DSNE621I NUMBER OF INPUT RECORDS READ IS 1 DSNE622I NUMBER OF OUTPUT RECORDS WRITTEN IS 26 ********************************************************** Bottom of Data ****** SCENARIO ONSULTA DE DATOS PURE Y DEVOLUCIÓN DE SERVICIOS WEB Los pasos que forman parte de este escenario le muestran cómo crear un programa COBOL CICS que actúa como un controlador de canalización y proveedor de servicios para recuperar el XML desde una columna de DB2 pureXML y devolverlo como un respuesta a una invocación de un servicio web. ASO REACIÓN DEL ARCHIVO DE CONFIGURACIÓN DE CANALIZACIÓN Copie el archivo de configuración de canalización CICS que figura en el Listado 6 en Unix System Services (USS) como /u/user/config/select_pipeline.xml. Este archivo de configuración le informa a CICS que el programa controlador de canalización personalizado denominado WEBSLCT se debe usar para controlar las solicitudes de servicios web. ISTADO RCHIVO DE CONFIGURACIÓN DE CANALIZACIÓN
version="1.0" encoding="EBCDIC-CP US"?> ASO REACIÓN E INSTALACIÓN DE RECURSOS Cree e instale los siguientes recursos en su región CICS: PIPELINE(WEBSLCT) CONFIGFILE(/u/user/config/select_pipeline.xml) SHELF(/u/user/shelf) URIMAP(WEBSLCT) USAGE(PIPELINE) PIPELINE(WEBSLCT) HOST(*) PATH(/pureXML/select) PROGRAM(WEBSLCT) DATALOCATION(ANY) Para este escenario, usted puede reutilizar los recursos TCPIPSERVICE, DB2ENTRY y DB2TRAN que definió para WEBINST en el Escenario 1. Copie el programa COBOL que figura en el Listado 7 en z/OS y compílelo con el compilador DB2/CICS/COBOL integrado. ISTADO ROGRAMA ****************************************************************** IDENTIFICATION DIVISION. PROGRAM-ID. WEBSLCT. ENVIRONMENT DIVISION. CONFIGURATION SECTION. * DATA DIVISION. * WORKING-STORAGE SECTION. * 01 WSRESP PIC S9(8) COMP VALUE 0. 01 WSRESP2 PIC S9(8) COMP VALUE 0. 01 WSFLENGTH PIC S9(8) COMP VALUE 1024. 01 XMLDATA PIC X(1024) VALUE SPACES. EXEC SQL INCLUDE SQLCA END-EXEC. LINKAGE SECTION. PROCEDURE DIVISION. MAINLINE SECTION. * Get DB2 data EXEC SQL SELECT XMLSERIALIZE(SOAP AS CLOB) INTO :XMLDATA FROM REDBOOK.PUREXML END-EXEC. * Respond with the XML data by deleting DFHREQUEST * container and returning DFHRESPONSE container EXEC CICS DELETE CONTAINER('DFHREQUEST') END-EXEC. EXEC CICS PUT CONTAINER('DFHRESPONSE') FROM(XMLDATA) FLENGTH(WSFLENGTH) RESP(WSRESP) RESP2(WSRESP2) END-EXEC. * Exit program EXEC CICS RETURN END-EXEC. MAINLINE-EXIT. EXIT. *----------------------------------------------------------------* ASO RUEBA DEL SERVICIO WEB DESDE SU NAVEGADOR Utilice su navegador para dirigirse hacia la URL correspondiente al servicio web WEBINST. Por ejemplo, en el caso de muestra que usamos para crear este escenario, la URL sería la siguiente: http://winmvsa1.hursley.ibm.com:12345/pureXM L/select. El mensaje SOAP que inserta el programa WEBINST en el Escenario 1 se recupera y visualiza en el navegador. ENSAJE INSERTADO POR EL PROGRAMA Otros escenarios Existen muchas variaciones posibles de los ejemplos que ilustran los dos escenarios que se describen en este artículo. Entre los ejemplos de esto, podemos incluir los siguientes: Modificación del XML almacenado en DB2, usando la actualización del XML de SQL, en respuesta a una solicitud (como, por ejemplo, un cambio de domicilio). Eliminación de parte del XML, usando SQL XMLTABLE, antes de almacenarlo (como, por ejemplo, por razones de seguridad). Conversión del XML en columnas relacionales, usando SQL XMLTABLE, además del almacenado de datos como XML, o como una alternativa. Estos escenarios pueden soportar una gran variedad de aplicaciones y servicios, como el inicio de sesión de la aplicación o aplicaciones basadas en formularios (como, por ejemplo, XHTML, XFORMS o formularios Lotus). 8.1. VENTAJAS Atiende simultáneamente el máximo número de transacciones posibles “proceso concurrente de transacciones”. Brinda un sistema de Base de datos/Comunicación de uso general. Da servicio a miles de transacciones por segundo. CICS suministra sus propios servicios de seguridad internos. En CICS se ejecutan todos los programas a la vez, solapándose las interrupciones. Los datos de aplicaciones son privados por lo que un programa dañino no puede dañar la memoria de otro programa. El servidor registra todos los intentos de acceso fallidos tiene un registro de sucesos para la recuperación de trabajos después de una anomalía. Un servicio web CICS puede llegar a constituirse en parte de una aplicación distribuida más grande con gran facilidad. 8.2. DESVENTAJAS CICS no comprueba si un ID de usuario ya está en uso. Desde un programa de aplicación, se tiene acceso a cualquier área de otro programa o de módulos básicos de CICS, lo que da lugar a la posibilidad de corrupción de áreas (violaciones de memoria). CICS es un sistema de Base de datos/Comunicación de uso general, pues ofrece soporte para sistemas ON LINE de forma similar a como lo hace el sistema operativo. CICS es un sistema diseñado para procesar tanto transacciones online como batch. Brinda servicio a miles de transacciones por segundo. Protege los sistemas, las transacciones, los datos y demás recursos que utilizan las aplicaciones. Un servicio web CICS que usa DB2 pureXML para su almacenamiento puede transformarse en parte de una aplicación distribuida más grande con gran facilidad como por ejemplo, una aplicación de formularios XML o una aplicación de mensajería. Desarrollar las aplicaciones CICS en lenguajes como COBOL, PL/I, C, C++, código ensamblador, REXX o Java. Ejecutarlo principalmente en mainframes IBM con los sistemas operativos OS/390, z/OS o VSE. Utilizar DB2 pureXML para almacenamiento en un servicio web CICS.E
2: C
XML
CICS
P
1:—C
CICS
L
6. A
CICS
P
2:—C
CICS
L
7. P
COBOL
P
3:—P
M
SOAP
WEBINST
8. VENTAJAS Y DESVENTAJAS
9. CONCLUSIONES
10. RECOMENDACIOES
Muchas Gracias…