PatentDe  


Dokumentenidentifikation DE10195871B4 13.04.2006
Titel Mitteilungsübermittlungssystem und Verfahren zum Versand von Mitteilungen innerhalb eines Computersystems
Anmelder i2 Technologies, Inc., Dallas, Tex., US
Erfinder Dunn, Craig L., Austin, Tex., US;
McGann, Conor, Austin, Tex., US
Vertreter Dörries Frank-Molnia & Pohlman, 80538 München
DE-Anmeldedatum 06.03.2001
DE-Aktenzeichen 10195871
WO-Anmeldetag 06.03.2001
PCT-Aktenzeichen PCT/US01/40256
WO-Veröffentlichungsnummer 0000167263
WO-Veröffentlichungsdatum 13.09.2001
Date of publication of WO application in German translation 13.03.2003
Veröffentlichungstag der Patenterteilung 13.04.2006
Veröffentlichungstag im Patentblatt 13.04.2006
IPC-Hauptklasse G06F 15/16(2006.01)A, F, I, 20051017, B, H, DE

Beschreibung[de]

Die vorliegende Erfindung bezieht sich allgemein auf Rechnersysteme und im Besonderen auf ein Mitteilungsübermittlungssystem und ein Verfahren zum Versand von Mitteilungen innerhalb eines Computersystems.

Mit zunehmender Komplexität der elektronischen Rechnersysteme und der auf diesen Systemen ausgeführten Prozesse hat es sich eingebürgert, die Datenverarbeitung auf die eine oder andere Art zu verteilen. Außerdem stellt die verteilte Datenverarbeitung mit der immer mehr zunehmenden Verteilung der Rechenvorgänge auf Kommunikationsnetzwerke einen attraktiven Ansatz dar.

Wenn die Verarbeitung von Problemstellungen auf eine lokale oder räumlich voneinander getrennte Weise verteilt wird, nimmt die Kommunikation zwischen verschiedenen Prozessen einen zunehmend größerer Stellenwert ein. Diese Prozesse werden gelegentlich als Module bezeichnet und müssen miteinander kommunizieren können, um die gesamte Datenverarbeitungsaufgabe bewältigen zu können. Bei einer üblichen Technik für die Kommunikation von Prozessen an verschiedenen Standorten werden Mitteilungen zwischen den Prozessen übermittelt. Durch den Einsatz von Mitteilungen kann auf eine enge Kopplung der Prozesse verzichtet werden, so dass die Funktion der einzelnen Prozesse getrennt optimiert werden kann.

Die Zuverlässigkeit der vorhandenen Systeme und Methoden für die Übermittlung von Mitteilungen zwischen verteilten Prozessen ist für manche Anwendungen unzureichend. Bei gewissen kritischen Anwendungen könnte ein Hardware- oder Softwaremodulfehler zu einer Störung der Übermittlung einer Mitteilung zwischen Prozessen führen. Geht eine Mitteilung jedoch verloren oder wird sie verstümmelt, kann es den betroffenen Prozessen schwer fallen oder sogar unmöglich sein, sich nach dem Ausfall korrekt wieder herzustellen. Außerdem sind viele solche Systeme nicht schnell genug, um die von den Nutzern erwarteten schnellen Reaktionszeiten zu bieten.

Daher wäre von einem verbesserten Mitteilungsübermittlungssystem und einer diesbezüglichen Methode zu wünschen, dass sie Mitteilungen auf eine zuverlässige Weise übermitteln können und für eine angemessene Weiterleitung der Mitteilungen sowie eine Bestätigung bei Empfang der Mitteilung durch den vorgesehenen Empfängerprozess sorgen.

Aus der Internationalen Patent Anmeldung WO 95/11560 A1 ist ein Elektronisches Nachrichtensystem bekannt. Wünscht eine Anwendung den Versand einer Nachricht wird dies an einen absenden Router des Elektronischen Nachrichtensystems übertragen. Dieser ermittelt den notwendigen lokalen Speicher und stellt ihn der Anwendung zur Verfügung. Nach erfolgtem Versand übermittelt die empfangende Anwendung eine Nachricht an die sendende Anwendung zurück, woraufhin der in Anspruch genommen lokale Speicher durch die absendende Anwendung freigegeben wird.

