DE112011103288B4 - Anpassbare, auf Inhalten beruhende Publish/Subscribe-Nachrichtenvermittlung - Google Patents

Anpassbare, auf Inhalten beruhende Publish/Subscribe-Nachrichtenvermittlung Download PDF

Info

Publication number
DE112011103288B4
DE112011103288B4 DE112011103288.9T DE112011103288T DE112011103288B4 DE 112011103288 B4 DE112011103288 B4 DE 112011103288B4 DE 112011103288 T DE112011103288 T DE 112011103288T DE 112011103288 B4 DE112011103288 B4 DE 112011103288B4
Authority
DE
Germany
Prior art keywords
subscription
queue
filter
content
utilization
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
DE112011103288.9T
Other languages
English (en)
Other versions
DE112011103288T5 (de
Inventor
Tim Dunn
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112011103288T5 publication Critical patent/DE112011103288T5/de
Application granted granted Critical
Publication of DE112011103288B4 publication Critical patent/DE112011103288B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Verfahren für Publish/Subscribe-Nachrichtenvermittlungen zur Durchführung mittels einer elektronischen Datenverarbeitungsanlage, das die Schritte aufweist:Starten (301) eines Abonnements, was ein Bezeichnen einer Abonnementwarteschlange aufweist, in die herausgegebene, das Abonnement betreffende Nachrichten einzustellen sind;Definieren (305) mehrerer auf Inhalten beruhender Filterausdrücke für das Abonnement, wobei jeder der Filterausdrücke für eine gegebene Auslastung der Abonnementwarteschlange definiert ist,Prüfen (403) der Auslastung einer im Abonnement bezeichneten Abonnementwarteschlange; undErmitteln (404) eines auf Inhalten beruhenden Filterausdrucks, der für die gegebene Auslastung der Abonnementwarteschlange definiert ist.

Description

  • Technisches Gebiet
  • Diese Erfindung betrifft das Gebiet der Publish/Subscribe-Nachrichtenvermittlung (publish/subscribe messaging). Insbesondere betrifft die Erfindung anpassbare auf Inhalten beruhende Publish/Subscribe-Nachrichtenvermittlungen.
  • Hintergrundinformationen
  • Bei der Publish/Subscribe-Nachrichtenvermittlung handelt es sich um ein Modell, bei dem Erzeuger von Informationen (publishers - Herausgeber) und Konsumenten derselben Informationen (subscribers - Abonnenten) nicht direkt miteinander verbunden sind. Der Übergang von Informationen zwischen den beiden Parteien wird über eine Herausgabe-Maschine (engine) oder einen Vermittler (broker) abgewickelt. Die Herausgabe-Maschine oder der Vermittler ist für den Abgleich interessierter Parteien mit den herausgegebenen Informationen verantwortlich. Da nicht alle Abonnenten notwendigerweise alle herausgegebenen Nachrichten empfangen möchten, wird durch die Techniken des auf Themen und Inhalten beruhenden Routing gesteuert, welche Informationen ein Abonnent empfängt.
  • Auf Themen beruhendes Routing nutzt einen einfachen Klassifizierungsmechanismus, der als hierarchischer Baum realisiert ist. Ein Abonnent kann in ein Abonnement einwilligen, bei dem Nachrichten an einem bestimmten Punkt in diesem Baum empfangen werden. Dabei könnte es sich um die Wurzel handeln, so dass alle Nachrichten empfangen werden, oder es könnte sich um einen Blattknoten handeln, wobei nur Nachrichten empfangen werden, die an diesen Blattknoten herausgegeben werden.
  • Auf Inhalten beruhendes Routing stellt einen Mechanismus bereit, bei dem ein Abonnent einen Filterausdruck bereitstellen kann, der auf alle Nachrichten angewandt wird, die dem benannten Punkt im Themenbaum entsprechen. Bei diesem Filter handelt es sich üblicherweise um einen Ausdruck ähnlich der strukturierten Abfragesprache (Structured Query Language (SQL)), der sich auf Informationen in der Kopfzeile (header) oder dem Textkörper der Nachricht bezieht. Wenn die Filterbedingung den Wert „wahr“ (true) ergibt, wird die herausgegebene Nachricht in die Warteschlange des Abonnenten geschrieben. Wenn sie den Wert „falsch“ (false) ergibt, wird sie nicht in die Warteschlange des Abonnenten geschrieben.
  • Auf Inhalten beruhendes Filtern ist insofern nützlich, als es einen zusätzlichen Filtermechanismus bereitstellt. Bei derzeitigen Realisierungen wird nur ein einziger Filterausdruck herangezogen, obwohl es sich dabei um einen komplexen Ausdruck handeln könnte. Selbst wenn die Entwickler von Anwendungen oder geschäftlichen Benutzer den Aufbau des Filterausdrucks für den Abonnenten nach gründlichen Überlegungen auswählen, handelt es sich bei diesem einen Filter um den einzigen Mechanismus, der zum Steuern der empfangenen Informationsmenge zur Verfügung steht, da sie keinen Einfluss auf die Nachrichtenherausgaberate haben.
  • Wenn sich die benannte Warteschlange eines Abonnenten mit herausgegebenen Nachrichten gefüllt hat, können keine weiteren Nachrichten empfangen werden, bis die Warteschlangengröße erhöht wird, die Abonnieranwendung Nachrichten aus der Warteschlange abzieht oder ein Bediener oder ein automatischer Befehl einige oder alle Nachrichten aus der Warteschlange löscht.
  • Es besteht daher in der Technik ein Bedarf, die vorgenannten Probleme zu lösen.
  • Stand der Technik
  • US 2006 / 0 179 059 A1 beschreibt einen Knotenmanager, der sich auf einem Knoten in einem Cluster-Computersystem befindet und Informationen und Ereignisse, die über den Knoten kommuniziert werden, an einen Broker überträgt, der mit dem Knotenmanager verbunden ist. Der Broker überträgt Informationen an Client-Geräte, die sich für bestimmte Ereignisse anmelden. Der Knotenmanager umfasst einen Adapter, der auf dem System auftretende Ereignisse interpretiert und Nachrichten an den Broker veröffentlicht, sowie eine Systemsonde, die Informationen gemäß einem konfigurierbaren Zeitplan an den Broker veröffentlicht. Ein autonomer Agent misst die Rate der Informationsverluste zwischen dem Knoten und dem Client und reguliert die Informationsrate, indem er einen oder mehrere Informationsflusskontrollpunkte innerhalb des Systems anpasst, sobald ein Überlastungszustand erkannt wird.
  • US 2003 / 0 135 556 A1 offenbart Verfahren, Datenverarbeitungssysteme und Computerprogramme, die die Auswahl einer geeigneten Nachrichtenfilterungsrichtlinie für die Kommunikation zwischen Brokern innerhalb eines Nachrichtenbrokernetzwerks ermöglichen. Die Richtlinie bestimmt, ob ein Broker Nachrichten an alle seine Nachbarbroker weiterleiten („Broadcast“) oder Nachrichten auf der Grundlage von Abonnementinformationen für angeschlossene Broker filtern soll und, falls gefiltert wird, welche Filterregeln wann zu implementieren sind. Bei den Filterregeln kann zwischen verschiedenen Gruppen von Nachrichtenthemen unterschieden werden. Die gewählte Filterregel kann sich für verschiedene Verbindungen innerhalb eines einzelnen Brokers oder eines Multi-Broker-Netzwerks unterscheiden, und zusätzlich oder alternativ kann die Kommunikationsstrategie für das Netzwerk oder für bestimmte Verbindungen innerhalb des Netzwerks entsprechend den aktuellen Netzwerknutzungseigenschaften geändert werden. US 2005 / 0 198 285 A1 beschreibt eine Überlastverwaltungsvorrichtung mit einer Überwachungsfunktion zum Auswerten aufeinanderfolgender Werte des Serverbetriebsparameters als Funktion der Zeit, einer ersten Logikfunktion, die in der Lage ist, eine erste Bedingung auszuwerten, die beinhaltet, ob der Serverbetriebsparameter einen ersten Schwellenwert in einer ersten Richtung passiert, einer zweiten Logikfunktion, die in der Lage ist, eine zweite Bedingung auszuwerten, die beinhaltet, ob ein Serverbetriebsparameter einen zweiten Schwellenwert in einer zweiten Richtung passiert, eine zweite Logikfunktion, die in der Lage ist, eine zweite Bedingung auszuwerten, die beinhaltet, ob ein Serverbetriebsparameter einen zweiten Schwellenwert in einer zweiten Richtung passiert, wobei die zweite Richtung der ersten Richtung entgegengesetzt ist und sich von dem ersten Schwellenwert zu dem zweiten Schwellenwert erstreckt, und eine Anforderungsüberwachungseinrichtung, die betreibbar ist, um die Zurückweisung von Eingabeanforderungen bei der Verifizierung einer dritten Bedingung zu starten, die sich auf die Verifizierung von mindestens einer der ersten und zweiten Bedingungen bezieht, und die Zurückweisung der Eingabeanforderungen bei der Verifizierung einer vierten Bedingung zu beenden, die sich auf die Verifizierung der zweiten Bedingung bezieht.
  • US 2007 / 0 073 821 A1 offenbart einen Nachrichtenübertragungs-Kernel, der als Basis für asynchrone Nachrichtenübertragung in einer Web-Service-Plattform dient. Der Kernel bietet grundlegende Nachrichtenübertragungs-Funktionen, einschließlich Punkt-zu-Punkt- und Publish/Subscribe-Nachrichtenübertragung, persistente und nicht-persistente Nachrichten, eine Vielzahl von Bestätigungsmodi, Zwei-Phasen-Commit-Transaktionen, Quoten, Statistiken, Nachrichtensortierung und Nachrichtenpaginierung. Er enthält auch einige neuartige Funktionen, die die Nachrichtenreihenfolge basierend auf den Anforderungen der Anwendung beibehalten.
  • AUFGABE DER ERFINDUNG
  • Der Erfindung liegen die Aufgaben zugrunde, ein verbessertes Verfahren, Vorrichtung und Computerprogrammprodukt für Publish/Subscribe-Nachrichtenvermittlungen bereitzustellen. Die Aufgaben werden durch die Merkmale der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind in den abhängigen Patentansprüchen angegeben.
  • ZUSAMMENFASSUNG
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung wird ein Verfahren für Publish/Subscribe-Nachrichtenvermittlungen bereitgestellt, wobei das Verfahren aufweist: Starten eines Abonnements, wozu ein Bezeichnen einer Abonnementwarteschlange zählt, in die herausgegebene, das Abonnement betreffende Nachrichten einzustellen sind; Definieren mehrerer auf Inhalten beruhender Filterausdrücke für das Abonnement, wobei jeder der Filterausdrücke für eine gegebene Auslastung der Abonnementwarteschlange definiert ist; Prüfen der Auslastung einer im Abonnement bezeichneten Abonnementwarteschlange; und Ermitteln eines auf Inhalten beruhenden Filterausdrucks, der für die gegebene Auslastung der Abonnementwarteschlange definiert ist.
  • Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird ein Verfahren für Publish/Subscribe-Nachrichtenvermittlungen bereitgestellt, wobei das Verfahren aufweist: Starten eines Abonnements, wozu ein Bezeichnen einer Abonnementwarteschlange zählt, in die herausgegebene, das Abonnement betreffende Nachrichten einzustellen sind; Definieren mehrerer auf Inhalten beruhender Filterausdrücke für das Abonnement, wobei jeder der Filterausdrücke für eine gegebene Auslastung der Abonnementwarteschlange definiert ist; Empfangen einer herausgegebenen, ein Abonnement betreffenden Nachricht; Prüfen der Auslastung einer im Abonnement bezeichneten Abonnementwarteschlange; Ermitteln eines auf Inhalten beruhenden Filterausdrucks, der für die gegebene Auslastung der Abonnementwarteschlange definiert ist; und Anwenden des auf Inhalten beruhenden Filterausdrucks.
  • Gemäß einem dritten Aspekt der vorliegenden Erfindung wird ein Computersoftwareprodukt für Publish/Subscribe-Nachrichtenvermittlungen bereitgestellt, wobei das Produkt ein computerlesbares Speichermedium mit darauf befindlichem computerlesbarem Programmcode aufweist, wobei der computerlesbare Programmcode eingerichtet ist zum: Starten eines Abonnements, wozu ein Bezeichnen einer Abonnementwarteschlange zählt, in die herausgegebene, das Abonnement betreffende Nachrichten einzustellen sind; Definieren mehrerer auf Inhalten beruhender Filterausdrücke für das Abonnement, wobei jeder der Filterausdrücke für eine gegebene Auslastung der Abonnementwarteschlange definiert ist.
  • Gemäß einem vierten Aspekt der vorliegenden Erfindung wird ein Computersoftwareprodukt für Publish/Subscribe-Nachrichtenvermittlungen bereitgestellt, wobei das Produkt ein computerlesbares Speichermedium mit darauf befindlichem computerlesbarem Programmcode aufweist, wobei der computerlesbare Programmcode eingerichtet ist zum: Empfangen einer herausgegebenen, das Abonnement betreffenden Nachricht; Prüfen der Auslastung einer im Abonnement bezeichneten Abonnementwarteschlange; Ermitteln eines auf Inhalten beruhenden Filterausdrucks, der für eine gegebene Auslastung der Abonnementwarteschlange definiert ist; und Anwenden des auf Inhalten beruhenden Filterausdrucks.
  • Gemäß einem fünften Aspekt der vorliegenden Erfindung wird ein System für Publish/Subscribe-Nachrichtenvermittlungen bereitgestellt, wobei das System aufweist: eine Herausgabe-Maschine, die einen Abonnement-Mechanismus enthält, wobei der Abonnement-Mechanismus beinhaltet: eine Abonnementwarteschlangen-Bezeichnungskomponente zum Bezeichnen einer Abonnementwarteschlange, in die herausgegebene, das Abonnement betreffende Nachrichten einzustellen sind; eine auf Inhalten beruhende Filtereinstellungskomponente zum Definieren mehrerer auf Inhalten beruhender Filterausdrücke für ein Abonnement, wobei jeder der Filterausdrücke für eine gegebene Auslastung der bezeichneten Abonnementwarteschlange definiert ist, wobei die auf Inhalten beruhende Filtereinstellungskomponente weiterhin in der Lage ist, Parameter der Abonnementwarteschlangenauslastung zu definieren, für die ein Filterausdruck definiert ist.
  • Gemäß einem sechsten Aspekt der vorliegenden Erfindung wird ein System für die Publish/Subscribe-Nachrichtenvermittlung bereitgestellt, wobei das System aufweist: eine Herausgabe-Maschine, beinhaltend: eine Empfangskomponente für herausgegebene Nachrichten zum Empfangen von herausgegebenen, ein Abonnement betreffenden Nachrichten; eine Warteschlangenauslastungs-Prüfkomponente zum Prüfen der Auslastung einer im Abonnement bezeichneten Abonnementwarteschlange; eine Filterermittlungskomponente zum Ermitteln eines auf Inhalten beruhenden Filterausdrucks, der für die gegebene Auslastung der Abonnementwarteschlange definiert ist, wobei die auf Inhalten beruhende Filtereinstellungskomponente weiterhin in der Lage ist, Parameter der Abonnementwarteschlangenauslastung zu definieren, für die ein Filterausdruck definiert ist; und eine Filteranwendekomponente zum Anwenden des auf Inhalten beruhenden Filterausdrucks.
  • Hinsichtlich eines weiteren Aspekts stellt die vorliegende Erfindung ein auf einem computerlesbaren Medium gespeichertes und in den internen Speicher eines digitalen Computers ladbares Computerprogramm bereit, das Softwarecodebereiche umfasst, die bei Ausführung des Programms auf einem Computer die Schritte der Erfindung durchführen können.
  • Der als die Erfindung betrachtete Gegenstand wird besonders im Endbereich der Beschreibung dargelegt und klar beansprucht. Die Erfindung wird sowohl bezüglich der Organisation als auch die Funktion betreffend gemeinsam mit Aufgaben, Merkmalen und Vorteilen davon am besten unter Bezugnahme auf die folgende detaillierte Beschreibung verständlich, die in Verbindung mit den angehängten Zeichnungen zu lesen ist.
  • Figurenliste
  • Die vorliegende Erfindung wird nun in lediglich beispielhafter Weise unter Bezugnahme auf bevorzugte Ausführungsformen beschrieben, wie sie in den folgenden Figuren dargestellt sind:
    • 1 zeigt ein Blockschaubild eines Systems gemäß der vorliegenden Erfindung;
    • 2 zeigt ein Blockschaltbild eines Computersystems, in dem die vorliegende Erfindung realisiert werden kann;
    • 3 zeigt einem Ablaufplan einer Abonnentenregistrierung gemäß einem Aspekt der vorliegenden Erfindung; und
    • 4 zeigt einem Ablaufplan eines Nachrichtenfilterns gemäß einem Aspekt der vorliegenden Erfindung.
  • Detaillierte Beschreibung der Erfindung
  • Er ist ersichtlich, dass zur Einfachheit und Klarheit der Abbildung in den Figuren gezeigte Elemente nicht unbedingt maßstäblich gezeichnet wurden. Zum Beispiel können zur Klarheit die Abmessungen einiger der Elemente relativ zu anderen Elementen übertrieben dargestellt sein. Weiterhin können Bezugszeichen innerhalb der Figuren wiederholt werden, wo sich dies anbietet, um entsprechende oder analoge Merkmale zu bezeichnen.
  • In der folgenden detaillierten Beschreibung werden zahlreiche spezifische Details aufgeführt, um ein umfassendes Verständnis der Erfindung zu ermöglichen. Der Fachmann versteht jedoch, dass die vorliegende Erfindung ohne diese spezifischen Details ausgeführt werden kann. In anderen Beispielen wurden bereits bekannte Verfahren, Vorgehensweisen und Komponenten nicht im Detail beschrieben, um die vorliegende Erfindung nicht zu verschleiern.
  • Herkömmliche auf Themen und Inhalten beruhende Publish/Subscribe-Verarbeitungen berücksichtigen nicht die bereits in einer Warteschlange vorhandene Datenmenge und, was vielleicht wichtiger ist, wie nahe sich die aktuelle Warteschlangentiefe an der Warteschlangenkapazität befindet. Wenn sich die Warteschlange des Abonnenten füllt, führt üblicherweise die Herausgabe-Maschine eine Rückabwicklung der herausgegebenen Nachricht aus, wenn die Nachricht dauerhaft ist und abgewickelt wurde, oder die Nachricht geht verloren, wenn sie nicht dauerhaft ist. Daher werden herausgegebene Nachrichten unter Umständen auf einer nicht vorhersehbaren Grundlage empfangen und verarbeitet, was nicht wünschenswert ist. Normalerweise ist die Abonnieranwendung nicht in der Lage, den Filterausdruck zu ändern, wenn sich die Warteschlangengrenze zu nähern beginnt.
  • Ein Benutzer wie zum Beispiel ein geschäftlicher Benutzer oder ein Entwickler von Anwendungen kann als Abonnent zufrieden sein, wenn er weiß, dass das Inhaltsfilter bei Erreichen der Warteschlangenkapazität restriktiver wird, anstatt dass ab dem Punkt, an dem die Warteschlange voll ist, alle herausgegebenen Nachrichten verloren gehen. Es wäre für den Benutzer wertvoll, mehr Einfluss darauf zu besitzen, was behalten und was verworfen wird, wenn sich die Warteschlange füllt, anstatt dass ihm durch das Transaktionsverhalten der Herausgabe-Maschine eine Bedingung auferlegt wird.
  • Das beschriebene System und das beschriebene Verfahren stellen einen Mechanismus bereit, der es dem Benutzer erlaubt, eine Reihe von Filtern für auf Inhalten beruhendes Publish/Subscribe bereitzustellen, um höhere Warteschlangenauslastungen zu berücksichtigen. Die Ausführung eines bestimmten Filters hängt von der Auslastung der einzelnen Abonnementwarteschlange ab. Diese Auslastung wird durch die Herausgabe-Maschine und das geeignete Filter ermittelt, das zum Zeitpunkt der herausgegebenen Nachricht ausgeführt wird. Zur Auslastung der Abonnementwarteschlange können zählen: die verbleibende Warteschlangenkapazität, die Warteschlangennutzungsrate, die momentan in der Warteschlange befindliche Datenmenge oder jedes andere Verfahren zum Messen der Warteschlangenbelegung.
  • Durch einen restriktiveren Filterausdruck ist es nun einem Benutzer möglich festzulegen, dass weniger oder auch gar keine neuen Nachrichten angenommen werden sollen, sobald eine gewisse Warteschlangenauslastung erreicht wurde. Dies legt die Entscheidungsmöglichkeit, mehr herausgegebene Nachrichten anzunehmen, in die Hand des Benutzers, anstatt ihm dies vorzugeben, weil sich die Abonnementwarteschlange gefüllt hat.
  • Der Vorteil liegt darin, dass die Abonnieranwendung neue herausgegebene Nachrichten tatsächlich viel länger weiter wahrnimmt, da der Zustand einer vollen Warteschlange viel länger vermieden wird, indem die Annahmerate der Abonnementwarteschlange für neu herausgegebene Nachrichten verringert wird.
  • Wenn ein Filter für auf Inhalten beruhendes Publish/Subscribe bereitgestellt wird, legt der Abonnent beim beschriebenen Verfahren und dem beschriebenen System einen Satz von Filterausdrücken und Warteschlangenauslastungen (oder andere Warteschlangengrenzwerte/Charakteristika) fest, bei denen jeder Filterausdruck anzuwenden ist.
  • Der Abonnent stellt die Filter bereit, implementiert diese jedoch nicht. Die Herausgabe-Maschine ist für das Anwenden der unterschiedlichen Filter zuständig. Bevor ein Filter für die auf Inhalten beruhende herausgegebene Nachricht aufgerufen wird, prüft die Herausgabe-Maschine die Warteschlangenauslastung der Abonnementwarteschlange und wendet dann das geeignete Filter an.
  • Nur der Abonnentenbenutzer kennt den geschäftlichen Kontext der bezogenen Informationen und ist daher als Einziger in der Lage, ein Urteil darüber abzugeben, wie restriktiv vorzugehen er bereit ist, um die Situation einer vollen Warteschlange zu versuchen und zu vermeiden, während er so viele neue herausgegebene Nachrichten wie möglich wahrnimmt.
  • Unter Bezugnahme auf 1 zeigt ein Blockschaubild ein Beispielssystem 100 für anpassbare auf Inhalten beruhende Publish/Subscribe-Nachrichtenvermittlungen.
  • Eine Herausgabe-Maschine 110 wird als Zwischenelement zwischen Herausgebern 101 und Abonnenten 102 bereitgestellt. Ein Abonnent 102 registriert sich bei einer Herausgabe-Maschine 110, die das Routing und Filtern zwischen Herausgebern 101 und Abonnenten 102 bereitstellt. In einigen Fällen kann eine Herausgabe-Maschine vorhanden sein, die nur Publish/Subscribe-Verarbeitung durchführt. In einem anderen Fall kann eine Publish/Subscribe-Funktion als eine von einer Anzahl von Funktionen in einem Multifunktionsvermittler bereitgestellt werden. Der Begriff „Herausgabe-Maschine“ soll jeden beliebigen Publish/Subscribe-Verarbeitungsmechanismus einschließlich eines Nachrichtenvermittlers beinhalten.
  • Eine Herausgabe-Maschine 110 enthält einen Abonnentenmechanismus 111, bei dem sich ein Abonnent 102 für ein Abonnement registriert. Der Abonnentenmechanismus 111 enthält Abonnenteneinstellungen 120, zu denen der Name der Abonnementwarteschlange 103 zum Empfangen herausgegebener Nachrichten und die Abonnentenkriterien 122 zählen. Zu den Abonnentenkriterien 122 zählen das Thema oder die Themen der herausgegebenen Nachrichten, für die sich der Abonnent interessiert.
  • Die Abonnementwarteschlange 103 stellt das Ziel dar, an das die Herausgabe-Maschine 110 Nachrichten sendet, die zu einem bestimmten Abonnement passen. Wenn sich ein Abonnent 102 für ein Thema registriert, gibt er der Herausgabe-Maschine 110 gegenüber an, an welche Warteschlange herausgegebene Nachrichten weitergeleitet werden sollen. Eine einzige Warteschlange kann durch mehrere Registrierungen verwendet werden. Diese Warteschlange wird in einem der Parameter des Befehls zum Registrieren von Abonnenten festgelegt.
  • Darüber hinaus zählen zu den Abonnenteneinstellungen 120 des Abonnentenmechanismus 111 im beschriebenen System 100 auf Inhalten beruhende Filtereinstellungen 123, zu denen mehrere Filterausdrücke 124, 125 gehören, die bei unterschiedlichen Auslastungen der Abonnementwarteschlange 126, 127 anzuwenden sind.
  • Die Herausgabe-Maschine 110 enthält einen Empfangsmechanismus für herausgegebene Nachrichten 130 zum Empfangen herausgegebener Nachrichten von Herausgebern 101 und zum Ermitteln von Abonnements für die herausgegebenen Nachrichten. Der Empfangsmechanismus für herausgegebene Nachrichten 130 enthält eine Herausgabewarteschlange 131 zum Empfangen herausgegebener Nachrichten in der Herausgabe-Maschine 110.
  • Der Abonnentenmechanismus 111 enthält eine Warteschlangenkomponente 150 zum Festhalten von in die Abonnementwarteschlange 103 einzustellenden Nachrichten. In einer Beispielsrealisierung wird ein Festplattenbereich reserviert, um Nachrichten für eine bestimmte Warteschlange aufzunehmen. Nachrichten werden an die Abonnementwarteschlange 103 weitergeleitet, wenn ein Datenübertragungsprogramm und eine Datenübertragungsverbindung verfügbar sind. Die Warteschlangenkomponente 150 verfolgt die aktuelle Warteschlangentiefe für eine Abonnementwarteschlange 103, da sie alle Schreibanfragen und alle Abrufanfragen gegenüber diese Warteschlange einschließlich der Anzahl von Bytes in den Nachrichten wahrnimmt. Eine Warteschlangenauslastungs-Prüfkomponente 153 berechnet die Auslastung der Abonnementwarteschlange 103, bevor eine Nachricht in die Abonnementwarteschlange 103 eingestellt wird
  • In einer Ausführungsform können die Herausgabe-Maschine 110, der Herausgeber 101 und der Abonnent 102 optional Warteschlangenverwalter zum Verwalten ihrer lokalen Warteschlangen enthalten.
  • Ein auf Inhalten beruhender Filtermechanismus 140 wird bereitgestellt, und er enthält eine Filterausdruck-Ermittlungskomponente 141 zum Ermitteln, welcher der Filterausdrücke 124, 125 auf der Grundlage der durch die Warteschlangenauslastungs-Prüfkomponente 153 und eine Filteranwendekomponente 142 ermittelten Auslastung der Abonnementwarteschlange 103 anzuwenden ist.
  • Der Filtermechanismus 140 empfängt eine herausgegebene Nachricht von einem Herausgeber 101, identifiziert ein Abonnement im Abonnentenmechanismus 111, für den die Nachricht gilt. Dann erhält der Filtermechanismus 140 den Namen der Abonnementwarteschlange 103, und die Warteschlangenauslastungs-Prüfkomponente 153 prüft die Auslastung der Warteschlange, bevor die Filteranwendekomponente 142 die geeignete in den inhaltsbezogenen Filtereinstellungen 123 festgelegte inhaltsbezogene Filtereinstellung für die Warteschlangenauslastung anwendet.
  • Unter Bezugnahme auf 2 kann ein beispielhaftes System zum Realisieren von Aspekten der Erfindung ein Datenverarbeitungssystem 200 enthalten, das zum Speichern und/oder Ausführen von Programmcode geeignet ist und mindestens einen Prozessor 201 enthält, der direkt oder indirekt über ein Bussystem 203 mit Speicherelementen verbunden ist. Zu den Speicherelementen können lokale Speicher, die während der tatsächlichen Ausführung des Programmcodes eingesetzt werden, Massenspeicher und Cachespeicher zählen, welche das vorübergehende Speichern mindestens eines Teils des Programmcodes bereitstellen, um die Anzahl der Abrufe von Code vom Massenspeicher während der Ausführung zu verringern.
  • Zu den Speicherelementen kann Systemspeicher 202 in Form von Nur-Lese-Speicher (ROM) 204 und Speicher mit wahlfreiem Zugriff (RAM) 205 zählen. Ein grundlegendes Eingabe/Ausgabe-System (BIOS) 206 kann im ROM 204 gespeichert sein. Systemsoftware 207 kann im RAM 205 gespeichert sein und Betriebssystemsoftware 208 einschließen. Softwareanwendungen 210 können ebenfalls im RAM 205 gespeichert sein.
  • Das System 200 kann zudem ein Primärspeichermittel 211 wie beispielsweise ein Magnetfestplattenlaufwerk sowie ein Sekundärspeichermittel 212, wie beispielsweise ein Magnetplattenlaufwerk und ein optisches Plattenlaufwerk, beinhalten. Die Laufwerke und ihre zugehörigen computerlesbaren Medien stellen das nichtflüchtige Speichern von durch Computer ausführbaren Anweisungen, Datenstrukturen, Programmmodulen und anderen Daten für das System 200 bereit. Softwareanwendungen können auf dem Primär- und dem Sekundärspeichermittel 211, 212 sowie dem Systemspeicher 202 gespeichert werden.
  • Das Datenverarbeitungssystem 200 kann in einer Netzwerkumgebung arbeiten, in der logische Verbindungen zu einem oder mehreren entfernt angeordneten Computern über einen Netzwerkadapter 216 verwendet werden.
  • Eingabe/Ausgabe-Einheiten 213 können entweder direkt oder über zwischengeschaltete E/A-Steuereinheiten mit dem System verbunden sein. Ein Benutzer kann über Eingabeeinheiten wie beispielsweise eine Tastatur, eine Zeigeeinheit oder andere Eingabeeinheiten (zum Beispiel ein Mikrofon, ein Joystick, eine Spielesteuerung (game pad), eine Satellitenantenne, ein Scanner oder Ähnliches) Befehle und Informationen in das System 200 eingeben. Zu Ausgabeeinheiten können Lautsprecher, Drucker usw. zählen. Zudem ist eine Anzeigeeinheit 214 über eine Schnittstelle wie beispielsweise einen Videoadapter 215 mit dem Systembus 203 verbunden.
  • Realisierungen eines Datenverarbeitungssystems weisen unter Umständen nicht alle vorgenannten Komponenten auf. Es gibt kleine Mikro-Vermittler, die auf Einheiten mit begrenzter Kapazität wie beispielsweise Telefonen oder Pipeline-Überwachungseinheiten laufen, die das beschriebene System verwenden können und einen begrenzten Satz der beschriebenen Funktionen aufweisen können.
  • Unter Bezugnahme auf 3 zeigt ein Ablaufplan 300 eine Ausführungsform der Registrierung eines Abonnenten bei dem beschriebenen Verfahren und dem beschriebenen System. Ein neues Abonnement wird gestartet 301. Das Abonnement legt einen Namen einer Abonnementwarteschlange zum Empfangen der Nachrichten fest 302. Das Abonnement legt ein Thema fest 303. Ein Inhaltsfilter wird über dem auf Themen beruhenden Abonnement angewandt 304, und das Inhaltsfilter legt mehrere Filterausdrücke mit zugehörigen Warteschlangenauslastungen fest.
  • Unter Bezugnahme auf 4 zeigt ein Ablaufplan 400 eine Ausführungsform des Nachrichtenfilterns im Herausgabemechanismus bei dem beschriebenen Verfahren und dem beschriebenen System. Eine herausgegebene Nachricht wird empfangen 401, und ein Abonnement wird identifiziert 402. Das Abonnement kann für festgelegte Themen gültig sein.
  • Die im Abonnement bezeichnete Abonnementwarteschlange wird auf ihre Auslastung oder Kapazität geprüft 403. Bei einer gegebenen bestimmten Warteschlangenauslastung wird ein entsprechendes Inhaltsfilter aus vordefinierten Filterausdrücken ermittelt.
  • Vom Inhaltsfilter wird ermittelt 405, ob die Nachricht an den Abonnenten auszuliefern ist. Ist die Nachricht nicht auszuliefern, tritt der Prozess in eine Schleife ein 406, um die nächste Nachricht abzuwarten. Ist die Nachricht auszuliefern, wird die Nachricht in der Abonnementwarteschlange platziert 407, und der Prozess tritt in eine Schleife ein 406, um die nächste Nachricht abzuwarten.
  • Zulässige Sprachen zum Ausdrücken der durch die Herausgabe-Maschine für das auf Inhalten beruhende Filtern benötigten Logik variieren in Abhängigkeit von der Realisierung der Herausgabe-Maschine. In einem Beispiel können Nachrichtenauswahleinheiten das Verwenden eingebetteter SQL-Ausdrücke (embedded SQL (ESQL) expressions) ermöglichen, um gemäß einer gesamten Nachricht zu filtern.
  • Das Inhaltsfiltern erfordert ein Verfahren, mit dem auf Abschnitte der Kopfzeile und des Textkörpers einer herauszugebenden Nachricht verwiesen wird. In einer Realisierung werden in Filtern für das auf Inhalten beruhende Filtern Feldbezüge verwendet. Um in einem Filter auf ein Feld Bezug zu nehmen, muss ein Pfad angegeben werden. Jedes Element des Pfades besteht aus einem möglicherweise indexierten Feldnamen.
  • Beim Folgenden handelt es sich um beispielhafte Feldnamen- und Korrelationskennungen als eine Beispielsrealisierung. Diese Kennungen geben alle Nachrichten als einen hierarchischen Syntaxelementbaum wieder. Jeder Pfad gibt eine Route durch diesen Baum an, die zu einem bestimmten Syntaxelement führt, beginnend von einem der vordefinierten Korrelationsnamen, die sich auf feste Punkte beziehen, die jede Nachricht aufweist. Die folgenden in Tabelle 1 gezeigten Korrelationsnamen werden für das auf Inhalten beruhende Filtern unterstützt. Tabelle 1
    Wurzel (Root) Gibt die Wurzel einer herausgegebenen Nachricht an.
    Eigenschaften (Properties) Gibt den Teil der Nachricht an, in dem die Standardeigenschaften einer Nachricht liegen.
    Textkörper (Body) Gibt das letzte Kind der Wurzel der Nachricht an, wobei es sich üblicherweise, jedoch nicht immer, um die den Kopfzeilen folgenden Anwendungsdaten handelt.
  • Einige Beispiele für Feldbezüge sind zusammen mit ihren Bedeutungen in Tabelle 2 gezeigt. Tabelle 2
    Body. Person.Address (Textkörper. Person. Adresse) Bezieht sich auf das erste Adressfeld in der Einheit „Person“ im Textkörper der Nachricht.
    Properties.Topic (Eigenschaften. Thema) Bezieht sich auf das Feld „Topic“ (Thema) in den Standardeigenschaften einer Nachricht.
    Root.MQMD.Userldentifier (WurzeI.MQMD.BenutzerKennung) Bezieht sich auf das Feld „Userldentifier“ (BenutzerKennung) im MQMD der Nachricht.
  • Einige Beispiele für auf Inhalten beruhendes Filtern sind in Tabelle 3 gezeigt. Tabelle 3
    Body. Person. Salary> 10000 (Textkörper. Person. Gehalt> 10000) Filtern nach einem ganzzahligen Literal
    „Body.Person.Address‟[1]NOT LIKE'Blen% ‘AND„Body.Person.Salary‟>15000 („Textkörper. Person.Adresse‟[1]N!CHT WIE'Blen%'UND„Textkörper.Person.Gehalt‟ >15000) Ein komplexerer Filter. Es ist zu beachten, dass Feldkennungen optional von doppelten Anführungszeichen umgeben sein können.
    Body. Datei =‚2000-02-14‘ (Textkörper. Datum 1 =‚14.02.2000‘) Filtern nach einem Datum Das Datum wird als Zeichenkette verglichen, und es muss sorgfältig auf das Format geachtet werden.
    Body. Person.ApprovalFlag (Textkörper. Person. BestätigungsFlagge) Filtern nach einem Bool'schen Feld.
    Body. Person. Salary+Person. Bonus>Body. P erson.Limit (Textkörper. Person. Gehalt+ Person. Bonus> Textkörper. Person. Grenze) Ein arithmetisches Filter.
    Properties.Topic=‚employees/marketing‘ (Eigenschaften.Thema=‚Mitarbeiter/Marketi ng‘) Filtern nach einer Nachrichteneigenschaft.
    Root. MQMD. Userldentifier=‚Jones‘ Filtern nach einem
    (Wurzel. MQMD. BenutzerKennung=‚Jones‘) Nachrichtenattribut.
    Body. Person. HourlyRate = 10.24 (Textkörper.Person.Stundensatz = 10,24) Filtern nach einem Fließkommaliteral
    Body.Planet.DistanceFromSun = 0.93E8 (Textkörper. Planet. EntfernungVonSonne = 0,93E8) Filtern nach einer Fließkommazahl im Exponentialformat
  • Bei dem beschriebenen Verfahren und dem beschriebenen System enthält das auf Inhalten beruhende Filter mehrere Filterausdrücke, die abhängig von der Auslastung der Abonnementwarteschlange angewandt werden. Die Auslastung der Abonnementwarteschlange kann zum Beispiel in Form eines prozentualen Anteils der belegten Kapazität definiert werden.
  • Wenn zum Beispiel ein ganzzahliger Filterbereich bereitgestellt wird, kann der Bereich mit zunehmender Warteschlangenauslastung enger werden. Auf diese Weise wird mit zunehmender Warteschlangenauslastung und deren verringerter Kapazität ein selektiveres Filtern ausgeführt.
  • Beispiele
  • In einem ersten Beispiel betrachtet ein System das Ausgabeverhalten von Käufern. Der Abonnent möchte Einzelheiten aller Käufer erfassen, die mehr als 100 $ auf einmal ausgeben, um deren Ausgabeverhalten weiter analysieren zu können. Da die Abonnentenwarteschlangentiefe mit wachsender Auslastung zunimmt, wird das Abonnementfilter so angepasst, dass nur Käufer mit sehr hohen Ausgaben erfasst werden. Beim Aufbau des Filters wurde eine geschäftliche Entscheidung dahingehend getroffen, dass unter solchen Umständen die Käufer mit niedrigeren Ausgaben verloren gehen. Der Abonnent möchte doch sicherlich nicht riskieren, die Käufer mit hohen Ausgaben zu verlieren, und dies spiegelt sich im Aufbau des Filters wider.
  • „If Message. Body. ReceiptTotal > $100“ (Wenn Nachricht.Textkörper.GesamtEinnahmen > 100 $) als Standardausdruck des Inhaltsfilters;
    „If Message. Body. ReceiptTotal > „2 * $100““ (Wenn Nachricht.Textkörper.GesamtEinnahmen > „2 * 100 $“), wenn die Warteschlangenauslastung 70 % erreicht;
    „If Message. Body. ReceiptTotal > „3 * $100““ (Wenn Nachricht.Textkörper.GesamtEinnahmen > „2 * 100 $“), wenn die Warteschlangenauslastung 90 % erreicht;
    „If Message. Body. ReceiptTotal > „30 * $100““ (Wenn Nachricht.Textkörper.GesamtEinnahmen > „30 * 100 $“), wenn die Warteschlangenauslastung 95 % erreicht;
  • Bei einem zweiten Beispiel handelt es sich um ein System , das Bestände erfassen möchte, deren Preise von einem Tag auf den nächsten erheblich schwanken, so dass - möglicherweise im Hinblick auf deren eventuellen zukünftigen Handel - eine Analyse dieser Bestände vorgenommen werden kann.
  • Anfangs ist der Abonnent zufrieden, dass er diejenigen mit einer Schwankung von +/-5 % erfassen kann. Wenn jedoch die Warteschlangentiefe aufgrund zunehmender Auslastung abnimmt, ist der Abonnent bereit, nur noch die unbeständigsten zu erfassen. Erneut wurde beim Aufbau des Filters eine geschäftliche Entscheidung getroffen, die bedeutet, dass es annehmbar war, mehr Daten zu verwerfen, um nur die unbeständigsten zu erfassen.
  • „If Message. Body.PriceSwingToday > 5 %“ (Wenn Nachricht.Textkörper.PreisschwankungHeute > 5 %) als Standardausdruck des Inhaltsfilters;
    „If Message. Body.PriceSwingToday > „2 * 5 %““ (Wenn Nachricht.Textkörper.PreisschwankungHeute > „2 *5 %“), wenn die Warteschlangenauslastung 70 % erreicht;
    „If Message. Body. PriceSwingToday > „3 * 5 %““ (Wenn Nachricht.Textkörper.PreisschwankungHeute > „3 * 5 %“), wenn die Warteschlangenauslastung 90 % erreicht;
    „If Message. Body. PriceSwingToday > „10 * 5 %““ (Wenn Nachricht.Textkörper.PreisschwankungHeute > „10 * 5 %“), wenn die Warteschlangenauslastung 95 % erreicht;
  • In diesen Beispielen hat das Filter mit wachsender Warteschlangenauslastung nur noch immer größere Werte akzeptiert. Dies wird nicht immer der Fall sein. In anderen Situationen kann es geeigneter sein, bei zunehmender Warteschlangenauslastung nur noch immer kleinere Werte zu akzeptieren.
  • In diesen Beispielen wird ein Grenzwert eines Parameters festgelegt (im ersten Beispiel die Ausgabenhöhe und im zweiten Beispiel der Schwankungswert), und die Filterausdrücke unterscheiden sich gemäß einem Vielfachen des Schwellenwerts. Dies stellt ein Beispiel dafür dar, wie die Filterausdrücke relativ zur Warteschlangenauslastung verändert werden. Es können aber ebenso auch andere Verfahren verwendet werden.
  • Ein anpassbares inhaltsbasiertes Publish/Subscribe-System kann einem Kunden über ein Netzwerk als Dienst bereitgestellt werden.
  • Die Erfindung kann in Form einer vollständigen Hardwareausführungsform, einer vollständigen Softwareausführungsform oder einer Ausführungsform, die sowohl Hardware- als auch Softwareelemente enthält, ausgeführt sein. In einer bevorzugten Ausführungsform ist die Erfindung in Software oder Programmcode ausgeführt, was Firmware, residente Software, Mikrocode usw. mit einschließt, ohne darauf beschränkt zu sein.
  • Die Erfindung kann in Form eines von einem von einem Computer verwendbaren oder computerlesbaren Medium zugänglichen Computerprogrammprodukts ausgebildet sein, das Programmcode zur Verwendung durch oder in Verbindung mit einem Computer oder einem beliebigen System zur Ausführung von Anweisungen bereitstellt. Zum Zwecke dieser Beschreibung kann es sich bei einem von einem Computer verwendbaren oder computerlesbaren Medium um jede beliebige Vorrichtung handeln, die das Programm zur Verwendung durch oder in Verbindung mit dem System, der Vorrichtung oder der Einheit zur Ausführung von Anweisungen beinhalten, speichern, übermitteln, verbreiten oder transportieren kann.
  • Bei dem Medium kann es sich um ein System (oder eine Vorrichtung oder Einheit) oder ein Verbreitungsmedium elektronischer, magnetischer, optischer, elektromagnetischer, Infrarot oder Halbleiter verwendender Art handeln. Zu Beispielen eines computerlesbaren Mediums zählen ein Halbleiter- oder Festkörperspeicher, Magnetband, eine Wechselcomputerdiskette, ein Speicher mit wahlfreiem Zugriff (RAM), ein Nur-Lese-Speicher (ROM), eine starre Magnetplatte und eine optische Platte. Zu aktuellen Beispielen für optische Platten zählen Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine Schreib/Lese-Compact-Disk (CD-R/W) und eine DVD.

Claims (17)

  1. Verfahren für Publish/Subscribe-Nachrichtenvermittlungen zur Durchführung mittels einer elektronischen Datenverarbeitungsanlage, das die Schritte aufweist: Starten (301) eines Abonnements, was ein Bezeichnen einer Abonnementwarteschlange aufweist, in die herausgegebene, das Abonnement betreffende Nachrichten einzustellen sind; Definieren (305) mehrerer auf Inhalten beruhender Filterausdrücke für das Abonnement, wobei jeder der Filterausdrücke für eine gegebene Auslastung der Abonnementwarteschlange definiert ist, Prüfen (403) der Auslastung einer im Abonnement bezeichneten Abonnementwarteschlange; und Ermitteln (404) eines auf Inhalten beruhenden Filterausdrucks, der für die gegebene Auslastung der Abonnementwarteschlange definiert ist.
  2. Verfahren nach Anspruch 1, wobei es sich bei den mehreren Filterausdrücken um zunehmend restriktivere Filter handelt, die für eine zunehmende Auslastung der Abonnementwarteschlange definiert sind.
  3. Verfahren nach Anspruch 1 oder 2, weiterhin aufweisend einen Schritt des: Definierens von Parametern der Abonnementwarteschlangenauslastung, für die ein Filterausdruck definiert ist.
  4. Verfahren nach Anspruch 3, wobei die Parameter der Abonnementwarteschlangenauslastung ein oder mehrere Elemente aufweisen aus der Gruppe von: verbleibende Warteschlangenkapazität, Warteschlangennutzungsrate, momentan in der Warteschlange befindliche Datenmenge.
  5. Verfahren für Publish/Subscribe-Nachrichtenvermittlungen zur Durchführung mittels einer elektronischen Datenverarbeitungsanlage, das die Schritte aufweist des: Starten (301) eines Abonnements, was ein Bezeichnen einer Abonnementwarteschlange aufweist, in die herausgegebene, das Abonnement betreffende Nachrichten einzustellen sind; Definieren (305) mehrerer auf Inhalten beruhender Filterausdrücke für das Abonnement, wobei jeder der Filterausdrücke für eine gegebene Auslastung der Abonnementwarteschlange definiert ist, Empfangens (401) einer herausgegebenen, ein Abonnement betreffenden Nachricht; Prüfens (403) der Auslastung einer im Abonnement bezeichneten Abonnementwartesch lange; Ermittelns (404) eines auf Inhalten beruhenden Filterausdrucks, der für die gegebene Auslastung der Abonnementwarteschlange definiert ist; und Anwendens (405) des auf Inhalten beruhenden Filterausdrucks.
  6. Computerprogrammprodukt für Publish/Subscribe-Nachrichtenvermittlungen, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium aufweist, das durch eine Verarbeitungsschaltung lesbar ist und Anweisungen zur Ausführung eines Verfahrens nach einem der Ansprüche 1 bis 5 zur Ausführung durch die Verarbeitungsschaltung speichert.
  7. System für Publish/Subscribe-Nachrichtenvermittlungen, aufweisend: eine Herausgabe-Maschine (110), die einen Abonnementmechanismus (111) aufweist, wobei der Abonnementmechanismus (111) aufweist: eine Abonnementwarteschlangen-Bezeichnungskomponente (121) zum Bezeichnen einer Abonnementwarteschlange (103), in die herausgegebene, das Abonnement betreffende Nachrichten einzustellen sind; eine auf Inhalten beruhende Filtereinstellungskomponente (123) zum Definieren mehrerer auf Inhalten beruhender Filterausdrücke (124, 125) für ein Abonnement, wobei jeder der Filterausdrücke (124, 125) für eine gegebene Auslastung (126, 127) der bezeichneten Abonnementwarteschlange (103) definiert ist; wobei die auf Inhalten beruhende Filtereinstellungskomponente (123) weiterhin in der Lage ist, Parameter der Abonnementwarteschlangenauslastung zu definieren, für die ein Filterausdruck (124, 125) definiert ist.
  8. System nach Anspruch 7, wobei es sich bei den mehreren Filterausdrücken (124, 125) um zunehmend restriktivere Filter handelt, die für eine zunehmende Auslastung der Abonnementwarteschlange (103) definiert sind.
  9. System nach Anspruch 8, wobei die Parameter der Abonnementwarteschlangenauslastung ein oder mehrere Elemente aufweisen aus der Gruppe von: verbleibende Warteschlangenkapazität, Warteschlangennutzungsrate, momentan in der Warteschlange befindliche Datenmenge.
  10. System für Publish/Subscribe-Nachrichtenvermittlungen, aufweisend: eine Herausgabe-Maschine (110), aufweisend: eine Empfangskomponente für herausgegebene Nachrichten (130) zum Empfangen von herausgegebenen, ein Abonnement betreffenden Nachrichten; eine Warteschlangenauslastungs-Prüfkomponente (153) zum Prüfen der Auslastung einer im Abonnement bezeichneten Abonnementwarteschlange (103); eine Filterermittlungskomponente (141) zum Ermitteln eines auf Inhalten beruhenden Filterausdrucks (124, 125), der für eine gegebene Auslastung (126, 127) der Abonnementwarteschlange (103) definiert ist; und eine Filteranwendekomponente (142) zum Anwenden des auf Inhalten beruhenden Filterausdrucks (124, 125).
  11. System nach Anspruch 10, wobei die Warteschlangenauslastungs-Prüfkomponente (153) in der Lage ist, die Belegung der Abonnementwarteschlange (103) zu verfolgen, indem alle Schreibanfragen und alle Abrufanfragen gegenüber der Abonnementwarteschlange (103) wahrgenommen werden.
  12. Vorrichtung für Publish/Subscribe-Nachrichtenvermittlungen, aufweisend: ein Mittel zum Starten (301) eines Abonnements, das ein Mittel zum Bezeichnen einer Abonnementwarteschlange aufweist, in die herausgegebene, das Abonnement betreffende Nachrichten einzustellen sind; ein Mittel zum Definieren (305) mehrerer auf Inhalten beruhender Filterausdrücke für das Abonnement, wobei jeder der Filterausdrücke für eine gegebene Auslastung der Abonnementwarteschlange definierbar ist ein Mittel zum Prüfen (403) der Auslastung einer im Abonnement bezeichneten Abonnementwarteschlange; und ein Mittel zum Ermitteln (404) eines auf Inhalten beruhenden Filterausdrucks, der für eine gegebene Auslastung der Abonnementwarteschlange definierbar ist.
  13. Vorrichtung nach Anspruch 12, wobei es sich bei den mehreren Filterausdrücken um zunehmend restriktivere Filter handelt, die für eine zunehmende Auslastung der Abonnementwarteschlange definiert sind.
  14. Vorrichtung nach einem der Ansprüche 12 oder 13, weiterhin aufweisend: ein Mittel zum Definieren von Parametern der Abonnementwarteschlangenauslastung, für die ein Filterausdruck definierbar ist.
  15. Vorrichtung nach Anspruch 14, wobei die Parameter der Abonnementwarteschlangenauslastung ein oder mehrere Elemente aufweisen aus der Gruppe von: verbleibende Warteschlangenkapazität, Warteschlangennutzungsrate, momentan in der Warteschlange befindliche Datenmenge.
  16. Vorrichtung nach Anspruch 12, ferner aufweisend: ein Mittel zum Empfangen (401) einer herausgegebenen, ein Abonnement betreffenden Nachricht; und ein Mittel zum Anwenden (405) des auf Inhalten beruhender Filterausdrucks.
  17. Auf einem computerlesbaren Medium gespeichertes und in den internen Speicher eines digitalen Computers ladbares Computerprogramm, das Softwarecodeabschnitte umfasst, die zur Ausführung des Verfahrens nach einem der Ansprüche 1 bis 5 geeignet sind, wenn das Programm auf einem Computer ausgeführt wird.
DE112011103288.9T 2010-09-29 2011-08-17 Anpassbare, auf Inhalten beruhende Publish/Subscribe-Nachrichtenvermittlung Active DE112011103288B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10182332 2010-09-29
EP10182332.6 2010-09-29
PCT/EP2011/064187 WO2012041596A1 (en) 2010-09-29 2011-08-17 Adaptive content-based publish/subscribe messaging

Publications (2)

Publication Number Publication Date
DE112011103288T5 DE112011103288T5 (de) 2013-07-11
DE112011103288B4 true DE112011103288B4 (de) 2021-06-10

Family

ID=44503849

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011103288.9T Active DE112011103288B4 (de) 2010-09-29 2011-08-17 Anpassbare, auf Inhalten beruhende Publish/Subscribe-Nachrichtenvermittlung

Country Status (5)

Country Link
US (1) US10558716B2 (de)
CN (1) CN103154944A (de)
DE (1) DE112011103288B4 (de)
GB (1) GB2497263A (de)
WO (1) WO2012041596A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8438229B2 (en) * 2007-03-07 2013-05-07 True Engineering Technology, Llc System and method of supporting constructive discourse on computers and mobile devices
US9779082B2 (en) * 2008-01-02 2017-10-03 True Engineering Technology, Llc Portable self-describing representations of measurements
CN103944924B (zh) * 2014-05-15 2017-04-19 重庆邮电大学 一种基于RESTful的泛在网发布订阅中间件模型的方法
EP3291147A1 (de) 2016-08-30 2018-03-07 Hitachi, Ltd. System, verfahren und servervorrichtung zur verteilung von serviceanforderungen mit zur instandhaltung von industrieanlagen angeforderten wartungsdiensten
DE102016122384A1 (de) 2016-11-21 2018-05-24 Beckhoff Automation Gmbh Konzept zum steuern einer nachrichtenübermittlung zwischen kommunikationsteilnehmern eines automatisierungssystems
US10382307B1 (en) * 2016-12-22 2019-08-13 Amazon Technologies, Inc. Transmission of subscription-based messages to Internet of Things (IoT) devices
TWI678087B (zh) 2018-11-22 2019-11-21 財團法人工業技術研究院 訊息佇列發佈與訂閱之同步方法及其系統
WO2023287439A1 (en) * 2021-07-16 2023-01-19 Tracelink, Inc. Variable selection of different versions of an event handler

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030135556A1 (en) * 2001-12-14 2003-07-17 International Business Machines Corporation Selection of communication strategies for message brokers or publish/subscribe communications
US20050198285A1 (en) * 2004-01-27 2005-09-08 Sun Microsystems, Inc. Overload management in an application-based server
US20060179059A1 (en) * 2005-02-07 2006-08-10 International Business Machines Corporation Cluster monitoring system with content-based event routing
US20070073821A1 (en) * 2005-09-27 2007-03-29 Bea Systems, Inc. System and method for messaging kernal

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030061365A1 (en) * 2001-03-14 2003-03-27 Microsoft Corporation Service-to-service communication for network services
US8122118B2 (en) * 2001-12-14 2012-02-21 International Business Machines Corporation Selection of communication protocol for message transfer based on quality of service requirements
US7950011B2 (en) * 2005-10-10 2011-05-24 Oracle International Corporation Leveraging advanced queues to implement event based job scheduling
US20070121499A1 (en) * 2005-11-28 2007-05-31 Subhasis Pal Method of and system for physically distributed, logically shared, and data slice-synchronized shared memory switching
US20080037553A1 (en) * 2005-12-22 2008-02-14 Bellsouth Intellectual Property Corporation Systems and methods for allocating bandwidth to ports in a computer network
US8037093B2 (en) * 2006-09-12 2011-10-11 Facebook, Inc. Feeding updates to landing pages of users of an online social network from external sources
GB0709527D0 (en) * 2007-05-18 2007-06-27 Surfcontrol Plc Electronic messaging system, message processing apparatus and message processing method
CN101159711B (zh) * 2007-11-27 2010-06-02 航天东方红卫星有限公司 自适应的实时消息订阅与发布系统及方法
US9230002B2 (en) * 2009-01-30 2016-01-05 Oracle International Corporation High performant information sharing and replication for single-publisher and multiple-subscriber configuration
CN101510213B (zh) * 2009-03-23 2010-07-21 杭州电子科技大学 基于本体的大规模发布订阅流水线匹配方法
US8339957B2 (en) * 2009-06-26 2012-12-25 Google Inc. Aggregate transport control
US9054996B2 (en) * 2009-12-24 2015-06-09 Juniper Networks, Inc. Dynamic prioritized fair share scheduling scheme in over-subscribed port scenario

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030135556A1 (en) * 2001-12-14 2003-07-17 International Business Machines Corporation Selection of communication strategies for message brokers or publish/subscribe communications
US20050198285A1 (en) * 2004-01-27 2005-09-08 Sun Microsystems, Inc. Overload management in an application-based server
US20060179059A1 (en) * 2005-02-07 2006-08-10 International Business Machines Corporation Cluster monitoring system with content-based event routing
US20070073821A1 (en) * 2005-09-27 2007-03-29 Bea Systems, Inc. System and method for messaging kernal

Also Published As

Publication number Publication date
US20120079044A1 (en) 2012-03-29
GB201306652D0 (en) 2013-05-29
CN103154944A (zh) 2013-06-12
DE112011103288T5 (de) 2013-07-11
WO2012041596A1 (en) 2012-04-05
US10558716B2 (en) 2020-02-11
GB2497263A (en) 2013-06-05

Similar Documents

Publication Publication Date Title
DE112011103288B4 (de) Anpassbare, auf Inhalten beruhende Publish/Subscribe-Nachrichtenvermittlung
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
DE102013207049B4 (de) Überwachen der Datenstrompufferung zur Optimierung der Operatorverarbeitung
DE60309286T2 (de) Ereignisvermittlung
DE602004004321T9 (de) Vorrichtung und Verfahren zur Echtzeitbeurteilung einer Netzverwaltungsregel
DE112011102242T5 (de) Vorrichtung zum Verarbeiten einer Stapelarbeitseinheit
DE202012013432U1 (de) Speichern von Daten auf Speicherknoten
DE102011016866A1 (de) One-to-one metching in a contact center
DE102011016862A1 (de) Warteschlangenlose Hochleistungskontaktzentrale
DE102011016865A1 (de) View and metrics for a queueless contact center
DE102012223167B4 (de) Gemeinsame Nutzung von Artefakten zwischen kollaborativen Systemen
DE202014011539U1 (de) System zum verteilten Verarbeiten in einer Nachrichtenübermittlungsplattform
DE10240117A1 (de) Netzwerkbasiertes Informationsmanagement
DE102013200159A1 (de) Management von Sicherheitsrichtlinien unter Verwendung einer Störungsanalyse
DE10296682T5 (de) Integriertes Verfahren zur Aufteilung von Netzwerkdatendienstleistungen unter mehreren Teilnehmern
DE102008040009A1 (de) Lastverteiltes Zuweisen von medizinischen Taskflows auf Server einer Serverfarm
DE102011016856A1 (de) Automated mechanism for populating and maintaining data structures in an queueless contact center
DE202016008918U1 (de) Ein Dokumentenverifizierungssystem
DE102010028884A1 (de) Ursachenanalyse für Verarbeitung komplexer Ereignisse
DE112020004651B4 (de) Multi-tenant-etl-ressourcenaufteilung
DE112005001995B4 (de) Computeranordnung und Verfahren zum Anbieten von Diensten für Benutzer über ein Netzwerk
DE102013200030B4 (de) Hash-basiertes verwalten von speicher-ids
DE112018005359T5 (de) Verhindern eines Beibehaltens von Datensatzsperren durch Transaktionen mit langer Laufzeit
DE112012004301T5 (de) Erzeugen einer vorhersagenden Datenstruktur
DE102011016859A1 (de) Bitmaps für Kontaktzentrale der nächsten Generation

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016000000

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final