-
GEBIET DER
ERFINDUNG
-
Die
vorliegende Erfindung betrifft verteilte und parallel arbeitende
Softwaresysteme, die asynchrone Nachrichtenübertragung (messaging) verwenden.
-
HINTERGRUND
DER ERFINDUNG
-
Verteilte
und parallel arbeitende Softwaresysteme verwenden unterschiedliche
Formen der elektronischen Datenübertragung.
Ein solches Datenübertragungsmodell
ist die Nachrichtenübertragung.
Mit Hilfe der Nachrichtenübertragung
kommunizieren die Systemkomponenten durch das Senden von Nachrichten
miteinander. Eine Nachricht übermittelt
bestimmte anwendungsspezifische Daten.
-
Die
Nachrichtenübertragung
ist ihrem Wesen nach insofern asynchron, als eine Systemkomponente
eine Nachricht zu einem bestimmten Zeitpunkt sendet und unabhängig von
der Lieferung der Nachricht und von Empfängern der Nachricht mit der Verarbeitung
von Daten fortfährt.
Der Absender der Nachricht kann eine Antwort auf die Nachricht zu
einem späteren
Zeitpunkt empfangen. Der Absender und die Empfänger der Nachricht sind zeitlich
unabhängig,
d.h., sie brauchen nicht gleichzeitig im Netz erreichbar zu sein.
-
Viele
verteilte und parallel arbeitende Softwaresysteme sind von der asynchronen
Nachrichtenübertragung
abhängig
und verwenden hierfür
Nachrichten-Middleware. Der Begriff Nachrichten-Middleware bezieht
sich auf ein oder mehrere Softwareprogramme zur Ausführung von
Nachrichtenübertragungsoperationen
zwischen Komponenten eines Softwaresystems. Mit Hilfe der Nachrichten-Middleware
wird eine Nachricht typischerweise an ein bestimmtes Ziel gesendet,
zum Beispiel an eine Nachrichtenwarteschlange, von welcher andere
Clients der Nachrichten-Middleware, z.B. Nachrichtenempfänger, die
Nachricht dann lesen können.
Somit muss dem Absender und den Empfängern einer Nachricht die Existenz
der anderen Seite nicht unbedingt bekannt sein.
-
Das
Fehlschlagen bzw. der Erfolg jeder Nachrichtenübertragung ist für den Absender
der Nachricht wichtig, wenn nicht sogar von kritischer Bedeutung.
Die anwendungsspezifischen Kriterien zum Feststellen von Fehlern
einer Nachrichtenübertragung
können
sich im Allgemeinen von Absender zu Absender und von Nachricht zu
Nachricht unterscheiden. Das Festlegen dieser Kriterien, die Bewertung
der Nachrichtenübertragung
gemäß den Kriterien
und das Reagieren auf das Ergebnis der Bewertung lässt sich
nur schwierig durchführen
und wird von der derzeitigen Nachrichten-Middleware nicht ohne weiteres
unterstützt.
-
Die
derzeitige Nachrichten-Middleware, zum Beispiel MQSeries (Warenzeichen
von IBM Corporation) oder Ausführungsformen
des Java Message Service JMS (Warenzeichen von Sun Microsystems, Inc.)
unterstützen
nur einen sehr eingeschränkten Fehlerbegriff
der Nachrichtenübertragung
und unterscheiden nicht zwischen verschiedenen Fehlerbegriffen,
die der Absender einer Nachricht ansonsten für die einzelne Nachricht definieren
würde.
Der Absender einer Nachricht gibt nur das Ziel der Nachricht an und
kann die Nachrichtenübertragung
als zuverlässig einstufen.
Dann garantiert die Nachrichten-Middleware
die Lieferung der Nachricht an das Ziel selbst bei Ausfällen wie
beispielsweise bei Systemabstürzen.
Die derzeitige Nachrichten-Middleware unterstützt nicht die Definition von
anwendungsspezifischen Kriterien, mit deren Hilfe die Fehler bzw.
der Erfolg einer Nachrichtenübertragung
ermittelt werden kann.
-
Newman,
D. beschreibt in „Delivery
By SMTP Service Extension",
Network Working Group's RFC
2852, IETF, Juni 2000, einen Mechanismus, mit dessen Hilfe ein SMTP-Client
(beim Übertragen
einer Nachricht an einen SMTP-Server) verlangen kann, dass der Server
die Nachricht innerhalb einer vorgeschriebenen Zeitspanne liefert.
Der Client gibt auch an, wie mit der Nachricht zu verfahren ist,
wenn die Nachricht nicht innerhalb der vorgeschriebenen Zeitspanne
geliefert werden kann (die Nachricht wird als „unzustellbar" zurückgesendet
oder für
den Lieferstatus wird eine Benachrichtigung „verzögert" ausgegeben).
-
In
der US-Patentschrift 5 983 265 wird eine Nachrichten-Middleware beschrieben,
bei welcher der Absender die erforderliche Bestätigungsstufe, z.B. Anwendungs-
oder Benutzerbestätigung,
angeben kann.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
vorliegende Erfindung stellt Verfahren und eine Vorrichtung zum
Definieren und Verarbeiten der Ergebnisse der Nachrichtenübertragung
vorzugsweise für
einzelne Nachrichten bereit. Vorzugsweise gilt als Ergebnis entweder „Erfolg" oder „Fehlschlag".
-
Gemäß einem
Aspekt der Erfindung wird ein computergestütztes Verfahren zur Verwendung
in einem asynchronen Nachrichtenübertragungssystem bereitgestellt,
wobei das Verfahren die folgenden Schritte umfasst: einen Nachrichtenabsender,
der mindestens eine Ergebnisbedingung für die Nachrichtenübertragung
für mindestens
eine im System zu sendende Nachricht festlegt und die mindestens eine
Ergebnisbedingung für
die Nachrichtenübertragung
einer im System zu sendenden Nachricht zuweist, wobei der Festlegungsschritt
einen Prozess ausführt,
der eine Ergebnisbedingung für
die Nachrichtenübertragung
definiert, die nach dem Empfangen der Nachricht durch einen oder
mehrere Empfänger
der Nachricht bewertet wird; Senden der Nachricht zusammen mit der
mindestens einen zugewiesenen Ergebnisbedingung für die Nachrichtenübertragung
im System; Ändern
einer oder mehrerer der mindestens einen der Nachricht zugewiesenen
Ergebnisbedingungen der Nachrichtenlieferung durch den Absender
der Nachricht nach dem Senden der Nachricht; und Überwachen
der Übertragung
der gesendeten Nachricht und Bewerten des Ergebnisses der Nachrichtenübertragung
in Bezug auf die mindestens eine zugewiesene Ergebnisbedingung für die Nachrichtenübertragung
derart, dass der Absender der Nachricht über das Ergebnis der Nachrichtenübertragung
in Kenntnis gesetzt werden kann.
-
Die
Erfindung betrifft auch eine Vorrichtung gemäß Anspruch 8 und ein Computerprogramm
gemäß Anspruch
14. Bevorzugte Ausführungsarten sind
durch die Unteransprüche
definiert. Die Vorrichtung kann in einem asynchronen Nachrichtenübertragungssystem
unter Verwendung derzeitiger Nachrichten-Middleware umgesetzt werden,
um die hier bereitgestellten erfindungsgemäßen Lehren zu realisieren.
-
KURZBESCHREIBUNG
DER ERFINDUNG
-
Im
Folgenden werden anschauliche Ausführungsarten der Erfindung in
Verbindung mit den beiliegenden Zeichnungen ausführlich beschrieben, wobei:
-
1 ein
Blockschaubild eines System ist, das die Nachrichtenübertragung
gemäß einer
Ausführungsart
der vorliegenden Erfindung verwendet;
-
2 ein
Ablaufdiagramm eines Nachrichtenübertragungsprozesse
gemäß einer
Ausführungsart
der vorliegenden Erfindung ist, das sich auf die Ablaufdiagramme
von 4, 5, 6 und 7 bezieht;
-
3 ein
Ablaufdiagramm eines Nachrichtenfehlerdefinitionsprozesses gemäß einer
Ausführungsart
der vorliegenden Erfindung ist;
-
4 ein
Ablaufdiagramm eines Nachrichtensendeprozesses gemäß einer
Ausführungsart
der vorliegenden Erfindung ist;
-
5 ein
Ablaufdiagramm eines Nachrichtenübertragungsbeobachtungsprozesses
gemäß einer
Ausführungsart
der vorliegenden Erfindung ist;
-
6 ein
Ablaufdiagramm eines Nachrichtenfehlerbewertungsprozesses gemäß einer
Ausführungsart
der vorliegenden Erfindung ist;
-
7 ein
Ablaufdiagramm eines Änderungsprozesses
für Nachrichtenfehlerbedingungen
gemäß einer
Ausführungsart
der vorliegenden Erfindung ist; und
-
8 ein
Schaubild ist, das eine verallgemeinerte Hardwarearchitektur eines
zur Umsetzung eines Nachrichtenübertragungssystems
gemäß der vorliegenden
Erfindung geeigneten Computersystems veranschaulicht.
-
DETAILLIERTE
BESCHREIBUNG BEVORZUGTER AUSFÜHRUNGSARTEN
-
Im
Folgenden wird die vorliegende Erfindung im Zusammenhang mit einem
anschaulichen Softwaresystem erläutert,
das die asynchrone Nachrichtenübertragung
verwendet. Das System ist vorzugsweise ein verteiltes System und
arbeitet parallel. Bekanntlich können
sich in einem verteilten Softwaresystem Komponenten des Systems
auf zwei oder mehr Computersystemen befinden, die durch ein Datenübertragungsnetz
miteinander verbunden sind, während
bei einem parallel arbeitenden Softwaresystem mehrere Rechenaufgaben
parallel, d.h. gleichzeitig, ausgeführt werden können. Es
ist jedoch klar, dass die vorliegende Erfindung nicht auf eine bestimmte
Softwaresystemarchitektur beschränkt
ist. Vielmehr kann die Erfindung ganz allgemein auf eine beliebige
Softwaresystemarchitektur angewendet werden, bei welcher es wünschenswert
ist, die Ergebnisse der Nachrichtenübertragung zu definieren und
zu verarbeiten. Die im Folgenden beschriebenen anschaulichen Ausführungsarten
betrachten „Erfolg" und „Fehlschlag" als Ergebnisbedingungen,
obwohl die Erfindung nicht darauf beschränkt ist.
-
Die
asynchrone Nachrichtenübertragung
betrifft wie oben erwähnt
den Austausch von Nachrichten zwischen zeitlich voneinander unabhängigen Softwareprozessen. Üblicherweise
verwendet der Absender Nachrichten-Middleware zum Senden einer Nachricht
an ein bestimmtes Ziel, das durch die Middleware gesteuert wird,
zum Beispiel an eine ferne Nachrichtenwarteschlange. Die Endempfänger der
Nachricht sind andere Clients der Nachrichten-Middleware, welche
die Nachricht vom Ziel lesen können.
-
Ebenso
ist wie oben erwähnt
der Fehlschlag und der entsprechende Erfolg jeder Nachrichtenübertragung
für den
Absender der Nachricht wichtig, wenn nicht sogar von kritischer
Bedeutung. Die anwendungsspezifischen Kriterien, nach denen Nachrichtenübertragungsfehler
festgestellt werden, unterscheiden sich im Allgemeinen von Absender
zu Absender und von Nachricht zu Nachricht. Zum Beispiel kann eine
Nachricht m1 dann und nur dann als „erfolgreich" übertragen betrachtet werden,
wenn m1 bestimmte Endempfänger
r1 und r2 im Zeitfenster t1 bzw. t2 erreicht. Andererseits kann
eine andere Nachricht m2 als „fehlerhaft" angesehen werden, wenn
es weniger als fünf
verschiedene anonyme Endempfänger
gibt, welche die Nachricht m2 im Zeitfenster t3 empfangen.
-
Das
Festlegen solcher Kriterien, das Bewerten der Nachrichtenübertragung
anhand der Kriterien und das Reagieren auf das Bewertungsergebnis lässt sich
jedoch wie oben erwähnt
nur schwer durchführen
und wird von der derzeitigen Nachrichten-Middleware nicht unterstützt.
-
Derzeitige
Nachrichten-Middlewaresysteme unterstützen nur einen sehr begrenzten
Fehlerbegriff der Nachrichtenübertragung
und unterscheiden nicht zwischen verschiedenen Arten von Fehlern,
die der Absender einer Nachricht ansonsten für die einzelne Nachricht definieren
würde.
Der Absender einer Nachricht gibt nur das Ziel der Nachricht an,
zum Beispiel eine Nachrichtenwarteschlange. Die Endempfänger einer
Nachricht werden üblicherweise
nicht angegeben. Und während
Nachrichten-Middleware eine zuverlässige Lieferung der Nachricht
an Zwischenziele gewährleisten
kann, muss die Bestätigung
des Empfangs von Nachrichten durch Endempfänger in der Anwendung codiert
werden und wird nicht direkt durch die Middleware unterstützt.
-
Die
vorliegende Erfindung hebt die Fehlerdefinition und -verwaltung
der Nachrichtenübertragung auf
eine höhere
Stufe. Gemäß der vorliegenden
Beschreibung können
verschiedene Fehlerarten der Nachrichtenübertragung einfach programmiert
werden, und die Aufgabe der Fehlerverwaltung für die Nachrichtenübertragung
wird vom Absender auf die Middleware übertragen. Eine bestimmte Anwendung besteht
darin, dass ein Absender das Gesamtergebnis einer Gruppe von Transaktionen,
d.h. von gesendeten Nachrichten, durch das Ergebnis der einzelnen Transaktionen
definieren kann, wobei die Transaktionen verschiedenen Fehlerbedingungen
unterliegen können.
Ein Spezialfall einer solchen Transaktion liegt vor, wenn der Erfolg
der Transaktion von der erfolgreichen Lieferung ihrer Nachrichten
abhängt.
-
Bei
einem bevorzugten Aspekt der vorliegenden Erfindung wird wie unten
erläutert
eine Schnittstelle für
die Programmierung von Anwendungsprogrammen (Application Programming
Interface, API) bereitgestellt, die der Absender verwendet zum:
(i) Festlegen von Fehlerbedingungen für die Nachrichtenübertragung
für jede
einzelne Nachricht; (ii) Zuweisen von Nachrichten und (Objektdarstellungen von)
Nachrichtenfehlerbedingungen; (iii) Absenden von Nachrichten mit
diesen Fehlerbedingungen; (iv) Abfragen des Status von Nachrichtenlieferungen
bezüglich
ihrer Fehlerbedingungen; (v) Zulassen des Änderns oder des Ersetzens der
für eine
Nachricht festgelegten Fehlerbedingungen; und (vi) Bestimmen eines
Objekts zum Empfangen von Benachrichtigungen der Fehlerbewertungsergebnisse.
-
Ferner
wird wie im Folgenden ausführlich
erläutert
gemäß einem
anderen bevorzugten Aspekt der vorliegenden Erfindung eine computergestützte Vorrichtung
bereitgestellt zum: (i) Darstellen von Nachrichtenfehlerbedingungen
als permanente Objekte; (ii) Beobachten des Übertragens der Nachrichten;
(iii) Bewerten der Nachrichtenfehlerbedingungen; (iv) Antworten
auf Abfragen über
den Status von Nachrichtenübertragungen
entsprechend ihren Fehlerbedingungen; und (v) Benachrichtigen des
Absenders der Nachricht über
das Bewertungsergebnis für jede
gesendete Nachricht. Die Vorrichtung kann unter Verwendung vorhandener
Nachrichten-Middleware
ausgeführt
werden, die zur Realisierung der hier bereitgestellten erfindungsgemäßen Lehren
angepasst ist.
-
Zu
den Werten, die in den permanenten Objekten zur Darstellung der
Fehlerbedingungen für
die Nachrichtenübertragung
gesetzt werden, gehören zum
Beispiel Listen von obligatorischen oder fakultativen Empfängern, sowohl
Zielen (wie beispielsweise Nachrichtenwarteschlangen) und Endempfängern (zum
Beispiel andere Anwendungsobjekte, die Nachrichten von den Zielen lesen),
Angaben über
Zeitüberschreitungen
und erforderliche Zeitfenster zum Lesen von Nachrichten durch bestimmte
oder anonyme Endempfänger,
eine Festlegung der Rangfolge einer Anzahl oder eines Bereichs von
Endempfängern,
welche die Nachricht empfangen sollen, sowie andere dem Absender
zur Verfügung
stehende oder durch das Nachrichtenübertragungssystem bereitgestellte
Werte.
-
Die
Darstellungen von Nachrichtenfehlerbedingungen können auf unterschiedliche Art
aufeinander bezogen werden. Dazu gehört zum Beispiel eine Anordnung
in Form einer Hierarchie vom Allgemeinen zum Speziellen und ein
Baum oder eine verknüpfte
Liste.
-
Im
Folgenden wird eine bevorzugte Ausführungsart der Erfindung ausführlich und
anschaulich beschrieben.
-
1 zeigt
zuerst ein Blockschaubild eines System, das die Nachrichtenübertragung
gemäß einer
Ausführungsart
der vorliegenden Erfindung verwendet. Das System beinhaltet den
Absender 102 der Nachricht, z.B. einen Client der Nachrichten-Middleware, der eine
Nachricht absendet. Der Absender 102 der Nachricht verwendet
drei Module gemäß Kasten 116.
Ein Fehlerdefinitionsmodul 104 dient zum Definieren der
Fehlerbedingungen für
die Nachrichtenübertragung.
Ein Nachrichtenübertragungsmodul 106 wird
zum Senden einer Nachricht mit Fehlerbedingungen verwendet. Ein
Fehlerbewertungsmodul 108 dient zum Abfragen des Status
einer Nachrichtenübertragung
bezüglich
ihrer Fehlerbedingungen.
-
Das
Fehlerdefinitionsmodul 104 erzeugt und verwaltet Darstellungen
von Fehlerbedingungen. Diese Darstellungen sind permanente Objekte,
die Werte wie die obigen beinhalten.
-
Das
Nachrichtenübertragungsmodul 106 sendet
Nachrichten mit zugewiesenen Fehlerbedingungen und verfolgt die Übertragung
einer Nachricht an Ziele und Endempfänger. Dieses Modul nutzt vorhandene
Nachrichten-Middleware 110 wie beispielsweise die MQSeries
oder Ausführungsformen
von JMS.
-
Das
Fehlerbewertungsmodul 108 bewertet eine Nachrichtenübertragung
auf der Grundlage der tatsächlichen
vom Nachrichtenübertragungsmodul 106 überwachten
Nachrichtenübertragung
und gemäß den der
Nachricht zugewiesenen Fehlerbedingungen als erfolgreich oder fehlerhaft.
Der Status der Bewertung kann zu jedem Zeitpunkt nach dem Senden
der Nachricht abgefragt werden, und das Fehlerbewertungsmodul 108 benachrichtigt
den Absender oder ein von diesem angegebenes Objekt über das Ergebnis
der Bewertung.
-
Eine
Schnittstelle als Teil der Schnittstelle für die Programmierung von Anwendungen
(API) ist zu diesem Zweck durch das System definiert. Die Schnittstelle
wird durch den Absender der Nachricht (oder das bestimmte Objekt)
als Teil der Anwendung eingerichtet und bereitgestellt.
-
Es
ist klar, dass der Begriff „Schnittstelle" hier als Fachausdruck
der Softwareentwicklung gebraucht wird, wo eine Schnittstelle einen
Satz von Arbeitsschritten (Funktionen) bündelt, die ein Dienstanbieter
(z.B. ein Objekt) anbietet. Somit umfasst eine Schnittstelle Funktionsdefinitionen
und wird durch eine Softwarekomponente realisiert. Als Softwarekomponente
kann entweder die Komponente der Anwendung oder eine Komponente
des Nachrichtenübertragungssystems
dienen, das z.B. in 1 dargestellt ist.
-
Derzeit
gebräuchliche
Nachrichten-Middleware 110 wird zur (sicheren) Nachrichtenübertragung an
Ziele 112 wie beispielsweise Nachrichtenwarteschlangen
oder JMS Topic-Objekte
verwendet. Zur Überwachung
der Nachrichtenübertragung
an Nachrichtenendempfänger 114 können sich
die Endempfänger
vor dem Lesen von Nachrichten von Zielen 112 beim Nachrichtenübertragungsmodul 106 registrieren
und eine Schnittstelle bereitstellen, welche das Nachrichtenübertragungsmodul 106 zu Überwachungszwecken
nutzen kann. Diese Schnittstelle ist durch das System als Teil der
API definiert oder wird durch die Anwendung (in diesem Fall die
Endempfänger)
zur Datenübertragung
mit dem System eingerichtet. Alternativ können die Endempfänger 114 eine
spezielle Schnittstelle und ein spezielles Objekt zum Lesen von
Nachricht von Zielen verwenden, sodass das Nachrichtenübertragungsmodul 106 automatisch
durch dieses Objekt benachrichtigt werden kann, sobald ein Endempfänger eine
Nachricht vom Ziel liest.
-
Es
ist klar, dass sich bei dem verteilten Softwaresystem das Fehlerdefinitionsmodul 104,
das Nachrichtenübertragungsmodul 106,
das Fehlerbewertungsmodul 108 und die Nachrichten-Middleware 110 in
einem oder mehreren Computersystemen befinden können, während sich der Absender 102 der Nachricht,
das Ziel 112 und die Nachrichtenendempfänger 114 in ihren
eigenen separaten Computersystemen befinden. Jedes der Computersysteme
kann über
ein geeignetes Datenübertragungsnetz
mit den anderen verbunden sein.
-
2 zeigt
ein Ablaufdiagramm, das den Nachrichtenübertragungsprozess gemäß einer
Ausführungsart
der vorliegenden Erfindung darstellt. Insbesondere zeigt 2 die
Schritte, die in separaten Figuren genauer dargestellt sind, das
heißt,
die Definition der Nachrichtenfehler und das Nachrichtensenden (4,
die sich wiederum auf 3 bezieht), die Nachrichtenübertragungsverfolgung
(5), die Nachrichtenfehlerbewertung (6)
und die Änderung
der Nachrichtenfehlerbedingungen (7).
-
Der
Prozess 200 beginnt in Schritt 202 (der in 4 beschrieben
wird) mit dem Senden einer Nachricht mit Fehlerbedingungen. Nachdem
eine Nachricht gesendet wurde, werden die Übertragung der Nachricht in
Schritt 204 (5) überwacht und parallel dazu
in Schritt 206 (6) die Fehlerbedingungen bewertet.
Wahlweise können
in Schritt 208 (7) die Fehlerbedingungen für die Nachricht
geändert
werden. Die Überwachung
der Nachrichtenübertragung
und die Fehlerbewertung können
gleichzeitig und sofort nach dem Senden einer Nachricht erfolgen.
Die Fehlerbedingungen können
zu jedem Zeitpunkt nach dem Senden einer Nachricht geändert werden,
wodurch das Ergebnis des Fehlerbewertungsprozesses beeinflusst wird.
-
3 zeigt
ein Ablaufdiagramm, das die Definition von Fehlerbedingungen gemäß einer
Ausführungsart
der vorliegenden Erfindung darstellt. Der Prozess 300 beginnt
in Schritt 302 mit der Ermittlung, ob spezielle (anwendungsspezifische)
Nachrichtenfehlerbedingungen erforderlich sind. Wenn keine speziellen
Fehlerbedingungen erforderlich sind, wird in Schritt 304 eine
Darstellung für
das vordefinierte Standardfehlermodell erzeugt oder von einem anderen
Objekt oder einem permanenten Speicher erhalten, und der Prozess
der Fehlerdefinition ist damit beendet. Wenn spezielle Fehlerbedingungen
erforderlich sind, werden die Fehlerbedingungen in Schritt 306 durch
den Absender der Nachricht unter Verwendung des Fehlerdefinitionsmoduls
definiert. Nachdem die Bedingungen definiert wurden, wird in Schritt 308 eine
Darstellung für
das spezielle Fehlermodell erzeugt und der Prozess beendet. Darstellungen
von Fehlerbedingungen sind permanente Objekte.
-
In 4 veranschaulicht
ein Ablaufdiagramm einen Prozess zum Senden von Nachrichten mit
Fehlerbedingungen gemäß einer
Ausführungsart der
vorliegenden Erfindung.
-
Der
Prozess 400 beginnt in Schritt 402 (siehe obige
Beschreibung in Verbindung mit 3) mit dem
Definieren der Nachrichtenfehler oder mit dem Erzeugen der zu sendenden
Nachricht in Schritt 404. Die Reihenfolge dieser beiden
Schritte ist beliebig, jedoch muss jeder der Schritte erledigt sein,
bevor im nächsten
Schritt 406 die Nachricht der Fehlerdarstellung zugewiesen
wird. Dann kann die der Fehlerdarstellung zugewiesene Nachricht
in Schritt 408 unter Verwendung des Nachrichtenübertragungsmoduls gesendet
werden.
-
5 veranschaulicht
ein Ablaufdiagramm zur Beobachtung der Nachrichtenübertragung
gemäß einer
Ausführungsart
der vorliegenden Erfindung.
-
Zu
Beginn des Prozesses 500 wartet das Nachrichtenübertragungsmodul
(oder die durch das Nachrichtenübertragungsmodul
bestimmte Einheit) in Schritt 502 auf das Empfangen von
Bestätigungen des
Nachrichtenempfangs durch die Nachrichtenendempfänger. Solche Bestätigungen
können
vom Endempfänger
direkt an das Nachrichtenübertragungsmodul übertragen
werden oder indirekt unter Verwendung einer speziellen Schnittstelle
und eines speziellen Objekts, das die Endempfänger zum Lesen von Zielen verwenden.
Bei der direkten Übertragung
stellen das Lesen der Nachricht und das Senden einer Empfangsbestätigung an
das Nachrichtenübertragungsmodul
zwei unterschiedliche, voneinander getrennte Vorgänge dar.
Bei der indirekten Übertragung
erfolgt das Senden einer Bestätigung
sofort und automatisch, wenn die Empfänger die Nachricht lesen. In
diesem Fall nutzt der Empfänger
eine vom System bereitgestellte spezielle Leseoperation.
-
Wenn
eine Bestätigung
empfangen wird, wird in Schritt 504 die Identität des Endempfängers ermittelt
und in einem Nachrichtenübertragungsprotokoll
aufgezeichnet. Das Nachrichtenübertragungsprotokoll
ist ein permanenter Datensatz von Nachrichtenendempfängern für eine gesendete
Nachricht. Dann wird in Schritt 506 ermittelt, ob die Beobachtung
fortgesetzt werden soll. Diese Ermittlung berücksichtigt externe und interne
Zeitlimitüberschreitungen.
Eine interne Zeitlimitüberschreitung
ist im System festgelegt und wird einer Nachricht zugewiesen. Eine
externe Zeitlimitüberschreitung
ist ein außerhalb
des System (zum Beispiel durch die Anwendung) verwaltetes Ereignis,
das nicht einer einzelnen Nachricht zugewiesen ist; eine externe
Zeitlimitüberschreitung
stellt ein externes Ereignis dar, das zur Beendigung des Prozesses
führt.
Wenn die Beobachtung fortgesetzt werden soll, wird der Prozess ab Schritt 502 mit
dem Empfangen von Empfangsbestätigungen
wiederholt.
-
6 zeigt
ein Ablaufdiagramm, das einen Prozess der Nachrichtenfehlerbewertung
gemäß einer
Ausführungsart
der vorliegenden Erfindung darstellt.
-
Der
Prozess 600 beginnt in Schritt 602 mit der Bewertung
aller nicht bewerteten Fehlerbedingungen für eine gesendete Nachricht
m unter Verwendung der (oben in Verbindung mit 3 beschriebenen)
Fehlerdarstellung und des (oben in Verbindung mit 5 beschriebenen)
Nachrichtenübertragungsprotokolls.
Eine Bedingung kann als wahr oder falsch bewertet werden, sobald
die Bewertungskriterien verfügbar
sind; zum Beispiel, ob eine Zeitlimitüberschreitung eintritt oder
eine Bestätigung
einer durch einen Endempfänger
der Nachricht in das Nachrichtenübertragungsprotokoll
eingegeben wird. Solche Ereignisse, aber auch andere Ereignisse
können
die Bewertung einer Bedingung auslösen.
-
Sobald
eine Bedingung bewertet worden ist, geht der Prozess weiter zu Schritt 604 und
prüft,
ob die betreffende Fehlerbedingung als wahr bewertet wurde. Eine
als wahr bewertete Fehlerbedingung bedeutet, dass die Nachrichtenübertragung
fehlgeschlagen ist. Wenn das Ergebnis der Prüfung JA lautet, wird durch
das Fehlerbewertungsmodul in Schritt 606 eine Ergebnisbestätigung des
Nachrichtenübertragungsfehlers
an den Absender der Nachricht oder an das vom Absender der Nachricht
zum Empfangen von Ergebnisbenachrichtigungen bestimmte Objekt gesendet.
-
Nachdem
eine Ergebnisbestätigung
des Nachrichtenübertragungsfehlers
gesendet oder wenn die Bedingung als falsch bewertet wurde, wird in
Schritt 608 ermittelt, ob die Bewertung fortgesetzt oder
angehalten werden soll. Bei dieser Entscheidung werden gemäß der obigen
Beschreibung externe und interne Zeitlimitüberschreitungen berücksichtigt.
Wenn die Bewertung fortgesetzt werden soll, wird der Prozess ab
Schritt 602 mit der Bewertung aller nicht bewerteten Fehlerbedingungen
für die
Nachricht m wiederholt.
-
Wenn
die Entscheidung lautet, die Fehlerbedingung anzuhalten, ermittelt
der Prozess in Schritt 610, ob alle Fehlerbedingungen ermittelt
und ob alle Bedingungen als falsch bewertet worden sind. Wenn dies
der Fall ist, wird in Schritt 612 eine Ergebnisbenachrichtigung über den
Erfolg der Nachrichtenübertragung
an den Absender der Nachricht gesendet. Ansonsten und wenn eine
Benachrichtigung über den
Erfolg der Nachrichtenübertragung
gesendet worden ist, endet der Prozess.
-
Das
Fehlerbewertungsmodul 108 (1) stellt
eine Schnittstelle bereit, die der Absender einer Nachricht jederzeit
zum Abfragen des Status der Bewertung nutzen kann, z.B. welche Bedingungen
bisher bewertet wurden oder wie viele Empfangsbestätigungen
von den Endempfängern
empfangen wurden.
-
7 zeigt
ein Ablaufdiagramm eines Prozesses zum Ändern und/oder Ersetzen der
Fehlerbedingungen für
eine gesendete Nachricht gemäß einer Ausführungsart
der vorliegenden Erfindung.
-
Der
Prozess 700 beginnt in Schritt 702 mit dem Ermitteln,
ob ein Ändern
bzw. ein Ersetzen der Fehlerbedingung gewünscht wird. Diese Entscheidung
kann durch den Absender der Nachricht getroffen werden. Wenn das Ändern der
Bedingungen gewünscht
wird, werden die Fehlerbedingungen in Schritt 704 gemäß dem oben
in Verbindung mit 3 beschriebenen Prozess definiert und
die entstandene geänderte
oder neue Fehlerdarstellung in Schritt 706 der gesendeten
Nachricht zugewiesen. Der Prozess wird fortgesetzt durch Rücksprung
zur anfänglichen
Entscheidung über
die Änderung
der Fehlerbedingung in Schritt 702. Wenn die Entscheidung
lautet, keine Änderung
vorzunehmen, endet der Prozess.
-
Die
obige ausführliche
Erläuterung
beschreibt eine bevorzugte Art der Ausführung der Erfindung. Der Fachmann
kann anhand der hier dargelegten Lehren verschiedene Varianten realisieren.
-
Beispielsweise
können
die drei Module der Fehlerdefinition, der Fehlerbewertung und der
Nachrichtenübertragung
(1) als ein einziges Modul realisiert oder in noch
mehr Einzelmodule (zum Beispiel ein separates Beobachtungsmodul
für die Nachrichtenübertragung)
aufgeteilt werden.
-
Zusätzlich zu
den oder anstatt der Nachrichtenfehlerbedingungen können auch
Nachrichtenerfolgsbedingungen festgelegt werden. Nachrichtenerfolgsbedingungen
können
durch Fehler definiert, d.h. entsprechenden Fehlerbedingungen zugeordnet werden,
sodass eine bevorzugte Ausführung
der vorliegenden Erfindung gemäß der Beschreibung
in jeder Hinsicht auf Erfolgsbedingungen angewendet werden kann.
-
Zu
weiteren Varianten können
die variable Reihenfolge von Nachrichtenfehlerdefinition und Nachrichtenerzeugung
vor dem Senden der Nachricht, verschiedene Verfahrensweisen zum
Beobachten des Lesens der Nachricht durch Endempfänger und
verschiedene Verfahrensweisen der Benachrichtigung des Absenders
der Nachricht über
das Bewertungsergebnis einer Nachricht gehören.
-
8 veranschaulicht
in einem Schaubild eine verallgemeinerte Hardwarearchitektur eines Computersystems,
das zur Realisierung einer oder mehrerer der verschiedenen Funktionskomponenten/-module
eines Systems geeignet ist, welches die hier in den Figuren dargestellten
und ausführlich
beschriebenen Nachrichtenübertragungsprozesse
verwendet. Es sollte klar sein, dass die zum Beispiel in Verbindung
mit 1 veranschaulichten und beschriebenen Einzelkomponenten
des Nachrichtenübertragungssystems
in einem solchen Computersystem oder in mehr als einem einzelnen
solcher Computersysteme eingesetzt werden können.
-
Das
gezeigte Computersystem kann mit einem Prozessor 800, einem
Speicher 810 und E/A-Einheiten 820 ausgestattet
sein. Es sollte klar sein, dass der hier gebrauchte Begriff „Prozessor" jede Verarbeitungseinheit
einschließen
soll, zum Beispiel eine Verarbeitungseinheit mit einer CPU (Central
Processing Unit, Zentraleinheit) und/oder andere Verarbeitungsschaltungen.
Der hier gebrauchte Begriff „Speicher" soll einem Prozessor
oder einer CPU zugewiesene Speicher einschließen, zum Beispiel RAM, ROM,
nichtflüchtige
Speichereinheiten (z.B. Festplattenlaufwerk), Wechselspeichereinheiten (z.B.
Diskette), Flashspeicher usw. Außerdem soll der hier gebrauchte
Begriff „Eingabe-/Ausgabeeinheiten" oder „E/A-Einheiten" zum Beispiel eine
oder mehrere Eingabeeinheiten, z.B. eine Tastatur, zum Eingeben
von Daten in die Verarbeitungseinheit und/oder eine oder mehrere
Ausgabeeinheiten, z.B. Katodenstrahlbildschirm und/oder Drucker,
zum Darstellen der Ergebnisse der Verarbeitungseinheit einschließen. Ferner
sollte klar sein, dass der Begriff „Prozessor" mehr als eine Verarbeitungseinheit
betreffen kann und dass verschiedene einer Verarbeitungseinheit
zugewiesene Elemente gemeinsam durch andere Verarbeitungseinheiten
genutzt werden können.
-
Demzufolge
können
hier beschriebene Softwarekomponenten mit Anweisungen oder Code
zum Ausführen
der Verfahren der Erfindung in einer oder mehreren zugewiesenen
Speichereinheiten (z.B. ROM, nichtflüchtiger oder Wechselspeicher)
gespeichert und im gebrauchsfertigen Zustand teilweise oder vollständig (z.B.
in den RAM) geladen und durch eine CPU ausgeführt werden.