-
GEBIET DER ERFINDUNG
-
Die
Erfindung betrifft eine Anwendung zur Verwaltung von Netzwerkdateien.
Insbesondere betreffen Ausführungsformen
der Erfindung ein Erfassen von Änderungen
an Dateisystemen zum Zweck einer Synchronisierung.
-
HINTERGRUND DER ERFINDUNG
-
Wenn
mehrere Dateisysteme genau den gleichen Inhalt enthalten, sagt man,
dass die Dateisysteme "synchron" sind. Damit die
Dateisysteme synchron bleiben, erfassen Synchronisierungsanwendungen
Unterschiede zwischen Dateisystemen, und führen dann Operationen durch,
um die Unterschiede zu beseitigen. Typischerweise werden Synchronisierungsanwendungen
verwendet, um die Dateisysteme unterschiedlicher Computer zu synchronisieren,
die auf unterschiedliche Kopien derselben Dateien zugreifen müssen. Ein
Satz von Dateisystemen, die miteinander synchronisiert werden sollen,
werden hier als Synchronisierungssatz bezeichnet. Jedes Dateisystem,
das zu einem gegebenen Synchronisierungssatz gehört, wird als "synchronisiertes
System" bezeichnet.
-
Der
Vorgang eines Synchronisierens eines Synchronisierungssatzes wird
als Synchronisierungsoperation bezeichnet. Während jeder Synchronisierungsoperation
versucht eine Synchronisierungsanwendung typischerweise zu erfassen,
wenn Datenelemente in einem beliebigen der synchronisierten Systeme
seit der vorhergehenden Synchronisierungsoperation gelöscht oder
hinzugefügt
wurden.
-
Allgemein
sind Synchronisierungsanwendungen bestrebt, zu allen synchronisierten
Systemen diejenigen Datenelemente hinzuzufügen, für die erfasst wurde, dass sie
seit der vorhergehenden Synchronisierungsoperation zu einem beliebigen
synchronisierten System hinzufügt
wurden. In ähnlicher Weise
sind Synchronisierungsanwendungen bestrebt, aus allen synchronisierten
Systemen diejenigen Datenelemente zu löschen, für die erfasst wurde, dass sie
aus einem beliebigen synchronisierten System seit der vorhergehenden
Synchronisierungsoperation gelöscht
wurden.
-
Typischerweise
unterscheidet die Synchronisierungsanwendung nicht zwischen (1)
hinzugefügten
Datenelementen, die Kopien von anderen Datenelementen sind, und
(2) hinzugefügten
Datenelementen, die als Ursprungselemente erzeugt wurden. Außerdem erscheint
es so, wenn ein umbenanntes Datenelement geändert wurde, dass das ursprüngliche
Datenelement gelöscht
wurde und ein neues Datenelement hinzugefügt wurde. Demzufolge können die
ursprünglichen
Datenelemente in allen synchronisierten Systemen gelöscht werden,
und das neue geänderte
Datenelement wird zu allen synchronisierten Systemen hinzugefügt. Alternativ
kann die Synchronisierungsanwendung sowohl das geänderte Datenelement
als auch das nicht geänderte
Datenelement gemeinsam in derselben Datei platzieren.
-
Bei
aktuellen Synchronisierungsverfahren wird, wenn ein Benutzer mehrere
Operationen mit einem Datenelement durchführt und dann anstrebt, dieses
Datenelement mit einem anderen zu synchronisieren, von der Anwendung
dieses Datenelement als geändert
oder neu erfasst. Die Anwendung ist nicht fähig, spezielle mit dem Datenelement
durchgeführte
Operationen zu erfassen. Als Ergebnis kann bei der Synchronisieroperation
die eine Datei durch eine andere überschrieben werden, oder die
geänderte
Datei kann hinzugefügt
werden, um mit der ursprünglichen
Datei in demselben Dateisystem gespeichert zu werden.
-
Synchronisierungsoperationen
bringen häufig
ein beträchtliches
Ausmaß an
Ressourcenverbrauch mit sich. Beispielsweise ist, wenn eine Synchronisierungsanwendung
das Hinzufügen
einer neuen Datei zu einem synchronisierten System erfasst, ein
Datentransfer der Inhalte der neuen Datei zu allen anderen synchronisierten
Systemen erforderlich. Wenn die Datei groß ist und/oder die Anzahl der
synchronisierten Systeme groß ist,
kann der Ressourcenverbrauch beträchtlich sein.
-
Ein
weiteres Problem bei aktuell verwendeten Synchronisierungsverfahren
besteht darin, dass für
neue oder ersetzte Dateien keine Metadaten-Information aus der Zeit
vor deren Transfer oder Neuerzeugung im Dateisystem zurückbehalten
wird. Daher geht, wenn eine zum Zeitpunkt T1 erzeugte Datei geändert wird,
die Tatsache, dass die Datei ursprünglich zum Zeitpunkt T1 erzeugt
wurde, verloren, wenn die Synchronisierungsanmeldung die geänderte Datei
als neue Datei behandelt und die ursprüngliche Datei als gelöschte Datei
behandelt.
-
EP 0 707 263 A1 offenbart
ein Verfahren zum Verfolgen von Computersoftwareeinheiten in einem Computerdateisystem,
bei dem das Computerdateisystem auf Änderungen an Betriebssystem-Dateiverzeichnissen überwacht
wird, welche die Softwareeinheiten umfassen, und ein Verfolgungsverzeichnis
aktualisiert wird, damit es die Änderungen
in den Softwareeinheiten widerspiegelt.
-
INHALT DER ERFINDUNG
-
Die
Erfindung ist durch die unabhängigen Ansprüche definiert.
Die abhängigen
Ansprüche
betreffen bevorzugte Ausführungsformen
der Erfindung.
-
Ausführungsformen
der Erfindung stellen eine Anwendung bereit, die eine oder mehrere
Operationen erfassen kann, die bei einem zu synchronisierenden ersten
Dateisystem durchgeführt
werden. Die Synchronisierungsanwendung aktualisiert ein zweites
Dateisystem unter Verwendung der erfassten Operationen des ersten
Dateisystems.
-
Eine
Ausführungsform
der Erfindung ist fähig,
Operationen beim ersten Dateisystem zu erfassen, wobei diese ein
Kopieren eines Datenelementes, Bewegen eines Datenelementes, Erzeugen
eines neuen Datenelementes, Löschen
eines Datenelementes und Bearbeiten eines Datenelementes beinhalten.
Eine Ausführungsform
der Erfindung erfasst auch eine mehrere Operationen, die beim ersten Dateisystem
durchgeführt
werden. Die erfassten Operationen können beim zweiten Dateisystem
während
einer Synchronisierungsoperation nachgebildet werden.
-
Synchronisierverfahren,
die bei Ausführungsformen
der Erfindung beschrieben werden, gehen mit einem geringeren Overhead
einher als andere gebräuchliche
Synchronisierprozesse. Außerdem stellen
Ausführungsformen
der Erfindung Synchronisierverfahren bereit, bei denen Metadaten-Information
betreffend synchronisierte Dateien aufbewahrt werden, im Gegensatz
zu anderen Synchronisierungsprozessen, die mit einem Verlust derartiger
Information einhergehen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die
Erfindung ist beispielhaft und nicht einschränkend in den Figuren der anliegenden
Zeichnungen dargestellt, bei denen gleiche Bezugszeichen sich auf ähnliche
Elemente beziehen.
-
1 ist
eine Übersicht
einer Systemarchitektur gemäß einer
Ausführungsform
der Erfindung.
-
2 ist
ein Ablaufdiagramm, das eine Synchronisierung bei einem Endgerät gemäß einer
Ausführungsform
der Erfindung beschreibt.
-
3 ist
ein Ablaufdiagramm, das eine Synchronisierung einer Datei, die von
vielen Benutzern eines Endgerätes
des Systems gemeinsam genutzt wird, gemäß einer Ausführungsform
der Erfindung beschreibt.
-
4 ist
ein Ablaufdiagramm, das eine Synchronisierung eines an mehreren
Endgeräten
gemeinsam genutzten Dateisystems detailliert beschreibt, gemäß einer
Ausführungsform
der Erfindung.
-
5 ist
ein Ablaufdiagramm, das eine Erfassung mehrerer Operationen und
zusammengesetzter Operationen bei einer Bearbeitungsversion eines
Dateisystems detailliert beschreibt, gemäß einer Ausführungsform
der Erfindung.
-
6 ist
ein Ablaufdiagramm, das bewegte oder gelöschte Datenelemente während einer
Synchronisierungsoperation identifiziert.
-
7 ist
ein Ablaufdiagramm, das bearbeitete Datenelemente während einer
Synchronisierungsoperation identifiziert, gemäß einer Ausführungsform
der Erfindung.
-
8 ist
ein Ablaufdiagramm, das eine oder mehrere Operationen für ein Datenelement
identifiziert, das bearbeitet und/oder bewegt oder gelöscht wurde,
gemäß einer
Ausführungsform
der Erfindung.
-
9 ist
ein Ablaufdiagramm, das Datenelemente identifiziert, die als neu
erzeugt wurden oder von anderen Datenelementen kopiert wurden, und möglicherweise
bearbeitet wurden, gemäß einer Ausführungsform
der Erfindung.
-
10 ist
eine Ansicht einer Benutzerschnittstelle zur Verwendung mit einer
Ausführungsform
der Erfindung.
-
11 ist
ein Hardware-Blockdiagramm zur Verwendung mit einer Ausführungsform
der Erfindung.
-
DETAILLIERTE BESCHREIBUNG
DER ERFINDUNG
-
Ein
Verfahren und eine Vorrichtung zum Verwalten von Dateien wird beschrieben.
In der folgenden Beschreibung sind zur Erläuterungszwecken zahlreiche
spezifische Details dargelegt, um für ein grundlegendes Verständnis der
Erfindung zu sorgen. Es versteht sich jedoch, dass die Erfindung
ohne diese spezifischen Details ausgeführt sein kann. In anderen Fällen sind
allgemein bekannte Strukturen und Vorrichtungen in Blockdiagrammform
dargestellt, um zu vermeiden, dass die Erfindung unnötig unklar wird.
-
Neben
anderen von ihnen gebotenen Vorteilen ermöglichen Ausführungsformen
der Erfindung, dass eine Synchronisierungsoperation durchgeführt wird,
die spezifische Handlungen identifiziert, die bei zu synchronisierten
Systemen gehörenden
Dateidatenelementen durchgeführt
werden. Die spezifischen Operationen werden an entsprechenden Dateidatenelementen
anderer synchronisierter Systeme während der Synchronisierungsoperation
nachgebildet. Als Ergebnis können
vollständige
Transfers von Dateidatenelementen in vielen Fällen vermieden werden, bei
denen derartige Dateidatenelemente lediglich geändert oder in irgendeiner Weise
bewegt wurden. Das Ergebnis ist, dass Kommunikationsressourcen geschont
werden. Außerdem
können
entsprechende Dateielemente der anderen synchronisierten Systeme
aktualisiert werden, ohne dass Metadaten-Information für diese
Datenelemente verlorengeht.
-
A. Funktioneller Überblick
-
Bei
einer Ausführungsform
können
eines oder mehrere Client-Endgeräte
auf ein Dateisystem eines Servers zugreifen. Eine oder mehrere Dateien können von
dem Dateisystem heruntergeladen werden und auf dem Client-Endgerät verarbeitet
werden. Insbesondere kann ein Benutzer bestimmte Handlungen betreffend
den Inhalt der heruntergeladenen Datei durchführen, die ein Bearbeiten von
Dokumenten, ein Löschen
von Datenelementen, ein Erzeugen neuer Dokumente für die Datei,
ein Bewegen von Datenelementen oder ein Kopieren von Datenelementen
innerhalb der Datei beinhalten, oder eine Kombination dieser Handlungen
durchführen.
Bei einer Ausführungsform
erfasst ein Verwaltungssystem die bei der heruntergeladenen Datei
durchgeführten Handlungen.
Das Verwaltungssystem synchronisiert dann die heruntergeladene Datei
mit einem entsprechenden Abschnitt des Dateisystems.
-
Wie
hier beschrieben, ist das Dateisystem Teil eines gesamten Verwaltungssystems,
das zahlreiche Dateien für
mehrere Clients aufbewahrt. Ein Client lädt möglicherweise nur einen Abschnitt
des Dateisystems herunter. Der Abschnitt des Dateisystems kann Datenelemente,
wie beispielsweise Verzeichnisse, Unterdateien, Anwendungen, ausführbare Dateien,
Dokumente und einzelne Ressourcen unterschiedlicher Datentypen enthalten.
-
Wenn
Abschnitte des Dateisystems durch einen Client heruntergeladen werden,
wird die resultierende lokale Datei als Bearbeitungsversion bezeichnet.
Die Bearbeitungsversion kopiert die Datenelemente von dem Abschnitt
des Dateisystems, das zum Herunterladen für den Client ausgewählt wurde. Information
wird in einer Vergleichsdatei aufgezeichnet, und zwar betreffend
die Bearbeitungsversion, wenn diese erzeugt wird. Die Vergleichsdatei
kann auch Information betreffend den heruntergeladenen Abschnitt
des Dateisystems beinhalten. Diese Information beinhaltet Metadaten-Information,
die anschließend
verwendet werden kann, um Dateidatenelemente zu identifizieren,
sowie auch Modifikationen, die an der Bearbeitungsversion vorgenommen wurden,
nachdem diese erzeugt wurde. Nachdem die Bearbeitungsversion modifiziert
wurde, kann die Bearbeitungsversion mit dem Abschnitt des Dateisystems
synchronisiert werden, der zum Herunterladen der Bearbeitungsversion
verwendet wurde. Information, die in der Vergleichsdatei aufgezeichnet
ist, wird verwendet, um an der Bearbeitungsversion vorgenommene Änderungen
zu erfassen.
-
Wie
hier verwendet, werden mit dem Begriff "Datenelemente" Datenstrukturen bezeichnet, die in Dateisystemen
gepflegt und/oder verwaltet werden können. Wie angegeben, beinhalten
Datenelemente Verzeichnisse, Dateien, Anwendungen, ausführbare Dateien,
Dokumente und einzelne Ressourcen unterschiedlicher Datentypen.
Das Datenelement kann ein Dokument oder eine Ressource eines speziellen
Datentyps beinhalten. Beispielsweise kann ein erstes Datenelement
ein Textverarbeitungsdokument sein, und ein zweites Datenelement
kann ein Ordner sein, in dem das Dokument mit weiteren Ressourcen
gespeichert wird.
-
Gemäß einer
Ausführungsform
ist in der Vergleichsdatei enthaltene Information hauptsächlich Metadaten-Information.
Die Metadaten-Information kann Standortinformation für ein spezielles
Datenelement, Erzeugungszeitpunkte, Änderungszeitpunkte, Datenelementgröße und Dateinamen
enthalten.
-
Ein
Standort ist durch eine Speicheradresse und einen Computerstandort
identifizierbar. Standortinformation bezieht sich auf Daten, die
verwendet werden können,
um den Speicherort des Datenelementes auf einem Computer zu identifizieren.
Standortinformation kann eine Datei oder einen Ressourcennamen beinhalten.
Standortinformation kann auch eine Dateipfad beinhalten, der einen
Standort eines speziellen Datenelementes im Speicher angibt.
-
Ausführungsformen
der Erfindung beinhalten ein System und ein Verfahren zur Verwaltung
von Dateien. Gemäß einer
Ausführungsform
wird, nach einer ersten Synchronisierungsoperation, Information
von einem Dateisystem auf eine Vergleichsdatei "abgebildet". Diese Information beinhaltet Information
betreffend den Status, nach der ersten Synchronisierungsoperation,
eines ersten Datenelements. Beispielsweise kann die Information
in der Vergleichsdatei bezeichnen, dass sich das erste Datenelement nach
der ersten Synchronisierungsoperation an einem ersten Standort lokalisiert
war. Zusätzlich
zum Abbilden der Dateisysteminformation auf eine Vergleichsdatei
wird eine Bearbeitungsversion des Dateisystems erstellt. Zu Anfang
gibt die Bearbeitungsversion an, dass sich das erste Datenelement am
ersten Standort befindet. Die in der Bearbeitungsversion enthaltene
Information wird modifiziert, um jegliche Änderungen widerzuspiegeln,
die am Status der ersten Datei nach der ersten Synchronisierungsoperation
vorgenommen wurden. Während
einer zweiten anschließenden
Synchronisierungsoperation wird der Standort, der in der Bearbeitungsversion des
Dateisystems angegeben ist, mit dem Standort verglichen, der in
der Vergleichsdatei angegeben ist, um zu bestimmen, ob während des
Zeitraums zwischen der ersten Synchronisierungsoperation und der
zweiten Synchronisierungsoperation das erste Datenelement bewegt
wurde.
-
Bei
einer Ausführungsform
kann das erste Datenelement im Dateisystem zu einem neuen Standort
bewegt werden, der durch eine neue Standortinformation identifizierbar
ist. Daher braucht das Dateisystem das erste Bearbeitungselement
nicht neu zu erzeugen, wenn das erste Bearbeitungsdatenelement bewegt
wird. Vielmehr kann das Dateisystem das erste Datenelement entsprechend
der ersten Bearbeitungsdatei zu einem entsprechenden Standort im
Dateisystem bewegen. Im Gegensatz zu vorhergehenden Synchronisierungsanwendungen erfordert
eine derartige Ausführungsform
der Erfindung nicht, dass das erste Bearbeitungsdatenelement als
ein neuer Teil des Dateisystems neu erzeugt wird, nur weil es in
der Bearbeitungsversion bewegt wurde. Als Ergebnis werden Kommunikationsressourcen
geschont, da ein Datentransfer von Inhalten des ersten Bearbeitungsdatenelementes
nicht erforderlich ist. Außerdem
wird Metadaten-Information für das
erste Datenelement im Dateisystem bewahrt.
-
Eine
weitere Ausführungsform
der Erfindung bildet Information betreffend ein Dateisystem auf
eine Vergleichsdatei ab. Eine Bearbeitungsversion wird aus einem
Abschnitt des Dateisystems erzeugt. Während einer Synchronisierungsoperation
werden die Vergleichsdatei und die Bearbeitungsversion verwendet,
um zu bestimmen, ob Datenelemente seit der letzten Synchronisierungsoperation
kopiert wurden.
-
Eine
weitere Ausführungsform
der Erfindung stellt ein Computersystem bereit, das eine Netzwerkverwaltungsanwendung
betreiben kann. Das Computersystem beinhaltet eine Netzwerkschnittstelle, um
Nachrichten mit einem zweiten Computer auszutauschen. Mit den Nachrichten
soll eine Bearbeitungsversion eines Dateisystemabschnitts erzeugt werden,
auf die beim zweiten Computer zugegriffen werden kann. Der erste
Computer beinhaltet einen Speicher, der die Bearbeitungsversion
speichert. Ein Prozessor des ersten Computers zeichnet eine Erzeugungszeit
für das
mindestens eine Bearbeitungsdatenelement in der Bearbeitungsversion
auf, wobei das erste Bearbeitungsdatenelement von einem ersten Datenelement
des Dateisystems stammt. Der Prozessor verwendet anschließend die
Erzeugungszeit, um zu bestimmen, ob eine Operation beim ersten Bearbeitungsdatenelement
durchgeführt
wurde.
-
Neben
weiteren Vorteilen können
Ausführungsformen
der Erfindung erfassen, ob ein Datenelement zu einem neuen Standort
bewegt wurde, nachdem die Bearbeitungsversion erzeugt wurde, ob ein
Datenelement von einem anderen Datenelement kopiert wurde, das in
der Bearbeitungsversion bei deren Erzeugung aus einer anderen Datei
vorhanden war, oder ob ein Datenelement von einem Datenelement kopiert
wurde, das zur Bearbeitungsversion im Anschluss an deren Erzeugung
hinzugefügt
wurde. Weitere Operationen, die gemäß einer Ausführungsform
der Erfindung erfasst werden können,
beinhalten, ob ein Datenelement bearbeitet wurde, oder aus der Bearbeitungsversion
gelöscht
wurde. Eine Ausführungsform
der Erfindung kann auch mehrere Operationen erfassen, die mit einem
oder für
ein Datenelement in der Bearbeitungsversion durchgeführt wurden.
-
Das
Ergebnis ist, dass ein Abschnitt eines Dateisystems, der verwendet
wird, um die Bearbeitungsversion zu erzeugen, aktualisiert werden
kann, so dass er anschließende Änderungen
in der Bearbeitungsversion widerspiegelt. Jedoch brauchen Datenelemente
im Dateisystem, die anschließend
durch Datenelemente der Bearbeitungsversion aktualisiert werden,
nicht vollständig
durch die Datenelemente der Bearbeitungsversion ersetzt oder durch
diese neu erzeugt werden. Vielmehr kann ein Synchronisierungsverfahren
oder eine -anwendung das Dateisystem so aktualisieren, dass es Änderungen
an entsprechenden Datenelementen der Bearbeitungsversion, oder an
Hinzufügungen
von Datenelementen zur Bearbeitungsversion widerspiegelt. Ein weiterer Vorteil
besteht darin, dass Datenelemente des Dateisystems, mit denen Operationen
in der Bearbeitungsversion durchgeführt werden, Information bewahren
können,
die deren Ursprung verfolgt. Als Ergebnis kann das Dateisystem so
aktualisiert werden, dass es lediglich die Operationen widerspiegelt,
die bei der Bearbeitungsversion durchgeführt wurden.
-
B. Systemübersicht
-
1 stellt
ein System zur Verwaltung von Dateien dar, die von Computern gemeinsam
genutzt werden, gemäß einer
Ausführungsform
der Erfindung. Das System beinhaltet ein erstes Endgerät 10, das
mit einem Server 20 über
ein Netz 15 verbunden ist. Eine Mehrzahl weiterer Endgeräte 25 kann
auch mit dem Server 20 über
das Netz 15 verbunden sein. Das erste Endgerät 10 kann
als Client betrieben werden, der mit einem Server 20 kommuniziert.
Bei einer Ausführungsform
kann eine Client-Anwendung bei einem ersten Endgerät 10 betrieben
werden, um Dateidatenelemente und Ressourcen zu verwalten, die mit
dem Server 20 gemeinsam genutzt werden.
-
Ein
Benutzer kann ein erstes Endgerät 10 bedienen,
um auf ein Dateisystem 40 zuzugreifen, das eine oder mehrere
Ressourcen und weitere Datenelemente vom Server 20 enthält. Die
Ursprungsversion des Dateisystems 40 kann auf dem Server 20 verbleiben,
während
der Benutzer eine "geliehene" Version oder Bearbeitungsversion
eines Abschnittes des Dateisystems 40 bearbeitet. Das durch 1 beschriebene
System ermöglicht
dem Benutzer, lokal Datenelemente zu bearbeiten, auf die von einem
entfernt befindlichen Server (Remote-Server) 20 zugegriffen
wurde, und dann das Dateisystem 40 auf dem entfernt befindlichen
Server zu aktualisieren, so dass es Änderungen widerspiegelt, die
beim ersten Endgerät 10 an
diesen Datenelementen vorgenommen wurden.
-
Bei
einer Ausführungsform
kann der Benutzer am Endgerät 10 Operationen
bei Datenelementen durchführen,
auf die vom Server 20 zugegriffen wurde. Diese Operationen
können
ein Bearbeiten von Inhalt, ein Löschen
spezieller Datenelemente, die vom Server geholt wurden, ein Bewegen
von Datenelementen zu neuen Standorten, ein Kopieren von Datenelementen,
die vom Server 20 geholt wurden, und ein Hinzufügen von
neuen Datenelementen, so dass diese anschließend beim Server 20 enthalten
sind, beinhalten. Außerdem
ermöglicht
eine Ausführungsform
der Erfindung einem Benutzer, den Server 20 zu aktualisieren,
so dass dieser Kombinationen von bei Datenelementen durchgeführten Operationen
widerspiegelt. Eine Ausführungsform
der Erfindung verringert mögliche
Kombinationen von durch den Benutzer durchgeführten Operationen zu äquivalenten "zusammengesetzten
Operationen". Die äquivalenten
zusammengesetzten Operationen können
ein Bearbeiten und Kopieren eines Datenelementes, ein Erzeugen von
neuen Datenelementen mit anschließendem Bearbeiten und/oder
Kopieren von diesen, sowie ein Bearbeiten von bestehenden Datenelementen
und anschließendes
Bearbeiten von diesen beinhalten.
-
Bei
einer Ausführungsform
tauscht ein Endgerät 10 Nachrichten
mit dem Server 20 unter Verwendung einer Netzwerkschnittstelle 12 aus.
Bei einer Implementierung ermöglicht
die Netzschnittstelle 12 Internetprotokoll-(IP)-Kommunikation,
und speziell Transportsteuerungsprotokoll-(TCP/IP)-Kommunikation,
um eine Kommunikation über
Netze wie beispielsweise das Internet zu ermöglichen. Alternativ können Ausführungsformen
der Erfindung Nachrichten zwischen Computern über Netze, wie beispielsweise
lokale Netze (LANs) und andere Typen von Weitverkehrsnetzen (WANs) übermitteln.
-
Der
Server 20 kann verwendet werden, um ein Dateisystem 40 zu
speichern oder anderweitig zu verwalten. Bei einer Ausführungsform
beinhaltet ein Dateisystem 40 mehrere Abschnitte, wobei
jeder Abschnitt einem Benutzer oder einem Konto zugeordnet ist.
Ein erster Abschnitt 46 eines Dateisystems 40 kann
eine auf dem Server 20 gespeicherte Datei sein, auf die
durch ein erstes Endgerät 10 oder
durch einen Benutzer des ersten Endgerätes 10 zugegriffen werden
kann. Der erste Abschnitt 46 kann mehrere Datenelemente
beinhalten, beispielsweise Dateien und Ressourcen spezieller Datentypen.
-
Ein
erstes Datenelement 44 eines ersten Abschnittes 46 ist
in 1 bezeichnet. Zu Darstellungszwecken wird angenommen,
dass das erste Datenelement 44 eine Ressource wie beispielsweise
ein Dokument ist. Alternativ könnte
das erste Datenelement 44 eine Datei sein, die weitere
Datenelemente enthält.
Das erste Datenelement 44 beinhaltet Metadaten-Information
und Inhalt, oder ist diesen anderweitig zugeordnet. Die Metadaten-Information
des ersten Datenelementes 44 kann einen speziellen Standort
(L1) in einem (nicht dargestellten) Speicher von Server 20 identifizieren.
Die Metadaten-Information des ersten Datenelementes 44 kann
auch eine Standortidentifikationsinformation (LI1) beinhalten, die
verwendet wird, um den ersten Standort (L1) bei Server 20 anzugeben.
Da angenommen wird, dass das erste Datenelement 44 eine
Ressource ist, beinhaltet das erste Datenelement 44 einen
Inhalt, dem Metadaten-Information zugeordnet ist.
-
Bei
einer dargestellten Ausführungsform empfängt das
erste Endgerät 10 eine
erste Nachricht 32 vom Server 20, die über die
Netzschnittstelle 12 und Netz 15 übermittelt
wird. Die erste Nachricht 32 beinhaltet einen ersten Abschnitt 46 des
Dateisystems 40. Bei einer Implementierung hat ein das
erste Endgerät 10 bedienender
Benutzer Zugriffsrechte auf einen ersten Abschnitt 46.
Die Zugriffsrechte ermöglichen
es dem Benutzer, einen Teil oder den gesamten ersten Abschnitt 46,
einschließlich
des ersten Datenelementes 44, herunterzuladen oder anderweitig
abzurufen. Der Benutzer kann eine Bearbeitungsversion 50 des
ersten Abschnittes 46 nach einem Empfangen einer ersten
Nachricht 32 erstellen. Die Bearbeitungsversion 50 beinhaltet
Inhalt von Datenelementen im ersten Abschnitt 46. Bestimmte
Metadaten-Information für
die Bearbeitungsversion 50 kann vom Server 20 übertragen
und in der ersten Nachricht 32 enthalten sein. Weitere
Metadaten-Information kann beim ersten Endgerät 10 erzeugt werden,
wenn die Bearbeitungsversion 50 erstellt wird. Metadaten-Information,
die vom Dateisystem übertragen
wird, kann beispielsweise Standortinformation, wie etwa Dateipfade
und Namen, beinhalten, um bestimmte Datenelementen zu lokalisieren.
-
Daten,
die mit der ersten Nachricht 32 übertragen wurden, können verwendet
werden, um die Bearbeitungsversion 50 zu erzeugen, einschließlich zumindest
eines ersten Bearbeitungsdatenelementes 56. Das erste Bearbeitungsdatenelement 56 stammt
von dem ersten Datenelement 44 des Dateisystems 40.
Bei einer Ausführungsform
stammt das erste Bearbeitungsdatenelement 56 vom ersten
Datenelement 44, da ein Inhaltsabschnitt 58 des
ersten Bearbeitungsdatenelementes 56 von einem entsprechenden
Inhaltsabschnitt 48 des ersten Datenelementes 44 kopiert
wird.
-
Metadaten-Information,
die vom Dateisystem 40 übernommen
werden kann, beinhaltet die erste Standortinformation (LI1) des
ersten Datenelementes 46. Die erste Standortinformation
(LI1) kann verwendet werden, um einen zweiten Standort (L2) für das erste
Bearbeitungsdatenelement 56 beim ersten Endgerät 10 zu identifizieren.
Beispielsweise kann die erste Standortinformation (LI1) einen Dateipfad
und einen Namen beinhalten. Der Dateipfad kann bei einer Bearbeitungsversion 50 neu
erzeugt werden, um zu ermöglichen,
dass sich das erste Bearbeitungsdatenelement 56 am zweiten
Standort (L2) befindet. Der Name kann auch als zusätzliche
Standortinformation übertragen
werden. Bei vielen Anwendungen ist der Name Bestandteil des Dateipfades.
-
Wenn
eine Bearbeitungsversion 50 beim ersten Computer 10 erzeugt
wird, wird neue Metadaten-Information aufgezeichnet. Die neue Metadaten-Information
kann Zeitwerte beinhalten, die bestimmte Ereignisse für das erste
Bearbeitungsdatenelement 56 markieren. Bei einer Ausführungsform kann
ein erster Zeitwert 62 mit einer Erzeugungszeit für das erste
Bearbeitungsdatenelement korrespondieren. Ein zweiter Zeitwert 64 kann
mit einer Modifikationszeit für
das erste Bearbeitungsdatenelement 56 korrespondieren.
Der erste Zeitwert 62 und der zweite Zeitwert 64 werden
bei oder direkt nach der Erzeugung der Bearbeitungsversion 50 beim
ersten Computer 10 initialisiert. Als Beispiel kann ein
Benutzer ein Textverarbeitungsdokument als erstes Bearbeitungsdatenelement 56 herunterladen.
Wenn das Dokument heruntergeladen wurde, wird ein erster Zeitwert 62 (Erzeugungszeitpunkt)
und ein zweiter Zeitwert 64 (Modifikationszeitpunkt) durch
ein Betriebssystem (oder eine andere Anwendung) beim ersten Endgerät 10 aufgezeichnet.
Beispielsweise kann auf dem ersten Endgerät 10 ein Betriebssystem vom
WINDOWS-Typ laufen, das automatisch Erzeugungszeitwerte und Modifikationszeitwerte
aufzeichnet, wenn das erste Bearbeitungsdatenelement 56 erzeugt
wird. Die Erzeugungszeit ist ein Wert, der einem speziellen Datenelement
zugewiesen wird und den Zeitpunkt von dessen Erzeugung auf einem
speziellen Computersystem markiert. Die Erzeugungszeit wird als
statischer Wert gespeichert, der anschließend verwendet werden kann,
um ein entsprechendes Bearbeitungsdatenelement zu identifizieren,
sogar wenn das Bearbeitungsdatenelement eine neue Adresse oder einen
neuen Namen hat. Die Modifikationszeit ist ein Wert, der den Bearbeitungsdatenelementen
zugeordnet ist, um den letzten Zeitpunkt zu markieren, zu dem das
Datenelement bearbeitet oder erzeugt wurde. Die Modifikationszeit
kann sich daher ändern,
nachdem die Bearbeitungsversion 50 vom Dateisystem 40 heruntergeladen
wurde.
-
Bei
einer Ausführungsform
pflegt ein erster Computer 10 eine Vergleichsdatei 70 zur
Speicherung von Metadaten-Information oder greift anderweitig auf
diese zu. Die in der Vergleichsdatei 70 gespeicherte Metadaten-Information
kann neue Metadaten-Information beinhalten, die aufgezeichnet wird, wenn
das erste Bearbeitungsdatenelement 56 beim ersten Computer 10 erzeugt
wird, sowie auch bestimmte Metadaten-Information, die von einem
ersten Datenelement 44 des Dateisystems 40 übernommen
werden kann.
-
Beim
dargelegten Beispiel speichert die Vergleichsdatei 70 die
erste Standortinformation (LI1) des ersten Bearbeitungsdatenelementes 56 und
des ersten Datenelementes 44, den zweiten Standort (L2)
des ersten Bearbeitungsdatenelementes 56, den ersten Zeitwert 62 (Erzeugungszeit)
des ersten Bearbeitungs datenelementes 56 und den zweiten Zeitwert 64 (Modifikationszeit)
des ersten Bearbeitungsdatenelementes 56. Die erste Standortinformation
(LI1) wird vom Server 20 übertragen, hingegen wird weitere
Metadaten-Information in der Vergleichsdatei 70 bei der
Erzeugung der Bearbeitungsversion 50 erzeugt. Die Metadaten-Information
zum Anfangszeitpunkt für
Datenelemente in der Bearbeitungsversion 50 werden in der
Vergleichsdatei 70 erzeugt und gespeichert. Wie später noch
detaillierter beschrieben wird, wird diese Metadaten-Information verwendet,
um spezifische Informationen zu identifizieren, die beim ersten
Bearbeitungsdatenelement 56 nach der Erstellung der Bearbeitungsversion 50 durchgeführt werden.
Dadurch, dass diese spezifischen Operationen bekannt sind, kann
eine Synchronisierung in effizienterer Weise durchgeführt werden.
-
Die
Operationen, für
die die Vergleichsdatei 70 zum Erfassen verwendet werden
kann, beinhalten die Operationen eines Bearbeitens von Datenelementen,
eines Bewegens von Datenelementen, eines Erzeugens neuer Datenelemente,
eines Kopieren von Datenelementen, eines Löschens von Datenelementen und
Kombinationen von diesen. Die Vergleichsdatei 70 liefert
einen Zugang zu Metadaten-Information
für jedes
Datenelement, das mit der ersten Nachricht 32 übermittelt
wurde. Im Anschluss an Operationen, die bei der Bearbeitungsversion 50 durchgeführt werden,
sieht eine Ausführungsform der
Erfindung vor, dass Metadaten in Datenelementen der Bearbeitungsversion 50 gegen
eine Vergleichsdatei 70 abgeglichen werden. Der Vergleich von
Metadaten-Information wird verwendet, um die Operation(en) zu erfassen,
die bei der Bearbeitungsversion 50 durchgeführt wurden,
zum Zweck eines Bestimmens von Unterschieden zwischen Datenelementen
der Bearbeitungsversion und Datenelementen des Dateisystems. Beim
Vornehmen des Vergleichs kann bei Datenelementen der Bearbeitungsversion 50 erfasst
werden, dass sie Metadaten-Information aufweisen, die sich von Metadaten
der entsprechenden in der Vergleichsdatei 70 aufgezeichneten
Datenelemente unterscheiden. Außerdem
kann bei Datenelementen in der Bearbeitungsversion 50 erfasst
werden, ob sie kein entsprechendes durch die Vergleichsdatei 70 identifiziertes
Datenelement aufweisen. Die Unterschiede, die beim Vorneh men der Vergleiche
identifiziert werden, werden vermerkt und werden verwendet, um die
Bearbeitungsversion 50 mit dem ersten Abschnitt 46 des
Dateisystems 40 zu synchronisieren.
-
Gemäß einer
ersten Ausführungsform
der Erfindung ist ein erster Abschnitt 46 eine gemeinsam genutzte
Datei, die für
weitere Endgeräte 25 vom Server 20 zugänglich ist.
Es ist möglich,
dass ein erster Abschnitt 46 durch einen weiteren Computer
verändert
wird, nachdem Abschnitte von diesem an das erste Endgerät 10 übermittelt
wurden. Das weitere Endgerät 25 kann
beispielsweise auf Datenelemente im ersten Abschnitt 46 zugreifen
und diese bearbeiten, so dass der erste Abschnitt 46 gegenüber dem Zeitpunkt
verändert
wird, zu dem er an das erste Endgerät 10 übermittelt
wird. Um den Vergleich zur Identifizierung der Änderungen in der Bearbeitungsversion 50 mit
dem gemeinsam genutzten Dateisystem 40 vorzunehmen, wird
vom Server 20 eine zweite Nachricht 34 an ein
erstes Endgerät 10 übermittelt. Die
zweite Nachricht 34 beinhaltet Metadaten-Information, die
beim Server 20 zu dem Zeitpunkt vorliegt, bei dem eine
Synchronisierung mit dem ersten Endgerät 10 durchzuführen ist.
Bei einer Ausführungsform
wird eine zweite Nachricht 34 an ein erstes Endgerät 10 bei
Erfolgen einer Synchronisierungsaufforderung vom ersten Endgerät 10 übermittelt.
-
Bei
einer Ausführungsform
führt das
erste Endgerät 10 die
Synchronisierungsoperation durch. Bei der Synchronisierungsoperation
kann Metadaten-Information zwischen veränderten oder hinzugefügten Datenelementen
der Bearbeitungsdatei 50 mit Datenelementen des ersten
Abschnittes 46 verglichen werden. Die veränderten
oder hinzugefügten Bearbeitungsversions-Datenelemente
sind das Ergebnis davon, dass Benutzer des ersten Endgerätes eine
oder mehrere Operationen mit der Bearbeitungsversion 50 durchführen. Geänderte oder
hinzugefügte
Datenelemente im Dateisystem sind das Ergebnis davon, dass weitere
Benutzer eine oder mehrere Operationen bei ihren Versionen des Dateisystems 40 durchführen. Die
Unterschiede zwischen der Bearbeitungsversion 50 und Datenelementen
des ersten Abschnittes 46 werden identifiziert und durch den
Benutzer des ersten Endgerätes 10 abgeglichen. Die
Unterschiede werden als abgeglichene Metadaten-Information aufgezeichnet.
Bei einer Ausführungsform
wird eine dritte Nachricht 36 verwendet, um die abgeglichene
Metadaten-Information von einem ersten Endgerät 10 an den Server 20 zu
ermitteln. Die abgeglichene Metadaten-Information kann an Server 20 übermittelt
werden, um den Server 20 zu veranlassen, eine oder mehrere
Operationen durchzuführen,
die das Dateisystem 40 so aktualisieren, dass es Änderungen
von bei der Bearbeitungsversion 50 durchgeführten Operationen
widerspiegelt. Außerdem
kann die abgestimmte Information durch den Benutzer 50 angezeigt
werden, sodass der Benutzer geänderte
oder modifizierte Datenelemente auswählen kann, die zum Aktualisieren
des Dateisystem 40 verwendet werden.
-
Bei
einer weiteren Ausführungsform
wird der erste Abschnitt 46 nicht mit weiteren Benutzern
gemeinsam genutzt, sondern lediglich vom Benutzer des ersten Endgerätes 10.
Da dies so ist, kann die zweite Nachricht 34 nicht erforderlich
sein. Vielmehr wird die Vergleichsdatei 70 verwendet, um
die Synchronisierungsoperation durchzuführen und abgestimmte Metadaten-Information
zu identifizieren. Die abgestimmte Metadaten-Information wird dann
an Server 20 übermittelt,
nachdem die Synchronisierungsoperation beim ersten Endgerät 10 durchgeführt wurde.
Die abgestimmte Metadaten-Information wird an Server 20 übermittelt,
um diesen zu veranlassen, das Dateisystem 40 mit Änderungen
der Bearbeitungsversion 50 zu aktualisieren.
-
C. Synchronisierungsoperationen
-
2 stellt
ein Verfahren zur Erstellung der Bearbeitungsversion 50 und
zum anschließenden Synchronisieren
der Bearbeitungsversion 50 (1) mit einem
entsprechenden Abschnitt des Dateisystem 40 dar. Der Bezug
auf Bauelemente von 1 soll beispielhafte Bauelemente
zur Verwendung mit dieser Ausführungsform
vermitteln. Bei der in 2 beschriebenen Ausführungsform
wird angenommen, dass das erste Dateisystem 40 nicht mit
weiteren Benutzern gemeinsam genutzt wird.
-
Bei
Schritt 210 wird eine Bearbeitungsversion des Abschnittes
des Dateisystems 40 auf ein erstes Endgerät 10 heruntergeladen.
Beispielsweise kann sich das erste Endgerät 10 mit dem Server 20 über das
Internet verbinden. Der Benutzer des ersten Endgerätes 10 kann
ein Konto haben, um den ersten Abschnitt 46 des Dateisystems 40 zu
identifizieren. Der erste Abschnitt 46 des Dateisystems 40 kann durch
den Benutzer ausgewählt
werden, um auf das erste Endgerät 10 heruntergeladen
zu werden.
-
Bei
Schritt 220 wird eine Vergleichsdatei 70 erzeugt,
wenn die Bearbeitungsversion 50 erstellt wird. In der Vergleichsdatei
ist anfängliche
Metadaten-Information der Bearbeitungsversion 50 aufgezeichnet.
Ein Teil der Metadaten-Information kann auch von Datenelementen
des ersten Abschnittes 46 des Dateisystems 40 übertragen
werden. Schritte 210 und 220 werden bei t = 0
vor jeglichen Operationen durchgeführt, die Einfluss auf die Bearbeitungsversion 50 haben
könnten.
Schritte 230 bis 250 erfolgen nach einer gewissen
Zeit t = i, so dass der Benutzer eine Operation bei der Bearbeitungsversion 50 durchgeführt haben
kann. Zu diesem Zeitpunkt erfolgt durch den Benutzer eine Aufforderung,
die Bearbeitungsversion 50 mit dem Dateisystem 40 zu synchronisieren.
-
Bei
Schritt 230 werden Unterschiede zwischen der modifizierten
Bearbeitungsversion 50 und der Bearbeitungsversion 50 zum
Zeitpunkt der Erzeugung der Vergleichsdatei 70 identifiziert.
Die Unterschiede können
als "Delta-Datenelemente" bezeichnet werden.
Die Delta-Datenelemente beinhalten Datenelemente in der Bearbeitungsversion 50 zum
späteren
Zeitpunkt, die neu, kopiert, bewegt oder modifiziert wurden. Die
Delta-Datenelemente können
auch durch Vergleichsdatei 70 identifizierte Datenelemente
beinhalten, die keine Entsprechung oder Gegenstück in der Bearbeitungsversion 50 haben.
Beispielsweise können
am ersten Bearbeitungsdatenelement 56 Operationen durch
Bearbeitungsvorgänge und
Bewegungsvorgänge
vorgenommen werden, in welchem Fall es ein Delta-Datenelement der Bearbeitungsversion 50 ist.
Alternativ kann die Vergleichsdatei 70 das Bearbeitungsdatenelement 56 identifizieren,
jedoch wurde das Bearbeitungsdatenelement 56 möglicherweise
aus der Bearbeitungsversion 50 gelöscht. In diesem Fall ist das
erste Bearbeitungsdatenelement 56 ein Delta-Datenelement
in der Vergleichsdatei 70. In ähnlicher Weise können weitere
Bearbeitungsdatenelemente zur Bearbeitungsversion 50 kopiert
oder hinzugefügt
werden, nachdem die Vergleichsdatei 70 erstellt wurde, in
welchem Fall diese Datenelemente in der Bearbeitungsversion 50 als
Delta-Datenelemente identifiziert sind.
-
Bei
Schritt 240 werden Unterschiede zwischen Datenelementen
in der Bearbeitungsversion 50 und der Vergleichsdatei 70 identifiziert.
Wie erläutert,
werden diese Differenzen auch als Delta-Datenelemente bezeichnet.
-
Bei
Schritt 250 werden Differenzen abgestimmt, die zwischen
der Bearbeitungsversion 50 und durch die Vergleichsdatei 70 identifizierten
Datenelementen identifiziert sind. Zur Abstimmung können Delta-Datenelemente
ausgewählt
werden, um das Aktualisieren des Dateisystems 40 anzuweisen. Beispielsweise
wird, wenn ein Delta-Datenelement eine bearbeitete Version eines
ersten Bearbeitungsdatenelementes 56 ist, durch die Auswahl
bestimmt, ob das Dateisystem 40 die bearbeitete oder die
Ursprungsversion des ersten Datenelementes 44 beinhalten
soll. Falls ein Delta-Datenelement ein Element ist, das zur Bearbeitungsversion 50 hinzugefügt wurde
(beispielsweise ein neues oder kopiertes Datenelement), dann bestimmt
die Auswahl, ob das Dateisystem 40 diese Hinzufügungen bewahren
soll. Falls das Delta-Datenelement ein erstes Bearbeitungsdatenelement 56 ist,
das zu einem neuen Standort bewegt wurde, dann wird durch die Auswahl
bestimmt, ob das Dateisystem 40 neue Standortinformation
für das
erste Datenelement 44 verwenden soll, oder ob das Dateisystem
den alten Standort beibehalten soll. Wenn das Delta-Datenelement
das erste Bearbeitungsdatenelement 56 ist, das von der
Bearbeitungsversion 50 gelöscht wurde, wird durch die
Auswahl bestimmt, ob das Dateisystem 40 das erste Datenelement 44 löschen soll. Ähnliche
Verfahren können mit
Kombinationen von Operationen durchgeführt werden, wie an anderer
Stelle in dieser Anmeldung detailliert beschrieben wird.
-
3 zeigt
eine detaillierte Darstellung eines Verfahrens zum Synchronisieren
der Bearbeitungsversion 50 mit dem Dateisystem 40 auf
dem Server 20, wenn das System 40 mit weiteren
Computern gemeinsam genutzt wird, gemäß einer Ausführungsform
der Erfindung. In 3 erfolgt die Erstellung der
Bearbeitungsversion 50 wie bei einer Ausführungsform
von 2 beschrieben. Die Bearbeitungsversion 50 wird
vom Dateisystem 40 bei Schritt 310 heruntergeladen.
Die Vergleichsdatei 70 wird erzeugt, um Metadaten-Information
betreffend die Bearbeitungsversion 50 und das Dateisystem 40 bei Schritt 320 aufzuzeichnen. Änderungen
werden an der Bearbeitungsversion 50 bei Schritt 330 vorgenommen.
Unterschiede zwischen der Bearbeitungsversion 50 und durch
die Vergleichsdatei 70 identifizierten Datenelementen werden
bei Schritt 340 identifiziert. Diese Datenelemente, die
als Delta-Datenelemente bezeichnet werden, können Bearbeitungsversions-Datenelemente
beinhalten, die mittels einer oder mehrerer Operationen zu irgendeinem
Zeitpunkt bewegt, gelöscht,
bearbeitet und hinzugefügt wurden.
-
Bei
Schritt 350 nimmt der Benutzer des ersten Endgerätes 10 eine
Synchronisierungsaufforderung beim Server 20 vor. Zu diesem
Zeitpunkt wurde die Bearbeitungsversion 50 möglicherweise
mittels einer oder mehrerer Operationen aus ihrem Ursprungszustand
modifiziert.
-
Bei
Schritt 360 wird neue Information betreffend das Dateisystem 40 beim
ersten Endgerät 10 empfangen.
Auf das Dateisystem 40 wurde möglicherweise durch weitere
Endgeräte
zugegriffen und es durch diese verändert, seit dem Zeitpunkt,
zu dem die Bearbeitungsversion 50 beim ersten Endgerät 10 erzeugt
wurde. Daher kann neue Information betreffend das Dateisystem 40 Änderungen
identifizieren, die an Datenelementen des Dateisystems 40 durch weitere
Benutzer vorgenommen wurden. Bei einer Implementierung liegt Information
betreffend das Dateisystem 40 in Form von Metadaten vor,
und kann spezifisch für
Datenelemente des ersten Abschnittes 46 sein, die durch
den Benutzer des ersten Endgerätes 10 heruntergeladen
wurde. Die Metadaten-Information kann Standortinformation der Datenelemente des
Dateisystems beinhalten, die den heruntergeladenen Datenelementen
entsprechen. Außerdem kann
die neue Metadaten-Information betreffend Datenelemente des Dateisystems
Zeitwerte beinhalten. Beispielsweise können Erzeugungszeitpunkt- und Modifikationszeitpunktwerte
der Datenelemente des Dateisystems zu dem Zeitpunkt, zu dem eine
Synchronisierung angefordert wird, dem ersten Endgerät 10 zum
Zweck eines Bestimmens von Delta-Datenelementen des Dateisystems 40 übermittelt
werden.
-
Bei
Schritt 370 werden Unterschiede, oder Delta-Datenelemente,
zwischen dem aktualisierten Dateisystem 40 und dem Dateisystem
zum Zeitpunkt der Erstellung der Bearbeitungsversion erfasst. Diese
Delta-Datenelemente sind dadurch identifiziert, dass neue Metadaten-Informationen,
die bei Schritt 360 empfangen wurden, mit Datenelementen
verglichen werden, die durch Vergleichsdatei 70 bei Erzeugen
der Vergleichsdatei bei Schritt 320 identifiziert sind.
Die bei diesem Schritt identifizierten Delta-Datenelemente können entweder
durch Vergleichsdatei 70 oder durch die neue Metadaten-Information,
die betreffend Dateisystem 40 empfangen wurde, identifiziert
sein. Delta-Datenelemente, die durch neue Metadaten-Information
betreffend Dateisystem 40 identifiziert sind, können Datenelementen
entsprechen, die durch weitere Benutzer bewegt oder bearbeitet wurden.
Außerdem
können
Delta-Datenelemente des Dateisystems 40 Datenelemente beinhalten,
die zum ersten Abschnitt 46 durch weitere Benutzer, entweder
als neue Datenelemente oder als Kopien von weiteren Datenelementen,
hinzugefügt
wurden. Delta-Datenelemente, die durch Vergleichsdatei 70 identifiziert
sind beinhalten Datenelemente, die vom Dateisystem 40,
nach Erstellen der Bearbeitungsversion 50 auf dem ersten
Computer 10, gelöscht
wurden.
-
Bei
Schritt 380 werden Auswahlen für Delta-Datenelemente vorgenommen,
die bei Schritt 340 und bei Schritt 370 identifiziert
wurden. Die Auswahlen können
durch einen Benutzer vorgenommen werden. Die Auswahlen können Delta-Datenelemente der
Vergleichsdatei 70, der Bearbeitungsversion 50 und
des Dateisystems 40 spezifizieren. Für jedes Delta-Datenelement
kann die Auswahl bestimmen, ob dieses Delta-Datenelement behalten
werden soll, oder nicht.
-
Bei
Schritt 390 werden Konflikte zwischen Differenzen, die
bei Schritten 340 und 370 identifiziert wurden,
erfasst und gelöst.
Beispielsweise kann ein Datenelement in der Bearbeitungsversion 50 bearbeitet
werden, so dass es als Delta-Datenelement identifiziert wird, wenn
es mit einem entsprechenden Dateisystemdatenelement zum Zeitpunkt
der Erstellung der Bearbeitungsversion 50 verglichen wird. Dieses
in der Vergleichsdatei 70 identifizierte Dateisystemdatenelement
kann anschließend
durch einen weiteren Computer, der Zugriff auf den Server 20 hat, verändert werden.
Somit können
zwei Delta-Datenelemente demselben durch Vergleichsdatei 70 identifizierten
Datenelement zugeordnet sein. Bei einer Ausführungsform kann der Benutzer
des ersten Endgerätes 10 wählen, welche
der zwei Delta-Datenelemente für
eine Einbeziehung in das Dateisystem 40 verwendet werden
sollten.
-
Alternativ
können
Konflikt-Auswahlen zwischen Delta-Datenelementen mittels eines Konflikt-Protokolls
vorgenommen werden, das auswählt, ob
ein jeweiliges Delta-Datenelement in das synchronisierte Dateisystem 40 einbezogen
werden soll.
-
Bei
Schritt 395 werden die ausgewählten Delta-Datenelemente zum
Aktualisieren von Dateisystem 40 verwendet. Jedes der Delta-Datenelemente,
die bei Schritt 340 und 370 identifiziert wurden,
können
bei der Aktualisierung des Dateisystems weggelassen oder einbezogen
werden. Im Konfliktfall kann der Benutzer zwischen Delta-Datenelementen
auswählen.
-
4 stellt
ein Verfahren zum Betreiben von Server 20 gemäß einer
weiteren Ausführungsform der
Erfindung dar. Bei der mit Bezug auf 4 beschriebenen
Ausführungsform
wird angenommen, dass mehrere Benutzer auf gemeinsam genutzte Dateisysteme
des Servers 20 zugreifen. Zu Erläuterungszwecken wird Bezug
genommen auf 1. Es wird angenommen, dass
das erste Endgerät
die Synchronisierungsaufforderung vornimmt. Abschnitte des Dateisystems 40 werden
mit weiteren Clients 25 gemeinsam genutzt, die auf Server 20 zugreifen
können.
-
Bei
Schritt 410 wird ein Abschnitt des gemeinsam genutzten
Dateisystems 40 an ein erstes Endgerät 10 und Clients 25 übermittelt.
Jeder Client kann separat betrieben werden, um auf Abschnitte des
gemeinsam genutzten Dateisystems zuzugreifen und diese zu empfangen.
-
Bei
Schritt 420 wird eine Synchronisierungsaufforderung vom
ersten Endgerät 10 empfangen. Die
Synchronisierungsaufforderung kann einem Benutzer entsprechen, der
die von ihm vorgenommenen Änderungen
im Dateisystem 40 implementieren möchte. Möglicherweise möchten die
Benutzer auch jegliche Änderungen
empfangen, die von weiteren Benutzern eingegeben wurden, die den
Abschnitt des Dateisystems 40 heruntergeladen haben.
-
Bei
Schritt 430 kann aktualisierte Information betreffend das
Dateisystem 40 an den Client übermittelt werden, der um Synchronisierung
nachsucht. Das Dateisystem 40 kann von dem Zeitpunkt ab
aktualisiert werden, zu dem der Client das Dateisystem heruntergeladen
hat, um von den Clients 25 eingegebene Änderungen einzubeziehen.
-
Bei
Schritt 440 empfängt
Server 20 Informationen betreffend Änderungen, die am Dateisystem 40 vorzunehmen
sind, als Ergebnis von bei der Bearbeitungsversion 50 durchgeführten Operationen.
Die Änderungen
können
das Ergebnis von Operationen, wie beispielsweise Bearbeitungsvorgängen, Hinzufügevorgängen (neue
Datenelemente und Kopien), Löschvorgängen und
Bewegungsvorgängen
sein.
-
Bei
Schritt 450 wird das Dateisystem 40 unter Verwendung
von Änderungen
aktualisiert, die vom ersten Endgerät 10 (dem die Synchronisierungsaufforderung
durchführenden
Client) übermittelt
wurden. Die aktualisierten Änderungen
können Auswahlen
sein, die durch einen bestimmten Benutzer bestimmt wurden, nachdem
eine oder mehrere Operationen bei der auf diesem Endgerät vorhandenen
Bearbeitungsversion des Dateisystems 40 vorgenommen wurden.
-
Bei
Schritt 460 wird bestimmt, ob irgendwelche weiteren Aufforderungen
von weiteren Endgeräten,
die auf das Dateisystem 40 zugreifen, erfolgt sind oder
erfolgen werden. Falls es irgendwelche weiteren Aufforderungen zum
Synchronisieren gibt, dann werden Schritte 430 bis 460 für den nächsten die
Aufforderung vornehmenden Client wiederholt. Gemäß einer derartigen Implementierung
nimmt jeder Client, der Zugriff auf das gemeinsam genutzte Dateisystem 40 hat,
zusätzliche Änderungen
an diesem vor. Die von weiteren Benutzern vorgenommenen Änderungen
und Modifikationen werden in das Dateisystem 40 einbezogen,
wenn die Synchronisierungsaufforderung erfolgt. Daher ändert sich
das Dateisystem 40 nach jeder Synchronisierungsoperation
mit einem der Clients, so dass der nächste Client die Synchronisierung
mit einem zuvor aktualisierten Dateisystem 40 vornimmt.
-
D. Erfassen von Operationen bei Bearbeitungsdateien
-
Mit
Bezug auf beispielhafte Bestandteile von 1 ermöglichen
Ausführungsformen
der Erfindung eine Synchronisierung zwischen Datenelementen der
Bearbeitungsversion 50 und Datenelementen des Dateisystems 40,
sogar nachdem die Datenelemente mehreren und unterschiedlichen Typen
von Operationen unterzogen wurden. Die Operationen, die bei einer
Bearbeitungsversion 50 durchgeführt werden können, können als
eine primäre
Operation oder eine zusammen gesetzte Operation charakterisiert werden.
Gemäß einer
Ausführungsform
können mehrere
Operationen, die bei einem Datenelement durchgeführt werden, als eine einzige
Operation aus einem Satz von äquivalenten
zusammengesetzten Operationen erfasst werden.
-
Bei
einer Ausführungsform
sind die primären Funktionen
Bearbeiten, Löschen,
Kopieren, Bewegen und Neuerzeugen. Die Bearbeitungsoperation führt dazu,
dass ein Inhalt eines Datenelementes in der Bearbeitungsversion 50 verändert wird.
Die Löschoperation
bewirkt, dass ein Datenelement aus der Bearbeitungsversion 50 entfernt
wird. Die Kopieroperation führt
ein Neuerzeugen der Inhalte eines Datenelementes in der Bearbeitungsversion 50 als neues
oder hinzugefügtes
Datenelement durch. Die Bewegen-Operation bewirkt, dass ein Datenelement, das
sich an einem Standort der Bearbeitungsversion 50 befindet,
einen neuen Standort erhält.
Ein Standort kann durch einen Namen, eine Speicheradresse oder eine
Speichereinheit definiert sein. Somit kann die Bewegen-Operation
durchgeführt
werden, um ein Datenelement zu einem neuen Ordner-Standort zu bewegen,
ein Datenelement umzubenennen oder das Datenelement zu einer neuen
Speichereinheit zu bewegen. Die Neuerzeugen-Operation wird bei der Bearbeitungsversion 50 durchgeführt, um
ein zusätzliches
Datenelement bei der Bearbeitungsversion 50 zu erzeugen.
-
Eine
zusammengesetzte Operation ist eine Kombination mehrerer Operationen,
die bei der Bearbeitungsversion 50 durchgeführt werden,
um ein Datenelement der Bearbeitungsversion zu erzeugen und/oder
Einfluss auf dieses zu nehmen. Im Gegensatz zu Ausführungsformen
der Erfindung sind vorhergehende Synchronisierungssysteme fähig, eine Durchführung einer
der primären
Operationen zu erfassen, sind jedoch nicht in der Lage, bestimmte
primäre
Operationen oder Kombinationen von Operationen zu erfassen. Vorteile,
die von Ausführungsformen
der Erfindung bereitgestellt werden, ermöglichen eine Erfassung und
Synchronisierung aller primären
Operationen, sowie Kombinationen aus mehre ren Operationen, die mit
einzelnen Datenelementen der Bearbeitungsversion 50 durchgeführt werden.
-
Analytische
Ausdrücke
zur Beschreibung von Dateiverwaltungsoperationen können unter
Verwendung des Formates aOb beschrieben werden, wobei der Großbuchstabe
für die
Operation steht, ein der Operation vorhergehendes Datenelement die Quelle
für die
Operation repräsentiert,
und ein auf die Operation folgendes Datenelement das Ziel für die Operation
repräsentiert.
Eine Zusammenfassung der primären
Operationen lautet:
Ex – Bearbeiten
von Datei X
Dx – Löschen von
Datei X
Nx – Erzeugen
eines neuen Datenelementes X
xMy – X wird zu Y bewegt
xCy – X wird
als Y kopiert
-
Gemäß einer
Ausführungsform
der Erfindung können
zusammengesetzte Operationen auf eine endliche Anzahl äquivalenter
zusammengesetzter Operationen reduziert und abstrahiert werden.
Einige Beispiele von Prinzipien, die bei Erstellung dieser Abstraktionen
verwendet wurden, beinhalten: (1) Falls ein Datenelement gelöscht wird,
können
vorhergehende Operationen, die bei diesem Datenelement durchgeführt wurden,
ignoriert werden; (2) mehrfache Bewegungsvorgänge eines Datenelementes können als
ein einziger Bewegungsvorgang von der anfänglichen Quelle zum endgültigen Ziel
behandelt werden; und (3) jegliche Bewegungsoperation, die als eine
Kombination von Operationen durchgeführt wird, kann in beliebiger
Reihenfolge mit Bezug auf weitere Operationen analysiert werden,
so dass die Annahme, dass eine Bewegung vor einer weiteren Operation
durchgeführt
wird, ein wahres und vereinfachtes Ergebnis liefert. Unter Verwendung
dieser Prinzipien kann angenommen werden, dass jegliches Bearbeitungsdatenelement
einer von neun möglichen
Operationen oder Kombinationen von Operationen unterzogen wird,
wobei die Kombinationen von Operationen Äqui valente weiterer Operationskombinationen
sind. Die bei Datenelementen der Bearbeitungsversion 50 durchgeführten Operationen können für Dateisystem 40 als
eine von fünf
primären Operationen,
oder eine von vier äquivalenten
zusammengesetzten Operationen repliziert werden.
-
Bei
einer Ausführungsform
sind die vier äquivalenten
Kombinationen von Operationen:
ExMy – Bearbeiten von X und Bewegen
von dieser zu Y
(Nx)Cy – Erzeugen
von X und Kopieren von dieser als Y
E((Nx)Cy) – Erzeugen
von X, Kopieren von dieser als Y, und Bearbeiten von Y
E(xCy) – Kopieren
von X als Y, und Bearbeiten von Y
-
Klammerausdrücke sind
bei jeder äquivalenter
zusammengesetzter Operation als Erstes auszuführen.
-
5 stellt
ein Verfahren zum Erfassen von Operationen dar, die für Datenelemente
in der Bearbeitungsversion 50 zu dem Zeitpunkt durchgeführt werden,
bei dem ein Benutzer ein Synchronisieren der Bearbeitungsversion 50 mit
dem Dateisystem 40 nachfragt, gemäß einer Ausführungsform
der Erfindung. Bei einer derartigen Ausführungsform wie der dargestellten
gibt es zehn mögliche
Ergebnisse für jedes
Datenelement in der Bearbeitungsversion 50 zum Zeitpunkt
der Synchronisierung: Unverändert, fünf primäre Operationen,
und vier äquivalente
Kombinationen von Operationen.
-
Bei
Schritt 502 wird die Bearbeitungsversion 50 aus
einem Abschnitt des Dateisystems 40 erzeugt. Bei Schritt 504 wird
eine Vergleichsdatei 70 erstellt, die Information betreffend
die Bearbeitungsversion 50 beinhaltet. Bei beiden Schritten 502 und 504 wird
angenommen, dass sie erfolgen, bevor jegliche Operationen für die Bearbeitungsversions-Datenelemente
durchgeführt
werden (d. h. bei t = 0). Zu einem anschließenden Moment fordert der Benutzer
eine Synchronisierung mit dem Dateisystem an (d. h. bei t = f).
Zwischen t = 0 und t = f kann der Benutzer eine oder mehrere Operationen
durchführen,
welche die Bearbeitungsversion 50 ändern.
-
Bei
Empfang einer Synchronisierungsaufforderung wird bei Schritt 506 eine
Bestimmung vorgenommen, ob ein Datenelement, das durch die Vergleichsdatei 70 identifiziert
ist und dessen Standort durch diese angegeben ist, den gleichen
Standort wie ein entsprechendes Datenelement der Bearbeitungsversion 50 aufweist.
Zu Anfang wird, wenn die Vergleichsdatei 70 erstellt wird,
der Standort eines jeden Datenelementes aufgezeichnet. Somit wird
bei Schritt 506 bestimmt, ob ein Datenelement, das in Vergleichsdatei 70 identifiziert
ist, weiterhin unter Verwendung von Standortinformation lokalisiert
werden kann, die zu Anfang für
dieses Datenelement aufgezeichnet wurde.
-
Bei
Schritt 506 wird bestimmt, dass das durch Vergleichsdatei 70 identifizierte
Datenelement weiterhin den gleichen Standort in der Bearbeitungsversion 50 hat,
und bei Schritt 508 folgt eine weitere Bestimmung, ob dieses
Datenelement im Anschluss an ein Aufzeichnen in Vergleichsdatei 70 bearbeitet wurde.
Falls bei Schritt 508 bestimmt wird, dass das Datenelement
nicht bearbeitet wurde, dann wird bei Schritt 510 gefolgert,
dass das spezielle Datenelement in der Bearbeitungsversion 50 nicht
verändert wurde.
Falls bei Schritt 508 bestimmt wurde, dass das spezielle
Datenelement bearbeitet wurde, dann wird bei Schritt 512 das
Datenelement, das durch die Vergleichsdatei 70 identifiziert
wurde, als bearbeitet angegeben.
-
Falls
bei Schritt 506 bestimmt wird, dass das durch Vergleichsdatei 70 identifizierte
Datenelement sich nicht an dem Standort befand, der durch für dieses
Datenelement aufgezeichnete Information angegeben ist, dann wird
bei Schritt 514 eine Bestimmung vorgenommen, ob das Datenelement
bewegt wurde. Falls bestimmt wird, dass das Datenelement nicht bewegt
wurde, wird bei Schritt 516 vermerkt, dass das Datenelement
gelöscht
wurde. Falls bestimmt wurde, dass das Daten element bewegt wurde,
dann wird bei Schritt 518 der neue Standort des Datenelementes
in der Bearbeitungsversion 50 vermerkt. Dann wird bei Schritt 520 eine
Bestimmung vorgenommen, ob das bewegte Datenelement auch bearbeitet
wurde. Falls die Bestimmung positiv ist, dann wird für das Datenelement
markiert, dass es bei Schritt 522 bewegt und bearbeitet
wurde.
-
Bei
Schritt 524 wird eine Bestimmung vorgenommen, ob noch weitere
durch Vergleichsdatei 70 identifizierte Datenelemente verbleiben,
die zu überprüfen sind.
Schritt 524 folgt auf Schritt 510, falls für das vorhergehende
Datenelement bestimmt wurde, dass es nicht verändert wurde. Schritt 524 folgt
auf Schritt 512, falls für das vorhergehende Datenelement
vermerkt wurde, dass es bearbeitet wurde. Schritt 524 folgt
auf Schritt 516, falls für das vorhergehende Datenelement
vermerkt wurde, dass es gelöscht
wurde. Schritt 524 folgt auf Schritt 520, falls
für das
vorhergehende Datenelement vermerkt wurde, dass es bewegt wurde.
Schritt 524 folgt auf Schritt 522, falls für das vorhergehende
Datenelement vermerkt wurde, dass es bewegt und bearbeitet wurde. Falls
bei Schritt 524 bestimmt wird, dass Datenelemente verbleiben,
die durch Vergleichsdatei 70 identifiziert sind, und dass
diese Datenelemente noch nicht überprüft wurden,
dann wird bei Schritt 526 das nächste Datenelement geliefert,
das durch Vergleichsdatei 70 identifiziert ist und das
zu überprüfen ist.
Für das
nächste
Datenelement wird das Verfahren wiederholt, beginnend mit Schritt 506.
-
Falls
bei Schritt 524 bestimmt wird, dass keine durch Vergleichsdatei 70 identifizierten
Datenelemente verbleiben, die zu überprüfen sind, wird bei Schritt 528 bestimmt,
falls irgendwelche Datenelemente in der Bearbeitungsversion 50 ungeprüft verbleiben.
Die ungeprüften
Datenelemente sind Bearbeitungsversions-Datenelemente, die als Ergebnis der Überprüfung der
Vergleichsdatei-Datenelemente bei Schritten 506 bis 524 nicht überprüft wurden. Falls
es keine ungeprüften
Datenelemente in der Bearbeitungsversion 50 gibt, ist das
Verfahren beendet. Ansonsten werden die verbleibenden Datenelemente in
der Bearbeitungsversion 50 bei Schritt 530 als überprüft markiert.
-
Bei
Schritt 532 wird bestimmt, ob ein ungeprüftes Datenelement
in der Bearbeitungsversion 50 eine Kopie ist. Falls die
Bestimmung positiv ist, dann wird bei Schritt 534 das Datenelement
als Kopie vermerkt. Bei Schritt 536 wird bestimmt, ob das
kopierte Datenelement von einem anderen Datenelement kopiert wurde,
das in der Bearbeitungsversion 50 neu erzeugt wurde.
-
Falls
die Bestimmung bei Schritt 536 negativ ist, wird bei Schritt 538 bestimmt,
ob das kopierte Datenelement auch bearbeitet wurde, nachdem es bei Schritt 538 erstellt
wurde. Falls die Bestimmung bei Schritt 538 positiv ist,
dann wird bei Schritt 540 das Datenelement als kopiert
und bearbeitet vermerkt.
-
Falls
die Bestimmung bei Schritt 536 positiv ist, dann wird das
Datenelement bei Schritt 542 als neu und kopiert markiert.
Mit anderen Worten wird beim Datenelement vermerkt, dass es von
einem anderen Datenelement kopiert wurde, das als Ursprungselement
erzeugt wurde, nachdem die Bearbeitungsversion 50 aus dem
Dateisystem 40 erzeugt wurde. Bei Schritt 544 erfolgt
eine Bestimmung, ob das neue und kopierte Datenelement auch bearbeitet wurde.
Falls die Bestimmung bei Schritt 544 positiv ist, dann
wird bei dem Datenelement vermerkt, dass es neu ist, kopiert und
bearbeitet wurde.
-
Falls
bei Schritt 532 bestimmt wird, dass es sich bei dem Datenelement
nicht um eine Kopie handelt, dann wird bei Schritt 548 für das Datenelement vermerkt,
dass es neu ist.
-
Bei
Schritt 554 wird bestimmt, ob irgendwelche Datenelemente,
die als ungeprüft
markiert sind, in der Bearbeitungsversion 50 verbleiben.
Schritt 544 folgt auf einen dieser Schritte: Falls die
Bestimmung bei Schritt 538 negativ ist, so dass für das Datenelement
vermerkt wurde, dass es lediglich kopiert wurde; Schritt 540,
falls bei dem Datenelement bestimmt wurde, dass es kopiert und bearbeitet
wurde; und Schritt 548, falls für das Datenelement bestimmt
wurde, dass es lediglich neu ist; falls die Bestimmung bei Schritt 544 negativ
ist, so dass für
das Datenelement bestimmt wurde, dass es neu ist und kopiert wurde; und
Schritt 546, falls für
das Datenelement bestimmt wurde, dass es neu ist, bearbeitet und
kopiert wurde. Falls bei Schritt 554 bestimmt wird, dass
Datenelemente, die nicht geprüft
wurden, in der Bearbeitungsversion 50 verbleiben, wird
bei Schritt 556 eine Iteration auf das nächste ungeprüfte Datenelement
vorgenommen. Dann wird das Verfahren für das nächste Datenelement wiederholt,
beginnend mit Schritt 532. Falls bei Schritt 554 bestimmt
wurde, dass keine ungeprüften
Datenelemente in der Bearbeitungsversion 50 verbleiben,
ist das Verfahren beendet.
-
Wie
durch eine Ausführungsform
von 5 dargestellt, kann eine Synchronisierungsoperation zehn
mögliche
Ergebnisse für
jedes Datenelement, das synchronisiert wird, erfassen. Für jedes
Datenelement kann bestimmt werden, dass es nicht verändert wurde,
seit es heruntergeladen wurde (Schritt 510). Andernfalls
kann für
jedes Datenelement, das synchronisiert wird, erfasst werden, dass
es ein Ergebnis von einer oder mehreren Operationen ist, die durch
einen Benutzer durchgeführt
wurden, nachdem die Bearbeitungsversion 50 erzeugt wurde.
Fünf primäre Operationen
werden erfasst: Bearbeiten (Schritt 512), Bewegen (Schritt 518),
Löschen (Schritt 516),
Neuerzeugen (Schritt 548) und Erzeugen einer Kopie (Schritt 534).
Außerdem
werden vier zusammengesetzte Operationen erfasst: Bewegen und Bearbeiten
(Schritt 522); Neuerzeugen und Kopieren (Schritt 542);
Neuerzeugen, Bearbeiten und Kopieren (Schritt 546); und
Kopieren und Bearbeiten (Schritt 540).
-
Bei
einer Ausführungsform
kann ein spezieller Fall auftreten, bei dem ein Bearbeitungsversions-Datenelement
gelöscht
wird, und dann mit gleichem Namen und gleicher Standortinformation
neu erzeugt wird. Ein derartiges Datenelement könnte als neues Datenelement,
anstatt als ein bewegtes Datenelement identifiziert werden, falls
Schritt 506 eine Überprüfung für diesen
speziellen Fall beinhaltet. Speziell kann eine Identifikation, wie
beispielsweise der Erzeugungszeitwert des neuerzeugten Datenelementes,
verwendet werden, um zu überprüfen, dass das
Datenelement nicht einem Löschen
und Neuerzeugen bei Schritt 506 unterzogen wurde.
-
6 bis 9 stellen
Ablaufdiagramme dar, die zusätzliche
Details zur Erfassung von in 5 durchgeführten Operationen
liefern, gemäß Ausführungsformen
der Erfindung. 6 ist ein Verfahren, um zu bestimmen,
ob ein Datenelement bewegt oder gelöscht wurde. 6 kann
Schritten 514 bis 518 von 5 entsprechen,
gemäß einer
Ausführungsform
der Erfindung.
-
Bei
Schritt 610 wird ein erster Zeitwert für jedes Datenelement in der
Bearbeitungsversion 50 aufgezeichnet, wenn die Bearbeitungsversion 50 bei einem
ersten Endgerät 10 erstellt
wird. Bei einer Ausführungsform
kann der erste Zeitwert einer Erzeugungszeit eines Datenelementes
entsprechen. Die Erzeugungszeit ist eine Eigenschaft, die Datenelementen
bei bestimmten Betriebssystemen, wie beispielsweise WINDOWS, zugeteilt
wird. Die Erzeugungszeit kann für
ein beim ersten Endgerät 10 erzeugtes
Datenelement einen Zeitwert aufzeichnen, zu dem dieses Datenelement
von einem anderen Computer heruntergeladen wurde. Somit kann, wenn ein
Datenelement der Bearbeitungsversion 50 vom Dateisystem 40 heruntergeladen
wird, das erste Endgerät 10 die
Erzeugungszeit dieses Datenelementes aufzeichnen. Die Erzeugungszeit
kann bis zu einer Tausendstel Sekunde genau sein, oder um einige Größenordnungen
größer.
-
Bei
Schritt 620 wird eine Standortinformation für jedes
Datenelement erzeugt, wenn die Bearbeitungsversion 50 erstellt
wird. Die Standortinformation kann Segmenten von Dateipfaden oder
Namen entsprechen, die verwendet werden können, um einen Standort eines
Datenelementes entweder im Dateisystem 40 oder in der Bearbeitungsversion 50 anzugeben.
Sowohl Schritt 610 als auch 620 erfolgen bei t
= 0, entsprechend dem Zeitpunkt der Erstellung der Bearbeitungsversion 50,
und bevor irgendwelche Operationen durchgeführt werden. Der erste Zeitwert und
die anfängliche
Standortinformation kann in der Vergleichsdatei 70 lokalisiert
werden.
-
Nach
Schritt 620 geht der Ablauf weiter zu einem Punkt, bei
dem eine Synchronisierungsaufforderung erfolgt, oder zu t = f. Bei
Schritt 630 wird bestimmt, ob die Standortinformation,
die zu Anfang (bei t = 0) aufgezeichnet wurde, den Standort des
Datenelementes in der Bearbeitungsversion 50 bei t = f angibt.
Falls die Bestimmung bei Schritt 630 positiv ist, dann
wird bei Schritt 640 für
das Datenelement aufgezeichnet, dass es nicht bewegt wurde. Falls
die Bestimmung negativ ist, folgt Schritt 650. Bei Schritt 650 wird
bestimmt, ob irgendein Datenelement in der Bearbeitungsversion 50 zum
Zeitpunkt t = f einen entsprechenden ersten Zeitwert hat, der mit
dem Zeitwert übereinstimmt,
welcher für
das nicht-lokalisierte Datenelement bei Schritt 610 aufgezeichnet
wurde. Bei einer weiteren Ausführungsform
können
weitere Datenelemente in der Bearbeitungsversion 50 auf eine
Erzeugungszeit hin überprüft werden,
die mit der Erzeugungszeit für
das nicht-lokalisierte
Datenelement übereinstimmt.
-
Aufgrund
der Tatsache, dass die Erzeugungszeit bis zu einer Tausendstel oder
sogar einer Millionstel Sekunde realisiert werden kann, kann bei einem
weiteren Datenelement in der Bearbeitungsversion 50, das
die gleiche Erzeugungszeit wie das fehlende Datenelement hat, angenommen
werden, dass es sich um das nicht-lokalisierte Datenelement an einem
neuen Standort handelt. Falls die Bestimmung bei Schritt 650 positiv
ist, dann wird für
das Datenelement, welches den gleichen Zeitwert hat, aufgezeichnet,
dass es bei Schritt 660 bewegt wurde. Falls bei Schritt 650 bestimmt
wird, dass kein Datenelement in der Bearbeitungsversion 50 die
Erzeugungszeit des fehlenden Datenelementes hat, wird bei Schritt 670 vermerkt,
dass das Datenelement gelöscht
wurde.
-
7 ist
ein Ablaufdiagramm, um zu bestimmen, ob irgendein Datenelement in
der Bearbeitungsversion 50 einer Bearbeitungsoperation
unterzogen wurde, gemäß einer
Ausführungsform
der Erfindung. Ein in 7 dargestelltes Verfahren kann Schritten 508, 510 und 512 von 5 entsprechen. Bei
Schritt 710 wird ein erster Zeitwert in der Bearbeitungsversion 50 identifiziert.
Der Zeitwert kann dem Erzeugungszeitwert des Datenelementes entsprechen.
Bei Schritt 720 wird ein zweiter Zeitwert für dasselbe
Datenelement identifiziert, entsprechend der Modifikationszeit des
Datenelementes. Wie erwähnt,
sind sowohl die Erzeugungszeit als auch die Modifikationszeit Zeitwerte,
die durch Betriebssysteme wie beispielsweise WINDOWS automatisch
aufgezeichnet werden. Alle beide Zeitwerte können bis auf eine Tausendstel
Sekunde oder sogar bis zu einer viel größeren Größenordnung genau sein. Somit ist
für die
in 7 dargestellte Ausführungsform anzunehmen, dass
sowohl die Erzeugungszeit als auch die Modifikationszeiten für dieses
Datenelement eindeutig sind.
-
Bei
Schritt 730 wird bestimmt, ob die Modifikationszeit unterschiedlich
zur Erzeugungszeit ist. Wenn ein Datenelement erzeugt wird, sei
es als Ursprungsversion, Kopie oder als heruntergeladenes Datenelement,
sieht eine Ausführungsform
vor, dass die Erzeugungszeit und die Modifikationszeit gleich sind.
Somit wird, falls die Erzeugungszeit und die Modifikationszeiten
unterschiedlich sind, bei Schritt 740 vermerkt, dass das
Datenelement bearbeitet wurde. Ansonsten wird bei Schritt 750 vermerkt,
dass das Datenelement nicht bearbeitet wurde.
-
Es
ist möglich,
dass die Erzeugungszeit und die Modifikationszeit zu Anfang nicht
genau gleich sind, sondern innerhalb eines Bereiches zueinander liegen.
Bei einer Ausführungsform
kann eine Bestimmung vorgenommen werden, um zu überprüfen, ob die Modifikationszeit
außerhalb
des Bereiches der Erzeugungszeit liegt.
-
8 ist
ein Verfahren zum Identifizieren der zusammengesetzten Operation
von Bearbeiten und Bewegen, gemäß einer
Ausführungsform
der Erfindung. Bei einer Implementierung kann das in 8 dargestellte
Verfahren als Unterschritte für
Schritte 514, 518, 520 und 522 von 5 verwendet
werden.
-
Bei
Schritt 810 werden mehrere Zeitwerte für jedes Datenelement in der
Bearbeitungsversion 50 aufgezeichnet, wenn die Bearbeitungsversion
vom Dateisystem 40 heruntergeladen wird. Wie in anderen
Ausführungsformen
angegeben, ent spricht ein erster der aufgezeichneten Zeitwerte einer
Erzeugungszeit. Die Erzeugungszeit kann durch das Betriebssystem
des Computers unter Verwendung der Bearbeitungsversion 50 automatisch
erzeugt werden. Die Erzeugungszeit und die Modifikationszeit können jeweils
in der Vergleichsdatei 70 aufgezeichnet und einem entsprechenden
Datenelement zugeordnet werden.
-
Bei
Schritt 820 wird Standortinformation für jedes Datenelement aufgezeichnet,
wenn die Bearbeitungsversion 50 erstellt wird. Die Standortinformation
kann Segmente von Dateipfaden beinhalten, die das Datenelement in
der Bearbeitungsversion 50 lokalisieren können. Die
Standortinformation kann auch einen Namen des Datenelementes beinhalten. Die
anfängliche
Standortinformation für
jedes Datenelement der Bearbeitungsversion kann in der Vergleichsdatei 70 aufgezeichnet
werden.
-
Bei
Schritt 830 wird bestimmt, ob mit einer zu Anfang aufgezeichneten
Standortinformation ein entsprechendes Datenelement in der Bearbeitungsversion 50 lokalisiert
werden kann. Falls die Standortinformation das entsprechende Datenelement
lokalisiert (= den Standort angibt), dann wird für das Datenelement aufgezeichnet,
dass es bei Schritt 840 nicht bewegt wurde. Falls die zu
Anfang aufgezeichnete Standortinformation das entsprechende Datenelement
nicht lokalisiert, dann wird bei Schritt 850 eine weitere
Bestimmung vorgenommen. Bei Schritt 850 wird bestimmt,
ob ein weiteres Datenelement in der Bearbeitungsversion 50 die
gleiche Erzeugungszeit wie das nicht-lokalisierte Datenelement hat.
Falls diese Bestimmung negativ ist, dann wird bei Schritt 860 für das nicht-lokalisierte
Datenelement vermerkt, dass es gelöscht wurde.
-
Andernfalls
wird bei Schritt 870 bestimmt, ob die Modifikationszeit
mit der Erzeugungszeit für
dieses Datenelement übereinstimmt.
Falls die Bestimmung bei Schritt 870 positiv ist, dann
wird für
das Datenelement vermerkt, dass es bei Schritt 880 lediglich bewegt
wurde. Falls die Bestimmung bei Schritt 870 negativ ist,
dann wird für
das Datenelement vermerkt, dass es bei Schritt 890 bewegt
und bearbeitet wurde.
-
9 stellt
einen Prozess dar, um eine oder mehrere Operationen bei den nicht-geprüften Datenelementen
in der Bearbeitungsversion 50 zu erfassen, gemäß einer
Ausführungsform
der Erfindung. Bei einem in 9 dargestellten
Prozess können
die bei den nicht-geprüften
Datenelementen durchgeführten
Operationen mindestens zwei Operationen aus einer Gruppe beinhalten,
die aus Neuerzeugen, Kopieren und Bearbeiten besteht. Bei einer
Ausführungsform
kann der in 9 dargestellte Prozess Unterschritte
der Schritte 532 bis 546 in 5 bilden.
-
Die
Schritte 910 bis 980 werden bei einzelnen ungeprüften Datenelementen
in der Bearbeitungsversion 50 durchgeführt, und zwar zum Zeitpunkt
einer Aufforderung zur Synchronisierung. Bei Schritten 910 bis 980 wird
angenommen, dass bestimmte andere Schritte bereits durchgeführt werden, um
weitere Operationen zu erfassen, die möglicherweise bei der Bearbeitungsversion 50 durchgeführt wurden.
Speziell werden Schritte 910 bis 980 bei nicht-geprüften Datenelementen
in der Bearbeitungsversion 50 durchgeführt. Wie bei 5 dargestellt,
handelt es sich bei ungeprüften
Datenelementen um Datenelemente, die übriggeblieben sind, nachdem
durch die Vergleichsdatei 70 identifizierte Datenelemente
mit Datenelementen der Bearbeitungsversion 50 verglichen
wurden. Bei den ungeprüften
Datenelementen kann man daher annehmen, dass sie nach der Erstellung
der Bearbeitungsversion 50 erzeugt wurden. Somit sind ungeprüfte Datenelemente
eine Kopie und/oder ein neues Datenelement. Möglicherweise wurden die ungeprüften Datenelemente
nach ihrer Erzeugung auch bearbeitet.
-
Bei
Schritt 910 werden Zeitwerte für jedes ungeprüfte Datenelement
in der Bearbeitungsversion aufgezeichnet. Für Datenelemente, die im Anschluss an
das Herunterladen der Bearbeitungsversion 50 erzeugt wurden,
kann die Bearbeitungsversion dem Zeitpunkt entsprechen, bei dem
ein Benutzer dieses Datenelement erzeugt hat und es mit heruntergeladenen
Datenelementen in der Bearbeitungsversion 50 gespeichert
hat. Die Erzeugungszeit sollte jedes ungeprüfte Datenelement in der Bearbeitungsversion 50 mit
einer eindeutigen Kennung versehen. Außerdem wird die Modifikationszeit
für jedes
Datenelement in der Bearbeitungsversion 50 aufgezeichnet. Die
Modifikationszeit wird jedesmal geändert, wenn das entsprechende
Datenelement bearbeitet wird. Jedoch sollte, falls das Datenelement
nicht bearbeitet wird, die Modifikationszeit dieselbe wie die Erzeugungszeit
für dieses
Datenelement, oder sehr nahe an dieser sein. Bei einer Ausführungsform
kann angenommen werden, dass die Erzeugungszeit für jedes
Datenelement in der Bearbeitungsversion 50 mit der Erzeugungszeit übereinstimmt,
die für
dieses Datenelement in der Vergleichsdatei 70 gespeichert wurde.
-
Bei
Schritt 920 wird bestimmt, ob die Modifikationszeit für jedes
ungeprüfte
Datenelement mit der Modifikationszeit eines der in Vergleichsdatei 70 gespeicherten
Datenelemente übereinstimmt.
Eine Ausführungsform
sieht vor, dass eine Modifikationszeit einer Kopie die gleiche wie
die Modifikationszeit von deren Ursprungselement ist. Dieses Merkmal kann
mittels einer Anwendung implementiert sein, die auf dem ersten Endgerät 10 arbeitet.
Bei einer Ausführungsform
läuft auf
dem ersten Endgerät 10 ein
Betriebssystem, das dieses Attribut oder Merkmal beinhaltet. Ein
Beispiel für
ein derartiges Betriebssystem ist ein WINDOWS-Betriebssystem.
-
Falls
die Bestimmung positiv ist, sieht Schritt 930 vor, dass
für das
Datenelement vermerkt wird dass es als Kopie von einem anderen Datenelement erzeugt
wurde, das ursprünglich
von Dateisystem 40 heruntergeladen wurde. Für das Datenelement
kann angenommen werden, dass es anschließend nicht bearbeitet wurde,
da durch die Bearbeitungsoperation die Modifikationszeit geändert wird.
Falls die Bestimmung negativ ist, dann folgt Schritt 940.
-
Bei
Schritt 940 wird bestimmt, ob die Modifikationszeit des
nicht-geprüften
Datenelementes vor der Erzeugungszeit liegt. Falls die Modifikationszeit nach
dem Erzeugungszeitpunkt liegt, wird bei Schritt 950 vermerkt,
dass das Daten element eine Kopie eines anderen Datenelementes ist.
Und zwar deshalb, weil eine Kopie eines anderen Datenelementes die Modifikationszeit
des Ursprungselementes behält, ihm
jedoch eine neue Erzeugungszeit zugewiesen wird, wenn es erzeugt
wird. Schritt 940 kann nicht verwendet werden, um zu erfassen,
ob ein Datenelement, das als Kopie erzeugt wurde, anschließend bearbeitet
wurde, da dies die Modifikationszeit so ändern würde, dass sie nach der Erzeugungszeit
liegt.
-
Falls
die Modifikationszeit nach der Erzeugungszeit liegt, wird bei Schritt 960 bestimmt,
ob die Modifikationszeit mit der Erzeugungszeit übereinstimmt. Bei Erzeugung
eines Datenelementes, entweder als neues Datenelement oder als Kopie
eines anderen Datenelementes, können
die Modifikationszeit und die Erzeugungszeit genau gleich sein,
oder geringfügig
unterschiedlich, abhängig
von der Konfiguration des Betriebssystems oder einer weiteren Anwendung,
die auf die Bearbeitungsversion 50 Einfluss haben. Falls
die Bestimmung bei Schritt 960 positiv ist, sieht Schritt 970 vor,
dass das Datenelement als Ergebnis einer Operation zum Erzeugen
eines neuen Datenelementes erzeugt wird.
-
Falls
die Bestimmung von Schritt 960 negativ ist, bestimmt Schritt 980,
dass das Datenelement bearbeitet wurde, neu ist und möglicherweise
auch ein Kopie ist. Somit bietet Schritt 980 zwei Möglichkeiten an.
Dabei können
die Modifikationszeit und die Erzeugungszeit nicht verwendet werden,
um zwischen diesen zwei Möglichkeiten
zu unterscheiden. Um diese zwei Möglichkeiten zu unterscheiden,
kann bei einer Ausführungsform
bestimmt werden, dass alle bei Schritt 980 identifizierten
Datenelemente auch einen oder mehreren Schritten zum Inhaltsabgleich
unterzogen werden. Ein Algorithmus kann verwendet werden, um Inhalte
aller Dateien bei Schritt 980 mit Inhalten anderer Dateien
zu vergleichen, die als neu in der Bearbeitungsversion 50 identifiziert
sind, zum Zweck einer Bestimmung, ob eine Datei neu ist und bearbeitet
wurde, oder neu ist und kopiert und bearbeitet wurde. Die Prämisse kann
dabei sein, dass Letzteres ähnliche
Inhalte wie ein anderes Datenelement hat, das als neu identifiziert
wurde.
-
E. Benutzerschnittstelle
-
10 stellt
eine Benutzerschnittstelle 1000 zur Verwendung mit einer
Ausführungsform
der Erfindung dar. Die Benutzerschnittstelle 1000 ermöglicht Benutzern,
zwischen denselben Datenelementen auszuwählen, die auf unterschiedlichen
Computern geändert
wurden. Beispielsweise kann, mit Bezug auf 1, ein Benutzer
des ersten Endgerätes 10 Operationen
bei Bearbeitungsversions-Datenelementen
durchführen,
die vom Dateisystem 40 heruntergeladen wurden. Das Dateisystem 40 kann
gemeinsam genutzt sein, so dass andere Benutzer auf dieses über das
Netz zugreifen können.
Die anderen Benutzer können
Operationen bei einem Datenelement im Dateisystem 40 durchführen, hingegen
kann ein Benutzer des ersten Endgerätes 10 Operationen beim
entsprechenden Bearbeitungsversions-Datenelement durchführen. Wenn
die Synchronisierungsaufforderung erfolgt, kann ein Konflikt auftreten.
Das Dateisystem-Datenelement, das dem geänderten Datenelement der Bearbeitungsversion
entspricht, wurde durch einen anderen Benutzer geändert, der auf
das Dateisystem 40 zugegriffen hat.
-
Bei
einer Ausführungsform
der Erfindung wird dem Benutzer ermöglicht, die Synchronisierungsaufforderung
vorzunehmen, um zwischen Datenelementen im Dateisystem 40 und
Datenelementen in der entsprechenden Bearbeitungsversion 50 auszuwählen. Eine
Ausführungsform
gestattet dem Benutzer auch, eine Aufforderung vorzunehmen, auszuwählen, wie
bei Konflikten zu entscheiden ist, die zwischen durch andere Computer
aktualisierten Datenelementen des Dateisystems und Datenelementen
der Bearbeitungsversion auf dem die Synchronisierungsaufforderung
durchführenden
Computer auftreten.
-
Die
Benutzerschnittstelle 1000 beinhaltet eine erste Spalte 1110 und
eine zweite Spalte 1120. Die erste Spalte liefert Information
betreffend Delta-Datenelemente auf dem ersten Computer 10.
Die zweite Spalte 1120 liefert Information betreffend Delta-Datenelemente
des Dateisystems 40. Die Delta-Datenelemente des Datei systems 40 können durch
Vergleichen der aktualisierten Dateisysteme mit der Vergleichsdatei 70 identifiziert
werden. Ein erster Abschnitt 1125 der ersten Spalte 1110 identifiziert
die Delta-Datenelemente der Bearbeitungsversion 50. Ein
erster Abschnitt der zweiten Spalte 1120 identifiziert
die Delta-Datenelemente des Dateisystems 40, die durch
andere Benutzer aktualisiert wurden. Ein zweites Segment 1118 der
ersten Spalte 1110 identifiziert die Operation oder äquivalente
zusammengesetzte Operationen, die beim Delta-Datenelement der Bearbeitungsversion 50 durchgeführt wurden.
In ähnlicher
Weise identifiziert ein zweites Segment 1128 der zweiten
Spalte 1120 die Operation oder äquivalente zusammengesetzte
Operation, die bei dem Delta-Datenelement des aktualisierten Dateisystems
durchgeführt
wird. Bei der/den Operation(en), die im zweiten Segment 1128 aufgelistet ist/sind,
wird angenommen, dass sie durch andere Benutzer durchgeführt wurden,
die auf das gemeinsam genutzte Dateisystem 40 zugreifen.
-
Für jedes
Delta-Datenelement, das in der ersten Spalte 1110 und der
zweiten Spalte 1120 aufgelistet ist, kann der Benutzer
auswählen,
die Änderungen
zu behalten oder das Datenelement unverändert im Dateisystem 40 beizubehalten.
Falls das Delta-Datenelement, das in der ersten Spalte 1110 aufgelistet
ist, mit einem Delta-Datenelement in der zweiten Spalte 1120 in
Konflikt kommt, kann der Benutzer bestimmen, wie der Konflikt zu
lösen ist.
Beispielsweise kann ein Datenelement im Dateisystem 40 auf
die Bearbeitungsversion 50 heruntergeladen werden, und
anschließend
an diesem Operationen in der Bearbeitungsversion 50 vorgenommen
werden. Auf dasselbe heruntergeladene Datenelement kann durch einen
anderen Computer zugegriffen werden und in unterschiedlicher Weise
Operationen an diesem vorgenommen werden. Wenn die Synchronisierungsaufforderung
erfolgt, wird dem Computer, der die Aufforderung durchführt, ein
Konflikt aufgezeigt. Dem Benutzer dieses Computers kann die Fähigkeit gegeben
werden, den Konflikt zu lösen.
Der Benutzer kann wählen,
welches Delta-Datenelement
behalten werden soll, und dieses Datenelement verwenden, wenn eine
Abstimmung mit dem Dateisystem 40 vorgenommen wird.
-
F. Hardware-Beschreibung
-
11 ist
ein Blockdiagramm, das ein Computersystem 1100 darstellt,
auf dem eine Ausführungsform
der Erfindung implementiert werden kann. Das Computersystem 1100 beinhaltet
einen Bus 1102 oder einen anderen Kommunikationsmechanismus
zum Weiterleiten von Information, und einem mit dem Bus 1102 verbundenen
Prozessor 1104 zum Verarbeiten von Informationen. Das Computersystem 1100 beinhaltet
auch einen Hauptspeicher 1106, wie beispielsweise einen
RAM (Direktzugriffsspeicher) oder eine andere dynamische Speichervorrichtung,
die mit dem Bus 1102 verbunden ist, um Informationen und
durch den Prozessor 1104 auszuführende Anweisungen zu speichern.
Der Hauptspeicher 1106 kann auch zum Speichern von temporären Variablen
oder anderen Zwischeninformationen während eines Ausführens von
durch den Prozessor 1104 auszuführenden Anweisungen verwendet
werden. Das Computersystem 1100 beinhaltet weiter einen
ROM (Nur-Lese-Speicher) 1108 oder eine andere mit dem Bus 1102 verbundene
statische Speichervorrichtung zum Speichern statischer Informationen und
Anweisungen für
den Prozessor 1104. Eine Speichervorrichtung 1110,
wie beispielsweise eine Magnetplatte oder eine optische Platte,
ist vorgesehen und mit dem Bus 1102 verbunden, um Informationen und
Anweisungen zu speichern.
-
Das
Computersystem 1100 kann über einen Bus 1102 mit
einer Anzeigeeinrichtung 1112 wie beispielsweise einer
Kathodenstrahlröhre
(CRT) verbunden sein, um einem Computerbenutzer Informationen anzuzeigen.
Eine Eingabevorrichtung 1114, die alphanumerische und weitere
Tasten beinhaltet, ist mit dem Bus 1102 verbunden, um Informationen
und ausgewählte
Befehle an den Prozessor 1104 zu übermitteln. Ein weiterer Typ
vom Benutzereingabevorrichtung ist eine Cursorsteuerung 1116,
wie beispielsweise ein Maus, ein Trackball oder Cursor-Richtungstasten,
um Richtungsinformationen und ausgewählte Befehle an den Prozessor 1104 zu übermitteln
und die Cursorbewegung auf der Anzeigevorrichtung 1112 zu
steuern. Diese Eingabevorrichtung weist typischerweise zwei Freiheitsgrade
in zwei Achsen auf, einer ersten Achse (z. B. x) und einer zweiten
Achse (z. B. y), was ermöglicht,
dass die Vorrichtung Positionen in einer Ebene angeben kann.
-
Die
Erfindung betrifft die Verwendung eines Computersystems 1100 zum
Implementieren der hier beschriebenen Verfahren. Gemäß einer
Ausführungsform
der Erfindung werden diese Verfahren durch ein Computersystem 1100 ausgeführt, und zwar
reagierend darauf, dass Prozessor 1104 eine oder mehrere
Sequenzen von einer oder mehreren im Hauptspeicher 1106 enthaltenen
Anweisungen ausführt.
Derartige Anweisungen können
in den Hauptspeicher 1106 von einem weiteren computerlesbaren
Medium, wie beispielsweise einer Speichervorrichtung 1110,
eingelesen werden. Ein Ausführen der
im Hauptspeicher 1106 enthaltenen Anweisungssequenzen bewirkt,
dass der Prozessor 1104 die hier beschriebenen Prozessschritte
durchführt.
Bei alternativen Ausführungsformen
kann eine fest verdrahtete Schaltungsanordnung verwendet werden,
und zwar anstelle von Softwareanweisungen oder in Kombination mit
diesen, um die Erfindung zu implementieren. Daher sind die Ausführungsformen
der Erfindung nicht auf irgendeine spezielle Kombination aus Hardware-Schaltungsanordnung
und Software eingeschränkt.
-
Der
Begriff "computerlesbares
Medium", wie hier
verwendet, betrifft ein beliebiges Medium, das daran beteiligt ist,
Anweisungen an den Prozessor 1104 zum Ausführen zu
liefern. Ein derartiges Medium kann viele Formen annehmen, einschließlich, jedoch
nicht eingeschränkt
auf nichtflüchtige
Medien, flüchtige
Medien und Übertragungsmedien.
Nichtflüchtige
Medien beinhalten beispielsweise optische oder magnetische Platten,
wie beispielsweise die Speichervorrichtung 1110. Flüchtige Medien
beinhalten einen dynamischen Speicher, wie beispielsweise den Hauptspeicher 1106. Übertragungsmedien
beinhalten Koaxialkabel, Kupferdraht- und Glasfaserkabel, einschließlich der
Drähte,
die den Bus 1102 beinhalten. Übertragungsmedien können auch
die Form von akustischen Wellen oder Lichtwellen annehmen, beispielsweise
solche, die während
Radiowellen- und Infrarot-Datenkommunikationen erzeugt werden.
-
Übliche Formen
vom computerlesbaren Medien beinhalten beispielsweise eine Floppy-Disk, eine
Diskette, eine Festplatte, ein Magnetband oder ein beliebiges anderes
magnetisches Medium, eine CD-ROM, ein beliebiges anderes optisches
Medium, Lochkarten, Papierband, ein beliebiges anderes physisches
Medium mit Lochmustern, ein RAM, ein PROM und ein EPROM, ein FLASH-EPROM,
einen beliebigen anderen Speicherchip oder eine -kassette, eine
Trägerwelle
wie nachfolgend beschrieben, oder ein beliebiges anderes Medium,
von dem ein Computer lesen kann.
-
Verschiedene
Formen von computerlesbaren Medien können daran beteiligt sein,
eine oder mehrere Sequenzen von einer oder mehreren Anweisungen
zum Prozessor 1104 zur Ausführung zu transportieren. Beispielsweise
können
sich die Anweisungen zu Anfang auf einer Magnetscheibe eines entfernt
angeordneten Computers befinden. Der entfernt angeordnete Computer
kann die Anweisungen in seinen dynamischen Speicher laden und die
Anweisungen über
eine Telefonleitung unter Verwendung eines Modems senden. Ein Modem,
das sich lokal beim Computersystem 1100 befindet, kann
die auf der Telefonleitung befindlichen Daten empfangen und eine
Infrarot-Übertragungseinrichtung
verwenden, um die Daten in ein Infrarotsignal umzuwandeln. Eine
Infrarot-Erfassungseinrichtung kann die im Infrarotsignal transportierten
Daten empfangen, und eine geeignete Schaltungsanordnung kann die
Daten auf dem Bus 1102 platzieren. Der Bus 1102 transportiert
die Daten zum Hauptspeicher 1106, von dem aus der Prozessor 1104 die
Anweisungen ausliest und ausführt.
Die vom Hauptspeicher 1106 empfangenen Anweisungen können optional
in der Speichervorrichtung 1110 gespeichert werden, und
zwar entweder vor oder nach dem Ausführen durch den Prozessor 1104.
-
Das
Computersystem 1100 beinhaltet auch eine Kommunikationsschnittstelle 1118,
die mit dem Bus 1102 verbunden ist. Die Kommunikationsschnittstelle 1118 sorgt
für eine
Zweiweg-Datenkommunikationsverbindung zu einem Netzwerk- Verbindungsglied 1120,
das mit einem lokalen Netz 1122 verbunden ist. Beispielsweise
kann die Kommunikationsschnittstelle 1118 eine ISDN-(Integrated
Services Digital Network)-Karte oder ein Modem sein, um eine Datenkommunikationsverbindung
zu einem entsprechenden Typ von Telefonleitung bereitzustellen.
Als weiteres Beispiel kann die Kommunikationsschnittstelle 1118 eine
LAN-(Local Area Network)-Karte sein, um eine Datenkommunikationsverbindung
zu einem kompatiblen LAN bereitzustellen. Drahtlose Verkehrsverbindungen
können
auch implementiert sein. Bei jeder derartigen Implementierung sendet und
empfängt
die Kommunikationsschnittstelle 1118 elektrische, elektromagnetische
oder optische Signale, welche digitale Datenströme transportieren, die verschiedene
Typen von Information repräsentieren.
-
Das
Netzwerk-Verbindungsglied 1120 sorgt typischerweise für eine Datenkommunikation über eines
oder mehrere Netze zu anderen Datenvorrichtungen. Beispielsweise
kann das Netzwerk-Verbindungsglied 1120 eine Verbindung über ein
lokales Netz 1122 zu einem Host-Computer 1124 oder
zu einer Datenanlage bereitstellen, die durch einen Internetdienstanbieter
(ISP) 1126 betrieben wird. Der ISP 1126 stellt
seinerseits Datenkommunikationsdienste über das weltweite Paketdaten-Kommunikationsnetz bereit,
das heutzutage allgemein als "Internet" 1128 bezeichnet
wird. Das lokale Netz 1122 und das Internet 1128 verwenden
beide elektrische, elektromagnetische oder optische Signale, welche
digitale Datenströme
transportieren. Die über
die verschiedenen Netzwerke übertragenen
Signale, und die beim Netzwerk-Verbindungsglied 1120 und über die
Kommunikationsschnittstelle 1118 übertragenen Signale, welche
die digitalen Signale vom Computersystem 1100 weg und zu
diesem hin transportieren, sind beispielhafte Formen von die Informationen
transportierenden Trägerwellen.
-
Das
Computersystem 1100 kann Nachrichten senden und Daten,
einschließlich
Programmcode empfangen, und zwar über das/die Netzwerk(e), das Netzwerk-Verbindungsglied 1120 und
die Kommunikationsschnittstelle 1118. Beim Beispiel des
Internet könnte
ein Server 1130 einen angeforderten Code für ein Anwen dungsprogramm über das
Internet 1128, den ISP 1126, das lokale Netz 1122 und
die Kommunikationsschnittstelle 1118 übertragen.
-
Der
empfangene Code kann durch den Prozessor 1104 bei seinem
Empfang ausgeführt
werden, und/oder in der Speichervorrichtung 1110 oder einem anderen
nichtflüchtigen
Speicher zur späteren
Ausführung
gespeichert werden. Auf diese Weise kann das Computersystem 1100 Anwendungscode
in Form einer Trägerwelle
erhalten.
-
G. Alternative Ausführungsformen
-
Zwar
beschreiben hier dargelegte Ausführungsformen
(siehe z. B. 1) Abstimmungsinformation, die
in Form von Metadaten-Information vorliegt, jedoch können bei
weiteren Ausführungsformen ein
Teil oder die Gesamtheit des Inhaltes von Datenelementen im ersten
Abschnitt 46 (1) verwendet werden, um Änderungen
an Datenelementen der Bearbeitungsversion 50 (1)
zu identifizieren. Insbesondere kann ein Inhaltsabgleich verwendet
werden, um zu bestimmen, ob ein Datenelement von einem anderen Datenelement
kopiert wurde. Ein intelligenter Algorithmus kann verwendet werden,
um Ähnlichkeiten
zwischen Inhalten von Datenelementen zu erfassen, und zwar unter
Verwendung der Annahme, dass Datenelemente mit spezifischen Typen
von Ähnlichkeiten
Kopien voneinander sind.
-
Ein
Inhaltsabgleich kann auch als zusätzlicher Schritt bei dem mit
Bezug auf 9 beschriebenen Prozess verwendet
werden. Beispielsweise kann es, wenn eine äquivalente Operation erfasst
wird, wie durch Schritt 970 dargestellt, nicht möglich sein,
zu bestimmen, ob das Datenelement neu war, bearbeitet wurde und
auch kopiert wurde. Ein Inhaltsabgleich kann erforderlich sein,
um zu erfassen, ob ein Datenelement eine bearbeitete Kopie eines
anderen Datenelements ist, das neu war.
-
Eine
weitere Verwendung für
einen Inhaltsabgleich besteht in einer Abwendung eines "Gleichstands", falls einer oder
beide Zeitwerte eines Datenelementes genau gleich wie bei einem
anderen Datenelement sind. Betrachtet man die Wertigkeit der Stellen
(d. h. eine Millionstel Sekunde) der Zeitwerte, die bei verbreiteten
Betriebssystemen, wie beispielsweise WINDOWS, angewandt werden,
ist die Wahrscheinlichkeit gering, dass zwei Datenelemente genau
die gleiche Erzeugungszeit oder Modifikationszeiten haben. Jedoch
wird, falls es eine genaue Übereinstimmung
zwischen Zeitwerten unterschiedlicher Datenelemente gibt, bei Ausführungsformen
der Erfindung ein Inhaltsabgleich ermöglicht, um zwischen den zwei
Datenelementen zu unterscheiden.
-
Zwar
wurden Ausführungsformen
der Erfindung zum Synchronisieren von Dateien beschrieben, die auf
unterschiedlichen Computern gehandhabt werden, es sei jedoch angemerkt,
dass weitere Ausführungsformen
auf eigenständige
oder Stand-alone Computersysteme angewandt werden können. Beispielsweise
besteht eine Anwendung für
eine Ausführungsform
der Erfindung darin, eine einzige Datei, die mehrere Einträge enthält, mit
einer Sicherungsdatei zu synchronisieren, die als Archiv erzeugt
wurde. Es kann keine Interaktion mit anderen Computersystemen erforderlich
sein.
-
Bei
einigen Anwendungen kann es nützlicher sein,
bestimmte äquivalente
zusammengesetzte Operationen nicht zu erfassen, sondern vielmehr
anzunehmen, dass einfachere Operationen bei einem Datenelement durchgeführt wurden.
Alternativ können
die äquivalenten
zusammengesetzten Operationen erfasst werden, jedoch können andere
Operationen verwendet werden, um das Dateisystem 40 zu aktualisieren.
Beispielsweise kann eine Ausführungsform
der Erfindung die äquivalente
zusammengesetzte Operation von (Nx)Cy als Nx und Ny behandeln. Somit
wird während
einer Synchronisierung das Dateisystem 40 angewiesen, zwei
neue Datenelemente hinzuzufügen.
In ähnlicher
Weise kann die zusammengesetzte Operation von E(xCy) als Ny behandelt
werden, wobei das Dateisystem 40 angewiesen werden kann,
eine einzige neue Datei zu erzeugen, anstatt X auf Y zu kopieren
und diese dann zu bearbeiten.
-
H. Schlussbemerkung
-
Bei
der vorhergehenden Beschreibung wurde die Erfindung mit Bezug auf
spezielle Ausführungsformen
von dieser beschrieben. Es versteht sich jedoch, dass verschiedene
Modifikationen und Änderungen
an dieser vorgenommen werden können,
ohne vom Schutzumfang der Erfindung abzuweichen, der durch die Ansprüche definiert
ist. Die Beschreibung und die Zeichnungen sind demgemäß beispielhaft
und nicht einschränkend
zu verstehen.