DE202013012493U1 - Stufen der Datenspeicherung für Webanwendungen und Browser-Erweiterungen - Google Patents

Stufen der Datenspeicherung für Webanwendungen und Browser-Erweiterungen Download PDF

Info

Publication number
DE202013012493U1
DE202013012493U1 DE202013012493.8U DE202013012493U DE202013012493U1 DE 202013012493 U1 DE202013012493 U1 DE 202013012493U1 DE 202013012493 U DE202013012493 U DE 202013012493U DE 202013012493 U1 DE202013012493 U1 DE 202013012493U1
Authority
DE
Germany
Prior art keywords
level
web application
data
memory
storage
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
DE202013012493.8U
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 DE202013012493U1 publication Critical patent/DE202013012493U1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Ein greifbares computerlesbares Speichermedium, worauf Anweisungen gespeichert und aufgenommen sind, sodass, wenn es ausgeführt wird, durch einen oder mehrere Prozessoren eines Computersystems, diese das Computersystem dazu bringen: ein Merkmal einer Webanwendung auf dem Computersystem zu implementieren, die Webanwendung mit einem Nutzerkonto assoziiert ist, das Merkmal assoziiert ist mit mindestens einer Stufe aus einem Satz aus spezifizierten Stufen aus Datensätzen; und Senden einer Speicheranfrage für den Datensatz, bezogen auf das Merkmal zu der mindestens einen Stufe aus dem Satz spezifizierter Stufen von Datenspeicher; der Satz von spezifizierten Stufen von Datenspeicher enthält: eine erste Stufe von limitiertem persistenten Speicher in einem externen Server, wobei ein erster Satz von Daten der ersten Stufe synchronisiert wird, über mehrere Geräte assoziiert mit einem Benutzerkonto, eine zweite Stufe von persistentem Speicher auf einem lokalen nichtflüchtigen Speicher auf einem Computersystem, und eine dritte Stufe von temporären Speicher auf lokalen flüchtigem Speicher auf einem Computergerät.

