[go: up one dir, main page]

DE202013012504U1 - Share and synchronize electronically stored files - Google Patents

Share and synchronize electronically stored files Download PDF

Info

Publication number
DE202013012504U1
DE202013012504U1 DE202013012504.7U DE202013012504U DE202013012504U1 DE 202013012504 U1 DE202013012504 U1 DE 202013012504U1 DE 202013012504 U DE202013012504 U DE 202013012504U DE 202013012504 U1 DE202013012504 U1 DE 202013012504U1
Authority
DE
Germany
Prior art keywords
computer
cloud
file
file system
changes
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
DE202013012504.7U
Other languages
German (de)
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.)
Google LLC
Original Assignee
Google LLC
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
Priority claimed from US13/453,678 external-priority patent/US9239846B2/en
Priority claimed from US13/453,799 external-priority patent/US8949179B2/en
Priority claimed from US13/453,909 external-priority patent/US9529818B2/en
Priority claimed from US13/453,860 external-priority patent/US20130282830A1/en
Priority claimed from US13/453,748 external-priority patent/US9244934B2/en
Application filed by Google LLC filed Critical Google LLC
Publication of DE202013012504U1 publication Critical patent/DE202013012504U1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Software Systems (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Ein System zur gemeinsamen Nutzung und Synchronisierung von elektronisch in einem Cloud-System gespeicherten Dateien, bestehend aus einem Computergerät, einschließlich eines Prozessors und eines mit diesem Prozessor gekoppelten Speichers, auf dem wiederum computerausführbare Anweisungen gespeichert sind, bei deren Ausführung durch den Prozessor das System wie folgt reagiert: es erhält eine Nachricht von der Cloud, dass eine Datei erstellt und in einem Cloud-Dateisystem elektronisch gespeichert wurde; es stellt fest, ob die elektronisch gespeicherte Datei auf das System kopiert werden muss und als Ergebnis dieser Feststellung; kopiert es die generierte Datei auf das System; andernfalls speichert es eine elektronisch gespeicherte Datei in einem lokalen Dateisystem, die einen Link zur Datei enthält, die elektronisch im Cloud-Dateisystem gespeichert ist.A system for sharing and synchronizing files electronically stored in a cloud system, comprising a computing device, including a processor and memory coupled to that processor, which in turn stores computer-executable instructions as executed by the processor, such as the system follows: it receives a message from the cloud that a file has been created and electronically stored in a cloud file system; it determines whether the electronically stored file needs to be copied to the system and as a result of that determination; copies the generated file to the system; otherwise, it stores an electronically stored file in a local file system that contains a link to the file that is stored electronically in the cloud file system.

Description

TECHNISCHES GEBIET TECHNICAL AREA

Diese Offenbarung bezieht sich im Allgemeinen auf die gemeinsame Nutzung und Synchronisierung von elektronisch gespeicherten Dateien bei und zwischen Cloud-Entitäten, Servercomputern, Desktop-Computern, PCs, tragbaren Computern, mobilen Computern, webfähigen Computern und anderen Computer, wie z. B. Tablets, PDAs und Smartphones. This disclosure generally relates to the sharing and synchronization of electronically stored files between and among cloud entities, server computers, desktop computers, personal computers, portable computers, mobile computers, web-enabled computers, and other computers, such as personal computers. Tablets, PDAs and smartphones.

HINTERGRUND BACKGROUND

Die vernetzte und mobile Computerumgebung, die einen Großteil der heutigen Gesellschaft definiert, hat zahllose Bequemlichkeits- und Produktivitäts-Vorteile mit sich gebracht. Ungeachtet der Vorteile wird es immer schwieriger, elektronisch gespeicherte Dateien zu verwalten, die sich gleichzeitig auf mehreren Computern, Systemen und Geräten befinden. So sind das Verfolgen von und der Zugriff auf eine aktuellste Version oder Revision einer elektronisch gespeicherten Datei, die auf einem oder mehreren Büro-PCs, Laptops, Heimcomputern, mobilen Computern und Wechsellaufwerken gespeichert sein kann häufig selbst für den versiertesten Benutzer schwierig. Diese Schwierigkeit wird nur noch größer aufgrund der Tatsache, dass auf eine solche elektronisch gespeicherte Datei global zugegriffen werden kann und dass diese von einer Vielzahl von Benutzern, häufig gleichzeitig, verwendet oder geändert werden kann. The networked and mobile computing environment that defines much of today's society has brought countless convenience and productivity benefits. Regardless of the benefits, managing electronically stored files concurrently across multiple computers, systems, and devices is becoming increasingly difficult. Thus, keeping track of and accessing a recent version or revision of an electronically stored file that may be stored on one or more office PCs, laptops, home computers, mobile computers, and removable drives is often difficult even for the most accomplished user. This difficulty becomes even greater due to the fact that such an electronically stored file can be accessed globally and that it can be used or changed by a variety of users, often simultaneously.

ZUSAMMENFASSUNG SUMMARY

Kurz gesagt zielen die Aspekte dieser vorliegenden Offenbarung auf die Architekturen, Verfahren, Systeme und Strukturen ab, die die gemeinsame Nutzung und Synchronisierung von elektronisch gespeicherten Dateien auf und zwischen Cloud-Entitäten und einer Reihe von Computern, Systemen, Geräten und/oder Benutzern vereinfachen. Briefly, the aspects of this present disclosure are directed to the architectures, methods, systems, and structures that facilitate the sharing and synchronization of electronically stored files on and between cloud entities and a variety of computers, systems, devices, and / or users.

Gemäß einem Aspekt dieser vorliegenden Offenbarung werden elektronisch gespeicherte Dateien ursprünglich in Cloud-Entitäten generiert und anschließend mit einem oder mehreren Client-Computersystemen repliziert und synchronisiert. Ähnlich werden elektronisch gespeicherte Dateien, die in Client-Computersystemen generiert werden, anschließend mit Cloud-Entitäten und anderen Client-Computersystemen repliziert und synchronisiert.  In accordance with one aspect of this present disclosure, electronically stored files are initially generated in cloud entities and then replicated and synchronized with one or more client computer systems. Similarly, electronically stored files that are generated in client computer systems are then replicated and synchronized with cloud entities and other client computer systems.

Gemäß einem Aspekt der vorliegenden Offenbarung wird während des Synchronisiervorgangs eine Client-Feststellung gemacht, ob eine elektronisch in der Cloud befindliche Datei zum Client heruntergeladen/kopiert werden soll. Wenn es sich bei der Datei um ein betimmtes Dateiformat handelt, wird diese nicht zum Client heruntergeladen/kopiert. Stattdessen wird die Datei beim Client lokal erstellt und enthält einen Link zu der Datei, die elektronich in der Cloud gespeichert ist. Es ist zum Vorteil, dass die lokale elektronisch gespeicherte Datei als ein Dateityp festgelegt werden kann, der auf seine Cloud-Herkunft hinweisen kann. Ein weiterer Vorteil ist die Tatsache, dass die lokale Datei verwendet werden kann, um einen Browser aufzufordern, auf die elektronische in der Cloud gespeicherte Datei zuzugreifen, was dann wiederum weitere Cloud-Computer-Services erfordern kann, um auf die Datei zuzugreifen.  In accordance with one aspect of the present disclosure, during the synchronization process, a client determination is made as to whether an electronic cloud file should be downloaded / copied to the client. If the file is a dictated file format, it will not be downloaded / copied to the client. Instead, the file is created locally at the client and contains a link to the file stored electronically in the cloud. The advantage is that the local electronically stored file can be set as a file type that can indicate its cloud origin. Another advantage is the fact that the local file can be used to prompt a browser to access the electronic file stored in the cloud, which in turn may require further cloud computing services to access the file.

Zum Vorteil und gemäß einem anderen Aspekt der vorliegenden Offenbarung, ist, dass diese gemeinsame Nutzung und Synchronisierung vom Benutzer verwaltet werden können, womit dieser Gruppen und/oder Systeme zur gemeinsamen Nutzung und Synchronisierung bilden kann. For the benefit and in accordance with another aspect of the present disclosure, it is that such sharing and synchronization can be managed by the user, with which these groups and / or sharing and synchronization systems can form.

Gemäß einem weiteren Aspekt der vorliegenen Offenbarung umfassen Client-Computer-Systeme einen lokalen WATCHER und einen Cloud-WATCHER, die gleichzeitig Änderungen der beobachteten lokalen Dateisysteme sowie der Cloud-Dateisysteme überwachen und erkennen. In another aspect of the present disclosure, client computer systems include a local WATCHER and a cloud WATCHER that simultaneously monitor and detect changes in the observed local file systems and the cloud file systems.

Erkannte Änderungen werden verwendet, um Arbeitsobjekte zu generieren, die bestellt und selektiv an eine Reihe von WORKERS zur gleichzeitigen Verarbeitung gesendet werden. Detected changes are used to generate work items that are ordered and selectively sent to a number of WORKERS for concurrent processing.

Gemäß einem Aspekt der vorliegenden Offenbarung werden elektronisch gespeicherte Dateien in einem gemeinsamen Ordner automatisch mit anderen autorisierten Benutzern dieses gemeinsamen Ordners geteilt und synchronisiert. In accordance with one aspect of the present disclosure, electronically stored files in a shared folder are automatically shared and synchronized with other authorized users of that shared folder.

Gemäß einem weiteren Aspekt der vorliegenden Offenbarung werden elektronisch gespeicherte Dateien in einem gemeinsamen Ordner automatisch in einem Cloud-Speichersystem gespeichert. According to another aspect of the present disclosure, electronically stored files in a shared folder are automatically stored in a cloud storage system.

Gemäß einem weiteren Aspekt der vorliegenden Offenbarung „folgen“ elektronisch gespeicherte Dateien in einem gemeinsamen Ordner automatisch einem Benutzer online und offline über mehrere Systeme, Geräte und das Netz. Jegliche Änderungen, die an elektronisch gespeicherten Dateien im gemeinsamen Ordner vorgenommen werden, werden automatisch aktualisiert und mit der Cloud und anderen Computern und Geräten synchronisiert. According to another aspect of the present disclosure, electronically stored files in a shared folder automatically "follow" a user online and offline across multiple systems, devices, and the network. Any changes made to electronically stored files in the shared folder are automatically updated and synchronized with the cloud and other computers and devices.

Diese ZUSAMMENFASSUNG dient zur kurzen Identifizierung einiger Aspekte der vorliegenden Offenbarung, die weiter unten unter BESCHREIBUNG näher erläutert werden. Diese ZUSAMMENFASSUNG ist weder dazu vorgesehen, Haupt- oder wichtige Funktionen der vorliegenden Offenbarung zu identifizieren, noch dient sie dazu, das Ausmaß von jeglichen Ansprüchen einzuschränken. This summary is intended to briefly identify some aspects of the present disclosure, which are further explained below under DESCRIPTION. This SUMMARY is neither intended to contain major or important functions of this To identify revelation, nor does it serve to limit the extent of any claims.

Der Begriff „Aspekte“ muss als „mindestens ein Aspekt“ verstanden werden. Die oben beschriebenen Aspekte und weitere Aspekte der hier beschriebenen vorliegenden Offenbarung werden durch Beispiel(e) veranschaulicht und nicht in den beiliegenden Zeichnungen eingeschränkt. The term "aspects" must be understood as "at least one aspect". The above-described aspects and other aspects of the present disclosure described herein are illustrated by example (e) and are not limited in the accompanying drawings.

KURZBESCHREIBUNG DER ZEICHNUNG BRIEF DESCRIPTION OF THE DRAWING

Ein vollständigeres Verständnis der vorliegenden Offenbarung kann erzielt werden, wenn man sich auf die beiliegende Zeichnung bezieht, worin: A more complete understanding of the present disclosure can be obtained by reference to the accompanying drawings, wherein:

1 eine schematische Darstellung einer Beispielanordnung zur gemeinsamen Nutzung und Synchronisierung von elektronisch gespeicherten Dateien gemäß einem Aspekt der vorliegenden Offenbarung ist; 1 FIG. 3 is a schematic illustration of an example arrangement for sharing and synchronizing electronically stored files in accordance with an aspect of the present disclosure; FIG.

2 eine schematische Darstellung einer weiteren Beispielanordnung zur gemeinsamen Nutzung und Synchronisierung von elektronisch gespeicherten Dateien gemäß einem weiteren Aspekt der vorliegenden Offenbarung ist; 2 FIG. 4 is a schematic illustration of another example arrangement for sharing and synchronizing electronically stored files according to another aspect of the present disclosure; FIG.

3 eine schematische Darstellung einer weiteren Beispielarchitektur zur gemeinsamen Nutzung und Synchronisierung von elektronisch gespeicherten Dateien gemäß einem weiteren Aspekt der vorliegenden Offenbarung ist; 3 Figure 3 is a schematic representation of another example architecture for sharing and synchronizing electronically stored files in accordance with another aspect of the present disclosure;

3a3c sind schematische Darstellungen, die die Vorgänge „Drag-and-Drop“ sowie den Synchronisierungsstatus von elektronisch gespeicherten Dateien gemäß einem Aspekt der vorliegenden Offenbarung veranschaulichen; 3a - 3c 12 are schematic illustrations illustrating drag-and-drop operations and the synchronization status of electronically stored files in accordance with one aspect of the present disclosure;

4a eine schematische Darstellung einer Beispielfunktion eines Sync-CLIENT gemäß einem Aspekt der vorliegenden Offenbarung ist; 4a FIG. 4 is a schematic illustration of an example function of a sync CLIENT according to one aspect of the present disclosure; FIG.

4b eine schematische Darstellung ist, die eine Beispielsequenz von Ereignissen zeigt, wenn ein Dokument aus der Cloud stammt und anschließend gemäß einem Aspekt der vorliegenden Offenbarung an einen SynchCLIENT propagiert wird; 4b 12 is a schematic diagram showing an example sequence of events when a document is from the cloud and subsequently propagated to a SynchCLIENT in accordance with one aspect of the present disclosure;

4c eine schematische Darstellung ist, die eine Beispielsequenz von Ereignissen zeigt, wenn ein Dokument aus einer Drittanbieteranwendung stammt und anschließend mit einem SynchCLIENT als Link zur Cloud oder einer Clout-Site gemeinsam genutzt/synchronisiert wird; 4c Figure 12 is a schematic diagram showing an example sequence of events when a document originates from a third-party application and then shared / synchronized with a SynchCLIENT as a link to the cloud or a Clout site;

4d eine schematische Darstellung von Beispielmapping gemäß einem Aspekt der vorliegenden Offenbarung zwischen Sync-CLIENT und der Cloud ist; 4d FIG. 3 is a schematic representation of example mapping according to an aspect of the present disclosure between Sync-CLIENT and the cloud; FIG.

4e eine schematische Darstellung einer Beispielsynchronisierung gemäß einem Aspekt der vorliegenden Offenbarung zwischen Sync-CLIENT und der Cloud ist; 4e FIG. 3 is a schematic representation of an example synchronization between Sync CLIENT and the cloud according to an aspect of the present disclosure; FIG.

4f eine schematische Darstellung ist, die eine zusätzliche Beispielsynchronisierung gemäß einem Aspekt der vorliegenden Offenbarung zwischen dem SyncCLIENT und der Cloud ist; 4f FIG. 12 is a schematic diagram illustrating additional example synchronization between the SyncCLIENT and the cloud in accordance with an aspect of the present disclosure; FIG.

4g eine schematische Darstellung einer Beispielsynchronisierung einer einzelnen Datei ist, die mit mehreren Ordnern in der Cloud mit einem Sync-CLIENT verknüpft ist; 4g Figure 3 is a schematic representation of an example synchronization of a single file associated with multiple folders in the cloud with a Sync CLIENT;

5 eine schematische Darstellung einer Beispielarchitektur eines Sync-CLIENT gemäß einem Aspekt der vorliegenden Offenbarung ist; 5 FIG. 3 is a schematic illustration of an example architecture of a sync CLIENT according to one aspect of the present disclosure; FIG.

5a ein schematisches Blockdiagramm ist, das einen Beispielübersichtsvorgang des EVENT AGGREGATOR gemäß einem Aspekt der vorliegenden Offenbarung darstellt; 5a 12 is a schematic block diagram illustrating an example summary operation of the EVENT AGGREGATOR according to one aspect of the present disclosure;

5b ein schematisches Blockdiagramm ist, das einen Beispielvorgang des EVENT AGGREGATOR gemäß einem Aspekt der vorliegenden Offenbarung darstellt; 5b FIG. 10 is a schematic block diagram illustrating an example operation of the EVENT AGGREGATOR according to one aspect of the present disclosure; FIG.

5c ein Flussdiagramm ist, das eine Beispielbetriebsübersicht des EVENT AGGREGATOR gemäß einem Aspekt der vorliegenden Offenbarung darstellt; 5c FIG. 10 is a flowchart illustrating an example operation overview of the EVENT AGGREGATOR according to one aspect of the present disclosure; FIG.

6 eine schematische Darstellung ist, die den Cloud WATCHER und den lokalen WATCHER (Typ-2) darstellt, die gemäß einem Aspekt der vorliegenden Offenbarung Änderungen am Cloud-Dateisystem und am lokalen Dateisystem durch die Verwendung von Graphen vornehmen; 6 Figure 12 is a schematic depicting the Cloud WATCHER and the local WATCHER (Type-2) making changes to the cloud file system and the local file system through the use of graphs, in accordance with one aspect of the present disclosure;

6a ein schematisches Blockdiagramm ist, das einen Cloud WATCHER darstellt, der einen aktuellen Cloud-Status über ein Änderungsprotokoll bestimmt, das vom SyncCLIENT gemäß einem Aspekt der vorliegenden Offenbarung von der Cloud empfangen wurde; 6a 12 is a schematic block diagram illustrating a Cloud WATCHER determining a current cloud status through a change log received from the cloud by the SyncCLIENT in accordance with an aspect of the present disclosure;

7 ein schematischen Blockdiagramm ist, das die Verarbeitung von Arbeitsobjekten vom FETCHER und darauffolgenden Vorgängen von WORKERS gemäß einem Aspekt der vorliegenden Offenbarung darstellt; 7 FIG. 3 is a schematic block diagram illustrating the processing of work objects from the FETCHER and subsequent operations by WORKERS according to one aspect of the present disclosure; FIG.

8 ein schematisches Blockdiagramm ist, das die Serialisierung von regulären Arbeitsobjekten innerhalb von FETCHER darstellt; 8th Figure 12 is a schematic block diagram illustrating the serialization of regular work objects within FETCHER;

9 eine schematische Darstellung ist, die ein repräsentatives Computersystem für die Implementierung von Beispielverfahren und -systemen zur gemeinsamen Nutzung und Synchronisierung von elektronisch gespeicherten Dateien gemäß einem Aspekt der vorliegenden Offenbarung darstellt. 9 FIG. 3 is a schematic diagram illustrating a representative computer system for implementing example methods and systems for sharing and synchronizing electronically stored files in accordance with one aspect of the present disclosure. FIG.

Die veranschaulichenden Ausführungsformen werden durch die FIGs und die detaillierte Beschreibung näher erläutert. Die Erfindungen können jedoch in diversen Formen ausgeführt werden und sind nicht auf bestimmte in den FIGs und der detaillierten Beschreibung aufgeführten Ausführungsformen beschränkt The illustrative embodiments are further illustrated by the FIGs and the detailed description. However, the inventions may be embodied in various forms and are not limited to particular embodiments shown in the FIGs and the detailed description

BESCHREIBUNG DESCRIPTION

Im Folgenden werden lediglich die Prinzipien der Offenbarung veranschaulicht. Daher versteht es sich, dass die Sachkundigen diverse Arrangements einrichten können, die, obwohl sie hier nicht explizit aufgeführt bzw. dargestellt werden, die Prinzipien der Offenbarung umfassen und zu deren Geist und Reichweite gehören. In the following, only the principles of the disclosure are illustrated. Therefore, it should be understood that those skilled in the art can make various arrangements that, while not explicitly listed or presented herein, embrace the principles of disclosure and are within their spirit and scope.

Des Weiteren sind sämtliche hier genannten Beispiele und Bedingungen prinzipiell ausschließlich für pädagogische Zwecke vorgesehen, um dem Leser dabei zu helfen, die Prinzipien der Offenbarung sowie die von den Erfindern zur Förderung der Kunst beigetragenen Konzepte zu verstehen; und diese müssen ohne Einschränkung dieser spezifisch aufgeführten Beispiele und Bedingungen interpretiert werden. Furthermore, all of the examples and conditions set forth herein are, in principle, intended for educational purposes only, to assist the reader in understanding the principles of the disclosure and the concepts contributed by the inventors to the advancement of the arts; and these must be interpreted without limiting these specific examples and conditions.

Des Weiteren sind sämtliche Aussagen hierin bzgl. Prinzipien, Aspekten und Ausführungsformen der Offenbarung sowie spezifische Beispiele hierfür dazu vorgesehen, sowohl strukturell als auch funktionell gleichwertig zu sein. Des Weiteren ist vorgesehen, dass derartige Pendanten sowohl aktuell bekannte Pendanten als auch Pendanten umfassen, die in Zukunft entwickelt werden, d. h. alle Elemente, die entwickelt werden, die unabhängig von der Struktur die gleiche Funktion ausführen. Furthermore, all statements herein regarding principles, aspects, and embodiments of the disclosure, as well as specific examples thereof, are intended to be equally structurally and functionally equivalent. Furthermore, it is contemplated that such pendants will include both currently known pendants and pendants that will be developed in the future, i. H. all elements that are developed that perform the same function regardless of the structure.

Daher versteht es sich zum Beispiel unter Sachkundigen, dass sämtliche Blockdiagramme in dieser Offenbarung Konzeptansichten des veranschaulichenden Umfelds repräsentieren, die die Prinzipien der Offenbarung umfassen. Ebenso versteht es sich, dass jegliche Ablaufdiagramme, Flussdiagramme, Statusübergangsdiagramme, Pseudocodes und Ähnliches diverse Prozesse repräsentieren, die wesentlich in computerlesbaren Medien dargestellt werden und so von einem Computer oder einem Prozessor ausgeführt werden, ungeachtet ob dieser Computer bzw. Prozessor ausdrücklich dargestellt wird. Thus, it will be understood by those skilled in the art, for example, that all block diagrams in this disclosure represent conceptual views of the illustrative environment that encompass the principles of the disclosure. Likewise, it should be understood that any flowcharts, flowcharts, status transition diagrams, pseudo-codes, and the like, represent various processes that are substantially represented in computer-readable media and are thus executed by a computer or processor, regardless of whether that computer or processor is explicitly presented.

Die in den FIGs veranschaulichten Funktionen der diversen Elemente, einschließlich sämtlicher Funktionsblocks, die als „Prozessoren“ bezeichnet werden, können über die Verwendung der dedizierten Hardware sowie von Hardware, die fähig ist, Software auszuführen, zusammen mit der geeigneten Software ausgeführt werden. Wenn sie durch einen Prozessor bereitgestellt werden, können die Funktionen mit einem einzelnen dedizierten Prozessor, mit einem einzelnen gemeinsam genutzten Prozessor oder von einer Vielzahl von individuellen Prozessoren ausgeführt werden, von denen manche gemeinsam genutzt werden können. Des Weiteren sollte die ausdrückliche Verwendung der Begriffe „Prozessor“ bzw. „Steuergerät“ nicht ausschließlich als Hardware interpretiert werden, die Software ausführen kann und kann stillschweigend und ohne Einschränkung digitale Signalverarbeitungs-Hardware (DSP), Netzwerkprozessoren, anwendungsspezifische integrierte Schaltkreise (ASIC), feldprogrammierbare Gate-Arrays (FPGA), schreibgeschützte Speicher (ROM) zum Speichern von Software, Random Access Memory (RAM) und nichtflüchtige Speicher umfassen. Dies kann auch weitere Hardware – konventionell und/oder benutzerspezifisch – umfassen. The functions of the various elements, including all functional blocks, referred to as "processors" illustrated in the FIGs, may be performed via the use of the dedicated hardware as well as hardware capable of executing software, along with the appropriate software. When provided by a processor, the functions may be performed by a single dedicated processor, a single shared processor, or a plurality of individual processors, some of which may be shared. Furthermore, the express use of the words "processor" or "controller" should not be construed as solely hardware executable software and may implicitly include, without limitation, Digital Signal Processing Hardware (DSP), Network Processors, Application Specific Integrated Circuits (ASIC), field programmable gate arrays (FPGA), read only memory (ROM) for storing software, random access memory (RAM) and nonvolatile memory. This can also include other hardware - conventional and / or user-specific.

Softwaremodule, oder einfache Module, die Software darstellen sollen, können hier als eine beliebige Kombination von Flussdiagramm-Elementen oder anderen Elementen dargestellt werden, die die Durchführung von Prozessschritten und/oder Textbeschreibungen anzeigen. Diese Module können von Hardware ausgeführt werden, die ausdrücklich oder stillschweigend dargestellt wird. Software modules, or simple modules that are to represent software, can be represented here as any combination of flowchart elements or other elements that indicate the performance of process steps and / or textual descriptions. These modules may be executed by hardware that is expressed or implied.

Wenn nicht ausdrücklich anderweitig angegeben, sind die Zeichnungen nicht maßstabsgetreu. Unless otherwise expressly indicated, the drawings are not to scale.

Wir geben nun einige uneingeschränkte illustrativen Beispiele, die mehrere Betriebsaspekte diverser Anordnungen und alternative Ausführungsformen der vorliegenden Offenbarung veranschaulichen. We now provide some unrestricted illustrative examples that illustrate several operational aspects of various arrangements and alternative embodiments of the present disclosure.

Im Allgemeinen, und wie hier verwendet, ist eine elektronisch gespeicherte Datei eine Art von Abstraktion. Sie bietet eine bequeme Art von Bündeln von einem Datensatz in identifizierbare Einheiten, die wiederum von Computersystemen verwaltet, gespeichert, abgerufen und betrieben werden. Mit Referenz zu 1, ist hier eine schematische Darstellung einer Beispielanordnung 100 zur gemeinsamen Nutzung und Synchronisierung von elektronisch gespeicherten Dateien gemäß einem Aspekt der vorliegenden Offenbarung dargestellt; In general, and as used here, an electronically stored file is a kind of abstraction. It provides a convenient way of bundling a record into identifiable units, which in turn are managed, stored, retrieved, and operated by computer systems. With reference to 1 , Here is a schematic representation of an example arrangement 100 for sharing and synchronizing electronically stored files according to one aspect of the present disclosure;

1 zeigt einen PC 110 und eine „Cloud“ 120, mit denen der PC 110 über eine oder mehrere bekannte Netzwerktechnologien 125 interagiert. 1 shows a PC 110 and a "cloud" 120 with which the pc 110 over one or more known network technologies 125 interacts.

Wie es sich unter Sachkundigen versteht, ist die Cloud 120 ein Modell von vernetzten Ressourcen, wie z. B. Speicher, Computing und Anwendungen. Zum Beispiel bezieht sich Cloud-Computing gewöhnlich auf die Lieferung von Computing als Dienstleistung, wobei gemeinsam genutzte Ressourcen, Anwendungen, Software, Daten und Informationen für Computer und andere Geräte als Dienstleistung oder über ein Netzwerk, wie das Internet bereitgestellt werden. Ähnlich bezieht sich Cloud-Speicher gewöhnlich auf elektronische Speicherressourcen (z. B. elektronische Dateisysteme), die von der Cloud 120 über ein Netzwerk bereitgestellt werden. As it is understood by experts, the cloud 120 a model of networked resources, such as Memory, computing and applications. For example, cloud computing usually refers to the delivery of computing as a service, providing shared resources, applications, software, data, and information to computers and other devices as a service or over a network such as the Internet. Similarly, cloud storage usually refers to electronic storage resources (e.g., electronic file systems) that are from the cloud 120 be provided via a network.

Als Vorteile bietet Cloud-Computing und/oder Cloud-Speicher individuellen Benutzern nur die Ressourcen, die für eine bestimmte Aufgabe benötigt werden, was die Ausgaben für stillstehende oder nicht verwendete Ressourcen senkt. Als weiteren Vorteil kann Benutzern Zugriff auf die neueste Software und Infrastrukturangebot(e) gewährt werden, was die Kompatibilität und die Produktivität fördert. As an advantage, cloud computing and / or cloud storage provides individual users with only the resources needed for a particular task, reducing the cost of idle or unused resources. As a further benefit, users can be granted access to the latest software and infrastructure offering (s) for compatibility and productivity.

Letztlich stellen Cloud-Computing und/oder Cloud-Speicher gewöhnlich den Benutzern den Zugriff auf Cloud-Ressourcen, wenn das Internet zum Zugriff auf die Cloud 120 verwendet wird, und das von überall her, wo Internet-Zugriffmechanismen zur Verfügung stehen. Ultimately, cloud computing and / or cloud storage usually provide users with access to cloud resources when the Internet accesses the cloud 120 from anywhere where Internet access mechanisms are available.

Die Netzwerktechnologien 125, die in 1 dargestellt sind, können den Vorteil bieten, Cloud 120 Internetzugriff zu gewähren, entweder direkt oder über einen Internetserviceanbieter. The network technologies 125 , in the 1 can provide the advantage, cloud 120 Internet access, either directly or through an Internet service provider.

Zu den repräsentativen Netzwerktechnologien für Cloud-Zugriff gehören u. a. Dial-Up, geleaste Leitung, ISDN, optisch, Breitband, Breitband über Stromleitung, Faser nach Hause DSL/ADSL/SDSL, WiFi, WiMax, Kabel, Satellit, Mobiltelefon und T-Anbieter u.v.m. Bekannte Internet-Arbeitsprotokolle, wie z. B. TCP/IP können zusammen mit diesen Technologien verwendet werden, und auch mit höheren Protokollen, wie z. B. HTTP, um wünschenswerte Kommunikationen mit Cloud 120 oder anderen Netzwerkressourcen aufzubauen. Representative network technologies for cloud access include dial-up, leased line, ISDN, optical, broadband, broadband over power line, home fiber DSL / ADSL / SDSL, WiFi, WiMax, cable, satellite, mobile phone and T-provider and more Known Internet working protocols, such. For example, TCP / IP can be used with these technologies, as well as with higher-level protocols such as TCP / IP. HTTP to desirable communications with cloud 120 or other network resources.

1 zeigt darüber hinaus eine Reihe von elektronischen Ordnern 112, 114, 116, die sich in einem Speichersystem des PCs 110 befinden. Wie es sich unter Sachkundigen versteht, sind elektronische Ordner, wie die in 1 dargestellten, eine Art von Virtueller Container, in denen Gruppen von elektronisch gespeicherten Dateien gespeichert und organisiert werden können. 1 also shows a number of electronic folders 112 . 114 . 116 that are in a storage system of the PC 110 are located. As it is understood by experts, electronic folders, such as those in 1 a kind of virtual container in which groups of electronically stored files can be stored and organized.

Wie es sich darüber hinaus unter Sachkundigen versteht, umfasst ein kontemporäres Computerbetriebssystem, wie das System, das auf einem PC 110 ausgeführt wird, z.B. Windows, OS/X, LINUX, etc., gewöhnlich die Unterstützung von elektronischen Dateisystemen, die viele Tausende von Ordnern enthalten können. Elektronisch gespeicherte Dateien können bequem organisiert werden, indem verwandte Dateien in einem gemeinsamen Ordner gespeichert werden. Ein Ordner, der sich in einem anderen Ordner befindet, wird als Unterordner bezeichnet. As is well understood, includes a contemporary computer operating system, such as the system, on a PC 110 For example, Windows, OS / X, LINUX, etc., usually have the support of electronic file systems, which can contain many thousands of folders. Electronic files can be conveniently organized by storing related files in a shared folder. A folder that is in a different folder is called a subfolder.

Wie von Sachkundigen zweifellos verstanden, repräsentiert der Begriff „Ordner“ eine Analogie zu einem Aktenordner, der in Büros verwendet wird; dieser Ordner wird in nahezu allen kontemporären Betriebssystem-Oberflächen verwendet. As undoubtedly understood by experts, the term "folder" represents an analogy to a file folder used in offices; This folder is used in almost all current operating system interfaces.

Ordner sind ebenfalls eine Form der Abstraktion, die eine bequeme Weise des Bündelns von einem Satz elektronische gespeicherter Dateien in identifizierbare Einheiten bieten, die wiederum von Computersystemen verwaltet, gespeichert, abgerufen und betrieben werden. Ordner werden häufig von Computer-Systemen als Symbole dargestellt, die eigentlichen Aktenordnern ähneln. Folders are also a form of abstraction that provides a convenient way of bundling a set of electronic stored files into identifiable units that in turn are managed, stored, retrieved, and operated by computer systems. Folders are often represented by computer systems as icons that resemble actual folders.

Mit diesen angewandten Prinzipien können wir nun bestimmte Betriebsaspekte der gemeinsamen Nutzung und Synchronisierung von elektronisch gespeicherten Dateien gemäß einem Aspekt der vorliegenden Offenbarung beschreiben. Genauer, und wie in 1 dargestellt, führt der PC 110 Client-Synchronisierungen und gemeinsame Nutzung von Programmen oder Dienstleistungssätzen 115 aus, die wir hier für unsere Zwecke allgemein als „SyncCLIENT“ bezeichnen. With these applied principles, we can now describe certain operational aspects of sharing and synchronizing electronically stored files in accordance with one aspect of the present disclosure. Exactly, and as in 1 shown, the PC performs 110 Client syncs and sharing programs or service sets 115 which we generally refer to as "SyncCLIENT" for our purposes.

Im Allgemeinen läuft ein Clientprogramm auf einem bestimmten Computer und greift auf eine oder mehrere Services zu, die von einem zugehörigen Serverprogramm zur Verfügung gestellt werden. Das Serverprogramm befindet sich häufig (jedoch nicht immer) auf einem anderen Computersystem; in diesem Fall greift das Clientprogramm über ein Netzwerk auf diese Services zu. In general, a client program runs on a particular computer and accesses one or more services provided by an associated server program. The server program is often (but not always) on a different computer system; In this case, the client program accesses these services over a network.

In der vorliegenden Offenbarung läuft der SyncCLIENT 115, wie in 1 dargestellt, auf dem PC 110 und interagiert mit den zugehörigen Serverdienstleistungen, die von Cloud 120 über die Netzwerktechnologien 125 bereitgestellt werden. Gemäß einem Aspekt der vorliegenden Offenbarung werden ein oder mehrere auf dem Computer 110 befindliche Ordner automatisch repliziert und mit der Cloud 120 synchronisiert. Wie in 1 dargestellt, wird der Ordner 112 mit den Cloud-Speicherservices 130 repliziert und synchronisiert, die den Ordner 112-a elektronisch in einem Cloud-Dateisystem speichern. In the present disclosure, the SyncCLIENT is running 115 , as in 1 shown on the PC 110 and interacts with the associated server services provided by Cloud 120 about the network technologies 125 to be provided. According to one aspect of the present disclosure, one or more are on the computer 110 located folders are replicated automatically and with the cloud 120 synchronized. As in 1 shown, becomes the folder 112 with the cloud storage services 130 replicates and synchronizes the folder 112-a Store electronically in a cloud file system.

Jegliche am Ordner 112 durchgeführten Hinzufügungsvorgänge/Löschvorgänge/Änderungen auf dem PC 110, auf dem der SyncCLIENT 115 läuft, werden im Ordner 112-a in einem Cloud-Speicher 130 wiedergegeben. Es ist vorteilhaft, dass diese Vorgänge zu einer automatischen Datensicherung jeglicher Dateien und Ordner im Ordner 112 auf dem PC 110 auf dem Cloud-Speicher 120 führen. Ähnlich hierzu werden jegliche Hinzufügungsvorgänge/Löschvorgänge/Ändernungen an Ordner 112-a oder seinem Inhalt in der Cloud 120 im Ordner 112 oder sein Inhalt im PC 110 reflektiert. Any at the folder 112 additions / deletions / changes made on the PC 110 on which the SyncCLIENT 115 running, be in the folder 112-a in a cloud store 130 played. It is beneficial that these operations automatically backup any files and folders in the folder 112 on the PC 110 on the cloud storage 120 to lead. Similarly, any additions / deletions / changes will be made to folders 112-a or its content in the cloud 120 in the folder 112 or its contents in the PC 110 reflected.

Durch weitere Beispiele und wie oben erwähnt, kann die beispielhafte Cloud 120 den Vorteil bieten, dass sie zusätzlich zu Cloud-Speicherservices 130 auch noch Computer-Services bereitstellt. So können zum Beispiel eine Reihe von Anwendungen, wie Textverarbeitung, Tabellen, Präsentationsgrafiken, Kalender, persönliches Management usw. 135 von der Cloud 120 bereitgestellt und über eine World Wide Web-Schnittstelle abgerufen werden, z. B. vom Computergerät 150 oder den PC 110, etwa über einen Webbrowser. Als weiterer Vorteil kann es sich bei dem Computergerät 150 um ein „herunterskaliertes“ oder einen „dünnen Client“ handeln (oder ein Tablet oder ein Smartphone, usw.), um auf Cloud-Computingressourcen zuzugreifen. Wie bekannt ist, verlassen sich diese dünnen Clients gewöhnlich auf andere Computer (z. B. Cloud-Computing), um ihre Computer-Rolle zu erfüllen. By further examples and as mentioned above, the exemplary cloud 120 offer the benefit of being in addition to cloud storage services 130 also provides computer services. For example, a variety of applications such as word processing, spreadsheets, presentation graphics, calendars, personal management, etc. 135 from the cloud 120 provided and retrieved via a World Wide Web interface, e.g. B. from the computer device 150 or the PC 110 , for example via a web browser. Another advantage is the computer device 150 to be a "scaled-down" or "thin client" (or tablet or smartphone, etc.) to access cloud computing resources. As is known, these thin clients usually rely on other computers (eg cloud computing) to fulfill their computer role.

Wenn das Computergerät 150 mit den in 1 dargestellten Anordnungen ausgestattet ist, stellt es die Fähigkeit bereit, Cloud-Computingressourcen 135 zu verwenden, um z. B. jegliche bearbeitungsfähigen Dokumente zu bearbeiten, die im Cloud-Speicher 130 und Ordner 112-a gespeichert sind. Diese Bearbeitungen können von jedem geographischen Ort aus durchgeführt werden, auf den das Computergerät 150 auf Cloud 120 und seine Ressourcen über die Netzwerktechnologien 127 Zugriff hat. Folglich kein ein Benutzer das Computergerät 150 verwenden, um Cloud-Computingressourcen 135 zu erstellen, zu bearbeiten oder anderweitig zur Änderung/Erstellung von Ordnern oder Dateien zu verwenden, die in Ordner 112-a gespeichert sind. Gemäß einem Aspekt der vorliegenden Offenbarung werden Änderungen am Ordner 112-a oder Änderungen an jeglichen Dateien oder Ordnern, die darin gespeichert sind, automatisch mit Ordner 112 auf dem PC 110 synchronisiert. If the computer device 150 with the in 1 equipped arrangements, it provides the ability to cloud computing resources 135 to use z. For example, to edit any editable documents stored in cloud storage 130 and folders 112-a are stored. These edits can be made from any geographic location to which the computing device is attached 150 on cloud 120 and its resources through network technologies 127 Has access. Hence, no one user the computer device 150 use to cloud computing resources 135 to create, edit, or otherwise use to modify / create folders or files that are in folders 112-a are stored. According to one aspect of the present disclosure, changes are made to the folder 112-a or changes to any files or folders stored in it automatically with folder 112 on the PC 110 synchronized.

Sachkundige werden es sehr schätzen, dass kontemporäre Computersysteme, wie der PC 110 oder andere Computergeräte 150, wie in 1 dargestellt, Betriebssysteme wie WINDOWS, OS/X, LINUX oder ähnliche Systeme oder deren Ableitungen, die eine oder mehrere Benutzerschnittstellen zur Verfügung stellen, bereitstellen, um die Dateisystemverfahren bequem ausführen zu können. Genauer können diese Benutzerschnittstellen einem Benutzer gestatten, mit den vertrauten Drag&Drop-, Zwischenablage- und Befehlsverfahren an Dateien zu arbeiten. Knowledgeable will appreciate that contemporary computer systems, such as the PC 110 or other computing devices 150 , as in 1 to provide operating systems such as WINDOWS, OS / X, LINUX or similar systems or their derivatives that provide one or more user interfaces to conveniently execute the file system procedures. More specifically, these user interfaces may allow a user to work on files using the familiar drag-and-drop, clipboard, and command methods.

Wenn Dateisystemverfahren auf diesen Drag&Drop- oder anderen vertrauten Metaphoren basieren, können Benutzer bequem Dateien und Verzeichnisse (Ordner usw.) auswählen und kopieren und an andere Stellen im Dateisystem verschieben oder sie löschen. Von Vorteil ist, dass diese vertrauten Benutzerschnittstellen zusammen mit den Aspekten dieser vorliegenden Offenbarung verwendet werden können, um so z. B. eine Datei in den Ordner 112 auf dem PC 110 zu verschieben und diese anschließend mit dem Cloud-Ordner 112-a zu synchronisieren. When file system methods are based on these drag-and-drop or other familiar metaphors, users can conveniently select and copy files and directories (folders, etc.) and move them to other locations in the file system or delete them. It is advantageous that these familiar user interfaces can be used together with the aspects of this present disclosure, so as to provide e.g. For example, a file in the folder 112 on the PC 110 and then move it to the cloud folder 112-a to synchronize.

An diesem Punkt werden die Sachkundigen gewiss schätzen, dass die vorliegende Offenbarung nicht auf Dateiverfahren über Benutzerschnittstellen beschränkt ist. Betriebssystem-Komponenten, Services, Benutzeranwendungen usw. können ebenfalls Dateiverfahren durchführen. Entsprechend können Änderungen am Ordner 112 oder dessen Inhalt durch einen dieser Mechanismen (z. B. Anwendungen) ebenfalls eine Synchronisierung mit dem Cloud-Ordner 112-a auslösen. At this point, those of skill in the art will appreciate that the present disclosure is not limited to file methods via user interfaces. Operating system components, services, user applications, etc. can also perform file operations. Accordingly, changes to the folder 112 or its content also synchronizes with the cloud folder through one of these mechanisms (e.g., applications) 112-a trigger.

Wie im Zusammenhang mit diesem Beispiel, das in 1 dargestellt ist, beschrieben wird, erlaubt die Synchronisierung und gemeinsame Nutzung gemäß einem Aspekt in der vorliegenden Offenbarung die automatische bidirektionale Generierung, Sicherung, Synchronisierung und gemeinsame Nutzung von Dateien und Ordnern zwischen den PCs 110, 150 und einer Cloud 120. As related to this example, that in 1 In one aspect of the present disclosure, synchronization and sharing in accordance with the present disclosure allows for automatic bidirectional generation, backup, synchronization, and sharing of files and folders between PCs 110 . 150 and a cloud 120 ,

Mit Referenz zu 2, ist hier eine weitere Beispielanordnung 200 dargestellt, die die elektronische gemeinsame Nutzung und Synchronisierung gemäß einem Aspekt der vorliegenden Offenbarung veranschaulicht. 2 zeigt eine Reihe von Computer-Systemen, nämlich die Computer 210, 250 und 260, die in 2 als „Home“, „Laptop“ und „Arbeit“ bezeichnet werden. Jeder dieser Computer 210, 250 und 260 nutzen die bekannten Netzwerkzugrifftechnologien 225, 226 und 227, wie zuvor für den Zugriff auf Cloud 220 und insbesondere auf Cloud-Speicherservices 230 Dateisystem beschrieben. With reference to 2 , here is another example arrangement 200 illustrating the electronic sharing and synchronization according to one aspect of the present disclosure. 2 shows a number of computer systems, namely the computer 210 . 250 and 260 , in the 2 be referred to as "home", "laptop" and "work". Each of these computers 210 . 250 and 260 use the well-known network access technologies 225 . 226 and 227 as before for access to cloud 220 and in particular cloud storage services 230 File system described.

In 2 wird dargestellt, dass alle Computer 210, 250 und 260 jeweils den SyncCLIENT 215, 256 und 267 auslösen. Gemäß einem Aspekt der vorliegenden Offenbarung werden ein oder mehrere auf dem Computer 210 befindliche Ordner automatisch repliziert und durch die Aktivierung des SyncCLIENT 215 mit den Cloud-Speichersystem 230 Dateisystem synchronisiert. In diesem in 2 dargestellten Beispiel wird der Ordner 212, der sich auf 10 dem Home-Computer 210 befindet, mit dem Cloud-Speicherservices 230 Dateisystem repliziert und synchronisiert, das den Ordner 212-a und seinen elektronischen Inhalt elektronisch speichert. In 2 is shown that all computers 210 . 250 and 260 each the SyncCLIENT 215 . 256 and 267 trigger. According to one aspect of the present disclosure, one or more are on the computer 210 located folders are automatically replicated and activated by the SyncCLIENT 215 with the cloud storage system 230 File system synchronized. In this in 2 example shown is the folder 212 who is up 10 the home computer 210 located with the cloud storage services 230 File system replicates and synchronizes, that the folder 212-a and stores its electronic content electronically.

Wie zuvor im Zusammenhang mit dem in 2 dargestellten Beispiel erwähnt, werden der Laptop-Computer 250 und der Arbeitscomputer 260 als ausführende Instanzen des SyncCLIENT 256 und 267 genannt. Als Konsequenz und gemäß einem weiteren Aspekt der vorliegenden Offenbarung, kann jede der ausführenden Instanzen des SyncCLIENT 256 und 267 den Ordner 212a lokal, auf den Computern 250 und 260 jeweils als Ordner 212b und 212c replizieren und synchronisieren. Das Ergebnis ist, dass der Ordner 212, der sich auf dem Home-Computer 210 befindet, mit dem Ordner 212a repliziert und synchronisiert wird, der elektronisch durch das Cloud-Speichersystem 230 Dateisystem gespeichert wurde, wie auch die Ordner 212b und 212c, die sich jeweils auf dem Laptop-Computer 250 und dem Arbeitscomputer 260 befinden. As previously related to the in 2 mentioned example, become the laptop computer 250 and the working computer 260 as executing instances of the SyncCLIENT 256 and 267 called. As a consequence, and in accordance with another aspect of the present disclosure, each of the executing instances of the SyncCLIENT 256 and 267 the folder 212a locally, on the computers 250 and 260 each as a folder 212b and 212c replicate and synchronize. The result is that the folder 212 who is on the home computer 210 located with the folder 212a replicated and synchronized electronically through the cloud storage system 230 File system was saved, as well as the folders 212b and 212c , each one on the laptop computer 250 and the working computer 260 are located.

Im Einklang damit erlaubt die gemeinsame Nutzung und Synchronisierung von elektronisch gespeicherten Dateien gemäß einem weiteren Aspekt der vorliegenden Offenbarung dem Benutzer, elektronisch auf einem Computer gespeicherte Daten (z. B. Dateien im Ordner 212c auf dem Arbeitscomputer) 260) zu erstellen/zu ändern und diese erstellten/synchronisierten elektronisch gespeicherten automatisch auf anderen Computern erstellen/ändern zu lassen (z. B. auf dem Home-Computer und dem Laptop-Computer 210, 250). So „folgen“ diese elektronisch gespeicherten Daten ohne zusätzliche Bemühung seitens des Benutzers einem Benutzer effektiv von einem Computer zum anderen. Consistent with this, sharing and synchronizing electronically stored files in accordance with another aspect of the present disclosure allows the user to electronically store data (e.g., files in the folder 212c on the work computer) 260 ) to create / modify these created / synchronized electronically stored automatically on other computers (eg on the home computer and the laptop computer 210 . 250 ). Thus, without any additional effort on the part of the user, these electronically stored data effectively "follow" a user from one computer to another.

