El artículo de hoy trata de explicar como funciona el sistema de mantenimiento de software en MVS o z/OS, o dicho de otro modo, como mantener el software e instalar parches que arreglan cagadas de software.
A pesar de que el sistema operativo MVS tenga mas de 40 años y su desarrollo, robustez e implantación es de sobra probado, cada día salen arreglos de software o fixes que solventan alguna carencia, error u optimización de programas del sistema. Y los que no salen, siempre se recurre a "It is NOT a bug: It's a Feature", je, je.
Y sí, MVS es lo que es y como todo, requiere la instalación de parches y más parches, porque siempre hay un humano por detrás que mete la gamba programándolo. Afortunadamente, son gambas controladas porque de lo contrario, seria de risa, pero una de las razones por las que MVS es tan robusto es por el magnifico soporte y seguimiento software que tiene (lógico, cuesta la hostia de dinero tener una licencia de MVS, como para dejar que pete, no te fastidia).
El 90% de las veces, salen PTFs (a partir de ahora diré PTF, con "arreglo" no me siento identificado, je, je) de módulos de software que nunca en la vida has utilizado pero que ahí están y no deben ser ignorados. La política de algunas instalaciones es no instalar PTFs que no incumben en programas producto que no se utilicen, en un afán muy conservador que sigue la máxima de "¿Funciona? Pues no lo toques".
En otras instalaciones, la política es instalar todo lo que sale. En cualquier caso cada política tiene sus pros y sus contras, ya que algunas PTFs, sobre todo las que tocan cosas del SYSPLEX o del SYS1.NUCLEUS requieren hacer IPL, y esto en un ambiente de rabioso 24x7 con miles de usuarios conectados concurrentemente es una putada gorda.
Este sistema, al contrario que en Windows, que se instalan automáticamente, en la mayoría de instalaciones es el deber del programador de sistemas el controlar que PTFs hay, en que afecta al sistema y que módulos parchea. Esto es muy importante, así que, al contrario que en Windows, que se instalan y se reinicia el equipo automáticamente y muy chupiguay todo, en mainframe no se puede permitir que una PTF haga un reinicio automático teniendo a 40.000 personas tirando de un CICS, así que hay que LEER mucho.
Cuando tienes la PTF te viene siempre con un documento de ayuda y despliegue, y te dice todo lo que hace, en que afecta al sistema, si hay dependencias (es decir, que para instalar esa PTF hayas tenido antes que instalar otras PTFs), y como aplicarla.
Para ello, se utiliza un "Producto" que viene con el sistema operativo, llamado SMP/E (System Modification Program/Extensions). Mediante este producto, podemos tener controlado perfectamente todo el software instalado en el Mainframe, que versión de productos tiene y toda la gestión de PTFs.
Como funciona el SMP/E
SMP/E trabaja con ZONAS SMP: Existe la zona GLOBAL, la DLIB y la TARGET. Digamos que se estructuran jérarquicamente.
La zona GLOBAL es la zona raíz, y en ella se contiene información, mucha información, acerca de los productos instalados, cuando se instalaron, como se instalaron, aplicación de parches, versiones de productos, situación en disco, librerías, etc, viene a ser un índice de todo lo que tenemos, como si fuera el Registro de Windows, pero solo la rama de Software, y en GNU/Linux el gestor de paquetes dpkg, por ejemplo (ni se acerca, pero esto lo digo más o menos para que lo entendáis).
La zona DLIB es una zona donde se tiene un índice de todos los módulos que suministra IBM con los productos: Pueden ser fuentes, programas objeto, módulos de procedimientos, etc. Siguiendo con la analogía, una zona DLIB podría ser la /usr/src en GNU/Linux.
La zona TARGET en cambio, es la zona donde se controla todos los programas ejecutables y productos finales. Siguiendo con la analogía, seria la /lib y la /bin en GNU/Linux o todo ejecutable EXE o DLL en Windows.
Pues bien, ¿cómo funciona todo esto? Pues en tiempo de instalación (SYSGEN), para crear un programa ejecutable en MVS, se "linkedita" con los módulos que sean necesarios de la DLIB y se crea el ejecutable en la Target, que a su vez se guarda en el disco que corresponda dentro de la librería que corresponda, como si se pareciera a un Makefile, oyes. Como veréis, este sistema de funcionamiento tiene muchas analogías con montar una Gentoo desde cero...
Vale, pero ¿Cómo instalo un parche?
El proceso de PTF tiene 3 fases bien diferenciadas: Recepción, Aplicación y Aceptación. La fase de recepción (RECEIVE) es cuando descargas la PTF de internet y la metes en el MVS y le dices a la GLOBAL que tienes una PTF descargada y lista para instalar. La GLOBAL entonces examina la PTF y determina que trozos de programas deben ser tocados, con la información de la TARGET y la DLIB.
La fase de Aplicación (APPLY) es la fase en la que instalas la PTF que te toca los módulos y programas que están en la TARGET, traduciendo, es cuando la PTF te toca el código para que inmediatamente quede instalada.
Y la ultima fase, la de aceptación (ACCEPT), es cuando ves que la PTF no ha "roto" nada y por tanto, esa PTF también toca la zona de DLIB para que los módulos fuente y objeto queden parcheados.
Esto da mucho juego, ya que si se instala mal la PTF siempre puedes volver atrás (siempre y cuando no hayas hecho un ACCEPT) en caso de que algo deje de funcionar, cosa poco probable, pero no imposible.
También comentar que según como quieras configurar el sistema, la instalación SMP/E puede tener varias zonas GLOBAL, varias DLIBs y varias TARGET, ya que IBM cataloga todos sus productos para mainframe en 4 bloques bien diferenciados: El Bloque OS, que incluye el z/OS, Cobol, VM, PL/I, y el sistema básico de un sistema operativo.
Luego está el DB, que incluye todo lo relacionado con bases de datos y tratamientos de datos: DB2, IMSDB, ImagePlus, etc.
El tercer bloque hace referencia a todo lo transaccional, CICS, IMS, etc, y por último, el cuarto bloque es el del NCP o Communication Server, en el que se incluyen el propio NCP, el VTAM, TCP/IP, SNA, etc.
Por tanto, se pueden llegar a tener, dependiendo de la instalación hasta 4 SMP/E distintos con toda su parafernalia de GLOBAL, DLIB y TARGET.
Así a primera vista parece que este sistema es muy manual, pero en realidad no lo es tanto, para mi es un sistema en el que controlas todo en todo momento y es muy eficaz y no te pasa como en Windows, que no sabes que hace cuando te instala algo (y lo peor es que una vez instalado un update en Windows, no lo puedes desinstalar).
Lo bueno de obligarte a leer los requisitos de una PTF es que aprendes mucho sobre la estructura interna y funcionamiento a nivel de programación de como se ensambla todo un sistema operativo, de verdad que si os gusta andar con las tripas de un ordenador, esto os encantará.
En un siguiente artículo, expondré un caso practico de cómo aplicar una PTF a un producto concreto para que veáis la mecánica, que no es tan difícil.
Comentarios