[go: up one dir, main page]

DE68924040T2 - Verfahren zum Austauschen von Daten zwischen Programmen in einem Datenverarbeitungssystem. - Google Patents

Verfahren zum Austauschen von Daten zwischen Programmen in einem Datenverarbeitungssystem.

Info

Publication number
DE68924040T2
DE68924040T2 DE68924040T DE68924040T DE68924040T2 DE 68924040 T2 DE68924040 T2 DE 68924040T2 DE 68924040 T DE68924040 T DE 68924040T DE 68924040 T DE68924040 T DE 68924040T DE 68924040 T2 DE68924040 T2 DE 68924040T2
Authority
DE
Germany
Prior art keywords
program
receiver
data
communication device
communication
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 - Fee Related
Application number
DE68924040T
Other languages
English (en)
Other versions
DE68924040D1 (de
Inventor
Murden Cecil Rhodes
Jen Shih Wang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE68924040D1 publication Critical patent/DE68924040D1/de
Publication of DE68924040T2 publication Critical patent/DE68924040T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Description

  • Diese Erfindung betrifft Computerprogrammierverfahren und insbesondere ein Verfahren zum Austausch von Daten zwischen Programmen in einem Datenverarbeitungssystem.
  • Es sind eine Vielzahl von Kommunikationsverfahren zwischen Programmen bekannt. Die IBM Kommunikationseinrichtung zwischen Programmen ist beispielsweise ein derartiges Verfahren. Um diese Einrichtung zu verwenden, muß ein Benutzerprogramm zuerst in einer Tabelle definiert werden, und Sender- und Empfängerprogramme müssen eine "Sitzung" einrichten, bevor sie beginnen können, miteinander zu kommunizieren. Wenn ein Kommunikationsprogramm kommunizieren möchte, indem es Daten von mehr als einem Senderprogramm empfängt, muß es mit jedem einzelnen der Partnersenderprogramme eine "Sitzung" aufrechterhalten. Ealls die eingerichtete Sitzung unterbrochen wird oder falls das Empfängerprogramm nicht mehr aktiv ist, kann das Senderprogramm keine Daten senden und kann folglich in seiner eigenen Verarbeitung eine Sackgasse erreichen. Außerdem kann bei diesem Systemtyp zu jedem Zeitpunkt eine Kommunikationssitzung nur in einem Halbduplexmodus, d.h. in einem unidirektionalen Modus verwendet werden. Wenn das Programm A beispielsweise Daten zum Programm E sendet, kann das Programm B nicht in derselben Sitzung zur selben Zeit Daten an A senden. Um Daten zu senden, muß das Programm B zuerst die Daten vom Programm A empfangen, anschließend die Erlaubnis zum Senden anfordern, die Sendeerlaubnis empfangen und dann beginnen, Daten zum Programm A zu senden. Mit anderen Worten, die Kommunikationssitzung muß umgeschaltet werden, um den Sender und den Empfänger erneut zu definieren. Zusätzlich kann ein Senderprogramm bei diesem System nur einen Datenpuffer mit Informationen auf einmal zu einem Empfängerprogramm senden und muß anschließend warten, bis das Empfängerprogramm diesen Puffer voller Informationen empfängt, bevor es einen anderen Datenpuffer mit Informationen senden kann.
  • Auf dem Gebiet der Datenübertragung allgemein gibt es eine mögliche Lösung für die Kommunikation zwischen Maschinen in Eorm eines "Postschließfachs", in dem gekennzeichnete Maschinen miteinander kommunizieren können, indem sie Nachrichten für einander in einem gemeinsam zugreifbaren Speicher hinterlassen. Ein solches System wird auf Seite 204 des Artikels "Computer Interconnection Structures: Taxonomy, Characteristics, and Examples" von George A. Anderson und E. Douglas Jensen, erschienen in Computing Surveys, Band 7, #4, Dezember 1976, Seiten 197 bis 213, beschrieben, obwohl keine bestimmte Realisierung beschrieben ist. Eine konkrete Realisierung von diesem Systemtyp wird jedoch in Electronic Design, Band 5, 1. März 1975, Seiten 52 bis 57, auf Seite 54, Figur 4 gezeigt, wo Master-Master-Kommunikation zwischen Mikroprozessoren durch einen allgemeinen Speicher erleichtert werden kann. In solchen Systemen wird die Kommunikation zwischen den Elementen durch jeden Hauptmikroprozessor vorbestimmt. Jeder Hauptprozessor kann einen anderen Prozessor oder andere Prozessoren kontaktieren, wenn er über den allgemeinen Speicher direkt kommunizieren muß. Jeder Prozessor erlangt den Zugriff auf den allgemeinen Speicher nach einem festen Prioritätsschema, um Konflikte bezüglich der Nutzung des Speicherbusses zu vermeiden. Ein Prozessor, der den Zugriff auf den allgemeinen Speicher erlangt, sperrt alle anderen Kommunikations-Bewerber aus. Durch eine frühere Anordnung kennt er die Posltion eines elektronischen "Briefkastens" für den gewünschten Zielempfänger, und das sendende Programm zeigt an, zu welchem anderen Hauptprozessor es eine Nachricht übertragen möchte, indem es ein Status- oder Alertzeichen in den elektronischen "Briefkasten" des gewünschten Empfängers stellt. Der kommunizierende Prozessor muß die zu übertragenden Informationen entweder in einem bekannten festgelegten Bereich des allgemeinen Speichers hinterlegen oder die Position und die Länge der Nachricht, die er gespeichert hat, anzeigen. Wenn der kommunizierende Prozessor die Übertragung aufgebaut hat, signalisiert er den anderen Komponenten, daß die Übertragung unter Verwendung einer allgemeinen Systemunterbrechung, die von allen Prozessoren empfangen wird, stattfinden soll.
  • Obwohl diese Systeme ein ähnliches Konzept wie die hierin zu beschreibende Erfindung zeigen, sei darauf hingewiesen, daß jeder Prozessor die Position von vorgesehenen Empfängerprozessoren kennen muß, den Zugriff auf einen Bus erlangen muß, die Kommunikation für alle anderen Bewerber sperrt, die Position im Speicher kennen muß, wo zukünftige Nachrichten gespeichert werden sollen oder ein Mittel aufweisen muß, um (jedem vorgesehenen Empfänger) anzuzeigen, wo sie gespeichert sind, und anschließend jeden der anderen Prozessoren benachrichtigen muß, daß eine Nachricht für einen von ihnen bereitsteht, so daß der gewünschte Empfänger bei einer späteren Überprüfung erkennt, daß Informationen in seinem elektronischen Briefkasten" vorhanden sind. Dies sind deutliche Nachteile, da der sendende Prozessor eine vollständige Kenntnis des Systems haben muß, d.h. der Identitäten von anderen Prozessoren und ihrer zugewiesenen Bereiche im elektronischen "Briefkasten"-Speicher und ein Mittel zur allgemeinen Kommunikation mit den anderen Prozessoren außerhalb des Bereichs des elektronischen Briefkastens aufweisen muß, um ihnen zu melden, daß eine Nachricht bereitsteht.
  • In der US-Patentschrift 4630196 von Becher Jr. et el. ist ein System zu finden, bei dem keine Notwendigikeit besteht, den Zielprozessor zu kennen. In diesem System nimmt eine Übertragungseinrichtung zur Speicherung und Weiterleitung Nachrichten von einem Ursprungsprozeß entgegen und benachrichtigt einen Empfangsprozeß, daß eine Nachricht ansteht. Die Nachricht wird im Anschluß an eine Anforderung vom Zielprozeß geliefert.
  • Angesichts der vorangegangenen Schwierigkeiten mit Systemen nach dem Stand der Technik zur Kommunikation zwischen Programmen oder zwischen Prozessoren wäre es höchst wünschenswert, wenn die Notwendigkeit der Kennzeichnung von Sendern und Empfängern und der Einrichtung einer Sitzung und der Bereitstellung von Überwachungen einer solchen Kommunikationssitzung vermieden werden könnten. Außerdem wäre es wünschenswert, anstelle eines Halbduplemodus, wie er nach dem zuvor erwähnten Stand der Technik üblich ist, einen Vollduplex-Kommunikationsmodus bereitzustellen. Die Fähigkeit zum Senden an einen inaktiven Empfänger wäre ebenfalls sehr nützlich, da sie vermeiden würde, daß ein Sender auf die Verfügbarkeit des gewünschten Empfängers warten muß.
  • Im Hinblick auf die vorangegangenen bekannten Mängel, was den Stand der Technik betrifft, ist es eine Aufgabe dieser Erfindung, ein verbessertes Verfahren einer Kommunikation zwischen Programmen bereitzustellen, das im Rahmen eines Datenverarbeitungssystems zur Erleichterung des Datenaustausches zwischen Sendern und Empfängern in einem VolldupleXmodus eingesetzt werden kann.
  • Die bevorzugte Ausführungsform der vorliegenden beanspruchten Erfindung wird realisiert, indem eine Einrichtung zur Kommunikation zwischen Programmen bereitgestellt wird, die selbst ein im Speicher befindliches und von einem Prozessor ausführbares Programm sein kann. Sender- und Empfängerprogramme können als innerhalb desselben Speichers befindlich definiert werden. Ein Senderprogramm mit einem Datenpuffer, der von einem Empfänger gewünscht wird oder den der Sender zum Empfängerprogramm senden möchte, kann einfach auf dieselbe Weise zum Programm zur Kommunikationseinrichtung zwischen Programmen übermittelt werden, wie adressierte Post zur möglichen Auslieferung zu einem Postamt gebracht wird. Das Senderprogramm muß nicht auf die Verfügbarkeit seines vorgesehenen Empfängers warten und muß nicht die räumliche Position kennen, an der sich der vorgesehene Empfänger befinden kann. Es ist lediglich erforderlich, daß jedes Empfängerprogramm sich selbst beim Programm zur Kommunikationseinrichtung zwischen Programmen registrieren muß. Folglich werden keine "Sitzungen" eingerichtet. Empfänger registrieren lediglich ihre Verfügbarkeit und Kennung bei der Einrichtung zur Kommunikation zwischen Programmen. Wenn Nachrichten, die für einen bestimmten Empfänger bestimmt sind, von einem gegebenen Sender zur Einrichtung zur Kommunikation zwischen Programmen übertragen werden, speichert die Kommunikationseinrichtung die Nachrichten in "Briefkästen", damit sie später von Empfängerprogrammen abgerufen werden, wenn diesen von der Einrichtung zur Kommunikation zwischen Programmen gemeldet wird, daß eine Nachricht für sie bereitsteht.
  • Die bevorzugte Ausführungsform wird ausführlicher mit Bezugnahme
  • auf die Zeichnungen beschrieben, in denen:
  • Figur 1 das Architekturlayout und den Nachrichtenfluß von einem ersten Programm, das sich in einem Speicherbereich innerhalb eines Computersystems befindet, zu einem Kommunikationseinrichtungsprogramm, das sich in einem anderen Bereich desselben Speichers befindet, und vom Kommunikationseinrichtungsprogramm zu einem Empfängerprogramm, das sich ebenfalls in demselben Speicher befindet, darstellt.
  • Figur 2 ein ausführliches Flußdiagramm von jenem Teil von Figur 1, der als Programm A bezeichnet ist, darstellt.
  • Figur 3 ein Flußdiagramm für jenen Teil von Figur 1, der als Programm B bezeichnet ist, darstellt.
  • Figur 4 jenen Teil von Figur 1, der als Programm C bezeichnet ist, darstellt.
  • Figur 5 das ausführliche Flußdiagramm von jenem Teil von Figur 1, der als Programm D bezeichnet ist, darstellt.
  • Figur 6 jenen Teil von Figur 1, der als Programm E bezeichnet ist, darstellt.
  • Figur 7 das ausführliche Flußdiagramm für jenen Teil von Figur 1, der als Programm F bezeichnet ist, darstellt.
  • Figur 8 das Flußdiagramm für jenen Teil von Figur 1, der als Programm G bezeichnet ist, darstellt.
  • Fachleute wissen es zu schätzen, daß die bevorzugte Ausführungsform der beanspruchten Erfindung, die kurz beschrieben wird, nicht nur auf Verfahren zur Kommunikation zwischen Programmen innerhalb eines einzigen Computers angewendet werden kann, sondern auch verwendet werden kann, um Verfahren zur Kommunikation zwischen Computern zu erleichtern. Im allgemeinen umfaßt das System der bevorzugten Ausführungsform der Erfindung Sender, Empfänger und einen Zwischenagenten, der allgemein als "Kommunikationseinrichtung" beschrieben wird.
  • In der bevorzugten Ausführungsform, die beschrieben wird, wird vorausgesetzt, daß die Sender und Empfänger Anwendungsprogramme sind, die sich im Speicher in einem einzigen Computersystem befinden, und die dazwischenliegende Kommunikationseinrichtung, zu der Nachrichten gesendet und von der sie abgerufen werden, ist ebenfalls ein Programm, das sich innerhalb desselben Computersystemspeichers befindet.
  • Der Vorgang der Kommunikation ist verhältnismäßig einfach. Ein Empfänger muß zuerst sich selbst beim Kommunikationseinrichtungsprogramm registrieren, so wie Postempfänger beim Postamt registriert sein müssen. Der Empfänger gibt eine initialisierungsanforderung zur Kommunikationseinrichtung aus, um seine Identität einzurichten und um der Kommunikationseinrichtung zu melden, daß er existiert und für den Empfang von Nächrichten verfügbar ist. Der Empfänger kann angeben, ob er Nachrichten von jedem Sender oder nur von bestimmten Kategorien von Sendern empfangen will, kann einen Grenzwert für die Anzahl von Datenpuffern mit Informationen, die in einer Warteschlange gespeichert werden sollen, angeben und kann seine Daten zur Verarbeitung abrufen, wann immer er dazu bereit ist.
  • Ein Übertragungs- oder Senderprogramm muß einen Sendeanforderungsbefehl zur Kommunikationseinrichtung ausgeben, um die Kommunikationseinrichtung zu informieren, daß ein Datenübertragungs-Task ausgeführt werden soll. Das Kommunikationseinrichtungsprogramm nimmt je nachdem, ob es erkennt, daß der vorgesehene Empfänger im System vorhanden ist, entweder Nachrichten von Sendern an oder weist sie zurück. Die Kommunikationseinrichtung benachrichtigt außerdem den vorgesehenen Empfänger, daß eine Nachricht für ihn bereitsteht, und sie benachrichtigt den Sender über den Status des bestimmten Empfängers zu dem Zeitpunkt, d.h. ob er verfügbar ist und Nachrichten empfängt oder ob er bei der Kommunikationseinrichtung nicht registriert ist. Um Nachrichten zu erhalten, gibt ein Empfänger eine Empfangsanforderung zur Kommunikationseinrichtung aus, die anschließend eine bereitstehende Nachricht an eine Position, die vom Empfänger im Speicher des Empfängers angegeben wurde, kopiert.
  • Bei diesem Verfahren wird wohl sofort als vorteilhaft angesehen, daß der Vorgang insofern asynchron ist, als der Sender und der Empfänger nicht miteinander synchronisiert werden müssen; außerdem ist klar, daß ein Vollduplexmodus des Datenaustausches möglich ist, da sowohl der Sender als auch der Empfänger gleichzeitig Nachrichten für einander zur zwischengeschalteten Kommunikationseinrichtung senden. Jeder Sender oder Empfänger gibt stets einen Anforderungsbefehl an die Kommunikationseinrichtung aus, um seine Übertragung oder seinen Empfang zu beginnen. Jeder Sender kann eine Nachricht zur Kommunikationseinrichtung senden, ohne sich selbst registriert zu haben, da nur die Empfänger registriert werden müssen. Die Kommunikationseinrichtung nimmt, ähnlich wie ein Postamt, Nachrichten an oder weist sie zurück, je nachdem, ob der vorgesehene Empfänger ihr bekannt ist oder nicht.
  • Dieses Verfahren vermeidet die Verwendung von Zwischenssteuerungen in der Art einer "Systemsitzungs"-Einrichtung und gestattet jedem Programm, zu einem gegebenen Empfängerprogramm zu senden, ohne eine Sitzung mit diesem einzurichten. Außerdem kann das Programm so viele Nachrichten senden, wie es wünscht, und muß nicht auf den Empfang durch das vorgesehene Empfängerprogramm warten. Ein Senderprogramm kann sogar Daten zu einem Empfängerprogramm senden, wenn das Empfängerprogramm gegenwärtig nicht aktiv ist, obwohl es bei der Kommunikationseinrichtung registriert ist und sich im System befindet. Das Kommunikationseinrichtungsprogramm kann Daten für einen vorgesehenen Empfänger annehmen und zwischenspeichern und einen Statuscode ausgeben, um das Senderprogramm zu benachrichtigen, daß der Empfänger gegenwärtig nicht aktiv ist.
  • Eine Vielfalt anderer Fähigkeiten und Vorteile gehen aus der Fortsetzung dieser Erläuterung hervor.
  • Eine bevorzugte Ausführungsform der Erfindung wird mit Bezugnahme auf eine Umgebung beschrieben, in der Sender, Empfänger und die Kommunikationseinrichtung sämtlichst Computerprogramme sind, die sich in verschiedenen Bereichen desselben Speichers innerhalb des von einem Prozessor bedienten Computersystems befinden. Der Prozessor könnte auch die Fähigkeit zum Multitasking, d.h. die Fähigkeit, mehrere Programme gleichzeitig auszuführen, aufweisen. Die Hauptbedingung ist, daß sich alle Programme innerhalb eines Speicherbereichs befinden, der von demselben Computersystem bearbeitet wird und für dieses zugreifbar ist. Falls eine Kommunikation zwischen Computern gewünscht wird, muß sich wenigstens das Kommunikationseinrichtungsprogramm in dem Computer befinden, der die "Postbüro"-Funktionen für andere Computer, die über dieses Verfahren aufeinander zugreifen wollen, ausführt.
  • Die bevorzugte Ausführungsform kommt jedoch in einer Architektureinstellung vor, wie sie mit Bezugnahme auf Figur 1 gezeigt wird. In Figur 1 ist ein Senderprogramm als innerhalb eines definierten Bereichs #1 des Computersystemspeichers befindlich dargestellt, und ein Empfängerprogramm ist als innerhalb eines Bereichs #2 desselben Computersystemspeichers befindlich dargestellt. Die Sender- und Empfängerprogramme können verschiedene Benutzerprogramme sein, die zum Zwecke der Erleichterung von durchzuführenden Berechnungen oder der Ausführung von zusätzlichen Tasks als Antwort auf Ergebnisse, die von dem einen oder anderen geliefert wurden, Datenpuffer mit Informationen austauschen müssen und/oder auszutauschen wünschen. Das zwischengeschaltete Kommunikationseinrichtungsprogramm befindet sich ebenfalls in noch einem anderen definierten Bereich desselben Speichers, der von demselben Prozessor bedient wird.
  • Wie in Figur 1 gezeigt ist, leitet das Senderprogramm den Vorgang des Sendens ein, indem es ein "Anforderungsparameterpuffer von Programm X aufrufen" ausgibt. Dies ist eine Standardprogramm-Aufrufschnittstelle der höheren Ebene mit bestimmten Anforderungsparameter-Pufferinhalten, wie sie in Tabelle 1 beschrieben sind. TABELLE 1 Position (Byte) Datenfeld RPB- LANGE TYP RECOPT RETCODE SENDER- ID PUFFERW- L EMPFANGER- ID PUFFERLÄNGE BERECHT-ANZ PUFFERADR *Hinweis: ASCE-ADR und ECB-ADR überlappen SENDER-ID. BERECHT-ANZ überlappt die ersten beiden Bytes von PUFFERLÄNGE. TCB-ADR überlappt die PUFFERADRESSE.
  • Diese Art von Kommunikationseinrichtung kann allgemein mit jeder höheren Programmiersprache oder Assemblerprogrammiersprache, die eine Standardprogramm-Aufrufschnittstelle unterstützen kann, verwendet werden. Die Ansprüche an die und die Funktionsfähigkeiten der Aufrufschnittstelle werden hierin ausführlicher beschrieben.
  • Es sei darauf hingewiesen, daß die Programme E, C, D, E, F und G in der folgenden Beschreibung Teile der Kommunikationseinrichtung sind. Beim Programm A ist nur der Teil der Aufrufeinrichtung ein Teil der Kommunikationseinrichtung.
  • Wie in der obigen Tabelle 1 gezeigt wird, weisen die Anforderungsparameterpuffer- (RPB-) Felder willkürlich definierte Byteformatbedeutungen auf, die hierin alle ausführlicher beschrieben werden. Die Aufrufeinrichtung wird, wie in Figur 1 gezeigt wird, tatsächlich durch das Programm A realisiert und jedesmal ausgeführt, wenn das Benutzerprogramm ein AUFRUFEN ausgibt, um die Kommunikationseinrichtung zu verwenden. Das Programm A ist in Figur 2 ausführlicher definiert; das Programm A wird jedoch jedesmal ausgeführt, wenn das Benutzerprogramm, d.h. ein Senderoder ein Empfängerprogramm, einen Aufrufbefehl ausgibt. Das Programm A prüft, ob das zwischengeschaltete Kommunikationseinrichtungsprogramm und das Programm B aktiv sind, und bewirkt, falls das Programm B aktiv ist, daß das Programm B sofort ausgeführt wird. Andernfalls wird ein Rückkehrcode gesetzt, und das Programm A erlangt erneut die Steuerung und benachrichtigt das Benutzerprogramm, daß die Kommunikationseinrichtung zu diesem Zeitpunkt nicht verfügbar ist.
  • Der allgemeine Fluß der Arbeitsgänge läuft nach dem in Figur 1 gezeigten Schema ab. Unter der Annahme, daß die Überprüfung der Verfügbarkeit für das zwischengeschaltete Kommunikationseinrichtungsprogramm und das Programm B durch das Programm A positiv ist, wird das Programm B ausgeführt.
  • Das Programm B führt die folgenden Arbeitsgänge aus. Zuerst wertet es den Benutzeranforderungstyp als einen Typ aus, der durch eine frühere Anordnung bekannt ist. Außerdem prüft es, ob das Benutzerprogramm ein berechtigtes Programm ist (falls es eine Anforderung des Typs ist, der eine Berechtigung erfordert, wie hierin ausführlicher beschrieben wird). Falls die Anforderung des Benutzers eine Überprüfung bei einem gegebenen Empfänger benötigt, prüft das Programm B außerdem, ob der Empfänger bei der Kommunikationseinrichtung definiert worden ist und ob er gegenwärtig aktiv ist oder nicht. Das Programm B prüft außerdem, ob die Anforderung eines Benutzerprogramms darin besteht, einen Empfänger in den inaktiven Zustand zu versetzen, und prüft, ob der vorgesehene Empfänger tatsächlich bereits im Speicherbereich der Kommunikationseinrichtung definiert worden ist. Falls die Anforderung des Benutzerprogramms darin besteht, einen Datenpuffer zu senden, prüft das Programm B, ob der vorgesehene Empfänger in dem der Kommunikationseinrichtung zugewiesenen Speicherbereich bereits definiert ist. Falls die Benutzerprogrammanforderung darin besteht, ein Alert zu einem Netzverwaltungsprogramm zu senden, prüft das Programm B, ob das Verwaltungsprogramm im Speicherbereich der Kommunikationseinrichtung als ein Empfänger definiert wurde. Außerdem prüft das Programm B, ob ein Senderprogramm ein APF-berechtigtes Programm ist, wenn die Anforderung eines Benutzerprogramms darin besteht, einen Datenpuffer mit Informationen zu einem Empfängerprogramm zu senden, das als ein berechtigter Empfänger initialisiert worden ist. Zusätzlich richtet das Programm B eine Wiederherstellungsroutine ein, falls dies angefordert wird. Diese Routine wird im Falle einer abnormalen Beendigung ausgeführt und gibt die Steuerung zurück zum anfordernden Benutzerprogramm. In Abhängigkeit vom Typ der vom Benutzerprogramm ausgegebenen Anforderung führt das Programm B das Kommunikationseinrichtungsprogramm aus, das sich im Zwischenspeicher von Programm C, D und E befindet, was insbesondere von dem bestimmten Anforderungstyp abhängt.
  • Das Programm C wird als Antwort auf Maßnahmen ausgeführt, die vom Programm B durchgeführt wurden, um Benutzeranforderungen der bestimmten Typen 12 und 14, die hierin an späterer Stelle ausführlicher beschrieben werden, zu verarbeiten. Das Programm C erhält einen Datenspeicherbereich innerhalb des Zwischenspeicherbereichs des Kommunikationseinrichtungsprogramms, um den Datenpuffer mit Informationen des Benutzers zwischenzuspeichern. Das Programm C kopiert anschließend die Datenpufferinformationen des Benutzers aus dem Eenutzerspeicherbereich des sendenden Programms in den Zwischenspeicherbereich des Kommunikationseinrichtungsprogramms. Falls das vorgesehene Empfängerprogramm aktiv ist und der Ausführungssteuerblock des Empfängers nicht gesetzt wurde, um anzuzeigen, daß eine Nachricht für den gegebenen Empfänger bereitsteht, wird anschließend der Steuerblock des Empfängers gesetzt, um dies anzuzeigen. Das Programm D kann, wie in Figur 1 gezeigt wird, vom Programm B ausgeführt werden, um Anforderungen von Benutzerprogrammen des Typs 22 zu verarbeiten, wie an späterer Stelle beschrieben wird. Dies ist der Typ von Anforderung, die ausgegeben wird, um das Anrufen eines Datenpuffers mit Informationen, der zuvor für ein gegebenes Empfängerprogramm in einer Pufferwarteschlange gespeichert wurde, anzufordern. Das Programm D prüft die Pufferwarteschlange des Empfängers innerhalb des Speicherbereichs des Kommunikationseinrichtungsprogramms, um festzustellen, ob eine Nachricht zum Empfang verfügbar ist. Es prüft außerdem, ob die vom Empfängerprogramm angegebene Pufferlänge groß genug ist, um den eingehenden Datenpufferinhalt zu speichern. Anschließend kopiert es den Datenpufferinhalt im Zwischenspeicher des Kommunikationseinrichtungsprogramms hinüber in den Speicherbereich des Empfängerprogramms und gibt den Datenpufferspeicher zur erneuten Verwendung im Speicherbereich der Kommunikationseinrichtung frei.
  • Das Programm E wird vom Programm B ausgeführt, um Benutzerprogrammanforderungen der Typen 4 und 9 zu verarbeiten. Falls die Anforderung vom Benutzer darin besteht, einen Empfänger in einen inaktiven Zustand zu versetzen, Anforderungstyp 9, dann setzt das Programm E den Empfängerstatus auf "nicht aktiv". Falls die Anforderung darin besteht, ein Programm als Empfänger zu definieren oder zu initialisieren, Anforderungstyp 4, und der Empfänger bereits definiert wurde, setzt es den Empfängerstatus auf "aktiv"; falls der Empfänger jedoch noch nicht definiert wurde, führt es die Initialisierung für den Empfänger durch und setzt den Status auf "aktiv".
  • Das Programm F wird vom System jedesmal ausgeführt, wenn ein Benutzer-Task oder ein Benutzer-Speicherbereich beendet wird. Falls das Beendigungs-Task mit demjenigen des definierten Empfängers übereinstimmt, wird der Status des Empfängers auf "nicht aktiv" gesetzt, und falls der Beendigungs-Speicherbereich des Benutzers mit einem der Empfänger übereinstimmt, wird der Status des Empfängers ebenfalls auf "nicht aktiv" gesetzt.
  • Das Programm G wird vom System ausgeführt, wenn der Zwischenspeicherbereich beendet wird. Es benachrichtigt alle aktiven Empfänger, indem es einen Code in die ECBs der Empfänger stellt, der sie benachrichtigt, daß der Zwischenspeicherbereich beendet wird.
  • Der Verarbeitungspfad und die Funktionen werden durch den bestimmten Anforderungsparameterpuffer definiert, der durch den AUFRUF-Befehl des Benutzerprogramms angezeigt wird. Die Inhalte der Felder des Anforderungsparameterpuffers sind in Tabelle 1 angegeben und haben die Funktion oder Bedeutung, wie sie in der untenstehenden Tabelle 2 definiert ist. TABELLE 2 RPB-LÄNGE > Länge dieses RPBs in Byte (einschließlich dieses Feldes) (4-Byte-Binärwert) . (d.h. 40) TYP > Anforderungstyp. (2-Byte-Binärwert) '1' - Anforderung zur Prüfung, ob die Kommunikationseinrichtung verfügbar ist, um Benutzeranforderungen zu verarbeiten. '2' - Anforderung zur Prüfung, ob ein in EMPFÄN- GER-ID angegebenes Empfängerprogramm aktiv ist. '4' - Anforderung zum Definieren und Initialisieren eines Empfängers. '9' - Anforderung zum Setzen eines Empfängers auf "nicht aktiv". '12' - Anforderung zum Senden einer Kopie eines generischen Alertpuffers eines Benutzers zur Verarbeitung zum Netzverwaltungsprogramm. Der Benutzeralertpuffer muß den 8-Byte-Kennsatz des Vektortransports für Verwaltungsservices (NMVT) enthalten.
  • '14' - Anforderung zum Senden einer Kopie eines Benutzerdatenpuffers zum Empfänger.
  • '22' - Anforderung zum Erhalten eines Datenpuffers, der in der Pufferwarteschlange für einen Empfänger gespeichert war.
  • RECOPT > Dies ist eine Auswahlbezugszahl zur Wiederherstellung.
  • (2-Byte-Binärwert)
  • '0' - Keine Wiederherstellung angefordert.
  • '1' - Anforderung, dar eine Wiederherstellungsroutine während dieser Verarbeitung bereitgestellt wird.
  • RETCODE > Verarbeitungs-Rückkehrcode
  • (4-Byte-Binärwert)
  • '0' - Anforderung erfolgreich beendet.
  • '4' - Anforderung erfolgreich beendet.
  • Das Empfängerprogramm ist nicht aktiv. (Oder das Alert-Empfängerprogramm der Netzverwaltung ist nicht aktiv, falls der Anforderungstyp '12' verwendet wird.)
  • '10' - Die Kommunikationseinrichtung ist verfügbar, um Benutzeranforderungen zu verarbeiten.
  • '14' - Das Empfängerprogramm ist aktiv.
  • '15' - Das Empfängerprogramm ist nicht aktiv.
  • '16' - Das Empfängerprogramm ist bereits aktiv.
  • '20' - Ungültiger Anforderungstyp.
  • '22' - Das Benutzerprogramm wird nicht im primären Adressiermodus ausgeführt.
  • '23' - Das Benutzerprogramm ist nicht berechtigt.
  • '24' - Die Kommunikationseinrichtung ist nicht aktiv.
  • '25' - Die ASCB-Adresse ist nicht korrekt.
  • '26' - Das Empfängerprogramm ist nicht definiert.
  • '28' - Die Kommunikationseinrichtung unterstützt die Benutzeranforderung nicht.
  • '30' - Es ist kein Datenpuffer für den Empfänger verfügbar.
  • '31' - Die Größe des Benutzerpuffers ist nicht groß genug, um den bereitstehenden Datenpuffer zu speichern.
  • '32' - Es ist kein Speicher verfügbar.
  • '34' - Die Länge des Benutzer-Alertpuffers übersteigt 512 Bytes.
  • '35' - Die Empfängerpuffer-Warteschlange ist voll.
  • '36' - Es kann keine Wiederherstellungsroutine eingerichtet werden, wie angefordert wurde.
  • '40' - Ungültige SENDER-ID oder EMPFÄNGER-ID.
  • '90' - Es ist ein Prozeßfehler aufgetreten.
  • ARBEITSADR > Die Adresse des für das Kommunikationseinrichtungs- Servicemodul benötigten Arbeitsspeichers. Der Arbeitsspeicher muß eine Länge von 128 Bytes aufweisen. (4-Byte-Binärwert)
  • SENDER-ID > 8-Zeichen-ID des Senders. (z.B. Benutzermodulname, Programmname oder Produktname)
  • ASCB-ADR > Die Adresse des Adreßraum-Steuerblocks (ASC des Einpfängerprogramms). (4-Byte-Binärwert)
  • TCB-ADR > Die Adresse des Task-Steuerblocks (TCB) des Empfängerprogramms. (4-Byte-Binärwert).
  • ECB-ADK > Die Adresse des Ereignissteuerblocks (ECB), auf den ein Empfängerprogramm wartet, um ihn zu setzen, wenn Datenpuffer eingetroffen sind. 4-Byte-Binärwert).
  • PUFFEPW-L > Die maximale Anzahl von anstehenden Datenpuffern, die für eine Empfängerpuffer-Warteschlange gestattet sind. (4-Byte-Binärwert).
  • EMPFÄNGER-ID > 8-Zeichen-ID für das Empfängerprogramm.
  • PUFFERLÄNGE > Länge des Benutzerdatenpuffers. (4-Byte-Binärwert).
  • PUFFEPADR > Die Adresse des Benutzerdatenpuffers. (4-Byte-Binärwert). (Falls der Anforderungstyp '12' verwendet wird, muß der Benutzer-Alertpuffer den 8-Byte-NMVT- Kennsatz enthalten.)
  • BERECHT-ANZ > Berechtigungsanzeiger. (2-Byte-Binärwert).
  • '0' - Der Empfänger ist als "nicht berechtigt" initialisiert.
  • '1' - Der Empfänger ist als " berechtigt" initialisiert. Ein Senderprogramm muß APF-berechtigt sein, um Datenpuffer zu einem berechtigten Empfänger zu senden.
  • Die obige Tabelle 1 gibt die Byteposition innerhalb der Felder des Anforderungsparameterpuffers an und definiert die ihnen zugeschriebene Bedeutung. Wie in Tabelle 2 gezeigt wird, sind die Anforderungstypen willkürliche Codierungen mit den Bedeutungen, die für jeden der gezeigten Anforderungstypen definiert sind. Die Wiederherstellungscodes und die Rückkehrcodes sind ebenfalls willkürlich und werden wie gezeigt definiert. Andere Anzeiger und Zeiger sind in Tabelle 2 definiert.
  • Die Sender-ID und die Empfänger-ID, die Bytes 17 bis 24 des RPB und 25 bis 32 des RPB, wie in Tabelle 1 gezeigt wird, müssen in dieser Ausführungsform eine Länge zwischen einem und acht Zeichen aufweisen. Diese IDs bestehen aus alphanumerischen Zeichen oder speziellen Zeichen, die vom Denutzer willkürlich ausgewählt werden. Falls eine gegebene ID keine acht Zeichen lang ist, wird sie bei der Verarbeitung der hierin beschriebenen Programme linksbündig ausgerichtet und mit Leerzeichen aufgefüllt. Für alle Typen von Anforderungen von einem beliebigen Eenutzer wird die Steuerung der Programmausführung zum anfordernden Programm des Benutzers rückübertragen, das auf die Ausführung des AUFRUF- Befehls folgt.
  • Die für den Anforderungstyp 1 benötigten Parameter sind die RPB- Länge und der Typ, und der Rückkehrcode kann beliebig 10, 24 oder 28 sein. Die für den Anforderungstyp 2 benötigten Parameter sind die RPB-Länge, der Typ, die Arbeitsadresse und die Empfänger-ID, und der Rückkehrcode kann beliebig 14, 15, 24, 26 oder 28 sein.
  • Die für Anforderungen vom Typ 4 benötigten Pufferparameter sind die Länge, der Typ, die Wiederherstellungsoption, die Arbeitsadresse, die Adresse des Adreßraum-Steuerblocks, der Pufferwarteschlangen-Grenzwert, die Adresse des Task-Steuerblocks, die Empfänger-ID und der Berechtigungsanzeiger. Der Pufferwarteschlangen-Grenzwert wird verwendet, um die maximale Anzahl von anstehenden Datenpuffern, die für die Pufferwarteschlange eines gegebenen Empfängers gestattet sind, anzugeben. Falls dieser Grenzwert überschritten wird, wird der Datenpuffer mit Informationen des Senders vom Kommunikationseinrichtungsprogramm nicht akzeptiert, und der Rückkehrcode von 35 wird ausgegeben. Die Rückkehrcodes können für diesen Anforderungstyp 0, 16, 23, 24, 28, 32, 35, 36 oder 40 sein. Wird die Anforderung erfolgreich beendet, enthält ECB-ADRESSE die Adresse für den ECB für das Empfängerprogramm. Dieser Ereignissteuerblock wird zur Ausführung aktualisiert, wenn der Datenpuffer mit Informationen eintrifft. Das Benutzerprogramm, das den Puffer senden möchte, muß APF-berechtigt sein, um diesen Anforderungstyp zu verwenoen.
  • Die für den Anforderungstyp 9 benötigten Parameter sind: Länge (RPE-LAN), TYP, Wiederherstellungsoption (RECOPT), Arbeitsadresse (ARB-ADR) und EMPFÄNGER-ID. Die PUFFERW-L wird verwendet, um die maximale Anzahl von anstehenden Datenpuffern mit Daten, die für einen Empfänger angenommen werden können, während er nicht aktiv ist, anzugeben. Falls dieser Grenzwert überschritten wird, wird der Datenpuffer des Senders nicht angenommen, und der Rückkehrcode ist 35. Die Rückkehrcodes können beliebig 0, 15, 23, 24, 25, 26, 28, 35, 36 oder 40 sein. Ein Senderprogramm kann immer noch Datenpuffer zu einem inaktiven Empfängerprogramm senden, solange die definierte Pufferwarteschlange des Empfängers nicht voll ist. Das sendende Programm empfängt jedoch einen Rückkehrcode von 4, um anzuzeigen, daß das Empfängerprogramm gegenwärtig nicht aktiv ist. Benutzerprogramme müssen APF-berechtigt sein, um diese Anforderung zu verwenden.
  • Die für den Anforderungstyp 12 benötigten Parameter sind: RPB- LÄN, TYP, RECOPT, ARB-ADR, SENDER-ID, PUFFERLÄNGE und PUFFEPADR. Die Rückkehrcodes können 0, 4, 23, 24, 26, 28, 32, 34, 35, 36 oder 40 sein. Ein Benutzerprogramm kann diesen Anforderungstyp verwenden, um eine Kopie von Alertpufferdaten zur Verarbeitung zu einem Netzverwaltungsprogramm zu senden.
  • Die für den Anforderungstyp 14 benötigten RPB-Inhalte sind: RPB- LÄN, TYP, RECOPT, ARB-ADR, SENDER-ID, EMPFÄNGER-ID, PUFFERLÄNGE und PUFFERADR. Die Rückkehrcodes können 0, 4, 23, 24, 26, 28, 32, 35, 36 oder 40 sein. Wie zuvor kann ein Senderprogramm immer noch Datenpuffer mit Informationen zu einem inaktiven Empfängerprogramm senden, es wird jedoch ein Rückkehrcode, der die Inaktivität des Programms anzeigt, zum Anforderer zurückgesendet.
  • Die für den Anforderungstyp 22 benötigten RPB-Inhalte sind: RPB- LÄN, TYP, RECOPT, ARB-ADR, ASCB-ADR, EMPFÄNGER-ID, PUFFERLÄNGE und PUFFERADR. Die Rückkehrcodes können 0, 23, 24, 25, 26, 28, 30, 31, 36 oder 40 sein. Die Pufferadresse muß die Adresse eines Pufferbereichs innerhalb des Empfängerprogramm-Adreßraumes sein, wo ein eingehender Datenpuffer kopiert werden kann. Falls diese Anforderung erfolgreich ist, enthält das Feld SENDER-ID die Kennung des Senderprogramms, und die Pufferlänge enthält die Länge des eingehenden Datenpuffers. Falls die angegebene Pufferlänge nicht groß genug ist, um die eingehenden Daten für den vorgesehenen Empfänger zu speichern, ist der Rückkehrcode 31, und die Länge des eingehenden Datenpuffers wird in das Pufferlängenfeld übernommen. In diesem Fall muß das empfangende Programm einen anderen Puffer erhalten, der groß genug ist, um den eingehenden Datenpuffer zu speichern, und die Anforderung erneut versuchen.
  • Was Figur 1 betrifft, kann das Kommunikationseinrichtungsprogramm als tatsächlich aus allen Unterroutinen einschließlich der Programme A bis G bestehend betrachtet werden, wie es in Figur 1 dargestellt ist. Jedes dieser Programme befindet sich, so wie das Senderprogramm und das Empfängerprogramm, innerhalb angegebener Speicherbereiche innerhalb desselben Prozessors. Die einzelnen Programmteile A bis G werden nun mit Bezugnahme auf die Figuren 2 bis 8 beschrieben, in denen das ausführliche Flußdiagramm für jede Unterroutine dargestellt ist.
  • In Figur 2 wird das ausführliche Flußdiagramm für das Programm A, den ersten Teil des Kommunikationseinrichtungsprogramms, gezeigt. Die Verarbeitung vom Programm A ist selbsterklärend, sie beginnt im oberen Teil von Figur 2, wo das Programm A von einem Benutzer, einem Sender oder Empfangsprogramm den RPB empfängt. Es ist ersichtlich, daß Programm A, falls es gewünscht wird, die Programmregister des Benutzers speichert, prüft, ob der Rest des Kommunikationseinrichtungsprogramms und Speicherbereich verfügbar sind, prüft, ob die ausgegebene Anforderung eine Einrichtungsanforderung ist, oder es führt die Anforderung des Benutzers aus, indem es, wie gezeigt wird, das Verarbeitungsmodul Programm B verwendet. Als seinen letzten Schritt rücküberträgt es, wie gezeigt wird, die Steuerung zum Benutzerprogramm.
  • Figur 3 stellt den ausführlichen Verarbeitungsfluß vom Programm B dar, der im oberen Teil beginnt, wo es seine Initialisierung vom Programm A empfängt. Figur 3 weist verschiedene Eingangsund Ausgangspositionen auf, die, wie gezeigt wird, mit einem in einem Kreis befindlichen A, B, X markiert sind. Das Programm B prüft, ob der in dessen RPB angegebene Anforderungstyp des Benutzers gültig ist, ob eine Initialisierung oder Beendigung eines Empfängerprogramms angefordert wird, und führt die geeignete Maßnahme durch, um einen bestehenden Empfänger entweder zu definieren oder zu beenden, prüft, ob die Anforderung darin besteht, einen Puffer mit Informationen abzurufen oder einen Puffer mit Informationen zu senden oder ein Alert zu senden oder einen Empfänger zu initialisieren oder zu beenden, und führt, wie engezeigt ist, die Routine D zur Entfernung aus der Warteschlange oder die Routine F zur Empfängerinitialisierung/-beendigung oder den Einreihungsteil vom Programm C aus.
  • Das Einreihungsprogramm beginnt, wie in Figur 4 gezeigt wird, für das Programmodul C durch die Initialisierung von Programm B. Diese Routine führt das Laden der Empfängerpuffer-Warteschlange innerhalb des Speicherbereichs des Kommunikationseinrichtungsprogramms aus.
  • Das Programm D zur Entfernung aus der Warteschlange wird in Figur 5 gezeigt.
  • Das Programm D zur Entfernung aus der Warteschlange empfängt seinen Eingang vom Programm B und arbeitet wie dargestellt. Eine Beschreibung ist nicht nötig, da die Figur selbsterklärend ist.
  • Die lnitialisierung oder Beendigung eines Empfängers wird vom Programmodul E ausgeführt, das, wie in Figur 6 gezeigt wird, seinen Eingang vom Programm B empfängt. Es führt die Definition oder Beendigung eines gegebenen Benutzerprogramms als einem definierten Empfänger gegenüber dem Kommunikationseinrichtungsprogramm aus.
  • Figur 7 stellt den Fluß für die Verarbeitung einer Task- oder Adreßraunbeendigung für das Programm F dar, die in Figur 1 gezeigt wird. Es wird durch eine Task-Ende- oder Adreßraumende- Funktion vom Prozessor ausgeführt und hat die Funktion, den definierten Empfänger auf "nicht aktiv" zu setzen und die Steuerung zum aufrufenden Programm rückzuübertragen.
  • Figur 8 stellt die Unterroutine Programm G aus Figur 1 dar, die durch einen Bediener, der ein Ende des Informationsübertragungsvorganges zwischen Programmen benötigt, eingeleitet wird.
  • Wie aus der vorangegangenen Erläuterung hervorgeht, benötigt das Programm zur Kommunikationseinrichtung zwischen Programmen keine vordefinierten Senderprogramme und benötigt keine Einrichtung oder Aufrechterhaltung einer "Sitzung", damit eine Kommunikation stattfinden kann. Wenn ein vorgesehenes Empfängerprogramm bei der Kommunikationseinrichtung definiert wurde, indem es sich selbst definiert, kann eine beliebige Anzahl von Senderprogrammen mit der Kommunikation oder dem Senden von Daten zum Empfängerprogramm beginnen. Es ist einem Empfängerprogramm gestattet, der Kommunikationseinrichtung anzugeben, ob zukünftige Senderprogramme für zu ihm zu sendende Datenübertragungen APF-berechtigt sein müssen oder nicht. Wenn Senderprogramme kommunizieren oder Daten zu einem Empfänger senden möchten, kopiert das zwischengeschaltete Kommunikationseinrichtungsprogramm die Daten des Senders in eine Pufferwarteschlange des Empfängers innerhalb des Adreßraums des Kommunikationseinrichtungsprogramms, benachrichtigt den Empfänger, daß Daten für ihn eingehen, und überträgt dem sendenden Programm die Steuerung. Ein Senderprogramm muß nicht warten, bis das Empfängerprogramm seine Daten empfängt; es kann beginnen, Daten wieder zu demselben Empfänger oder zu einem anderen Empfänger zu senden, sobald die Rückgabe der Steuerung erfolgt ist. Der Empfänger kann einen Grenzwert für die Anzahl von Datenpuffern mit Informationen angeben, die das zwischengeschaltete Kommunikationseinrichtungsprogramm in der Pufferwarteschlange dieses Empfängers für ihn speichern soll. Annlich kann ein Empfänger seine Daten jedesmal zur Verarbeitung abrufen, wenn er dazu bereit ist. Jedesmal, wenn der Empfänger eine Datenabrufanforderung ausgibt, kopiert die Kommunikationseinrichtung die Daten, einen Datenpuffer für jede Anforderung, in den Adreßraum und den Speicher des Empfängers.
  • Senderprogramme können auch dann noch Daten zu einem Empfängerprogramm senden, wenn das Programm gegenwärtig nicht aktiv ist. Das zwischengeschaltete Kommunikationseinrichtungsprogramm kann Daten für einen vorgesehenen Empfänger annehmen und zwischenspeichern und einen Statuscode ausgeben, um das Senderprogramm zu benachrichtigen, daß der Empfänger gegenwärtig nicht aktiv ist. Das Empfängerprogramm selbst kann das zwischengeschaltete Kommunikationseinrichtungsprogramm benachrichtigen, daß es nicht mehr aktiv ist, und es kann einen Grenzwert für die Anzahl von Datenpuffern mit Informationen angeben, die das Kommunikationseinrichtungsprogramm für es annehmen und zwischenspeichern soll, während es sich im inaktiven Zustand befindet.
  • Das Kommunikationseinrichtungsprogramm erkennt jedesmal, wenn ein Empfängerprogramm normal oder abnormal endet, und setzt den geeigneten Status für den Empfänger auf "nicht aktiv".
  • Aus dem Vorangegangenen geht als vorteilhaft hervor, daß eine leicht zu verwendende Vorrichtung und ein Verfahren der höheren Ebene zur Kommunikation zwischen Programmen beschrieben wurde, die durch Programme, die jede willkürlich gewünschte höhere Programmiersprache mit der Fähigkeit zum Unterstützen von Standardprogramm-Aufrufvorgängen verwenden, in jeder Art von Computersystem verwendet werden kann. Der Aufrufvorgang ruft, wie ausführlich dargestellt und beschrieben wird, über das zwischengeschaltete Programm zur Kommunikationseinrichtung zwischen Programmen die sich selbst verursachenden Module A bis G auf und unterstützt eine asynchrone und nicht "Sitzungs"-abhängige Vollduplex-Kommunikation zwischen Benutzer- und Empfängerprogrammen oder Maschinen, was sofort als vorteilhaft zu erkennen ist.
  • Was in den folgenden Ansprüchen dargelegt wird, ist im Hinblick auf die vorangegangene Beschreibung und Anzeige von Anwendungen für die bevorzugte Ausführungsform der Erfindung als Beschreibung gedacht und soll keine Beschränkung darstellen.

