DE69531513T2 - Vervielfältigungssystem - Google Patents

Vervielfältigungssystem Download PDF

Info

Publication number
DE69531513T2
DE69531513T2 DE69531513T DE69531513T DE69531513T2 DE 69531513 T2 DE69531513 T2 DE 69531513T2 DE 69531513 T DE69531513 T DE 69531513T DE 69531513 T DE69531513 T DE 69531513T DE 69531513 T2 DE69531513 T2 DE 69531513T2
Authority
DE
Germany
Prior art keywords
files
copy
branch
file
computer system
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
DE69531513T
Other languages
English (en)
Other versions
DE69531513D1 (de
Inventor
Yuval Bellevue Neeman
Peter J. Issaquah Cook
Arnold S. Bellevue Miller
Balan S. Redmond Raman
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22665428&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69531513(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of DE69531513D1 publication Critical patent/DE69531513D1/de
Publication of DE69531513T2 publication Critical patent/DE69531513T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • 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/99931Database or file accessing

Description

  • Die vorliegende Erfindung bezieht sich allgemein auf Datenverarbeitungssysteme und, insbesondere, auf Kopiereinrichtungen, die insbesondere innerhlab verteilter Systeme verwendet werden.
  • Kopiereinrichtungen sind in einer Anzahl unterschiedlicher Typen von Software- Produkten vorgesehen worden. Zum Beispiel sind Kopiereinrichtungen in Datenbank-Produkten, Netzwerk-Directory-Service-Produkten und Groupware-Produkten eingeschlossen worden. Viele der herkömmlichen Kopiereinrichtungen sind im Hinblick auf dasjenige, was sie kopieren können, beschränkt. Zum Beispiel können viele herkömmliche Kopiereinrichtungen nur einen Typ einer logischen Struktur kopieren (d. h. eine Datei). Weiterhin sind die herkömmlichen Kopiereinrichtungen im Hinblick auf die Menge der logischen Strukturen, die sie zu einem Zeitpunkt kopieren können, beschränkt. Insbesondere können viele herkömmliche Kopiereinrichtungen nur eine Datei zu einem Zeitpunkt kopieren.
  • Software-Practice and Experience, Dezember 1987, UK, vol. 17, Nr. 12, ISSN 0038-0644, Seiten 923–940, Purdin T. D. M. et al. „A file replication facility for Berkeley Unix", offenbart eine Datei-Kopiereinrichtung zum Unterstützen eines Dateikopierens in einem Netzwerk-Computer. Eine Datei-Kopierung wird durch Reproduktions-Sätze unterstützt, die Zusammenstellungen von zwei oder mehr Dateien sind, in Bezug auf die das System versucht, sie identisch beizubehalten. Ähnlich kann eine Stellen-Transparenz für eine Zusammenstellung von Dateien unter Verwendung einer Metadatei bzw. eines Metafiles eingerichtet werden. Ein Reproduktions- bzw. Wiedergabe-Satz wird durch den mkrep Befehl erzeugt, der mehrere Datei-Argumente besitzt. Falls die Datei, angezeigt durch das erste Argument, existiert, wenn der Befehl ausgeführt wird; werden deren Inhalte zu den anderen, benannten Dateien kopiert.
  • Proceedings of the Summer 1993 USENIX Conference, Cincinnati; OH, USA, 21.-25. Juni 1993, 1993 Berkeley, CA, USA, USENIX Assoc, USA, Seiten 279 290, Fowler G. et al. „A user-level replicated file system", offenbart ein auf einem Benutzer-Level kopiertes Datei-System und beschreibt einen Kopiermechanismus. Um ein Kopieren von temporären Dateien zu vermeiden, führt der Kopiermechanismus eine neue Bezeichnung, einen kopierten Baum, ein, mit dem die Benutzer in der Lage sind, einen oder mehrere Unterbäume eines Dateisystems zu definieren, die kopiert werden müssen. Dateien unter kopierten Bäumen können zu einem physikalischen Backup-Datei-System hin kopiert werden, immer dann, wenn deren Konfext/Attribute geändert werden. Der Kopiermechanismus ermöglicht Benutzern, eine oder mehrere Unterbäume eines Datei-Systems als kopierte Bäume zu definieren. Kopierte bzw. replizierte Bäume werden nachfolgend dahingehend beschrieben, dass sie Benutzern ermöglichen, ein Kopieren der temporären Dateien zu vermeiden.
  • Es ist die Aufgabe der vorliegenden Erfindung, ein sichereres Verfahren von kopierten von Dateien in einem verteilten System, und ein entsprechendes, verteiltes System, zu schaffen.
  • Diese Aufgabe wird durch die Erfindung gelöst, wie sie in den unabhängigen Ansprüchen beansprucht ist. Die Erfindung ist nur wenig im Hinblick darauf eingeschränkt, was sie kopieren kann, und im Hinblick auf die Menge der logischen Strukturen, die sie zu einem Zeitpunkt kopieren kann.
  • Bevorzugte Ausführungsformen sind in den abhängigen Ansprüchen definiert.
  • Ein Verfahren wird geschaffen, das in einem verteilten System ausgeführt werden kann, das eine Kopiereinrichtung und eine Anzahl von Computersystemen umfasst, die jeweils eine Speichervorrichtung umfassen. Bei diesem Verfahren ist eine Mehrzahl von Dateien vorgesehen und in einem Baum organisiert. Eine einzelne Datei der Dateien wird unter Verwendung der Kopiereinrichtung kopiert, so dass eine Kopie der Datei in der Speichervorrichtung eines unterschiedlichen Computersystems, als die originale Kopie der Datei, gespeichert wird. Ein Unterbaum von Dateien mehrerer Level wird auch kopiert. Der Unterbaum ist ursprünglich in der Speichervorrichtung eines der Computersysteme gespeichert. Ein Kopieren wird unter Verwendung der Kopiereinrichtung durchgeführt, so dass eine Kopie des Unterbaums und dessen Dateien in der Speichervorrichtung in einem anderen der Computersysteme gespeichert sind.
  • Gemäß einem anderen Aspekt wird eine erste Kopie einer Datei in einem der Com putersysteme vorgesehen. Eine zweite Kopie der Datei wird in einem anderen der Com putersysteme vorgesehen. Die erste Kopie der Datei wird mit der zweiten Kopie der Datei unter Verwendung eines Reconcilers abgeglichen. Die Abgleichung stellt sicher, dass die zweite Kopie der Datei irgendwelche Änderungen, vorgenommen an der ersten Kopie der Datei, einschließt. Eine erste Kopie einer Gruppe von Dateien wird in einem der Computersysteme vorgesehen, und eine zweite Kopie der Gruppe von Dateien wird in einem anderen der Computersysteme vorgesehen. Die Reconcilereinrichtung wird dazu verwendet, die erste Kopie der Gruppe von Dateien mit der zweiten Kopie der Gruppe von Dateien so abzugleichen, dass die zweite Kopie der Gruppe von Dateien irgendwelche Änderungen, vorgenommen an der ersten Kopie der Gruppe der Dateien, seit die letzte abgeglichen ist, enthält.
  • Gemäß einem weiteren Aspekt wird eine erste Kopie einer Gruppe von Dateien in der Speichervorrichtung eines ersten der Computersysteme gespeichert. Eine zweite Kopie der Gruppe von Dateien wird in der Speichervorrichtung eines zweiten der Computersysteme gespeichert. Änderungen werden bei zumindest einer der Dateien in der ersten Kopie einer Gruppe von Dateien vorgenommen. Die Änderungen werden zu der zweiten Gruppe von Dateien unter dem Auftreten eines Ereignisses propagiert. Zusätzliche Änderungen werden bei mindestens einer der Dateien in der ersten Kopie einer Gruppe von Dateien vorgenommen, und diese Änderungen werden auch zu der zweiten Kopie einer Gruppe von Dateien unter dem Auftreten eines anderen Ereignisses propagiert.
  • Gemäß einem noch anderen Aspekt wird eine erste Kopie einer Gruppe von Datei en in der Speichervorrichtung des ersten Computersystems gespeichert. Die zweite Kopie der Gruppe von Dateien wird in der Speichervorrichtung eines zweiten Computersystems gespeichert. Irgendwelche Änderungen, vorgenommen an der ersten Kopie der Gruppe von Dateien, werden inkremental zu dem zweiten Computersystem geschickt, so dass die Änderungen bei der zweiten Kopie der Gruppe der Dateien vorgenommen werden können.
  • Gemäß einem zusätzlichen Aspekt wird ein erster Satz von Dateien, der in einer der Speichervorrichtungen gespeichert ist, dahingehend spezifiziert, dass er kopiert werden soll. Ein Filter wird zum Bestimmen spezifiziert, welche Dateien in dem ersten Satz von Dateien kopiert werden sollen. Die Dateien, spezifiziert durch den Filter, werden unter Verwendung der Kopiereinrichtung kopiert, um einen zweiten Satz von Dateien herzustellen.
  • Gemäß einem noch weiteren Aspekt werden Dateien, die Namen haben, in den Speichervorrichtungen des Computersystems des verteilten Systems gespeichert. Ein verteilter Namensraum ist vorgesehen. Der verteilte Namensraum weist eine logische Organisation der Namen der gespeicherten Dateien auf. Ausgewählte Bereiche einer Gruppe von Dateien in dem Namensraum werden kopiert, um neue Dateien, die die ausgewählten Bereiche der Dateien halten, zu erzeugen.
  • Gemäß einem weiteren Aspekt wird eine erste Kopie eines Satzes von Dateien einer gegebenen Klasse in einem ersten Computersystem gespeichert. Eine zweite Kopie des Satzes von Dateien wird in einem zweiten Computersystem gespeichert. Die erste Kopie des Satzes von Dateien wird mit der zweiten Kopie des Satzes der Dateien unter Verwendung eines klassen-spezifischen Reconcilers, der nur Dateien der gegebenen Klasse abgleicht, abgeglichen. Die Dateien können als dauerhafte Objekte gespeichert werden, die in Klassen organisiert sind. Objekte und Klassen werden nachfolgend diskutiert werden.
  • Gemäß einem anderen Aspekt läuft ein Anwendungsprogramm auf einem der Computersysteme eines verteilten Systems. Eine Anforderung wird innerhalb des Anwendungsprogramms zu einem privaten Kopiermechanismus vorgenommen, um einen Satz von Dateien zu kopieren. Jede der Dateien behält eine Liste von Prozessen bei, die ermöglicht bzw. zugelassen werden, um auf die Datei zuzugreifen. Der Satz von Dateien wird unter Verwendung des privaten Kopiermechanismus kopiert, um einen neuen Satz von Dateien zu erzeugen, ohne die Liste der Prozesse zu kopieren, die ermöglichten, auf die Datei zuzugreifen.
  • Gemäß einem weiteren Aspekt wird eine erste Kopie einer Gruppe von Dateien in einem ersten Computersystem vorgesehen und eine zweite Kopie der Gruppe von Dateien wird in einem zweiten Computersystem vorgesehen. Änderungen werden in Bezug auf die erste Kopie einer Gruppe von Dateien vorgenommen: Ein Agent wird für die erste Kopie einer Gruppe von Dateien vorgesehen. Jeder Agent besitzt Zugriffsrechte, um auf die Dateien in der ersten Kopie der Gruppe von Dateien zuzugreifen und diese zu lesen. Ein Reconciler ist an dem zweiten Computersystem zum Abgleichen der zweiten Kopie der Gruppe von Dateien mit der ersten Kopie der Gruppe von Dateien vorgesehen. Ein Proxy wird für den Agent der ersten Kopie der Gruppe von Dateien zu dem Reconciler erteilt. Der Proxy erteilt dem Reconciles eine begrenzte Autorität, um auf die Dateien in der ersten Kopie der Gruppe von Dateien zuzugreifen und diese zu lesen. Der Reconciler gleicht dann die zweite Kopie der Gruppe von Dateien mit der ersten Kopie der Gruppe der Dateien unter Verwendung des Reconcilers ab, so dass Änderungen, die in der ersten Kopie einer Gruppe von Dateien vorgenommen wurden, auch bei der zweiten Kopie einer Gruppe von Dateien vorgenommen werden.
  • Gemäß einem abschließenden Aspekt wird ein Verfahren in einem verteilten Sy stem durchgeführt. Bei diesen Verfahren sind heterogene Dateisysteme in dem verteilten System vorgesehen. Ein Speicher-Manager ist für jedes Dateisystem vorgesehen, um einen Zugriff auf die Dateien, die darin gehalten sind, zu managen. In Abhängigkeit einer Anforderung, einen ersten Satz von Dateien mit einem zweiten Satz von Dateien abzugleichen, wird ein Zugriff auf den ersten Satz von Dateien durch den Speicher-Manager für das Dateisystem erteilt, das den ersten Satz von Dateien enthält, und ein Zugriff wird zu dem zweiten Satz von Dateien durch den Speicher-Manager für das Dateisystem erteilt, das den zweiten Satz von Dateien hält. Der erste Objekt-Satz wird mit dem zweiten Objekt-Satz unter der Steuerung der Speicher-Manager der jeweiligen Dateisysteme abgeglichen, die den ersten Satz von Dateien und den zweiten Satz von Dateien halten.
  • Kurze Beschreibung der Zeichnungen
  • 1A zeigt ein Blockdiagramm eines verteilten Systems, geeignet zum Ausführen einer bevorzugten Ausführungsform der vorliegenden Erfindung.
  • 1B zeigt ein Diagramm eines verteilten Namensraums für ein verteiltes System gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung.
  • 2 zeigt ein Blockdiagramm einer Änderungs-Log-Datei, verwendet in der bevorzugten Ausführungsform der vorliegenden Erfindung.
  • 3 zeigt ein Blockdiagramm eines Kopier-Informations-Blocks (RIB), verwendet in der bevorzugten Ausführungsform der vorliegenden Erfindung.
  • 4 zeigt ein Blockdiagramm, das die funktionalen Komponenten der Kopiereinrichtung, verwendet in der bevorzugten Ausführungsform der vorliegenden Erfindung, darstellt.
  • 5 zeigt ein Diagramm, das die Wechselwirkung von Elementen darstellt, die eine Rolle in einem öffentlichen Kopieren in der bevorzugten Ausführungsform der vorliegenden Erfindung spielen.
  • 6 zeigt ein Flussdiagrmm der Schritte, die beim Kopieren in der bevorzugten Ausführungsform der vorliegenden Erfindung durchgeführt werden.
  • 7 zeigt ein Flussdiagramm, das die Schritte darstellt, die durchgeführt werden; um eine Sicherheit während eines Kopierens in der bevorzugten Ausführungsform der vorliegenden Erfindung zu erzielen.
  • Detaillierte Beschreibung der Erfindung
  • Eine bevorzugte Ausführungsform der vorliegenden Erfindung sieht eine Kopierein richtung zur Verwendung in einer verteilten Umgebung vor. Die Kopiereinrichtung unterstützt ein schwach konsistentes Kopieren irgendeines Unterbaums von dauerhaften Objekten in dem verteilten Namensraum des Systems. Die Kopiereinrichtung kann einzelne Objekte kopieren oder kann logische Strukturen kopieren, die mehrere Objekte umfassen Die Kopiereinrichtung kopiert lokale Kopien von Objekten mit entfernten Kopien von Objekten. Eine Abgleichung tritt auf einer paarweisen Basis auf, so dass jedes Objekt in einem lokalen Satz von Objekten mit seinem entsprechenden Objekt in dem entfernten Satz- von lokalen Objekten abgeglichen wird. Die Abgleichung kann über heterogene Dateisysteme auftreten.
  • 1A zeigt ein verteiltes System 10, das zum Ausführen der bevorzugten Ausführungsform.der vorliegenden Erfindung geeignet ist. Das verteilte System 10 umfasst einen Zwischenverbindungsmechanismus 12, wie beispielsweise ein Local Area Network (LAN), ein Wide Area Network (WAN) oder einen anderen Zwischenverbindungsmechanismus, der eine Anzahl von unterschiedlichen Datenverarbeitungsquellen bzw. ressourcen miteinander verbindet. Die Datenverarbeitungsquellen umfassen Arbeitsstahonen 14, 16, 18 und 20, Drucker 22 und 24 und sekundäre Speichervorrichtungen 26 und 28. Jede der Arbeitsstationen 14, 16, 18 und 20 umfasst einen entsprechenden Speicher 30, 32, 34 und 36. Jeder Speicher 30, 32, 34 und 36 hält eine Kopie eines verteilten Betriebssystems 38. Jede Arbeitsstation 14, 16, 18 und 20 kann ein separates Dateisystem ausführen.
  • Fachleute auf dem betreffenden Fachgebiet werden erkennen, dass die vorliegende Erfindung bei Konfigurationen, anderen als die Konfiguration, die in 1A dargestellt ist, praktiziert werden kann. Das verteilte System 10, dargestellt in 1A, ist dazu vorgesehen, dass es nur erläuternd und nicht einschränkend für die vorliegende Erfindung ist. Zum Beispiel kann der Zwischenverbindungsmechanismus 12 eine Anzahl von Netzwerken zusammen verbinden, die separate Netzwerk-Betriebssysteme laufen lassen.
  • Die bevorzugte Ausführungsform der vorliegenden Erifindung ermöglicht Benutzern, und System-Administratoren, dauerhafte „Objekte" zu kopieren. Ein Objekt in diesem Zusammenhang ist eine logische Struktur, die mindestens ein Datenfeld hält. Gruppen von Objekten mit ähnlichen Eigenschaften und gemeinsamen Semantiken sind in Objektklassen organisiert. Eine Anzahl von unterschiedlichen Objektklassen kann für das verteilte System 10 definiert werden. Obwohl die bevorzugte Ausführungsform der vorliegenden Erfindung Objekte einsetzt, werden Fachleute auf dem betreffenden Fachgebiet erkennen, dass die vorliegende Erfindung nicht auf eine objekt-orientierte Umgebung beschränkt ist; im Gegensatz dazu kann die vorliegende Erfindung auch in nicht objekt-orientierten Umgebungen praktiziert werden. Die vorliegende Erfindung ist nicht auf ein Kopieren von Objekten beschränkt; im Gegensatz dazu ist sie allgemeiner dafür geeignet, das Kopieren von logischen Strukturen, wie beispielsweise Dateien oder Datei-Directories, zu unterstützen.
  • Das Betriebssystem 38 umfasst ein Dateisystem zum Speichern der Objekte, die in der bevorzugten Ausführungsform der vorliegenden Erfindung verwendet werden. Die Objekte sind in einem verteilten Namensraum 19 (1B) organisiert. Der verteilte Namensraum 19 ist eine logische, baumähnliche Struktur, gebildet aus den Objektnamen 21, gespeichert in dem Dateisystem des Betriebssystems 38. Der verteilte Namensraum 19 stellt die Hierarchie unter den benannten Objekten des Systems 10 dar (1A).
  • Die Kopiereinrichtung der bevorzugten Ausführungsform der vorliegenden Erfindung dient nicht nur für die Duplizierung von Objekten, so dass Objekte über das verteilte. System hinweg verteilt werden können, sondern dient auch für eine Abgleichung von mehreren Kopien von Objekten (d. h. Multimaster-Replikation). Eine Abgleichung bezieht sich auf eine Abgleichung eines Objekts mit einem geänderten Objekt, so dass das Objekt die Änderungen, vorgenommen an dem geänderten Objekt, wiedergibt. Zum Beispiel wird angenommen, dass eine entfernte Kopie eines Objekts geändert worden ist und eine lokale Kopie des Objekts noch nicht so aktualisiert worden ist, um die Änderungen zu reflektieren. Jedes Objekt besitzt nicht nur Inhalte, sondern besitzt auch einen Namen und eine Stelle innerhalb des verteilten Dateisystems. Eine Abgleichung umfasst eine Abgleichung der zwei Kopien des Objekts, so dass die lokale Kopie des Objekts in einer ähnlichen Weise zu derjenigen geändert wird, in der die entfernte Kopie des Objekts geändert wurde. Der Ausdruck „Replikation" bzw. "Kopieren", wie er hier verwendet wird, bezieht sich nicht nur auf ein Duplizieren von Objekten, so dass mehrere Kopien der Objekte über das verteilte System 10 verteilt werden, sondern bezieht sich auch auf eine Abgleichung der Kopien der Objekte.
  • Bevor die bevorzugte Ausführungsform der vorliegenden Erfindung in weiterem Detail nachfolgend diskutiert wird, ist es hilfreich, ein paar Schlüsselkonzepte einzuführen, auf die nachfolgend Bezug genommen werden wird. Ein „Objekt-Satz" ist eine Zusammenstellung von Objekten, die zusammen für ein Kopieren gruppiert sind. Ein Objekt-Satz kann ein einzelnes Objekt oder einen Unterbaum von Objekten umfassen. Der Objekt-Satz wird durch den Benutzer oder den Administrator, der ein Kopieren anfordert, spezifiziert Ein „Kopie-Satz" bzw. „Replika Set" ist im Gegensatz dazu eine Zusammenstellung von Systemen, die jeweils eine lokale Kopie eines Objekt-Satzes besitzen, und eine „Kopie" bzw. ein „Replika" ist ein Element eines Kopiesatzes.
  • Um die Kopiereinrichtung von dem unterlegenden, physikalischen Speichersystem zu isolieren (z. B. der Typ eines Dateisystems, der eingesetzt wird, um Objekte zu speichern), und um eine Erweiterungsfähigkeit vorzusehen, wendet die bevorzugte Ausführungsform der vorliegenden Erfindung die Abstrahierung eines Speichers für kopierte Objekte (ReplStore) an. Die ReplStore Abstraktion ermöglicht der Kopiereinrichtung, dass, sie über heterogene Dateisysteme hinweg angewandt wird. Das ReplStore präsentiert eine Gruppe von Schnittstellen, die für ein unterlegendes, physikalisches Speichersystem unterstützt werden müssen, um Kopiereinrichtungen zu unterstützen. Insbesondere können nur solche Objekte, die in Objektspeichern vorhanden sind, die die ReplStore Schnittstel len unterstützen, kopiert werden. Eine Schnittstelle ist eine benannte Gruppe von logisch in Bezug stehenden Funktionen. Die Schnittstelle spezifiziert Signaturen (wie beispielsweise Parameter) für die Gruppe von in Bezug stehenden Funktionen, geliefert durch eine Schnittstelle. Die Schnittstelle liefert keinen Code zum Ausführen der Funktionen; vielmehr wird der Code zum Ausführen der Funktion durch Objekte oder durch andere Implementationen geliefert. Objekte, die den Code für einen Fall einer Schnittstelle liefern können, sind solche, um die Schnittstelle „zu unterstützen". Der Code, geliefert durch ein Objekt, das eine Schnittstelle unterstützt, muss mit der Signatur, spezifiziert innerhalb der Schnittstelle übereinstimmen. Demzufolge muss, in dem Beispiel, das vorstehend beschrieben ist, der Objektspeicher, der die Objekte in dem Objekt-Satz speichert, die ReplStore Schnittstellen unterstützen, damit der Objekt-Satz kopiert werden kann. Implementierungen der ReplStore Schnittstellen sind für jedes der Dateisysteme innerhalb des verteilten Systems 10 vorgesehen, um ein Kopieren über jedes der Dateisysteme zu unterstützen.
  • Jeder ReplStore schafft einen Mechanismus zum Identifizieren von kopierten Ob jekten auf einem lokalen Volumen. Dieser Mechanismus ist die Idee des replizierten Objekts (replicated object ID – ROBID). Die ROBID ist eine Abstrahierung, die die Identität ebenso wie andere Informationen über ein Objekt, das kopiert werden soll, einkapselt. Der ReplStore unterstützt Programme zum Serialisieren und Entserialisieren von ROBIDs. Die ROBID eines Objekts schafft einen Mechanismus zum Durchführen von zahlreichen Operationen. Zum Beispiel kann ein Objekt von einem Speicher unter Verwendung von Informationen, die in der ROBID enthalten sind, aufgesucht werden. Weiterhin kann ein Komponentenname eines Objekts von dessen ROBID ausgesucht werden.
  • Jeder ReplStore behält eine kopierte Speicher-Änderungs-Log-Datei 40 (2) bei. Die Änderungs-Log-Datei 40 umfasst eine Zahl von Änderungselementen 42, die Änderungen spezifizieren, die in Bezug auf Objekte in dem Objekt-Satz vorgenommen worden sind. Jedes Änderungselement 42 umfasst ein Typ-Feld 44, ein serialisiertes ROBID Feld 46 für das Objekt, das geändert wird, ein Zeit-Feld 48, das die Zeit anzeigt, zu. der die Änderung aufgetreten ist (lokale Zeit), und ein Kopier-Informations-Block (replication information block – RIB) Feld 50, das eine RIP hält, die der Änderung zugeordnet ist. In der Ausführungsform, die hier beschrieben ist, sind fünf Typen von Änderungen vorhanden, die innerhalb des Typ-Felds 44 spezifiziert werden können. Diese Änderungen sind Löschen, Erzeugen, Modifizieren, Umbenennen und Bewegen. Eine Löschung tritt dann auf wenn ein Objekt gelöscht wird. Eine Erzeugung tritt dann auf, wenn das Objekt erzeugt. wird. Eine Modifikation tritt dann auf, wenn die Inhalte des Objekts in irgendeiner Weise modifiziert werden. Eine Umbenennung tritt dann auf, wenn der Komponenten-Name des Objekts modifiziert wird, und eine Bewegung tritt auf, wenn das Objekt unter einem neuen Parent in dem verteilten Namensraum des Systems bewegt wird.
  • Ein Cursor 49 wird innerhalb der Änderungs-Log-Datei 40 beibehalten, der als ein Index in die Liste von Änderungselementen 42 hinein wirkt. Der Cursor 49 wirkt als ein Markierer in der Liste von Änderungselementen 42. Zusätzlich kann eine Änderungs-LogDatei mehrere Cursor umfassen. Der Cursor 49 kann die Form eines Zeitstempels an nehmen. Der Cursor 49 kann zum Beispiel den Beginn von Anderungen,die nach einem Zeitpunkt aufgetreten sind, identifizieren.
  • Jedes Objekt in einem Objekt-Satz, das kopiert werden soll, wird mit einem RIB 51 (3) gestempelt. Der RIB 51 besitzt drei Felder: ein Ursprungs-Feld (originator-field) 57, ein Änderungs-Identifizierer-Feld 55 und ein Propagator-Feld 57. Das Ursprungs-Feld 53 spezifiziert, wo die letzte Änderung an dem Objekt auftrat. Das Änderungs-Identifizierer-Feld 55 identifiziert, im Gegensatz dazu, die letzte Änderung an dem Objekt relativ zu dem Ursprung, der identifiziert ist, und zwar innerhalb des Ursprungs-Felds 53. Zuletzt spezifiziert das Propagator-Feld 57 die Identität der Partei, die die Änderung zu der lokalen Stelle schickte. Wenn ein Objekt lokal geändert wird, wird der RIP 51 zugeordnet zu dem Objekt, modifiziert, um die lokale Stelle als den Ursprung und den Propagator wiederzugeben. Der Änderungs-Identifizierer wird geeignet gestempelt.
  • Ein Kopieren ist für das verteilte System 10 dahingehend nützlich, dass es ein Belastungs-Ausbalancieren und eine Verfügbarkeit liefert. Ein Kopieren liefert ein Belastungs-Ausbalancieren dadurch, dass man mehr als eine Kopie eines Objekts, gespeichert über das verteilte System 10 hinweg, hat, um die Belastung an irgendeiner Kopie des Objekts zu begrenzen. Ein Kopieren erhöht die Verfügbarkeit, indem ermöglicht wird, dass mehrere Kopien von wichtigen Objekten über das System 10 hinweg verteilt werden können. Die erhöhte Verfügbarkeit erhöht die Fehlermöglichkeit des Systems. Genauer ge- sagt werden, indem man Kopien von wichtigen Objekten über das System 10 verteilt besitzt, Benutzer weniger durch Fehler innerhalb des Systems beeinflusst, die einen Zugriff auf Objekte verhindern oder einschränken. Die erhöhte Verfügbarkeit erhöht auch die Funktionsweise des Systems.
  • Die bevorzugte Ausführugsform der vorliegenden Erfindung wird in einer Ko- piereinrichtung 54 (4) verkörpert, die Teil des Betriebssystems 38 ist. Allerdings werden Fachleute auf dem betreffenden Fachgebiet erkennen, dass die Kopiereinrichtung der vorliegenden Erfindung auch in anderen Umgebungen, einschließlich graphischen Benutzerschnittstellen, ausgeführt werden kann. Wie in 4 dargestellt ist, umfasst die Kopiereinrichtung 54 drei primäre, funktionale Komponenten: eine Kopiekomponente 56, eine Reconciler-Komponenten 58 und eine Steuerkomponente 60. Die Kopiereinrichtung 54 verwnrendet die Kopiekomponente 56 für ein Duplizieren. Zusätzlich gleicht die Kopiereinrichtung 54 Kopien von Objekt-Sätzen unter Verwendung der Reconciler-Komponenten 58 ab, um sicherzustellen, dass sie zueinander konsistent sind. Diese Abgleichung stellt eine konsistente Ansicht der Objekte über das verteilte System 10 sicher.
  • Ein Level einer Steuerung, ausgeübt durch die Steuerkomponente 60, bezieht sich darauf, wie ein Kopieren aufgerufen wird. Ein Kopieren kann manuell oder automatisch aufgerufen werden. Ein manueller Aufruf erfordert, dass eine explizite Anforderung, um zu Kopieren, durch einen Benutzer oder eine andere Partei vorgenommen ist. Der Benutzer oder die andere Partei muss den Objekt-Satz und die Bestimmung für das Kopieren spezifizieren. Die Bestimmungen sind nicht für jeden Kopierzyklus spezifiziert; im Gegensatz dazu wird eine Replika-Verbindung zu Anfang spezifiziert. Die Replika-Verbindung identifiziert die zwei Replikas bzw. Kopierungen und den Objekt-Satz, die bei dem Kopieren umfasst sind. Im Gegensatz dazu tritt ein automatisches Aufrufen dann auf, wenn ein Kopieren durch bestimmte Ereignisse 67 (siehe 5) oder durch Verstreichen einer bestimmten Zeitdauer (die als ein Typ eines Ereignisses konstruiert sein kann) getriggert wird. Ein Kopieren kann vorab ablaufmäßig geplant werden, um unter festgelegten Zeitintervallen aufzutreten. Ein anderer Aspekt einer Kontrolle bzw. Steuerung, ausgeübt durch den Steuermechanismus, tritt dort auf, wo man ein Kopieren aufrufen kann. Ein Kopieren "kann durch eine geeignet privilegierte Partei aufgerufen werden.
  • Die bevorzugte Ausführungsform der vorliegenden Efindung schafft zwei Typen eines Kopierens: ein öffentliches Kopieren und ein privates Kopieren. Ein öffentliches Kopieren bezieht sich auf einen Vorgang, der nur durch geeignet privilegierte Parteien vorgenommen werden kann, um eine „öffentliche" Kopie eines Objekt-Satzes zu erzeugen. Bei einem öffentlichen Kopieren kooperiert jede der Kopien des Objekt-Satzes, die erzeugt werden, mit den anderen Kopien, um eine Konsistenz beizubehalten. Die Knoten in dem Namensraum, die die öffentlichen Kopien speichern, und zwar zusammen, bilden einen öffentlichen Replika-Satz, und die Elemente des Satzes behalten Zustands-Informationen bei, um eine Konsistenz unter den Kopien beizubehalten. Zugriffsbeschränkungen auf die Objekte werden bewahrt. Änderungen, die in einer öftentlichen Kopie eines Objekt-Satzes auftreten, werden mit anderen, öffentlichen Kopien abgeglichen.
  • Ein privates Kopieren bezieht sich auf einen Vorgang zum Herstellen von privaten Kopien eines Objekt-Satzes. Eine private Kopie kann durch irgendeine Partei, einschließlich, eines Nichtadministratots, erzeugt werden. Nicht alle Elemente der kopierten Sätze behalten Züstands-Informationen bei, um eine Konsistenz unter Kopien aufrechtzuerhalten. Ein privates Kopieren wird in weiterem Detail nachfolgend diskutiert werden.
  • Eine Anzahl von Elementen spielt eine Rolle in dem Kopierprozess der bevorzugten Ausführungsform der vorliegenden Erfindung. 5 zeigt ein Diagramm, das die Elemente darstellt, die eine Hauptrolle in dem öffentlichen Kopierprozess darstellen. Objekt-Kopier-Agenten (Object Replication Agents – ORAs) 62 und 64 sind Kopierer-Objekte, die als Agenten an Knoten wirken, in denen Objekt-Sätze gespeichert sind, um eine automatische Unterstützung für ein Kopieren zu schaffen. Jede Maschine in dem verteilten System besitzt deren eigenen ORA. Die ORAs 62 und 64 können als Fern-Prozedur-Aufruf(Remote Procedure Call – RPC) Server dienen, die Anforderungen, vorgenommen für entfernte Clients, bedienen, oder können alternativ andere Typen von zuverlässigen Kommunikationsmechanismen sein, die eine ähnliche Rolle spielen. Ein separater ORA 64 ist für ein lokales Objekt vorgesehen und ein anderer ORA 64 ist für das entsprechende, entfernte Objekt in dem öffentlichen Kopierprozess vorgesehen. Ein lokaler ORA 62 ist für ein Laden eines ReplStore DLL 66 und eines ReplStore Manager DLL 65 verantwortlich. Der ReplStore Manager 65 ist für eine Zugriffsregulierung zu dem ReplStore 66 verantwortlich. Clients rufen den ReplStore Manager 65 auf, um den geeigneten ReplStore 66 für ein gegebenes, physikalisches Speichersystem zu laden. Die ORAs 62 und 64 besitzen einen Privileg-Level, der ihnen ermöglicht, alle Objekte zu lesen und zu schreiben, die von einem Lokal-Objekt-Speicher kopiert sind. Die ORAs 62 und 64 sind für ein Antworten auf Anforderungen hin veräntwortlich, um Änderungen mit anderen ORAs, die öffentliche Kopien beibehalten, auszutauschen.
  • Ein Reconciler 68 spielt auch eine Rolle in dem öffentlichen Kopierprozess. Er wirkt als ein Gegenstück zu dem lokalen ORA 62, um den Lokal-Objekt-Satz mit dem entfernten Objekt entsprechend abzugleichen. Der Reconciler 68 wird durch den lokalen ORA 62 aufgerufen und ist für ein Öffnen von Objekten verantwortlich, die abgeglichen werden sollen. Zwei Typen von Reconciler-Objekten können durch den Reconciler- 68 aufgerufen werden. Genauer gesagt kann ein klassen-spezifischer Reconciler 70 aufgerufen werden, oder ein Default- (d. h. eine klassen-unabhängiger) Reconciler 72 kann aufgerufen werden. Der klassen-spezifische Reconciler 70 gleicht Objekte ab, die klassen-spezifische Anforderungen beim Kopieren haben. Der klassen-spezifische Reconciler 70 wird auf nur eine Klasse von Objekten angewandt. Der klassen-unabhängige Reconciler 72 gleicht Objekte ungeachtet deren Klasse ab. Mehrere klassen-unabhängige Reconciler können in dem System 10 verfügbar sein. Zum Beispiel kann jeder Objekt-Satz seinen eigenen, klassenunabhängigen Reconciler haben. Jeder Replika-Satz kann seinem eigenen, klassenunabhängigen Reconciler zugeordnet sein, der immer dann aufgerufen wird, wenn ein klassen-spezifischer Reconciler nicht verfügbar ist. Zuletzt können, wie vorstehend erwähnt ist, Ereignisse 67 eine Rolle beim Triggern eines Kopierens spielen.
  • 6 zeigt ein Flussdiagramm der Schritte, durchgeführt für ein Kopieren in der bevorzugten Ausführungsform der vorliegenden Erfindung. Zu Anfang wird ein Zugriff zu einer Änderungs-Log-Datei 40 (2) für einen entfernten Objekt-Satz (Schritt 74 in 6) erhalten. Insbesondere dann, wenn ein Lokal-Objekt-Satz mit einem entfernten Objekt-Satz abgeglichen werden soll, kontaktiert der lokale ORA 62 (5) den entfernten ORA 64 über einen Fern-Prozedur-Aufruf-Mechanismus. Der lokale ORA 62 kontaktiert den entfernten ORA 64, um einen Zugriff zu der Änderungs-Log-Datei 40 zu erhalten. Ein Cursor 49 (2) wird dann in der Änderungs-Log-Datei (Schritt 76 in 6) erzeugt. Genauer gesagt speichert der lokale ORA 62 einen Zeitstempel, der die Zeit des letzten Abgleichens zwischen den Objekt-Sätzen anzeigt, und führt dann diesen Zeitstempel zu dem entfernten ORA 64 weiter, um als ein Cursor 49 verwendet zu werden. Der entfernte ORA 64 führt dann diesen Zeitstempel als einen Cursor in die Fern-Änderungs-Log-Datei 40 hinein. Der Cursor identifiziert Elemente in der Änderungs-Log-Datei, die die Zeitstempel nach der letzten Abgleichung haben, und sie sind demzufolge für diesen Kopierzyklus von Interesse.
  • Eine Liste von Änderungselementen wird dann von der Fern-Änderungs-Log-Datei, unter Verwendung des Cursors, erhalten, um die Änderungselemente zu identifizieren, die für Änderungen dienen, die nach dem letzten Abgleichen aufgetreten sind. Der entfernte ORA 64 siebt die RIBs 51 jedes der Änderungselemente 42, um sicherzustellen, dass der entfernte ORA nicht zurück zu den Änderungen des lokalen ORA 62 führt, die von dem lokalen ORA ursprünglich ausgingen (d. h. der entfernte ORA prüft das Ursprungs-Feld 53' der RIBs), und prüft die RIBs, um sicherzustellen, dass Änderungselemente hinsichtlich Änderungen, die von dem lokalen ORA (d. h. der entfernte ORA prüft das Propagator-Feld 57 der RIBs) propagiert wurden, nicht geschickt werden. Die erhaltenen Änderungselemente werden zurück zu dem lokalen ORA 62 geführt, wo sie dauerhaft gespeichert werden. Der lokale ORA 62 verwendet dann den Reconciler 68, um eine Namensraum- Abgleichung (Schritt 80) und eine Inhalts-Abgleichung (Schritt 82) an den Objekten, die durch die ROBIDs in den Änderungselementen identifiziert sind, durchzuführen. Insbesondere gleicht der Reconciler 56 jedes Objekt ab, das sich in dem entfernten Objekt-Satz geändert hat, mit entsprechenden Objekten des Lokal-Objekt-Satzes. Irgendwelche Änderungen, die an dem entfernten Objekt vorgenommen worden sind, werden bei dem entsprechenden, lokalen Objekt vorgenommen. Ob der klassen-spezifische Reconciler 70 oder der klassen-unabhängige Reconciler 72 verwendet wird, hängt von der Quelle ab (d. h. entfernte Kopie eines Objekts). Ein klassen-spezifischer Reconciler 70 wird nur dann verwendet, wenn die entfernte Kopie des Objekts einen solchen Reconciler erfordert.
  • Eine Namensraum-Wiederherstellung wird für irgendeine Änderung, aufgezeichnet in einem Änderungselement, durchgeführt (siehe Schritt 80 in 6), das nicht strikt einer Inhaltsmodifikation oder das nicht einer Systemeigenschaft zugeordnet ist. Solche Änderungen umfassen Erzeugungen, Löschungen, Bewegungen und Umbenennungen. Eine Namensraum-Abgleichung tritt durch Vergleichen von Informationen, eihaltbar durch RO-BIDs von lokalen Objekten, relativ zu Informationen, gespeichert für entsprechende, entfernte Objekte, auf. Viele unterschiedliche Arten und Weisen zum Lösen von Namen-Auflösungs-Konflikten können innerhalb der vorliegenden Erfindung verwendet werden. Die vorliegende Ausführungsform der vorliegenden Erfindung wendet allerdings Regeln ie vorliegende Ausführun an. Eine erste Regel, verwendet durch die bevorzugte Ausführungsform der vorliegenden Erindung, um Namensraum-Konflikte aufzulösen, ist diejenige, eine letzte Modifikation gegenüber einer vorherigen Modifikation auszuwählen. Wenn ein Objekt an einer Stelle bewegt/umbenannt wird, um einen ersten Namen zu haben, und dasselbe Objekt zu einer anderen Stelle bewegt oder umbenannt wird, um einen unterschiedlichen Namen zu haben, wird die letzte auftretende Änderung ausgewählt, so dass das Objekt den Namen, der der letzten Änderung zugeordnet ist annimmt. Eine zweite Regel wird dazu verwendet, Namensraum-Kollisionen aufzulösen. Eine Namensraum-Kollision tritt dann auf, wenn zwei unterschiedliche Objekte erzeugt, bewegt oder umbenannt werden, um denselben Namen zu haben. Die zweite Regel spezifiziert, dass, welches Objekt auch immer erzeugt; bewegt oder zuerst umbenannt wurde, der Name ist, der für das Objekt an des lokalen Stelle ausgewählt ist.
  • Eine Inhalts-Abgleichung (siehe Schritt 82 in 6) setzt ein Abgleichen von Inhalten eines lokalen Objekts mit einem entfernten Objekt ein, so dass das lokale Objekt die Modifikationen umfasst, die an dem entfernten Objekt vorgenommen sind. Durch Prü fen der Änderungen in der Änderungs-Log-Datei können die lokalen Objekte geändert werden, um dieselben Inhalte wie die entfernten Objekte zu haben.
  • Während einer Kopierung werden Änderungen von einem Replika zu einem ande ren propagiert. Ein Kopieren bzw. eine Replizierung ist „eine Art und Weise", in der die Änderungen, vorgenommen an einer anfänglichen Kopie eines Objekt-Satzes, bei einer . zweiten Kopie des Objekt-Satzes vorgenommen werden. Dabei ist keine unmittelbare, reziprokale Aktion vorhanden, um die Änderungen, vorgenommen bei der zweiten Kopie des Objekt-Satzes, bei der ersten Kopie des Objekt-Satzes vorzunehmen. Nichtsdestotrotz kann eine solche Propagation zu der ersten Kopie des Objekt-Satzes durchgeführt werden. Unter Angabe dieser einen Art und Weise eines Kopierens überwacht jedes Replika, wie aktuell eine lokale Kopie eines Objekt-Satzes für eine Replika ist, wobei Cursor irr Partner-Änderungs-Log-Dateien beibehalten werden. Bei dem Abschluss jeder Änderung während einer Abgleichung ändern die zwei Replikas bzw. Kopierungen Cursor-Informationen.
  • Eine öffentliche Replizierung bzw. Kopierung besitzt eine Anzahl von Sicherheitsmerkmalen. Allgemein müssen Reconciler in der Lage sein, Objekte zu aktualisieren, um ein Kopieren vorzunehmen. Der klassen-unabhängige Reconciler ist ein vertrauensvoller System-Prozess, und besitzt, demzufolge, eine Annahme zu einem Sicherheitsrisiko. Klassen-spezifische Reconciler sind allerdings keine vertrauensvollen System-Prozesse, und besitzen demzufolge ein Sicherheitsproblem. Um dabei zu helfen, dieses Sicherheitsdilemma zu beseitigen, verwendet die bevorzugte Ausführungsform der vorliegenden Erfindung "Proxies".
  • Ein Proxy ist ein Delegations-Ticket, das ermöglicht, dass Arbeiter-Prozesse oder entfernte Prozesse gut definierte Operationen durchführen, ohne dass sie außergewöhnliche Privilegien haben. Das Proxy fasst Daten paketmäßig Referenzen der erteilenden Partei zusammen und leiht sie den Parteien, die nach einem Zugriff zu entfernten Objekten nachsuchen. Die Partei, die nach einem Zugriff sucht, kann dann in die Schuhe der erteilenden Partei einsteigen und auf die notwendigen Objekte zugreifen. Diese Empfehlungen können verschlüsselt sein. 7 zeigt ein Flussdiagramm der Schritte, die durchgeführt werden, um ein Proxy in der bevorzugten Ausführungsform der vorliegenden Erfindung zu verwenden. Während des Kopierprozesses gibt der entfernte ORA 64 (5) einem lokalen Reconciler 68 ein Proxy(Schritt 84 in 7) wie vorstehend erwähnt ist, umfasst dieses Proxy die geeigneten Empfehlungen und Zugriffsrechte, die durch den entfernten ORA dem lokalen Reconciler erteilt werden müssen. Der Reconciler 68 schickt dann die Empfehlungen zu der entfernten Stelle (Schritt 86 in 7). Mit anderen, Worten präsentiert der Reconciler 68 den Proxy zu der entfernten Stelle. Die entfernte Stelle validiert dann die Empfehlungen, und falls die Empfehlungen gültig sind, erteilt sie einen be- grenzten Zugriff zu den Objekten innerhalb der entfernten Kopie des Objekt-Satzes; der in Rede steht (Schritt 88). Der Reconciler 68 erteilt dann einen Zugriff zu den entfernten Objekten in dem Objekt-Satz (Schritt 80). Der Bereich eines Zugriffs des lokalen Reconcilers ist allerdings auf nur dasjenige beschränkt, das notwendig ist, um eine geeignete Abgleichung durchzuführen. Es sollte ersichtlich werden, dass die vorliegende Erfindung nicht auf die ausschließliche Verwendung von Proxies eingeschränkt ist. Irgendeine Technik, die einen sicheren Zugriff erteilt, beispielsweise so, dass jede ORA zu einem Mitglied einer gemeinsamen Zugriffsgruppe gemacht wird, die Zugriffsrechte erteilt, ist zulässig.
  • Das meiste der vorstehenden Diskussion hat sich auf ein öffentliches Kopieren kon zentriert. Ein privates Kopieren ist ähnlich zu dem öffentlichen Kopieren, umfasst allerdings eine Anzahl von Unterschieden. In eisern privaten Kopieren muss die Quelle von Änderungen nicht eine Aufzeichnung darüber beibehalten, welche Objekte dupliziert oder geändert wurden. Dabei sind keine Zustands-Informationen, beibehalten an der Quelle, vorhanden. Die Quelle ist nicht zum Hinweisen darauf verantwortlich, dass Änderungen aufgetreten sind. Dementsprechend sind die Ressourcen, die für ein öffentliche Kopieren erforderlich sind, nicht erforderlich. Diese Charakteristika machen eine private Replizierung bzw. Kopierung besonders für Fälle geeignet, bei denen eine manuelle Kontrolle über ein Kopieren erwünscht ist, oder Fälle, bei denen die Kosten eines Beibehaltens einer öffentlichen Kopie eines Objekt-Satzes nicht garantiert sind.
  • Während die vorliegende Erfindung unter Bezugnahme auf eine bevorzugte Ausfüh rungsform davon beschrieben worden ist, werden Fachleute auf dem betreffenden Fachgebiet erkennen, dass die verschiedenen Änderungen in Form und im Detail vorgenommen werden können, ohne den Schutzumfang der vorliegenden Erfindung, wie er in den beigefügten Ansprüchen definiert ist, zu verlassen. Zum Beispiel muss die vorliegende Erfindung nicht in einer objekt-orientierten Umgebung ausgeführt werden und muss nicht nur in einer Konfiguration eines verteilten Systems ähnlich zu demjenigen, die in1A dargestellt ist, praktiziert werden. Weiterhin können Kommunikationsmechanismen, andere als RPD-Mechanismen, für entfernte Interaktionen verwendet werden, und Sicherheitsmechanismen, andere als die Proxies, können eingesetzt werden.

Claims (28)

  1. Verfahren zum Kopieren von Dateien in einem verteilten System (10), wobei das System eine Kopiereinrichtung (38, 54) und eine Anzahl von Computersystemen (14–20) aufweist, die jeweils eine Speichervorrichtung (32, 66) enthalten, wobei jede Speichervorrichtung eine Vielzahl von Dateien enthält, die zu einem Baum (19) von Dateien geordnet sind, und die zu kopierenden Dateien unter Verwendung der Kopiereinrichtung in der Speichervorrichtung eines ersten der Computersysteme gespeichert werden, so dass eine Kopie der Datei in der Speichervorrichtung eines zweiten der Computersysteme gespeichert wird, wobei das Verfahren die folgenden Schritte umfasst: Kopieren einer einzelnen Datei, die in der Speichervorrichtung des ersten Computersystems gespeichert wird, in die Speichervorrichtung des zweiten Computersystems unter Verwendung der Kopiereinrichtung; und Kopieren eines Zweiges von Dateien mehrerer Ebenen aus dem Baum von Dateien, der in der Speichervorrichtung des ersten Computersystems gespeichert wird, unter Verwendung der Kopiereinrichtung; Bereitstellen eines Agenten (62, 64) für die erste Kopie des Zweiges von Dateien, wobei jeder Agent Zugriffsrechte zum Zugreifen auf die und Lesen der Dateien in der ersten Kopie des Zweiges von Dateien hat; Bereitstellen eines Reconcilers (68) in dern zweiten Computersystem zum Herstellen von Übereinstimmung der zweiten Kopie des Zweiges von Dateien mit der ersten Kopie des Zweiges von Dateien; Gewähren (84) einer Vollmacht für den Reconciler von dem Agenten der ersten Kopie des Zweiges von Dateien, wobei die Vollmacht dem Reconciler beschränkte Berechtigung zum Zugreifen auf die und Lesen der Dateien in der ersten Kopie des Zweiges von Dateien gewährt; und Herstellen von Übereinstimmung der zweiten Kopie des Zweiges von Dateien mit der ersten Kopie des Zweiges von Dateien unter Verwendung des Reconcilers.
  2. Verfahren nach Anspruch 1, das des Weiteren den Schritt des Kopierens der einzelnen Datei, die in der Speichervorrichtung des ersten Computersystems gespeichert wird, in die Speichervorrichtung eines dritten Computersystems unter Verwendung der Kopiereinrichtung umfasst.
  3. Verfahren nach Anspruch 1, das des Weiteren den Schritt des Kopierens des Zweiges, der in der Speichervorrichtung des ersten Computersystems gespeichert wird, in die Speichervorrichtung eines dritten Computersystems unter Verwendung der Kopiereinrichtung umfasst.
  4. Verfahren nach Anspruch 3, wobei der kopierte Zweig wenigstens drei Ebenen von Dateien enthält.
  5. Verfahren nach einem der Ansprüche 1 bis 4, das des Weiteren die folgenden Schritte umfasst: Herstellen von Übereinstimmung der ersten Kopie der einzelnen Datei, die in der Speichervorrichtung des ersten Computersystems gespeichert wird, mit der zweiten Kopie der einzelnen Datei, die in der Speichervorrichtung des zweiten Computersystems gespeichert wird, unter Verwendung der Reconciler-Einrichtung, indem jegliche Änderungen, die an der ersten Kopie der einzelnen Datei seit der letzten Herstellung von Übereinstimmung vorgenommen wurden, in die zweite Kopie der einzelnen Datei integriert werden; und Herstellen von Übereinstimmung der ersten Kopie des Zweiges von Dateien, die in der Speichervorrichtung des ersten Computersystems gespeichert wird, mit der zweiten Kopie des Zweiges von Dateien, die in der Speichervorrichtung des zweiten Computersystems gespeichert wird, unter Verwendung der Reconciler- Einrichtung, indem jegliche Änderungen, die an der ersten Kopie des Zweiges von Dateien seit der letzten Herstellung von Übereinstimmung vorgenommen wurden, in die zweite Kopie des Zweiges von Dateien integriert werden.
  6. Verfahren nach Anspruch 6, wobei der Schritt des Herstellens von Übereinstimmung der ersten Kopie des Zweiges von Dateien mit der zweiten Kopie des Zweiges von Dateien des Weiteren den Schritt des paarweisen Wiederherstellens von Übereinstimmung jeder Datei in der ersten Kopie des Zweiges von Dateien mit einer entsprechenden Datei in der zweiten Kopie des Zweiges von Dateien umfasst.
  7. Verfahren nach einem der Ansprüche 1 bis 6, das des Weiteren die folgenden Schritte umfasst: Vornehmen von Änderungen an wenigstens einender Dateien in der ersten Kopie des Zweiges von Dateien, die in der Speichervorrichtung des ersten Computersystems gespeichert wird; Übertragen der Änderungen auf die zweite Kopie des Zweiges von Dateien, die in der Speichervorrichtung des zweiten Computersystems gespeichert wird, beim Auftreten eines Ereignisses; Vornehmen zusätzlicher Änderungen an wenigstens einer der Dateien in der ersten Kopie des Zweiges von Dateien; und Übertragen der zusätzlichen Änderungen auf die zweite Kopie des Zweiges von Dateien beim Auftreten eines weiteren Ereignisses.
  8. Verfahren nach Anspruch 7, wobei das Ereignis das Verstreichen eines vorgegebenen Zeitraums ist.
  9. Verfahren nach Anspruch 8, wobei das weitere Ereignis ebenfalls das Verstreichen eines vorgegebenen Zeitraums ist.
  10. Verfahren nach Anspruch 7, wobei das Ereignis eine Aufforderung von dem zweiten Computersystem zum Empfangen der Änderungen ist.
  11. Verfahren nach Anspruch 10, wobei das weitere Ereignis eine Aufforderung von dem zweiten Computersystem zum Empfangen der zusätzlichen Änderung ist.
  12. Verfahren nach einem der Ansprüche 7 bis 11, das des Weiteren den Schritt des Herstellens von Übereinstimmung der zweiten Kopie des Zweiges von Dateien mit der ersten Kopie des Zweiges von Dateien, indem die Änderungen, die an der ersten Kopie des Zweiges von Dateien. vorgenommen wurden, in die zweite Kopie des Zweiges von Dateien integriert werden, umfasst.
  13. Verfahren nach Anspruch 12, das des Weiteren den Schritt des Herstellens von Übereinstimmung der zweiten Kopie des Zweiges von Dateien mit der ersten Kopie des Zweiges von Dateien, indem die zusätzlichen Änderungen, die an der ersten Kopie des Zweiges von Dateien vorgenommen wurden, in die zweite Kopie des . Zweiges von Dateien integriert werden, umfasst.
  14. Verfahren nach einem der Ansprüche 1 bis 13, wobei jede der Vielzahl von Dateien einen dazugehörigen Namen hat und das Verfahren des Weiteren die folgenden Schritte umfasst: Bereitstellen eines verteilten Namensraums (19), der eine logische Ordnung der Namen der ersten Kopie und der zweiten Kopie des Zweiges von Dateien umfasst; und Kopieren ausgewählter Abschnitte der ersten Kopie des Zweiges von Dateien, die in den Speichervorrichtungen des ersten Computersystems gespeichert werden und deren Namen einen Teil des verteilten Namensraums bilden, unter Verwendung oder Kopiereinrichtung, um neue Dateien zu erzeugen, die die ausgewählten Abschnitte der ersten Kopie enthalten.
  15. Verfahren nach Anspruch 14, das des Weiteren den folgenden Schritt umfasst: Verteilen der neuen Dateien über wenigstens einen Abschnitt der Computersysteme des verteilten Systems.
  16. Verfahren nach einem der Ansprüche 1 bis 15, wobei die Dateien des ersten und des zweiten Zweiges von Dateien zu einer bestimmten Klasse gehören und wobei der Schritt des Kopierens des Weiteren den folgenden Schritt umfasst: Herstellen von Übereinstimmung der ersten Kopie des Zweiges von Dateien, die in der Speichervorrichtung des ersten Computersystems gespeichert werden, minder zweiten Kopie des Zweiges von Dateien, die in der Speichervorrichtung des zweiten Computersystems gespeichert werden, unter Verwendung eines klassenspezifischen Reconcilers (70), wobei der klassenspezifische Reconciler ein Reconciler ist, der Übereinstimmung nur zwischen Dateien der bestimmten Klasse herstellt.
  17. Verfahren nach Anspruch 16, das des Weiteren die folgenden Schritte umfasst: Vornehmen von Änderungen an der ersten Kopie des Zweiges von Dateien; Herstellen von Übereinstimmung der ersten Kopie des Zweiges von Dateien mit der zweiten Kopie des Zweiges von Dateien unter Verwendung eines klassenunabhängigen Reconcilers (72), wobei der klassenunabhängige Reconciler ein Reconciler ist, der Übereinstimmung zwischen Dateien unabhängig von der Klasse herstellt.
  18. Verfahren nach einem der Ansprüche 1 bis 17, der des Weiteren die folgenden Schritte umfasst: innerhalb eines Anwendungsprogramms, Richten einer Aufforderung an einen privaten Kopiermechanismus, eine Gruppe von Dateien zu kopieren, wobei jede der Dateien eine Liste von Prozessen hält, die auf die Datei zugreifen dürfen; und Kopieren der Gruppe von Dateien unter Verwendung des privaten Kopiermechanismus, um eine neue Gruppe von Dateien zu erzeugen, ohne für jede Datei die Liste von Prozessen zu kopieren, die auf die Datei zugreifen dürfen:
  19. Verfahren nach einem der Ansprüche 1 bis 18, das des Weiteren die folgenden Schritte umfasst: Bereitstellen einer Sammlung von Dateien in dem ersten Computersystem; in Reaktion auf eine Aufforderung, die Sammlung von Dateien zu kopieren, an das zweite Computersystem, Feststellen, ob keine oder alle der Dateien in der Sammlung kopiert werden sollte/n; wenn festgestellt wird, dass alle der Dateien in der Sammlung kopiert werden sollten, Kopieren aller der Dateien in der Sammlung, so dass eine Kopie der Samm-lung in dem zweiten Computersystem bereitgestellt wird; und wenn festgestellt wird, dass keine der Dateien in der Sammlung kopiert werden sollte, Kopieren keiner der Dateien in der Sammlung.
  20. Verfahren nach einem der Ansprüche 1 bis 19, das des Weiteren die folgenden Schritte umfasst: Bereitstellen heterogener Dateisysteme in dem verteilten System; Bereitstellen eines Speicher-Managers (65) für jedes Dateisystem zum Verwalten von Zugriff auf Dateien in dem Dateisystem; in Reaktion auf eine Aufforderung, Übereinstimmung einer ersten Gruppe von Dateien mit einer zweiten Gruppe von Dateien herzustellen, Gewähren von Zugriff auf die erste Gruppe von Dateien durch den Speicher-Manager für das Dateisystem, das die erste Gruppe von Dateien enthält, und Gewähren von Zugriff auf die zweite Gruppe von Dateien durch den Speicher-Manager für das Dateisystem, das die zweite Gruppe von Dateien enthält; und Herstellen von Übereinstimmung der ersten Gruppe von Dateien mit der zweiten Gruppe von Dateien, gesteuert von den Speicher-Managern der entsprechenden Dateisysteme, die die erste Gruppe von Dateien und die zweite Gruppe von Datei- en enthalten.
  21. Verfahren nach Anspruch 20, wobei jeder Kopie einer Datei, die in den Dateisystemen gespeichert wird, von dem Speicher-Manager eine speicherspezifische Kennung verliehen wird.
  22. Verfahren nach Anspruch 20 oder 21, wobei jeder Speicher-Manager Änderungen an den Dateien in seinem Dateisystem meldet.
  23. Verfahren nach Anspruch 22, wobei die Änderungen Löschungen von Dateien einschließen.
  24. Verfahren nach Anspruch 22 oder 23, wobei die Änderungen Umbenennung von Dateien einschließen.
  25. Verfahren nach einem der Ansprüche 22 bis 23, wobei die Änderungen Verschiebung von Dateien in dem verteilten System einschließen.
  26. Verfahren nach einem der Ansprüche 22 bis 25, wobei die Änderungen einem Änderungs-Protokoll gemeldet werden und wobei der Schritt des Herstellens von Übereinstimmung unter Verwendung des Änderungs-Protokolls durchgeführt wird.
  27. Verfahren nach einem der Ansprüche 20 bis 26, wobei jede Kopie einer Datei einer eindeutigen Kennung zugeordnet wird und wobei der Schritt des Herstellens von Übereinstimmung das Vergleichen von Kennungen einschließt, um festzustellen, zwischen welchen Dateien Übereinstimmung herzustellen ist.
  28. Verteiltes System, das eine Vielzahl von Computersystemen umfasst, welches zum Ausführen des Verfahrens nach den Ansprüchen 1 bis 27 eingerichtet ist.
DE69531513T 1994-01-14 1995-01-10 Vervielfältigungssystem Expired - Lifetime DE69531513T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US181704 1994-01-14
US08/181,704 US5588147A (en) 1994-01-14 1994-01-14 Replication facility

Publications (2)

Publication Number Publication Date
DE69531513D1 DE69531513D1 (de) 2003-09-25
DE69531513T2 true DE69531513T2 (de) 2004-02-26

Family

ID=22665428

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69531513T Expired - Lifetime DE69531513T2 (de) 1994-01-14 1995-01-10 Vervielfältigungssystem

Country Status (5)

Country Link
US (1) US5588147A (de)
EP (1) EP0663640B1 (de)
JP (2) JPH07219830A (de)
CA (1) CA2139694C (de)
DE (1) DE69531513T2 (de)

Families Citing this family (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345104B1 (en) * 1994-03-17 2002-02-05 Digimarc Corporation Digital watermarks and methods for security documents
US5802301A (en) * 1994-05-11 1998-09-01 International Business Machines Corporation System for load balancing by replicating portion of file while being read by first stream onto second device and reading portion with stream capable of accessing
US5671407A (en) * 1994-12-07 1997-09-23 Xerox Corporation Application-specific conflict detection for weakly consistent replicated databases
US5608903A (en) * 1994-12-15 1997-03-04 Novell, Inc. Method and apparatus for moving subtrees in a distributed network directory
US5832487A (en) * 1994-12-15 1998-11-03 Novell, Inc. Replicated object identification in a partitioned hierarchy
US5684990A (en) * 1995-01-11 1997-11-04 Puma Technology, Inc. Synchronization of disparate databases
EP0826181A4 (de) 1995-04-11 2005-02-09 Kinetech Inc Identifizierung von daten in einem datenverarbeitungssystem
US5991771A (en) * 1995-07-20 1999-11-23 Novell, Inc. Transaction synchronization in a disconnectable computer and network
CA2227431C (en) 1995-07-20 2001-05-15 Novell, Inc. Transaction log management in a disconnectable computer and network
SE507482C2 (sv) * 1995-10-09 1998-06-15 Ericsson Telefon Ab L M System och förfarande för kommunikationshantering med redundans
JP3622313B2 (ja) * 1996-01-29 2005-02-23 株式会社日立製作所 ドキュメント管理システム
DE19607134A1 (de) * 1996-02-26 1997-08-28 Siemens Ag Verfahren zur rechnergestützten Verwaltung mehrerer, in mindestens einem Rechner gespeicherten Dateikopien einer gespeicherten Datei
DE19607132B4 (de) * 1996-02-26 2005-12-29 Siemens Ag Verfahren zum rechnergestützten Abgleich mehrerer, in mindestens einem Rechner gespeicherten Dateikopien einer gespeicherten Datei
DE19607149A1 (de) * 1996-02-26 1997-08-28 Siemens Ag Verfahren zum rechnergestützten Abgleich mehrerer, in mindestens einem Rechner gespeicherten Dateikopien einer gespeicherten Datei
DE19607131B4 (de) * 1996-02-26 2005-12-29 Siemens Ag Verfahren zum rechnergestützten Abgleich mehrerer, in mindestens einem Rechner gespeicherten Dateikopien einer gespeicherten Datei
CA2199108C (en) * 1996-03-05 2002-04-23 Hirotoshi Maegawa Parallel distributed processing system and method of same
US5812793A (en) * 1996-06-26 1998-09-22 Microsoft Corporation System and method for asynchronous store and forward data replication
US5987245A (en) 1996-07-01 1999-11-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework
US6272555B1 (en) 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system
US6434598B1 (en) 1996-07-01 2002-08-13 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system
US5893107A (en) * 1996-07-01 1999-04-06 Microsoft Corporation Method and system for uniformly accessing multiple directory services
US5999972A (en) 1996-07-01 1999-12-07 Sun Microsystems, Inc. System, method and article of manufacture for a distributed computer system framework
US6266709B1 (en) 1996-07-01 2001-07-24 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server failure reporting process
US6412017B1 (en) 1996-07-01 2002-06-25 Microsoft Corporation Urgent replication facility
US5848246A (en) 1996-07-01 1998-12-08 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system
US6424991B1 (en) 1996-07-01 2002-07-23 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server communication framework
US6304893B1 (en) 1996-07-01 2001-10-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
US6038590A (en) 1996-07-01 2000-03-14 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
US5832225A (en) * 1996-07-12 1998-11-03 Microsoft Corporation Method computer program product and system for maintaining replication topology information
US5878434A (en) * 1996-07-18 1999-03-02 Novell, Inc Transaction clash management in a disconnectable computer and network
US5884324A (en) * 1996-07-23 1999-03-16 International Business Machines Corporation Agent for replicating data based on a client defined replication period
US5893116A (en) * 1996-09-30 1999-04-06 Novell, Inc. Accessing network resources using network resource replicator and captured login script for use when the computer is disconnected from the network
US6049809A (en) * 1996-10-30 2000-04-11 Microsoft Corporation Replication optimization system and method
US6148377A (en) * 1996-11-22 2000-11-14 Mangosoft Corporation Shared memory computer networks
US7058696B1 (en) 1996-11-22 2006-06-06 Mangosoft Corporation Internet-based shared file service with native PC client access and semantics
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US5909540A (en) * 1996-11-22 1999-06-01 Mangosoft Corporation System and method for providing highly available data storage using globally addressable memory
US6647393B1 (en) 1996-11-22 2003-11-11 Mangosoft Corporation Dynamic directory service
US5963944A (en) * 1996-12-30 1999-10-05 Intel Corporation System and method for distributing and indexing computerized documents using independent agents
DE19708021C1 (de) * 1997-02-27 1998-08-13 Siemens Ag Verfahren zur Regelung eines Zugriffs von Rechnern auf Daten eines zentralen Rechners
US5950198A (en) * 1997-03-24 1999-09-07 Novell, Inc. Processes and apparatuses for generating file correspondency through replication and synchronization between target and source computers
US6256675B1 (en) * 1997-05-06 2001-07-03 At&T Corp. System and method for allocating requests for objects and managing replicas of objects on a network
SE9702015L (sv) * 1997-05-28 1998-11-29 Ericsson Telefon Ab L M Metod vid distribuerad databas, samt ett system anpassat att verka enligt metoden
US6182080B1 (en) 1997-09-12 2001-01-30 Netvoyage Corporation System, method and computer program product for storage of a plurality of documents within a single file
US5924096A (en) * 1997-10-15 1999-07-13 Novell, Inc. Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand
US6167427A (en) * 1997-11-28 2000-12-26 Lucent Technologies Inc. Replication service system and method for directing the replication of information servers based on selected plurality of servers load
US5991766A (en) * 1997-12-02 1999-11-23 Electronic Data Systems Corporation Method and system for managing redundant objects in a distributed object system
US6018805A (en) * 1997-12-15 2000-01-25 Recipio Transparent recovery of distributed-objects using intelligent proxies
US6260069B1 (en) * 1998-02-10 2001-07-10 International Business Machines Corporation Direct data retrieval in a distributed computing system
US6256031B1 (en) * 1998-06-26 2001-07-03 Microsoft Corporation Integration of physical and virtual namespace
EP1099172B1 (de) 1998-07-27 2004-04-07 Siemens Aktiengesellschaft Verfahren, anordnung und satz mehrerer anordnungen zur behebung mindestens einer inkonsistenz in einer datenbankmenge, die eine datenbank sowie mindestens eine kopiedatenbank der datenbank aufweist
US6810405B1 (en) 1998-08-18 2004-10-26 Starfish Software, Inc. System and methods for synchronizing data between multiple datasets
US6449622B1 (en) * 1999-03-08 2002-09-10 Starfish Software, Inc. System and methods for synchronizing datasets when dataset changes may be received out of order
US6401104B1 (en) * 1999-07-03 2002-06-04 Starfish Software, Inc. System and methods for synchronizing datasets using cooperation among multiple synchronization engines
US6751674B1 (en) 1999-07-26 2004-06-15 Microsoft Corporation Method and system for replication in a hybrid network
US6751634B1 (en) 1999-08-26 2004-06-15 Microsoft Corporation Method and system for detecting object inconsistency in a loosely consistent replicated directory service
US7203735B1 (en) * 1999-10-21 2007-04-10 International Business Machines Corporation Files transfer between a remote home server and a local server
US7013313B1 (en) 1999-11-24 2006-03-14 Pumatech, Inc. System and methods for inheriting information into a dataset
US6557111B1 (en) 1999-11-29 2003-04-29 Xerox Corporation Multicast-enhanced update propagation in a weakly-consistant, replicated data storage system
US6553391B1 (en) 2000-06-08 2003-04-22 International Business Machines Corporation System and method for replicating external files and database metadata pertaining thereto
US10235368B2 (en) * 2000-06-08 2019-03-19 International Business Machines Corporation System and method for updating external file referenced by database with transactional consistency using SQL
US6711572B2 (en) * 2000-06-14 2004-03-23 Xosoft Inc. File system for distributing content in a data network and related methods
US7162499B2 (en) * 2000-06-21 2007-01-09 Microsoft Corporation Linked value replication
US7047420B2 (en) 2001-01-17 2006-05-16 Microsoft Corporation Exclusive encryption
US6879564B2 (en) * 2001-02-28 2005-04-12 Microsoft Corp. Method for designating communication paths in a network
US7478243B2 (en) 2001-03-21 2009-01-13 Microsoft Corporation On-disk file format for serverless distributed file system with signed manifest of file modifications
US7043637B2 (en) 2001-03-21 2006-05-09 Microsoft Corporation On-disk file format for a serverless distributed file system
US6981138B2 (en) 2001-03-26 2005-12-27 Microsoft Corporation Encrypted key cache
US7062490B2 (en) * 2001-03-26 2006-06-13 Microsoft Corporation Serverless distributed file system
US20020147739A1 (en) * 2001-04-10 2002-10-10 Netvoyage Corporation Methods and systems for tracking storage resources associated with a document distribution system
US7165248B2 (en) * 2001-06-04 2007-01-16 Sun Microsystems, Inc. File tree conflict processor
US7085779B2 (en) * 2001-06-04 2006-08-01 Sun Microsystems, Inc. File tree change reconciler
US7702641B2 (en) * 2001-06-04 2010-04-20 Oracle America, Inc. Method and system for comparing and updating file trees
US7310644B2 (en) * 2001-06-06 2007-12-18 Microsoft Corporation Locating potentially identical objects across multiple computers
US6988124B2 (en) 2001-06-06 2006-01-17 Microsoft Corporation Locating potentially identical objects across multiple computers based on stochastic partitioning of workload
US7072911B1 (en) 2001-07-27 2006-07-04 Novell, Inc. System and method for incremental replication of changes in a state based distributed database
GB2380830A (en) * 2001-10-13 2003-04-16 Hewlett Packard Co Automatic file sharing in a peer to peer network by use of constraints between file system domains
US6968372B1 (en) 2001-10-17 2005-11-22 Microsoft Corporation Distributed variable synchronizer
US7035922B2 (en) * 2001-11-27 2006-04-25 Microsoft Corporation Non-invasive latency monitoring in a store-and-forward replication system
US7185359B2 (en) * 2001-12-21 2007-02-27 Microsoft Corporation Authentication and authorization across autonomous network systems
US7024429B2 (en) 2002-01-31 2006-04-04 Nextpage,Inc. Data replication based upon a non-destructive data model
US7020665B2 (en) * 2002-03-07 2006-03-28 Microsoft Corporation File availability in distributed file storage systems
US20040024807A1 (en) * 2002-07-31 2004-02-05 Microsoft Corporation Asynchronous updates of weakly consistent distributed state information
US7590667B2 (en) 2003-01-30 2009-09-15 Hitachi, Ltd. File replication method for distributed file systems
US7822757B2 (en) * 2003-02-18 2010-10-26 Dun & Bradstreet, Inc. System and method for providing enhanced information
US8370454B2 (en) 2003-06-30 2013-02-05 International Business Machines Corporation Retrieving a replica of an electronic document in a computer network
AU2003262757B2 (en) * 2003-08-21 2010-02-11 Microsoft Corporation Electronic ink processing
US7533338B2 (en) * 2003-08-21 2009-05-12 Microsoft Corporation Electronic ink processing
US7283670B2 (en) * 2003-08-21 2007-10-16 Microsoft Corporation Electronic ink processing
US7502812B2 (en) * 2003-08-21 2009-03-10 Microsoft Corporation Electronic ink processing
US7616333B2 (en) * 2003-08-21 2009-11-10 Microsoft Corporation Electronic ink processing and application programming interfaces
KR20100102733A (ko) * 2003-08-21 2010-09-24 마이크로소프트 코포레이션 전자 잉크를 분석하기 위한 애플리케이션 프로그래밍 인터페이스를 포함하는 컴퓨터 판독가능 기록 매체, 전자 잉크 분석 방법 및 분석 콘텍스트 대상 생성 방법
US7499904B2 (en) * 2003-11-25 2009-03-03 Microsoft Corporation System and method for client mastered replication of local files
WO2005109193A1 (en) * 2004-05-05 2005-11-17 Bea Systems, Inc. System and method for inventory services
US7735077B2 (en) * 2004-05-05 2010-06-08 Bea Systems, Inc. System and method for inventory services
US20050262483A1 (en) * 2004-05-05 2005-11-24 Bea Systems, Inc. System and method for application propagation
US20050278385A1 (en) * 2004-06-10 2005-12-15 Hewlett-Packard Development Company, L.P. Systems and methods for staggered data replication and recovery
US7346633B2 (en) * 2004-06-10 2008-03-18 Sybase, Inc. System providing methodology for replication subscription resolution
US7711835B2 (en) * 2004-09-30 2010-05-04 Citrix Systems, Inc. Method and apparatus for reducing disclosure of proprietary data in a networked environment
US8099482B2 (en) 2004-10-01 2012-01-17 E-Cast Inc. Prioritized content download for an entertainment device
US9020887B2 (en) 2004-12-21 2015-04-28 Proofpoint, Inc. Managing the status of documents in a distributed storage system
US9367579B1 (en) * 2005-02-23 2016-06-14 Veritas Technologies Llc System and method for maintaining a file change log within a distributed file system
US7849512B2 (en) * 2005-03-21 2010-12-07 Fortressware, Inc. Method and system to create secure virtual project room
US8214754B2 (en) 2005-04-15 2012-07-03 Microsoft Corporation Registration of applications and complimentary features for interactive user interfaces
US7778963B2 (en) * 2005-04-26 2010-08-17 Microsoft Corporation Constraint-based conflict handling for synchronization
US7467265B1 (en) 2005-06-30 2008-12-16 Symantec Operating Corporation System and method for block conflict resolution within consistency interval marker based replication
US8401997B1 (en) 2005-06-30 2013-03-19 Symantec Operating Corporation System and method for replication using consistency interval markers in a distributed storage environment
JP4414381B2 (ja) 2005-08-03 2010-02-10 富士通株式会社 ファイル管理プログラム、ファイル管理装置、ファイル管理方法
US8185576B2 (en) 2006-03-14 2012-05-22 Altnet, Inc. Filter for a distributed network
US7613750B2 (en) * 2006-05-29 2009-11-03 Microsoft Corporation Creating frequent application-consistent backups efficiently
US8117155B2 (en) * 2006-06-30 2012-02-14 Microsoft Corporation Collection-based object replication
GB2444344A (en) * 2006-12-01 2008-06-04 David Irvine File storage and recovery in a Peer to Peer network
US20090089740A1 (en) * 2007-08-24 2009-04-02 Wynne Crisman System For Generating Linked Object Duplicates
US20110040792A1 (en) * 2009-08-12 2011-02-17 Russell Perry Stored Object Replication
CN101853269B (zh) * 2010-04-29 2012-01-11 中国人民解放军国防科学技术大学 分布数据更新的一致性处理方法
US9146937B2 (en) 2011-06-23 2015-09-29 Cohort Fs, Llc Client-based data replication
US9483538B1 (en) * 2012-03-29 2016-11-01 Sprint Communications Company L.P. Two-way data sharing between disparate data stores
US8705537B1 (en) 2012-06-10 2014-04-22 Andrei Teodor Borac Eventually-consistent data stream consolidation
US9619539B2 (en) * 2012-09-28 2017-04-11 Vmware, Inc. Automated document replication in a distributed computing system
US10831380B2 (en) * 2014-05-28 2020-11-10 Hitachi Vantara Llc System and method of collision management in a namespace of a storage system
US11010409B1 (en) * 2016-03-29 2021-05-18 EMC IP Holding Company LLC Multi-streaming with synthetic replication
US10769172B2 (en) 2018-03-28 2020-09-08 Hewlett Packard Enterprise Development Lp Globalized object names in a global namespace
US11270531B2 (en) * 2019-06-28 2022-03-08 GM Cruise Holdings, LLC Autonomous vehicle data management platform
US11803571B2 (en) 2021-02-04 2023-10-31 Hewlett Packard Enterprise Development Lp Transfer of synchronous and asynchronous replication

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4432057A (en) * 1981-11-27 1984-02-14 International Business Machines Corporation Method for the dynamic replication of data under distributed system control to control utilization of resources in a multiprocessing, distributed data base system
US4714996A (en) * 1985-11-26 1987-12-22 International Business Machines Corporation Impact calculation for version management in a distributed information service
US4887204A (en) * 1987-02-13 1989-12-12 International Business Machines Corporation System and method for accessing remote files in a distributed networking environment
US5202971A (en) * 1987-02-13 1993-04-13 International Business Machines Corporation System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock
US5001628A (en) * 1987-02-13 1991-03-19 International Business Machines Corporation Single system image uniquely defining an environment for each user in a data processing system
US5151989A (en) * 1987-02-13 1992-09-29 International Business Machines Corporation Directory cache management in a distributed data processing system
US4888681A (en) * 1987-10-19 1989-12-19 International Business Machines Corporation Space management system for data files having shared access
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
US4875159A (en) * 1987-12-22 1989-10-17 Amdahl Corporation Version management system using plural control fields for synchronizing two versions of files in a multiprocessor system
US5222217A (en) * 1989-01-18 1993-06-22 International Business Machines Corporation System and method for implementing operating system message queues with recoverable shared virtual storage
CA1323448C (en) * 1989-02-24 1993-10-19 Terrence C. Miller Method and apparatus for translucent file system
US5113519A (en) * 1989-05-15 1992-05-12 International Business Machines Corporation Maintenance of file attributes in a distributed data processing system
US5170480A (en) * 1989-09-25 1992-12-08 International Business Machines Corporation Concurrently applying redo records to backup database in a log sequence using single queue server per queue at a time
US5307481A (en) * 1990-02-28 1994-04-26 Hitachi, Ltd. Highly reliable online system
US5032979A (en) * 1990-06-22 1991-07-16 International Business Machines Corporation Distributed security auditing subsystem for an operating system
US5287453A (en) * 1990-09-18 1994-02-15 Bull Hn Information Systems, Inc. Fast remote file access facility for distributing file access requests in a closely coupled computer system
JP3516344B2 (ja) * 1990-10-22 2004-04-05 株式会社日立製作所 分散処理システムの多重データ処理方法
US5285528A (en) * 1991-02-22 1994-02-08 International Business Machines Corporation Data structures and algorithms for managing lock states of addressable element ranges

Also Published As

Publication number Publication date
JP2007299431A (ja) 2007-11-15
CA2139694C (en) 2004-04-20
EP0663640A1 (de) 1995-07-19
DE69531513D1 (de) 2003-09-25
CA2139694A1 (en) 1995-07-15
US5588147A (en) 1996-12-24
JPH07219830A (ja) 1995-08-18
JP4310354B2 (ja) 2009-08-05
EP0663640B1 (de) 2003-08-20

Similar Documents

Publication Publication Date Title
DE69531513T2 (de) Vervielfältigungssystem
DE69924178T2 (de) Zugriffsteuerung mit Just-in-time Entdeckung von Mitteln
DE69635469T2 (de) Synchronisierung zwischen verschiedenen Computeranbieterumgebungen
DE60133648T2 (de) System und verfahren zum führen von laufzeitdaten in einem server-netzwerk
DE60224030T2 (de) Verwaltungs- und synchronisierungsapplikation für netzwerkdateisystem
DE69736748T2 (de) Editierumgebung für objektmodelle und verfahren zu deren anwendung
DE69722962T2 (de) Strukturiertes datenspeichersystem mit global adressierbarem speicher
DE69728176T2 (de) Verfahren und gerät das verteilte steuerung von gemeinsamen betriebsmitteln erlaubt
DE60125989T2 (de) Verfahren und apparat für eine verbesserte dateiverwaltung
DE69916928T2 (de) Zugriffsverfahren und Server für Netzwerkverzeichnis
DE4497149B4 (de) Computerbezogenes Verfahren zur Datenreplikation in Peer-to-Peer-Umgebung
DE60113586T2 (de) Übertragen von miteinander verbundenen Datenobjekten in einer verteilten Datenspeicherumgebung
DE69531112T2 (de) Mechanismus zum verknüpfen von dateien auf einem emulierten system mit dem zentralsystem für den zugriff durch emulierte systembenutzer
DE60025488T2 (de) Vorrichtung und verfahren zur allgemeinen koordination und verwaltung von mehrfachen schnappschussanbietern
DE10393771T5 (de) Schnelle Datensicherungsspeicherung und schnelle Datenwiederherstellung (FBSRD)
DE19805891B4 (de) Konfigurationsvorrichtung für eine Nebenstellenanlage
DE19513308A1 (de) Dreidimensionales Dateisystem unter Verwendung einer virtuellen Knotenarchitektur
DE4033336A1 (de) Verfahren zum erzeugen einer ausfallmeldung und mechanismus fuer ausfallmeldung
EP0829046B1 (de) Setup-verfahren und setup-system für benutzerprogramme, sowie benutzerrechner in einem rechnernetz
DE69733305T2 (de) System/Verfahren zur wirkungsvollen Übermittlung von Datenströmen in einem Multimediasystem
WO2001027806A1 (de) Integriertes datenbank-verbundsystem
DE19963673A1 (de) Verfahren, Systeme und Computerprogrammprodukte zur Dokumentenverwaltung für Software-Entwicklungssysteme
DE19628168A1 (de) Vernetztes multimediales Netz
EP2772856B1 (de) Verfahren zum Ausführen von Tasks auf einem Produktions-Computersystem sowie Datenverarbeitungssystem
DE602004013397T2 (de) Verfahren und Apparat zum Verschieben von Daten zwischen Speichersystemen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition