Desarrollando en Cobol y Natural sobre Plataforma Mainframe

viernes, 27 de febrero de 2015

Programación y Tiempo libre





jueves, 26 de febrero de 2015

Lenguajes de programación más usados en 2014

Una vez concluido 2014, ha llegado el momento de hacer una revisión de cuáles son, a día de hoy, los lenguajes de programación más usados y más populares en internet. Además, el ranking también nos servirá para destacar a aquellos que han tenido una mayor proyección durante el año anterior.

Siempre es interesante saber cuáles son los lenguajes más atractivos en el momento actual y, sobre todo, cuáles son los lenguajes que están teniendo un mayor crecimiento en los últimos años. Al fin y al cabo, dicha información será la que nos permita hacernos una imagen de qué es lo que está marcando la tendencia del mercado.

Conocer estos datos nos puede ayudar a definir más eficazmente hacia dónde tenemos que encaminar nuestra formación en un futuro. Evidentemente, no tendría mucho sentido comenzar a estudiar un lenguaje que acaba de salir del TOP 20 de los más utilizados y que cada vez está más en desuso.

A continuación, mostramos el ranking de los 20 lenguajes más populares del mundo en el año 2014, según el TIOBE Index.



En la tabla se muestra el nombre del lenguaje, el lugar que ocupa al comenzar el año 2015 y la posición que tenía a principios de 2014. Adicionalmente, también se muestra la cuota de mercado que le corresponde actualmente y el cambio experimentado durante los últimos 12 meses.

Como vemos, las primeras posiciones han permanecido inalteradas (de hecho, hace varios años que apenas se producen cambios en ellas). Los lenguajes más populares siguen siendo C, Java, Objective-C, C++, C# y PHP. Sus programadores nunca se verán haciendo cola en la oficina de empleo.

Por otra parte, mención especial merecen los lenguajes que están experimentando mayor crecimiento en los últimos tiempos. Aquí tendríamos que destacar a los siguientes: Perl, PL/SQL, MATLAB, ABAP, COBOL y Assembly. No sería mala opción incluir en nuestra formación algunos cursos relacionados con ellos.



Sorprendente es la reentrada del COBOL en el TOP 20. Cierto es que, a lo largo de 2014, había ido recuperando posiciones poco a poco, pero la verdad es que no esperábamos volver a verlo en la posición 13 del índice a estas alturas de siglo XXI.

En el gráfico anterior podemos observar cuál ha sido la evolución del COBOL durante los últimos 14 años. Desde 2001 no había hecho más que perder popularidad, hasta alcanzar un mínimo durante 2011. A partir de esa fecha, comenzó de nuevo a recuperar algo de aceptación y finalmente la explosión se ha producido este último año. Ya iremos viendo si esta mejoría se mantiene a lo largo del tiempo o si simplemente ha sido algo puntual.

Pues nada, una vez hecho el repaso anterior, ya no nos queda más que despedirnos. Al menos, esperamos haberos dado una alegría al comunicaros que vuestro querido COBOL vuelve a estar en el candelero...

Saludos.

jueves, 19 de febrero de 2015

Tipos de Colas CICS (y 2)

Hace algunas semanas comenzamos a ver en qué consistían las Colas CICS y cuáles eran los tipos que nos podíamos encontrar en un sistema Mainframe. Básicamente, las colas son un soporte de almacenamiento alternativo a los ficheros secuenciales, a los ficheros VSAM y a las tablas DB2.

En la primera parte del post ya estuvimos revisando las Colas TS - Temporary Storage (ver post Tipos de Colas CICS - 1). Sin embargo, nos quedó pendiente examinar el funcionamiento del otro gran grupo de este género de entidades: las Colas TD - Transient Data.

Colas TD: Transient Data Queue

Las Colas TD son un tipo de almacenamiento que, en su origen, se usaba fundamentalmente para implementar las colas de impresión. Actualmente suelen ser utilizadas como soporte de memoria para procesos batch: con cierta periodicidad, los demonios recogen los datos de la cola y realizan un tratamiento con ellos. Por supuesto, también pueden ser empleadas como simples ubicaciones de memoria para nuestros procesos on-line.

Los registros guardados en una Cola TD, tal y como ocurría con los de las Colas TS, son de longitud variable y se denominan items. En este caso son almacenados y recuperados de forma secuencial.

A diferencia de las TS, las Colas TD tienen que ser creadas y definidas antes de poder ser utilizadas en un programa Cobol. Junto a esto, la otra diferencia importante es que, conforme vamos recuperando la información, los items extraídos se van borrando automáticamente de la Cola TD.



Las Colas TD pueden ser de dos tipos:

- Tipo Extra-Partition: Este tipo de colas, que tienen que ser definidas como de entrada o de salida, permiten intercambiar datos con ubicaciones exteriores a nuestra región CICS. Es decir, con una Cola Extra-Partition podríamos enviar datos a un demonio externo o recoger los datos generados por un proceso batch externo.