Wie in 2 dargestellt, umfasst jeder hier aufgeführten Computer eine Reihe von Ordnern, die nicht repliziert/synchronisiert bzw. mit der Cloud 220 oder anderen Computern gemeinsam genutzt werden. Insbesondere der Home-Computer 210 wird als Ordner mit den Ordnern 214 und 216 dargestellt, die weder gemeinsam genutzt und/oder synchronisiert werden. Ähnlich wird der Laptop-Computer 250 als Ordner mit den Ordnern 251 und 252 dargestellt, die weder gemeinsam genutzt und/oder synchronisiert werden. Schließlich wird der Arbeitscomputer 260 als Ordner dargestellt, der den Ordner 261 enthält, der weder gemeinsam genutzt noch synchronisiert wird. As in 2 As shown, each computer listed here includes a number of folders that are not replicated / synchronized or with the cloud 220 or other computers. In particular, the home computer 210 is called a folder with the folders 214 and 216 not shared and / or synchronized. Similarly, the laptop computer 250 as a folder with the folders 251 and 252 not shared and / or synchronized. Finally, the work computer becomes 260 represented as a folder containing the folder 261 that is neither shared nor synchronized.

Vorteilhaft und gemäß einem Aspekt der vorliegenden Offenbarung, können diese Ordner, die durch den SyncCLIENT mit der Cloud 220 und/oder anderen Computern und/oder Benutzern gemeinsam genutzt/synchronisiert werden können, vom Benutzer verwaltet werden. Advantageously, and in accordance with one aspect of the present disclosure, these folders may be accessed by the SyncCLIENT with the cloud 220 and / or other computers and / or users can be shared / synchronized by the user.

Wie zuvor erwähnt kann die Cloud 220 Cloud-Computingressources 235 zusätzlich zu Cloud-Speicherressourcen 230 bereitstellen. Folglich kann ein Benutzer auch elektronisch gespeicherte Dateien über Cloud-Computerressourcen 235 erstellen/ändern, auf die zum Beispiel von einem Webbrowser, der auf einem Computergerät, einem Tablet oder anderen tragbaren Computergerät (z. B. auf einem Smartphone) 270 läuft, zugegriffen wird. Mit diesen Verfahren hat der Benutzer den Vorteil, dass er elektronisch gespeicherte Dateien im Ordner 212a erstellen/ändern kann, innerhalb des Cloud-Speicherservices 230 Dateisystem; diese erstellten/geänderten elektronisch gespeicherten Dateien werden mit den Ordnern 212, 212b, 212c repliziert/synchronisiert, die sich auf dem Home-Computer 210, Laptop-Computer 250 und Arbeitscomputer 260 befinden. Auf diese Weise können elektronisch gespeicherte Dateien in der Cloud 220 erstellt und in Client-Computergeräten, wie z. B. Home-Computer 210, Laptop-Computer 250, Arbeitscomputer 260 oder einem anderen Computergerät 270 repliziert/synchronisiert werden, die Browseranwendungen und -technologien zu ihrem Vorteil nutzen. As mentioned earlier, the cloud can 220 Cloud Computing Resources 235 in addition to cloud storage resources 230 provide. As a result, a user may also electronically store files via cloud computing resources 235 to create or modify, for example, from a Web browser that resides on a computing device, tablet, or other portable computing device (such as a smartphone) 270 is running, being accessed. With this procedure, the user has the advantage of having electronically stored files in the folder 212a create / change within the cloud storage service 230 File system; these created / changed electronically stored files will be with the folders 212 . 212b . 212c replicated / synchronized on the home computer 210 , Laptop computer 250 and work computers 260 are located. That way, electronically stored files can be stored in the cloud 220 created and used in client computing devices, such as Eg home computer 210 , Laptop computer 250 , Work computer 260 or another computer device 270 replicated / synchronized using browser applications and technologies to their advantage.

Wir möchten hinzufügen, dass wir den Begriff „erstellen“ verwendet haben, um die Generierung von elektronisch gespeicherten Dateien durch die Wirksamkeit von Cloud-Computerservices zu beschreiben. Unter Sachkundigen versteht es sich, dass unser spezifisches Vokabular nicht dazu vorgesehen ist, einschränkend zu wirken. So kann eine elektronisch gespeicherte Datei z. B. auch generiert werden, oder aus der Cloud stammen, durch die Wirkung der Cloud-Computerservices. Ähnlich kann eine elektronisch gespeicherte Datei von den Cloud-Computerservices konvertiert werden oder als durch diese Cloud-Computerservices als operabel erkannt werden. Diese elektronisch gespeicherten Dateien können als solche als abstammend oder erstellt betrachtet werden, für den Zweck hierin, was wir weiter unten ausführlicher aufzeigen und erläutern werden. We would like to add that we used the term "create" to describe the generation of electronically stored files through the effectiveness of cloud computing services. Understanders understand that our specific vocabulary is not intended to be limiting. So an electronically stored file z. B. also be generated, or come from the cloud, by the effect of the cloud computer services. Similarly, an electronically stored file may be converted by the cloud computer services or recognized as being operable by those cloud computer services. As such, these electronically stored files may be considered to be derived or created for the purpose herein, which we will illustrate and explain in more detail below.

Hinzu kommt, dass, während wir die gemeinsame Nutzung und Synchronisierung von elektronisch gespeicherten Dateien zwischen mehreren Computern, die z. B. von einer Einzelperson verwendet werden, beschrieben haben, die Offenbarung nicht so eingeschränkt ist. Von Vorteil und gemäß einem weiteren Aspekt der vorliegenden Offenbarung findet die Synchronisierung und die gemeinsame Nutzung von elektronisch gespeicherten Dateien zwischen einer Reihe von Computern und Benutzern statt. In addition, while sharing and synchronizing electronically stored files between multiple computers, the z. As used by an individual have described, the disclosure is not so limited. It is an advantage, and according to another aspect of the present disclosure, to synchronize and share electronically stored files between a number of computers and users.

Mit Referenz zu 3, ist hier eine weitere Beispielanordnung 300 dargestellt, die die elektronische gemeinsame Nutzung und Synchronisierung gemäß einem Aspekt der vorliegenden Offenbarung darlegt. Diese 3 zeigt eine Reihe von Computer-Systemen, nämlich die PCs 310, 350 und 360, die von unterschiedlichen individuellen Benutzern verwendet werden und in 3 als „Benutzer 1“, „Benutzer 2“ und „Benutzer 3“ bezeichnet werden. Jeder dieser dargestellten Computer 310, 350 und 360 nutzen die bekannten Netzwerkzugrifftechnologien 325, 326 und 327, wie zuvor für den Zugriff auf Cloud 320 und insbesondere auf Cloud-Speicherservices 330 Dateisystem beschrieben. With reference to 3 , here is another example arrangement 300 illustrating the electronic sharing and synchronization according to one aspect of the present disclosure. These 3 shows a number of computer systems, namely the PCs 310 . 350 and 360 that are used by different individual users and in 3 as a "user 1 "," User 2 "and" User 3 ". Each of these illustrated computers 310 . 350 and 360 use the well-known network access technologies 325 . 326 and 327 as before for access to cloud 320 and in particular cloud storage services 330 File system described.

In 3 wird des Weiteren dargestellt, dass alle Computer 310, 350 und 360 jeweils die SyncCLIENT-Software 315, 356 und 367 auslösen. In 3 is further shown that all computers 310 . 350 and 360 each SyncCLIENT software 315 . 356 and 367 trigger.

Gemäß einem Aspekt der vorliegenden Offenbarung werden ein oder mehrere auf den jeweiligen Computern befindliche Ordner, z. B. Computer 310, automatisch repliziert und durch die Aktivierung des SyncCLIENT 315 mit den Cloud-Speichersystem 330 Dateisystem synchronisiert. In diesem in 3 dargestellten Beispiel wird der Ordner 312, der sich auf dem Benutzer 1-Computer 310 befindet, mit dem Cloud-Speicherservices 330 Dateisystem repliziert und synchronisiert, das den Ordner 312-a und seinen elektronischen Inhalt elektronisch speichert. According to one aspect of the present disclosure, one or more folders located on the respective computers, e.g. Eg computer 310 , replicated automatically and by activating the SyncCLIENT 315 with the cloud storage system 330 File system synchronized. In this in 3 example shown is the folder 312 that is on the user 1 computer 310 located with the cloud storage services 330 File system replicates and synchronizes the folder 312-a and stores its electronic content electronically.

Wie des Weiteren in 3 erkennbar, sind die Computer Benutzer 2 350 und Benutzer 3 360 jeweils als ausführende Instanzen der SyncCLIENT Software 356 und 367 dargestellt. Folglich und gemäß einem anderen Aspekt der vorliegenden Offenbarung, kann jede der ausführenden Instanzen der SyncCLIENT-Software 356 und 367 den Ordner 312a lokal, auf den Computern Benutzer 2 und Benutzer 3 350 und 360 jeweils als Ordner 312b und 312c replizieren und synchronisieren. Als Ergebnis hiervon wird der Ordner 312, der sich auf dem Benutzer 1-Computer 310 befindet, mit dem Ordner 312a repliziert und synchronisiert, der im Cloud-Speicherservices 330 Dateisystem gespeichert ist, sowie mit den Ordnern 312b und 312c, die sich auf dem Computer Benutzer 2 350 und dem Computer 360 Benutzer 3 befindet. As further in 3 recognizable, the computer users are 2 350 and user 3 360 each as executing instances of the SyncCLIENT software 356 and 367 shown. Accordingly, and in accordance with another aspect of the present disclosure, each of the executing instances of the SyncCLIENT software may 356 and 367 the folder 312a locally, on the computers user 2 and user 3 350 and 360 each as a folder 312b and 312c replicate and synchronize. As a result, the folder becomes 312 that is on the user 1 computer 310 located with the folder 312a replicated and synchronized in the cloud storage services 330 File system is stored, as well as with the folders 312b and 312c that are on the computer user 2 350 and the computer 360 User 3 is located.

Im Einklang damit erlaubt die gemeinsame Nutzung und Synchronisierung von elektronisch gespeicherten Dateien gemäß einem weiteren Aspekt der vorliegenden Offenbarung mehreren Benutzern, elektronisch auf einem Computer gespeicherte Daten (z. B. Computer Benutzer 1 310) zu erstellen/ändern und diese erstellten/geänderten elektronisch gespeicherten Dateien automatisch auf dem Computer eines anderen Benutzers zu replizieren/synchronisieren (z. B. Computer Benutzer 2 und Computer Benutzer 3 350, 360). Consistent with this, sharing and synchronizing electronically stored files according to another aspect of the present disclosure allows multiple users to electronically store data (e.g., computer users 1) stored on a computer 310 ) and to automatically replicate / synchronize these created / changed electronically stored files on another user's computer (eg, computer user 2 and computer user 3) 350 . 360 ).

Des Weiteren können diese oder zusätzliche autorisierte Benutzer über einen Webbrowser auf alle Cloud-Computerservices zugreifen, um z. B. beliebige elektronisch gespeicherte Dateien zu erstellen/zu ändern, die im auf dem Cloud-Speicherservices 320 Dateisystem gespeicherten Ordner 312a gespeichert sind. Folglich werden sämtliche Änderungen an elektronisch gespeicherten Dateien im Ordner 312a automatisch mit Ordnern auf den Benutzer-Computersystemen 310, 350 und 360 repliziert und/oder synchronisiert. In addition, these or additional authorized users may access all cloud computer services through a web browser, such as: For example, to create / modify any electronically stored files that are stored on the cloud storage services 320 File system stored folder 312a are stored. As a result, any changes to electronically stored files in the folder 312a automatically with folders on the user computer systems 310 . 350 and 360 replicated and / or synchronized.

Bisher haben wir bestimmte Aspekte der gemeinsamen Nutzung und Synchronisierung von elektronisch gespeicherten Dateien gemäß Aspekten der vorliegenden Offenbarung aufgezeigt, die Gruppen von Benutzern betreffen. Zum Vorteil und gemäß einem weiteren Aspekt der vorliegenden Offenbarung können Benutzer mehreren Gruppen angehören die elektronische Dateien gemeinsam nutzen und synchronisieren. So far, we have identified certain aspects of sharing and synchronizing electronically stored files in accordance with aspects of the present disclosure that pertain to groups of users. Advantageously, and in accordance with another aspect of the present disclosure, users may belong to multiple groups that share and synchronize electronic files.

Mit weiterer Referenz zu 3 wird erwähnt, dass der Benutzer 1, Benutzer 2 und Benutzer 3 (mit der zusätzlichen Teilnahme von Benutzer 4) elektronisch gespeicherte Dateien, die mit Ordner 312 zusammenhängen, wie Ordner 312a, 312b und 312c, und sich auf der Cloud 320 sowie auf den Computern 350 und 360 befinden, gemeinsam nutzen und synchronisieren. Darüber hinaus wird noch eine Gruppe zur gemeinsamen Nutzung und Synchronisierung einschließlich Benutzer 2 und Benutzer 3 in 3 dargestellt. With further reference to 3 it is mentioned that the user 1, user 2 and user 3 (with the additional participation of user 4) electronically stored files containing folders 312 related, like folders 312a . 312b and 312c , and on the cloud 320 as well as on the computers 350 and 360 find, share and synchronize. In addition, there will be a group for sharing and synchronization including user 2 and user 3 in 3 shown.

Insbesondere, während der Benutzer 2 und der Benutzer 3 als gemeinsame Nutzer und Synchronisierer des Ordners 352 dargestellt, der sich auf dem Computer 350 befindet, der mit Benutzer 2 verknüpft ist. Dieser Ordner 352 wird mit der Cloud 320 als Ordner 352a und Computer 360 als Ordner 352b, der mit Benutzer 3 verknüpft ist, gemeinsam genutzt und synchronisiert. Entsprechend werden Benutzer 2 und Benutzer 3 als Mitglieder von zwei unterschiedlichen Gruppen ausgewiesen, die gemeinsam nutzen und synchronisieren. Wie weiter oben erwähnt, kann der Einschluss von zusätzlichen Benutzern und/oder Computern in die gemeinsamen Nutzungs- und Synchronierungsgruppen, wie die hier dargestellten vorteilhafterweise direkt vom Benutzer verwaltet werden. In particular, while the user 2 and the user 3 as common users and synchronizers of the folder 352 presented on the computer 350 which is associated with user 2. This folder 352 is with the cloud 320 as a folder 352a and computer 360 as a folder 352b that is associated with user 3, shared and synchronized. Accordingly, user 2 and user 3 are identified as members of two different groups that share and synchronize. As noted above, the inclusion of additional users and / or computers in the shared use and synchronization groups, such as those illustrated herein, may advantageously be managed directly by the user.

Mit einem Betriebsbeispiel zeigen 3a bis 3c einen Drag&Drop-Vorgang und die anschließende Synchronisierung von elektronisch gespeicherten Dateien gemäß einem Aspekt der vorliegenden Offenbarung. Wie Sachkundige sehr schätzen werden, ist ein Drag&Drop-Vorgang eine Handlung, bei der ein virtuelles Objekt (wie eine elektronisch gespeicherte Datei) von Mechanismen einer graphischen Benutzerschnittstelle „gegriffen“ (z. B. Maus oder Berührungsbildschirm) und an eine andere Stelle in oder auf ein virtuelles Objekt (wie einen Ordner) gezogen. Es versteht sich weiter, dass ein derartiger Vorgang ganz bequem genutzt werden kann, um diverse unterschiedliche Handlungen auszuführen oder um diverse Verknüpfungsarten zwischen zwei abstrakten Objekten zu erstellen. Show with a working example 3a to 3c a drag-and-drop operation and subsequent synchronization of electronically stored files in accordance with an aspect of the present disclosure. As one skilled in the art will appreciate, a drag-and-drop operation is an act whereby a virtual object (such as an electronically stored file) is "grabbed" by graphical user interface mechanisms (eg, mouse or touch screen) and moved to another location dragged onto a virtual object (like a folder). It goes without saying that such an operation can be conveniently used to perform various different actions or to create various types of relationships between two abstract objects.

3a veranschauchlicht ein Paar überlappende Fenster 390, 392, wie sie häufig in kontemporären graphischen Benutzerschnittstellen verwendet werden. Im Fenster 392 wird die symbolische Repräsentation der elektronisch gespeicherten Datei 393 mit dem Namen „LEBENSZYKLUS DES ELEFANTEN“ veranschaulicht. Ähnlich zeigt das Fenster 390 die symbolische Repräsentation des lokalen SyncDRIVE-Ordners 391. Gemäß einem Aspekt der vorliegenden Offenbarung werden elektronisch gespeicherte Dateien, die sich im lokalen SyncDRIVE-Ordner 391 befinden, automatisch repliziert und mit der Cloud synchronisiert (nicht spezifisch abgebildet) und optional auch mit anderen SyncDRIVE-Clients (nicht spezifisch abgebildet). 3a Socket a pair of overlapping windows 390 . 392 as often used in contemporary graphical user interfaces. In the window 392 becomes the symbolic representation of the electronically stored file 393 with the name "LIFE CYCLE OF THE ELEPHANT" illustrated. The window is similar 390 the symbolic representation of the local SyncDRIVE folder 391 , According to one aspect of the present disclosure, electronically stored files residing in the local SyncDRIVE folder 391 are automatically replicated and synchronized with the cloud (not specifically mapped) and optionally also with other SyncDRIVE clients (not specifically shown).

Im Kontext dieses Beispiels wird eine grundsätzliche Drag&Drop-Sequenz wie folgt durchgeführt: Durch Bewegen eines Zeigers/Cursors auf die elektronisch gespeicherte Datei 393, durch „Greifen“ der Datei 393, das Drücken einer Maustaste oder eines anderen Auswahlmechanismus, „Ziehen“ der Datei 393 in den SyncDRIVE-Ordner 391 und „Ablegen“ der Datei 393 durch Loslassen der Taste oder des anderen Auswahlmechanismus. In the context of this example, a basic drag-and-drop sequence is performed as follows: By moving a pointer / cursor to the electronically stored file 393 , by "grabbing" the file 393 , pressing a mouse button or other selection mechanism, "dragging" the file 393 in the SyncDRIVE folder 391 and "dropping" the file 393 by releasing the button or the other selection mechanism.

Nach der Durchführung eines deartigen Drag&Drop-Vorgangs zeigt eine Untersuchung des Inhalts des SyncDRIVE-Ordners 391, wie in 3b gezeigt, wie diese Kopie der elektronisch gespeicherten Datei mit der Cloud synchronisiert wird, wie auch durch das veränderte Symbol 394 ersichtlich wird, das in diesem Beispiel anzeigt, wie die elektronisch gespeicherte Datei gerade synchronisiert wird. Wenn der Synchronisierungsvorgang abgeschlossen ist und wie in 3c gezeigt, wird das mit der elektronisch gespeicherten Datei 395 verknüpfte Symbol aktualisiert, um anzuzeigen, dass die elektronisch gespeicherte Datei synchronisiert wird. After performing a drag-and-drop operation, an examination of the contents of the SyncDRIVE folder shows 391 , as in 3b shown how this copy of the electronically stored file is synchronized with the cloud, as well as the changed icon 394 which, in this example, indicates how the electronically stored file is being synchronized. When the synchronization process is complete and as in 3c shown with the electronically stored file 395 Updated linked icon to indicate that the electronically stored file is being synchronized.