Description

  • VERWEIS
  • Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung bezieht sich allgemein auf die Verteilung von Speicherplatz von Softwareanwendungen, insbesondere auf die Verteilung von Datenspeicherstufen für Webanwendungen und Browser-Erweiterungen.
  • HINTERGRUND
  • Unterschiedliche Stufen von Datenspeicherung bringen unterschiedliche Vorteile. Daten können extern oder lokal gespeichert werden und können in einem temporären Speichermedium gespeichert werden (wie etwa ein Cache) oder in einem persistenteren Speichermedium (wie etwa ein nicht-flüchtiger Speicher). Ein Cache speichert Daten, sodass künftige Anforderungen dieser Daten schneller bedient werden können. In einem Cache gespeicherte Daten können Werte beinhalten die früher errechnet oder von Originalwerten dupliziert wurden, die woanders gespeichert sind. Sind angeforderte Daten im Cache enthalten, kann eine Anforderung einfach durch Lesen des Caches bedient werden, was schneller ist, als die Daten wieder zu berechnen oder vom originalen Speicherort abzurufen. Um kosteneffizient zu sein und einen effizienten Datengebrauch zu ermöglichen, jedoch, sind Caches relativ klein.
  • Datenspeicherung an einem persistenten Ort bringt auch verschiedene Vorteile. Zum Beispiel kann nicht-flüchtiger Speicher Informationen enthalten, sogar wenn ein Computer ausgeschalten ist. Zusätzlich kann ein einzelner Nutzer auf die gleichen an einem externen persistenten Ort gespeicherte Daten zugreifen, indem verschiedene Computergeräte genutzt werden. Mehrere Nutzer können auch Zugang zu den gleichen an einem externen persistenten Ort gespeicherte Daten haben.
  • Webanwendungen und Browser-Erweiterungen können auf verschiedene Datenarten zugreifen und diese speichern. Durch Nutzung einer Programmierschnittstelle(n) für Webanwendung(APIs), können Webanwendungen oder Browser-Erweiterungen Daten auf einer lokalen Festplatte eines Computergeräts speichern, sodass die Daten lokal gecached sind. Ein lokaler Cache kann Daten schneller liefern, als wenn die Daten auf einem externen Server gespeichert sind, aber Updates und Daten einer Webanwendung würden nicht unbedingt reflektiert werden, wenn der Nutzer ein Betriebssystem aktualisiert oder wenn der Nutzer zu einem anderen Computergerät oder mobilen Gerät wechselt. Entsprechend, würden verschiedene Stufen für Datenspeicherung genutzt durch Webanwendungen und Browser-Erweiterungen würde Entwicklern erlaubt Funktionen der Webanwendungen und Browser-Erweiterungen zu optimieren und würden dem Nutzer viele Vorteile bringen.
  • ZUSAMMENFASSUNG
  • Gemäß einem allgemeinen Aspekt führt ein Verfahren, bei dem Datenspeicher für Funktionen von Webanwendungen und Browser-Erweiterungen bereitgestellt werden, die auf einem oder mehreren Prozessoren gekoppelt sind, auf einem oder mehreren Speichermedien aus. Es wird für eine erste Stufe an limitiertem persistenten Speicher auf einem externen Server Zugang bereitgestellt, wobei ein erster Satz an Daten der ersten Stufe über mehrere Geräte, die mit einem Benutzerkonto assoziiert sind, synchronisiert wird. Zugang wird bereitgestellt für eine zweite Stufe persistenten Speichers auf einem lokalen, greifbaren nicht-flüchtigen Speichermedium. Zugang wird bereitgestellt für eine dritte Stufe temporären Speichers auf einem lokalen, greifbaren flüchtigen Speichermedium. Eine Speicheranfrage wird von einer Webanwendung oder Browser-Erweiterung erhalten, die Speicheranfrage beinhaltet eine Art mindestens einer Stufe des Datenspeichers, assoziiert mit wenigstens einem Merkmal der Webanwendung oder Browser-Erweiterung, die Art beinhaltet wenigstens eine der ersten Stufe externen limitierten persistenten Speichers, die zweite Stufe von lokalem persistenten Speicher oder die dritte Ebene von lokalen temporären Speicher. Das mindestens eine Merkmal der Webanwendung oder Browser-Erweiterung ist verbunden mit der mindestens einen Stufe des Datenspeichers.
  • In einem weiteren allgemeinen Aspekt, wird ein Verfahren, um Datenspeicher für Funktionen von künftigen Webanwendungen und Browser-Erweiterungen bereitzustellen, ausgeführt auf einem oder mehreren Prozessoren, operierend gekoppelt an eines oder mehrere Speichermedien eines Computergerätes. Ein Merkmal einer Webanwendung wird ausgeführt auf dem Computergerät. Wenigstens eine Stufe eines Satzes spezifizierter Stufen von Datenspeicher wird automatisiert determiniert basierend auf dem Merkmal. Eine Speicheranfrage für einen Satz Daten assoziiert mit dem Merkmal wird zu der mindestens einen Stufe eines Satzes von spezifizierten Stufen von Datenspeicher gesendet, der Satz spezifizierter Stufen von Datenspeicher enthält: Eine erste Stufe limitierten persistenten Speichers auf einem externen Server, wobei ein erster Datensatz der ersten Stufe synchronisiert wird über mehrere Geräte verbunden mit einem Benutzerkonto, eine zweite Stufe von persistentem Speicher auf lokalen nicht-flüchtigen Speicher auf dem Computergerät und eine dritte Stufe von temporären Speicher von lokalem flüchtigen Speicher auf einem Computergerät.
  • In einem weiteren allgemeinen Aspekt hat ein greifbares computerlesbares Speichermedium Anweisungen darauf aufgenommen und gespeichert die, wenn ausgeführt durch einen oder mehrere Prozessoren eines Computersystems das Computersystem dazu bringen ein Merkmal einer Webanwendung in das Computersystem zu implementieren, die Webanwendung verbunden mit einem Benutzerkonto, das Merkmal verbunden mit wenigstens einer Stufe von spezifizierten Stufen von Datenspeicher. Das Computersystem kann eine Speicheranfrage senden für einen Satz Daten verbunden mit dem Merkmal zu der mindestens einen Stufe eines Satzes von spezifizierten Stufen von Datenspeicher, der Satz spezifizierter Stufen von Datenspeicher enthält: Eine erste Stufe limitierten persistenten Speichers auf einem externen Server, wobei ein erster Datensatz der ersten Stufe synchronisiert wird über mehrere Geräte assoziiert mit einem Benutzerkonto, eine zweite Stufe von persistentem Speicher auf lokalen nicht-flüchtigen Speicher auf dem Computergerät und eine dritte Stufe von temporären Speicher von lokalem volatilen Speicher auf einem Computergerät.
  • Gemäß einem weiteren allgemeinen Aspekt, beinhaltet ein System zum Bereitstellen von Datenspeicher für Funktionen von Webanwendungen einen externen Server einschließlich einer ersten Stufe limitiertem persistenten Speichers, wobei ein erster Satz von Daten der ersten Stufe über mehrere Geräte assoziiert mit einem Benutzerkonto synchronisiert wird. Das System beinhaltet ein Client-Gerät einschließlich eines Speichers, der so konfiguriert ist, dass er ausführbaren Code speichert und der Speicher enthält eine zweite Stufe von persistentem Speicher auf lokalem nicht-flüchtigen Speicher sowie eine dritte Stufe eines temporären Speichers auf lokalem flüchtigen Speicher. Das Client-Gerät beinhaltet auch einen operierenden Prozessor, der an den Speicher gekoppelt ist. Der Prozessor ist konfiguriert, um Code auszuführen, sodass wenn das Client-Gerät eine Speicheranfrage von einer Webanwendung erhält, die mit einem Benutzerkonto assoziiert ist, die Speicheranfrage wenigstens eine Stufe des Datenspeichers enthält, die sich auf mindestens ein Merkmal der Webanwendung bezieht und die Art wenigstens eine der ersten Stufen des externen limitierten persistenten Speichers enthält oder die zweite Stufe des lokalen persistenten Speichers oder die dritte Stufe lokalen temporären Speichers. Das Client-Gerät assoziiert das mindestens eine Merkmal der Webanwendung oder der Browser-Erweiterung mit der mindestens einen Stufe des Datenspeichers.
  • Implementierungen können verschiedene Funktionen enthalten. Zum Beispiel kann die erste Stufe von limitiertem Speicher auf dem externen Server einen Teil der Daten enthalten, die mit dem Benutzerkonto assoziiert sind. Als ein weiteres Beispiel enthalten die Daten, die mit dem Benutzerkonto verbunden sind, Lesezeichen, Präferenzen, Passwörter und Themen. Im Weiteren kann der erste Datensatz über mehrere Geräte synchronisiert werden basierend auf einer Anfrage von einem ersten Computergerät, das eine erste Webanwendung implementiert. In manchen Implementierungen implementiert die Funktion einen Sensor zur Standorterkennung eines Computergerätes und die Art enthält die zweite Stufe. Die Funktion kann mit einem E-Mail-Konto assoziiert sein, das wiederum mit dem Benutzerkonto assoziiert ist und die Art kann die erste Stufe enthalten. Die Funktion kann auf einen Kalender bezogen werden, der mit dem Benutzerkonto assoziiert ist und die Art kann die erste Stufe enthalten. In manchen Beispielen kann die erste Stufe durch einen Entwickler der Webanwendung spezifiziert werden. Im Weiteren kann die Webanwendung auf einem zweiten Computergerät, das mit dem Benutzerkonto assoziiert ist, implementiert werden und der erste Datensatz kann durch Nutzung des Benutzerkontos zugänglich sein.
  • Die Einzelheiten einer oder mehrerer Implementierungen werden in den begleitenden Zeichnungen und der Beschreibung unten dargelegt. Andere Features anhand der Beschreibung und Zeichnungen sowie anhand der Ansprüche ersichtlich werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm eines Systems das genutzt werden kann, um Datenspeicher für Webanwendungen und Browser-Erweiterungen bereitzustellen.
  • 2 ist ein Blockdiagramm für ein exemplarisches System das genutzt werden kann, um Datenspeicher an Funktionen von Webanwendungen und Browser-Erweiterungen zuzuweisen.
  • 3 ist ein Blockdiagramm eines Client-Geräts das genutzt werden kann, um Datenspeicher für Funktionen von Webanwendungen und Browser-Erweiterungen bereitzustellen.
  • 4 ist ein Flussdiagramm eines Prozesses, um Datenspeicher bereitzustellen.
  • 5 illustriert ein Beispiel eines Computergerätes und eines mobilen Computergerätes die genutzt werden können, um die hier beschriebenen Techniken zu implementieren.
  • Ähnliche Referenzsymbole in den verschiedenen Zeichnungen verweisen auf ähnliche Elemente.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ein Webbrowser, ausgeführt durch ein Client-Gerät, kann Code (z. B. HTML Code) von einem Remote-Server (z. B. einem Remote-Server, der eine Website hostet) empfangen und den empfangenen Code zum Nutzen eines Nutzers des Client-Gerätes auf dem Client-Gerät ausführen.
  • In verschiedenen Ausführungsformen kann der Webbrowser eine oder mehrere Webanwendung(en) beinhalten oder mit dieser/n assoziiert sein. In diesem Zusammenhang kann eine „Webanwendung” für eine einzige Aufgabe oder multiple Aufgaben für den Benutzer konfiguriert sein. In einer solchen Ausführung kann die Webanwendung so konfiguriert werden, dass sie durch den Webbrowser realisiert oder interpretiert wird. Das wird verglichen mit den nativen Anwendungen, die maschinenausführbaren Code beinhalten und konfiguriert sind, um direkt von einem Prozessor oder durch das Betriebssystem des Client-Gerätes ausgeführt zu werden, wohingegen eine Webanwendung ohne die Hilfe des Webbrowsers zur Ausführung oder Anzeige unfähig sein kann. Folglich können Webanwendungen innerhalb eines Browsers mit einem dedizierten User-Interface ausgeführt werden und eine Funktionalität und Nutzererfahrung verschaffen, die reichhaltiger und interaktiver als eine eigenständige Website ist und gleichzeitig weniger umständlich und monolithisch im Vergleich zu einer Desktopanwendung. Beispiele für Webanwendungen beinhalten Spiele, Foto-Editoren und Videoplayer, die innerhalb des Browsers ausgeführt werden.
  • Webanwendungen können „gehostete Webanwendungen” sein oder „Paketwebanwendungen”. Gehostete Anwendungen können mindestens einen Teil einer Website umfassen, die ihrerseits wiederum Webseiten enthält, zusätzlich zu einigen Metadaten, die besonders relevant für die Webanwendung oder den Benutzer der Webanwendung sind, um der Webanwendung die Implementierung einer bestimmten Funktionalität für den Benutzer zu gestatten. Gepackte Webanwendungen können als Webanwendungen angesehen werden, deren Code gebündelt ist, sodass der Nutzer den gesamten Content der Webanwendung zur Ausführung durch den Browser herunterladen kann. Eine gepackte Webanwendung benötigt u. U. keinen Netzwerkzugang, um ihre Funktionalität für den Nutzer durchzuführen, und kann stattdessen durch den Browser erfolgreich lokal auf dem Computergerät ohne Zugang zu einem Netzwerk ausgeführt werden. Paketwebanwendungen haben die Option Erweiterungs-Programmierschnittstellen (APIs) zu nutzen, die es den Paketanwendungen ermöglicht, die Art wie der Browser sich verhält oder aussieht zu ändern.
  • In verschiedenen Ausführungsformen kann der Webbrowser eine oder mehrere Browser-Erweiterungen beinhalten oder so konfiguriert werden, dass er mit diesen interagiert. In diesem Zusammenhang, kann eine „Browser-Erweiterung” eine oder mehrere gepackte oder als ein definierbares Ganzes zusammengefasste Websites beinhalten, und so konfiguriert sein, dass sie die Funktionalität auf den Webbrowser ausdehnt. Folglich fügen Erweiterungen auch einem Browser zusätzliche Funktionalitäten hinzu, aber im Allgemeinen, im Unterschied zu Webanwendungen, gibt es nur wenige oder keine Benutzeroberflächenkomponenten für die von der Erweiterung bereitgestellten Funktionalitäten. Stattdessen erweitern Browser-Erweiterungen die Funktionalität des Browsers und der darin betrachteten Websites. Browser-Erweiterungen können beispielsweise die Funktionalität des Browsers durch Hinzufügen eines neuen Buttons zur Adressleiste erweitern, wie etwa ein permanent präsenter Wechselkursrechner. Solche Buttons können auch auf die aktuell betrachtete Website angewendet werden – so kann beispielsweise das Klicken auf den Wechselkursrechner-Button alle Preise auf der Website, die einem Benutzer angezeigt werden, in eine vom Nutzer ausgewählte Währung umrechnen. In einem anderen Beispiel kann eine Erweiterung installiert sein, sodass, wenn ein Nutzer mit einem Cursor über ein Vorschaubild fährt, so lange auf einer vom Browser ausgeführten Website eine größere Version des Bildes angezeigt wird, bis der Nutzer den Cursor vom Bild wegbewegt. In einem anderen Beispiel kann eine Erweiterung installiert werden, um eine „Senden”-Schaltfläche neben jedem Link auf jeder Seite einzubetten. Im Vergleich zu Webanwendungen sind Erweiterungen Website- und Webanwendungsübergreifend. Erweiterungen können über alle Websites hinweg wirken (obwohl manche Site-spezifisch sind). Auf diese Art vereinen sich Webanwendungen nicht mit anderen Anwendungen. Vielmehr laufen Webanwendungen eigenständig, wie jede reguläre Website.
  • Ein Benutzerkonto erlaubt einem Nutzer die Authentifizierung für Systemdienste (zum Beispiel Webanwendungen) und, um Befugnis für den Zugang zu diesen zu erhalten. Um sich bei einem Benutzerkonto anzumelden, kann sich ein Benutzer zum Beispiel selbst mit einem Passwort oder einer sonstigen Bescheinigung zum Zweck der Rechnungslegung, der Sicherheit oder des Ressourcenmanagements authentifizieren. Ein System kann das ordnungsgemäße Eigentum der Benutzerkonten abstimmen und validieren und kann permanent Eigentum dieser Benutzerkonten mit besonderen Individuen verbinden, indem es eine einmalige Kennung zu validierten Login-Konten Kennungen zuweist (zum Beispiel Benutzername und Passwörter, Sicherheitskennungen usw.). Das System kann validieren, dass Individuen nur über Login-Kontenkennungen für die geeigneten Systeme und Anwendungen verfügen, zum Beispiel gemäß den Geschäftsrichtlinien einer Organisation, den Zugangskontrollrichtlinien und/oder verschiedenen Anwendungsanforderungen.
  • Ein Nutzer kann Lesezeichen, Erweiterungen, Webanwendungen, Themen und Browser-Präferenzen, die sich auf ein Benutzerkonto beziehen, speichern, sodass diese verfügbar sind, egal was für einen Computer das Individuum benutzt. Auf diese Art, kann der Nutzer das gleiche Web-Erlebnis überall erleben. Einstellungen können in einem Benutzerkonto gespeichert werden und wenn der Nutzer sich in das Konto von einem anderen Computer einloggt, können Veränderungen unmittelbar auf dem anderen Computer synchronisiert werden.
  • Jede von einem Nutzer bereitgestellte oder an einen anderen Computer synchronisierte Information (zum Beispiel Einstellungen, Webanwendungen, Browser-Erweiterungen, persönliche Daten usw.) kann auf einer Opt-in-Basis bereitgestellt werden.
  • Mit anderen Worten, eine solche Information kann von einem Server oder einem Computergerät nur dann bereitgestellt werden, wenn der Nutzer ausdrücklich der Übertragung einer solchen Information zustimmt. Außerdem können bestimmte Daten auf eine oder mehrere Arten anonymisiert werden, bevor sie versendet werden, sodass persönlich identifizierbare Informationen entfernt werden.
  • 1 ist ein Blockdiagramm eines Systems das genutzt werden kann, um Datenspeicher für Webanwendungen und Browser-Erweiterungen bereitzustellen. System 100 kann Clienten 110A und 110B enthalten, Entwickler 130A und 130B und Server 140, welche miteinander über ein Netzwerk 120 verbunden sind.
  • Clienten 110A und 110B können ein Computer oder ein ähnliches Gerät sein, das einen Webbrowser ausführt, Softwareanwendungen herunterlädt und ausführt und mit dem Server 140 kommuniziert. Netzwerk 120 kann ein einzelnes Netzwerk oder eine Kombination jeglicher Art von Computernetzwerken sein sowie ein Local Area Network (LAN) oder ein Wide Area Network (WAN). Außerdem kann Netzwerk 120 eine Kombination aus öffentlichen (zum Beispiel Internet) und privaten Netzwerken sein. Entwickler 130A und 130B sind Client-Computer, die durch Softwareentwickler einer Anwendung, Webanwendung, Browser-Erweiterung usw. aufgerufen werden. Server 140 ist ein Computer oder ein ähnliches Gerät das mit den Clienten 110A und 110B und den Entwicklern 130A und 130B kommuniziert.
  • In der Anordnung dargestellt in 1, ein Webbrowser kann genutzt werden, um die Installation einer Webanwendung und einer Browser-Erweiterung durch Interagieren mit dem Server 140 anzufragen. Zum Beispiel kann Sync Server 140 oder ein anderer Server eine Website implementieren (zum Beispiel eine E-Commerce-Site) die genutzt wird, um Webanwendungen, neben anderem Content, zu vertreiben. Der Server kann zum Beispiel Webanwendungen und Browser-Erweiterungen von Entwicklern 130A und 130B erhalten.
  • Anfragen, um Webanwendungen zu installieren können in Nachrichten von den Computergeräten 110A und 110B an den Server 140 enthalten sein, die Einverständnis zeigen betreffende Webanwendungen zu erhalten. In anderen Implementierungen kann der Server 140 andere Formen oder Techniken implementieren sowie Zugang verschaffen zu freien Webanwendungen oder kann die Form einer Entwickler-Website annehmen, welche Zugang zu Webanwendungs-Installationsvorgängen/paketen bereithält.
  • Die spezifischen Aktionen, die beim Installieren einer Webanwendung durchgeführt werden, können abhängig von der bestimmten Implementierung und/oder bestimmten Webanwendung variieren. In einer exemplarischen Implementierung kann das Installieren einer Webanwendung das Installieren eines Symbols beinhalten, das mit der Webanwendung in einem Bereich für Anwendungsstartprogramme einer Webbrowser-Anwendung korrespondiert. Ein Nutzer kann dann mit diesem Symbol interagieren, um die Webanwendung zu starten. In einer weiteren exemplarischen Implementierung, kann das Installieren einer Webanwendung das Synchronisieren der Webanwendung mit mehreren Computergeräten (z. B. Mobiltelefonen, Smart Phones, Tablets, Laptops, Desktop-Computer) zu denen ein Nutzer Zugang hat beinhalten, zum Beispiel von unterschiedlichen Standorten aus zu verschiedenen Zeiten (z. B. durch Nutzung der gleichen Login-Informationen).
  • In weiteren Implementierungen kann das Installieren einer Webanwendung das Starten einer Hintergrundseite für die Webanwendung enthalten, wenn die Webanwendung ein Hintergrundseiten-Merkmal enthält. Eine Hintergrundseite einer Webanwendung kann der Webanwendung ermöglichen zu starten, sobald der Nutzer sich in seinen Computer einloggt, auch bevor der Nutzer eine Webanwendung oder die assoziierte Webanwendung in der Webbrowser-Anwendung startet. Eine Hintergrundseite kann ein unsichtbares Element in einer Browser-Anwendung starten, während die Hintergrundseite mit der installierten Webanwendung eine bestimmte Vereinigung in der Webbrowser-Anwendung enthält.
  • Es wird begrüßt, dass jede Zahl zusätzlicher Server, Client-Computing-Geräte oder Entwickler von Webanwendungen und Browser-Erweiterungen im System 100 enthalten sein können.
  • Funktionen und Daten für installierte Webanwendungen können über verschiedene Computergeräte und lokale Daten, wie etwa Standortdaten für ein Computergerät, synchronisiert werden und diese können auch synchronisiert werden. Entwickler können verschiedene Ebenen von Datenspeicher für unterschiedliche Funktionen von Webanwendungen und Browser-Erweiterungen bestimmen. 2 ist ein Blockdiagramm für ein exemplarisches System das genutzt werden kann, um Datenspeicher an Funktionen von Webanwendungen und Browser-Erweiterungen zuzuweisen. Wie in 2 gezeigt, Clienten 110A und 110B enthalten persistenten lokalen Speicher 210A und 210B sowie temporären lokalen Speicher 215A und 215B. Ein Webbrowser auf Client 110A und 110B kann Zugang (zum Beispiel HTML5 Web Speicher nutzend) zu den persistenten lokalen Speicher 210A und 210B oder den temporären lokalen Speicher 215 und 215B bereitstellen und kommunizieren, um Informationen zu speichern. Beispiele von persistenten und temporär lokalen Speicher werden mit mehr Einzelheiten unten in Bezug auf 3 erörtert.
  • Server 140 kann Nutzerkonten über Netzwerk 120 durch die Nutzung der Nutzerkennungen oder Zugangsdaten synchronisieren. Zum Beispiel kann ein einzelner Nutzer Zugang haben zu einer Webanwendung (z. B. eine der Anwendungen 230A oder 230B) des Client-Computergeräts 110A, beispielsweise durch Nutzung eines Webbrowsers und zu einem anderen Zeitpunkt kann er Zugang zur gleichen Anwendung des Client-Computergeräts 110E haben. Server 140 kann die Nutzer-Zugangsdaten validieren (zum Beispiel durch den Webbrowser), um dem Nutzer den Zugang zur Anwendung von den verschiedenen Computergeräten aus zu erlauben (zum Beispiel eine gehostete Webanwendung).
  • Wenn eine Paketwebanwendung installiert wurde, kann Computergerät 110A lokal einige Daten bezogen auf die Paketwebanwendung (zum Beispiel in persistentem lokalen Speicher 210A oder temporärem lokalen Speicher 215A) speichern. Server 140 kann auch einige Daten die sich auf die Paketwebanwendung beziehen, speichern (z. B. in Datenbank 240). In manchen Implementierungen kann Server 140 sicherstellen, dass lokale Daten vom Computergerät 110A über alle Geräte des Nutzers synchronisiert werden oder über alle Geräte die genutzt werden, um den Nutzer in ein Benutzerkonto einzuloggen (zum Beispiel Client-Computergerät 110B). Zusätzlich können Passwörter lokal gespeichert werden – sie können aber auch durch Nutzung des Servers 140 über Geräte hinweg synchronisiert werden. Im Weiteren kann der Sync Server über verschiedene Geräte einige oder alle installierten Webanwendungen, Browser-Erweiterungen, Browser-Lesezeichen, Einstellungen, Profile, den Browser-Verlauf, Themen, Plugins, lokale Rechte, Sicherheitsfunktionen und Daten assoziiert mit den Webanwendungen und Browser-Erweiterungen für einen Nutzer synchronisieren. Wenn ein Nutzer des Computergeräts 110A z. B. auf ein Nutzerkonto (z. B. durch einen Webbrowser) eines Computergeräts 110B zugreift, kann der Server 140 Einstellungen und Daten die mit Webanwendungen und Browser-Erweiterungen verbunden sind, vom Nutzerkonto zum Computergerät 110B kopieren (z. B. diejenigen, die der Nutzer zum Synchronisieren ausgewählt hat). Änderungen an den Einstellungen auf einem Computergerät können automatisiert kopiert werden (z. B. durch Server 140) von anderen Computern (z. B. wenn der Nutzer die Sync Funktion erlaubt hat). Synchronisierte Daten können verschlüsselt sein, wenn sie sich zwischen den Computergeräten 110A, 110B und Server 140 bewegen, um die Sicherheit von Informationen zu gewähren. Weiter können Passwörter auf den Computergeräten 110A, 110B und Server 140 durch Nutzung eines kryptographischen Schlüssels verschlüsselt sein.
  • Bestimmte Funktionen der Webanwendungen können an verschiedenen Standorten oder Ebenen des Datenspeichers gespeichert werden. Stufen des Datenspeichers können effektiveres Bearbeiten erlauben und können Nutzern erlauben nur die Funktionen oder Daten zu synchronisieren, welche der Nutzer oder ein Entwickler zur Synchronisation freigibt. Zum Beispiel kann eine Webanwendung einen Standort eines Nutzers lokal auf einem Desktop-PC im persistenten lokalen Speicher speichern, sodass jedesmal wenn ein Nutzer eine wetterbezogene Webanwendung auf dem Desktop-PC durchführt, die Webanwendung nicht den Standort des Nutzers aktualisieren muss. Wenn jedoch der Nutzer die gleiche wetterbezogene Webanwendung von einem anderen Gerät ausführt (zum Beispiel ein Smartphone), kann die wetterbezogene Webanwendung eine Aktualisierung der Standortdaten benötigen, um eine Änderung im Standort des Nutzers nachzuvollziehen (zum Beispiel, wenn der Nutzer in eine andere Stadt fährt). In diesem Beispiel, kann die wetterbezogene Webanwendung (potentiell unterschiedliche) lokale Daten in einem persistenten lokalen Speichermedium auf jedem Gerät speichern.
  • Als ein weiteres Beispiel, kann ein Nutzerin sich wünschen Zugang zu ihre E-Mail-Nachrichten und Kalendern von jedem Computergerät aus zu haben. In diesem Beispiel können Webanwendungen welche die E-Mail-Adresse des Nutzers und Kalenderdaten benutzen, beides jeweils lokal und auf einem externen Server speichern. Entwickler können spezifizieren wo Daten für bestimmte Funktionen der Webanwendungen und Browser-Erweiterungen gespeichert werden. So können mehrere Ebenen des Datenspeichers genutzt werden.
  • Entwickler 130A und 130B können die Softwareanwendungen 230A und 230B entwickeln, welche zum Beispiel eine Webanwendung oder Browser-Erweiterung sein kann. Anwendungen 230A und 230B können auf einem Entwickler-Computergerät 130A, 130B gespeichert werden und können auch auf Server 140 gespeichert werden und/oder auf dem Clienten 110A und 110B installiert werden.
  • In manchen Implementierungen, wenn ein Nutzer Webanwendung 230A installiert hat, kann ein Webbrowser auf Client-Gerät 110A oder 110B ausgeführt werden und so Zugang zu Stufen des Datenspeichers bereitstellen und er kann zum Beispiel eine Speicheranfrage von der Webanwendung 230A erhalten, wenn die Webanwendung installiert oder gestartet wird. Die Speicheranfrage kann eine Art enthalten, die wenigstens eine Ebene des Datenspeichers bezogen auf wenigstens eine Funktion der spezifizierten Webanwendung oder Browser-Erweiterung, enthalten, (zum Beispiel eine der Funktionen 231, 232, 233, nachfolgend vertiefend erläutert). Die Art kann zum Beispiel den persistenten lokalen Speicher 210A spezifizieren, den temporären lokalen Speicher 215A oder die externe Server-Datenbank 240. Der Webbrowser kann wenigstens ein Merkmal der Webanwendung, mit wenigstens einer der Ebenen des Datenspeichers verbinden. Eine Tabelle stellt Beispiele von Stufen von Daten dar, aufgeführt unten in Tabelle 1. TABELLE 1
    Stufe Stufe des Datenspeichers
    Stufe 1 Externer Server 140
    Stufe 2 Persistenter lokaler Speicher 210A
    Stufe 3 Temporärer lokaler Speicher 215A
  • Die Art spezifizierter Standorte für Datenspeicher für die Merkmal(e) können durch einen Entwickler oder durch einen Nutzer für eine Anwendung 230A bestimmt werden. In manchen Implementierungen kann die Art der Speicherstandort(e) editierbar und modifizierbar sein. Zum Beispiel kann ein Nutzer den Speichertyp für Bilder für eine Social Media-Anwendung modifizieren, um alle Fotobilder für die Anwendung in temporären lokalen Speicher 215 (z. B. ein Cache) zu speichern, Platz zu sparen und die Anwendung schneller auszuführen. Als ein weiteres Beispiel kann ein Nutzer eine Einstellung in einer Finanzüberwachungsanwendung modifizieren, um bestimmte Finanzdaten auf einem externen Server als Backup zu speichern (zum Beispiel Stufe 1, Server 140), wo eine Standardeinstellung, die durch einen Entwickler der Anwendung bestimmt wurde, spezifiziert, dass alle Finanzdaten in persistenten lokalen Speicher (zum Beispiel Stufe 2, 210A) beispielsweise aus Sicherheitsgründen gespeichert werden. Als weiteres Beispiel kann ein Entwickler anzeigen, dass eine newsbezogene Anwendung persönliche Präferenzen (zum Beispiel Einstellungen dafür, welche Abschnitte der News angezeigt werden) in persistentem lokalen Speicher (zum Beispiel Stufe 2, 210A) speichert, jedoch kann die newsbezogene Anwendung auch allgemeine Daten (zum Beispiel News-Updates, Geschichten, Bilder) in persistentem Speicher, auf einem externen Server (zum Beispiel Stufe 1, Datenbank 240) speichern. Eine Tabelle zeigt Beispiele von Verbindungen zwischen Funktionen von Anwendungen und Stufen eines Datenspeichers, dargestellt unten in Tabelle 2. TABELLE 2
    Anwendung Merkmal Stufe des Datenspeichers
    Social Media-Anwendung Bilder Stufe 3
    Finanzanwendung Finanzdaten Stufe 1
    News-Anwendung Präferenzen Stufe 2
    News-Anwendung Newsfeed Stufe 1
  • In der Implementierung dargestellt in 2, enthält Anwendung 230A mindestens drei Funktionen: persönlich (PER) 231, Standort (LOC) 232 und Daten (DAT) 233. Jedes Merkmal enthält eine Bestimmung, die spezifiziert, wo Daten für die Funktion gespeichert sind. In der Implementierung dargestellt in 2, sind mindestens drei Ebenen von Datenspeicherung (d. h. Stufen) möglich: persistent lokal PL 231A, temporär lokal (TL) 232A oder externer Server (RS) 233A. PL 231A zeigt an, dass Daten für das korrespondierende Merkmal in persistentem lokalen Speicher gespeichert werden sollten (zum Beispiel, 210A und 210B). TL 232A zeigt an, dass Daten für die korrespondierende Funktion in persistentem lokalen Speicher gespeichert werden sollten (zum Beispiel 215A und 215B). RS 233A zeigt an, dass Daten für das korrespondierende Merkmal auf einem externen Server gespeichert werden sollten (zum Beispiel Datenbank 240, auf dem Server 140).
  • Im Beispiel dargestellt in 2, persönliche Präferenz-Daten PER 231 sind bestimmt durch den Entwickler 130A, um in persistentem lokalen Speicher gespeichert zu werden (PL 231A). Standortdaten (LOC 232), zum Beispiel Standortsensor-Informationen bezogen auf ein mobiles Gerät implementiert in Webanwendung 230A, sind durch den Entwickler 130A entwickelt, um in temporärem lokalen Speicher (TL 232A) gespeichert zu werden. Andere Daten (DAT 233) die sich auf die Webanwendung 230A beziehen sind bestimmt durch den Entwickler 130A, um auf dem externen Server-Speicherplatz (RS 233A) gespeichert zu werden. In manchen Implementierungen können wenigstens einige der Entwicklungen 231A, 232A, 233A, durch den Entwickler oder den Nutzer von Webanwendungen oder durch Browser-Erweiterungen editierbar und modifizierbar sein.
  • Unterschiedliche Anwendungen können für ein oder mehrere Funktionen unterschiedlich bezeichnet sein und bestimmte Funktionen können in der gleichen Speicherart gespeichert werden. Wie beispielsweise in 2 dargestellt, Anwendung 230B enthält mindestens zwei Funktionen, Bilder (IMG) 234 und Standorte (LOC) 235. Bilder (IMG 234), welches Bilder sein können, die durch einen Nutzer angesehen wurden, der eine Social-Media Webanwendung 230B nutzt, sind durch den Entwickler 130B bestimmt, um in einem temporären lokalen Speicher (TL 235B) gepeichert zu werden. Standortdaten (LOC 235), zum Beispiel Standortsensordaten die durch Webanwendung 230B erfasst werden, werden auch durch den Entwickler 130B entwickelt, um im lokalen Speicher (TL 235B) gespeichert zu werden.
  • Zusätzlich, kann der Server 140 eine Datenbank 240 enthalten, um Daten für verschiedene Webbrowser-Anwendungen und Erweiterungen (zum Beispiel Daten die bestimmt wurden, um auf dem externem Server RS 233A für Anwendung 230A gespeichert zu werden) zu speichern. Datenbank 240 kann auf dem nicht-flüchtigen persistenten Speicher auf dem Server 240 gespeichert werden. Beispiele für nicht-flüchtigen persistenten Speichers enthalten ROM, Flashspeicher, Festplatten oder Magnet- oder Bildplatten.
  • Jede Webanwendung und Browser-Erweiterung kann Zugang zu einem bestimmten oder limitierten Teil der Datenbank 240 haben. Teile der Datenbank 240 können mit einer Quote assoziiert sein, zum Beispiel unterschiedliche Standortfunktionen und jede Webanwendung, Browser-Erweiterung, Merkmal oder Entwickler kann Zugang zu bestimmten Teilen der Datenbank 240 mit unterschiedlichen Größen haben. Server 140 kann auch die Kontodaten 250 enthalten, welche Daten in Bezug auf die Benutzerkonten speichern können, einschließlich Nutzerkennungen, Passwörtern, Profilen, Präferenzen, Einstellungen, Lesezeichen, Themen, Sicherheitsfunktionen, Informationen bezogen auf Webanwendungen und Browser-Erweiterungen, assoziiert mit jedem Benutzerkonto und andere Kontodaten. Kontodaten 250 können in nicht-flüchtigem persistenten Speicher auf dem Server 140 gespeichert werden. In manchen Implementierungen können die Kontodaten 250 und die Datenbank 240 kombiniert werden.
  • System 200 kann jede Anzahl an Kombinationen von Servern, Datenspeichern, Webanwendungen, Browser-Erweiterungen, Funktionen und bestimmten Speicherbereichen sowie die bestimmte Beschreibung von Clienten, Entwicklern, Webanwendungen, Funktionen und Speicherbestimmungen implementieren, welche in 2 sind nur zur Illustration dargestellt sind und modifiziert werden können. Zum Beispiel kann der Server 140 mehr als eine Datenbank 240 nutzen und die Kontodaten 250 können extern auf einem anderen Server gespeichert werden. Als ein weiteres Beispiel kann die Webanwendung 230B mehr als zwei Funktionen enthalten, von denen einige davon Daten zur Speicherung auf dem Server 240 bestimmen können.
  • 3 ist ein Blockdiagramm eines Client-Geräts 110A, das genutzt werden kann, um Datenspeicher für Funktionen von Webanwendungen und Browser-Erweiterungen bereitzustellen. Wie in 3 gezeigt, Client-Gerät 110 enthält persistenten lokalen Speicher 210A sowie temporären lokalen Speicher 215A. Persistenter lokaler Speicher 210A kann eine oder mehrere Festplatten 310, Flashspeicher 312, Festwertspeicher (314) oder anderen nicht-flüchtigen Speicher enthalten. Temporärer lokaler Speicher 215A kann ein oder mehrere Random-Access Memory (RAM) 320, Verzeichnis 322, Cache 324 oder anderen flüchtigen Speicher enthalten. Verschiedene Ausführungsformen von persistentem lokalen Speicher 210A und temporären lokalen Speicher 215A werden nachfolgend unten in Bezug auf 5 tiefer beschrieben. Die Ausführungsform dargestellt in 3 ist nur zur Illustration.
  • 4 ist ein Flussdiagramm eines Prozesses, um Datenspeicher bereitzustellen. Der Prozess kann mindestens zum Teil durch das System 200 durchgeführt werden, wie in 2 dargestellt. Dies schließt mindestens zum Teil einen Webbrowser auf Client 110A ein. Das System stellt Zugang zu einer ersten Stufe von limitierten persistenten Speicher auf einem externen Server (zum Beispiel Datenbank 240 auf dem Server 140) (Schritt 410) bereit. Ein erster Datensatz von der ersten Stufe kann über mehrere Geräte die mit einem Nutzerkonto assoziiert sind, synchronisiert werden. Das System stellt einen Zugang zu einer zweiten Stufe persistenten Speichers auf einem lokalen, greifbaren nicht-flüchtigen Speichermedium (zum Beispiel dem persistenten lokalen Speicher 210A, dargestellt in 23) (Schritt 420) bereit. Das System stellt einen Zugang zu einer dritten Stufe von temporärem Speicher auf einem lokalen, greifbaren flüchtigen Speichermedium (zum Beispiel dem temporären lokalen Speicher 215A, dargestellt in 23) (Schritt 430) bereit.
  • Ein Webbrowser erhält eine Speicheranfrage von einer Browser-Erweiterung oder einer Webanwendung enthält. Die Speicheranfrage, die mindestens eine Art der Stufe von Datenspeicher, bezogen auf wenigstens ein Merkmal der Webanwendung oder der Browser-Erweiterung enthält, von wenigstens eine der ersten Stufe, der zweiten Stufe und/oder der dritten Stufe (Schritt 440). In manchen Implementierungen ist das Merkmal der Webanwendung oder der Browser-Erweiterung assoziiert mit wenigstens einer Stufe des Datenspeichers, zum Beispiel durch den Webbrowser. Zum Beispiel, wie dargestellt in Tabelle 2, kann ein Bildmerkmal einer Social Media-Anwendung mit der ersten Stufe des Datenspeichers (zum Beispiel Server 140) assoziiert werden. Als weiteres Beispiel kann ein Finanzdatenmerkmal einer Finanzanwendung mit einer zweiten Stufe des Datenspeichers (zum Beispiel persistenter lokaler Speicher 210A) assoziiert werden. Die Beispiele von Stufen, Assoziierungen, Funktionen und Anwendungen werden in Bezug auf FIGs erörtert. 14 sind nur für illustrative Zwecke und können hinzugefügt, geändert oder re-konfiguriert werden. In manchen Implementierungen zum Beispiel können alle Lesezeichen für alle Webanwendungen automatisiert mit einer spezifizierten Stufe assoziiert werden. Weiterhin können etwa die Stufe 2 und Präferenzen für bestimmte Arten von Nutzern mit einer anderen spezifizierten Stufe automatisiert assoziiert werden sowie beispielsweise etwa die Stufe 3.
  • 5 illustriert ein Beispiel eines Computergerätes und eines mobilen Computergerätes die genutzt werden können, um die hier beschriebenen Techniken zu implementieren. Das Computergerät 500 ist zur Darstellung verschiedener Formen von Digitalcomputern vorgesehen, wie Laptops, Desktops, Workstations, Personal Digital Assistants, Server, Blade-Server, Mainframes und andere geeignete Computer. Computergerät 550 soll verschiedene Formen mobiler Geräte, wie Personal Digital Assistants, Mobiltelefone, Smartphones und andere ähnliche Computergeräte, darstellen. Die hier gezeigten Komponenten, ihre Verbindungen und Beziehungen und ihre Funktionen sollen nur exemplarisch sein und sollen Implementierungen der in diesem Dokument beschriebenen und/oder beanspruchten Erfindungen nicht einschränken.
  • Das Computergerät 500 beinhaltet einen Prozessor 502, Speicher 504, ein Speichergerät 506, eine Hochgeschwindigkeitsschnittstelle 508, die sich mit dem Speicher 504 und Hochgeschwindigkeits-Erweiterungsanschlüssen 510 verbindet und eine langsame Schnittstelle 512, die sich mit einem langsamen Bus 514 und dem Speichergerät 506 verbindet. Jede der Komponenten 502, 504, 506, 508, 510 und 512 sind unter Verwendung verschiedener Busse miteinander verbunden und können auf einem gängigen Motherboard oder gegebenenfalls in anderer Weise angebracht sein. Der Prozessor 502 kann Anweisungen zur Ausführung innerhalb des Computergeräts 500 verarbeiten, die Anweisungen beinhalten, die in dem Speicher 504 oder auf der Speichervorrichtung 506 gespeichert sind, um grafische Informationen für ein GUI auf einer externen Eingabe-/Ausgabevorrichtung, wie Anzeige 516, die mit High-Speed-Schnittstelle 508 verbunden ist, anzuzeigen. In anderen Implementierungen können mehrere Prozessoren und/oder mehrere Busse verwendet sein, wie angemessen, zusammen mit mehreren Speichern und Speichertypen. Außerdem können mehrere Computergeräte verbunden sein, wobei jedes Gerät Teile der nötigen Operationen bereitstellt (zum Beispiel als eine Serverbank, eine Gruppe von Blade Servern oder ein Multiprozessor-System).
  • Der Speicher 504 zeichnet Informationen im Computergerät 500 auf. In einer Implementierung ist der Speicher 504 aus einer nichtflüchtigen Speichereinheit oder -einheiten ausgebildet. In anderen Implementierungen ist der Speicher 504 aus einer nichtflüchtigen Speichereinheit oder -einheiten ausgebildet. In manchen Implementierungen, enthält der Speicher eine Kombination aus flüchtigen und nichtflüchtigen Speichereinheiten, zum Beispiel wie oben erörtert in Bezug auf 3. Der Speicher 504 kann auch eine andere Form von computerlesbarem Medium sein, zum Beispiel ein magnetischer oder optischer Datenträger.
  • Das Speichergerät 506 ist dazu geeignet, Massenspeicherung für das Computergerät 500 bereitzustellen. In einer Implementierung kann das Speichergerät 506 ein computerlesbares Medium sein oder beinhalten, wie ein Floppy-Disk-Laufwerk, ein Festplattenlaufwerk, ein Optikplattenlaufwerk, ein Magnetbandlaufwerk, ein Flash-Speicher oder anderes ähnliches Solid-State-Speichergerät oder eine Reihe anderer Geräte, sein, einschließlich Geräten in einem Speichernetzwerk oder anderer Konfigurationen. Ein Computerprogrammprodukt kann konkret in einem Informationsträger ausgeführt sein. Das Computerprogrammprodukt kann auch Anweisungen enthalten, die, wenn sie ausgeführt werden, ein oder mehrere Verfahren ausführen, wie die oben beschriebenen. Der Informationsträger ist ein computer- oder maschinenlesbares Medium wie der Speicher 504, die Speichervorrichtung 506 oder Speicher auf einem Prozessor 502.
  • Der Hochgeschwindigkeits-Controller 508 verwaltet bandbreitenintensive Vorgänge für das Computergerät 500, während der Niedergeschwindigkeits-Controller 512 niedrigere bandbreitenintensive Vorgänge verwaltet. Eine solche Zuordnung von Funktionen ist nur exemplarisch. In einer Implementierung ist die Hochgeschwindigkeitssteuerung 508 mit Speicher 504, Anzeige 516 (z. B. über einen Grafikprozessor oder -beschleuniger) und mit den Hochgeschwindigkeits-Erweiterungsanschlüssen 510, die verschiedene Erweiterungskarten (nicht gezeigt) akzeptieren können, verbunden. In der Implementierung wird die Niedergeschwindigkeitssteuerung 512 mit dem Speichergerät 506 und dem Niedergeschwindigkeits-Erweiterungsanschluss 514 gekoppelt. Der Low-Speed-Erweiterungsanschluss, der verschiedene Kommunikationsanschlüsse (z. B. USB, B, Ethernet, Funkethernet) beinhalten kann, kann an ein oder mehrere Eingabe-/Ausgabe-Geräte, wie eine Tastatur, ein Zeigegerät, einen Scanner oder ein Netzwerkgerät, wie einen Switch oder Router, z. B. durch einen Netzwerkadapter gekoppelt sein.
  • Das Computergerät 500 kann in einer Reihe verschiedener Formen implementiert werden, wie in der Figur dargestellt. So kann es beispielsweise als ein Standardserver 520 oder mehrfach in einer Gruppe solcher Server implementiert sein. Es kann außerdem als Teil eines Rack-Serversystems 524 implementiert sein. Zusätzlich kann es in einem Personal Computer wie einem Laptop-Computer 522 implementiert sein. Alternativ können Komponenten von Computergerät 500 mit anderen Komponenten in einem mobilen Gerät kombiniert sein (nicht dargestellt), z. B. Gerät 550. Jedes solcher Geräte kann eines oder mehrere von den Computergeräten 500, 550 enthalten und ein gesamtes System kann aus mehreren Computergeräten bestehen, die miteinander kommunizieren.
  • Das Computergerät 550 beinhaltet einen Prozessor 552, Speicher 564, ein Eingabe-/Ausgabegerät, wie etwa eine Anzeige 554, eine Kommunikationsschnittstelle 566 und einen Sende-Empfänger 568, neben anderen Komponenten. Das Gerät 550 kann ebenfalls mit einer Speichervorrichtung z. B. einem Microdrive oder einem anderen Gerät ausgestattet werden, um zusätzlichen Speicher bereitzustellen. Jede der Komponenten 550, 552, 564, 554, 566 und 568 sind unter Verwendung verschiedener Busse miteinander verbunden und mehrere der Komponenten können auf einem gängigen Motherboard oder gegebenenfalls in anderer Weise angebracht sein.
  • Der Prozessor 552 kann Anweisungen im Computergerät 550 ausführen, darunter sind Anweisungen enthalten, die in Speicher 564 gespeichert sind. Der Prozessor kann als ein Chipsatz von Chips implementiert werden, die separate und mehrere analoge und digitale Prozessoren beinhalten. Der Prozessor kann beispielsweise zur Koordinierung der anderen Komponenten der Vorrichtung 550, wie etwa Steuerung von Benutzeroberflächen, Anwendungen, die von Vorrichtung 550 ausgeführt werden, und drahtlose Kommunikation durch Vorrichtung 550 bereitstellen.
  • Prozessor 552 kann mit einem Benutzer über die Steuerschnittstelle 558 und die Displayschnittstelle 556 kommunizieren, die mit einem Display 554 gekoppelt ist. Die Anzeige 554 kann zum Beispiel eine TFT-LCD-(Thin-Film-Transistor Liquid Crystal Display) oder eine OLED-Anzeige (organische Leuchtdiode) oder eine andere angemessene Anzeigetechnologie sein. Die Anzeigeschnittstelle 556 kann angemessene Verschaltung zum Treiben der Anzeige 554 umfassen, um einem Benutzer grafische und andere Informationen zu präsentieren. Die Steuerschnittstelle 558 kann Befehle von einem Benutzer empfangen und sie zur Abgabe an den Prozessor 552 konvertieren. Zusätzlich kann eine externe Schnittstelle 562 in Verbindung mit Prozessor 552 bereitgestellt sein, um Nahbereichskommunikation von Vorrichtung 550 mit anderen Vorrichtungen zu ermöglichen. Die externe Schnittstelle 562 kann beispielsweise in manchen Implementierungen eine drahtgestützte Verbindung oder in anderen Implementierungen eine drahtlose Verbindung aufbauen, und es können auch mehrere Schnittstellen zur Anwendung kommen.
  • Der Speicher 564 zeichnet Informationen im Computergerät 550 auf. Der Speicher 564 kann als ein computerlesbares Medium bzw. als eines von mehreren computerlesbaren Medien, als flüchtiger Speicher bzw. als flüchtige Speicher oder als ein nicht-flüchtiger Speicher bzw. als nicht-flüchtige Speicher implementiert werden. Erweiterungsspeicher 574 kann ebenfalls bereitgestellt und mit dem Gerät 550 über Erweiterungsschnittstelle 572 verbunden werden, die zum Beispiel eine SIMM(Single In Line Memory Module)-Kartenschnittstelle umfassen kann. Ein solcher Erweiterungsspeicher 574 kann zusätzlichen Speicherplatz für Vorrichtung 550 bereitstellen oder kann auch Anwendungen oder andere Informationen für Vorrichtung 550 speichern. Insbesondere kann Erweiterungsspeicher 574 Anweisungen zum Ausführen oder Ergänzen der oben beschriebenen Prozesse enthalten und er kann außerdem sichere Informationen enthalten. Demnach kann Erweiterungsspeicher 574 beispielsweise als ein Sicherheitsmodul für Vorrichtung 550 bereitgestellt sein und kann mit Anweisungen programmiert sein, die eine sichere Benutzung von Vorrichtung 550 ermöglichen. Zusätzlich dazu können über die SIMM-Cards sichere Anwendungen bereitgestellt werden, zusammen mit zusätzlichen Informationen, wie dem Ablegen von Identifizierungsinformationen auf der SIMM-Card auf eine Weise, die nicht gehackt werden kann.
  • Der Speicher kann beispielsweise Flash Speicher und/oder NVRAM-Speicher enthalten, wie nachstehend erörtert. In einer Implementierung, ist ein Computerprogrammprodukt konkret in einem Informationsträger ausgeführt. Das Computerprogrammprodukt enthält Anweisungen, die, wenn sie ausgeführt werden, ein oder mehrere Verfahren ausführen, wie die oben beschriebenen. Der Informationsträger ist ein computer- oder maschinenlesbares Medium, wie der Speicher 564, die Speichererweiterung 574 oder der Speicher auf dem Prozessor 552, der beispielsweise über den Transceiver 568 oder die externe Schnittstelle 562, empfangen werden kann.
  • Das Gerät 550 kann drahtlos über die Verbindungsschnittstelle 566 kommunizieren, die digitale Signalverarbeitungsschaltkreise, wo diese erforderlich sind, beinhalten kann. Die Verbindungsschnittstelle 566 kann Verbindungen mit verschiedenen Kommunikationstypen oder -protokollen aufbauen, darunter GSM-Sprachanrufe, SMS, EMS, oder MMS-Messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000 oder GPRS unter anderen. Solche Kommunikation kann beispielsweise durch Funkfrequenz-Sender-Empfänger 568 stattfinden. Zusätzlich kann eine Kurzstreckenkommunikation stattfinden, wie unter Verwendung eines Bluetooth-, WLAN- oder anderen solchen Sende-Empfängern (nicht gezeigt). Außerdem kann GPS(Global Positioning System)-Empfängermodul 570 zusätzliche mit der Navigation und dem Ort verbundene drahtlose Daten für Gerät 550 bereitstellen, die ggf. von Anwendungen verwendet werden können, die auf Gerät 550 ausgeführt werden.
  • Das Gerät 550 kann auch akustisch kommunizieren, indem es Audio-Codec 560 nutzt, das gesprochene Informationen von einem Benutzer empfangen und diese in nutzbare digitale Informationen konvertieren kann. Audio-Codec 560 kann ebenfalls akustische Töne für einen Benutzer erzeugen, zum Beispiel durch einen Lautsprecher zum Beispiel in einem Handgerät von Gerät 550. Diese Töne können Töne von Sprachtelefonanrufen beinhalten, können aufgezeichnete Töne (z. B. Sprachnachrichten, Musikdateien usw.) beinhalten und können auch Töne beinhalten, die von laufenden Anwendungen auf Gerät 550 erstellt wurden.
  • Das Computergerät 550 kann in einer Reihe verschiedener Formen implementiert werden, wie in der Figur dargestellt. Zum Beispiel kann es als Mobiltelefon 580 implementiert werden. Es kann außerdem als Teil eines Smartphones 582, Personal Digital Assistant oder eines anderen ähnlichen mobilen Geräts implementiert werden.
  • Verschiedene Implementierungen der hier beschriebenen Systeme und Techniken können in digitalen elektronischen Schaltkreisen, integrierten Schaltkreisen, speziell konzipierten ASICs (anwendungsorientierten integrierten Schaltkreisen), Computerhardware, Firmware, Software und/oder Kombinationen davon realisiert werden. Diese verschiedenen Implementierungen können eine Implementierung in einem oder mehreren Computerprogrammen beinhalten, die auf einem programmierbaren System ausführbar und/oder interpretierbar sind, das mindestens einen programmierbaren Prozessor beinhaltet, der ein spezieller Prozessor oder ein Prozessor für allgemeine Zwecke sein kann, und der zum Empfangen von Daten und Anweisungen von und zum Übertragen von Daten und Anweisungen an ein Speichersystem, mindestens eine Eingabevorrichtung und mindestens eine Ausgabevorrichtung gekoppelt ist.
  • Diese Computerprogramme (auch bekannt als Programme, Software, Softwareanwendungen oder Code) beinhalten Maschinenanweisungen für einen programmierbaren Prozessor und können in einer höheren prozeduralen und/oder objektorientierten Programmiersprache, und/oder in Assembler-/Maschinensprache implementiert werden. Wie hier verwendet, bezeichnen die Begriffe „maschinenlesbares Medium”, „computerlesbares Medium” ein beliebiges Computerprogrammprodukt, eine beliebige Vorrichtung und/oder ein beliebiges Gerät (z. B. Magnetplatten, optische Platten, Speicher, programmierbare Logikbausteine (PLDs)), die verwendet werden, um einem programmierbaren Prozessor Maschinenanweisungen und/oder Daten bereitzustellen, einschließlich eines maschinenlesbaren Mediums, das Maschinenanweisungen als ein maschinenlesbares Signal empfängt. Der Begriff „maschinenlesbares Signal” bezeichnet ein beliebiges Signal, das verwendet wird, um einem programmierbaren Prozessor Maschinenanweisungen und/oder Daten bereitzustellen.
  • Zum Bereitstellen von Interaktion mit einem Benutzer, können die hier beschriebenen Systeme und Techniken auf einem Computer mit einem Anzeigegerät (zum Beispiel ein CRT (Kathodenstrahlröhre) oder ein LCD-(Flüssigkristallanzeige)Monitor) implementiert werden, um Informationen für den Benutzer anzuzeigen und eine Tastatur und ein Pointergerät (zum Beispiel eine Maus oder ein Trackball), mit denen der Benutzer Eingaben in den Computer vornehmen kann. Andere Arten von Geräten können auch verwendet werden, um eine Interaktion mit einem Benutzer bereitzustellen; zum Beispiel kann eine dem Benutzer bereitgestellte Rückmeldung irgendeine Form von Sinnesrückmeldung sein (z. B. visuelle Rückmeldung, auditive Rückmeldung oder Tastrückmeldung); und eine Eingabe vom Benutzer kann in einer beliebigen Form empfangen werden, einschließlich akustischer, Sprach- oder Tasteingaben.
  • Die hierin beschriebenen Systeme und Techniken können in ein Computersystem implementiert werden, das eine Back-End-Komponente beinhaltet (zum Beispiel als Datenserver) oder das eine Middleware-Komponente beinhaltet (zum Beispiel einen Anwendungsserver) oder das eine Front-End-Komponente beinhaltet (zum Beispiel ein Client-Computer mit einer grafischen Benutzeroberfläche oder ein Webbrowser, über den ein Benutzer mit einer Implementierung der hier beschriebenen Systeme und Techniken interagieren kann) oder eine Kombination derartiger Back-End-, Middleware- oder Front-End-Komponenten. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium von digitaler Datenkommunikation (z. B. ein Kommunikationsnetzwerk) miteinander verbunden sein. Beispiele von Kommunikationsnetzwerken beinhalten ein lokales Netzwerk („LAN”), ein Fernnetz („WAN”) und das Internet.
  • Das Computersystem kann Clienten und Server beinhalten. Ein Client und Server befinden sich im Allgemeinen ortsfern voneinander und interagieren typischerweise über ein Kommunikationsnetz. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern laufen und die eine Client-Server-Beziehung zueinander haben.
  • Es wurden einige Ausführungsformen beschrieben. Trotzdem versteht sich, dass verschiedene Modifikationen durchgeführt werden können, ohne vom Geist und Umfang der Erfindung abzuweichen.
  • Außerdem erfordern die in den Figuren dargestellten logischen Abläufe nicht die bestimmte dargestellte Reihenfolge oder sequenzielle Reihenfolge, um wünschenswerte Ergebnisse zu erzielen. Darüber hinaus können andere Schritte vorgesehen oder Schritte aus den beschriebenen Abläufen eliminiert werden und andere Komponenten können zu den beschriebenen Systemen hinzugefügt werden oder von diesen entfernt werden. Dementsprechend liegen andere Ausführungsformen im Umfang der folgenden Ansprüche.

