Como foi possível executar o software de mainframe IBM em emulação na HP?
... Pelo menos, sem ser processado no chão?
De acordo com uma das respostas para Qual foi o software de suporte mais crítico para COBOL em mainframes IBM?
Instalamos um novo HP substituindo um sistema IBM, e parte da instalação foi um emulador para rodar código IBM no HP.
Não consegui encontrar nenhuma referência provável a esse emulador no Google. A coisa mais próxima que consegui encontrar foi um emulador chamado Hercules, lançado pela primeira vez em 1999. No entanto, aparentemente a IBM se recusou explicitamente a licenciar qualquer um de seus sistemas operacionais para rodar no Hercules. Os entusiastas podem tentar isso de qualquer maneira com uma cópia pirata de um sistema operacional apenas para brincar, imaginando provavelmente com razão que a IBM não se importará, mas uma empresa acharia altamente desaconselhável seguir esse caminho.
E, de fato, um comentário para outra resposta:
Nem é preciso dizer que o middleware de mainframe está pesadamente sobrecarregado e protegido por NDAs, etc. Não importa o quanto a IBM possa parecer favorável a versões reduzidas de, por exemplo, seus produtos MQ rodando em Unix ou Windows, você pode apostar sua vida que qualquer um que tentaram emular todas as nuances do mainframe e acabariam presos no tribunal por um longo tempo.
Isso parece plausível. No entanto, se a IBM reagisse assim a alguém emulando seu middleware, certamente eles reagiriam ainda mais agressivamente à emulação de toda a plataforma?
Então, a que se referia o emulador da HP e como eles se safaram?
Respostas
Não sei qual ambiente eles instalaram para executar seu software na HP. O vendedor fez todo o trabalho. Pelo que eu sei, era apenas COBOL bruto com um runtime compatível com IBM rodando sobre HP-UX. A coisa mais notável foi que ele requer 3270 terminais (a maioria inéditos no mundo Unix).
Lembre-se de algumas coisas.
Todas as máquinas IBM são, e têm sido por algum tempo, grandes tempos de execução de máquina virtual. O código não é compilado para o hardware subjacente, ele é compilado em uma máquina virtual, que é carregada para funcionar na máquina subjacente real.
Embora um mainframe seja particularmente sofisticado, isso não significa que os aplicativos reais sejam particularmente sofisticados. Este era um sistema de gestão e reservas de hotéis. COBOL não é um sistema de programação de sistema particularmente bom (se isso foi escrito em COBOL, isso é uma suposição). É um sistema de negócios de alto nível projetado em torno de telas e relatórios. Você não precisa de sistemas precisos de ciclo para executar a maioria dos aplicativos COBOL. Você simplesmente precisa ser capaz de suportar o sistema de arquivos, a impressora e as interfaces de tela. E, talvez, alguma cola JCL que possa vir com o aplicativo como wrappers para fluxo de trabalho e outros.
Então, eu duvido que eles estivessem realmente executando um mainframe "virtual", em vez disso, acho que eles tinham uma camada de compatibilidade suportada por seu ambiente de desenvolvimento que tornava a portabilidade de seu software direto, usando os terminais 3270.
Considere que o software que vendemos e escrevemos foi escrito para um P-Code, com o tempo de execução portado para vários sistemas diferentes. Conforme necessário, o código poderia ser compilado em binário para máquinas específicas, mas, como o Java, o P-Code era portátil, desde que o tempo de execução fosse instalado.
Em nosso caso, o P-Code era adequado para a grande maioria dos programas, mas sugerimos compilar os programas grandes mais comuns, não tanto para desempenho bruto, mas simplesmente para espaço de memória. O código compilado compartilhava as páginas executáveis entre vários usuários, enquanto o P-Code não compartilhava e, portanto, ocupava uma área de memória maior quando 10 ou 20 usuários estavam executando o mesmo programa.
Havia várias empresas oferecendo mainframes 'compatíveis' da IBM - Hitachi, Fujitsu e Amdahl vêm à mente. A IBM foi agredida com um processo antitruste ao tentar limitar seus sistemas operacionais apenas para suas máquinas. Também havia muitos negócios em terminais de pós-venda, impressoras, unidades de fita e disco, etc.
Amdahl foi particularmente bem-sucedido em produzir máquinas mais rápidas e mais baratas do que a IBM. Portanto, executar o código IBM em outras máquinas era comum.
O Micro Focus COBOL emulará pelo menos 20 dialetos COBOL diferentes e pode ser compilado e executado em várias plataformas, incluindo HP / UX (pelo menos em versões mais antigas). Tem até um emulador de CICS. É possível que o fornecedor estivesse usando essa ferramenta ou alguma outra ferramenta de portabilidade COBOL de mainframe para mover o aplicativo para a HP.