DE60307527T2 - Tupleraumoperationen für eine feinkörnige Systemsteuerung - Google Patents

Tupleraumoperationen für eine feinkörnige Systemsteuerung Download PDF

Info

Publication number
DE60307527T2
DE60307527T2 DE60307527T DE60307527T DE60307527T2 DE 60307527 T2 DE60307527 T2 DE 60307527T2 DE 60307527 T DE60307527 T DE 60307527T DE 60307527 T DE60307527 T DE 60307527T DE 60307527 T2 DE60307527 T2 DE 60307527T2
Authority
DE
Germany
Prior art keywords
tuples
tuple
features
memory
operator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60307527T
Other languages
English (en)
Other versions
DE60307527D1 (de
Inventor
Thomas RR3 Carp Gray
Daniel Hull Amyot
Oriane Cornwall Leger
Wendy Swastika Young
Wayne New Liskeard Young
Ian Kingston Lakins
John Kingston Day
Colin Kingston Banger
David Kingston Athersych
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.)
Mitel Networks Corp
Original Assignee
Mitel Networks 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 Mitel Networks Corp filed Critical Mitel Networks Corp
Publication of DE60307527D1 publication Critical patent/DE60307527D1/de
Application granted granted Critical
Publication of DE60307527T2 publication Critical patent/DE60307527T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2242/00Special services or facilities
    • H04M2242/30Determination of the location of a subscriber
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42365Presence services providing information on the willingness to communicate or the ability to communicate in terms of media capability or network connectivity
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Sub-Exchange Stations And Push- Button Telephones (AREA)
  • Telephonic Communication Services (AREA)

