DE202017106594U1 - Bereitstellen von Zugriff auf eine in einem Datenspeichersystem gespeicherte Datei - Google Patents

Bereitstellen von Zugriff auf eine in einem Datenspeichersystem gespeicherte Datei Download PDF

Info

Publication number
DE202017106594U1
DE202017106594U1 DE202017106594.4U DE202017106594U DE202017106594U1 DE 202017106594 U1 DE202017106594 U1 DE 202017106594U1 DE 202017106594 U DE202017106594 U DE 202017106594U DE 202017106594 U1 DE202017106594 U1 DE 202017106594U1
Authority
DE
Germany
Prior art keywords
file
version
storage server
external storage
metadata
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.)
Active
Application number
DE202017106594.4U
Other languages
English (en)
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
Application filed by Google LLC filed Critical Google LLC
Publication of DE202017106594U1 publication Critical patent/DE202017106594U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1873Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Abstract

Computerprogrammprodukt umfassend Befehle, die, wenn sie auf einem oder mehr Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, ein Verfahren zum Bereitstellen von Zugriff auf eine auf einem externen Speicherserver gespeicherte Datei auszuführen, wobei das Verfahren Folgendes umfasst:Empfangen, auf einem Anwendungsserver, der mehrere Anwendungen hostet, und von einem Benutzergerät, einer Dateizugriffsanforderung, um eine auf dem externen Speicherserver gespeicherte Datei zuzugreifen;Senden, an den externen Speicherserver, eine Metadaten-und-Inhalts-Anforderung bezüglich der Datei, wobei die Metadaten-und-Inhalts-Anforderung Versionsinformationen einer zuvor im Cache gespeicherten Version der auf dem Anwendungsserver im Cache gespeicherten Datei beinhaltet; undwenn die im Cache gespeicherte Version der Datei nicht die angeforderte Version der Datei ist:Empfangen von Inhalt der angeforderten Version der Datei von dem externen Speicherserver,Speichern der angeforderten Version auf dem Anwendungsserver, um die zuvor im Cache gespeicherte Version zu ersetzen, undBereitstellen der angeforderten Version der Datei an das Benutzergerät über die entsprechende Anwendung auf dem Anwendungsserver.

