DE602004001312T2 - Publikations-Abonnementsystem - Google Patents

Publikations-Abonnementsystem Download PDF

Info

Publication number
DE602004001312T2
DE602004001312T2 DE602004001312T DE602004001312T DE602004001312T2 DE 602004001312 T2 DE602004001312 T2 DE 602004001312T2 DE 602004001312 T DE602004001312 T DE 602004001312T DE 602004001312 T DE602004001312 T DE 602004001312T DE 602004001312 T2 DE602004001312 T2 DE 602004001312T2
Authority
DE
Germany
Prior art keywords
message
consumer
cbm
subscription
producer
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.)
Active
Application number
DE602004001312T
Other languages
English (en)
Other versions
DE602004001312D1 (de
Inventor
Rainer Ruggaber
Elmar Dorner
Alexander Schmid
Kim Elms
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.)
SAP SE
Original Assignee
SAP SE
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 SAP SE filed Critical SAP SE
Publication of DE602004001312D1 publication Critical patent/DE602004001312D1/de
Application granted granted Critical
Publication of DE602004001312T2 publication Critical patent/DE602004001312T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1859Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

  • TECHNISCHES GEBIET
  • Die folgende Beschreibung betrifft Netzwerkkommunikationen, und insbesondere Publikations-Abonnementsysteme.
  • HINTERGRUND
  • Ein Publikations-Abonnementsystem enthält Informationsproduzenten bzw. -hersteller und Informationskonsumenten. Informationsproduzenten publizieren Ereignisse an das System. Informationskonsumenten abonnieren spezielle Kategorien von Ereignissen innerhalb des Systems. Das Publikations-Abonnementsystem stellt eine Lieferung von publizierten Ereignissen zu jenen Informationskonsumenten bereit, die das Ereignis abonniert haben. Im Publikations-Abonnementsystem weiß ein Produzent der Nachricht nicht, wo die Nachricht empfangen bzw. erhalten wird, und ein Konsument der Nachricht weiß nicht, von wo die Nachricht gesendet worden ist.
  • Eine Art eines Publikations-Abonnementsystems ist auf einem Gegenstand bzw. Subjekt basierend. In dem auf einem Gegenstand basierenden Publikations-Abonnementsystem gehört jede Nachricht zu einem eines festgelegten Satzes von Gegenständen bzw. Themen. Produzenten markieren jede Nachricht mit einem Gegenstand bzw. Thema und die Konsumenten abonnieren Nachrichten, die einen besonderen Gegenstand aufweisen.
  • Ein anderes Publikations-Abonnementsystem ist ein auf Inhalt basierendes Nachrichten (CBM) System. Die CBM Systeme unterstützen eine Anzahl von Informationsräumen, wo Abonnenten eine "Frage" gegen den Inhalt von publizierten Nachrichten ausdrücken können.
  • Publikations-Abonnementsysteme sind unzuverlässig, weil nicht bekannt ist, ob eine Nachricht tatsächlich durch einen Konsumenten erhalten bzw. empfangen wurde oder nicht. Wenn die Nachricht erneut gesendet wird, weil einige Abonnenten die Nachricht nicht empfangen bzw. erhalten haben, werden die verbleibenden Abonnenten eine doppelte Nachricht erhalten.
  • WO 99/09490 A offenbart ein Verfahren und ein System für eine bestätigte Lieferung einer ausgehenden Nachricht, wobei dort ein bestätigtes Lieferungszeithauptbuch etabliert bzw. eingerichtet wird, die ausgehende Nachricht mit einer Markierung markiert wird und die markierte ausgehende Nachricht dann an die Abonnenten gesandt wird und durch sie empfangen bzw. erhalten wird.
  • WO 02/073442 A offenbart einen Service bzw. eine Dienstleistung, um Kommunikationsprotokolle zum Austauschen von Information in einer identitätszentrischen Datenzugangsarchitektur zu warten, wobei das Protokoll auf Rollenbasis ist und aktualisierte Information zwischen dem Verleger bzw. Herausgeber und dem Abonnenten über einander zur Verfügung stellt.
  • Es ist ein Ziel bzw. Gegenstand der vorliegenden Erfindung, ein zuverlässiges Publikations-Abonnementsystem bereitzustellen. Das Ziel wird durch das Publikations-Abonnementsystem gemäß Anspruch 1 gelöst. Bevorzugte Ausführungsformen sind Gegenstand der abhängigen Unteransprüche.
  • Gemäß einem Aspekt der Erfindung enthält ein Publikations-Abonnementsystem einen Produzenten bzw. Hersteller, der konfiguriert ist, um eine Nachricht zu publizieren und um eine Kenntnisnahme zu abonnieren, die anzeigt, daß die Nachricht empfangen wurde. Das System enthält auch einen Konsumenten, der konfiguriert ist, um die Nachricht zu abonnieren und die Kenntnisnahme zu publizieren. Das System enthält weiterhin ein Netzwerk, das konfiguriert ist, um ein Nachrichten-Abonnement und ein Kenntnisnahme-Abonnement zu registrieren, um das Nachrichten-Abonnement und das Kenntnisnahme-Abonnement zu bearbeiten, um die Nachricht an den Konsumenten basierend auf dem Nachrichten-Abonnement weiterzuleiten und um die Kenntnisnahme zu dem Produzenten basierend auf dem Kenntnisnahme-Abonnement weiterzuleiten, wobei der Produzent und der Konsument jeweils einen Zuverlässigkeitsmechanismus umfassen, der adaptiert ist, um zusätzliche Felder hinzuzufügen, und wobei die Kenntnisnahme für jede Nachricht vor der Entfernung der zusätzlichen Felder publiziert bzw. veröffentlicht wird.
  • Dieser Aspekt kann eines oder mehrere der folgenden Merkmale enthalten. Der Produzent kann einen Zeitgeber enthalten bzw. aufnehmen und der Produzent kann die Nachricht erneut publizieren, wenn eine Zeitdauer abläuft, bevor die Kenntnisnahme bzw. Bestätigung empfangen bzw. erhalten wird. Der Konsument kann einen Zuverlässigkeitsmechanismus enthalten bzw. aufnehmen, um eine Kenntnisnahme für die Nachricht zu publizieren. Der Zuverlässigkeitsmechanismus kann doppelte Nachrichten entfernen. Das Netzwerk kann einen auf Inhalt basierenden Nachrichten- (CBM) Router enthalten, um die Nachricht und die Kenntnisnahme zu routen bzw. weiterzuleiten. Das System kann ein generisches Adressierschema beim Kenntnisnehmen einer Nachricht verwenden. Das generische Adressierschema kann eine einzigartige Identität an den Konsumenten und den Produzenten zur Verfügung stellen.
  • Ein Zuverlässigkeitsanwendungsprogramm-Interface (API) für eine zuverlässige, auf Inhalt basierende Nachrichtenübermittlung ist nicht durch die Patentansprüche abgedeckt. Das API enthält Instruktionen, um einen Prozessor zu veranlassen, eine Nachricht von einer Produzentenanwendung zu empfangen, ein Abonnement für eine Kenntnisnahme zu der Nachricht zu registrieren, die Nachricht durch ein Hinzufügen von Feldern zu der Nachricht zu modifizieren und die Nachricht an ein Interface bzw. eine Schnittstelle weiterzuleiten, um die Nachricht an einem auf Inhalt basierenden Nachrichten- (CBM) Netzwerk zu publizieren. Die Instruktionen veranlassen auch einen Prozessor, die Kenntnisnahme vom Interface zu erhalten.
  • Dieser Aspekt, der nicht durch den Satz von Patentansprüchen abgedeckt ist, enthält eines oder mehrere der folgenden Merkmale. Das API kann Instruktionen enthalten, um einen Prozessor zu veranlassen, einen Zeitgeber zu implementieren und die Nachricht erneut zu publizieren, wenn eine Zeitperiode abläuft, bevor die Kenntnisnahme empfangen bzw. erhalten wird. Die Felder können ein Identifikationsfeld und ein Nachrichtentypfeld enthalten. Die Felder können ein Empfängerfeld enthalten, das einen oder mehrere Empfänger der Nachricht identifiziert. Die Felder können ein Absenderfeld enthalten, das einen Absender der Nachricht identifiziert.
  • In einer anderen Implementierung, die nicht durch den Satz von Patentansprüchen abgedeckt ist, wird ein Zuverlässig keitsanwendungsprogramm-Interface (API) zur zuverlässigen, auf Inhalt basierenden Nachrichtenübermittlung beschrieben. Das API enthält Instruktionen, um einen Prozessor zu veranlassen, eine Nachricht von einem Interface zu empfangen, die Nachricht durch Entfernen von Feldern aus der Nachricht zu modifizieren, eine Kenntnisnahme der Nachricht zu publizieren, und die Nachricht zu einer Konsumentenanwendung weiterzuleiten.
  • Dieser Aspekt, der nicht durch den Satz von Patentansprüchen abgedeckt ist, kann eines oder mehrere der folgenden Merkmale enthalten. Das API kann Instruktionen enthalten, um einen Prozessor zu veranlassen zu bestimmen, wenn die Nachricht vorher empfangen worden ist, und die Nachricht auszufiltern, wenn die Nachricht vorher gesandt worden ist. Die Felder können ein Identifikationsfeld und ein Nachrichtentypfeld enthalten. Die Felder können ein Empfängerfeld enthalten, das einen oder mehrere Empfänger der Nachricht identifiziert. Die Felder können ein Absenderfeld enthalten, das einen Absender der Nachricht identifiziert.
  • Einer oder mehrere der obigen Aspekte weisen einen oder mehrere der folgenden Vorteile auf. Das System weist den Vorteil auf, ein zuverlässiges Publikations-Abonnementsystem zu sein, das sicherstellt, daß Nachrichten empfangen werden. Wenn die Nachrichten nicht empfangen werden, weist das System die Fähigkeit auf, die Nachricht nur an jene Empfänger erneut zu senden, die die Nachricht nicht empfangen haben. Das System kann mit anderen Systemen verwendet werden, die nicht einen Zuverlässigkeitsmechanismus aufweisen.
  • BESCHREIBUNG VON ZEICHNUNGEN
  • 1 ist ein Blockdiagramm eines exemplarischen bzw. beispielhaften Kommunikationssystem.
  • 2 ist ein Blockdiagramm eines anderen beispielhaften Kommunikationssystems.
  • 3 ist ein Prozeß für ein Liefern einer Nachricht.
  • 4A ist ein Beispiel einer Anforderungsnachricht.
  • 4B ist ein Beispiel einer Kenntnisnahmenachricht.
  • 5 ist ein Diagramm von Anwendungsschicht-Interfaces.
  • 6 ist eine beispielhafte Aufrufsequenz.
  • 7 ist ein Graph für einen Durchsatz von Unicast-Nachrichten unter Verwendung eines zuverlässigen auf Inhalt basierenden Benachrichtigungssystems.
  • 8 ist ein Blockdiagramm eines Computersystems, an welchem der Prozeß von 3 implementiert werden kann.
  • Gleiche Bezugssysteme in den verschiedenen Zeichnungen zeigen gleiche Elemente an.
  • DETAILLIERTE BESCHREIBUNG
  • Verschiedene Zustände in einem Netzwerk eines auf Inhalt basierenden Nachrichten- bzw. Benachrichtigungssystems (CBM) können zu einem Nachrichtenverlust oder einer Unterbrechung in Kommunikationen führen. Beispielsweise kann das CBM Netzwerk Nachrichten verlieren oder unfähig sein, Nachrichten bzw. Botschaften zu senden, wenn die Nachrichten nicht in einer zeitgerechten Art und Weise durch einen Nachrichtenempfänger be- bzw. verarbeitet werden. In ähnlicher Weise können Nachrichten auch verloren werden aufgrund eines Netzwerkfehlers bzw. -versagens oder anderer Netzwerkzustände. Außerdem werden Nachrichten in einem typi schen CBM Netzwerk nicht adressiert und an einen bestimmten Empfänger gesandt, wodurch ein Nachrichtenempfänger nicht die Quelle der empfangenen Nachrichten kennt bzw. weiß. Als ein Ergebnis sind Anwendungen in einem typischen CBM Netzwerk nicht imstande zu bestimmen, ob eine Nachricht erfolgreich geliefert oder empfangen wurde.
  • Viele Anwendungen erfordern zuverlässige End-zu-End-Kommunikationen, um kontinuierlich und richtig bzw. ordnungsgemäß zu arbeiten. Beispielsweise braucht ein Nachrichtenabsender eine Zuverlässigkeit beim Senden von Nachrichten an Nachrichtenempfänger, und Nachrichtenempfänger brauchen eine Zuverlässigkeit beim Empfangen von abgesendeten Nachrichten. Zuverlässiges CBM wie es im Detail unten beschrieben wird, stellt zuverlässige End-zu-End-Kommunikationen bereit, während das Publikationsabonnement-Paradigma und viele der Nutzen bzw. Vorteile bewahrt werden, die mit einem CBM System assoziiert bzw. verbunden sind.
  • Systemüberblick
  • Bezugnehmend auf 1 kann ein Kommunikationssystem 100 zwei oder mehr Client-Vorrichtungen 110 enthalten (beispielsweise eine Client-Vorrichtung 110a und eine Client-Vorrichtung 110b) und ein CBM Netzwerk 120, welches wenigstens einen CBM Router 125 enthält. Die Client-Vorrichtungen 110a und 110b tauschen Daten mit dem CBM Netzwerk 120 unter Verwendung von Kommunikationspfaden 140 aus.
  • Die Client-Vorrichtungen 110a und 110b können durch einen oder mehrere Benutzer betätigt werden, um zuzugreifen auf und Information mit dem CBM Netzwerk 120 auszutauschen. Ein Beispiel einer Client-Vorrichtung 110a und 110b ist ein Computer für allgemeine Zwecke, der fähig ist, auf Instruktionen in einer definierten Art und Weise zu antworten und sie auszuführen.
  • 1 zeigt eine Client-Vorrichtung 110a als einen Produzenten und eine Client-Vorrichtung 110b als ein Konsument; jedoch kann eine Client-Vorrichtung 110a oder 110b als ein Informationsproduzent, ein Informationskonsument oder fungieren.
  • Irgendeine Nachricht, die an das CBM Netzwerk 120 publiziert wird, wird durch den CBM Router 125 gegen irgendwelche gegenwärtige registrierte Abonnements evaluiert. Wenn eine hereinkommende Nachricht einem gegebenen bzw. bestimmten Abonnement entspricht, wird die Nachricht an den assoziierten bzw. verbundenen Konsumenten 110b durch das CBM Netzwerk 120 weitergeleitet.
  • Der Produzent 110a und Konsument 110b sind in bezug aufeinander anonym. Beispielsweise kann eine Nachricht wie gefolgt geroutet bzw. weitergeleitet werden. Der Konsument 110b legt ein Abonnement vor, das ausdrückt, welcher Typ von Nachrichteninhalt oder Information gewünscht wird. Der Konsument 110b kann Abonnements dem CBM Netzwerk 120 zu jeder Zeit vorlegen. Der Produzent 110a publiziert Nachrichten an das CBM Netzwerk 120, ohne irgendeine Adresse oder Bestimmung für die Information bereitzustellen. Der CBM Router 125 vergleicht irgendeine publizierte Nachricht mit registrierten Konsumentenabonnements, um die Konsumenten zu bestimmen, die die publizierte bzw. veröffentlichte Nachricht empfangen sollten. Für den Routing- bzw. Weiterleitungsprozeß werden alle Elemente der publizierten Nachricht in Betracht gezogen, wenn die publizierte Nachricht mit Konsumentenabonnements verglichen wird. Die Elemente sind beispielsweise Namenswertpaare und jede Nachricht enthält mehrere Namen-Wert-Paare. Der CBM Router 125 leitet dann die Nachricht an irgendeinen Konsumenten 110b weiter, den der CBM Router 125 bestimmt, daß er für die Information in der Nachricht abonniert ist.
  • Eine Zuverlässigkeitskomponente, beispielsweise eine Zuverlässigkeitsschicht (R-Schicht), welche ein assoziiertes bzw. verbundenes Protokoll enthält, das durch die R-Schicht ausgeführt wird, ist an jeder Client-Vorrichtung installiert, um eine zuverlässige End-zu-End-Kommunikation innerhalb des Kommunikationssystems 100 zur Verfügung zu stellen.
  • Die R-Schicht stellt eine Zuverlässigkeit sicher, indem ein Kenntnisnahmemechanismus bereitgestellt wird. Der Kenntnisnahmemechanismus generiert bzw. erzeugt eine Kenntnisnahme bzw. Bestätigung für publizierte Nachrichten, wenn zuverlässige Kommunikationen durch einen Benutzer oder durch eine Anwendung ausgewählt werden. Wenn eine Kenntnisnahme nicht innerhalb einer Auszeitperiode ankommt bzw. einlangt, wird die Nachricht erneut gesendet.
  • Der Zuverlässigkeitsmechanismus ist eine Ausdehnung bzw. Erstreckung auf CBM. Die R-Schicht ermöglicht entweder dem Produzenten 110a oder Konsumenten 110b, eine zuverlässige Nachrichtlieferung zu jeder Zeit zu verlangen und bereitzustellen. Wann immer zuverlässige Kommunikationen gewünscht werden, können die Produzenten- oder Konsumentenanwendungen den Zuverlässigkeitsmechanismus aktivieren, um eine zuverlässige Kommunikation sicherzustellen (beispielsweise durch Konfiguration, automatisch, oder durch ein Benutzerinter face). Jedoch wird das Entkoppeln des Produzenten und Konsumenten aufrecht erhalten, weil der Produzent nicht die Konsumenten einer Nachricht kennt.
  • Zuverlässigkeitsmechanismus
  • Um die Zuverlässigkeit zu erhöhen, stellt die R-Schicht eine Lösung für verschiedene Probleme bereit, die mit CBM Systemen assoziiert bzw. verbunden sind, beispielsweise Nachrichtenverlust und versäumte Auszeiten. Ein Nachrichtenverlust tritt auf, wenn eine Nachricht an einen Empfänger/Konsumenten aus verschiedenen Gründen nicht geliefert wird, wie beispielsweise Netzwerkkommunikationsproblemen.
  • Ein Nachrichtenverlust wird durch einen Bestätigungs- bzw. Kenntnisnahmemechanismus gelöst. Wenn zuverlässige Kommunikationen gewünscht werden, kann ein Zeitgeber mit einer publizierten Nachricht assoziiert bzw. verbunden sein bzw. werden. Eine Nachrichten-Auszeit (beispielsweise Ablauf des Zeitgebers) zwingt bzw. nötigt einen Produzenten 110a, eine Nachricht erneut zu senden. Deshalb empfängt, wenn eine Nachrichtenlieferung nicht innerhalb einer gegebenen Zeit gemacht bzw. durchgeführt wird, die produzierende Anwendung eine Fehlermeldung und die Nachricht wird erneut gesendet. Die Lieferung einer Nachricht wird als zuverlässig angesehen, wenn die produzierende Anwendung nicht einen Fehler innerhalb einer gegebenen bzw. bestimmten Zeit empfängt bzw. erhält, nachdem die Nachricht der R-Schicht unter Verwendung des Sendeverfahrens übergeben ist. Als eine Folge wird der Status einer Nachrichtenlieferung passiv durch Überwachen hinsichtlich einer Fehleranzeige bestimmt bzw. festgestellt.
  • Wenn Nachrichten erneut gesendet werden, kann jedoch der Konsument 110b die gleiche Nachricht mehr als einmal erhalten. Wenn eine Nachricht zu früh aus der Zeitdauer fällt, können beispielsweise sowohl die erneut gesendete als auch die ursprüngliche bzw. Originalnachricht durch einen Konsumenten empfangen werden. Deshalb werden doppelte Nachrichten durch ein Nachrichtenidentifikationsmerkmal identifiziert und ausgefiltert.
  • Architektur
  • Das Zuverlässigkeitsprotokoll wird durch die Client-Vorrichtungen 110 bereitgestellt. Als eine Folge sind keine Änderungen am CBM Netzwerk 120 erforderlich, um ein zuverlässiges CBM System zu implementieren.
  • 2 und 3 illustrieren eine zuverlässige Lieferung einer Nachricht. Der Produzent 110a enthält eine Produzentenanwendung 210a, eine R-Schicht 215 und eine CBM Bibliothek 220a. Der Konsument 110b enthält eine Konsumentenanwendung 210b, eine R-Schicht 225 und CBM Bibliothek 220b. Die CBM Bibliothek 220a ist über ein Interface mit dem CBM Netzwerk 120 verbunden. Beispielsweise kann ein Produzent 110a unter Verwendung der CBM Bibliothek 220a Information am CBM Netzwerk 120 publizieren.
  • Um zuverlässige Benachrichtigung für eine Anwendung 210b zur Verfügung zu stellen, stellen die R-Schicht 215 und R-Schicht 225 jeweils ein Interface zwischen der Anwendung und der CBM Client-Bibliothek 220b bereit. Jede R-Schicht 215 und 225 verwendet ihre jeweilige CBM Client-Bibliothek 220a und 220b für eine Kommunikation mit dem CBM Netzwerk 120.
  • Die Anwendungen 210a und 210b sind in ihrer jeweiligen CBM Bibliothek 220a und 220b gespeichert. Als ein Resultat kann jede Anwendung 210a und 220b zuverlässig (unter Verwendung des R-Schicht-Interfaces in Verbindung mit der CBM Bibliothek) kommunizieren. Die Anwendungen 210a und 210b können auch direkt und unzuverlässig mit der CBM Bibliothek 220a bzw. 220b eine Schnittstelle bilden, indem jeweils die R-Schichten 215 und 225 umgangen werden.
  • Die R-Schichten 215 und 225 verwenden jeweils ihre jeweilige CBM Client-Bibliothek 220a und 220b als einen unzuverlässigen Nachrichten- bzw. Benachrichtigungsservice. In der folgenden Beschreibung wird die Funktionalität der CBM Client-Bibliothek 220 derartig umgangen, der jede R-Schicht 215 und 225 direkt mit dem CBM Router 125 kommuniziert.
  • Bezugnehmend auf 3 ist ein Prozeß 300 ein exemplarischer bzw. beispielhafter Prozeß zum Liefern einer zuverlässigen Nachricht unter Verwendung des Kommunikationssystems 100.
  • Der Prozeß 300 stellt Abonnements an das CBM Netzwerk 120 vom Konsumenten 110b (302) bereit. Das Abonnement drückt aus, welcher Typ von Nachrichteninhalt für die Konsumentenanwendung 210b von Interesse ist. Wenn eine zuverlässige Kommunikation gewünscht wird, erweitert der Prozeß 300 das Abonnement (304). Beispielsweise wird das Abonnement durch die R-Schicht 225 erweitert, ohne das ursprüngliche Abonnement einzuschränken. Der Prozeß 300 legt (306) das Abonnement unter Verwendung der R-Schicht 225 in Namen bzw. Auftrag der Konsumentenanwendung 210b dem CBM Netzwerk 120 unter Verwendung der CBM Bibliothek 220b vor.
  • Der Prozeß 300 legt ein Abonnement für Kenntnisnahmen bzw. Bestätigungen dem CBM Netzwerk 120 vor, indem die R-Schicht 215 durch ihre CBM Bibliothek 220a (308) verwendet wird. Die R-Schicht 215 des Produzenten abonniert Kenntnisnahmen für Nachrichten, die durch die Produzentenanwendung 210a publiziert werden.
  • Wenn der Produzent 110a eine Nachricht publiziert, für welche eine Zuverlässigkeit gewünscht wird, stellt der Prozeß 300 die Nachricht der R-Schicht 215 zur Verfügung (310). Der Prozeß 300 fügt ein oder mehrere Feld er) hinzu, indem der Zuverlässigkeitsmechanismus der R-Schicht 215 verwendet wird, wie dies durch die R-Schicht verlangt wird, um die Nachricht (312) zu modifizieren. Die Felder werden durch ein Adressierschema des Kenntnisnahmemechanismus und eine Nachrichtenidentifikation verwendet, die erlaubt, daß spezifische Nachrichten im Kommunikationsnetzwerk 100 identifiziert werden. Die modifizierte Nachricht entspricht CBM Standards (d.h. jedes Feld innerhalb der Nachricht kann hinsichtlich eines Routens bzw. Weiterleitens der Nachricht geprüft werden).
  • Der Prozeß 300 stellt die modifizierte Nachricht der CBM Bibliothek 220a unter Verwendung der R-Schicht 215 zur Verfügung (314). Der Prozeß 300 sendet die Nachricht von der CBM Bibliothek 220a an den CBM Router 125 durch den Kommunikationspfad 140 (316). Der Prozeß 300 legt ein Abonnement von der Produzenten R-Schicht 215 dem CBM Router 125 vor, um hinsichtlich Kenntnisnahmenachrichten in Antwort auf die publizierten Nachrichten zu registrieren, für welche Zuverlässigkeit gewünscht wird (318).
  • Der Prozeß 300 vergleicht die publizierte Nachricht mit allen Konsumentenabonnements, um die Konsumenten der Nachricht (320) zu bestimmen. Beispielsweise wird der Vergleich im CBM Router 125 durchgeführt. Der Prozeß 300 leitet die publizierte Nachricht an die Client-Vorrichtungen 110 gemäß den Abonnements weiter, die durch den CBM Router 125 (322) bestimmt werden.
  • Der Prozeß 300 empfängt Nachrichten an der Konsumenten R-Schicht über die CBM Bibliothek 220b, an welche die Konsumentenanwendung 210b abboniert ist (324). Der Prozeß 300 publiziert eine Kenntnisnahmenachricht für jede von der Konsumenten R-Schicht 225 erhaltene Nachricht (326). Der Prozeß 300 entfernt die hinzugefügten Zuverlässigkeitsfelder unter Verwendung der Konsumenten R-Schicht 225 (328). Der Prozeß 300 leitet die ursprüngliche bzw. Originalnachricht (d.h. die nicht-modifizierte Nachricht) an die Konsumentenanwendung (330) weiter.
  • Der Prozeß 300 sendet die publizierte Kenntnisnahmenachricht an den CBM Router 125 (332). Der Prozeß 300 bestimmt die R-Schicht (die mit einem Produzenten assoziiert bzw. verbunden ist), die die Kenntnisnahmenachricht abonniert (334). Die Bestimmung wird beispielsweise durch den CBM Router 125 durchgeführt. Der Prozeß 300 sendet die Kenntnisnahmenachricht vom CBM Router 125 an die entsprechende Produzenten R-Schicht 215 (d.h., die assoziierte Produzentenanwendung), um die zuverlässige Lieferung der Nachricht (336) sicherzustellen.
  • Die Produzenten R-Schicht 215 implementiert einen Kenntnisnahmeempfangszeitgeber. Wenn die Kenntnisnahmenachricht nicht empfangen wird, läuft eine Auszeitperiode ab und die R-Schicht 215 kann erneut die Nachricht senden, um eine zuverlässige Lieferung der Nachricht sicherzustellen.
  • Protokollfelder und Abonnements
  • Um das Protokoll auszuführen, das durch die R-Schicht verwendet wird, werden Nachrichten mit zusätzlicher Information ergänzt und Abonnements werden hinzugefügt, um sicherzustellen, daß die verlangten Nachrichten empfangen bzw. erhalten werden. Neue Namen-Wert-Paare sind erforderlich, um imstande zu sein, verlangte Nachrichten unter Verwendung von Abonnements zu beschreiben bzw. zu bezeichnen. In der folgenden Beschreibung werden die hinzugefügten Namen-Wert-Paare bereitgestellt, bevor die Abonnements präsentiert werden.
  • Bezugnehmend auf 4A und 4B beinhaltet eine Anforderungsnachricht 410 und eine Kenntnisnahmenachricht 430 jeweils ein R-Konsumenten-Feld 412, ein R-Produzenten-Feld 414, ein R-MID Feld 416 und ein R-Typ-Feld 418.
  • Das R-Konsumenten-Feld 412 identifiziert den einen oder mehrere Empfänger, von dem der Absender der Nachricht eine Bestätigung bzw. Kenntnisnahme erwartet. Mehrere Empfängernamen werden durch ein "|"-Symbol getrennt. Dies ermöglicht die einzigartige Identifikation von Empfängern in der Datenfolge bzw. dem String. Das "|"-Symbol ist reserviert und kann nicht in einer Empfängeridentifikation verwendet werden.
  • Das R-Produzenten-Feld 414 enthält die Identifikation des Absenders der zuverlässigen Nachricht. Es wird kein Tren nungssymbol benötigt, da es nur einen Absender für eine Nachricht geben kann.
  • Das R-MID Feld 416 ist ein Nachrichtenidentifikationsfeld. Das R-MID Feld 416 enthält eine Sequenznummer bzw. -zahl, die einzigartig eine Nachricht identifiziert, die durch einen bestimmten Absender gesendet wurde. Der Empfänger einer zuverlässig gesandten Nachricht speichert die R-MID-Absenderpaare für alle Nachrichten, die er empfangen hat. Wenn eine Nachricht mit einem R-MID-Absenderpaar empfangen wird, das bereits in der Liste ist, dann wird die Nachricht als ein Duplikat betrachtet und verworfen.
  • Das R-Typ-Feld 416 identifiziert eine Nachricht, eine Anforderung oder eine Kenntnisnahme zu sein. Ein Wert von "ACK" zeigt eine Anfragenachricht an und ein Wert von "REQ" zeigt eine Anfragennachricht an.
  • Die spezifizierten Namen-Wert-Paare werden durch jede R-Schicht 215 und 225 für den Absender und den Empfänger der Nachrichten benötigt, um imstande bzw. fähig zu sein, die verlangten Nachrichten zu spezifizieren.
  • Der Produzent 110a verwendet das Abonnement bzw. die Unterschrift: "(R–Produzent = 'ProduzentX') && R-Typ = 'ACK'''um alle Kenntnisnahmen von Nachrichten zu empfangen, die durch den Produzenten 110a gesendet wurden. Der Produzent 110a verlangt, daß das R-Produzenten-Feld 414 seine Identifikation enthält und daß die Art der Nachricht, die in dem R-Typ-Feld 418 enthalten ist, auf "ACK" eingestellt ist.
  • Der Konsument 110b verwendet das Abonnement: "(Anwendungsabonnement) && enthält (R-Konsument,'|KonsumentX|') && R-Typ = 'REQ''')um alle Nachrichten zu spezifizieren, die er zu empfangen wünscht. Der Empfänger einer zuverlässig abgesandten Nachricht verlangt, daß Nachrichten, um das ursprüngliche Abonnement der empfangenden Anwendung zu erfüllen, um den Nachrichtentyp (R-Typ) 418 zu haben, "REQ" tief, und das R-Konsumenten-Feld 412 zu haben, das die Identifikation des Empfängers enthält.
  • Generisches Adressierschema
  • Das generische Adressierschema ist eine Erweiterung des traditionellen Gebrauchs von Adressen identifizierenden Kommunikationsendpunkten. Ein Adressieren identifiziert Komponenten, die Kenntnisnahmenachrichten (ACKs) bereitstellen. In den R-Schichten 215 und 225 ist eine gegenseitige Einigkeit bzw. Übereinstimmung, die einen Kontext zwischen lose gekoppelten Absendern und Empfängern erzeugt. Die R-Schichten 215 und 225 definieren nicht die Struktur der Adressen. Adressen können durch Anwendungen unter Verwendung von Adressierschemen bereitgestellt werden, die bereits existieren.
  • Um Zuverlässigkeit sicherzustellen, bestimmt die Produzenten-R-Schicht 215 jede Konsumenten-R-Schicht 225, von welcher eine Kenntnisnahme erwartet wird. Ebenso muß die Konsumenten-R-Schicht 225 bestimmen, für welche Nachrichten eine Kenntnisnahme abzusenden ist. Um für diese Bestimmun gen zu sorgen, wird ein generisches Adressierschema eingeführt, um die Kommunikationsendpunkte zu identifizieren. Das Adressierschema stattet jeden Client bzw. Klienten oder jede Anwendung mit einer einzigartigen Identität aus. Das Adressierschema ist generisch; deshalb ist keine Aufzeichnung von vorhandenen bzw. bestehenden Adreßformaten erforderlich und existierende Adressierschemen können direkt verwendet werden.
  • Außerdem wird das Adressierschema in den R-Schichten 215 und 225 implementiert, um den Kenntnisnahmemechanismus zu realisieren bzw. zu verwirklichen, und ist unabhängig von den Produzenten- und Konsumentenanwendungen 210a und 210b. Die Produzenten- und Konsumentenanwendungen 210a und 210b erfordern kein Interface oder spezielle Instruktionen bzw. Anweisungen, wenn das Adressierschema in den R-Schichten 215 und 225 implementiert wird.
  • Das generische Adressierschema ist ein Datensatz bzw. String, der die Adresse enthalten kann, die durch die Anwendung ausgewählt ist, beispielsweise eine Zahl, eine alphanumerische Zahl, eine Internetadresse usw.
  • Anwendungsprogramm-Interface
  • Jede R-Schicht 215 und 225 besitzt ein Anwendungsprogramm-Interface (API), welches dem API ähnlich ist, das durch die zugrundeliegende CBM Bibliothekschicht 220a und 220b bereitgestellt wird, wodurch eine transparente Integration ihrer jeweiligen R-Schicht 215 und 225 in das Kommunikationssystem 100 erlaubt wird. Als eine Folge sind Integrationen von existierenden Anwendungen mit minimaler Anstrengung möglich. Die Flexibilität des Adressierschemas der R- Schichten 215 und 225 erlaubt die Verwendung von existierenden Anwendungsadressen, die verwendet werden, um die R-Schichten-Fälle bzw. -Instanzen zu identifizieren.
  • Bezugnehmend auf 5 enthält der Produzent 110a einen R-Schicht-Servicezugriffspunkt (R-SAP) 510a und einen CBM-SAP 520a und der Konsument 110b enthält einen R-SAP 510b und einen CBM-SAP 520b.
  • Die R-SAPs 510a und 510b sind zwischen ihrer jeweiligen Anwendungsschicht 210a und 210b und ihrer jeweiligen R-Schicht 215 und 225 positioniert. An der Produzentenanwendung 210a publiziert ein Befehl r_notify () eine Nachricht und spezifiziert die empfangenden R-Konsumenten und der Befehl r_error() stellt eine Fehleranzeige bereit, wenn die Nachricht nicht innerhalb einer bestimmten Zeitdauer gesendet werden kann. An der Konsumentenanwendung 210b stellt der Befehl r_arrive() ein Nachrichtenankunftsereignis an die Konsumentenanwendung bereit.
  • Die CBM-SAPs 520a und 520b stellen ein Interface zwischen der R-Schicht 215 und 225 und der CBM Schicht bereit. Bei dem Produzenten 110a publiziert der Befehl c_notify() die Nachricht an das CBM Netzwerk 120. Bei dem Konsumenten 110b sorgt der Befehl c_arv() für eine Nachricht bei einem Ankunftsereignis.
  • Bezugnehmend auf 6 werden bei einem Prozeß 600 die Befehle bei dem Produzenten 110a und dem Konsumenten 110b ausgeführt, um eine zuverlässige Benachrichtigung bereitzustellen.
  • Am Produzenten 110a erzeugt der Befehl r_producer() 602 das R-Produzenten-Feld 414 und überwacht hinsichtlich R-Schicht-Fehlerereignissen. Ein subscribe() Befehl 604 stellt ein Abonnement an das CBM Netzwerk 120 für Kenntnisnahmen bereit. Ein r_notify() 606 sendet die Nachricht und spezifiziert die R-Schicht-Konsumenten 110b, die eine Kenntnisnahme bzw. Bestätigung erwarten.
  • Bei dem Konsumenten 110b erzeugt ein Befehl r_consumer() 612 das R-Konsumenten-Feld 412. Der Befehl arv_action() 614 spezifiziert dann einen Empfänger hinsichtlich einlangender Nachrichten, um die Daten in der Konsumentenanwendung 210b anzuhaben. Ein subscribe() Befehl 616 stellt einem Abonnement einen spezifischen Nachrichteninhalt zur Verfügung, der für die Konsumentenanwendung 210b von Interesse ist. Die Konsumentenanwendung 210b wartet dann auf publizierte Nachrichten.
  • Multicast-Nachrichten
  • In dem Multicast-Fall ist eine verlässige Kommunikation mit mehr als einem Konsumenten möglich. Eine Nachricht wird publiziert und alle spezifizierten Konsumenten senden eine Kenntnisnahme. Wenn alle Kenntnisnahmen nicht innerhalb einer bestimmten Zeitdauer ankommen, wird die Nachricht erneut gesendet. Um Unkosten zu minimieren, die mit dem erneuten Senden von Nachrichten assoziiert bzw. verbunden sind, werden nur Konsumenten mit ausstehenden Kenntnisnahmen in Betracht gezogen. Der Unicast-Fall kann als eine Spezialisierung des Multicast-Falls gesehen werden, weil nur ein Konsument eine Kenntnisnahme sendet.
  • Der Timeout- bzw. Auszeitmechanismus ist dynamisch und paßt sich an variierende Netzwerkzustände an. Für die Auszeitberechnung können Rücklaufzeiten einer neuen Nachricht in Betracht gezogen werden. Deshalb ist die tatsächliche Timeout- bzw. Auszeitvariable der sich bewegende Durchschnitt bzw. Mittelwert der neulich erfolgreich gelieferten Nachrichten. Wenn eine Auszeit versäumt wird, dann erhöht sich die Auszeitberechnung, um einen multiplikativen Fehlerausdruck bzw. -term.
  • Jede R-Schicht 215 und 225 mißt kontinuierlich die Umlauf- bzw. Rücklaufzeit t. Dies ist die Zeit, die erforderlich ist, um eine Nachricht an eine entfernte Stelle zu senden und sie nochmals zurückzuschicken. Die Auszeit für eine zuverlässige Nachricht ist 2·t. Wenn der Absender nicht eine Kenntnisnahme nach dieser Auszeit empfängt, wird die Nachricht erneut gesendet und die Auszeit wird auf 4·t eingestellt. Die Auszeit wird jedesmal verdoppelt, wenn sie versäumt wird, bis zu einem spezifizierbaren oberen Grenzwert. Der obere Grenzwert stellt sicher, daß es einen Punkt in der Zeit gibt, wenn der Absender annehmen kann, daß die Nachricht empfangen worden ist.
  • Eine Veränderbarkeit im Maßstab bzw. Skalierbarkeit mit einer zunehmenden Anzahl von Klienten wird erreicht, indem die CBM Infrastruktur einfach gehalten wird. Wie vorher beschrieben, ist die Protokollogik an der Klientenseite angeordnet, welches ein adäquates Be- bzw. Verarbeitungsvermögen bereitstellt, um hinsichtlich einer zunehmenden Anzahl von Klienten den Maßstab zu ändern.
  • Eine Durchflußregelung bzw. -steuerung wird durch einen Sende-Window- bzw. -Fenstermechanismus realisiert bzw. ver wirklicht, wo nur eine bestimmte Menge von nicht zur Kenntnis genommenen Nachrichten zugelassen wird. Eine Anhäufung bzw. Überfüllung wird durch Statusnachrichten von der CBM-Infrastruktur vermieden. Wenn der Produzent oder Konsument eine Warnung einer versäumten Nachricht empfängt, die anzeigt, daß die CBM Infrastruktur überlastet ist, kann der Produzent die Sendrate reduzieren (wodurch die Chance eines Staus bzw. einer Überlastung minimiert wird).
  • Heterogene Umgebungen
  • Ein Support für heterogene Umgebungen ist verfügbar, und Anwendungen mit oder ohne Zuverlässigkeitsanforderungen können unterstützt werden. Außerdem können Anwendungen ohne Zuverlässigkeitsanforderungen Nachrichten von Produzenten mit Zuverlässigkeitsanforderungen empfangen; jedoch ist die Nachrichtenlieferung nicht zuverlässig (d.h. es gibt keinen Weg für den Produzenten, um zu überprüfen, daß die Nachricht geliefert worden ist). Jede R-Schicht 215 und 225 erweitert Nachrichten um die Felder, die der Nachricht hinzugefügt sind, jedoch entsprechen die modifizierten Nachrichten den CBM Standards und können geroutet bzw. weitergeleitet werden, indem alle Nachrichtenelemente berücksichtigt werden. In heterogenen Umgebungen könnten Nachrichten, die erneut gesendet werden, Konsumenten schaden, die die R-Schicht nicht implementieren. Tatsächlich würden die Konsumenten die gleiche Nachricht mehrmals empfangen. Als eine Folge würde dies ein Verstoß der einmaligen Lieferungsanforderung sein, die durch die meisten CBM Infrastrukturen bereitgestellt wird. Um mehrfache Lieferungen der gleichen Nachricht zu verhindern, werden Nachrichten in einem die ursprüngliche Nachrichten einkapselnden Tunnel für ein erneutes Senden gesandt.
  • In einer Implementierung ist die CBM Infrastruktur, die für die Implementierung verwendet wird, Elvin. Elvin ist eine flexible und einfach zu verwendende Nachrichten- bzw. Benachrichtigungsarchitektur, die durch DSTC in Brisbane (Australien) entwickelt wurde. Das Protokoll arbeitet asynchron (d.h. der Produzent verliert den Nachrichtenkontext, unmittelbar nachdem er das Sendeverfahren aufgerufen hat); insbesondere wartet das Sendeverfahren nicht, bis die Kenntnisnahme ankommt.
  • Die zuverlässige Multicast-Nachrichtenlieferung ist nur so schnell wie der langsamste Konsument. Der Konsument mit der größten Antwortzeit diktiert die Systemleistung.
  • 7 zeigt, daß sich das Zuverlässigkeits- CBM Protokoll ändernden Zuständen bzw. Bedingungen anpassen kann. Kleine Unicast-Nachrichten werden über ein System 100 gesendet, das aus einer Standardhardware besteht, beispielsweise Produzent 110a, Konsument 110b und CBM Router 125, das auf Pentium II Maschinen (550–933 MHz) läuft, das durch ein 100 MBit/s Ethernet angeschlossen ist. In diesem Beispiel wird ein Durchsatz von 2300 Nachrichten pro Sekunde erzielt. Das Beispiel zeigt, daß sich die Auszeit variierenden Bedingungen bzw. Zuständen anpaßt, und daß die maximale Warteschlangenlänge für nicht zur Kenntnis genommene Nachrichten 1000 war.
  • Wenn ein Nachrichtendurchsatz abnimmt und die Anzahl von Auszeiten ansteigt, paßt sich das System 100 an, um eine Nachrichtenauszeit zu verringern, bis der Durchsatz ansteigt, während eine Warteschlangenlänge beibehalten wird (beispielsweise zwischen 3886 und 6259 ms). In dem Multi cast-Fall wurde die Veränderbarkeit bzw. Skalierbarkeit im Maßstab für bis zu 1000 Konsumenten bestätigt. Mit einer zunehmenden Anzahl von Konsumenten war der Gesamtdurchsatz der Nachrichten, bestehend aus Aufforderungsnachrichten und Kenntnisnahmen konstant.
  • Konsumentenabonnements wurden bewahrt. Der Zuverlässigkeitsmechanismus erweitert das Abonnement, ohne Schaden an den ursprünglichen Abonnements. Konsumenten können ihre Anforderungen mit der vollen Funktionalität der Subskriptions- bzw. Abonnementsprache ausdrücken.
  • Das Kommunikationssystem 100 behält die lose gekoppelte Konsumenten- und Produzentenbeziehung bei und die uneingeschränkte Verwendung von Klientenabonnements wird sichergestellt. Das Kommunikationssystem 100 stellt auch eine verbindungslose Kommunikation mit wenigstens einer Liefersemantik bzw. -sprache bereit. Das Kommunikationssystem 100 unterstützt auch eine Multicast-Kommunikation, und läuft in heterogenen Umgebungen, in welchen jeder Klient eine zuverlässige und unzuverlässige Kommunikation verlangt. Das CBM System stellt einen Support bzw. eine Unterstützung für eine transparente Integration von existierenden Anwendungen bereit. Das CBM Netzwerk 120 stellt auch ein API bereit, das ähnlich existierenden CBM APIs ist, das wenig, wenn überhaupt, zusätzliche Programmierungsunkosten erfordert, um eine Integration in existierende Systeme zu erlauben.
  • Das CBM System 100 paßt sich auch variierenden Netzwerkbedingungen bzw. -zuständen und Client- bzw. Klientenfähigkeiten an. Außerdem kann das CBM System auf die Anzahl von Konsumenten und Nachrichtengröße im Maßstab geändert bzw. skaliert werden.
  • Probleme aufgrund eines Nachrichtenverlusts sind an den Client-Vorrichtungen 110 und Anwendungen 210 transparent. Die Konsumentenanwendung 210b empfängt zuverlässig Nachrichten durch ein Abonnement für einen Nachrichteninhalt, exakt in derselben Weise wie die unzuverlässige Nachricht. Der Zuverlässigkeitsmechanismus maskiert alle Fehler und stellt einen zuverlässigen Benachrichtigungsservice bzw. –dienst für die Anwendungen der Client-Vorrichtungen 110 zur Verfügung.
  • 8 zeigt einen Computer 800 für eine Verwendung des Prozesses 300. Der Computer 800 enthält einen Prozessor 802, einen flüchtigen Speicher 804 und einen nichtflüchtigen bzw. permanenten Speicher 806 (beispielsweise Festplatte). Der nicht-flüchtige Speicher 806 speichert das Betriebssystem 810, den Datenspeicher 812 und Computerinstruktionen 814, welche durch den Prozessor 802 außerhalb des flüchtigen Speichers 804 ausgeführt werden, um den Prozeß 300 auszuführen.
  • Der Prozeß 300 ist nicht auf eine Verwendung mit der Hardware und Software von 8 beschränkt; er kann Anwendbarkeit finden in irgendeiner Computer- und Prozeßumgebung und mit irgendeiner Art von Maschine, die fähig ist, ein Computerprogramm ablaufen zu lassen. Der Prozeß 300 kann in Hardware, Software oder einer Kombination der beiden implementiert sein bzw. werden. Beispielsweise kann der Prozeß 300 in einer Schaltung implementiert werden, die einen oder eine Kombination eines Prozessors, eines Speichers, einer programmierbaren Logik und Logikgates enthält. Der Prozeß 300 kann in Computerprogrammen implementiert sein, die auf programmierbaren Computern/Maschinen ausgeführt werden, die jede (r) einen Prozessor, ein Speichermedium oder einen anderen Gegenstand der Herstellung enthalten, der durch den Prozessor lesbar ist, enthaltend flüchtige und nichtflüchtige Speicher und/oder Speicherelemente), wenigstens eine Eingabevorrichtung, und eine oder mehrere Ausgabevorrichtung(en). Der Programmcode kann an Daten angewendet werden, die unter Verwendung einer Eingabevorrichtung eingegeben werden, um den Prozeß 300 durchzuführen und Ausgabeinformation zu generieren bzw. zu erzeugen.
  • Jedes derartige Programm kann in einer verfahrens- oder objektorientierten Programmiersprache auf hohem Niveau implementiert werden, um mit einem Computersystem zu kommunizieren. Jedoch können die Programme in Assembler oder Maschinensprache implementiert werden. Die Sprache kann eine kompilierte bzw. übersetzte oder eine interpretierte Sprache sein. Jedes Computerprogramm kann auf einem Speichermedium oder Vorrichtung, beispielsweise CD-ROM, Festplatte oder Magnetdiskette gespeichert werden, die durch einen programmierbaren Computer für einen allgemeinen oder speziellen Zweck lesbar ist, zum Konfigurieren und Betreiben des Computers, wenn das Speichermedium oder die Vorrichtung durch den Computer gelesen wird, um den Prozeß 300 durchzuführen. Der Prozeß 300 kann auch als ein oder mehrere maschinenlesbare s) Speichermedium (-medien) implementiert sein bzw. werden, konfiguriert mit (einem) Computerprogramm bzw. –programmen sein, wobei bei einer Ausführung Instruktionen in dem(n) Computerprogrammen) einen Computer veranlassen, in Übereinstimmung mit dem Prozeß 300 zu arbeiten bzw. zu funktionieren.
  • Der Prozeß 300 ist nicht auf die hierin beschriebenen spezifischen Implementationen beschränkt. Beispielsweise ist der Prozeß 300 nicht auf die spezifische Be- bzw. Verarbeitungsreihenfolge von 3 beschränkt. Eher können die Blöcke von 3, wie erforderlich, erneut geordnet werden, um die oben dargelegten Ergebnisse zu erzielen.
  • In einigen Implementationen können die Client-Vorrichtungen 110 auch einen Spezialzweck-Computer enthalten, einen Personal Computer ("PC"), eine Workstation bzw. einen Arbeitsplatzrechner, einen Server, einen Laptop, ein Web-berechtigtes Telefon, einen Web-berechtigten persönlichen digitalen Assistenten ("PDA"), ein interaktives Fernsehset, eine Settopbox, einen an Bord (d.h. an einem Fahrzeug montierten) Computer, oder eine Kombination von zwei oder mehreren dieser Vorrichtungen, die fähig sind, auf Instruktionen zu antworten, sie zu erzeugen, und/oder sie auszuführen. Die Client-Vorrichtung 110 kann eine beliebige Anzahl von anderen Vorrichtungen, Komponenten, und/oder Peripheriegeräten, wie beispielsweise Speicher/Speichervorrichtungen, Eingabevorrichtungen, Ausgabevorrichtungen, Benutzer-Interfaces und/oder Kommunikations-Interfaces enthalten.
  • Die Client-Vorrichtung 110 kann auch eine oder mehrere Softwareanwendung (en) enthalten (beispielsweise ein Betriebssystem, eine Browseranwendung, eine Mikrobrowseranwendung, eine Serveranwendung, eine Proxy-Anwendung, eine Gateway-Anwendung, eine Tunneling-Anwendung, und eine CBM Kommunikationsanwendung), die auf die Client-Vorrichtung 110 geladen ist bzw. sind, um die Client-Vorrichtung 110 zu befehlen und zu leiten. Anwendungen können ein Computerprogramm, ein Codestück, eine Instruktion bzw. Anweisung, oder eine Kombination davon für ein unabhängiges bzw. eigenständiges oder kollektives bzw. gemeinschaftliches Instruieren der Client-Vorrichtung 110 enthalten, um wie gewünscht zu interagieren bzw. aufeinander einzuwirken und zu arbeiten.
  • Die Anwendungen können permanent oder temporär in irgendeiner Art von Maschine, Komponente, physischer oder virtueller Ausrüstung, Speichermedium oder fortgepflanztem bzw. ausgebreitetem Signal verkörpert sein, die bzw. das fähig ist, Instruktionen an die Client 110 Vorrichtung bereitzustellen. Insbesondere können die Anwendungen auf einem Speichermedium oder einer Speichervorrichtung gespeichert sein (beispielsweise Nur-Lese-Speicher (ROM), Direktzugriffsspeicher (RAM), einem flüchtigen/nicht flüchtigen Speicher, einer Magnetplatte oder einem fortgepflanzten Signal), das durch die Client-Vorrichtung 110 lesbar ist, so daß, wenn das Speichermedium oder die -vorrichtung durch die Client-Vorrichtung 110 gelesen wird, der spezifizierte Schritt oder die Instruktionen durchgeführt wird bzw. werden.
  • Die Client-Vorrichtung 110 kann auch ein oder mehrere Kommunikationsinterface(s) enthalten, das bzw. die der Client-Vorrichtung erlaubt bzw. erlauben, Information unter Verwendung der Kommunikationspfade 140 zu senden und zu empfangen.
  • Die Kommunikationspfade 140 können konfiguriert sein, um Signale (beispielsweise elektrische, elektromagnetische, oder optische) zu senden und zu empfangen, die Datenströme befördern oder übermitteln, die verschiedene Arten von analogem und/oder digitalem Inhalt repräsentieren. Beispielsweise können die Kommunikationspfade 140 unter Verwendung verschiedener Kommunikationsmedien und eines oder mehrerer Netzwerke(n) implementiert werden, das bzw. die eine oder mehrere Netzwerkvorrichtung(en) umfaßt bzw. umfassen (beispielsweise Server, Router, Schalter, Hubs, Repeater und Speichervorrichtungen). Das eine oder die mehreren Netzwerk(e) kann bzw. können ein WAN, ein LAN, ein Telephonservice (POTS) Netzwerk, ein digitales Teilnehmerleitungs-(DSL) Netzwerk, ein Integrated Services Digital Network (ISDN), und ein synchrones optisches Netzwerk bzw. Synchronous Optical Network (SONET), oder eine Kombination von zwei oder mehreren dieser Netzwerke enthalten. Außerdem können die Kommunikationspfade 140 eine oder mehrere drahtlose Verbindung(en) enthalten, die elektromagnetische Signale, wie beispielsweise Radio- bzw. Funk-, Infrarot- und Mikrowellensignale übermitteln und empfangen, um Information zu befördern.
  • Das Kommunikationssystem 100 verwendet ein Publikations-Abonnementparadigma oder eine Technik, um Daten zwischen den Client-Vorrichtungen 110 auszutauschen. Gemäß dieser Technik kann jede Client-Vorrichtung 110 ein Informationskonsument oder -produzent sein. Als ein Informationsproduzent kann die Client-Vorrichtung 110 Information auf dem CBM Netzwerk 120 publizieren. Als ein Informationskonsument registriert die Client-Vorrichtung 110 ein Abonnement an spezifischer Information, die auf dem CBM Netzwerk 120 publiziert wird. Das CBM Netzwerk 120 stellt Benachrichtigungen der publizierten Information (beispielsweise Nachrichten) an jene Konsumenten-Client-Vorrichtungen 110 zur Verfügung, die Abonnements an der Information registriert haben.
  • In einigen Implementierungen kann das CBM Netzwerk 120 unter Verwendung eines Publikations-Abonnementsystems, wie beispielsweise Elvin, CosNotif, JMS, Keryx und Gryphon im plementiert sein, um Information an die Client-Vorrichtungen 110 und ihre assoziierten bzw. verbundenen Kommunikationsanwendungen zu verteilen. In einer Implementierung des Kommunikationssystems 100 wird die Elvin CBM Infrastruktur verwendet.
  • In einigen Implementierungen kann das CBM Netzwerk 120 eine oder mehrere Datenbe- bzw. -verarbeitungs- und -verteilungsvorrichtung(en) enthalten (beispielsweise einen Server, einen Router, und assoziierte bzw. verbundene Kommunikationsmedien und Datentransportsysteme). Beispielsweise kann das CBM Netzwerk 120 einen oder mehrere CBM Router 125 und Kommunikations-Interfaces (nicht gezeigt) enthalten, die die publizierte Information empfangen und Nachrichten generieren bzw. erzeugen, die an die Konsumenten übermittelt werden, die die Information abonnieren.
  • Der CBM Router 125 kann durch einen Prozessor und eine CBM Routing- bzw. Weiterleitungsanwendung implementiert sein, die Information mit den Kommunikations-Interfaces austauscht (welche konfiguriert sind, um mit den Kommunikationspfaden 140 zu kommunizieren).
  • Andere Implementierungen sind innerhalb des Umfangs der nachfolgenden Patentansprüche.

