DE69331628T2 - Verfahren und vorrichtung zur multiplexdatenübertragung - Google Patents
Verfahren und vorrichtung zur multiplexdatenübertragungInfo
- Publication number
- DE69331628T2 DE69331628T2 DE69331628T DE69331628T DE69331628T2 DE 69331628 T2 DE69331628 T2 DE 69331628T2 DE 69331628 T DE69331628 T DE 69331628T DE 69331628 T DE69331628 T DE 69331628T DE 69331628 T2 DE69331628 T2 DE 69331628T2
- Authority
- DE
- Germany
- Prior art keywords
- program
- user workstation
- host computer
- session
- computer system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 40
- 230000005540 biological transmission Effects 0.000 title claims description 28
- 238000012546 transfer Methods 0.000 claims description 73
- 238000004891 communication Methods 0.000 claims description 21
- 239000003550 marker Substances 0.000 claims 1
- 230000011218 segmentation Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 41
- 230000008569 process Effects 0.000 description 15
- 230000009471 action Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 6
- 238000003775 Density Functional Theory Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000170006 Bius Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Description
- Die vorliegende Erfindung ist allgemein auf ein System und Verfahren zum Multiplexen von Datenübertragungen gerichtet, und genauer auf ein System und ein Verfahren zum Multiplexen von Datenübertragungen, die zwischen einem Timesharing- Computersystem und einer Benutzerarbeitsstation ausgetauscht werden.
- Ein Benutzer kann auf ein Timesharing-Computersystem über ein Videoanzeigeendgerät zugreifen, das mit dem Timesharing- Computer über ein Datenkommunikationssystem verbunden ist. Der Benutzer kann auf das Timesharing-Computersystem zugreifen, indem er eine Programmsitzung aufbaut mit einem Anwendungs- bzw. Applikationsprogramm, das auf dem Timesharing-Computer ausgeführt wird. Der Benutzer kann mit dem Anwendungsprogramm Wechselwirken, indem er eine Tastatur verwendet, die am Videoanzeigeendgerät angebracht ist, und er kann die Ergebnisse der Anwendung auf dem Bildschirm des Videoanzeigeendgeräts sehen.
- Fortschrittliche Videoanzeigeendgeräte, wie Endgeräte mit verteilter Funktion ("DFTs", englisch: Distributed Function Terminals) ermöglichen es einem Benutzer mehrere Programmsitzungen mit einem Timesharing-Computersystem zu initiieren, durch Errichtung von mehreren Verbindungen zwischen dem DFT und dem Timesharing-Computer. Eine Verbindung wird für jede Programmsitzung errichtet. Das DFT verwendet Software, welche Fenster bildet, um dem Benutzer zu gestatten die mehreren Programmsitzungen gleichzeitig zu sehen. Eine Auswahlmethodologie gestattet es dem Benutzer die Tastatureingabe auf jede besondere Programmsitzung zu richten.
- Ein bedeutender Nachteil der bei DFTs verwendeten Technik ist, dass jeder Programmsitzung eine Verbindung zugewiesen sein muss. Die Zahl der Verbindungen auf jedem Kommunikationspfad zum Timesharing-Computer ist gewöhnlich beschränkt, und muss von allen DFTs geteilt werden, die jenen Kommunikationspfad verwenden.
- Eine Art von Anwendungsprogramm, das als "Sitzungsmanager" bzw. "Sitzungsverwalter" bezeichnet wird und entworfen ist auf einem Timesharing-Computersystem ausgeführt zu werden, hat die Fähigkeit für einen Benutzer, der ein einziges Videoanzeigeendgerät verwendet, gleichzeitig mehrere Programmsitzungen zu errichten und aufrechtzuerhalten. Das Videoanzeigeendgerät hält eine einzige Verbindung mit dem Timesharing-Computer aufrecht, und errichtet eine einzige Programmsitzung mit dem Sitzungsmanager-Programm. Das Sitzungsmanager-Programm hält seinerseits mehrere Programmsitzungen aufrecht mit Anwendungsprogrammen, die auf dem Timesharing-Computersystem ausgeführt werden. Der Benutzer kann in einem gegebenen Zeitpunkt nur eine Programmsitzung sehen und nur mit einer Programmsitzung Wechselwirken. Unter Verwendung einer Tastatursequenz, welche allgemein als "hot key"-Sequenz bzw. Schnelltastensequenz bekannt ist, kann der Benutzer aus den Programmsitzungen auswählen, zum Zwecke der Ansicht und der Tastatureingabe.
- Der Nachteil von Sitzungsmanager-Programmen ist, dass nur ein einziges Anwendungsprogramm auf einmal betrachtet werden kann, und eine Wechselwirkung nur mit einem einzigen Anwendungsprogramm stattfinden kann. Somit besteht ein Bedarf an einem System, welches es einem Benutzer gestattet gleichzeitig mehrere Anwendungsprogramm-Sitzungen zu sehen, es dem Benutzer erlaubt eine Tastatureingabe an eine beliebige Programmsitzung dieser Vielzahl von Programmsitzungen zu richten, und dabei nur eine einzige Verbindung mit dem Timesharing-Computersystem errichtet.
- Das Dokument "Window to Independence from Hardware and Operating System" von Walter Ch. Oehen, übersetzt aus "Technische Rundschau", Band 82, Nr. 35, August 1990, Seiten 40-45, beschreibt das X-Windows-System, das Kommunikationen zwischen einem Hostcomputer und einer Arbeitsstation gestattet.
- Die vorliegende Erfindung ist gerichtet auf ein System zum Multiplexen von Datenübertragungen, die ausgetauscht werden zwischen einem Hostcomputersystem und einer Benutzerarbeitsstation, wobei das Hostcomputersystem und die Benutzerarbeitsstation durch eine Kommunikationsverbindungsstrecke verbunden sind, und wobei ein oder mehr Hostanwendungsprogramme im Hostcomputersystem sitzen und vom Hostcomputersystem ausgeführt werden. Ein Endgeräteemulationsprogramm, welches die Fähigkeit hat, gleichzeitig einen oder mehrere Hostanwendungsprogrammschirme anzuzeigen, sitzt in der Benutzerarbeitsstation und wird in der Benutzerarbeitsstation ausgeführt.
- Das System zum Multiplexen umfasst ein Sitzungsmanagerprogramm bzw. Sitzungsverwaltungsprogramm, das im Hostcomputersystem sitzt und vom Hostcomputersystem ausgeführt wird, zur Errichtung von einer oder mehr Programmsitzungen mit den Hostanwendungsprogrammen, wobei jede der Programmsitzungen ihre eigenen individuellen Datenströme erzeugt, und zur Errichtung einer einzelnen Programmsitzung mit dem Endgeräteemulationsprogramm unter Verwendung einer einzelnen Verbindung zwischen dem Hostcomputersystem und der Benutzerarbeitsstation. Das Endgeräteemulationsprogramm zeigt gleichzeitig den Hostanwendungsprogrammschirm für jede der Programmsitzungen an, die zwischen dem Sitzungsverwaltungsprogramm und den Hostanwendungsprogrammen errichtet sind. Das System umfasst ferner ein Mittel, das in dem Hostcomputersystem und in der Benutzerarbeitsstation sitzt, zum Abfangen der individuellen Datenströme, bevor die individuellen Datenströme von dem Hostcomputersystem an die Benutzerarbeitsstation oder von der Benutzerarbeitsstation an das Hostcomputersystem übertragen werden, ein Mittel, das im Hostcomputersystem und in der Arbeitsstation sitzt, um innere Datenpakete aufzubauen aus den individuellen Datenströmen, die von jeder der Programmsitzungen erzeugt werden, und ein Mittel, das im Hostcomputersystem und in der Benutzerarbeitsstation sitzt, zur Einfügung der inneren Datenpakete in ein oder mehr Datenübertragungspakete für die Übertragung zwischen dem Hostcomputersystem und der Benutzerarbeitsstation über die einzelne Verbindung. Ein Mittel, das in dem Hostcomputersystem und der Benutzerarbeitsstation sitzt, fängt die Datenübertragungspakete ab, die von dem Hostcomputersystem und der Benutzerarbeitsstation empfangen werden, bevor die Datenübertragungspakete von dem Sitzungsverwaltungsprogramm oder dem Endgeräteemulationsprogramm verarbeitet werden. Schließlich gibt es ein Mittel, das in dem Hostcomputersystem und in der Benutzerarbeitsstation sitzt, um die inneren Datenpakete aus den ein oder mehr Datenübertragungspaketen herauszunehmen, um daraus die individuellen Datenströme wieder herzustellen.
- Die vorliegende Erfindung ist ferner gerichtet auf ein Verfahren zum Multiplexen von Datenübertragungen, die zwischen einem Hostcomputersystem und einer Benutzerarbeitsstation ausgetauscht werden, wobei das Hostcomputersystem und die Benutzerarbeitsstation durch eine Kommunikationsverbindungsstrecke verbunden sind, und wobei ein oder mehr Hostanwendungsprogramme in dem Hostcomputersystem sitzen und von dem Hostcomputersystem ausgeführt werden. Ein Endgerätemulationsprogramm, das die Fähigkeit hat gleichzeitig einen oder mehr Hostanwendungsprogrammschirme anzuzeigen, sitzt in der Benutzerarbeitsstation und wird von der Benutzerarbeitsstation ausgeführt. Das Verfahren zum Multiplexen von Datenübertragungen enthält die folgenden Schritte: (1) Errichtung von ein oder mehr Programmsitzungen mit den Hostanwendungsprogrammen, wobei jede Programmsitzung ihre eigenen individuellen Datenströme erzeugt; (2) Errichten einer einzelnen Programmsitzung mit dem Endgeräteemulationsprogramm unter Verwendung einer einzelnen Verbindung zwischen dem Hostcomputersystem und der Benutzerarbeitsstation, wobei das Endgeräteemulationsprogramm gleichzeitig den Hostanwendungsprogrammschirm für jede der Programmsitzungen anzeigt, die mit den Hostanwendungsprogrammen errichtet wurden; (3) Abfangen der individuellen Datenströme, bevor die individuellen Datenströme von dem Hostcomputersystem an die Benutzerarbeitsstation oder von der Benutzerarbeitsstation an das Hostcomputersystem übertragen werden; (4) Aufbauen von inneren Datenpaketen aus den individuellen Datenströmen, die von jeder der Programmsitzungen erzeugt werden; (5) Einfügen der inneren Datenpakete in ein oder mehr Datenübertragungspakete für die Übertragung zwischen dem Hostcomputersystem und der Benutzerarbeitsstation über die einzelne Verbindung; (6) Abfangen der Datenübertragungspakete, die von dem Hostcomputersystem und der Benutzerarbeitsstation empfangen wurden, bevor die Datenübertragungspakete von den Hostanwendungsprogrammen oder dem Endgeräteemulationsprogramm verarbeitet wird; und (7) Herausnehmen der inneren Datenpakete aus dem ein oder mehr Datenübertragungspakete und Wiederherstellen der individuellen Datenströme daraus.
- Das System und Verfahren der vorliegenden Erfindung zum Multiplexen von Datenübertragungen, die zwischen einem Hostcomputersystem und einer Benutzerarbeitsstation ausgetauscht werden, stellen die Mittel bereit, um es einem Benutzer zu gestatten mehrere Anwendungsprogrammsitzungen gleichzeitig zu sehen und eine Tastatureingabe an jede beliebige dieser mehreren Programmsitzungen zu richten, während nur eine einzelne Verbindung zwischen dem Timesharing-Computersystem und der Benutzerarbeitsstation verwendet wird. Dieser und weitere Vorteile der vorliegenden Erfindung gehen aus der folgenden Beschreibung einer bevorzugten Ausführung hervor.
- Damit die vorliegende Erfindung klar verstanden und ohne weiteres verwirklicht werden kann, wird nun eine bevorzugte Ausführung beschrieben, anhand eines Beispiels, unter Bezugnahme auf die begleitenden Figuren, wobei:
- Fig. 1 eine vereinfachte Darstellung eines Timesharing- Computersystems und einer Benutzerarbeitsstation zeigt, bei welchen das System und Verfahren der vorliegenden Erfindung eingesetzt werden können;
- Fig. 2 einen IBM Systems Network Architecture® Protocol Stack bzw. Protokollstapel darstellt;
- Fig. 3 die Schnittstelle zwischen einem Benutzerarbeitsstationsmodul der vorliegenden Erfindung, das die Demultiplex-Verarbeitung der vorliegenden Erfindung durchführt und dem IBM Systems Network Architecture Protocol Stack des Endegeräteemulationsprogramms darstellt;
- Fig. 4 die Schnittstelle zwischen dem Benutzerarbeitsstationsmodul der vorliegenden Erfindung, das die Multiplexverarbeitung ausführt, und dem IBM Systems Network Architecture Protocol Stack des Endgeräteemulationsprogramms darstellt;
- Fig. 5 ein Datenübertragungspaket darstellt;
- Fig. 6 ein äußeres Datenpaket darstellt, welches übertragen wird zwischen einem Hostcomputermodul und dem Benutzerarbeitsstationsmodul der vorliegenden Erfindung;
- Fig. 7 ein inneres Datenpaket darstellt, welches übertragen wird zwischen dem Hostcomputermodul und dem Benutzerarbeitsstationsmodul der vorliegenden Erfindung;
- Fig. 8 ein Funktionsdatenfeld-Abschnitt des inneren Datenpakets für Identifikation darstellt;
- Fig. 9 den Funktionsdatenfeld-Abschnitt des inneren Datenpakets mit Sitzungsliste darstellt;
- Fig. 10 den Funktionsdatenfeld-Abschnitt des inneren Datenpakets für einen Sitzungsverwaltungsprogrammbefehl darstellt;
- Fig. 11 den Funktionsdatenfeld-Abschnitt des inneren Datenpakets für Fensteröffnung darstellt;
- Fig. 12 den Funktionsdatenfeld-Abschnitt des inneren Datenpakets für Fensterschließung darstellt;
- Fig. 13 den Funktionsdatenfeld-Abschnitt des inneren Datenpakets für einen 3270-Datenstrom darstellt;
- Fig. 14 einen Endgerätesitzungsblock darstellt, der in Zusammenhang mit dem Multiplexprogramm der vorliegenden Erfindung verwendet wird;
- Fig. 15 einen Steuerungsblock für den Multiplexmodus veranschaulicht, der in Zusammenhang mit dem Multiplexprogramm der vorliegenden Erfindung verwendet wird;
- Fig. 16 einen Anwendungssitzungsblock darstellt, der in Zusammenhang mit dem Multiplexprogramm der vorliegenden Erfindung verwendet wird;
- Fig. 17 einen Steuerungsblock für eine virtuelle Sitzung darstellt, der in Zusammenhang mit dem Multiplexprogramm der vorliegenden Erfindung verwendet wird;
- Fig. 18 einen Steuerungsblock für eine Benutzerarbeitsstationssitzung darstellt, der in Zusammenhang mit dem Multiplexprogramm der vorliegenden Erfindung verwendet wird;
- Fig. 19 einen Steuerungsblock für eine virtuelle Sitzung der Benutzerarbeitsstation darstellt, der in Zusammenhang mit dem Multiplexprogramm der vorliegenden Erfindung verwendet wird; und
- Fig. 20a-201 Flussdiagramme darstellen, welche den Betrieb des Multiplexprogramms der vorliegenden Erfindung erklären.
- Fig. 1 zeigt eine vereinfachte Darstellung eines typischen Timesharing-Computersystems 10, bei dem das System und Verfahren der vorliegenden Erfindung zum Multiplexen von Datenübertragungen, die zwischen einem Timesharing- Computersystem und einer Benutzerarbeitsstation ausgetauscht werden, eingesetzt werden kann. Ein Hostcomputer 12 ist mit der Bündelsteuerung (englisch: Cluster Controller) oder einer LAN-Netzübergangsbaugruppe 14 (englisch: LAN gateway) über eine Kommunikationsverbindungsstrecke 16 verbunden. Eine Benutzerarbeitsstation 18 ist mit einer Bündelsteuerung oder LAN-Netzübergangsbaugruppe 14 mittels eines Koaxialkabels 20 verbunden. Der Fachmann erkennt, dass mehrere Bündelsteuerungen oder LAN-Netzübergangsbaugruppen 14 mit dem Hostcomputer 12 verbunden sein können, und dass mehrere Benutzerarbeitsstationen 18 mit jeder Bündelsteuerung oder LAN-Netzwerksübergangsbaugruppe 14 verbunden sein können. Der Fachmann erkennt auch, dass die Benutzerarbeitsstation 18 einen PC (nicht abgebildet) umfassen kann, der einen angeschlossenen Videoanzeigeschirm (nicht abgebildet) und eine Tastatur (nicht abgebildet) enthält. Die Benutzerarbeitsstation 18 enthält ein Endgeräteemulationsprogramm 19, damit die Benutzerarbeitsstation 18 als gewöhnliches Videoanzeigeendgerät arbeitet, wenn sie mit dem Hostcomputer 12 kommuniziert. Das Endgeräteemulationsprogramm 19 enthält ein Mittel zum "Anzeigen" von Anwendungsprogrammfenstern 29 auf dem Videoanzeigeschirm (nicht abgebildet), und ein Mittel zum Richten einer Eingabe aus der Tastatur (nicht abgebildet) an jedes beliebige Anwendungsprogrammfenster 29.
- Ein Sitzungsverwaltungsprogramm 22 sitzt im Hostcomputer 12 und wird vom Hostcomputer 12 ausgeführt. Das Sitzungsverwaltungsprogramm bzw. Sitzungsmanagerprogramm 22 ist in der Lage Programmsitzungen mit mehreren Hostanwendungsprogrammen 24 zu errichten, die sich ebenfalls in dem Hostcomputer 12 befinden und von dem Hostcomputer 12 ausgeführt werden. Das Endgeräteemulationsprogramm 19 errichtet eine einzelne Programmsitzung mit dem Sitzungsverwaltungsprogramm 22, unter Verwendung einer einzelnen Verbindung zwischen dem Hostcomputer 12 und der Benutzerarbeitsstation 18. Der Entwurf und die Implementierung des Sitzungsverwaltungsprogramms 22, das Verfahren zur Errichtung einer Programmsitzung zwischen dem Sitzungsverwaltungsprogramm 22 und dem Endgeräteemulationsprogramm 19, und das Verfahren zur Errichtung einer einzelnen Verbindung zwischen dem Hostcomputer 12 und der Benutzerarbeitsstation 18 sind dem Fachmann geläufig.
- Ein Multiplexprogramm 25, das das System und das Verfahren der vorliegenden Erfindung ausführt, umfasst ein Hostcomputermodul 26 und ein Benutzerarbeitsstationsmodul 28. Das Hostcomputermodul 26 ist ein Teil des Sitzungsverwaltungsprogramms 22, und sitzt somit im Hostcomputer 12 und wird vom Hostcomputer 12 ausgeführt, während das Benutzerarbeitsstationsmodul 28 in der Benutzerarbeitsstation 18 sitzt und von ihr ausgeführt wird. Das Multiplexprogramm 25 arbeitet in Zusammenhang mit dem Sitzungsverwaltungsprogramm 22 und Endgeräteemulationsprogramm 19, um die Funktionalität bereitzustellen, damit ein Benutzer an der Benutzerarbeitsstation 18 gleichzeitig mehrere Programmsitzungen errichten und betrachten kann (durch Anwendungsprogrammfester 29), und Tastatureingaben an jede beliebige Programmsitzung dieser mehreren Programmsitzungen richten kann (durch Anwendungsprogrammfenster 29). Dies wird erreicht unter Verwendung einer einzelnen Verbindung zwischen dem Hostcomputer 12 und der Benutzerarbeitsstation 18. Es gibt keine Grenze in der Anzahl von Programmsitzungen, welche zu einem Zeitpunkt errichtet und betrachtet werden können.
- Das Multiplexprogramm 25 enthält ein Kommunikationsprotokoll, welches es gestattet Daten und Flusssteuerungsinformation für eine Programmsitzung in ein einzelnes Datenpaket zu kombinieren, und mehrere Datenpakete, möglicherweise aus mehreren Programmsitzungen, zu einem einzelnen Datenübertragungspaket zu kombinieren. Zusätzlich gestattet das Kommunikationsprotokoll, dass die Datenpakete segmentiert werden können und mehrere Datenübertragungspakete überspannen können. Das Multiplexprogramm 25 erfordert keine Veränderung irgendwelcher physischer Vorrichtungen, der Hostcomputer- Betriebssystemsoftware (nicht abgebildet), der Hostanwendungsprogramme 24 oder der Kommunikationsverbindungsstrecke 16. Der Betrieb sowohl des Hostcomputermoduls 26 als auch des Benutzerarbeitsstationsmoduls 28 wird im folgenden ausführlicher beschrieben, unter Verwendung der in den Fig. 20a bis 201 dargestellten Flussdiagramme.
- Während das System und Verfahren der vorliegenden Erfindung in jeder beliebigen Timesharing-Computersystemumgebung implementiert werden können, wird die hier beschriebene bevorzugte Ausführung unter Bezugnahme auf die IBM "SNA"- Umgebung (IBM Systems Network Architecture, d. h. IBM- Systemnetzwerkarchitektur)-Umgebung beschrieben. Kommunikationen zwischen dem Hostcomputer 12 und der Benutzerarbeitsstation 18 in einer SNA-Umgebung werden nach einem definierten Protokoll gesteuert. Dieses Protokoll besteht aus fünf Schichten von Steuerungsroutinen, welche wenn man sie zusammen betrachtet, als SNA-Protokollstapel bezeichnet werden. Der SNA-Protokollstapel 30 ist in Fig. 2 dargestellt. Der Fachmann erkennt, dass der SNA- Protokollstapel fünf Schichten von Protokollroutinen umfasst: (1) Datenverbindungsstreckensteuerung ("DLC", Data Link Control) 32; (2) Pfadsteuerung ("PC", Path Control) 34; (3) Übertragungssteuerung ("TC", Transmission Control) 36; (4) Datenflusssteuerung ("DFC", Data Flow Control) 38; und (5) Funktionsverwaltung ("FM", Function Management) 40. Ferner ist die Funktion jeder dieser Protokollschichten dem Fachmann geläufig.
- Das Benutzerarbeitsstationsmodul 28 des Multiplexprogramms 25 der vorliegenden Erfindung arbeitet in Zusammenhang mit dem SNA-Protokollstapel 30 der Benutzerarbeitsstation 18, wie in den Fig. 3 und 4 dargestellt. Ein Datenübertragungspaket 42 (welches im folgenden ausführlicher beschrieben wird), welches von dem Sitzungsverwaltungsprogramm 22 an das Endgeräteemulationsprogramm 19 gerichtet wird, tritt bei der DLC-Schicht 32 in den SNA-Protokol< lstapel 30 der Benutzerarbeitsstation 18 ein. Das Datenübertragungspaket 42 läuft dann durch die DLC-Schicht 32 und tritt in die PC- Schicht 34 ein. Bei der PC-Schicht 34 wird das Datenübertragungspaket 42 von dem Benutzerarbeitsstationsmodul 28 des Multiplexprogramms 25 abgefangen, welches bestimmte Demultiplex-Funktionen am Datenübertragungspaket 42 ausführt, wie im folgenden ausführlicher beschrieben wird. Nachdem das Demultiplexen des Datenübertragungspakets 42 vollendet ist, gibt das Benutzerarbeitsstationsmodul 28 das entmultiplexte Datenpaket 43 an den SNA-Protokollstapel 30 zurück, bei der PC-Schicht 34. Das entmultiplexte Datenpaket 43 läuft dann durch die TC- Schicht 36, die DFC-Schicht 38 und die FM-Schicht 40, um dann an das Endgeräteemulationsprogramm 19 übertragen zu werden.
- Ein nicht-gemultiplextes Datenpaket 45, das aus dem Endgeräteemulationsprogramm 19 an das Sitzungsverwaltungsprogramm 22 gerichtet ist, wird auf ähnliche, aber umgekehrte Weise verarbeitet. Das nichtgemultiplexte Datenpaket 45 tritt bei der FM-Schicht 40 in den SNA-Protokollstapel 30 ein und wandert durch die DFC- Schicht 38 und die TC-Schicht 36 zur PC-Schicht 34. Bei der PC-Schicht 34 wird das nicht-gemultiplexte Datenpaket 45 von dem Benutzerarbeitsstationmodul 28 des Multiplexprogramms 25 abgefangen, von dem Benutzerarbeitsstationsmodul 28 gemultiplext (wie im folgenden ausführlicher beschrieben) und dann der PC-Schicht 34 zurückgegeben. Das Datenübertragungspaket 42 (das Ergebnis des Multiplexprozesses) wandert dann durch die DLC-Schicht 32, um dann an die Kommunikationssoftware (nicht abgebildet) weitergegeben zu werden, für die Übertragung an das Sitzungsverwaltungsprogramm 22.
- Das Hostcomputermodul 26 des Multiplexprogramms 25 arbeitet im Zusammenhang mit dem SNA-Protokollstapel 30 des Hostcomputers 12 durch Empfangen von Datenübertragungspaketen 42, die aus dem Endgeräteemulationsprogramm 19 übertragen wurden, nachdem sie durch alle Schichten des SNA- Protokollstapels 30 gelaufen und aus der FM-Schicht 40 aufgetaucht sind.
- Verschiedene Arten von Datenübertragungspaketen 42 werden von dem Hostcomputermodul 26 aus dem Hostcomputer 12 an die Benutzerarbeitsstation 18, und von dem Benutzerarbeitsstationsmodul 28 aus der Benutzerarbeitsstation 18 an den Hostcomputer 12 übertragen. Wiederum, während das System und Verfahren der vorliegenden Erfindung in jeder beliebigen Timesharing- Computersystemumgebung implementiert werden können, wird die hier beschriebene, bevorzugte Ausführung bezüglich der Datenübertragungspakete 42 unter Bezugnahme auf die IBM SNA- Umgebung beschrieben. Ferner erkennt der Durchschnittsfachmann, dass während aus Gründen der Einfachheit der Beschreibung gesagt wird, dass das Hostcomputermodul 26 und das Benutzerarbeitsstationsmodul 28 Datenübertragungspakete 42 "übertragen", werden die Datenübertragungspakete 42 für die tatsächliche Übertragung an Kommunikationssoftware (nicht abgebildet) im Hostcomputer 12 und der Benutzerarbeitsstation 18 weitergegeben.
- Fig. 5 veranschaulicht die Struktur eines Datenübertragungspakets. Das Datenübertragungspaket 42 enthält einen Übertragungs-Header (Transmission Header) 50, einen Anforderungs/Antwort-Header (Request/Response Header) 52, einen strukturierten Feldbefehl (Structured Field Command) 54, ein Längenfeld (Length Field) 56, eine OEM- Datenstrukturfeldart (OEM Data Structured Field Type) 58 und ein äußeres Datenpaket 60. Der Fachmann erkennt, dass alle Felder des Datenübertragungspakets 42 außer dem äußeren Datenpaket 60 den Feldern einer Pfadinformationseinheit ("PIU", Path Information Unit) des IBM SNA-Protokolls entsprechen. Dem strukturierten Feldbefehl 54 wird ein hexadezimaler Wert von "F3", schreibstrukturierter Feldbefehl (Write Structured Field Command), in Datenübertragungspaketen 42 zugewiesen, die aus dem Hostcomputermodul 26 an das Benutzerarbeitsstationsmodul 28 übertragen werden, und ein hexadezimaler Wert von "88", Aktionsidentifikationsbefehl (Action Identifier Command), in Datenübertragungspaketen 42, die aus dem Benutzerarbeitsstationsmodul 28 an das Hostcomputermodul 26 übertragen werden. Die OEM- Datenstrukturfeldart 58 (hexadezimal "OFIF") zeigt an, dass alle dem Befehl folgenden Daten in einem Format erscheinen, das mit dem Protokoll oder der Vorrichtung kompatibel ist, oder im Fall des Hostcomputermoduls 26 und Benutzerarbeitsstationsmoduls 28 der vorliegenden Erfindung, mit der Software, die die Daten empfängt. Somit ist das äußere Datenpaket 60 ein Feld einer PIU, das gemäß den Erfordernissen des Multiplexprogramms 25 formatiert werden kann.
- Fig. 6 zeigt die Details des äußeren Datenpakets 60. Das äußere Datenpaket 60 enthält eine Sequenznummer 62 und ein oder mehr innere Datenpakete 64. Die Sequenznummer 62 ist eine eindeutige Identifikationsnummer, welche vom Hostcomputermodul 26 erzeugt wird. Die Sequenznummer 62 wird bei jeder Übertragung eines äußeren Datenpakets 60 aus dem Hostcomputermodul 26 an das Benutzerarbeitsstationsmodul 28 um eins inkrementiert. Das Benutzerarbeitsstationsmodul 28 platziert die letzte Sequenznummer 62, die sie in dem letzten äußeren Datenpaket 60, das vom Hostcomputermodul 26 an das Benutzerarbeitsstationsmodul 28 übertragen wurde, empfangen hat, in jedes äußere Datenpaket 60, das es zurück zum Hostcomputermodul 26 sendet.
- Die Details des inneren Datenpakets 64 sind in Fig. 7 dargestellt. Das erste Element des inneren Datenpakets 64 ist ein Längefeld 66. Das Längenfeld 66 enthält die Länge (in Bytes) des inneren Datenpakets 64. Die Strukturfeldart 68 ist eingefügt, um dem inneren Datenpaket 64 die Struktur eines strukturierten Felddatenpakets der Art 3270 zu geben. Ein inneres Datenpaket 64 kann größer sein als ein äußeres Datenpaket 60, und kann somit mehrere äußere Datenpakete 60 überspannen. Jeder Abschnitt des gespannten inneren Datenpakets 64 wird als Segment bezeichnet. Das Spann-Flag bzw. die Spannmarkierung 70 des inneren Datenpakets 64 zeigt an, ob ein Spannen stattgefunden hat, und wenn dem so ist, wird die Position des Segments innerhalb der Serie von Segmenten angezeigt. Die gestatteten Werte des Spann-Flags 70 und ihre Bedeutungen sind in der folgenden Tabelle I angegeben.
- Hexadezimal 03 = einziges Segment
- Hexadezimal 02 = erstes aber nicht letztes Segment
- Hexadezimal 01 = letztes aber nicht erstes Segment
- Hexadezimal 00 = weder erstes noch letztes Segment
- Zusätzlich zur Übertragung von Datenströmen des 3270-Typs zwischen dem Hostcomputermodul 26 und dem Benutzerarbeitsstationsmodul 28, werden innere Datenpakete 64 verwendet, um Steuerinformation zu übertragen. Der Funktionscode 72 zeigt die Art von Information an, welche im Funktionsdatenfeld 74 erscheint. Die gestatteten Werte und Bedeutungen des Funktionscodes 72 sind unten in Tabelle II gezeigt.
- Hexadezimal 00 = Inneres Nulldatenpaket
- Hexadezimal 01 = Inneres Datenpaket für Identifikation
- Hexadezimal 02 = Inneres Datenpaket für Sitzungsliste
- Hexadezimal 03 = Inneres Datenpaket für Sitzungsverwaltungsprogramm-Befehl
- Hexadezimal 04 = Inneres Datenpaket für Fensteröffnung
- Hexadezimal 05 = Inneres Datenpaket für Fensterschließung
- Hexadezimal 07 = Inneres Datenpaket für 3270- Datenstrom
- Die Struktur des Funktionsdatenfelds 74 für jeden der Funktionscodes wird unten beschrieben.
- Das Funktionsdatenfeld 74 des inneren Datenpakets 64 für Identifikation (Fig. 8) umfasst die folgenden Komponenten: (1) Hostcomputermodulname 76; (2) Hostcomputermodul- Versionsnummer 78; und (3) Benutzeridentifikations- Zeichenstring 80. Der Hostcomputermodulname 76 und die Hostcomputermodul-Versionsnummer 78 identifizieren das Hostcomputermodul 26. Der Benutzeridentifikationscode 80 wird während des Anmeldeprozesses in das Sitzungsverwaltungsprogramm 22 vom Benutzer bereitgestellt.
- Das Funktionsdatenfeld 74 des inneren Datenpakets 64 für eine Sitzungsliste (Fig. 9) umfasst die folgenden Komponenten: (1) Sitzungsverwaltungsprogramm-Mitteilung 82; (2) Programmsitzungsname 84; (3) Programmsitzungsbeschreibung 86, und (4) Programmsitzungszustand 88. Ein Satz von Einträgen umfassend den Programmsitzungsname 84, die Programmsitzungsbeschreibung 86 und den Programmsitzungszustand 88 ist enthalten in dem Funktionsdatenfeld 74 des inneren Datenpakets 64 für die Sitzungsliste, für jedes Hostanwendungsprogramm 24, das dem Benutzer auf dem Hostcomputer 12 zur Verfügung steht. Die Sitzungsverwaltungsprogramm-Mitteilung 82 ist eine Mitteilung, welche den Status des letzten Öffnungs- oder Schließ-Sitzungsverwaltungsprogrammbefehls wiedergibt, der aus dem Benutzerarbeitsstationsmodul 28 an das Hostcomputermodul 26 übertragen wurde, für eine Interpretation durch das Sitzungsverwaltungsprogramm 22.
- Das Funktionsdatenfeld 74 des inneren Datenpakets 64 für einen Sitzungsverwaltungsprogrammbefehl (Fig. 10) umfasst die folgende Komponenten: (1) Sitzungsverwaltungsprogramm- Befehlsstring 90. Der Sitzungsverwaltungsprogramm- Befehlsstring 90 ist ein Befehlsstring, der vom Benutzerarbeitsstationsmodul 28 an das Hostcomputermodul 26 geschickt wird, für eine Interpretation durch das Sitzungsverwaltungsprogramm 22.
- Das Funktionsdatenfeld 74 des inneren Datenpakets 64 für Fensteröffnung (Fig. 11) umfasst die folgenden Komponenten: (1) Sitzungsverwaltungsprogramm-Korrelator 92; (2) Benutzerarbeitsstations-Korrelator 94; (3) Programmsitzungsname 96; (4) Benutzerarbeitsstations- Modellname 98; und (5) BIND-Anforderungseinheit (BIND Request Unit) 100. Der Sitzungsverwaltungsprogramm-Korrelator 92 ist die Speicheradresse des inneren Speicherbereichs (nicht abgebildet) des Hostcomputermoduls 26 eines Anwendungssitzungsblocks (unten beschrieben) für das Hostanwendungsprogramm 24, für welches ein Anwendungsprogrammfenster 29 bei der Benutzerarbeitsstation 18 geöffnet werden soll. Der Benutzerarbeitsstations- Korrelator 94 ist die Speicheradresse im internen Speicherbereich (nicht abgebildet) des Benutzerarbeitsstationsmoduls 28 des Steuerungsblocks für eine virtuelle Sitzung der Benutzerarbeitsstation (unten beschrieben) für das Anwendungsprogrammfenster 29, das bei der Benutzerarbeitsstation 18 geöffnet werden soll. Der Programmsitzungsname 96 ist die Identifikation des Hostanwendungsprogramms 24, die vom Benutzer spezifiziert wird und von dem Endgeräteemulationsprogramm 19 als Titel des Anwendungsprogrammfensters 29 auf der Benutzerarbeitsstation 18 verwendet wird. Der Benutzerarbeitsstations-Modellname 98 wird von dem Hostcomputermodul 26 und dem Benutzerarbeitsstationsmodul 28 verwendet, um auf der Benutzerarbeitsstation 18 ein Fenster zu öffnen mit den Charakteristiken (Zeilenzahl, Spaltenzahl, Grafikunterstützung, usw.) der Benutzerarbeitsstation 18, die vom Benutzer spezifiziert wurden. Der Fachmann erkennt, dass die BIND-Anforderungseinheit 100 in dem IBM SNA-Protokoll verwendet wird, um eine Programmsitzung zwischen einem Sitzungsverwaltungsprogramm 22 und einem Hostanwendungsprogramm 24 zu errichten.
- Das Funktionsdatenfeld 74 des inneren Datenpakets 64 für Fensterschließung (Fig. 12) umfasst die folgenden Komponenten: (1) Sitzungsverwaltungsprogramm-Korrelator 102; (2) Benutzerarbeitsstations-Korrelator 104; und (3) Programmsitzungsname 106. Jede dieser Komponenten wurde bezüglich des Funktionsdatenfelds 74 des inneren Datenpakets 64 für Fensteröffnung (Fig. 11) beschrieben.
- Das Funktionsdatenfeld 74 des inneren Datenpakets 64 für einen 3270-Datenstrom (Fig. 13) umfasst die folgenden Komponenten: (1) Sitzungsverwaltungsprogramm-Korrelator 108; (2) Benutzerarbeitsstations-Korrelator 110; (3) Sequenznummer 112; und (4) Datenpaket 114. Der Sitzungsverwaltungsprogramm- Korrelator 108, der Benutzerarbeitsstations-Korrelator 110 und die Sequenznummer 112 wurden oben beschrieben. Das Datenpaket 114 ist einer Grundinformationseinheit ("BIU", Basic Information Unit) in dem IBM SNA-Protokoll äquivalent.
- Die folgenden Abschnitte beschreiben Speichersteuerungsblöcke, die vom Hostcomputermodul 26 verwendet werden, um die Programmsitzung zu steuern, die zwischen dem Sitzungsverwaltungsprogramm 22 und dem Endgeräteemulationsprogramm 19 errichtet wurde. Jeder Speichersteuerungsblock, der unten beschrieben wird, sitzt in dem internen Speicherbereich (nicht abgebildet) des Hostcomputermoduls 26 im Hostcomputer 12.
- Fig. 14 zeigt einen Endgerätesitzungsblock 140. Der Endgerätesitzungsblock 140 beschreibt die Kommunikationsfähigkeiten der Benutzerarbeitsstation 18 und den Zustand der Programmsitzung, die errichtet ist zwischen dem Sitzungsverwaltungsprogramm 22 und dem Endgeräteemulationsprogramm 19. Der Endgerätesitzungsblock enthält, unter anderem, die folgenden Komponenten: (1) Speicheradresse des Multiplexmodus-Steuerungsblocks (unten beschrieben) 142; (2) Multiplexmodusfähig-Flag 144; (3) Multiplexmodus-Flag 146; (4) Eigenrichtungs-Flag bzw. Richtungsbesitz-Flag 148; (5) Flag 150 für volle Warteschlange; (6) Zwischenklammern-Flag 152; und (7) Speicheradresse des ersten Elements in einer verknüpften Liste (englisch: Linked List) von Anwendungssitzungsblöcken (wird unten beschrieben) 154. Das Multiplexmodusfähig-Flag 144 ist wahr (auf logisch 1 gesetzt), wenn die Benutzerarbeitsstation 18 in der Lage ist im Multiplexmodus zu arbeiten, d. h. mit dem Multiplexprogramm 25 der vorliegenden Erfindung. Das Multiplexmodus-Flag 146 ist wahr (auf logisch 1 gesetzt), wenn die Benutzerarbeitsstation 18 tatsächlich im Multiplexmodus arbeitet. Das Eigenrichtungs- Flag 148 und Zwischenklammern-Flag 152 arbeiten gemäß dem IBM SNA-Protokoll für Halbduplex-, Flip-Flop-Kommunikationen zwischen dem Hostcomputer 12 und der Benutzerarbeitsstation 18, wie dem Fachmann geläufig ist. Das Flag 150 für volle Warteschlange ist wahr (auf logisch 1 gesetzt) wenn die Warteschlange für innere Datenpakete (wird unten ausführlicher beschrieben) voll ist.
- Der Multiplex-Steuerungsblock 156, der in Fig. 15 dargestellt ist, enthält Information bezüglich der Multiplexmodus- Programmsitzung, d. h. der Programmsitzung, welche das Multiplexprogramm 25 verwendet, die errichtet ist zwischen dem Sitzungsverwaltungsprogramm 22 und dem Endgeräteemulationsprogramm 19. Der Multiplexmodus- Steuerungsblock 156 enthält unter anderem die folgenden Komponenten: (1) Sequenznummer 158; (2) Speicheradresse der Ausgabeschlange der inneren Datenpakete (wird unten ausführlicher beschrieben) 162; und (3) Gesamtzahl von Bytes, die in der Schlange 161 für innere Datenpakete gespeichert ist (wird unten ausführlicher beschrieben). Die Funktion der Sequenznummer 158 wurde oben beschrieben. Die Warteschlange für innere Datenpakete (die unten ausführlicher beschrieben wird) ist eine FIFO-Schlange von inneren Datenpaketen 64, die für die Übertragung an das Benutzerarbeitsstationsmodul 28 gespeichert werden.
- Fig. 16 veranschaulicht einen Anwendungssitzungsblock 164. Der Anwendungssitzungsblock 164 enthält Information über den Zustand der Programmsitzung zwischen dem Sitzungsverwaltungsprogramm 22 und einem einzelnen Hostanwendungsprogramm 24. Ein Anwendungssitzungsblock 164 wird für jede Programmsitzung erzeugt, die errichtet ist zwischen dem Sitzungsverwaltungsprogramm 22 und einem Hostanwendungsprogramm 24. Der Anwendungssitzungsblock 164 enthält unter anderem die folgenden Komponenten: (1) Speicheradressverknüpfungen zu anderen Anwendungssitzungsblöcken 166; (2) Flag 168 für zurückgewiesene Pakete; (3) Speicheradresse des Anwendungsschirmpuffers 170; (4) Speicheradresse des Steuerungsblocks 172 für virtuelle Sitzungen; und (5) das Flag 174 für virtuelle Sitzungen. Das Flag 168 für abgewiesene Pakete ist wahr (auf logisch 1 gesetzt) wenn die Warteschlange für innere Datenpakete (welche unten ausführlicher beschrieben wird) voll ist, und ein Hostanwendungsprogramm 24 Daten an die Benutzerarbeitsstation 18 übertragen muss. Das Flag 174 für virtuelle Sitzungen ist wahr (auf logisch 1 gesetzt) wenn ein inneres Datenpaket 64 zur Fensteröffnung (Fig. 11) für das bestimmte Hostanwendungsprogramm 24, das mit einem bestimmten Anwendungssitzungsblock (164) in Beziehung steht, von dem Hostcomputermodul 26 aus der Benutzerarbeitsstationsmodul 28 empfangen wurde.
- Ein Steuerungsblock 176 für virtuelle Sitzungen ist in Fig. 17 dargestellt. Der Steuerungsblock 176 für virtuelle Sitzungen enthält Informationen betreffend den Zustand der "virtuellen" Programmsitzung, die errichtet ist zwischen einem Hostanwendungsprogramm 24 und einem Endgeräteemulationsprogramm 19. Der Steuerungsblock 176 für virtuelle Sitzungen enthält unter anderem die folgenden Komponenten: (1) Benutzerarbeitsstations-Korrelator 178; und (2) Speicheradresse der Segmentwarteschlange 179 für ankommende innere Datenpakete. Die Funktion des Arbeitsstationskorrelators 178 wurde oben beschrieben. Die Funktion der Segmentwarteschlange für ankommende innere Datenpakete wird unten beschrieben.
- Die folgenden Abschnitte beschreiben Speichersteuerungsblöcke, welche von dem Benutzerarbeitsstationsmodul 28 verwendet werden, um die Programmsitzung zu steuern, die zwischen dem Sitzungsverwaltungsprogramm 22 und dem Endgeräteemulationsprogramm 19 errichtet ist. Jeder Speichersteuerungsblock, der unten beschrieben wird, sitzt im internen Speicherbereich (nicht abgebildet) des Benutzerarbeitsstationsmoduls 28 in der Benutzerarbeitsstation 18.
- Der Benutzerarbeitsstations-Sitzungssteuerungsblock 182 ist in Fig. 18 abgebildet. Der Benutzerarbeitsstations- Sitzungssteuerblock 182 enthält Informationen betreffend die Programmsitzung, die errichtet ist zwischen dem Endgeräteemulationsprogramm 19 und Sitzungsverwaltungsprogramm 22. Der Benutzerarbeitsstations- Sitzungssteuerblock 182 enthält unter anderem die folgenden Komponenten: (1) Speicheradresse des Ausgangspuffers 184; (2) Speicheradresse der Ausgabeschlange 186 für innere Datenpakete; (3) Speicheradresse des Sitzungslistenblocks 188; (4) Multiplexmodus-Flag 190; (5) Eigenrichtungs-Flag 192; (6) Sequenznummer 194; (7) Zwischenklammern-Flag 196; (8) Speicheradresse des Puffers für individuelle Segmente von inneren Datenpaketen 198; (9) Benutzeridentifikations- Zeichenstring 200; und (10) Tabelle von Speicheradressen von Steuerungsblöcken von virtuellen Sitzungen für die Benutzerarbeitsstation (wird unten beschrieben) 202. Der Ausgabepuffer ist ein Speicherblock im internen Speicherbereich (nicht abgebildet) des Benutzerarbeitsstationsmoduls 28, der zum Aufbau von Datenübertragungspaketen 42 verwendet wird. Die Ausgabeschlange für innere Datenpakete wird unten ausführlicher beschrieben. Der Sitzungslistenblock ist ein Speicherblock im internen Speicherbereich (nicht abgebildet) des Benutzerarbeitsstationsmoduls 28, der eine Liste von Hostanwendungsprogrammen 24 enthält, die dem Benutzer zur Verfügung stehen. Die Funktion des Segmentpuffers wird unten in Zusammenhang mit dem Betrieb des Multiplexprogramms 25 beschrieben.
- Fig. 19 veranschaulicht einen Steuerungsblock 204 für virtuelle Sitzungen der Benutzerarbeitsstation. Der Steuerungsblock 204 für virtuelle Sitzungen der Benutzerarbeitsstation enthält Informationen betreffend die "virtuelle" Programmsitzung, die errichtet ist zwischen dem Endgeräteemulationsprogramm 19 und einem Hostanwendungsprogramm 24. Der Steuerungsblock 204 für virtuelle Sitzungen der Benutzerarbeitsstation enthält unter anderem die folgenden Komponenten: (1) Sitzungsverwaltungsprogramm-Korrelator 206; (2) die logische Einheitennummer 208 des virtuellen Endgeräts; (3) die logische Einheitennummer 210 der Hostanwendung; und (4) den Benutzerarbeitsstations-Korrelator 207. Der Sitzungsverwaltungs-Korrelator 206 wurde oben beschrieben. Die logische Einheitennummer 208 des virtuellen Endgeräts und die logische Einheitennummer 210 des Anwendungsprogramms sind Identifikatoren, die verwendet werden um Datenübertragungspakete zwischen dem Hostcomputermodul 26 und dem Benutzerarbeitsstationsmodul 28 zu senden und zu empfangen, und um diese Übertragungsdatenpakete 42 kompatibel mit dem IBM SNA-Protokoll zu machen.
- Das Flussdiagramm der Fig. 20a veranschaulicht den Prozess für das Einloggen bzw. das Logon in dem Multiplexprogramm 25 der vorliegenden Erfindung. Während des Logon-Prozesses bestimmt das Hostcomputermodul 26 des Multiplexprogramms 25 ob die Benutzerarbeitsstation 18 in der Lage ist in Kooperation mit dem Multiplexprogramm 25 zu arbeiten, d. h. in einem "Multiplexmodus". Im Schritt 200 fordert das Benutzerarbeitsstationsmodul 28 den Benutzer auf (über den Videoanzeigeschirm (nicht abgebildet)) einen Logon-Befehl einzugeben (über die Tastatur (nicht abgebildet)). Nachdem der Benutzer den Logon-Befehl eingibt, schreitet die Programmsteuerung mit Schritt 202 fort, bei dem das Hostcomputermodul 26 in Zusammenarbeit mit dem Sitzungsverwaltungsprogramm 22 eine Programmsitzung zwischen dem Sitzungsverwaltungsprogramm 22 und dem Endgeräteemulationsprogramm 19 errichtet. Das Hostcomputermodul 26 empfängt auch einen Datenblock, der Definitionen der Fähigkeiten der Benutzerarbeitsstation 18 enthält. Der Fachmann erkennt diesen Datenblock als die CINIT RU des IBM SNA-Protokolls. Um die Programmsitzung zu errichten erzeugt das Hostcomputermodul 26 unter anderem einen Endgerätesitzungsblock 140 (Fig. 14), unter Verwendung des Inhalts von CINIT RU. Der Endgerätesitzungsblock 140 identifiziert eindeutig die Benutzerarbeitsstation 18 und den Zustand der Programmsitzung, die zwischen dem Sitzungsverwaltungsprogramm 22 und dem Endgeräteemulationsprogramm 19 errichtet ist.
- Im Schritt 204 wird das Multiplexmodusfähig-Flag 144 im Endgerätesitzungsblock 140 vom Hostcomputermodul 26 zurückgesetzt. Die Programmsteuerung schreitet dann mit Schritt 206 fort, bei dem das Hostcomputermodul 26 bestimmt, ob die Benutzerarbeitsstation 18 fähig ist im Multiplexmodus zu arbeiten. Zunächst bestimmt das Hostcomputermodul 26, ob die Benutzerarbeitsstation 18 "abfragbar" (englisch: query able) ist (IBM 3270 Technologie). Diese Information ist in der CINIT R U enthalten. Wenn das Benutzerarbeitsstationsmodul 18 "abfragbar" ist, wird ein Fragedatenstrom vom Hostcomputermodul 26 an das Benutzerarbeitsstationsmodul 28 übertragen. Wenn der Antwortdatenstrom, der vom Benutzerarbeitsstationsmodul 28 an das Hostcomputermodul 26 geschickt wird, eine OEM-Datenstrukturfeldart (OEM Data Structured Field Type) und einen Zeichenstring enthält, der das Benutzerarbeitsstationsmodul 28 identifiziert, dann ist die Benutzerarbeitsstation 18 in der Lage im Multiplexmodus zu arbeiten. Wenn das Hostcomputermodul 26 bestimmt, dass die Benutzerarbeitsstation 18 in der Lage ist, im Multiplexmodus zu arbeiten, schreitet die Programmsteuerung mit Schritt 208 fort, bei dem das Hostcomputermodul 26 das Multiplexmodusfeld-Flag 144 im Endgerätesitzungsblock 140 auf wahr (auf logisch 1 setzt) setzt. Wenn das Hostcomputermodul 26 bei Schritt 206 bestimmt, dass die Benutzerarbeitsstation 18 nicht in der Lage ist, im Multiplexmodus zu arbeiten, oder nach der Ausführung von Schritt 208, schreitet die Programmsteuerung mit Schritt 210 fort, bei dem die Programmsteuerung übergeben wird an das Sitzungsverwaltungsprogramm 22, für die Vollendung der Logon- Verarbeitung.
- Nachdem der Logon-Prozess vom Sitzungsverwaltungsprogramm 22 abgeschlossen ist, schreitet die Programmsteuerung mit Schritt 300 des Flussdiagrams der Fig. 20b fort, bei dem der Anmelde-Prozess bzw. Signon-Prozess eingeleitet wird. Der Anmeldeprozess gestattet es dem Benutzer, Zugriff auf das Sitzungsverwaltungsprogramm 22 zu erhalten, das auf dem Hostcomputer 12 ausgeführt wird. Im Schritt 300 des Flussdiagrams der Fig. 20b gibt der Benutzer einen Benutzeridentifikations-Zeichenstring und ein Passwort ein, bei dem Anmeldeschirm, der vom Sitzungsverwaltungsprogramm 22 erzeugt wird. Im Schritt 302 validiert das Sitzungsverwaltungsprogramm 22 den Benutzeridentifikations-. Zeichenstring und das Passwort; wenn gültig, schreitet die Programmsteuerung mit Schritt 304 fort. Ansonsten geht die Programmsteuerung zum Schritt 300 zurück, für die Neueingabe des Benutzeridentifikations-Zeichenstrings und des Passworts.
- Im Schritt 304 bestimmt das Hostcomputermodul 26 ob das Multiplexmodusfähig-Flag 144 im Endgerätesitzungsblock 140 wahr ist (auf logisch 1 gesetzt ist). Wenn das Multiplexmodusfähig-Flag 144 nicht wahr ist, schreitet die Programmsteuerung mit Schritt 306 fort, bei dem die Programmsteuerung vom Hostcomputermodul 26 an das Sitzungsverwaltungsprogramm 22 übergeben wird, wo die normale (kein Multiplexmodus) Anmeldeprozedur weitergeht. Wenn jedoch das Hostcomputermodul 28 im Schritt 304 bestimmt, dass das Multiplexmodusfähig-Flag 144 wahr ist, schreitet die Programmsteuerung mit Schritt 308 fort. Im Schritt 308 werden vom Hostcomputermodul 26 die folgenden Aufgaben ausgeführt: (1) Aufbauen eines Multiplexmodus-Steuerungsblocks 156 (Fig. 15); (2) Speichern der Adresse des Multiplexmodus- Steuerungsblocks 156 in Punkt bzw. Element 142 des Endgerätesitzungsblocks 140 (Fig. 14); (3) das Multiplexmodus-Flag 146 im Endgerätesitzungsblock 140 auf wahr setzen (auf logisch 1 setzen); (4) die Sequenznummer 158 im Multiplexmodus-Steuerblock 156 initialisieren (auf binär 1); und (5) ein Datenübertragungspaket 42, welches ein inneres Datenpaket 64 für Identifikation (Fig. 8) enthält, an das Benutzerarbeitsstationsmodul 28 richten (siehe das in Fig. 20f gezeigte Flussdiagramm und die Beschreibung unten für eine Beschreibung darüber, wie Datenübertragungspakete 42 zwischen dem Hostcomputermodul 26 und dem Benutzerarbeitsstationsmodul 28 transportiert werden).
- Die Programmsteuerung wird dann mit Schritt 310 fortgesetzt, bei dem das Benutzerarbeitsstationsmodul 28 das innere Datenpaket 64 für Identifikation empfängt, welches das Benutzerarbeitsstationsmodul 28 dazu bringt, die Benutzerarbeitsstation 18 in den Multiplexmodus zu setzen, indem das Multiplexmodus-Flag 190 in dem Benutzerarbeitsstationssitzungs-Steuerungsblock 182 (Fig. 18) auf wahr (auf logisch 1) eingestellt wird. Das Benutzerarbeitsstationsmodul 28 schickt dann ein inneres Nulldatenpaket 64 bzw. leeres inneres Datenpaket 64 (ein inneres Nulldatenpaket enthält kein Funktionsdatenfeld 74) an das Hostcomputermodul 26. Bei Schritt 312 empfängt das Hostcomputermodul 26 das innere Nulldatenpaket 64 und überträgt ein inneres Datenpaket 64 für eine Sitzungsliste (Fig. 9) an das Benutzerarbeitsstationsmodul 28.
- Die Programmsteuerung wird dann mit Schritt 314 fortgesetzt, bei dem das Benutzerarbeitsstationsmodul 28 das innere Datenpaket 64 für die Sitzungsliste empfängt, und die Information in einem Sitzungslistenblock speichert, dessen Speicheradresse im Punkt bzw. Element 188 des Benutzerarbeitsstationssitzungs-Steuerungsblocks 182 (Fig. 18) gespeichert wird. Das Benutzerarbeitsstationsmodul 28 überträgt dann ein inneres Nulldatenpaket 64 an das Hostcomputermodul 26. Die Programmsteuerung wird dann mit Schritt 316 fortgesetzt, bei dem das Hostcomputermodul 26 das innere Nulldatenpaket 64 aus dem Benutzerarbeitsstationsmodul 28 empfängt und dann die Steuerung an das Sitzungsverwaltungsprogramm 22 weitergibt, damit alle vom Sitzungsverwaltungsprogramm 22 initiierten Programmsitzungen verarbeitet werden können (siehe untere Beschreibung, welche sich auf die Aktivierung von "virtuellen" Programmsitzungen bezieht).
- Das Flussdiagramm der Fig. 20c veranschaulicht die Prozedur, durch welche eine "virtuelle" Programmsitzung aktiviert wird. Ein "virtuelle" Programmsitzung ist eine Programmsitzung, die zwischen einem Hostanwendungsprogramm 24 und einem Endgeräteemulationsprogramm 19 errichtet wird. Die "virtuelle" Programmsitzung wird auf zwei "realen" Programmsitzungen aufgebaut: (1) eine "reale" Programmsitzung, die zwischen dem Sitzungsverwaltungsprogramm 22 und dem Hostanwendungsprogramm 24 errichtet ist; und (2) eine "reale" Programmsitzung, die zwischen dem Sitzungsverwaltungsprogramm 22 und dem Endgeräteemulationsprogramm 19 errichtet ist. Der Datenstrom, der zwischen dem Hostanwendungsprogramm 24 und dem Endgeräteemulationsprogramm 19 übertragen wird, ist in dem Datenübertragungspaket 42 codiert, das zwischen dem Hostcomputermodul 26 und dem Benutzerarbeitsstationsmodul 28 ausgetauscht wird.
- Bei Schritt 400 gibt ein Benutzer eine Anforderung ein, um eine Programmsitzung mit dem Hostanwendungsprogramm 24 zu aktivieren, durch Auswahl des Anwendungsprogrammnamens aus einer in dem Videoanzeigeschirm (nicht abgebildet) der Benutzerarbeitsstation 18 angezeigten Liste. Diese Liste ist ausgehend von dem Sitzungslistenblock konstruiert, dessen Speicheradresse im Element bzw. Punkt 188 des Benutzerarbeitsstationssitzungs-Steuerungsblocks 182 (Fig. 18) gespeichert ist. Ein inneres Datenpaket 64 mit Sitzungsverwaltungsprogramm-Befehl (Fig. 10) wird konstruiert und an das Hostcomputermodul 26 gesendet. Das innere Datenpaket 64 mit Sitzungsverwaltungsprogramm-Befehl enthält einen Sitzungsverwaltungsprogramm-Befehl, um eine Programmsitzung zwischen dem Sitzungsverwaltungsprogramm 22 und dem Hostanwendungsprogramm 24 zu aktivieren, das aus der Liste ausgewählt wurde, die in dem Videoanzeigeschirm (nicht abgebildet) der Benutzerarbeitsstation 18 angezeigt wird. Der Schritt 402 des Flussdiagramms der Fig. 20c gibt an, dass eine Programmsitzung zwischen dem Sitzungsverwaltungsprogramm 22 und einem Hostanwendungsprogramm 24 von dem Sitzungsverwaltungsprogramm 22 initiiert werden kann.
- Nach Schritt 400 oder Schritt 402 wird die Programmsteuerung mit Schritt 404 fortgesetzt, bei dem das Hostcomputermodul 26 das innere Datenpaket 64 mit Sitzungsverwaltungsprogramm- Befehl erhält, das den Befehl zur Aktivierung der Programmsitzung enthält. Das Hostcomputermodul 26 gibt den Befehl an das Sitzungsverwaltungsprogramm 22 weiter, und erzeugt dann einen Anwendungssitzungsblock 164 (Fig. 16). Der Anwendungssitzungsblock 164 wird ein Teil der verknüpften Liste von Anwendungssitzungsblöcken 164, wobei die Speicheradresse des ersten Elements in der verknüpften Liste im Element bzw. Punkt 154 des Endgerätesitzungsblocks 140 (Fig. 14) gespeichert wird. Das Sitzungsverwaltungsprogramm 22 aktiviert dann die angeforderte Programmsitzung auf eine Art und Weise, die dem Durchschnittsfachmann geläufig ist. Wenn eine BIND RU aus dem Hostanwendungsprogramm 24 empfangen wird, erzeugt das Hostcomputermodul 26 einen Steuerungsblock 176 für eine virtuelle Sitzung (Fig. 17) für diese Programmsitzung, und seine Speicheradresse wird im Punkt bzw. Element 172 des Anwendungssitzungsblocks 164 gespeichert. Schließlich überträgt das Hostcomputermodul 26 ein inneres Datenpaket 64 zur Fensteröffnung (Fig. 11) an das Benutzerarbeitsstationsmodul 28.
- Die Programmsteuerung wird mit Schritt 406 fortgesetzt, bei dem das Benutzerarbeitsstationsmodul 28 das innere Datenpaket 64 zur Fensteröffnung empfängt. Das Benutzerarbeitsstationsmodul 28 konstruiert einen Steuerungsblock 204 für eine virtuelle Sitzung der Benutzerarbeitsstation (Fig. 19). Das Endgeräteemulationsprogramm 19 öffnet dann ein Anwendungsprogrammfenster 29 auf der Benutzerarbeitsstation 18. Das Benutzerarbeitsstationsmodul 28 führt bestimmte Funktionen aus, welche die Aktion simulieren, deren Durchführung von dem Endgeräteemulationsprogramm 19 erwartet werden würde, damit der Hostcomputer 12 (gemäß dem IBM SNA- Protokoll) eine Programmsitzung aktiviert. Der Durchschnittsfachmann erkennt, dass diese Simulation darin besteht eine ACTLU RU (Aktivieren einer logischen Einheit), eine BIND RU (Information bezüglich der Programmsitzungscharakteristiken) und eine SDT RU (ein Signal, welches anzeigt, dass das Hostanwendungsprogramm bereit ist Programmsitzungsdaten anzunehmen) an das Endgeräteemulationsprogramm 19 zu schicken. Die Information BIND R U wurde ursprünglich von dem Hostanwendungsprogramm 24 an das Sitzungsverwaltungsprogramm 22 übertragen, und wurde dann von dem Hostcomputermodul 26 an das Benutzerarbeitsstationsmodul 28 in dem inneren Datenpaket 64 zur Fensteröffnung übertragen.
- Die Programmsteuerung wird mit Schritt 408 fortgesetzt, bei welchem das Benutzerarbeitsstationsmodul 28 bestimmt, ob alle im Schritt 406 initiierten Aktionen erfolgreich abgeschlossen wurden. Wenn nicht, wird die Programmsteuerung fortgesetzt mit Schritt 410, bei dem das Anwendungsprogrammfenster 29 auf der Benutzerarbeitsstation 18 geschlossen wird, ein inneres Datenpaket 64 zur Fensterschließung (Fig. 12) vom Benutzerarbeitsstationsmodul 28 an das Hostcomputermodul 26 übertragen wird, und der Steuerungsblock 204 für die virtuelle Sitzung der Benutzerarbeitsstation (Fig. 19) aus dem Speicherbereich (nicht abgebildet) des Benutzerarbeitsstationsmoduls 28 gelöscht wird. Bei Schritt 412 empfängt das Hostcomputermodul 26 das innere Datenpaket 64 zur Fensterschließung, und überträgt einen Befehl zur Deaktivierung der Programmsitzung an das Sitzungsverwaltungsprogramm 22, welches seinerseits die Programmsitzung zwischen dem Anwendungsprogramm 24 und dem Sitzungsmanager 22 beendet, auf eine Art und Weise, die dem Fachmann geläufig ist.
- Wenn das Benutzerarbeitsstationsmodul 28 bei Schritt 408 bestimmt, dass die bei Schritt 406 initiierten Aktionen erfolgreich abgeschlossen wurden, wird die Programmsteuerung mit Schritt 414 fortgesetzt, bei dem das Benutzerarbeitsstationsmodul 28 ein inneres Datenpaket 64 zur Fensteröffnung (Fig. 11) an das Hostcomputermodul 26 zurückgibt. Die Programmsteuerung wird mit Schritt 416 fortgesetzt, bei dem das Hostcomputermodul 26 das innere Datenpaket 64 zur Fensteröffnung empfängt, und das Flag 174 der virtuellen Sitzung im Anwendungssitzungsblock 164 (Fig. 16), der mit der gerade errichteten Programmsitzung in Beziehung steht, auf wahr setzt (auf logisch 1 setzt).
- Die Prozedur zur Deaktivierung einer errichteten "virtuellen" Programmsitzung ist im Flussdiagramm der Fig. 20d abgebildet. Die Programmsteuerung beginnt bei Schritt 500, bei dem ein Benutzer an der Benutzerarbeitsstation 18 einen Befehl eingibt, der anfordert, dass eine "virtuelle" Programmsitzung deaktiviert wird. Unter Verwendung von Information in dem Steuerungsblock 204 der virtuellen Sitzung der Benutzerarbeitsstation (Fig. 19) konstruiert das Benutzerarbeitsstationsmodul 28 ein inneres Datenpaket 64 mit Sitzungsverwaltungsprogramm-Befehl (Fig. 10), das einen Befehl zur Deaktivierung der Programmsitzung enthält. Das innere Datenpaket 64 mit Sitzungsverwaltungsprogramm-Befehl wird an das Hostcomputermodul 26 übertragen. Die Programmsteuerung wird fortgesetzt mit Schritt SO&sub2;, bei dem das Hostcomputermodul 26 das innere Datenpaket mit Sitzungsverwaltungsprogramm-Befehl empfängt, und den Befehl zur Deaktivierung der Programmsitzung an das Sitzungsverwaltungsprogramm 22 überträgt. Das Sitzungsverwaltungsprogramm 22 verlangt, dass die Programmsitzung zwischen dem Hostanwendungsprogramm 24 und dem Sitzungsverwaltungsprogramm 22 beendet werde, durch Aussendung eines Befehls TERMSESS an VTAM (IBM-SNA- Protokoll), auf eine dem Fachmann geläufige Weise. Eine Programmsitzung zwischen dem Hostanwendungsprogramm 24 und dem Sitzungsverwaltungsprogramm 22 kann auch beendet werden, wenn der Benutzer das Hostanwendungsprogramm 24 normal beendet (Schritt SO&sub4;). In diesem Fall sendet das Hostanwendungsprogramm 24 einen CLSDST-Befehl an VTAM (IBM- SNA-Protokoll) aus. Nach Schritt SO&sub2; oder 504 beendet VTAM (IBM-SNA-Protokoll) die Programmsitzung zwischen dem Sitzungsverwaltungsprogramm 22 und dem Hostanwendungsprogramm 24, und benachrichtigt das Sitzungsverwaltungsprogramm 22, dass die Programmsitzung beendet wurde. Die Programmsteuerung wird mit Schritt S06 fortgesetzt, bei dem das Hostcomputermodul 26 ein inneres Datenpaket 64 zum Fensterschließen (Fig. 12) konstruiert, unter Verwendung der Information, die in dem Anwendungssitzungsblock 164 (Fig. 16) und dem Steuerungsblock 176 für die virtuelle Sitzung (Fig. 17) gespeichert ist. Das Flag 174 für die virtuelle Sitzung in dem Anwendungssitzungsblock 164 wird auf unwahr gesetzt (auf logisch 0 gesetzt). Das innere Datenpaket 64 zur Fensterschließung wird aus dem Hostcomputermodul 26 an das Benutzerarbeitsstationsmodul 28 übertragen. Bei Schritt S08 empfängt das Benutzerarbeitsstationsmodul 28 das innere Datenpaket 64 zur Fensterschließung und löscht den Steuerungsblock 204 für die virtuelle Sitzung der Benutzerarbeitsstation (Fig. 19) aus dem Speicherbereich (nicht abgebildet) des Benutzerarbeitsstationsmoduls 18; das Endgeräteemulationsprogramm 19 schließt dann das Anwendungsprogrammfenster 29.
- Fig. 20e zeigt die Prozedur zur Beendigung des Multiplexmodusbetriebs. In Schritt 600 gibt der Benutzer bei der Benutzerarbeitsstation 18 einen Abmeldebefehl ein. Das Benutzerarbeitsstationsmodul 28 konstruiert ein inneres Datenpaket 64 mit Sitzungsverwaltungsprogramm-Befehl (Fig. 10), das einen Abmeldebefehl enthält. Das innere Datenpaket 64 mit Sitzungsverwaltungsprogramm-Befehl wird an das Hostcomputermodul 26 übertragen. Die Programmsteuerung wird bei Schritt 602 fortgesetzt, bei dem das Hostcomputermodul 26 das innere Datenpaket 64 mit Sitzungsverwaltungsprogramm- Befehl empfängt, und den Abmeldebefehl an das Sitzungsverwaltungsprogramm 22 überträgt. Schritt 604 veranschaulicht die Möglichkeit, dass das Sitzungsverwaltungsprogramm 22 einen Abmeldebefehl erzeugen kann. Nach Schritt 602 oder Schritt 604 wird die Programmsteuerung mit Schritt 606 fortgesetzt, bei dem das Multiplexmodus-Flag 146 in dem Endgerätesitzungsblock 140 (Fig. 14) auf unwahr eingestellt wird (auf logisch 0 gesetzt wird), und das Flag 174 der virtuellen Sitzung in jedem Anwendungssitzungsblock 164 (Fig. 16), der mit dem Endgerätesitzungsblock 140 über die im Element bzw. Punkt 154 des Endgerätesitzungsblocks 140 gespeicherten Speicheradresse verknüpft ist, auf unwahr eingestellt (auf logisch 0 gesetzt). Das Sitzungsverwaltungsprogramm 22 überträgt einen Anmeldeschirm an das Benutzerarbeitsstationsmodul 28, für die Anzeige durch das Endgeräteemulationsprogramm 19. Im Schritt 608 empfängt das Benutzerarbeitsstationsmodul 28 den Anmeldeschirm, der von dem Hostcomputermodul 26 übertragen wurde, und überträgt den Schirm an das Endgeräteemulationsprogramm 19 für die Anzeige auf dem Videoanzeigeschirm (nicht abgebildet) der Benutzerarbeitsstation 18. Das Benutzerarbeitsstationsmodul 28 erkennt, dass dies nicht ein Datenübertragungspaket 42 ist, welches einen strukturierten Feldbefehl 54 und eine OEM- Datenstrukturfeldart 58 enthält. Das Multiplexmodus-Flag 190 im Steuerungsblock 182 der Benutzerarbeitsstationssitzung (Fig. 18) wird auf unwahr gesetzt (auf logisch 0 gesetzt).
- Die Speicheradressen von Steuerungsblöcken 202 der virtuellen Sitzung der Benutzerarbeitsstation in dem Steuerungsblock 182 der Benutzerarbeitsstationssitzung (Fig. 18) werden gelöscht, und die zugehörigen Steuerungsblöcke 204 der virtuellen Sitzung der Benutzerarbeitsstation (Fig. 19) werden gelöscht.
- Fig. 20f veranschaulicht die Art und Weise, in welcher das Multiplexprogramm 25 der vorliegenden Erfindung Datenübertragungspakete 42 aus dem Hostcomputermodul 26 an das Benutzerarbeitsstationsmodul 28 sendet. Die Programmsteuerung beginnt mit Schritt 700, bei dem das Sitzungsverwaltungsprogramm 22 ein Datenpaket aus einem Hostanwendungsprogramm 24 empfängt. Das Hostcomputermodul 26 bestimmt dann in Schritt 702, ob das Flag 150 für volle Warteschlange des Endgerätesitzungsblocks 140 (Fig. 14) wahr ist (auf logisch 1 gesetzt ist). Wenn das Flag 150 für volle Wartschlange wahr ist (auf logisch 1 gesetzt ist), wird die Programmsteuerung fortgesetzt mit Schritt 704, bei dem das Hostcomputermodul 26 das Flag 168 für abgewiesene Pakete in dem Anwendungssitzungsblock 164 (Fig. 16), der mit dem Hostanwendungsprogramm 24 in Beziehung steht, das ursprünglich das Datenpaket an das Sitzungsverwaltungsprogramm 22 übertragen hat, auf wahr setzt (auf logisch-1 setzt). Die Routine von Hostcomputermodul 26 zu Benutzerarbeitsstationsmodul 28 wird dann bei Schritt 705 verlassen.
- Wenn das Hostcomputermodul 28 in Schritt 702 bestimmt, dass das Flag 150 für volle Warteschlange im Endgerätesitzungsblock 140 unwahr ist (auf logisch 0 gesetzt ist), wird die Programmsteuerung mit Schritt 706 fortgesetzt, bei dem das Datenpaket verwendet wird, um den Hostanwendungsprogramm-Schirmpuffer zu aktualisieren, dessen Speicheradresse im Punkt bzw. Element 170 des Anwendungssitzungsblocks 164 (Fig. 16) gespeichert wird, der mit dem Hostanwendungsprogramm 24 in Beziehung steht, von dem das Datenpaket ausgeht. Die Programmsteuerung wird dann mit Schritt 708 fortgesetzt, bei dem ein inneres Datenpaket 64 mit 3270-Datenstrom (Fig. 13) vom Hostcomputermodul 26 konstruiert wird. Das innere Datenpaket 64 mit 3270- Datenstrom umfasst das von dem Hostanwendungsprogramm 24 ausgesendete Datenpaket. Das Überspann-Flag 70 in dem inneren Datenpaket 64 mit 3270-Datenstrom wird auf hexadezimal 03 gesetzt, um anzuzeigen, dass dies das einzige Segment in dem inneren Datenpaket 64 ist. Das innere Datenpaket 64 mit 3270- Datenstrom wird dann einer Ausgangswarteschlange für innere Datenpakete (nicht abgebildet) hinzugefügt, welche eine FIFO- Warteschlange in dem Speicherbereich (nicht abgebildet) des Hostcomputermoduls 26 ist. Die Speicheradresse der Ausgangswarteschlange für innere Datenpakete wird in Punkt bzw. Element 162 des Multiplexmodus-Steuerungsblocks 156 (Fig. 15) gespeichert. Die Programmsteuerung wird mit Schritt 710 fortgesetzt, bei dem das Hostcomputermodul 26 bestimmt, ob die Länge der Ausgangswarteschlange für innere Datenpakete größer als eine maximale Länge ist. Wenn sie größer als die maximale Länge ist, wird die Programmsteuerung bei Schritt 712 fortgesetzt, bei dem das Flag 150 für volle Wartschlange des Endgerätesitzungsblocks 140 (Fig. 14) auf wahr eingestellt wird (auf logisch 1 gesetzt wird).
- Wenn die Ausgangswarteschlange für innere Datenpakete nicht größer als eine maximale Länge ist, oder nach Schritt 712, wird die Programmsteuerung mit Schritt 716 fortgesetzt, bei dem das Hostcomputermodul 26 bestimmt, ob ein Datenübertragungspaket 42 an das Benutzerarbeitsstationsmodul 28 übertragen werden kann. Das Datenübertragungspaket 42 kann übertragen werden, wenn entweder das Eigenrichtungs-Flag 148 oder das Zwischenklammern-Flag 152 im Endgerätesitzungsblock 140 (Fig. 14) wahr ist (auf logisch 1 gesetzt ist). Wenn keines der beiden Flags wahr ist (auf logisch 1 gesetzt ist), wird die Programmsteuerung bei Schritt 718 fortgesetzt, bei dem die Übertragungsroutine von Hostcomputermodul 26 zu Benutzerarbeitsstationsmodul 28 verlassen wird. Ansonsten wird die Programmsteuerung bei Schritt 720 fortgesetzt, bei dem ein Ausgabepuffer im Speicherraum des Hostcomputermoduls 26 zugewiesen und ein Übertragungspaket 42 konstruiert wird. Das äußere Datenpaket 60 des Datenübertragungspakets 42 wird konstruiert, indem die Sequenznummer 158 im Multiplexmodus- Steuerungsblock 156 (Fig. 15) in den Abschnitt des äußeren Datenpakets 60 des Datenübertragungspakets 42 kopiert wird, und dann die inneren Datenpakete 64, die in der Ausgangswarteschlange für innere Datenpakete gespeichert sind, in den Abschnitt für innere Datenpakete 64 des Datenübertragungspakets kopiert werden. Das Kopieren der inneren Datenpakete 64 wird fortgesetzt, bis der Ausgangspuffer voll ist. Dieser Prozess wird im folgenden im Flussdiagramm, das in Fig. 20h abgebildet ist, ausführlicher beschrieben. Die Sequenznummer 158 im Multiplexmodus- Steuerungsblock 156 wird um 1 inkrementiert. Das Übertragungsdatenpaket 42 wird dann vom Hostcomputermodul 26 an das Benutzerarbeitsstationsmodul 28 übertragen. Der in Schritt 720 zugewiesene Ausgangspuffer wird freigegeben.
- Die Programmsteuerung wird dann mit Schritt 722 fortgesetzt, bei dem das Benutzerarbeitsstationsmodul 28 das Datenübertragungspaket 42 aus dem Hostcomputermodul 26 empfängt. Das Benutzerarbeitsstationsmodul 28 überprüft dann die folgenden Bedingungen: (1) das Vorliegen einer OEM- Datenstrukturfeldart 58 im Datenübertragungspaket 42; und (2) ob das Multiplexmodus-Flag 190 im Benutzerarbeitsstationssitzungs-Steuerungsblock 182 (Fig. 18) wahr ist (auf logisch 1 gesetzt ist). Wenn beide Bedingungen erfüllt sind, wird die Programmsteuerung mit Schritt 726 fortgesetzt. Wenn die OEM-Datenstrukturfeldart 58 vorhanden ist, aber das Multiplexmodus-Flag 190 nicht wahr ist (auf logisch 0 gesetzt ist), dann wird das Multiplexmodus-Flag 190 auf wahr eingestellt (auf logisch 1 gesetzt), und die Programmsteuerung wird mit Schritt 726 fortgesetzt. Wenn keine von beiden Bedingungen erfüllt ist, wird die Programmsteuerung mit Schritt 724 fortgesetzt. Wenn die OEM- Datenstrukturfeldart 58 nicht vorhanden ist, aber das Multiplexmodus-Flag 190 auf wahr eingestellt ist (auf logisch 1 gesetzt ist), dann wird das Multiplexmodus-Flag 190 auf unwahr eingestellt (auf logisch 0 gesetzt), und die Speicheradressen von allen Steuerungsblöcken 204 für virtuelle Sitzungen der Benutzerarbeitsstation (Fig. 19) werden aus der Tabelle 202 im Benutzerarbeitsstationssitzungs-Steuerungsblock 182 (Fig. 18) gelöscht, die entsprechenden Steuerungsblöcke 204 für eine virtuelle Sitzung der Benutzerarbeitsstation (Fig. 19) werden gelöscht, und die Programmsteuerung wird mit Schritt 724 fortgesetzt. Im Schritt 724 wird die Programmsteuerung übergeben an das Endgeräteemulationsprogramm 19, für die normale Verarbeitung von empfangenen Datenübertragungspaketen 42.
- In Schritt 726 setzt das Benutzerarbeitsstationsmodul 28 das Zwischenklammern-Flag 196 im Benutzerarbeitsstationssitzungs- Steuerungsblock 182 (Fig. 18) auf wahr (auf logisch 1), wenn ein Klammerende-Indikator (End Bracket Indicator) in dem Anforderungs/Antwort-Kopf 52 (Request/Response Header) des Datenübertragungspakets 42 auf wahr gesetzt ist (auf logisch 1 gesetzt ist); ansonsten stellt das Benutzerarbeitsstationsmodul 28 das Zwischenklammern-Flag 196 auf unwahr ein (setzt es auf logisch 0). Das Benutzerarbeitsstationsmodul 28 stellt dann das Eigenrichtungs-Flag bzw. Richtungsbesitz-Flag 192 im Benutzerarbeitsstationssitzungs-Steuerungsblock 182 (Fig. 18) auf wahr (auf logisch 1). Im Schritt 728 wird die Sequenznummer 194 im Benutzerarbeitsstationssitzungs- Steuerungsblock 182 (Fig. 18) mit der Sequenznummer 62 im äußeren Datenpaket 60 des empfangenen Datenübertragungspakets 42 verglichen. Wenn die zwei Nummern nicht übereinstimmen, wird die Programmsteuerung mit Schritt 730 fortgesetzt, bei dem die Übertragungsroutine vom Hostcomputermodul 26 zum Benutzerarbeitsstationsmodul 28 verlassen wird. Ansonsten wird die Programmsteuerung mit Schritt 732 fortgesetzt, bei dem die Sequenznummer 62 in dem äußeren Datenpaket 60 in die Sequenznummer 194 im Benutzerarbeitsstationssitzungs- Steuerungsblock 182 (Fig. 18) kopiert wird.
- Die Programmsteuerung wird dann mit Schritt 734 fortgesetzt, bei dem die inneren Datenpakete 64 aus dem empfangenen Datenübertragungspaket 42 extrahiert werden, und von dem Benutzerarbeitsstationsmodul 28 verarbeitet werden. Das Flussdiagramm in Fig. 201 veranschaulicht die Details des Verfahrens, durch welches das Benutzerarbeitsstationsmodul 28 innere Datenpakete 64 aus dem Datenübertragungspaket 42 extrahiert. Die inneren Datenpakete 64 werden entsprechend ihrem besonderen Funktionscode 72 (Fig. 7) verarbeitet. Ein inneres Datenpaket 64 mit 3270-Datenstrom (Fig. 13) wird durch das Benutzerarbeitsstationsmodul 28 verarbeitet, indem ein Datenübertragungspaket 42 rekonstruiert wird, das in seiner Struktur zu einer PIU in dem IBM-SNA-Protokoll identisch ist. Die korrekte "virtuelle" Zielprogrammsitzung wird durch Untersuchung des Benutzerarbeitsstations- Korrelators 110 in dem inneren Datenpaket 64 mit 3270- Datenstrom (Fig. 13) identifiziert. Die folgenden Aktionen werden dann von dem Benutzerarbeitsstationsmodul 28 durchgeführt: (1) die Hostanwendungs-Logikeinheitnummer 210 im Steuerungsblock 204 der virtuellen Sitzung der Benutzerarbeitsstation (Fig. 19) wird in die Sender- Logikeinheitnummer (Sender Logical Unit Number) in dem PIU platziert; (2) die Logikeinheitnummer 208 des virtuellen Endgeräts wird in die Empfänger-Logikeinheitnummer (Receiver Logical Unit Number) in dem PIU platziert; (3) die Sequenznummer 112 in dem inneren Datenpaket 64 mit 3270- Datenstrom (Fig. 13) wird in die PIU-Sequenznummer (PIU Sequence Number) platziert; und (4) das Datenpaket 114 des inneren Datenpakets 64 mit 3270-Datenstrom (Fig. 13) wird in den Datenabschnitt des PIU platziert.
- Während der Verarbeitung wird ein inneres Nulldatenpaket 64 von dem Benutzerarbeitsstationsmodul 28 verworfen. Ein inneres Datenpaket 64 mit Sitzungsliste (Fig. 19) wird von dem Benutzerarbeitsstationsmodul 28 verarbeitet, indem der Sitzungslistenblock, dessen Adresse im Punkt bzw. Elementnummer 188 des Benutzerarbeitsstationssitzungs- Steuerungsblocks 182 (Fig. 18) gespeichert ist, aktualisiert wird. Ein inneres Datenpaket 64 für Fensteröffnung (Fig. 11) bewirkt, dass das Benutzerarbeitsstationsmodul 28 eine "virtuelle" Programmsitzung aktiviert (in dem in Fig. 20c gezeigten Flussdiagramm beschrieben). Ein inneres Datenpaket 64 zur Fensterschließung (Fig. 12) bewirkt, dass das Benutzerarbeitsstationsmodul 28 eine "virtuelle" Programmsitzung deaktiviert (in dem in Fig. 20d gezeigten Flussdiagramm beschrieben). Ein inneres Datenpaket 64 zur Identifikation (Fig. 8) wird von dem Benutzerarbeitsstationsmodul 28 verarbeitet, indem der Hostcomputermodul-Name 76 und die Hostcomputermodul- Versionsnummer 78 im inneren Datenpaket 64 zur Identifikation mit jenen Datenelementen verglichen werden, die intern im Benutzerarbeitsstationsmodul 28 gespeichert sind. Der Benutzeridentifikations-Zeichenstring 80 im inneren Datenpaket 64 für Identifikation wird in den Benutzeridentifikations-Zeichenstring 200 im Benutzerarbeitsstationssitzungs-Steuerungsblock 182 (Fig. 18) kopiert.
- Fig. 20g veranschaulicht die Art und Weise, durch welche das Multiplexprogramm 25 der vorliegenden Erfindung Datenübertragungspakete42 aus dem Benutzerarbeitsstationsmodul 28 an das Hostcomputermodul 26 schickt. Die Programmsteuerung beginnt mit Schritt 800, bei dem ein Benutzer an der Benutzerarbeitsstation 28 eine Anforderung initiiert, damit das Sitzungsverwaltungsprogramm 22 einen Befehl ausführt. Ein inneres Datenpaket 64 mit Sitzungsverwaltungsprogramm-Befehl (Fig. 10) wird konstruiert und in die Ausgangswarteschlange für innere Datenpakete platziert, wobei die Speicheradresse im Punkt bzw. Element 186 im Benutzerarbeitsstationssitzungs-Steuerungsblock 182 (Fig. 18) gespeichert wird. Das Überspann-Flag 70 im inneren Datenpaket 64 wird auf hexadezimal 03 gesetzt, was bedeutet, dass das innere Datenpaket 64 nur ein einziges Segment umfasst. In Schritt 802 schickt das Endgeräteemulationsprogramm 19 ein Datenübertragungspaket 42 an das Benutzerarbeitsstationsmodul 28. Das Endgeräteemulationsprogramm 19 überträgt nur dann Daten an ein Hostanwendungsprogramm 24, wenn die entsprechende Programmsitzung 29 auf der Benutzerarbeitsstation 18 Richtung besitzt oder zwischen Klammern ist. Dies wird aus dem letzten Datenpaket 114 des zuletzt aus dem Hostanwendungsprogramm 24 empfangenen inneren Datenpakets 64 mit 3270-Datenstrom, dem letzten Datenpaket 114 des letzten inneren Datenpakets 64, oder durch BIUs (IBM-SNA-Protokoll), die vom Benutzerarbeitsstationsmodul 28 erzeugt und an die Programmsitzung 29 übertragen wurden, bestimmt. Dieses Datenübertragungspaket 42 ist in seiner Struktur identisch mit einem PIU in dem IBM-SNA-Protokoll. Der BIU-Abschnitt der PIU wird extrahiert und in ein inneres Datenpaket 64 mit 3270-Datenstrom (Fig. 13), das vom Benutzerarbeitsstationsmodul 28 konstruiert wurde, eingefügt. Das Benutzerarbeitsstationsmodul 28 führt dann die folgenden Aktionen durch: (1) der Sitzungsverwaltungsprogramm- Korrelator 206 in dem Steuerungsblock 204 der virtuellen Sitzung der Benutzerarbeitsstation (Fig. 19) wird in den Sitzungsverwaltungs-Korrelator 108 im inneren Datenpaket 64 mit 3270-Datenstrom (Fig. 13) kopiert; (2) der Benutzerarbeitsstations-Korrelator 207 im Steuerungsblock 204 der virtuellen Sitzung der Benutzerarbeitsstation (Fig. 19) wird in den Benutzerarbeitsstations-Korrelator 110 im inneren Datenpaket 64 mit 3270-Datenstrom kopiert; und (3) das innere Datenpaket 64 mit 3270-Datenstrom wird in die Ausgangswarteschlange für innere Datenpakete platziert.
- Nach Schritt 800 oder 802 wird die Programmsteuerung mit Schritt 804 fortgesetzt, bei dem das Benutzerarbeitsstationsmodul 28 bestimmt, ob es Richtung besitzt (wie jenes Konzept im IBM-SNA-Protokoll definiert ist), durch Bestimmung, ob das Eigenrichtungs-Flag bzw. Richtungsbesitz-Flag 192 in dem Benutzerarbeitsstationssitzungs-Steuerungsblock 182 (Fig. 18) wahr ist (auf logisch 1 gesetzt ist). Wenn das Eigenrichtungs-Flag 192 unwahr ist (auf logisch 0 gesetzt ist), wird die Programmsteuerung mit Schritt 806 fortgesetzt, bei dem die Übertragungsroutine vom Benutzerarbeitsstationsmodul 28 zum Hostcomputermodul 26 verlassen wird. Ansonsten wird die Programmsteuerung mit Schritt 818 fortgesetzt.
- Schritt 808 veranschaulicht das Szenario, bei dem ein inneres Datenpaket 64 von dem Benutzerarbeitsstationsmodul 28 aufgrund eines vorangegangenen Datenübertragungspakets 42, das von dem Hostcomputermodul 26 empfangen wurde, erzeugt wird. Solche inneren Datenpakete 64 werden der Ausgangswarteschlange für innere Datenpakete, deren Adresse sich im Punkt bzw. Element 186 des Benutzerarbeitsstationssitzungs-Steuerungsblocks 182 (Fig. 18) befindet, hinzugefügt. Nach Ausführung des Schritts 808 wird die Programmsteuerung mit Schritt 810 fortgesetzt, bei dem das Benutzerarbeitsstationsmodul 28 bestimmt, ob die Ausgangswarteschlange für innere Datenpakete leer ist. Wenn die Ausgangswarteschlange für innere Datenpakete leer ist, wird die Programmsteuerung mit Schritt 812 fortgesetzt, bei dem das Benutzerarbeitsstationsmodul 28 bestimmt, ob das Zwischenklammern-Flag 196 im Benutzerarbeitsstationssitzungs- Steuerungsblock 182 (Fig. 18) wahr ist (auf logisch 1 gesetzt ist). Wenn das Zwischenklammern-Flag 196 wahr ist, besteht kein Bedarf ein inneres Nulldatenpaket 64 an das Hostcomputermodul 26 zu schicken, um die Richtung (nach dem IBM-SNA-Protokoll) zu ändern, und als solches wird die Programmsteuerung mit Schritt 814 fortgesetzt, bei dem die Übertragungsroutine von Benutzerarbeitsstationsmodul 28 zu Hostcomputermodul 26 verlassen wird. Wenn das Zwischenklammern-Flag 196 unwahr ist, wird die Programmsteuerung mit Schritt 816 fortgesetzt, bei dem das Benutzerarbeitsstationsmodul 28 ein inneres Nulldatenpaket 64 konstruiert, und es in die Ausgangswarteschlange für innere Datenpakete platziert. Die Programmsteuerung wird mit Schritt 817 fortgesetzt, bei dem das innere Nulldatenpaket 64 an das Hostcomputermodul 26 übertragen wird, auf die in Schritt 824 unten beschriebene Art und Weise.
- Wenn das Benutzerarbeitsstationsmodul 28 bei Schritt 804 bestimmte, dass das Eigenrichtungs-Flag 192 wahr war (auf logisch 1 gesetzt war), oder in Schritt 810 bestimmte, dass die Ausgangswarteschlange für innere Datenpakete nicht leer war, wird die Programmsteuerung mit Schritt 818 fortgesetzt, bei dem das Benutzerarbeitsstationsmodul 28 bestimmt, ob das Zwischenklammern-Flag 196 im Benutzerarbeitsstationssitzungs- Steuerungsblock 182 (Fig. 18) wahr ist (auf logische 1 gesetzt ist). Wenn das Zwischenklammern-Flag 196 wahr ist, wird die Programmsteuerung mit Schritt 820 fortgesetzt, bei dem das Benutzerarbeitstationsmodul 28 ein Datenübertragungspaket 42 im Ausgangspuffer, dessen Speicheradresse im Element bzw. Punkt 184 des Benutzerarbeitsstationssitzungs-Steuerungsblocks 182 (Fig. 18) gespeichert ist, konstruiert, und der Zwischenklammern- Indikator (Between Bracket Indicator) des Anforderungs/Antworts-Kopfes (Request Response Header) 52 des Datenübertragungspakets 42 wird auf unwahr eingestellt (auf logisch 0 gesetzt). Wenn das Zwischenklammern-Flag 196 wahr ist, wird die gleiche Aktion wie bei Schritt 820 beschrieben durchgeführt, außer dass der Zwischenklammern-Indikator des Anforderungs/Antworts-Kopfes 52 auf wahr eingestellt wird (auf logisch 1 gesetzt wird).
- Nach Schritt 820 oder Schritt 822 wird die Programmsteuerung mit Schritt 824 fortgesetzt, bei dem die inneren Datenpakete 64 in der Ausgangswarteschlange für innere Datenpakete in den Ausgangspuffer kopiert werden. Das in Fig. 20h abgebildete Flussdiagramm veranschaulicht das Verfahren, durch welches das Benutzerarbeitsstationsmodul 28 diese Funktion durchführt. Das Benutzerarbeitsstationsmodul 28 kopiert dann die Sequenznummer 194 aus dem Benutzerarbeitsstationssitzungs-Steuerungsblock 182 (Fig. 18) in die Sequenznummer 62 des äußeren Datenpakets 60 des Datenübertragungspakets 42. Das Benutzerarbeitsstationsmodul 28 überträgt dann das Datenübertragungspaket 42 an das Hostcomputermodul 26 und setzt dann das Eigenrichtungs-Flag 192 in den Benutzerarbeitsstationssitzungs-Steuerungsblock 182 (Fig. 18) auf unwahr (auf logisch 0).
- In Schritt 826 empfängt das Hostcomputermodul 26 das Datenübertragungspaket 42. Die Programmsteuerung wird mit Schritt 832 fortgesetzt, bei dem das Hostcomputermodul bestimmt, ob das Flag 150 für volle Warteschlange im Endgerätesitzungsblock 140 (Fig. 14) wahr ist (auf logisch 1 gesetzt ist). Wenn das Flag 150 für volle Warteschlange wahr ist, wird das Flag 168 für ein abgewiesenes Paket in jedem Anwendungssitzungsblock 164 (Fig. 16) in Schritt 834 getestet. Wenn das Flag 168 für ein abgewiesenes Paket in irgendeinem Anwendungssitzungsblock 164 wahr ist (auf logisch 1 gesetzt ist), werden die folgenden Funktionen von dem Hostcomputermodul 26 in Schritt 836 durchgeführt: (1) eine LUSTAT RU (IBM-SNA-Protokoll) wird von dem Hostcomputermodul 26 an das Hostanwendungsprogramm 24 übertragen, dass mit dem Anwendungssitzungsblock 164 in Beziehung steht, in dem das Flag 168 für ein abgewiesenes Paket wahr ist (der Befehl LUSTAT RU zeigt dem Hostanwendungsprogramm 24 an, dass es nun Daten übertragen kann); (2) das Flag 168 für ein abgewiesenes Paket wird auf unwahr eingestellt (auf logisch 0 gesetzt); und (3) das Flag 150 für volle Warteschlange im Endgerätesitzungsblock 142 (Fig. 14) wird auf unwahr eingestellt (auf logisch 0 gesetzt).
- Wenn die getestete Bedingung in Schritt 832 oder Schritt 834 nicht erfüllt ist, oder nach Schritt 836, wird die Programmsteuerung mit Schritt 838 fortgesetzt, bei dem das Eigenrichtungs-Flag 148 des Endgerätesitzungsblocks 140 (Fig. 14) auf wahr eingestellt wird (auf logisch 1 gesetzt wird), und wobei innere Datenpakete 64 aus dem Datenübertragungspaket 42 extrahiert werden, wie durch das in Fig. 201 gezeigte Flussdiagramm erklärt wird. Die inneren Datenpakete 64 werden dann vom Hostcomputermodul 26 verarbeitet. Innere Nulldatenpakete 64 werden verworfen. Ein inneres Datenpaket 64 zur Fensteröffnung (Fig. 11) wird von dem Hostcomputermodul 26 verarbeitet, indem der Benutzerarbeitsstations-Korrelator 94, der sich im inneren Datenpaket 64 zur Fensteröffnung befindet, in den Benutzerarbeitsstations-Korrelator im Steuerungsblock 176 der virtuellen Sitzung (Fig. 17) gespeichert wird. Die weitere Verarbeitung wird so fortgesetzt, wie es im Flussdiagramm der Fig. 20c dargestellt ist. Ein inneres Datenpaket 64 zur Fensterschließung (Fig. 12) wird nach den Schritten verarbeitet, die im Flussdiagramm umrissen sind, welches in Fig. 20d gezeigt ist. Das Hostcomputermodul 26 verarbeitet ein inneres Datenpaket 64 mit 3270-Datenstrom (Fig. 13), indem ein Datenübertragungspaket 42 rekonstruiert wird, das in seiner Struktur identisch ist mit einer Anforderungseinheit (Request Unit) (IBM-SNA-Protokoll). Die korrekte "virtuelle" Zielprogrammsitzung wird identifiziert durch Untersuchung des Sitzungsverwaltungsprogramm- Korrelators 108 in dem inneren Datenpaket 64 mit 3270- Datenstrom (Fig. 13). Die sich ergebende Anforderungseinheit wird dann an das Sitzungsverwaltungsprogramm 22 weitergegeben. Ein inneres Datenpaket 64 mit Sitzungsverwaltungsprogramm-Befehl (Fig. 10) wird verarbeitet, indem der Sitzungsverwaltungsprogramm- Befehlsstring 90 aus dem inneren Datenpaket 64 extrahiert wird, und der Befehlsstring an das Sitzungsverwaltungsprogramm 22 weitergegeben wird.
- Nach Schritt 838 wird die Programmsteuerung mit Schritt 840 fortgesetzt, bei dem das Hostcomputermodul 26 bestimmt, ob irgendwelche inneren Datenpakete 64 in der Ausgangswarteschlange für innere Datenpakete vorhanden sind. Wenn nicht, wird die Programmsteuerung mit Schritt 842 fortgesetzt, bei dem ein inneres Nulldatenpaket 64 von dem Hostcomputermodul 26 konstruiert und an das Benutzerarbeitsstationsmodul 28 geschickt wird; der Klammerende-Indikator (IBM-SNA-Protokoll) der BIU (IBM-SNA- Protokoll) im Datenübertragungspaket 42 wird auf wahr eingestellt (auf logisch 1 gesetzt); das Zwischenklammern- Flag 152 und Eigenrichtungs-Flag 148 des Endgerätesitzungsblocks 140 (Fig. 14) werden auf wahr eingestellt (auf logisch 1 gesetzt). Ansonsten wird die Programmsteuerung mit Schritt 714 fortgesetzt.
- Die Fig. 20h veranschaulicht den Prozess, durch welchen das Multiplexprogramm 25 der vorliegenden Erfindung innere Datenpakete 64 in äußeren Datenpaketen 60 codiert. Dieser Prozess wird identisch durchgeführt von sowohl dem Hostcomputermodul 26 als auch dem Benutzerarbeitsstationsmodul 28, so dass sich die folgende Diskussion auf beide Module bezieht. Das Hostcomputermodul 26 und das Benutzerarbeitsstationsmodul 28 werden daher in der folgenden Diskussion generisch als "das Multiplexprogramm 25" bezeichnet. Die Programmsteuerung beginnt mit Schritt 900, bei dem das Multiplexprogramm 25 bestimmt, ob die Ausgangswarteschlange für innere Datenpakete leer ist. Auf dem Hostcomputer 12 wird dies bestimmt durch Untersuchung der Ausgangswarteschlange für innere Datenpakete, deren Speicheradresse im Punkt bzw. Element 162 des Multiplexmodus- Steuerungsblocks 156 (Fig. 15) gespeichert ist. Auf der Benutzerarbeitsstation 18 wird diese Bestimmung durchgeführt durch Untersuchung der Ausgangswarteschlange für innere Datenpakete, deren Adresse im Punkt bzw. Element 186 des Benutzerarbeitsstationssitzungs-Steuerungsblocks 182 (Fig. 18) gespeichert ist. Wenn die Ausgangswarteschlange für innere Datenpakete leer ist, wird die Programmsteuerung fortgesetzt mit Schritt 908, der unten beschrieben wird; ansonsten wird die Programmsteuerung mit Schritt 902 fortgesetzt.
- Bei Schritt 902 bestimmt das Multiplexprogramm 25, ob das erste innere Datenpaket 64 in der Ausgangswarteschlange für innere Datenpakete in den Ausgangspuffer auf dem Hostcomputer 12 oder der Benutzerarbeitsstation 18 passen wird. Der Ausgangspuffer auf dem Hostcomputer 12 wird dynamisch erhalten, während die Speicheradresse des Ausgangspuffers auf der Benutzerarbeitsstation 18 im Element bzw. Punkt 184 des Benutzerarbeitsstationssitzungs-Steuerungsblocks 182 (Fig. 18) gespeichert ist. Wenn ausreichender Platz vorhanden ist im Ausgangspuffer, wird die Programmsteuerung mit Schritt 904 fortgesetzt, bei dem das erste innere Datenpaket 64 in der Ausgangswarteschlange für innere Datenpakete an den Anfang des Ausgangspuffers bewegt wird. Das Multiplexprogramm 25 untersucht dann das Überspann-Flag 70 in dem in den Ausgangspuffer bewegten inneren Datenpaket 64. Außer wenn das Überspann-Flag 70 auf hexadezimal 03 gesetzt ist, was anzeigt, dass das innere Datenpaket 64 das einzige Segment in der Reihe von Segmenten ist, wird das Uberspann-Flag 70 auf hexadezimal O1 eingestellt, was anzeigt, dass das innere Datenpaket 64 das letzte Segment in der Reihe von Segmenten ist. Die Programmsteuerung kehrt dann zu Schritt 900 zurück.
- Wenn das Multiplexprogramm 25 bei Schritt 902 bestimmt, dass das erste innere Datenpaket 64 in der Ausgangswarteschlange für innere Datenpakete nicht in den Ausgangspuffer passen wird, wird die Programmsteuerung bei Schritt 906 fortgesetzt, bei dem das Multiplexprogramm 25 bestimmt, ob der verbleibende Platz im Ausgangspuffer ausreichend ist, um die folgenden Komponenten des inneren Datenpakets 64 aufzunehmen: Längenfeld 66, strukturierter Feldbefehl 68, Überspann-Flag 70, Funktionscode 72 und mindestens ein Byte des Funktionsdatenfelds 74. Wenn nicht, wird die Programmsteuerung bei Schritt 908 fortgesetzt, bei dem die erforderlichen Kopffelder bzw. Header-Felder für das äußere Datenpaket 60 und das Datenübertragungspaket 42 konstruiert werden. Das resultierende Datenübertragungspaket 42 wird dann an das Kommunikationsprogramm (nicht abgebildet) weitergegeben, in dem Hostcomputer 12 oder der Benutzerarbeitsstation 18, für die Übertragung.
- Wenn das Multiplexprogramm 25 in Schritt 906 bestimmt, dass im Ausgangspuffer ausreichend Platz vorhanden ist, wird die Programmsteuerung mit Schritt 910 fortgesetzt, bei der der Abschnitt des inneren Datenpakets 64, für welches Platz verfügbar ist, in den Ausgangspuffer bewegt wird. Das Multiplexprogramm 25 führt dann die folgenden Verarbeitungsfunktionen bezüglich des in den Ausgangspuffer bewegen inneren Datenpakets 64 durch: (1) Modifizieren des Längenfelds 66, so dass es korrekt die Länge des Abschnitts des inneren Datenpakets 64 wiedergibt, der in den Ausgangspuffer bewegt wurde; (2) Modifizieren des Überspann- Flags 70 auf hexadezimal 02 (erstes aber nicht letztes Segment), wenn es gegenwärtig auf hexadezimal 03 (einziges Segment) eingestellt ist, ansonsten Einstellen des Überspann- Flags 70 auf hexadezimal 00 (weder erstes noch letztes Segment). Das Multiplexprogramm 25 erzeugt dann ein neues inneres Datenpaket 64 aus dem Abschnitt des inneren Datenpakets 64, der nicht in den Ausgangspuffer bewegt wurde, durch Ausführung der folgenden Aktionen: (1) Kopieren des Längenfelds 66, strukturierten Feldbefehls 68, Überspann- Flags 70 und Funktionscodes 72 aus dem inneren Datenpaket 64, das in den Ausgangspuffer bewegt wurde; (2) Einfügen des Abschnitts des inneren Datenpakets 64, der nicht in den Ausgangspuffer bewegt wurde, in das Funktionsdatenfeld 74 des neu erzeugten inneren Datenpakets 64; (3) Modifizieren des Längenfelds 66, um die Länge des neu erzeugten inneren Datenpakets 64 wiederzugeben; und (4) Modifizieren des Überspann-Flags 70 des neu erzeugten inneren Datenpakets 64 auf hexadezimal 00 (weder erstes noch letztes Segment). Die Programmsteuerung wird dann mit Schritt 908 fortgesetzt.
- Fig. 201 veranschaulicht den Prozess, durch welchen das Multiplexprogramm 25 der vorliegenden Erfindung innere Datenpakete 64 aus äußeren Datenpaketen 60 extrahiert. Erneut wird dieser Prozess identisch von dem Hostcomputermodul 26 und dem Benutzerarbeitsstationsmodul 28 durchgeführt, so dass die folgende Diskussion sich auf beide Module bezieht. Das Hostcomputermodul 26 und das Benutzerarbeitsstationsmodul 28 werden daher in der folgenden Diskussion weiterhin generisch als Multiplexprogramm 25 bezeichnet. Die Programmsteuerung beginnt mit Schritt 920, bei dem das Multiplexprogramm 25 bestimmt, ob es irgendwelche zusätzlichen inneren Datenpakete 64 in dem gegenwärtig verarbeiteten äußeren Datenpaket 60 gibt. Wenn keine inneren Datenpakete 64 verbleiben, wird die Programmsteuerung mit Schritt 922 fortgesetzt, bei dem das Multiplexprogramm 25 die Routine verlässt, welche innere Datenpakete 64 extrahiert. Wenn jedoch innere Datenpakete 64 im äußeren Datenpaket 60 verbleiben, wird die Programmsteuerung mit Schritt 924 fortgesetzt, bei dem das nächste innere Datenpaket 64 in dem äußeren Datenpaket 60 entnommen wird. Die Programmsteuerung wird mit Schritt 926 fortgesetzt, bei dem das Überspann-Flag in dem extrahierten inneren Datenpaket 64 untersucht wird, um festzustellen, ob es auf hexadezimal 03 (einziges Segment) eingestellt ist.
- Wenn das Überspann-Flag 70 eine Bezeichnung "einziges Segment" enthält, wird die Programmsteuerung mit Schritt 928 fortgesetzt. Der Schritt 928 wird von dem Hostcomputermodul 26 und dem Benutzerarbeitsstationsmodul 28 des Multiplexprogramms 25 unterschiedlich ausgeführt. Das Benutzerarbeitsstationsmodul 28 bestimmt, ob der Puffer für individuelle Segmente von inneren Datenpaketen 64 leer ist. Die Speicheradresse dieses Puffers in der Benutzerarbeitsstation 18 wird im Element bzw. Punkt 198 des Benutzerarbeitsstationssitzungs-Steuerungsblocks 182 (Fig. 18) gespeichert. Wenn dieser Puffer nicht leer ist, ist eine Fehlerbedingung aufgetreten, und die Programmsteuerung wird mit Schritt 930 fortgesetzt, bei dem der Inhalt dieses Puffers verworfen wird. Wenn dieser Puffer leer ist, oder nach Schritt 930, wird die Programmsteuerung mit Schritt 932 fortgesetzt, bei dem die Programmsteuerung an das Flussdiagramm der Fig. 20g übergeben wird. Das Hostcomputermodul 26 führt in den Schritten 928 oder 930 keine Funktionen aus, und gibt bei Schritt 932 die Programmsteuerung an das Flussdiagramm der Fig. 20f weiter. Nach der Rückkehr der Programmsteuerung in das Flussdiagramm der Fig. 201, kehrt die Programmsteuerung zum Schritt 920 zurück.
- Wenn das Multiplexprogramm 25 bei Schritt 926 bestimmt, dass das Überspann-Flag 70 im verarbeiteten inneren Datenpaket 64 keine Bezeichnung "einziges Segment" enthält, wird die Programmsteuerung mit Schritt 934 fortgesetzt, bei dem das Multiplexprogramm 25 bestimmt, ob das Überspann-Flag 70 hexadezimal 02 (erstes aber nicht letztes Segment) enthält.
- Wenn die Bedingung wahr ist, wird die Programmsteuerung mit Schritt 936 fortgesetzt, bei dem das Multiplexprogramm 25 bestimmt, ob der Puffer für individuelle Segmente von inneren Datenpaketen 64, der oben beschrieben wurde, leer ist. Wenn die Bedingung nicht wahr ist, ist eine Fehlerbedingung aufgetreten, und die Programmsteuerung wird mit Schritt 938 fortgesetzt, bei dem der Inhalt dieses Puffers verworfen wird; die Programmsteuerung kehrt dann zu Schritt 920 zurück. Wenn die Bedingung wahr ist, wird die Programmsteuerung mit Schritt 940 fortgesetzt, bei dem das extrahierte innere Datenpaket 64 im Puffer für teilweise empfangene innere Datenpakete 64 gespeichert wird; die Programmsteuerung wird dann mit Schritt 920 fortgesetzt. Erneut würde das Hostcomputermodul 26 in den Schritten 936 oder 938 keine Funktionen durchführen, und würde in Schritt 940 das extrahierte innere Datenpaket 64 in der Ausgangswarteschlange für innere Datenpakete im Hostcomputer 12 speichern.
- Wenn das Multiplexprogramm 25 bei Schritt 934 bestimmt, dass das Überspann-Flag keine Bezeichnung "erstes aber nicht letztes Segment" enthielt, wird die Programmsteuerung mit Schritt 942 fortgesetzt, bei dem der Puffer für individuelle Segmente von inneren Datenpaketen 64 untersucht wird, um zu bestimmen, ob er leer ist. Wenn die Bedingung wahr ist, ist eine Fehlerbedingung aufgetreten; die Programmsteuerung wird dann mit Schritt 920 fortgesetzt. Wenn die Bedingung nicht wahr ist, wird die Programmsteuerung mit Schritt 946 fortgesetzt, bei dem die folgenden Aktionen vom Multiplexprogramm 25 durchgeführt werden: (1) das Funktionsdatenfeld 74 des extrahierten inneren Datenpakets 64 wird angehängt an den Puffer für individuelle Segmente von inneren Datenpaketen 64; (2) das Überspann-Flag 70 des inneren Datenpakets 64, das in diesem Puffer konstruiert wird, wird auf hexadezimal 00 eingestellt (weder erstes noch letztes Segment); und (3) das Längenfeld 66 des inneren Datenpakets 64, das in diesem Puffer konstruiert wird, wird eingestellt durch Hinzufügung der Länge des Funktionsdatenfelds 74 des extrahierten inneren Datenpakets 64. Das Hostcomputermodul 26 führt in den Schritten 942 und 946 keine Funktionen aus. Die Programmsteuerung wird dann mit Schritt 948 fortgesetzt, bei dem das Überspann-Flag des extrahierten inneren Datenpakets 64 untersucht wird, um zu bestimmen, ob es eine Bezeichnung "letztes Segment" enthält. Wenn die Bedingung wahr ist, wird die Programmsteuerung fortgesetzt mit Schritt 950, bei dem die Programmsteuerung dann weitergegeben wird an das Flussdiagramm der Fig. 20f, in dem Fall, dass das Hostcomputermodul 26 die Verarbeitung durchführt, oder an das Flussdiagramm der Fig. 20g, in dem Fall, dass die Benutzerarbeitsstation 18 die Verarbeitung durchführt; nach der Rückkehr der Programmsteuerung zum Flussdiagramm der Fig. 201 kehrt die Programmsteuerung zum Schritt 920 zurück. Wenn die Bedingung bei Schritt 948 nicht wahr ist, wird die Programmsteuerung mit Schritt 920 fortgesetzt.
- Während die vorliegende Erfindung in Zusammenhang mit einer Beispielsausführung beschrieben wurde, versteht man, dass dem Fachmann viele Modifikationen und Variationen in den Sinn kommen werden. Diese Offenbarung und die folgenden Ansprüche beabsichtigen alle solche Modifikationen und Variationen abzudecken.
Claims (10)
1. Ein System zum Multiplexen von Datenübertragungen, die
ausgetauscht werden zwischen einem Hostcomputersystem
(12) und einer Benutzerarbeitsstation (18), wobei das
Hostcomputersystem und die Benutzerarbeitsstation durch
eine Kommunikationsverbindungstrecke (16, 20) verbunden
sind, und wobei ein oder mehrere Hostanwendungsprogramme
(24) im Hostcomputersystem sind und von dem
Hostcomputersystem ausgeführt werden, während ein
Endgeräteemulationsprogramm (19), welches die Fähigkeit
hat gleichzeitig einen oder mehrere
Hostanwendungsprogrammschirme anzuzeigen, in der
Benutzerarbeitsstation ist und von der
Benutzerarbeitsstation ausgeführt wird, wobei das System
zum Multiplexen von Datenübertragungen umfasst:
ein Sitzungsverwaltungsprogramm (22), das im
Hostcomputersystem ist und von dem Hostcomputersystem
ausgeführt wird, zur Errichtung von einer oder mehreren
Programmsitzungen mit den Hostanwendungsprogrammen,
wobei jede der Programmsitzungen ihre eigenen
individuellen Datenströme erzeugt, und zur Errichtung
einer einzelnen Programmsitzung mit dem
Endgeräteemulationsprogramm unter Verwendung einer
einzelnen Verbindung zwischen dem Hostcomputersystem und
der Benutzerarbeitsstation, und wobei das
Endgeräteemulationsprogramm (19) gleichzeitig den
Hostanwendungsprogrammschirm für jede der
Programmsitzungen anzeigt, die zwischen dem
Sitzungsverwaltungsprogramm und den
Hostanwendungsprogrammen errichtet sind;
ein erstes Mittel (25), das in dem Hostcomputersystem
und in der Benutzerarbeitsstation ist, zum Abfangen der
individuellen Datenströme, bevor die individuellen
Datenströme an die Benutzerarbeitsstation oder das
Hostcomputersystem übertragen werden;
ein zweites Mittel (25), das in dem Hostcomputersystem
und in der Benutzerarbeitsstation ist, zum Aufbau
innerer Datenpakete (64) aus den individuellen
Datenströmen, die von jeder der Programmsitzungen
erzeugt werden;
ein drittes Mittel (25), das in dem Hostcomputersystem
in der Benutzerarbeitsstation ist, zum Einfügen der
inneren Datenpakete in ein Datenübertragungspaket (42),
für die Übertragung zwischen dem Hostcomputersystem und
der Benutzerarbeitsstation über die einzelne Verbindung;
ein viertes Mittel (25), das in dem Hostcomputersystem
und in der Benutzerarbeitsstation ist, zum Abfangen des
Datenübertragungspakets, das von dem Hostcomputersystem
und der Benutzerarbeitsstation empfangen wurde, bevor
das Datenübertragungspaket von dem
Sitzungsverwaltungsprogramm oder dem
Endgeräteemulationsprogramm jeweils verarbeitet wird;
und
ein fünftes Mittel (25), das in dem Hostcomputersystem
und in der Benutzerarbeitsstation ist, zum Herausnehmen
der inneren Datenpakete aus dem Datenübertragungspaket,
und um daraus die individuellen Datenströme
wiederherzustellen.
2. System zum Multiplexen nach Anspruch 1, wobei das
Datenübertragungspaket geeignete Protokollbefehle
enthält, die mit dem Hostcomputersystem und der
Benutzerarbeitsstation kompatibel sind, um eine
Freiform-Formatierung von Daten in dem
Datenübertragungspaket zu gestatten.
3. System zum Multiplexen nach Anspruch 2, wobei die
inneren Datenpakete in einer Warteschlange im
Hostcomputersystem und einer Warteschlange in der
Benutzerarbeitsstation gespeichert werden, bis zur
Einfügung der inneren Datenpakete in das
Datenübertragungspaket.
4. System zum Multiplexen nach Anspruch 3, wobei das
Datenübertragungspaket ferner Steuerbefehle enthält, die
in den inneren Datenpaketen gespeichert sind.
5. System zum Multiplexen nach Anspruch 4, wobei das innere
Datenpaket eine Überspann-Markierung enthält, um die
Segmentierung der inneren Datenpakete zwischen mehr als
einem Datenübertragungspaket zu gestatten.
6. System zum Multiplexen nach Anspruch 5, wobei die
inneren Datenpakete ferner einen Funktionscode und ein
Funktionsdatenfeld enthalten, und wobei der
Funktionscode angibt, ob das Funktionsdatenfeld einen
der individuellen Datenströme oder einen der
Steuerbefehle enthält.
7. System zum Multiplexen nach Anspruch 1, ferner
enthaltend ein Mittel zur Steuerung des Flusses der
individuellen Datenströme, die übertragen werden
zwischen den Hostanwendungsprogrammen und dem
Endgeräteemulationsprogramm durch das
Sitzungsverwaltungsprogramm über die einzelne
Verbindung, unabhängig vom Fluss des
Datenübertragungspakets zwischen dem Hostcomputersystem
und der Benutzerarbeitsstation über die einzelne
Verbindung.
8. Verfahren zum Multiplexen von Datenübertragungen, die
ausgetauscht werden zwischen einem Hostcomputersystem
und einer Benutzerarbeitsstation, wobei das
Hostcomputersystem und die Benutzerarbeitsstation durch
eine Kommunikationsverbindungsstrecke verbunden sind,
und wobei ein oder mehrere Hostanwendungsprogramme in
dem Hostcomputersystem sind und von dem
Hostcomputersystem ausgeführt werden, während ein
Endgeräteemulationsprogramm, das die Fähigkeit hat
gleichzeitig einen oder mehr
Hostanwendungsprogrammschirme anzuzeigen, in der
Benutzerarbeitsstation ist und von der
Benutzerarbeitsstation ausgeführt wird, wobei das
Verfahren die Schritte umfasst:
Errichten von einer oder mehr Programmsitzungen mit den
Hostanwendungsprogrammen, wobei jede der
Programmsitzungen ihre eigenen individuellen Datenströme
erzeugt;
Errichten einer einzelnen Programmsitzung mit dem
Endgeräteemulationsprogramm unter Verwendung einer
einzelnen Verbindung zwischen dem Hostcomputersystem und
der Benutzerarbeitsstation, wobei das
Endgeräteemulationsprogramm gleichzeitig den
Hostanwendungsprogrammschirm für jede der
Programmsitzungen anzeigt, die mit den
Hostanwendungsprogrammen errichtet wurden;
Abfangen der individuellen Datenströme, bevor die
individuellen Datenströme an die Benutzerarbeitsstation
oder das Hostcomputersystem übertragen werden;
Aufbauen von inneren Datenpaketen aus den individuellen
Datenströmen, die von jeder der Programmsitzungen
erzeugt werden;
Einfügen der inneren Datenpakete in ein
Datenübertragungspaket für die Übertragung zwischen dem
Hostcomputersystem und der Benutzerarbeitsstation über
die einzelne Verbindung;
Abfangen des Datenübertragungspakets, das von dem
Hostcomputersystem und der Benutzerarbeitsstation
empfangen wurde, bevor das Datenübertragungspaket von
den Hostanwendungsprogrammen oder dem
Endgeräteemulationsprogramm verarbeitet wird, und
Herausnehmen der inneren Datenpakete aus dem
Datenübertragungspaket und Widerherstellung der
individuellen Datenströme daraus.
9. Verfahren zum Multiplexen nach Anspruch 8, zusätzlich
umfassend den Schritt des Speicherns der inneren
Datenpakete in einer Warteschlange im Hostcomputersystem
und in einer Warteschlange in der
Benutzerarbeitsstation, bis der Schritt der Einfügung
der inneren Datenpakete in das Datenübertragungspaket
durchgeführt wird.
10. Verfahren zum Multiplexen nach Anspruch 9, zusätzlich
umfassend den Schritt des Steuerns des Flusses der
individuellen Datenströme, die zwischen den
Hostanwendungsprogrammen und dem
Endgeräteemulationsprogramm über die einzelne Verbindung
übertragen werden, unabhängig vom Fluss des
Datenübertragungspakets zwischen dem Hostcomputersystem
und der Benutzerarbeitsstation über die einzelne
logische Verbindung.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/983,694 US5325361A (en) | 1992-12-01 | 1992-12-01 | System and method for multiplexing data transmissions |
PCT/US1993/011257 WO1994013086A1 (en) | 1992-12-01 | 1993-11-18 | System and method for multiplexing data transmissions |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69331628D1 DE69331628D1 (de) | 2002-04-04 |
DE69331628T2 true DE69331628T2 (de) | 2002-08-22 |
Family
ID=25530062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69331628T Expired - Lifetime DE69331628T2 (de) | 1992-12-01 | 1993-11-18 | Verfahren und vorrichtung zur multiplexdatenübertragung |
Country Status (7)
Country | Link |
---|---|
US (1) | US5325361A (de) |
EP (1) | EP0628230B1 (de) |
AU (1) | AU5672294A (de) |
DE (1) | DE69331628T2 (de) |
DK (1) | DK0628230T3 (de) |
ES (1) | ES2173110T3 (de) |
WO (1) | WO1994013086A1 (de) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE469859B (sv) * | 1992-03-13 | 1993-09-27 | Icl Systems Ab | Sätt att utöka funktionaliteten hos ett datorprogram samt datorsystem för genomförande av sättet |
US5715474A (en) * | 1992-04-30 | 1998-02-03 | Motorola, Inc. | Simultaneous control of radio frequency modem in a multi-tasking system using a single session manager program with separate command queue for each application program |
JP2664838B2 (ja) * | 1992-07-02 | 1997-10-22 | インターナショナル・ビジネス・マシーンズ・コーポレイション | パケット通信方法及び装置ならびにその送信装置及び受信装置 |
JP3630441B2 (ja) * | 1992-12-21 | 2005-03-16 | ソニー株式会社 | 送信方法、受信方法、通信方法、双方向バスシステム及び電子機器 |
GB9314460D0 (en) * | 1993-07-13 | 1993-08-25 | Int Computers Ltd | Computer systems integration |
US5625775A (en) * | 1994-06-13 | 1997-04-29 | International Business Machines Corporation | Modem communication interface in a data processing system |
US5485460A (en) * | 1994-08-19 | 1996-01-16 | Microsoft Corporation | System and method for running multiple incompatible network protocol stacks |
US5987505A (en) * | 1995-04-28 | 1999-11-16 | Fry; Shawn C. | Method for emulation of terminal-resident GUI application by transmitting macros having information and command instructing the terminal how to process the information |
US6418324B1 (en) | 1995-06-01 | 2002-07-09 | Padcom, Incorporated | Apparatus and method for transparent wireless communication between a remote device and host system |
US5629933A (en) * | 1995-06-07 | 1997-05-13 | International Business Machines Corporation | Method and system for enhanced communication in a multisession packet based communication system |
US5867662A (en) * | 1995-06-30 | 1999-02-02 | Sun Microsystems, Inc. | Communications driver subsystem for enabling a digital computer system to establish a communications session with a remote device over a selected one of a plurality of diverse communication media |
CA2230785C (en) * | 1995-09-13 | 2001-05-15 | British Telecommunications Public Limited Company | Transmitting data between a host computer and a terminal computer |
FR2747258B1 (fr) * | 1996-04-04 | 1998-07-03 | France Telecom | Systeme d'acces a un serveur videotex |
US5754831A (en) * | 1996-05-30 | 1998-05-19 | Ncr Corporation | Systems and methods for modeling a network |
US6044393A (en) * | 1996-11-26 | 2000-03-28 | Global Maintech, Inc. | Electronic control system and method for externally and directly controlling processes in a computer system |
US6112237A (en) * | 1996-11-26 | 2000-08-29 | Global Maintech, Inc. | Electronic monitoring system and method for externally monitoring processes in a computer system |
US6157956A (en) * | 1997-03-28 | 2000-12-05 | Global Maintech, Inc. | Heterogeneous computing interface apparatus and method using a universal character set |
US6014702A (en) * | 1997-06-04 | 2000-01-11 | International Business Machines Corporation | Host information access via distributed programmed objects |
US20010039564A1 (en) * | 1997-10-20 | 2001-11-08 | Victor Hahn | Log on personal computer |
AR014175A1 (es) | 1997-12-24 | 2001-02-07 | Adc Telecommunications Inc | Disposicion y metodo para acceder a una pluralidad de lineas de comunicacion por medio de uno o mas dispositivos de ensayo |
EP1072123A1 (de) | 1998-04-13 | 2001-01-31 | ADC Telecommunications, Inc | Testzugriffs- und leistungsüberwachungssystem und verfahren für querverbindungskommunikationsnetze |
US6480895B1 (en) * | 1998-05-06 | 2002-11-12 | International Business Machines Corporation | Integration of objects including Java bytecodes with legacy 3270 applications |
US6898762B2 (en) * | 1998-08-21 | 2005-05-24 | United Video Properties, Inc. | Client-server electronic program guide |
US7778260B2 (en) * | 1998-10-09 | 2010-08-17 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US8060656B2 (en) * | 1998-10-09 | 2011-11-15 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US8078727B2 (en) | 1998-10-09 | 2011-12-13 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US6546425B1 (en) * | 1998-10-09 | 2003-04-08 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US7293107B1 (en) * | 1998-10-09 | 2007-11-06 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US7136645B2 (en) | 1998-10-09 | 2006-11-14 | Netmotion Wireless, Inc. | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
US6657966B1 (en) | 1998-12-23 | 2003-12-02 | Adc Telecommunications, Inc. | Test access system and method for digital cross connect communication networks |
WO2000057612A2 (en) * | 1999-03-22 | 2000-09-28 | Webxi | Application layer protocol |
US7882247B2 (en) | 1999-06-11 | 2011-02-01 | Netmotion Wireless, Inc. | Method and apparatus for providing secure connectivity in mobile and other intermittent computing environments |
US6470390B1 (en) * | 1999-06-29 | 2002-10-22 | Cisco Technology, Inc. | Method and apparatus for a dual connection communication session |
US6879995B1 (en) * | 1999-08-13 | 2005-04-12 | Sun Microsystems, Inc. | Application server message logging |
US7380007B1 (en) * | 2000-06-30 | 2008-05-27 | Aol Llc, A Delaware Limited Liability Company | Automatic user session |
WO2002019636A1 (en) * | 2000-08-31 | 2002-03-07 | Padcom, Inc. | Method and apparatus for routing data over multiple wireless networks |
US7089311B2 (en) * | 2001-01-31 | 2006-08-08 | International Business Machines Corporation | Methods, systems and computer program products for resuming SNA application-client communications after loss of an IP network connection |
US7562146B2 (en) | 2003-10-10 | 2009-07-14 | Citrix Systems, Inc. | Encapsulating protocol for session persistence and reliability |
US20050198379A1 (en) | 2001-06-13 | 2005-09-08 | Citrix Systems, Inc. | Automatically reconnecting a client across reliable and persistent communication sessions |
US7644171B2 (en) * | 2001-09-12 | 2010-01-05 | Netmotion Wireless, Inc. | Mobile networking system and method using IPv4 and IPv6 |
US7661129B2 (en) * | 2002-02-26 | 2010-02-09 | Citrix Systems, Inc. | Secure traversal of network components |
US7984157B2 (en) | 2002-02-26 | 2011-07-19 | Citrix Systems, Inc. | Persistent and reliable session securely traversing network components using an encapsulating protocol |
US7562124B2 (en) * | 2002-05-09 | 2009-07-14 | International Business Machines Corporation | Systems and methods for determining completion of building a presentation space in a TN3270 environment |
US7650403B2 (en) | 2002-11-20 | 2010-01-19 | Microsoft Corporation | System and method for client side monitoring of client server communications |
US7111039B2 (en) * | 2002-11-20 | 2006-09-19 | Microsoft Corporation | System and method for using packed compressed buffers for improved client server communications |
US7366760B2 (en) | 2003-01-03 | 2008-04-29 | Microsoft Corporation | System and method for improved client server communications of email messages |
US7620688B2 (en) | 2003-01-03 | 2009-11-17 | Microsoft Corporation | Progress mode for electronic mail component |
US7386590B2 (en) | 2003-01-03 | 2008-06-10 | Microsoft Corporation | System and method for improved synchronization between a server and a client |
US20040170181A1 (en) * | 2003-02-27 | 2004-09-02 | Padcom, Inc. | Prioritized alternate port routing |
US20050243857A1 (en) * | 2004-04-30 | 2005-11-03 | Padcom, Inc. | Simultaneously routing data over multiple wireless networks |
US7277726B2 (en) * | 2004-05-03 | 2007-10-02 | Motorola, Inc. | Controlling wireless mobile devices from a remote device |
US20060059498A1 (en) * | 2004-08-25 | 2006-03-16 | Christofferson James F | System to process structured input data for interactive terminal applications |
JP2006115315A (ja) * | 2004-10-15 | 2006-04-27 | Fujitsu Ltd | データ転送方法及びデータ転送装置 |
US20060098662A1 (en) * | 2004-11-09 | 2006-05-11 | Sunil Gupta | Memory and processor efficient network communications protocol |
US20060129634A1 (en) * | 2004-11-18 | 2006-06-15 | Microsoft Corporation | Multiplexing and de-multiplexing graphics streams |
TW200849078A (en) * | 2007-06-08 | 2008-12-16 | Tatung Co Ltd | Portable extended display identification data recording device |
US8793117B1 (en) * | 2008-04-16 | 2014-07-29 | Scalable Network Technologies, Inc. | System and method for virtualization of networking system software via emulation |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4768190A (en) * | 1986-04-30 | 1988-08-30 | Og Corporation | Packet switching network |
US4736369A (en) * | 1986-06-13 | 1988-04-05 | International Business Machines Corp. | Adaptive session-level pacing |
US4750171A (en) * | 1986-07-11 | 1988-06-07 | Tadiran Electronics Industries Ltd. | Data switching system and method |
US4941089A (en) * | 1986-12-12 | 1990-07-10 | Datapoint Corporation | Input/output network for computer system |
JP2643978B2 (ja) * | 1988-04-23 | 1997-08-25 | 株式会社ケンウッド | パケットデータ生成装置 |
US4953159A (en) * | 1989-01-03 | 1990-08-28 | American Telephone And Telegraph Company | Audiographics conferencing arrangement |
-
1992
- 1992-12-01 US US07/983,694 patent/US5325361A/en not_active Expired - Lifetime
-
1993
- 1993-11-18 WO PCT/US1993/011257 patent/WO1994013086A1/en active IP Right Grant
- 1993-11-18 DE DE69331628T patent/DE69331628T2/de not_active Expired - Lifetime
- 1993-11-18 ES ES94902314T patent/ES2173110T3/es not_active Expired - Lifetime
- 1993-11-18 EP EP94902314A patent/EP0628230B1/de not_active Expired - Lifetime
- 1993-11-18 AU AU56722/94A patent/AU5672294A/en not_active Abandoned
- 1993-11-18 DK DK94902314T patent/DK0628230T3/da active
Also Published As
Publication number | Publication date |
---|---|
DK0628230T3 (da) | 2002-04-22 |
EP0628230B1 (de) | 2002-02-27 |
DE69331628D1 (de) | 2002-04-04 |
US5325361A (en) | 1994-06-28 |
ES2173110T3 (es) | 2002-10-16 |
EP0628230A1 (de) | 1994-12-14 |
AU5672294A (en) | 1994-06-22 |
WO1994013086A1 (en) | 1994-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69331628T2 (de) | Verfahren und vorrichtung zur multiplexdatenübertragung | |
DE68925474T2 (de) | Verriegelungsrechnersysteme | |
DE69527948T2 (de) | System und verfahren zur kommunikation mit einem entfernten netzwerk-apparatus | |
DE69704344T2 (de) | Anwendungsprogrammierungsschnittstelle für datenübertragung und busverwaltung über eine busstruktur | |
DE68919976T2 (de) | Verfahren zur Herstellung von aktuellen Terminaladressen für Systemanwender die verteilte Anwendungsprogramme in einer SNA LU 6.2-Netzwerkumbegung verarbeiten. | |
DE69636029T2 (de) | Verfahren und Vorrichtung zur Datenübertragung | |
DE69230199T2 (de) | Kompensation von nicht richtig angepassten Transportprotokollen in einem Datenkommunikationsnetzwerk | |
DE69032685T2 (de) | Verfahren und system mit einem cache für offene dateien in einem netzwerkrechnersystem | |
DE60038448T2 (de) | Vorrichtung und verfahren zur hardware-ausführung oder hardware-beschleunigung von betriebssystemfunktionen | |
DE69534411T2 (de) | Offenes Transaktionverwaltungszugriffsystem und Verfahren | |
DE69329418T2 (de) | Anrufverarbeitung in einem netz für kollaborative verarbeitung. | |
DE69935604T2 (de) | Gerät, Verfahren und System zur Steuerung und Überwachung von einem Tastatur-, Video- und Mausschaltsystem | |
DE3879947T2 (de) | Verteilte dateiserver-architektur. | |
DE69130442T2 (de) | System und Verfahren zur Kommunikation zwischen Fensterumgebungen | |
DE19655235B4 (de) | Verfahren zum Aktualisieren eines Terminal-Betriebssystems eines Terminals und zum Anzeigen von Fensterinformation eines Fensteranwendungsprogramms | |
DE69605568T2 (de) | Verfahren zum schaffen eines benutzerglobalen namenraums in einem mehrbenutzer-betriebssystem | |
DE3855378T2 (de) | Ein Fernsicherheitswegmechanismus für Telnet | |
DE69429944T2 (de) | Kommunikation von lokalen Netzwerk basierten Anwendungen in einem Vermittlungsnetz | |
DE69030524T2 (de) | Fernanwendungsschnittstelle | |
DE69826930T2 (de) | System und Verfahren zur wirksamen Fernplatte Ein-/Ausgabe | |
DE68927508T2 (de) | Zeitweilige Zustandsbewahrung für einen verteilten Dateidienst | |
DE3889766T2 (de) | Ein-/Ausgabesteuerungsvorrichtung mit gleichzeitiger Ausführung von mehreren Protokollen. | |
DE3689990T2 (de) | Flexible Datenübertragung für nachrichtenorientierte Protokolle. | |
DE69433047T2 (de) | Verfahren und Anordnung zur Zuteilung von Systembetriebsmitteln, um die Dienstqualität zu sichern | |
DE69530947T2 (de) | Netzwerkeinrichtung für ein System zur Herstellung von Glasgegenständen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8327 | Change in the person/name/address of the patent owner |
Owner name: COMPUTER ASSOCIATES THINK, INC., ISLANDIA, N.Y., U |
|
8364 | No opposition during term of opposition |