Claims (12)

  1. Ein greifbares computerlesbares Speichermedium, worauf Anweisungen gespeichert und aufgenommen sind, sodass, wenn es ausgeführt wird, durch einen oder mehrere Prozessoren eines Computersystems, diese das Computersystem dazu bringen: ein Merkmal einer Webanwendung auf dem Computersystem zu implementieren, die Webanwendung mit einem Nutzerkonto assoziiert ist, das Merkmal assoziiert ist mit mindestens einer Stufe aus einem Satz aus spezifizierten Stufen aus Datensätzen; und Senden einer Speicheranfrage für den Datensatz, bezogen auf das Merkmal zu der mindestens einen Stufe aus dem Satz spezifizierter Stufen von Datenspeicher; der Satz von spezifizierten Stufen von Datenspeicher enthält: eine erste Stufe von limitiertem persistenten Speicher in einem externen Server, wobei ein erster Satz von Daten der ersten Stufe synchronisiert wird, über mehrere Geräte assoziiert mit einem Benutzerkonto, eine zweite Stufe von persistentem Speicher auf einem lokalen nichtflüchtigen Speicher auf einem Computersystem, und eine dritte Stufe von temporären Speicher auf lokalen flüchtigem Speicher auf einem Computergerät.
  2. Das greifbare computerlesbare Speichermedium aus Anspruch 1, wobei mindestens eine Stufe basierend auf dem Merkmal automatisiert determiniert wird.
  3. Das greifbare computerlesbare Speichermedium aus Anspruch 1 oder Anspruch 2, wobei das Merkmal sich auf einen Standorterkennungssensor des Computergeräts bezieht und die mindestens eine Stufe, die dritte Stufe ist.
  4. Das greifbare computerlesbare Speichermedium aus Anspruch 1, Anspruch 2 oder Anspruch 3, wobei die mindestens eine Stufe durch einen Entwickler einer Webanwendung spezifiziert ist.
  5. Das greifbare computerlesbare Speichermedium aus Anspruch 1, Anspruch 2, Anspruch 3 oder Anspruch 3, deren Anweisungen die weiteren Anweisungen für Folgendes umfassen: die Webanwendung auf einem zweiten Computergerät implementieren, welches mit dem Nutzerkonto assoziiert ist; und Zugang zum ersten Datensatz durch Nutzung des Nutzerkontos erhalten.
  6. Ein System, um Datenspeicher bereitzustellen für Erweiterungen von Webanwendungen, bestehend aus: Ein externer Server der eine erste Stufe limitiertem persistenten Speichers enthält, wobei ein erster Satz von Daten der ersten Stufe, über mehrere Geräte assoziiert mit einem Benutzerkonto synchronisiert wird; und Ein Client-Gerät beinhaltend: Ein Speicher konfiguriert, um ausführbaren Code zu speichern, der Speicher enthält einen zweiten Satz von persistentem Speicher auf lokalem nichtflüchtigen Speicher und einen dritten Satz eines temporären Speichers auf lokalem flüchtigen Speicher; und Ein operierender Prozessor, welcher an den Speicher gekoppelt ist, der Prozessor wird konfiguriert, um Code auszuführen, sodass das Client-Gerät: eine Speicheranfrage von einer Webanwendung enthält, die mit einem Nutzerkonto assoziiert ist, diese Speicheranfrage beinhaltet eine Art mindestens einer Stufe von Datenspeicher, bezogen auf mindestens ein Merkmal der Webanwendung, diese Art enthält mindestens eine Art der ersten Stufe von externem limitierten persistenten Speicher, die zweite Stufe von lokalen persistenten Speicher oder die dritte Stufe von lokalen temporären Speicher; und assoziiert das mindestens eine Merkmal der Webanwendung oder der Browser-Erweiterung mit der mindestens einen Stufe des Datenspeichers.
  7. Das System nach Anspruch 6, wobei die erste Stufe an limitiertem persistenten Speicher auf dem externen Server einen Teil der Daten enthält, die mit dem Benutzerkonto assoziiert sind.
  8. Das System nach Anspruch 6, wobei die mit dem Nutzerkonto assoziierten Daten, Lesezeichen, Präferenzen, Passwörter und Themen enthalten sind.
  9. Das System nach Anspruch 6, Anspruch 7 oder Anspruch 8, wobei der erste Datensatz über mehrere Geräte synchronisiert wird, das auf einer Anfrage eines Client-Gerätes, die in der Webanwendung implementiert ist, basiert.
  10. Das System nach Anspruch 6, Anspruch 7, Anspruch 8 oder Anspruch 9, wobei das Merkmal der Webanwendung ein Standorterkennungssensor des Client-Gerätes enthält und wobei die Art die zweite Stufe enthält.
  11. Das System nach Anspruch 6, Anspruch 7, Anspruch 8, Anspruch 9 oder Anspruch 10, wobei das Merkmal der Webanwendung, sich auf ein E-Mail-Konto bezieht, das assoziiert ist mit dem Nutzerkonto und wobei die Art eine erste Stufe enthält.
  12. Das System nach Anspruch 6, Anspruch 7, Anspruch 8, Anspruch 9, Anspruch 10 oder Anspruch 11, wobei das Merkmal der Webanwendung sich auf ein E-Mail-Konto bezieht, assoziiert mit einem Nutzerkonto und wobei die Art eine erste Stufe enthält.