Claims (5)

  1. Publikations-Abonnementsystem (100) umfassend: einen Produzenten bzw. Hersteller (110a), der konfiguriert ist, um eine Nachricht zu publizieren und um eine Kenntnisnahme zu abonnieren, die anzeigt, daß die Nachricht empfangen wurde; einen Konsumenten (110b), der konfiguriert ist, um die Nachricht zu abonnieren und die Kenntnisnahme zu publizieren; und ein Netzwerk (120), dadurch gekennzeichnet, daß das Netzwerk (120) konfiguriert ist, um ein Nachrichten-Abonnement und ein Kenntnisnahme-Abonnement zu registrieren, um das Nachrichten-Abonnement und das Kenntnisnahme-Abonnement zu bearbeiten, um die Nachricht an den Konsumenten (110b) basierend auf dem Nachrichten-Abonnement weiterzuleiten und um die Kenntnisnahme zu dem Produzenten (110a) basierend auf dem Kenntnisnahme-Abonnement weiterzuleiten, daß der Produzent (110a) und der Konsument (110b) jeweils einen Zuverlässigkeitsmechanismus (215, 225) umfassen, der adaptiert ist, um zusätzliche Felder hinzuzufügen, und daß die Kenntnisnahme für jede Nachricht vor der Entfernung der zusätzlichen Felder publiziert wird.
  2. System (100) nach Anspruch 1, wobei der Produzent (110a) einen Zeitgeber bzw. Timer beinhaltet und der Produzent (110a) die Nachricht noch einmal publiziert, wenn eine Zeitdauer abgelaufen ist, bevor die Kenntnisnahme empfangen wurde.
  3. System (100) nach Anspruch 1, wobei der Konsument (110b) einen Zuverlässigkeitsmechanismus (225) beinhaltet, um die Kenntnisnahme zu publizieren, wobei der Zuverlässigkeitsmechanismus (225) vorzugsweise doppelte Nachrichten entfernt.
  4. System (100) nach Anspruch 1, wobei das Netzwerk einen auf Inhalt basierenden Nachrichtenrouter (CBM) (125) beinhaltet, um die Nachricht und die Kenntnisnahme zu routen bzw. weiterzuleiten.
  5. System (100) nach Anspruch 1, weiterhin umfassend einen Zuverlässigkeitsmechanismus, welcher ein generisches Adressierschema bei einem Identifizieren von Client-Vorrichtungen (110a, 110b) verwendet, wobei das generische Adressierschema vorzugsweise eine einzigartige Identität an den Konsumenten (110b) und den Produzenten (110a) zur Verfügung stellt.
