Wie war es möglich, IBM Mainframe-Software in Emulation auf HP auszuführen?
... Zumindest ohne in den Boden verklagt zu werden?
Laut einer der Antworten auf Was war die kritischste unterstützende Software für COBOL auf IBM-Mainframes?
Wir haben einen neuen HP installiert, der ein IBM-System ersetzt, und ein Teil der Installation war ein Emulator zum Ausführen von IBM-Code auf dem HP.
Ich konnte bei Google keinen wahrscheinlichen Verweis auf diesen Emulator finden. Das nächste, was ich finden konnte, war ein Emulator namens Hercules, der erstmals 1999 veröffentlicht wurde. Anscheinend weigerte sich IBM jedoch ausdrücklich, eines seiner Betriebssysteme für die Ausführung auf Hercules zu lizenzieren. Hobbyisten könnten es trotzdem mit einer Piratenkopie eines Betriebssystems versuchen, nur um herumzuspielen, und wahrscheinlich zu Recht herausfinden, dass es IBM egal ist, aber ein Unternehmen würde es höchst nicht ratsam finden, diesen Weg zu gehen.
Und in der Tat ein Kommentar zu einer anderen Antwort:
Es versteht sich von selbst, dass die Mainframe-Middleware stark von NDAs usw. belastet und geschützt ist. Unabhängig davon, wie unterstützend IBM für reduzierte Versionen von z. B. MQ-Produkten unter Unix oder Windows zu sein scheint, können Sie Ihr Leben darauf wetten, dass jeder, der Der Versuch, jede Mainframe-Nuance zu emulieren, würde lange Zeit vor Gericht gefesselt sein.
Das klingt plausibel. Wenn IBM jedoch so auf jemanden reagieren würde, der seine Middleware emuliert, würde er sicherlich noch aggressiver auf die Emulation der gesamten Plattform reagieren?
Worauf bezog sich der Emulator auf der HP und wie kamen sie damit durch?
Antworten
Ich weiß nicht, welche Umgebung sie installiert haben, um ihre Software auf dem HP auszuführen. Der Verkäufer hat die ganze Arbeit gemacht. Soweit ich weiß, war es nur rohes COBOL mit einer IBM-kompatiblen Laufzeit, die auf HP-UX ausgeführt wird. Das Bemerkenswerteste war, dass 3270 Terminals erforderlich sind (in der Unix-Welt meist unbekannt).
Erinnern Sie sich an ein paar Dinge.
Alle IBM-Maschinen sind und sind seit einiger Zeit große virtuelle Maschinenlaufzeiten. Code wird nicht für die zugrunde liegende Hardware kompiliert, sondern in eine virtuelle Maschine kompiliert, die dann geladen wird, um auf der tatsächlich zugrunde liegenden Maschine zu arbeiten.
Ein Mainframe ist zwar besonders ausgefeilt, dies bedeutet jedoch nicht, dass die tatsächlichen Anwendungen besonders ausgefeilt sind. Dies war ein Hotelmanagement- und Reservierungssystem. COBOL ist kein besonders gutes Systemprogrammiersystem (wenn dies überhaupt in COBOL geschrieben wurde, ist das eine Annahme). Es handelt sich um ein hochrangiges Geschäftssystem, das auf Bildschirmen und Berichten basiert. Sie benötigen keine zyklusgenauen Systeme, um die meisten COBOL-Anwendungen auszuführen. Sie müssen lediglich die Dateisystem-, Drucker- und Bildschirmschnittstellen unterstützen können. Und vielleicht etwas JCL-Kleber, der mit der Anwendung als Wrapper für den Workflow und dergleichen geliefert wird.
Ich bezweifle also, dass sie tatsächlich einen "virtuellen" Mainframe betrieben, sondern dass sie eine Kompatibilitätsschicht hatten, die von ihrer Entwicklungsumgebung unterstützt wurde und die Portierung ihrer Software bis hin zur Verwendung der 3270-Terminals ermöglichte.
Stellen Sie sich vor, die Software, die wir verkauft und geschrieben haben, wurde in einen P-Code geschrieben, wobei die Laufzeit auf eine Reihe verschiedener Systeme portiert wurde. Bei Bedarf konnte der Code für bestimmte Computer in Binärform kompiliert werden. Wie bei Java war der P-Code jedoch portabel, solange die Laufzeit installiert war.
In unserem Fall war der P-Code für die überwiegende Mehrheit der Programme ausreichend, aber wir schlugen vor, die gängigsten großen Programme nicht so sehr für die Rohleistung, sondern nur für den Speicherplatz zu kompilieren. Kompilierter Code teilte die ausführbaren Seiten für viele Benutzer, während der P-Code dies nicht tat und daher einen größeren Speicherbedarf hatte, wenn 10 oder 20 Benutzer dasselbe Programm ausführen.
Es gab eine Reihe von Unternehmen, die IBM-kompatible Mainframes anboten - Hitachi, Fujitsu und Amdahl. IBM wurde mit einem Kartellverfahren geschlagen, als versucht wurde, die Betriebssysteme nur für die Maschinen einzuschränken. Es gab auch viel Geschäft mit After-Market-Terminals, Druckern, Band- und Festplattenlaufwerken usw.
Amdahl war besonders erfolgreich darin, schnellere und billigere Maschinen als IBM herzustellen. Daher war es üblich, IBM Code auf anderen Computern auszuführen.
Micro Focus COBOL emuliert mindestens 20 verschiedene COBOL-Dialekte und kann auf verschiedenen Plattformen, einschließlich HP / UX (zumindest in älteren Versionen), kompiliert und ausgeführt werden. Es hat sogar einen CICS-Emulator. Möglicherweise hat der Anbieter dieses Tool oder ein anderes COBOL-Portierungstool für den Mainframe verwendet, um die Anwendung auf den HP zu verschieben.