DE202013012493.8U 2012-03-09 2013-01-30 Stufen der Datenspeicherung für Webanwendungen und Browser-Erweiterungen Expired - Lifetime DE202013012493U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/416,377 2012-03-09
US13/416,377 US9535755B2 (en) 2012-03-09 2012-03-09 Tiers of data storage for web applications and browser extensions

Publications (1)

Publication Number Publication Date
DE202013012493U1 true DE202013012493U1 (de) 2017-01-24

Family

ID=47679115

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202013012493.8U Expired - Lifetime DE202013012493U1 (de) 2012-03-09 2013-01-30 Stufen der Datenspeicherung für Webanwendungen und Browser-Erweiterungen

Country Status (5)

Country Link
US (1) US9535755B2 (de)
EP (1) EP2823395B1 (de)
CN (1) CN104395884B (de)
DE (1) DE202013012493U1 (de)
WO (1) WO2013133916A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11695853B1 (en) 2022-04-07 2023-07-04 T-Mobile Usa, Inc. Content management systems providing zero recovery point objective

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9535755B2 (en) 2012-03-09 2017-01-03 Google Inc. Tiers of data storage for web applications and browser extensions
JP2013242847A (ja) * 2012-04-26 2013-12-05 Mitsubishi Electric Corp 映像処理端末及び映像処理方法
CN104092715B (zh) * 2013-11-28 2016-10-19 腾讯科技(深圳)有限公司 一种同步应用程序的方法、服务器及系统
US10019444B2 (en) * 2014-05-30 2018-07-10 Apple Inc. Universal identifier
US9690669B2 (en) * 2014-06-16 2017-06-27 Internaitonal Business Machines Corporation Techniques for improving cloud infrastructure backup in a shared storage environment
JP6344994B2 (ja) * 2014-06-18 2018-06-20 キヤノン株式会社 情報処理端末、制御方法及びプログラム
JP6482204B2 (ja) * 2014-08-08 2019-03-13 キヤノン株式会社 情報処理端末、その制御方法及びプログラム
JP6403507B2 (ja) * 2014-09-05 2018-10-10 キヤノン株式会社 情報処理端末およびブラウザストレージ管理方法
US20160092565A1 (en) * 2014-09-26 2016-03-31 Microsoft Corporation Unified Search on a Personal Computing Device
US10362067B2 (en) * 2015-09-04 2019-07-23 Swim.IT Inc Method of and system for privacy awareness
CN106549907B (zh) * 2015-09-17 2019-10-11 阿里巴巴集团控股有限公司 一种web app访问方法、装置和系统
US10389795B2 (en) * 2015-10-09 2019-08-20 Microsoft Technology Licensing, Llc Distributed extension execution in computing systems
CN105553985A (zh) * 2015-12-18 2016-05-04 北京奇虎科技有限公司 一种网页同步访问方法、网络通讯设备及网络服务器
CN105554124A (zh) * 2015-12-18 2016-05-04 北京奇虎科技有限公司 基于pc的网页同步访问方法、网络通讯设备及网络服务器
JP2020065162A (ja) * 2018-10-17 2020-04-23 Thk株式会社 情報処理方法およびプログラム
CN111813851B (zh) * 2020-05-25 2023-10-20 车智互联(北京)科技有限公司 一种移动应用向网页同步数据的方法、系统及移动终端
US11500732B2 (en) * 2021-03-05 2022-11-15 EMC IP Holding Company LLC Method and system for performing data protection services for user data associated with calendar events
CN114676117B (zh) * 2022-05-27 2022-08-16 成都明途科技有限公司 一种岗位数据存储方法、装置及岗位机器人

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060195595A1 (en) * 2003-12-19 2006-08-31 Mendez Daniel J System and method for globally and securely accessing unified information in a computer network
US6839803B1 (en) * 1999-10-27 2005-01-04 Shutterfly, Inc. Multi-tier data storage system
US7032033B1 (en) * 2001-11-30 2006-04-18 Microsoft Corporation Handling collisions during synchronization of data between client and server computers
WO2003062995A2 (en) * 2002-01-18 2003-07-31 Idetic, Inc. A multi-tiered caching mechanism for the storage and retrieval of content multiple versions
WO2003102778A2 (en) * 2002-05-31 2003-12-11 International Business Machines Corporation System and method for accessing different types of back end data stores
US7213085B2 (en) * 2002-11-15 2007-05-01 Microsoft Corporation Use of a media cache for subsequent copying acceleration
GB0228279D0 (en) * 2002-12-04 2003-01-08 Ibm A synchronization method
US7594003B2 (en) * 2005-08-02 2009-09-22 Aol Llc Client/server web application architectures for offline usage, data structures, and related methods
EP1977334A4 (de) * 2006-01-25 2011-01-12 Greystripe Inc System und verfahren zum verwalten von inhalt in bereits vorhandenen mobilen anwendungen
US8229897B2 (en) * 2006-02-03 2012-07-24 International Business Machines Corporation Restoring a file to its proper storage tier in an information lifecycle management environment
US8190703B2 (en) * 2008-04-23 2012-05-29 Microsoft Corporation Extensible browser platform for web applications
US8112537B2 (en) * 2008-09-29 2012-02-07 Apple Inc. Trickle sync protocol
US9135089B2 (en) * 2008-10-10 2015-09-15 Intuit Inc. Method and apparatus for facilitating a persistence application programming interface
US8171216B2 (en) * 2009-05-29 2012-05-01 Dell Products, Lp System and method for managing devices in an information handling system
US8407257B2 (en) * 2009-09-17 2013-03-26 Oracle International Corporation System and method for mutating polymorphic object components
US9122606B2 (en) * 2011-11-21 2015-09-01 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for distributing tiered cache processing across multiple processors
US20130145095A1 (en) * 2011-12-06 2013-06-06 Lsi Corporation Melthod and system for integrating the functions of a cache system with a storage tiering system
US8621091B1 (en) * 2011-12-15 2013-12-31 Google Inc. System and method for synchronizing settings and state information for a browser component
US9535755B2 (en) 2012-03-09 2017-01-03 Google Inc. Tiers of data storage for web applications and browser extensions
US8954381B1 (en) * 2012-09-27 2015-02-10 Emc Corporation Determining data movements in a multi-tiered storage environment
US9430368B1 (en) * 2012-09-28 2016-08-30 Emc Corporation System and method for caching data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11695853B1 (en) 2022-04-07 2023-07-04 T-Mobile Usa, Inc. Content management systems providing zero recovery point objective

