DE69836966T2 - Zustellung und setzen in eine warteschlange von zertifizierten nachrichten in einem mehrpunkt-publikations/abonnement-kommunikationssystem - Google Patents

Zustellung und setzen in eine warteschlange von zertifizierten nachrichten in einem mehrpunkt-publikations/abonnement-kommunikationssystem Download PDF

Info

Publication number
DE69836966T2
DE69836966T2 DE69836966T DE69836966T DE69836966T2 DE 69836966 T2 DE69836966 T2 DE 69836966T2 DE 69836966 T DE69836966 T DE 69836966T DE 69836966 T DE69836966 T DE 69836966T DE 69836966 T2 DE69836966 T2 DE 69836966T2
Authority
DE
Germany
Prior art keywords
message
certified
application
subscriber
sequence number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69836966T
Other languages
English (en)
Other versions
DE69836966D1 (de
Inventor
L. Derek Foster City COLLISON
Dan Mountain View LESHCHINER
R. Dennis Mountain View PAGE
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.)
Cloud Software Group Inc
Original Assignee
Tibco Software Inc
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 Tibco Software Inc filed Critical Tibco Software Inc
Application granted granted Critical
Publication of DE69836966D1 publication Critical patent/DE69836966D1/de
Publication of DE69836966T2 publication Critical patent/DE69836966T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Technisches Gebiet
  • Diese Erfindung betrifft die Mehrpunkt-Veröffentlichungs/Abonnement-Kommunikation und insbesondere die Zustellung und Warteschlangeneinreihung von zertifizierten Nachrichten zwischen computergestützten Mehrpunkt-Herausgeber- und Abonnentenanwendungen.
  • Hintergrund
  • Bei einer typischen Technik des anonymen Veröffentlichens/Abonnierens, wie sie zum Beispiel in den US-Patenten Nr. 5,557,798, Nr. 5,339,392, Nr. 5,257,369 und Nr. 5,187,787 beschrieben sind, veröffentlicht eine Herausgeberanwendung Informationen an anfordernde oder Abonnentenanwendungen ohne Kenntnis der Anzahl, Identität oder Adresse solcher Abonnentenanwendungen. Es kann sogar sein, dass gar keine Abonnentenanwendungen existieren. Anstatt Kenntnis über Abonnenten zu haben, veröffentlicht ein Herausgeber lediglich Informationen, wobei eine Kontext- oder Themen-"Markierung" auf die veröffentlichte Nachricht angewendet wird. Ein Abonnent identifiziert dann gewünschte Nachrichten anhand der Inhaltsmarkierung und empfängt nur jene Nachrichten, die für den gewünschten Inhalt relevant sind.
  • Die Vorteile solcher inhaltsbasierter Veröffentlichungs/Abonnement-Adressierungssysteme sind allgemein bekannt. Zu ihnen gehört die Fähigkeit, Abonnenten und Herausgeber voneinander zu entkoppeln. Dieses Entkoppeln gestattet es Herausgebern und Abonnenten zu operieren, ohne eine Kenntnis der Identität, des Standortes, der Adresse oder der Kommunikationsprotokolle des jeweils anderen zu besitzen. Die Flexibilität, die dadurch erreicht wird, ist enorm, und dementsprechend gewinnen solche inhalts-/Themengestützten Adressierungskommunikationsumgebungen zunehmend an Beliebtheit.
  • Leider verhindern genau diese Vorteile (wie zum Beispiel das anonyme Entkoppeln) dieser Systeme die Verwendung herkömmlicher zuverlässiger Nachrichtenübermittlungsprotokolle wie zum Beispiel TCP. TCP und andere zuverlässige Nachrichtenübermittlungsprotokolle haben nur in der Punkt-zu-Punkt-Kommunikation Gültigkeit. In dieser Punkt-zu-Punkt-Kommunikation werden Nachrichtenabsender und -empfänger direkt miteinander verbunden und kennen daher die Adresse und den Standort des jeweils anderen.
  • Leider erfordern diese zuverlässigen Nachrichtenübermittlungsprotokolle, welche die Ankunft und die Reihenfolge des Eintreffens von Nachrichten garantieren, die vorherige Kenntnis zwischen Anwendungen. Sie können darum auf typische Veröffentlichungs/Abonnement-Umgebungen nicht angewendet werden.
  • Ungeachtet dessen ist eine solche zuverlässige oder zertifizierte Zustellung von Nachrichten überaus wichtig. Zum Beispiel wird eine zertifizierte Zustellung angeraten, wenn eine Absendeanwendung eine individuelle Bestätigung der Zustellung für jede Nachricht, die sie sendet, benötigt. Zum Beispiel berechnet ein Handelsvertreter Absatzzahlen auf einem Laptopcomputer und sendet sie an einen Vorgesetzten im Büro. Der Nutzer muss mit Bestimmtheit wissen, dass die Daten angekommen sind und in den Absatzbericht des Vorgesetzten aufgenommen wurden.
  • Eine zertifizierte Zustellung ist auch angeraten, wenn eine Empfangsanwendung es sich nicht leisten kann, Nachrichten zu verpassen. Zum Beispiel ist in einer Anwendung, die Bestellungen für den Kauf und Verkauf von Bestandsgütern verarbeitet, jede Bestellung wichtig. Wenn Bestellungen ausgelassen werden, so sind die Bestandsaufzeichnungen falsch.
  • Des Weiteren ist eine zertifizierte Zustellung angeraten, wenn jede Nachricht zu einem bestimmten Thema auf Informationen in der vorherigen Nachricht mit diesem Thema aufbaut. Zum Beispiel aktualisiert ein Absendeprogramm eine Empfangsdatenbank, die einen Teil der Daten in einem Datensatz liefert, aber andere Teile der Daten unverändert lässt. Die Datenbank ist nur korrekt, wenn alle Aktualisierungen in der Reihenfolge ankommen, in der sie gesendet wurden.
  • Des Weiteren ist eine zertifizierte Zustellung in Situationen von intermittierender physischer Konnektivität angeraten, wie zum Beispiel bei diskontinuierlichen Netzwerkverbindungen, zum Beispiel einer Anwendung, in der mehrere mobile Laptopcomputer miteinander kommunizieren müssen. Die Konnektivität zwischen Mobileinheiten ist sporadisch und erfordert eine ständige Speicherung von Nachrichten, bis die richtigen Verbindungen wiederhergestellt sind.
  • Darum besteht ein durchaus realer Bedarf, sowohl über die Vorteile der zertifizierten Nachrichtenübermittlung als auch die Vorteile von inhaltsbasierten anonymen Veröffentlichungs/Abonnement-Umgebungen zu verfügen.
  • Im Stand der Technik gibt es auch ein Multitasking-Multiuser-System, das eine effiziente Datenübermittlung, wie zum Beispiel Aktienmarktdaten, von einer räumlich abgesetzten Datenbank zu individuellen Abonnenten ermöglicht (EP 0 258 867 - A2). In diesem System werden Daten von unterschiedlicher Art von einer räumlich abgesetzten Datenbank in Reaktion auf Nichtüberwachungsanforderungen für Daten von Abonnenten und konkrete Überwachungsanforderungen für Daten von individuellen Abonnenten empfangen. Das System verwendet einen primären Anbieterprozess und weitere Anbieterprozesse zur Anfragehandhabung und -überwachung. In dem primären Anbieterprozess wird ein Datenstrom aus mehreren Datenarten entsprechend den Datenarten in mehrere Datenströme aufgeteilt. Ausgewählte Datenströme werden in Reaktion auf Nichtüberwachungsanforderungen direkt zu den Abonnenten übertragen. Mindestens ein Datenstrom wird in Reaktion auf konkrete Überwachungsanforderungen zu wenigstens einem zweiten Anbieterprozess übertragen, der dann den Datenstrom in Reaktion auf die konkreten Überwachungsanforderungen in weitere Datenströme unterteilt und sie an einen Nutzerprozess überträgt.
  • Dieses System befasst sich nicht mit der zertifizierten Zustellung von Nachrichten.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Die Erfindung betrifft ein computergestütztes Veröffentlichungs/Abonnement-System mit einer Abonnentenanwendung, die zuvor den Empfang einer bestimmten Art von Nachrichten abonniert hat, und ein Verfahren zum Zustellen von Nachrichten von einer Herausgeberanwendung an die Abonnentenanwendung, wobei die Herausgeberanwendung und die Abonnentenanwendung Teil eines anonymen Veröffentlichungs/Abonnement-Computersystems sind.
  • Wie in den Ansprüchen definiert, sieht die Erfindung vor, dass in der Herausgeberanwendung eine Zertifizierte-Nachrichten-Abonnementanforderung empfangen wird, wobei die Zertifizierte-Nachrichten-Abonnementanforderung einen Abonnentennamen, der die Abonnentenanwendung identifiziert, eine Adresse, wo die Abonnentenanwendung Nachrichten empfängt, und einen Themennamen enthält, welcher der konkreten Art der Nachricht, für die eine Zertifizierte-Nachrichten-Sitzung eingerichtet wird, zugeordnet ist und welcher diese konkrete Art der Nachricht identifiziert.
  • Eine Zertifizierte-Nachrichten-Abonnementanforderung wird empfangen, woraufhin die Zertifizierte-Nachrichten-Sitzung mit der Abonnentenanwendung eingerichtet wird, indem der Abonnentenname einem Nachrichtenregister in der Herausgeberanwendung hinzugefügt wird und eine Bestätigungsnachricht an die Abonnentenanwendung übermittelt wird, wobei die Bestätigungsnachricht die Einrichtung der Zertifizierte-Nachrichten-Sitzung bestätigt.
  • Die Zustellung einer zertifizierten Nachricht der konkreten Art wird entsprechend der Zertifizierte-Nachrichten-Sitzung versucht, indem der zertifizierten Nachricht eine Folgenummer zugewiesen wird, die zertifizierte Nachricht an die Adresse adressiert wird, wo die Abonnentenanwendung Nachrichten empfängt, die zertifizierte Nachricht von der Herausgeberanwendung an die Abonnentenanwendung übermittelt wird, ein Versuch der Zustellung der zertifizierten Nachricht in dem Register aufgezeichnet wird und die zertifizierte Nachricht wenigstens so lange in dem Register aufbewahrt wird, bis die Herausgeberanwendung eine Bestätigungsnachricht von der Abonnentenanwendung empfangen hat, die den Empfang der zertifizierten Nachricht in der Abonnentenanwendung bestätigt.
  • Vorteile der Erfindung
  • Die Erfindung hat einer Anzahl von Vorteilen. Zum Beispiel gewährt sie:
  • Gewissheit
  • Eine zertifizierte Zustellung gibt Anwendungsprogrammen die Gewissheit, dass jede Nachricht den vorgesehenen Empfänger in der gesendeten Reihenfolge erreicht. Wenn eine Zustellung nicht möglich ist, so erhalten sowohl der Absender als auch – optional – Mithörer ausdrückliche Informationen über jede nicht-zugestellte Nachricht.
  • Komfort
  • Sobald ein Programm eine zertifizierte Nachricht sendet, setzt das System seine Zustellversuche fort, bis die Zustellung erfolgreich ist oder bis eine Zeitbegrenzung für die Nachricht abgelaufen ist.
  • Kontrolle
  • Anwendungsprogramme bestimmen eine ausdrückliche Zeitbegrenzung für jede Nachricht.
  • Absendeanwendungen können eine zertifizierte Zustellung an bestimmte Mithörsitzungen unterbinden.
  • Detailliertheit
  • Das System kann auch Hinweisnachrichten übermitteln, um Anwendungsprogramme über alle wichtigen Ereignisse in Bezug auf die Zustellung zu informieren.
  • Prozessbasierte oder dateibasierte Aufzeichnung
  • Das System kann auch den Status jeder Nachricht in einem Register aufzeichnen. Anwendungen, die eine Zertifizierung nur für die Dauer des Anwendungsprozesses benötigen, können ein prozessbasiertes Register wählen. Anwendungen, die eine Zertifizierung benötigen, die über Prozessbeendigung und -neustart hinausgeht, können ein dateibasiertes Register wählen.
  • Die Erfindung wird im Folgenden eingehender anhand der begleitenden Zeichnungen beschrieben.
  • BESCHREIBUNG DER ZEICHNUNGEN
  • In den angehängten Zeichnungen ist Folgendes dargestellt:
  • 1 ist eine schematische Darstellung einer typischen Veröffentlichungs/Abonnement-Umgebung, die sich zur Veranschaulichung dieser Erfindung eignet.
  • 2 ist eine schematische Darstellung einer typischen Veröffentlichungs/Abonnement-Umgebung, die sich zur Veranschaulichung der Aspekte der verteilten Warteschlangeneinreihung und Aufgabenplanung der Erfindung eignet.
  • KONKRETE BESCHREIBUNG
  • ÜBERBLICK
  • 1 zeigt eine Herausgeberanwendung (Absender) 10 und mehrere Abonnentenanwendungen (Mithörer) 20, 20' und 20''. In der bevorzugten Ausführungsform dieser Erfindung sind der Herausgeber und der oder die Abonnenten Software-Anwendungen, die auf einem oder mehreren Computern arbeiten, die über ein Netzwerk 30 miteinander verbunden sind, das einen Datenpfad zwischen den Anwendungen bildet. Der Herausgeber 10 und der oder die Abonnenten 20 implementieren vorzugsweise ein inhaltsbasiertes Kommunikationsprotokoll, bei dem ein Herausgeber eine Nachricht herausgibt, die nur den Inhalt der Nachricht anzeigt, und ohne die Identität oder die Protokolle zu kennen, die von dem oder den Abonnenten 20 verwendet werden. Diese Kommunikation zwischen Anwendungen wird durch Kommunikationsdämonen 12 (die einem Herausgeber/Absender zugeordnet sind) und 22, 22' und 22'' (die dem Abonnenten/Mithörer 20, 20' und 20'' zugeordnet sind) hergestellt. Die in dieser Figur gezeigte Anordnung ist allgemein bekannt und wird in vielen Publika tionen, einschließlich der oben angeführten Patente, beschrieben.
  • Wie weiter unten noch viel eingehender besprochen wird, kann sich ein Mithörer 20 bei einem bestimmten Herausgeber 10 anmelden, um zertifizierte Nachrichten zu empfangen. Diese Kommunikation enthält den Namen des Abonnenten, seine "Posteingangsfach"-Adresse und das Thema oder den Inhalt von Nachrichten, über die er Informationen braucht. Der Herausgeber 10 hat darum eine Liste mit Abonnentennamen und Posteingangsfächern (weiß aber sonst nichts weiter über den Abonnenten) für alle Abonnenten, die zertifizierte Nachrichten erhalten möchten. Der Herausgeber/Absender 10 erwartet daher eine Bestätigung jeder Nachricht, die er heraussendet; eine Bestätigung, die er von einem Abonnenten/Mithörer 20, 20' und/oder 20'' empfangen würde. Auf jeden Fall sendet der Herausgeber/Absender 10, wenn er keine Bestätigung empfängt, eine Bestätigungsanforderungsnachricht – in der Regel über eine zuvor festgelegte Zeitdauer oder Anzahl von "Absendungen".
  • Falls der Abonnent eine garantierte Zustellung von Nachrichten wünscht, kann der Herausgeber die Nachricht auf einer Festplatte (oder einem anderen Speichermedium) speichern, bis eine Bestätigung des Empfangs beim Abonnenten erfolgt. So kann der Abonnent bis zum Verfall (Time-out) der Nachricht die Nachricht zu einem späteren Zeitpunkt empfangen, indem er den Herausgeber kontaktiert. Dies geschieht in der Regel dann, wenn Nachrichten stark von ihrer Reihenfolge abhängig sind oder auf einer vorangegangenen Nachricht aufbauen. Unter diesen Umständen könnten fehlende oder nicht-empfangene Nachrichten einen Totalausfall zur Folge haben. Des Weiteren bekommt bei diesen (und in den meisten Anwendungen zur zertifizierten Nachrichtenübermittlung dieser Erfindung) jede zertifizierte Nachricht eine Rückverfolgungsnummer zugewiesen. Dies gestattet es sowohl dem Absender als auch dem Mithörer/Abonnenten zu überwachen, welche Nachrichten empfangen wurden und/oder fehlen.
  • In vielen Anwendungen ist die Datenkommunikation überaus zuverlässig, aber in einigen Situationen erfordern Anwendungen eine noch größere Zustellungsgewissheit. Eine zertifizierte Zustellung bietet eine größere Zustellungsgewissheit selbst in Situationen, wo Prozesse und ihre Netzwerkverbindungen instabil sind.
  • ZERTIFIZIERTE NACHRICHTENÜBERMITTLUNG
  • Aktivieren einer Zustellverfolgungssitzung
  • Der erste Schritt in Richtung einer zertifizierten Zustellung ist die Aktivierung einer Zustellverfolgungssitzung. Eine Zustellverfolgungssitzung beginnt als eine gewöhnliche anonyme Veröffentlichungs/Abonnement-Sitzung; das Aktivieren einer Sitzung fügt Informationen hinzu, so dass sie an Protokollen für eine zertifizierte Zustellung teilnehmen kann. Die zusätzlichen Informationen enthalten einen Namen und ein Register.
  • Zustellverfolgungssitzungen können Nachrichten senden und empfangen, wie es auch gewöhnliche Sitzungen können. Darüber hinaus können Zustellverfolgungssitzungen an Rufen für eine zertifizierte Zustellung (das heißt, Rufen in der rvcm-Bibliothekschicht) teilnehmen; gewöhnliche Sitzungen können nicht an diesen Rufen teilnehmen. (Es ist die Asymmetrie zu beachten. Zustellverfolgungssitzungen können an gewöhnlichen Rufen teilnehmen, aber gewöhnliche Sitzungen können nicht an Rufen für eine zertifizierte Zustellung teilnehmen.)
    • Name
  • Jede Zustellverfolgungssitzung hat einen Namen, der wiederverwendbar oder nicht-wiederverwendbar sein kann. Der Name identifiziert die Sitzung für andere Zustellverfolgungssitzungen und ist Teil der Markierung, die abgehende Nachrichten von der Sitzung identifiziert.
  • Ein Name ist wiederverwendbar, wenn ein Programm ihn ausdrücklich an den Aktivierungsruf übermittelt. Wenn eine Sitzung mit einem wiederverwendbaren Namen auch ein dateibasiertes Register hat, so arbeitet sie als eine Instanz eines dauerhaften Korrespondenten, was eine Kontinuität der zertifizierten Zustellung über die Sitzungsbeendigung und Programmneustarts hinaus gestattet.
  • Es dürfen nicht zwei Zustellverfolgungssitzungen denselben wiederverwendbaren Namen binden; das heißt, jeder wiederverwendbare Name muss jederzeit einmalig sein. Sitzungen können einen Namen der Reihe nach wiederverwenden, aber nicht gleichzeitig. Ein Verstoß gegen diese Regel kann die zertifizierte Zustellung erheblich behindern. In der Regel haben Sitzungsnamen die gleiche Syntax wie Themennamen.
  • Programme können einen Namen in dem Aktivierungsruf weglassen, wobei in einem solchen Fall der Ruf einen einmaligen, nicht-wiederverwendbaren Namen für die Sitzung erzeugt. Keine andere Sitzung auf einem Computer darf jemals den gleichen Namen haben. Infolge dessen arbeitet eine Sitzung mit einem nicht-wiederverwendbaren Namen als ein Übergangskorrespondent. Keine nachfolgende Sitzung darf das Verhalten einer zertifizierten Zustellung der Sitzung fortführen.
  • Wird eine Zustellverfolgungssitzung aktiviert, so wird ein Register für sie erzeugt. Software für zertifizierte Zustellung verwendet das Register zum Aufzeichnen von Informationen über jede ungelöste abgehende zertifizierte Nachricht, jedes Thema, für das diese Sitzung (an kommende) zertifizierte Nachrichten empfängt, und andere kooperierende Zustellverfolgungssitzungen.
  • Programme können das Register in einer Registerdatei oder in einem prozessbasierten Speicher innerhalb des laufenden Programms speichern. (Selbst wenn eine Sitzung eine Registerdatei verwendet, kann sie mitunter Teile des Registers aus Effizienzgründen in prozessbasiertem Speicher speichern. Allerdings können sich Programmierer nicht auf diese Replikation verlassen.)
  • Registerdateien müssen einmalig sein. Das heißt, es dürfen nicht zwei Sitzungen die gleiche Registerdatei (gleichzeitig) verwenden. Wenn ein Betriebssystem Rohspeichervorrichtungen (auch Rohpartitionen genannt) unterstützt, so kann eine Speichervorrichtung auch als die Registerdatei spezifiziert werden.
  • Eine Sitzung mit einem dateibasierten Register und einem wiederverwendbaren Namen kommt als ein dauerhafter Korrespondent in Betracht, mit dem Verhalten einer zertifizierten Zustellung, das über eine Sitzungsbeendigung hinausreichen kann.
  • Markierte Nachrichten
  • Eine markierte Nachricht ist wie eine gewöhnliche Nachricht, außer dass sie Zusatzinformationen enthält, die von Zustellverfolgungssitzungen für die zertifizierte Nachrichtenzustellung verwendet werden können:
    Der Name der Zustellverfolgungssitzung, von der die Nachricht versandt wurde.
  • Eine Folgenummer, die durch die Sendesitzung zugewiesen wurde.
  • Senden einer markierten Nachricht
  • Jede Zustellverfolgungssitzung kann eine markierte Nachricht versenden, indem sie die Senderufe in der Bibliothekschicht der zertifizierten Nachrichtenzustellung nutzt. Beispiele solcher Zustellverfolgungssenderufen sind in der folgenden Tabelle gezeigt:
    Figure 00120001
  • Empfangen einer markierten Nachricht
  • Für eine bessere Klarheit werden zwei Arten von Mithör-Endpunkten unterschieden. Ein gewöhnlicher Mithörer ist ein Mithörer, der mit einem gewöhnlichen Mithörruf erzeugt wird, wie zum Beispiel die C-Funktionen rv_ListenInbox () oder rv_ListenSubject (). Ein Zustellverfolgungsmithörer ist ein Mithörer, der mit einem Zustellverfolgungsmithörruf erzeugt wird, wie zum Beispiel die C-Funktionen rvcm_ListenInbox () oder rvcm_ListenSubject ().
  • Jede Art von Mithör-Endpunkt kann eine markierte Nachricht empfangen: Zustellverfolgungsmithörer (die durch die Bibliothek für die zertifizierte Zustellung erzeugt werden) wie auch gewöhnliche Mithörer.
  • Wenn ein gewöhnlicher Mithörer eine markierte Nachricht empfängt, so übermittelt er sie an die entsprechende Rückruffunktion, als wenn sie eine gewöhnliche Nachricht wäre. Das heißt, er ignoriert die Zusatzinformationen, die eine markierte Nachricht unterscheiden.
  • Wenn ein Zustellverfolgungsmithörer eine markierte Nachricht empfängt, so hängt sein Verhalten vom Kontext ab:
    Wenn ein Zustellverfolgungsmithörer für eine zertifizierte Zustellung angemeldet ist, so übermittelt er die Zusatzinformationen an die Rückruffunktion.
  • Wenn ein Zustellverfolgungsmithörer nicht für eine zertifizierte Zustellung angemeldet ist, so übermittelt er einen "null"-Absendernamen an die Rückruffunktion, mit einer Folgenummer "null".
  • Darüber hinaus verlangt die Bibliothek für eine zertifizierte Zustellung gegebenenfalls automatisch, dass der Absender den Mithörer für eine zertifizierte Zustellung anmeldet.
  • FESTSTELLUNG UND ANMELDUNG EINER ZERTIFIZIERTEN ZUSTELLUNG
  • Feststellung
  • Wenn ein Zustellverfolgungsmithörer eine markierte Nachricht von einem Zustellverfolgungsabsender empfängt, der nicht in dem Register des Mithörers aufgelistet ist, so stellt der Mithörer den Absender anhand des Nachrichtenthemas fest.
  • Drei Ereignisse folgen auf die Feststellung:
    Die Software für zertifizierte Zustellung fügt den Namen des Absenders zu dem Register des Mithörers als eine Quelle von Nachrichten zu dem Thema hinzu.
  • Die Software für zertifizierte Zustellung in dem Mithörprogramm kontaktiert das Absendeprogramm, um eine Anmeldung für eine zertifizierte Zustellung des Themas und Informationen bezüglich der Vereinbarung anzufordern.
  • Die Software für zertifizierte Zustellung übermittelt eine ANMELDUNGSFESTSTELLUNGS-Hinweismeldung an das Mithörprogramm.
  • Anmeldung
  • Wenn ein Zustellverfolgungsabsender eine Anmeldungsanforderung von einem Zustellverfolgungsmithörer empfängt, so nimmt der Absender automatisch die Anforderung entgegen. Eine Entgegennahme besteht aus diesen vier Ereignisse:
    Die Software für zertifizierte Zustellung meldet den Mithörer für eine zertifizierte Zustellung des Themas an und zeichnet diesen Fakt im Register des Absenders auf.
  • Die Software für zertifizierte Zustellung in dem Absendeprogramm benachrichtigt die Mithörersitzung, dass die angeforderte Anmeldung angenommen wurde. Der Absender übernimmt die Zuständigkeit für eine zertifizierte Zustellung zu dem Thema.
  • Die Software für zertifizierte Zustellung übermittelt eine ANMELDUNGSANFORDERUNGS-Hinweismeldung an die Absendersitzung und informiert sie über den neu angemeldeten Mithörer.
  • Wenn die Software für zertifizierte Zustellung in dem Mithörprogramm die Entgegennahmeantwort empfängt, so übermittelt sie eine ANMELDUNG-ZERTIFIZIERT-Hinweismeldung an die Mithörersitzung.
  • Vereinbarung über die zertifizierte Zustellung
  • Nach der Anmeldung und Entgegennahme haben der Absender und der Mithörer eine Vereinbarung über die zertifizierten Zustellung zu dem Thema.
  • Der Absender ist dafür zuständig, jede abgehende Nachricht zu dem Thema aufzuzeichnen und die Nachricht in seinem Register aufzubewahren, bis er eine Zustellbestätigung von dem Mithörer empfängt (oder bis die Zeitbegrenzung der Nachricht abläuft).
  • Umgekehrt ist der Mithörer dafür zuständig, die Zustellung jeder Nachricht zu bestätigen und eine Übertragungswiederholung anzufordern, wenn eine Nachricht außerhalb der Reihenfolge eintrifft.
  • Das System arrangiert diese gesamte Abwicklung automatisch. Die Sende- und Mithörprogramme nehmen nicht direkt an diesen Protokollen, sondern nur indirekt, durch Senden und Mithören mit Bibliotheksrufen für eine zertifizierte Zustellung teil.
  • Es ist zu beachten, dass eine Vereinbarung über eine zertifizierte Zustellung nur in einer einzigen Richtung gilt: von einem Absender zu einem Mithörer. Eine Dialogkonfiguration erfordert zwei separate Vereinbarungen über eine zertifizierte Zustellung.
  • Wir bezeichnen die zwei Partner einer Vereinbarung über eine zertifizierte Zustellung als einen zertifizierten Absender und einen zertifizierten Mithörer, und die markierten Nachrichten, die zwischen ihnen übermittelt werden, sind zertifizierte Nachrichten. Es ist der feine Unterschied in der Terminologie zu beachten: Vor dem Herstellen einer Vereinbarung über eine zertifizierte Zustellung sind die Partner Zustellverfolgungsabsender und -mithörer; danach sind sie zertifizierte Absender und Mithörer. Eine markierte Nachricht ist nur eine zertifizierte Nachricht, wenn der Absender und der Empfänger eine Vereinbarung über eine zertifizierte Zustellung aufrecht erhalten.
  • ZUSTELLEN EINER ZERTIFIZIERTEN NACHRICHT
  • Sobald eine Zustellvereinbarung existiert, sind alle anschließenden Nachrichten zu dem Thema (von dem zertifizierten Absender an den zertifizierten Mithörer) zertifizierte Nachrichten. Jede zertifizierte Nachricht erzeugt eine Reihe von Protokollereignissen:
    Wenn das System eine zertifizierte Nachricht an die Mithörerrückruffunktion übermittelt, so enthält sie die Folgenummer, die ihr (automatisch) durch die Sendesoftware zugewiesen wurde, und den Namen des Herausgebers.
  • Wenn die Rückruffunktion antwortet, so bestätigt die Software für zertifizierte Zustellung automatisch die Zustellung an den Absender und zeichnet die Bestätigung in einem Register auf. (Programme können dieses Verhalten außer Kraft setzen und die Zustellung ausdrücklich bestätigen.)
  • Wenn die Bestätigung das Absendeprogramm erreicht, so verzeichnet die Software für zertifizierte Zustellung die Zustellung im Register des Absenders und übermittelt eine ZUSTELLBESTÄTIGUNGS-Hinweismeldung an die Absendersitzung.
  • Wenn die Bestätigung von jedem zertifizierten Mithörer für diese Nachricht eingetroffen ist, so löscht die Software für zertifizierte Zustellung die Nachricht aus dem Register des Absenders und übermittelt eine ZUSTELLUNG-VOLLENDET-Hinweismeldung an die Absendersitzung.
  • Automatische Zustellbestätigung
  • Das als Standard voreingestellte Verhalten von zertifizierten Mithörern ist, automatisch die Nachrichtenzustellung nach der Antwort von der Datenrückruffunktion zu bestätigen. Programme können dieses Verhalten für bestimmte Mithör-Endpunkte selektiv außer Kraft setzen (ohne dass sich dies auf andere Mithör-Endpunkte auswirkt).
  • Durch die Außerkraftsetzung der automatischen Bestätigung übernimmt der Mithörer die Zuständigkeit für die ausdrückliche Bestätigung jeder ankommenden zertifizierten Nachricht.
  • Eine Außerkraftsetzung der automatischen Bestätigung ist in Betracht zu ziehen, wenn die Verarbeitung ankommender Nachrichten eine asynchrone Aktivität beinhaltet, wie zum Beispiel Berechnungen in anderen Befehlsfolgen, Datenbankabfragen oder zusätzliche Netzwerkkommunikation.
  • Anfordern einer Bestätigung
  • Wenn ein zertifizierter Absender keine prompte Zustellbestätigung von einem zertifizierten Mithörer bekommt (zum Beispiel wegen Netzwerkstörungen), so fordert das System in dem Absendeprogramm automatisch eine Bestätigung an. Nach jeder Anforderung übermittelt er eine KEINE.REAKTION.AUF_ZUSTELLUNG-Hinweismeldung an die Sendesitzung.
  • Wenn ein Mithörer eine Bestätigungsanforderung empfängt, so prüft er sein Register und bestätigt erneut den Empfang der Nachrichten, die er bereits bestätigt hat. (Dieses Verhalten ist unabhängig davon identisch, ob das Programm eine automatische Bestätigung verwendet oder sie außer Kraft setzt.)
  • SEQUENZIERUNG UND ÜBERTRAGUNGSWIEDERHOLUNG
  • Ein Zustellverfolgungsabsender weist Folgenummern seriell für jedes abgehende Thema zu, so dass die Folgenummern die Reihenfolge von Nachrichten von einem Absender zu einem bestimmten Thema widerspiegeln.
  • Wenn die Software für zertifizierte Zustellung zertifizierte Nachrichten an einen zertifizierten Mithörer übermittelt, so behält sie die Reihenfolge bei, in der der Absender sie gesendet hat. Wenn eine Nachricht außerhalb der Reihenfolge eintrifft, so übermittelt die Software für zertifizierte Zustellung in dem Mithörer sie erst an die Rückruffunktion, wenn alle vorangegangenen Nachrichten verfügbar sind.
  • Zum Beispiel empfängt ein zertifizierter Mithörer die zertifizierte Zustellung für das Thema FOO von einem Absender namens BAZ. Nach dem Empfangen und Übermitteln der Nachricht Nummer 32 ist die nächste Nachricht, die eintreffen soll, die Nachricht 35. Die Software für zertifizierte Zustellung speichert die Nachricht 35, bis sie zuerst die Nachrichten 33 und 34 übermitteln kann.
  • Die Software für zertifizierte Zustellung in FOO fordert nun eine Übertragungswiederholung für die Nachrichten 33 und 34 von Baz an. In einem Fall, wo die Zeitbegrenzung für jene Nachrichten abgelaufen ist, so dass BAZ sie nicht mehr in seinem Register hat, übermittelt die Software für zertifizierte Zustellung eine ZUSTELLUNG.NICHT.MÖGLICH-Hinweismeldung an den Mithörer, was anzeigt, dass die Nachrichten 33 und 34 nicht mehr zur Verfügung stehen. Dann übermittelt sie die Nachricht 35 an die Datenrückruffunktion.
  • DAUERHAFTE KORRESPONDENTEN
  • Wir haben das Konzept der dauerhaften Korresponden ten im Kapitel "Name", Seite 144, vorgestellt. Ein wiederverwendbarer Name und ein dateibasiertes Register gestatten es einem dauerhaften Korrespondenten, die zertifizierte Zustellung über die Beendigung und den Neustart einer Sitzung oder eines Prozesses hinaus fortzuführen.
  • Beispiel
  • Stellen wir uns ein beispielhaftes Anwendungssystem vor, in dem ein Anwendungsprogramm JOE wichtige Informationen erzeugt und sie an das Anwendungsprogramm SUE in zertifizierten Nachrichten zu dem Thema DENK.DARAN sendet. Bei Empfang speichert SUE die Informationen in einer Datenbank.
  • Wenn entweder JOE oder SUE unerwartet abbrechen, so ist es von entscheidender Bedeutung, dass zertifizierte Nachrichten nach wie vor eintreffen, um sie in die Datenbank einzuschreiben. Um dieses Ergebnis zu gewährleisten, müssen beide Programme dauerhafte Korrespondenten darstellen; das heißt, beide Programme ermöglichen Sitzungen mit wiederverwendbaren Namen (JOE_PC und SUE_PC), und jedes Programm führt ein dateibasiertes Register. Darüber hinaus benötigt SUE alte Nachrichten, wenn sie die Sitzung SUE_PC aktiviert.
  • Während des Betriebes hat JOE die Nachricht Nummer 57 zu dem Thema DENK.DARAN gesendet, aber er hat noch keine Zustellbestätigung für die Nachrichten 53–56 empfangen. SUE verarbeitet gerade die Nachricht 53, als ein plötzlicher Hardware-Ausfall einen Abbruch verursacht. Inzwischen setzt JOE das Senden der Nachrichten 58–77 fort.
  • Der Computer startet neu, und SUE startet neu. Die Registerdatei für SUE_PC zeigt an, dass die Nachricht 52 für das Thema DENK.DARAN für einen bestimmten Herausgeber als JOE_PC empfangen und bestätigt wurde. Beim Neustart kontaktiert SUE_PC JOE_PC und stellt ihre Vereinbarung über eine zertifizierte Zustellung wieder her. Wenn JOE akzeptiert, so sendet JOE_PC die gespeicherten Nachrichten 53–77 zu diesem Thema erneut.
  • In dem obigen Szenario ist es wichtig, das Folgende zu beachten:
    Dass SUE keine DENK.DARAN-Nachrichten verpasst. Jedoch muss die neue SUE kulanterweise sämtliche Probleme lösen, die durch die teilweise Verarbeitung von Nachricht 53 durch die alte SUE verursacht wurden.
  • JOE und SUE kommunizieren unter Verwendung eines rundgesendeten Themennamens, der kein Posteingangsfach ist. Posteingangsfachnamen sind einmalig; sie können also nicht über eine Sitzungsbeendigung und einen Neustart hinaus fortbestehen.
  • ERWARTEN EINES MITHÖRERS
  • In einigen Situationen kann ein Zustellverfolgungsabsender die Anforderung für eine zertifizierte Zustellung von einem dauerhaften Korrespondenten, der noch nicht das Mithören begonnen hat, erwarten.
  • Stellen wir uns ein Beispiel vor, bei dem ein Datenbankprogramm (DB) alle Nachrichten mit dem Thema SPEICHERE.DAS aufzeichnet. Das Programm DB aktiviert eine Sitzung, die einen dauerhaften Korrespondenten namens DB_PC instanziiert. Alle Programme, die Nachrichten mit dem Thema SPEICHERE.DAS senden, hängen von diesem Speichermechanismus ab.
  • Ein solches Absendeprogramm ist JAN. Wann immer JAN startet, kann er erwarten, dass DB_PC die zertifizierte Zustellung des Themas SPEICHERE_DAS anfordert. Nehmen wir an, dass JAN startet, aber DB nicht läuft oder eine Netz werktrennung JAN von DB isoliert hat. In der Erwartung, dass er schließlich eine Anmeldungsanforderung für SPEICHERE.DAS von DB_PC empfangen wird, gibt JAN einen Mithörerhinzufügungsruf aus. Das führt dazu, dass sich die Software innerhalb von JAN so verhält, als wenn sie eine Vereinbarung über eine zertifizierte Zustellung mit DB_PC für das Thema SPEICHERE.DAS hätte. Sie speichert abgehende Nachrichten (zu dem Thema) in ihrem Register. Wenn DB neu startet oder das Netzwerk wieder die Verbindung aufnimmt, so sendet JAN automatisch alle gespeicherten Nachrichten erneut an DB.
  • STORNIEREN EINER ZERTIFIZIERTEN ZUSTELLUNG
  • Sowohl Mithörer als auch Absender können eine Vereinbarung über eine zertifizierte Zustellung stornieren.
  • Mithörer stornieren durch Schließen des Mithör-Endpunktes unter Verwendung der nachstehend angeführten Rufe. Absender mit Vereinbarungen über eine zertifizierte Zustellung an den geschlossenen Endpunkt empfangen ANMELDUNG.GESCHLOSSEN-Hinweismeldungen.
  • HOST.BEENDET.MITHÖREN-Hinweismeldungen informieren andere Anwendungen über die Änderung.
  • Absender können die zertifizierte Zustellung eines bestimmten Themas an einen bestimmten Mithörer stornieren. Das Absenderprogramm löscht aus seinem Register alle Informationen über die Zustellung des Themas an den Mithörer. Das Absendeprogramm empfängt eine ANMELDUNG.GESCHLOSSEN-Hinweismeldung. Wenn der Mithörerkorrespondent verfügbar ist (läuft und erreichbar ist), so empfängt er eine ANMELDUNG.NICHT_ZERTIFIZIERT-Hinweismeldung. (Im Gegensatz zu den Mithörer-verbieten-Rufen in Tabelle 7 veranlassen diese Rufe keine Ablehnung von anschließenden Anmeldungsanforderungen.)
  • VERBIETEN EINER ZERTIFIZIERTEN ZUSTELLUNG
  • Wie oben beschrieben, nehmen Absender automatisch alle Anmeldungsanforderungen entgegen. Das gilt nur dann nicht, wenn das Absendeprogramm ausdrücklich die zertifizierte Zustellung an eine Mithörsitzung verbietet. Rufe, die einen Mithörer verbieten, stornieren bestehende Vereinbarung über eine zertifizierte Zustellung mit der Mithörersitzung (zu allen Themen) und veranlassen, dass die Software für zertifizierte Zustellung automatisch anschließende Anmeldungsanforderungen von der Mithörersitzung ablehnt.
  • Wenn ein Absender einen Mithörer verboten hat, so finden die Ereignisse, die mit der Anmeldung verbunden sind, nicht statt. Statt dessen benachrichtigt die Software für zertifizierte Zustellung im Absender die Mithörersitzung, dass der Anforderung nicht stattgegeben wird. Wenn die Software für zertifizierte Zustellung im Mithörprogramm die Ablehnungsmitteilung empfängt, so übermittelt sie eine ANMELDUNG.NICHT_ZERTIFIZIERT-Hinweismeldung an die Mithörsitzung.
  • Mithörer-zulassen-Rufe heben die Wirkung eines vorherigen Mithörer-verbieten-Rufes auf, wodurch anschließende Anmeldungsanforderungen von der Mithörersitzung positiv beschieden werden.
  • KEINE ANTWORT AUF ANMELDUNGSANFORDERUNGEN
  • Es ist möglich, dass eine Anmeldungsanforderung nie den Zustellverfolgungsabsender erreicht oder dass die Entgegennahmemitteilung nie das Mithörprogramm erreicht (zum Beispiel wegen Netzwerkstörungen oder Beendigung des Absendeprogramms). Nach wiederholten Versuchen einer Anmeldung ohne Antwort vom Absender übermittelt die Software für zertifizierte Zustellung im Mithörprogramm eine ANMELDUNG.KEINE_ANTWORT-Hinweismeldung an die Mithörsitzung. Nach mehreren Versuchen einer Anmeldung ohne Antwort hört der Mithörer auf, Anforderungen zu senden.
  • WIEDERVERWENDBARE NAMEN
  • Sitzungen, die dauerhafte Korrespondenten darstellen, brauchen wiederverwendbare Namen. Wiederverwendbare Namen müssen der Syntax für Themennamen gehorchen. Wiederverwendbare Namen dürfen keine "Joker"-Zeichen enthalten. Wiederverwendbare Namen dürfen nicht mit reservierten Elementen beginnen (wie zum Beispiel _INBOX, _RV oder _LOCAL). Im Interesse einer größtmöglichen Leistung sollten wiederverwendbare Namen kurz gehalten werden: nur einige wenige Zeichen, in der Regel nicht mehr als drei oder vier Elemente, und nicht mehr als 50 Zeichen insgesamt.
  • REGISTERSPEICHERMODUS
  • Jede Zustellverfolgungssitzung zeichnet Informationen in einem Register auf, das Speicherplatz innerhalb des Anwendungsprozesses beansprucht. Eine Sitzung, die einen dauerhaften Korrespondenten darstellt, muss ebenfalls eine Kopie des Registers in einer Datei führen. Das dateibasierte Register bewahrt Informationen über eine zertifizierte Zustellung über die Beendigung und den Neustart einer Sitzung (oder eines Prozesses) hinaus.
  • Dieses Leistungsmerkmal ist mit zwei Nachteilen erkauft:
    Die Registerdatei verbraucht Festplattenspeicher.
  • Das Anwendungsprogramm setzt die Aktualisierung der Registerdatei bei jedem bedeutsamen Ereignis aus.
  • Übergangskorrespondenten können sich diese Nachteile ersparen, weil sie nicht mit Registerdateien arbeiten. Das Führen des Registers in prozessbasiertem Speicher verbraucht allerdings Prozessspeicher.
  • Registergröße
  • Die Größe des Registers hängt von mehreren Faktoren ab. Der wichtigste davon ist die Aufbewahrungsrate von gespeicherten Daten. Das heißt, das Register wächst am schnellsten in Reaktion auf die kumulative Länge von unvollständigen zugestellten Nachrichten.
  • Programmentwickler können die erwartete Größe des Registers schätzen und müssen gewährleisten, dass der Prozess genügend Speicher zuweisen kann, um es aufzunehmen. Für ein dateibasiertes Register ist zu gewährleisten, dass auch genügend Festplattenspeicher zur Verfügung steht, da sich der Speicherbedarf für die Prozessanwendung ändert, wenn mit einem dateibasierten Register gearbeitet wird.
  • EREIGNISVERWALTER
  • Die zertifizierte Zustellung des Systems hängt von dem Ereignisverwalter für Zeitsteuerungs- und E/A-Ereignisse ab. Wenn eine Anwendung eine Zustellverfolgungssitzung aktiviert, so muss diese Sitzung eine ereignisverwaltete Sitzung sein.
  • Keine synchronen Sitzungen
  • Synchrone Sitzungen sind für Rufe für eine zertifizierte Zustellung nicht gültig, und alle Zustellverfolgungssitzungen müssen asynchrone, ereignisverwaltete Sitzungen sein.
  • Verteilte Warteschlangen
  • Das System ermöglicht auch die Verwendung von verteilten Warteschlangen für zertifizierte "eine-von-n"-Zustellungen. Genauer gesagt, sieht das System die verteilte Warteschlangeneinreihung von Nachrichten zusammen mit einer zertifizierten garantierten Zustellung in einem "eine-von-n"-Zustellungsmechanismus vor.
  • Dieser Zustellungsmechanismus ist in 2 veranschaulicht, wo ein einzelner Herausgeber 202 Nachrichten an drei angemeldete Abonnenten 204, 206 bzw. 208 ausgibt. Einer der Abonnenten, 206, ist eine große Gruppe von n Abonnenten.
  • Eine verteilte Warteschlangeneinreihung löst das Problem, dass es unerwünscht ist, dass alle n Abonnenten in dem angemeldeten Abonnenten 206 jede Nachricht erhalten, die durch den Herausgeber 202 herausgegeben wird. Zum Beispiel kann es unerwünscht sein, weil jeder der n Abonnenten in der Gruppe 206 eine Aktion unternimmt. Außerdem kostet es zusätzliche Netzwerkbandbreite, wenn jeder Abonnent die Nachricht empfangen soll (und eventuell auch noch darauf antworten soll).
  • Ungeachtet dessen ist es unabdingbar (darum die Notwendigkeit einer zertifizierten/garantierten Zustellung), dass wenigstens einer der n Abonnenten in der Gruppe 206 die Nachricht empfängt. D. h. idealerweise sollte das System die Nachricht nur an einen der n Abonnenten 206 zustellen. Zu einer derartigen Situation kommt es, wenn gefordert wird, dass eine große Anzahl n der Abonnenten 206 das gewünschte Maß an Fehlertoleranz und/oder Lastausgleich erbringt. Fehlertoleranz ist in Situationen wichtig, wo Anwendungen instabil sein können oder die Nachrichtenzustellung von absolut entscheidender Bedeutung ist.
  • In dem System der Erfindung operiert jede Abonnen tenanwendung in der Gruppe 206 durch Senden von Nachrichten an einen anderen der n Abonnenten in der Gruppe 206, der als ein Planer agiert, der einen Hinweis auf sein Gewicht gibt. Der Planer antwortet dann durch Senden der Nachricht an den speziellen Abonnenten in der Gruppe mit dem größten Gewicht. Wie dies bewerkstelligt wird, wird im nun Folgenden näher beschrieben.
  • Dementsprechend kann eine verteilte Warteschlange aus abonnierenden Datenbankservern 206 zertifizierte Nachrichten entgegennehmen, die Aufgaben (Aktualisierungen und Abfragen) darstellen. Das System weist jede Aufgabe genau einem der Server zu, während die Gruppe von Servern und die Verteilung von Aufgaben für die Client-Prozesse vollständig transparent bleibt.
  • Warteschlangenelemente
  • Die Elemente-Sitzungen einer verteilten Warteschlange nutzen alle denselben wiederverwendbaren Korrespondentennamen, was anzeigt, dass sie Elemente der Warteschlange mit diesem Namen sind. Jedes Element einer verteilten Warteschlange hört auf dieselben Themen mit; doch selbst, wenn n Elemente auf jede ankommende Nachricht (oder Aufgabe) mithören, verarbeitet nur ein einziges Element die Nachricht.
  • Rollen der Elemente – Arbeiter und Planer
  • Im Sinne des vorliegenden Textes sind – im Zusammenhang mit der Warteschlangeneinreihung und einer auf Warteschlangeneinreihung basierenden Zustellung – die Begriffe "Mithörer" und "Arbeiter" gegeneinander austauschbar. Jede verteilte Warteschlangenelemente-Sitzung kann zwei eigenständige Rollen haben: als ein Arbeiter und als ein potenzieller Planer.
  • In der Mithörer- oder Arbeiter-Rolle unterstützen Warteschlangenelemente-Sitzungen eine begrenzte Teilmenge von Rufen für eine zertifizierte Zustellung. Elemente können auf ein Thema mithören, eine automatische Zustellbestätigung außer Kraft setzen und eine Zustellung bestätigen. Warteschlangenelemente-Sitzungen unterstützen keine anderen Rufen für eine zertifizierte Zustellung (insbesondere Rufe, die mit dem Senden zertifizierter Nachrichten zu tun haben). Sie unterstützen jedoch alle Standardrufe (zum Beispiel Senden gewöhnlicher Nachrichten).
  • Das System enthält Fehlertoleranzsoftware, die die genau einen aktiven Planer in jeder Warteschlange führt. Wenn der Planerprozess abbricht, so übernimmt ein anderes Element die Rolle des Planers. Die Warteschlangenelemente-Sitzung in der Planer-Rolle weist ankommende Aufgaben an Mithörer in der Warteschlange zu. (Ein Planer kann Aufgaben an seiner eigenen Mithörerkomponente zuweisen, tut dies aber nur, wenn alle anderen Mithörer beschäftigt sind.)
  • Der Planer als eine fehlertolerante Komponente
  • Obgleich jedes Warteschlangenelement das Potenzial hat, der Planer zu werden, führt eine Fehlertoleranzsoftware stets genau einen einzigen Planer. Fehlertoleranzparameter leiten die Software an, das geeignetste Element als den Planer auszusuchen.
  • Das Planergewicht stellt die Fähigkeit einer Elemente-Sitzung dar, die Rolle des Planers relativ zu anderen Elementen derselben Warteschlange auszufüllen, d. h. die größte Verfügbarkeit oder ungenutzte Elemente-Ressourcen. Die Warteschlangenelemente nutzen relative Planergewichtswerte zum Auswählen eines Elements als den Planer. Elemente mit höherem Planergewicht haben Vorrang.
  • Der aktive Planer sendet Herzschlag-Meldungen in dem durch den Nutzer spezifizierten Intervall. Herzschlag-Meldungen informieren andere Elemente, dass ein Element als der Planer agiert. Alle Sitzungen in der Warteschlange müssen das gleiche Planer-Herzschlagintervall spezifizieren.
  • Darüber hinaus müssen alle Sitzungen in der Warteschlange das gleiche Planer-Aktivierungsintervall spezifizieren. Wenn das Herzschlagsignal von dem Planer für die Dauer dieses Intervalls verstummt ist, so nimmt das Warteschlangenelement mit dem größten Planergewicht dessen Platz als der neue Planer ein.
  • Zuweisen von Aufgaben an Arbeiter
  • Der Planer weist jede Aufgabe an einen Arbeiter oder Mithörer zu (eine weitere Warteschlangenelemente-Sitzung). Dieser Arbeiter oder Mithörer allein verarbeitet die Aufgabennachricht in einer Datenrückruffunktion.
  • Arbeitergewicht
  • Relative Arbeiter- oder Mithörergewichte unterstützen den Planer bei der Zuweisung von Aufgaben. Wenn der Planer eine Aufgabe empfängt, so weist er die Aufgabe dem verfügbaren Arbeiter oder Mithörer mit dem größten Arbeiter- oder Mithörergewicht zu.
  • Die Aktivierung einer Sitzung als ein Warteschlangenelement setzt ihren Arbeiter- oder Mithörergewichtsparameter stillschweigend auf 1. Das heißt, alle Elemente haben implizit das gleiche Arbeiter- oder Mithörergewicht, sofern nicht ein Programmcode ausdrücklich das Arbeiter- oder Mithörergewicht ändert.
  • Verfügbarkeit
  • Wenn der Planer eine Aufgabe empfängt, so weist er die Aufgabe dem verfügbaren Arbeiter/Mithörer mit dem größten Mithörergewicht zu.
  • Ein Arbeiter/Mithörer wird als verfügbar betrachtet, sofern nicht eine dieser Bedingungen zutrifft:
    Die anstehenden Aufgaben, die dem Arbeiter oder Mithörer zugewiesen sind, übersteigen seine Aufgabenkapazität.
  • Die Arbeiter- oder Mithörersitzung ist der Planer. (Der Planer weist Aufgaben an seinen eigenen Arbeiter oder Mithörer nur zu, wenn alle anderen Arbeiter oder Mithörern beschäftigt sind.)
  • Aufgabenkapazität
  • Die Aufgabenkapazität ist die maximale Anzahl von Aufgaben, die ein Arbeiter oder Mithörer entgegennehmen kann. Wenn die Anzahl der entgegengenommenen Aufgaben dieses Maximum erreicht, so kann der Arbeiter oder Mithörer erst dann weitere Aufgaben entgegennehmen, wenn er eine oder mehrere von ihnen vollendet hat.
  • Wenn der Planer eine Aufgabe empfängt, so weist er die Aufgabe dem Arbeiter oder Mithörer mit dem größten Arbeiter- oder Mithörergewicht zu, sofern nicht die anstehenden Aufgaben, die dem Arbeiter oder Mithörer zugewiesen sind, seine Aufgabenkapazität übersteigen. Wenn der bevorzugte Arbeiter oder Mithörer zu viele Aufgaben hat, so weist der Planer die neue ankommende Aufgabe an den Arbeiter oder Mithörer mit dem nächst-höheren Arbeiter- oder Mithörergewicht zu.
  • Das Aktivieren einer Sitzung als ein Warteschlangenelement setzt ihre Arbeiter- oder Mithörer-Aufgabenkapazität stillschweigend auf 1. Die Programmierer können die Aufgabenkapazität anhand zweier Faktoren abstimmen:
    Multitasking-Programm auf Mehrprozessor-Hardware.
  • Auf einem Mehrprozessor-Computer hat ein Mehrpfadprogramm, das n Befehlsfolgen und n Prozessoren für ankommende Aufgaben aufwendet, eine Aufgabenkapazität n.
  • Kommunikationsverzögerung.
  • In den meisten verteilten Warteschlangenanwendungen ist die Kommunikationszeit ein unbedeutender Bruchteil der Aufgabenumlaufzeit. Das heißt, die Zeit, die benötigt wird, um eine Aufgabe zuzuweisen und ihre Vollendung zu signalisieren, ist sehr gering im Vergleich zu der Zeit, die benötigt wird, um die Aufgabe selbst zu verarbeiten. Wenn zum Beispiel die durchschnittliche Aufgabenumlaufzeit 2000 Millisekunden beträgt, wovon die Kommunikationszeit insgesamt nur 10 Millisekunden ausmacht, dann ist die Aufgabenkapazität die gleiche wie die Anzahl von Prozessoren oder Befehlsfolgen.
  • Jedoch kann in einigen Situationen die Kommunikationszeit beträchtlich sein; zum Beispiel, wenn die Warteschlangenelemente an entfernten Standorten verteilt sind, die durch ein WAN miteinander verbunden sind. Wenn die Kommunikationszeit beträchtlich ist, so ändert sich die Bedeutung von "Aufgabenkapazität". Anstatt die Anzahl der Aufgaben zu bezeichnen, die ein Mithörer gleichzeitig verarbeiten kann, bezeichnet sie die Anzahl der Aufgaben, welche die Kapazität des Mithörers trotz der Kommunikationsverzögerung ausfüllen kann.
  • Wenn zum Beispiel die durchschnittliche Aufgabenumlaufzeit 1500 Millisekunden beträgt, wovon die durchschnittliche Aufgabenverarbeitungszeit insgesamt 1000 Millisekunden ausmacht, dann minimiert das Setzen der Aufgabenkapazität auf 3 die Leerlaufzeit des Mithörers zwischen den Aufgaben.
  • Beim Abstimmen der Aufgabenkapazität zum Kompensieren der Kommunikationsverzögerung ist die Balance von entscheidender Bedeutung. Ein Unterlasten eines Mithörers (indem seine Aufgabenkapazität zu niedrig angesetzt wird) kann dazu führen, dass der Mithörer im Leerlauf bleibt, während er darauf wartet, dass der Planer seine nächste Aufgabe zuweist. Umgekehrt kann ein Überlasten eines Mithörers (indem seine Aufgabenkapazität zu hoch angesetzt wird) dazu führen, dass einige zugewiesene Aufgaben warten müssen, während andere Mithörer, die jene Aufgaben hätten entgegennehmen können, im Leerlauf bleiben.
  • Aufgabenplanung
  • In einer weiteren Anwendung dieser Erfindung können die weitgefassten Konzepte der verteilten Warteschlangeneinreihung auf Planungsaufgaben für verschiedene aufgabenausführende Anwendungen angewendet werden. In dieser Anwendung kann eine Anwendung entweder ein Planer oder ein Arbeiter oder beides sein. Jedem Arbeiter wird ein Gewicht zugewiesen, das seine Fähigkeit anzeigt, Arbeit zu verrichten; in der Regel die Anzahl von Aufgaben, die er gleichzeitig ausführen kann. In der Regel weisen sich Arbeiter ihre eigenen Gewichte zu.
  • Eine Anwendung oder ein Element einer Gruppe wird zum Planer. Sobald das geschieht, werden alle anderen Anwendungen nur noch zu ausdrücklichen Arbeitern. Der Planer wird sowohl zu einem Arbeiter als auch zum Planer.
  • Wenn eine Aufgabe durch die Gruppe (den Planer) empfangen wird, so weist sie die Aufgabe an den Arbeiter mit dem höchsten "Gewicht" oder der größten Fähigkeit, Aufgaben auszuführen, zu. Der Arbeiter ruft dann beim Planer zurück und nimmt die Aufgabe an und sendet bei Vollendung an den Planer einen Ruf zurück, der diese Tatsache anzeigt. In bestimmten Fällen enthält der Rückruf an den Planer sowohl eine Entgegennahme als auch eine Mitteilung zur Aufgabenvollendung.
  • Es sind zwei Anhänge, A und B, angehängt. Diese Anhänge enthalten detaillierte C-Codierungsinformationen für eine zertifizierte Nachrichtenübermittlung bzw. für eine Nachrichten-Warteschlangeneinreihung.
  • Anhang A: Zertifizierte Nachrichtenzustellung (Programmierungsdetails für C-Programmierer)
  • Wie zuvor angesprochen, sind zwar einige Kommunikationen überaus zuverlässig; trotzdem erfordern bestimmte Anwendungen eine noch stärkere Zustellungsgewissheit. Eine zertifizierte Zustellung bietet eine größere Zustellungsgewissheit selbst in Situationen, wo Prozesse und ihre Netzwerkverbindungen instabil sind.
  • Dieser Anhang A enthält Programmierungsdetails für C-Programmierer, die eine zertifizierte Nachrichtenzustellung implementieren wollen. Der Anhang gibt in Tabelle A1 eine zusammenfassende Übersicht über Datenarten und Funktionen einer zertifizierten Nachrichtenzustellung. Jede Datenart oder Funktion wird dann eingehender mit Querverweisen zu verwandten Datenarten oder Funktionen beschrieben.
  • Zertifizierte Nachrichtenzustellung CAPI
  • Die folgende Tabelle fasst die Datenarten und Funk tionen in der zertifizierten Nachrichtenzustellung CAPI zusammen. Tabelle A1: Zertifizierte Nachrichtenzustellung: Datenarten und Funktionen
    Figure 00330001
    Figure 00340001
    • rvcm_Enable() Funktion
    Deklaration
    Figure 00340002
    Figure 00350001
  • Zweck
    • Aktivieren einer bestehenden Sitzung für eine Zustellverfolgung.
  • Anmerkungen
  • Alle anderen rvcm-Funktionen erfordern eine aktivierte Sitzung als ein Argument. Programme müssen vor allen anderen Rufen, die mit einer zertifizierten Zustellung zu tun haben, rvcm_Enable () rufen.
  • Ein Nutzer kann eine aktivierte Sitzung sowohl für zertifizierte als auch nicht-zertifizierte Kommunikation nutzen. Zum Beispiel unterstützt eine aktivierte Sitzung Rufen an rvcm_Send () und rv_Send ().
  • Sobald eine Sitzung für eine zertifizierte Zustellung aktiviert ist, bleibt sie aktiviert, bis sie mit rv_Term () beendet wird. Der Nutzer kann nicht im Nachhinein die Parameter für die zertifizierte Zustellung der Sitzung ändern.
  • Namen
  • rvcm_Enable () befördert sein Sitzungsargument zu einer Zustellverfolgungssitzung.
  • Wenn der Name NULL ist, dann erzeugt rvcm_Enable () einen einmaligen, nicht-wiederverwendbaren Namen für diese Sitzung.
  • Wenn der Namen nicht NULL ist, dann bindet die Sitzung diesen Namen. Ein Korrespondent kann über die Sitzungsbeendigung hinaus nur dann fortbestehen, wenn er sowohl einen wiederverwendbaren Namen als auch ein dateibasiertes Register hat.
  • Registerdatei
  • Jede Zustellverfolgungssitzung speichert den Zustand ihrer zertifizierten Kommunikation in einem Register, das in einem prozessbezogenen Speicher gespeichert wird.
  • Wenn LedgerFile NULL ist, dann verwendet diese Sitzung nur ein prozessbasiertes Register. Wenn die Sitzung oder der Prozess abbricht, so gehen alle Informationen in dem Register verloren.
  • Wenn LedgerFile einen gültigen Dateinamen spezifiziert, dann verwendet diese Sitzung diese Datei zur Registerspeicherung. Wenn die Sitzung oder der Prozess mit unvollständiger zertifizierter Kommunikation abbricht, so zeichnet die Registerdatei diesen Zustand auf. Wenn eine neue Sitzung den gleichen wiederverwendbaren Namen bindet, so liest sie die Registerdatei und setzt die zertifizierte Kommunikation ab dem Zustand fort, der in der Datei gespeichert ist.
  • Selbst wenn eine Sitzung eine Registerdatei verwendet, kann sie im Interesse einer höheren Effizienz mitunter Teile des Registers in prozessbasiertem Speicher replizieren. Die Programmierer können sich aber nicht auf diese Replikation verlassen.
  • Wenn das Betriebssystem Rohspeichervorrichtungen (auch Rohpartitionen genannt) unterstützt, so kann der Nutzer eine solche Speichervorrichtung als die Registerdatei spezifizieren.
  • Ein optionales Präfix bestimmt, ob das Schreiben in die Registerdatei eine synchrone Operation ist:
    • – Um ein synchrones Schreiben zu spezifizieren (der voreingestellte Standard), wird entweder ein gewöhnlicher Dateiname übermittelt, oder es wird die Zeichenkette sync* vor den Dateinamen gehängt; zum Beispiel "myLedger" (implizit) oder "sync*/local/myLedger" (explizit). Jedes Mal, wenn eine Registerposition geschrieben wird, gibt der Ruf erst eine Rückmeldung, wenn die Daten sicher im Dateisystem gespeichert sind.
    • – Um ein asynchrones Schreiben zu spezifizieren, wird die Zeichenkette nosync* vor den Dateinamen gehängt; zum Beispiel "nosync*/local/myLedger". Es kann sein, dass die Registerdatei in Fällen von Hardware- oder Betriebssystemkernelstörungen den Programmzustand nicht genau widerspiegelt.
  • Ein Programm, das eine asynchrone Registerdatei verwendet, kann sie explizit synchronisieren, indem sie rvcm_SyncLedgerFile() ruft, wie unten beschrieben.
    Figure 00370001
    Parameter
    Figure 00380001
    Figure 00390001
    Figure 00400001
    Codierungsbeispiel
    Figure 00400002
    Figure 00410001
    • Siehe auch
    Figure 00410002
    Deklaration
    Figure 00410003
  • Zweck
  • Beginnen des Mithörens auf Nachrichten, die mit dem Thema übereinstimmen, und Anfordern einer zertifizierten Zustellung, wann immer sie verfügbar ist. Wann immer eine Nachricht eintrifft, empfängt die Rückruffunktion sie.
  • Anmerkungen
  • Dieses Funktion ist parallel to rv_ListenSubject (); sie erstellt einen Endpunkt zum Empfangen von Nachrichten mit übereinstimmenden Themen. Der Endpunkt empfängt sowohl markierte Nachrichten als auch gewöhnliche Nachrichten.
  • Wenn eine markierte Nachricht von einer unbekannten Zustellverfolgungssitzung eintrifft, so fordert die Empfangssitzung eine zertifizierte Zustellung für das Thema an. Wenn die Sendesitzung die Anforderung akzeptiert, dann kooperieren die zwei Sitzungen, um die Zustellung von anschließenden Nachrichten mit diesem Thema zu zertifizieren.
  • Im Gegensatz zu gewöhnlichen Mithör-Endpunkten kann der Nutzer nicht mehr als einen einzigen Zustellverfolgungsmithör-Endpunkt je Thema verwalten. Wenn ein Endpunkt bereits geöffnet ist, so melden anschließende Rufe an rvcm_ListenSubject() mit demselben Thema einen Fehler zurück. (Diese Einschränkung gilt für jede Zustellverfolgungssitzung; jedoch kann ein Programm mit mehreren Zustellverfolgungssitzungen unabhängige Zustellverfolgungsmithörer mit identischen Themen öffnen.)
  • Im Gegensatz zu rv_ListenSubject() kann der Nutzer nicht rvcm_ListenSubject() verwenden, um auf "Joker"-Themen mitzuhören.
  • Die Software bestätigt automatisch eine Nachrichtenzustellung, wenn die Datenrückruffunktion eine Rückmeldung gibt. Parameter
    Figure 00420001
    Figure 00430001
    Figure 00440001
    Codierungsbeispiel
    Figure 00440002
    • siehe auch
    Figure 00440003
    Figure 00450001
  • Zweck
  • Öffnen eines Posteingangsfachs und Beginnen des Mithörens auf Punkt-zu-Punkt-Nachrichten, die dorthin adressiert sind. Es wird eine zertifizierte Zustellung verlangt, wann immer sie verfügbar ist. Wann immer eine Nachricht eintrifft, wird sie an die Rückruffunktion weitergeleitet.
  • Anmerkungen
  • Dieses Funktion ist parallel zu rv_ListenInbox (); sie erstellt ein Posteingangsfach zum Empfangen von Punkt-zu-Punkt-Nachrichten. Das Posteingangsfach empfängt sowohl markierte Nachrichten als auch gewöhnliche Nachrichten.
  • Wenn eine markierte Nachricht von einer unbekannten Zustellverfolgungssitzung eintrifft, so fordert die Empfangssitzung eine zertifizierte Zustellung für den Posteingangsfachnamen an. Wenn die Sendesitzung die Anforderung akzeptiert, dann kooperieren die zwei Sitzungen, um die Zustellung von anschließenden Nachrichten zu diesem Posteingangsfach zu zertifizieren.
  • Eine zertifizierte Zustellung an ein Posteingangsfach ist auf die Dauer des Posteingangsfachs begrenzt. Sobald der Nutzer ein Posteingangsfach schließt oder seine Sitzung beendet, werden das Posteingangsfach und sein Name hinfällig; der Nutzer kann niemals ein anderes Posteingangsfach mit dem gleichen Namen eröffnen. Da das System niemals eine Zustellung von Nachrichten ausführen kann, die an ein hinfälliges Posteingangsfach adressiert sind, löscht es gespeicherte Nachrichten automatisch, wenn es feststellt, dass ein Posteingangsfach hinfällig geworden ist.
  • Das System bestätigt automatisch eine Nachrichtenzustellung, wenn die Datenrückruffunktion eine Rückmeldung gibt. Parameter
    Figure 00460001
    Figure 00470001
    Fehler
    Figure 00470002
    Codierungsbeispiel
    Figure 00470003
    Figure 00480001
    • Siehe auch,
    Figure 00480002
    Deklaration
    Figure 00480003
  • Zweck
  • rvcm_Callback ist der Funktionstyp von Datenrückruffunktionen für Zustellverfolgungsmithörer. Anwendungen definieren Funktionen dieses Typs zum Empfangen ankommender Nachrichten und ergreifen entsprechende Maßnahmen.
  • Anmerkungen
  • Dieser Funktionstyp ist parallel zu rv_Callback. Es ist zu beachten, dass seine Funktionssignatur zwei zusätzliche Parameter – senderName und sequenceNum – enthält, um die Verfolgungsdaten zu empfangen, welche die ankommende Nachricht markieren. Anwendungsprogramme können diese Argumente zum Testen und Prüfen verwenden.
  • Das System bestätigt automatisch die Nachrichtenzustellung, wenn die Datenrückruffunktion eine Rückmeldung gibt.
  • Der Nutzer kann mehrere Rückruffunktionen schreiben, um die verschiedenen Arten von Nachrichten zu verarbeiten, welche die Anwendung zu empfangen erwartet. Der Nutzer kann die gleiche Rückruffunktion verwenden, um Nachrichten an mehreren Endpunkten zu verarbeiten. Rückruffunktionen können jegliche Maßnahmen bei der Verarbeitung einer Nachricht ergreifen, mit Ausnahme der folgenden Einschränkungen:
    • – Rückruffunktionen dürfen nicht versuchen, die Daten (die Werte der Parameter msg, subject, reillyName und senderName) in irgend einer Weise zu modifizieren. Die Rückruffunktion empfängt Daten durch Zeiger; die eigentlichen Daten liegen in einem Speicher, der nicht zu der Anwendung gehört. Die Datenzeiger bleiben nur so lange gültig, bis die Rückruffunktion eine Rückmeldung gibt.
    • – Die Datenrückruffunktionen müssen unverzüglich eine Rückmeldung geben.
    Parameter
    Figure 00500001
    Figure 00510001
  • Codierungsbeispiel
  • Dieser Beispielcode veranschaulicht eine Datenrückruffunktion zum Empfangen von Nachrichten mit zertifizierter Zustellung.
    • leer
    Figure 00520001
    • Siehe auch
    Figure 00520002
  • Deklaration
    • typedef void* rvcm_ListenId;
  • Zweck
  • Die rvcm_ListenSubject ()- und rvcm_ListenInbox ()- Funktionen melden einen Bezeichner des Typs rvcm_Listenid zurück. Um das Mithören auf die entsprechenden Informationen zu stoppen, wird dieser Bezeichner an rvcm_Close () weitergeleitet.
  • Anmerkungen
  • Eine rvcm_Listenid hat keine Bedeutung außerhalb der Sitzung, in der sie erstellt wurde. Jede rvcm_Listenid ist ein einmaliger Bezeichner, der eine Zuordnung zwischen einem Thema und einer Rückruffunktion darstellt. Die rvcm_Listenid ist nur innerhalb des lokalen Programms, das sie von einer der Mithörfunktionen empfängt, zu verwenden und ist als verdeckt zu behandeln.
    rvcm_Seq

    Datenart
  • Deklaration
    • typsdef unsigned long rvcm_Seq;
  • Zweck
    • Folgenummer einer markierten Nachricht.
  • Anmerkungen
  • Folgenummern sind auf allen Plattformen (selbst auf Plattformen, die ganze 64-Bit-Zahlen unterstützen) auf 32 Bits begrenzt.
    rvcm_Close ()

    Funktion Deklaration
    Figure 00540001
  • Zweck
    • Schließen eines Zustellverfolgungs-Endpunkts; Beenden des Mithörens auf Nachrichten auf ihm.
  • Anmerkungen
  • Diese Funktion ist parallel zu rv_Close ().
  • Kooperierende Absender empfangen eine ANMELDUNG.GESCHLOSSEN-Hinweismeldung, was anzeigt, dass die Zustellverfolgungsvereinbarung nicht mehr in Kraft ist. Absender empfangen eine ZUSTELLUNG.GESCHEITERT-Hinweismeldung für jede nicht-zugestellte Nachricht an den geschlossenen Endpunkt, und das System entfernt nicht zugestellte Nachrichten aus dem Register des Absenders.
  • Das System löscht die Positionen, die dem geschlossenen Thema entsprechen, aus dem Register des Mithörers.
  • Wenn rvcm_Close () einen Endpunkt schließt, so erzeugt er eine HOST.BEENDET.MITHÖREN-Hinweismeldung, um andere Anwendungen darüber zu informieren, dass diese Anwendung aufgehört hat, auf das Thema mitzuhören.
  • Er ist wichtig, dass ein dauerhafter Mithörer einen Zustellverfolgungs-Endpunkt schließt, wenn er keine zertifizierte Zustellung des entsprechenden Themas mehr benötigt – und nur dann. Offene Endpunkte veranlassen zertifizierte Absender, Nachrichten in dem Register zu speichern, während sie auf eine Zustellbestätigung von dem Absender warten. Aus der Sicht des Absenders erscheint ein dauerhafter Mithörer, der sich ausklinkt, ohne seine Mithör-Endpunkte zu schließen, wie ein Mithörer, der abnormal abbricht. Der Absender speichert weiterhin Nachrichten und wartet auf die Rückmeldung des Mithörerprozesses. Sobald ein Endpunkt geschlossen ist, speichern die Absender keine zertifizierten Nachrichten für diesen Mithörer, und nachfolgende Mithörerprozesse mit dem gleichen Korrespondentennamen empfangen keine zertifizierte Zustellung von Nachrichten, die in der Zwischenzeit gesendet wurden.
  • Codierungsbeispiel
  • Endpunkte werden geschlossen, wenn die Anwendung das Empfangen von Daten beendet hat. Das Schließen von Endpunkten veranlasst TiB/Rendezvous-Software, die zugehörigen Speicherressourcen wiederzuverwenden. Nach dem Schließen eines Endpunktes werden alle Verweise auf ihn gelöscht, um zu verhindern, dass er zweimal geschlossen wird.
  • Es ist ein Regelverstoß, denselben Endpunkt mehr als einmal zu schließen. Auf einigen Plattformen ist der Fehler RVCM_ERR_NONEXISTENT_ID die Folge; auf andere Plattformen kann das Ergebnis ein Totalausfall sein (weil sie auf dynamisch zugewiesenen Speicher verweist, der freigegeben wurde).
  • Dieses Codefragment veranschaulicht das empfohlene Idiom zum Schließen von Endpunkten:
    Figure 00550001
    Figure 00560001
    Parameter
    Figure 00560002
    Fehler
    Figure 00560003
    Figure 00570001
    • Siehe auch
    Figure 00570002
    Deklaration
    Figure 00570003
  • Zweck
    • Senden einer markierten Nachricht und Verfolgen der Zustellung an kooperierende Mithörer.
  • Anmerkungen
  • Diese Funktion ist parallel zu rv_Send (). Es ist zu beachten, dass ihre Signatur zwei zusätzliche Parameter enthält: timeLimit und SequenceNum.
  • timeLimit wird zum Spezifizieren der Dauer der Nachricht (in Sekunden) verwendet. Das System behält die Nachricht in seinem Register, bis es entweder eine Zustell bestätigung von allen kooperierenden Mithörern empfängt oder die Zeitbegrenzung abläuft. Wenn die Zeitbegrenzung abläuft, bevor die Zustellung vollendet ist, so entfernt das System die Nachricht aus dem Register und erzeugt eine ZUSTELLUNG.GESCHEITERT-Hinweismeldung, welche die kooperierenden Mithörer auflistet, welche die Zustellung der Nachricht nicht bestätigt haben.
  • Wir empfehlen einen timeLimit-Wert von länger als 60 Sekunden, weil die Domäne Nachrichten für 60 Sekunden speichert. rvcm_Send () markiert die Nachricht mit dem Namen der Zustellverfolgungssitzung und einer Folgenummer. rvcm_Send () leitet die Folgenummer an den Rufer in seinem sequenceNum-Parameter zurück (der Nutzer kann diese Nummer zu Prüfzwecken verwenden).
  • Jede Sendesitzung verwaltet eine separate Reihenfolge für jedes Thema, das sie sendet. Infolge dessen können Empfänger jede markierte Nachricht anhand der drei Datenrückrufargumente "subject", "senderName" und "sequenceNum" eindeutig identifizieren.
  • Wenn msg eine selbsterklärende Länge hat, so kann der Nutzer null für msgSize übermitteln (das System errechnet die tatsächliche Größe automatisch). Typen mit selbsterklärender Größe sind RVMSG_RVMSG, RVMSG_STRING (wenn die Zeichenkette NULL-terminiert ist) und RVMSG_ENCRYPTED. Alle anderen Typen erfordern ein ausdrückliches Größenargument in diesem Ruf.

    rvcm_Send()
  • rvcm_Send () kopiert seine Argumente. Nachdem rvcm_Send () eine Rückmeldung gibt, kann der Nutzer den Speicher (zum Beispiel einen Nachrichtenpuffer) freigeben oder wiederbenutzen.
  • Warnhinweis
  • Es ist ein Regelverstoß, Nachrichten an "Joker"-Themennamen zu senden. rvcm_Send () verhindert zwar nicht, dass der Nutzer in regelwidriger Weise an "Joker"-Themen sendet, aber die Resultate sind nicht vorhersehbar. Parameter
    Figure 00590001
    Fehler
    Figure 00600001
    Codierungsbeispiel
    Figure 00600002
    Figure 00610001
    • Siehe auch
    Figure 00610002
    Deklaration
    Figure 00610003
  • Zweck
  • Senden einer markierten Anforderungsnachricht und Verfolgen der Zustellung an kooperierende Mithörer. Eine Anforderungsnachricht enthält einen Antwortnamen als eine Rückmeldungsadresse für Antwortnachrichten.
  • Anmerkungen
  • Diese Funktion ist parallel zu rv_SendWithReply (). Es ist zu beachten, dass ihre Signatur zwei zusätzliche Parameter enthält: timeLimit und sequenceNum.
  • Der Antwortname muss der Themenname eines offenen Mithör-Endpunktes sein (entweder rundgesendet oder Posteingangsfach). Eine Anwendung kann null, eine oder mehrere Antworten auf eine Anforderungsnachricht empfangen. Bevor der Nutzer rvcm_SendWithReply () ruft, muss der Nutzer gewährleisten, dass die entsprechenden Anwendungskomponenten auf den Antwortnamen mithören.
  • rvcm SendWithReply () ist eine nicht-sperrende Funktion. Sie gibt unverzüglich eine Rückmeldung, und die Rückruffunktion empfängt alle Antworten asynchron. Eine Antwort ist nicht garantiert (wenn zum Beispiel der Empfänger keine Antwort sendet).
  • Mittels timeLimit wird die Dauer der Nachricht spezifiziert. Das System behält die Nachricht in seinem Register, bis es entweder eine Zustellbestätigung von alle kooperierenden Mithörern empfängt oder die Zeitbegrenzung abläuft. Wenn die Zeitbegrenzung abläuft, bevor die Zustellung vollendet ist, so entfernt das System die Nachricht aus dem Register und erzeugt eine ZUSTELLUNG.GESCHEITERT-Hinweismeldung, welche die kooperierenden Mithörer auflistet, die nicht die Zustellung der Nachricht bestätigt haben.
  • Es wird ein timeLimit-Wert von länger als 60 Sekunden empfohlen, da die Domäne Nachrichten für 60 Sekunden speichert.

    rvcm_SendWithReply()
  • rvcm_SendWithReply() markiert die Nachricht mit dem Namen der Zustellverfolgungssitzung und einer Folgenummer. rvcm_SendWithReply() leitet die Folgenummer an den Rufer in seinem sequenceNum-Parameter zurück (der Nutzer kann diese Nummer zu Prüfzwecken verwenden).
  • Jede Sendesitzung verwaltet eine separate Reihenfolge für jedes Thema, das sie sendet. Infolge dessen können Empfänger jede markierte Nachricht anhand von drei Datenrückrufargumenten eindeutig identifizieren: "subject", "senderName" und "sequenceNum".
  • Wenn msg eine selbsterklärende Länge hat, so kann der Nutzer null für msgSize übermitteln (das System errechnet die tatsächliche Größe automatisch). Typen mit selbsterklärender Größe sind RVMSG_RVMSG, RVMSG_STRING (wenn die Zeichenkette NULL-terminiert ist) und RVMSG_ENCRYPTED. Alle anderen Typen erfordern ein ausdrückliches Größenargument in diesem Ruf.
  • rvcm_SendWithReply() kopiert seine Argumente. Nachdem rvcm SendWithReply() eine Rückmeldung gegeben hat, kann der Nutzer Speicher (zum Beispiel einen Nachrichtenpuffer) freigeben oder wiederverwenden.
  • Warnhinweis
  • Es ist ein Regelverstoß, Nachrichten an "Joker"-Themennamen zu senden. Zwar hindert die Funktion rvcm_SendWithReply() den Nutzer nicht daran, regelwidrig an "Joker"-Themen zu senden, doch die Resultate sind unvorhersehbar. Parameter
    Figure 00630001
    Figure 00640001
    Fehler
    Figure 00640002
    Figure 00650001
    Codierungsbeispiel
    Figure 00650002
    • Siehe auch
    Figure 00660001
    Deklaration
    Figure 00660002
  • Zweck
    • Voranmeldung eines erwarteten Mithörers.
  • Anmerkungen
  • Einige Absendeanwendungen können Anforderungen für eine zertifizierte Zustellung erwarten, schon bevor die Mithöranwendungen zu laufen beginnen. In solchen Situationen kann der Absender Mithörer voranmelden, so dass das System beginnt, abgehende Nachrichten im Register des Absenders zu speichern. Wenn der Mithörer eine zertifizierte Zustellung anfordert, so empfängt er die rückgestauten Nachrichten.
  • Wenn der Korrespondent mit diesem Namen bereits eine zertifizierte Zustellung dieses Themas von dieser Absendersitzung empfängt, dann hat rvcm_AddListener() keine Wirkung.
  • Wenn der Korrespondent mit diesem Namen nicht zugelassen ist, dann meldet rvcm_AddListener() einen Fehler zurück. Der Nutzer kann rvcm_AllowListener() rufen, um die Wirkung eines früheren Rufes an rvcm_DisallowListener() aufzuheben; dann wird rvcm_AddListener() erneut gerufen. Parameter
    Figure 00670001
    • rvcm_AddListener()
    Fehler
    Figure 00670002
    Figure 00680001
    Codierungsbeispiel
    Figure 00680002
    • Siehe auch
    Figure 00680003
    Deklaration
    Figure 00680004
    Figure 00690001
  • Zweck
    • Abmelden eines bestimmten Mithörers bei einem bestimmten Korrespondenten und Freigeben von zugehörigem Speicher im Register des Absenders.
  • Anmerkungen
  • Diese Funktion storniert die zertifizierte Zustellung des bestimmten Themas an den Korrespondenten mit diesem Namen. Der Mithörkorrespondent kann sich anschließend erneut für eine zertifizierte Zustellung des Themas anmelden. (Im Gegensatz dazu storniert rvcm_DisallowListener() die zertifizierte Zustellung aller Themen an den Korrespondenten und untersagt die Neuanmeldung.)
  • Absender rufen in der Regel diese Funktion, wenn die Registerposition für einen Mithörkorrespondenten sehr groß geworden ist. Ein solches Größerwerden zeigt an, dass der Mithörer nicht die Zustellung bestätigt und möglicherweise seinen Betrieb abgebrochen hat. Das Entfernen des Mithörers verkleinert das Register durch Löschen von Nachrichten, die für den Mithörer gespeichert wurden.
  • Wenn ein Absendeprogramm diese Funktion ruft, so verhält sich die Software für zertifizierte Zustellung in dem Absender so, als ob der Mithörer den Endpunkt für das Thema geschlossen hätte. Das Absendeprogramm löscht aus seinem Register alle Informationen über die Zustellung des Themas an den Korrespondenten mit diesem Namen. Das Absendeprogramm empfängt eine ANMELDUNG.GESCHLOSSEN-Hinweismel dung, um jegliche Operationen in der Rückruffunktion für die Hinweismeldung zu veranlassen.
  • Wenn der Mithörkorrespondent verfügbar ist (er läuft und ist erreichbar), so empfängt er eine ANMELDUNG.NICHT_ZERTIFIZIERT-Hinweismeldung, die ihn informiert, dass der Absender nicht mehr die Zustellung des Themas zertifiziert.
  • Wenn der Korrespondent mit diesem Namen keine zertifizierte Zustellung des Themas von dieser Absendersitzung empfängt, dann meldet rvcm_RemoveListener() RVCM_ERR_BAD_SUBJECT zurück. Parameter
    Figure 00700001
    Fehler
    Figure 00700002
    Figure 00710001
    Codierungsbeispiel
    Figure 00710002
    • Siehe auch
    Figure 00720001
    Deklaration
    Figure 00720002
  • Zweck
    • Stornieren der zertifizierten Zustellung an alle Mithörer bei einem bestimmten Korrespondenten. Verweigern anschließender Anmeldungsanforderungen für eine zertifizierte Zustellung von jenen Mithörern.
  • Anmerkungen
  • Nicht zugelassene Mithörer empfangen immer noch anschließende Nachrichten von diesem Absender, aber die Zustellung ist nicht zertifiziert. Das heißt:
    • – Der Mithörer empfängt eine ANMELDUNG.NICHT_ZERTIFIZIERT-Hinweismeldung, die ihn darüber informiert, dass der Absender die zertifizierte Zustellung aller Themen storniert hat.
    • – Wenn das Register des Absenders Nachrichten enthält, die an den nicht zugelassenen Mithörer gesendet wurden (für die dieser Mithörer keine Zustellung bestätigt), dann entfernt das System jene Registerpositionen und versucht nicht, jene Nachrichten erneut zuzustellen.
    • – Das System übermittelt anschließende Nachrichten (von dem stornierenden Absender) an den Mithörer mit der Folgenummer null, um anzuzeigen, dass die Zustellung nicht zertifiziert ist.
  • Die Absender können sofort die Entgegennahme der zertifizierten Zustellung widerrufen, indem sie rvcm_DisallowListener() innerhalb der Rückruffunktion rufen, welche die ANMELDUNGSANFORDERUNG-Hinweismeldung verarbeitet.
  • Diese Funktion verbietet einen Korrespondenten anhand des Namens. Wenn der Korrespondent abbricht und eine andere Prozessinstanz (mit dem gleichen wiederverwendbaren Namen) seine Stelle einnimmt, so ist der neue Prozess durch diesen Absender immer noch nicht zugelassenen.
  • Um die Wirkung von rvcm_DisallowListener() aufzuheben, wird rvcm_AllowListener() gerufen. Parameter
    Figure 00730001
    Fehler
    Figure 00740001
    Codierungsbeispiel
    Figure 00740002
    Figure 00750001
    Deklaration
    Figure 00750002
  • Zweck
  • Auffordern des benannten Empfängers, die zertifizierte Zustellung für seine Mithörer wieder aufzunehmen, wodurch die Wirkung vorheriger Rufe an rvcm_DisallowListener() aufgehoben wird.
  • Anmerkungen
  • Bei Empfang der Aufforderung zur Wiederaufnahme der zertifizierten Zustellung sendet das System im Mithörprogramm automatisch neue Anmeldungsanforderungen. Das Absendeprogramm akzeptiert diese Anforderungen und stellt die zertifizierte Zustellung wieder her. Parameter
    Figure 00750003
    Fehler
    Figure 00760001
    Codierungsbeispiel
    Figure 00760002
    Deklaration
    Figure 00770001
  • Zweck
    • Außerkraftsetzen der automatischen Zustellbestätigung für diesen Mithör-Endpunkt.
  • Anmerkungen
  • Das als Standard voreingestellte Verhalten von zertifizierten Mithörern ist, automatisch die Nachrichtenzustellung nach Rückmeldung von der Datenrückruffunktion zu bestätigen (siehe rvcm_Callback, oben). Dieser Ruf setzt selektiv dieses Verhalten für diesen konkreten Mithör-Endpunkt außer Kraft. (Dieser Ruf beeinflusst keine anderen Mithör-Endpunkte.)
  • Durch Außerkraftsetzung der automatischen Bestätigung übernimmt der Mithörer die Zuständigkeit für das ausdrückliche Bestätigen jeder ankommenden zertifizierten Nachricht durch Rufen von rvcm_Confirm().
  • Die Außerkraftsetzung der automatischen Bestätigung ist in Betracht zu ziehen, wenn bei der Verarbeitung ankommender Nachrichten asynchrone Aktivitäten ausgeführt werden, wie zum Beispiel Berechnungen in anderen Befehlsfolgen, Datenbankabfragen oder zusätzliche Netzwerkkommunikation.
  • Es gibt kein Verfahren zum Wiederherstellen des als Standard voreingestellten Verhaltens, das die Wirkung dieser Funktion umkehren würde. Parameter
    Figure 00780001
    Fehler
    Figure 00780002
    • Siehe auch
    Figure 00780003
    Deklaration
    Figure 00790001
  • Zweck
    • Bestätigten der Zustellung einer zertifizierten Nachricht.
  • Anmerkungen
  • Diese Funktion ist nur in Programmen zu nutzen, welche die automatische Bestätigung außer Kraftsetzen.
  • Das Dreigespann aus Themenname, Absender und Folgenummer identifiziert eindeutig jede zertifizierte Nachricht. Der Themenname ist bereits in dem Mithör-Endpunkt gespeichert. Die anderen zwei Komponenten – Absender und Folgenummer – sind ausdrückliche Parameter dieser Funktion. Parameter
    Figure 00790002
    Figure 00800001
    Fehler
    Figure 00800002
    • Siehe auch
    Figure 00800003
    Figure 00810001
    Deklaration
    Figure 00810002
  • Zweck
    • Zusammenfassen des Zustellstatus' von Nachrichten im Register.
  • Anmerkungen
  • Die Rückruffunktion empfängt eine einzelne Nachricht für jedes übereinstimmende Thema, das im Register gespeichert ist. Wenn zum Beispiel rvcm_ReviewLedger() FOO. * als sein Themenargument empfängt, so ruft es die Rückruffunktion separat für diese übereinstimmenden Themen: einmal für FOO.BAR, einmal für FOO.BAZ und einmal für FOO.BOX.
  • Wenn jedoch die Rückruffunktion nicht-NULL zurückmeldet, dann gibt rvcm_ReviewLedger() unverzüglich eine Rückmeldung.
  • Wenn das Register keine übereinstimmenden Positionen enthält, so gibt rvcm_ReviewLedger()normalerweise eine Rückmeldung, ohne die Rückruffunktion zu rufen.
  • Für Informationen zum Inhalt und Format der Rückrufnachrichten siehe rvcm_ReviewCallback, unten. Parameter
    Figure 00820001
    Fehler
    Figure 00820002
    Figure 00830001
    Codierungsbeispiel
    Figure 00830002
    • Siehe auch
    Figure 00840001
    Deklaration
    Figure 00840002
  • Zweck
  • rvcm_ReviewCallback ist der Funktionstyp von Rückruffunktionen zum Überprüfen des Registers. Anwendungen definieren Funktionen dieses Typs zum Verarbeiten der Zusammenfassungsnachrichten von rvcm_ReviewLedger().
  • Anmerkungen
  • rvcm_ReviewLedger() ruft diesen Rückruf einmal für jedes übereinstimmende Thema im Register.
  • Um mit der Überprüfung des Registers fortzufahren, wird NULL von dieser Rückruffunktion zurückgemeldet. Um das Überprüfen des Registers zu stoppen, wird nicht-NULL von dieser Rückruffunktion zurückgemeldet; rvcm_ReviewLedger() gibt unverzüglich eine Rückmeldung. Parameter
    Figure 00850001
    Nachrichteninhalt
    Figure 00850002
    Figure 00860001
    Codierungsbeispiel
    Figure 00860002
    Figure 00870001
    • Siehe auch
  • Figure 00870002
  • Deklaration
    • rvcm_Error rvcm_SyncLedgerFile (rv_Session session);
  • Zweck
    • Synchronisieren der Registerdatei auf ihr Speichermedium.
  • Anmerkungen
  • Wenn diese Funktion eine Rückmeldung gibt, so wird der augenblickliche Zustand der Sitzung sicher in der Registerdatei gespeichert.
  • Zustellverfolgungssitzungen, die mit synchronen Registerdateien arbeiten, brauchen diese Funktion nicht zu rufen, da der augenblickliche Zustand automatisch vor der Rückmeldung in das Dateisystem geschrieben wird. Parameter
    Figure 00880001
    Fehler
    Figure 00880002
    • Siehe auch
    Figure 00890001
  • rvcm_Error ist ein aufgezählter Typ für Fehlercodes. Tabelle A2 listet die möglichen rvcm_Error-Werte auf. Der Nutzer kann die Funktion rvcm_ErrorText() nutzen, um rvcm_Error-Nachrichtencodes in beschreibenden Text umzuwandeln. Für mehr Informationen siehe rvcm_ErrorText() auf Seite 244. Tabelle A2: Aufgezählte Werte von rvcm_Error
    Figure 00890002
    Figure 00900001
    Figure 00910001
    Figure 00920001
    Figure 00930001
    • Siehe auch rvcm_ErrorText(), unten.
  • Anhang B: Verteilte Warteschlangen (Programmierungsdetails für C-Programmierer)
  • Dieser Anhang A beschreibt Programmierungsdetails für C-Programmierer, die eine zertifizierte Nachrichtenzustellung implementieren wollen. Der Anhang gibt in Tabelle A1 eine Übersicht über die Zustell-Datenarten und Funktionen der zertifizierten Nachrichtenübermittlung. Jede Datenart oder Funktion wird dann näher mit Querverweisen auf verwandte Datenarten oder Funktionen beschrieben.
  • Wie oben beschrieben, können Anwendungen verteilte Warteschlangen für eine zertifizierte Zustellung an einen einzelnen von n Mithörern (Warteschlangenelemente-Sitzungen) verwenden. Diese Funktionen verteilter Warteschlangen werden in der Regel in Kombination mit einer zertifizierten Nachrichtenzustellung verwendet.
  • Verteilte Warteschlange CAPI
  • Die folgende Tabelle BA fasst die Datenarten und Funktionen in der verteilten Warteschlange CAPI zusammen. Tabelle B1: Verteilte Warteschlangen: Datenarten und Funktionen
    Figure 00930002
    Figure 00940001
    • rvcm_EnableQueue() Funktion
    Deklaration
    Figure 00950001
  • Zweck
    • Aktivieren einer Sitzung für zertifizierte Nachrichtenzustellung als Teil einer verteilten Warteschlange für eine zertifizierte "eine-von-n"-Zustellung.
  • Anmerkungen
  • Jedes Element einer verteilten Warteschlange hört auf dieselben Themen mit. Doch selbst, wenn n Elemente mithören, verarbeitet für jede ankommenden Nachricht (oder Aufgabe) genau ein Element die Nachricht.
  • Programme müssen vor anderen Rufen, die mit verteilten Warteschlangen oder zertifiziertem Mithören zu tun haben, rvcm_EnableQueue() rufen.
  • Sobald eine Sitzung zu einem Warteschlangenelement wird, kann sie ihre Beteiligung nur noch mit rv_Term() beenden.
  • Rollen von Warteschlangenelementen
  • Jede Sitzung von Elementen einer verteilten Warteschlange hat zwei eigenständige Rollen: als ein Mithörer und als ein potenzieller Planer.
  • In der Mithörer-Rolle unterstützen Warteschlangenelemente-Sitzungen eine begrenzte Teilmenge von Rufen für eine zertifizierte Zustellung: rvcm_ListenSubject(), rvcm_NoAutoConirm() und rvcm_Confirm(). Warteschlangenelemente-Sitzungen unterstützen keine anderen Rufe für eine zertifizierte Zustellung (insbesondere Rufe, die mit dem Senden zertifizierter Nachrichten zu tun haben). Sie unterstützen jedoch alle Standardsystemrufe (zum Beispiel rv_Send()).
  • Systemfehlertoleranzsoftware verwaltet genau einen einzigen aktiven Planer in jeder Warteschlange. Wenn der Planerprozess abbricht, übernimmt ein anderes Element die Rolle des Planers. Die Warteschlangenelemente-Sitzung in der Planer-Rolle weist ankommende Aufgaben an Mithörer in der Warteschlange zu. (Ein Planer kann Aufgaben an seine eigene Mithörerkomponente zuweisen, tut dies aber nur, wenn alle anderen Mithörer beschäftigt sind.) Parameter
    Figure 00960001
    Figure 00970001
    Fehler
    Figure 00970002
    Figure 00980001
    • Siehe auch
    Figure 00980002
    Deklaration
    Figure 00980003
  • Zweck
    • Ändern des Entgegennahmezeit-Parameters einer Warteschlangenelemente-Sitzung.
  • Anmerkungen
  • Wenn diese Sitzung, die als der Planer agiert, eine Aufgabe an einen Mithörer (eine andere Warteschlangenelemente-Sitzung) zuweist, so stellt sie einen Timer mit dieser Länge (in Millisekunden) ein. Wenn der Timer abläuft, bevor der Planer die Entgegennahme von dem Mithörer empfängt, so weist der Planer die Aufgabe an einen anderen Mithörer neu zu.
  • Null ist ein spezieller Wert, der keine Begrenzung für die Entgegennahmezeit spezifiziert. Das heißt, der Planer stellt keinen Timer ein und weist keine Aufgaben neu zu.
  • Das Aktivieren einer Sitzung als ein Warteschlangenelement stellt seinen Entgegennahmezeit-Parameter stillschweigend als DEFAULT ACCEPT_TIME (null) ein. Parameter
    Figure 00990001
    Fehler
    Figure 00990002
    • Siehe auch
    Figure 01000001
    Deklaration
    Figure 01000002
  • Zweck
    • Extrahieren des Entgegennahmezeit-Parameters einer Warteschlangenelemente-Sitzung.
  • Anmerkungen
  • Wenn diese Sitzung, die als der Planer agiert, eine Aufgabe an einen Mithörer (eine andere Warteschlangenelemente-Sitzung) zuweist, so stellt sie einen Timer für die Entgegennahmezeit (in Millisekunden) ein. Wenn der Timer abläuft, bevor der Planer die Entgegennahme von dem Mithörer empfängt, so weist der Planer die Aufgabe an einen anderen Mithörer neu zu.
  • Null ist ein spezieller Wert, der keine Begrenzung für die Entgegennahmezeit spezifiziert (der Planer stellt keinen Timer ein).
  • Das Aktivieren einer Sitzung als ein Warteschlangenelement stellt seinen Entgegennahmezeit-Parameter stillschweigend als DEFAULT ACCEPT_TIME (null) ein. Parameter
    Figure 01010001
    Fehler
    Figure 01010002
    • rvcm_Qz,QueueAcceptTime()
    Figure 01010003
    • Siehe auch
    Figure 01010004
    Figure 01020001
    Deklaration
    Figure 01020002
  • Zweck
    • Ändern des Vollendungszeit-Parameters einer Warteschlangenelemente-Sitzung.
  • Anmerkungen
  • Wenn diese Sitzung, die als der Planer agiert, eine Aufgabe an einen Mithörer (eine andere Warteschlangenelemente-Sitzung) zuweist, so stellt sie einen Timer mit dieser Länge (in Millisekunden) ein. Wenn der Timer abläuft, bevor der Planer eine Vollendungsnachricht von dem Mithörer empfängt, so weist der Planer die Aufgabe an einen anderen Mithörer neu zu.
  • Null ist ein spezieller Wert, der keine Begrenzung für die Vollendungszeit spezifiziert (der Planer stellt keinen Timer ein).
  • Das Aktivieren einer Sitzung als ein Warteschlangenelement stellt ihren Vollendungszeit-Parameter stillschweigend auf DEFAULT_COMPLETE_TIME (null) ein. Parameter
    Figure 01030001
    Fehler
    Figure 01030002
    • Siehe auch
    Figure 01040001
    Deklaration
    Figure 01040002
  • Zweck
    • Extrahieren des Vollendungszeit-Parameters einer Warteschlangenelemente-Sitzung.
  • Anmerkungen
  • Wenn diese Sitzung, die als der Planer agiert, eine Aufgabe an einen Mithörer (eine andere Warteschlangenelemente-Sitzung) zuweist, so stellt sie einen Timer für die Vollendungszeit (in Millisekunden) ein. Wenn der Timer abläuft, bevor der Planer eine Vollendungsnachricht von dem Mithörer empfängt, so weist der Planer die Aufgabe an einen anderen Mithörer neu zu.
  • Null ist ein spezieller Wert, der keine Begrenzung für die Vollendungszeit spezifiziert (der Planer stellt keinen Timer ein).
  • Das Aktivieren einer Sitzung als ein Warteschlangen element stellt ihren Vollendungszeit-Parameter stillschweigend auf DEFAULT_COMPLETE_TIME (null) ein. Parameter
    Figure 01050001
    Fehler
    Figure 01050002
    • Siehe auch
    Figure 01060001
    Deklaration
    Figure 01060002
  • Zweck
    • Extrahieren des Vollendungszeit-Parameters einer Warteschlangenelemente-Sitzung.
  • Anmerkungen
  • Wenn diese Sitzung, die als der Planer agiert, eine Aufgabe an einen Mithörer (eine andere Warteschlangenelemente-Sitzung) zuweist, so stellt sie einen Timer für die Vollendungszeit (in Millisekunden) ein. Wenn der Timer abläuft, bevor der Planer eine Vollendungsnachricht von dem Mithörer empfängt, so weist der Planer die Aufgabe an einen anderen Mithörer neu zu.
  • Null ist ein spezieller Wert, der keine Begrenzung für die Vollendungszeit spezifiziert (der Planer stellt keinen Timer ein).
  • Das Aktivieren einer Sitzung als ein Warteschlangenelement stellt ihren Vollendungszeit-Parameter stillschweigend auf DEFAULT_COMPLETE_TIME (null) ein. Parameter
    Figure 01070001
    Fehler
    Figure 01070002
    • Siehe auch
    Figure 01070003
    Deklaration
    Figure 01080001
  • Zweck
    • Ändern des Mithörergewichts-Parameters einer Warteschlangenelemente-Sitzung.
  • Anmerkungen
  • Wenn der Planer eine Aufgabe empfängt, so weist er die Aufgabe an den verfügbaren Mithörer mit dem größten Mithörergewicht zu.
  • Ein Mithörer wird als verfügbar angesehen, solange nicht eine dieser Bedingungen eintritt:
    • – Die anstehenden Aufgaben, die dem Mithörer zugewiesen sind, übersteigen seine Aufgabenkapazität.
    • – Die Mithörersitzung ist der Planer. (Der Planer weist Aufgaben an seinen eigenen Mithörer nur zu, wenn keine anderen Mithörer verfügbar sind.)
  • Das Aktivieren einer Sitzung als ein Warteschlangenelement stellt ihren Mithörergewichts-Parameter stillschweigend auf DEFAULT_LISTENER_WEIGHT (1) ein. Parameter
    Figure 01090001
    Fehler
    Figure 01090002
    • Siehe auch
    Figure 01090003
    Deklaration
    Figure 01090004
    Figure 01100001
  • Zweck
    • Extrahieren des Mithörergewichts-Parameters einer Warteschlangenelemente-Sitzung.
  • Anmerkungen
  • Wenn der Planer eine Aufgabe empfängt, so weist er die Aufgabe dem verfügbaren Mithörer mit dem größten Mithörergewicht zu.
  • Ein Mithörer wird als verfügbar angesehen, solange nicht eine dieser Bedingungen eintritt:
    • – Die anstehenden Aufgaben, die dem Mithörer zugewiesen sind, übersteigen seine Aufgabenkapazität.
    • – Die Mithörersitzung ist der Planer. (Der Planer weist Aufgaben an seinen eigenen Mithörer nur zu, wenn keine anderen Mithörer verfügbar sind.)
  • Das Aktivieren einer Sitzung als ein Warteschlangenelement stellt ihren Mithörergewichts-Parameter stillschweigend auf DEFAULT_LISTENER_WEIGHT (1) ein. Parameter
    Figure 01100002
    Fehler
    Figure 01110001
    • Siehe auch
    Figure 01110002
    Deklaration
    Figure 01110003
  • Zweck
    • Ändern des Mithöreraufgaben-Parameters einer Warteschlangenelemente-Sitzung.
  • Anmerkungen
  • Die Aufgabenkapazität ist die maximale Anzahl von Aufgaben, die ein Mithörer entgegennehmen kann. Wenn die Anzahl von entgegengenommenen Aufgaben dieses Maximum erreicht, so kann der Mithörer erst dann wieder zusätzliche Aufgaben entgegennehmen, wenn er eine oder mehrere von ihnen ausgeführt hat.
  • Wenn der Planer eine Aufgabe empfängt, so weist er die Aufgabe an den Mithörer (ein Warteschlangenelement) mit dem größten Mithörergewicht zu, sofern nicht die anstehenden Aufgaben, die diesem Mithörer zugewiesen sind, seine Aufgabenkapazität übersteigen. Wenn der bevorzugte Mithörer zu viele Aufgaben hat, so weist der Planer die neue ankommende Aufgabe an den Mithörer mit dem nächst-höheren Mithörergewicht zu.
  • Das Aktivieren einer Sitzung als ein Warteschlangenelement stellt ihren Mithöreraufgaben-Parameter stillschweigend auf DEFAULT_LISTENER_TASKS (1) ein.
  • Die Programmierer können die Aufgabenkapazität anhand zweier Faktoren abstimmen:
    • – Multitasking-Programm auf Mehrprozessor-Hardware. Auf einem Mehrprozessor-Computer hat ein Mehrpfadprogramm, das n Befehlsfolgen und n Prozessoren für ankommende Aufgaben aufwendet, eine Aufgabenkapazität n.
    • – Kommunikationsverzögerung. In den meisten verteilten Warteschlangenanwendungen ist die Kommunikationszeit ein unbedeutender Bruchteil der Aufgabenumlaufzeit. Das heißt, die Zeit, die benötigt wird, um eine Aufgabe zuzuweisen und ihre Vollendung zu signalisieren, ist sehr gering im Vergleich zu der Zeit, die benötigt wird, um die Aufgabe selbst zu verarbeiten. Wenn zum Beispiel die durchschnittliche Aufgabenumlaufzeit 2000 Millisekunden beträgt, wovon die Kommunikationszeit insgesamt nur 10 Millisekunden ausmacht, dann ist die Aufgabenkapazität die gleiche wie die Anzahl von Prozessoren oder Befehlsfolgen.
  • Jedoch kann in einigen Situationen die Kommunikationszeit beträchtlich sein; zum Beispiel, wenn die Warteschlangenelemente an entfernten Standorten verteilt sind, die durch ein Wide Area Network (WAN) miteinander verbunden sind. Wenn die Kommunikationszeit beträchtlich ist, so ändert sich die Bedeutung von "Aufgabenkapazität". Anstatt die Anzahl der Aufgaben zu bezeichnen, die ein Mithörer gleichzeitig verarbeiten kann, bezeichnet sie die Anzahl der Aufgaben, welche die Kapazität des Mithörers trotz der Kommunikationsverzögerung ausfüllen kann. Wenn zum Beispiel die durchschnittliche Aufgabenumlaufzeit 1500 Millisekunden beträgt, wovon die durchschnittliche Aufgabenverarbeitungszeit insgesamt 1000 Millisekunden ausmacht, dann minimiert das Setzen der Aufgabenkapazität auf 3 die Leerlaufzeit des Mithörers zwischen den Aufgaben.
  • Beim Abstimmen der Aufgabenkapazität zum Kompensieren der Kommunikationsverzögerung ist die Balance von entscheidender Bedeutung. Ein Unterlasten eines Mithörers (indem seine Aufgabenkapazität zu niedrig angesetzt wird) kann dazu führen, dass der Mithörer im Leerlauf bleibt, während er darauf wartet, dass der Planer seine nächste Aufgabe zuweist. Umgekehrt kann ein Überlasten eines Mithörers (indem seine Aufgabenkapazität zu hoch angesetzt wird) dazu führen, dass einige zugewiesene Aufgaben warten müssen, während andere Mithörer, die jene Aufgaben hätten entgegennehmen können, im Leerlauf bleiben. Parameter
    Figure 01140001
    Fehler
    Figure 01140002
    • Siehe auch
    Figure 01140003
    Figure 01150001
    Deklaration
    Figure 01150002
  • Zweck
    • Extrahieren des Mithöreraufgaben-Parameters einer Warteschlangenelemente-Sitzung.
  • Anmerkungen
  • Die Aufgabenkapazität ist die maximale Anzahl von Aufgaben, die ein Mithörer entgegennehmen kann. Wenn die Anzahl von entgegengenommenen Aufgaben dieses Maximum erreicht, so kann der Mithörer erst dann wieder zusätzliche Aufgaben entgegennehmen, wenn er eine oder mehrere von ihnen ausgeführt hat.
  • Wenn der Planer eine Aufgabe empfängt, so weist er die Aufgabe an den Mithörer (ein Warteschlangenelement) mit dem größten Mithörergewicht zu, sofern nicht die anstehenden Aufgaben, die diesem Mithörer zugewiesen sind, seine Aufgabenkapazität übersteigen. Wenn der bevorzugte Mithörer zu viele Aufgaben hat, so weist der Planer die neue ankom mende Aufgabe an den Mithörer mit dem nächst-höheren Mithörergewicht zu.
  • Das Aktivieren einer Sitzung als ein Warteschlangenelement stellt ihren Mithöreraufgaben-Parameter stillschweigend auf DEFAULT_LISTENER_TASKS (1) ein. Parameter
    Figure 01160001
    Fehler
    Figure 01160002
    • Siehe auch


    rvcm_SetQueueListenerTasks(), oben.

Claims (21)

  1. Ein computerimplementiertes Verfahren in einem computerbasierten Veröffentlichungs/Abonnier-System, das eine Abonnentanwendung (20), die vorausgehend zum Empfang eines bestimmten Typs von Nachrichten abonniert wird, zur Zustellung von Nachrichten von einer Herausgeberanwendung (10) zu der Abonnentanwendung (20) aufweist, wobei die Herausgeberanwendung und die Abonnentenanwendung Teil eines anonymen Veröffentlichungs/Abonnier-Computersystems sind, das verfahren ist durch die Schritte gekennzeichnet: Empfangen einer zertifizierten Nachrichten-Abonnementanforderung in der Herausgeberanwendung (10), besagte zertifizierte Nachrichten-Abonnementanforderung enthält einen Abonnentennamen, der die Abonnentanwendung identifiziert, eine Adresse, wo die Abonnentanwendung (20) Nachrichten empfängt, und einen Gegenstandsnamen, der mit dem speziellen Typ der Nachricht verbunden ist und diesen identifiziert, für den eine zertifizierte Nachrichtensitzung einzurichten ist; in Beantwortung des Empfangs der zertifizierten Nachrichten-Abonnementanforderung, Einrichten der zertifizierten Nachrichtensitzung mit der Abonnentanwendung (20) durch Hinzufügung des Abonnementennamens zu einem Nachrichten-Protokoll in der Herausgeberanwendung (10), und Übertragen einer Bestätigungsnachricht an die Abonnentanwendung (20), die Bestätigungsnachricht bestätigt das Einrichten der zertifizierten Nachrichtensitzung; und Versuch einer Zustellung einer Nachricht des speziellen Typs in Übereinstimmung mit der zertifizierten Nachrichtensitzung durch Zuordnung einer Folgenummer zur zertifizierten Nachricht, Adressieren der zertifizierten Nachricht zur Adresse, wo die Abonnentanwendung Nachrichten empfängt, Übertragen einer zertifizierten Nachricht von der Herausgeberanwendung zu der Abonnentanwendung, Aufzeichnen eines Versuch einer Zustellung der zertifizierten Nachricht in dem Protokoll wenigstens bis die Herausgeberanwendung eine Bestätigungsnachricht empfangen hat, mit der der Empfang der zertifizierten Nachricht in der Abonnentanwendung bestätigt wird.
  2. Das Verfahren von Anspruch 1 umfasst weiter: in Beantwortung des Empfangs einer Bestätigungsnachricht in der Herausgeberanwendung zur Bestätigung des Empfangs der zertifizierten Nachricht, die durch die zugeordnete Folgenummer in der Abonnentanwendung identifiziert ist, Aktualisieren des Protokolls in der Herausgeberanwendung zur Anzeige, dass die zertifizierte Nachricht, die durch die zugeordnete Folgenummer identifiziert ist, in der Abonnentanwendung empfangen wurde
  3. Das Verfahren von Anspruch 1 umfasst weiter: in Beantwortung des Empfangs einer Bestätigungsnachricht in der Herausgeberanwendung zur Bestätigung des Empfangs der zertifizierten Nachricht, die durch die zugeordnete Folgenummer in der Abonnentanwendung identifiziert ist, Löschen der zertifizierte Nachricht, die durch die zugeordnete Folgenummer identifiziert ist, im Protokoll in der Herausgeberanwendung.
  4. Das Verfahren von Anspruch 3 umfasst weiter den Schritt: Löschen der zertifizierten Nachricht, die durch die zugeordnete Folgenummer identifiziert ist, in dem Protokoll, wenn das Protokoll anzeigt, dass alle Abonnentanwendungen, an die zertifizierte, durch die zugeordnete Folgenummer identifizierte Nachrichten gesendet wurden, den Empfang der zertifizierten, durch die zugeordnete Folgenummer identifizierten Nachricht bestätigt haben.
  5. Das Verfahren von Anspruch 1 umfasst weiter: Übertragen einer Bestätigungsanforderung von der Herausgeberanwendung zur Abonnentanwendung, wenn die Herausgeberanwendung keine Bestätigungsnachricht von der Abonnentanwendung innerhalb einer vorgegebenen Zeitspanne nach einem Versuch, die zertifizierte durch die zugeordnete Folgenummer identifizierte Nachricht zuzustellen, empfangen hat, die Bestätigungsanforderung fordert, dass die Abonnentanwendung den Empfang der zertifizierten Nachricht bestätigt, die durch die zugeordnete Folgenummer identifiziert ist.
  6. Das Verfahren von Anspruch 1, worin das Protokoll ein dateibasiertes Protokoll ist, und die zertifizierte Nachrichtensitzung über die Beendigung und den Neustart der Herausgeberanwendung und/oder der Abonnentanwendung hinaus dauerhaft ist.
  7. Das Verfahren von Anspruch 1, worin vor dem Einrichten der zertifizierten Nachrichtensitzung mit der Abonnentanwendung, die Herausgeberanwendung, für die die Abonnentanwendung vorausgehend für einen bestimmten Nachrichtentyp abonniert wurde, eine Nachricht herausgibt, die zu der Abonnentanwendung übertragen wird, ohne dass die Herausgeberanwendung Kenntnis von der Existenz der Abonnentanwendung hat.
  8. Das Verfahren von Anspruch 1 umfasst weiter die Schritte: Übermitteln einer zertifizierten Nachrichten-Abonnementanforderung von der Abonnentanwendung zu der Herausgeberanwendung, besagte zertifizierte Nachrichten-Abonnenmentanforderung enthält einen Abonnentennamen, der die Abonnentanwendung identifiziert, eine Adresse, wo die Abonnentanwendung Nachrichten empfängt, und einen Gegenstandsnamen, der dem bestimmten Nachrichtentyp zugeordnet ist und diesen identifiziert, für den eine zertifizierte Nachrichtensitzung einzurichten ist; Empfangen in der Abonnentanwendung eine Bestätigungsnachricht von der Herausgeberanwendung, besagte Bestätigungsnachricht bestätigt das Einrichten der zertifizierten Nachrichtensitzung; Empfangen in der Abonnentanwendung eine zertifizierte Nachricht von der Herausgeberanwendung in Übereinstimmung mit der zertifizierten Nachrichtensitzung, die zertifizierte Nachricht wird durch eine Folgenummer identifiziert; und in Beantwortung des Empfangs der zertifizierte Nachricht, die durch die Folgenummer identifiziert ist, in der Abonnentanwendung von der Herausgeberanwendung, Aktualisieren des Protokolls in der Abonnentanwendung zur Anzeige des Empfangs der zertifizierten Nachricht, die durch die Folgenummer identifiziert ist, und Übermitteln einer Bestätigungsnachricht zur Herausgeberanwendung, die Bestätigungsnachricht bestätigt den Empfang der zertifizierten Nachricht, die durch die Folgenummer identifiziert ist, in der Abonnentanwendung.
  9. Das verfahren von Anspruch 8 umfasst weiter: nach Übermittlung einer Bestätigungsnachricht zur Herausgeberanwendung, Empfangen einer Bestätigungsanforderung von der Herausgeberanwendung, die Bestätigungsanforderung fordert von der Abonnentanwendung eine Bestätigung des Empfangs der zertifizierten Nachricht, die durch eine bestimmte Folgenummer identifiziert ist; Überprüfen, ob das Protokoll anzeigt, dass eine zertifizierte Nachricht, die die bestimmte Folgenummer aufweist, in der Abonnentanwendung empfangen wurde, und wenn dies der Fall ist, Übermitteln einer zweiten Bestätigungsnachricht zur Herausgeberanwendung, die zweite Bestätigungsnachricht bestätigt den Empfangs der zertifizierten Nachricht, die durch die bestimmte Folgenummer identifiziert ist, in der Abonnentanwendung.
  10. Das Verfahren von Anspruch 8 umfasst weiter: nach Übermittlung einer Bestätigungsnachricht zur Herausgeberanwendung, Empfang einer zweiten zertifizierten Nachricht, die eine Folgenummer aufweist, welche anzeigt, dass vorausgehend eine zertifizierte Nachricht durch die Herausgeberanwendung gesendet wurde, aber von der Abonnentanwendung nicht empfangen wurde; und Übermitteln einer zertifizierten Bestätigungsanforderung zu der Herausgeberanwendung, die zertifizierte Bestätigungsanforderung enthält eine Folgenummer, die einer zertifizierten Nachricht zugeordnet ist, für die das Protokoll anzeigt, dass sie vorausgehend von der Abonnentanwendung empfangen wurde.
  11. Das Verfahren von Anspruch 8, worin das Protokoll ein dateibasiertes Protokoll ist, und die zertifizierte Nachrichtensitzung über die Beendigung und den Neustart der Herausgeberanwendung und/oder der Abonnentanwendung hinaus dauerhaft ist.
  12. Ein computerbasiertes Veröffentlichungs/Abonnier-System, das eine Abonnentanwendung (20), die vorausgehend zum Empfang eines bestimmten Typs von Nachrichten abonniert wird, und eine Herausgeberanwendung (10) zur Zustellung von Nachrichten zu einer Abonnentanwendung (20) aufweist, wobei die Herausgeberanwendung und die Abonnentanwendung Teil eines anonymen Veröffentlichungs/Abonnier-Computersystems sind, dadurch gekennzeichnet, dass die Herausgeberanwendung enthält: einen Prozess zum Empfangen einer zertifizierten Nachrichten-Abonnementanforderung, besagte zertifizierte Nachrichten-Abonnementanforderung enthält einen Abonnementennamen, der die Abonnentanwendung (20) identifiziert, eine Adresse, wo die Abonnentanwendung Nachrichten empfängt, und einen Gegenstandsnamen, der einem bestimmten Nachrichtentyp zugeordnet ist und diesen identifiziert, für den eine zertifizierte Nachrichtensitzung einzurichten ist; ein Prozess zum Einrichten der zertifizierten Nachrichtensitzung mit der Abonnentanwendung (20) in Beantwortung auf den Empfang des zertifizierten Nachrichten-Abonnementanforderung durch Hinzufügung des Abonnentennamens zu einem Nachrichten-Protokoll in der Herausgeberanwendung (10), und Übertragen einer Bestätigungsnachricht zu der Abonnentanwendung, die Bestätigungsnachricht bestätigt das Einrichten der zertifizierten Nachrichtensitzung; und ein zertifizierter Zustellungsprozess zum Versuch einer Zustellung einer Nachricht des bestimmen Nachrichtentyps in Übereinstimmung mit der zertifizierten Nachrichtensitzung durch Zuordnung einer Folgenummer zur zertifizierten Nachricht, Adressieren der zertifizierten Nachricht zur Adresse, wo die Abonnentanwendung (20) Nachrichten empfängt, Übertragen einer zertifizierten Nachricht von der Herausgeberanwendung (10) zu der Abonnentanwendung, Aufzeichnung eines Versuch einer Zustellung der zertifizierten Nachricht in dem Protokoll und Behalten der zertifizierten Nachricht in dem Protokoll wenigstens bis die Herausgeberanwendung eine Bestätigungsnachricht von der Abonnentanwendung empfangen hat, die Bestätigungsnachricht bestätigt den Empfang der zertifizierten Nachricht in der Abonnentanwendung; und in Beantwortung des Empfangs einer Bestätigungsnachricht in der Herausgeberanwendung zur Bestätigung des Empfangs der zertifizierten Nachricht, die durch die zugeordnete Folgenummer in der Abonnentanwendung identifiziert ist, Aktualisieren des Protokolls in der Herausgeberanwendung zur Anzeige, dass die zertifizierte Nachricht empfangen wurde, die durch die zugeordnete Folgenummer in der Abonnentanwendung identifiziert ist.
  13. Das System von Anspruch 12, worin in Beantwortung des Empfangs einer Bestätigungsnachricht in der Herausgeberanwendung zur Bestätigung des Empfangs der zertifizierten Nachricht, die durch die zugeordnete Folgenummer in der Abonnentanwendung identifiziert ist, der zertifizierte Zustellungsprozess ein Löschen der zertifizierten Nachricht, die durch die zugeordnete Folgenummer identifiziert ist, im Protokoll in der Herausgeberanwendung durchführt.
  14. Das System von Anspruch 12, worin in Beantwortung des Empfangs einer Bestätigungsnachricht in der Herausgeberanwendung zur Bestätigung des Empfangs der zertifizierten Nachricht, die durch die zugeordnete Folgenummer in der Abonnentanwendung identifiziert ist, der zertifizierte Zustellungsprozess ein Löschen der zertifizierten Nachricht, die durch die zugeordnete Folgenummer in der Abonnentanwendung identifiziert ist, in dem Protokoll durchführt, wenn das Protokoll anzeigt, dass alle Abonnentanwendungen, zu denen die zertifizierte, durch die zugeordnete Folgenummer identifizierte Nachricht gesendet wurde, den Empfang der zertifizierten, durch die zugeordnete Folgenummer identifizierten Nachricht bestätigt haben.
  15. Das System von Anspruch 12, worin der zertifizierte Zustellungsprozess ein Übertragen einer Bestätigung zur Abonnentanwendung bewirkt, wenn die Herausgeberanwendung keine Bestätigungsnachricht von der Abonnentanwendung innerhalb einer vorgegebenen Zeitspanne nach einem Versuch, die zertifizierte durch die zugeordnete Folgenummer identifizierte Nachricht zuzustellen, empfangen hat, die Bestätigungsanforderung fordert, dass die Abonnentanwendung den Empfang der zertifizierten Nachricht bestätigt, die durch die zugeordnete Folgenummer identifiziert ist.
  16. Das System von Anspruch 12, worin das Protokoll ein dateibasiertes Protokoll ist, und die zertifizierte Nachrichtensitzung über die Beendigung und den Neustart der Herausgeberanwendung oder der Abonnentanwendung hinaus dauerhaft ist.
  17. Das System von Anspruch 12 weiter einen Nachrichtenprozess umfasst zum Herausgeben von Nachrichten mit einem Gegenstandsnamen, der dem Inhalt der Nachrichten zugeordnet ist, die Nachrichten werden zu Abonnentanwendungen übertragen wird, die den Empfang von Nachrichten mit einem bestimmten Gegenstandsnamen abonniert haben, ohne dass die Herausgeberanwendung Kenntnis von der Existenz der Abonnentanwendung hat.
  18. Das System von Anspruch 12, weiter gekennzeichnet dadurch, das die Abonnentanwendung (20) umfasst: einen Prozess zur Übermittlung einer zertifizierten Nachrichten-Abonnementanforderung von der Abonnentanwendung zu der Herausgeberanwendung, besagte zertifizierte Nachrichten-Abonnementanforderung enthält einen Abonnentennamen, der die Abonnentanwendung identifiziert, eine Adresse, wo die Abonnentanwendung Nachrichten empfängt, und einen Gegenstandsnamen, der dem bestimmten Nachrichtentyp zugeordnet ist und diesen identifiziert, für den eine zertifizierte Nachrichtensitzung einzurichten ist; einen Prozess zum Empfang einer Bestätigungsnachricht in der Abonnentanwendung von der Herausgeberanwendung, besagte Bestätigungsnachricht bestätigt das Einrichten der zertifizierten Nachrichtensitzung; und einen zertifizierten Zustellungsprozess zum Empfang einer zertifizierte Nachricht, die in der Abonnentanwendung in Übereinstimmung mit der zertifizierten Nachrichtensitzung von der Herausgeberanwendung empfangen wird und die durch eine Folgenummer identifiziert wird, und der in Beantwortung des Empfangs der zertifizierten Nachricht, die durch die Folgenummer identifiziert ist, von der Herausgeberanwendung, zum Aktualisieren des Protokolls in der Abonnentanwendung für eine Anzeige des Empfangs der zertifizierten Nachricht dient, die durch die Folgenummer identifiziert ist, und der zum Übermitteln einer Bestätigungsnachricht an die Herausgeberanwendung dient, die Bestätigungsnachricht bestätigt den Empfang der zertifizierten Nachricht, die durch die Folgenummer identifiziert ist, in der Abonnentanwendung.
  19. Das System von Anspruch 18, worin nach Übermittlung einer Bestätigungsnachricht zur Herausgeberanwendung, der zertifizierte Nachrichtenprozess eine Bestätigungsanforderung von der Herausgeberanwendung empfängt, die Bestätigungsanforderung fordert in der Abonnentanwendung eine Bestätigungsnachricht für den Empfangs der zertifizierten Nachricht an, die durch die zugeordnete Folgenummer identifiziert ist; worin der zertifizierte Nachrichtenprozess zur Überprüfung dient, ob das Protokoll anzeigt, dass eine zertifizierte Nachricht, die die bestimmte Folgenummer aufweist, in der Abonnentanwendung empfangen wurde, und wenn dies der Fall ist, eine zweite Bestätigungsnachricht zur Herausgeberanwendung übermittelt, die zweite Bestätigungsnachricht bestätigt den Empfangs der zertifizierten Nachricht, die durch die bestimmte Folgenummer identifiziert ist, in der Abonnentanwendung.
  20. Das System von Anspruch 18, worin nach Übermittlung einer Bestätigungsnachricht zur Herausgeberanwendung, der zertifizierte Nachrichtenprozess eine zweite zertifizierten Nachricht empfängt, die eine Folgenummer aufweist, welche anzeigt, dass vorausgehend eine zertifizierte Nachricht durch die Herausgeberanwendung gesendet wurde, aber von der Abonnentanwendung nicht empfangen wurde, und worin der zertifizierte Prozess eine zertifizierten Bestätigungsanforderung an die Herausgeberanwendung übermittelt, die zertifizierte Bestätigungsanforderung enthält eine Folgenummer, die einer zertifizierten Nachricht zugeordnet ist, für die das Protokoll anzeigt, dass sie vorausgehend von der Abonnentanwendung empfangen wurde.
  21. Das System von Anspruch 18, worin das Protokoll ein dateibasiertes Protokoll ist, und die zertifizierte Nachrichtensitzung über die Beendigung und den Neustart der Herausgeberanwendung oder der Abonnentanwendung hinaus dauerhaft ist.
DE69836966T 1997-08-18 1998-08-18 Zustellung und setzen in eine warteschlange von zertifizierten nachrichten in einem mehrpunkt-publikations/abonnement-kommunikationssystem Expired - Lifetime DE69836966T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US5634297P 1997-08-18 1997-08-18
US56342P 1997-08-18
PCT/US1998/017115 WO1999009490A1 (en) 1997-08-18 1998-08-18 Certified message delivery and queuing in multipoint publish/subscribe communications

Publications (2)

Publication Number Publication Date
DE69836966D1 DE69836966D1 (de) 2007-03-15
DE69836966T2 true DE69836966T2 (de) 2007-11-08

Family

ID=22003783

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69836966T Expired - Lifetime DE69836966T2 (de) 1997-08-18 1998-08-18 Zustellung und setzen in eine warteschlange von zertifizierten nachrichten in einem mehrpunkt-publikations/abonnement-kommunikationssystem

Country Status (6)

Country Link
EP (1) EP1008056B1 (de)
JP (1) JP3860966B2 (de)
AU (1) AU9022998A (de)
CA (1) CA2313039C (de)
DE (1) DE69836966T2 (de)
WO (1) WO1999009490A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051118B2 (en) * 1999-12-22 2006-05-23 Tibo Software, Inc. Method and apparatus for anonymous subject-based addressing
US7844494B2 (en) 2001-09-26 2010-11-30 First Data Corporation Electronic acknowledgment of receipt of inventory
US6975833B2 (en) 2002-02-07 2005-12-13 Sap Aktiengesellschaft Structural elements for a collaborative e-learning system
US7237189B2 (en) 2002-02-11 2007-06-26 Sap Aktiengesellschaft Offline e-learning system
US7029280B2 (en) 2002-02-11 2006-04-18 Sap Ag E-learning course editor
US7014467B2 (en) 2002-02-11 2006-03-21 Sap Ag E-learning course structure
US7146616B2 (en) 2002-09-03 2006-12-05 Sap Aktiengesellschaft Content based messaging for e-learning including the extension of a remote procedure call
US7376585B2 (en) 2002-09-04 2008-05-20 Sap Aktiengesellschaft Real-time sales information architecture
US7693952B2 (en) * 2003-03-27 2010-04-06 Microsoft Corporation Availability and scalability in a messaging system in a manner transparent to the application
US7417959B2 (en) 2003-09-29 2008-08-26 Sap Aktiengesellschaft Audio/video-conferencing using content based messaging
US7287066B2 (en) * 2003-10-31 2007-10-23 Sap Aktiengesellschaft Publish-subscribe system having a reliability mechanism
GB2412762B (en) * 2004-04-02 2009-01-28 Symbian Software Ltd Inter process communication in a computing device
US9330190B2 (en) 2006-12-11 2016-05-03 Swift Creek Systems, Llc Method and system for providing data handling information for use by a publish/subscribe client
EP2979173B1 (de) 2013-03-28 2021-01-06 InterDigital CE Patent Holdings Objektlebenszyklusverwaltung in einer publish-subscribe-umgebung

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4815030A (en) * 1986-09-03 1989-03-21 Wang Laboratories, Inc. Multitask subscription data retrieval system
US5003473A (en) * 1988-10-24 1991-03-26 Reuters Limited Trading ticket output system
US5136501A (en) * 1989-05-26 1992-08-04 Reuters Limited Anonymous matching system
US5557798A (en) * 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US5555404A (en) * 1992-03-17 1996-09-10 Telenor As Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
WO1995010805A1 (en) * 1993-10-08 1995-04-20 International Business Machines Corporation Message transmission across a network
IL111154A0 (en) * 1993-10-21 1994-12-29 Martino Ii John A Systems and methods for electronic messaging
WO1997010558A1 (en) * 1995-09-14 1997-03-20 Bell Communications Research, Inc. Method and system for providing continually updated personalized information

Also Published As

Publication number Publication date
CA2313039C (en) 2008-05-20
EP1008056A4 (de) 2004-07-14
JP3860966B2 (ja) 2006-12-20
EP1008056A1 (de) 2000-06-14
CA2313039A1 (en) 1999-02-25
EP1008056B1 (de) 2007-01-24
JP2001516083A (ja) 2001-09-25
AU9022998A (en) 1999-03-08
DE69836966D1 (de) 2007-03-15
WO1999009490A1 (en) 1999-02-25

Similar Documents

Publication Publication Date Title
DE69836966T2 (de) Zustellung und setzen in eine warteschlange von zertifizierten nachrichten in einem mehrpunkt-publikations/abonnement-kommunikationssystem
DE3586634T2 (de) Lokales netzwerk fuer numerisches datenverarbeitungssystem.
DE602004006902T2 (de) Verfahren und System zur Verarbeitung von Mitteilungen von geteilten Ressourcen
US8606859B2 (en) Method and system to communicate messages in a computer network
DE60038705T2 (de) Verfahren und vorrichtung für die aktivitäts-basierte zusammenarbeit eines rechnersystems, ausgestattet mit einem kommunikations-manager
DE112010005499T5 (de) Steuern der Nachrichtenübermittlung beim Publish/Subscribe-Nachrichtenaustausch
AU2005280003B2 (en) System and method for managing information and collaborating
DE3852378T2 (de) Mechanismus und Verfahren zur entgegengesetzten Flussteuerung.
DE68927508T2 (de) Zeitweilige Zustandsbewahrung für einen verteilten Dateidienst
US7840611B2 (en) High availability for event forwarding
DE69633103T2 (de) Universeller Rufnummernauskunftsdienst
DE69731318T2 (de) Herstellen von kommunikationsverbindungen in einem computernetzwerk
DE602004001312T2 (de) Publikations-Abonnementsystem
DE69836778T2 (de) Vorrichtung und Verfahren zur Fernpufferspeicherzuordnung und Verwaltung für Nachrichtenübertragung zwischen Netzknoten
DE60125988T2 (de) Verfahren und vorrichtung zur asynchronen berichtübertragung
US8468194B2 (en) Expertise referrals using a real-time communication system
DE3853337T2 (de) Mechanismus und Verfahren zur Fernverwaltung von Speichern.
EP1759502A1 (de) Verfahren und vorrichtung zur überwachung des verkehrs von elektronischen nachrichten
US7516195B2 (en) Method of handling a web service call
DE69824974T2 (de) Benachrichtigungssystem in einer telekommunikationssteuereinrichtung
DE3851507T2 (de) Flusssteuerungssystem für Bus.
DE10125409A1 (de) Eine prozessorgesteuerte interaktive Datenanzeigeschnittstelle zur Überwachung ausgegebener Nachrichten in einem dynamischen Kommunikationssystem mit Belastungsausgleich
WO2005025157A1 (de) Bereitstellung einer einem benutzer eines kommunikationsdienstes zugeordneten anwesenheitsinformation
EP1843539B1 (de) Automatische Verifizierung von Messenger-Kontaktdaten
WO2005025156A1 (de) Aktualisierung einer einem benutzer eines kommunikationsdienstes zugeordneten anwesenheitsinformation

Legal Events

Date Code Title Description
8364 No opposition during term of opposition