Wie es sich weiter versteht, kann die Darstellung des Synchronsierungsstatus, wie gezeigt, durch eine Reihe von symbolischen oder anderen in kontemporären graphischen Benutzerschnittstellen oder Computersystemen verfügbaren Mechanismen realisiert werden. Die Beispiele hierfür umfassen animierte und/oder hörbare Mechanismen. Des Weiteren, während das in 3a3c dargestellte Beispiel den Synchronisierungsstatus, der mit einem Beispiel-SyncCLIENT und der Cloud verknüpft ist, schätzen Sachkundige sehr, dass diese Offenbarung nicht so eingeschränkt ist und dass weitere Verbesserungen auch ursprüngliche, zwischenzeitliche und anschließende Downstream-Synchronisierungen darstellen, z. B. mit zusätzlichen SyncCLIENT(s), die ein Teil einer Gruppe sind, wie die zuvor beschriebenen. As will be further understood, the representation of the synchronization status, as shown, may be realized by a number of symbolic or other mechanisms available in contemporary graphical user interfaces or computer systems. The examples include animated and / or audible mechanisms. Furthermore, while that in 3a - 3c As illustrated, the synchronization status associated with a sample SyncCLIENT and the cloud is greatly appreciated by those skilled in the art that this disclosure is not so limited and that further enhancements may include initial, intermediate, and subsequent downstream synchronizations, e.g. With additional syncCLIENT (s) that are part of a group, such as those described above.

Wenn diese besonderen funktionellen Aspekte der vorliegenden Offenbarungen verstanden werden, beziehen wir uns nun auf 4a, die ein vereinfachtes funktionelles Blockdiagramm eines Beispiel-SyncCLIENTs 410, gemäß einem Aspekt der vorliegenden Offenbarung. When these particular functional aspects of the present disclosures are understood, we now turn to 4a , which is a simplified functional block diagram of an example SyncCLIENT 410 According to one aspect of the present disclosure.

Wie dort dargestellt, umfasst der SyncCLIENT 410 mindestens zwei funktionelle Elemente, nämlich einen Cloud-WATCHER 440 und einen lokalen WATCHER 430, die das Ergebnis der Ausführung der SyncCLIENT-Software auf einem Computergerät sind. Kurz gesagt, der lokale WATCHER 430 überwacht und erkennt sämtliche Änderungen an einem beobachteten lokalen Dateisystem 420, während der Cloud-WATCHER 440 alle relevanten Änderungen innerhalb des Cloud-Dateisystems 460 überwacht und erkennt, das sich in der Cloud 450 befindet. Wenn Änderungen im beobachteten lokalen Dateisystem 420 oder im Cloud-Dateiystem 460 erkannt werden, führt dies zu einer Synchronisierung zwischen den beiden Systemen. Von Vorteil und gemäß einem Aspekt der vorliegenden Offenbarung können der Cloud-WATCHER 440 und der lokale WATCHER 430 in einer bevorzugten Umgebung je nach der Hardware-Umgebung, in denen sie betrieben werden, gleichzeitig oder parallel laufen. As shown there, the SyncCLIENT includes 410 at least two functional elements, namely a cloud WATCHER 440 and a local WATCHER 430 that are the result of running the SyncCLIENT software on a computer device. In short, the local WATCHER 430 monitors and detects any changes to a watched local file system 420 while the cloud WATCHER 440 all relevant changes within the cloud file system 460 monitors and identifies itself in the cloud 450 located. If changes in the observed local file system 420 or in the cloud file system 460 be recognized, this leads to a synchronization between the two systems. Advantageous and in accordance with one aspect of the present disclosure, the cloud WATCHER 440 and the local WATCHER 430 in a preferred environment, simultaneously or in parallel, depending on the hardware environment in which they operate.

An dieser Stelle ist es nützlich, eine besondere Beispielsynchronisierung gemäß einem Aspekt der vorliegenden Offenbarung zu erörtern, nämlich die Synchronisierung, die zwischen der Cloud und dem SyncCLIENT stattfindet, wenn ein Dokument aus der Cloud stammt. Genauer gesagt, wird ein Dokument aus der Cloud erstellt, indem Cloud-Computerressourcen verwendet werden; es wird elektronisch darin gespeichert durch die Verwendung von Cloud-Speichersystemen und dann schließlich mit einem oder mehreren SyncCLIENT(s) synchronisiert. At this point, it is useful to discuss a particular example synchronization according to one aspect of the present disclosure, namely, the synchronization that occurs between the cloud and the syncCLIENT when a document originates from the cloud. More specifically, a document is created from the cloud using cloud computing resources; it is electronically stored in it by the use of cloud storage systems and then finally synchronized with one or more SyncCLIENT (s).

Mit Bezug auf 4b, wird eine schematische Darstellung gezeigt, die den Beispielursprung bzw. die Beispielerstellung eines Dokuments innerhalb der Cloud durch einen Benutzer veranschaulicht. Wie dort dargestellt, wird das Dokument über ein Mobilgerät erstellt. Wie es des Weitern schnell ersichtlich ist und wie zuvor erwähnt, kann eine beliebige Vielzahl von bekannten Mobilgeräten für die Interaktion mit Cloud-Computerservices geeignet sein, um ein Dokument zu erstellen, das anschließend über Cloud-Speichergeräte in der Cloud gespeichert werden kann. Zu den vertrauten Geräten gehören Mobiltelefone, Tablets oder andere tragbare Computergeräte. Diese Offenbarung ist nicht auf Mobilgeräte beschränkt, und dieser Ursprung/diese Erstellung eines Dokuments innerhalb der Cloud kann auch mit Desktop- oder anderen Computergeräten erreicht werden. Insbesondere jedes Gerät, das Browser-Funktionalität unterstützt kann ausreichen, um mit den Beispiel-Cloud-Computerservices zu interagieren. Regarding 4b 11, there is shown a schematic diagram illustrating the example origin or example creation of a document within the cloud by a user. As shown there, the document is created on a mobile device. As will be readily apparent and as previously noted, any of a variety of known mobile devices for interacting with cloud computing services may be capable of creating a document that may then be stored in the cloud via cloud storage devices. Familiar devices include mobile phones, tablets, or other portable computing devices. This disclosure is not limited to mobile devices, and this origin / creation of a document within the cloud can also be achieved with desktop or other computing devices. In particular, any device that supports browser functionality may be sufficient to interact with the sample cloud computer services.

Darüber hinaus, während wird den Begriff Dokument verwendet haben, um die jeweilige elektronische Einheit zu beschreiben, die aus der Cloud stammt und dort gespeichert wird, ist die vorliegende Offenbarung nicht hierauf beschränkt. So können Textverarbeitung, Dokumente, Tabellen und Graphikdokumente gemäß dieser Offenbarung u. a. vorteilhaft via Cloud-Computerservices aus der Cloud erstellt werden. Moreover, while the term document has been used to describe the particular electronic device that originates from and is stored in the cloud, the present disclosure is not limited thereto. Thus, word processing, documents, tables and graphics documents according to this disclosure, inter alia advantageously be created via cloud computer services from the cloud.

Entsprechend wird ein Dokument, das in der Cloud erstellt wurde, dann über Cloud-Speichersysteme dort elektronisch gespeichert. In einer Beispielausführungsform hat ein Dokument, das elektronisch über Cloud-Speicherservices gespeichert wird mit einer Ressourcen-ID verknüpft, die die elektronisch gespeicherte Datei im Cloud-Speicher eindeutig identifiziert. Accordingly, a document created in the cloud is then electronically stored there via cloud storage systems. In one example embodiment, a document stored electronically via cloud storage services has associated with a resource ID that uniquely identifies the electronically stored file in the cloud storage.

Wenn das Dokument elektronisch in der Cloud gespeichert wird, wird es anschließend mit dem SyncCLIENT synchronisiert/repliziert. Es muss beachtet werden, dass die aus den Cloud-Computerservices stammende elektronisch gespeicherte Datei nicht physikalisch (elektronisch) an SyncCLIENT(s) repliziert/kopiert wird. Stattdessen und gemäß einem weiteren Aspekt der vorliegenden Offenbarung, werden elektronisch gespeicherte Dokumentendateien, die über Cloud-Computerservices in der Cloud erstellt und danach dort gespeichert werden, anschließend mit einem oder mehreren SyncCLIENT(s) als LINK(s) mit der elektronisch gespeicherten Dokumentendatei in der Cloud synchronisiert. When the document is stored electronically in the cloud, it is then synchronized / replicated with the SyncCLIENT. It should be noted that the electronically stored file from the cloud computer services is not physically (electronically) replicated / copied to SyncCLIENT (s). Instead, and in accordance with another aspect of the present disclosure, electronically stored document files created via cloud computing services in the cloud and thereafter stored thereon are subsequently associated with one or more SyncCLIENT (s) as LINK (s) with the electronically stored document file synchronized with the cloud.

Auf diese Weise wird das elektronisch gespeicherte Dokument, das aus der Cloud stammt vorteilhaft nicht physikalisch zum/zu den SyncCLIENT(s) verschoben. Ein LINK zum Dokument (Datei) wird an die SyncCLIENT(s) propagiert, wo es im lokalen Dateisystem des SyncCLIENT(s) als elektronisch gespeicherte Datei gespeichert wird, die einen LINK zur Datei in der Cloud enthält. Ein weiterer Vorteil besteht darin, dass die elektronisch gespeicherte Datei, die den LINK zur Datei in der Cloud enthält, lokal einen Typ darstellt, der auf den Speicherort dieser Datei auf der Cloud hinweist. Genauer kann es sich bei dieser lokal gespeicherten Datei um den Typ „.gdoc“ oder einen anderen vorbestimmten Dateityp handeln. In this way, the electronically stored document originating from the cloud is advantageously not physically moved to the SyncCLIENT (s). A LINK to the document (file) is propagated to the SyncCLIENT (s) where it is stored in the local file system of the SyncCLIENT (s) as an electronically stored file containing a LINK to the file in the cloud. Another advantage is that the electronically stored file that contains the LINK to the file in the cloud is a local type that points to the location of that file on the cloud. More specifically, this locally stored file may be of the type ".gdoc" or another predetermined file type.

Diese elektronisch gespeicherte Datei wird im SyncCLIENT-Dateisystem erstellt (im beobachteten Dateisystem), und erscheint dem Benutzer u. U. als gewöhnliches Dokument, oder Text oder eine andere entsprechende Datei. Anstatt die elektronischen Inhalte der elektronisch in der Cloud gespeicherten Datei zu enthalten, enthält diese lokale elektronische Datei einen LINK zur Datei in der Cloud. This electronically stored file is created in the SyncCLIENT file system (in the observed file system) and appears to the user. As an ordinary document, or text, or other equivalent file. Instead of containing the electronic content of the file stored electronically in the cloud, this local electronic file contains a LINK to the file in the cloud.

In einer bevorzugten Ausführungsform und als in 4b gezeigtes Beispiel kann ein derartiger LINK die Ressource (das Dokument) identifizieren, eine Methode zum Auffinden der Ressource und eines bestimmten Zugriffsmechanismus. Wie im Beispiel in 4b dargestellt, kann dieser LINK Komponenten umfassen, die auf eine Uniform Resource Locator (URL), Protokoll(e), wie z. B. HTTPS, Services (DOCS), Ressourcen-ID und TYP hinweisen. Wie sich unter Sachkundigen versteht, kann dieser LINK auch noch zusätzliche Komponenten beinhalten. Wenn ein solcher LINK wie dargestellt bereit gestellt wird, kann ein Starten eines Webbrowsers für den Benutzer eines SyncCLIENT einen Zugriff auf die elektronisch in der Cloud gespeicherte Datei bieten – ob mobil oder stationär und dabei vorteilshaft keine unnötige Bandbreite in Anspruch nehmen. In a preferred embodiment and as in 4b As shown, such a LINK may identify the resource (the document), a method of finding the resource, and a particular access mechanism. As in the example in 4b As shown, this LINK may include components pointing to a Uniform Resource Locator (URL), protocol (s), such as: For example, HTTPS, Services (DOCS), Resource ID and TYPE. As understood by experts, this LINK can also contain additional components. If such a LINK is provided as shown, starting a web browser for the user of a SyncCLIENT may provide access to the file stored electronically in the cloud - whether mobile or stationary, and advantageously not consuming unnecessary bandwidth.

Während wir die Vorgänge in 4a und 4b mit Bezug auf elektronisch gespeichterte Dateien beschrieben haben, die in der Cloud erstellt wurden, erwähnen wir an dieser Stelle erneut, dass die Lehren der vorliegenden Offenbarung nicht hierauf beschränkt sind. Genauer kann sich die vorliegende Offenbarung genauso auf jene elektronisch gespeicherten Dateien beziehen, die auf einem SyncCLIENT erstellt und anschließend wie oben beschrieben mit der Cloud synchronisiert/repliziert wurden. While we are in the processes 4a and 4b With reference to electronically stored files created in the cloud, it should be noted again that the teachings of the present disclosure are not limited thereto. More specifically, the present disclosure may equally refer to those electronically stored files created on a SyncCLIENT and then synchronized / replicated to the cloud as described above.

Noch spezifischer kann ein Benutzer eine elektronisch gespeicherte Datei auf einem SyncCLIENT-Computer erstellen und diese elektronisch gespeicherte Datei mit der Cloud synchronisieren/replizieren lassen. Wenn die Datei elektronisch in der Cloud gespeichert wurde, kann die elektronisch gespeicherte Datei in ein Format konvertiert und/oder geändert werden (sofern erforderlich), das leicht von einer oder mehreren Cloud-Computerressource(n) und/oder Cloud-Anwendungen betrieben werden kann. Anschließend kann diese konvertierte, elektronisch gespeicherte Datei mit einem oder mehreren SyncCLIENT(s) als LINK zur elektronisch gespeicherten Datei in der Cloud synchronisiert werden. Selbstverständlich werden die Sachkundigen schätzen, dass eine solche Konvertierung und/oder Änderung bei bestimmten elektronischen Dateiformaten nicht notwendig ist (z. B. Textdateien, usw.). Entsprechend werden Dateien mit diesem Format, wenn sie in elektronisch in der Cloud gespeichert werden, mit SyncCLIENTs über die oben beschriebenen LINK-Mechanismen synchronisiert und anschließend kann auf sie von den SyncCLIENTs zugegriffen werden, als wären sie in der Cloud erstellt worden. More specifically, a user may create an electronically stored file on a SyncCLIENT computer and have that electronically stored file synchronized / replicated with the cloud. If the file has been electronically stored in the cloud, the electronically stored file may be converted and / or changed (if necessary) into a format that may be easily operated by one or more cloud computing resource (s) and / or cloud applications , Then, this converted electronically stored file can be synchronized with one or more SyncCLIENT (s) as LINK to the electronically stored file in the cloud. Of course, those skilled in the art will appreciate that such conversion and / or modification is not necessary with certain electronic file formats (eg, text files, etc.). Accordingly, files of this format, when electronically stored in the cloud, are synchronized with SyncCLIENTs via the LINK mechanisms described above, and then accessed by the SyncCLIENTs as if they had been created in the cloud.

Es wird darauf hingewiesen, dass ein Dokument oder anderes Objekt gemäß einem Aspekt dieser Offenbarung nicht über Cloud-Computerservices generiert werden muss. Insbesondere und mit Bezug auf 4c wird eine schematische Folge von Ereignissen dargestellt, wobei ein Dokument von einer Drittanbieteranwendung erstellt, über Cloud-Services in der Cloud gespeichert und anschließend mit einem SyncCLIENT als LINK zum Objekt in der CLOUD synchronisiert/repliziert wird. Entsprechend erkennt der SyncCLIENT, dass das Dokumentenobjekt in der CLOUD nicht auf den SyncCLIENT kopiert werden muss und stattdessen wird ein LINK zu diesem Objekt generiert und lokal als Datei im lokalen Dateisystem des SyncCLIENT gespeichert. Wie zuvor kann auf das Dokumentenobjekt vom SyncCLIENT (oder von anderen Computergeräten, mit denen das Dokument synchronisiert wurde) über beispielsweise einen Webbrowser zugegriffen werden. Des Weiteren kann im LINK auf zusätzliche I alternative Cloud-Sites Bezug genommen werden, so dass ebenfalls über diese Cloud-Site auf das Dokument oder andere Ressourcen zugegriffen werden kann. It should be understood that a document or other object need not be generated via cloud computing services in accordance with one aspect of this disclosure. In particular and with reference to 4c becomes a schematic sequence of Events, whereby a document is created by a third-party application, stored via cloud services in the cloud and then synchronized / replicated with a SyncCLIENT as LINK to the object in the CLOUD. Similarly, the SyncCLIENT recognizes that the document object in the CLOUD does not need to be copied to the SyncCLIENT, and instead a LINK to that object is generated and stored locally as a file in the SyncCLIENT local file system. As before, the document object may be accessed by the SyncCLIENT (or other computer devices with which the document has been synchronized) via, for example, a web browser. Furthermore, the LINK may refer to additional I alternative cloud sites so that the document or other resources may also be accessed through that cloud site.

An diesem Punkt sollte erwähnt werden, dass Ordner und Dateien in der Cloud und Ordner und Dateien in einem lokalen Dateisystem ein wenig unterschiedliche Merkmale aufzeigen können. In Bezug auf 4d wird ein Beispiel eines Cloud-Dateisystems und ein Beispiel für ein SyncCLIENT-Dateisystem mit einer Reihe von Ordnern und Dateien dargestellt, die nun verwendet werden, um einige dieser Merkmale zu erläutern. At this point, it should be noted that folders and files in the cloud and folders and files in a local file system may show slightly different characteristics. In relation to 4d An example of a cloud file system and an example of a SyncCLIENT file system is presented with a number of folders and files that are now used to explain some of these features.

Insbesondere das Beispiel eines Cloud-Dateisystems in 4d zeigt ein „von unten nach oben“-Struktur anstatt der „von oben nach unten“-Struktur des Client-Dateisystems, was Sachkundige sofort erkennen werden. Genauer gesagt führt diese „von unten nach oben“-Struktur des Cloud-Dateisystems zu mehreren Ordnern, die zu einer einzelnen Datei gehören. In particular, the example of a cloud file system in 4d shows a "bottom-up" structure instead of the "top-down" structure of the client file system, as those skilled in the art will readily recognize. More specifically, this "bottom-up" structure of the cloud file system results in multiple folders belonging to a single file.

Wie in 4d dargestellt, kann man sehen, dass eine einzelne Daei, Datei A zum Ordner BAZ gehört (oder sich in diesem befindet), welcher wiederum zu den Ordnern FOO und BAR gehört. Entsprechend können Dateien, die elektronisch in der Cloud gespeichert sind, mehrere übergeordnete Ordner haben, die wiederum auch mehrere übergeordnete Ordner haben. In dieser Beziehung sind Ordner analog zu Labels, die an Dateien angewandt werden. As in 4d As shown, it can be seen that a single file A belongs to (or is in) the folder BAZ, which in turn belongs to the folders FOO and BAR. Similarly, files that are stored electronically in the cloud may have multiple parent folders, which in turn may have multiple parent folders. In this regard, folders are analogous to labels applied to files.

Darüber hinaus sind in der Cloud verwendete Namen von Ordnern und/oder Dateien gewöhnlich nicht einzigartig. Entsprechend werden Namen eher als Titelattribute für Dateien und Ordner betrachtet. Daher und wie an anderen Stellen in dieser Offenbarung erwähnt, besitzen Dateien und Ordner in der Cloud eindeutige Kennungen, Ressource-IDs (resourceID), die die Datei bzw. den Ordner, mit dem sie verknüpft sind, eindeutig identifizieren.  In addition, names of folders and / or files used in the cloud are usually not unique. Similarly, names are more likely to be considered title attributes for files and folders. Therefore, and as noted elsewhere in this disclosure, files and folders in the cloud have unique identifiers, resource IDs, that uniquely identify the file or folder to which they are associated.

Daher kann ein lokaler Name einer Datei und/oder eines Ordners sich von seinem Namen in der Cloud unterscheiden, da es zu Konflikten mit anderen Dateien/Ordnern kommen kann, die im lokalen Dateisystem den gleichen Namen haben. Diese Konflikte können sowohl bei unter- als auch bei übergeordneten Dateistrukturen auftreten. Dementsprechend und gemäß einer Beispielausführungsform und einem Aspekt der vorliegenden Offenbarung wird zwischen einer Ordner-Ressourcen-ID und ihrem Namen (in der Cloud) und ihrem lokalen Namen, wie dieser elektronisch auf dem SyncCLIENT gespeichert ist, ein Mapping vorgenommen.  Therefore, a local name of a file and / or folder may be different from its name in the cloud, as it may conflict with other files / folders that have the same name in the local file system. These conflicts can occur with both subordinate and parent file structures. Accordingly, and in accordance with an example embodiment and aspect of the present disclosure, a mapping is made between a folder resource ID and its name (in the cloud) and its local name as stored electronically on the syncCLIENT.

Ein Beispielmapping zwischen Cloud-Ordnern/-Dateien und lokalen Ordnern/Dateien wird in 4d veranschaulicht. In einer Beispielausführungsform kann diese Art von Mapping durch ein Datei-Mappingobjekt ausgeführt werden, das ein oder mehrere lokale Eingabeobjekte und ein Cloud-Eingabeobjekt umfasst. Wie in 4d dargestellt, ist der lokale Ordner FOO auf den Cloud-Ordner FOO gemappt, der lokale Ordner BAR ist auf den Cloud-Ordner BAR gemappt, zwei lokale Ordner BAZ sind auf den einzelnen Cloud-Ordner BAZ gemappt und beide DATEI A Dateien sind auf die einzelne Cloud-Datei FILE A gemappt. A sample mapping between cloud folders / files and local folders / files is shown in 4d illustrated. In an example embodiment, this type of mapping may be performed by a file mapping object that includes one or more local input objects and a cloud input object. As in 4d shown, the local folder FOO is mapped to the cloud folder FOO, the local folder BAR is mapped to the cloud folder BAR, two local folders BAZ are mapped to the individual cloud folder BAZ and both FILE A files are on the individual Cloud file FILE A mapped.