- Tipo Intra-Partition: Estas Colas TD se almacenan en un espacio de memoria interno de nuestro CICS y admiten el procesamiento ATI (Automatic Transaction Initiation). Dicha técnica permite lanzar de forma automática (sin intervención alguna del usuario) una transacción CICS predefinida cuando en la Cola TD se acumule un número determinado de items.



En resumen, hemos visto que en el sistema CICS disponemos de varios tipos de Colas para afrontar las diversas opciones de procesamiento que nos podemos encontrar en una aplicación. Por un lado, las Colas TS (Main y Auxiliary) nos permitirán almacenar información que va a ser requerida de forma temporal por nuestros programas Cobol. Y por otro lado, las Colas TD (Extra-Partition e Intra-Partition) nos permitirán realizar procesamientos ATI o implementar procesos batch de intercambio de datos con otros CICS.

Las Colas son un tipo adicional de soporte de almacenamiento utilizable en los sistemas CICS, una opción más que se une a las ya conocidas de ficheros secuenciales, ficheros VSAM y tablas DB2. Ya será decisión nuestra, en función de las necesidades, usar uno u otro tipo en los programas Cobol.



Por supuesto, la única forma de aprender a utilizar las Colas es practicando con ellas. Aunque su uso pueda parecer un poco extraño al principio (sobre todo si estamos acostumbrados a operar con ficheros y tablas DB2), la realidad es que su operativa es tan sencilla como pueda serlo la del resto de tipos de almacenamiento.

Esperamos que, con todo lo comentado en el post, queden resueltas todas las dudas que os puedan surgir con relación a las Colas CICS. Si no es así, se aceptan preguntas...

Saludos.

jueves, 12 de febrero de 2015

Tipos de Colas CICS (1)

Las Colas CICS son instrumentos auxiliares que se utilizan para almacenar datos (fundamentalmente de forma temporal) que, con posterioridad, podrán ser empleados por nuestros programas Cobol. Cada una de las unidades de información guardadas en dichas Colas se denomina item (de manera análoga a lo que sería el registro de un fichero).

Las Colas CICS son ampliamente utilizadas para el intercambio de datos temporales entre varios programas Cobol (o incluso dentro de un mismo programa). De esta forma, evitamos sobrecargar los ficheros secuenciales, los ficheros VSAM o las tablas DB2 con información de vida efímera.

En un primer nivel, las Colas se dividen en dos tipos principales: Colas TD (Transient Data Queue) y Colas TS (Temporary Storage Queue). A continuación, pasamos a verlas en detalle.


Colas TS: Temporary Storage Queue

Las Colas TS, tal y como su nombre indica, sirven para almacenar información temporalmente y suelen ser utilizadas para la paginación de los datos mostrados por los programas Cobol. Los registros que se guardan en ellas son de longitud variable y se denominan items.

La ventaja de este tipo de Colas es que no es necesario que estén predefinidas con anterioridad a la ejecución de nuestra aplicación. Es decir, si en un objeto Cobol indicamos que queremos almacenar información en una Cola TS inexistente (con el comando WRITEQ, por ejemplo), la entidad se creará automáticamente en el momento en que se ejecute la instrucción del programa.

Los items de la Cola pueden ser recuperados de forma secuencial o directa y, una vez dados de alta, también podrían ser modificados. Finalmente, comentar que la información permanecerá almacenada en la Cola hasta que los items no sean borrados explícitamente (con el comando DELETEQ, por ejemplo).



Las Colas TS pueden ser de dos tipos:

- Tipo Main: Se almacenan en la memoria principal. Son el tipo más común de Cola TS, ya que su creación es viable en cualquier sistema CICS.

- Tipo Auxiliary: Utilizarán como soporte de almacenamiento una memoria temporal auxiliar. Este tipo de Colas TS se podrá crear siempre y cuando nuestro sistema CICS permita el uso de memoria auxiliar.

El próximo día continuaremos viendo el segundo tipo de Colas CICS, las Transient Data Queue, y haremos hincapié en las características específicas que las distinguen de las Colas TS. Tal y como veremos, hay algunas diferencias importantes en el comportamiento de ambas entidades, cosa que deberá ser tenida en cuenta a la hora de implementar su uso en los programas Cobol.

Pues nada más. Os invitamos a que leaís la segunda parte del post, donde terminaremos de revisar los tipos de Colas CICS existentes. Con ello nos debería quedar una idea bastante clara que nos ayude a entender qué son estas entidades.

Saludos.

jueves, 5 de febrero de 2015

Transacción CEBR: Visualización de Colas CICS (y 2)