Description

  • Gebiet der Erfindung
  • Allgemein betrifft diese Offenbarung die Dateiverwaltung in einer externen Zugriffsumgebung, insbesondere Systeme und Computerprogramprodukte zum Bereitstellen von Zugriff auf eine in einem externen Dateispeichersystem gespeicherte Datei.
  • Hintergrund
  • Ein Benutzer muss gelegentlich auf eine Vielzahl von Dateien zugreifen und bearbeiten. Der Benutzer kann beispielsweise eine Textverarbeitungsdatei, eine Tabellenkalkulationsdatei, eine Datenspeicherdatei, eine Programmtextdatei, Präsentationsfolien, eine E-Mail-Nachrichtendatei, eine Bilddatei, eine Videodatei oder eine andere Art von Datei zu öffnen oder zu bearbeiten haben. Jede dieser Dateien kann eine jeweilige spezielle Softwareanwendung erfordern, um die jeweilige Datei zu öffnen oder zu bearbeiten. Deshalb muss der Benutzer üblicherweise die erforderliche spezielle Software auf einem lokalen Computer installieren, um die verschiedenen Dateitypen zu öffnen. Wenn eine spezifische Software auf dem Gerät des Benutzers nicht verfügbar ist, ist der Benutzer dann nicht in der Lage, auf einen bestimmten Dateityp zuzugreifen und damit zu arbeiten.
  • Wenn der Benutzer versucht, eine auf einem externen Server gespeicherte Datei zu öffnen und zu bearbeiten, ist es häufig durch bestehende Dokumentensysteme erforderlich, dass der Benutzer die Datei von dem externen Server auf den lokalen Computer des Benutzers herunterlädt, so dass der Benutzer die Datei mittels einer spezifischen lokal installierten Softwareanwendung öffnen kann. Das Herunterladen der extern gespeicherten Datei und das Erfordernis, eine Vielfalt von Softwareanwendungen lokal zu installieren, um mit verschiedenen Dateitypen zu arbeiten, kann ressourcenineffizient sein. Darüber hinaus, wenn der Benutzer ein mobiles Gerät wie etwa ein Smartphone betreibt, dem entweder die Kapazität, eine Computeranwendung zu installieren, oder der Speicherplatz, um eine Datei herunterzuladen, fehlt, wird jener Zugriff auf die Datei undurchführbar.
  • Kurzdarstellung
  • Systeme und Computerprogrammprodukte, die hier offenbart sind, stellen einen Mechanismus bereit, um Zugang zu einer in einem externen Datenspeichersystem gespeicherten Datei bereitzustellen. Ein Anwendungsserver, der eine Vielzahl von Anwendungen hostet, wird verwendet, um einem Benutzergerät zu gestatten, eine Datei zu öffnen, die in einem externen Datenspeichersystem gespeichert ist, ohne dass das Benutzergerät eine Kopie der Datei herunterzuladen oder eine diesbezügliche Anwendung lokal zu installieren hat. Das Benutzergerät sendet eine Dateizugriffsanforderung an den Anwendungsserver über eine Benutzerschnittstelle, die durch den externen Speicherserver bereitgestellt ist, um auf eine in dem externen Speicherserver gespeicherte Datei Zugriff zu erhalten. Der Anwendungsserver kann dann gegebenenfalls eine entsprechende Anwendung zum Zugreifen auf die Datei identifizieren und eine Metadaten-und-Inhalts-Anforderung betreffend die Datei an den externen Server senden. Die Metadaten-und-Inhalts-Anforderung beinhaltet Versionsinformationen einer vorher im Cache gespeicherten Version der Datei, die im Cache auf dem Anwendungsserver gespeichert ist. Beim Empfangen der Metadaten-und-Inhalts-Anforderung verifiziert der externe Speicherserver, ob die im Cache gespeicherte Version der Datei die aktuellste Version darstellt aufgrund der von der Metadaten-und-Inhalts-Anforderung empfangenen Versionsinformationen. Wenn die im Cache gespeicherte Version nicht die aktuellste Version ist, empfängt der Anwendungsserver die aktuellste Version der Datei vom externen Speicherserver, welche zum Ersetzen der zuvor im Cache gespeicherten Version verwendet wird. Die aktuellste Version der Datei wird dann über die entsprechende Anwendung auf dem Anwendungsserver dem Benutzergerät zur Verfügung gestellt. Auf diese Weise kann ein Benutzer die aktuellste Version einer in dem externen Speicherserver gespeicherten Datei öffnen, kommentieren oder bearbeiten, ohne die Datei auf das Benutzergerät herunterzuladen oder lokal eine entsprechende Anwendung auf dem Benutzergerät zu installieren.
  • Figurenliste
  • Die vorgenannten und andere Merkmale der vorliegenden Offenbarung einschließlich ihrer Beschaffenheit und verschiedenen Vorteile werden verständlicher, wenn man die folgende ausführliche Beschreibung unter Hinzuziehung der zugehörigen Zeichnungen berücksichtigt, in denen:
    • 1 gemäß einer beispielhaften Ausführungsform ein beispielhaftes Datenflussdiagramm bereitstellt, das die Datennachrichtenübertragung zum Bereitstellen von Zugriff auf eine in einem externen Datenspeichersystem gespeicherte Datei zwischen einem Benutzergerät, einem Anwendungsserver und einem externen Speicherserver darstellt;
    • 2 gemäß einer beispielhaften Ausführungsform ein beispielhaftes Logikflussdiagramm ist, das Aspekte von Arbeitsabläufen an einem Anwendungsserver zum Bereitstellen von Zugriff auf eine auf einem externen Speicherserver gespeicherte Datei darstellt;
    • 3 gemäß einer beispielhaften Ausführungsform ein beispielhaftes Flussdiagramm bereitstellt, das Aspekte des Erstellens einer neuen Datei in dem externen Speicherserver von einem Benutzergerät über eine Anwendungsprogrammschnittstelle (application program interface - API) darstellt;
    • 4 gemäß einer beispielhaften Ausführungsform ein beispielhaftes Flussdiagramm bereitstellt, das Aspekte des Öffnens einer Datei in dem externen Speicherserver zum Ansehen, Kommentieren oder Bearbeiten von einem Benutzergerät über die API darstellt; und
    • 5 gemäß einer beispielhaften Ausführungsform ein Blockdiagramm eines Computers ist wie etwa jede Komponente des in 1 implementierten Systems zum Bereitstellen jedes hier beschriebenen Prozesses.
  • Ausführliche Beschreibung
  • Um ein allgemeines Verständnis der hier beschriebenen Systeme und Verfahren bereitzustellen, werden nun bestimmte Ausführungsformen beschrieben, einschließlich eines Systems und Verfahrens zum Bereitstellen von Zugriff auf eine in einem externen Datenspeichersystem gespeicherte Datei. Allerdings ist es für Fachleute auf dem Gebiet selbstverständlich, dass die hier beschriebenen Systeme und Verfahren für die jeweiligen Anwendungen entsprechend abgeändert und angepasst werden können, und dass die hier beschriebenen Systeme und Verfahren außerdem in anderen geeigneten Anwendungen eingesetzt werden können, und dass diese Zusätze und Änderungen dabei nicht vom Umfang der Erfindung abweichen. Im Allgemeinen können die hier beschriebenen computerisierten Systeme eine oder mehrere Treiber umfassen, die einen Prozessor oder Rechner, wie einen Computer, einen Mikroprozessor, ein Logikgerät oder ein anderes Gerät oder einen Prozessor umfassen, der mit Hardware, Firmware und Software bestückt ist, um eine oder mehrere der hier beschriebenen computerisierten Methoden durchzuführen.
  • In einer Ausführungsform wird hier ein Mechanismus zum Bereitstellen von Zugriff auf eine in einem externen Datenspeichersystem gespeicherte Datei erörtert. Ein Protokoll wird einem externen Anwendungsserver bereitgestellt, um mit einem externen Speicherserver zu kommunizieren, sodass der externe Anwendungsserver eine Anwendung starten kann, um auf eine ursprünglich in dem externen Speicherserver gespeicherte Datei zuzugreifen und an ihr Vorgänge durchzuführen. Konkret sendet der externe Anwendungsserver eine Anfangsanforderung an den externen Speicherserver über eine Anwendungsprogrammschnittstelle (Application Programming Interface - API) von Metadaten und Inhalt, die mit einer Datei verbunden sind, auf die ein Benutzer zuzugreifen versucht. Der externe Speicherserver kann wiederum verifizieren, ob der externe Anwendungsserver die aktuellste Version der angeforderten Datei aufweist, und sendet die aktuellste Version der angeforderten Datei an den Anwendungsserver, falls der Anwendungsserver nicht die aktuellste Version aufweist. Auf diese Weise kann der externe Anwendungsserver die aktuellste Version einer Datei öffnen, ohne dass der Benutzer entweder die Datei auf ein lokales Gerät herunterladen muss oder eine spezifische Anwendung lokal installieren muss, um auf die Datei zuzugreifen und sie zu bearbeiten.
  • Ein Benutzer kann beispielsweise versuchen, eine auf einem externen Speicherserver gespeicherte Datei über eine externe Speicherbenutzerschnittstelle zu öffnen, z. B. eine browserbasierte Schnittstelle. Eine Zugriffsanforderung wird dann über die browserbasierte Schnittstelle an einen externen Anwendungsserver gesendet, um eine entsprechende Anwendung zu starten, um die angeforderte Datei zu öffnen. Der externe Anwendungsserver sendet eine Anforderung von Metadaten und Inhalt, die mit der Datei verbunden sind, an den externen Speicherserver. Die Metadaten-und-Inhalts-Anforderung kann eine einzige Anforderung sein, die Anforderungen sowohl von aktualisierten Metadaten und aktualisiertem Inhalt einer Datei beinhaltet. Die Metadaten-und-Inhalts-Anforderung beinhaltet mindestens eine Inhaltsversion der Datei, die momentan im Cache auf dem externen Anwendungsserver gespeichert ist. Bei Empfang der Metadaten-und-Inhalts-Anforderung bestimmt der externe Speicherserver, ob die Inhaltsversion die aktuellste Version der Datei ist, und sendet wiederum die aktuellste Version der Datei an den externen Anwendungsserver. Auf diese Weise kann der externe Anwendungsserver die aktuellste Version der angeforderten Datei für den Benutzer öffnen.
  • Gemäß einer beispielhaften Ausführungsform stellt 1 ein beispielhaftes Diagramm 100 bereit, das Datenflüsse zwischen einem Benutzergerät 101a-c (hier gemeinsam als 101 bezeichnet), einem Anwendungsserver 120 und einem externen Speicherserver 110 zum Bereitstellen von Zugriff auf eine in einem externen Datenspeichersystem gespeicherte Datei darstellt. Die eine oder mehreren Einheiten einschließlich, unter anderem, des Benutzergeräts 101, des Anwendungsservers 120, des externen Speicherservers 110 kommunizieren über ein oder mehrere Kommunikationsnetzwerke.
  • Das Benutzergerät 101 beinhaltet verschiedene persönliche Geräte wie etwa, unter anderem, ein Smartphone, einen Laptop-Computer, einen Desktop-Computer, eine Workstation, einen Tablet-Computer, ein Personal Digital Assistant (PDA) oder dergleichen. Ein Benutzer kann das Benutzergerät 101 bedienen, um mit dem externen Speicherserver 110 und/oder dem Anwendungsserver 120 zu kommunizieren.
  • Der externe Speicherserver 110 kann von einem externen Provider gehostet werden, der von dem Anwendungsserver 120 oder dem Benutzergerät 101 unabhängig ist. Der externe Speicherserver 110 kann beispielsweise physisch getrennt, in einer anderen Domain gehostet, Eigentum einer anderen Einheit oder dergleichen von jeglichem des Benutzergeräts 101 oder des Anwendungsservers 120 sein. Oder, alternativ dazu, kann der externe Speicherserver 110 dieselbe öffentliche oder private Cloud mit dem Anwendungsserver 120 teilen. Der externe Speicherserver 110 kann dem Benutzergerät 101 eine Dateispeicherbenutzerschnittstelle 105 bereitstellen, sodass ein Benutzer mit in dem externen Speicherserver 110 gespeicherten Dateien über die Benutzerschnittstelle 105 interagieren kann. Die Benutzerschnittstelle 105 kann eine mobile Anwendung (z. B. auf einem Smartphone oder Tablet-Computer usw.) oder eine browserbasierte Anwendung (z. B. auf einem Computer usw.) oder dergleichen beinhalten. Eine browserbasierte Anwendung wird in diesem gesamten Dokument als ein Beispiel für eine Benutzerschnittstelle 105 verwendet.
  • Innerhalb der Dateispeicherbenutzerschnittstelle 105 kann der Benutzer konfigurieren oder vorab konfigurieren, wie eine Datei zu öffnen ist. Ein Benutzer kann beispielsweise eine oder mehrere Dateien vorab konfigurieren, von Anwendungen aus dem Anwendungsserver 120 öffenbar zu sein, bevor der Benutzer versucht, eine jegliche Datei zu öffnen, oder der Benutzer kann auf ein Datei-Icon rechtsklicken und „Öffnen mit“ wählen, um eine Anwendung aus dem Anwendungsserver 120 als die Anwendung zu konfigurieren, die die Datei öffnet. Wenn der Benutzer eine Datei auswählt, um auf sie über die Dateispeicherbenutzerschnittstelle 105 zuzugreifen, falls der Benutzer eine Anwendung aus dem Anwendungsserver 120 als Standardanwendung vorab konfiguriert hat oder eine Anwendung aus dem Anwendungsserver 120 ausgewählt hat, um die Datei auf die Schnelle zu öffnen, sendet das Benutzergerät 101 eine Dateizugriffsanforderung 108 an den Anwendungsserver 120. Die Dateizugriffsanforderung beinhaltet Informationen wie etwa, unter anderem, einen Dateiidentifikator, einen Speicherserveridentifikator, einen Dateityp, einen Benutzergerätidentifikator und/oder dergleichen. In einigen Umsetzungen können der Dokumentidentifikator, der Speicherserveridentifikator und gegebenenfalls Protokollpuffer kombiniert und in eine Zeichenkette kodiert werden, und die Zeichenkette ist als ein Schlüssel in der Dateizugriffsanforderung zur Übertragung enthalten.
  • In einigen Implementierungen ist der Anwendungsserver 120 ein einzelner Server, der verschiedene Anwendungen hostet. In einigen Implementierungen beinhaltet der Anwendungsserver 120 mehrere Server für verteilte Anwendungen. Beispielsweise hostet jeder Server für verteilte Anwendungen einen Anwendungstyp wie etwa Dokumentenverarbeitungsanwendungen, Softwareentwicklungsanwendungen, Datenbankverwaltungsanwendungen und/oder dergleichen.
  • In einigen Umsetzungen, wie ferner in Verbindung mit 3-4 erörtert, erfolgt die Dateizugriffsanforderung 108 in Form einer Hypertext Transfer Protocol (HTTP) POST-Anforderung, die angenommen werden kann, wenn die Dateizugriffsanforderung 108 aus einer Browserschnittstelle oder einer mobilen Anwendung des Speicherservers generiert wird. Konkret wird die HTTP POST-Anforderung innerhalb eines strukturellen Tags des Hyper Text Markup Language (HTML)-Quelltexts der Browserseite, z. B. dem <iframe>-Tag usw. generiert, wenn der Speicherserver eine browserbasierte Anwendung am Benutzergerät einsetzt. Das strukturelle Tag definiert einen Bereich auf der Browserseite, innerhalb dessen die angeforderte Datei oder das Dokument angezeigt werden kann.
  • Eine Dateianwendungsprogrammschnittstelle (file application programming interface - API) 130 wird implementiert, sodass der Anwendungsserver 120 Metadaten und Inhalt der Datei aus dem externen Speicherserver 110 erhalten kann. Der Anwendungsserver 120 sendet eine Anforderung von Datei-Metadaten und -Inhalt 112 über die API 130 an den externen Speicherserver 110 über die aktuellste Version der Metadaten und die aktuellste Version des Inhalts, die mit der angeforderten Datei verbunden sind. Beispielhafte Metadateneigenschaften, die mit der Datei verbunden sind, beinhalten unter anderem Folgendes: Dateityp, Dateiidentifzierung, Dateiname, Multipurpose Internet Mail Extensions (MIME)-Type, ob die Datei durch das Dateisystem ein Sternchen oder eine Kennzeichnung erhalten hat, übergeordnete Datei oder Ordner, Anwendungseigenschaften, Dateiversion, Erstellungszeit, Änderungszeit, zuletzt geändert von, Benutzeridentifikator (ID) und E-Mail-Adresse des Besitzers, des Anforderers und des Erstellers, vollständige Dateiendung, Dateiprüfsumme (verwendet für Vergleichszwecke, der Speicherserver kann das Kodierungsverfahren (z. B. MD5, SHA1, SHA2 usw.)) wählen, Dateigröße, Zugriffs-/Bearbeitungsprivileg, Status bezüglich dessen, ob die Datei eine Bearbeitungssperre aufweist, oder dergleichen. Die Metadaten-und-Inhalts-Anforderung 112 kann ferner einen Prüfschlüssel beinhalten, welcher ein öffentlicher Schlüssel ist, der vom Anwendungsserver 120 ausgestellt wurde, sodass der externe Speicherserver 110, dem vorher die öffentliche Schlüsselinformationen vom Anwendungsserver 120 bereitgestellt wurden, verifizieren kann, ob die Schlüsselinformationen von der Metadaten-und-Inhalts-Anforderung 112 damit übereinstimmen. Auf diese Weise bestätigt die Schlüssel-Verifizierung, dass die Metadaten-und-Inhalts-Anforderung 112 vom Anwendungsserver 120 gesendet wurde. Der externe Speicherserver 110 sendet dann wiederum die angeforderten Metadaten und den Inhalt an den Anwendungsserver 120. Wenn der Anwendungsserver 120 nicht die aktuellste Version der Datei in seinem lokalen Cache aufweist, sendet der externe Speicherserver 110 die aktuellste Version des Inhalts der Datei 113 an den Anwendungsserver 120, wie ferner in Verbindung mit 207 in 2 erörtert wird.
  • In einigen Anwendungen kann der Benutzer Änderungen an einer Datei über eine Anwendung auf dem Anwendungsserver 120 vornehmen, und diese Änderungen werden über eine API 130 an den externen Speicherserver 110 übertragen, um die auf dem externen Speicherserver 110 gespeicherte Datei zu aktualisieren. Die Komponente der API 130, die auf dem Anwendungsserver 120 instanziiert ist, um mit dem externen Speicherserver 110 eine Schnittstelle zu bilden, kann in JavaScript mittels Post-Nachrichten implementiert werden. Der externe Speicherserver 110 kann beispielsweise eine „titelgeänderte“ Nachricht senden, um den Anwendungsserver 120 zu benachrichtigen, dass der Titel einer Datei geändert wurde (z. B. durch das Benutzergerät) sodass der externe Speicherserver 110 die den Titel der Datei betreffende Information entsprechend aktualisieren kann, z. B. die Titelleiste in der Browserschnittstelle des externen Speicherservers 110 auf dem Benutzergerät angezeigt wird. Als anderes Beispiel wird eine „sharing opened“-Nachricht (gemeinsame Nutzung einer geöffneten Datei) von dem Anwendungsserver 120 gesendet, um den externen Speicherserver 110 zu benachrichtigen, dass der Benutzer auf die „Gemeinsame Nutzung“-Taste geklickt hat, sodass der externe Speicherserver 110 einen Rahmen für die gemeinsame Nutzung öffnen kann, sodass von dem Benutzer und einem oder mehreren anderen Benutzern gemeinsam auf die Datei zugegriffen werden kann. Als weiteres Beispiel kann eine Zugriffssteuerungsnachricht betreffend eine Datei, z. B. eine „Zugriffskontrollliste geöffnet“-Nachricht an den externen Speicherserver 110 gesendet werden, um den externen Speicherserver 110 zu benachrichtigen, dass der Benutzer versucht hat, die Zugriffsrechte für die Datei zu ändern, z. B. ist einem anderen Benutzer, der keinen Zugriff auf die Datei hat, die Berechtigung erteilt worden, auf die Datei zuzugreifen, sodass der externe Speicherserver 110 einen Zugriffssteuerungsrahmen, z. B. den „Zugriffskontrolllisten-Konfigurierungs“-Rahmen, in der Dateispeicherungsbenutzerschnittstelle 105 des Benutzergeräts anzeigen kann.
  • In einigen Umsetzungen kann der Benutzer Änderungen an einer Datei direkt im externen Speicherserver 110 vornehmen. In diesem Fall sendet der externe Speicherserver 110 über die API 130 Nachrichten an den Anwendungsserver 120, um die Änderungen zu synchronisieren. Der externe Speicherserver 110 kann beispielsweise eine „Metadatengeändert“-Nachricht über die API 130 senden, um den Anwendungsserver 120 zu benachrichtigen, dass der Benutzer Metadaten der Datei (z. B. den Status der gemeinsamen Nutzung der Datei usw.) geändert hat, sodass der Anwendungsserver 120 die Metadaten aktualisiert. Als anderes Beispiel wird, wenn ein Benutzer einen Zugriffssteuerungsrahmen in dem externen Speicherserver 110 schließt, eine Zugriffssteuerungsnachricht, z. B. eine „Zugriffssteuerungslistenkonfigurierung-geschlossen“-Nachricht von dem externen Speicherserver 110 gesendet, um den Anwendungsserver 120 zu benachrichtigen, dass der Benutzer die Funktion der Zugriffssteuerung bezüglich der Datei geschlossen hat, z. B. einen „Zugriffssteuerungslisten-Konfigurierungs“-Dialog, und ob der Benutzer sich entschieden hat, mit der Aktion fortzufahren oder nicht.
  • In einigen Umsetzungen konfigurieren jeweils der Anwendungsserver 120 und der externe Speicherserver 110 die API 130 durch gemeinsame Nutzung von Informationen. Der externe Speicherserver 110 beispielsweise stellt dem Anwendungsserver 120 über einen einheitlichen Ressourcenanzeiger (uniform resource locator - URL) Konfigurierungsinformationen bereit, sodass der Anwendungsserver 120 Kenntnis von möglichen Daten- oder Nachrichtentypen hat, die von dem externen Server 110 empfangen werden können (z. B. Metadaten der Datei usw.).
  • 2 ist gemäß hier beschriebener Ausführungsformen ein beispielhaftes Logikflussdiagramm, das Aspekte von Arbeitsabläufen an einem Anwendungsserver (z. B. 120 in 1) zum Bereitstellen von Zugriff auf eine auf einem externen Speicherserver (z. B. siehe 110 in 1) gespeicherte Datei darstellt. Bei 201 empfängt der Anwendungsserver (z. B. 120 in 1) eine Dateizugriffsanforderung von einem Benutzergerät (z. B. 101 in 1) zum Zugreifen (z. B. öffnen, kommentieren oder bearbeiten) auf eine auf einem externen Speicherserver (z. B. siehe 110 in 1) gespeicherte Datei. Wie in Verbindung mit 108 in 1 erörtert, beinhaltet die Dateizugriffsanforderung einen Dateiidentifikator, einen Speicherserveridentifikator, einen Dateityp, einen Benutzergerätidentifikator und/oder dergleichen. Die Dateizugriffsanforderung kann in Form einer HTTP POST-Anforderung innerhalb eines strukturellen Tags des HTML-Quelltexts der Browserseite erfolgen. Bei 202 kann der Anwendungsserver gegebenenfalls eine entsprechende Anwendung identifizieren und starten, um die entsprechende Datei zu öffnen, z. B. aufgrund eines in der Dateizugriffsanforderung enthaltenen Dateityps. Wenn die Dateizugriffsanforderung ferner einen Anwendungsidentifikator zum Öffnen der Datei beinhaltet, z. B. wenn der Benutzer auf ein Datei-Icon rechtsgeklickt hat, um eine Anwendung zum Öffnen der Datei auszuwählen, und der Anwendungsidentifikator der ausgewählten Anwendung in der Dateizugriffsanforderung enthalten ist, kann der Anwendungsserver die Anwendung unmittelbar starten. Bei 203 kann der Anwendungsserver in einem Datenspeicher (z. B. Datenbank) nach im Cache gespeicherten Dateien suchen, und abfragen, ob eine im Cache gespeicherte Version der Datei zuvor in der Datenbank gespeichert wurde. Bei 204, falls eine im Cache gespeicherte Version der Datei existiert, ruft der Anwendungsserver einen Versionswert (z. B. eine Zahl) aus den Metadaten der im Cache gespeicherten Version der Datei ab und fügt den Versionswert in eine Anforderung von Metadaten und Inhalt ein, um sie an den externen Speicherserver zu senden. Der Versionswert wird nachstehend näher in Verbindung mit 4 beschrieben. Falls keine im Cache gespeicherte Version existiert, beinhaltet die Metadaten-und-Inhalts-Anforderung einen Indikator, der identifiziert, dass auf dem Anwendungsserver keine im Cache gespeicherte Version existiert. In einer Implementierung kann der Anwendungsserver gegebenenfalls einen Zustellungsparameter in der Metadaten-und-Inhalts-Anforderung beinhalten. Der Zustellungsparameter kann ein Boolescher Wert sein, der als wahr oder falsch konfiguriert ist, der verwendet wird um anzuzeigen, ob der externe Speicherserver dem Anwendungsserver den Inhalt der aktuellsten Version der Datei bereitstellen soll oder nicht, falls die im Cache gespeicherte Version der Datei im Anwendungsserver nicht die aktuellste Version ist. Beispielsweise kann der Anwendungsserver periodisch die Metadaten einer im Cache gespeicherten Version der Datei aktualisieren durch Anfordern der aktuellsten Metadaten der Datei von dem externen Server, muss aber nicht jedes Mal, wenn die Metadaten aktualisiert werden, den aktuellsten Inhalt der Datei anfordern, um übermäßigen Datenverkehr zwischen den Servern zu verhindern. In diesem Fall kann der Anwendungsserver die Zustellparameter in der Metadaten-und-Inhalts-Anforderung einstellen, um anzuzeigen, dass vom externen Speicherserver nicht der aktuellste Inhalt der Datei benötigt wird.
  • Bei 204 ruft der Anwendungsserver zusätzlich zum Erhalten eines Versionswerts der im Cache gespeicherten Version der Datei gegebenenfalls einen Hash in den Metadaten ab, der mit der im Cache gespeicherten Version der Datei verbunden ist, oder generiert einen Hash aufgrund des Inhalts der im Cache gespeicherten Version. Der Hash wird dann gegebenenfalls zusammen mit dem Versionswert der im Cache gespeicherten Version in die an den externen Speicherserver über eine API zu sendende Metadaten-und-Inhalts-Anforderung eingefügt.
  • Bei 205 empfängt der Anwendungsserver eine Nachricht vom Speicherserver, die verifiziert, ob die im Cache gespeicherte Version auf dem Anwendungsserver die aktuellste Version der Datei ist. Der Speicherserver bestimmt, ob der in der Metadaten-und-Inhalts-Anforderung enthaltene Versionswert die aktuellste Version der Datei auf dem Speicherserver widerspiegelt. Der Speicherserver unterhält beispielsweise einen Datenspeicher (z. B. eine Datenbank) von Dateien mit Metadaten, die Versionsinformationen für jede Datei beinhalten, und kann eine Suche der benötigten Datei durchführen aufgrund eines Dateiidentifikators, der in der Metadaten-und-Inhalts-Anforderung enthalten ist, um die Datei zu identifizieren, und wiederum die mit der Datei verbundenen Metadaten abzurufen. Zusätzlich, falls ein Hash der im Cache gespeicherten Version gegebenenfalls in der Metadaten-und-Inhalts-Anforderung (bei 204) aufgenommen wurde, kann der Speicherserver sowohl den Versionswert und den Hash der im Cache gespeicherten Version erhalten und sowohl den empfangenen Versionswert und den empfangenen Hash mit dem Versionswert und dem Hash vergleichen, die mit der aktuellsten Version der Datei im Speicherserver verbunden sind. Wenn der Vergleich zeigt, dass die aktuellste Version der Datei einen anderen Versionswert als die im Cache gespeicherte Version aufweist, aber denselben Hash, muss der Speicherserver keinen Inhalt der Datei an den Anwendungsserver senden, da der Inhalt der Datei sich nicht zu dem der im Cache gespeicherten Version geändert hat.
  • Wenn die im Cache gespeicherte Version die aktuellste Version der Datei ist, kann der Anwendungsserver bei 206 gegebenenfalls eine Bestätigungsnachricht von dem Speicherserver empfangen, dass keine aktualisierte Version benötigt wird. Die Bestätigungsnachricht kann auch Metadaten der Datei beinhalten, sodass der Anwendungsserver die Metadaten aktualisiert halten kann. Bei 210 kann der Anwendungsserver die im Cache gespeicherte Version der Datei dem Benutzergerät über die Benutzerschnittstelle (z. B. Dateispeicher UI 105 in 1) bereitstellen. Anderenfalls, wenn die im Cache gespeicherte Version in der Metadaten-und-Inhalts-Anforderung nicht die aktuellste Version der Datei ist oder überhaupt keine im Cache gespeicherte Version der Datei auf dem Anwendungsserver existiert, empfängt der Anwendungsserver Metadaten und Inhalt einer aktuellsten Version der Datei aus dem Speicherserver bei 207. Konkret, wenn die Metadaten-und-Inhalts-Anforderung einen Hash beinhaltet, der basierend auf Inhalt der im Cache gespeicherten Version generiert wurde, kann der Speicherserver gegebenenfalls verifizieren, ob der empfangene Hash derselbe ist wie ein mit der aktuellsten Version verbundener Hash. Wenn die zwei Hashes passen, dann braucht der Speicherserver keinen Inhalt der aktuellsten Version an den Anwendungsserver zu senden. Der Anwendungsserver empfängt die Metadaten der aktuellsten Version und eine optionale Nachricht, welche die im Cache gespeicherte Version als den aktuellsten Inhalt aufweisend identifiziert. Wenn die zwei Hashes nicht passen, empfängt der Anwendungsserver den aktuellsten Inhalt und Metadaten, z.B wie bei 207, beschrieben. In einer Implementierung liest der Speicherserver die Zustellungsparameter in der Metadaten-und-Inhalts-Anforderung um zu bestimmen, ob der Inhalt der aktuellsten Version der Datei an den Anwendungsserver zu senden ist oder nicht, falls die im Cache gespeicherte Version der Datei auf dem Anwendungsserver nicht die aktuellste Version ist.
  • Bei 207 können die Metadaten und der Inhalt der Datei an den Anwendungsserver in einer einzigen Nachricht oder in einer mehrteiligen Nachricht gesendet werden. Der Inhalt der Datei kann beispielsweise vom Speicherserver als eine Kopie der Datei gesendet werden, und Metadaten der Datei können über eine URL, die in eine Nachricht eingebettet ist, gesendet werden. In einem anderen Beispiel kann der Anwendungsserver eine Nachricht empfangen, die einen vordefinierten Link auf die aktuellste Version der auf dem Speicherserver gespeicherten Datei beinhaltet.
  • Bei 209 überschreibt der Anwendungsserver jegliche zuvor im Cache gespeicherte Version der Datei auf dem Anwendungsserver mit der empfangenen Version. Der Anwendungsserver kann dann die neu im Cache gespeicherte Version an das Benutzergerät über die Benutzerschnittstelle bereitstellen, z. B. in einer ähnlichen Weise wie bei 206 beschrieben.
  • 3 stellt gemäß einiger hier beschriebenen Ausführungsformen ein beispielhaftes Flussdiagramm 300 dar, das Aspekte des Erstellens einer neuen Datei in dem externen Speicherserver von einem Benutzergerät über die API (z. B. 130 in 1) darstellt. Der Anwendungsserver 303 (ähnlich 120 in 1) kann HTTP Aktionsanforderungen versenden, wie etwa Öffnen einer bestehenden Datei, Erstellen einer neuen Datei, Speichern von Änderungen in einer Datei oder dergleichen, sodass der externe Speicherserver (ähnlich 110 in 1) die entsprechenden Vorgänge auf einer Datei in der Benutzerschnittstelle auf einem Benutzergerät durchführen kann. Bei 305 kann eine Benutzerschnittstelle, die auf einem Benutzergerät (z. B. 101 in 1) wie etwa ein Browser 301 instanziiert wurde, eine Benutzeranforderung senden, um eine Datei auf einem externen Speicherserver 302 zu erstellen. Die Dateierstellungsanforderung beinhaltet einen Dateityp, einen Dateinamen, einen Anwendungsidentifikator (zum Erstellen der Datei), einen Ordnernamen und Verzeichnis im Speicherserver, der bzw. die anzeigen, wo die erstellte Datei zu speichern ist, oder dergleichen. Die Dateierstellungsanforderung kann eine HTTP POST-Anforderung beinhalten, die eine Form annehmen kann, die der „create (POST files/create)“ ähnlich ist, um eine neue Datei in dem in der Dateierstellungsanforderung angezeigten Ordner zu erstellen.
  • Bei 306 kann der externe Speicherserver 302 gegebenenfalls einen Dateiidentifikator erstellen und potenziell einen Sperrstatus für die Datei bei der Erstellung der neuen Datei einstellen. Der Sperrstatus gibt einer Einheit (z. B. dem Anwendungsserver 303) die ausschließliche Erlaubnis, eine Datei zu erstellen, auf eine Datei zuzugreifen oder Dateiinhalt auf dem Speicherserver 302 für einen Zeitraum von z. B. 5 Minuten, 10 Minuten, 15 Minuten usw. zu speichern. Der Speicherserver 302 blockiert jeden versuchten Vorgang von allen anderen berechtigten Einheiten zum Erstellen, Öffnen oder Speichern von Änderungen an derselben gesperrten Datei. Die anderen berechtigten Einheiten beinhalten unter anderem Folgendes: einen Benutzer, der berechtigt ist, die Datei zu bearbeiten, eine Anwendung, die berechtigt ist, die Datei zu bearbeiten, jede externe Benutzerschnittstelle des Speicherservers, der berechtigt ist, die Datei zu bearbeiten usw.
  • Bei 306 sendet der Speicherserver 302 auch ein Fernzugriffstoken (auch als „Drittparteizugriffstoken“ bezeichnet, third party access token - TPAT) an den Browser 301. Das TPAT wird von dem externen Speicherserver mit einem Ablaufzeitstempel erstellt, der einer Einheit (z. B. einem Benutzer usw.) Zugriff auf eine bestimmte Datei gewährt, z. B. auf die vor dem Ablaufzeitstempel zu erstellende Datei. Das TPAT kann dem Benutzer ebenfalls Zugriff auf eine spezifische Datei und auf Ordnermetadaten gewähren.
  • Bei 307 wird eine Dateierstellungsanforderung in Form einer HTTP POST-Anforderung an den Anwendungsserver 303 gesendet. Die Dateierstellungsanforderung wird innerhalb eines strukturellen Tags des HTML-Quelltexts (z. B. dem <iframe>-Tag) einer Anzeigeseite des Browsers 302 generiert und beinhaltet das TPAT, das der Browser 301 bei 306 empfängt. Wenn der Browser 301 vorherige Anforderungen von dem Anwendungsserver 303 empfängt, die ein Token beinhalten, um dem Browser 301 Zugriff auf eine bestimmte Anwendung zu gestatten, die zum Erstellen der Datei zu verwenden ist, kann der Browser 301 gegebenenfalls das Token gegen das TPAT austauschen.
  • In einigen Umsetzungen kann ein Benutzer sich mit Benutzeranmeldeinformationen in den Anwendungsserver 303 einloggen, und der Browser 301 kann diese Benutzeranmeldeinformationen in die HTTP POST-Anforderung bei 307 an den Anwendungsserver 303 zum Authentifizieren des Benutzers einfügen. Der Benutzer kann sich auch über den Browser 301 in den Speicherserver 302 einloggen, sodass der Speicherserver 302 bestimmen kann, ob der Benutzer berechtigt ist, eine Datei zu erstellen oder eine Datei auf dem Speicherserver 302 zu öffnen.
  • Bei 308 sendet der Anwendungsserver 303 eine Metadaten-und-Inhalts-Anforderung in Form einer HTTP GET-Anfrage „get (GET files/filesId)“ an den externen Speicherserver 302, um die Metadaten und den Inhalt für die Datei oder den Ordner zu erhalten. Bei 309 kann die Metadaten-und-Inhalts-Anforderung einen Dateiidentifikator, einen Dateinamen, einen Identifikator, dass auf dem Anwendungsserver noch kein Inhalt oder keine Version für die Datei existiert (da die Datei neu erstellt wurde) usw. beinhalten. Der externe Speicherserver 302 kann wiederum bei 310 in Reaktion auf die GET-Anfrage Metadaten für die neu erstellte Datei in einer Nachricht ohne Inhalt zurücksenden.
  • Bei 311 erstellt der Anwendungsserver 303 eine neue Datei, z. B. ein Dokument. Das neu erstellte Dokument kann im Dateispeicher UI angezeigt werden. Das erstellte Dokument kann innerhalb eines Abschnitts angezeigt werden, der durch den strukturellen Tag (z. B. dem <iframe> tag) definiert wird, der durch die Dateizugriffsanforderung bei 307 spezifiziert wurde. Das neu erstellte Dokument kann bearbeitet werden. Bei 312 kann der Anwendungsserver 303 periodisch den aktuellsten Versionswert einer im Cache gespeicherten Version auf den externen Speicherserver 302 hochladen, z. B. alle zwei Minuten usw. Eine HTTP POST-Nachricht, die eine Form ähnlich zu „upload (POST files/filelD/blob)“ annehmen kann, kann verwendet werden, um eine Kopie der Datei hochzuladen, wobei der „blob“-Parameter die Web-API ist, die der Anwendungsserver 303 annimmt, um mit dem Speicherserver 302 zu kommunizieren. Wenn ein neuer Dateiidentifikator erstellt wird (z. B. bei 306), wird die POST-Nachricht „uploadCopy (POST files/fileld/copy)“ bei 312 verwendet, um eine Kopie einer Datei auf den Speicherserver hochzuladen. Die Kopie kann gegebenenfalls mit einem Wert von Benutzern und/oder Einheiten geteilt werden, die Zugriff auf diese Datei haben, wie durch das TPAT spezifiziert. Eine Reaktion vom Speicherserver auf die POST-Anfrage enthält einen einheitlichen Ressourcenanzeiger (uniform resource locator - URL) zum Öffnen der neuen Datei, wie bei 313 weiter erörtert.
  • Bei 313 kann der externe Speicherserver 302 gegebenenfalls eine Version des aktuellsten Uploads an den Anwendungsserver 303 zurücksenden. Es wird von dem externen Speicherserver 302 eine Antwortnachricht in Reaktion auf das Hochladen bei 312 an den Anwendungsserver 303 gesendet. Die Antwortnachricht enthält einen Versionswert und eine Prüfsumme der neu erstellten Datei.
  • Der Anwendungsserver 303 ist konfiguriert, um periodisch, zeitweise oder konstant die Dateiinformationen auf dem Speicherserver 302 zu aktualisieren, sodass der Anwendungsserver 303 die aktuellsten Metadaten und Inhalt der Datei pflegt. Bei 314 kann der Anwendungsserver 303 periodisch eine HTTP GET-Anforderung verwenden, um Metadaten der Datei von dem externen Speicherserver 302 zu erhalten, z. B. alle fünf Minuten usw. Die HTTP GET-Anforderung kann eine ähnliche Form wie „get (GET files/fileld)“ annehmen, die konfiguriert ist, die Metadaten oder den Inhalt der Datei zu erhalten. Der externe Speicherserver 302 kann gegebenenfalls Metadaten bei 315 zurücksenden, z. B. über eine HTTP PUT-Nachricht „updateMetadata (PUT files/fileld)“. Bei 316, wenn die Datei auf dem Anwendungsserver 303 geschlossen wird, kann der Anwendungsserver den externen Speicherserver 302 durch Senden einer HTTP PUT-Nachricht „(PUT files/fileld/close)“ benachrichtigen, dass der Speicherserver die Sperre der Datei bei 317 aufheben kann, falls die Datei potenziell gesperrt war, als der Dateiidentifikator bei 306 erstellt wurde.
  • 4 stellt gemäß einiger hier beschriebener Ausführungsformen ein beispielhaftes Flussdiagramm 400 dar, das Aspekte des Öffnens einer Datei, die von einem externen Speicherserver gespeichert ist, zum Ansehen, Kommentieren oder Bearbeiten von einem Benutzergerät über eine API (z. B. 130 in 1) darstellt. Bei 401 sendet eine auf einem Benutzergerät (z. B. 101 in 1) instanziierte Benutzerschnittstelle, wie etwa ein Browser 301, eine Dateizugriffsanforderung zum Öffnen einer Datei auf einem externen Speicherserver 302. Die Benutzeranfrage kann einen Dateiidentifikator, einen Speicherserveridentifikator, einen Dateityp, einen Benutzeridentifikator, einen Benutzergerätidentifikator und/oder dergleichen beinhalten. Bei 402 kann der externe Speicherserver 302 die Zugriffsberechtigung aufgrund eines Benutzeridentifikators prüfen, z. B. durch Verifizieren, ob der Benutzeridentifikator auf der Zugriffssteuerungsliste ist, die mit der Datei verbunden ist, für welche der Benutzer die Berechtigung hat, auf die entsprechende Datei zuzugreifen.
  • Bei 402 prüft der Speicherserver 302 dann die Metadaten der Datei, um zu verifizieren, ob eine andere Einheit die Datei gesperrt hat. Beispielsweise wird der SperrStatus in den Datei-Metadaten in einem „locked_for_edit“-Feld angegeben. Wenn die Datei nicht bereits von einer anderen Einheit gesperrt ist, sperrt der Speicherserver die Datei für den Anwendungsserver 303. Während die Datei von einer anderen Einheit gesperrt ist, kann die Datei immer noch zum Betrachten geöffnet werden (entweder im Browser 301 oder für eine Vorschau oder zum Herunterladen). Wenn der Anwendungsserver 303 keine Sperre für die Datei aufweist, zeigt der Anwendungsserver dem Benutzer eine Nur-Lese-Ansicht mit einer Erläuterung, dass die Datei von einer anderen Einheit bearbeitet wird (z. B. einem anderen Benutzer oder einer anderen Anwendung). Jegliche Anforderungen der Datei, die vom Anwendungsserver 303 an den Speicherserver 302 gesendet werden, können die Sperre für einen Zeitraum (z. B. 5 Minuten, 15 Minuten usw.) zurücksetzen. Der Anwendungsserver 303 kann den Speicherserver 302 periodisch kontaktieren, z. B. alle 5 Minuten usw., um aktualisierte Metadaten zu bekommen und die Sperre aufrecht zu erhalten. In einer Ausführungsform kann der Anwendungsserver 303 dem Benutzer über den Browser 301 eine Fehlermeldung zeigen, wenn die Anforderung (z. B. die Metadaten-und-Inhalts-Anforderung, die bei 404 erörtert wird) von aktualisierten Metadaten nach drei Versuchen scheitert. Falls der Anwendungsserver 303 es nicht schafft, eine Metadaten- oder Inhaltsanforderung an den Speicherserver 302 innerhalb eines Zeitraums (z. B. 15 Minuten usw.) zu stellen, könnte die Sperre verloren gehen. Wenn die Sperre der Datei verloren gegangen ist, aber anschließend eine Dateizugriffsanforderung für dieselbe Datei empfangen wird, kann der Speicherserver 302 versuchen, dem Anwendungsserver 303 die Sperre neu aufzuerlegen. Wenn die Neuauferlegung der Sperre nicht möglich ist, weil eine andere Einheit die Sperre auf derselben Datei beibehalten hat, schaltet der Anwendungsserver 303 die Datei in einen Nur-Lese-Modus.
  • Bei 402 sendet der Speicherserver 302 auch das TPAT an den Browser 301 zurück, auf ähnliche Weise wie bei 306 in 3 beschrieben.
  • Bei 403 wird eine Dateizugriffsanforderung generiert. Die Dateizugriffsanzeige kann eine HTTP POST-Anforderung sein, die innerhalb eines strukturellen Tags des HTML-Quelltexts einer Anzeigeseite des Browsers 302 generiert wurde, und die HTTP POST-Anforderung beinhaltet das TPAT für die vom Speicherserver bei 402 empfangene Datei. Die Dateizugriffsanforderung kann einen Dateiidentifikator, einen Speicherserveridentifikator, einen Dateityp, einen Benutzeridentifikator, einen Benutzergerätidentifikator, ein token (TPAT) und/oder dergleichen beinhalten, wie bei 201 in 2 erörtert.
  • Bei 404 kann der Anwendungsserver 303 eine Metadaten-und-Inhalts-Anforderung an den externen Speicherserver 302 senden, um die Metadaten und den Inhalt für die Datei oder den Ordner zu erhalten. Die Metadaten-und-Inhalts-Anforderung kann eine HTTP GET-Anforderung sein. Die GET-Anforderung beinhaltet Versionsinformationen der Datei (z. B. einen Versionswert), die im Cache auf dem Anwendungsserver 303 gespeichert sind. In einer Umsetzung pflegt der Anwendungsserver 303 eine Datentabelle, die einen internen Versionswert, der ein mit dem Anwendungsserver 303 kompatibles Format aufweist, das von demselben verwendet wird, einem externen Versionswert zuordnet, der mit dem externen Speicherserver 302 oder anderen Einheiten kompatibel ist und von denselben verwendet wird. Der Anwendungsserver 303 kann den internen Versionswert von den gespeicherten Metadaten identifizieren und abrufen, die mit einer im Cache gespeicherten Version der Datei verbunden sind, und kann dann den internen Versionswert in den entsprechenden externen Versionswert konvertieren. Die GET-Anfrage kann den externen Versionswert der Datei als einen Parameter der aktuellen Version beinhalten, sodass der externe Speicherserver 302 den Parameter der aktuellen Version lesen kann und den Versionswert, der mit der im Cache gespeicherten Version der im Anwendungsserver 303 im Cache gespeicherten Datei verbunden ist, erhalten kann. Die GET-Anfrage kann ferner gegebenenfalls einen Hash beinhalten, der aus dem Inhalt der im Cache gespeicherten Version generiert wurde, wie in Verbindung mit 204 in 2 erörtert wurde. In einer Umsetzung, falls keine Datei im Cache gespeichert ist, wird ein Indikator, dass keine im Cache gespeicherte Version existiert, in die Metadaten-und-Inhalts-Anforderung mit aufgenommen, z. B. ähnlich zu 309 in 3. In einer Umsetzung beinhaltet die Metadaten-und-Inhalts-Anforderung gegebenenfalls einen Zustellungsparameter, der angibt, ob der Speicherserver 302 den Inhalt der aktuellsten Version der Datei dem Anwendungsserver bereitstellen soll, falls die im Cache gespeicherte Version der Datei auf dem Anwendungsserver nicht die aktuellste Version ist. In einer Umsetzung kann der Anwendungsserver gegebenenfalls eine spezifische Version der Datei in der Metadaten-und-Inhalts-Anforderung anfordern, die nicht die aktuellste Version sein kann, und den Versionswert der angeforderten spezifischen Version in die Metadaten-und-Inhalts-Anforderung aufnehmen. Beispielsweise kann die Metadaten-und-Inhalts-Anforderung gegebenenfalls einen „angeforderte Version“-Parameter beinhalten, der mit einem Versionswert konfiguriert werden kann, um eine bestimmte Version der Datei anzufordern. Wenn die Metadaten-und-Inhalts-Anforderung keinen solchen angeforderte-Version-Parameter beinhaltet, wird für den Anwendungsserver standardmäßig die aktuellste Version der in dem externen Speicherserver 302 gespeicherten Datei als die angeforderte Datei eingerichtet.
  • Bei 405 prüft der externe Speicherserver 302, ob der Anwendungsserver 303 die aktuellste Version der Datei aufweist, z. B. wie bei 205 in 2 erörtert. In einer Umsetzung, wie obenstehend erörtert, kann der Anwendungsserver 303 den Inhalt der aktuellsten Version nicht anfordern und kann eine bestimmte Version einer Datei durch Konfigurieren eines „angeforderte-Version“-Parameters in der Metadaten-und-Inhalts-Anforderung anfordern. Bei 405 prüft der externe Speicherserver 302 in einer Umsetzung ebenfalls, ob ein „angeforderte-Version“-Parameter in der Metadaten-und-Inhalts-Anforderung vorliegt, der anzeigt, dass es sich bei der Anforderung um eine spezifische Version handelt, und verifiziert dann, ob der Versionswert der im Cache des Anwendungsservers 303 gespeicherten Version gleichwertig ist mit dem angeforderten Wert der spezifischen Version in dem „angeforderte-Version“-Parameter. Bei 406 sendet der externe Speicherserver 302 Metadaten der Datei an den Anwendungsserver 303 zurück. Wenn der Anwendungsserver keine aktuellste Version des Inhalts der Datei aufweist, prüft der externe Speicherserver 302 auch einen Zustellparameter in der Metadaten-und-Inhalts-Anfrage, um zu bestimmen, ob die aktuellste Version an den Anwendungsserver 303 zu senden ist oder nicht. Wenn der Zustellparameter des externen Speicherservers 302 eingestellt ist, die aktuellste Version bereitzustellen, sendet der externe Speicherserver 302 den Inhalt der aktuellsten Version der Datei an den Anwendungsserver 303. In einer Umsetzung sendet, falls die Anforderung für eine spezifische Version ist, der externe Speicherserver 302 den Inhalt der bestimmten Version der Datei an den Anwendungsserver 303. Der externe Speicherserver 302 kann bei 406 eine HTTP PUT-Nachricht an den Anwendungsserver 303 senden. Wie bei 207 erörtert, kann der Inhalt der Datei beispielsweise vom Speicherserver als eine Kopie der Datei gesendet werden, und Metadaten der Datei können über eine in eine Nachricht eingebettete URL gesendet werden. In einem anderen Beispiel kann der Anwendungsserver eine Nachricht empfangen, die einen vordefinierten Link auf die aktuellste Version der auf dem Speicherserver gespeicherten Datei beinhaltet.
  • Bei 408 wird die Datei (z. B. ein Dokument) angezeigt, beispielsweise zum Bearbeiten. Das Dokument kann innerhalb eines durch einen strukturellen Tag definierten Abschnitts angezeigt werden.
  • 409-414 sind ähnlich 312-317 in 3. Die Datei kann beispielsweise bereits bei 402 von einer anderen Einheit gesperrt sein (z. B. einem anderen Benutzer oder einer anderen Anwendung), und der Anwendungsserver kann nur eine „Nur-Lese“-Version der Datei am Benutzergerät öffnen. In diesem Fall kann die andere Einheit (z. B. der andere Benutzer oder die andere Anwendung) an der Datei Änderungen vornehmen. In einem anderen Beispiel, sogar wenn die Datei für eine Anwendung durch den Speicherserver bei 402 gesperrt ist, kann ein berechtigter Benutzer an der Datei Änderungen unmittelbar über den Speicherserver vornehmen. In diesem Fall ist der Anwendungsserver 303 konfiguriert, um periodisch, zeitweise oder konstant die Dateiinformationen wie etwa die Metadaten und/oder im Speicherserver 302 zu aktualisieren, sodass der Anwendungsserver 303 die aktuellsten Metadaten und Inhalt der Datei pflegt. Bei 409 kann der Anwendungsserver 303 periodisch die aktuellste Version der Datei auf den externen Speicherserver 302 hochladen, z. B. alle zwei Minuten usw. Bei 410 kann der externe Speicherserver 302 gegebenenfalls eine Version des aktuellsten Uploads an den Anwendungsserver 303 zurücksenden. Bei 411 verwendet der Anwendungsserver 303 periodisch eine HTTP GET-Anfrage, um Metadaten der Datei von dem externen Speicherserver 302 zu erhalten, z. B. alle fünf Minuten usw. Bei 412 sendet der externe Speicherserver 302 gegebenenfalls Metadaten zurück. Bei 413, wenn die Datei auf dem Anwendungsserver 303 geschlossen wird, kann der Anwendungsserver den externen Speicherserver durch Senden einer HTTP PUT-Nachricht („PUT files/fileld/close)“ benachrichtigen, dass er die Sperre bei 414 aufheben kann.
  • Die HTTP-Aktionen, die von der API vorgenommen werden können (z. B. 130 in 1) zum Erstellen oder Öffnen einer Datei, wie in Verbindung mit 3-4 erörtert, können ebenso auf Ordner anwendbar sein, z. B. kann die POST-Nachricht zum Erstellen eines neuen Ordners als Ableger eines gegebenen Ordners eine Form annehmen, die der „create (POST folders/folderld/create)“ ähnlich ist, und eine GET-Nachricht „getMetadata (GET folders/folderId)“ kann aufgerufen werden, um die Metadaten des Ordners oder dergleichen zu erhalten. Wenn der Anwendungsserver (120 in 1 oder 303 in 3-4) an einem Ordner im Speicherserver (110 in 1 oder 302 in 3-4) arbeitet, können bestimmte mit dem Ordner verbundene Eigenschaften der Metadaten wie etwa Typ (immer Ordner), Ordner ID, Ordnername, ob der Ordner mit Sternchen versehen ist, und übergeordneter Ordner, gesperrt werden, um nicht geändert zu werden.
  • Zusätzlich zu den obenstehend beschriebenen HTTP-Nachrichten zum Erstellen oder Öffnen einer Datei, zum Aktualisieren von Metadaten der Datei usw. kann die API (z. B. 130 in 1) eine GET-Liste aufrufen, die von der API als eine Erweiterung (add-on) aufgenommen wurde, um nach den Dateien oder Ordnern auf dem Speicherserver zu suchen. Beispielparameter für eine über die API generierte Suchanfrage können Corpus (standardmäßiger „Benutzer“), bestellt von (standardmäßiger „Name“), Seitengröße, Seiten-Token oder dergleichen beinhalten. In Reaktion auf die GET-Liste empfängt der Anwendungsserver an Stelle des Erhaltens des gesamten Inhalts oder Metadaten in einer HTTP-Nachricht Eigenschaften von dem Speicherserver wie etwa eine Liste von Dateiidentifikatoren, Blätter von Dateien, ein Token für die nächste Seite der Datei, Elemente (z. B. eine Datei oder Ordner mit einem Typ, ID, Name usw.) usw.
  • 5 ist gemäß einer beispielhaften Ausführungsform ein Blockdiagramm eines Computers wie etwa jede Komponente des in 1 implementierten Systems zum Ausführen sämtlicher hier beschriebener Prozesse. Jede der Komponenten dieser Systeme kann auf einem oder mehreren Computern 500 implementiert werden. In bestimmten Fällen können mehrere Komponenten dieser Systeme in einem Computer 500 enthalten sein. Bei bestimmten Umsetzungen können eine Komponente und ein Speichergerät in mehreren Computern 500 implementiert werden.
  • Der Computer 500 umfasst mindestens eine Kommunikationsschnittstelle, ein Eingangs-/Ausgangssteuergerät 510, Systemspeicher und ein oder mehrere Datenspeichergeräte. Der Systemspeicher beinhaltet mindestens einen Direktzugriffsspeicher (RAM 502) und mindestens einen Nur-Lese-Speicher (ROM 504). All diese Elemente kommunizieren mit einer zentralen Verarbeitungseinheit (CPU 506), um den Betrieb des Computers 500 zu vereinfachen. Der Computer 500 kann auf diverse Weisen konfiguriert werden. Der Computer 500 kann beispielsweise ein konventioneller Standalone-Computer sein, oder als Alternative dazu können die Funktionen des Computers 500 über mehrere Computersysteme und Architekturen verteilt werden. Alternativ dazu kann ein Computersystem virtualisiert sein, um die Funktionen mehrerer Computer 500 bereitzustellen. In 5 ist der Computer 500 über ein Netzwerk oder ein lokales Netzwerk mit anderen Servern oder Systemen verbunden.
  • Der Computer 500 kann in einer verteilten Architektur konfiguriert sein, wo Datenbanken und Rechner in separaten Einheiten oder Stellen angeordnet sind. Manche Einheiten führen primäre Verarbeitungsfunktionen aus und enthalten mindestens ein allgemeines Steuergerät oder einen Prozessor und einen Systemspeicher. Bei verteilten Architekturumsetzungen können alle Einheiten über die Kommunikationsschnittstelle 508 an einen Kommunikationsknotenpunkt oder -port (ohne Abbildung) angeschlossen sein, der als eine primäre Kommunikationsverknüpfung mit anderen Servern, Client- oder Benutzercomputern und anderen zugehörigen Geräten dient. Der Kommunikationsknotenpunkt oder -port kann selbst über eine minimale Verarbeitungskapazität verfügen und dient primär als Kommunikationsrouter. Verschiedene Kommunikationsprotokolle können einen Teil des Systems bilden.
  • Der CPU 506 umfasst einen Prozessor, wie etwa einen oder mehrere herkömmliche Mikroprozessoren und einen oder mehrere zusätzliche Co-Prozessoren, wie Mathematik-Co-Prozessoren zum Erleichtern des Arbeitsanfalls für den CPU 506. Der CPU 506 kommuniziert mit der Kommunikationsschnittstelle 508 und dem Eingangs-/Ausgangssteuergerät 510, über das der CPU 506 mit anderen Geräten, wie etwa anderen Servern, Benutzerstationen und Geräten kommunizieren kann. Die Kommunikationsschnittstelle 508 und das Eingangs-/Ausgangssteuergerät 510 können mehrere Kommunikationskanäle für simultane Kommunikation mit beispielsweise anderen Prozessoren, Servern oder Client-Endgeräten beinhalten.
  • Der CPU 506 kommuniziert ebenfalls mit dem Datenspeichergerät. Das Datenspeichergerät kann eine geeignete Kombination aus magnetischem, optischem oder Halbleiterspeicher umfassen und kann z. B. RAM 502, ROM 504, einen Flashdrive oder ein optisches Laufwerk, wie ein CD-Laufwerk oder eine Festplatte bzw. Festplattenlaufwerk enthalten. Der CPU 506 und das Datenspeichergerät können sich beispielsweise jeweils ausschließlich in einem einzigen Computer oder einem anderen Rechner befinden; oder sie können über ein Kommunikationsmedium wie etwa einen USB-Port, ein serielles Anschlusskabel, ein Koaxialkabel, ein Ethernetkabel, eine Telefonleitung, einen Funkfrequenzempfänger oder über ein ähnliches drahtloses oder verdrahtetes Medium oder eine Kombination dieser genannten miteinander verbunden sein. So kann der CPU 506 z. B. über die Kommunikationsschnittstelle 508 mit dem Datenspeichergerät verbunden sein. Der CPU 506 kann zur Durchführung einer oder mehrerer bestimmter Verarbeitungsfunktionen konfiguriert werden.
  • Auf dem Datenspeichergerät können beispielsweise (i) ein Betriebssystem 512 für den Computer 500; (ii) eine oder mehrere Anwendungen 514 (z. B. Computerprogrammtext oder ein Computerprogrammprodukt) gespeichert werden, im Einklang mit den hier beschriebenen Systemen und Methoden direkt an den CPU 506 angepasst werden, und insbesondere im Einklang mit den hier im Einzelnen beschriebenen Verfahren bezüglich des CPU 506; oder (iii) Datenbank(en) 516, dazu angepasst, Informationen zu speichern, die verwendet werden können, um vom Programm benötigte Informationen zu speichern.
  • Das Betriebssystem 512 und die Anwendungen 514 können beispielsweise komprimiert, uncompiliert und verschlüsselt gespeichert werden und können einen Computerprogrammtext enthalten. Die Anweisungen des Programms können von einem computerlesbaren Medium, außer dem Datenspeichergerät, in den Hauptspeicher des Prozessors geschrieben werden, wie etwa vom ROM 504 oder vom RAM 502. Während die Durchführung von Sequenzen von Anweisungen im Programm dazu führt, dass der CPU 506 die hier beschriebenen Prozessschritte durchführt, können auch fest verdrahtete Kreise anstatt oder in Kombination mit Softwareanweisungen für die Umsetzung des Prozesses der vorliegenden Erfindung verwendet werden. Daher sind die hier beschriebenen Systeme und Methoden nicht auf eine spezifische Kombination aus Hardware und Software beschränkt.
  • Geeigneter Computerprogrammtext kann zum Durchführen einer oder mehrerer Funktionen bezüglich des Durchführens der hier beschriebenen Prozesse bereitgestellt werden. Das Programm kann auch Programmelemente, wie etwa ein Betriebssystem 512, ein Datenbank-Verwaltungssystem und „Gerätetreiber“ enthalten, über die der Prozessor eine Schnittstelle mit Computer-Peripheriegeräten (z. B. eine Videoanzeige, ein Tastenfeld, eine Computermaus usw.)) über das Eingangs-/Ausgangssteuergerät 510 aufbauen kann.
  • Der Begriff „computerlesbares Medium“, wie er hier verwendet wird, bezieht sich auf ein nicht übertragbares Medium, das Ausführungsanweisungen an den Prozessor des Computers 500 sendet, bzw. an der Übermittlung teilnimmt (oder an irgend einen anderen Prozessor eines hier beschriebenen Geräts). Dieses Medium kann viele Formen annehmen, einschließlich unter anderem flüchtige und nicht flüchtige Medien. Zu den nichtflüchtigen Medien gehören beispielsweise optische magnetische oder optomagnetische Disks oder integrierte Speicherschaltung wie etwa Flash-Speicher. Zu den flüchtigen Medien gehören dynamisches RAM (DRAM), welches gewöhnlich als Hauptspeicher dient. Allgemeine Formen der computerlesbaren Medien beinhalten beispielsweise Disketten, Floppy Disks, Festplatten, Magnetbänder, jegliche anderen magnetischen Datenträger, CD-ROMs, DVDs, jegliche andere optische Medien, Lochkarten, Lochstreifen, alle anderen physischen Medien mit Lochmustern, RAM-, PROM-, EPROM-Speicher, Flash-EPROM, jegliche anderen Speicherchips oder -kassetten oder jedes andere nichtflüchtige Medium, von dem ein Computer lesen kann.
  • Diverse Formen von computerlesbaren Medien können daran beteiligt sein, eine oder mehrere Sequenzen einer oder mehrerer Anweisungen an den CPU 506 (oder jeden anderen hier beschriebenen Prozessor oder Gerät) zur Ausführung zu transportieren. So können die Anweisungen zunächst auf einer magnetischen Disk eines externen Computers transportiert werden (ohne Abbildung). Der externe Computer kann die Anweisungen in seinen dynamischen Speicher laden und die Anweisungen anschließend über eine Ethernet-Verbindung, ein Kabel oder sogar über eine Telefonleitung mit Modem senden. Ein an einen Computer angeschlossenes Kommunikationsgerät 500 (z. B. ein Server) kann die Daten über die entsprechende Kommunikationsleitung empfangen und die Daten für den Prozessor auf einem Systembus bereitstellen. Der Systembus transportiert die Daten an den Hauptspeicher, von dem der Prozessor die Anweisungen anschließend abruft und ausführt. Die vom Hauptspeicher empfangenen Anweisungen können gegebenenfalls entweder vor oder nach der Ausführung durch den Prozessor gespeichert werden. Darüber hinaus können Anweisungen über einen Kommunikationsport als elektrische, elektromagnetische oder optische Signale empfangen werden, die beispielhafte Formen für drahtlose Kommunikation oder Datenstreams sind, die diverse unterschiedliche Arten von Informationen übertragen.
  • Es wird offensichtlich, dass die hier beschriebenen Systeme und Verfahren in vielen verschiedenen Formen von Software, Firmware und Hardware in den abgebildeten Figuren implementiert werden können. Der tatsächliche Softwaretext oder spezialisierte Steuerungshardware, die zur Implementierung von Aspekten, die mit den Prinzipien der hier beschriebenen Systeme und Verfahren konsistent sind, ist nicht beschränkend. Somit wurden der Betrieb und das Verhalten der Aspekte der Systeme und Verfahren beschrieben ohne Bezugnahme auf den spezifischen Softwaretext - es versteht sich, dass ein Durchschnittsfachmann in der Lage ist, Software und Steuerungshardware zu konzipieren, um die Aspekte aufgrund der vorliegenden Beschreibung zu implementieren.
  • Verschiedene Aspekte des in dieser Spezifikation beschriebenen Gegenstandes können in einem Computersystem implementiert werden, das eine Backend-Komponente, z. B. einen Datenserver, oder eine Middleware-Komponente, z. B. einen Anwendungsserver, oder eine Frontend-Komponente, z. B. einen Client-Computer mit einer grafischen Benutzeroberfläche oder einen Webbrowser, durch den ein Benutzer mit einer in dieser Spezifikation beschriebenen Implementierung des Gegenstandes interagieren kann, oder eine beliebige Kombination einer oder mehrerer der besagten Backend-, Middleware- oder Frontend-Komponenten beinhalten. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation, wie z. B. ein Kommunikationsnetzwerk, miteinander verbunden sein. Das Kommunikationsnetzwerk kann beispielsweise eines oder mehrere aus einem persönlichen Netzwerk (PAN), einem lokalen Netzwerk (LAN), einem Campusnetzwerk (CAN), einem Stadtnetzwerk (Metropolitan Area Network - MAN), einem Weitverkehrsnetzwerk (Wide Area Network - WAN), einem Breitbandnetzwerk (Broadband Network - BBN), dem Internet und dergleichen beinhalten. Des Weiteren kann das Kommunikationsnetzwerk zum Beispiel einschließlich, unter anderem eine oder mehrere der folgenden Netzwerk-Topologien beinhalten: ein Bus-Netzwerk, ein Stern-Netzwerk, ein Ring-Netzwerk, ein Mesh-Netzwerk, ein Stern-Bus-Netzwerk, ein Baum- oder hierarchisches Netzwerk und dergleichen. Die Kommunikationsmodule können beispielsweise Modems oder Ethernet-Karten sein.
  • Wie obenstehend erörtert, kann ein Computersystem 500 Clienten und Server beinhalten. Ein Client und ein Server befinden sich im Allgemeinen entfernt voneinander und interagieren typischerweise über ein Kommunikationsnetzwerk. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern ausgeführt werden und eine Client-Server-Beziehung zueinander aufweisen. Das Computersystem 500 kann beispielsweise und ohne Beschränkung ein Unternehmensserver oder eine Gruppe von Servern, ein oder mehrere Desktop-Computer, ein oder mehrere Laptop-Computer usw. sein. Das Computersystem 500 kann auch in ein anderes Gerät eingebettet sein, beispielsweise und ohne Beschränkung ein Mobiltelefon, ein Personal Digital Assistant (PDA), ein mobiler Audio-Player, ein GPS-Empfänger, eine Videospielkonsole und/oder eine Fernseher-Set-Top-Box.
  • Während diese Spezifikation viele Spezifika enthält, sollen diese nicht als Beschränkung des Umfangs der Patentansprüche verstanden werden, sondern vielmehr als Beschreibungen von bestimmten Umsetzungen des Gegenstands. Bestimmte Merkmale, die in dieser Spezifikation im Zusammenhang mit separaten Implementierungen beschrieben werden, können darüber hinaus in Kombination in einer einzelnen Implementierung implementiert werden. Umgekehrt können verschiedene Merkmale, die im Kontext einer einzelnen Implementierung beschrieben sind, auch in mehreren Implementierungen getrennt oder in einer geeigneten Teilkombination implementiert werden. Außerdem können, auch wenn die Funktionen vorstehend ggf. als in bestimmten Kombinationen wirkend beschrieben und zunächst auch als solche beansprucht werden, in einigen Fällen ein oder mehrere Funktionen einer beanspruchten Kombination aus der Kombination herausgenommen und die beanspruchte Kombination auf eine Teilkombination oder eine Variante einer Teilkombination gerichtet werden.
  • Ebenso werden Vorgänge in den Zeichnungen zwar in einer bestimmten Reihenfolge dargestellt, dies sollte jedoch nicht als Anforderung verstanden werden, dass die besagten Vorgänge in der bestimmten dargestellten Reihenfolge oder in einer aufeinanderfolgenden Reihenfolge ausgeführt werden müssen, oder dass alle dargestellten Vorgänge ausgeführt werden müssen, um erwünschte Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und Parallelverarbeitung von Vorteil sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den zuvor beschriebenen Aspekten nicht in allen Aspekten als eine solche Trennung erfordernd aufgefasst werden, zudem versteht sich, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in ein einziges Softwareprodukt integriert oder in mehrere Softwareprodukte zusammengefasst werden können.

