Beispiel für Programm-zu-Programm- Verbindung

Integrierte PC-Nutzung bietet BS2000-Anwendern mehr Komfort

17.05.1991

Die PC-Host-Kommunikation ist in Unternehmen längst zur Tagesordnung geworden. So auch bei der Vinzenz Murr GmbH in München, die über Terminalemulationen kosten. günstig die Verbindung von BS2000-Großrechnern und PCs realisiert. Das Procedere einer solchen Integration durch Programm-zu-Programm-Schnittstellen beschreibt Reinhard Stasar* im folgenden Artikel.

Je nach Hersteller der Emulationshard- beziehungsweise Software lassen sich durch Einsatz einer Emulation folgende Funktionen gewährleisten:

1. Nutzung des PCs als Host. Terminal,

2. Mehrfach-Emulation,

3. Filetransfer in beide Richtungen über Host-Editor,

4. Nutzung von PC-Druckern als Host-Terminaldrucker und

5. Benutzerschnittstelle zur Emulation.

Während die Funktionen 1 bis 4 in der Regel im Rahmen der Emulationssoftware zur Verfügung stehen, bleibt der Einsatz der Benutzerschnittstelle zusätzlichen Softwarekomponenten vorbehalten beziehungsweise kann vom Endanwender für spezifische Problemlösungen genutzt werden.

Terminalemulation auf PC-Programmen

Eine derartige Schnittstelle gestattet dem Anwender die Nutzung sämtlicher Emulationsfunktionen über ein individuelles PC-Programm. Die folgenden Ausführungen beziehen sich auf den Punkt 5, die Realisierung einer Programm-zu-Programm-Verbindung über eine Benutzerschnittstelle zur Emulation.

Die Ausprägungen einer Schnittstelle variieren je nach Hersteller der Emulation. Dieses Beispiel bezieht sich auf die Emulation der Computer-Kontor AG in Verbindung mit einem Siemens-Rechner unter dem Betriebssystem BS2000. Der vorgestellte Lösungsweg wurde realisiert mit den Sprachen der Microsoft-Familie Quick-Basic beziehungsweise Basic-PDS und dem Macro-Assembler MASM. Eine Realisierung in einer anderen Sprachumgebung beziehungsweise die Nutzung der Module im Rahmen des Microsoft-Standards ist ebensogut möglich.

Die Benutzerschnittstelle stellt die Möglichkeiten der Terminalemulation einem PC-Anwendungsprogramm zur Verfügung. Die grundlegenden Funktionen der Emulation wie Senden und Empfangen von BS2000-Daten sowie Bildaufbereitung, Filetransfer etc. können von einem PC-Programm ausgelöst werden.

Die Kommunikation zwischen der Terminalemulation und dem steuernden PC-Anwendungsprogramm findet über einen Software-Interrupt und zwei Datenbereiche statt. Es handelt sich hierbei um den Interrupt INT 62(h). Die beiden Datenparameter-Bereiche werden als Offsets zur DS-Register erwartet:

ds:dx Offset zu Datenbereich (Bilddaten)

ds:si Offset zu Parameterbereich (Funktionsdaten)

Die Funktionsdaten beinhalten Steuerungsdaten für die Terminalemulation und Rückmeldungen der Emulation an das Anwendungsprogramm. Beispiele für Steuerungs Informationen sind die auszuführende Funktion wie Tastatureingabe, Senden zum Host oder Warten auf bestimmte Bildinhalte. Die Bilddaten beinhalten die Speicherdaten des aktuellen Terminalbildes einschließlich der Felder, Feldbehandlungs- und Anzeigesteuerzeichen sowie Parameterbereiche des Terminals.

Aus dieser Beschreibung wird klar, daß eine Programm-zu-Programm-Verbindung über diese beiden Parameterbereiche möglich ist. Die eigentliche Schnittstelle zwischen Host-Programm und steuernder PC-Software ist das aktuelle Terminalbild des BS2000-Programms, worauf das PC-Programm reagieren kann. Ein Transaktionsprotokoll zwischen den beiden Programmen muß jeweils individuell realisiert werden; die PC-Software übernimmt dann die Rolle eines Anwenders, der mit dem BS2000-Partnerprogramm kommuniziert.