Hace algún tiempo comenzamos a ver cuáles eran las posibilidades que nos ofrecía la transacción CEBR para trabajar con las Colas CICS. Esta herramienta nos permitía acceder a una Cola TS (o una Cola TD) y extraer los items almacenados en su interior.

Ya estuvimos viendo cuál era la operativa que teníamos que seguir para examinar el contenido de las Colas TS (ver post Transacción CEBR - Visualización de Colas CICS - 1). Sin embargo, nos quedó pendiente revisar el proceso requerido para sus entidades hermanas, las Colas TD. A continuación nos ponemos con ello.

B) Visualización de una Cola TD

En el caso de una Cola TD (Transient Data), el procedimiento a seguir para visualizar su contenido es algo diferente del de las Colas TS. Una vez nos encontremos en el menú inicial de la herramienta CEBR, en la línea de comandos tendremos que insertar la instrucción GET y, a continuación, el nombre de la Cola que deseamos leer.

ENTER COMMAND ===> GET COTD

En nuestro ejemplo, vamos a consultar el contenido de la Cola TD denominada COTD. Por tanto, tras pulsar INTRO, la transacción CEBR mostrará la siguiente pantalla.



Como podemos ver, en este caso se han recuperado dos items, el primero de ellos con el texto "ESTO ES UNA COLA TD" y el segundo con la información "ESTO TAMBIEN" (estos items han sido cargados en COTD con anterioridad).

El contenido de la Cola TD se borra automáticamente tras extraer los items con GET. Por tanto, si deseamos que la información recuperada vuelva a estar disponible en la Cola, tendremos que hacer uso de la instrucción PUT. Este comando sirve para insertar en la Cola TD los items que se estén visualizando en ese momento en la herramienta CEBR.

En nuestro caso, si en la línea de comandos insertamos PUT y, a continuación, COTD (el nombre de la Cola TD del ejemplo), el sistema procederá a insertar los dos items que estamos viendo ("ESTO ES UNA COLA TD" y "ESTO TAMBIEN") en la cola COTD.



Tal y como vemos, el proceso de visualización de una Cola TD es algo diferente del de las Colas TS pero, en definitiva, sigue siendo igualmente sencillo.

En principio, con los dos ejemplos comentados, ya no deberíamos tener problemas a la hora de acceder al contenido de las Colas CICS, independientemente de que estemos frente a una Cola TS o una Cola TD. Tal y como hemos visto, ambos procedimientos constan de muy pocos pasos, por lo que son sencillos de recordar.

 

Aunque existen otras formas de acceder al contenido de las Colas CICS, la realidad es que la transacción CEBR nos facilita enormemente el proceso de visualización de los datos almacenados en ellas. De ahí que lo más inteligente sea aprender a operar con la herramienta, ya que eso nos ayudará a ahorrar bastante tiempo en nuestra rutina diaria (cosa que siempre debería ser uno de nuestros objetivos).

Eso es todo. Esperamos que haya quedado todo claro en relación con la transacción CEBR. De todas formas, como siempre os recordamos, podéis hacernos llegar cualquier duda que os surja al respecto.

Saludos.

jueves, 29 de enero de 2015

Transacción CEBR: Visualización de Colas CICS (1)

La transacción CEBR es una herramienta que nos puede ser muy útil para trabajar de una forma sencilla con las Colas TS y las Colas TD. Recordemos que las Colas CICS son instrumentos auxiliares que se utilizan para almacenar información (fundamentalmente de forma temporal) que pueda ser utilizada por nuestros programas Cobol.

La transacción CEBR (BROWSE TEMPORARY STORAGE) sirve para visualizar el contenido de las Colas TS (Temporary Storage) y de las Colas TD (Transient Data). Sin más que indicar el nombre de la Cola deseada, la herramienta nos permitirá examinar el contenido de la misma en nuestra pantalla.



Al introducir la transacción CEBR en el terminal CICS, el sistema nos redirigirá al menú principal de la herramienta, que tendrá el aspecto siguiente.



A continuación estudiaremos los procedimientos a seguir para examinar tanto una Cola TS como una Cola TD. A pesar de tratarse de entidades Cola, vamos a ver que la forma de acceso al contenido difiere ligeramente si trabajamos con una TS o con una TD.

A) Visualización de una Cola TS

Para visualizar el contenido de una Cola TS (Temporary Storage) tendremos que situarnos en la línea de comandos e introducir la instrucción Q (QUEUE). Junto a ella, habrá que especificar el nombre de la Cola TS cuyo contenido deseamos examinar.

ENTER COMMAND ===> Q COLA_TS

En nuestro ejemplo, vamos a consultar el contenido de una Cola denominada COLA_TS. Por tanto, tras pulsar INTRO, la transacción CEBR mostrará la siguiente pantalla.