Claims (20)

  1. Computerprogrammprodukt umfassend Befehle, die, wenn sie auf einem oder mehr Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, ein Verfahren zum Bereitstellen von Zugriff auf eine auf einem externen Speicherserver gespeicherte Datei auszuführen, wobei das Verfahren Folgendes umfasst: Empfangen, auf einem Anwendungsserver, der mehrere Anwendungen hostet, und von einem Benutzergerät, einer Dateizugriffsanforderung, um eine auf dem externen Speicherserver gespeicherte Datei zuzugreifen; Senden, an den externen Speicherserver, eine Metadaten-und-Inhalts-Anforderung bezüglich der Datei, wobei die Metadaten-und-Inhalts-Anforderung Versionsinformationen einer zuvor im Cache gespeicherten Version der auf dem Anwendungsserver im Cache gespeicherten Datei beinhaltet; und wenn die im Cache gespeicherte Version der Datei nicht die angeforderte Version der Datei ist: Empfangen von Inhalt der angeforderten Version der Datei von dem externen Speicherserver, Speichern der angeforderten Version auf dem Anwendungsserver, um die zuvor im Cache gespeicherte Version zu ersetzen, und Bereitstellen der angeforderten Version der Datei an das Benutzergerät über die entsprechende Anwendung auf dem Anwendungsserver.
  2. Computerprogrammprodukt nach Anspruch 1, wobei die Dateizugriffsanforderung einen Anwendungsidentifikator beinhaltet, um eine Anwendung aus den mehreren Anwendungen zum Öffnen der Datei zu starten, oder der Anwendungsserver identifiziert eine entsprechende Anwendung aus den mehreren Anwendungen zum Öffnen der Datei aufgrund eines Dateityps, der in der Dateizugriffsanforderung beinhaltet ist.
  3. Computerprogrammprodukt nach Anspruch 1, wobei der externe Speicherserver von dem Anwendungsserver oder dem Benutzergerät unabhängig ist.
  4. Computerprogrammprodukt nach Anspruch 1, wobei die Metadaten-und-Inhalts-Anforderung einen von dem Anwendungsserver erstellten Prüfschlüssel beinhaltet, und wobei eine Kopie des Prüfschlüssels zuvor dem externen Speicherserver bereitgestellt und von ihm gespeichert wurde, sodass der externe Speicherserver verifizieren kann, dass die Metadaten-und-Inhalts-Anforderung von dem Anwendungsserver geschickt wird, durch Vergleichen des Prüfschlüssels von der Metadaten-und-Inhalts-Anforderung mit dem zuvor gespeicherten Prüfschlüssel.
  5. Computerprogrammprodukt nach Anspruch 1, wobei die Dateizugriffsanforderung ein von dem externen Speicherserver an das Benutzergerät erstelltes Fernzugriffstoken beinhaltet, und das Fernzugriffstoken dem Benutzergerät Zugriff auf die Datei gewährt.
  6. Computerprogrammprodukt nach Anspruch 1, wobei die Metadaten-und-Inhalts-Anfrage von dem Anwendungsserver an den externen Speicherserver gesendet wird über eine Anwendungsprogrammschnittstelle (application programming interface - API), die unter dem Hypertext-Übertragungsprotokoll (Hypertext Transfer Protocol - HTTP) arbeitet.
  7. Computerprogrammprodukt nach Anspruch 1, ferner umfassend: periodisches Hochladen der zuvor im Cache gespeicherten Version auf dem Anwendungsserver auf den externen Speicherserver; und in Reaktion auf das periodische Hochladen, wenn der Speicherserver bestimmt, dass die aktualisierte Version der Datei existiert, periodisches Empfangen von Inhalt der aktualisierten Version der Datei von dem externen Speicherserver.
  8. Computerprogrammprodukt nach Anspruch 1, ferner umfassend: periodisches Senden einer Metadaten-Anforderung an den externen Speicherserver über eine HTTP-Nachricht; und in Reaktion auf die periodische Metadaten-Anforderung, periodisches Empfangen aktualisierter Metadaten, die mit der Datei von dem externen Speicherserver verbunden sind.
  9. Computerprogrammprodukt nach Anspruch 1, wobei das Benutzergerät eine Anforderungen an den externen Speicherserver sendet, um auf die Datei zuzugreifen, und der externe Speicherserver in Reaktion auf die von dem Benutzergerät gesendete Anforderung einen Metadatenparameter ändert, der mit der Datei verbunden ist, um anzuzeigen, dass die Datei gesperrt ist.
  10. Computerprogrammprodukt nach Anspruch 1, wobei die Dateizugriffsanforderung eine HTTP POST-Nachricht beinhaltet, die innerhalb eines strukturellen Tags generiert wurde, das einen Anzeigeabschnitt innerhalb einer browserbasierten Anwendung definiert, und wobei Inhalt der angeforderten Version der Datei innerhalb des definierten Anzeigeabschnitts zur Verfügung gestellt wird.
  11. Computerprogrammprodukt nach Anspruch 1, wobei die angeforderte Version der Datei dem Benutzergerät über eine browserbasierte Anwendung oder eine mobile Anwendung zur Verfügung gestellt wird, indem die entsprechende Anwendung von dem Anwendungsserver gehostet und gestartet wird.
  12. Computerprogrammprodukt nach Anspruch 1, wobei Inhalt der angeforderten Version der Datei an das Benutzergerät dem Benutzergerät über eine browserbasierte Anwendung oder eine mobile Anwendung mit dem Inhalt der aktuellsten auf dem Anwendungsserver gespeicherten Version und ohne dass die angeforderte Version der Datei von dem Benutzergerät heruntergeladen werden muss, angezeigt wird.
  13. Computerprogrammprodukt nach Anspruch 1, ferner umfassend: Erhalten, von dem externen Speicherserver, API-Konfigurierungsinformationen über einen einheitlichen Ressourcenanzeiger (URL); und Konfigurieren einer API aufgrund der API-Konfigurierungsinformationen zum Empfangen von Datennachrichten von dem externen Speicherserver und über die konfigurierte API.
  14. Computerprogrammprodukt nach Anspruch 1, ferner umfassend: Empfangen, in Reaktion auf die Metadaten-und-Inhalts-Anfrage, von dem externen Speicherserver, einer Nachricht, die eine eingebettete URL aufweist, die Metadaten der Datei bereitstellt.
  15. Computerprogrammprodukt nach Anspruch 1, ferner umfassend: Empfangen, in Reaktion auf die Metadaten-und-Inhalts-Anfrage, von dem externen Speicherserver, einer Kopie der angeforderten Version der Datei oder eines vordefinierten Links auf die aktuellste Version der in dem Speicherserver gespeicherten Datei.
  16. Computerprogrammprodukt nach Anspruch 1, wobei die Metadaten-und-Inhalts-Anfrage einen Parameter beinhaltet, der anzeigt, ob der externe Speicherserver den Inhalt der aktuellsten Version der Datei bereitstellen soll, wenn die sich im Cache befindliche Datei nicht die angeforderte Version ist.
  17. Computerprogrammprodukt nach Anspruch 1, wobei die Metadaten-und-Inhalts-Anfrage einen ersten Parameter, der mit einem ersten Versionswert für die Cache-Version konfiguriert ist, und einen zweiten Parameter, der mit einem zweiten Versionswert konfiguriert ist, der die angeforderte Version spezifiziert, beinhaltet.
  18. Computerprogrammprodukt nach Anspruch 1, wobei die angeforderte Version standardmäßig die aktuellste Version ist.
  19. System zum Bereitstellen von Zugriff auf eine auf einem externen Speicherserver gespeicherte Datei, wobei das System Folgendes umfasst: einen Speicher, der auf einem Anwendungsserver angeordnet ist, wobei der Speicher mehrere Anwendungen und eine zuvor im Cache gespeicherte Version einer Datei speichert; und einen Prozessor, der kommunikativ mit dem Speicher gekoppelt ist, wobei der Prozessor konfiguriert ist zum: Empfangen, von einem Benutzergerät, einer Dateizugriffsanforderung, um auf die auf dem externen Speicherserver gespeicherte Datei zuzugreifen, Senden, an den externen Server, einer Metadaten-und-Inhalts-Anfrage bezüglich der Datei, wobei die Metadaten-und-Inhalts-Anfrage Versionsinformationen der zuvor im Cache gespeicherten Version der Datei beinhaltet, und wenn die im Cache gespeicherte Version der Datei nicht eine angeforderte Version ist: Empfangen der angeforderten Version der Datei von dem externen Speicherserver, Speichern der empfangenen Version auf dem Anwendungsserver, um die zuvor im Cache gespeicherte Version zu ersetzen, und Bereitstellen, über die entsprechende Anwendung, der angeforderten Version der Datei an das Benutzergerät.
  20. Prozessorlesbares nichtflüchtiges Speichermedium, das prozessorausführbare Anweisungen zum Bereitstellen von Zugriff auf eine auf einem externen Speicherserver gespeicherte Datei speichert, wobei die prozessorausführbaren Anweisungen Folgendes umfassen: prozessorausführbare Anweisungen, die von einem Prozessor ausführbar sind, zum Empfangen, auf einem Anwendungsserver, der mehrere Anwendungen hostet, und von einem Benutzergerät, einer Dateizugriffsanforderung, um auf eine auf dem externen Speicherserver gespeicherte Datei zuzugreifen; prozessorausführbare Anweisungen, die von dem Prozessor ausführbar sind, zum Senden, an den externen Server, einer Metadaten-und-Inhalts-Anforderung bezüglich der Datei, wobei die Metadaten-und-Inhalts-Anforderung Versionsinformationen einer zuvor im Cache gespeicherten Version der auf dem Anwendungsserver im Cache gespeicherten Datei beinhaltet; und prozessorausführbare Anweisungen, die von dem Prozessor ausführbar sind, wenn die im Cache gespeicherte Version der Datei keine angeforderte Version ist: Empfangen der angeforderten Version der Datei von dem externen Speicherserver, Speichern der empfangenen Version auf dem Anwendungsserver, um die zuvor im Cache gespeicherte Version zu ersetzen, und Bereitstellen der angeforderten Version der Datei an das Benutzergerät über die entsprechende Anwendung auf dem Anwendungsserver.