4e zeigt ein zusätzliches Beispiel für Unterschiede zwischen Dateien/Ordnern, die im Cloud-Speichersystem gespeichert sind, und wie diese Unterscheide sich gemäß Aspekten der vorliegenden Offenbarung auf die gemeinsame Nutzung/Synchronisierung auswirken. Im Bezug auf 4e wird im Cloud-Dateisystem ein Ordner dargestellt der FOO heißt und zwei Unterordner namens BAR hat. Folglich und gemäß einem Aspekt der vorliegenden Offenbarung werden duplizierte Ordner BAR eindeutig mit dem Erstellungsdatum der Cloud-Ressource benannt, wenn sie auf dem lokalen Dateisystem repliziert/synchronisiert werden. Wie in diesem Beispiel in 4e dargestellt, heißt ein Ordner im lokalen Dateisystem BAR, während der andere BAR [XX/XX/XX] heißt, wobei XX/XX/XX das Datum ist, an dem die Cloud-Ressource dieses Ordners erstellt wurde. 4e Figure 14 shows an additional example of differences between files / folders stored in the cloud storage system and how these differences affect sharing / synchronization in accordance with aspects of the present disclosure. Relating to 4e the cloud file system displays a folder called FOO with two subfolders named BAR. Thus, and in accordance with one aspect of the present disclosure, duplicate folders BAR are uniquely named with the cloud resource creation date when replicated / synchronized on the local file system. As in this example in 4e A folder in the local file system is called BAR, while the other is called BAR [XX / XX / XX], where XX / XX / XX is the date on which the cloud resource of this folder was created.

4f zeigt ein zusätzliches Beispiel für Unterschiede zwischen Dateien/Ordnern, die im Cloud-Speichersystem gespeichert sind, und wie diese Unterscheide sich gemäß Aspekten der vorliegenden Offenbarung auf die gemeinsame Nutzung/Synchronisierung auswirken. Im Bezug auf 4f wird im Cloud-Dateisystem erneut ein Ordner dargestellt der FOO heißt und zwei Unterordner namens BAR hat. Folglich und gemäß einem Aspekt der vorliegenden Offenbarung werden duplizierte Ordner BAR in diesem Beispiel durch einen inkrementalen Zähler eindeutig benannt, wenn sie auf dem lokalen Dateisystem repliziert/synchronisiert werden. Wie in diesem Beispiel in 4f dargestellt, heißt ein Ordner im lokalen Dateisystem BAR[n], während der andere Ordner BAR [n+1] heißt. Sachkundige werden es schätzen, dass eine Kombination dieses inkrementellen Zählerverfahrens verbunden mit dem Erstellungsdatum des in den obigen Paragraphen beschriebenen Cloud-Objekts von dieser Offenbarung in Betracht gezogen werden. 4f Figure 14 shows an additional example of differences between files / folders stored in the cloud storage system and how these differences affect sharing / synchronization in accordance with aspects of the present disclosure. Relating to 4f In the cloud file system, a folder is again called the FOO and has two subfolders named BAR. Thus, and in accordance with one aspect of the present disclosure, duplicate folders BAR in this example are uniquely named by an incremental counter when replicated / synchronized on the local file system. As in this example in 4f A folder in the local file system is called BAR [n] while the other folder is called BAR [n + 1]. Knowledgeable will estimate that a combination of this incremental counter method associated with the creation date of the cloud object described in the above paragraph will be considered by this disclosure.

Schließlich und mit Bezug auf 4g wird eine schematische Darstellung der Synchronisierung einer einzelnen bestimmten Datei A gezeigt, die elektronisch auf dem Cloud-Dateisystem gespeichert und mit (enthalten in) drei separaten Ordnern, nämlich FOO, BAR und BAZ verknüpft ist. Daher werden, wenn diese Datei A mit einem SyncCLIENT synchronisiert/repliziert und elektronisch in einem lokalen Dateisystem auf diesem Client gespeichert wird, drei individuelle Ordner, nämlich FOO, BAR und BAZ im SyncCLIENT-Dateisystem erstellt, worin jeder eine separate Kopie der replizierten Datei A enthält. Vorteilhaft ist dies für Fälle, bei denen eine der drei Dateien lokal geändert wird, weil dann die Synchronisierung mit der Cloud mit der entsprechenden Datei A stattfindet, die sich im Cloud-Dateisystem befindet. Finally and with reference to 4g Fig. 12 shows a schematic representation of the synchronization of a single particular file A stored electronically on the cloud file system and associated with (contained in) three separate folders, namely FOO, BAR and BAZ. Therefore, when this file A is synchronized / replicated with a SyncCLIENT and electronically stored in a local file system on that client, three individual folders, namely FOO, BAR and BAZ, are created in the SyncCLIENT file system, wherein each one is a separate copy of the replicated file A. contains. This is advantageous for cases where one of the three files is changed locally because then the synchronization with the cloud takes place with the corresponding file A, which is located in the cloud file system.

Wir wenden uns nun 5 zu, die ein schematisches Blockdiagramm 500 eines SyncCLIENT 510 darstellt, der die oben beschriebenen Operationen bzgl. 14 veranschaulichen kann. Wie in 5 dargestellt, umfasst ein illustrativer SyncCLIENT den Cloud-WATCHER 540, den lokalen WATCHER (z. B. Typ-2 WATCHER 530 oder Typ-1 WATCHER 535), den EREIGNIS-AGGREGATOR 561, den FETCHER 580, WORKER(s) 590, SNAPSHOT 560 und BLACKLIST 570. We turn now 5 to which is a schematic block diagram 500 a SyncCLIENT 510 representing the operations described above. 1 - 4 can illustrate. As in 5 An illustrative SyncCLIENT includes the Cloud WATCHER 540 , the local WATCHER (eg Type-2 WATCHER 530 or Type-1 WATCHER 535 ), the EVENT AGGREGATOR 561 , the FETCHER 580 , WORKER (s) 590 , SNAPSHOT 560 and BLACKLIST 570 ,

Wie zuvor erwähnt überwacht und erkennt der Cloud-WATCHER 540 alle relevanten Änderungen am Cloud-Dateisystem 520, während der lokale WATCHER (530 oder 535) sämtliche Änderungen am beobachteten lokalen Dateisystem 515 überwacht und erkennt. Mit Bezug auf den Cloud-WATCHER 540 gilt, dass wenn jegliche Änderungen am Cloud-Dateisystem 520 erkannt werden, FS-Änderungsmitteilung(en) dieser erkannten Änderung(en) an FETCHER 580 gesendet werden. Mit Bezug auf den lokalen WATCHER (530 oder 535), wenn jegliche Änderungen am lokalen Dateisystems erkannt werden, wird eine Mitteilung an den EREIGNIS-AGGREGATOR 561 gesendet. As previously mentioned, Cloud WATCHER monitors and detects 540 all relevant changes to the cloud file system 520 while the local WATCHER ( 530 or 535 ) any changes to the observed local file system 515 monitors and detects. With reference to the Cloud WATCHER 540 is true that if any changes to the cloud file system 520 FS change notification (s) of this detected change (s) to FETCHER 580 be sent. With reference to the local WATCHER ( 530 or 535 ), if any changes to the local file system are detected, a message is sent to the EVENT AGGREGATOR 561 Posted.

Gemäß einem Aspekt der vorliegenden Offenbarung, erhält der EREIGNIS-AGGREGATOR 561 Änderungsmitteilungen entweder vom lokalen WATCHER (Typ-1) 535 oder vom lokalen WATCHER (Typ-2) 530. In einer bevorzugten Ausführungsform stellt der lokale WATCHER (Typ-I) 535 rohe Ereignisdatei-Änderungsmitteilungen für den EREIGNIS-AGGREGATOR 561 bereit, während der lokale WATCHER (Typ-2) dem EREIGNIS-AGGREGATOR 56I FS-Änderungsmitteilungen bereit stellt. According to one aspect of the present disclosure, the EVENT AGGREGATOR receives 561 Change notifications either from the local WATCHER (type 1) 535 or from local WATCHER (type 2) 530 , In a preferred embodiment, the local WATCHER (Type-I) 535 raw event file modification messages for the EVENT AGGREGATOR 561 while the local WATCHER (Type 2) provides FSI change notifications to the EVENT AGGREGATOR 56I.

Während wir den Betrieb des EREIGNIS-AGGREGATOR 561 später detaillierter beschreiben werden, erwähnen wir an dieser Stelle, dass der EREIGNIS-AGGREGATOR 561 im Allgemeinen Änderungsmitteilungen vom lokalen WATCHER empfängt und diese Mitteilungen für einen gewissen Zeitraum „aufbewahrt“. Wenn während dieser Aufbewahrungszeit mehrere Änderungen an zugehörigen Objekten vorgenommen werden, kombiniert der EREIGNIS-AGGREGATOR 561 diese Änderungen vorteilhaft oder ändert diese Änderungen weiter in hochstufige, kohärentere Ereignisse, die dann vom EREIGNIS-AGGREGATOR 561 an den FETCHER 580 gesendet werden. While we are operating the EVENT AGGREGATOR 561 will be described in more detail later, we mention at this point that the EVENT AGGREGATOR 561 generally receive change messages from the local WATCHER and "keep" those messages for a period of time. If multiple changes are made to related objects during this retention period, the EVENT AGGREGATOR combines 561 These changes benefit or modify these changes further into higher-level, more coherent events that are then issued by the EVENT AGGREGATOR 561 to the FETCHER 580 be sent.

FS-Änderungsobjekte, die vom Cloud-WATCHER 540 oder vom EREIGNIS-AGGREGATOR 561 an den FETCHER 580 gesendet werden, werden vom FETCHER 580 empfangen, der dann wiederum überprüft, ob irgendwelche der empfangenen Änderungen auf der BLACKLIST 570 aufgeführt sind. Die BLACKLIST 570 ist eine Struktur, die jene Änderungen aufführt, die zuvor an WORKERS 590 gesendet, jedoch aus irgendwelchen Gründen nicht abgeschlossen wurden. Entsprechend dient die BLACKLIST 570 als eine Liste von Änderungen, die nicht durchgeführt werden dürfen, solange diese Änderungen sich auf der BLACKLIST 570 befinden. FS change objects created by the Cloud WATCHER 540 or from the EVENT AGGREGATOR 561 to the FETCHER 580 be sent by the FETCHER 580 receive, which in turn checks if any of the changes received on the BLACKLIST 570 are listed. The BLACKLIST 570 is a structure that lists those changes that were previously made to WORKERS 590 sent, but for some reason were not completed. Accordingly, the BLACKLIST serves 570 as a list of changes that can not be made as long as those changes are on the BLACKLIST 570 are located.

Umgekehrt werden Änderungen, die vom FETCHER 580 empfangen werden, die sich nicht auf der BLACKLIST 570 befinden, vom FETCHER 550 als Arbeitsobjekte zur weiteren Verarbeitung an WORKER(s) 590 gesendet. Wenn ein WORKER unfähig ist, ein Arbeitsobjekt fertigzustellen, wird ein FEHLER 597 deklariert und die Daten des FEHLERS wird zur BLACKLIST 570 hinzugefügt. Umgekehrt, wenn ein WORKER ein Arbeitsobjekt fertigstellt, werden sämtliche hieraus folgenden ÄNDERUNGEN im SNAPSHOT 560 angezeigt, der, wie wir bereits erwähnten, den aktuellen Synchronisierungsstatus zwischen dem vom SyncCLIENT 510 beobachteten lokalen Dateisystem 515 und dem Cloud-Dateisystem 520 aufrecht erhält. Conversely, changes made by the FETCHER 580 are not received on the BLACKLIST 570 from the FETCHER 550 as work objects for further processing to WORKER (s) 590 Posted. If a WORKER is unable to complete a work item, it becomes an ERROR 597 declared and the data of ERROR becomes BLACKLIST 570 added. Conversely, when a WORKER completes a work item, all subsequent CHANGES in the SNAPSHOT 560 displayed, which, as we mentioned earlier, the current synchronization status between that of the SyncCLIENT 510 watch local file system 515 and the cloud file system 520 maintains.

Wie sich unter Sachkundigen allgemein versteht, handelt es sich bei den Arbeitsobjekten im Allgemeinen um jene Operationen, die von den WORKERS durchgeführt werden, um die FS-Änderungen zu implementieren. Insbesondere wird ein bestimmtes Arbeitsobjekt ein Objekt identifizieren, dem es zugehört (z. B. ein Dateiname), eine Richtung (z. B. Download/Upload) und eine Operation, wie erstellen, umbenennen, löschen, verschieben und verändern. As is generally understood by those skilled in the art, the work objects are generally those operations performed by the WORKERS to implement the FS changes. In particular, a particular work item will identify an object it is listening to (eg, a file name), a direction (eg, download / upload), and an operation such as create, rename, delete, move, and modify.

Wie in 5 dargestellt, ist der SNAPSHOT 560 verriegelt, wenn Änderungen/Aktualisierungen am SNAPSHOT 560 vom WORKER(s) 590 vorgenommen werden. Dieses Verriegeln stellt sicher, dass sich der SNAPSHOT 560 während der Aktualisierung nicht verändert und gewährleistet Kohärenz. As in 5 shown is the SNAPSHOT 560 Locked when changes / updates on SNAPSHOT 560 from the WORKER (s) 590 be made. This locking ensures that the SNAPSHOT 560 during the update and ensures consistency.

Wie noch in weiteren Einzelheiten aufgezeicht und beschrieben wird, serialisiert der FETCHER 550 im Allgemeinen den Fluss der Arbeitsobjekte vor der nachfolgenden parallelen Verarbeitung durch die WORKERS 590. Diesbezüglich und wie wir später im Einzelnen beschreiben werden, agiert FETCHER als ein Manager/eine Verriegelung, die sicherstellt, dass zwei Arbeiter nicht an gegensätzlichen und/oder überlappenden Änderungen arbeiten. As will be described and described in more detail, the FETCHER serializes 550 in general, the flow of work objects before the subsequent parallel processing by the WORKERS 590 , In this regard, and as we will describe in more detail later, FETCHER acts as a manager / interlock ensuring that two workers do not work on conflicting and / or overlapping changes.

Wie es sich unter Sachkundigen versteht, gibt es eine Reihe von unterschiedlichen Betriebssystemen, auf denen Beispiel – SyncCLIENT 510 – Software laufen kann. Bekannte Beispiele für diese Betriebssysteme sind u. a. Microsoft WINDOWS, OS/X und LINUX. Als Ergebnis der Fähigkeiten solcher Betriebssysteme kann WORKER(s) 590 als mehrere Threads implementiert werden. Folglich können mehrere WORKERS gleichzeitig an Computersystemen mit mehreren Prozessoren oder mehreren Cores oder gleichzeitig an Ein-Prozessor-Computersystemen arbeiten. Als Ergebnis hiervon können mehrere WORKERS gleichzeitig an einem Arbeitsobjekt arbeiten, was die Leistung bei gemeinsamen Nutzungs- und Synchronisierungsverfahren verbessert. As it is understood by experts, there are a number of different operating systems, on which example - SyncCLIENT 510 - Software can run. Well-known examples of these operating systems include Microsoft WINDOWS, OS / X and LINUX. As a result of the capabilities of such operating systems, WORKER (s) 590 as multiple threads are implemented. As a result, multiple WORKERS can simultaneously operate on multi-processor or multi-core computer systems or simultaneously on single-processor computer systems. As a result, multiple WORKERS can work simultaneously on a work object, which improves performance in shared usage and synchronization processes.

Unterschiedliche Betriebssysteme wie die oben aufgeführten bieten unterschiedliche Stufen von Details bzgl. Veränderungen, die innerhalb dieser Dateisysteme auftreten können, die sich in diesen Systemen befinden. So bieten z. B. UNIX-Ableitungen wie OS/X und LINUX Änderungsmitteilungen bzgl. Ordnerebenen, während Microsoft WINDOWS eine detailliertere Dateiebenen-Änderungsmitteilung bereit stellt. Genauer gesagt stellt OS/X Informationen zu Änderungen an Ordnern zur Verfügung, während Microsoft WINDOWS Informationen zu Änderungen an individuellen Dateien bereit stellt. Folglich werden mindestens zwei unterschiedliche lokale WATCHER(s) in 5 dargestellt, nämlich der lokale WATCHER (Typ-2) 530 und der lokale WATCHER (Typ-1) 531. Wie in 5 des Weiteren dargestellt, bietet der lokale WATCHER (Typ-2) Ordnerebenen-Änderungsmitteilungen 531, während der lokale WATCHER (Typ-1) 535 Dateiebenen-Änderungsmitteilungen 536 bietet. Different operating systems such as those listed above provide different levels of details regarding changes that can occur within those file systems residing in those systems. To offer z. For example, UNIX derivations such as OS / X and LINUX folder level change notifications, while Microsoft WINDOWS provides a more detailed file level change notification. More specifically, OS / X provides information about folder changes while Microsoft WINDOWS provides information about changes to individual files. Consequently, at least two different local WATCHER (s) in 5 represented, namely the local WATCHER (type 2) 530 and the local WATCHER (Type-1) 531 , As in 5 further illustrated, the local WATCHER (type 2) provides folder level change messages 531 while the local WATCHER (type 1) 535 File-level change notifications 536 offers.

Genauer gesagt bietet Microsoft WINDOWS eine Anwendungsprogrammierschnittstelle (API) ReadDirectoryChangesW I5, die zum Beispiel eine Mitteilung zu CHANGE_FILE_NAME sendet – dies ist eine beliebige Dateinamenänderung im beobachteten Ordner (Verzeichnis) oder in dessen Unterverzeichnis; CHANGE_DIR_NAME – dies ist jede Verzeichnisnamenänderung im beobachteten Verzeichnis oder Unterverzeichnis; CHANGE_ATTRIBUTES – dies ist jede Attributänderung im beobachteten Verzeichnis; CHANGE_ SIZE – jegliche Änderung der Dateigröße im beobachteten Verzeichnis oder Unterverzeichnis, wo die Datei geschrieben wurde; CHANGE_LAST_ACCESS – dies ist jegliche Änderung an der letzten Zugriffszeit auf die Datei(en) im beobachteten Verzeichnis oder Unterverzeichnis; CHANGE_ CREATION – dies ist jegliche Änderung an der Erstellungszeit der Dateien im beobachteten Verzeichnis oder Unterverzeichnis; und CHANGE_ SECURITY – dies ist jegliche Änderung an der Sicherheitskennung im beobachteten Verzeichnis oder Unterverzeichnis; an die SyncCLIENT-Software die auf die APL zugreift. Specifically, Microsoft WINDOWS provides an application programming interface (API) ReadDirectoryChangesW I5 that, for example, sends a message to CHANGE_FILE_NAME - this is any file name change in the watched folder (directory) or its subdirectory; CHANGE_DIR_NAME - this is any directory name change in the watched directory or subdirectory; CHANGE_ATTRIBUTES - this is every attribute change in the watched directory; CHANGE_ SIZE - any change in file size in the watched directory or subdirectory where the file was written; CHANGE_LAST_ACCESS - this is any change to the last access time to the file (s) in the watched directory or subdirectory; CHANGE_ CREATION - this is any change to the creation time of the files in the watched directory or subdirectory; and CHANGE_ SECURITY - this is any change to the security identifier in the watched directory or subdirectory; to the SyncCLIENT software that accesses the APL.

Da OS/X diese Änderungsmitteilung auf der Dateiebene nicht anbietet, wird vom lokalen WATCHER (Typ-2) 530 ein lokaler Graph 532 verwendet, um den Status des beobachteteten lokalen Dateisystems 515 zu überwachen. Ähnlich und gemäß einem Aspekt der vorliegenden Offenbarung verwendet der Cloud-WATCHER 540 einen Cloud-Graph 541 zur Verfolgung des Status des beobachteten Cloud-Dateisystems 520. Since OS / X does not offer this change message at the file level, the local WATCHER (type 2) 530 a local graph 532 used to check the status of the observed local file system 515 to monitor. Similarly and in accordance with one aspect of the present disclosure, the cloud WATCHER uses 540 a cloud graph 541 to track the status of the observed cloud file system 520 ,

Schließlich weisen wir an dieser Stelle darauf hin, dass, während 5 sowohl den lokalen WATCHER (Typ-2) 530 als auch den lokalen WATCHER (Typ-1) 535 als Komponententeile des SyncCLIENT 510 darstellt, erfordert eine besondere Instanz eines SyncCLIENT vorteilhaft nicht beide. Finally, we point out at this point that while, 5 both the local WATCHER (type 2) 530 as well as the local WATCHER (type 1) 535 as component parts of the SyncCLIENT 510 Advantageously, a particular instance of a SyncCLIENT does not require both.

Mit Bezug auf 5a, wird ein schematisches Blockdiagramm veranschaulicht, das eine Ereignissequenz zeigt, die mit dem Speichern einer elektronisch gespeicherten Datei „N“ und dem Betrieb des lokalen WATCHER 535 und dem EREIGNIS-AGGREGATOR 561 verknüpft ist. Wie Sachkundige erkennen werden, kann eine derartige Sequenz den Betrieb von beliebigen Mengen von beliebten Anwendungsprogrammen oder Programm-Suites begleiten. Regarding 5a , a schematic block diagram illustrating an event sequence showing the saving of an electronically stored file "N" and the operation of the local WATCHER is illustrated 535 and the EVENT AGGREGATOR 561 is linked. As one skilled in the art will appreciate, such a sequence may accompany the operation of any amount of popular application programs or program suites.

Insbesondere ist die allgemeine Ereignissquenz in Verbindung mit diesen beliebten Anwendungsprogrammen oder Programm-Suites beim Speichern einer elektronisch gespeicherten Datei „N“ wie folgt:

  • 1) Erstellen einer Temp-Datei „N + 1“;
  • 2) Löschen der Datei „N“;
  • 3) Verschieben einer Temp-Datei „N + 1“ nach „N“;
In particular, the general event sequence associated with these popular application programs or program suites when saving an electronically stored file "N" is as follows:
  • 1) create a temp file "N + 1";
  • 2) delete the file "N";
  • 3) move a temp file "N + 1" to "N";