Vereinfachend kann man sagen, daß der BS2000-Bildschirm die eigentliche Schnittstelle zwischen dem PC-Programm und der Anwendung darstellt, weil dieser der PC-Software über die Emulation zur Verfügung gestellt wird (siehe Bild 1).

Modularer Aufbau für offene Schnittstellen

Durch die Nutzung der elementaren Grundfunktionen der Emulation über den Softwareinterrupt ist eine Transaktionsprogrammierung zwar möglich, aber sehr aufwendig. Über die Grundfunktionen der Emulation müssen deshalb übergeordnete Funktionen gelegt werden, die eine wirtschaftliche Abbildung der Transaktionsmimik erlauben. Grundfunktionen und übergeordnete Funktionen sollten aus Gründen der Zweckmäßigkeit modular aufgebaut sein, damit die Schnittstelle zum PC-Benutzerprogramm offen und transparent bleibt.

Obwohl die gewählte Entwicklungsumgebung direkte Software-Interrupts zuläßt, wurde im Sinne einer Modularisierung eine offene Assembler-Schnittstelle zur Bedienung des Interrupts geschaffen, die auch von anderen Sprachumgebungen genutzt werden kann. Der Aufruf der Emulationsschnittstelle in Basic hat folgendes Format: CALL XEM (Bildbereich; Funktionsbereich)

Die aufrufenden Programme müssen mit dem Large-Modell übersetzt sein. Die Parameterablage auf dem Stack entspricht C-Konventionen. Alle anderen Registerkonventionen entsprechen den Regeln der Microsoft-Sprachfamilie. Um die Registerdefinition des Large-Modells in Basic zu erreichen, muß XFM folgendermaßen definiert werden: DECLARE SUB XEM

CDECL ALLIAS "XEM"

(SEG BILDBEREICH; SEG FUNKTIONSBEREICH)

Die Nutzung des Schnittstellenprogramms aus anderen MS-Sprachen heraus ist möglich (zum Beispiel C oder Cobol, Version 3.0). Andere Sprachen, die das Microsoft-Modell unterstützen, haben ebenfalls Zugriff auf das Unterprogramm (zum Beispiel Cobol-Workbench von Microfocus).

Der Zugriff auf die Emulationsfunktionen erfolgt über das Assembler-Programm XEM mit den beiden Parameterbereichen Bilddaten und Funktionsdaten über den Software-Interrupt INT 62(h). Der nächste Schritt ist die Abbildung der Emulationsgrundfunktionen in entsprechenden Modulen.

Um diese Funktionen einem PC-Programm bereitzustellen, muß die Emulation eröffnet werden (OPEN). Nach einem OPEN ist die Emulation nur noch vom PC-Programm erreichbar. Das Gegenstück ist das Schließen der Programmschnittstelle (CLOSE). Ach erfolgtem CLOSE steht die Emulation dem Terminalbediener wie gewohnt zur Verfügung. Mit der SEND-Funktion lassen sich Nachrichten an das BS2000 senden, und mit einer WAIT-Anweisung kann gezielt auf eine oder mehrere Antwortmöglichkeiten des Host-Programms gewartet werden.

Die EDIT schaltet in den Edit-Modus. Wie im normalen Dialogmodus werden alle BS2000" Tastatureingaben dargestellt. Allerdings kann im Edit-Modus nicht gesendet werden, das heißt, bei Eingaben, die eine Datenübertragung auslösen, wird der Edit-Modus beendet. Dieses Procedere ist ereignisgesteuert; die Ereignisse Eingabe definierter Unterbrechungscodes "Auslösung einer Datenübertragung", Ablauf eines Zeitzählers" oder "Empfang von BS2000-Nachrichten" beenden den Edit-Modus. Der BS2000-Bildschirm kann bei Bedarf ausgeblendet werden.

Integration beinhaltet diverse Spezialfunktionen