Claims (6)

1. Verfahren zum Austausch von Daten zwischen einem Senderprogramm und einem Empfängerprogramm in einem Datenverarbeitungssystem, das einen adressierbaren Speicher, einen Prozessor und eine Vielzahl von residenten ausführbaren Prozessorprogrammen umfaßt,
wobei ein Kommunikationseinrichtungsprogramm im Speicher gespeichert wird;
gekennzeichnet durch die folgenden Schritte:
Aufrufen des Kommunikationseinrichtungsprogramms vom Empfängerprogramm, wobei das Empfängerprogramm sich selbst dem Kommunikationseinrichtungsprogramm gegenüber als ein Empfänger kennzeichnet;
Aufrufen des Kommunikationseinrichtungsprogramms von einem Senderprogramm im Datenverarbeitungssystem und Liefern der Daten, die vom Kommunikationseinrichtungsprogramm zum Empfängerprogramm übertragen werden müssen; und
Anforderung vom Empfängerprogramm an das Kommunikationseinrichtungsprogramm zur Lieferung von Daten, die für das Empfängerprogramm bestimmt sind.
2. Verfahren gemäß Anspruch 1, das desweiteren den Schritt des Kopierens der Daten des Senderprogramms im Kommunikationseinrichtungsprogramm in den Adreßraum des Kommunikationseinrichtungsprogramms umfaßt, der für Daten, die für Empfängerprogramme bestimmt sind, zugeordnet ist.
3. Verfahren gemäß Anspruch 2, das desweiteren den Schritt der Benachrichtigung des Empfängerprogramms durch das Kommunikationseinrichtungsprogramm umfaßt, daß die Daten im Adreßraum des Kommunikationseinrichtungsprogramms, der dem Empfängerprogramm zugeordnet ist, für das Empfängerprogramm bereitstehen.
4. Verfahren gemäß Anspruch 3, das desweiteren die Schritte des Zugreifens auf die Adressenbasis des Kommunikationseinrichtungsprogramms durch das Empfängerprogramm und des Abrufens von Daten daraus durch das Kopieren der Daten aus dem Adreßraum des Kommunikationseinrichtungsprogramms, der dem Empfängerprogramm zugeordnet ist, umfaßt.
5. Verfahren gemäß einem der Ansprüche 1, 2 oder 3, wobei das Aufrufen des Kommunikationseinrichtungsprogramms durch ein Sender- oder ein Empfängerprogramm einen Aufrufbefehl, den Namen des aufgerufenen Kommunikationseinrichtungsprogramms und eine Kommunikationsparameterspezifikation mit Informationsfeldern, die die Länge der Spezifikation und die Art der ausgegebenen Anforderung definieren, umfaßt.
6. Verfahren gemäß Anspruch 6, wobei die Spezifikation desweiteren Datenfelder für die Arbeitsadresse des für das Kommunikationseinrichtungsprogramm benötigten Speicherbereichs und eine Kennung des Empfängerprogramms, das zum Empfangen bestimmt ist oder das eine Kommunikation an fordert, beinhaltet.
DE68924040T 1988-10-24 1989-09-12 Verfahren zum Austauschen von Daten zwischen Programmen in einem Datenverarbeitungssystem. Expired - Fee Related DE68924040T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US26121288A 1988-10-24 1988-10-24