Das vorgestellte System ist auf Grund der notwendigen zweiten Übermittlung langsam, denn wenn eine weitere Nachricht von der selben oder einer anderen Anwendung versandt werden soll aber kein Speicherplatz zur Verfügung steht muss diese Anwendung so lange warten, bis der zuvor in Anspruch genommene Speicher freigegeben werden kann. Ist aber aus irgendeinem Grund die Kommunikation gestört, so kann das System diesen Speicher nicht wieder freigeben und die zweite Nachricht kann nie versandt werden.

Zusammenfassung der Erfindung

Das erfindungsgemäße Mitteilungsübermittlungssystem verwendet einen lokalen Warteschlangenmanager für den Empfang von Mitteilungen, die für andere Prozesse bestimmt sind. Vom Wadeschlangenmanager empfangene Mitteilungen werden auf einem lokalen Dauerspeichergerät gespeichert, und der Sendevorgang ist für den Absender der Mitteilung abgeschlossen. Anschließend übermittelt der lokale Warteschlangenmanager die Mitteilung an einen zugehörigen Empfänger. Nach dem Empfang und der Empfangsbestätigung der Mitteilung entfernt der Empfänger die Mitteilung aus dem Dauerspeichergerät. Bei Auftreten eines Hardware- oder Softwarefehlers ist die Mitteilung gespeichert und kann nach Behebung des Fehlers erneut übermittelt werden.

Kurzbeschreibung der Zeichnungen

Die für die vorliegende Erfindung als charakteristisch angesehenen neuen Eigenschaften sind in den beigefügten Patentansprüchen beschrieben. Die Erfindung selbst, eine bevorzugte Anwendungsart der vorliegenden Erfindung sowie weitere Aufgaben und Vorteile der Erfindung werden am besten verständlich unter Bezugnahme auf die folgende detaillierte Beschreibung eines erläuternden Ausführungsbeispiels unter Zuhilfenahme der begleitenden Zeichnungen, in denen:

1 und 2 Blockdiagramme darstellen, die ein erfindungsgemäßes Mitteilungsübermittlungssystem beschreiben, und

3 ein Blockdiagramm darstellt, das die Übermittlung von multiplen Mitteilungen zwischen Prozessen erläutert.

Beschreibung des bevorzugten Ausführungsbeispiels

Für den erfahrenen Fachmann ist offensichtlich, dass das nachfolgend beschriebene System auf nahezu allen Systemen umgesetzt werden kann, bei denen Mitteilungen zwischen Prozessen übermittelt werden. Vorzugsweise werden die Mitteilungen asynchron behandelt, d.h. der Zeitpunkt des Empfangs der Mitteilung durch den Empfängerprozess nach erfolgtem Absenden durch den Absenderprozess stellt im allgemeinen keine kritische Größe dar. In der nachfolgenden Beschreibung wird davon ausgegangen, dass der Absender- und der Empfängerprozess nicht eng aneinander gekoppelt sind und dass nach dem Absenden einer Mitteilung keine Empfangsbestätigung erfolgen muss.

Bezugnehmend auf 1 muss ein Absenderprozess 20 auf eine dem Fachmann bekannte Art und Weise eine Mitteilung an einen Empfangsprozess 22 versenden. Bei dieser Mitteilung kann es sich zum Beispiel um eine Zugriffsanfrage einer Datenbank an einem anderen Standort, eine Zustandsanfrage, eine Benachrichtigung über einen im Absenderprozess 20 ablaufenden Vorgang oder eine beliebige sonstige Mitteilung zur Übermittelung an einen anderen Standort handeln.

Die Mitteilung wird vom Absenderprozess 20 an das Mitteilungsabwicklungssystem 24 übermittelt, das die Mitteilung letztendlich zum Empfängerprozess 22 lenkt. Das hierin beschriebene System und die zugehörige Methode eignen sich besonders gut für die Konstruktion und den Betrieb des Mitteilungsabwicklungssystems 24.

