Archivo de la categoría: MainFrame

Cobol desde 1960.

El lenguaje COBOL (COmmon Business –Oriented Language, Lenguaje Común Orientado a Negocios) fue creado en el año 1960 con el objetivo de alcanzar un lenguaje de programación universal, orientado principalmente a negocios.

El lenguaje nacido para grandes máquinas, de programación simple, semejante al lenguaje ensamblador; pero extremadamente potente, partiendo de la sentencia versátil de declaración PICTURE para la definición de campos estructurados, a su fácil mantenimiento y documentación, ha llevado a este lenguaje hasta hoy día, a estar presente de una manera u otra en más del 75% del sistema empresarial, fundamentalmente, en la banca, seguridad social, aerolíneas, hospitales, en fin, cualquier actividad que requiera procesar ingentes volúmenes de información (casi todos los sistemas que requieren gran capacidad de procesamiento por lotes (Batch) con Mainframes utilizan COBOL), alcanzando los más de 300.000 millones de líneas de código en todo mundo, escribiéndose 5.000 millones de líneas nuevas de COBOL cada año. Con todo eso, hoy por hoy, la programación en COBOL es uno de los negocios más rentables del mundo de la informática.

Con estos antecedentes, es fácilmente comprensible que aún se siga usando, y no sea reemplazado por otro lenguaje más modernos. Si una aplicación funciona, no es necesaria cambiarla, y menos por el coste económico que supondría. Así se mantiene como uno de los lenguajes de programación más extendidos y vivos en estos momentos, que a visto pasar el devenir de otros muchos lenguajes.

Partiendo de esta foto, es casi incompresible, que en la mayoría de universidades de España, no se estudie este lenguaje, dado por muerto y obsoleto, cuando es gracias a el que se puede extraer dinero de los cajeros o comprar Online un billete de avión.

El programa básico, ‘HOLA MUNDO’, se escribe como:

IDENTIFICATION DIVISION.
PROGRAM-ID. DeRedes.
*
ENVIRONMENT DIVISION.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
*
PROCEDURE DIVISION.
INICIO.
DISPLAY ‘Hola mundo’.
STOP RUN.

La previsión es que Cobol siga  evolucionando continuamente; principalmente por la cantidad de aplicaciones  quesoporta y que superan en número a los demás lenguajes gracias a tanta difusión en el pasado. En palabras del propio Bill Gates: «No sé qué lenguajes habrá en el futuro, pero seguro que Cobol estará todavía allí».

z/OS – Mainframe

Los Mainframes son macrocomputadores de características únicas: potentes, rápidos, fiables (rara vez necesitan ser reiniciados), capaces de procesar cientos de millones de instrucciones por segundo, procesan ingentes cantidades de datos, mantenimiento en caliente y están presentes en nuestra vida cotidiana, en banca (cualquier movimiento bancarios, uso de cajeros), en aerolíneas, sistemas de administración gubernamentales ….

Mainframe

Sobre estas máquinas pueden correr sistemas operativos, Unix y Linux, destacando los propietarios de IBM  z / OS, MVS, OS/390, VM y VSE.

Centrándose en IBM, MVS (Multiple Virtual Storage), es el más usado y complejo de los sistemas operativos, que sale por primera vez a la luz en los años 70. Actualmente es conocido como OS/390, que es básicamente el sistema MVS con el añadido de los servicios UNIX. El sistema es capaz de soportar diversos lenguajes de programación; pero la mayoría de aplicaciones están desarrollada en Cobol.

Terminologías:

Sistema Transaccionales CICS (Customer Information Control System) – Administrador de transacciones Online, capaz de soportar miles de transacciones por segundo, convirtiéndola así en un pilar de soluciones informáticas. Una transacción tiene la característica de ser atómica y su funcionalidad es muy variada desde controlar la extracción dinero de un cajero hasta la emisión de un billete de una aerolínea.

TSO (Time Sharing Option) – Permite crear sesiones iterativas con el zOS. Proporciona un usuario de inicio con características individuales y una interfaz prompt básica. Cuando se inicia la sesión TSO, el sistema muestra la pantalla de inicio de sesión de usuario TSO 3270.

ISPF (Interactive System Productivity Facility) – Una vez iniciada la sesión TSO, habitualmente se accede a un completo panel con navegación por teclado llamado ISPF. Incluye conjunto de herramientas, para edición de texto, localización de ficheros y resto de funciones esperadas por un usuario Online.

ISPF
ISPF - z/OS

JCL’S – Job Control Language

El lenguaje JCL, se utiliza para indicar y definicir los trabajos a realizar por el OS. Así se compone de un conjunto de sentencias, donde especifican programas a ejecutar, recursos DLI, DB2, ficheros que componen al JOB.

Sentecias de control de trabajo básicas:

JOB – Identificación del conjunto de funcionalidad, programa que constituye al JCL.
EXEC –   Paso de trabajo a ejecutar.
DD (Data Definition) – Identificación de los ficheros para un determinado paso.

Ejemplos Básicos:

REPRO, Llamada a la utilidad IDCAMS para copiar fichero con paso previo de borrado del fichero de salida.

//DELETE EXEC PGM=IDCAMS                        
//SYSPRINT DD   SYSOUT=*                                               
//SYSIN    DD   *                                                      
       DELETE   (EJEMPLO.REPRO.A2 ) NVSAM PURGE           
                SET MAXCC=0                                            
/*     
//REPRO1   EXEC PGM=IDCAMS                                           
//SYSPRINT   DD SYSOUT=*                                             
//DD1     DD  DISP=SHR,DSN=EJEMPLO.REPRO.A1          
//DD2     DD  DSN=EJEMPLO.REPRO.A2,
//         DISP=(,CATLG,DELETE),                               
//         DCB=(RECFM=FB),                                     
//         DATACLAS=D100CYLS,                                  
//         STORCLAS=AAAAA,                                  
//         MGMTCLAS=BBBBBB 
//SYSIN      DD *                                                    
    REPRO INFILE (DD1) OUTFILE (DD2)                                 
//*

Paso Ejecución programa con accesos DB2.

//PROGRAMA  EXEC PGM=IKJEFT1A                                                                                 
//SYSOUT   DD SYSOUT=*                                                                 
//ENTRADA  DD DSN=EJEMPLO.PRUEBA.A2,DISP=SHR                              
//SALIDA      DD DSN=EJEMPLO.PRUEBA.A3,              
//         DISP=(,CATLG,DELETE),                                       
//         DCB=(RECFM=FB,LRECL=50,DSORG=PS),                           
//         DATACLAS=D001TRKS,                                          
//         STORCLAS=XXXXXX,                                          
//         MGMTCLAS=CCCCCCC                                          
//SYSTSIN  DD *                                                        
    DSN SYSTEM(SSID de la base de datos)                                                   
    RUN PROGRAM(nombre_programa)  PLAN(plan del programa)                               
/*