En los mainframes de IBM , BatchPipes es una utilidad de procesamiento de trabajos por lotes que se ejecuta en el sistema operativo MVS/ESA y versiones posteriores: OS/390 y z/OS . [1]
En el procesamiento tradicional, si los registros de datos se escriben en un conjunto de datos secuenciales ( QSAM y BSAM ) en un disco o cinta, no pueden ser leídos simultáneamente por otro trabajo. El "escritor" y el "lector" no pueden ejecutarse al mismo tiempo. Esto se denomina interbloqueo a nivel de archivo o interbloqueo a nivel de conjunto de datos .
Con BatchPipes, una instalación puede organizar el "envío" de los datos entre los dos trabajos. La ventaja es que los trabajos pueden ejecutarse simultáneamente y es posible, y muy habitual, evitar el tiempo que lleva escribir los datos en un almacenamiento secundario y volver a leerlos. La combinación de estas dos características, si se utiliza con criterio, conduce a una reducción del tiempo transcurrido combinado de los dos trabajos, medido desde el inicio del trabajo de escritura hasta el final del trabajo de lectura.
BatchPipes mantiene una cola corta de registros que pasan entre el escritor y el lector. El escritor agrega registros al final de la cola y el lector los toma desde el principio. Esto se considera un interbloqueo a nivel de registro y permite que el lector y el escritor se ejecuten simultáneamente.
Una ordenación es un caso especial: todos los registros de entrada deben leerse antes de que se pueda escribir el primer registro de salida. Por lo tanto, no puede haber superposición entre las fases de entrada y salida de una ordenación. Pero la fase de entrada puede superponerse con la fase de salida del trabajo anterior. De manera similar, la fase de salida de una ordenación puede superponerse con un trabajo posterior que lea los datos ordenados.
Son posibles topologías más complejas que "un lector, un escritor".
Una de las consideraciones clave de la implementación es programar los trabajos de lectura y escritura para que se ejecuten juntos. En la práctica, en programaciones por lotes, esto podría no ser factible. Además, si falla algún trabajo en la cadena de procesamiento, las acciones de recuperación serán más amplias que simplemente recuperar este único trabajo. Por estos motivos, algunas instalaciones han tenido dificultades para implementar BatchPipes.
BatchPipes puede utilizar la función de acoplamiento de mainframe de IBM para canalizar datos entre diferentes miembros de un Sysplex paralelo , utilizando la función BatchPipePlex.
BatchPipes incluye un conjunto de etapas de pipeline basadas en el producto CMS Pipelines de IBM desarrollado para el sistema operativo VM/ESA . Estas etapas proporcionan procesamiento adicional, sin necesidad de trabajos por lotes adicionales en el pipeline.
La versión 1 de BatchPipes se desarrolló a fines de la década de 1980 y principios de la de 1990 simplemente como una técnica para acelerar el procesamiento por lotes de MVS/ESA . En 1997, la funcionalidad de BatchPipes se integró en un producto más grande de IBM: SmartBatch (que incorporaba dos características de productos de BMC Corporation: DataAccelerator y BatchAccelerator). Sin embargo, SmartBatch se suspendió en abril de 2000.
APT International, con sede en Mónaco , produjo un producto competitivo con la marca registrada WARP. Unos meses después del lanzamiento de este producto, IBM renombró su producto OS/2 como OS/2 Warp 4 , lo que entró en conflicto con la comercialización del producto de alto rendimiento que era el único competidor de BatchPipes. Esto dio lugar a 7 años de litigio en el Tribunal de grande instance de Paris [2] [3]
Posteriormente se lanzó BatchPipes versión 2, que incorpora BatchPipes versión 1 y algunas funciones adicionales de SmartBatch: BatchPipesPlex y BatchPipeWorks. BatchPipes versión 2 sigue siendo un producto comercializado por IBM.