Bezugnehmend auf 2 wird die Mitteilung 26 an den Mitteilungssammler 28 übermittelt. Der Mitteilungssammler 28 dient dem Mitteilungsübermittlungssystem 24 als Schnittstelle zur Außenwelt. Beim Mitteilungssammler 28 handelt es sich vorzugsweise um ein Objekt, das vom Absenderprozess 20 aufgerufen wird, um die Übermittlung der zu sendenden Mitteilung zu übernehmen. In einem bevorzugten Ausführungsbeispiel wird der Mitteilungssammler 28 von einem Java-Klasse-Aufruf aufgerufen und ruft seinerseits jeweils eine Methode für jede übermittelte Mitteilung auf. Der Fachmann wird erkennen, dass der Mitteilungssammler 28 auch auf andere Weise umgesetzt werden kann, um die hierin beschriebenen Funktionen auszuführen.

Der Mitteilungssammler 28 übermittelt die erhaltene Mitteilung unverzüglich an den lokalen Warteschlangenmanager 30. Da der lokale Warteschlangenmanager 30 sich am selben Standort (lokal) wie der Absenderprozess 20 befindet, läuft dieser Vorgang mit hoher Geschwindigkeit ab und verursacht lediglich minimale Verzögerungen. Sobald der Mitteilungssammler 28 die Mitteilung an den Warteschlangenmanager 30 übermittelt hat, ist der Sendevorgang von Mitteilung 26 für den Absenderprozess 20 abgeschlossen, so dass dieser sich wieder anderen Funktionen zuwenden kann.

Bei diesem Ansatz erfolgt die Mitteilungübermittlung auf ein möglichst asynchrone Weise. Von diesem Punkt ab übernimmt das Mitteilungsübermittlungssystem 24 die Verantwortung für die Zustellung der Mitteilung 26.

Vorzugsweise versendet die Mitteilungssammlermethode 28 einen Zustandskode an den Absenderprozess 20, um ihm den Erfolg oder Misserfolg bei der Annahme der Mitteilung anzuzeigen. Dieser Zustandskode richtet sich nach einer ähnlichen Erfolgs- oder Misserfolgs-Zustandsmitteilung des lokalen Warteschlangenmanagers. Bei Erhalt einer Erfolgsmitteilung geht der Absenderprozess 20 davon aus, dass die Mitteilung zuverlässig zugestellt wird.

Der lokale Warteschlangenmanager 30 nimmt vom Mitteilungssammler 28 stammende Mitteilungen so schnell wir möglich entgegen und bereitet sie für die Weiterübermittlung vor. Vorzugsweise kommunizieren mehrere Mitteilungssammlerobjekte 28 mit dem lokalen Warteschlangenmanager 30, so dass der Warteschlangenmanager 30 zahlreiche Mitteilungen von verschiedenen Mitteilungssammlermethoden 28 empfangen kann, die ihrerseits von einem oder mehreren Absenderprozessen aufgerufen werden. Bei Empfang einer Mitteilung durch die Hauptkette (Thread) des lokalen Warteschlangenmanagers 30 wird die Mitteilung mit einem statischen internen Klassenvektor in die Warteschlange aufgenommen. Außerdem wird die Mitteilung vorzugsweise in ein lokales Dateisystem 32 aufgenommen und dort bis zur Zustellung gespeichert. Bis zur Entfernung der Mitteilung durch den Empfänger verbleibt die Mitteilung im lokalen Dateisystem, so dass sie im Fall eines späteren Hardware- oder Softwarefehlers abgerufen und erneut verschickt werden kann. Diese höhere Toleranz gegenüber Hardware- und Netzwerkfehlern wird mit einer etwas größeren Gesamtverzögerung erkauft. Dieser Kompromiss ist jedoch durchaus akzeptabel bei Anwendungen, bei denen die Zustellung von Mitteilungen eine absolute Notwendigkeit darstellt.

Der lokale Warteschlangenmanager 30 erstellt außerdem eine zusätzliche Kette für das Absenden von Mitteilungen. Diese Kette ruft Mitteilungen aus der internen Warteschlange ab, vorzugsweise in der Reihenfolge ihres Eingangs, und tätigt einen Anruf bei einem konfigurierten Lenkungsobjekt (Router) 34. Dieser Anruf enthält mindestens das der Mitteilung entnommene Mitteilungsziel und der Router 34 antwortet dem lokalen Warteschlangenmanager 30 durch Angabe eines Zielservers. Bei Erhalt der Angabe des Zielservers wird die Mitteilung mit Hilfe eines standardmäßigen Mitteilungsübermittlungssystems an diesen Server übermittelt.