DE202017106594.4U 2017-02-15 2017-10-30 Bereitstellen von Zugriff auf eine in einem Datenspeichersystem gespeicherte Datei Active DE202017106594U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/433,815 US10387383B2 (en) 2017-02-15 2017-02-15 Systems and methods for providing access to a data file stored at a data storage system
US15/433,815 2017-02-15

Publications (1)

Publication Number Publication Date
DE202017106594U1 true DE202017106594U1 (de) 2018-05-18

Family

ID=60580099

Family Applications (2)

Application Number Title Priority Date Filing Date
DE102017125428.5A Pending DE102017125428A1 (de) 2017-02-15 2017-10-30 Systeme und Verfahren zum Bereitstellen von Zugriff auf eine in einem Datenspeichersystem gespeicherte Datei
DE202017106594.4U Active DE202017106594U1 (de) 2017-02-15 2017-10-30 Bereitstellen von Zugriff auf eine in einem Datenspeichersystem gespeicherte Datei

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE102017125428.5A Pending DE102017125428A1 (de) 2017-02-15 2017-10-30 Systeme und Verfahren zum Bereitstellen von Zugriff auf eine in einem Datenspeichersystem gespeicherte Datei

Country Status (5)

Country Link
US (3) US10387383B2 (de)
CN (1) CN108427703A (de)
DE (2) DE102017125428A1 (de)
GB (2) GB2559835B (de)
WO (1) WO2018151771A1 (de)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671570B2 (en) 2017-02-01 2020-06-02 Open Text Sa Ulc Web application open platform interface (WOPI) server architecture and applications for distributed network computing environments
US11023553B2 (en) 2017-04-04 2021-06-01 Microsoft Technology Licensing, Llc Identifying and managing trusted sources in online and networked content for professional knowledge exchange
US11829583B2 (en) * 2017-07-07 2023-11-28 Open Text Sa Ulc Systems and methods for content sharing through external systems
US10652308B2 (en) * 2017-11-08 2020-05-12 International Business Machines Corporation Cognitive storage management for a mobile computing device
US10664332B2 (en) * 2018-05-25 2020-05-26 Microsoft Technology Licensing, Llc Application programming interfaces for identifying, using, and managing trusted sources in online and networked content
CN109240997A (zh) * 2018-08-24 2019-01-18 华强方特(深圳)电影有限公司 一种文件的上传保存方法、系统和客户端
JP7155439B2 (ja) * 2019-02-12 2022-10-18 グーグル エルエルシー オンデバイス機能性を使うように車両クライアントデバイスに指令すること
US11240127B1 (en) * 2019-03-01 2022-02-01 Pivotal Software, Inc. Indicator tools
WO2020226613A1 (en) * 2019-05-06 2020-11-12 Google Llc Secure communication in mobile digital pages
US11875376B2 (en) 2019-06-17 2024-01-16 Optimizely North America Inc. Minimizing impact of experimental content delivery on computing devices
US11532013B2 (en) * 2019-06-17 2022-12-20 Optimizely, Inc. Optimized simultaneous use of content experimentation and content caching
US11113294B1 (en) 2019-07-16 2021-09-07 Splunk Inc. Recommending query templates during query formation
US11644955B1 (en) 2019-07-16 2023-05-09 Splunk Inc. Assigning a global parameter to queries in a graphical user interface
US11386158B1 (en) 2019-07-16 2022-07-12 Splunk Inc. Recommending query parameters based on tenant information
US11636128B1 (en) 2019-07-16 2023-04-25 Splunk Inc. Displaying query results from a previous query when accessing a panel
US11263268B1 (en) 2019-07-16 2022-03-01 Splunk Inc. Recommending query parameters based on the results of automatically generated queries
US11216511B1 (en) 2019-07-16 2022-01-04 Splunk Inc. Executing a child query based on results of a parent query
US11604799B1 (en) 2019-07-16 2023-03-14 Splunk Inc. Performing panel-related actions based on user interaction with a graphical user interface
US11269871B1 (en) * 2019-07-16 2022-03-08 Splunk Inc. Displaying multiple editable queries in a graphical user interface
CN110515895B (zh) * 2019-08-30 2023-06-23 北京燕山电子设备厂 大数据存储系统中对数据文件进行关联存储的方法及系统
US11108920B2 (en) 2019-10-03 2021-08-31 Starfish Technologies LLC Cloud-based scanning systems and remote image processing methods
US11128765B2 (en) 2019-10-03 2021-09-21 Starfish Technologies LLC Cloud-based scanning systems and remote image processing methods
US10848628B1 (en) * 2019-10-03 2020-11-24 Starfish Technologies LLC Cloud-based scanning systems and remote image processing methods
US10924615B1 (en) 2019-10-03 2021-02-16 Starfish Technologies LLC Cloud-based scanning systems and remote image processing methods
US10708358B1 (en) 2019-10-03 2020-07-07 Starfish Technologies LLC Cloud-based scanning systems and remote image processing methods
US10827082B1 (en) 2019-10-03 2020-11-03 Starfish Technologies LLC Cloud-based scanning systems and remote image processing methods
US10812667B1 (en) 2019-10-03 2020-10-20 Starfish Technologies LLC Cloud-based scanning systems and remote image processing methods
US10951779B1 (en) 2019-10-03 2021-03-16 Starfish Technologies LLC Cloud-based scanning systems and remote image processing methods
US20210157942A1 (en) * 2019-11-27 2021-05-27 Green Data Technology Inc. Authenticating data for use using a data storage system and distributed electronic ledger system
CN111241455B (zh) * 2020-01-22 2023-08-25 抖音视界有限公司 数据处理装置、计算机设备及存储介质
CN111814196B (zh) * 2020-09-04 2021-01-05 支付宝(杭州)信息技术有限公司 一种数据处理方法、装置及设备
CN113012008B (zh) * 2020-09-15 2022-06-03 支付宝(杭州)信息技术有限公司 一种基于可信硬件的身份管理方法、装置及设备
US11449420B2 (en) * 2020-10-20 2022-09-20 Citrix Systems, Inc. Content caching
US11537786B2 (en) * 2020-11-16 2022-12-27 Dropbox, Inc. Generating fillable documents and fillable templates in a collaborative environment
CN112350873B (zh) * 2020-11-25 2022-10-25 中国工商银行股份有限公司 应用服务信息处理方法、应用服务调用方法、装置及系统
US11856110B2 (en) * 2021-01-21 2023-12-26 GM Global Technology Operations LLC Method for delegated key sharing for digital car key system
CN112948860A (zh) * 2021-03-05 2021-06-11 华控清交信息科技(北京)有限公司 数据处理方法、相关节点及介质
US11604789B1 (en) 2021-04-30 2023-03-14 Splunk Inc. Bi-directional query updates in a user interface
CN115378930A (zh) * 2021-05-17 2022-11-22 成都鼎桥通信技术有限公司 文件分发方法及装置
US11934545B2 (en) 2021-06-22 2024-03-19 Fortra, Llc Secure way to authenticate from file protocol while handling third party cookies and browser inconsistencies
US11947993B2 (en) * 2021-06-22 2024-04-02 International Business Machines Corporation Cooperative input/output of address modes for interoperating programs
US11947528B1 (en) 2022-01-06 2024-04-02 Splunk Inc. Automatic generation of queries using non-textual input
CN114116634B (zh) * 2022-01-26 2022-04-22 苏州浪潮智能科技有限公司 一种缓存方法、装置及可读存储介质

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6351776B1 (en) * 1999-11-04 2002-02-26 Xdrive, Inc. Shared internet storage resource, user interface system, and method
US20100185614A1 (en) 1999-11-04 2010-07-22 O'brien Brett Shared Internet storage resource, user interface system, and method
AU2001245481A1 (en) 2000-03-07 2001-09-17 Hotlens.Com Inc. Server-side web browsing and multiple lens system, method and apparatus
US7103617B2 (en) 2003-01-17 2006-09-05 Tacit Networks, Inc. Method and system for use of storage caching with a distributed file system
US7765196B2 (en) * 2003-06-23 2010-07-27 Dell Products L.P. Method and apparatus for web cache using database triggers
US8010670B2 (en) 2003-12-23 2011-08-30 Slipstream Data Inc. Meta-data based method for local cache utilization
US20060156353A1 (en) * 2004-12-28 2006-07-13 Elmar Dorner Remotely-accessible wireless LAN server
US20070027929A1 (en) * 2005-08-01 2007-02-01 Whelan Gary J System, method, and/or computer program product for a file system interface
TWI476610B (zh) * 2008-04-29 2015-03-11 Maxiscale Inc 同級間冗餘檔案伺服器系統及方法
US8620861B1 (en) 2008-09-30 2013-12-31 Google Inc. Preserving file metadata during atomic save operations
US20110029896A1 (en) 2009-07-31 2011-02-03 Action Star Enterprise Co., Ltd. System and method for controlling multiple computers
US20120101980A1 (en) 2010-10-26 2012-04-26 Microsoft Corporation Synchronizing online document edits
EP2710510A4 (de) 2011-05-14 2015-05-06 Bitcasa Inc Cloud-dateisystem mit serverseitiger entduplizierung von dem benutzer unbekannten verschlüsselten dateien
US20130024910A1 (en) * 2011-07-22 2013-01-24 Salesforce.Com, Inc. Computer implemented methods and apparatus for integrating a social network information feed with a network communications application
US20130080603A1 (en) 2011-09-27 2013-03-28 Microsoft Corporation Fault Tolerant External Application Server
US20130238552A1 (en) * 2012-03-12 2013-09-12 Joseph Saib Systems and methods for synchronizing files in a networked communication system
US20140007189A1 (en) * 2012-06-28 2014-01-02 International Business Machines Corporation Secure access to shared storage resources
US9106721B2 (en) * 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
EP2939392A1 (de) * 2012-12-31 2015-11-04 British Telecommunications Public Limited Company Verarbeitungsvorrichtung und verfahren zu deren betrieb
US9549036B2 (en) * 2013-11-20 2017-01-17 Empire Technology Development Llc Network injected storage redirection for embedded applications
CN104239509B (zh) 2014-09-15 2018-04-13 国家电网公司 多版本gis切片服务系统
US20160085765A1 (en) * 2014-09-22 2016-03-24 Amazon Technologies, Inc. Computing environment selection techniques
CN104506647B (zh) * 2014-12-31 2017-12-08 北京奇艺世纪科技有限公司 一种数据存储系统及存储和访问方法
CN106341371A (zh) * 2015-07-08 2017-01-18 杭州奕锐电子有限公司 云存储数据的加密方法及其系统
CN106021381A (zh) * 2016-05-11 2016-10-12 北京搜狐新媒体信息技术有限公司 一种云存储服务系统的数据访问/存储方法及装置
CN106293701A (zh) * 2016-07-26 2017-01-04 浪潮软件股份有限公司 基于云端服务器的多租户版本管理的应用引擎设计方法

