Principios básicos de la optimización de procesos batch
Partiendo
de la comprensión de cómo se procesan datos en un mainframe de IBM, cuál es la
diferencia entre los procesos online y batch así como la influencia de uno en
el otro, vamos a enunciar los principios básicos que influyen en la
optimización de los procesos batch:
- Darle
al batch lo que es de batch y a online lo que es de online
- La
optimización batch es un proceso continuo
- No
puede haber optimización si no se reducen los errores de proceso
- La
optimización batch obliga a un diseño tanto de los procesos como de los
programas
Dar al batch lo que es de batch y a online lo que
es de online
No
es posible optimizar el batch si no comprendemos que el proceso de datos en un
mainframe se realiza en dos grandes ciclos: la ventana batch y la ventana
online.
Dado
a que en las condiciones actuales, siempre vamos a tener procesos online,
tenemos que procesar en batch con el mínimo impacto sobre la parte online.
No
es correcto crear procesos de tratamiento masivo de datos en online (si bien es
posible técnicamente) como tampoco intentar crear un proceso de tratamiento
masivo de datos que sea interactivo con el usuario.
La
siguiente gráfica muestra a lo largo del año, la cantidad de procesos batch que
se ejecutan en ventana online:
Debemos
explorar con el área de negocio de la empresa la posibilidad de diseñar los
procesos intentando separar todo lo que podamos los ciclos batch y online.
La optimización batch es un proceso continuo
La
optimización batch es un proceso continuo de mejora. No consiste en instalar un
módulo de memoria, ni un disco y olvidarnos porque siempre nos va a sobrar
espacio.
Aún
en estos casos, el espacio llegará a faltar en algún momento, porque las
necesidades de proceso son siempre crecientes: una empresa aspira a más usuarios de negocio, a más productos y
a batir la competencia en satisfacción de sus clientes.
El
batch puede mejorarse notablemente reorganizando la planificación de los
procesos que más datos procesan y retocando alguno de ellos. Al mismo tiempo
hay que establecer normas y controles en la creación y planificación de nuevos
procesos para no cometer los errores del pasado y trazar planes realistas en
tiempo y coste para abordar las mejoras de los procesos de menor impacto.
Reducir los errores de proceso
Una
piedra angular en la optimización del batch es la reducción drástica de los
errores de proceso.
El
relanzamiento de procesos, las intervenciones humanas en caso de errores graves
y las demoras en la cadena de procesos planificados tienen una penalización
negativa no solo en la ventana batch, sino que puede que estas demoras
provoquen que algunos procesos tengan que ser lanzados justo antes o durante la
ventana online del siguiente día.
Una
manera óptima de procesar en batch es tener un tiempo de proceso “limpio” en
materia de errores.
La
siguiente gráfica muestra los procesos batch planificados, no planificados y
planificados con error a lo largo del año.
Como
esto en la práctica puede que sea imposible (siempre puede haber un error en un
caso no tratado o una validación de datos sin realizar), el enfoque correcto es
la reducción al máximo de estos errores persiguiendo a los equipos responsables
y exigiendo nuevos controles de calidad, no solo en la codificación sino
durante las pruebas.
Paralelamente
hay que estudiar las estadísticas de proceso. Aunque no se produzcan errores
graves que rompan la cadena de proceso, hay que estudiar por qué se rechazan
registros de entrada.
Los
registros de entrada deben ser cero en cada ejecución de nuestro proceso y
cuando se detectan registros rechazados hay que incluir nuevas validaciones no
solo en nuestro proceso batch sino en los procesos online que originaron la
mayoría de estos datos.
Diseño de procesos y programas
La
optimización batch comprende el diseño de procesos (JCL) así como de los
programas COBOL que se ejecutan como pasos o tareas de cada uno de estos
procesos.
Si
un programa hace un uso ineficiente de la base de datos DB2 o realiza una
lectura / escritura inadecuada de ficheros, es imposible reducir el tiempo de
ejecución del proceso que se va a escapar en la ejecución de este programa.
Si
los tipos de datos están mal utilizados o si el programa no está correctamente
probado y surgen incidencias nocturnas durante la ventana batch, no es posible
hablar de ejecuciones óptimas.
Los
desarrolladores tienen que apoyarse no solo en la formación y conocimientos
sobre JCL y COBOL, sino también en herramientas que permitan estandarizar la
programación como generadores de programas y herramientas de control de calidad del código
como SONAR.
Como
mínimo los desarrolladores deben tener un libro blanco con las normas aceptadas
de codificación de programas y procesos (COBOL y JCL) así como una metodología
para realizar las pruebas.
0 comentarios:
Publicar un comentario