Der vom Router 34 angegebene Zielserver kann auf jede beliebige charakteristische Weise umgesetzt sein, solange die Kompatibilität mit dem Rest des Mitteilungsübermittlungssystems gegeben ist. Wie nachfolgend beschrieben ist, wird die Mitteilung an einen Mitteilungsschreiber 36 übermittelt, dessen Identifikation und Standort in einer Registrierung oder ähnlichen Lenkungstabelle gespeichert sind. Bei den vom Router 34 eingesetzten Lenkungsalgorithmen kann es sich um beliebige Algorithmen handeln, die für die bestimmte Umsetzung geeignet sind. Aufgrund der bestehenden Trennung zwischen dem Router 34 und dem lokalen Warteschlangenmanager 30 kann ein Wechsel zwischen diesen Algorithmen leicht vorgenommen werden. Der Lenkungsalgorithmus kann daher zum Beispiel bei einer Expansion des Gesamtsystems mit entsprechender Steigerung des Mitteilungsaufkommens gewechselt oder ausgebaut werden.

Bei dem Mitteilungsschreiber 36 handelt es sich um ein Modul, das Mitteilungen empfangen und sie anschließend zu einem bestimmten zugehörigen Prozess lenken kann. In dem in 2 dargestellten Beispiel sind die Plug-In-Prozesse 38 und 40 dem Mitteilungsschreiber 36 zugeordnet und erhalten Mitteilungen von ihm.

Vorzugsweise empfängt im Mitteilungsschreiber 36 eine primäre Kette die eingehenden Mitteilungen und reiht sie in eine Kettenwarteschlange im Hintergrund ein. Die Warteschlange im Hintergrund bestimmt den Typ der Mitteilung und lenkt sie sodann zu einer bestimmten Warteschlange für die zugehörigen Plug-Ins 38, 40. Diese Warteschlangenketten übermitteln anschließend die Mitteilung nur noch zu den Plug-Ins 38, 40, von denen die Mitteilung empfangen und weiterverarbeitet werden.

Sobald der Mitteilungsschreiber 36 die Mitteilung zugestellt hat, entfernt er die Mitteilung aus der lokalen Warteschlange, in die sie vom lokalen Warteschlangenmanager 30 gestellt worden war. Bis zur Zustellung durch den Mitteilungsschreiber 36 bleibt die Mitteilung auf dem Dauerspeichergerät gespeichert, was den Zugriff zu einem späteren Zeitpunkt bei Bedarf ermöglicht. Bei Auftreten eines Fehlers ist die Mitteilung daher an einer zuverlässigen Stelle gesichert. Nach Beseitigung des Fehlers kann die Mitteilung erneut versandt werden, d.h. der Empfang der Mitteilung durch den vorgesehenen Empfänger, die Plug-In-Prozesse 38, 40, ist sichergestellt. Durch die Dauerspeicherung von Mitteilungen auf einem lokalen Dateiserver kann eine Wiederherstellung auf leichte Weise erfolgen, ohne dass die Mitteilungen vom Absenderprozess 20 erneut erstellt werden müssten. Die Eigenschaften des Sendeprozesses könnten dem Absenderprozess 20 die Neuerstellung der Mitteilungen unmöglich machen.

Die bei der Übermittlung von Mitteilungen durch ein solches System entstehenden Verzögerungen lassen sich auf ein annehmbar geringes Maß beschränken. Die anfängliche lokale Verzögerung durch die Absender- oder Klientenprozesse 20 ist sehr gering, was auf die räumliche Nähe des Mitteilungssammlers 28 und des lokalen Warteschlangenmanagers 30 zurückzuführen ist. Die Gesamtverzögerung, laut Definition die Dauer der Übermittlung einer Mitteilung von einem Prozess zu den Plug-Ins 38, 40, ist von den Konstruktionsdetails des Mitteilungsübermittlungssystems 24 sowie der derzeitigen Systemauslastung abhängig. Falls kürzere Verzögerungszeiten benötigt werden, kann die Kapazität des Mitteilungsübermittlungssystems 24 vergrößert werden, ohne dass die oben beschriebene Funktionsweise geändert werden müsste.