Ähnlich wie EDITverhält sich TAST, jedoch ohne Abfrage der Tastatur. Es wird statt dessen ein spezifischer Emulations-Keyboard-Puffer abgearbeitet. Dadurch können Spezialfunktionen der Emulation genutzt werden (automatisches Entladen, Wechsel der Anwendung bei Mehrfachemulation etc.). Mit TAST97 sind Tasten im Host-Terminalmodus an die Emulation übertragbar. Sie dient zur Übergabe von Zeichenstrings, Positionier- und Anzeigefunktionen an die im Hintergrund laufende Emulation.

SHOW zeigt den aktuellen BS2000-Bildschirm, und mit FT gelingt der Aufruf eines Filetransfers über den Host-Editor EDT.

MSGTEST prüft, ob Nachrichten vom BS2000 empfangen wurden. Mit Hilfe dieser Funktion erfolgt die Verarbeitung von BS2000-Nachrichten über den Empfangspuffer der Emulation.

Grundmodule als Basis -der Transacktionsmodule

Funktionen wie "BPUT-Senden des aufbereiteten Emulations-Nachrichtenpuffers an den Host und BGET-Empfangen des Emulationsnachrichtenpuffers ohne Nachrichtenaufbereitung sowie "BSHOW-Aufbereitung des Emulationsnachrichtenpuffers" runden die Emulationsgrundfunktionen ab. Diese Grundfunktionen müssen modular in der entsprechenden Entwicklungsumgebung abgebildet werden. Zusätzlich sind Module zur Zeitsteuerung sowie zur Veränderung der Parameterbereiche sinnvoll.

Die Grundmodule dienen als Basis für übergeordnete Transaktionsmodule, die das Transaktionsprotokoll zwischen Host- und PC-Programm abwickeln sollen. Der Austausch der Transaktionsdaten erfolgt über den emulationsinternen BS2000-Bildschirm; weitere Unterprogramme zur Manipulation des BS2000-Bildschirminhaltes (Bildeingriff) bieten zusätzlichen Benutzerkomfort.

Die Grundfunktionen setzen auf der Emulationsschnittstelle XEM auf und decken die Basisaufgaben der Emulation ab. Alle Emulations-Grundfunktionen werden durch entsprechende Basic-Module abgebildet. Einige zusätzliche Hilfen bieten Funktionen wie das generelle Ausbeziehungsweise Einschalten des BS2000-Bildes oder Funktionen zur Zeitsteuerung. Die übergeordneten Funktionen verwenden die obigen Grundfunktionen.

XWAITL wartet eine definierte Zeitspanne auf die Leitungsverbindung der PC-Emulation mit dem BS2000-Rechner. Mit XSELOOK wird ein String gesendet und auf eine vordefinierte Antworten des BS2000-Programms gewartet. XLOOK signalisiert, daß auf eine definierte Rückantwort des Host-Programms gewartet wird.

Die LOOK-Funktionen sind einem BS2000-Anwender vergleichbar, der ein Kommando an ein BS2000-Programm gegeben hat und dann auf eine Rückantwort wartet, die er interpretieren muß (Fehler, Warnung, OK etc.). Mit dem Programm XFT steht dem Entwickler eine Schnittstelle zum Filetransfer über den Host-Editor EDT zur Verfügung.

Die vorgestellten Grundmodule und übergeordneten Funktionen sind die Basis für die Programme, die der Entwickler in seinem PC-Programm zur Realisierung eines Dialogs mit einer BS2000-Anwendung nutzen wird. Die Eröffnung einer BS2000-Anwendung wird durch XOPEN (Open Connection) ausgeführt. Einen nachfolgen den LOGON auf eine BS2000-Kennung erledigt XLOGON.

Ein BS2000-Kommando wird durch das Programm XSTMT abgesetzt" Speziell zum Datenaustausch mit einem Transaktionsmonitor

wie UTM, ATM oder mit anderen transaktionsorientierten Anwendungen stehen spezielle Funktionen bereit. Eine komplette Transaktion mit Warten auf definierte Rückmeldungen des Host-Programms bietet die Funktion XTRANS. XTRANSD wartet nicht auf eine spezielle Rückmeldung, sondern stellt dem PC-Programm den Rückmeldebildschirm des BS2000 zur individuellen Auswertung zur Verfügung.