Im Einklang hiermit zeigt das beobachtete lokale Dateisystem 515 während der SyncCLIENT-Operation die obige Ereignissequenz an, die vom lokalen WATCHER 535 erkannt wird. Wenn diese Sequenz vom lokalen WATCHER 535 an den FETCHER (nicht spezifisch gezeigt) weitergeleitet würde, würden eine Reihe unnötige Schritte durchgeführt, die sich möglicherweise negativ auf die Systemleistung auswirken würden. Um Leistung aufrechterhalten und unnötige/redundante Schritte vermeiden, und gemäß einem weiteren Aspekt der vorliegenden Offenbarung umfasst ein Beispiel-SyncCLIENT einen EREIGNIS-AGGREGATOR 561. In keeping with this, the observed local file system shows 515 during the SyncCLIENT operation, the above event sequence that was received from the local WATCHER 535 is recognized. If this sequence is from the local WATCHER 535 would be forwarded to the FETCHER (not specifically shown) would take a number of unnecessary steps that could potentially impact system performance. To maintain performance and avoid unnecessary / redundant steps, and In accordance with another aspect of the present disclosure, an example syncCLIENT includes an EVENT AGGREGATOR 561 ,

Wie zuvor erwähnt, empfängt der EREIGNIS-AGGREGATOR 561 im Allgemeinen Änderungsmitteilungen vom lokalen WATCHER und „bewahrt“ diese Mitteilungen für einen gewissen Zeitraum auf. Wenn während dieser Aufbewahrungszeit mehrere Änderungen an zugehörigen Objekten vorgenommen werden, kombiniert der EREIGNIS-AGGREGATOR 561 diese Änderungen vorteilhaft oder ändert diese Änderungen weiter in hochstufige, kohärentere Ereignisse, die dann vom EREIGNIS-AGGREGATOR 561 an den FETCHER gesendet werden. As previously mentioned, the EVENT AGGREGATOR receives 561 in general, change messages from the local WATCHER and "keep" these messages for a period of time. If multiple changes are made to related objects during this retention period, the EVENT AGGREGATOR combines 561 These changes benefit or modify these changes further into higher-level, more coherent events that are then issued by the EVENT AGGREGATOR 561 be sent to the FETCHER.

Mit weiterem Bezug auf 5a wird der EREIGNIS-AGGREGATOR 561 als Empfänger der obigen Ereignissequenz dargestellt, nämlich der 1) Erstellung der Temp-Datei N + 1; 2) dem Löschen der Datei N; und 3) dem Verschieben der Temp-Datei N + 1 nach N. Wie in 5a veranschaulicht, hält der EREIGNIS-AGGREGATOR 561 diese Sequenz und aggregiert/kombiniert sie in eine einzelne Arbeit, nämlich: „Ändern (N -> N + 1)“; was anschließend zur Weiterverarbeitung an FLETCHER weitergeleitet wird. 5b ist eine schematische Darstellung, die eine Übersicht über die Verarbeitung im EREIGNIS-AGGREGATOR 561 gemäß einem Aspekt der vorliegenden Offenbarung bietet. Wie in dieser 5b dargestellt, werden veränderte Ereignisse, die im beobachteten lokalen Dateisystem 515 vom lokalen WATCHER 535 erkannt werden, an den EREIGNIS-AGGREGATOR 561 gesendet, wo sie in der Änderungsereignis-Warteschlange platziert werden. With further reference to 5a becomes the EVENT AGGREGATOR 561 as the receiver of the above event sequence, namely the 1) creation of the Temp file N + 1; 2) deleting the file N; and 3) moving the Temp file N + 1 to N. As in 5a illustrates, holds the EVENT AGGREGATOR 561 this sequence and aggregates / combines them into a single work, namely: "Change (N -> N + 1)"; which is then forwarded to FLETCHER for further processing. 5b is a schematic diagram that provides an overview of the processing in EVENT AGGREGATOR 561 according to one aspect of the present disclosure. Like in this one 5b shown, are changed events that are observed in the local file system 515 from the local WATCHER 535 be recognized, to the EVENT AGGREGATOR 561 sent where they are placed in the change event queue.

Bevor sie in dieser Änderungsereignis-Warteschlange platziert werden, wird ein empfangenes Änderungsereignis überprüft, um zu sehen, ob es mit einem Änderungsereignis kombiniert werden kann, das sich bereits in der Änderungsereignis-Warteschlange befindet. Ist dies der Fall, wird das empfangene Änderungsereignis mit dem Änderungsereignis in der Änderungsereignis-Warteschlange kombiniert und das kombinierte Änderungsereignis wird wieder in der Warteschlange platziert. Wenn das empfangene Änderungsereignis nicht mit dem Änderungsereignis in der Änderungsereignis-Warteschlange kombiniert werden kann, wird das empfangene Änderungsereignis wird unkombiniert in der Warteschlange platziert. Before they are placed in this change event queue, a received change event is checked to see if it can be combined with a change event that is already in the change event queue. If so, the received change event is combined with the change event in the change event queue and the combined change event is placed back in the queue. If the received change event can not be combined with the change event in the change event queue, the received change event is placed uncombined in the queue.

Die Änderungsereignis-Warteschlange wird regelmäßig überprüft und alle Änderungsereignisse, die sich über einen vorbestimmten Zeitraum in der Änderungsereignis-Warteschlange befinden, werden zur weiteren Verarbeitung an den FETCHER versendet (nicht spezifisch abgebildet).  The change event queue is periodically checked and any change events that are in the change event queue for a predetermined period of time are sent to the FETCHER for further processing (not specifically shown).

5c ist ein Flussdiagramm, das eine allgemeine Betriebsübersicht des EREIGNIS-AGGREGATOR 561 gemäß einem Aspekt der vorliegenden Offenbarung darstellt. Im Bezug auf In 5c wird erwähnt, dass am Block 562 der EREIGNIS-AGGREGATOR 561 ein Änderungsereignis von einem lokalen WATCHER erhält. Nach Erhalt des Änderungsereignisses bei Block 563 überprüft der EREIGNIS-AGGREGATOR das empfangene Änderungsereignis, um zu sehen, ob es mit einem weiteren empfangenen Änderungsereignis kombiniert werden kann, das bereits in der Änderungsereignis-Warteschlange platziert wurde. 5c is a flowchart illustrating a general operation overview of the EVENT AGGREGATOR 561 according to one aspect of the present disclosure. In terms of In 5c it is mentioned that at the block 562 the EVENT AGGREGATOR 561 gets a change event from a local WATCHER. After receiving the change event at block 563 the EVENT AGGREGATOR checks the received change event to see if it can be combined with another received change event already placed in the change event queue.

Wenn das empfangene Änderungsereignis mit dem Änderungsereignis in der Änderungsereignis-Warteschlange kombiniert werden kann, wird das empfangene Änderungsereignis mit dem Änderungsereignis in der Warteschlange am Block 564 kombiniert und das kombinierte Änderungsereignis wird am Block 565 in der Warteschlange platziert. If the received change event can be combined with the change event in the change event queue, the received change event with the change event is queued at the block 564 combined and the combined change event is at the block 565 placed in the queue.

Wenn das empfangene Änderungsereignis nicht mit dem Änderungsereignis in der Warteschlange am Block 564 kombiniert werden kann, wird das empfangene Änderungsereignis unkombiniert am Block 565 in der Änderungsereignis-Warteschlange platziert. If the received change event does not match the change event in the queue at the block 564 can be combined, the received change event is uncombined at the block 565 placed in the change event queue.

Die Änderungsereignis-Warteschlange wird regelmäßig am Block 566 geprüft, um zu sehen, ob irgendwelche Änderungsereignisse in der Warteschlange sich über einen bestimmten Zeitraum dort befanden, der den vorbestimmten Zeitraum überschreitet. Ist dies der Fall, wird dieses Änderungsereignis aus der Warteschlangeentfernt und am Block 567 zur Verarbeitung an den FETCHER gesendet. The change event queue is periodically at the block 566 checked to see if any change events in the queue were there for a certain period of time exceeding the predetermined time period. If so, this change event is removed from the queue and at the block 567 sent to the FETCHER for processing.

Wie erwähnt und gemäß einem weiteren Aspekt der vorliegenden Offenbarung, kann der EREIGNIS-AGGREGATOR 561 basierend auf bekannten/erlernten Mustern, die erkennbar sind, empfangene Ereignisse mit Ereignissen, die sich bereits in der Warteschlange befinden, kombinieren. Insbesondere kann der EREIGNIS-AGGREGATOR bestimmte Ereigniskombinationen aus bekannten Mustern von empfangenen Änderungssequenzen, beobachteten Dateitypen, erkannten ausführbaren Programmen, ausführende Prozesse usw. erkennen und er kann aus diesen Daten die besonderen Änderungen feststellen, und diese Informationen verwenden, um Kombinationen zu erzeugen. As mentioned and in accordance with another aspect of the present disclosure, the EVENT AGGREGATOR 561 based on known / learned patterns that are recognizable, combine received events with events already in the queue. In particular, the EVENT AGGREGATOR can recognize certain event combinations from known patterns of received change sequences, observed file types, recognized executable programs, executing processes, etc., and can determine the particular changes from these data and use that information to create combinations.

Wir wenden uns nun 6 zu, die ein schematisches Blockdiagramm des Betriebs eines Cloud-WATCHER 640 und eines lokalen WATCHER (Typ-2) 630 an einem repräsentativen SyncCLIENT 610 gemäß einem Aspekt der vorliegenden Offenbarung veranschaulicht. Wie in 6, generiert der Cloud-WATCHER 640 einen Cloud-Graph 642, der den aktuellen Status des beobachteten Cloud-Dateisystems 680 wiedergibt. Nach der Generierung des Cloud-Graphen 642 generiert der Cloud-WATCHER 640 regelmäßig eine aktuelle Cloud-Statusrepräsentation 644 und stellt anschließend jegliche Unterschiede zwischen den beiden fest. Findet er einen Unterschied zwischen dem Cloud-Graphen 642 und der aktuellen Cloud-Statusrepräsentation 644, generiert der Cloud-WATCHER 640 eine FS-Änderung (Dateisystem-Änderungsmitteilung) und sendet diese an den FETCHER (nicht spezifisch abgebildet). Wie zuvor im Bezug auf die Erörterung von 5 erwähnt, werden die FS-Änderungsmitteilungen vom FETCHER verwendet, um Arbeitsobjekte zu generieren, die an die WORKERS gesendet werden (nicht spezifisch abgebildet). We turn now 6 to which is a schematic block diagram of the operation of a cloud WATCHER 640 and a local WATCHER (Type 2) 630 at a representative syncCLIENT 610 in accordance with one aspect of the present disclosure. As in 6 , the cloud WATCHER generates 640 a cloud graph 642 , which is the current status of the observed cloud file system 680 reproduces. After the generation of the cloud graph 642 generates the cloud WATCHER 640 regularly a current cloud status representation 644 and then notice any differences between the two. Does he find a difference between the cloud graph 642 and the current cloud status representation 644 , the cloud WATCHER generates 640 a FS change (file system change message) and sends it to the FETCHER (not specifically shown). As before with respect to the discussion of 5 The FS change messages are used by the FETCHER to generate work items that are sent to the WORKERS (not specifically shown).

In einer bevorzugten Ausführungsform kann die aktuelle Cloud-Statusrepräsentation 644 durch eine sortierte Liste von Änderungen repräsentiert werden, die an Objekten innerhalb des Cloud-Dateisystems vorgenommen wurden, wie dem SyncCLIENT gemeldet wurde. Der Cloud-Graph 642 kann bevorzugt als eine Wörterbuchstruktur dargestellt werden, die einen Ressourcen-ID-Schlüssel umfasst, worin the Wörterbucheinträge wie folgt aussehen können – zusätzlich zur Resscourcen-ID – sämtliche Dateiename(n), Checksum(s) und Zeitstempel. In a preferred embodiment, the current cloud status representation 644 represented by an ordered list of changes made to objects within the cloud file system as reported to the SyncCLIENT. The cloud graph 642 may preferably be represented as a dictionary structure comprising a resource ID key wherein the dictionary entries may look like - in addition to the resource ID - all the file name (s), checksum (s), and timestamps.

Ähnlich überwacht der lokale WATCHER (Typ-2) 630 das beobachtete lokale Dateisystem 615 über zum Beispiel des FS-Ereignis API, die Ordnerebenen-Änderungsmitteilungen versendet. Nach Erhalt von Ordnerebenen-Änderungsmitteilungen generiert der lokale WATCHER (Typ-2) 630 eine aktuelle lokale Statusrepräsentation 634, die auf den aktuellen Status des beobachteten lokalen Dateisystems 615 hinweist. Der lokale WATCHER (Typ-2) 630 vergleicht regelmäßig eine aktuelle Cloud-Statusrepräsentation 634 mit einem zuvor generierten lokalen Graphen 632 und stellt anschließend jegliche Unterschiede zwischen den beiden fest. Wird ein Unterschied zwischen der aktuellen Cloud-Statusrepräsentation 634 und dem lokalen Graphen 632 bemerkt, generiert der lokale WATCHER 630 eine FS-Änderung und sendet diese an den EREIGNIS-AGGREGATOR (nicht spezifisch abgebildet). Wie zuvor im Bezug auf 5a und 5b beschrieben, bewahrt der EREIGNIS-AGGREGATOR Änderungen für einen gewissen Zeitraum auf; und wenn mehrere Änderungen von zugehörigen Objekten oder bestimmte bekannte Muster erkannt werden, kann der EREIGNIS-AGGREGATOR diese erhaltenen FS-Änderungsereignisse in höherstufige kohärente Ereignisse abändern, die anschließend zur weiteren Bearbeitung an den FETCHER gesendet werden. Similarly, the local WATCHER (type 2) monitors 630 the observed local file system 615 via for example the FS event API, which sends folder level change messages. After receiving folder level change messages, the local WATCHER (type 2) generates 630 a current local status representation 634 indicating the current status of the observed local file system 615 points. The local WATCHER (type 2) 630 regularly compares a current cloud status representation 634 with a previously generated local graph 632 and then notice any differences between the two. Will make a difference between the current cloud status representation 634 and the local graph 632 noticed, the local WATCHER generates 630 a FS change and sends it to the EVENT AGGREGATOR (not specifically shown). As before regarding 5a and 5b described, the EVENT AGGREGATOR preserves changes for a certain period of time; and when detecting multiple changes from related objects or certain known patterns, the EVENT AGGREGATOR may modify these received FS change events into higher-level coherent events, which are then sent to the FETCHER for further processing.

6a ist ein schematisches Blockdiagramm, das den Erhalt und die Aktualisierung des aktuellen Cloud-Status 644 darstellt. Wie in dieser 6a dargestellt, kann der aktuelle Cloud-Status 644 von einem Änderungsprotokoll 646 festgestellt werden, das der SyncCLIENT 610 von der Cloud empfängt. In einer Beispiel-Ausführungsform umfasst ein derartiges Änderungsprotokoll 646 wie in FIG 26a dargestellt ist, eine sortierte Liste von Änderungen, die am Cloud-Dateisystem 680 vorgenommen wurden, die relevant für den entsprechenden SyncCLIENT 610 und/oder ein bestimmtes Konto ist. 6a is a schematic block diagram showing the receipt and updating of the current cloud status 644 represents. Like in this one 6a shown, the current cloud status 644 from a change log 646 be determined that the SyncCLIENT 610 receives from the cloud. In an example embodiment, such a change log comprises 646 As shown in FIG. 26a, a sorted list of changes made to the cloud file system 680 that are relevant to the corresponding SyncCLIENT 610 and / or a specific account.

Vorteilhaft und gemäß einem Aspekt der vorliegenden Offenbarung wird die sortierte Liste von Änderungen, die am Cloud-Dateisystem 680 vorgenommen wurden, die im Änderungsprotokoll 646 enthalten sind, bereits bei deren Erhalt beim SyncCLIENT 610 aggregiert. Folglich erfordert die sortierte Liste von Änderungen, die vom Cloud-Dateisystem über das Änderungsprotokoll 646 empfangen wurden, keine weitere Aggregation, wie diese die Änderungen benötigen, die wie oben beschrieben vom lokalen WATCHER beobachtet wurden. Advantageous, and in accordance with one aspect of the present disclosure, is the sorted list of changes made to the cloud file system 680 have been made in the change log 646 already on receipt at SyncCLIENT 610 aggregated. Consequently, the sorted list of changes required by the cloud file system via the change log requires 646 no further aggregation as they need the changes observed by the local WATCHER as described above.

In einer besonderen Beispielausführungsform umfasst das Änderungsprotokoll 646 für ein bestimmtes Konto eine Reihe von Eingaben, einschließlich eines Hinweises auf den aktuellen Status eines Objekts; ob ein Objekt in den Papierkorb verschoben wurde und ob ein Objekt aus dem Papierkorb gelöscht wurde. Wir weisen darauf hin, dass diese Beispielliste von Einträgen im Änderungsprotokoll als repräsentativ und nicht als vollständig angesehen werden muss. Folglich können zusätzliche Einträge, die auf den Status eines Objekts hinweisen über das Änderungsprotokoll bereit gestellt werden. Wie es sich unter Sachkundigen versteht, können diese Einträge in das Änderungsprotokoll vom Cloud-WATCHER verwendet werden, um FS-Änderungsereignisse zu generieren, die an den FETCHER weitergeleitet werden. In a particular example embodiment, the change log includes 646 for a given account, a series of inputs, including an indication of the current status of an object; whether an item has been moved to the recycle bin and whether an item has been deleted from the recycle bin. Please note that this sample list of entries in the change log must be considered representative rather than complete. Consequently, additional entries indicative of the status of an object may be provided via the change log. As is understood by those skilled in the art, these entries can be used in the Cloud WATCHER change log to generate FS change events that are passed to the FETCHER.

Mit Referenz zu 7, ist hier eine schematische Darstellung eines schematischen Blockdiagramms dargestellt, das die Generierung von Arbeitsobjekten und deren anschließende Verarbeitung durch den repräsentativen SynchCLIENT 710 gemäß einem Aspekt der vorliegenden Offenbarung zeigt. Wie hier gezeigt und zuvor beschrieben, ein oder mehrere FS-Änderungsereignisse werden vom Cloud-WATCHER 740 oder vom EREIGNIS-AGGREGATOR 735 als Arbeitsobjekte an den FETCHER 720 gesendet, wo sie anschließend in einer sortierten Arbeitswarteschlange 726 platziert werden. With reference to 7 , here is a schematic representation of a schematic block diagram illustrating the generation of work objects and their subsequent processing by the representative SynchCLIENT 710 according to one aspect of the present disclosure. As shown and previously described, one or more FS change events are provided by the Cloud WATCHER 740 or from the EVENT AGGREGATOR 735 as work objects to the FETCHER 720 then sent to a sorted work queue 726 to be placed.

Insbesondere bei Erhalt der Arbeitsobjekte 725 arrangiert der FETCHER 720 die empfangenen Arbeitsobjekte 725 so, dass sie in einer vorgegebenen Reihenfolge abgearbeitet werden. Des Weiteren werden die Arbeitsobjekte 725[1]...725[n] in eine Arbeitswarteschlange 726 eingegeben, die von ältestem nach neuestem Eintrag sortiert ist. Diesbezüglich serialisiert der FETCHER 720 durch die Wirkung der Arbeitswarteschlange 726 die Arbeitsobjekte 725[1]...725[n], bevor er sie an die Workers 750[1]...750[n] zur gleichzeitigen Verarbeitung verteilt. Especially when receiving the work objects 725 arranged the FETCHER 720 the received work objects 725 so that they are processed in a predetermined order. Of Further become the work objects 725 [1] ... 725 [n] into a work queue 726 entered, which is sorted from oldest to newest entry. In this regard, the FETCHER serializes 720 through the effect of the work queue 726 the work objects 725 [1] ... 725 [n] before sending it to the workers 750 [1] ... 750 [n] distributed for simultaneous processing.

An dieser Stelle erwähnen wir erneut, dass, während wird die Verarbeitung von Arbeitsobjekten durch WORKERS 750[1]...750[n] als gleichzeitig erledigt beschrieben haben, in einer Verarbeitungsanordnung mit mehreren Prozessoren oder mehreren Cores (Multiprozessor oder Multicore) möglich ist, in kontemporären Computersystemen die tatsächliche Verarbeitung von mehreren Arbeitsobjekten durch mehrere WORKERS 750[1]...750[n] parellel laufen zu lassen, wobei jeder Worker-Thread von einem individuellen Prozessor oder Core ausgeführt werden kann. At this point we reiterate that while there will be WORKERS processing work items 750 [1] ... 750 [n] have been described as being done simultaneously in a processing arrangement having multiple processors or multiple cores (multiprocessor or multicore), in contemporary computer systems the actual processing of multiple work objects by multiple WORKERS 750 [1] ... 750 [n] parallel, where each worker thread can be executed by an individual processor or core.

Dementsprechend wird signifikanter Durchsatz von gemeinsamem Nutzen und Synchronisierung durch diese Anordnung mit mehreren WORKERS erreicht, wenn diese gleichzeitig oder parallel arbeiten. Ähnliche Leistungsvorteile werden auch als Ergebnis des Cloud-WATCHER 740 und des lokalen WATCHER 730 erzielt, die gleichzeitig oder parallel zueinander arbeiten, je nach der jeweiligen Computersystemhardware und Systemsoftware, die vom SyncCLIENT 710 verwendet wird. Accordingly, significant throughput of shared benefit and synchronization is achieved by this arrangement with multiple WORKERS operating concurrently or in parallel. Similar performance benefits are also seen as a result of Cloud WATCHER 740 and the local WATCHER 730 which work simultaneously or in parallel, depending on the particular computer system hardware and system software used by the SyncCLIENT 710 is used.

Mit Bezug auf 8, wird ein schematisches Blockdiagramm 800 der Serialisierung der Arbeitsobjekte 825[1]...825[n] durch FETCHER 820 dargestellt. Wir hier dargestellt, werden die eingehenden Arbeitsobjekte 825[1]...825[n] in einer Arbeitswarteschlange 826 vom ältestem nach neuestem Eintrag sortiert angeordnet. Regarding 8th , becomes a schematic block diagram 800 the serialization of the work objects 825 [1] ... 825 [n] through FETCHER 820 shown. We presented here, the incoming work objects 825 [1] ... 825 [n] in a work queue 826 arranged from oldest to newest entry sorted.