In 3 ist ein vollständigeres Mitteilungsübermittlungssystem 24 in Blockdiagrammdarstellung gezeigt. Von mehreren Absenderprozessen (nicht dargestellt) werden mehrere Mitteilungen 51-56 erstellt. Die Mitteilungen 51-56 werden an die jeweils zugehörigen Mitteilungssammler 61-66 geschickt. Im dargestellten Beispiel werden drei lokale Warteschlangenmanager 71, 72 und 73 eingesetzt und die einzelnen Mitteilungen werden auf die dargestellte Weise an einen zugehörigen lokalen Warteschlangenmanager geschickt. Anschließend speichern die lokalen Warteschlangenmanager die Mitteilungen jeweils auf dauerhafte Weise in einem lokalen Dateisystem 74, 75, 76 ab. Die lokalen Warteschlangenmanager 71-73 rufen eine der zugehörigen Lenkungsmethoden 81, 82, 83 auf, die die Lenkung der Mitteilungen zu den zugehörigen Mitteilungsschreibern 91, 92, und 93 übernehmen.

Die Mitteilungsschreiber 91-93 ermitteln, um welchen Mitteilungstyp es sich ursprünglich handelt, und lenken die Mitteilung anschließend auf die dargestellte Weise zu einem zugehörigen Plug-In. Wie bereits beschrieben wandelt das zugehörige Plug-In die Mitteilung in das zugehörige Format um und leitet sie anschließend an den Empfängerprozess 22 weiter.

Der 3 ist zu entnehmen, dass das Mitteilungsübermittlungssystem 24 äußerst schnell arbeitet und leicht vergrößert werden kann. Der ursprüngliche Mitteilungstyp spielt für das Mitteilungsübermittlungssystem keine Rolle; sämtliche Mitteilungen werden auf dieselbe Weise übermittelt. Der ursprüngliche Typ der Mitteilung ist erst dann von Bedeutung, wenn die Mitteilung den zugehörigen Mitteilungsübermittlungsrouter erreicht, der sie an das zugehörigen Plug-In weiterleitet, wo sie zum ursprünglichen Mitteilungstyp zurück konvertiert wird. Vom Mitteilungstransportsystem werden alle Mitteilungstypen auf die gleiche Weise behandelt.

Zusätzliche lokale Warteschlangenmanager und Mitteilungsschreiber können jederzeit hinzugefügt werden. Wie bereits beschrieben, können auch die Lenkungsalgorithmen auf jeder Stufe auf einfache Weise modifiziert werden, um entweder eine optimale Lenkung oder eine ausreichend gute Lenkung für eine bestimmte Umsetzung zu ermöglichen.

Das vorstehend beschriebene System zeichnet sich durch seinen einfachen Betrieb und seine ökonomische Konstruktion aus. Die Übermittlung und der Empfang von Mitteilungen erfolgen auf zuverlässige Weise, selbst bei einem Systemausfall, da die Mitteilungen vom lokalen Warteschlangenmanager erst dann als empfangen gekennzeichnet werden, wenn sie auf einem zuverlässigen Dauerspeichergerät abgespeichert sind. Da die Mitteilung bis zu ihrer Entfernung nach dem endgültigen Empfang auf dem Dauerspeichergerät abgespeichert bleibt, kann sie bei einem Fehler jederzeit erneut versandt werden.

Da der Mitteilungstyp für das Mitteilungstransportsystem keine Rolle spielt, ist der Versand von Mitteilungen beliebiger Art möglich. Der Mitteilungssammler 28 formatiert die Mitteilungen eines beliebigen Typs zu einem Standardtyp und die Mitteilung wird später von dem vom Mitteilungsschreiber 36 ausgewählten zugehörigen Plug-In in das ursprüngliche Format zurück konvertiert. Folglich können dem System multiple neue Mitteilungstypen hinzugefügt werden ohne Auswirkung auf die Übermittlung der Mitteilungen. Bei jeder Definition eines neuen Mitteilungstyps wird eine Aktualisierung der Mitteilungssammlermethode 28 vorgenommen und ein neues Plug-In zur Konvertierung dieser Mitteilungen zum ursprünglichen Mitteilungstyp vorbereitet. Darüber hinaus sind keine weiteren Modifikation erforderlich.

