¿Cómo fue posible ejecutar el software de mainframe de IBM en emulación en HP?
... ¿Al menos, sin ser demandado en el suelo?
Según una de las respuestas a ¿Cuál fue el software de soporte más crítico para COBOL en mainframes IBM?
Instalamos un nuevo HP reemplazando un sistema IBM, y parte de la instalación fue un emulador para ejecutar código IBM en HP.
No he podido encontrar ninguna referencia probable a ese emulador en Google. Lo más cercano que pude encontrar fue un emulador llamado Hercules, que se lanzó por primera vez en 1999. Sin embargo, aparentemente IBM se negó explícitamente a licenciar cualquiera de sus sistemas operativos para ejecutar en Hercules. Los aficionados podrían intentarlo de todos modos con una copia pirata de un sistema operativo solo para jugar, pensando que probablemente a IBM no le importará, pero a una empresa le resultaría muy desaconsejable seguir ese camino.
Y de hecho, un comentario a otra respuesta:
No hace falta decir que el middleware de mainframe está muy sobrecargado y protegido por NDA, etc. No importa lo comprensivo que pueda parecer IBM con las versiones reducidas de, por ejemplo, sus productos MQ que se ejecutan en Unix o Windows, puede apostar su vida a que cualquiera que intentaron emular todos los matices del mainframe y se quedarían atrapados en los tribunales durante mucho tiempo.
Eso suena plausible. Sin embargo, si IBM reaccionara así ante alguien que emula su middleware, ¿seguramente reaccionaría de manera aún más agresiva a la emulación de toda la plataforma?
Entonces, ¿a qué se refería el emulador de HP y cómo se salieron con la suya?
Respuestas
No sé qué entorno instalaron para ejecutar su software en HP. El vendedor hizo todo el trabajo. Por lo que sé, era COBOL sin formato con un tiempo de ejecución compatible con IBM que se ejecutaba sobre HP-UX. Lo más notable fue que requiere 3270 terminales (en su mayoría desconocidos en el mundo Unix).
Recuerda un par de cosas.
Todas las máquinas de IBM son, y lo han sido durante algún tiempo, grandes tiempos de ejecución de máquinas virtuales. El código no se compila para el hardware subyacente, se compila en una máquina virtual, que luego se carga para trabajar en la máquina subyacente real.
Si bien un mainframe es particularmente sofisticado, eso no significa que las aplicaciones reales sean particularmente sofisticadas. Este era un Sistema de Gestión y Reservas de Hoteles. COBOL no es un sistema de programación de sistema particularmente bueno (si esto fue escrito en COBOL, eso es una suposición). Es un sistema empresarial de alto nivel diseñado en torno a pantallas e informes. No necesita sistemas de ciclo preciso para ejecutar la mayoría de las aplicaciones COBOL. Simplemente necesita poder admitir el sistema de archivos, la impresora y las interfaces de pantalla. Y, quizás, algún pegamento JCL que pueda venir con la aplicación como envoltorios para el flujo de trabajo y demás.
Por lo tanto, dudo que realmente estuvieran ejecutando un mainframe "virtual", más bien creo que tenían una capa de compatibilidad respaldada por su entorno de desarrollo que hizo que la migración de su software fuera sencilla, hasta usar los terminales 3270.
Considere que el software que vendimos y escribimos se escribió en un código P, con el tiempo de ejecución trasladado a un montón de sistemas diferentes. Según sea necesario, el código podría compilarse en binario para máquinas específicas, pero, al igual que Java, el código P era portátil siempre que se instalara el tiempo de ejecución.
En nuestro caso, el código P era adecuado para la gran mayoría de los programas, pero sugerimos compilar los programas grandes más comunes, no tanto para el rendimiento en bruto, sino simplemente para el espacio de memoria. El código compilado compartió las páginas ejecutables entre los muchos usuarios, mientras que el código P no lo hizo y, por lo tanto, tuvo una mayor huella de memoria cuando 10 o 20 usuarios ejecutan el mismo programa.
Había una serie de empresas que ofrecían mainframes "compatibles" con IBM: me vienen a la mente Hitachi, Fujitsu y Amdahl. IBM recibió una bofetada con una demanda antimonopolio cuando trató de limitar sus sistemas operativos solo para sus máquinas. También hubo muchos negocios en terminales de posventa, impresoras, unidades de cinta y disco, etc.
Amdahl tuvo un éxito especial en la producción de máquinas más rápidas y económicas que IBM. Por lo tanto, ejecutar código de IBM en otras máquinas era algo común.
Micro Focus COBOL emulará al menos 20 dialectos COBOL diferentes y se puede compilar y ejecutar en varias plataformas, incluyendo HP / UX (al menos en versiones anteriores). Incluso tiene un emulador CICS. Es posible que el proveedor estuviera usando esta herramienta, o alguna otra herramienta de migración COBOL de mainframe para mover la aplicación a HP.