-
In
vielen derzeitigen verteilten Rechenumgebungen ist es oftmals erwünscht, Dateien,
die von einer Vielzahl von Clients gemeinsam genutzt werden können, zentralisiert
zu führen. Üblicherweise
wird ein herkömmliches
verteiltes Dateisystem verwendet, um die gemeinsame Nutzung von
Dateien zu unterstützen.
In einem derartigen System kann ein Client durch aktives Interagieren
mit einem Dateiserver, der die gemeinsam genutzte Datei führt, Zugriff
auf eine gemeinsam genutzte Datei erhalten. Speziell kann der Client
von dem Dateiserver einen Datei-Handler beziehen und die Datei durch
das Übertragen
von Änderungen
zu dem Dateiserver modifizieren. Eine solche Technik zur gemeinsamen
Dateinutzung wird üblicherweise
als Live-Sharing bezeichnet. Weil für diese Art der gemeinsamen
Dateinutzung eine große
Menge an Datenkommunikationen zwischen dem Dateiserver und den Clients
erforderlich ist, kann der mit dem Live-Sharing verbundene Ressourcen-Overhead
sehr erheblich sein.
-
Einige
verteilte Dateisysteme ermöglichen Clients
derzeit, Dateidaten in einem Cache von Computerspeichern von Clients
zu speichern. Speziell kann ein Client in seinem Speicher lokale
Kopien von Dateien und Dateiverzeichnissen, die durch einen Dateiserver
verwaltet werden, speichern. Diese lokalen Kopien unterstützen die
gemeinsame Dateinutzung dadurch, dass der Client befähigt wird,
problemlos festzustellen, welche Dateien und Dateiverzeichnisse
auf dem Server verfügbar
sind. Der Client muss sich jedoch periodisch mit dem Server in Verbindung setzen,
um die in einem Cache gespeicherten Dateidaten zu synchronisieren,
so dass sichergestellt ist, dass die Daten aktuell sind. Das Synchronisieren
von in einem Cache gespeicherten Dateidaten ist teuer, insbesondere
für einen
Server mit vielen Clients, die Dateidaten in einem Cache speichern.
Wenn sich beispielsweise ein Client nach einem Trennungs-Zeitraum
erneut mit einem Server verbindet, muss der Client die gesamten
Dateidaten, die aus dem Server in einem Cache gespeichert wurden, synchronisieren,
weil der Client nicht weiß,
welche Dateien oder Dateiverzeichnisse auf dem Server in dem Trennungs-Zeitraum
modifiziert wurden. Weil der mit der Synchronisation verbundene
Arbeitsaufwand proportional zu der Anzahl von Dateien und Dateiverzeichnissen
ist, die in einem Cache gespeichert sind, begrenzen einige Systeme
die Anzahl von Dateien und Dateiverzeichnissen, die jeder Client
in einem Cache speichern darf.
-
In
letzter Zeit erfreut sich die mobile Rechenumgebung zunehmender
Beliebtheit. In einer derartigen Umgebung können Clients oft für einen
längeren Zeitraum
von dem Netzwerk getrennt sein. Dies stellt für verteilte Dateisysteme eine
besondere Herausforderung dar. Beispielsweise kann die erforderliche Synchronisierung
nicht erfolgen, während
die mobilen Clients nicht mit dem Netzwerk verbunden sind. Zusätzlich wünschen die
Benutzer immer öfter,
dass Clients einen wesentlichen Teil von Serverdateien und Dateiverzeichnissen
in einem Cache speichern. Diese in einem Cache gespeicherten Daten
müssen synchronisiert
werden, wenn sich die mobilen Clients erneut mit dem Netzwerk verbinden.
Das Synchronisieren dieser großen
Datenmenge erfordert eine signifikante Menge an Client-Server-Kommunikationen und
an Rechenressourcen und führt
zu einer Situation, die sich bei vielen Anwendungen verbietet.
-
Ein
effektives und effizientes Verfahren zum Speichern von Dateien in
einem Cache durch Clients in einem verteilten Dateisystem ist dem
Fachmann in dieser Technik nicht bekannt.
-
Barabará, D.,
et al., „Sleepers
and Workaholics: Caching Strategies in Mobile Environments". Sigmod Record Associaton
for Computing Machinery, New York, USA, Band 23, Nr. 2, 01. Juni
1994, Seiten 1 bis 12 betrifft eine drahtlose Rechenumgebung, in
der ein Server über
einen Funkkanal mit mobilen Clients kommuniziert. Das Speichern
von Datenelementen, auf die häufig
zugegriffen wird, in einem Cache ist eine Technik zum Reduzieren
der Konkurrenzsituation auf dem Schmalbandfunkkanal zwischen einem
Client und einem Server. Beim Speichern von Daten in einem Cache
in Mobileinheiten muss berücksichtigt
werden, wie die Mobileinheiten darüber informiert werden, dass
sich ihre in einem Cache gespeicherten Elemente geändert haben.
Dafür kommen
mehrere Möglichkeiten
in Betracht. Eine Option ist, dass der Server Gültigkeitsnachrichten zu den Clients
sendet. Das Andrew-Dateisystem ist ein Beispiel einer Client-Server-Architektur,
die diese Option nutzt. An Clients, die dabei sind, das bestimmte
Element in einem Cache zu speichern, wird eine Ungültigkeitsnachricht
in Bezug auf ein Element, das sich gerade geändert hat, gesendet. Zu diesem
Zweck muss der Server die entsprechenden Clients lokalisieren. Der
Server ist in diesem Fall zustandshaft, da er Kenntnis über den
Zustand der Caches der Clients hat. Eine weitere Option ist die,
dass der Server (periodisch oder asynchron) einen Bericht rundsendet, in
dem nur die Datenbankelemente, die aktualisiert wurden, rundgesendet
werden.
-
Es
ist deshalb die Aufgabe der vorliegenden Erfindung, ein verbessertes
Verfahren zum Speichern von Dateien in einem Cache durch Clients
in einem verteilten Dateisystem und ein entsprechendes System dafür bereitzustellen.
-
Diese
Aufgabe wird durch die vorliegende Erfindung und insbesondere durch
den Gegenstand der unabhängigen
Ansprüche
gelöst.
Bevorzugte Ausführungen
sind Gegenstand der abhängigen
Ansprüche.
-
Kurz
gesagt, stellt die vorliegende Erfindung ein System und ein Verfahren
zum Verwalten von in einem Cache gespeicherten Objekten unter Verwendung
von Mitteilungsverbindungen bereit. In einem Aspekt ist die Erfindung
auf ein computerimplementiertes Verfahren für einen Client zur Interaktion
mit einem Server unter Verwendung von Mitteilungsverbindungen gerichtet.
Der Server verwaltet ein Original-Objekt. Der Client erzeugt von
dem Original-Objekt ein in einem Cache gespeichertes Objekt und richtet
mit dem Server eine Mitteilungsverbindung ein. Die Mitteilungsverbindung
befähigt
den Client in Reaktion auf ein objektbezogenes Ereignis, das mit dem
Original-Objekt verknüpft
ist, eine Mitteilung von dem Server zu erhalten.
-
In
einem weiteren Aspekt ist die Erfindung auf ein computerimplementiertes
Verfahren für
einen Server zur Interaktion mit einem Client unter Verwendung von
Mitteilungsverbindungen gerichtet. Der Server richtet mit dem Client
eine Mitteilungsverbindung ein. Der Server befähigt den Client, das Objekt in
einem Cache zu speichern und stellt Mitteilungen für den Client
bereit, wenn ein objektbezogenes Ereignis eintritt.
-
In
einem weiteren Aspekt ist die Erfindung auf ein verteiltes Dateisystem
zur gemeinsamen Nutzung von Objekten unter Verwendung von Mitteilungsverbindungen
gerichtet. Das verteilte Dateisystem enthält einen Server, der so konfiguriert
ist, dass er Original-Objekte
verwaltet. Der Server enthält
einen Verbindungs-Manager, der so konfiguriert ist, dass er Mitteilungsverbindungen
an Clients ausgibt. Das verteilte Dateisystem kann außerdem einen
Client enthalten, der so konfiguriert ist, dass er in einem Cache
gespei cherte Objekte, die mit den Original-Objekten verknüpft sind,
erzeugt. Der Client enthält
einen Mitteilungs-Handler, der so konfiguriert ist, dass er Mitteilungsverbindungen,
die mit dem Original-Objekt verknüpft sind, in Verbindung mit
dem Server führt.
-
1 ist
ein schematisches Diagramm eines beispielhaften Verwaltungssystems
für in
einem Cache gespeicherte Objekte, das die vorliegende Erfindung
implementiert;
-
2 ist
ein schematisches Diagramm eines Mitteilungs-Handler und eines Mitteilungs-Managers;
-
3 ist
ein schematisches Diagramm von beispielhaften Verbindungen zwischen
einem Client und einem Server in einem Verwaltungssystem für in einem
Cache gespeicherte Objekte;
-
4 ist
ein schematisches Diagramm einer beispielhaften ersten Filtertabelle;
-
5 ist
ein schematisches System einer beispielhaften Serververbindungs-Tabelle;
-
6 ist
ein schematisches Diagramm einer beispielhaften Clientverbindungs-Tabelle;
-
7 ist
ein Betriebsablaufdiagramm eines Prozesses für einen Client, um eine Mitteilungsverbindung
mit einem Server für
ein durch den Server verwaltetes Objekt einzurichten;
-
8 ist
ein Betriebsablaufdiagramm eines Prozesses für einen Server zum Einrichten
einer Mitteilungsverbindung mit einem Client für ein Objekt;
-
9 ist
ein Betriebsablaufdiagramm eines Prozesses für einen Server, um eine Mitteilung
zu einem Client zu senden;
-
10 ist
ein schematisches Diagramm eines Prozesses für einen Client, um seine in
einem Cache gespeicherten Objekte mit einem Server zu synchronisieren;
-
11 ist
ein schematisches Diagramm eines Prozesses für einen Client, um eine Mitteilungsverbindung
abzubauen, und
-
12 ist
ein schematisches Diagramm eines Prozesses für einen Server, um gemäß Ausführungen
der Erfindung eine Mitteilungsverbindung abzubauen.
-
Die
Erfinder der vorliegenden Erfindung haben festgestellt, dass ein
verteiltes Dateisystem, das Clients befähigt, durch einen Server verwaltete
Objekte in einem Cache zu speichern, die Leistung des Systems bei
der gemeinsamen Objektnutzung wesentlich verbessert. Die Erfinder
haben ebenso festgestellt, dass das Befähigen eines Client schnell
festzustellen, welche Objekte auf dem Server modifiziert wurden,
während
der Client offline war, den mit dem erneuten Bestätigen der
in dem Cache des Client gespeicherten Objekte verbunden Arbeitsaufwand
wesentlich reduziert. Infolgedessen konzentriert sich die vorliegende
Erfindung auf ein System und ein Verfahren zum Verwalten von in
einem Cache gespeicherten Objekten unter Verwendung von Mitteilungsverbindungen.
Die Art und Weise, in der die Objekte durch die vorliegende Erfindung
verwaltet werden, unterscheidet sich wesentlich von den herkömmlichen
Verfahren zum Speichern von Dateien in einem Cache. Die herkömmlichen
Verfahren erfordern beispielsweise das Aktualisieren jeder in einem
Cache gespeicherten Datei auf Basis jedes einzelnen Elements. Diese
Verfahren erfordern eine erhebliche Menge an Verwaltungsressourcen
und können
zur Freigabe von verfallenen in einem Cache gespeicherten Dateien
für Anwendungen
und Benutzer führen.
Andere herkömmliche
Verfahren erfordern das Vergleichen aller in einem Cache gespeicherten
Dateien mit den entsprechenden Dateien auf dem Server, um diese
zu synchronisieren. Synchronisieren des gesamten Cache-Inhalts durch
Vergleichen verursacht eine signifikante Leistungslast für die Clients, den
Server und das Netzwerk. Diese Probleme werden durch Techniken zum
Einsetzen von Cache-Zuständen,
während
der Client von dem Server getrennt ist, verschlimmert, da es nicht
möglich
ist, neu zu bestätigen,
während
der Client offline ist.
-
Im
Gegensatz dazu befähigt
die vorliegende Erfindung einen Client, schnell festzustellen, welche Objekte
auf einem Server relativ zu den entsprechenden in einem Cache gespeicherten
Objekte geändert wurden,
und diese in einem Cache gespeicherten Objekte effizient zu synchronisieren,
so dass sie mit den geänderten
Objekten übereinstimmen.
Für ein Objekt,
das durch einen Client in einem Cache gespeichert wird, wird eine
mit dem Objekt verknüpfte Mitteilungsverbindung
eingerichtet. Die Mitteilungsverbindung befähigt den Client, über Änderungen, die
an einem Objekt vorgenommen wurden, benachrichtigt zu werden. Der
Client und der Server halten Zustände, die mit dem der Mitteilungsverbindung
verknüpft
sind. Diese Mitteilungsverbindungs-Zustände werden üblicherweise in einem Dauerspeicher
gespeichert, wodurch der Client und der Server in der Lage sind,
diese Zustände
nach einem Wiederanlauf oder Neustart einzurichten.
-
Diese
Zustände
ermöglichen
dem Client, ein in einem Cache gespeichertes Objekt zu aktualisieren,
ohne alle anderen in einem Cache gespeicherten Objekte neu bestätigen lassen
zu müssen.
Diese und weitere Aspekte der Erfindung werden nach Lektüre der folgenden
ausführlichen
Beschreibung offensichtlich.
-
Die 1 ist
ein schematisches Diagramm eines beispielhaften Verwaltungssystems 100 für in einem
Cache gespeicherte Objekte gemäß einer Ausführung der
vorliegenden Erfindung. In anderen Konfigurationen kann das Verwaltungssystem 100 für in einem
Cache gespeicherte Objekte mehr oder weniger Komponenten als in
der 1 gezeigt haben. Wie in der Figur gezeigt, enthält das Verwaltungssystem 100 für in einem
Cache gespeicherte Objekte Komponenten auf dem Server 103 und
Clients 121 bis 123.
-
Der
Server 103 ist eine Rechnervorrichtung, die so konfiguriert
ist, dass sie Objekte verwaltet und die gemeinsame Nutzung der Objekte
für die
Clients 121 bis 123 unterstützt. Der Server 103 kann
einen Computer oder mehrere Computer enthalten. Jeder Computer ist üblicherweise
mit einem Speicher ausgelegt, der computerlesbare Medien, wie einen
RAM, einen ROM, ein Festplattenlaufwerk, ein optisches Laufwerk
usw., enthalten kann. In dieser Ausführung enthält der Speicher einen Verbindungs-Manager 105,
einen Dateisystem-Manager 107 und Original-Objekte 109.
Der Dateisystem-Manager 107 ist eine Softwarekomponente
des Dateiservers 103 und ist so konfiguriert, dass er für den Server 103 Original-Objekte
behandeln kann. Ein Beispiel eines Dateisystem-Managers 107 ist NTFS, entwickelt
von Microsoft. Die Original-Objekte 109 sind Datenstrukturen
in dem Server 103, die durch die Clients 121 bis 123 gemeinsam
genutzt werden können.
Die Original-Objekte 109 können jede Art von Datenstruktur, wie
zum Beispiel Dateiverzeichnisse oder jede Art von Daten, wie ausführbare Programme,
Daten usw., sein. Die Original-Objekte 109 werden üblicherweise in
Massendaten-Speichereinheiten,
wie zum Beispiel Festplatten, gespeichert. In solchen Massendaten-Speichereinheiten
kann ein Objekt durch seinen Speicherort in der Festplatte, wie
beispielsweise eine Datenträger-ID,
eine Datei-ID, einen Dateipfad, identifiziert werden.
-
Der
Verbindungs-Manager 105 ist eine Softwarekomponente des
Servers 103 und ist so konfiguriert, dass er Clients über Änderungen
an Objekten, die durch Clients in einem Cache gespeichert sind, benachrichtigen
kann. Der Verbindungs-Manager 105 kann als ein Teil einer
anderen Komponente, wie zum Beispiel dem Dateisystem-Manager 107, integriert
werden oder als eine separate Komponente, wie zum Beispiel ein Filter,
umgesetzt werden. Der Verbindungs-Manager 105 ist so konfiguriert,
dass er mit den Mitteilungs-Handler 131 bis 133 abgestimmt ist,
um die in einem Cache gespeicherten Objekte 141 bis 143 aktuell
zu halten. Der Verbindungs-Manager 105 wird in Verbindung
mit der 2 ausführlicher erörtert. Kurz gesagt, richtet
der Verbindungs-Manager 105 Mitteilungsverbindungen mit den
Mitteilungs-Handler 131 bis 133 ein, um mit den in
einem Cache gespeicherten Objekten 141 bis 143 verknüpfte Mitteilungen
bereitzustellen. Die Mitteilungen befähigen die Clients 121 bis 123,
zu bestimmen, welche der in einem Cache gespeicherten Objekte 141 bis 143 aktualisiert
werden müssen.
-
Der
Server 103 ist so konfiguriert, dass er durch das Netzwerk 110 mit
den Clients 121 bis 123 kommuniziert, wobei das
Netzwerk 110 jede Art von Netzwerk sein kann, wie zum Beispiel
das Internet oder jedes Weitverkehrsnetz (WAN), Nahverkehrsnetz
(LAN), drahtlose Netzwerk usw. Die Kommunikationen zwischen dem
Server 103 und den Clients 121 bis 123 werden
in Verbindung mit der 3 ausführlicher erörtert. Kurz gesagt, ist der
Server 103 so konfiguriert, dass er mit den Clients 121 bis 123 kommuniziert,
um Verbindungen einzurichten, Mitteilungen zu senden und die in
einem Cache gespeicherten Objekte 141 bis 143 zu
synchronisieren usw. Die Kommunikationen zwischen Clients und Server
erfolgen über
computerlesbare Medien.
-
Die
Clients 121 bis 123 sind Rechnervorrichtungen
die so konfiguriert sind, dass sie auf Objekte von dem Server 103 zugreifen.
Die Clients 121 bis 123 können mit einer aktiven Kommunikationsverbindung
mit dem Server 103 interagieren. Die Clients 121 bis 123 können ebenso
ohne eine Verbindung mit dem Server 103 arbeiten. Die Clients 121 bis 123 sind
so konfiguriert, dass sie Benutzer befähigen, direkt auf ihnen zu
arbeiten, oder dass sie als ein Server für andere Rechnervorrichtungen
arbeiten. Jeder der Clients 121 bis 123 ist mit
einem Speicher konfiguriert, der jede Art von computerlesbarem Medium enthalten
kann. Die Speicher der Clients 121 bis 123 enthalten
die in einem Cache gespeicherten Objekte 141 bis 143 und
die Mitteilungs-Handler 131 bis 133. Die in einem
Cache gespeicherten Objekte 141 bis 143 werden
von Original-Objekten 109, die nützlich für den Benutzer sind, repliziert.
Die in einem Cache gespeicherten Objekte 141 bis 143 können nicht
mit ihren entsprechenden Original-Objekten 109 auf dem Server 103 synchronisiert
werden, wenn die Verbindungen zwischen den Clients 121 bis 123 und
dem Server 103 nicht eingerichtet sind oder verloren gegangen
sind. Um für
die Clients 121 bis 123 nützlich zu sein, müssen die
in einem Cache gespeicherten Objekte 141 bis 143 mit
den entsprechenden Original-Objekten 109 synchronisiert
sein. Mit dieser Erfindung können
die Clients 121 bis 123 die in einem Cache gespeicherten
Objekte 141 bis 143 unter Verwendung von Mitteilungen,
die diesen Objekten entsprechen, synchronisieren.
-
Die
Mitteilungs-Handler 131 bis 133 sind Komponenten
der Clients 121 bis 123, die die Kommunikationen
und die Datenverwaltung, die sich auf Mitteilungen beziehen, abwickeln.
Die Mitteilungs-Handler 131 bis 133 werden in
Verbindung mit der 2 ausführlich erörtert. Kurz gesagt, sind die Mitteilungs-Handler 131 bis 133 so
konfiguriert, dass sie Mitteilungsverbindungen mit dem Server 103 einrichten
und dass sie für
die Clients 121 bis 123 Mitteilungen und die Synchronisation
von in einem Cache gespeicherten Objekten abwickeln.
-
Die 2 ist
ein schematisches Diagramm eines Mitteilungs-Handler 131 und
eines Verbindungs-Managers 105 gemäß einer Ausführung der Erfindung.
In dieser Ausführung
enthält
der Verbindungs-Manager 105 eine Filterkomponente 205 und eine
Dienstkomponente 210. Die Filterkomponente 205 ist
so konfiguriert, dass sie objektbezogene Ereignisse, die in dem
Dateisystem-Manager des Servers 103 eingehen und von diesem
ausgehen, überwachen
kann. Diese objektbezogenen Ereignisse können Objekte einschließen, die
durch einen Client, wie den Client 121, in einem Cache
gespeichert sind. Der Verbindungs-Manager 105 kann so konfiguriert sein,
dass er in Reaktion auf diese Ereignisse Mitteilungen für den Client 121 erzeugt.
Die Filterkomponente 205 ist so konfiguriert, dass sie
unter Verwendung einer Filtertabelle 207 feststellen kann,
welche objektbezogenen Ereignisse Mitteilungen erforderlich machen,
und diese Objekte zu der Dienstkomponente 210 weiterleiten
kann. Die Filtertabelle 207 identifiziert Objekte, die
Mitteilungen erforderlich machen. Eine beispielhafte Datenstruktur
der Filtertabelle 207 wird in Verbindung mit der 4 detailliert erörtert.
-
Die
Dienstkomponente 210 ist so konfiguriert, dass sie Mitteilungsverbindungen
mit Clients zum Empfangen von Mitteilungen in Bezug auf Änderungen
in Objekten, die durch die Clients in einem Cache gespeichert sind,
einrichten kann. In dieser Ausführung
führt die
Dienstkomponente 210 eine Serververbindungs-Tabelle 215,
die Zustände
enthält,
die mit den Mitteilungsverbindungen verknüpft sind. Die Serververbindungs-Tabelle 215 identifiziert Objekte,
die Mitteilungen erfordern, und Tabelle 215 identifiziert
Objekte, die Mitteilungen erfordern, und enthält die Zustände, die die Dienstkomponente 210 befähigen, die
Mitteilungen für
Clients zu erzeugen. Die Mitteilungen für die Clients können durch
verschiedene Verfahren bereitgestellt werden. In einer Ausführung ist
die Dienstkomponente 210 so konfiguriert, dass sie Mitteilungs-Protokolle 217 führt, die Mitteilungen
für den
Mitteilungs-Handler 131 enthalten. Eine Konfiguration dieser
Ausführung
umfasst das Konfigurieren der Dienstkomponente 210, um den
Mitteilungs-Handler 131 zu befähigen, die Mitteilungs-Protokolle 217 zu
empfangen. Eine weitere Konfiguration umfasst das Konfigurieren
der Dienstkomponente 210, um in Reaktion auf ein Ereignis, wie
zum Beispiel das Ablaufen einer bestimmten Zeitdauer oder, dass
die Größe der Mitteilungs-Protokolle 217 einen
Schwellenwert übersteigt
usw., Mitteilungs-Protokolle 217 zu dem Mitteilungs-Handler 131 zu
senden.
-
In
einer anderen Ausführung
kann die Dienstkomponente 210 so konfiguriert sein, dass
sie Mitteilungen zu dem Mitteilungs-Handler sendet, wenn eine aktive
Kommunikationsverbindung verfügbar
ist. Der Mitteilungs-Handler kann so konfiguriert sein, dass er
Mitteilungen in Mitteilungs-Protokollen 217 aufzeichnet,
wenn eine aktive Kommunikationsverbindung nicht vorhanden ist, und
für den
Mitteilungs-Handler 131 Mitteilungs-Protokolle 217 bereitstellt,
wenn die Kommunikationsverbindung erneut eingerichtet ist.
-
Mitteilungs-Protokolle 217 können auf
viele Arten logisch implementiert werden. In einer Ausführung sind
die Mitteilungs-Protokolle 217 als ein gemultiplextes Protokoll
implementiert, so dass Mitteilungen für mehrere Clients in dem Protokoll
enthalten sein können.
In einer anderen Ausführung
werden Mitteilungs-Protokolle 217 als Protokolle je Client
implementiert, so dass jeder Client ein separates Mitteilungs-Protokoll
hat. Die Dienstkomponente 210 kann eine Protokoll-Tabelle 224 führen, die
Daten zum Identifizieren enthält,
welche Teile eines gemultiplexten Protokolls einem bestimmten Client
zugehörig sind
oder welches Protokoll je Client zu welchem Client gehört. Die
Dienstkomponente 210 kann so konfiguriert sein, dass sie
die gesamten Mitteilungs-Protokolle 217 oder nur den Teil
der Protokolle, der dem Client 121 dient, verfügbar macht.
Relevante Daten in den Mitteilungs-Protokollen 217 können durch
den Mitteilungs-Handler 131 verwendet werden, um die in einem
Cache gespeicherten Objekte des Client 121 zu aktualisieren.
-
Die
Dienstkomponente 210 ist außerdem so konfiguriert, dass
sie feststellt, ob ein Client, der Änderungen an einem Objekt vornimmt,
eine Mitteilungsverbindung auf dem Objekt hat und dass sie das Erzeugen
einer Mitteilung für
diesen Client verhindert. Die Dienstkomponente 210 kann
diese Feststellung durch Erkennen einer Client-Kennung in den Daten,
die sich auf ein Objekt-Änderungsereignis
beziehen, und das Abgleichen der Client-Kennung mit denjenigen in
einer Client-Tabelle 223, die Identifikationsinformation
für jeden
Client, der mit einer Mitteilungsverbindung verknüpft ist,
enthält,
treffen. Die Dienstkomponente 210 kann außerdem so
konfiguriert sein, dass sie die Filtertabelle 207 für die Filterkomponente 205 bereitstellt
und aktualisiert.
-
Der
Mitteilungs-Handler 131 ist so konfiguriert, dass er mit
dem Verbindungs-Manager 105 interagiert, um Mitteilungsverbindungen
auf Objekten einzurichten, die durch den Client 121 in
einem Cache gespeichert sind. In dieser Ausführung führt der Mitteilungs-Handler 131 eine
Clientverbindungs-Tabelle 220, die Zustände enthält, die mit eingerichteten Mitteilungsverbindungen
verknüpft
sind. Die Clientverbindungs-Tabelle 220 wird in Verbindung
mit der 6 ausführlicher diskutiert. Kurz gesagt,
enthält die
Clientverbindungs-Tabelle 220 Zustände über Mittelungsverbindungen,
die auf einem Server oder auf mehreren Servern eingerichtet wurden.
Ideal sollte die Clientverbindungs-Tabelle 220 mit den
entsprechenden Daten in der Serververbindungs-Tabelle 215 übereinstimmen.
Jedoch können
die Zustände auf
Grund von Verbindungsunterbrechungen und -zusammenbrüchen nicht
dieselben sein. Bei erneuter Verbindung werden der Client und der
Server die Zustände
neu synchronisieren. Das Synchronisieren der Zustände in den
Tabellen kann für
das erneute Bestätigen
der in einem Cache gespeicherten Objekte in Client 121 dienen.
-
Die 3 ist
ein schematisches Diagramm von beispielhaften Kommunikationen 300 zwischen einem
Client und einem Server in einem Verwaltungssystem für in einem
Cache gespeicherte Objekte in Übereinstimmung
mit einer Ausführung
der Erfindung. Die Kommunikationen 300 können durchgehend
durch eine Sitzung, die der Client auf dem Server eröffnet hat,
eintreten. Zum Zwecke der Darstellung sind die Kommunikationen zwischen
dem Server 103 und dem Client 121 gezeigt. In
Betrieb treten die Kommunikationen jedoch tatsächlich zwischen den Softwarekomponenten
eines Servers und eines Client auf, wie beispielsweise zwischen
dem Mitteilungs-Handler 141 und dem Verbindungs-Manager 105.
-
Die
Kommunikationen 302 betreffen die Akquisition von Mitteilungsverbindungen
und enthalten die Nachrichten 305 und 310. Wie
in der Figur gezeigt, kann der Client 121 eine Mitteilungsverbindung durch
das Senden einer Nachricht 305 mit einer Mitteilungsverbindungs-Anforderung
akquirieren. Die Mitteilungsverbindung ist mit einem Objekt verknüpft, das
durch den Server 103 verwaltet wird und durch den Client 121 in
einem Cache gespeichert ist. Die Mitteilungsverbindung befähigt den
Client 121, Mitteilungen über Dateisystem-Ereignisse
zu erhalten, die eine Modifikation des Objekts betreffen. Die Nachricht 305 enthält eine
Kennung, die ein Objekt identifiziert. Die Kennung kann Informationen über den
Dateipfad des Objekts auf dem Server 103 enthalten. Die
Nachricht 305 kann ebenso den Typ der Mitteilungsverbindung,
der erwünscht
ist, enthalten. Jede Art von Verbindung kann die Daten zum Enthalten der
Mitteilungen spezifizieren.
-
In
Reaktion auf die Nachricht 305 kann der Server 103 eine
Mitteilungsverbindung einrichten und eine Nachricht 310 mit
der Mitteilungsverbindung zu dem Client 121 senden. Die
Nachricht 310 kann Zustände
enthalten, die sich auf die Mitteilungsverbindungen beziehen, wie
zum Beispiel eine Verbindungs-Zahl (BN), die eindeutig mit der Verbindung verknüpft ist,
und eine Server-Gesamt-Verbindungs-Zahl (ABN), die eine monoton
steigende Zahl enthält,
die in Bezug auf den Server 103 für den Client 121 einzigartig
ist. Sowohl der Server 103 als auch der Client 121 führen eine
ABN. Das Vergleichen der Client-ABN mit der Server-ABN befähigt den
Client 121 und den Server 103 zu bestimmen, ob fehlende
Verbindungen vorhanden sind.
-
Die
Kommunikationen 322 beziehen sich auf das Bereitstellen
einer Mitteilung für
den Client 121 mit einer Client-Pull-Konfiguration und
enthalten die Nachrichten 325 und 330. In der
Client-Pull-Konfiguration ist der Client 121 konfiguriert,
um Mitteilungen in einem Mitteilungs-Protokoll von dem Server 103 abzurufen.
Der Client 121 kann die Nachricht 325 senden,
die eine Anforderung für
ein mit der Mitteilungsverbindung verknüpftes Mitteilungs-Protokoll enthält. Das
Mitteilungs-Protokoll kann mit mehreren Mitteilungsverbindungen
verknüpfte
Mitteilungen enthalten. In Reaktion darauf kann der Server 103 die Nachricht 330 senden,
die das Mitteilungs-Protokoll enthält. Das Mitteilungs-Protokoll enthält Mitteilungen
für den
Client 121, die in Übereinstimmung
mit der Mitteilungsverbindung erzeugt werden. Nach dem Empfang des
Mitteilungs-Protokolls kann der Client 121 die Mitteilungen
in dem Mitteilungs-Protokoll nutzen, um das in der Client 121 die
Mitteilungen in dem Mitteilungs-Protokoll nutzen, um das in einem Cache
gespeicherte Objekt zu aktualisieren.
-
Die
Kommunikationen 330 betreffen das Bereitstellen von Mitteilungen
für den
Client 121 mit einer Server-Push-Konfiguration und enthalten
die Nachrichten 334 und 336. In Reaktion auf ein
Dateisystem-Ereignis, das sich auf die Modifikation eines Objekts
mit einer Mitteilungsverbindung bezieht, bestimmt der Server 103 eine
Mitteilung und sendet die Nachricht 334 mit der Mitteilung
zu dem Client 121. Die Nachricht 315 kann eine
BN enthalten, die das Objekt identifiziert. Die Nachricht 334 kann
ebenso Daten über
die Modifikation enthalten, so dass der Client 121 das
entsprechende in einem Cache gespeicherte Objekt ohne zusätzliche
Kommunikationen mit dem Server 103 aktualisieren kann.
In Reaktion darauf kann der Client 121 die Nachricht 336 mit einer
Bestätigung
zu dem Server 103 senden.
-
Die
Kommunikationen 340 betreffen das Bereitstellen von Mitteilungen
für den
Client 121 in Reaktion auf einen Vorgang des erneuten Verbindens und
enthalten die Nachrichten 334 und 336. Als ein Teil
des Vorgangs des erneuten Verbindens kann der Client 121 die
Nachricht 342 senden, die eine Anforderung für ein mit
der Mitteilungsverbindung verknüpftes
Mitteilungs-Protokoll enthält.
In Reaktion darauf kann der Server 103 die Nachricht 344 senden,
die das Mitteilungs-Protokoll enthält. Der Server 103 kann
die Nachricht 346 senden, die die Zustände der Mitteilungsverbindungen,
die er für
den Client 121 hat, enthält. Der Client 121 kann
diese Zustände nutzen,
um die Mitteilungsverbindungen, die auf dem Client fehlen, festzustellen
und um die fehlenden Mitteilungsverbindungen erneut zu akquirieren
und erneut einzurichten. In Reaktion darauf kann der Client 121 die
Nachricht 348 senden, die eine Bestätigung enthält.
-
Die 4 ist
ein schematisches Diagramm einer beispielhaften Filtertabelle 207 in Übereinstimmung
mit einer Ausführung
der Erfindung. Die Filtertabelle 207 befähigt einen
Verbindungs-Manager zu bestimmen, welches Objekt mit einer Mitteilungsverbindung
verknüpft
ist, wenn der Verbindungs-Manager objektbezogene Ereignisse überwacht.
Wie in der Figur gezeigt, ist die Filtertabelle eine Datenstruktur,
die durch Objekt-Kennungen,
wie zum Beispiel die Objekt-Kennungen 411 bis 414,
indexiert ist. Die Objekt-Kennungen 411 bis 414 können Dateinamen oder
Dateiverzeichnisnamen, Pfade, der Hash-Wert des Dateinamens oder
eines Dateipfades oder alle anderen identifizie renden Werte sein.
Jede der Objekt-Kennungen identifiziert ein Objekt und indexiert einen
Eintrag, der mit dem Objekt verknüpft ist. Der Eintrag kann eine
Vielzahl von Daten, die mit dem Objekt verknüpft sind, enthalten. In dieser
Ausführung
enthält
der Eintrag eine Boolesche Kennung, die anzeigt, ob das Objekt mit
einer Mitteilungsverbindung verknüpft ist. In einer anderen Ausführung kann die
Filtertabelle 207 dadurch vereinfacht werden, dass sie
nur Objekt-Kennungen von Objekten enthält, die mit einer Mitteilungsverbindung
verknüpft sind.
Wie in der 4 gezeigt, identifizieren die
Objekt-Kennungen 411 bis 414 die
Objekte P, Q, R und S und die Einträge zeigen an, dass die Objekte
P, Q und S mit Mitteilungsverbindungen verknüpft sind.
-
Die 5 ist
ein schematisches Diagramm einer beispielhaften Serververbindungs-Tabelle 215 in Übereinstimmung
mit einer Ausführung
der Erfindung. Die Serververbindungs-Tabelle 215 ist eine Datenstruktur,
die durch einen Verbindungs-Manager zum Verwalten von Mitteilungsverbindungen
geführt wird.
Wie in der Figur gezeigt, ist die Serververbindungs-Tabelle 215 durch
Objekt-Kennungen, wie die Objekt-Kennungen 511 bis 513,
indexiert. Jede der Objekt-Kennungen identifiziert ein Objekt und
indexiert mit dem Objekt verknüpfte
Einträge,
wie beispielsweise die Einträge 520.
Die Einträge 520 können Client-Kennungen 541 bis 543,
die ihre entsprechenden Einträge
mit einem bestimmten Client verknüpfen, die Verbindungs-Zahlen 531 bis 533,
die die Mitteilungsverbindungen eindeutig identifizieren, und Verbindungs-Typ-Kennungen 551 bis 553,
die den Typ der Mitteilungsverbindungen, die mit ihren entsprechenden
Einträgen
verknüpft
sind, identifizieren, enthalten. Wie in der 5 gezeigt,
enthält
die Verbindungs-Tabelle 215 die
Objekt-Kennung 511, die das Objekt P identifiziert. Die
Einträge 520 zeigen
an, dass die Clients a, b und c mit dem Objekt P verknüpfte Mitteilungsverbindungen
haben.
-
Die 6 ist
eine schematische Ansicht einer beispielhaften Client-Verbindungs-Tabelle 220 in Übereinstimmung
mit einer Ausführung
der Erfindung. Die Clientverbindungs-Tabelle 220 ist eine
Datenstruktur, die durch einen Mitteilungs-Handler in einem Client
zum Verwalten von Mitteilungsverbindungen geführt wird. Wie in der Figur
gezeigt, identifiziert die Server-Kennung 611 den Server
R11, der mit einer ABN-Kennung 615, dem Offset 617 und
den Einträgen 620 verknüpft ist.
-
Die
ABN-Kennung 615 identifiziert eine Gesamt-Verbindungs-Zahl,
die mit dem Server 611 verknüpft ist. Die Gesamt-Verbindungs-Zahl
ist monoton ansteigend und befähigt
den Client festzustellen, ob fehlende Mitteilungsverbindungen vorhanden
sind. Der Offset 617 kann verwendet werden, um wenigstens
die letzte Stelle in einem Mitteilungs-Protokoll, an der Mitteilungen von einem
bestimmten Server empfangen wurden, zu identifizieren.
-
Der
Offset 617 befähigt
den Client, sich nach dem Empfang von Mitteilung von einem Server
festzulegen. Dies erspart dem Client, dass er selbst dann durch
das gesamte Mitteilungs-Protokoll auf einem Server parsen muss,
wenn das Mitteilungs-Protokoll Mitteilungen enthält, die der Client bereits
empfangen hat. Der Offset 617 kann ein Zeiger für ein Mitteilungs-Protokoll
je Client oder ein gemultiplextes Mitteilungs-Protokoll sein.
-
Die
Einträge 620 enthalten
Daten, die den Client befähigen,
die Mitteilungsverbindungen zu verwalten und die in einem Cache
gespeicherten Objekte, die mit den Mitteilungsverbindungen verknüpft sind,
zu aktualisieren. In dieser Ausführung
enthalten die Einträge
die Objekt-Kennungen 614 bis 643 und die Verbindungs-Zahlen 631 bis 633.
Die Objekt-Kennungen 641 bis 643 identifizieren
die in einem Cache gespeicherten Objekte entsprechend den Mitteilungsverbindungen.
Dateipfade für
in einem Cache gespeicherte Objekte können in den Objekt-Kennungen 641 bis 643 verschlüsselt sein.
Jede der Verbindungs-Zahlen 631 bis 633 identifiziert
eindeutig eine bestimmte Mitteilungsverbindung zwischen dem Client
und dem Server R11.
-
Die 7 ist
ein Betriebsablaufdiagramm eines Prozesses 700 für einen
Client zum Einrichten einer Mitteilungsverbindung mit einem Server
für ein Objekt,
das durch den Server verwaltet wird, in Übereinstimmung mit einer Ausführung der
Erfindung. Der Prozess kann immer dann angewendet werden, wenn der
Client ein Objekt in einem Cache speichert, oder kann separate Initiierung
durch den Client erfordern. Von dem Startblock ausgehend, geht der
Prozess 700 zu dem Block 710, in dem von dem Client eine
Anforderung für
eine Mitteilungsverbindung zu dem Server gesendet wird. In dem Block 715 wird
die Mitteilungsverbindung von dem Server empfangen. Die Mitteilungsverbindung
kann eine Verbindungs-Zahl (BN) enthalten, die die Mitteilungsverbindung
eindeutig identifiziert. Die Mitteilungsverbindung kann ebenso Zugriffsinformationen
enthalten, wie beispielsweise den Dateipfad des mit der Mitteilungsverbindung
verknüpften
Objekts. In dem Block 720 fügt der Client einen Eintrag
zu einer Clientverbindungs-Tabelle hinzu. Der Eintrag enthält Daten über die
Mitteilungsverbindung. In dem Block 725 aktualisiert der
Client die Gesamt-Verbindungs-Zahl (ABN), die mit dem Server verknüpft ist.
In dieser Ausführung
ist die ABN die BN der Mitteilungsverbindung. In dem Block 730 speichert
der Client das Objekt, das mit der Mitteilungsverbindung in dem
Speicher verknüpft
ist, in einem Cache. Anschließend
endet der Prozess 700.
-
Die 8 ist
ein Betriebsablaufdiagramm eines Prozesses 800 für einen
Server, um eine Mitteilungsverbindung mit einem Client für ein Objekt
einzurichten, in Übereinstimmung
mit einer Ausführung der
Erfindung. Der Prozess kann implementiert werden, wenn der Client
anfordert, ein Objekt in einem Cache zu speichern oder in Reaktion
auf eine separate Initiierung durch den Client implementiert werden.
-
Ausgehend
von einem Startblock, geht der Prozess 800 zu dem Block 810,
in dem eine Verbindungs-Anforderung von dem Client empfangen wird. In
dem Block 815 wird eine Mitteilungsverbindung eingerichtet.
In dem Block 820 wird ein Eintrag zu der Serververbindungs-Tabelle
hinzugefügt.
Ebenso kann ein Eintrag zu der Filtertabelle hinzugefügt werden.
In dem Block 825 wird die für den Client eindeutige ABN
aktualisiert. In dem Block 830 wird die Mitteilungsverbindung
zu dem Client gesendet. Anschließend endet der Prozess 800.
-
Die 9 ist
ein Betriebsablaufdiagramm eines Prozesses 900 für einen
Server, um eine Mitteilung an einen Client zu senden, in Übereinstimmung mit
einer Ausführung
der Erfindung. Ausgehend von einem Startblock, geht der Prozess 900 zu
einem Block 910, in dem ein mit einem Objekt verknüpftes objektbezogenes
Ereignis bestimmt wird. In dem Entscheidungsblock 915 erfolgt
eine Feststellung, ob für das
Mitteilungs-Ereignis Mitteilung erforderlich ist. Diese Feststellung
erfolgt durch das Prüfen,
ob das Objekt in einer Filtertabelle eine Referenz aufweist. Falls
keine Mitteilung erforderlich ist, endet der Prozess.
-
Zurückkehrend
zu dem Entscheidungsblock 915, geht der Prozess, falls
für das
objektbezogene Ereignis Mitteilung erforderlich ist, zu einem Block 920,
in dem eine Mitteilungsverbindung oder mehrere Mitteilungsverbindung,
die mit dem Objekt verknüpft
sind, bestimmt wird bzw. werden. Die Feststellung kann durch das
Prüfen
von Einträgen
in einer Serververbindungs-Tabelle erfolgen. Es könnte mehr als
eine Mitteilungsverbindung vorhanden sein, weil mehrere Clients
das Objekt in einem Cache gespeichert haben und eine Mitteilungsverbindung
beziehen. Der im Folgenden beschriebene Prozess kann auf jeden Client
angewendet werden, der eine Mitteilungsverbindung hat.
-
In
dem Entscheidungsblock 923 erfolgt eine Feststellung, ob
das objektbezogene Ereignis durch den Client mit der Mitteilungsverbindung
auf dem Objekt verursacht wurde. Falls ja, ist dem Client das objektbezogene
Ereignis bereits bekannt und zu diesem Client wird keine Mitteilungsverbindung
gesendet. Falls dieser Client der einzige Client mit einer Mitteilungsverbindung
ist, endet der Prozess 900. Andernfalls geht der Prozess
in dem Block 925 weiter.
-
Zurückkehrend
zu dem Entscheidungsblock 923, geht der Prozess, falls
das objektbezogene Ereignis nicht durch einen Client mit einer Mitteilungsverbindung
auf dem Objekt verursacht wurde, zu dem Block 925 weiter.
In dem Block 925 werden auf Basis von Daten in der Serververbindungs-Tabelle Mitteilungen
erzeugt.
-
In
dem Entscheidungsblock 930 erfolgt eine Feststellung, ob
die Mitteilung zu dem Client gesendet wird. Diese Feststellung ist
nicht erforderlich, wenn der Server konfiguriert ist, alle Mitteilungen
in Mitteilungs-Protokollen aufzuzeichnen. Wenn der Server jedoch
konfiguriert ist, um die Mitteilungen unter bestimmten Bedingungen
direkt zu den Clients zu senden, fällt die Feststellung positiv
aus, falls diese Bedingungen vorliegen. Die Feststellung fällt negativ aus,
falls eine Verbindungstrennung eintritt, während eine Mitteilung gesendet
wurde.
-
Wenn
die Feststellung positiv ist, geht der Prozess 900 weiter
zu dem Block 935, in dem eine Mitteilung zu jedem der Clients
gesendet wird, und endet dann. Zurückkehrend zu dem Entscheidungsblock 930,
wird, falls die Feststellung negativ ausfällt, die mit dem Client verknüpfte Mitteilung
zu einem Mitteilungs-Protokoll gesendet. Die Blöcke 935 und 940 können beide
ausgeführt
werden und können
für mehrere
Clients gelten. Anschließend
endet der Prozess 900.
-
Die 10 ist
ein schematisches Diagramm eines Prozesses 1000 für einen
Client, um sich erneut mit einem Server zu verbinden, in Übereinstimmung
mit einer Ausführung
der Erfindung. Der Prozess 1000 kann durch den Client nach
einem Zeitraum der Ver bindungstrennung automatisch implementiert
werden. Der Prozess 1000 kann ebenso in Reaktion auf eine
separate Initiierung durch den Client oder durch ein externes Ereignis,
wie durch Steuerung durch den Server, wenn die Größe des Mitteilungs-Protokolls
einen vorgegebenen Wert hat, implementiert werden. Ausgehend von
einem Startblock geht der Prozess 1000 zu einem Block 1020,
in dem der Client und der Server wechselseitig authentifiziert werden.
In dem Block 1025 werden die Mitteilungsverbindungen auf
dem Client und diejenigen auf dem Server verglichen, um festzustellen,
ob fehlende Mitteilungsverbindungen vorhanden sind. Die Mitteilungsverbindungen
können
fehlend sein, wenn Daten über
die Mitteilungsverbindungen auf Grund von Systemabstürzen oder
anderer Fehlfunktionen verloren gegangen sind. In einer Ausführung erfolgt
der Vergleich durch das Vergleichen der Client-ABN mit der Server-ABN.
-
In
dem Entscheidungsblock 1030 erfolgt eine Feststellung,
ob auf dem Server fehlende Mitteilungsverbindungen vorhanden sind.
Dass die Client-ABN größer als
die Server-ABN ist,
ist ein Indiz, dass auf dem Server fehlende Mitteilungsverbindungen
vorhanden sind. Wenn der Client beispielsweise Mitteilungsverbindungen
bestätigt,
die durch BNs dargestellt werden, die größer als die durch den Server
bestätigte
ABN sind, sind die durch den Client bestätigten Mitteilungsverbindungen
diejenigen, die dem Server unbekannt sind.
-
Wenn
fehlende Mitteilungsverbindungen vorhanden sind, geht der Prozess 1000 weiter
zu dem Block 1050, in dem die fehlenden Mitteilungsverbindungen
von dem Server neu akquiriert werden. Beispielsweise kann der Client
den Prozess 700 initiieren, der zuvor in Verbindung mit
der 7 erörtert wurde,
um die Mitteilungsverbindungen neu zu akquirieren. Ebenso kann der
Client diese Mitteilungsverbindungen und die mit ihnen verknüpften in
einem Cache gespeicherten Objekte verwerfen. Der Prozess geht weiter
zu dem Block 1040.
-
Zurückkehrend
zu dem Entscheidungsblock, geht der Prozess 1000 zu dem
Block 1040, wenn eine Feststellung erfolgt ist, ob fehlende
Verbindungen auf dem Client vorhanden sind. Dass die Client-ABN
kleiner als die Server-ABN ist, ist ein Indiz, dass auf dem Client
fehlende Mitteilungsverbindungen vorhanden sind. Wenn beispielsweise
der Server Mitteilungsverbindungen bestätigt, die durch BNs dargestellt
werden, die größer als
die durch den Client bestätigte
ABN sind, sind die durch den Server bestätigten Mittei lungsverbindungen
diejenigen, die dem Client unbekannt sind. Falls keine fehlenden Verbindungen
auf dem Client vorhanden sind, endet der Prozess. Falls auf dem
Client fehlende Verbindungen vorhanden sind, geht der Prozess weiter
zu dem Block 1045, in dem die Clientverbindungs-Tabelle
aktualisiert wird, um diese fehlenden Mitteilungsverbindungen zu
entfernen. Ebenso kann der Client die mit den fehlenden Mitteilungsverbindungen verknüpften Objekte
in einem Cache speichern oder die Verbindungen verwerfen. Anschließend endet
der Prozess.
-
Die 11 ist
ein schematisches Diagramm eines Prozesses 1100 für einen
Client, um eine Mitteilungsverbindung abzubauen, in Übereinstimmung mit
einer Ausführung
der Erfindung. Der Prozess 1100 kann durch einen Client
implementiert werden, um eine Mitteilungsverbindung oder mehrere
Mitteilungsverbindungen abzubauen. Zum Zwecke der Darstellung wird
der Prozess 1100 im Zusammenhang mit dem Abbauen einer
einzelnen Mitteilungsverbindung beschrieben. Ausgehend von einem Startblock,
geht der Prozess 1100 zu dem Block 1120, in dem
eine Bestimmung erfolgt, eine Mitteilungsverbindung abzubauen. Wenn
ein Client beispielsweise bestimmt hat, dass kein weiterer Bedarf für ein bestimmtes
in einem Cache gespeichertes Objekt besteht, kann der Client das
in einem Cache gespeicherte Objekt löschen und die verknüpfte Mitteilungsverbindung
abbauen. In dem Block 1125 führt der Client Operationen
zum Abbauen der Mitteilungsverbindung durch. Beispielsweise kann
der Client die mit der Mitteilungsverbindung verknüpften Daten
aus den verschiedenen Tabellen zum Implementieren der Mitteilungsverbindung
löschen.
In dem Block 1130 sendet der Client eine Anforderung zum
Abbauen der Mitteilungsverbindung zu dem Server. Um die Konsistenz
aufrechtzuerhalten, kann der Client die Operationen in Block 1125 durchführen, um
sich auf das Abbauen der Mitteilungsverbindung festzulegen, bevor
er in Block 1130 eine Anforderung zum Abbauen zu dem Server
sendet. In Reaktion darauf kann der Server eine Bestätigung der
Anforderung senden, wie in dem Block 1135 gezeigt. Dann
endet der Prozess.
-
Die 12 ist
ein schematisches Diagramm eines Prozesses 1200 für einen
Server, um eine Mitteilungsverbindung abzubauen, in Übereinstimmung mit
einer Ausführung
der Erfindung. Ausgehend von einem Startblock geht der Prozess 1200 zu
dem Block 1220, in dem eine Bestimmung erfolgt, eine Mitteilungsverbindung
abzubauen. Der Server kann aus vielen verschiedenen Gründen wünschen,
eine Mitteilungsverbindung abzubauen. Wenn der Server beispielsweise
aufgehört
hat, ein Objekt zu verwalten, kann der Server die Mitteilungsverbindungen, die
mit diesem Objekt verknüpft
sind, abbauen. Der Server kann Mitteilungsverbindungen, die mit
einem bestimmten Client verknüpft
sind, abbauen, wenn dieser Client den Server für einen längeren Zeitraum nicht kontaktiert
hat.
-
In
dem Entscheidungsblock 1225 erfolgt eine Bestimmung, ob
alle Mitteilungsverbindungen, die mit einem bestimmten Client verknüpft sind,
abgebaut werden. Falls nicht, geht der Prozess 1200 zu dem
Block 1229. In dem Block 1229 führt der
Server Operationen zum Abbauen der Mitteilungsverbindung durch.
Anschließend
geht der Prozess zu dem Schritt 1230 weiter.
-
Zurückkehrend
zu dem Entscheidungsblock 1225, geht der Prozess zu dem
Block 1227, in dem die mit dem Client verknüpfte ABN
auf 0 gesetzt wird. Der Prozess 1200 geht weiter zu Block 1228,
in dem der Server Operationen zum Abbauen aller mit dem Client verknüpften Mitteilungsverbindungen
durchführt.
Anschließend
geht der Prozess weiter zu dem Block 1230.
-
In
dem Block 1230 stellt der Server eine Mitteilung für den Client über das
Abbauen einer bestimmten Mitteilungsverbindung oder aller Mitteilungsverbindungen
des Client bereit. Die Mitteilung kann durch das Aufzeichnen der
Mitteilung in einem Mitteilungs-Protokoll
bereitgestellt werden. Um Konsistenz aufrechtzuerhalten, kann der
Client in dem Block 1228 oder 1229 Operationen
durchführen,
um sich auf das Abbauen der Mitteilungsverbindungen festzulegen,
bevor er in dem Block 1230 eine Mitteilung zu dem Client
sendet. Der Server kann von dem Client eine Bestätigung empfangen, wie in dem
Block 1235 gezeigt. Dann endet der Prozess.
-
Zusammengefasst
befähigt
die vorliegende Erfindung Clients, eine große Anzahl von Objekten in einem
Cache zu speichern und die in einem Cache gespeicherten Objekte
schnell mit den entsprechenden Objekten auf einem Server zu synchronisieren. Die
Leistung und die Effizienz der vorliegenden Erfindung werden teilweise
durch Befähigen
der Clients, zu wissen, welche in einem Cache gespeicherten Objekte
auf dem Server modifiziert werden und Aktualisierung erfordern,
erreicht. Die Mitteilungsverbindungen werden verwendet, um sicherzustellen,
dass Änderungen,
die an Objekten vorgenommen wurden, die in einem Cache gespeichert
sind, zu den Clients kommuniziert werden.
-
Durchgehend
gemeinsam genutzte Mitteilungsverbindungszustände befähigen den Server und die Clients,
die Mitteilungsverbindung neu einzurichten, um einen Neustart oder
Reboot der Clients und des Servers zu überdauern. Außerdem minimiert die
vorliegende Erfindung den Verkehr in Situationen, in denen ein Client
daran interessiert ist, nur einen Bruchteil des Inhaltes auf einem
Server in einem Cache zu speichern.