El Mainframe de IBM
Definición
Cuando
hablamos de mainframe u ordenador central nos estamos refiriendo a ordenadores
muy potentes, típicamente usados por las grandes empresas y gobiernos en
aplicaciones de misión crítica, procesamiento de grandes volúmenes de datos,
estadísticas sobre la industria y el consumo, planificación de recursos
empresariales (ERP) y procesamiento de transacciones.
La
mayoría de los mainframes modernos poseen un hardware redundante para aumentar
la tolerancia a fallos y ofrecer alta fiabilidad y seguridad, grandes
facilidades de entrada / salida, compatibilidad estricta con el software
anterior y gran potencia computacional para procesar grandes volúmenes de
información.
Estos
ordenadores normalmente se mantienen en ejecución sin interrupción durante largos períodos de tiempo,
garantizando la estabilidad y fiabilidad de sus procesos y aplicaciones.
Características principales de un mainframe
- Habilidad para ejecutar
varios sistemas operativos.
De hecho los mainframes fueron los primeros en ejecutar máquinas
virtuales, tan populares hoy en día en entornos de servidores e incluso de
ordenadores de escritorio. Los mainframes de IBM de las series zSeries,
System z9 y System z10 ofrecen dos niveles de virtualización: LPAR
(Logical Partition) y máquinas virtuales utilizando el sistema operativo
z/VM.
- Gran capacidad de entrada
/ salida.
Desde los años 1960, los mainframes utilizan procesadores de entrada /
salida dedicados, permitiendo liberar de esas tareas al procesador central
y a la memoria principal de alta velocidad.
- Alta tolerancia a fallos. La tolerancia a fallos
se logra con un diseño especial de hardware, instrucciones de software y
la duplicidad de componentes de la arquitectura.
- Capacidad de ser
combinados en cluster.
Es posible lograr aún mayor disponibilidad si podemos combinar varios
mainframes en una unidad lógica denominada cluster. Los mainframes de IBM
utilizan una facilidad denominada Parallel Sysplex que permite conectar
hasta 32 mainframes en una unidad lógica de alta disponibilidad y alta
tolerancia a fallos. Estos ordenadores pueden estar dispersos
geográficamente (cluster geográfico) facilitando incluso que el sistema pueda
recuperarse ante situaciones de desastre, tales como incendios,
terremotos, etc.
¿Por qué utilizar un mainframe?
- 25
de los 25 bancos más importantes a nivel mundial, tienen su núcleo de
negocio en un mainframe.
- 23
de los 25 minoristas más importantes de Estado Unidos, tienen sus
aplicativos de núcleo de negocio en un mainframe.
- 9
de los 10 proveedores de planes de seguros y de retiro tienen como base
tecnológica algún mainframe
- 66%
de la transacciones que se realizan en los bancos en corren en sistemas
Mainframe.
- Un
solo Mainframe puede ejecutar miles de Servidores Virtuales
- Anualmente
se generan 5 mil millones de líneas de código en Cobol.
- Existen
más de 200 mil millones de líneas de código en Cobol.
- Reemplazar
cada línea de código en Cobol cuesta más de 25 dólares.
El sistema operativo zOS
Es
uno de los sistemas operativos de mainframe más utilizados con las siguientes características:
- Diseñado
para cómputo intensivo de I/O
- Diseñado
para garantizar integridad de datos sin importar que tantos usuarios
concurrentes tenga.
- Puede
procesar una gran cantidad de trabajos batch concurrentes, con balanceo de
carga automático.
- Permite
incorporar seguridad a aplicaciones, recursos y perfiles de usuarios.
- Provee
varias facilidades para recuperación.
- Puede
correr aplicaciones de misión crítica de forma segura.
- Puede
ser controlado desde una o más terminales de operador.
Para
entender la forma de trabajo de un mainframe tenemos que partir de un modelo
elemental de proceso de datos.
Los
datos a procesar viajan por lo general en un único sentido indicado por las
flechas. Primero se captan o coleccionan los datos de entrada, a continuación
se procesan estos datos transformándose en datos de salida y por último estos
datos son presentados en diferentes formatos (usualmente en forma de reportes
que pueden consultarse por diferentes canales y terminales)
Modelo de proceso en una instalación de mainframe
Cumpliendo
con el modelo elemental anterior, en una instalación de mainframe se realizan
dos grandes ciclos: uno de entrada de información y otro de proceso de
información.
La
salida o presentación de información puede realizarse en cualquier momento
teniendo en cuenta la fecha de actualización (algunos procesos permiten
presentar información diaria como el saldo de nuestra cuenta corriente, otro de
manera decenal como los informes enviados a Banco de España, otros tienen
características mensuales, trimestrales, semestrales y por último anuales.
Por
último es importante destacar que a pesar de que estos ciclos definen el grueso
de las operaciones que se procesan en el mainframe, por ejemplo en un banco
moderno hay procesamiento en línea constante las 24 horas los 7 días a la
semana debido a la utilización del canal de Internet y a la reciente
incorporación del canal Mobile. En esencia ambos canales son lo mismo, con la
particularidad que el canal Mobile aumenta las probabilidades de proceso online
ya que independiza al usuario de tener un sitio con ordenador de sobremesa y
conexión a Internet para realizar sus operaciones. Cualquiera puede realizar
una transferencia o consultar los saldos de sus cuentas sentado en un parque o
viajando en el Metro.
Ciclo de entrada de información
El
ciclo de entrada de información se realiza entre las 8:00 AM y las 03:00 PM (o
entre las 08:00 y las 15:00 horas). En este ciclo las diferentes sucursales
bancarias atienden a los clientes de banca prestándoles diferentes servicios.
Este ciclo suele denominarse ventana en línea o ventana online.
Estos
servicios se realizan “en línea” (online), o sea, el operador introduce datos,
se realizan determinados procesos de manera sincrónica y se reciben resultados
o feedback en la pantalla del operador a través de una aplicación comúnmente
denominada terminal financiero o teleproceso (TP).
Normalmente
aunque en muchos casos se realiza un ciclo completo de proceso de información,
la característica fundamental de esta operación “en línea” es que se aplica por
lo general a un solo cliente.
Por
otro lado, y a pesar factores como la carga de trabajo de la sucursal bancaria,
la cartera de clientes que tenga o la fecha del mes (no es lo mismo fines de
mes donde hay muchas personas ingresando cheques o pagando facturas) por lo
general todo este proceso online sirve para darle servicio a un solo cliente.
Si
realizamos un ciclo completo de proceso durante la ventana online para un
cliente, entonces estamos utilizando
recursos compartidos, en especial las bases de datos.
Por
lo general durante la ventana online, los servidores de bases de datos tienen
plena capacidad para dar respuesta a las peticiones que se realizan.
Como
los datos son solo de un usuario (a pesar de la concurrencia de múltiples
sucursales realizando operaciones y de la Banca por Internet), el volumen de
datos es pequeño y la velocidad de proceso es elevada, garantizando al usuario
una respuesta prácticamente inmediata.
La
mayoría de las operaciones de Banca se realizan en un régimen transaccional, o
sea los datos son procesados y guardados de manera coherente en las bases de
datos solo si tienen los valores adecuados acorde a la operación que estamos realizando.
Por
ejemplo, no es posible realizar una transferencia si la cuenta de origen no
tiene saldo, con lo cuál a pesar de que la operación de transferencia consiste
en un adeudo (extracción) de la cuenta origen y un abono (ingreso) en la cuenta
destino, si la operación de adeudo falla por falta de fondos, se cancela
también la de abono. No se queda ninguna operación a medio terminar.
Esto
desde el punto de vista de las bases de datos, puede provocar por ejemplo un
bloqueo (imposibilidad de que otra sentencia de base de datos modifique la fila
concurrentemente) en el caso de que actualicemos el saldo de una cuenta
corriente.
Este
bloqueo cuando se realiza sobre una solo cuenta suele durar lo suficientemente
poco como para no comprometer el tiempo de respuesta que recibe el cliente que
esta ejecutando la operación en modo online.
Si
este bloqueo se demora más de un tiempo preestablecido ocurre un error por
tiempo de respuesta (timeout). Este
error se implementa para evitar que un sistema complejo, un componente se quede
esperando “eternamente” por la respuesta de otro componente del sistema que
puede estar bloqueado o caído.
Técnicamente
los procesos online se realizan en el mainframe a través de CICS (Customer Information Control System),
que es un mecanismo que permite la ejecución de transacciones.
Ciclo de proceso de información
Este
ciclo de proceso comienza por lo general a las 03:00PM y termina a las 08:00 AM
del día siguiente (desde las 15:00 del día en curso hasta las 08:00 del día
siguiente). A este ciclo de proceso se le suele denominar ventana batch.
En
este ciclo se producen los tratamientos de datos de carácter masivo. Para esto
se emplean procesos batch implementados en el lenguaje de control de trabajos o
procesos de IBM (JCL o Job Control
Language).
Los
procesos en JCL pueden a su vez ejecutarse de dos formas distintas:
- Procesos esporádicos: procesos que se lanzan
de manera no planificada o esporádica
- Procesos planificados o
periódicos:
procesos que por su naturaleza necesitan ser lanzados con una periodicidad
fija: diarios, decenales, quincenales, mensuales, etc.
Lo
correcto en una instalación es tener el grueso de todos los procesos batch de
manera planificada. Los procesos esporádicos deben ser siempre menos del 1 %
del volumen total que se ejecuta en la instalación.
Aunque
siempre van a existir procesos esporádicos (es imposible preveer cuando va a
surgir una necesidad no planificada como procesos de auditoría, control fiscal
o simplemente procesos de compensación que permitan arreglar errores o dar
marcha atrás a datos asentados de forma masiva), la regla general consiste en
minimizar al máximo su creación.
Los
procesos planificados se ejecutan utilizando un planificador, que en nuestra
instalación es CTRL-M de la compañía BMC Software especializada en productos de
mainframe.
Estos
procesos se ejecutan no solo en horarios y fechas específicos, sino que unos
dan condición a otros (cuando uno termina correctamente se ejecutan uno o más
procesos relacionados cuyos datos de entrada son los datos de salida del
proceso precedente).
2 comentarios:
Excelente introducción a los mainframe dando una visión técnica global de su funcionamiento sin entrar en detalles técnicos del sistema.
Excelente información, para toda persona que le interese la historia de este gigante de los sistemas operativos.
Publicar un comentario