Die Auswertung eines BS2000-Bildschirms erfolgt mit dem Modul XGETSCR, das bestimmte Feldinhalte selektiert. Das Gegenstück "Setzen von modifizierbaren Feldern in einer BS2000-Maske erledigt XSCRMOD. Eine PC-BS2000-Sitzung wird mit der Funktion XLOGOFF beendet.

Modulrahmen ermöglicht Host-Zugriff

Sämtliche Module bieten eine starke Kohäsion untereinander und eine schwache Adhäsion zum steuernden Hauptprogramm; das heißt, das aufrufende Hauptprogramm ist frei von Definitionen für Parameter der Unterprogramme. Die Parameterübergabe innerhalb der Module erfolgt über Parameterleisten und modulübergreifende Globalvariable.

Der vorgestellte Modulrahmen gestattet den Zugriff auf beliebige Host-Programme. Daten und Dienste des Hosts können somit einem PC-Programm zur weiteren Verarbeitung zur Verfügung gestellt werden. Umgekehrt können Daten des PCs vom Host programmgesteuert verarbeitet werden. Die Datenintegrität zwischen Host und PC ist auf diese Weise garantiert. Sinnvoll ist der Einsatz eines BS2000-Partnerprogramms zum normierten Datenaustausch zwischen Host und PC (zum Beispiel Steuerung über Data-Dictionary). Mit geeigneten Partner-Programmen auf dem BS2000 ist der Host vom PC aus als Datenbankserver nutzbar.

Im Hause Vinzenz Murr wurden mit diesem Modulrahmen bereits PC-Anwendungen realisiert, die den Host als Datenserver nutzen und dem PC-Anwender aktuelle Host-Daten bereitstellen. Mit einem Preislisten Generator werden Listen auf dem PC geschrieben und verwaltet. Die aktuellen Preisinformationen und Artikeltexte stammen aus dem BS2000-Datenbestand. Eine andere Anwendung trägt Wiedervorlagedaten aus dem Siemens Siline-Lohn- und Gehaltssystem und erstellt auf einem PC-Laserdrucker anfallende Schreiben zu Gehaltserhöhungen. Im Operating sorgt eine PC-Anwendung da für, daß ein PC-Drucker bei Bedarf als BS2000-Konsoldrucker funktioniert und der PC als Konsole genutzt werden kann. Bestimmte Tasks sind dabei für eine gezielte Überwachung auswählbar.

Eine typische Anwendung ist ein komfortabler EDT-Filetransfer zwischen PC und Host. Ferner wurden Benutzerdialoge mit dem Siline-Personalwesen automatisiert (zum Beispiel Massenbewegungen oder Massenlöschungen).

Folgende Anwendungen sind geplant:

- Waagenanschluß an den PC und Übergabe der Wiegedaten in einen BS2000-Bildschirm eröffnen neue Möglichkeiten in der Betriebsdatenerfassung und eine problemlose Anbindung dieser Geräte an einen PC mit entsprechenden Schnittstellen.

- Ein "automatischer Operator" soll BS2000 -Jobs Überwachen und steuern. Außerdem wird an einer LMS-Schnittstelle zu BS2000-Bibliotheken gearbeitet. Ferner ist eine Datenschnittstelle in Planung zur Versorgung von Lotus, OA etc. mit Host-Daten und umgekehrt.

- Benutzerdialoge mit Siline-Personalwesen autorisiert.

PC-Host-Verbindungen erhöht Effektivität

Diese Anwendungen sind nur ein kleiner Ausschnitt der Möglichkeiten einer Programm-zu-Programmschnittstelle. Auf jeden Fall eröffnet sich durch Nutzung einer derartigen PC-Host-Verbindung eine verbesserte Integration, die ausgesprochen kostengünstig über die Terminalemulation realisiert werden kann.

Außerdem wird den bislang kaum an Benutzerkomfort gewöhnten BS2000-Anwendern durch die integrierte PC-Nutzung ein multifunktionaler Terminalplatz geboten, der durch PC-Anwendungen und BS2000-Bedienung mit PC-Mitteln effektiver nutzbar ist.