Publications (2)

Publication Number Publication Date
DE68924040D1 DE68924040D1 (de) 1995-10-05
DE68924040T2 true DE68924040T2 (de) 1996-04-18

Family

ID=22992358

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68924040T Expired - Fee Related DE68924040T2 (de) 1988-10-24 1989-09-12 Verfahren zum Austauschen von Daten zwischen Programmen in einem Datenverarbeitungssystem.

Country Status (4)

Country Link
US (1) US5287456A (de)
EP (1) EP0366583B1 (de)
JP (1) JPH0766335B2 (de)
DE (1) DE68924040T2 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69027788D1 (de) * 1989-01-17 1996-08-22 Landmark Graphics Corp Verfahren zur Übertragung von Daten zwischen gleichzeitig ablaufenden Rechnerprogrammen
US5230051A (en) * 1990-09-04 1993-07-20 Hewlett-Packard Company Distributed messaging system and method
JP2836283B2 (ja) * 1991-04-11 1998-12-14 日本電気株式会社 バッファ管理方式
JPH0522339A (ja) * 1991-07-16 1993-01-29 Toshiba Corp 電子メールシステム
US5267240A (en) * 1992-02-20 1993-11-30 International Business Machines Corporation Frame-group transmission and reception for parallel/serial buses
WO1994006078A1 (en) * 1992-08-31 1994-03-17 The Dow Chemical Company Script-based system for testing a multi-user computer system
GB9301280D0 (en) * 1993-01-22 1993-03-17 Int Computers Ltd Communications handler for a data processing system
GB9301286D0 (en) * 1993-01-22 1993-03-17 Int Computers Ltd Data processing system
US5535334A (en) * 1993-01-29 1996-07-09 Storage Technology Corporation Fault-tolerant system-to-system communications system and method utilizing multiple communications methods to transfer a single message
US5787300A (en) * 1993-11-10 1998-07-28 Oracle Corporation Method and apparatus for interprocess communications in a database environment
US5664231A (en) * 1994-04-29 1997-09-02 Tps Electronics PCMCIA interface card for coupling input devices such as barcode scanning engines to personal digital assistants and palmtop computers
EP0689139A3 (de) * 1994-06-22 1997-09-10 Ibm Verfahren und Gerät mit anonymen Antwortport für ein Mikrokernendatenverarbeitungssystem
EP0689137A3 (de) * 1994-06-22 1998-01-07 International Business Machines Corporation Verfahren und Gerät zum Aufzeichnen einer Nachrichtkontrollestruktur für ein Mikrokernendatenverarbeitungssystem
US5606666A (en) * 1994-07-19 1997-02-25 International Business Machines Corporation Method and apparatus for distributing control messages between interconnected processing elements by mapping control messages of a shared memory addressable by the receiving processing element
US5621729A (en) * 1995-06-07 1997-04-15 Geophonic Networks, Inc. Receiver controlled communication system
US5771353A (en) * 1995-11-13 1998-06-23 Motorola Inc. System having virtual session manager used sessionless-oriented protocol to communicate with user device via wireless channel and session-oriented protocol to communicate with host server
CN1492599B (zh) * 1995-12-19 2012-09-05 摩托罗拉移动公司 通信定额控制的方法和系统
US6101531A (en) * 1995-12-19 2000-08-08 Motorola, Inc. System for communicating user-selected criteria filter prepared at wireless client to communication server for filtering data transferred from host to said wireless client
US6535929B1 (en) 1996-07-02 2003-03-18 Sun Microsystems, Inc. Universal communication mechanism for applications running in a multitasking environment
JP2001202013A (ja) * 2000-01-21 2001-07-27 Nec Corp 匿名参加権限管理システム
WO2000062158A2 (en) * 1999-04-14 2000-10-19 Tyco Submarine Systems, Ltd. Method and apparatus for managing communications between multiple processes
JP4548146B2 (ja) * 2005-02-23 2010-09-22 日本電気株式会社 状態管理装置および方法およびプログラム
KR20130031345A (ko) * 2010-06-21 2013-03-28 노키아 코포레이션 진행중인 스트리밍 세션의 구성을 변경하기 위한 방법 및 장치
WO2012093202A1 (en) * 2011-01-07 2012-07-12 Nokia Corporation Method and apparatus for signaling presentation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3614745A (en) * 1969-09-15 1971-10-19 Ibm Apparatus and method in a multiple operand stream computing system for identifying the specification of multitasks situations and controlling the execution thereof
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4245306A (en) * 1978-12-21 1981-01-13 Burroughs Corporation Selection of addressed processor in a multi-processor network
US4333144A (en) * 1980-02-05 1982-06-01 The Bendix Corporation Task communicator for multiple computer system
US4418382A (en) * 1980-05-06 1983-11-29 Allied Corporation Information exchange processor
US4630196A (en) * 1983-04-13 1986-12-16 At&T Information Systems, Inc. Store and forward facility for use in multiprocessing environment
NL8400186A (nl) * 1984-01-20 1985-08-16 Philips Nv Processorsysteem bevattende een aantal stations verbonden door een kommunikatienetwerk, alsmede station voor gebruik in zo een processorsysteem.
EP0162670B1 (de) * 1984-05-19 1991-01-02 British Aerospace Public Limited Company Industrielle Verarbeitungs- und Herstellungsverfahren
JPS6182244A (ja) * 1984-05-23 1986-04-25 Hitachi Ltd タスク間デ−タ送受信方式
US4694396A (en) * 1985-05-06 1987-09-15 Computer X, Inc. Method of inter-process communication in a distributed data processing system
CA1244555A (en) * 1985-06-17 1988-11-08 Walter H. Schwane Process transparent multi storage mode data transfer and buffer control
JPS63150734A (ja) * 1986-12-16 1988-06-23 Fujitsu Ltd プロセス間通信制御方式