Betriebsmäßig prüft der FETCHER 820 alle Arbeitsobjekte in der Arbeitswartschlange 826 und bestimmt, ob das jeweilige Arbeitsobjekt von WORKERS 850[1]...850[n] verarbeitet werden kann (oder nicht). In dieser in 8 dargestellten Ausführungsform prüft der FETCHER 820 sequenziell die Arbeitsobjekte 825[1]...825[n] in der Arbeitswarteschlange 826, beginnend mit dem ältesten und fortfahrend mit dem neuesten, um zu bestimmen, welche Abhängigkeiten – sofern zutreffend – vom jeweiligen geprüften Arbeitsobjekt aufgezeigt werden. Wenn ein geprüftes Arbeitsobjekt 825[1]...825[n] in der Arbeitswarteschlange 826 von irgendwelchen Einträge in der Abhängigkeitskarte 890 betroffen ist, wird zu diesem Zeitpunkt als nicht verarbeitungsfähig bestimmt. Operationally the FETCHER checks 820 all work items in the work queue 826 and determines if the work object is WORKERS 850 [1] ... 850 [n] can be processed (or not). In this in 8th In the illustrated embodiment, the FETCHER checks 820 sequentially the work objects 825 [1] ... 825 [n] in the work queue 826 Starting with the oldest and continuing with the newest, to determine which dependencies - if applicable - are identified by the particular work object being tested. If a checked work object 825 [1] ... 825 [n] in the work queue 826 of any entries in the dependency card 890 is determined to be unworkable at this time.

Wie in 8 dargestellt, umfasst die Abhängigkeitskarte 890 eine Liste von Strukturen, die durch Operationen betroffen sein können, die von einem der Vielzahl von WORKERS 850[1]...850[n] zu einem beliebigen Zeitpunkt ausgeführt werden. Einträge in die Abhängigkeitskarte 890, die wichtig sind und 8 dargestellt werden umfassen: Inoden 891, Ressourcen-ID(s) 892, und Dateinamen, usw. 893. Zusätzliche Abhängigkeiten, die nicht spezifisch in 8 dargestellt sind, umfassen Dateinamen von übergeordneten, untergeordneten Objekten und jenen auf der gleichen Ebene. As in 8th shown, includes the dependency card 890 a list of structures that may be affected by operations performed by one of the multitude of WORKERS 850 [1] ... 850 [n] be executed at any time. Entries in the dependency card 890 that are important and 8th include: inodes 891 , Resource ID (s) 892 , and filenames, etc. 893 , Additional dependencies that are not specific in 8th include filenames of parent, child, and those at the same level.

Sachkundige wissen sofort, dass eine Inode eine Datenstruktur ist, die von kontemporären Betriebssystemen zum Speichern von Informationen zu einer Datei, einem Verzeichnis oder anderen Dateisystemobjekten verwendet wird. Inoden speichern Informationen zu Dateien und Verzeichnissen (Ordnern), wie deren Eigentümer, ihr Modus und ihr Typ. Dateien sind mit einer bestimmten Inode verknüpft, die durch eine Integerzahl (Inodenzahl) identfiziert werden. One skilled in the art knows immediately that an inode is a data structure used by contemporaneous operating systems to store information about a file, directory, or other file system object. Inodes store information about files and directories (folders), such as their owner, mode, and type. Files are linked to a specific inode, which is identified by an integer number (inode number).

Ähnlich ist eine Ressourcen-ID eine Kennung, die Cloud-Objekte, wie z. B. Dateien eindeutig identifiziert. Entsprechend würde eine solche Ressource-ID eine bestimmte Datei, die im Cloud-Dateisystem gespeichert ist, eindeutig identifizieren. Similarly, a resource ID is an identifier that includes cloud objects, such as cloud objects. For example, files are uniquely identified. Accordingly, such resource ID would uniquely identify a particular file stored in the cloud file system.

Schließlich sind Dateinamen allgemeine Metadaten zu einer Datei. Häufig sind Dateinamen Strings, die zur Identifizierung (bevorzugt eindeutig) der Datei verwendet werden, die elektronisch in einem Dateisystem gespeichert ist. Häufig enthalten Dateinamen zusätzliche Komponenten, wie z. B. einen Pfad, der mit der Datei verknüpft ist, einen Namen, der mit der Datei verknüpft ist, einen Typ, der mit der Datei verknüpft ist sowie eine Version, die mit der Datei verknüpft ist. Finally, filenames are general metadata about a file. Often, file names are strings that are used to identify (preferably uniquely) the file that is stored electronically in a file system. Often, filenames contain additional components, such as: For example, a path associated with the file, a name associated with the file, a type associated with the file, and a version associated with the file.

Zum Vorteil und gemäß einem anderen Aspekt der vorliegenden Offenbarung, pflegt der FETCHER 820 die Abhängigkeitskarte 890, die Abhängigkeiten identifiziert, die aktuell von Arbeitsobjekten betroffen sind, an denen die WORKERS 850[1]...850[n] arbeiten. Entsprechend prüft der FETCHER 820 die Arbeitsobjekte 825[1]...825[n] in der Arbeitswarteschlange 826, und vergleicht anschließend die Abhängigkeiten, die vom geprüften Arbeitsobjekt beeinflusst werden mit jeglichen Abhängigkeiten in der Abhängigkeitskarte 890. Wenn diese Abhängigkeiten, die vom geprüften Arbeitsobjekt betroffen sind, sich in der Abhängigkeitskarte 890 befinden, wird das jeweilige Arbeitsobjekt übersprungen und der FETCHER 820 prüft das nächste Arbeitsobjekt in der Arbeitswarteschlange 826. For the benefit and in accordance with another aspect of the present disclosure, the FETCHER maintains 820 the dependency card 890 that identifies dependencies that are currently affected by work objects where the WORKERS 850 [1] ... 850 [n] work. Accordingly, the FETCHER checks 820 the work objects 825 [1] ... 825 [n] in the work queue 826 , and then compares the dependencies that are affected by the inspected work object with any dependencies in the dependency map 890 , If these dependencies that are affected by the checked work item are in the dependency map 890 the respective work object is skipped and the FETCHER 820 checks the next work item in the work queue 826 ,

Wir möchten an dieser Stelle erwähnen, dass es bevorzugt wird, die Reihenfolge der Arbeitsobjekte 825[1]...825[n] beizubehalten, selbst, wenn ein bestimmtes Arbeitsobjekt übersprungen wird. Entsprechend wird die Arbeitswarteschlange 826 im FETCHER 820 immer in der Reihenfolge ältester nach neuestem Eintrag sein. We would like to mention at this point that it is preferred the order of work objects 825 [1] ... 825 [n] even if a particular work item is skipped. Accordingly, the work queue 826 in the FETCHER 820 always be in the order oldest after newest entry.

Wenn ein bestimmtes Arbeitsobjekt als verarbeitungsfähig erklärt wird, d. h. wenn seine betroffenen Abhängigkeiten sich nicht in der Abhängigkeitskarte 890 befinden, wird dieses Arbeitsobjekt zur Verarbeitung an einen WORKER 850[1]...850[n] weitergeleitet. When a particular work item is declared workable, that is, its affected dependencies are not in the dependency card 890 This work item is sent to a WORKER for processing 850 [1] ... 850 [n] forwarded.

Jedes Mal, wenn ein Arbeitsobjekt zur Verabeitung an einen WORKER weitergeleitet wird, werden die betroffenen Abhängigkeiten in der Abhängigkeitskarte 890 aufgezeigt. Umgekehrt wird die Abhängigkeitskarte 890 jedes Mal, wenn ein WORKER ein Arbeitsobjekt fertigstellt, aktualisiert, um anzuzeigen, dass er nicht mehr an diesem Satz Abhängigkeiten arbeitet. Each time a work item is forwarded to a WORKER for processing, the affected dependencies become in the dependency map 890 demonstrated. Conversely, the dependency card 890 Each time a WORKER finishes a work item, it updates to indicate that it is no longer working on that set of dependencies.

Wenn ein WORKER ein bestimmtes Arbeitsobjekt fertigstellt, prüft der FETCHER 820 erneut die Arbeitswarteschlange 820, beginnend mit dem ältesten Arbeitsobjekt 825[1] in der Arbeitswarteschlange 820 und mit Scan auf das neueste Arbeitsobjekt 825[n] in der Arbeitswarteschlange 826. When a WORKER completes a particular work item, the FETCHER checks 820 the work queue again 820 , starting with the oldest work object 825 [1] in the work queue 820 and with scan to the newest work object 825 [n] in the work queue 826 ,

Wie Sachkundige schätzen werden, werden Arbeitsobjekte in der Arbeitswarteschlange 826, die zuvor übersprungen wurden (z. B. aufgrund Abhängigkeitskonflikten), neu gescannt und verarbeitet, wenn diese Feststellung vom FETCHER 820 gemacht wird. Ein weiterer Vorteil ist, dass, da der FETCHER 820 sicherstellt, dass keine zwei Arbeitsobjekte, die an die WORKERS geschickt werden Abhängigkeitskonflikte aufweisen, keine Verriegelungen erforderlich sind und daher eine hohe Gleichzeitigkeit und/Parallelismus in den Arbeiten der WORKERS erzielt werden. As experts will estimate, work items are in the work queue 826 which were previously skipped (eg due to dependency conflicts), rescanned and processed, if this statement was made by FETCHER 820 is done. Another advantage is that, since the FETCHER 820 Ensures that no two work objects sent to the WORKERS are subject to conflicts of interdependence, no interlocks are required and therefore a high level of simultaneity and / / parallelism is achieved in WORKERS 'work.

9 zeigt eine Veranschaulichung eines Computersystems 900, das sich gemäß einem Aspekt der vorliegenden Offenbarung zur Implementierung von Verfahren und Systemen eignet. Das Computersystem kann z. B. einen Computer umfassen, der eine beliebige Anzahl an Betriebssystemen enthält. Die oben beschriebenen Verfahren für die vorliegende Offenbarung kann auf dem Computersystem 900 als gespeicherte Programmsteuerungsanweisungen implementiert werden. 9 shows an illustration of a computer system 900 According to one aspect of the present disclosure, that is suitable for implementing methods and systems. The computer system can, for. For example, a computer containing any number of operating systems. The methods described above for the present disclosure may be on the computer system 900 be implemented as stored program control statements.

Das Computersystem 900 umfasst den Prozessor 910, Speicher 920, Speichergerät 930, und Eingangs-/Ausgangsstruktur 940. Ein oder mehrere Eingangs-/Ausgangsgeräte können einen Bildschirm 945 umfassen. Ein oder mehrere Busse 950 verbinden gewöhnlich die Komponenten 910 920, 930, und 940 miteinander. Der Prozessor 910 kann einen einzelnen oder mehrfachen Core enthalten. The computer system 900 includes the processor 910 , Storage 920 , Storage device 930 , and input / output structure 940 , One or more input / output devices can have a screen 945 include. One or more buses 950 usually connect the components 910 920 . 930 , and 940 together. The processor 910 can contain a single or multiple core.

Processor 910 führt Anweisungen aus, in denen die Ausführungsformen der vorliegenden Offenbarungen Schritte umfassen können, die in einer oder mehreren Abbildungen beschrieben werden. Diese Anweisungen können im Speicher 920 oder im Speichergerät 930 gespeichert werden. Daten und/oder Informationen können über ein oder mehrere Eingangs-/Ausgangsgeräte empfangen und ausgegeben werden. Processor 910 executes instructions in which the embodiments of the present disclosure may include steps described in one or more figures. These instructions can be stored in memory 920 or in the storage device 930 get saved. Data and / or information can be received and output via one or more input / output devices.

Speicher 920 kann Daten speichern und kann ein computerlesbares Medium sein, wie z. B. flüchtiger oder nichtflüchtiger Speicher. Das Speichergerät 930 kann das System 900 speichern, einschließlich z. B. die oben beschriebenen Verfahren. In mehreren Aspekten kann es sich bei dem Speichergerät 930 um einen Flash-Speicher, ein Disklaufwerk, ein optisches Laufwerk oder ein Bandgerät handeln, das magnetische, optische oder andere Aufzeichnungstechnologien nutzt. Storage 920 can store data and can be a computer readable medium, such as: B. volatile or non-volatile memory. The storage device 930 can the system 900 save, including z. B. the methods described above. In several aspects, the storage device may be 930 a flash memory, a disk drive, an optical drive, or a tape device that uses magnetic, optical, or other recording technologies.

Eingangs-/Ausgangsstrukturen 940 können Eingangs-/Ausgangsoperationen für das System 900 ausführen. Eingangs-/Ausgangsgeräte, die diese Strukturen verwenden, können z. B. Tastenfelder, Bildschirme 945, Mauszeiger und Mikrofone umfassen. Wie veranschaulicht und wie es sich unter Sachkundigen versteht, kann das Computersystem 900 gemäß der vorliegenden Offenbarung in einem Desktop-Computerpaket 960, einem Laptop-Computer 970, einem tragbaren Computer, wie z. B. einem Tablet, PDA oder Smartphone 980a, oder einem oder mehreren Servercomputern implementiert werden, die vorteilshaft einen „Cloud“-Computer 990 umfassen. Input / output structures 940 can input / output operations for the system 900 To run. Input / output devices that use these structures can, for. B. keypads, screens 945 , Mouse pointers and microphones. As illustrated and as is understood by those skilled in the art, the computer system 900 according to the present disclosure in a desktop computer package 960 , a laptop computer 970 , a portable computer, such as As a tablet, PDA or smartphone 980a , or one or more server computers that advantageously have a "cloud" computer 990 include.

An dieser Stelle, während wir diese Offenbarung mit einigen spezifischen Beispielen präsentiert haben, werden Sachkundige bald erkennen, dass unsere Lehren nicht so eingeschränkt sind. Entsprechend darf diese Offenbarung nur durch das Ausmaß der Ansprüche eingeschränkt werden, die diesem Dokument beigefügt wurden. At this point, as we have presented this revelation with some specific examples, experts will soon realize that our teachings are not so limited. Accordingly, this disclosure may be limited only by the scope of the claims attached hereto.

Claims (47)