Tal y como se puede observar, en COLA_TS aparecen dos items (los cuales habrán sido cargados en la cola, previamente, mediante algún proceso). En la primera posición aparece el mensaje "ESTO_ES_UNA_COLA_TS" y en el segundo item aparece el texto "ESTO_TAMBIEN".

Opcionalmente, tenemos la posibilidad de borrar el contenido de la Cola TS sin más que introducir la instrucción PURGE en la línea de comandos. Su ejecución procedería a borrar todos los items, dejando la Cola totalmente vacía.

ENTER COMMAND ===> PURGE

En líneas generales, el proceso de visualización de una Cola TS es bastante simple, y no precisa seguir más pasos que los comentados previamente.

Del mismo modo que hoy hemos visto las Colas TS, el próximo día seguiremos viendo cómo se puede trabajar con las Colas TD mediante la herramienta CEBR. Tal y como hemos dicho más arriba, aunque en ambos casos estemos hablando de Colas CICS, el procedimiento de acceso al contenido cambia ligeramente según nos enfrentemos a un tipo de Cola u otro.

Y con esto terminamos. Sencillamente nos queda convocaros para la segunda parte del post, donde procederemos a examinar el resto de posibilidades que nos ofrece CEBR.

Saludos.

jueves, 8 de enero de 2015

Transacción CMSG: Servicio de mensajería CICS

En el post de hoy vamos a hablar de una nueva transacción secundaria, denominada CMSG, cuya funcionalidad nos permitirá el envío de mensajes de un terminal CICS a otro. Aunque hoy en día existen muchas alternativas de comunicación, nunca está de más saber cómo funciona el servicio de mensajería en CICS.

La transacción CMSG (MESSAGE SWITCHING) permite el envío de mensajes a través del CICS, sin más que especificar el código de terminal en el que deseamos que se visualice el texto. Puede ser empleada para, desde un terminal CICS origen, enviar un mensaje tanto a un único terminal como a un grupo de terminales destino.



Operar con esta herramienta es muy sencillo. Simplemente tendremos que introducir la transacción CMSG y, seguidamente, el código del terminal destino y el mensaje de texto que deseamos enviar. A continuación veremos un par de ejemplos, uno en el que se envía información a un terminal único y otro cuyo destino es un grupo de terminales.

A) Envío de mensaje a un terminal

Para enviar un mensaje a un terminal determinado, tendremos que indicar el código del terminal destino en una sentencia como la siguiente.

CMSG M='HOLA DESDE CICS',R=L701,S

En dicha línea se incluye la transacción CMSG, la cláusula R (ROUTE) con el código del terminal requerido (en nuestro caso, queremos enviar el mensaje al terminal L701), la cláusula M (MSG) con el mensaje de texto que vamos a enviar a la ubicación destino (en el ejemplo, "HOLA DESDE CICS") y el comando S (SEND).

Tras pulsar INTRO, en el terminal CICS L701 aparecerá la siguiente pantalla con el mensaje enviado a través de CMSG.



Como se puede apreciar, se muestra el texto "HOLA DESDE CICS", que era el mensaje que queríamos emitir desde nuestro terminal origen.

B) Envío de mensaje a un grupo de terminales

Si queremos enviar un mensaje a un grupo de terminales destino, tendremos que incluir dicho grupo en la cláusula R (ROUTE) de la transacción CMSG.

CMSG M='REINICIO DE CICS EN 15 MINUTOS',R=ALL,S

Por ejemplo, la sentencia anterior ejecutará el envío al grupo ALL (es decir, a todos los terminales del CICS) del mensaje "REINICIO DE CICS EN 15 MINUTOS". Obviamente, en R podemos incluir cualquier grupo de terminales que tengamos predefinido.

Si, tras introducir la transacción anterior, pulsamos INTRO, en todas las ubicaciones del CICS aparecerá la siguiente pantalla.



Aunque en la imagen anterior sólo se muestra el resultado de un terminal específico, en realidad en cualquiera de ellos se mostrará el mensaje "REINICIO  DE CICS EN 15 MINUTOS" (correspondiente al texto lanzado desde el terminal origen).

Como vemos, enviar mensajes desde nuestro terminal (mediante CMSG) es algo sencillo, tanto si queremos enviar un texto a un terminal único como si tenemos que publicar un comunicado destinado a todos los terminales de nuestro CICS. La operativa no tiene mayor complejidad que la indicada.

Evidentemente, CMSG se encuadra dentro de lo que hemos venido denominando transacciones secundarias de CICS. Se trata de una herramienta cuyo uso no es imprescindible en nuestro día a día pero, a pesar de ello, es conveniente saber cómo funciona por si en algún momento tenemos que recurrir a ella.

Eso es todo. Esta transacción no tiene mayor historia y estamos seguros de que, con los ejemplos mostrados, habrá quedado claro cómo es su funcionamiento.

Saludos.

Related Posts Plugin for WordPress, Blogger...