Also Published As

Publication number Publication date
JPH0766335B2 (ja) 1995-07-19
EP0366583B1 (de) 1995-08-30
JPH02144727A (ja) 1990-06-04
EP0366583A3 (de) 1992-06-03
US5287456A (en) 1994-02-15
EP0366583A2 (de) 1990-05-02
DE68924040D1 (de) 1995-10-05

Similar Documents

Publication Publication Date Title
DE68924040T2 (de) Verfahren zum Austauschen von Daten zwischen Programmen in einem Datenverarbeitungssystem.
DE3689990T2 (de) Flexible Datenübertragung für nachrichtenorientierte Protokolle.
DE3688893T2 (de) Datentransfer und Puffersteuerung mit mehrfachen prozesstransparenten Speicherbetriebsarten.
DE3879947T2 (de) Verteilte dateiserver-architektur.
DE69424114T2 (de) Nachrichtenübertragungssystem für Multiprozessorsystem mit verteiltem gemeinsamen Speicher und dazu gehöriges Nachrichtenübertragungsverfahren
DE3882989T2 (de) Verfahren und anordnung zur verwaltung von mehrverriegelungsanzeigen in einem multiprozessordatenverarbeitungssystem.
DE3855378T2 (de) Ein Fernsicherheitswegmechanismus für Telnet
DE3854837T2 (de) Vorrichtung für ein Datenverarbeitungssystem mit gleichmengiger Beziehung zwischen einer Vielzahl von zentralen Datenverarbeitungseinheiten
DE68919975T2 (de) Verfahren für die simultane Ablaufverwaltung eines verteilten Anwenderprogramms in einem Hostrechner und in einer grossen Anzahl von intelligenten Benutzerstationen in einem SNA-Netzwerk.
DE69329839T2 (de) Netzserver für lokale und entfernte Netzressourcen
DE69230093T2 (de) Multiprozessorsystem
DE69813976T2 (de) Datenübertragungssteuerverfahren und Vorrichtung und Datenübertragungssystem
DE3850881T2 (de) Verfahren und Vorrichtung zur Nachrichtenübertragung zwischen Quellen- und Zielanwender durch einen anteilig genutzten Speicher.
DE3586434T2 (de) Lokales netzwerk fuer ein numerisches datenverarbeitungssystem.
DE69704344T2 (de) Anwendungsprogrammierungsschnittstelle für datenübertragung und busverwaltung über eine busstruktur
DE68919631T2 (de) Verfahren zur Verarbeitung von Programmteilen eines verteilten Anwendungsprogramms durch einen Hauptrechner und einen intelligenten Arbeitsplatz in einer SNA LU 6.2-Netzwerkumgebung.
DE2913288C2 (de) Multiprozessoranlage mit einer Vielzahl von Prozessorbausteinen
DE69433293T2 (de) Netzwerkübertragungsverfahren für Systeme mit virtuellem Speicher
DE69630126T2 (de) Historische zustandinformation verwendendes entscheidungsprotokoll für zugriff auf ein geteiltes speichergebiet
DE69702708T2 (de) Verfahren und vorrichtung für klientverwaltete flusssteuerung in einem rechnersystem mit begrenztem speicher
DE69024753T2 (de) Tragbarer, Ressourcen teilender Datei-Server, der gemeinsame Routines benutzt
DE3851534T2 (de) Vorrichtung und verfahren zur buszugriffssteuerung.
DE69129298T2 (de) Leitwegsteuerung für transaktionsbefehle
DE69734432T2 (de) Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee