DE60224030T2 - Verwaltungs- und synchronisierungsapplikation für netzwerkdateisystem - Google Patents

Verwaltungs- und synchronisierungsapplikation für netzwerkdateisystem Download PDF

Info

Publication number
DE60224030T2
DE60224030T2 DE60224030T DE60224030T DE60224030T2 DE 60224030 T2 DE60224030 T2 DE 60224030T2 DE 60224030 T DE60224030 T DE 60224030T DE 60224030 T DE60224030 T DE 60224030T DE 60224030 T2 DE60224030 T2 DE 60224030T2
Authority
DE
Germany
Prior art keywords
file
data item
processing
file system
version
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60224030T
Other languages
English (en)
Other versions
DE60224030D1 (de
Inventor
Ilya Swampscott KIRNOS
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of DE60224030D1 publication Critical patent/DE60224030D1/de
Application granted granted Critical
Publication of DE60224030T2 publication Critical patent/DE60224030T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1787Details of non-transparently synchronising file systems

Description

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

Claims (40)

  1. Verfahren zur Verwaltung von Dateien, wobei das Verfahren aufweist: Aufzeichnen von Information betreffend einen Abschnitt (46) eines Dateisystems (40) in einer Vergleichsdatei (70), wobei die Information Anfangsinformation für Dateidatenelemente (44) identifiziert, die in dem Abschnitt (46) des Dateisystems (40) gespeichert sind, wobei die Anfangsinformation durch Identifizierungsinformation identifizierbar ist; Erstellen einer Bearbeitungsversion (50) des Abschnittes (46) des Dateisystems (40), wobei die Bearbeitungsversion (50) zumindest eine Mehrzahl von Bearbeitungsdatenelementen (56) beinhaltet, die den Dateielementen (44) entsprechen, die in dem Abschnitt (46) des Dateisystems (40) gespeichert sind; Bestimmen einer tatsächlichen Information für jedes Bearbeitungsdatenelement (56), wobei die tatsächliche Information durch die Identifizierungsinformation identifizierbar ist; Erfassen von Änderungen, die an der Bearbeitungsversion (50) vorgenommen wurden, und zwar durch Vergleichen der Anfangsinformation mit der tatsächlichen Information der Bearbeitungselemente (56); und Verwenden der erfassten Änderungen, um den Abschnitt (46) des Dateisystems (40) mit der Bearbeitungsversion (50) zu synchronisieren.
  2. Verfahren nach Anspruch 1, bei dem das Erfassen von an der Bearbeitungsversion (50) vorgenommenen Änderungen mittels Vergleichen der Anfangsinformation mit der tatsächlichen Information der Bearbeitungsdatenelemente (56) beinhaltet, die Anfangsinformation mit der tatsächlichen Information der Bearbeitungsdatenelemente (56) zu vergleichen, um zu bestimmen, ob ein Bearbeitungsdatenelement (56) ein neu erzeugtes Datenelement ist.
  3. Verfahren nach Anspruch 2, bei dem die Anfangsinformation eine Erzeugungszeit eines jeden der Dateidatenelemente (44), die im Abschnitt (46) des Dateisystems (40) gespeichert sind, beinhaltet, und die tatsächliche Information eine Erzeugungszeit für jedes Bearbeitungsdatenelement (56) beinhaltet.
  4. Verfahren nach Anspruch 3, bei dem das Vergleichen der Anfangsinformation mit der tatsächlichen Information weiter beinhaltet, zu bestimmen, ob die Erzeugungszeit des Bearbeitungsdatenelementes (56) größer als die Erzeugungszeit eines jeden der Dateidatenelemente (44) ist, die im Abschnitt (46) des Dateisystems (40) gespeichert sind.
  5. Verfahren nach Anspruch 3, bei dem das Erstellen der Bearbeitungsversion (50) beinhaltet, für das neu erzeugte Bearbeitungsdatenelement (56) sowohl eine Erzeugungszeit als auch eine Modifikationszeit in der Vergleichsdatei (70) aufzuzeichnen.
  6. Verfahren nach Anspruch 2, bei dem das Verwenden der erfassten Änderungen, um den Abschnitt (46) des Dateisystems (40) mit der Bearbeitungsversion (50) zu synchronisieren, beinhaltet, ein Dateidatenelement (44), das dem neu erzeugten Bearbeitungsdatenelement (56) entspricht, zu dem Dateisystem hinzuzufügen.
  7. Verfahren nach Anspruch 1, bei dem das Erfassen der an der Bearbeitungsversion (50) vorgenommenen Änderungen mittels Vergleichen der Anfangsinformation mit der tatsächlichen Information beinhaltet, zu bestimmen, ob ein Bearbeitungsdatenelement (56) aus der Bearbeitungsversion (50) gelöscht wurde.
  8. Verfahren nach Anspruch 7, bei dem das Verwenden der erfassten Änderungen, um den Abschnitt (46) des Dateisystems (40) mit der Bearbeitungsversion (50) zu synchronisieren, beinhaltet, ein Dateidatenelement (44), das dem gelöschten Bearbeitungsdatenelement (56) entspricht, aus dem Abschnitt (46) des Dateisystems (40) zu löschen.
  9. Verfahren nach Anspruch 1, bei dem das Erfassen von an der Bearbeitungsversion (50) vorgenommenen Änderungen mittels Vergleichen der Anfangsinformation mit der tatsächlichen Information der Bearbeitungsdatenelemente (56) beinhaltet, die Anfangsinformation mit der tatsächlichen Information des Bearbeitungsdatenelementes (56) zu vergleichen, um zu bestimmen, ob das Bearbeitungsdatenelement (56) editiert wurde.
  10. Verfahren nach Anspruch 9, bei dem die Anfangsinformation eine Erzeugungszeit eines jeden der Dateidatenelemente (44), die im Abschnitt (46) des Dateisystems (40) gespeichert sind, beinhaltet, und die tatsächliche Information eine Modifikationszeit für jedes Bearbeitungsdatenelement (56) beinhaltet.
  11. Verfahren nach Anspruch 10, bei dem das Vergleichen der Modifikationszeit eines Bearbeitungsdatenelementes (56) mit der Erzeugungszeit eines entsprechenden Dateidatenelementes (44) weiter beinhaltet, zu bestimmen, ob die Modifikationszeit des Bearbeitungsdatenelementes (56) größer als die Erzeugungszeit des entsprechenden Dateidatenelementes (44) ist, das im Abschnitt (46) des Dateisystems (40) gespeichert ist.
  12. Verfahren nach Anspruch 9, bei dem die Anfangsinformation eine Modifikationszeit eines jeden der Dateidatenelemente (44), die im Abschnitt (46) des Dateisystems (40) gespeichert sind, beinhaltet, und die tatsächliche Information eine Modifikationszeit für jedes Bearbeitungsdatenelement (56) beinhaltet.
  13. Verfahren nach Anspruch 12, bei dem das Erfassen von an der Bearbeitungsversion (50) vorgenommenen Änderungen mittels Vergleichen der Anfangsinformation mit der tatsächlichen Information der Bearbeitungsdatenelemente (56) beinhaltet, die Modifikationszeit eines Bearbeitungsdatenelementes (56) mit der Modifikationszeit eines entsprechenden Dateidatenelementes (44) zu vergleichen, das im Abschnitt (46) des Dateisystems (40) gespeichert ist, um zu bestimmen, ob das Bearbeitungsdatenelement (56) editiert wurde.
  14. Verfahren nach Anspruch 13, bei dem das Vergleichen der Modifikationszeit eines Bearbeitungsdatenelementes (56) mit der Modifikationszeit eines entsprechenden Dateidatenelementes (44) beinhaltet, zu bestimmen, ob die Modifikationszeit des Bearbeitungsdatenelementes (56) größer als die Modifikationszeit des entsprechenden Dateidatenelementes (44) ist, das im Abschnitt (46) des Dateisystems (40) gespeichert ist.
  15. Verfahren nach Anspruch 9, bei dem das Verwenden der erfassten Änderungen zum Synchronisieren des Abschnitts (46) des Dateisystems (40) mit der Bearbeitungsversion (50) beinhaltet, ein Dateidatenelement (44) zu aktualisieren, das dem editierten Bearbeitungsdatenelement (56) im Abschnitt (46) des Dateisystems (40) entspricht.
  16. Verfahren nach Anspruch 1, bei dem das Erfassen von an der Bearbeitungsversion (50) vorgenommenen Änderungen mittels Vergleichen der Anfangsinformation mit der tatsächlichen Information der Bearbeitungsdatenelemente (56) beinhaltet, Anfangsinformation in der Vergleichsdatei (70) zu verwenden, um zu bestimmen, ob irgendwelche der Bearbeitungsdatenelemente (56) kopiert wurden.
  17. Verfahren nach Anspruch 16, bei dem das Bestimmen, ob irgendwelche der Bearbeitungsdatenelemente (56) kopiert wurden, beinhaltet, zu bestimmen, ob sich mindestens eines der Bearbeitungsdatenelemente (56) an einem ursprünglichen Speicherort befindet und eine neue Version des mindestens einen der Bearbeitungsdatenelemente (56) an einem zweiten Speicherort in der Bearbeitungsversion (50) neu erstellt wurde.
  18. Verfahren nach Anspruch 16, bei dem das Verwenden der erfassten Änderungen, um den Abschnitt (46) des Dateisystems (40) mit der Bearbeitungsversion (50) zu synchronisieren, beinhaltet, ein Dateidatenelement (44), das dem kopierten Bearbeitungsdatenelement (56) entspricht, zu dem Abschnitt (46) des Dateisystems (40) hinzuzufügen.
  19. Verfahren nach Anspruch 1, bei dem das Erfassen von an der Bearbeitungsversion (50) vorgenommenen Änderungen mittels Vergleichen der Anfangsinformation mit der tatsächlichen Information beinhaltet, zu bestimmen, ob irgendeines der Bearbeitungsdatenelemente (56) einen neuen Namen aufweist.
  20. Verfahren nach Anspruch 19, bei dem das Verwenden der erfassten Änderungen, um den Abschnitt (46) des Dateisystems (40) mit der Bearbeitungsversion (50) zu synchronisieren, beinhaltet, ein Dateidatenelement (44) entsprechend dem umbenannten Bearbeitungsdatenelement (56) im Abschnitt (46) des Dateisystems (40) umzubenennen.
  21. Verfahren nach Anspruch 1, bei dem das Erfassen von an der Bearbeitungsversion (50) vorgenommenen Änderungen mittels Vergleichen der Anfangsinformation mit der tatsächlichen Information beinhaltet, zu bestimmen, ob ein Bearbeitungsdatenelement (56) von einem ursprünglichen Bearbeitungsspeicherort zu einem neuen Bearbeitungsspeicherort bewegt wurde.
  22. Verfahren nach Anspruch 21, bei dem das Verwenden der erfassten Änderungen, um den Abschnitt (46) des Dateisystems (40) mit der Bearbeitungsversion (50) zu synchronisieren, beinhaltet, ein Dateidatenelement (44), das dem bewegten Bearbeitungsdatenelement (56) im Abschnitt (46) des Dateisystems (40) entspricht, von einem ursprünglichen Speicherort in dem Abschnitt (46) des Dateisystems (40) zu einem neuen Speicherort in dem Abschnitt (46) des Dateisystems (40) zu bewegen, der dem neuen Bearbeitungsspeicherort entspricht.
  23. Verfahren nach Anspruch 1, bei dem das Erfassen von an der Bearbeitungsversion (50) vorgenommenen Änderungen mittels Vergleichen der Anfangsinformation mit der tatsächlichen Information beinhaltet, zu bestimmen, ob ein Inhalt von einem ersten Bearbeitungsdatenelement (56) zu einem zweiten Bearbeitungsdatenelement kopiert wurde.
  24. Verfahren nach Anspruch 23, bei dem, falls der Inhalt von dem ersten Bearbeitungsdatenelement (56) von dem ersten Bearbeitungsdatenelement (56) zu einem zweiten Bearbeitungsdatenelement kopiert wurde, dann das Verwenden der erfassten Änderungen, um den Abschnitt (46) des Dateisystems (40) mit der Bearbeitungsversion (50) zu synchronisieren, beinhaltet, einen Inhalt von einem ersten Dateidatenelement (44), das dem ersten Bearbeitungselement (56) entspricht, zu einem zweiten Dateidatenelement, das dem zweiten Bearbeitungsdatenelement entspricht, zu kopieren.
  25. Verfahren nach Anspruch 23, das weiter beinhaltet, zu bestimmen, ob der Inhalt von dem ersten Bearbeitungsdatenelement (56) editiert wurde, bevor er zum zweiten Bearbeitungsdatenelement kopiert wurde.
  26. Verfahren nach Anspruch 25, bei dem die Anfangsinformation eine Modifikationszeit eines jeden der Dateidatenelemente (44), die im Abschnitt (46) des Dateisystems (40) gespeichert sind, beinhaltet, und die tatsächliche Information eine Modifikationszeit für jedes Bearbeitungsdatenelement (56) beinhaltet.
  27. Verfahren nach Anspruch 26, bei dem das Bestimmen, ob der Inhalt des ersten Bearbeitungsdatenelementes (56) editiert wurde, bevor er zum zweiten Bearbeitungsdatenelement kopiert wurde, beinhaltet, die Modifikationszeit des ersten Bearbeitungsdatenelementes (56) mit einem entsprechenden ersten Dateidatenelement (44) zu vergleichen, das im Abschnitt (46) des Dateisystems (40) gespeichert ist.
  28. Verfahren nach Anspruch 26, bei dem das Vergleichen der Modifikationszeit des ersten Bearbeitungsdatenelementes (56) mit der Modifikationszeit eines entsprechenden ersten Dateidatenelementes (44) beinhaltet, zu bestimmen, ob die Modifikationszeit des ersten Bearbeitungsdatenelementes (56) größer als die Modifikationszeit des entsprechenden ersten Dateidatenelementes (44) ist, das im Abschnitt (46) des Dateisystems (40) gespeichert ist.
  29. Verfahren nach Anspruch 27, bei dem, falls der Inhalt des ersten Bearbeitungsdatenelementes (56) editiert wurde, bevor er kopiert wurde, dann der Schritt des Verwendens der erfassten Änderungen, um den Abschnitt (46) des Dateisystems (40) mit der Bearbeitungsversion (50) zu synchronisieren, beinhaltet: Aktualisieren eines ersten Dateidatenelementes (44) entsprechend dem ersten Bearbeitungsdatenelement (56) mit einem Inhalt des ersten Bearbeitungsdatenelementes (56).
  30. Verfahren nach Anspruch 29, welches weiter ein Aktualisieren eines zweiten Dateidatenelementes entsprechend einem zweiten Bearbeitungsdatenelement mit einem Inhalt des zweiten Bearbeitungsdatenelementes beinhaltet.
  31. Verfahren nach Anspruch 29, welches weiter ein Aktualisieren eines zweiten Dateidatenelementes entsprechend einem zweiten Bearbeitungsdatenelement mit einem Inhalt des ersten Dateidatenelementes (44) beinhaltet.
  32. Verfahren nach Anspruch 1, bei dem das Erfassen von Änderungen beinhaltet, zu bestimmen, ob eine zusammengesetzte Operation bei mindestens einem der Mehrzahl von Bearbeitungsdatenelementen (56) durchgeführt wurde, wobei die zusammengesetzte Operation mindestens zwei Operationen aus einem Satz von Primäroperationen beinhaltet.
  33. Verfahren nach Anspruch 32, bei dem der Satz von Primäroperationen einen Befehl zum Editieren eines Dateidatenelementes, und/oder einen Befehl zum Löschen eines Dateidatenelementes, und/oder einen Befehl zum Erzeugen eine Dateidatenelementes, und/oder einen Befehl zum Bewegen eines Dateidatenelementes, und/oder einen Befehl zum Kopieren eines Dateidatenelementes beinhaltet.
  34. Verfahren nach Anspruch 33, bei dem, wenn die zusammengesetzte Operation einen Befehl zum Löschen eines Dateidatenelementes beinhaltet, dann das Dateidatenelement (44), auf das von dem Befehl zum Löschen eines Dateidatenelementes Bezug genommen wird, gelöscht wird, ohne irgendwelche weiteren in der zusammengesetzten Operation enthaltenen Befehle durchzuführen.
  35. Verfahren nach Anspruch 33, bei dem, wenn die zusammengesetzte Operation mehrere Befehle zum Bewegen eines Dateidatenelementes, um ein spezielles Dateidatenelement (44), mittels einer Abfolge von Bewegungen, von einem ersten Speicherort zu einem endgültigen Speicherort zu bewegen, beinhaltet, dann das spezielle Dateidatenelement (44) direkt vom ersten Speicherort zum endgültigen Speicherort bewegt wird.
  36. Verfahren nach Anspruch 32, bei dem die zusammengesetzte Operation mindestens zwei Operationen aus der folgenden Gruppe beinhaltet, die aus Ändern eines Speicherortes eines Bearbeitungsdatenelementes (56), Erstellen einer Kopie eines Bearbeitungsdatenelementes (56) und Editieren eines Inhaltes eines Bearbeitungsdatenelementes (56) besteht.
  37. Verfahren nach Anspruch 33, bei dem die zusammengesetzte Operation einen Befehl zum Editieren eines Dateidatenelementes und einen Befehl zum Bewegen eines Dateidatenelementes beinhaltet.
  38. Verfahren nach Anspruch 33, bei dem die zusammengesetzte Operation einen Befehl zum Erzeugen eines Dateidatenelementes und einen Befehl zum Kopieren eines Dateidatenelementes beinhaltet.
  39. Verfahren nach Anspruch 33, bei dem die zusammengesetzte Operation einen Befehl zum Erzeugen eines Dateidatenelementes, einen Befehl zum Kopieren eines Dateidatenelementes und Befehl zum Editieren eines Dateidatenelementes beinhaltet.
  40. Computerlesbares Medium, das Anweisungen zum Verwalten von Dateien trägt, wobei diese Anweisungen Anweisungen zum Durchführen der Schritte des Verfahrens nach einem der Ansprüche 1 bis 39 beinhalten.
DE60224030T 2001-05-25 2002-05-24 Verwaltungs- und synchronisierungsapplikation für netzwerkdateisystem Expired - Lifetime DE60224030T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US866143 2001-05-25
US09/866,143 US7711771B2 (en) 2001-05-25 2001-05-25 Management and synchronization application for network file system
PCT/US2002/016481 WO2002097623A2 (en) 2001-05-25 2002-05-24 Management and synchronization application for network file system

Publications (2)

Publication Number Publication Date
DE60224030D1 DE60224030D1 (de) 2008-01-24
DE60224030T2 true DE60224030T2 (de) 2008-11-13

Family

ID=25347011

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60224030T Expired - Lifetime DE60224030T2 (de) 2001-05-25 2002-05-24 Verwaltungs- und synchronisierungsapplikation für netzwerkdateisystem

Country Status (10)

Country Link
US (1) US7711771B2 (de)
EP (1) EP1390846B1 (de)
JP (1) JP4255373B2 (de)
CN (1) CN1246776C (de)
AT (1) ATE381060T1 (de)
AU (1) AU2002344297B2 (de)
CA (1) CA2447516C (de)
DE (1) DE60224030T2 (de)
HK (1) HK1058713A1 (de)
WO (1) WO2002097623A2 (de)

Families Citing this family (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509322B2 (en) 2001-01-11 2009-03-24 F5 Networks, Inc. Aggregated lock management for locking aggregated files in a switched file system
US8195760B2 (en) 2001-01-11 2012-06-05 F5 Networks, Inc. File aggregation in a switched file system
US8239354B2 (en) * 2005-03-03 2012-08-07 F5 Networks, Inc. System and method for managing small-size files in an aggregated file system
WO2002056181A2 (en) 2001-01-11 2002-07-18 Force Communications Inc Z File switch and switched file system
US20040133606A1 (en) 2003-01-02 2004-07-08 Z-Force Communications, Inc. Directory aggregation for files distributed over a plurality of servers in a switched file system
US7512673B2 (en) * 2001-01-11 2009-03-31 Attune Systems, Inc. Rule based aggregation of files and transactions in a switched file system
JP2004021786A (ja) * 2002-06-19 2004-01-22 Sharp Corp 情報処理システムおよび情報処理方法
CA2391717A1 (en) * 2002-06-26 2003-12-26 Ibm Canada Limited-Ibm Canada Limitee Transferring data and storing metadata across a network
US7234117B2 (en) * 2002-08-28 2007-06-19 Microsoft Corporation System and method for shared integrated online social interaction
US20040068523A1 (en) * 2002-10-07 2004-04-08 Keith Robert Olan Method and system for full asynchronous master-to-master file synchronization
BRPI0406612A (pt) * 2003-08-21 2005-12-06 Microsoft Corp Sistemas e métodos para fornecer serviços de sincronização para unidades de informação gerenciáveis por um sistema de interface de hardware/software
JP4583375B2 (ja) * 2003-08-21 2010-11-17 マイクロソフト コーポレーション 同期スキーマの実装のためのシステム
US8238696B2 (en) 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US7483923B2 (en) * 2003-08-21 2009-01-27 Microsoft Corporation Systems and methods for providing relational and hierarchical synchronization services for units of information manageable by a hardware/software interface system
US7590643B2 (en) * 2003-08-21 2009-09-15 Microsoft Corporation Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US7412496B2 (en) * 2003-08-22 2008-08-12 Emc Corporation Management of the file-modification time attribute in a multi-processor file server system
US7761794B1 (en) * 2004-01-22 2010-07-20 Cisco Technology, Inc. Integrated audit and configuration techniques
US7529818B2 (en) * 2004-05-20 2009-05-05 Bea Systems, Inc. System and method for performing validation of a configuration
US7660824B2 (en) * 2004-05-20 2010-02-09 Bea Systems, Inc. System and method for performing batch configuration changes
US7502344B2 (en) * 2004-06-25 2009-03-10 Fujifilm Corporation Communications terminal, server, playback control method and program
US7529745B2 (en) * 2004-11-19 2009-05-05 International Business Machines Corporation Method of verifying metadata of a migrated file
US7953794B2 (en) * 2005-01-14 2011-05-31 Microsoft Corporation Method and system for transitioning between synchronous and asynchronous communication modes
US7885970B2 (en) 2005-01-20 2011-02-08 F5 Networks, Inc. Scalable system for partitioning and accessing metadata over multiple servers
US7958347B1 (en) 2005-02-04 2011-06-07 F5 Networks, Inc. Methods and apparatus for implementing authentication
US7620668B2 (en) * 2005-05-06 2009-11-17 Microsoft Corporation Authoritative and non-authoritative restore
US8417746B1 (en) * 2006-04-03 2013-04-09 F5 Networks, Inc. File system management with enhanced searchability
US7853566B2 (en) 2006-08-04 2010-12-14 Apple Inc. Navigation of electronic backups
US20080126442A1 (en) * 2006-08-04 2008-05-29 Pavel Cisler Architecture for back up and/or recovery of electronic data
US20080034004A1 (en) * 2006-08-04 2008-02-07 Pavel Cisler System for electronic backup
US7856424B2 (en) * 2006-08-04 2010-12-21 Apple Inc. User interface for backup management
US8370853B2 (en) 2006-08-04 2013-02-05 Apple Inc. Event notification management
US9009115B2 (en) 2006-08-04 2015-04-14 Apple Inc. Restoring electronic information
US8311988B2 (en) * 2006-08-04 2012-11-13 Apple Inc. Consistent back up of electronic information
US20080034017A1 (en) * 2006-08-04 2008-02-07 Dominic Giampaolo Links to a common item in a data structure
US20080034019A1 (en) * 2006-08-04 2008-02-07 Pavel Cisler System for multi-device electronic backup
US7860839B2 (en) 2006-08-04 2010-12-28 Apple Inc. Application-based backup-restore of electronic information
US8166415B2 (en) 2006-08-04 2012-04-24 Apple Inc. User interface for backup management
US7716247B2 (en) * 2006-12-18 2010-05-11 Microsoft Corporation Multi-protocol access to files and directories
WO2008147973A2 (en) 2007-05-25 2008-12-04 Attune Systems, Inc. Remote file virtualization in a switched file system
US8230417B1 (en) 2007-06-08 2012-07-24 Adobe Systems Incorporated Combined application and execution environment install
US8099392B2 (en) 2007-06-08 2012-01-17 Apple Inc. Electronic backup of applications
US8725965B2 (en) * 2007-06-08 2014-05-13 Apple Inc. System setup for electronic backup
US8010900B2 (en) * 2007-06-08 2011-08-30 Apple Inc. User interface for electronic backup
US8468136B2 (en) * 2007-06-08 2013-06-18 Apple Inc. Efficient data backup
US8745523B2 (en) * 2007-06-08 2014-06-03 Apple Inc. Deletion in electronic backups
US8307004B2 (en) 2007-06-08 2012-11-06 Apple Inc. Manipulating electronic backups
US8429425B2 (en) * 2007-06-08 2013-04-23 Apple Inc. Electronic backup and restoration of encrypted data
US20080307017A1 (en) * 2007-06-08 2008-12-11 Apple Inc. Searching and Restoring of Backups
US8448161B2 (en) 2007-07-30 2013-05-21 Adobe Systems Incorporated Application tracking for application execution environment
US7930273B1 (en) 2007-07-30 2011-04-19 Adobe Systems Incorporated Version management for application execution environment
US8375381B1 (en) 2007-07-30 2013-02-12 Adobe Systems Incorporated Management user interface for application execution environment
US8117244B2 (en) * 2007-11-12 2012-02-14 F5 Networks, Inc. Non-disruptive file migration
US8548953B2 (en) 2007-11-12 2013-10-01 F5 Networks, Inc. File deduplication using storage tiers
US8180747B2 (en) 2007-11-12 2012-05-15 F5 Networks, Inc. Load sharing cluster file systems
US8352785B1 (en) 2007-12-13 2013-01-08 F5 Networks, Inc. Methods for generating a unified virtual snapshot and systems thereof
US8423592B2 (en) * 2008-04-11 2013-04-16 Sandisk Technologies Inc. Method and system for accessing a storage system with multiple file systems
US20090327405A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Enhanced Client And Server Systems for Operating Collaboratively Within Shared Workspaces
US8549582B1 (en) 2008-07-11 2013-10-01 F5 Networks, Inc. Methods for handling a multi-protocol content name and systems thereof
EP2342630A4 (de) * 2008-10-31 2012-08-08 Hewlett Packard Development Co Benutzerprofilsynchronisation
EP2184670A1 (de) * 2008-10-31 2010-05-12 Research In Motion Limited Verfahren und System zur Remote-Medienverwaltung in einer Touchscreen-Vorrichtung
US8171419B2 (en) * 2008-10-31 2012-05-01 Research In Motion Limited Method and system for remote media management on a touch screen device
US9535959B2 (en) 2008-11-21 2017-01-03 Li Sun Method and apparatus for reconciliation of multiple sets of data
US8639661B2 (en) * 2008-12-01 2014-01-28 Microsoft Corporation Supporting media content revert functionality across multiple devices
US20110040788A1 (en) * 2009-08-14 2011-02-17 Ic Manage, Inc. Coherent File State System Distributed Among Workspace Clients
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US8204860B1 (en) 2010-02-09 2012-06-19 F5 Networks, Inc. Methods and systems for snapshot reconstitution
US9195500B1 (en) 2010-02-09 2015-11-24 F5 Networks, Inc. Methods for seamless storage importing and devices thereof
JP4829368B1 (ja) * 2010-06-15 2011-12-07 株式会社東芝 ファイル処理プログラム、装置及び方法
US8347100B1 (en) 2010-07-14 2013-01-01 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
US8660996B2 (en) * 2010-09-29 2014-02-25 Red Hat, Inc. Monitoring files in cloud-based networks
US9286298B1 (en) 2010-10-14 2016-03-15 F5 Networks, Inc. Methods for enhancing management of backup data sets and devices thereof
CN102567388B (zh) * 2010-12-17 2013-10-09 日电(中国)有限公司 数据更新设备和方法
US8984029B2 (en) 2011-01-14 2015-03-17 Apple Inc. File system management
US8943026B2 (en) 2011-01-14 2015-01-27 Apple Inc. Visual representation of a local backup
US9665594B2 (en) * 2011-01-14 2017-05-30 Apple Inc. Local backup
US8671073B2 (en) * 2011-03-23 2014-03-11 Verizon Patent And Licensing Inc. Synchronizing human resource database with authorization database
CA2778733A1 (en) * 2011-05-31 2012-11-30 Research In Motion Limited Method and system for data synchronization including file system abstraction
US8332357B1 (en) * 2011-06-10 2012-12-11 Microsoft Corporation Identification of moved or renamed files in file synchronization
US8396836B1 (en) 2011-06-30 2013-03-12 F5 Networks, Inc. System for mitigating file virtualization storage import latency
US8463850B1 (en) 2011-10-26 2013-06-11 F5 Networks, Inc. System and method of algorithmically generating a server side transaction identifier
US8370341B1 (en) * 2012-01-06 2013-02-05 Inkling Systems, Inc. Systems and methods for determining and facilitating content updates for a user device
US9020912B1 (en) 2012-02-20 2015-04-28 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
US20130232178A1 (en) * 2012-03-01 2013-09-05 Sony Pictures Technologies, Inc. Connecting storyboard system to editorial system
CN102946403B (zh) * 2012-07-20 2015-09-09 珠海金山办公软件有限公司 一种用于云存储系统的解决文件冲突的方法及装置
US9519501B1 (en) 2012-09-30 2016-12-13 F5 Networks, Inc. Hardware assisted flow acceleration and L2 SMAC management in a heterogeneous distributed multi-tenant virtualized clustered system
US10348821B2 (en) * 2012-12-21 2019-07-09 Dropbox, Inc. Prioritizing structural operations and distributing changes in a synced online content management system
US9542423B2 (en) 2012-12-31 2017-01-10 Apple Inc. Backup user interface
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9554418B1 (en) 2013-02-28 2017-01-24 F5 Networks, Inc. Device for topology hiding of a visited network
EP2796954B1 (de) * 2013-04-23 2015-11-25 Siemens Aktiengesellschaft Numerische Steuerung mit Benachrichtigung eines CAM-Systems bei Änderung des Teileprogramms
US10229134B2 (en) * 2013-06-25 2019-03-12 Box, Inc. Systems and methods for managing upgrades, migration of user data and improving performance of a cloud-based platform
US9531722B1 (en) 2013-10-31 2016-12-27 Google Inc. Methods for generating an activity stream
US9542457B1 (en) 2013-11-07 2017-01-10 Google Inc. Methods for displaying object history information
US9614880B1 (en) 2013-11-12 2017-04-04 Google Inc. Methods for real-time notifications in an activity stream
CN103699571A (zh) * 2013-11-25 2014-04-02 小米科技有限责任公司 一种文件同步方法、装置及电子设备
US9336228B2 (en) * 2013-12-18 2016-05-10 Verizon Patent And Licensing Inc. Synchronization of program code between revision management applications utilizing different version-control architectures
US9509772B1 (en) 2014-02-13 2016-11-29 Google Inc. Visualization and control of ongoing ingress actions
US9898520B2 (en) 2014-03-25 2018-02-20 Open Text Sa Ulc Systems and methods for seamless access to remotely managed documents using synchronization of locally stored documents
US20150347447A1 (en) * 2014-05-27 2015-12-03 Acer Cloud Technology Inc. Method and architecture for synchronizing files
US9536199B1 (en) 2014-06-09 2017-01-03 Google Inc. Recommendations based on device usage
US9507791B2 (en) 2014-06-12 2016-11-29 Google Inc. Storage system user interface with floating file collection
US10078781B2 (en) 2014-06-13 2018-09-18 Google Llc Automatically organizing images
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US20160055194A1 (en) * 2014-08-19 2016-02-25 Subodh C. Gupta Data synchronization management between devices
JP6037469B2 (ja) 2014-11-19 2016-12-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報管理システム、情報管理方法およびプログラム
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US9870420B2 (en) 2015-01-19 2018-01-16 Google Llc Classification and storage of documents
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
US10412198B1 (en) 2016-10-27 2019-09-10 F5 Networks, Inc. Methods for improved transmission control protocol (TCP) performance visibility and devices thereof
US11003632B2 (en) 2016-11-28 2021-05-11 Open Text Sa Ulc System and method for content synchronization
US10567492B1 (en) 2017-05-11 2020-02-18 F5 Networks, Inc. Methods for load balancing in a federated identity environment and devices thereof
US11301431B2 (en) 2017-06-02 2022-04-12 Open Text Sa Ulc System and method for selective synchronization
US10831719B2 (en) * 2017-08-29 2020-11-10 Western Digital Technologies, Inc. File consistency in shared storage using partial-edit files
US11223689B1 (en) 2018-01-05 2022-01-11 F5 Networks, Inc. Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof
US10833943B1 (en) 2018-03-01 2020-11-10 F5 Networks, Inc. Methods for service chaining and devices thereof
EP4031988A4 (de) * 2019-09-16 2023-08-09 AVEVA Software, LLC Computerisierte systeme und verfahren zur bidirektionalen dateiteilung und -synchronisierung über ein netzwerk

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3012254B2 (ja) * 1989-08-16 2000-02-21 日本電気株式会社 一覧情報送信方式
JPH06324928A (ja) * 1993-05-14 1994-11-25 Mitsubishi Electric Corp ログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置
JPH07225709A (ja) * 1994-02-15 1995-08-22 Fujitsu Ltd データベース更新システム
US5745766A (en) 1994-09-19 1998-04-28 International Business Machines Corporation PC product registration and tracking
GB2305271A (en) 1995-09-15 1997-04-02 Ibm Proxy object recovery in an object-oriented environment
JPH09153056A (ja) * 1995-11-29 1997-06-10 Mitsubishi Electric Corp データ抽出処理方式
JP2830826B2 (ja) 1996-03-27 1998-12-02 日本電気株式会社 分散ファイルの同期システムと方法
JPH09330262A (ja) 1996-06-11 1997-12-22 Toshiba Corp バックアップシステム
US6298386B1 (en) * 1996-08-14 2001-10-02 Emc Corporation Network file server having a message collector queue for connection and connectionless oriented protocols
US6101508A (en) * 1997-08-01 2000-08-08 Hewlett-Packard Company Clustered file management for network resources
JP3471203B2 (ja) * 1997-10-17 2003-12-02 Necエレクトロニクス株式会社 ネットワークシステム
US6374266B1 (en) * 1998-07-28 2002-04-16 Ralph Shnelvar Method and apparatus for storing information in a data processing system
JP2000259473A (ja) * 1999-03-08 2000-09-22 Fuji Xerox Co Ltd データベース管理方式
US6647400B1 (en) * 1999-08-30 2003-11-11 Symantec Corporation System and method for analyzing filesystems to detect intrusions
GB9930124D0 (en) * 1999-12-21 2000-02-09 Ibm File system for a computer and method of synchronising sets of files
US6856993B1 (en) * 2000-03-30 2005-02-15 Microsoft Corporation Transactional file system
JP2001297025A (ja) * 2000-04-14 2001-10-26 Babcock Hitachi Kk データベース複製装置
US6636878B1 (en) * 2001-01-16 2003-10-21 Sun Microsystems, Inc. Mechanism for replicating and maintaining files in a spaced-efficient manner

Also Published As

Publication number Publication date
US7711771B2 (en) 2010-05-04
ATE381060T1 (de) 2007-12-15
CA2447516C (en) 2011-09-27
EP1390846B1 (de) 2007-12-12
HK1058713A1 (en) 2004-05-28
DE60224030D1 (de) 2008-01-24
WO2002097623A3 (en) 2003-04-03
US20020188667A1 (en) 2002-12-12
EP1390846A2 (de) 2004-02-25
JP2005507100A (ja) 2005-03-10
JP4255373B2 (ja) 2009-04-15
WO2002097623A2 (en) 2002-12-05
CA2447516A1 (en) 2002-12-05
AU2002344297B2 (en) 2008-01-10
CN1516832A (zh) 2004-07-28
CN1246776C (zh) 2006-03-22

Similar Documents

Publication Publication Date Title
DE60224030T2 (de) Verwaltungs- und synchronisierungsapplikation für netzwerkdateisystem
DE602004006404T2 (de) Flashback-datenbank
DE69531513T2 (de) Vervielfältigungssystem
DE60006845T2 (de) Verfahren und vorrichtung zur zusammenarbeit bei multimediaerzeugung über einem netzwerk
DE60220676T2 (de) Konsistente lesevorgänge in einer verteilten datenbankumgebung
DE60113586T2 (de) Übertragen von miteinander verbundenen Datenobjekten in einer verteilten Datenspeicherumgebung
DE69635469T2 (de) Synchronisierung zwischen verschiedenen Computeranbieterumgebungen
DE69913618T2 (de) Verfahren zur Erzeugung eines Prüfpunktes, welcher eine Basisdatei beschreibt, und Verfahren zur Erzeugung einer Differenzdatei zwischen einer aktualisierten Datei und einer Basisdatei
JP3761982B2 (ja) バージョン管理装置及びバージョン管理方法
DE60220418T2 (de) Verfahren und Anbieter zur Systemsynchronisation
DE10112941B4 (de) System und Verfahren für das parallele Lesen von primären und sekundären Sicherungen zur Wiederherstellung mehrerer gemeinsam benutzter Datenbankdateien
DE10049503B4 (de) Zugriff und Aktualisierung einer Konfigiurationsdatenbank von verteilten Physischen Orten innerhalb eines Prozessteuersystems
JPH0934763A (ja) ファイル管理装置およびファイル管理方法
DE10234736A1 (de) System und Verfahren zum Synchronisieren von Mediendaten
DE202014010953U1 (de) Gruppierung von Objekten in einem verteilten Datenspeichersystem basierend auf Protokollen und Platzierungsrichtlinien
DE10393771T5 (de) Schnelle Datensicherungsspeicherung und schnelle Datenwiederherstellung (FBSRD)
DE19607149A1 (de) Verfahren zum rechnergestützten Abgleich mehrerer, in mindestens einem Rechner gespeicherten Dateikopien einer gespeicherten Datei
DE19844013A1 (de) Strukturierter Arbeitsordner
DE202010018481U1 (de) Asynchroner verteilter Objekt-Upload für replizierte Assoziativspeichercluster
DE202014010938U1 (de) Omega-Namen: Namenserzeugung und -ableitung
WO2015090668A1 (de) Posix-kompatibles dateisystem, verfahren zum erzeugen einer dateiliste und speichervorrichtung
EP1430369B1 (de) Dynamischer zugriff auf automatisierungsressourcen
DE602004013397T2 (de) Verfahren und Apparat zum Verschieben von Daten zwischen Speichersystemen
DE102019005368A1 (de) Verbessern der Konfliktbereinigung innerhalb von synchronisierten konstituententeilbasierten Digitalassets
DE102008012979A1 (de) Verfahren und Programm zum Bereitstellen von Datenkohärenz in Netzwerken

Legal Events

Date Code Title Description
8364 No opposition during term of opposition