DE602004004200T2 - System und Verfahren zum Verwalten von gepufferten Objekten unter Verwendung von Mitteilungsverbindungen - Google Patents

System und Verfahren zum Verwalten von gepufferten Objekten unter Verwendung von Mitteilungsverbindungen Download PDF

Info

Publication number
DE602004004200T2
DE602004004200T2 DE602004004200T DE602004004200T DE602004004200T2 DE 602004004200 T2 DE602004004200 T2 DE 602004004200T2 DE 602004004200 T DE602004004200 T DE 602004004200T DE 602004004200 T DE602004004200 T DE 602004004200T DE 602004004200 T2 DE602004004200 T2 DE 602004004200T2
Authority
DE
Germany
Prior art keywords
message
client
connection
server
computer
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
DE602004004200T
Other languages
English (en)
Other versions
DE602004004200D1 (de
Inventor
David Cappers Bellevue Steere
Rohan Redmond Kumar
Yun Kirkland Lin
Danilo D'amico Woodinville Almeida
Shishir Purushottam Redmond Pardikar
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of DE602004004200D1 publication Critical patent/DE602004004200D1/de
Application granted granted Critical
Publication of DE602004004200T2 publication Critical patent/DE602004004200T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0659Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
    • H04L41/0661Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities by reconfiguring faulty entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
    • 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/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

  • 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.

Claims (35)

  1. Computerimplementiertes Verfahren für einen Client (121) zur Interaktion mit einem Server (103), wobei das computerimplementierte Verfahren umfasst: Erzeugen eines in einem Cache gespeicherten Objektes (141) aus einem Original-Objekt (109), wobei das Original-Objekt durch den Server verwaltet wird; Einrichten einer Mitteilungsverbindung (notification bond) mit dem Server; und Führen von Zuständen, die mit der Mitteilungsverbindung verknüpft sind, wobei die Zustände eine Verbindungs-Zahl einschließen, die die Mitteilungsverbindung eindeutig identifiziert, und der Client (121) eine Mitteilung von dem Server (103) in Reaktion auf ein objektbezogenes Ereignis erhält, das durch die Mitteilungsverbindung mit dem Original-Objekt verknüpft ist.
  2. Computerimplementiertes Verfahren nach Anspruch 1, wobei das objektbezogene Ereignis einschließt, dass das Original-Objekt modifiziert worden ist.
  3. Computerimplementiertes Verfahren nach Anspruch 1 oder 2, wobei Einrichten der Mitteilungsverbindung in Reaktion auf Erzeugen des in einem Cache gespeicherten Objektes durchgeführt wird.
  4. Computerimplementiertes Verfahren nach einem der Ansprüche 1 bis 3, das des Weiteren umfasst: Erhalten einer Mitteilung von dem Server; und Aktualisieren des in einem Cache gespeicherten Objektes unter Verwendung der Mitteilung.
  5. Computerimplementiertes Verfahren nach einem der Ansprüche 1 bis 4, wobei Erhalten der Mitteilung Abrufen eines Mitteilungsprotokolls einschließt, das die Mitteilung enthält.
  6. Computerimplementiertes Verfahren nach einem der Ansprüche 1 bis 5, das des Weiteren umfasst: erneutes Verbinden mit dem Server nach einem Trennungs-Zeitraum; Anfordern eines Mitteilungs-Protokolls, das eine Mitteilung enthält; und Synchronisieren des Cache-Objektes mit dem Original-Objekt unter Verwendung der Mitteilung.
  7. Computerimplementiertes Verfahren nach einem der Ansprüche 1 bis 6, wobei die Zustände in einem dauerhaften Medium geführt werden.
  8. Computerimplementiertes Verfahren nach einem der Ansprüche 1 bis 7, wobei die Zustände eine Gesamt-Verbindungs-Zahl enthalten, die einzigartig für den Client ist.
  9. Computerimplementiertes Verfahren nach Anspruch 7, dass des Weiteren erneutes Einrichten der Zustände auf dem Client nach einem Neustart umfasst.
  10. Computerimplementiertes Verfahren nach Anspruch 9, dass des Weiteren Synchronisieren der Zustände auf dem Client und entsprechender Zustände auf dem Server umfasst.
  11. Computerimplementiertes Verfahren für einen Server (103) zur Interaktion mit einem Client (121), wobei das computerimplementierte Verfahren umfasst: Einrichten einer Mitteilungsverbindung mit dem Client (121); und Führen von Zuständen, die mit der Mitteilungsverbindung verknüpft sind, wobei die Zustände eine Verbindungs-Zahl einschließen, die die Mitteilungsverbindung eindeutig identifiziert, und der Client (121) eine Mitteilung von dem Server (103) in Reaktion auf ein objektbezogenes Ereignis halt, das durch die Mitteilungsverbindung mit einem Objekt verknüpft ist.
  12. Computerimplementiertes Verfahren nach Anspruch 11, wobei das objektbezogene Ereignis einschließt, dass das Objekt modifiziert worden ist.
  13. Computerimplementiertes Verfahren nach Anspruch 11 oder 12, wobei Einrichten der Mitteilungsverbindung in Reaktion auf eine Anforderung von dem Client zum Speichern des Objektes in einem Cache durchgeführt wird.
  14. Computerimplementiertes Verfahren nach einem der Ansprüche 11 bis 13, das des Weiteren umfasst: Bestimmen eines objektbezogenen Ereignisses, das nicht durch den Client verursacht wurde; Erzeugen einer Mitteilung entsprechend der Mitteilungsverbindung; und Bereitstellen der Mitteilung für den Client.
  15. Computerimplementiertes Verfahren nach einem der Ansprüche 11 bis 13, das des Weiteren umfasst: Bestimmen eines objektbezogenen Ereignisses, das nicht durch den Client verursacht wurde; Erzeugen einer Mitteilung entsprechend der Mitteilungsverbindung; und Aufzeichnen der Mitteilung in einem Mitteilungs-Protokoll.
  16. Computerimplementiertes Verfahren nach Anspruch 15, das des Weiteren umfasst: Einrichten einer Verbindung mit dem Client; und Senden des Mitteilungsprotokolls zu dem Client.
  17. Verteiltes Datei-System zum gemeinsamen Nutzen von Objekten, das umfasst: einen Server (103), der so konfiguriert ist, dass er Original-Objekte verwaltet, wobei der Server einen Verbindungs-Manager (105) enthält, der so konfiguriert ist, dass er Mitteilungsverbindungen an Clients (121, 122, 123) ausgibt, wobei jede Mitteilungsverbindung einen Client (121) befähigt, eine Mitteilung von dem Server in Reaktion auf ein objektbezogenes Ereignis zu erhalten, das mit einem Original-Objekt verknüpft ist, wobei der Server so konfiguriert ist, dass er Zustände, die mit der Mitteilungsverbindung verknüpft sind, führt und die Zustände eine Verbindungs-Zahl enthalten, die jede der Mitteilungsverbindungen eindeutig identifiziert.
  18. Verteiltes Dateisystem nach Anspruch 17, wobei der Verbindungs-Manager so konfiguriert ist, dass er den Clients Mitteilungen entsprechend den Mitteilungsverbindungen bereitstellt.
  19. Verteiltes Dateisystem nach Anspruch 17 oder 18, wobei der Server des Weiteren einen Dateisystem-Manager (107) umfasst, der so konfiguriert ist, dass er die Original-Objekte verwaltet, und wobei der Verbindungs-Manager eine Filterkomponente (205) umfasst, die so konfiguriert ist, dass sie objektbezogene Ereignisse bestimmt, indem sie Kommunikationsverkehr überwacht, der mit dem Dateisystem-Manager verbunden ist.
  20. Verteiltes Dateisystem nach einem der Ansprüche 17 bis 19, wobei der Verbindungsmanager so konfiguriert ist, dass er eine Verbindungs-Tabelle (215) führt, und wobei die Verbindungs-Tabelle die Zustände enthält, die jede Mitteilungsverbindung auf ein Original-Objekt und einen Client beziehen, dem die Mitteilung bereitzustellen ist.
  21. Verteiltes Dateisystem nach einem der Ansprüche 17 bis 20, wobei der Verbindungs-Manager so konfiguriert ist, dass er ein Mitteilungs-Protokoll (217) führt, und wobei das Mitteilungs-Protokoll Mitteilungen für den Client enthält.
  22. Verteiltes Dateisystem nach einem der Ansprüche 17 bis 21, das des Weiteren umfasst: einen Client (121), der so konfiguriert ist, dass er ein in einem Cache gespeichertes Objekt erzeugt, das mit einem durch den Server verwalteten Original-Objekt verknüpft ist, der Client einen Mitteilungs-Handler (131) enthält, der so konfiguriert ist, dass er eine Mittteilungsverbindung, die mit dem Original-Objekt verknüpft ist, im Zusammenhang mit dem Server führt.
  23. Verteiltes Dateisystem nach Anspruch 22, wobei der Mitteilungs-Handler so konfiguriert ist, dass er von dem Server ein Mitteilungs-Protokoll erhält, das mit der Mitteilungsverbindung verknüpft ist, und das in einem Cache gespeicherte Objekt entsprechend dem Mitteilungs-Protokoll aktualisiert.
  24. Verteiltes Dateissystem nach Anspruch 23, wobei das Mitteilungs-Protokoll Mitteilungen enthält, die mit einer Vielzahl von Mitteilungsverbindungen verknüpft sind.
  25. Verteiltes Dateisystem nach Anspruch 22, wobei der Mitteilungs-Handler so konfiguriert ist, dass er eine Verbindungs-Tabelle (220) führt, und wobei die Verbindungs-Tabelle Zustände enthält, die jede Mitteilungsverbindung auf ein in einem Cache gespeichertes Objekt und den Server beziehen, der ein Original-Objekt verwaltet, das dem in einem Cache gespeicherten Objekt entspricht.
  26. Computerlesbares Medium, das mit einer Datenstruktur codiert ist, wobei es umfasst: ein erstes Indexier-Datenfeld (511, 512, 513), das Objekt-Kennungen enthält, wobei jede Objektkennung eindeutig ein Objekt identifiziert, das durch einen Server verwaltet wird, und ein zweites Datenfeld (520), das Einträge enthält, wobei jeder Eintrag auf eine Objekt-Kennung in dem ersten Indexier-Datenfeld indexiert ist und Zustände enthält, die mit einer Mitteilungsverbindung zwischen dem Server und einem Client verknüpft sind, der das durch die Objekt-Kennung identifizierte Objekt in einem Cache speichert, wobei jeder Eintrag des zweiten Datenfeldes eine Verbindungs-Zahl (531 bis 533) enthält, die eine Mitteilungsverbindung eindeutig identifiziert.
  27. Computerlesbares Medium nach Anspruch 26, wobei jede Objekt-Kennung in dem ersten Indexier-Datenfeld einen Dateipfad enthält, der mit einem Objekt verknüpft ist.
  28. Computerlesbares Medium nach Anspruch 27, wobei jede Objekt-Kennung einen Hash-Wert des Dateipfades enthält.
  29. Computerlesbares Medium nach einem der Ansprüche 26 bis 28, wobei jeder Eintrag des zweiten Datenfeldes eine Client-Kennung (541 bis 543) enthält, die einen Client identifiziert, der mit einer Mitteilungsverbindung verknüpft ist.
  30. Computerlesbares Medium nach einem der Ansprüche 26 bis 29, wobei jeder Eintrag des zweiten Datenfeldes eine Typ-Kennung enthält, die einen Typ (551 bis 553) identifiziert, der mit einer Mitteilungsverbindung verknüpft ist.
  31. Computerlesbares Medium, das mit einer Datenstruktur codiert ist, wobei es umfasst: ein erstes Indexier-Datenfeld (611, 612), das Server-Kennungen enthält, wobei jede Server-Kennung einen Server eindeutig identifiziert, der ein Original-Objekt verwaltet, und das Original-Objekt durch einen Client in einem Cache gespeichert wird; und ein zweites Datenfeld (620), das Einträge enthält, wobei jeder Eintrag auf eine Server-Kennung in dem ersten Indexier-Datenfeld indexiert ist und Zustände enthält, die mit einer Mitteilungsverbindung zwischen dem Client und einem durch die Server-Kennung identifizierten Server verknüpft sind, und die Mitteilungsverbindung mit einem in einem Cache gespeicherten Objekt verknüpft ist, das durch den Client aus einem Original-Objekt erzeugt wird, wobei jeder Eintrag des zweiten Datenfeldes eine Verbindungs-Zahl (631 bis 633) enthält, die eine Mitteilungsverbindung eindeutig identifiziert.
  32. Computerlesbares Medium nach Anspruch 31, wobei jeder Eintrag des zweiten Datenfeldes eine Original-Objektkennung enthält, die ein Original-Objekt identifiziert.
  33. Computerlesbares Medium nach Anspruch 31 oder 32, wobei jeder Eintrag des zweiten Datenfeldes eine Kennung eines in einem Cache gespeicherten Objektes enthält, die ein in einem Cache gespeichertes Objekt identifiziert, das mit einem Original-Objekt verknüpft ist.
  34. Computerlesbares Medium nach einem der Ansprüche 31 bis 33, das des Weiteren ein drittes Datenfeld umfasst, das eine Gesamt-Verbindungs-Zahl (615) enthält.
  35. Computerlesbares Medium nach einem der Ansprüche 31 bis 34, das des Weiteren ein viertes Datenfeld umfasst, das einen Mitteilungs-Protokoll-Offset (617) enthält.
DE602004004200T 2003-06-19 2004-05-26 System und Verfahren zum Verwalten von gepufferten Objekten unter Verwendung von Mitteilungsverbindungen Expired - Lifetime DE602004004200T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US600787 1975-07-31
US10/600,787 US7577960B2 (en) 2003-06-19 2003-06-19 System and method for managing cached objects using notifications bonds

Publications (2)

Publication Number Publication Date
DE602004004200D1 DE602004004200D1 (de) 2007-02-22
DE602004004200T2 true DE602004004200T2 (de) 2007-10-11

Family

ID=33418576

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004004200T Expired - Lifetime DE602004004200T2 (de) 2003-06-19 2004-05-26 System und Verfahren zum Verwalten von gepufferten Objekten unter Verwendung von Mitteilungsverbindungen

Country Status (6)

Country Link
US (1) US7577960B2 (de)
EP (1) EP1489811B1 (de)
JP (1) JP4794143B2 (de)
KR (1) KR101150146B1 (de)
CN (1) CN1592203A (de)
DE (1) DE602004004200T2 (de)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7134623B2 (en) * 2001-05-17 2006-11-14 Rader Companies Hammermill
US20040267967A1 (en) * 2003-06-30 2004-12-30 Intel Corporation Method, system, and program for managing requests to a network adaptor
CN100407623C (zh) * 2005-02-23 2008-07-30 腾讯科技(深圳)有限公司 一种通信系统中用户数据更新的方法及系统
US20080183662A1 (en) * 2007-01-31 2008-07-31 Benjamin Clay Reed Resolving at least one file-path for a change-record of a computer file-system object in a computer file-system
US8433747B2 (en) * 2008-02-01 2013-04-30 Microsoft Corporation Graphics remoting architecture
US8799409B2 (en) * 2009-01-15 2014-08-05 Ebay Inc. Server side data cache system
US20100231582A1 (en) * 2009-03-10 2010-09-16 Yogurt Bilgi Teknolojileri A.S. Method and system for distributing animation sequences of 3d objects
CN101873336A (zh) * 2009-04-27 2010-10-27 上海融越信息技术有限公司 基于存储设备的nas虚拟文件系统
US8825597B1 (en) * 2009-08-13 2014-09-02 Dropbox, Inc. Network folder synchronization
CN102117309B (zh) * 2010-01-06 2013-04-17 卓望数码技术(深圳)有限公司 一种数据缓存系统和数据查询方法
US8719845B2 (en) * 2010-05-19 2014-05-06 Microsoft Corporation Sharing and synchronization of objects
US9104715B2 (en) 2010-06-23 2015-08-11 Microsoft Technology Licensing, Llc Shared data collections
US8713098B1 (en) 2010-10-01 2014-04-29 Google Inc. Method and system for migrating object update messages through synchronous data propagation
US9165285B2 (en) 2010-12-08 2015-10-20 Microsoft Technology Licensing, Llc Shared attachments
US9137185B2 (en) 2011-04-28 2015-09-15 Microsoft Technology Licensing, Llc Uploading attachment to shared location and replacing with a link
US10552799B2 (en) 2011-04-28 2020-02-04 Microsoft Technology Licensing, Llc Upload of attachment and insertion of link into electronic messages
US11308449B2 (en) 2011-04-28 2022-04-19 Microsoft Technology Licensing, Llc Storing metadata inside file to reference shared version of file
US20120278402A1 (en) * 2011-04-28 2012-11-01 Microsoft Corporation Presenting links to content as attachments in electronic messages
US8682989B2 (en) 2011-04-28 2014-03-25 Microsoft Corporation Making document changes by replying to electronic messages
US10185932B2 (en) 2011-05-06 2019-01-22 Microsoft Technology Licensing, Llc Setting permissions for links forwarded in electronic messages
US9591059B2 (en) * 2013-03-13 2017-03-07 International Business Machines Corporation File change notifications in a scale-out NAS system
EP2941848A4 (de) * 2013-03-15 2016-06-15 Huawei Tech Co Ltd Synchronisierung und kollaboration von informationen zwischen einer gruppe aus mobilen vorrichtungen
US10963430B2 (en) 2015-04-01 2021-03-30 Dropbox, Inc. Shared workspaces with selective content item synchronization
US9922201B2 (en) 2015-04-01 2018-03-20 Dropbox, Inc. Nested namespaces for selective content sharing
US9910697B2 (en) * 2015-10-13 2018-03-06 Palantir Technologies Inc. Fault-tolerant and highly-available configuration of distributed services
US9697269B2 (en) 2015-10-29 2017-07-04 Dropbox, Inc. Content item block replication protocol for multi-premises hosting of digital content items
US10691718B2 (en) 2015-10-29 2020-06-23 Dropbox, Inc. Synchronization protocol for multi-premises hosting of digital content items
US9537952B1 (en) 2016-01-29 2017-01-03 Dropbox, Inc. Apparent cloud access for hosted content items
US11290531B2 (en) 2019-12-04 2022-03-29 Dropbox, Inc. Immediate cloud content item creation from local file system interface
US11467731B2 (en) 2020-07-30 2022-10-11 Red Hat, Inc. Client driven multi-site consistency for object storage

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US612212A (en) * 1898-10-11 raster
JPH0668010A (ja) * 1992-08-17 1994-03-11 Nippon Telegr & Teleph Corp <Ntt> 分散キャッシュ管理システム
US5911066A (en) * 1994-02-22 1999-06-08 Microsoft Corporation Data transfer utilizing a single functionally independent data transfer mechanism
US6128648A (en) 1994-11-23 2000-10-03 International Business Machines Corporation Information handling system and method for maintaining coherency between network servers and mobile terminals
US5991771A (en) 1995-07-20 1999-11-23 Novell, Inc. Transaction synchronization in a disconnectable computer and network
US6138141A (en) 1996-10-18 2000-10-24 At&T Corp Server to client cache protocol for improved web performance
EP0979450B1 (de) * 1997-04-30 2002-06-19 The Foxboro Company Verfahren und vorrichtung zur synchronisierung von auf einem digitalen datenverarbeitungssystem laufenden prozessen
US6256712B1 (en) * 1997-08-01 2001-07-03 International Business Machines Corporation Scaleable method for maintaining and making consistent updates to caches
US6026413A (en) * 1997-08-01 2000-02-15 International Business Machines Corporation Determining how changes to underlying data affect cached objects
EP0926608B1 (de) * 1997-12-24 2004-03-10 Nortel Networks Limited Verteilte dauerhafte Speicher für Benutzer- Anbieter- Systeme mit manchmal unterbrochenen Verbindungen
US6161125A (en) * 1998-05-14 2000-12-12 Sun Microsystems, Inc. Generic schema for storing configuration information on a client computer
US6721740B1 (en) * 1998-05-29 2004-04-13 Sun Microsystems, Inc. Method and apparatus of performing active update notification
US6263360B1 (en) * 1998-06-01 2001-07-17 Sri International System uses filter tree and feed handler for updating objects in a client from a server object list
JP2000137689A (ja) * 1998-11-04 2000-05-16 Hitachi Ltd 共用データキャッシュ処理方法及びその実施装置並びにその処理プログラムを記録した媒体
US6529921B1 (en) * 1999-06-29 2003-03-04 Microsoft Corporation Dynamic synchronization of tables
GB2371902B (en) * 1999-09-10 2004-11-17 Avantgo Inc System, method, and computer program product for interactive interfacing with mobile devices
JP3594229B2 (ja) * 1999-09-27 2004-11-24 インターナショナル・ビジネス・マシーンズ・コーポレーション 文書ファイル共有化システム、コラボレーションサーバー、文書ファイルの転送方法、及び記憶媒体
US6687698B1 (en) * 1999-10-18 2004-02-03 Fisher Rosemount Systems, Inc. Accessing and updating a configuration database from distributed physical locations within a process control system
US6446176B1 (en) * 2000-03-09 2002-09-03 Storage Technology Corporation Method and system for transferring data between primary storage and secondary storage using a bridge volume and an internal snapshot copy of the data being transferred
US7099926B1 (en) * 2000-07-06 2006-08-29 International Business Machines Corporation Object caching and update queuing technique to improve performance and resource utilization
US7127514B2 (en) * 2000-12-28 2006-10-24 Microsoft Corporation Stateless distributed computer architecture with server-oriented state-caching objects maintained on network or client
US6941326B2 (en) * 2001-01-24 2005-09-06 Microsoft Corporation Accounting for update notifications in synchronizing data that may be represented by different data structures
JP4230677B2 (ja) * 2001-05-15 2009-02-25 ソニー株式会社 情報管理システム、情報管理装置、情報管理方法、情報利用クライアント、情報利用クライアントプログラムならびに情報利用クライアントプログラムを記録した情報記録媒体
US20030225885A1 (en) * 2002-05-31 2003-12-04 Comverse, Ltd. Caching for limited bandwidth networks

Also Published As

Publication number Publication date
JP2005011354A (ja) 2005-01-13
US7577960B2 (en) 2009-08-18
EP1489811A3 (de) 2005-03-23
EP1489811A2 (de) 2004-12-22
EP1489811B1 (de) 2007-01-10
KR101150146B1 (ko) 2012-06-08
DE602004004200D1 (de) 2007-02-22
JP4794143B2 (ja) 2011-10-19
US20040261082A1 (en) 2004-12-23
KR20040111156A (ko) 2004-12-31
CN1592203A (zh) 2005-03-09

Similar Documents

Publication Publication Date Title
DE602004004200T2 (de) System und Verfahren zum Verwalten von gepufferten Objekten unter Verwendung von Mitteilungsverbindungen
DE60122691T2 (de) Verfahren und vorrichtung zum verteilten cachen
DE60111072T2 (de) Verfahren und vorrichtung zur parallelen nachrichtenübermittlung in echtzeit von dateisegmentierten
DE69938077T2 (de) Verfahren, Vorrichtung und Programmspeichereinrichtung für einen Klienten und ein adaptiver Synchronisierungs- und Transformierungsserver
DE69635469T2 (de) Synchronisierung zwischen verschiedenen Computeranbieterumgebungen
DE60204729T2 (de) Objektenlöschen von einem Vorrichtungspeicher
DE60213419T2 (de) Client-server-modell zur synchronisation von dateien
DE69907631T2 (de) Netzzugang zu inhaltsadressierbaren daten
DE60215002T2 (de) Verfahren und system für effiziente verteilung von netzwerk-ereignisdaten
DE69822283T2 (de) Verteilte dauerhafte Speicher für Benutzer- Anbieter- Systeme mit manchmal unterbrochenen Verbindungen
DE69727438T2 (de) Zwischenspeicher-Protokoll für verbesserte Webleistung
DE60131900T2 (de) Verfahren und system zur verwaltung von verteilten inhalten und verwandten metadaten
DE60223453T2 (de) Verfahren und Vorrichtung zur Benutzung eines Synchronisationsschlüssels
DE60220418T2 (de) Verfahren und Anbieter zur Systemsynchronisation
DE69834129T2 (de) Verfahren und system zum vorausladen von informationen
DE69935920T2 (de) Lastausgleich in einer netzwerkumgebung
DE60311396T2 (de) Verfahren zur Gestaltung eines Peer-to-Peer Netzwerks mit Hilfe eines gemeinsamen Gruppenetiketts
DE19747583B4 (de) Kommunikationssystem und Verfahren
DE10311082B4 (de) Elektronikdokumentmanagementverfahren
DE60204031T2 (de) Hierarchische cachespeicherung in telekommunikationsnetzen
DE10148357A1 (de) System und Verfahren zur gemeinsamen Nutzung digitaler Literaturwerke mit einem Schutz gegen illegale Kopien durch Kommunikationsnetze
DE112010004772T5 (de) Verfahren und System zum Verwalten von Konfigurationen von Systemverwaltungsagentenin einer Verteilten Umgebung
EP1959639B1 (de) Ausfallsicheres System zum Verwalten von Client-Server-Kommunikation
EP1810523B1 (de) Verfahren und produkte zum informationsabgleich zwischen manager und agent in einem managementnetz
EP2250588B1 (de) Verfahren und programm zum bereitstellen von datenkohärenz in netzwerken

Legal Events

Date Code Title Description
8364 No opposition during term of opposition