Also Published As

Publication number Publication date
CN104395884A (zh) 2015-03-04
EP2823395A1 (de) 2015-01-14
WO2013133916A1 (en) 2013-09-12
CN104395884B (zh) 2018-09-18
US9535755B2 (en) 2017-01-03
EP2823395B1 (de) 2022-04-06
US20130238742A1 (en) 2013-09-12

Similar Documents

Publication Publication Date Title
DE202013012493U1 (de) Stufen der Datenspeicherung für Webanwendungen und Browser-Erweiterungen
US10623406B2 (en) Access authentication for cloud-based shared content
DE202013012500U1 (de) Systemübergreifende Installation von Online-Applikationen
DE112016006083T5 (de) Bereitstellung von Rechenressourcen für eine virtuelle Maschine, die ausgelegt ist eine Gruppe von Anwendungsprogrammen zu Hosten, die einem Benutzer zugeordnet sind
DE60320486T2 (de) Systeme und Verfahren zur Lieferung von Anwendungen und zur Konfigurationsverwaltung für mobile Geräte
DE202015009286U1 (de) Kurzlebige Anwendungen
DE112015005024T5 (de) Öffnen lokaler Anwendungen von Browsern
DE202013012485U1 (de) System für Browseridentität
DE112013000865B4 (de) Konsolidieren von unterschiedlichen Cloud-Dienst-Daten und -Verhaltensweisen auf der Grundlage von Vertrauensbeziehungen zwischen Cloud-Diensten
DE112013002544T5 (de) Cloudbasiertes Teilen von Datenpunkten und Zusammenarbeit unter Benutzergruppen
DE202017106594U1 (de) Bereitstellen von Zugriff auf eine in einem Datenspeichersystem gespeicherte Datei
DE202014010930U1 (de) Zugriff auf Objekte in ausgelagerten Speichern
DE112013002542T5 (de) Cloud-basierte Anwendungsressourcendateien
DE202016107494U1 (de) Widerruf des Gerätezugriffs
DE112011104787B4 (de) Nutzung von Inhalten über persönliche Clouds
DE202010018480U1 (de) Geteilte Makros auf Server-Seite
DE202011110893U1 (de) Verwaltung mehrfacher Anmeldungen über einen Einzelbrowser
DE112012003056T5 (de) Virtueller Computer und virtueller Dienst
DE202013012495U1 (de) Metadatenbasierte virtual Maschine-Konfiguration
DE112011103164T5 (de) Datenverteilungsvorrichtung, Datenverteilungssystem, Client-Vorrichtung, Datenverteilungsverfahren, Datenempfangsverfahren, Programm und Datenträger,
DE112012003977T5 (de) Eingriffsfreies Verfahren und Vorrichtung zum automatischen Zuteilen von Sicherheitsregelnin einer Cloud-Umgebung
DE202012013453U1 (de) Gehostete Speichersperrung
DE202012013405U1 (de) Cloud-zu Gerät-Nachrichtenübermittlung zur Anwendungsaktivierung und Meldung
JP7154842B2 (ja) クラウドベース文書の許可管理
DE202013012499U1 (de) Hintergrundseite auf Browserebene zur Bereitstellung mehrfacher Ansichten

Legal Events

Date Code Title Description
R207 Utility model specification
R150 Utility model maintained after payment of first maintenance fee after three years
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: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R081 Change of applicant/patentee

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

Free format text: FORMER OWNER: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

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