Comment était-il possible d'exécuter le logiciel mainframe IBM en émulation sur HP?

Nov 25 2020

... Du moins, sans être poursuivi en justice?

Selon l'une des réponses à la question Quel était le logiciel de support le plus critique pour COBOL sur les mainframes IBM?

Nous avons installé un nouveau HP remplaçant un système IBM, et une partie de l'installation était un émulateur pour exécuter du code IBM sur le HP.

Je n'ai pas pu trouver de référence probable à cet émulateur sur Google. La chose la plus proche que j'ai pu trouver était un émulateur appelé Hercules, qui a été publié pour la première fois en 1999. Cependant, apparemment, IBM a explicitement refusé d'accorder une licence à l'un de ses systèmes d'exploitation pour fonctionner sur Hercules. Les amateurs peuvent l'essayer de toute façon avec une copie pirate d'un système d'exploitation juste pour jouer, pensant probablement à juste titre qu'IBM ne s'en souciera pas, mais une entreprise trouverait fortement déconseillée d'emprunter cette voie.

Et en effet, un commentaire à une autre réponse:

Il va sans dire que le middleware mainframe est fortement encombré et protégé par les NDA, etc. essayé d'imiter chaque nuance mainframe se retrouverait coincé devant le tribunal pendant une longue période.

Cela semble plausible. Pourtant, si IBM réagissait comme ça à quelqu'un émulant son middleware, il réagirait sûrement encore plus agressivement à l'émulation de la plate-forme entière?

Alors, à quoi faisait référence l'émulateur sur le HP, et comment s'en sont-ils sortis?

Réponses

10 WillHartung Nov 25 2020 at 12:14

Je ne sais pas quel environnement ils ont installé pour exécuter leur logiciel sur HP. Le vendeur a fait tout le travail. Pour autant que je sache, c'était juste du COBOL brut avec un runtime compatible IBM fonctionnant au-dessus de HP-UX. La chose la plus notable est qu'elle nécessite 3270 terminaux (pour la plupart du jamais vu dans le monde Unix).

Rappelez-vous quelques choses.

Toutes les machines IBM sont, et sont depuis un certain temps, de grandes durées d'exécution de machines virales. Le code n'est pas compilé pour le matériel sous-jacent, il est compilé sur une machine virtuelle, qui est ensuite chargée pour fonctionner sur la machine sous-jacente réelle.

Si un mainframe est particulièrement sophistiqué, cela ne signifie pas que les applications réelles sont particulièrement sophistiquées. C'était un système de gestion d'hôtel et de réservation. COBOL n'est pas un système de programmation système particulièrement bon (si cela a même été écrit en COBOL, c'est une hypothèse). C'est un système d'entreprise de haut niveau conçu autour d'écrans et de rapports. Vous n'avez pas besoin de systèmes précis pour exécuter la plupart des applications COBOL. Vous devez simplement pouvoir prendre en charge le système de fichiers, l'imprimante et les interfaces d'écran. Et, peut-être, un peu de colle JCL qui peut accompagner l'application comme wrappers pour le flux de travail et autres.

Donc, je doute qu'ils exécutaient réellement un mainframe "virtuel", plutôt je pense qu'ils avaient une couche de compatibilité prise en charge par leur environnement de développement qui rendait le portage de leur logiciel simple, jusqu'à l'utilisation des terminaux 3270.

Considérez que le logiciel que nous avons vendu et écrit a été écrit sur un P-Code, avec le runtime porté sur un tas de systèmes différents. Au besoin, le code pouvait être compilé en binaire pour des machines spécifiques, mais, comme Java, le P-Code était portable aussi longtemps que le runtime était installé.

Dans notre cas, le P-Code convenait à la grande majorité des programmes, mais nous avons suggéré de compiler les grands programmes les plus courants non pas tant pour les performances brutes, mais simplement pour l'espace mémoire. Le code compilé partageait les pages exécutables entre les nombreux utilisateurs, alors que le P-Code ne le faisait pas et avait donc une empreinte mémoire plus importante lorsque 10 ou 20 utilisateurs exécutaient le même programme.

8 Kartman Nov 25 2020 at 12:23

Il y avait un certain nombre d'entreprises offrant des mainframes «compatibles» IBM - Hitachi, Fujitsu et Amdahl viennent à l'esprit. IBM a été giflé avec une poursuite anti-trust quand il a essayé de limiter leurs systèmes d'exploitation pour leurs machines uniquement. Il y avait aussi beaucoup d'affaires dans les terminaux après-vente, les imprimantes, les lecteurs de bande et de disque, etc.

Amdahl a particulièrement réussi à produire des machines plus rapides et moins chères qu'IBM. Ainsi, l'exécution de code IBM sur d'autres machines était courante.

3 ConcernedOfTunbridgeWells Nov 26 2020 at 07:54

Micro Focus COBOL émulera au moins 20 dialectes COBOL différents, et peut compiler et fonctionner sur diverses plates-formes, y compris HP / UX (au moins dans les anciennes versions). Il a même un émulateur CICS. Il est possible que le fournisseur utilise cet outil ou un autre outil de portage COBOL mainframe pour déplacer l'application vers HP.