Die vorliegende Erfindung wurde unter Bezugnahme auf das bevorzugte Ausführungsbeispiel für einen bestimmten Fall dargestellt und beschrieben, doch ist es für den Fachmann offensichtlich, dass verschiedene Änderungen oder Modifikationen in die vorbeschriebene Ausführungsform eingefügt werden können, ohne vom Gedanken und Inhalt der Erfindung abzuweichen.


Anspruch[de]
  1. Mitteilungsübermittlungssystem für ein Computersystem, umfassend:

    einen Absenderprozess, der eine zu versendende Mitteilung erstellt;

    einen Empfängerprozess, an den die Mitteilung versandt wird;

    einen lokalen Warteschlangenmanager, der mit dem Absender- und dem Empfängerprozess in Kommunikation steht;

    ein Dauerspeichergerät, das mit dem lokalen Warteschlangenmanager in Kommunikation steht und so eingerichtet ist, dass es Mitteilungen bis zu ihrer Entfernung auf zuverlässige Weise speichern kann;

    dadurch gekennzeichnet, dass

    der lokale Warteschlangenmanager alle vom Absenderprozess erhaltenen Mitteilungen auf dem Dauerspeichergerät abspeichert und wobei der Empfängerprozess die jeweilige Mitteilung nach ihrem Empfang von dem Dauerspeichergerät entfernt.
  2. System nach Anspruch 1, weiterhin beinhaltend einen Mitteilungsschreiber, der mit dem lokalen Warteschlangenmanager und dem Empfängerprozess in Kommunikation steht, wobei der Mitteilungsschreiber die einzelnen erhaltenen Mitteilungen nach dem Versand an den Empfängerprozess von dem Dauerspeichergerät entfernt.
  3. System nach Anspruch 1, weiterhin beinhaltend einen Mitteilungssammler, der mit dem Empfängerprozess und dem lokalen Warteschlangenmanager in Kommunikation steht, wobei der Mitteilungssammler eine Mitteilung vom Absenderprozess erhält und diese Mitteilung anschließend zu einem Standardformat formatiert, damit sie an einen lokalen Warteschlangenmanager übermittelt und auf dem Dauerspeichergerät abgespeichert werden kann.
  4. System nach Anspruch 3, weiterhin umfassend:

    mindestens einen mit dem Empfängerprozess assoziierten Prozess zur Rekonvertierung der Mitteilung aus dem Standardformat in ihr ursprüngliches Format.
  5. Verfahren zum Versand von Mitteilungen innerhalb eines Computersystems, umfassend die folgenden Schritte:

    Erstellung einer Mitteilung innerhalb eines Absenderprozesses;

    Abspeicherung einer Kopie der Mitteilung auf einem Dauerspeichergerät;

    Versand der Mitteilung an einen Empfängerprozess;

    dadurch gekennzeichnet, dass das Verfahren weiterhin den Schritt der Entfernung der abgespeicherten Kopie nach dem Empfang der Mitteilung durch den Empfängerprozess umfasst.
  6. Verfahren nach Anspruch 5, ferner umfassend folgende Schritte:

    Versand einer diesbezüglichen Abspeicherungsbestätigung an den Absenderprozess im Anschluss an die Abspeicherung einer Kopie der Mitteilung auf dem Dauerspeichergerät.
  7. Verfahren nach Anspruch 5, ferner umfassend folgende Schritte:

    Konvertierung der Mitteilung von einem ursprünglichen Format zu einem Standardformat vor der Abspeicherung einer Kopie auf dem Dauerspeichergerät, wobei die abgespeicherte Kopie im Standardformat gehalten ist; und

    Konvertierung der Mitteilung aus dem Standardformat in das ursprüngliche Format unmittelbar vor dem Versand an den Empfängerprozess.
Es folgen 3 Blatt Zeichnungen






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com