Description

  • Gebiet der Erfindung
  • Diese Erfindung betrifft im Allgemeinen globale assoziative Speichersysteme und im Speziellen einen erweiterten Handhabungssatz für eine verbesserte Leistung für eine feinkörnige Systemsteuerung eines Tupelraums.
  • Hintergrund der Erfindung
  • Tupelräume bieten eine einzigartige Form der Flexibilität beim gemeinsamen Benutzen von Information, sowie der Koordination von Anwendungen. Wie unten detaillierter beschrieben wird, sind Tupel eine Sammlung von Schlüsselwert-Paaren, die in einem Tupelraum gespeichert sind, der auf der Basis des Zusammenpassens von Anti-Tupeln mit Tupeln abgefragt werden kann. Das originale Linda Model von David Gelernter (N. Carriero und D. Gelernter, „Linda in context", Communications of the ACM, 32(4):444-458, April 1989) fand weit verbreitete Verwendung bei der Zusammenarbeit einzelner funktioneller Einheiten. Herkömmliche Tupelraum-Operationen werden an einzelnen Tupel als Koordinationsmechanismen durchgeführt, um eine grobkörnige Steuerung bereitzustellen. Solche Systeme nach dem Stand der Technik sind jedoch nicht geeignet, um eine feinkörnige Steuerung von Systemoperationen bereitzustellen.
  • Beispielsweise haben die Erfinder die Anwendung von Tupelräumen auf die Handhabung von Anwesenheits- und Standortsystemen in Erwägung gezogen, welche feinkörnige Operationen erfordern, in welchen für jede Statusänderung des Systems eine große Anzahl von Tupeln ausgegeben und zurückgezogen werden. Dementsprechend gibt es einen Bedarf, die herkömmlichen Tupelraum-Operationen auszuweiten, um eine Hochgeschwindigkeits-Ausgabe und -Zurückname einer großen Anzahl von Tupeln und Anti-Tupeln aufzunehmen.
  • Das Dokument mit dem Titel „LINDA for Case Base Retrieval: A case for Extending the Funktionality of LINDA and ist Abstract Machine" von Campbell und anderen offenbart ein Verfahren, um eine Tupel-Schablone zu übernehmen, und um eine Operation auf ein Tupel in dem Tupelraum durchzuführen, um zu Ermitteln, ob das Tupel zu der Tupelschablone passt.
  • Zusammenfassung der Erfindung
  • Die Erfindung ist in Anspruch 1 festgelegt. Einige optionale Merkmale der Erfindung sind in den abhängigen Ansprüchen festgelegt. Es wird eine Vielzahl neuer Tupelraum-Operatoren bereitgestellt, um die Leistungsfähigkeit von Tupel-Räumen zu erweitern, um eine feinkörnige Steuerung von Anwesenheits- und Standortsystemen bereitzustellen. Neue Deaktivierungs-/Aktivierungs- und Massen-Zeitmesser-Erweiterungs-Operatoren können simultan auf eine große Anzahl von Tupeln und Anti-Tupeln angewendet werden, wodurch die Ansprechempfindlichkeit des Systems verbessert wird.
  • Genauer gesagt werden in dem original Linda-Model Tupel und Anti-Tupel einer nach dem anderen von verschiedenen Operatoren in den Tupel-Raum eingefügt, und von diesem entfernt. Dies wurde für eine feinkörnige Steuerung eines Systems als unbefriedigend empfunden, da jede Änderung des Systemstatus das Entfernen und Einfügen einer großen Anzahl von Tupeln erfordern kann. Die neue Deaktivierungs-/Aktivierungs-Operation aktiviert oder deaktiviert alle Tupel, die zu einer Schablone passen, in einer einzelnen Operation. Tupel werden nicht entfernt oder eingefügt, wie im Stand der Technik, sondern werden mit einem neu definierten Flag markiert, welches anzeigt, das sie entweder einen Vergleich unterworfen werden sollen, oder nicht. Dies erweitert die Ansprechempfindlichkeit von Tupel-Räumen beträchtlich, wenn sie für eine feinkörnige Steuerung verwendet werden.
  • Viele Erweiterungen von Linda zielten auf das Problem der Tupel- „Speicherbereinigung" ab, indem sie individuelle Tupel-Zeitmesser bereitstellen, welche verwaiste Tupel zu ihrer Verfallszeit entfernen. Diese Lösung ist zweckdienlich, Zeitmes ser sind jedoch berüchtigt schwer zu handhaben. Ein zu kurzes Zeitlimit wird dem Standardbetrieb eines Systems destabilisieren, während ein zu langes Zeitlimit wertvollen Tupel-Speicher verschwendet. Die neue Massenzeitmesser-Erweiterungs-Operation erweitert automatisch die Zeitlimit-Dauer für alle Tupel, die zu einer bestimmten Schablone passen.
  • Die neu bereitgestellten Operationen gemäß der vorliegenden Erfindung ermöglichen es, Tupel-Räume als die Basisplattform für Aufruf-Verarbeitungs-Architekturen zu verwenden, was ein fliegendes Hinzufügen und Erzeugen von Merkmalen bereitstellt.
  • Kurze Beschreibung der Zeichnungen
  • Eine detaillierte Beschreibung der Erfindung ist hierin unten dargelegt, mit Bezugnahme auf die einzige Zeichnung, welche ein Blockdiagramm eines Hardwareunterstützten Tupel-Raums ist, um den Tupel-Raum mit erweiterten Operationen gemäß der bevorzugten Ausführungsform auszustatten.
  • Detaillierte Beschreibung der bevorzugten Ausführungsform
  • Bevor die Erfindung detailliert erörtert wird, wird unten eine kurze Einführung in die grundlegenden Strukturen und Operationen eines Tupel-Raumes dargelegt.
  • Ein Tupel-Raum ist ein Satz von nach Typ/Wert geordneten Paaren, welche Ingles genannt werden. Jedes Ingel besteht aus einem Typ (z.B. Name) und einem Wert (z.B. John Doe). Somit könnte ein Tupel, welches einen Angestellten einer Firma beschreibt, beispielsweise wie folgt sein:
    {:Name John Doe :Alter 37 :Mitarbeiternummer 12345 :Start Datum 810126 :Position T12}
  • Der Tupel-Raum ermöglicht eine Koordination, indem er Abfragen basierend auf dem Zusammenpassen von Tupeln und Anti-Tupeln zulässt. Ein Anti-Tupel ist ein Tupel, das als eine Abfrage in einem Tupel-Raum verwendet werden kann. In der Form ist es identisch zu einem Tupel, außer das der Wert von jeden oder allen Feldern durch ein „?" ersetzt werden kann, was eine „ist mir egal"-Bedingung anzeigt. Tupel-Räume werden aufgebaut, um Tupeln Anti-Tupeln zuzuordnen, welche in allen Feldern übereinstimmen, außer in dem, das von der ?-Abfrage angezeigt wird. Somit würde das Anti-Tupel:
    {:Name ? :Alter 37 :Mitarbeiternummer ? :Start_Datum ? :Position T12}
    die Tupel für alle Angestellten der Position T12 zurückgeben, die 37 Jahre alt sind.
  • Die herkömmlichen Operationen des Tupel-Raums bestehen aus:
    • Poke – Stelle ein Tupel in den Tupel-Raum. Es kann eine Dauer festgelegt werden, für wie lang dieses Tupel in den Raum verbleiben soll. Dies kann jede Zeitdauer sein, bis zu unbegrenzt.
    • Peek – Frage den Tupel-Raum mit einem Anti-Tupel ab. Diese Abfrage kann so bestimmt sein, dass sie für irgendeine Zeitdauer bis hin zu unbegrenzt andauert. Kopien zusammenpassender Tupel werden durch die Schnittstelle zurückgegeben und die Tupel verbleiben in den Tupel-Raum.
    • Pick – Abfrage des Tupel-Raums mit einem Anti-Tupel. Diese Abfrage kann so bestimmt sein, dass sie für jeden Zeitraum bis hin zu unbegrenzt andauert. Kopien zusammenpassender Tupel werden durch die Schnittstelle zurückgegeben, und die Tupel werden von dem Tupel-Raum entfernt.
    • Cancel – Entferne, mit dem bestimmten Anti-Tupel alle zusammenpassenden Anti-Tupel von dem Tupel-Raum. Tupel selbst können direkt durch eine geeignete Pick-Anfrage entfernt werden.
  • Nun zugewandt auf das Blockdiagramm, ist ein Hardware-basierender Tupel-Raum gezeigt, um die erweiterten Operationen gemäß der vorliegenden Erfindung umzusetzen. Ein Eingabe/Ausgabe-Puffer- und Steuerungsblock 10 ist vorgesehen, einschließlich Eingabe-Ausgabe-Puffern, einer Suchlogik, und Speicherhandhabungskomponenten. Die Eingabe-Ausgabe-Puffer verknüpfen das Gerät mit der äußeren Umwelt. Die Suchlogik und die Speicherhandhabungs-Funktionen führen die allgemeine Speichersteuerung für das Gerät durch, und führen alle Suchen aus. Es ist ein Tupel-Speicher 12 vorgesehen, um die Tupel zu speichern, und ein Anti-Tupel-Speicher 14 ist vorgesehen um die Anti-Tupe1 zu speichern, welche beide entweder unter Verwendung herkömmlichen RAMs oder in einer Software aufgeführt sein können. Es können mehrere Sitzungen aufgebaut werden, wobei Tupel und Anti-Tupel in den Raum übergeben werden, und Tupel und Anti-Tupel als Ergebnis der Operationen zurückgegeben werden. Innerhalb einer einzelnen Sitzung werden Tupel und Anti-Tupel gemeinsam mit dem gewünschten Operator in den Raum übergeben. Gemäß der vorliegenden Erfindung wird mit dem Tupel/Anti-Tupel die folgende Information übergeben: Operator, Tupel/Anti-Tupel, und ein Lebenszeit-Parameter. Die Suchlogik des Blocks 10 durchsucht den Tupel-Raum, und führt die angezeigten Operationen durch mittels spezieller Begrenzungs-Flags, der Zuweisung auf fixe entsprechende Speicherstellen, wie etwa Wortgrenzen, wie dies unten detaillierter erörtert wird.
  • Um die Geschwindigkeitsprobleme zu behandeln, die mit der Verwendung herkömmlichen RAMs für eine sequenzielle Suche verbunden sind, werden Tupel-Attribute in einem Feld gespeichert, und verwendet, um einen Mechanismus bereitzustellen, wobei unmögliche Tupel-Zuordnungen (unterschiedliche Anzahl von Schlüsselwertpaaren) identifiziert werden können, ohne dass man nach dem Tupel in dem Speicher suchen muss. Im Speziellen wird ein Tupel-Attribut-Feldspeicher (TAM) bereitstellt, welcher wichtige Attribute der gespeicherten Tupel und Anti-Tupel enthält. Es werden zwei bestimmte TAMs bereitgestellt – der Tupel-TAM (TTAM 16) für die Tupel-Speicherung und der Anti-Tupel-TAM (ATAM 18) für die Speicherung der Anti-Tupel.
  • Die Struktur der Daten in jedem TAM ist wie folgt:
    Figure 00060001
  • Die TAM-Felder 16 und 18 können verwendet werden, um den Zuordnungsprozess des Tupel-Raums zu beschleunigen. Insbesondere enthält jedes TAM-Feld zusätzlich zu dem Startpunkt im Speicher zusätzliche Informationen über das Tupel. Tupel/Anti-Tupel passen nur zusammen, wenn sie dieselbe Anzahl von Schlüsselwert-Paaren enthalten. Diese Information kann leicht von den ankommenden Tupeln/Anti-Tupeln erhalten, und mit der Information in dem Feld verglichen werden. Nur die Tupel, in denen die Anzahl der Schlüsselwert-Paare zusammenpassen, werden für ein weiteres Zuordnen, indem auf die Tupel selbst im Speicher zugegriffen wird, berücksichtigt.
  • Indem es Tupel gibt, welche sich in der Anzahl von Schlüsselwert-Feldern unterscheiden, um bestimmte Klassen zu identifizieren, werden somit nur diese Tupel mit derselben Anzahl dieser Felder verglichen. In dem die Tupel absichtlich nach ihrer Größe geordnet werden, um sie gemäß ihrer Klasse zu unterscheiden, wird eine verbesserte Suchgeschwindigkeit erzielt.
  • Gemäß der vorliegenden Erfindung können Tupel und Anti-Tupel unter Verwendung der ACT- und DEACT-Operatoren aktiviert oder deaktiviert werden (d.h. so markiert, dass sie in den Zuordnungsprozess einbezogen, oder von diesem ausgeschlossen werden). Wenn die Aktivierungs-Flag gesetzt ist, wird das Tupel in den Zuordnungsprozess eingeschlossen. Wenn es nicht gesetzt ist, dann wird es von dem Prozess ausgeschlossen. Die Verwendung der ACT- und DEACT-Operatoren verbessert die System-Geschwindigkeit, sowie das Ansprechvermögen von Anwendungen, bei denen eine große Anzahl von Tupeln oder Anti-Tupeln für eine Zusammenarbeit in verschiedenen Systemzuständen verwendet werden. Anstatt Zeit mit dem Eingeben und Entfernen von Tupeln und Anti-Tupeln bei jeder Zustandsänderung zu verschwenden, können sie in großen Mengen aktiviert oder deaktiviert werden.
  • Tupel und Anti-Tupel werden in ihren entsprechenden Speichern 12 und 14 in zusammenhängenden Gruppierungen gespeichert, die mit dem Anfang jedes Speichers beginnen. Alle niedrigeren Tupel werden nach oben bewegt, um die Lücken in den Gruppierungen aufzufüllen, die von gestrichenen Tupeln erzeugt werden. Neue Tupel werden dann am Ende des Speichers eingefügt. Wenn ein neues Tupel unbekannter Länge erhalten wird, ist keine Handlung erforderlich, um einen ausreichend bemessenen Freiraum im Speicher zu finden, um es zu fassen, im Gegensatz zu den oben erörterten Hardware-basierenden Systemen des Standes der Technik. Stattdessen wird das Tupel an das untere Ende des Speichers platziert. Dies bildet auch einen Gegensatz zu Software-basierten Speicherhandhabungs-Techniken, in denen die Fragmentierung ein wesentliches und häufiges Problem ist, welches viel Echtzeitverarbeitung benötigt.
  • Indem einen Zeitlimit-Wert für jedes Tupel verfolgt wird, wird ein effizienter Zeitmessungs-basierter Speicherbereinigungs-Prozess bereitgestellt, um das Problem verwaister Tupel zu handhaben, deren Besitzerobjekte beendet wurden, oder diese irrtümlich vergessen haben. Diese Tupel können den Speicher füllen, was zu Handhabungsproblemen führt, die einen Software-Eingriff und periodische Wieder-Initiierung des Freiraums erfordert. Gemäß der vorliegenden Erfindung werden die Zeitlimit-Werte in der Hardware eingeführt. Abgelaufene Tupel werden automatisch von dem Speicherhandhabungs-Prozess des Blocks 10 einfach als gestrichen markiert und dann von dem Speicher entfernt, wie detaillierter unten beschrieben ist.
  • Tupel werden in dem Tupel-Speicher 12 so gespeichert, dass individuelle Schlüssel und Werte von der Suchlogik des Blocks 10 ermittelt werden können. Es gibt mehrere wohl bekannte Verfahren, um diese Funktion durchzuführen, einschließlich der Verwendung spezieller Begrenzungs-Flags, der Zuweisung auf fixe entsprechende Speicherstellen, wie etwa Wortgrenzen, etc. Die Details, wie Tupel ermittelt werden, sind für die vorliegende Erfindung nicht wichtig. Eine bestimmte Ausführung ist unten dargelegt.
  • Der Betrieb des Hardware-unterstützen Tupel-Raums mit dem die Operatoren der vorliegenden Erfindung angewendet werden, wird unten mit Bezugnahme auf eine typische Pick-Operation dargelegt. Die Operationen für Poke, Peek und Cancel sind ähnlich, und wären einem Fachmann nach Durchlesen dieser Beschreibung klar.
  • Mit der Peek-Operation, wird ein Anti-Tupel von einem externen Prozess empfangen, und in die Eingabe-Ausgabe-Puffer des Blocks 10 gestellt. Die oben beschriebenen Attribute für das eingehende Anti-Tupel werden dann extrahiert, und im Gegenzug von der Such-Logik des Blocks 10 mit den Attributen der in dem TTAM 16 gespeicherten Tupel verglichen. Anfänglich wird der Zustand des Aktivierungs-Flags geprüft. Wenn diese für ein bestimmtes Tupel nicht gesetzt ist, wird dieses deaktiviert, und nicht für das Vergleichen verwendet, wie oben beschrieben. In diesem Fall bewegt sich die Suche zum nächsten Tupel. Wenn für dieses nächste Tupel das Aktivierungs-Flag gesetzt ist, wird das Tupel für den Vergleich verwendet, etc. Als nächstes wird die Anzahl der Schlüsselwert-Paar-Attribute der Anti-Tupel und der ausgewählten Tupel verglichen. Wenn diese nicht passen, dann gibt es keine Möglichkeit, dass das Tupel passt, und die Suche bewegt sich im Gegenzug zum nächsten Tupel. Wie zu sehen sein wird, führt das Vergleichen von Attributen zu einer schnellen Suche, welche die Gesamtgeschwindigkeit der Suche verbessert, indem unmögliche Übereinstimmungen ausgeschlossen werden.
  • Die Reihenfolge dieser Prüfungen ist nicht wichtig, und kann in der Anwendung umgekehrt werden. Die Analyse bestimmter Anwendungen kann aufdecken, dass mehr Suchzeit gespart werden kann, indem in einer Reihenfolge oder einer anderen gesucht wird. Diese Reihenfolge ist daher Anwendungs-spezifisch, und kann optional von dem Benutzer mit einer Logik in dem Gerät ausgewählt werden, wenn dies gewünscht wird.
  • Wenn die vorläufige Suche erfolgreich ist, führt die Suchlogik eine herkömmliche sequenzielle Suche durch, wobei im Gegenzug Schlüssel und Werte für die Tupel aus dem Tupel-Speicher 12 entnommen werden, und mit den entsprechenden Stellen in dem empfangenen Anti-Tupel verglichen werden. Dieser Vergleich beginnt an der Stelle im Speicher, die von dem TTAM-Startadressen-Attribut für das Tupel angezeigt wird. Die Suche fährt Stelle für Stelle fort, bis entweder das Ende des Tupels erreicht ist, was anzeigt, dass eine Übereinstimmung gefunden wurde, oder bis der erste Unterschied gefunden wird. Wenn ein Unterschied gefunden wird, dann untersucht die Such-Logik das nächste Tupel. Da dies eine Pick-Operation ist, wird, wenn eine Übereinstimmung gefunden wird, eine Kopie des Tupels zu dem Eingangs/Ausgangs-Puffern verschoben, und das Streich-Flag wird in der TTAM-Stelle für das übereinstimmende Tupel gesetzt. Am Ende des Prozesses wird der Tupel-Wert in der Eingabe-Ausgabe verwendet, um das übereinstimmende Tupel zu dem anfordernden Prozess zurückzugeben. Die gesetzte Streich-Flag zeigt der Suchlogik an, dass das Tupel von dem Speicher entfernt werden soll (dies wird unten mit Bezugnahme auf den Speicher-Handhabungs-Abschnitt detailliert beschrieben). Die Suche fährt Tupel für Tupel fort, bis alle Tupel-Attribute in TTAM 16 geprüft worden sind.
  • Am Ende des Prozesses werden die Attribute des empfangene Anti-Tupels an das untere Ende des ATAM-Speichers 18 gestellt, und das Anti-Tupel selbst wird an das untere Ende des Anti-Tupel-Speichers 14 gestellt. Dann wird der Speicherhandhabungsprozess auf den Inhalt des Tupel-Speichers und des ATAM-Speichers angewandt, wie detaillierter unten beschrieben wird.
  • Der oben dargelegte Algorithmus kann parallel quer über mehr als eine Kopie des Speicherlements in dem Blockdiagramm verwendet werden. In so einem Fall werden die TAM-, ATAM-, -Tupel-Speicher- und -Anti-Tupel-Speicher-Elemente nach Bedarf nachgebildet, und das Eingangs/Ausgangs-Element wird modifiziert, um von allen Speicherblöcken zurückgegebene Tupel aufzunehmen, und um den geeignetsten Speicherblock auszuwählen, um die eingehenden Tupel oder Anti-Tupel zu speichern.
  • Wenn der DEACT oder ACT-Operator in den Raum eingeführt wird, wird er mit den Attributen in dem ATAM-Speicher 18 verglichen. Von jedem Attribut, das zu der Schablone passt, wird das Aktivierungs-Flag auf den richtigen Status zurückgesetzt. In nachfolgenden Suchen, wenn neue Tupel übermittelt werden, werden Attribute für die Anti-Tupel, deren Aktivierungs-Flag von einem DEACT Operator zurückgesetzt wurde, nicht mit dem Tupel verglichen. Indem ein neu übermitteltes Tupel mit einem gespeicherten Anti-Tupel verglichen wird, wird der Zustand des zugeordneten Aktivierungs-Flags geprüft, bevor der Tupel-Vergleich Feld für Feld durchgeführt wird. Wenn das Aktivierungs-Flag von dem DEACT Operator zurückgesetzt worden ist, wird der Vergleichsprozess abgebrochen.
  • Der Prozess für das Aktivieren und Deaktivieren von Tupeln folgt einem identischen Muster, wobei neu übermittelte Anti-Tupel mit Tupeln verglichen werden, in Abhängigkeit des Zustandes des Aktivierungs-Flags, das mit dem Tupel-Attribut in dem TTAM 16 gespeichert ist.
  • Die Struktur der neuen Operatoren gemäß der vorliegenden Erfindung ist wie folgt:
    OPERATOR [Optionale Parameter] Tupel oder Anti-Tupel
  • Somit hat der DEACT-Operator für ein Tupel die Form:
    <DEACT FLAG> <ANZAHL VON FELDERN> <TUPEL>
  • Der AKT-Operator für ein Tupel hat die Form:
    <ACT FLAG> <ANZAHL VON FELDERN> <TUPEL>
  • Die ACT- und DEACT-Operatoren für Anti-Tupel folgen demselben Format.
  • Wie oben erörtert, sind für eine feinkörnige Steuerung typischerweise eine große Anzahl von Tupel und Anti-Tupel in einem bestimmten Status aktiv. Typischerweise gibt es auch mehrere Zustände für das System. Das Deaktivierungs-/Aktivierungs-Flag ermöglicht es, viele Tupel und Anti-Tupel innerhalb des Tupel-Raums zu aktivieren oder deaktivieren, ohne dass es erforderlich ist, dass sie, einer nach dem anderen, durch geeignete Post-, Pick- oder Peek-Operationen in den Raum gestellt werden. Dementsprechend kann eine Status-Wechsel-Kontexumschaltung in viel geringerer Zeit durchgeführt werden, als dies gemäß dem Stand der Technik möglich ist. In einer typischen Anwendung, werden alle Tupel und Anti-Tupel für alle Zustände zu einer Einrichtungszeit in den Tupel-Raum eingegeben, in ähnlicher Weise, wie das anfängliche Laden eines Programms. Die Tupel werden dann nur nach Bedarf deaktiviert und aktiviert.
  • Wie oben erörtert, werden die Tupel und Anti-Tupel mit einem Lebenszeit-Parameter ausgestattet (d.h. ein in dem TAM gespeicherter Zeitlimit-Wert). Dies ist üblich, und ist in vielen Anwendungen zu finden, um die Leistungsfähigkeit des Tupel-Raums vor verwaisten Tupeln und Anti-Tupeln zu schützen, die in den Raum gestellt wurden, und nicht länger gebraucht werden. Dies ist analog zur Speicherbereinigung in Objekt-orientierten Systemen (d.h. Objekte, die nicht verwendet werden, werden selbstständig entfernt). In gleicher Weise durchsucht in der vorliegenden Erfindung ein selbstständiger Prozess sowohl den Tupel-Speicher, als auch den Anti-Tupel-Speicher nach Tupeln und Anti-Tupeln, die abgelaufen sind. Wenn die Suche ermittelt, dass ein Tupel oder ein Anti-Tupel einen Lebenszeit-Parameter aufweist, der früher ist als die momentane Systemzeit, wird er entfernt.
  • Jedoch werden gemäß der vorliegenden Erfindung bestimmte Operatoren bereitgestellt: Einer, um die Tupel zu erweitern (TUPEL EXTEND) und der andere, um die Anti-Tupel zu erweitern (ANTI-TUPEL EXTEND).
  • Jeder Operator wird mit einem Parameter ausgegeben, der den Zeitbetrag anzeigt, um den das Tupel oder Anti-Tupel erweitert werden soll. In einer Situation, in der ein Prozess wünscht, das Leben seiner Tupel und Anti-Tupel zu erweitern, wird der Operator somit mit einer Schablone versehen (d.h. die Struktur der fixen und der „ist mir egal"-Felder) die nach Bedarf mit den Tupeln oder Anti-Tupeln verglichen wird.
  • Wenn passende Tupel oder Anti-Tupel vorhanden sind, erhält das Lebenszeitfeld den Wert des Erweiterungsfeldes in dem daran angefügten eingehenden Operator.
  • Die Struktur des TUPEL-EXTEND-Operators ist wie folgt:
    <TUPEL EXTEND> <ERWEITERUNGS-WERT> <TUPEL>
  • Die Struktur des ANTI-TUPEL-EXTEND ist wie folgt:
    <ANTI-TUPEL EXTEND> <ERWEITERUNGS-WERT> <ANTI-TUPEL>
  • Die Massen-Zeitmesser-Erweiterung der vorliegenden Erfindung ermöglichen es, eine große Anzahl von Tupeln oder Anti-Tupeln gleichzeitig zu identifizieren, und ihren Lebenszeit-Paramter zu erweitern. In herkömmlichen Systemen ist es erforderlich, diesen Prozess mit den geeigneten Post-, Peek- und Pick-Operatoren für einen Tupel/Anti-Tupel nach dem anderen durchzuführen, wodurch die Ansprech empfindlichkeit des Systems verringert wird, und das System für einen feinkörnigen Betrieb weniger geeignet ist.
  • Es sind Variationen und Modifikationen der bevorzugten Ausführungsform beabsichtigt, die in den Umfang der Erfindung fallen, die durch die angefügten Ansprüche festgelegt ist.

Claims (4)

  1. Verfahren zum Handhaben eines in einem Speicher (12, 14) implementierten hardwarebasierten Tupelraums, wobei das Verfahren aufweist: Speichern von Tupeln von Schlüsselwert-Paaren von Daten; Speichern von Anti-Tupeln von Schlüsselwert-Paaren von Daten; und Vergleichen der Schlüsselwert-Paare von den möglicherweise zusammenpassenden Tupeln und Anti-Tupeln um tatsächlich zusammenpassende Tupel und Anti-Tupel zu identifizieren; dadurch gekennzeichnet, dass das Verfahren weiters aufweist: Speichern ausgewählter Merkmale von entsprechenden der Tupeln und Anti-Tupeln, wobei jedes der ausgewählten Merkmale zumindest eine Aktivierungsmarkierung enthält, die, wenn sie gesetzt ist, entsprechende der Tupel und Anti-Tupel aktiviert, und wenn sie rückgesetzt ist, entsprechende der Tupel und Anti-Tupel deaktiviert; Einwirken auf die Merkmale um die Tupel und Anti-Tupel, die einer vorbestimmten Schablone entsprechen, selektiv zu aktivieren und zu deaktivieren; und Ausführen von vorläufigen Prüfungen der ausgewählten Merkmale, um nur die Tupel und Anti-Tupel als möglicherweise zusammenpassende Tupel und Anti-Tupel zu identifizieren, für die die Aktivierungsmarkierung gesetzt ist.
  2. Verfahren nach Anspruch 1, wobei der Schritt des Einwirkens auf die Merkmale aufweist, entweder einen ACT-, oder einen DEACT-Operator auf die Aktivierungsmarkierung anzuwenden, wobei der ACT- oder DEACT-Operator alle Tupel oder Anti-Tupel, die der vorbestimmten Schablone entsprechen, selektiv aktiviert oder deaktiviert.
  3. Verfahren nach Anspruch 1, welches weiters den Schritt aufweist, einen Zeitlimit-Wert als eines der Merkmale zu definieren, der die absolute Sys temzeit darstellt, zu der entsprechende der Tupel und Anti-Tupel automatisch von dem Tupelraum gestrichen werden sollen.
  4. Verfahren nach Anspruch 3, welches weiters den Schritt aufweist, auf die Merkmale einzuwirken, um den Zeitlimit-Wert selektiv zu erweitern, und wobei der Schritt des Einwirkens auf die Merkmale es beinhaltet, entweder einen TUPEL EXTEND-, oder einen ANTI-TUPEL EXTEND-Operator auf den Zeitlimit-Wert anzuwenden, wobei der TUPEL EXTEND- oder ANTI-TUPEL EXTEND-Operator den Zeitlimit-Wert aller Tupel oder Anti-Tupel, die einer bestimmten Schablone entsprechen, selektiv erweitert.
DE60307527T 2002-01-14 2003-01-14 Tupleraumoperationen für eine feinkörnige Systemsteuerung Expired - Lifetime DE60307527T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0200745.8A GB0200745D0 (en) 2002-01-14 2002-01-14 Tuple space operations for fine grained system control
GB0200745 2002-01-14

Publications (2)

Publication Number Publication Date
DE60307527D1 DE60307527D1 (de) 2006-09-28
DE60307527T2 true DE60307527T2 (de) 2007-04-19

Family

ID=9929031

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60307527T Expired - Lifetime DE60307527T2 (de) 2002-01-14 2003-01-14 Tupleraumoperationen für eine feinkörnige Systemsteuerung

Country Status (5)

Country Link
US (1) US6704734B2 (de)
EP (2) EP1329810B1 (de)
CA (1) CA2416070C (de)
DE (1) DE60307527T2 (de)
GB (1) GB0200745D0 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8644475B1 (en) 2001-10-16 2014-02-04 Rockstar Consortium Us Lp Telephony usage derived presence information
GB2382946A (en) * 2001-12-06 2003-06-11 Mitel Knowledge Corp Displaying user availability
GB0200745D0 (en) * 2002-01-14 2002-02-27 Mitel Knowledge Corp Tuple space operations for fine grained system control
GB0200747D0 (en) * 2002-01-14 2002-02-27 Mitel Knowledge Corp Hardware-assisted tuple space
US7035923B1 (en) 2002-04-10 2006-04-25 Nortel Networks Limited Presence information specifying communication preferences
US8392609B2 (en) 2002-09-17 2013-03-05 Apple Inc. Proximity detection for media proxies
US7711810B2 (en) 2003-01-03 2010-05-04 Nortel Networks Limited Distributed services based on presence technology
US7702729B2 (en) * 2003-04-08 2010-04-20 Johanson Bradley E Event heap: a coordination infrastructure for dynamic heterogeneous application interactions in ubiquitous computing environments
US9118574B1 (en) 2003-11-26 2015-08-25 RPX Clearinghouse, LLC Presence reporting using wireless messaging
US8229454B1 (en) 2004-03-22 2012-07-24 Avaya Inc. Personal location information management
GB0425309D0 (en) * 2004-11-17 2004-12-15 Ibm Deleting expired items in queue data structure
KR101483669B1 (ko) * 2013-11-20 2015-01-16 주식회사 사운들리 저전력 음파 수신 방법 및 이를 이용한 모바일 기기
US10938561B2 (en) * 2018-06-21 2021-03-02 International Business Machines Corporation Tuple level security for streams processing

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5893108A (en) 1994-12-29 1999-04-06 International Business Machines Corporation System, method, and computer program product for efficiently translating relational tuples to object-oriented objects
GB2351870B (en) * 1999-07-09 2001-09-19 Mitel Corp Feature interaction resolution using fuzzy rules
GB2375264B (en) * 2001-05-02 2004-10-13 Mitel Knowledge Corp Remote assembly of messages for distributed applications
GB0200745D0 (en) * 2002-01-14 2002-02-27 Mitel Knowledge Corp Tuple space operations for fine grained system control
GB0200747D0 (en) * 2002-01-14 2002-02-27 Mitel Knowledge Corp Hardware-assisted tuple space

Also Published As

Publication number Publication date
DE60307527D1 (de) 2006-09-28
GB0200745D0 (en) 2002-02-27
US20030135515A1 (en) 2003-07-17
CA2416070C (en) 2008-04-01
CA2416070A1 (en) 2003-07-14
US6704734B2 (en) 2004-03-09
EP1329810B1 (de) 2006-08-16
EP1329810A1 (de) 2003-07-23
EP1703390A1 (de) 2006-09-20

Similar Documents

Publication Publication Date Title
DE69112694T2 (de) Verfahren zum Betrieb eines Datenverarbeitungssystems zur Ausführung von Datenbanktransaktionen.
DE3784190T2 (de) Eintragung eines datenbasisindex in das journal zur verbesserten rueckstellung.
DE69031491T2 (de) Hypertextdatenverarbeitungssystem und Verfahren
DE69533193T2 (de) Paralleles verarbeitungssystem zum durchlaufen einer datenbank
DE3855475T2 (de) Software-Verwaltungsstruktur
DE3856055T2 (de) Verfahren und Einrichtung, um gleichzeitigen Zugriff zu indizierten sequentiellen Dateien zu ermöglichen
DE69107506T2 (de) Verfahren und Vorrichtung zur Gleichzeitigkeitssteuerung von gemeinsamen Datenaktualisierungen und Abfragen.
DE4218025C2 (de) Vorrichtung und Verfahren zur automatischen Zuordnung von Datenspeichereinrichtungen in einem Computersystem
DE60307527T2 (de) Tupleraumoperationen für eine feinkörnige Systemsteuerung
EP0855062B1 (de) Informationssystem und verfahren zur speicherung von daten in einem informationssystem
DE69024932T2 (de) Verfahren um Dokumente, die ein bestimmtes Attribut haben, mit Hilfe eines vektorrelationalen charakteristischen Objektes zu identifizieren
DE3911465C2 (de) Verfahren zur automatischen Konfiguration technischer Systeme aus Komponenten
DE60030872T2 (de) Verfahren und anordnung um atomische aktualisierungen durchzuführen durch verwendung eines logischen flaschspeichergerätes
DE1499182C3 (de) Datenspeichersystem
DE60035432T2 (de) System zur verwaltung der rdbm fragmentierungen
DE252930T1 (de) Datenverarbeitungsverfahren und -geraet.
DE19844013A1 (de) Strukturierter Arbeitsordner
DE69127399T2 (de) Verfahren zur automatischen Löschung vorübergehender Dokumentverbindungen in einem Datenverarbeitungssystem
DE3855494T2 (de) Abfragevorrichtung und -methode
DE112019000627T5 (de) Speicherstrukturbasiertes Coherency Directory Cache
DE3518818C2 (de)
EP1276056B1 (de) Verfahren zum Verwalten einer Datenbank
DE3878868T2 (de) Generator fuer periodische zeitsignale des fractaltyps.
DE68928782T2 (de) Datenverwaltungssystem
DE2603555A1 (de) Informationsverarbeitungssystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: GROSSE, SCHUMACHER, KNAUER, VON HIRSCHHAUSEN, 8033