Also Published As

Publication number Publication date
US20180232394A1 (en) 2018-08-16
GB202109387D0 (en) 2021-08-11
CN108427703A (zh) 2018-08-21
GB2559835B (en) 2021-12-15
GB2596422B (en) 2022-04-13
US11232080B2 (en) 2022-01-25
GB2596422A (en) 2021-12-29
WO2018151771A1 (en) 2018-08-23
US10387383B2 (en) 2019-08-20
GB2559835A (en) 2018-08-22
GB201717949D0 (en) 2017-12-13
DE102017125428A1 (de) 2018-08-16
US20190370228A1 (en) 2019-12-05
US20220147494A1 (en) 2022-05-12

Similar Documents

Publication Publication Date Title
DE202017106594U1 (de) Bereitstellen von Zugriff auf eine in einem Datenspeichersystem gespeicherte Datei
EP2555489B1 (de) Verfahren und Einrichtung zum Konfigurieren von Endgeräten
DE112015005024T5 (de) Öffnen lokaler Anwendungen von Browsern
DE602005002679T2 (de) WEB-Dienst-Anwendungsprotokoll und SOAP-Verarbeitungsmodell
DE202017105825U1 (de) Netzmanagementschnittstelle
DE202014010945U1 (de) Systeme zur Bereitstellung von Meldungen von Änderungen in einem Cloud-basierten Dateisystem
DE112011104787B4 (de) Nutzung von Inhalten über persönliche Clouds
DE202012013445U1 (de) System, um Offline Zugriff in einem gehosteten Dokument-Service zur Verfügung zu stellen
DE102012223167B4 (de) Gemeinsame Nutzung von Artefakten zwischen kollaborativen Systemen
DE202011110895U1 (de) Echtzeitsynchronisierte Bearbeitung von Dokumenten durch mehrere Benutzer für das Bloggen
DE112013002544T5 (de) Cloudbasiertes Teilen von Datenpunkten und Zusammenarbeit unter Benutzergruppen
DE202014010930U1 (de) Zugriff auf Objekte in ausgelagerten Speichern
DE202011110893U1 (de) Verwaltung mehrfacher Anmeldungen über einen Einzelbrowser
DE202013012493U1 (de) Stufen der Datenspeicherung für Webanwendungen und Browser-Erweiterungen
DE112011101357T5 (de) Dynamisches Token für den vorübergehenden Datenzugriff
DE112012003741T5 (de) Verfahren und Vorrichtung für eine serverseitige Fernarbeitsaufnahme und -wiedergabe
DE202012013453U1 (de) Gehostete Speichersperrung
DE202015009292U1 (de) Erzeugung eines Aktivitätsflusses
DE202021102309U1 (de) Anwendungsbereitstellungs-Framework für Datenbankplattformen
DE112015003926T5 (de) Publish/Subscribe-Messaging unter Verwendung einer Nachrichtenstruktur
DE102015101062B4 (de) Serversystem, Verfahren zur Steuerung eines Serversystems und Speichermedium
DE202021004266U1 (de) Anfügbare-und-abtrennbare Datenbank-Sessions
DE202023101653U1 (de) Organisations- und cloudübergreifende automatisierte Datenpipelines
DE202015009316U1 (de) Metadatenmanagement in einem dezentralen Verarbeitungssystem
DE102008012979A1 (de) Verfahren und Programm zum Bereitstellen von Datenkohärenz in Netzwerken

Legal Events

Date Code Title Description
R207 Utility model specification
R150 Utility model maintained after payment of first maintenance fee after three years
R151 Utility model maintained after payment of second maintenance fee after six years