Ein System zur gemeinsamen Nutzung und Synchronisierung von elektronisch in einem Cloud-System gespeicherten Dateien, bestehend aus einem Computergerät, einschließlich eines Prozessors und eines mit diesem Prozessor gekoppelten Speichers, auf dem wiederum computerausführbare Anweisungen gespeichert sind, bei deren Ausführung durch den Prozessor das System wie folgt reagiert: es erhält eine Nachricht von der Cloud, dass eine Datei erstellt und in einem Cloud-Dateisystem elektronisch gespeichert wurde; es stellt fest, ob die elektronisch gespeicherte Datei auf das System kopiert werden muss und als Ergebnis dieser Feststellung; kopiert es die generierte Datei auf das System; andernfalls speichert es eine elektronisch gespeicherte Datei in einem lokalen Dateisystem, die einen Link zur Datei enthält, die elektronisch im Cloud-Dateisystem gespeichert ist. A system for sharing and synchronizing files electronically stored in a cloud system, comprising a computing device, including a processor and memory coupled to that processor, which in turn stores computer-executable instructions as executed by the processor, such as the system follows: it receives a message from the cloud that a file has been created and electronically stored in a cloud file system; it determines whether the electronically stored file needs to be copied to the system and as a result of that determination; copies the generated file to the system; otherwise, it stores an electronically stored file in a local file system that contains a link to the file that is stored electronically in the cloud file system. System nach Anspruch 1, worin die generierte Datei einen bestimmten Typ aufweist und die Feststellung gemäß Dateityp der generierten Datei gemacht wird. The system of claim 1, wherein the generated file has a certain type and the determination is made according to the file type of the generated file. System nach Anspruch 1, worin die elektronisch im lokalen Dateisystem gespeicherte Datei einen Typ aufweist, der auf eine Datei hinweist, die in der Cloud erstellt wurde. The system of claim 1, wherein the file electronically stored in the local file system has a type indicative of a file created in the cloud. System nach Anspruch 1, worin der Link über einen Browser Zugriff auf die elektronisch im Cloud-Dateisystem gespeicherte Datei erlaubt. The system of claim 1, wherein the link via a browser allows access to the file stored electronically in the cloud file system. System nach Anspruch 1, worin der Link einen Uniform Resource Locator (URL) umfasst. The system of claim 1, wherein the link comprises a Uniform Resource Locator (URL). System nach Anspruch 1, worin der Link eine Ressourcen-ID der elektronisch gespeicherten Datei umfasst. The system of claim 1, wherein the link comprises a resource ID of the electronically stored file. System nach Anspruch 1, worin die besagte generierte Datei aus dem Cloud-Computersystem stammt.  The system of claim 1, wherein said generated file is from the cloud computer system. System nach Anspruch 7, worin die besagte generierte Datei aus den Cloud-Computerservices generiert wurde und einen Typ aufweist, der aus der folgenden Gruppe stammt: Dokumente, Tabellen, Präsentationen, Zeichnungen, Formulare und Cloud-Sites. The system of claim 7, wherein said generated file is generated from the cloud computer services and has a type coming from the group of: documents, spreadsheets, presentations, drawings, forms, and cloud sites. System nach Anspruch 8, worin die besagten Cloud-Computerservices Services beinhalten, die aus der folgenden Gruppe ausgewählt wurden: Textverarbeitung, Tabelle, Graphiken, Kalender und Cloud-Siteanwendungen. The system of claim 8, wherein said cloud computer services include services selected from the group consisting of word processors, spreadsheets, graphics, calendars, and cloud site applications. System nach Anspruch 1, worin die besagte generierte Datei von einer Drittanbieteranwendung erstellt wurde. The system of claim 1, wherein said generated file was created by a third-party application. System nach Anspruch 1, worin die besagte generierte Datei einen Typ aufweist, der auf deren Erstellung durch eine Drittanbieteranwendung hinweist. The system of claim 1, wherein said generated file has a type indicative of its creation by a third-party application. System nach Anspruch 1, worin der besagte Link Zugriff auf eine Cloud-Site erlaubt. The system of claim 1, wherein said link allows access to a cloud site. Computerimplementiertes System zur Synchronisierung von elektronisch gespeicherten Dateien zwischen einem Client-Dateisystem und einem Cloud-Dateisystem, umfassend: einen Cloud-Watcher, der ein Änderungsprotokoll erhält, das auf den Status des Cloud-Dateisystems hinweist, und der Änderungen am Cloud-Dateisystem erkennt und der als Reaktion auf die erkannten Änderungen im Cloud-Dateisystem Arbeitsobjekte generiert; einen lokalen Watcher, der gleichzeitig das Client-Dateisystem überwacht und Änderungen daran erkennt und als Reaktion auf the erkannten Client-Dateisystemänderungen Arbeitsobjekte generiert; einen Fetcher, der die Zuweisung ausgewählter Arbeitsobjekte an Workers serialisiert; und eine Vielzahl von Workers, die gleichzeitig ihnen zugewiesene Arbeitsobjekte abarbeiten; worin die Arbeitsobjekte Dateioperationen sind, die zu einer Synchronisierung zwischen dem Client-Dateisystem und dem Cloud-Dateisystem führen.  A computer-implemented system for synchronizing electronically stored files between a client file system and a cloud file system, comprising: a cloud watcher that receives a change log that indicates the status of the cloud file system and that detects changes to the cloud file system and that generates work objects in response to the detected changes in the cloud file system; a local watcher that simultaneously monitors and identifies changes to the client file system and generates work objects in response to the detected client file system changes; a fetcher that serializes the assignment of selected work objects to Workers; and a large number of workers who simultaneously process their assigned work objects; wherein the work objects are file operations that result in synchronization between the client file system and the cloud file system. Computerimplementiertes System nach Anspruch 13, das einen Ereignis-Aggregator umfasst, der eine Reihe der erkannten Client-Dateisystemänderungen aggregiert, so dass die aggregierten Änderungen zur Generierung von Arbeitsobjekten verwendet werden. The computer-implemented system of claim 13, comprising an event aggregator that aggregates a number of the recognized client file system changes such that the aggregated changes are used to generate work objects. Computerimplementiertes System nach Anspruch 13, das einen Snapshot umfasst, der auf den aktuellen Synchronisierungszustand zwischen dem Client-Dateisystem und dem Cloud-Dateisystem hinweist. The computer-implemented system of claim 13, comprising a snapshot indicating the current state of synchronization between the client file system and the cloud file system. Computerimplementiertes System nach Anspruch 13, das eine Blacklist von Arbeitsobjekten enthält, die nicht an Workers zugewiesen werden sollen. The computer-implemented system of claim 13 including a blacklist of work objects that are not to be assigned to workers. Computerimplementiertes System nach Anspruch 13, das einen lokalen Graph enthält, der auf einen Zustand des lokalen Dateisystems hinweist. The computer-implemented system of claim 13 including a local graph indicative of a state of the local file system. Computerimplementiertes System nach Anspruch 13, das einen Cloud-Graph enthält, der auf einen Zustand des Cloud-Dateisystems hinweist. The computer-implemented system of claim 13, including a cloud graph indicative of a state of the cloud file system. Computerimplementiertes System nach Anspruch 18, bei dem der Fetcher eine Abhängigkeitskarte beinhaltet, die vom Fetcher vor der Zuweisung von ausgewählten Arbeitsobjekten an Workers referenziert wird. The computer-implemented system of claim 18, wherein the fighter includes a dependency map referenced by the fighter prior to the assignment of selected work items to workers. Computerimplementiertes System nach Anspruch 18, worin die Abhängigkeitskarte Hinweise von bestimmten Inoden beinhaltet, die durch die aktuellen Handlungen der Workers beeinflusst werden.  The computer-implemented system of claim 18, wherein the dependency map includes indications of particular inodes that are affected by the current actions of the workers. Computerimplementiertes System nach Anspruch 18, worin die Abhängigkeitskarte Hinweise von bestimmten Ressourcen-IDs beinhaltet, die durch die aktuellen Handlungen der Workers beeinflusst werden. The computer-implemented system of claim 18, wherein the dependency map includes indications of particular resource IDs that are affected by the current actions of the workers. Computerimplementiertes System nach Anspruch 18, worin die Abhängigkeitskarte Dateinamen von Dateien beinhaltet, die durch die aktuellen Handlungen der Workers beeinflusst wird.  The computer-implemented system of claim 18, wherein the dependency map includes file names of files that are affected by the current actions of the workers. Computerimplementiertes System nach Anspruch 18, worin der Fetcher eine Arbeitswarteschlange von Arbeitsobjekten beinhaltet, die vom ältesten zum neuesten sortiert ist.  The computer-implemented system of claim 18, wherein the fetcher includes a work queue of work items sorted from oldest to newest. Ein Computer-Speichermedium mit computerausführbare Anweisungen, die, wenn sie von einem Computer ausgeführt werden, dazu führen, dass der Computer die folgenden Operationen durchführt: das Empfangen eines Änderungsprotokolls, das auf den Status des Cloud-Dateisystems hinweist, das Erkennen der Änderungen am Cloud-Dateisystem und das Generieren von Dateisystem-Operationen als Reaktion auf die erkannten Änderungen im Cloud-Dateisystem; das gleichzeitige Überwachen des Client-Dateisystems, das Erkennen der Änderungen an einer oder mehreren Dateien, die elektronisch im Client-Dateisystem gespeichert sind, das Aggregieren einer Reihe der Änderungen im Client-Dateisystem, und das Verwenden der aggregierten Änderungen zum Generieren von Dateisystem-Operationen als Reaktion auf die erkannten Änderungen im Client-Dateisystem; das serielle Sortierren der Dateisystem-Operationen von den ältesten zu den neuesten; und das gleichzeitige Ausführen der Dateisystem-Operationen, so dass die erkannten Änderungen an einer Datei in einem der Dateisysteme auf eine Datei des anderen Dateisystems repliziert werden können.  A computer storage device with computer-executable instructions that, when executed by a computer, causes the computer to perform the following operations: receiving a change log indicative of the status of the cloud file system, detecting the changes to the cloud file system, and generating file system operations in response to the detected changes in the cloud file system; simultaneously monitoring the client file system, detecting the changes to one or more files electronically stored in the client file system, aggregating a number of the changes in the client file system, and using the aggregated changes to generate file system operations in response to the detected changes in the client file system; the serial sorting of file system operations from oldest to newest; and concurrently performing the file system operations so that the detected changes to a file in one of the file systems can be replicated to a file of the other file system. Computer-Speichermedium nach Anspruch 24, das dazu führt, dass der Computer die folgenden Operationen ausführt: das Vergleichen eines aktuellen Status des Cloud-Dateisystems mit einem Graphen, so dass jegliche Änderungen an Dateien im Cloud-Dateisystem ermittelt werden. The computer storage medium of claim 24, which causes the computer to perform the following operations: comparing a current state of the cloud file system to a graph so that any changes to files in the cloud file system are detected. Computer-Speichermedium nach Anspruch 24, das dazu führt, dass der Computer die folgenden Operationen ausführt: Das Vergleichen der ermittelten Änderungen mit einer Snapshotstruktur, die auf den aktuellen Synchronisierungszustand zwischen dem Client-Dateisystem und dem Cloud-Dateisystem hinweist. The computer storage medium of claim 24, which causes the computer to perform the following operations: Comparing the detected changes to a snapshot structure indicating the current state of synchronization between the client file system and the cloud file system. Ein Computersystem, das Programmanweisungen umfasst, die so angepasst sind, dass sie zur gemeinsamen Nutzung und Synchronisierung von elektronisch gespeicherten Dateien zwischen einem Client-Dateisystem und einem Cloud-Dateisystem ausgeführt werden, umfassend: Mittel zum Empfangen einer Reihe von Änderungsereignissen, worin jedes Änderungsereignis auf eine unabhängige Änderung am Client-Dateisystem hinweist; Mittel zum Aufbewahren der empfangenen Änderungsereignisse für einen bestimmten Zeitraum; Mittel zum Ermitteln dessen, ob irgendwelche der aufbewahrten Änderungsereignisse mit anderen empfangenen Änderungsereignissen kombiniert werden können; Mittel zum Kombinieren der kombinierbaren Änderungsereignisse zu einem aggregierten Änderungsereignis; und Mittel zum Versenden eines Änderungsereignisses zur Verarbeitung, nachdem es für einen vorbestimmten Zeitraum aufbewahrt wurde; worin die Verarbeitung des versendeten Änderungsereignisses eine Synchronisierung einer elektronisch gespeicherten Datei zwischen dem Client-Dateisystem und dem Cloud-Dateisystem bewirkt. A computer system comprising program instructions adapted to be executed for sharing and synchronizing electronically stored files between a client file system and a cloud file system, comprising: Means for receiving a series of change events, wherein each change event indicates an independent change to the client file system; Means for keeping the received change events for a certain period of time; Means for determining whether any of the stored change events can be combined with other received change events; Means for combining the combinable change events into an aggregate change event; and Means for sending a change event for processing after it has been stored for a predetermined period of time; wherein processing the dispatched change event causes synchronization of an electronically stored file between the client file system and the cloud file system. Computersystem nach Anspruch 27, das des Weiteren Folgendes umfasst: Mittel zum Aufbewahren des aggregierten Änderungsereignisses für einen weiteren Zeitraum; und Mittel zum Ermitteln dessen, ob das aufbewahrte aggregierte Änderungsereignis mit anderen Änderungsereignissen kombiniert werden kann. The computer system of claim 27, further comprising: Means for keeping the aggregated change event for a further period of time; and means for determining whether the retained aggregated change event can be combined with other change events. Computersystem nach Anspruch 28, ferner umfassend: Mittel zum Versenden eines Änderungsereignisses zur Verarbeitung, nachdem es für einen vorbestimmten Zeitraum aufbewahrt wurde. The computer system of claim 28, further comprising: Means for sending a change event for processing after it has been stored for a predetermined period of time. Computersystem nach Anspruch 29, worin das versendete Änderungsereignis eine Synchronisierung einer elektronisch gespeicherten Datei zwischen einem Dateisystem und einem Cloud-Dateisystem bewirkt. The computer system of claim 29, wherein the dispatched change event effects synchronization of an electronically stored file between a file system and a cloud file system. Computersystem nach Anspruch 29, ferner umfassend: Mittel zum Ermitteln dessen, ob ein empfangenes Änderungsereignis ein Teil eines erkennbaren Musters ist.  The computer system of claim 29, further comprising: Means for determining if a received change event is part of a recognizable pattern. Computersystem nach Anspruch 31, worin das besagte Mittel zum Ermitteln des erkennbaren Musters, die beobachteten Dateitypen verwendet, die mit den empfangenen Änderungen verknüpft sind, um diese Feststellung machen zu können. The computer system of claim 31, wherein said recognizable pattern determining means uses the observed file types associated with the received changes to make this determination. Computersystem nach Anspruch 31, worin das besagte Mittel zum Ermitteln des erkennbaren Musters, die erkannten ausführbaren Programme verwendet, die mit den empfangenen Änderungen verknüpft sind, um diese Feststellung machen zu können. The computer system of claim 31, wherein said means for determining the recognizable pattern uses the recognized executable programs associated with the received changes to make this determination. Computersystem nach Anspruch 31, worin das besagte Mittel zum Ermitteln des erkennbaren Musters, die erkannten ausführenden Prozesse verwendet, die mit den empfangenen Änderungen verknüpft sind, um diese Feststellung machen zu können. The computer system of claim 31, wherein said means for determining the recognizable Pattern that uses detected executing processes associated with the received changes to make that determination. Ein Computer-Speichermedium, das computerausführbare Anweisungen umfasst, die, wenn sie von einem Computer ausgeführt werden, dazu führen, dass der Computer die folgenden gemeinsamen Nutzungs- und Synchronisierungs-Operationen durchführt: das Empfangen einer Reihe von Änderungsereignissen, worin jedes Änderungsereignis auf eine unabhängige Änderung am Client-Dateisystem hinweist; dem Aufbewahren des empfangenen Änderungsereignisses für einen bestimmten Zeitraum; das Ermitteln dessen, ob irgendwelche der aufbewahrten Änderungsereignisse mit anderen empfangenen Änderungsereignissen kombiniert werden können; und das Kombinieren der kombinierbaren Änderungsereignissen zu einem aggregierten Änderungsereignis; und das Senden und Verarbeiten des aggregierten Änderungsereignisses; worin die Verarbeitung des versendeten Änderungsereignisses eine Synchronisierung einer elektronisch gespeicherten Datei zwischen einem Dateisystem, das mit dem versendeten Änderungsereignis verknüpft ist und einem Cloud-Dateisystem bewirkt. A computer storage device that includes computer-executable instructions that, when executed by a computer, cause the computer to perform the following common usage and synchronization operations: receiving a series of change events, wherein each change event indicates an independent change to the client file system; keeping the received change event for a certain period of time; determining if any of the stored change events can be combined with other received change events; and combining the combinable change events into an aggregate change event; and sending and processing the aggregate change event; wherein the processing of the dispatched change event causes a synchronization of an electronically stored file between a file system associated with the dispatched change event and a cloud file system. Computer-Speichermedium nach Anspruch 35, das dazu führt, dass der Computer die folgenden Operationen durchführt, umfassend: das Aufbewahren des aggregierten Änderungsereignisses für einen weiteren Zeitraum; und das Ermitteln dessen, ob das aufbewahrte aggregierte Änderungsereignis mit anderen Änderungsereignissen kombiniert werden kann. A computer storage medium according to claim 35, which causes the computer to perform the following operations, comprising: keeping the aggregated change event for a further period of time; and determining whether the retained aggregated change event can be combined with other change events. Computer-Speichermedium nach Anspruch 36, das dazu führt, dass der Computer die folgenden Operationen ausführt, umfassend: das Aggregieren des aggregierten Änderungsereignisses mit einem weiteren Änderungsereignis. The computer storage medium of claim 36, which causes the computer to perform the following operations, comprising: aggregating the aggregated change event with another change event. Computer-Speichermedium nach Anspruch 36, das dazu führt, dass der Computer die folgenden Operationen ausführt, umfassend: das Versenden eines Änderungsereignisses zur Verarbeitung, nachdem es für einen vorbestimmten Zeitraum aufbewahrt wurde; worin die Verarbeitung des versendeten Änderungsereignisses eine Synchronisierung zwischen einem Dateisystem, das mit dem versendeten Änderungsereignis verknüpft ist und einem Cloud-Dateisystem bewirkt. The computer storage medium of claim 36, which causes the computer to perform the following operations, comprising: sending a change event for processing after it has been stored for a predetermined period of time; wherein the processing of the dispatched change event causes synchronization between a file system associated with the dispatched change event and a cloud file system. Ein Computer-Speichermedium mit computerausführbare Anweisungen, die, wenn sie von einem Computer ausgeführt werden, dazu führen, dass der Computer die folgenden Operationen durchführt: das Ermitteln dessen, ob eine elektronisch in einem Cloud-Dateisystem gespeicherte Datei mit einer Reihe von Verzeichnissen im Cloud-Dateisystem verknüpft ist; und das Generieren der Anzahl an Replikaten der elektronisch gespeicherten Datei im Client-Dateisystem – eines für jedes Verzeichnis.  A computer storage device with computer-executable instructions that, when executed by a computer, causes the computer to perform the following operations: determining whether an electronically stored file in a cloud file system is associated with a series of directories in the cloud file system; and Generating the number of replicas of the electronically stored file in the client file system - one for each directory. Computer-Speichermedium nach Anspruch 39 mit computerausführbare Anweisungen, die, wenn sie von einem Computer ausgeführt werden, dazu führen, das der Computer die folgenden Operation durchführt, umfassend: das Generieren der Anzahl an lokalen Verzeichnissen im Client-Dateisystem – eines für jedes Verzeichnis. The computer storage medium of claim 39 comprising computer-executable instructions that, when executed by a computer, cause the computer to perform the following operation, comprising: Generating the number of local directories in the client file system - one for each directory. Computer-Speichermedium nach Anspruch 40, worin jedes der lokalen Verzeichnisse ein Replikat der elektronisch gespeicherten Datei enthält. The computer storage medium of claim 40, wherein each of the local directories includes a replica of the electronically stored file. Computer-Speichermedium nach Anspruch 41, worin jedes Replikat einen Link zur elektronisch im Cloud-Dateisystem gespeicherten Datei umfasst. The computer storage medium of claim 41, wherein each replica includes a link to the file stored electronically in the cloud file system. Computer-Speichermedium nach Anspruch 42 mit computerausführbare Anweisungen, die, wenn sie von einem Computer ausgeführt werden, dazu führen, das der Computer die folgende Operation durchführt, umfassend: das Zugreifen über einen Browser, der den Link verwendet, auf die elektronisch im Cloud-Dateisystem gespeicherte Datei. The computer storage medium of claim 42 comprising computer-executable instructions which, when executed by a computer, cause the computer to perform the following operation, comprising: accessing via a browser using the link to the file stored electronically in the cloud file system. Ein Computer-Speichermedium mit computerausführbare Anweisungen, die, wenn sie von einem Computer ausgeführt werden, dazu führen, dass der Computer die folgenden Operationen durchführt: das Sortieren der Arbeitsobjekte in einer Warteschlange vom ältesten zum neuesten; das sequenzielle Prüfen der Arbeitsobjekte in der Warteschlange vom ältesten zum neuesten und das Ermitteln dessen, ob Abhängigkeiten für das entsprechende geprüfte Arbeitsobjekt vorliegen; und das Versenden des geprüften Arbeitsobjekts an einen Worker-Thread zur Verarbeitung, wenn keine Abhängigkeiten für dieses Arbeitsobjekt ermittelt wurden, oder andernfalls das Fortfahren mit der Überprüfung des nächsten Arbeitsobjekts in der Warteschlange; worin die relative Reihenfolge der Arbeitsobjekte in der Warteschlange, die nicht versendet werden beibehalten wird; und worin das versendete Arbeitsobjekt die gemeinsame Nutzung und die Synchronisierung einer elektronisch gespeicherten Datei zwischen einem Client-Dateisystem und einem Cloud-Dateisystem bewirkt. A computer storage device with computer-executable instructions that, when executed by a computer, causes the computer to perform the following operations: sorting the work items in a queue from oldest to newest; sequentially checking the work items in the queue from oldest to newest and determining if there are any dependencies for the corresponding checked work item; and sending the checked work object to a worker thread for processing if no dependencies have been detected for that work object, or otherwise proceeding with checking the next work object in the queue; wherein the relative order of the work items in the queue that are not sent is maintained; and wherein the dispatched work item effects the sharing and synchronization of an electronically stored file between a client file system and a cloud file system. Computer-Speichermedium nach Anspruch 44, das dazu führt, dass der Computer die folgenden Operationen ausführt, umfassend: das Vergleichen eines aktuellen Status des Cloud-Dateisystems mit einem Graphen, so dass jegliche Änderungen an Dateien im Cloud-Dateisystem ermittelt werden. The computer storage medium of claim 44, which causes the computer to perform the following operations, comprising: comparing a current status of the cloud file system with a graph to determine any changes to files in the cloud file system. Computer-Speichermedium nach Anspruch 45, das dazu führt, dass der Computer die folgenden Operationen ausführt, umfassend: das Vergleichen von Abhängigkeiten, die vom geprüften Arbeitsobjekt mit Einträgen in die Abhängigkeitskarte beeinflusst werden. The computer storage medium of claim 45, which causes the computer to perform the following operations, comprising: comparing dependencies that are influenced by the checked work object with entries in the dependency map. Computer-Speichermedium nach Anspruch 44, das dazu führt, dass der Computer die folgenden Operationen ausführt, umfassend: das Einstellen von Abhängigkeiten in der Abhängigkeitskarte für das versendete Arbeitsobjekt und Freigabe der Abhängigkeiten in der Abhängigkeitskarte für das versendete Arbeitsobjekt nach Fertigstellung des versendeten Arbeitsobjekts durch den Worker-Thread. The computer storage medium of claim 44, which causes the computer to perform the following operations, comprising: setting dependencies in the dependency map for the dispatched work object and releasing the dependencies in the dependency map for the dispatched work object after the worker object completes the dispatched work object.
DE202013012504.7U 2012-04-23 2013-04-02 Share and synchronize electronically stored files Expired - Lifetime DE202013012504U1 (en)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US13/453,678 US9239846B2 (en) 2012-04-23 2012-04-23 Sharing and synchronizing electronically stored files
US13/453,799 US8949179B2 (en) 2012-04-23 2012-04-23 Sharing and synchronizing electronically stored files
US13/453,909 2012-04-23
US13/453,909 US9529818B2 (en) 2012-04-23 2012-04-23 Sharing and synchronizing electronically stored files
US13/453,860 2012-04-23
US13/453,860 US20130282830A1 (en) 2012-04-23 2012-04-23 Sharing and synchronizing electronically stored files
US13/453,748 2012-04-23
US13/453,748 US9244934B2 (en) 2012-04-23 2012-04-23 Sharing and synchronizing electronically stored files
US13/453,799 2012-04-23
US13/453,678 2012-04-23

Publications (1)

Publication Number Publication Date
DE202013012504U1 true DE202013012504U1 (en) 2017-01-30

Family

ID=58054583

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202013012504.7U Expired - Lifetime DE202013012504U1 (en) 2012-04-23 2013-04-02 Share and synchronize electronically stored files

Country Status (2)

Country Link
CN (3) CN108804213B (en)
DE (1) DE202013012504U1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149727A (en) * 2023-09-18 2023-12-01 上海鸿翼软件技术股份有限公司 File processing method, device, equipment and storage medium

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109977081A (en) * 2019-01-31 2019-07-05 维沃移动通信有限公司 A kind of content sharing method and terminal device
CN112214177B (en) * 2020-11-05 2021-10-15 腾讯科技(深圳)有限公司 Data storage method, device and medium

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7490116B2 (en) * 2003-01-23 2009-02-10 Verdasys, Inc. Identifying history of modification within large collections of unstructured data
US8156090B1 (en) * 2005-12-22 2012-04-10 Unisys Corporation Maintaining file name uniqueness in an application development environment of a computing system
US8825758B2 (en) * 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
CN105373592B (en) * 2008-06-19 2019-01-11 安德鲁·利布曼 Novel media file access and storage solution for multi-workstation/multi-platform non-linear video editing system
US8219524B2 (en) * 2008-06-24 2012-07-10 Commvault Systems, Inc. Application-aware and remote single instance data management
US9614924B2 (en) * 2008-12-22 2017-04-04 Ctera Networks Ltd. Storage device and method thereof for integrating network attached storage with cloud storage services
US8296338B2 (en) * 2009-05-05 2012-10-23 Entangled Media Corp. Method for a cloud-based meta-file system to virtually unify remote and local files across a range of devices' local file systems
CN101741911B (en) * 2009-12-18 2014-04-30 中兴通讯股份有限公司 Multi-copy collaboration-based write operation method, system and node
US9390263B2 (en) * 2010-03-31 2016-07-12 Sophos Limited Use of an application controller to monitor and control software file and application environments
CN101902498B (en) * 2010-07-02 2013-03-27 广州鼎甲计算机科技有限公司 Network technology based storage cloud backup method
CN101986663A (en) * 2010-11-29 2011-03-16 北京卓微天成科技咨询有限公司 OTP-based cloud storage data storing method, device and system
CN102035884B (en) * 2010-12-03 2013-01-23 华中科技大学 Cloud storage system and data deployment method thereof
CN102307221A (en) * 2011-03-25 2012-01-04 国云科技股份有限公司 Cloud storage system and implementation method thereof
CN102404406A (en) * 2011-12-02 2012-04-04 上海海洋大学 Marine real-time data synchronization system based on private cloud storage
CN102377827A (en) * 2011-12-13 2012-03-14 方正国际软件有限公司 Multilevel cloud storage system and storage method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149727A (en) * 2023-09-18 2023-12-01 上海鸿翼软件技术股份有限公司 File processing method, device, equipment and storage medium

Also Published As

Publication number Publication date
CN108804213A (en) 2018-11-13
CN108717454A (en) 2018-10-30
CN108710533A (en) 2018-10-26
CN108804213B (en) 2022-04-19
CN108717454B (en) 2022-07-15
CN108710533B (en) 2022-04-19

Similar Documents

Publication Publication Date Title
US12086109B2 (en) Sharing and synchronizing electronically stored files
US9244934B2 (en) Sharing and synchronizing electronically stored files
US9529818B2 (en) Sharing and synchronizing electronically stored files
US20130282830A1 (en) Sharing and synchronizing electronically stored files
US12056142B2 (en) Content capture across diverse sources
US20230185671A1 (en) Past-state backup generator and interface for database systems
CN104685485B (en) Share and synchronize electronically stored files
DE102016103769B4 (en) Incremental replication of a source dataset
US20190095455A1 (en) File system point-in-time restore using recycle bin and version history
DE69733391T2 (en) Network archiving system and storage medium which stores a program to produce a network archiving system
DE112023000995B4 (en) INTELLIGENT LAYER CONTROL OF REDUNDANT CONTENT IN CONTAINER IMAGES
DE202016007901U1 (en) Data flow - window and trigger function
US20210350303A1 (en) Task list for tasks created at a third-party source
DE202014010953U1 (en) Grouping objects in a distributed data storage system based on protocols and placement policies
DE202010018490U1 (en) Architectural pattern for persistent web application design
DE102013204972A1 (en) Hybrid backup and recovery of a very large file system using metadata image backup and traditional backup
DE202014010898U1 (en) Hierarchical denomination of objects in a decentralized storage system
US20200133786A1 (en) Restoring a directory to a state prior to a past synchronization event
US20220417251A1 (en) Team member transfer tool
DE202021004546U1 (en) Interface for processing sensor data with hyperscale services
CN102946411A (en) Network synchronization system
DE202015009292U1 (en) Generation of an activity flow
CN102946410A (en) Method and device for network synchronization
DE102019005368A1 (en) Improve conflict resolution within synchronized constituent-based digital assets
DE102012223167A1 (en) Sharing artifacts between collaborative systems

Legal Events

Date Code Title Description
R150 Utility model maintained after payment of first maintenance fee after three years
R207 Utility model specification
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: MAIKOWSKI & NINNEMANN PATENTANWAELTE PARTNERSC, DE

R151 Utility model maintained after payment of second maintenance fee after six years
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016178000

R152 Utility model maintained after payment of third maintenance fee after eight years
R071 Expiry of right