DE602004001312T 2003-10-31 2004-10-27 Publikations-Abonnementsystem Active DE602004001312T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US698978 2003-10-31
US10/698,978 US7287066B2 (en) 2003-10-31 2003-10-31 Publish-subscribe system having a reliability mechanism

Publications (2)

Publication Number Publication Date
DE602004001312D1 DE602004001312D1 (de) 2006-08-03
DE602004001312T2 true DE602004001312T2 (de) 2007-04-26

Family

ID=34423431

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004001312T Active DE602004001312T2 (de) 2003-10-31 2004-10-27 Publikations-Abonnementsystem

Country Status (4)

Country Link
US (1) US7287066B2 (de)
EP (1) EP1528710B1 (de)
AT (1) ATE331361T1 (de)
DE (1) DE602004001312T2 (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676580B2 (en) 2003-03-27 2010-03-09 Microsoft Corporation Message delivery with configurable assurances and features between two endpoints
US20060099564A1 (en) * 2004-11-09 2006-05-11 Holger Bohle Integrated external collaboration tools
GB0425355D0 (en) * 2004-11-18 2004-12-22 Ibm Publishing documents in a publish subscribe data processing system
US7567553B2 (en) * 2005-06-10 2009-07-28 Swift Creek Systems, Llc Method, system, and data structure for providing a general request/response messaging protocol using a presence protocol
US20070005725A1 (en) * 2005-06-30 2007-01-04 Morris Robert P Method and apparatus for browsing network resources using an asynchronous communications protocol
US20070043646A1 (en) * 2005-08-22 2007-02-22 Morris Robert P Methods, systems, and computer program products for conducting a business transaction using a pub/sub protocol
US7512880B2 (en) * 2005-12-23 2009-03-31 Swift Creek Systems, Llc Method and system for presenting published information in a browser
US7587450B2 (en) * 2006-02-01 2009-09-08 Swift Creek Systems, Llc HTTP publish/subscribe communication protocol
US20070208702A1 (en) * 2006-03-02 2007-09-06 Morris Robert P Method and system for delivering published information associated with a tuple using a pub/sub protocol
GB0606226D0 (en) * 2006-03-29 2006-05-10 Ibm A method for resolving a unit of work
US20080077653A1 (en) * 2006-09-26 2008-03-27 Morris Robert P Methods, systems, and computer program products for enabling dynamic content in a markup-language-based page using a dynamic markup language element
US20080120337A1 (en) * 2006-11-21 2008-05-22 Fry Jared S Method And System For Performing Data Operations Using A Publish/Subscribe Service
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
US20080183816A1 (en) * 2007-01-31 2008-07-31 Morris Robert P Method and system for associating a tag with a status value of a principal associated with a presence client
US8181238B2 (en) 2007-08-30 2012-05-15 Software Ag Systems and/or methods for streaming reverse HTTP gateway, and network including the same
US8307054B2 (en) 2007-08-30 2012-11-06 Software Ag Systems and/or methods for location transparent routing and execution of processes
US8136122B2 (en) 2007-08-30 2012-03-13 Software Ag Systems and/or methods for providing feature-rich proprietary and standards-based triggers via a trigger subsystem
US8200836B2 (en) 2007-11-16 2012-06-12 Microsoft Corporation Durable exactly once message delivery at scale
US8214847B2 (en) * 2007-11-16 2012-07-03 Microsoft Corporation Distributed messaging system with configurable assurances
US8140454B2 (en) 2007-12-28 2012-03-20 Software Ag Systems and/or methods for prediction and/or root cause analysis of events based on business activity monitoring related data
US8752071B2 (en) * 2008-12-19 2014-06-10 International Business Machines Corporation Identifying subscriber data while processing publisher event in transaction
US8301687B2 (en) 2009-03-31 2012-10-30 Software Ag Systems and/or methods for standards-based messaging
US8370443B2 (en) * 2009-09-08 2013-02-05 Microsoft Corporation Reliable messaging using publish subscribe mechanism
US9372739B2 (en) 2011-04-20 2016-06-21 International Business Machines Corporation Monitoring of subscriber message processing in a publish/subscribe messaging environment
GB2509390B (en) 2011-05-18 2018-02-21 Ibm Managing a message subscription in a publish/subscribe messaging system
CN103442438B (zh) * 2012-07-23 2017-04-12 英特尔公司 用于隧道通用寻呼消息的装置和方法
CN104813616B (zh) * 2012-08-28 2019-02-15 塔塔咨询服务有限公司 发布数据的可靠性的动态选择的系统及方法
US9515943B2 (en) * 2013-01-31 2016-12-06 Solace Systems, Inc. Topic discard indication
US9465880B2 (en) 2013-05-14 2016-10-11 International Business Machines Corporation Optimizing storage in a publish / subscribe environment
US9674127B2 (en) 2014-09-23 2017-06-06 International Business Machines Corporation Selective message republishing to subscriber subsets in a publish-subscribe model
US11226984B2 (en) * 2019-08-13 2022-01-18 Capital One Services, Llc Preventing data loss in event driven continuous availability systems
US11005959B1 (en) * 2020-02-12 2021-05-11 T-Mobile Usa, Inc. Systems and methods for asynchronous publish-subscribe messaging and acknowledgments
US11340828B2 (en) 2020-08-10 2022-05-24 Bank Of America Corporation Restoring messages to a memory utilized by a topic in a publish-subscribe environment
US11354161B2 (en) 2020-08-10 2022-06-07 Bank Of America Corporation Controlling memory utilization by a topic in a publish-subscribe environment

Family Cites Families (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US400606A (en) * 1889-04-02 Territory
US329088A (en) * 1885-10-27 Ballast for boats
US224339A (en) * 1880-02-10 Nailing-machine
US272251A (en) * 1883-02-13 And abthur a
US6603A (en) * 1849-07-24 Robert cornelius and charles wilhelm
US201500A (en) * 1878-03-19 Improvement in door- springs
US138841A (en) * 1873-05-13 Improvement in explosive compounds
US211447A (en) * 1879-01-14 Improvement in corn-husking machines
US73065A (en) * 1868-01-07 Jacob d
US334714A (en) * 1886-01-19 Gtjstav metzgee
US163784A (en) * 1875-05-25 Improvement in street-sweepers
US5008853A (en) * 1987-12-02 1991-04-16 Xerox Corporation Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment
US5299287A (en) * 1988-07-01 1994-03-29 Hitachi, Ltd. Information processing system
US5151684A (en) * 1991-04-12 1992-09-29 Johnsen Edward L Electronic inventory label and security apparatus
US6162060A (en) 1991-08-09 2000-12-19 Texas Instruments Incorporated System and method for the delivery, authoring, and management of courseware over a computer network
US5395243A (en) * 1991-09-25 1995-03-07 National Education Training Group Interactive learning system
US5788508A (en) * 1992-02-11 1998-08-04 John R. Lee Interactive computer aided natural learning method and apparatus
US5310349A (en) * 1992-04-30 1994-05-10 Jostens Learning Corporation Instructional management system
US6336813B1 (en) * 1994-03-24 2002-01-08 Ncr Corporation Computer-assisted education using video conferencing
US6315572B1 (en) 1995-03-22 2001-11-13 William M. Bancroft Method and system for computerized authoring, learning, and evaluation
US20020042041A1 (en) * 1995-03-22 2002-04-11 Owens Terry S. Systems and methods for organizing data relationships
US5675802A (en) * 1995-03-31 1997-10-07 Pure Atria Corporation Version control system for geographically distributed software development
US5692125A (en) 1995-05-09 1997-11-25 International Business Machines Corporation System and method for scheduling linked events with fixed and dynamic conditions
US5619555A (en) * 1995-07-28 1997-04-08 Latitude Communications Graphical computer interface for an audio conferencing system
US5881315A (en) * 1995-08-18 1999-03-09 International Business Machines Corporation Queue management for distributed computing environment to deliver events to interested consumers even when events are generated faster than consumers can receive
WO1997008879A2 (en) * 1995-08-31 1997-03-06 Philips Electronics N.V. Terminal
US5584699A (en) 1996-02-22 1996-12-17 Silver; Judith A. Computerized system for teaching geometry proofs
US5727951A (en) * 1996-05-28 1998-03-17 Ho; Chi Fai Relationship-based computer-aided-educational system
US5802514A (en) * 1996-04-09 1998-09-01 Vision Software Tools, Inc. Automated client/server development tool using drag-and-drop metaphor
US5727950A (en) * 1996-05-22 1998-03-17 Netsage Corporation Agent based instruction system and method
US5739512A (en) * 1996-05-30 1998-04-14 Sun Microsystems, Inc. Digital delivery of receipts
US5918211A (en) * 1996-05-30 1999-06-29 Retail Multimedia Corporation Method and apparatus for promoting products and influencing consumer purchasing decisions at the point-of-purchase
US6014134A (en) * 1996-08-23 2000-01-11 U S West, Inc. Network-based intelligent tutoring system
US6729885B2 (en) * 1996-09-25 2004-05-04 Sylvan Learning Systems, Inc. Learning system and method for engaging in concurrent interactive and non-interactive learning sessions
US8342854B2 (en) * 1996-09-25 2013-01-01 Educate Online Technology, Llc Language-based computer generated instructional material
US6091930A (en) * 1997-03-04 2000-07-18 Case Western Reserve University Customizable interactive textbook
ZA982599B (en) 1997-03-28 1998-09-30 Softlight Inc Evaluation based learning system
US6011949A (en) * 1997-07-01 2000-01-04 Shimomukai; Satoru Study support system
US6175841B1 (en) * 1997-07-17 2001-01-16 Bookette Software Company Computerized systems for producing on-line instructional materials
AU9022998A (en) * 1997-08-18 1999-03-08 Reuters Ltd Certified message delivery and queuing in multipoint publish/subscribe communications
US6134552A (en) * 1997-10-07 2000-10-17 Sap Aktiengesellschaft Knowledge provider with logical hyperlinks
US6347943B1 (en) * 1997-10-20 2002-02-19 Vuepoint Corporation Method and system for creating an individualized course of instruction for each user
US6112049A (en) * 1997-10-21 2000-08-29 The Riverside Publishing Company Computer network based testing system
US6527556B1 (en) * 1997-11-12 2003-03-04 Intellishare, Llc Method and system for creating an integrated learning environment with a pattern-generator and course-outlining tool for content authoring, an interactive learning tool, and related administrative tools
US20020006603A1 (en) 1997-12-22 2002-01-17 Bret E. Peterson Remotely administered computer-assisted professionally supervised teaching system
US20010018178A1 (en) * 1998-01-05 2001-08-30 David M. Siefert Selecting teaching strategies suitable to student in computer-assisted education
US6405236B1 (en) * 1998-01-09 2002-06-11 Hilf! Gmbh, Microcomputer- Consulting Method for transporting data and computer network for carrying out said method
US6701125B1 (en) * 1998-01-21 2004-03-02 Jesper Lohse Method for developing a flexible and efficient educational system
USRE38432E1 (en) * 1998-01-29 2004-02-24 Ho Chi Fai Computer-aided group-learning methods and systems
US6029043A (en) * 1998-01-29 2000-02-22 Ho; Chi Fai Computer-aided group-learning methods and systems
US6148338A (en) 1998-04-03 2000-11-14 Hewlett-Packard Company System for logging and enabling ordered retrieval of management events
US6285993B1 (en) * 1998-06-01 2001-09-04 Raytheon Company Method and apparatus for modeling individual learning styles
CA2239666A1 (en) * 1998-06-04 1999-12-04 Hsin-Kuo Lee Digital traffic signal device
US6801751B1 (en) 1999-11-30 2004-10-05 Leapfrog Enterprises, Inc. Interactive learning appliance
US6182143B1 (en) * 1998-06-25 2001-01-30 International Business Machines Corporation Publish and subscribe data processing apparatus, method and computer program product with use of a stream to distribute local information between neighbors in a broker structure
US6099320A (en) * 1998-07-06 2000-08-08 Papadopoulos; Anastasius Authoring system and method for computer-based training
US6398556B1 (en) * 1998-07-06 2002-06-04 Chi Fai Ho Inexpensive computer-aided learning methods and apparatus for learners
US6471521B1 (en) * 1998-07-31 2002-10-29 Athenium, L.L.C. System for implementing collaborative training and online learning over a computer network and related techniques
US6185542B1 (en) * 1998-07-31 2001-02-06 Lucent Technologies Inc. Communication of transaction data via the internet
US6149441A (en) 1998-11-06 2000-11-21 Technology For Connecticut, Inc. Computer-based educational system
US6179206B1 (en) * 1998-12-07 2001-01-30 Fujitsu Limited Electronic shopping system having self-scanning price check and purchasing terminal
GB2345164A (en) * 1998-12-24 2000-06-28 Ibm Publish and subscribe data processing with subscriber option to request subscription propagation prior to acknowledgment
US20010044728A1 (en) 1999-01-15 2001-11-22 Brian M. Freeman Virtual university
US6347333B2 (en) * 1999-01-15 2002-02-12 Unext.Com Llc Online virtual campus
US7184988B1 (en) * 1999-01-28 2007-02-27 Certco, Inc. Methods for operating infrastructure and applications for cryptographically-supported services
US6988138B1 (en) * 1999-06-30 2006-01-17 Blackboard Inc. Internet-based education support system and methods
US6514085B2 (en) * 1999-07-30 2003-02-04 Element K Online Llc Methods and apparatus for computer based training relating to devices
US6709330B1 (en) * 1999-08-20 2004-03-23 Ameritrade Holding Corporation Stock simulation engine for an options trading game
US6397036B1 (en) * 1999-08-23 2002-05-28 Mindblazer, Inc. Systems, methods and computer program products for collaborative learning
US6470171B1 (en) * 1999-08-27 2002-10-22 Ecollege.Com On-line educational system for display of educational materials
US6327576B1 (en) 1999-09-21 2001-12-04 Fujitsu Limited System and method for managing expiration-dated products utilizing an electronic receipt
US7020697B1 (en) * 1999-10-01 2006-03-28 Accenture Llp Architectures for netcentric computing systems
US6368110B1 (en) * 1999-10-04 2002-04-09 Epic Learning Educational homeroom for providing user specific educational tools and information
US6370355B1 (en) * 1999-10-04 2002-04-09 Epic Learning, Inc. Blended learning educational system and method
US20030129576A1 (en) * 1999-11-30 2003-07-10 Leapfrog Enterprises, Inc. Interactive learning appliance and method
US6587835B1 (en) * 2000-02-09 2003-07-01 G. Victor Treyz Shopping assistance with handheld computing device
US6807535B2 (en) * 2000-03-08 2004-10-19 Lnk Corporation Intelligent tutoring system
AU2001249516A1 (en) 2000-03-27 2001-10-15 Randall A. Russell School commerce system and method
US20020087496A1 (en) * 2000-04-05 2002-07-04 Stirpe Paul A. System, method and applications for knowledge commerce
US20030113700A1 (en) * 2000-04-18 2003-06-19 Simon David J. Customizable web-based training system
WO2001084524A1 (en) * 2000-05-03 2001-11-08 Payback Training Systems, Inc. Authoring and delivering training courses
US20040095378A1 (en) * 2000-06-09 2004-05-20 Michael Vigue Work/training using an electronic infrastructure
AUPQ852000A0 (en) * 2000-07-03 2000-07-27 E-Learning Australia Ltd Method of electronically producing a lesson plan
US6381444B1 (en) * 2000-07-12 2002-04-30 International Business Machines Corporation Interactive multimedia virtual classes requiring small online network bandwidth
CA2315449A1 (en) 2000-08-10 2002-02-10 Ibm Canada Limited-Ibm Canada Limitee Generation of runtime execution traces of applications and associated problem determination
US6622003B1 (en) * 2000-08-14 2003-09-16 Unext.Com Llc Method for developing or providing an electronic course
US6606480B1 (en) * 2000-11-02 2003-08-12 National Education Training Group, Inc. Automated system and method for creating an individualized learning program
US7149807B1 (en) * 2001-02-02 2006-12-12 Akamai Technologies, Inc. Control and communication infrastructure (CCI) for selecting a transport mechanism to transport data to one or more servers in a content delivery network based on the size of the data, together with frequency and loss tolerance with respect to transport of the data
JP2004525410A (ja) 2001-02-28 2004-08-19 シスコ・ラーニング・インスティテュート 分散学習用システム
WO2002073442A1 (en) * 2001-03-14 2002-09-19 Microsoft Corporation Service-to-service communication for network services
US6978115B2 (en) * 2001-03-29 2005-12-20 Pointecast Corporation Method and system for training in an adaptive manner
US6491217B2 (en) 2001-03-31 2002-12-10 Koninklijke Philips Electronics N.V. Machine readable label reader system with versatile response selection
US7107533B2 (en) * 2001-04-09 2006-09-12 International Business Machines Corporation Electronic book with multimode I/O
US6587668B1 (en) * 2001-04-30 2003-07-01 Cyberu, Inc. Method and apparatus for a corporate education system
US6633742B1 (en) * 2001-05-15 2003-10-14 Siemens Medical Solutions Usa, Inc. System and method for adaptive knowledge access and presentation
US20020188583A1 (en) 2001-05-25 2002-12-12 Mark Rukavina E-learning tool for dynamically rendering course content
US7010002B2 (en) * 2001-06-14 2006-03-07 At&T Corp. Broadband network with enterprise wireless communication method for residential and business environment
US20030073063A1 (en) * 2001-06-14 2003-04-17 Basab Dattaray Methods and apparatus for a design, creation, administration, and use of knowledge units
US6877107B2 (en) * 2001-07-05 2005-04-05 Softwired Ag Method for ensuring operation during node failures and network partitions in a clustered message passing server
US6643493B2 (en) 2001-07-19 2003-11-04 Kevin P. Kilgore Apparatus and method for registering students and evaluating their performance
US20030073065A1 (en) 2001-10-12 2003-04-17 Lee Riggs Methods and systems for providing training through an electronic network to remote electronic devices
US20030082508A1 (en) * 2001-10-30 2003-05-01 Motorola, Inc. Training method
US20030152904A1 (en) * 2001-11-30 2003-08-14 Doty Thomas R. Network based educational system
US20030103075A1 (en) * 2001-12-03 2003-06-05 Rosselot Robert Charles System and method for control of conference facilities and equipment
EP1324212A3 (de) 2001-12-12 2009-08-19 Accenture Global Services GmbH System und Verfahren zum Kompilieren und Verteilen modularer Veröffentlichungen und Lehrmaterial in einer elekronischen Umgebung
US20030135556A1 (en) * 2001-12-14 2003-07-17 International Business Machines Corporation Selection of communication strategies for message brokers or publish/subscribe communications
US6873715B2 (en) * 2002-01-31 2005-03-29 You-Ti Kuo System of central signature verifications and electronic receipt transmissions
US6975833B2 (en) * 2002-02-07 2005-12-13 Sap Aktiengesellschaft Structural elements for a collaborative e-learning system
US7014467B2 (en) * 2002-02-11 2006-03-21 Sap Ag E-learning course structure
US7153137B2 (en) * 2002-02-11 2006-12-26 Sap Ag Offline e-courses
US6884074B2 (en) * 2002-02-11 2005-04-26 Sap Aktiengesellschaft Dynamic composition of restricted e-learning courses
US7029280B2 (en) * 2002-02-11 2006-04-18 Sap Ag E-learning course editor
US20030157470A1 (en) * 2002-02-11 2003-08-21 Michael Altenhofen E-learning station and interface
US20030152902A1 (en) * 2002-02-11 2003-08-14 Michael Altenhofen Offline e-learning
US20030152905A1 (en) * 2002-02-11 2003-08-14 Michael Altenhofen E-learning system
US6827578B2 (en) * 2002-02-11 2004-12-07 Sap Aktiengesellschaft Navigating e-learning course materials
US20030152900A1 (en) * 2002-02-11 2003-08-14 Andreas Krebs E-learning strategies
US20030195946A1 (en) * 2002-03-28 2003-10-16 Ping-Fai Yang Method and apparatus for reliable publishing and subscribing in an unreliable network
US7146616B2 (en) * 2002-09-03 2006-12-05 Sap Aktiengesellschaft Content based messaging for e-learning including the extension of a remote procedure call
US20050014121A1 (en) * 2003-07-15 2005-01-20 Hagen Eck Integrating an external course into an electronic learning system
US20050066324A1 (en) * 2003-09-22 2005-03-24 Microsoft Corporation Method and system for distributing and installing software

Also Published As

Publication number Publication date
EP1528710A1 (de) 2005-05-04
DE602004001312D1 (de) 2006-08-03
US20050096928A1 (en) 2005-05-05
EP1528710B1 (de) 2006-06-21
ATE331361T1 (de) 2006-07-15
US7287066B2 (en) 2007-10-23

Similar Documents

Publication Publication Date Title
DE602004001312T2 (de) Publikations-Abonnementsystem
DE69634950T2 (de) Identifizierung von anwendungsfähigkeiten für telekonferenzverbindungen
EP2826224B1 (de) Zugriff von clients auf einen serverdienst mittels einer opc-ua
DE60114356T2 (de) Bereitstellen von Diensten in einem Kommunikationssystem
DE69926807T2 (de) Verfahren zur ablieferung von nachrichten
DE69532262T2 (de) Verfahren zum Mehrfachsenden
DE602004004165T2 (de) Daten-sharing in einem multimedia-kommunikationssystem
DE69531410T2 (de) Mehrrechnerumgebungen
DE60114097T2 (de) Verfahren und System zur Verbesserung der Netzleistungsfähigkeit unter Verwendung eines leistungssteigernden Proxies
DE602005004721T2 (de) Verfahren zur Verwaltung von verdoppelten Nachrichtenmeldungen in multimedialen Benachrichtigungsdiensten
DE60316745T2 (de) Erleichterung der beschleunigten Verarbeitung von Nachrichten des Internet Group Management Protokolls
DE60132232T2 (de) Servicefähige technologie
DE112010005499T5 (de) Steuern der Nachrichtenübermittlung beim Publish/Subscribe-Nachrichtenaustausch
WO2002063839A2 (de) Verfahren und vorrichtung zur manipulation übertragener nachrichten
DE602004010056T2 (de) Verfahren und System zur Verwaltung des Netzwerkverkehrs unter Berücksichtung von mehreren Zwangsbedingungen
DE60132360T2 (de) Verwaltung von netzwerk-verkehr durch anwendung einer hashfunktion
DE602005004255T2 (de) Bidirektionale SOAP-Kommunikation mittels einer einzigen HTTP-Sitzung
EP2469885B1 (de) Verfahren zur Integration von Funktionen eines Telekommunikationsnetzes in ein Datennetz
DE202008006243U1 (de) Vorrichtung zum Benachrichtigen eines Adressaten einer Kommunikationssitzung
EP3576376A1 (de) Datenübermittlung innerhalb eines industriellen automatisierungssystems
DE60004216T2 (de) Verbindungskennung
EP1493295B1 (de) Verfahren zur bertragung von daten, insbesondere mit multim edialen inhalten, in einem mobilfunknetz
DE60122608T2 (de) Verbesserung von Regelungssystem für Netzbetreiber
DE60313093T2 (de) Verfahren zum verteilen von informationen in einem präsenzdienstsystem
DE60006384T2 (de) Gateway in einem funksystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition