[go: up one dir, main page]

DE112015004267T5 - Speicherung und Übertragung von Anwendungsdaten zwischen Vorrichtungen - Google Patents

Speicherung und Übertragung von Anwendungsdaten zwischen Vorrichtungen Download PDF

Info

Publication number
DE112015004267T5
DE112015004267T5 DE112015004267.9T DE112015004267T DE112015004267T5 DE 112015004267 T5 DE112015004267 T5 DE 112015004267T5 DE 112015004267 T DE112015004267 T DE 112015004267T DE 112015004267 T5 DE112015004267 T5 DE 112015004267T5
Authority
DE
Germany
Prior art keywords
application
service
data
applications
wireless connection
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.)
Withdrawn
Application number
DE112015004267.9T
Other languages
English (en)
Inventor
Erdi Chen
Paul Lee
Vincent Wei-Kang Chen
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 DE112015004267T5 publication Critical patent/DE112015004267T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
    • H04M1/72412User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories using two-way short-range wireless interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/02Details of telephonic subscriber devices including a Bluetooth interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/06Details of telephonic subscriber devices including a wireless LAN interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Es werden Verfahren, Systeme und Geräte zum Speichern und Übertragen von Anwendungsdaten zwischen Vorrichtungen beschrieben. In einem Aspekt enthält ein Verfahren das Empfangen von Anwendungsdaten für eine erste Menge von Anwendungen auf der zweiten Vorrichtung durch einen ersten Dienst, der auf einer ersten Vorrichtung ausgeführt wird, von einem zweiten Dienst, der auf einer zweiten Vorrichtung ausgeführt wird; das Veranlassen, dass die erste Vorrichtung die Anwendungsdaten für die Anwendung speichert, durch den ersten Dienst und für jede Anwendung in der ersten Menge; das Empfangen einer Anforderung für Anwendungsdaten für eine zweite Menge von Anwendungen auf der dritten Vorrichtung, durch den ersten Dienst und von einem dritten Dienst, der auf einer dritten Vorrichtung ausgeführt wird; das Bestimmen, dass die erste Vorrichtung Anwendungsdaten für die zweite Menge von Anwendungen speichert, durch den ersten Dienst; und das Veranlassen, dass die erste Vorrichtung gespeicherte Anwendungsdaten für den dritten Dienst, der auf der dritten Vorrichtung ausgeführt wird, bereitstellt, durch den ersten Dienst.

Description

  • HINTERGRUND
  • Diese Patentschrift bezieht sich auf das Speichern und Übertragen von Anwendungsdaten zwischen Vorrichtungen.
  • Auf Computervorrichtungen wie etwa Personal Computern, Tablet Computern und Mobiltelephonen sind häufig Anwendungen installiert, um eine Vielzahl von Funktionen einschließlich Produktivitätsanwendungen, Hintergrunddienstanwendungen, Unterhaltungsanwendungen und anderen auszuführen. Viele Anwendungen werden durch Drittanbieter entwickelt, die Anwendungen und Anwendungsdaten unter Verwendung von Servercomputern an Nutzervorrichtungen verteilen. Zum Beispiel kann eine Nutzervorrichtung eine Anwendung von einem Anwendungsserver für die Anwendung herunterladen und installieren. Derselbe Anwendungsserver oder ein anderer Anwendungsserver kann Anwendungsdaten wie etwa neuen Anwendungsinhalt und/oder neue Anwendungsaktualisierungen für die Anwendung bereitstellen. Um Anwendungen und Anwendungsinhalt aktualisiert zu halten, verbinden sich Nutzervorrichtungen häufig mit einem Netz wie etwa dem Internet, um periodisch Anwendungsdaten von Drittanbieterservern zu erhalten.
  • ZUSAMMENFASSUNG
  • Allgemein kann ein innovativer Aspekt des in dieser Patentschrift beschriebenen Gegenstands in Verfahren verkörpert sein, die die Aktionen des Empfangens von Anwendungsdaten für jede Anwendung in einer ersten Menge einer oder mehrerer Anwendungen, die auf der zweiten Vorrichtung installiert sind und die durch den zweiten Dienst unterstützt werden, durch einen ersten Dienst, der auf einer ersten Vorrichtung ausgeführt wird, von einem zweiten Dienst, der auf einer zweiten Vorrichtung ausgeführt wird, wobei jede Anwendung in der ersten Menge von dem zweiten Dienst getrennt ist; des Veranlassens, dass die erste Vorrichtung die Anwendungsdaten für die Anwendung speichert, durch den ersten Dienst und für jede Anwendung in der ersten Menge; des Empfangens einer Anforderung für Anwendungsdaten für jede Anwendung in einer zweiten Menge einer oder mehrerer Anwendungen, die auf der dritten Vorrichtung installiert sind, durch den ersten Dienst und von einem dritten Dienst, der auf einer dritten Vorrichtung ausgeführt wird, wobei jede Anwendung in der zweiten Menge von dem dritten Dienst getrennt ist; des Bestimmens, dass die erste Vorrichtung Anwendungsdaten für eine Teilmenge der einen oder mehreren Anwendungen in der zweiten Menge von Anwendungen speichert, durch den ersten Dienst; und des Veranlassens, dass die erste Vorrichtung gespeicherte Anwendungsdaten für wenigstens eine Anwendung in der Teilmenge für den dritten Dienst, der auf der dritten Vorrichtung ausgeführt wird, bereitstellt, durch den ersten Dienst, enthalten. Andere Ausführungsformen dieses Aspekts enthalten entsprechende Systeme, Geräte und Computerprogramme, die dafür konfiguriert sind, die Aktionen der Verfahren, die auf Computerdatenspeichervorrichtungen codiert sind, auszuführen.
  • Diese und andere Ausführungsformen können jeweils optional ein oder mehrere der folgenden Merkmale enthalten. Ferner kann das Verfahren umfassen: Veranlassen, dass die erste Vorrichtung die Verfügbarkeit einer drahtlosen Verbindung rundsendet, durch den ersten Dienst; und Empfangen einer Anforderung einer drahtlosen Verbindung von der zweiten Vorrichtung; und Veranlassen, dass die erste Vorrichtung in Ansprechen auf den Empfang der Anforderung einer drahtlosen Verbindung von der zweiten Vorrichtung eine drahtlose Verbindung mit der zweiten Vorrichtung aufbaut, durch den ersten Dienst.
  • Das Veranlassen, dass die erste Vorrichtung die Verfügbarkeit einer drahtlosen Verbindung rundsendet, kann umfassen: Veranlassen, dass ein Lautsprecher der ersten Vorrichtung ein Audio-Sample, das Daten der drahtlosen Verbindung spezifiziert, aussendet.
  • Die Daten der drahtlosen Verbindung können umfassen: einen Service Set Identifier (SSID) für eine drahtlose Komponente der ersten Vorrichtung; ein Kennwort zum Verbinden mit der drahtlosen Komponente; und Daten, die die wenigstens eine erste Anwendung in der Teilmenge identifizieren.
  • Die Daten der drahtlosen Verbindung können umfassen: eine Bluetooth-Kennung (IEEE-802.15.1-Kennung) für eine Bluetooth-Komponente der ersten Vorrichtung; und Daten, die die wenigstens eine erste Anwendung in der Teilmenge identifizieren.
  • Die Daten der drahtlosen Verbindung können einen öffentlichen Schlüssel umfassen, um Kommunikationen zwischen der ersten Vorrichtung und der zweiten Vorrichtung zu verschlüsseln.
  • Die Anforderung einer drahtlosen Verbindung kann eine erste Gesteneingabe einhalten; und der ersten Dienst kann veranlassen, dass die erste Vorrichtung nur in Ansprechen auf die Bestimmung, dass die Geste zu einer zuvor konfigurierten Geste passt, eine drahtlose Verbindung mit der zweiten Vorrichtung aufbaut.
  • Die erste Vorrichtung kann Anwendungsdaten für mehrere Anwendungen speichern, wobei wenigstens eine der mehreren Anwendungen von den in der ersten Menge von Anwendungen enthaltenen Anwendungen verschieden ist.
  • Die Teilmenge der einen oder mehreren Anwendungen kann wenigstens eine der verschiedenen Anwendungen, für die die erste Vorrichtung Anwendungsdaten speichert, und wenigstens eine in der ersten Menge enthaltene Anwendung enthalten.
  • Die erste Vorrichtung kann gleichzeitig mit der zweiten Vorrichtung und mit der dritten Vorrichtung in Kommunikation stehen.
  • Wenn sie die gespeicherten Anwendungsdaten für die wenigstens eine Anwendung in der Teilmenge für den dritten Dienst bereitstellt, der auf der dritten Vorrichtung ausgeführt wird, kann die erste Vorrichtung mit der zweiten Vorrichtung nicht in Kommunikation stehen.
  • Die erste Vorrichtung kann eine Ladestation für Mobilvorrichtungen umfassen.
  • Bestimmte Ausführungsformen des in dieser Patentschrift beschriebenen Gegenstands können in der Weise implementiert werden, dass einer oder mehrere der folgenden Vorteile verwirklicht werden. Das Übertragen von Anwendungsdaten zwischen Nutzervorrichtungen ermöglicht die gemeinsame Nutzung von Inhalt und anderen Daten ohne die Notwendigkeit einer Verbindung zu einem fokalen Netz oder zu einem Weitverkehrsnetz. Vorrichtungen, die nicht mit einem Drittanbieter-Anwendungsserver kommunizieren können, können Anwendungsdaten von einer anderen Nutzervorrichtung oder von einer Synchronisations-Vermittlervorrichtung erhalten. Client-Vorrichtungen und Sync-Vorrichtungen können in der Lage sein, miteinander schneller und/oder auf sicherere und/oder auf zuverlässigere Weise zwischen sich zu kommunizieren als über eine getrennte Netzverbindung, was dazu führt, dass Anwendungsdaten schneller, sicherer und/oder zuverlässiger übertragen werden, als sie auf andere Weise übertragen werden können. Die Verwendung eines Dienstes, der mehrere Anwendungen unterstützt, ermöglicht, dass Anwendungsentwickler Anwendungen dafür konfigurieren, Anwendungsdaten unter Verwendung der separaten Vorrichtung gemeinsam zu nutzen. Außerdem kann Netzverkehr für Netzanbieter wie etwa Internet-Dienstanbieter und Zellennetzanbieter verringert werden, wenn Nutzervorrichtungen Anwendungsdaten voneinander anstatt über Netze von Netzanbietern erhalten.
  • Die Einzelheiten einer oder mehrerer Ausführungsformen des in dieser Patentschrift beschriebenen Gegenstands sind in den beigefügten Zeichnungen und in der folgenden Beschreibung dargelegt. Weitere Merkmale, Aspekte und Vorteile des Gegenstands gehen aus der Beschreibung, aus den Zeichnungen und aus den Ansprüchen hervor.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1A ist ein Blockschaltplan einer beispielhaften Umgebung, in der Anwendungsdaten zwischen Vorrichtungen übertragen werden.
  • 1B ist ein Blockschaltplan einer beispielhaften Umgebung, in der eine Sync-Vorrichtung zum Übertragen von Anwendungsdaten zwischen Vorrichtungen verwendet wird.
  • 2A ist ein Datenfluss eines beispielhaften Prozesses zum Übertragen von Anwendungsdaten zwischen Vorrichtungen.
  • 2B ist ein Datenfluss eines beispielhaften Prozesses zum Übertragen von Anwendungsdaten zwischen Vorrichtungen unter Verwendung einer Sync-Vorrichtung.
  • 3A ist eine Darstellung einer beispielhaften Anwendungsschnittstelle zum Übertragen von Anwendungsdaten zwischen Vorrichtungen.
  • 3B ist eine Darstellung einer beispielhaften Synchronisationsdienstschnittstelle zum Übertragen von Anwendungsdaten zwischen Vorrichtungen.
  • 4 ist ein Ablaufplan eines beispielhaften Prozesses zum Übertragen von Anwendungsdaten zwischen Vorrichtungen.
  • 5 ist ein Ablaufplan eines beispielhaften Prozesses zum Empfangen von Anwendungsdaten zwischen Vorrichtungen.
  • 6 ist ein Ablaufplan eines beispielhaften Prozesses zum Übertragen von Anwendungsdaten unter Verwendung einer Vermittlervorrichtung.
  • 7 ist ein Blockschaltplan eines beispielhaften Datenverarbeitungsgeräts.
  • Gleiche Bezugszeichen und Bezeichnungen in den verschiedenen Zeichnungen bezeichnen gleiche Elemente.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Übersicht
  • Ein Synchronisationsdienst (Sync-Dienst) ermöglicht die Übertragung von Daten zwischen Nutzervorrichtungen wie etwa Mobiltelephonen, Personal Computern und Tablet Computern. Nutzervorrichtungen können Anwendungen ausführen, die, z. B. durch die Nutzervorrichtung, auf der sie installiert sind, und/oder über einen Drittanbieter-Anwendungsserver, auf den über das Internet zugegriffen werden kann, periodisch aktualisiert werden. Ein Sync-Dienst, der auf Nutzervorrichtungen ausgeführt wird, ermöglicht, dass die Nutzervorrichtungen ohne die Notwendigkeit, sich mit einem Drittanbieter-Anwendungsserver zu verbinden, anwendungsspezifische Daten zwischen passenden Anwendungen, die auf den Nutzervorrichtungen installiert sind, übertragen. Der Sync-Dienst kann diese Funktionalität für mehrere verschiedene Anwendungen ermöglichen. Zum Beispiel kann eine erste Nutzervorrichtung eine Nachrichtenanwendung besitzen, die auf ihr installiert ist, die periodisch von einem Drittanbieter-Anwendungsserver, auf den über das Internet zugegriffen werden kann, Nachrichtenartikel empfängt. Eine zweite Nutzervorrichtung, die nicht mit dem Internet verbunden ist, kann unter Verwendung des Sync-Dienstes, der auf jeder Vorrichtung ausgeführt wird, von der ersten Nutzervorrichtung Nachrichtenartikel empfangen, um die Übertragung der Artikel von der ersten Vorrichtung zu der zweiten Vorrichtung zu ermöglichen.
  • Außerdem kann eine Vermittlervorrichtung verwendet werden, um die Übertragung von Anwendungsdaten zwischen Nutzervorrichtungen zu ermöglichen. Zum Beispiel kann eine Vermittlervorrichtung ebenfalls einen Sync-Dienst ausführen und Anwendungsdaten im lokalen Datenspeicher speichern. Der Sync-Dienst, der auf der Vermittlervorrichtung ausgeführt wird, ermöglicht, dass Nutzervorrichtungen Anwendungsdaten an die Vermittlervorrichtung übertragen, die als temporärer und/oder dauerhafter Cache zum Übertragen von Anwendungsdaten zu einer anderen Nutzervorrichtung wirken kann.
  • Beispielhaft kann ein Sync-Dienst, der auf einer ersten Vorrichtung ausgeführt wird, z. B. unter Verwendung einer Bluetooth-Verbindung oder einer WLAN-Direktverbindung, eine drahtlose Verbindung mit einer zweiten Vorrichtung aufbauen. Ein Sync-Dienst, der auf der zweiten Vorrichtung ausgeführt wird, kann an die erste Vorrichtung eine Liste von Anwendungen senden, die auf der zweiten Vorrichtung installiert sind und die durch den Sync-Dienst unterstützt werden. Der Sync-Dienst, der auf der ersten Vorrichtung ausgeführt wird, kann die Liste von Anwendungen verwenden, um zu bestimmen, ob auf der ersten Vorrichtung irgendwelche passenden Anwendungen installiert sind. Wenn das der Fall ist, kann der Sync-Dienst von der einen oder den mehreren passenden Anwendungen Anwendungsaktualisierungen anfordern. Falls die eine oder die mehreren passenden Anwendungen gemeinsam zu nutzende Daten besitzen, können sie diese Informationen an den Sync-Dienst auf der ersten Vorrichtung senden, der sie an den Sync-Dienst auf der zweiten Vorrichtung sendet, wobei der Sync-Dienst auf der zweiten Vorrichtung die Daten an die jeweils passenden Anwendungen auf der zweiten Vorrichtung sendet. Außerdem kann der Sync-Dienst auf der zweiten Vorrichtung Anwendungsdaten an die erste Vorrichtung senden, falls auf der zweiten Vorrichtung installierte Anwendungen Daten bereitzustellen haben. Wenn eine Vermittlervorrichtung verwendet wird, kann der Sync-Dienst auf der Vermittlervorrichtung Anwendungsdaten, z. B. automatisch und/oder auf Anforderung durch Nutzervorrichtungen, empfangen, speichern und übertragen.
  • Diese Merkmale und zusätzliche Merkmale sind im Folgenden ausführlicher beschrieben.
  • Beispielhafte Betriebsumgebung
  • 1 ist ein Blockschaltplan einer beispielhaften Umgebung 100, in der Anwendungsdaten zwischen Vorrichtungen übertragen werden, und 1B ist ein Blockschaltplan einer beispielhaften Umgebung 150, in der eine Sync-Vorrichtung 160 zum Übertragen von Anwendungsdaten zwischen Vorrichtungen verwendet wird. Ein Computernetz 102 wie etwa ein lokales Netz (LAN), ein Weitverkehrsnetz (WAN), das Internet oder eine Kombination davon verbindet eine oder mehrere Nutzervorrichtungen wie etwa die Nutzervorrichtung 1 104 mit einem oder mit mehreren Anwendungsservern 106. In der beispielhaften Umgebung 100 steht die Nutzervorrichtung 1 104 in Kommunikation mit der Nutzervorrichtung 2 110, mit der Nutzervorrichtung 3 120 und mit der Nutzervorrichtung N 130. In der beispielhaften Umgebung 150 steht die Nutzervorrichtung 1 104 in Kommunikation mit der Sync-Vorrichtung 160, die mit der Nutzervorrichtung 2 110, mit der Nutzervorrichtung 3 120 und mit der Nutzervorrichtung N 130 in Kommunikation steht.
  • Jede Nutzervorrichtung ist eine elektronische Vorrichtung, die, z. B. über das Netz 102 oder zwischen Nutzervorrichtungen und/oder Sync-Vorrichtungen, Daten anfordern und empfangen kann. Beispielhafte Nutzervorrichtungen 104 enthalten Personal Computer, Mobilkommunikationsvorrichtungen, Tablet Computer und andere Vorrichtungen, die Daten über das Netz 102 und/oder direkt zueinander senden und empfangen können. Üblicherweise enthält die Nutzervorrichtung 1 104 eine oder mehrere Anwendungen, die das Senden und Empfangen von Daten über das Netz 102 ermöglichen. Zum Beispiel kann eine Nachrichtenanwendung, die auf der Nutzervorrichtung 1 104 ausgeführt wird, von einem Anwendungsserver elektronische Nachrichtenartikel für die Nachrichtenanwendung anfordern und empfangen, während eine Textverarbeitungsanwendung von einem Anwendungsserver für die Textverarbeitungsanwendung Aktualisierungen für die Anwendung anfordern und empfangen kann.
  • Ein Anwendungsserver 106 ist eine elektronische Vorrichtung, die Anwendungsdaten für eine oder für mehrere Anwendungen managen kann. Beispielhafte Anwendungsserver enthalten Personal Computer, Server Computer und andere Vorrichtungen, die Daten über das Netz 102 senden und empfangen können. Üblicherweise enthält ein Anwendungsserver 106 eine oder mehrere Anwendungen und Datenspeichervorrichtungen, die zum Managen von Anwendungsdaten verwendet werden. Zum Beispiel kann ein Anwendungsserver für eine Nachrichtenanwendung elektronische Nachrichtenartikel in einer Datenbank speichern und eine Anwendung ausführen, die Nachrichtenartikel zu abonnierenden Nutzervorrichtungen, die über das Netz 102 mit dem Anwendungsserver verbunden sind, herausschiebt. Als ein weiteres Beispiel kann ein Anwendungsserver Softwareaktualisierungen für eine Anwendung speichern, die auf Anforderung für eine Nutzervorrichtung bereitgestellt werden können.
  • In der beispielhaften Umgebung 100 sind die Nutzervorrichtungen 2 – N nicht über das Netz 102 mit irgendeinem der Anwendungsserver 106 verbunden. Allerdings stehen sie, z. B. über eine verdrahtete oder drahtlose Verbindung, in Kommunikation mit der Nutzervorrichtung 1 104. Wenn ein Anwendungsserver neue Anwendungsdaten 108 wie etwa einen Nachrichteninhalt oder eine Anwendungsaktualisierung besitzt, um sie für Nutzervorrichtungen bereitzustellen, die eine bestimmte Anwendung verwenden, kann die Nutzervorrichtung 1 104 die Anwendungsdaten 108 unter Verwendung des Netzes 102, z. B. des Internet, von dem Anwendungsserver empfangen. Die Nutzervorrichtungen 2 – N, die die Anwendungsdaten 108 nicht von dem Anwendungsserver erhalten können, können die Anwendungsdaten 108 stattdessen von der Nutzervorrichtung 1 104 empfangen.
  • In der beispielhaften Umgebung 150 wirkt eine Sync-Vorrichtung 160 als ein Vermittler zwischen der Nutzervorrichtung 1 104 und den anderen Nutzervorrichtungen 2 – N. Die Sync-Vorrichtung 160 ist eine elektronische Vorrichtung, die Daten speichern kann und die mit anderen Vorrichtungen kommunizieren kann.
  • Die Sync-Vorrichtung kann z. B. eine Nutzervorrichtung, eine Ladestation für Mobilvorrichtungen, ein Audiosystem, ein Netz-Router, eine tragbare Datenspeichervorrichtung oder irgendeine andere elektronische Vorrichtung mit einem Datenprozessor, die Daten speichern und einen Sync-Dienst ausführen kann, sein.
  • Beispielhafte Anwendungsdatenübertragung
  • 2A ist ein Datenfluss eines beispielhaften Prozesses 200 zum Übertragen von Anwendungsdaten zwischen Vorrichtungen und 2B ist ein Datenfluss eines beispielhaften Prozesses 250 zum Übertragen von Anwendungsdaten zwischen Vorrichtungen unter Verwendung einer Sync-Vorrichtung.. Eine erste Vorrichtung 210 ist mit dem Netz 102, z. B. mit dem Internet, verbunden. Die erste Vorrichtung kann z. B. ein Mobiltelephon oder ein Tablet Computer sein. Die erste Vorrichtung 210 ist in der Weise gezeigt, dass auf ihr zwei Anwendungen, die Anwendung X 212 und die Anwendung Y 214, installiert sind. Die Anwendung X 212 und die Anwendung Y 214 können von ihren jeweiligen Anwendungsservern, dem Server 202 der Anwendung X und dem Server 204 der Anwendung Y, periodisch Anwendungsdaten (”App”-Daten) empfangen. Die App-Daten können z. B. neuen Inhalt und/oder Aktualisierungen für die jeweiligen Anwendungen wie etwa Nachrichtenartikel für eine Nachrichten-App, neue Musik für eine Musik-App, neue Ankündigungen und Blog-Posts für eine Social-Media-App und Aktualisierungen für Produktivitäts-Apps, um nur einige zu nennen, enthalten.
  • Außerdem enthält die erste Vorrichtung 210 einen Sync-Dienst 216, der eine auf der Vorrichtung installierte Anwendung ist, die dazu verwendet wird, die Synchronisation von Anwendungsdaten zwischen Nutzervorrichtungen, auf denen der Sync-Dienst 216 ebenfalls installiert ist, zu ermöglichen. Der Sync-Dienst 216 ermöglicht durch das Abstrahieren von den darunterliegenden physikalischen Netzkomponenten und durch das Managen von Netzverbindungen Netzkommunikationen zwischen Vorrichtungen. In einigen Implementierungen können Anwendungen wie etwa die Anwendung X 212 eine Sync-Bibliothek 218 verwenden, um die Anwendungsdatensynchronisation zu ermöglichen, wobei z. B. die Anwendung X 212 statisch an eine Sync-Bibliothek binden kann, die Standardanweisungen bereitstellt, die durch die Anwendung zur Synchronisation verwendet werden. Die Sync-Bibliothek 218 kann für eine Anwendung z. B. Folgendes bereitstellen: einen Mechanismus, damit die Anwendung Befehle und Benachrichtigungen von dem Sync-Dienst empfängt, mit der Fähigkeit, Ergebnisse an den Sync-Dienst zurückzugeben; mit der Fähigkeit, Einstellungen spezifisch für den Sync-Dienst und/oder für die Anwendung zu konfigurieren; und mit der Fähigkeit, dass die Anwendung die Synchronisation initiiert.
  • Die Sync-Vorrichtung 260 enthält Anwendungsdaten 262 für mehrere Anwendungen, die in dem Anwendungsdatenspeicher 264 gespeichert sind und auf die durch einen Sync-Dienst 266, der auf der Sync-Vorrichtung 260 ausgeführt wird, zugegriffen werden kann. Der Anwendungsdatenspeicher 264 kann Anwendungsdaten 262 für irgendeine Anzahl von Anwendungen speichern. In einigen Implementierungen speichert die Sync-Vorrichtung 260 die Anwendungsdaten dadurch, dass sie die entsprechenden Anwendungen installiert und Anwendungsdaten in Übereinstimmung mit den Anweisungen speichert, die durch die jeweilige Anwendung bereitgestellt werden, wie es z. B. eine Nutzervorrichtung tun würde.
  • Verbinden von Vorrichtungen
  • Obwohl die folgende Beschreibung, wie z. B. in 2A gezeigt ist, die Art und Weise spezifiziert, in der Nutzervorrichtungen eine Direktverbindung zwischen sich aufbauen, kann derselbe Prozess verwendet werden, um, wie z. B. in 2B gezeigt ist, Verbindungen zwischen Nutzervorrichtungen und Sync-Vermittlervorrichtungen aufzubauen. Um App-Daten zwischen Vorrichtungen zu übertragen, verbinden sich die Vorrichtungen zunächst miteinander. Obwohl Vorrichtungen in der Lage sein können, z. B. unter Verwendung einer Zellennetzverbindung oder einer WLAN-Verbindung mit einem Breitband-ISP, mit Drittanbieter-Anwendungsservern zu kommunizieren, ohne sich mit einer anderen Vorrichtung zu verbinden, kann das direkte Verbinden von Vorrichtungen miteinander z. B. vorteilhaft sein, wenn andere Formen der Kommunikation langsam, unzuverlässig oder durch einen Netzdienstanbieter beschränkt sind. Vorrichtungen können auf eine Vielzahl von Arten, sowohl verdrahtet als auch drahtlos, verbunden oder ”gekoppelt” werden. Zum Beispiel kann die erste Vorrichtung 210 die drahtlose Verfügbarkeit wie etwa die Bluetooth-Verfügbarkeit, die Neighboring-area-Neighboring-Verfügbarkeit (NaN-Verfügbarkeit), die WLAN-Hotspot-Verfügbarkeit, die Ad-hoc-WLAN-Verfügbarkeit oder die WLAN-Direkt-Verfügbarkeit rundsenden. Die Rundsendung kann durch eine bestimmte Anwendung wie etwa die Anwendung X 212 entweder automatisch, auf der Grundlage eines Auslöseereignisses oder in Ansprechen auf eine bestimmte Nutzerinteraktion initiiert werden. Außerdem kann die Rundsendung z. B. periodisch oder in Ansprechen auf ein Auslöseereignis oder eine Nutzerinteraktion durch den Sync-Dienst 216 initiiert werden. Die Rundsendung kann eine Standardfunkwellenrundsendung oder in einigen Implementierungen eine Audiorundsendung sein und kann Daten, die die Rundsendevorrichtung identifizieren, und Verbindungsinformationen wie etwa eine Netzadresse der Vorrichtung und/oder eine Vorrichtungskennung enthalten.
  • Beispielhaft kann die erste Vorrichtung 210 in einer Rundsendebetriebsart angeordnet werden, die WLAN-Verbindungsinformationen über Funkwellen rundsendet. Die Rundsendung kann außerdem in einer anderen Form, z. B. als ein Bluetooth-Signal, als ein Audiosignal, als ein IR-Signal usw., erfolgen. Andere Vorrichtungen wie etwa die zweite Vorrichtung 220 können anfordern, sich automatisch oder auf der Grundlage einer Nutzerinteraktion mit der ersten Vorrichtung 210 zu verbinden. Die Anforderung zum Verbinden kann durch die erste Vorrichtung 210 automatisch oder auf Nutzerinteraktion angenommen oder zurückgewiesen werden, wobei z. B. ein Nutzer der ersten Vorrichtung 210 aufgefordert werden kann, eine Verbindung von der zweiten Vorrichtung 220 anzunehmen, wenn die erste Vorrichtung 210 eine von der zweiten Vorrichtung 220 gesendete Verbindungsanforderung empfängt. In einigen Implementierungen kann eine in einer Rundsendebetriebsart angeordnete Nutzervorrichtung Verbindungsanforderungen von bekannten/vertrauenswürdigen Nutzervorrichtungen annehmen, während sie einen Nutzer der Vorrichtung auffordert, Verbindungsanforderungen von unbekannten/nicht vertrauenswürdigen Nutzervorrichtungen anzunehmen oder abzulehnen.
  • Als ein weiteres Beispiel kann die erste Vorrichtung 210 in einer Hörbetriebsart angeordnet werden, in der die erste Vorrichtung 210 auf ein Verbindungsanforderungssignal wie etwa ein Audiosignal, ein Bluetooth-Signal, ein WLAN-Signal oder ein IR-Signal, das eine Verbindung mit der ersten Vorrichtung 210 anfordert, hört. Zum Beispiel kann die zweite Vorrichtung 220 ein Audiosignal aussenden, das Netz- und Vorrichtungsinformationen zum Verbinden mit der zweiten Vorrichtung 220 enthält, während die erste Vorrichtung 210 in einer Hörbetriebsart ist. Die erste Vorrichtung 210 kann bei Empfang des Audiosignals das Signal interpretieren und eine Verbindung mit der zweiten Vorrichtung 220 automatisch oder auf Nutzerinteraktion annehmen oder zurückweisen, wobei die erste Vorrichtung 210 z. B. eine Verbindungsanforderung von der zweiten Vorrichtung 220 automatisch annehmen kann, wenn die erste Vorrichtung 210 bestimmt, dass ein Audiosignal, das die zweite Vorrichtung 220 identifiziert, von einer vertrauenswürdigen Vorrichtung in einer Weißliste vertrauenswürdigen Vorrichtungen kommt, die der ersten Vorrichtung 210 bekannt ist. In einigen Implementierungen kann die erste Vorrichtung 210 ein zweites Signal wie etwa ein Audio-Sample erzeugen, um für die zweite Vorrichtung 220 anzugeben, dass das durch die zweite Vorrichtung 220 erzeugte Signal durch die erste Vorrichtung 210 empfangen wurde. Das zweite Audiosignal kann z. B. Daten, die angeben, ob der Empfang erfolgreich war, und, wenn das nicht der Fall ist, einen Fehlercode, um potentielle Probleme, die die Verbindung verhindern, anzugeben, enthalten.
  • In einigen Implementierungen können innerhalb einer durch den Sync-Dienst unterstützten Anwendung Rundsende- und Verbindungsanforderungen initiiert werden. Zum Beispiel kann eine Nachrichtenanwendung ein Nutzerschnittstellenelement enthalten, das ermöglicht, dass ein Nutzer unter nahegelegenen Vorrichtungen mit derselben Nachrichtenanwendung und dem installierten Sync-Dienst auswählt. Die Auswahl einer nahegelegenen Vorrichtung kann zum Übertragen eines bestimmten Nachrichtenartikels eine Verbindung zwischen Vorrichtungen initiieren. Eine Vorrichtung, die eine Verbindungsanforderung oder Rundsendeinformationen von einer anderen Vorrichtung empfängt, kann einem Nutzer der Vorrichtung eine Nutzerschnittstelle darstellen, die den Nutzer zum Verbinden und/oder zur Übertragung zur Autorisierung auffordert.
  • Für die drahtlose Entdeckung und Verbindung zwischen Vorrichtungen können andere Verfahren und Varianten verwendet werden. Zum Beispiel kann die erste Vorrichtung 210 periodisch ein Audiosignal aussenden, das von anderen Vorrichtungen, die in einer Hörbetriebsart sind, aufgefangen werden kann, wobei das Audiosignal veranlassen kann, dass andere Vorrichtungen Informationen wie etwa eine Bluetooth- oder WLAN-Direktnetzadresse rundsenden. In einigen Implementierungen können mehrere Vorrichtungen gleichzeitig miteinander verbunden sein. Zum Beispiel kann die erste Vorrichtung 210 mit mehreren anderen Nutzervorrichtungen verbunden sein, wobei die Verbindungen irgendeine Kombination aus verdrahtet, Bluetooth, Neighboring area Networking (NaN), WLAN-Hotspot, Ad-hoc-WLAN und/oder WLAN-Direkt sein können.
  • Wie oben angemerkt wurde, können in einigen Implementierungen Auslöseereignisse verwendet werden, um die Verfügbarkeit von Rundsende-, Hörbetriebsart- und Vorrichtungsverbindungen zu initiieren. Zum Beispiel kann die erste Vorrichtung 210 einen ortsbasierten Auslöser verwenden, der veranlasst, dass die erste Vorrichtung 210 die Verbindungsverfügbarkeit rundzusenden beginnt, wenn die erste Vorrichtung 210 detektiert, dass sie innerhalb eines bestimmten, z. B. über GPS oder auf der Grundlage einer Verbindung mit einem bestimmten Zellennetzsendeturm oder WLAN-Router detektierten, Orts ist. In einigen Implementierungen kann ein Auslöser auf dem Empfang neuer Anwendungsdaten von einem Anwendungsserver beruhen. Zum Beispiel kann die Anwendung X 212 veranlassen, dass der Sync-Dienst 216 eine Verfügbarkeitsrundsendung initiiert, wenn die Anwendung X 212 App-Daten von dem Server 202 der Anwendung X empfängt.
  • In einigen Implementierungen können Vorrichtungen dafür konfiguriert sein, die Verfügbarkeit z. B. jede Minute, alle 20 Minuten, jede Stunde usw. periodisch rundzusenden. In einigen Implementierungen kann ein Auslöser auf einer Nutzereingabe, z. B. auf der Interaktion mit einer Nutzerschnittstelle oder auf der Verwendung einer bewegungs- oder gestenbasierten Eingabe, beruhen. Die oben gegebenen Auslöseereignisse sind Beispiele, wobei andere Auslöseereignisse oder Kombinationen von Auslöseereignissen verwendet werden können, um Verfügbarkeitsrundsendungen, die Hörbetriebsart und Vorrichtungsverbindungen zu initiieren.
  • In einigen Implementierungen kann eine Verfügbarkeitsrundsendung und/oder eine Verbindungsanforderung zusätzliche Daten enthalten. Zum Beispiel kann die erste Vorrichtung 210 in einer Verfügbarkeitsrundsendung ein Kennwort mit einem Service Set Identifier (SSID) für eine drahtlose Komponente der ersten Vorrichtung 210 enthalten. Als ein weiteres Beispiel kann ein öffentlicher Schlüssel zum Verschlüsseln von Kommunikationen zwischen Nutzervorrichtungen rundgesendet/gesendet werden. In einigen Implementierungen kann bei einer Verfügbarkeitsrundsendung und/oder bei einer Verbindungsanforderung eine Liste von Anwendungen enthalten sein, die ermöglicht, dass die empfangende Vorrichtung bestimmt, ob es auf der empfangenden Vorrichtung irgendwelche passenden Anwendungen gibt. Die Liste kann andere Informationen für die Anwendungen wie etwa Informationen hinsichtlich verfügbarer App-Daten, z. B. Anwendungsinhalt und/oder Aktualisierungen, enthalten.
  • In einigen Implementierungen können in einer Verfügbarkeitsrundsendung und/oder in einer Verbindungsanforderung Handshake-Daten enthalten sein. Handshake-Daten können z. B. ein Kennwort, eine PIN-Nummer und/oder Daten, die eine Tastgeste und/oder physikalische Geste spezifizieren, enthalten. Zum Beispiel kann die erste Vorrichtung 210 einen oder mehrere physikalische Sensoren zum Erfassen einer physikalischen Bewegung wie etwa Gyroskope und/oder Beschleunigungsmesser enthalten und können die Handshake-Daten Daten des physikalischen Sensors enthalten, die eine bestimmte Geste, z. B. einen ”geheimen Handshake”, spezifizieren, der durch die zweite Vorrichtung 220 im Wesentlichen wiederholt werden muss, bevor sich die zweite Vorrichtung 220 mit der ersten Vorrichtung verbinden darf.
  • In Situationen, in denen Auslöser verwendet werden, kann das Auftreten bestimmter Gesten oder anderer Handshake-Daten als ein Auslöser verwendet werden. Beispielhaft kann ein Nutzer eines Mobiltelephons, der einen Sync-Dienst ausführt, eine physikalische Handgeste verwenden, während er das Telephon hält, um die Rundsendung der Verbindungsverfügbarkeit des Sync-Dienstes auszulösen. Ein weiterer Nutzer mit einem zweiten Mobiltelephon kann eine drahtlose Verbindung mit dem ersten Telephon initiieren, indem er eine ähnliche physikalische Handgeste vornimmt – wobei eine oder beide Vorrichtungen zueinander Daten senden können, die die physikalische Handgeste spezifizieren, die verifizieren können, dass die Geste innerhalb eines bestimmten Maßes an Sicherheit zusammenpasst, bevor zugelassen wird, dass sich die Vorrichtungen drahtlos verbinden.
  • Wie oben angemerkt wurde, können dieselben oben beschriebenen Prozesse zum Aufbauen einer Direktverbindung zwischen Nutzervorrichtungen verwendet werden, um Verbindungen zwischen Nutzervorrichtungen und Sync-Vermittlervorrichtungen aufzubauen. Der beispielhafte Prozess 250 aus 2B zeigt die Übertragung von App-Daten von einer Nutzervorrichtung zu einer anderen Nutzervorrichtung unter Verwendung einer Sync-Vermittlervorrichtung 260. Der Sync-Dienst 266, der auf der Sync-Vorrichtung 260 ausgeführt wird, ist in der Lage, dieselben Aktionen wie die Sync-Dienste der ersten Vorrichtung 210 und der zweiten Vorrichtung 220, wie sie oben beschrieben sind, auszuführen. In dem beispielhaften Prozess 250 besitzt die Sync-Vorrichtung 260 keine Anwendungsdaten für irgendwelche installierten Anwendungen und speichert stattdessen App-Daten 232 im Anwendungsdatenspeicher 264. Allerdings kann die Sync-Vorrichtung 260 in einigen Implementierungen eine Nutzervorrichtung sein, wobei die Sync-Vorrichtung 260 in diesem Fall dieselben Aktionen wie die erste und die zweite Vorrichtung ausführen kann.
  • In dem beispielhaften Prozess 250 baut die erste Vorrichtung 210 eine erste drahtlose Verbindung 270 mit der Sync-Vorrichtung 260 auf. Die drahtlose Verbindung kann unter Verwendung irgendeines der oben anhand des beispielhaften Prozesses 200 beschriebenen Verbindungsverfahren aufgebaut werden. Die Sync-Vorrichtung 260 kann z. B. auf ein Audiosignal oder auf eine andere Anforderung einer drahtlosen Verbindung hören; oder die Sync-Vorrichtung 260 kann die Verfügbarkeit einer drahtlosen Verbindung, z. B. über WLAN oder Bluetooth, rundsenden.
  • Die Sync-Vorrichtung 260 baut eine zweite drahtlose Verbindung 280 mit der zweiten Vorrichtung 220 auf. Die zweite drahtlose Verbindung 280 kann ein von der ersten drahtlosen Verbindung getrenntes Protokoll, z. B. Bluetooth anstelle von WLAN, verwenden und kann gleichzeitig mit der ersten drahtlosen Verbindung 720 oder zu einer anderen Zeit stattfinden. Das Aufbauen der Verbindung kann auf dieselbe oder eine ähnliche Weise wie das oben Beschriebene der Verbindung zwischen der ersten Vorrichtung 210 und der Sync-Vorrichtung 260 ausgeführt werden.
  • Obwohl die beispielhaften Prozesse 200 und 250 die Verbindungen zwischen Vorrichtungen als drahtlose Verbindungen zeigen, können die Verbindungen in einigen Implementierungen verdrahtet sein. Außerdem können die Verbindungen zwischen Nutzervorrichtungen und Sync-Vorrichtung 260 irgendeine Kombination aus verdrahtet und/oder drahtlos sein. Zum Beispiel kann eine Sync-Vorrichtung 260, die in einer Mobilvorrichtungs-Ladestation implementiert ist, verdrahtete Verbindungen, z. B. eine USB-Kabelverbindung, erfordern; kann eine Sync-Vorrichtung 260, die in einen Bluetooth-Lautsprecher implementiert ist, Bluetooth-Verbindungen erfordern; und kann eine Sync-Vorrichtung 260, die in einem WLAN-Router implementiert ist, sowohl drahtlose als auch verdrahtete Verbindungen, z. B. unter Verwendung eines Netzkabels, ermöglichen.
  • In einigen Implementierungen ist das drahtlose Netz, das für drahtlose Kommunikationen zwischen Nutzervorrichtungen verwendet wird, ein Trägernetz wie etwa ein Zellentelekommunikationsnetz. Zum Beispiel kann ein gesamtes Trägernetz als ein einzelnes logisches Netz behandelt werden, was die Vorrichtungsentdeckung, die Vorrichtungskopplung und die gemeinsame Nutzung von Anwendungen zwischen irgendwelchen mit dem Trägernetz verbundenen Vorrichtungen ermöglicht. Die Verwendung des Trägernetzes zum Übertragen von Anwendungsdaten kann das Trägernetz von Verkehr entlasten, indem sie z. B. ermöglicht, dass Vorrichtungen in dem Trägernetz Aktualisierungen und Anwendungsdaten voneinander anstatt von Drittanbieterservern, die interne Kommunikationen erfordern können, erhalten.
  • In einigen Implementierungen ist das für drahtlose Kommunikationen zwischen Nutzervorrichtungen verwendete drahtlose Netz ein drahtloser Zugriffspunkt wie etwa ein WLAN-Router. Anders als Vorrichtungen, die sich, z. B. wie in einer Bluetooth- oder WLAN-Direktverbindung, direkt miteinander verbinden, kann ein drahtloser Zugriffspunkt dafür konfiguriert sein, die Entdeckung und Übertragung unter Verwendung des Zugriffspunkts zu ermöglichen. Zum Beispiel kann ein Router dafür konfiguriert sein, Sync-Dienst-Kommunikationen zwischen Vorrichtungen zu ermöglichen, oder kann er dafür konfiguriert sein, einen Sync-Helferdienst auszuführen, der Kommunikationen zwischen Vorrichtungen aktiv weiterleitet. In einigen Implementierungen kann ein drahtloser Zugriffspunkt ebenfalls als eine Sync-Vorrichtung verwendet werden, was sowohl Direktkommunikationen zwischen Nutzervorrichtungen als auch den Betrieb als eine Vermittlervorrichtung zur gemeinsamen Nutzung von Anwendungsdaten zwischen Nutzervorrichtungen ermöglicht.
  • Übertragung von Anwendungsdaten direkt zwischen Vorrichtungen
  • Nachdem sich Nutzervorrichtungen miteinander verbunden haben, können Anwendungsdaten zwischen ihnen übertragen werden. In dem beispielhaften Datenfluss 200 hat die erste Vorrichtung 210 eine drahtlose Verbindung 240 mit der zweiten Vorrichtung 220 aufgebaut. Der Sync-Dienst 216, der auf der ersten Vorrichtung 210 ausgeführt wird, empfängt von dem Sync-Dienst 226, der auf der zweiten Vorrichtung 220 ausgeführt wird, Daten, die die Apps 230 identifizieren, die auf der zweiten Vorrichtung 220 installiert sind und die durch den Sync-Dienst 226 unterstützt werden. Zum Beispiel kann der Sync-Dienst 226 eine Liste von Apps 230 senden, die die Anwendung X 222 und die Anwendung Y 224 enthält. Der Sync-Dienst 216 auf der ersten Vorrichtung 210 bestimmt, ob irgendwelche der Apps 230 ebenfalls auf der ersten Vorrichtung 210 installiert ist. In dem beispielhaften Datenfluss 200 sind die Anwendung X und die Anwendung Y auf beiden Vorrichtungen installiert.
  • Die Art und Weise, in der ein Zusammenpassen bestimmt wird, kann variieren. Zum Beispiel kann eine Anwendung spezifizieren, dass nur Anwendungen mit einer gleichen Versionsnummer oder mit einer Versionsnummer innerhalb eines bestimmten Bereichs zusammenpassen. Eine andere Anwendung kann spezifizieren, dass irgendeine Version der Anwendung als zusammenpassend betrachtet werden kann. In einigen Implementierungen können zwei verschiedene Anwendungen als zusammenpassend angesehen werden. Zum Beispiel kann ein Anwendungsentwickler mehrere verschiedene Anwendungen, die als zusammenpassende Anwendungen behandelt werden, wie etwa eine freie Version einer Anwendung und eine bezahlte Premiumversion einer Anwendung, oder Anwendungen, die verschieden aussehen, aber dieselbe zugrundeliegende Funktionalität besitzen, haben. In diesen Situationen kann der Anwendungsentwickler z. B. unter Verwendung der Sync-Bibliothek spezifizieren, welche Anwendung bzw. Anwendungen zusammenpassen.
  • Nachdem zusammenpassende Anwendungen identifiziert worden sind, empfängt der Sync-Dienst 216, der auf der ersten Vorrichtung 210 ausgeführt wird, von der Anwendung X 212 App-Daten 232. App-Daten 232 können unter Verwendung eines lokalen Kommunikations-Sockets zwischen der Anwendung X 212 und dem Sync-Dienst 216 übertragen werden. Die App-Daten 232 können irgendwelche Daten für die Anwendung X 212 wie etwa Anwendungsinhalt oder eine Softwareaktualisierung sein. Zum Beispiel können die App-Daten 232 in einer Situation, in der die Anwendung X 212 eine Nachrichtenanwendung ist, mehrere Nachrichtenartikel, die von dem Server 202 der Anwendung X zuletzt empfangen wurden, und/oder eine neue Version der Anwendung X 212 enthalten. Jede Anwendung kann bestimmen, was in den zu übertragenden App-Daten enthalten sein soll.
  • In einigen Implementierungen können der Sync-Dienst 216, der auf der ersten Vorrichtung 210 ausgeführt wird, und/oder die passenden Anwendungen auf der Grundlage von Informationen, die von der zweiten Vorrichtung 220 empfangen werden, bestimmen, welche App-Daten übertragen werden können. Zum Beispiel kann eine Liste von Apps 230, die an den Sync-Dienst 216 gesendet wird, für jede Anwendung Informationen enthalten, die angeben, wie aktuell die Anwendung ist. In dieser Situation kann der Sync-Dienst 216 die passende Anwendung X 212 mit Daten, die angeben, dass die passende Anwendung auf der zweiten Vorrichtung 220 zu einer bestimmten Zeit aktuell ist, bereitstellen. Die Anwendung X 212 kann die Informationen verwenden, um z. B. Anwendungsaktualisierungen oder Inhalt, die aktueller sind, als das letzte Mal, als die entsprechende Anwendung X 222 aktualisiert worden ist, bereitzustellen. Unter Verwendung des Nachrichtenanwendungsbeispiels kann die passende Anwendung X 212 auf der ersten Vorrichtung 210 App-Daten 232 senden, die jeden Nachrichtenartikel enthalten, der von dem Server 202 der Anwendung X innerhalb der vergangenen Woche empfangen wurde, falls der jüngste Nachrichtenartikel für die Anwendung X 222 auf der zweiten Vorrichtung 220 eine Woche alt ist. Informationen, die angeben, wie aktuell eine Anwendung ist, brauchen nicht in der Liste von Apps 230 enthalten zu sein und können auf andere Weise, z. B. durch spezifische Anforderungen, die von passenden Anwendungen und/oder von dem Sync-Dienst ausgehen, erhalten werden.
  • Nach Empfang der App-Daten 232 von der Anwendung X 212 sendet der Sync-Dienst 216 die App-Daten 232 unter Verwendung der drahtlosen Verbindung 240 an den Sync-Dienst 226 auf der zweiten Vorrichtung 220. Der Sync-Dienst 226 bestimmt, z. B. unter Verwendung einer Anwendungskennung, die in den App-Daten 232 enthalten ist, für welche Anwendung die App-Daten 232 sind, und sendet die App-Daten 232 an die passende Anwendung, die Anwendung X 222. Die Anwendung X 222 behandelt die App-Daten 232 in einer durch die Anwendung spezifizierten Weise, z. B. in dem Nachrichtenanwendungsbeispiel dadurch, dass sie die Nachrichtenartikel auf einer Anzeige der zweiten Vorrichtung 220 darstellt.
  • In einigen Implementierungen ist der Sync-Dienst ebenfalls zum Empfangen und Übertragen von App-Daten für die Sync-Dienst-Anwendung berechtigt. Zum Beispiel kann ein Anwendungsserver Aktualisierungen für eine Nutzervorrichtung bereitstellen, die für die Sync-Dienst-Anwendung bestimmt sind. Die Sync-Dienst-Anwendung kann in der Lage sein, die Aktualisierungen unter Verwendung des Sync-Dienstes an andere Vorrichtungen zu übertragen, die eine ältere Version des Sync-Dienstes verwenden. Zum Beispiel kann der erste Sync-Dienst 216 auf der ersten Vorrichtung 210 aktueller als der Sync-Dienst 226 auf der zweiten Vorrichtung 220 sein und kann der erste Sync-Dienst 216 App-Daten an den zweiten Sync-Dienst 226 senden, so dass der zweite Sync-Dienst 226 aktualisiert werden kann.
  • Die erste Vorrichtung 210 braucht nicht in Kommunikation mit dem Netz 102 oder mit irgendwelchen Anwendungsservern zu stehen, um App-Daten 232 zu übertragen. Zum Beispiel kann die erste Vorrichtung 210 mehrere Stunden oder Tage, bevor sie die Anwendungsaktualisierungen an die zweite Vorrichtung 220 sendet, mit dem Internet verbunden gewesen sein und Anwendungsaktualisierungen empfangen haben. In Situationen, in denen die erste Vorrichtung 210 gleichzeitig sowohl mit dem Netz 102 als auch mit der zweiten Vorrichtung 220 verbunden ist, können von Anwendungsservern empfangene App-Daten von der ersten Vorrichtung 210 an die zweite Vorrichtung 220 weitergeleitet werden, wie sie empfangen werden. Zum Beispiel kann die Anwendung X 212, falls der Server 202 der Anwendung X einen neuen Artikel für die Anwendung X 212 auf der ersten Vorrichtung bereitstellt, während die erste Vorrichtung 210 mit der zweiten Vorrichtung verbunden ist, den neuen Artikel über die Sync-Dienste 216 und 226 der jeweiligen Vorrichtungen an die passende Anwendung X 222 auf der zweiten Vorrichtung senden.
  • In einigen Implementierungen kann die zweite Vorrichtung 220 mit dem Netz 202 und über das Netz 102 mit den Anwendungsservern verbunden sein. Dass die zweite Vorrichtung 220 eine Verbindung mit dem Netz 102 besitzt, schließt nicht notwendig aus, dass sie App-Daten von der ersten Vorrichtung 210 empfängt. Übertragungen zwischen den Vorrichtungen können z. B. in Situationen erwünscht sein und fortgesetzt werden, in denen die Verbindungsgeschwindigkeit zwischen der zweiten Vorrichtung 220 und dem Netz 102 langsam und/oder unzuverlässig ist.
  • Während der beispielhafte Datenfluss 200 die Übertragung von App-Daten 232 von einer auf der ersten Vorrichtung 210 installierten Anwendung zu einer passenden Anwendung auf der zweiten Vorrichtung 220 zeigt, kann die drahtlose Verbindung 240 zwischen den Vorrichtungen ebenfalls für Zweiwegkommunikationen, z. B. zum Senden von App-Daten von einer Anwendung auf der zweiten Vorrichtung 220 an eine passende Anwendung auf der ersten Vorrichtung 210, verwendet werden. Zum Beispiel kann die Anwendung Y 224 auf der zweiten Vorrichtung 220 aktueller sein und/oder Anwendungsdaten besitzen, die die passende Anwendung, die Anwendung Y 214 auf der ersten Vorrichtung 210, nicht besitzt. Wie bei der Anwendung X 212 kann der Sync-Dienst 226 auf der zweiten Vorrichtung 220 App-Daten von der Anwendung Y 224 empfangen und die App-Daten an den Sync-Dienst 216, der auf der ersten Vorrichtung 210 ausgeführt wird, senden. Daraufhin kann der Sync-Dienst 216 auf der ersten Vorrichtung 210 die App-Daten an die Anwendung Y 214 weiterleiten.
  • In einigen Implementierungen kann der Sync-Dienst die Übertragung von Daten zwischen Anwendungen, die nicht zusammenpassen, unterstützen. Zum Beispiel können die App-Daten 232, die durch den Sync-Dienst 216 empfangen werden, der auf der ersten Vorrichtung 210 ausgeführt wird, für die Anwendung Y auf der zweiten Vorrichtung anstatt für die passende Anwendung X 222 bestimmt sein. Dies kann z. B. nützlich sein, falls ein Entwickler mehrerer Anwendungen ermöglicht hat, dass die Anwendungen ähnliche Anwendungsdaten behandeln. Zum Beispiel kann der Entwickler einer Social-Networking-Anwendung und einer Textkommunikationsanwendung ermöglichen, dass Textkommunikationen über die Social-Networking-Anwendung gesendet werden, um durch die Textkommunikationsanwendung empfangen zu werden.
  • In einigen Implementierungen unterstützt der Sync-Dienst die Übertragung von Anwendungen von einer Vorrichtung zu einer anderen. Zum Beispiel kann der Sync-Dienst 216 auf der ersten Vorrichtung 210 in Situationen, in denen auf der ersten Vorrichtung 210 eine Anwendung installiert ist, die auf der zweiten Vorrichtung 220 nicht installiert ist, die gesamte Anwendung zur Installation auf der zweiten Vorrichtung 220 an den zweiten Dienst 226 bei der zweiten Vorrichtung 220 übertragen. In Situationen, in denen die erste Vorrichtung 210 Anwendungen besitzt, die zum Übertragen an die zweite Vorrichtung 220 berechtigt sind, kann der Sync-Dienst 216 an den Sync-Dienst 226 auf der zweiten Vorrichtung 220 Daten senden, die berechtigte Anwendungen angeben. Das Senden von Daten, die berechtigte Anwendungen angeben, kann durch den Sync-Dienst 216 in Ansprechen auf den Empfang einer Anforderung für verfügbare Anwendungen von dem Sync-Dienst 226, der auf der zweiten Vorrichtung 220 ausgeführt wird, ausgeführt werden. Nach dem Empfang der Daten, die die berechtigten Anwendungen angeben, kann die zweite Vorrichtung 220, z. B. in Ansprechen auf eine Auswahl berechtigter Anwendungen durch den Nutzer der zweiten Vorrichtung 220, anfordern, dass eine oder mehrere bestimmte berechtigte Anwendungen an die zweite Vorrichtung 220 übertragen und auf ihr installiert werden. Zum Beispiel kann der Sync-Dienst 226 auf der zweiten Vorrichtung 220 veranlassen, dass die zweite Vorrichtung für einen Nutzer der zweiten Vorrichtung eine Aufforderung anzeigt, die ermöglicht, dass der Nutzer auswählt, welche Anwendung(en) von der ersten Vorrichtung 210 verfügbar sind.
  • In einigen Implementierungen können die App-Daten 232, die durch die erste Vorrichtung 210 für die zweite Vorrichtung 220 bereitgestellt werden, lokal, z. B. bei der Anwendung X 212 auf der ersten Vorrichtung 210 anstatt bei dem Server 202 der Anwendung X, entstehen. Beispielhaft kann eine Anwendung für die gemeinsame Nutzung von Bildern Zugriff auf Bilder, die durch die erste Vorrichtung 210 erfasst und lokal gespeichert werden, sowie auf Bilder, die durch einen Anwendungsserver bereitgestellt werden, besitzen. Die lokalen Bilder können als Anwendungsdaten für eine passende Anwendung für die gemeinsame Nutzung von Bildern auf der zweiten Vorrichtung 220 mit den oder getrennt von den durch den Anwendungsserver bereitgestellten Bildern bereitgestellt werden.
  • In einigen Implementierungen verhindert der Sync-Dienst z. B. aus Sicherheitsgründen, dass lokale Anwendungsdaten zwischen Vorrichtungen übertragen werden. Unter Verwendung des Beispiels der Anwendung für die gemeinsame Nutzung von Bildern kann der Sync-Dienst 216 auf der ersten Vorrichtung 210 verhindern, dass lokale Bilder für die zweite Vorrichtung 220 bereitgestellt werden, und nur Bilder oder andere Anwendungsdaten zulassen, die durch den Server 202 der Anwendung X bereitgestellt werden.
  • In einigen Implementierungen wird die Übertragung von App-Daten zwischen Nutzervorrichtungen wahlweise durch einen Nutzer der Nutzervorrichtung autorisiert. Zum Beispiel kann der Sync-Dienst den Nutzer vor dem Senden der App-Daten an die zweite Vorrichtung zur Bestätigung auffordern, falls der Sync-Dienst bestimmt, dass die erste Vorrichtung 210 Aktualisierungen an die zweite Vorrichtung 220 zu senden hat. Ähnlich kann der Sync-Dienst 226, der auf der zweiten Vorrichtung 220 ausgeführt wird, einen Nutzer der zweiten Vorrichtung 220 auffordern, die Übertragung von App-Daten anzunehmen, indem er den Nutzer z. B. auffordert, App-Daten von der ersten Vorrichtung 210 für eine bestimmte Anwendung anzunehmen. In einigen Implementierungen wird die Datenübertragung im Hintergrund, z. B. ohne die Notwendigkeit einer Nutzerinteraktion, behandelt. Zum Beispiel können bestimmte Anwendungen eine Autorisierung zum automatischen Übertragen von Daten haben, wenn sie mit einer anderen Vorrichtung mit einer passenden Anwendung verbunden sind. Um zu managen, wann ein Nutzer für eine Übertragung aufgefordert wird, können Nutzerpräferenzen verwendet werden, wobei die Präferenzen universell und/oder anwendungsspezifisch sein können. Ähnlich können bestimmte Typen von App-Daten automatisch übertragen werden, während andere Typen von App-Daten eine spezifische Autorisierung erfordern, sofern nicht in den Nutzerpräferenzen etwas Anderes spezifiziert ist. Zum Beispiel kann ein Nutzer spezifizieren, dass eine bestimmte Anwendung automatisch Inhalt für eine Anwendung im Hintergrund auslesen kann, ohne eine Nutzerautorisierung zu begehren, wobei diese Anwendungsaktualisierungen aber nicht automatisch ohne spezifische Nutzerautorisierung übertragen werden sollten.
  • In einigen Implementierungen können Anwendungen und/oder Typen von App-Daten eine entsprechende Priorität besitzen. Anwendungen und App-Daten mit einer höheren Priorität können vor App-Daten mit einer niedrigeren Priorität übertragen werden. Zum Beispiel können Nutzerpräferenzen für den Sync-Dienst spezifizieren, dass eine Nachrichtenanwendung vor einer Social-Networking-Anwendung oder einer Produktivitätsanwendung aktualisiert werden sollte. Als ein weiteres Beispiel kann eine Anwendung Präferenzen besitzen, die spezifizieren, dass Anwendungsaktualisierungen eine höhere Priorität als Anwendungsinhalt haben sollten. Die Priorität von Anwendungen und/oder App-Daten kann durch den Sync-Dienst mit oder ohne die Verwendung von Nutzerpräferenzen oder anwendungsspezifischen Präferenzen bestimmt werden. In Situationen, in denen mehrere Nutzervorrichtungen verbunden sind, können Nutzervorrichtungen ebenfalls eine Priorität besitzen, die z. B. auf Nutzerpräferenzen, auf der Menge zu übertragender Daten usw. beruht.
  • Während der beispielhafte Datenfluss 200 zwei Anwendungen auf jeder Nutzervorrichtung zeigt, können Nutzervorrichtungen irgendeine Anzahl von Anwendungen, passend oder nicht, besitzen. Wo App-Daten für mehrere Anwendungen übertragen werden, leitet der Sync-Dienst auf jeder Vorrichtung App-Daten, wie z. B. in Datenpaketen angegeben ist, die drahtlos von dem Sync-Dienst 216 auf der ersten Vorrichtung 210 an den Sync-Dienst 226 auf der zweiten Vorrichtung 220 gesendet werden, an die geeignete Anwendung weiter.
  • Obwohl der beispielhafte Datenfluss 200 zwei Nutzervorrichtungen zeigt, können in einigen Implementierungen viele Nutzervorrichtungen, z. B. in einer Viele-mit einer- oder in einer Viele-mit-vielen-Beziehung, miteinander verbunden sein. Zum Beispiel kann die erste Vorrichtung 210 mit fünf anderen Nutzervorrichtungen verbunden sein. Die passenden Anwendungen unter der ersten Vorrichtung 210 und den anderen Vorrichtungen können dieselbe oder verschiedene sein und der Sync-Dienst 216 kann App-Daten an keine oder alle von ihnen, einzeln oder gleichzeitig, senden, z. B. Pakete auf eine Round-Robin-Weise senden, bis alle Nutzervorrichtungen alle App-Daten empfangen haben.
  • Übertragung von Anwendungsdaten unter Verwendung einer Vermittlervorrichtung
  • Die Art und Weise, in der Anwendungsdaten unter Verwendung einer Vermittlervorrichtung, wie z. B. in 2B gezeigt ist, zwischen Nutzervorrichtungen übertragen werden, ist ähnlich der Art und Weise, in der Anwendungsdaten direkt zwischen Nutzervorrichtungen übertragen werden. In einigen Implementierungen kann eine Nutzervorrichtung als eine Vermittlervorrichtung wirken, wobei die Vermittlervorrichtung in diesem Fall ähnliche Operationen ausführen kann, wie sie von den oben anhand des beispielhaften Prozesses 200 beschriebenen Nutzervorrichtungen ausgeführt werden. Gleich, ob die Vermittlervorrichtung eine Nutzervorrichtung oder ein anderer Vorrichtungstyp ist, kann jedes Merkmal der Nutzervorrichtungen und der Sync-Dienste der Nutzervorrichtungen, die oben in verschiedenen Implementierungen mit Bezug auf den beispielhaften Prozess 200 beschrieben sind, ebenfalls Merkmale in verschiedenen Implementierungen der Vermittlervorrichtung und des Sync-Dienstes, die auf der Vermittlervorrichtung ausgeführt werden, sein.
  • Nachdem sich die Nutzervorrichtungen mit einer Vermittlervorrichtung verbunden haben, können Anwendungsdaten zwischen den Vorrichtungen übertragen werden. In dem beispielhaften Prozess 250 hat die erste Vorrichtung 210 eine drahtlose Verbindung 270 mit der Sync-Vorrichtung 260 aufgebaut. In einigen Implementierungen können Vorrichtungen, die mit einer Sync-Vorrichtung 266 verbunden sind, App-Daten für alle Anwendungen, die mit dem Sync-Dienst kompatibel sind, übertragen und kann der Sync-Dienst 266 auf der Sync-Vorrichtung 260 bestimmen, welche App-Daten in dem Anwendungsdatenspeicher 264 gespeichert werden und welche App-Daten verworfen werden. Zum Beispiel können App-Daten 232, die durch den Sync-Dienst 266 empfangen werden, verworfen werden, falls die Sync-Vorrichtung 260 App-Daten für dieselbe Anwendung besitzt, die wenigstens so aktuell sind wie die durch die erste Vorrichtung 210 bereitgestellten App-Daten 232.
  • In einigen Implementierungen können der erste Sync-Dienst 216 auf der ersten Vorrichtung 210 und der Sync-Dienst 266, der auf der Sync-Vorrichtung 260 ausgeführt wird, vor dem Übertragen irgendwelcher App-Daten 232 bestimmen, welche App-Daten 232 übertragen werden. Zum Beispiel kann der erste Dienst 216 veranlassen, dass die erste Vorrichtung 210 an den Sync-Dienst 266 eine Liste auf der ersten Vorrichtung 210 installierter durch Sync-unterstützter Anwendungen zusammen mit Informationen, die angeben, wie aktuell die Anwendungen sind, sendet. Daraufhin kann der Sync-Dienst 266 App-Daten nur für Anwendungen anfordern, für die die erste Vorrichtung 210 aktuellere App-Daten als die Sync-Vorrichtung 260 besitzt. In einigen Implementierungen kann der Sync-Dienst 226 veranlassen, dass die Sync-Vorrichtung 260 an den Sync-Dienst 216 auf der ersten Vorrichtung 210 eine Liste von Anwendungen sendet, für die die Sync-Vorrichtung 260 App-Daten mit Informationen besitzt, die angeben, wie aktuell die App-Daten sind. In dieser Situation kann der Sync-Dienst 216 auf der ersten Vorrichtung 210 die Liste verwenden, um zu bestimmen, welche auf der ersten Vorrichtung 210 installierten Anwendungen aktuellere App-Daten besitzen, und die App-Daten 232 nur für diese Anwendungen senden.
  • Nachdem der Sync-Dienst 266 auf der Sync-Vorrichtung 260 App-Daten 232 von dem ersten Sync-Dienst 216 empfangen hat, bestimmt er z. B. unter Verwendung einer in den App-Daten 232 enthaltenen Anwendungskennung, für welche Anwendung die App-Daten 232 bestimmt sind, und speichert er die App-Daten 232 für diese Anwendung in dem Anwendungsdatenspeicher 264. Der Sync-Dienst 260 kann auf Anweisung des Sync-Dienstes 266 App-Daten für irgendeine Anzahl durch den Sync-Dienst 266 unterstützter Anwendungen und von irgendeiner Anzahl von Nutzervorrichtungen empfangen und speichern. In einigen Implementierungen kann sich die Sync-Vorrichtung mit dem Netz 102 verbinden und App-Daten direkt von den Anwendungsservern empfangen. In dieser Situation ist es wahrscheinlicher, dass die Sync-Vorrichtung 260 verwendet wird, um App-Daten für Nutzervorrichtungen bereitzustellen, die App-Daten empfangen.
  • Wenn die Sync-Vorrichtung 260 Anforderungen für App-Daten 232 empfängt und solche für die zweite Vorrichtung 220 bereitstellt, tut sie dies auf ähnliche Weise, wie oben anhand des beispielhaften Prozesses 200 für die erste Vorrichtung 210 beschrieben wurde. Nachdem sich der Sync-Dienst 266, der auf der Sync-Vorrichtung 260 ausgeführt wird, z. B. über eine zweite drahtlose Verbindung 280, mit der zweiten Vorrichtung 220 verbunden hat, kann er von dem Sync-Dienst 266, der auf der zweiten Vorrichtung 220 ausgeführt wird, Daten empfangen, die die Apps 230 identifizieren, die auf der zweiten Vorrichtung 220 installiert sind und die durch den Sync-Dienst 226 unterstützt werden. Zum Beispiel kann der Sync-Dienst 226 eine Liste von Apps 230 senden, die die Anwendung X 222 und die Anwendung Y 224 enthalten.
  • Der Sync-Dienst 266 auf der Sync-Vorrichtung 260 bestimmt, ob irgendwelche der Apps 230 auf der Sync-Vorrichtung 260 gespeicherte App-Daten besitzen. In dem beispielhaften Datenfluss 250 enthält der Anwendungsdatenspeicher 264 auf der Sync-Vorrichtung App-Daten für die Anwendung X 262. Nachdem der Sync-Dienst 266, der auf der Sync-Vorrichtung 260 ausgeführt wird, die Anwendungen identifiziert hat, liest er von dem Anwendungsdatenspeicher 264 die App-Daten 232 aus und stellt er die App-Daten 232 für den Sync-Dienst 226 bereit, der auf der zweiten Vorrichtung 220 ausgeführt wird. Die App-Daten 232 können irgendwelche Daten für die Anwendung X 212 wie etwa Anwendungsinhalt oder eine Softwareaktualisierung sein.
  • In einigen Implementierungen können die App-Daten 232 nur bereitgestellt werden, falls die Anwendung, für die App-Daten auf der Sync-Vorrichtung 260 gespeichert sind, zu der Anwendung passt, die in der durch die zweite Vorrichtung 220 bereitgestellten Liste von Apps 230 enthalten ist. Die Art und Weise, in der ein Zusammenpassen bestimmt wird, kann variieren und ist oben anhand des beispielhaften Prozesses 200 ausführlich beschrieben.
  • In einigen Implementierungen können der Sync-Dienst 266, der auf der Sync-Vorrichtung 260 ausgeführt wird, und/oder die passenden Anwendungen auf der Grundlage von Informationen, die von der zweiten Vorrichtung 220 empfangen werden, bestimmen, welche App-Daten übertragen werden können. Zum Beispiel kann die Liste von Apps 230, die an den Sync-Dienst 266 gesendet werden, für jede Anwendung Informationen enthalten, die angeben, wie aktuell die Anwendung ist. In dieser Situation kann der Sync-Dienst 266 die Informationen z. B. verwenden, um Aktualisierungen für Inhalt bereitzustellen, der aktueller ist als der, als die entsprechende Anwendung das letzte Mal aktualisiert worden ist.
  • Obwohl der beispielhafte Datenfluss 250 die Übertragung von App-Daten 232 von einer auf der ersten Vorrichtung 210 installierten Anwendung an die Sync-Vorrichtung 260 und von dort zu einer passenden Anwendung auf der zweiten Vorrichtung 220 zeigt, können die drahtlosen Verbindungen 270 und 280 für Zweiwege-Anwendungsdatenanforderungen und Zweiwege-Anwendungsdatenübertragungen für beide Nutzervorrichtungen verwendet wenden, z. B., um App-Daten von der Sync-Vorrichtung 260 an die erste Vorrichtung 210 zu senden und/oder um App-Daten bei dem Sync-Dienst 266 auf der Sync-Vorrichtung 260 von der zweiten Vorrichtung 220 zu empfangen.
  • Wie bei dem beispielhaften Prozess 200 kann der Sync-Dienst in einigen Implementierungen die Übertragung von Daten für Anwendungen, die nicht zusammenpassen, unterstützen. Außerdem kann der Sync-Dienst 266 die Übertragung gesamter Anwendungen unterstützen. In einigen Implementierungen verhindert der Sync-Dienst, z. B. aus Sicherheitsgründen, dass lokale Anwendungsdaten zwischen Vorrichtungen übertragen werden. In einigen Implementierungen wird das Übertragen von App-Daten zwischen Vorrichtungen durch Nutzer der Nutzervorrichtungen wahlweise autorisiert. Zum Beispiel kann der Sync-Dienst, falls der Sync-Dienst bestimmt, dass die erste Vorrichtung 210 an den Sync-Dienst 260 zu sendende Aktualisierungen besitzt, den Nutzer vor dem Senden der App-Daten an die Sync-Vorrichtung 260 zur Bestätigung auffordern. Ähnlich kann der Sync-Dienst 226, der auf der zweiten Vorrichtung 220 ausgeführt wird, einen Nutzer der zweiten Vorrichtung 220, z. B. dadurch, dass er den Nutzer auffordert, App-Daten von der Sync-Vorrichtung 260 für eine bestimmte Anwendung anzunehmen, auffordern, die Übertragung von App-Daten anzunehmen.
  • In einigen Implementierungen wird die Datenübertragung, z. B. ohne Notwendigkeit einer Nutzerinteraktion, im Hintergrund behandelt. In einigen Implementierungen können Anwendungen und/oder Typen von App-Daten eine entsprechende Priorität besitzen. Anwendungen und App-Daten mit einer höheren Priorität können vor App-Daten mit einer niedrigeren Priorität übertragen werden. In Situationen, in denen mehrere Nutzervorrichtungen mit einer Sync-Vorrichtung verbunden sind, können Nutzervorrichtungen z. B. auf der Grundlage von Nutzerpräferenzen, der Anwendungspriorität, der Menge zu übertragender Daten usw. ebenfalls eine Priorität besitzen.
  • Beispielhafte Nutzerschnittstellen
  • 3A ist eine Darstellung einer beispielhaften Anwendungsschnittstelle 310 zum Übertragen von Anwendungsdaten zwischen Vorrichtungen. Die Schnittstelle kann auf einer Nutzervorrichtung wie etwa einem Mobiltelephon, einem Tablet Computer oder einem Personal Computer dargestellt werden. Die beispielhafte Schnittstelle 310 zeigt den Namen einer Anwendung 312, ”Anwendung XYZ”, sowie Anwendungsinhalt 314 und Nutzerschnittstellenelemente 316a, 316b und 316c zum Initiieren der Übertragung des Anwendungsinhalts 314 an andere Nutzervorrichtungen und/oder Sync-Vorrichtungen.
  • Die Anwendung kann z. B. eine Anwendung für die gemeinsame Nutzung von Bildern sein, die periodisch beliebte Bilder, z. B. den Inhalt 314, von einer Servervorrichtung empfängt. Die Nutzerschnittstellenelemente 316a–c ermöglichen, dass ein Nutzer der Vorrichtung einen oder mehrere Nutzer mit nahegelegenen Vorrichtungen oder mit einer Sync-Vorrichtung zum Übertragen des Inhalts 314 auswählt. Zum Beispiel kann das Auswählen des Elements 316a veranlassen, dass eine Nutzervorrichtung die Verbindungsverfügbarkeit rundsendet oder eine Verbindungsanforderung von einer dem Nutzer 123 zugeordneten Nutzvorrichtung annimmt, kann das Auswählen des Elements 316b veranlassen, dass die Nutzervorrichtung die Verbindungsverfügbarkeit an alle nahegelegenen Nutzer rundsendet und/oder irgendwelche Verbindungsanforderungen von den fünf nahegelegenen Nutzern annimmt, und kann das Auswählen des Elements 316c veranlassen, dass die Nutzervorrichtung die Verbindungsverfügbarkeit für die nächste Stunden, z. B. durch Rundsenden einer WLAN-SSID und/oder durch periodisches Rundsenden eines Audiosignals, das Bluetooth-Verbindungsinformationen enthält, rundsendet.
  • 3B ist eine Darstellung einer beispielhaften Synchronisationsdienstschnittstelle 320 zum Übertragen von Anwendungsdaten zwischen Vorrichtungen. Die Schnittstelle kann auf einer Nutzervorrichtung wie etwa einem Mobiltelephon, einem Tablet Computer oder einem Personal Computer dargestellt werden. Die beispielhafte Schnittstelle 320 zeigt den Namen einer Anwendung 322, ”Sync-Dienst”, eine Nachricht 324, Nutzervorrichtungsverbindungsinformationen 326 und Nutzerschnittstellenelemente 328 zum Initiieren der Übertragung von Anwendungsinhalt an die Nutzervorrichtung.
  • Zum Beispiel zeigt die Schnittstelle 320 Informationen, die eine Nutzervorrichtung in Ansprechen auf die Identifizierung einer rundsendenden Nutzervorrichtung oder Sync-Vorrichtung oder des Empfangens einer Verbindungsanforderung anzeigen kann. Der Sync-Dienst hat die Nachricht ”1 Sync-Dienst-Nutzer hat neuen Inhalt für Sie!” bereitgestellt. Diese informiert den Nutzer der Vorrichtung, dass neue App-Daten verfügbar sind. Die Nutzervorrichtungsverbindungsinformationen 326 enthalten Informationen, die einen anderen Sync-Dienst-Nutzer, den ”Nutzer ABC”, identifizieren, eine Kennung für die Nutzervorrichtung dieses Nutzers, ”Telephon der Marke X des Nutzers ABC”, und die Anwendung(en), für die die andere Nutzervorrichtung neuen Inhalt zu übertragen hat, die ”Anwendung XYZ”. Die Nutzerschnittstellenelemente 328 ermöglichen, dass der Nutzer der Nutzervorrichtung eine Verbindung zwischen Vorrichtungen annimmt oder zurückweist. Das Annehmen der Anforderung kann eine drahtlose Verbindung zwischen den Vorrichtungen initiieren, während das Zurückweisen der Anforderung veranlassen kann, dass die Nutzervorrichtung die Anforderung ignoriert.
  • Zusätzlich zu den in den beispielhaften Nutzerschnittstellen 310 und 320 gezeigten können andere Schnittstellen und andere Optionen und/oder Kombinationen von Optionen bereitgestellt werden.
  • Beispielhafte Anwendungsdatenübertragungsprozesse
  • 4 ist ein Ablaufplan eines beispielhaften Prozesses 400 zum Übertragen von Anwendungsdaten zwischen Vorrichtungen. Der Prozess 400 kann durch ein Datenverarbeitungsgerät wie etwa durch die oben anhand von 1 beschriebene Nutzervorrichtung ausgeführt werden.
  • Ein erster Dienst, der auf einer ersten Vorrichtung ausgeführt wird, veranlasst, dass die erste Vorrichtung eine drahtlose Verbindung mit einer zweiten Vorrichtung aufbaut (402). Zum Beispiel kann ein Sync-Dienst, der auf einer ersten Vorrichtung ausgeführt wird, veranlassen, dass die erste Vorrichtung eine WLAN- oder Bluetooth-Verbindung mit einer zweiten Vorrichtung aufbaut. In einigen Implementierungen veranlasst der erste Dienst, dass die erste Vorrichtung die Verfügbarkeit einer drahtlosen Verbindung rundsendet. Von der zweiten Vorrichtung kann eine Anforderung einer drahtlosen Verbindung empfangen werden und in Ansprechen auf den Empfang der Anforderung einer drahtlosen Verbindung kann die drahtlose Verbindung mit der zweiten Vorrichtung aufgebaut werden.
  • Zum Beispiel kann das Rundsenden der Verfügbarkeit einer drahtlosen Verbindung enthalten, dass veranlasst wird, dass ein Lautsprecher der ersten Vorrichtung ein Audio-Sample aussendet, das Daten der drahtlosen Verbindung spezifiziert. Die zweite Nutzervorrichtung kann das Audio-Sample über ein Mikrofon empfangen und in dem Audio-Sample codierte Informationen über die drahtlose Kommunikation interpretieren. In einigen Implementierungen enthalten die Daten der drahtlosen Verbindung: einen Service Set Identifier (SSID) für eine drahtlose Komponente der ersten Vorrichtung, ein Kennwort zum Verbinden mit der drahtlosen Komponente und Daten, die eine auf der ersten Vorrichtung installierte Anwendung identifizieren. In einigen Implementierungen enthalten die Daten der drahtlosen Verbindung eine Bluetooth-Kennung (z. B. eine IEEE-802.15.1-Kennung) für eine Bluetooth-Komponente der ersten Vorrichtung und Daten, die eine auf der ersten Vorrichtung installierte Anwendung identifizieren.
  • In einigen Implementierungen enthalten die Daten der drahtlosen Verbindung einen öffentlichen Schlüssel zum Verschlüsseln von Kommunikationen zwischen der ersten Vorrichtung und der zweiten Vorrichtung. Zum Beispiel kann dem Sync-Dienst ein Verschlüsselungsschlüsselpaar zugeordnet sein und kann der öffentliche Schlüssel für die zweite Vorrichtung mit den Daten der drahtlosen Verbindung bereitgestellt werden.
  • In einigen Implementierungen veranlasst der erste Dienst, dass die erste Vorrichtung in Ansprechen auf den Empfang einer ersten Gesteneingabe die Verfügbarkeit einer drahtlosen Verbindung rundsendet. Zum Beispiel kann die erste Vorrichtung einen oder mehrere physikalische Sensoren zum Erfassen einer physikalischen Bewegung der ersten Vorrichtung wie etwa Beschleunigungsmesser und/oder Gyroskope besitzen. In dieser Situation kann die Gesteneingabe eine physikalische Geste sein, die durch die physikalischen Sensoren interpretiert worden ist. Der Sync-Dienst kann prüfen, ob die physikalische Geste zu einer zuvor aufgezeichneten physikalischen Geste passt, und das Zusammenpassen verwenden, um zu bestimmen, dass die erste Vorrichtung die Verfügbarkeit einer drahtlosen Verbindung rundsenden sollte. Die von der zweiten Vorrichtung empfangene Anforderung einer drahtlosen Verbindung kann eine zweite Gesteneingabe enthalten. Zum Beispiel kann ein Sync-Dienst, der auf der zweiten Vorrichtung ausgeführt wird, Daten senden, die eine zweite physikalische Geste darstellen, die unter Verwendung von Beschleunigungsmessern und/oder Gyroskopen der zweiten Vorrichtung mit der Anforderung einer drahtlosen Verbindung aufgezeichnet wurde. In dieser Situation kann der erste Dienst veranlassen, dass die erste Vorrichtung nur in Ansprechen auf die Bestimmung, dass die zweite Gesteneingabe zu der ersten Geste passt, eine drahtlose Verbindung mit der zweiten Vorrichtung aufbaut. Zum Beispiel kann der Sync-Dienst versuchen, das Zusammenpassen der zwei Gesten auf der Grundlage der Daten, die die Gesten darstellen, innerhalb eines bestimmten Maßes an Sicherheit zu prüfen, was sicherstellt, dass eine Verbindung nur aufgebaut wird, falls der ”Handshake” von jeder Vorrichtung zusammenpasst.
  • In einigen Implementierungen besitzt die erste Vorrichtung einen oder mehrere Berührungssensoren zum Erfassen einer Tasteingabe auf einem berührungsempfindlichen Bildschirm wie etwa einem kapazitiven oder resistiven Bildschirm. Die erste Gesteneingabe kann ein Muster sein, das durch die Berührungssensoren interpretiert und/oder aufgezeichnet wird. Zum Beispiel kann ein Nutzer als eine erste Geste auf einem Berührungsbildschirm eine Form zeichnen oder eine PIN eingeben. Wie bei einer physikalischen Geste, die als ein ”Handshake” verwendet wird, kann der Sync-Dienst prüfen, ob die Geste zu einem im Voraus aufgezeichneten Muster passt, und das Zusammenpassen verwenden, um zu bestimmen, dass die erste Vorrichtung die Verfügbarkeit einer drahtlosen Verbindung rundsenden sollte. Die von der zweiten Vorrichtung empfangene Anforderung einer drahtlosen Verbindung kann eine zweite Gesteneingabe wie etwa Daten, die eine zweite Tasteingabe darstellen, die unter Verwendung eines Berührungsbildschirms der zweiten Vorrichtung aufgezeichnet worden ist, enthalten. In ähnlicher Weise wie oben kann der erste Dienst nur in Ansprechen auf die Bestimmung, dass die zweite Gesteneingabe zu der ersten Geste passt, veranlassen, dass die erste Vorrichtung eine drahtlose Verbindung mit der zweiten Vorrichtung aufbaut.
  • Während die Gesteneingabe oben in der Weise beschrieben ist, dass sie zum Initiieren einer drahtlosen Verbindung verwendet wird, kann sie in einigen Implementierungen zur Verifizierung oder Authentisierung verwendet werden, nachdem eine drahtlose Verbindung aufgebaut worden ist und bevor eine Datenübertragung initiiert wird.
  • Es werden Daten empfangen, die Anwendungen spezifizieren, die auf der zweiten Vorrichtung installiert sind und die durch einen zweiten Dienst, der auf der zweiten Vorrichtung ausgeführt wird, unterstützt werden (404). Zum Beispiel kann die zweite Vorrichtung eine einzelne Anwendung oder eine Liste von Anwendungen, die auf der Vorrichtung enthalten sind und durch den Sync-Dienst unterstützt werden, bereitstellen. Der zweite Dienst, der auf der zweiten Vorrichtung ausgeführt wird, kann veranlassen, dass die Daten, z. B. in Ansprechen auf den Empfang einer Verbindungsanforderung, in Ansprechen auf das Detektieren der Verfügbarkeit einer drahtlosen Verbindung der ersten Vorrichtung und/oder in Ansprechen auf den Empfang einer Nutzereingabe, die angibt, dass die Daten, die Anwendungen spezifizieren, gesendet werden sollten, an die erste Vorrichtung gesendet werden.
  • Der erste Dienst bestimmt, dass eine erste Anwendung, die auf der ersten Vorrichtung installiert ist, zu einer der Anwendungen, die auf der zweiten Vorrichtung installiert sind, passt (406). Die erste Anwendung ist von dem ersten Dienst getrennt. Zum Beispiel kann eine Anwendung, die durch den Sync-Dienst unterstützt wird, sowohl auf der ersten Vorrichtung als auch auf der zweiten Vorrichtung installiert sein. Der erste Dienst kann die Daten, die durch die zweite Vorrichtung bereitgestellt werden, verwenden, um zu bestimmen, dass auf beiden Vorrichtungen dieselbe Anwendung installiert ist.
  • Der erste Dienst empfängt Daten der ersten Anwendung für die erste Anwendung (408). Die Daten der ersten Anwendung können durch die erste Anwendung bereitgestellt werden. Zum Beispiel kann der erste Dienst Daten bereitstellen, die eine zu der ersten Anwendung auf der ersten Vorrichtung passende Anwendung identifizieren. Die erste Anwendung kann die Daten verwenden, um zu bestimmen, ob Anwendungsdaten an die zweite Vorrichtung gesendet werden sollten, wobei die erste Anwendung z. B. Daten der ersten Anwendung erzeugen kann, die Informationen enthalten, die die zusammenpassende Anwendung verwenden kann, um sich selbst zu aktualisieren, falls die Daten, die die zusammenpassende Anwendung identifizieren, spezifizieren, dass die Version der Anwendung auf der zweiten Vorrichtung veraltet sind. Nach der Bestimmung von Daten der ersten Anwendung, die an die zusammenpassende Anwendung gesendet werden sollen, kann die erste Anwendung diese Daten für den ersten Dienst bereitstellen, um sie an die zweite Vorrichtung zu übertragen.
  • In einigen Implementierungen werden die Daten der ersten Anwendung durch den ersten Dienst über einen ersten Kommunikations-Socket zwischen der ersten Anwendung und dem ersten Dienst empfangen und können die Daten der ersten Anwendung eine Kennung enthalten, die die erste Anwendung identifiziert. Zum Beispiel können die Daten der ersten Anwendung unter Verwendung eines Netz-Sockets von der ersten Anwendung an den Sync-Dienst übergeben werden. Die Daten der ersten Anwendung identifizieren die erste Anwendung z. B. in der Weise, dass der Sync-Dienst, der auf der zweiten Vorrichtung ausgeführt wird, bestimmen kann, an welche Anwendung die Daten weiterzuleiten sind.
  • Der erste Dienst veranlasst, dass die erste Vorrichtung die Daten der ersten Anwendung unter Verwendung der drahtlosen Verbindung an den zweiten Dienst sendet, der auf der zweiten Vorrichtung ausgeführt wird (410). Zum Beispiel kann der Sync-Dienst auf der ersten Vorrichtung veranlassen, dass die erste Vorrichtung Datenpakete, die die Daten der ersten Anwendung enthalten, über eine Bluetooth- oder WLAN-Verbindung an die zweite Vorrichtung sendet. In einigen Implementierungen kann ebenfalls eine verkabelte Verbindung verwendet werden, wobei z. B. die Daten der ersten Anwendung unter Verwendung eines USB-Kabels gesendet werden können. Wie im Folgenden anhand von 5 ausführlicher beschrieben wird, kann der zweite Dienst, der auf der zweiten Vorrichtung ausgeführt wird, die Anwendungsdaten empfangen und sie an die zusammenpassende Anwendung, die auf der zweiten Vorrichtung installiert ist, senden.
  • Obwohl der Prozess 400 als das Senden von Anwendungsdaten für eine einzelne Anwendung beschrieben ist, ist in einigen Implementierungen eine Datenübertragung zwischen mehreren Anwendungen möglich. Zum Beispiel kann der erste Dienst bestimmen, dass eine zweite Anwendung, die auf der ersten Vorrichtung installiert ist, zu einer zweiten Anwendung, die auf der zweiten Vorrichtung installiert ist, passt. Der erste Dienst kann Daten der zweiten Anwendung von der zweiten Anwendung empfangen und der erste Dienst kann veranlassen, dass die erste Vorrichtung die Daten der zweiten Anwendung unter Verwendung der drahtlosen Verbindung an die zweite Vorrichtung sendet. Wie oben angemerkt wurde, können Anwendungsdaten für mehrere Anwendungen und/oder für mehrere verbundene Vorrichtungen einzeln oder nahezu gleichzeitig, z. B. unter Verwendung einer Round-Robin-Datenübertragung, gesendet werden, um die Anwendungen, für die Daten übertragen werden, und/oder die Vorrichtungen, an die die Daten übertragen werden, turnusmäßig abzuwechseln.
  • 5 ist ein Ablaufplan eines beispielhaften Prozesses 500 zum Empfangen von Anwendungsdaten zwischen Vorrichtungen. Der Prozess 500 kann durch ein Datenverarbeitungsgerät wie etwa durch die oben anhand von 1 beschriebene Nutzervorrichtung ausgeführt werden.
  • Bei einer ersten Vorrichtung werden drahtlose Daten empfangen, die angeben, dass eine drahtlose Verbindung verfügbar ist, wobei die drahtlosen Daten eine Kennung für eine zweite Vorrichtung spezifizieren (502). Zum Beispiel kann die erste Vorrichtung ein durch die zweite Vorrichtung ausgesendetes WLAN- oder Bluetooth-Signal detektieren oder kann die erste Vorrichtung auf ein Audio-Sample hören, das angibt, dass die zweite Vorrichtung für die drahtlose Kommunikation verfügbar ist.
  • Ein erster Dienst, der auf der ersten Vorrichtung ausgeführt wird, veranlasst, dass die erste Vorrichtung eine drahtlose Verbindung mit der zweiten Vorrichtung aufbaut (504). Zum Beispiel kann der Sync-Dienst, der auf der ersten Vorrichtung ausgeführt wird, in Ansprechen auf die Bestimmung, dass die drahtlosen Daten Informationen enthalten, die spezifizieren, dass auf der ersten Vorrichtung ein Sync-Dienst ausgeführt wird, einen Netzcontroller der ersten Vorrichtung anweisen, mit der zweiten Vorrichtung zu verbinden oder eine Verbindungsanforderung von der zweiten Vorrichtung anzunehmen.
  • Von einem zweiten Dienst, der auf der zweiten Vorrichtung ausgeführt wird, werden Daten empfangen, wobei die Daten Anwendungen spezifizieren, die auf der zweiten Vorrichtung installiert sind und die durch den zweiten Dienst unterstützt werden (506). Zum Beispiel kann der zweite Dienst eine Kennung für eine Anwendung oder eine Liste von auf der zweiten Vorrichtung installierten Anwendungen bereitstellen. In einigen Implementierungen spezifizieren die Daten außerdem andere Informationen wie etwa eine Version der Anwendung oder einen Zeitstempel, der angibt, wie aktuell die Anwendung ist.
  • Der erste Dienst bestimmt, dass eine erste Anwendung, die auf der ersten Vorrichtung installiert ist, zu einer der Anwendungen, die auf der zweiten Vorrichtung installiert sind, passt (508). Die erste Anwendung ist von dem ersten Dienst getrennt. Zum Beispiel können die Anwendungen, die in einer Liste von Anwendungen identifiziert sind, die durch die zweite Vorrichtung gesendet wird, durch einen Sync-Dienst auf der ersten Vorrichtung mit Anwendungen verglichen werden, die auf der ersten Vorrichtung installiert sind. Die Kriterien, die verwendet werden, um zu bestimmen, ob Anwendungen zusammenpassen, können durch Anwendungsentwickler konfiguriert werden, wobei z. B. einige nur zusammenpassen können, wenn Versionsnummern der jeweiligen Anwendungen zusammenpassen oder innerhalb eines spezifizierten Bereichs liegen.
  • Der erste Dienst veranlasst, dass die erste Vorrichtung eine erste Anforderung für Daten der ersten Anwendung von einer passenden Anwendung, die zu der ersten Anwendung passt, an den zweiten Dienst sendet (510). Zum Beispiel kann die erste Anwendung, wenn für sie eine Angabe bereitgestellt wird, dass der Sync-Dienst mit einer Vorrichtung mit einer passenden Anwendung verbunden ist, den Sync-Dienst anweisen, Anwendungsdaten von der zweiten Vorrichtung anzufordern. Die an den zweiten Dienst gesendete Anforderung kann für eine oder für mehrere passende Anwendungen bestimmt sein und kann für spezifische Anwendungsdaten oder eine allgemeine Anforderung für Anwendungsdaten bestimmt sein.
  • Der erste Dienst empfängt von der zweiten Vorrichtung die Daten der ersten Anwendung für die erste Anwendung (512). Die Daten der ersten Anwendung können z. B. spezifische Daten, die durch die erste Anwendung angefordert werden, oder Anwendungsdaten, die die passende Anwendung auf der zweiten Vorrichtung zur Bereitstellung für die erste Anwendung ausgewählt hat, enthalten. Wie oben angemerkt wurde, können die Anwendungsdaten selbst für Anwendungsinhalt und/oder Aktualisierungen für die Anwendung selbst sein.
  • Die Daten der ersten Anwendung werden für die erste Anwendung bereitgestellt (514). Zum Beispiel kann der Sync-Dienst, der auf der ersten Vorrichtung ausgeführt wird, die erste Anwendung aus Daten, die in den Anwendungsdaten enthalten sind, wie etwa aus einer Kennung in dem Anfangsblock eines Netzpakets identifizieren und die Daten der ersten Anwendung unter Verwendung eines Netzkommunikations-Sockets an die identifizierte Anwendung weiterleiten.
  • In einigen Implementierungen kann eine einzelne Nutzervorrichtung einen Sync-Dienst ausführen, der in der Lage ist, die Funktionen der beiden oben beschriebenen Prozesse 400 und 500 auszuführen. Die Übertragung von Anwendungsdaten braucht keine Einwegübertragung zu sein und zwischen Vorrichtungen, die Sync-Dienste mit passenden Anwendungen ausführen, kann eine wechselweise gemeinsame Nutzung von Anwendungsdaten ausgeführt werden.
  • 6 ist ein Ablaufplan eines beispielhaften Prozesses 600 zur Übertragung von Anwendungsdaten unter Verwendung einer Vermittlervorrichtung. Der Prozess 600 kann durch ein Datenverarbeitungsgerät wie etwa die oben anhand von 1 beschriebene Sync-Vorrichtung ausgeführt werden.
  • In einigen Implementierungen veranlasst ein erster Dienst, der auf einer ersten Vorrichtung ausgeführt wird, dass der erste Dienst die Verfügbarkeit einer drahtlosen Verbindung rundsendet. Von einer zweiten Vorrichtung kann eine Anforderung einer drahtlosen Verbindung empfangen werden und der erste Dienst kann veranlassen, dass in Ansprechen auf den Empfang der Anforderung einer drahtlosen Verbindung eine drahtlose Verbindung mit der zweiten Vorrichtung aufgebaut wird.
  • Zum Beispiel kann das Rundsenden der Verfügbarkeit einer drahtlosen Verbindung enthalten, dass veranlasst wird, dass ein Lautsprecher der ersten Vorrichtung eine Audioprobe aussendet, die Daten der drahtlosen Verbindung spezifiziert. Die zweite Nutzervorrichtung kann die Audioprobe über ein Mikrofon empfangen und die in der Audioprobe codierten Informationen über die drahtlose Kommunikation interpretieren. In einigen Implementierungen enthalten die Daten der drahtlosen Verbindung: eine SSID für eine drahtlose Komponente der ersten Vorrichtung, ein Kennwort zum Verbinden mit der drahtlosen Komponente und Daten, die eine auf der ersten Vorrichtung installierte Anwendung identifizieren. In einigen Implementierungen enthalten die Daten der drahtlosen Verbindung eine Bluetooth-Kennung für eine Bluetooth-Komponente der ersten Vorrichtung und Daten, die eine auf der ersten Vorrichtung installierte Anwendung identifizieren.
  • In einigen Implementierungen enthalten die Daten der drahtlosen Verbindung einen öffentlichen Schlüssel zum Verschlüsseln von Kommunikationen zwischen der ersten Vorrichtung und der zweiten Vorrichtung. Zum Beispiel kann dem Sync-Dienst ein Verschlüsselungsschlüsselpaar zugeordnet sein und kann der öffentliche Schlüssel für die zweite Vorrichtung mit den Daten der drahtlosen Verbindung bereitgestellt werden.
  • In einigen Implementierungen enthält eine Anforderung einer drahtlosen Verbindung eine erste Gesteneingabe und veranlasst der erste Dienst, dass die erste Vorrichtung die Verfügbarkeit der drahtlosen Verbindung nur in Ansprechen auf die Bestimmung, dass die erste Gesteneingabe zu einer zuvor konfigurierten Geste passt, rundsendet. Zum Beispiel kann eine Nutzervorrichtung einen oder mehrere physikalische Sensoren zum Erfassen einer physikalischen Bewegung der ersten Vorrichtung wie etwa Beschleunigungsmesser und/oder Gyroskope besitzen. In dieser Situation kann die erste Gesteneingabe eine physikalische Geste sein, die durch die physikalischen Sensoren interpretiert worden ist. Der Sync-Dienst auf der Sync-Vorrichtung kann das Zusammenpassen der physikalischen Geste mit einer zuvor aufgezeichneten physikalischen Geste prüfen und das Zusammenpassen verwenden, um zu bestimmen, dass der Sync-Dienst die Verfügbarkeit der drahtlosen Verbindung rundsenden sollte.
  • Obwohl oben eine Gesteneingabe in der Weise beschrieben worden ist, dass sie zum Initiieren einer drahtlosen Verbindung verwendet wird, kann sie in einigen Implementierungen zur Verifizierung oder Authentisierung, nachdem eine drahtlose Verbindung aufgebaut worden ist und bevor die Datenübertragung initiiert wird, verwendet werden.
  • Ein erster Dienst, der auf einer ersten Vorrichtung ausgeführt wird, empfängt von einem zweiten Dienst, der auf einer zweiten Vorrichtung ausgeführt wird, Anwendungsdaten für jede Anwendung in einem ersten Satz von einer oder mehreren Anwendungen, die auf der zweiten Vorrichtung installiert sind und die durch den zweiten Dienst unterstützt werden (602). Jede Anwendung in dem ersten Satz ist von dem zweiten Dienst getrennt. Zum Beispiel kann ein Sync-Dienst, der auf der Sync-Vermittlervorrichtung ausgeführt wird, Anwendungsdaten für einen Satz von Anwendungen von einem Sync-Dienst, der auf einer Nutzervorrichtung ausgeführt wird, empfangen.
  • In einigen Implementierungen speichert die erste Vorrichtung Anwendungsdaten für mehrere Anwendungen, wobei wenigstens eine der Anwendungen von den in der ersten Menge von Anwendungen enthaltenen Anwendungen verschieden ist. Zum Beispiel kann eine Sync-Vermittlervorrichtung Anwendungsdaten für viele Anwendungen speichern, die z. B. durch mehrere Nutzervorrichtungen im Zeitverlauf bereitgestellt werden und/oder die von Drittanbieter-Anwendungsservern erhalten werden.
  • Der erste Dienst veranlasst für jede Anwendung in der ersten Menge, dass die erste Vorrichtung die Anwendungsdaten für die Anwendung speichert (604). In einigen Implementierungen speichert der erste Dienst nur Anwendungsdaten für eine Anwendung, falls die Sync-Vorrichtung nicht bereits aktualisierte Anwendungsdaten für diese Anwendung besitzt.
  • Der erste Dienst empfängt von einem dritten Dienst, der auf einer dritten Vorrichtung ausgeführt wird, eine Anforderung für Anwendungsdaten für jede Anwendung in einer zweiten Menge einer oder mehrerer Anwendungen, die auf der dritten Vorrichtung installiert sind (606). Jede Anwendung in der zweiten Menge ist von dem dritten Dienst getrennt. Zum Beispiel kann ein Sync-Dienst, der auf einer Nutzervorrichtung ausgeführt wird, Anwendungsdaten für eine Liste von Anwendungen, die auf der Nutzervorrichtung installiert sind, anfordern.
  • Der erste Dienst bestimmt, dass die erste Vorrichtung Anwendungsdaten für eine Teilmenge der einen oder mehreren Anwendungen in der zweiten Menge von Anwendungen speichert (608). Zum Beispiel kann ein Sync-Dienst auf einer Sync-Vorrichtung bestimmen, dass die Sync-Vorrichtung Anwendungsdaten für vier der fünf Anwendungen besitzt, falls eine Nutzervorrichtung Anwendungsdaten für fünf Anwendungen anfordert. In einigen Implementierungen enthält die Teilmenge der einen oder mehreren Anwendungen wenigstens eine der verschiedenen Anwendungen, für die die erste Vorrichtung Anwendungsdaten speichert, und wenigstens eine in der ersten Menge enthaltene Anwendung. Zum Beispiel kann die Sync-Vorrichtung App-Daten für i) eine Anwendung in der zweiten Menge, wobei die App-Daten nicht von der ersten Vorrichtung empfangen wurden, und ii) eine Anwendung in der zweiten Menge, wobei die App-Daten von der ersten Vorrichtung empfangen wurden, besitzen. Die App-Daten die nicht von der ersten Vorrichtung empfangen wurden, können z. B. von einer anderen Nutzervorrichtung oder von einem Anwendungsserver empfangen worden sein.
  • Der erste Dienst veranlasst, dass die erste Vorrichtung für wenigstens eine Anwendung in der Teilmenge für den dritten Dienst, der auf der dritten Vorrichtung ausgeführt wird, gespeicherte Anwendungsdaten bereitstellt (610). Zum Beispiel kann der Sync-Dienst Anwendungsdaten für alle vier Anwendungen, für die die Sync-Vorrichtung Anwendungsdaten besitzt, bereitstellen. In einigen Implementierungen steht die erste Vorrichtung gleichzeitig in Kommunikation mit der zweiten Vorrichtung und mit der dritten Vorrichtung. In einigen Implementierungen steht die erste Vorrichtung nicht in Kommunikation mit der zweiten Vorrichtung, wenn sie die gespeicherten Anwendungsdaten für die wenigstens eine Anwendung in der Teilmenge für den dritten Dienst, der auf der dritten Vorrichtung ausgeführt wird, bereitstellt. Zum Beispiel hat sich die Nutzervorrichtung, von der App-Daten empfangen wurden, in dieser Situation von der Sync-Vorrichtung getrennt, bevor sich die Sync-Vorrichtung mit der dritten Vorrichtung verbunden hat.
  • Obwohl die oben in Bezug auf 46 beschriebenen Prozesse 400, 500 und 600 in der Weise beschrieben sind, dass sie über drahtlose Kommunikation ausgeführt werden, können einige oder alle jeden Prozesses unter Verwendung einer verdrahteten Verbindung für Kommunikationen zwischen Vorrichtungen ausgeführt werden. In einigen Implementierungen enthält die in Bezug auf 6 beschriebene erste Vorrichtung eine Ladestation für Mobilvorrichtungen. Zum Beispiel kann die erste Vorrichtung ermöglichen, dass sich Nutzervorrichtungen mit der Vermittlervorrichtung, die den Sync-Dienst ausführt, über ein USB-Kabel verbinden. Die Vermittlervorrichtung können ebenfalls viele andere Vorrichtungstypen wie etwa ein drahtloses Audiosystem oder ein Netz-Router sein.
  • 7 ist ein Blockschaltplan eines beispielhaften Datenverarbeitungsgeräts 700. Das System 700 enthält einen Prozessor 710, einen Speicher 720, eine Datenspeichervorrichtung 730 und eine Eingabe/Ausgabe-Vorrichtung 740. Jede der Komponenten 710, 720, 730 und 740 kann z. B. unter Verwendung eines Systembusses 750 miteinander verbunden sein. Der Prozessor 710 ist in der Lage, Anweisungen zur Ausführung innerhalb des Systems 700 zu verarbeiten. In einer Implementierung ist der Prozessor 710 ein Single-Threaded-Prozessor. In einer anderen Implementierung ist der Prozessor 710 ein Multi-Threaded-Prozessor. Der Prozessor 710 ist in der Lage, Anweisungen zu verarbeiten, die in dem Speicher 720 oder auf der Datenspeichervorrichtung 730 gespeichert sind.
  • Der Speicher 720 speichert Informationen innerhalb des Systems 700. In einer Implementierung ist der Speicher 720 ein computerlesbares Medium. In einer Implementierung ist der Speicher 720 eine flüchtige Speichereinheit. In einer anderen Implementierung ist der Speicher 720 eine nichtflüchtige Speichereinheit.
  • Die Datenspeichervorrichtung 730 ist in der Lage, eine Massenspeicherung für das System 700 bereitzustellen. In einer Implementierung ist die Datenspeichervorrichtung 730 ein computerlesbares Medium. In verschiedenen anderen Implementierungen kann die Datenspeichervorrichtung 730 z. B. eine Festplattenvorrichtung, eine optische Plattenvorrichtung oder eine andere Datenspeichervorrichtung mit hoher Kapazität enthalten.
  • Die Eingabe/Ausgabe-Vorrichtung 740 stellt Eingabe/Ausgabe-Operationen für das System 700 bereit. In einer Implementierung kann die Eingabe/Ausgabe-Vorrichtung 740 eine oder mehrere Netzschnittstellenvorrichtungen, z. B. eine Ethernet-Karte, eine serielle Kommunikationsvorrichtung, z. B. einen RS-232-Anschluss, und/oder eine Drahtlosschnittstellenvorrichtung, z. B. eine 802.11-Karte, enthalten. In einer anderen Implementierung kann die Eingabe/Ausgabe-Vorrichtung Treibervorrichtungen enthalten, die dafür konfiguriert sind, Eingabedaten, z. B. von anderen Eingabe/Ausgabe-Vorrichtungen, z. B. von einer Tastatur, von einem Drucker, von Anzeigevorrichtungen 760, zu empfangen und Ausgabedaten an sie zu senden. Allerdings können andere Implementierungen wie etwa Mobilcomputervorrichtungen, Mobilkommunikationsvorrichtungen, Set-Top-Box-Fernsehnutzervorrichtungen usw. ebenfalls verwendet werden.
  • Ausführungsformen des Gegenstands und der Operationen, die in dieser Patentschrift beschrieben sind, können in einer digitalen elektronischen Schaltungsanordnung oder in Computersoftware, Computerfirmware oder Computerhardware einschließlich der Strukturen, die in dieser Patentschrift offenbart sind, und ihrer strukturellen Entsprechungen oder in Kombinationen einer oder mehrerer von ihnen implementiert werden. Ausführungsformen des in dieser Patentschrift beschriebenen Gegenstands können als ein oder mehrere Computerprogramme, d. h. als ein oder mehrere Module von Computerprogrammanweisungen, die in einem Computerdatenspeichermedium zur Ausführung z. B. durch ein Datenverarbeitungsgerät oder zum Steuern von dessen Betrieb codiert sind, implementiert werden.
  • Ein Computerdatenspeichermedium kann z. B. eine computerlesbare Datenspeichervorrichtung, ein computerlesbares Datenspeichersubstrat, eine Schreib-Lese-Speicheranordnung oder eine Speicheranordnung mit seriellem Zugriff oder eine Schreib-Lese-Speichervorrichtung oder eine Speichervorrichtung mit seriellem Zugriff oder eine Kombination eines oder mehrerer von ihnen sein oder darin enthalten sein. Obwohl ein Computerdatenspeichermedium kein ausgebreitetes Signal ist, kann ein Computerdatenspeichermedium darüber hinaus eine Quelle oder ein Ziel von Computerprogrammanweisungen sein, die in einem künstlich erzeugten ausgebreiteten Signal codiert sind. Das Computerdatenspeichermedium kann außerdem eine oder mehrere getrennte physikalische Komponenten oder Medien (z. B. mehrere CDs, Platten oder andere Datenspeichervorrichtungen) sein oder darin enthalten sein.
  • Die in dieser Patentschrift beschriebenen Operationen können als Operationen implementiert werden, die durch ein Datenverarbeitungsgerät an Daten, die auf einer oder auf mehreren computerlesbaren Datenspeichervorrichtungen gespeichert sind oder von anderen Quellen empfangen werden, ausgeführt werden.
  • Der Begriff ”Datenverarbeitungsvorrichtung” umfasst alle Arten von Geräten, Vorrichtungen und Maschinen zur Verarbeitung von Daten einschließlich beispielhaft eines programmierbaren Prozessors, eines Computers, eines Einchipsystems oder mehrerer der Vorstehenden oder Kombinationen davon. Das Gerät kann eine Speziallogikschaltungsanordnung, z. B. eine FPGA (frei programmierbare logische Anordnung) oder eine ASIC (anwendungsspezifische integrierte Schaltung), enthalten. Außerdem kann das Gerät zusätzlich zu Hardware Code, der eine Ausführungsumgebung für das fragliche Computerprogramm erzeugt, z. B. Code, der Prozessorfirmware, einen Protokollstapel, ein Datenbankmanagementsystem, ein Betriebssystem, eine plattformübergreifende Laufzeitumgebung, eine virtuelle Maschine oder eine Kombination eines oder mehrerer von ihnen bildet, enthalten. Das Gerät und die Ausführungsumgebung können verschiedene unterschiedliche Computermodellinfrastrukturen wie etwa Web-Dienste, verteiltes Berechnen und GRID-Computerinfrastrukturen verwirklichen.
  • Ein Computerprogramm (auch als ein Programm, als Software, als Softwareanwendung, als Skript oder als Code bekannt) kann in irgendeiner Form einer Programmiersprache einschließlich kompilierter oder interpretierter Sprachen, deklarativer oder prozeduraler Sprachen, geschrieben sein und kann in irgendeiner Form einschließlich als selbstständiges Programm oder als ein Modul, als eine Komponente, als ein Unterprogramm, als ein Objekt oder als eine andere Einheit, die zur Verwendung in einer Computerumgebung geeignet ist, eingesetzt werden. Ein Computerprogramm kann einer Datei in einem Dateisystem entsprechen, muss es aber nicht. Ein Programm kann in einem Abschnitt einer Datei, die andere Programme oder Daten (z. B. ein oder mehrere Skripte, die in einem Markup-Sprachen-Dokument gespeichert sind) hält, in einer einzelnen Datei, die für das fragliche Programm vorgesehen ist, oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Abschnitte von Code speichern) gespeichert sein. Ein Computerprogramm kann dafür eingesetzt werden, in einem Computer oder in mehreren Computern, die sich an einem Standort befinden oder die über mehrere Standorte verteilt sind und durch ein Kommunikationsnetz miteinander verbunden sind, ausgeführt zu werden.
  • Die Prozesse und Logikabläufe, die in dieser Patentschrift beschrieben sind, können durch einen oder mehrere programmierbare Prozessoren ausgeführt werden, die ein oder mehrere Computerprogramme ausführen, um durch Bearbeiten von Eingangsdaten und Erzeugen einer Ausgabe Aktionen auszuführen. Die Prozesse und Logikabläufe können ebenfalls durch eine Speziallogikschaltungsanordnung, z. B. durch eine FPGA (eine frei programmierbare logische Anordnung) oder durch eine ASIC (eine anwendungsspezifische integrierte Schaltung), ausgeführt werden und die Geräte können ebenfalls als solche implementiert sein.
  • Prozessoren, die für die Ausführung eines Computerprogramms geeignet sind, enthalten beispielsweise sowohl Mehrzweck- als auch Spezialmikroprozessoren und irgendeinen oder mehrere Prozessoren irgendeiner Art Digitalcomputer. Allgemein empfängt ein Prozessor Anweisungen und Daten von einem Nur-Lese-Speicher oder von einem Schreib-Lese-Speicher oder von beiden. Die wesentlichen Elemente eines Computers sind ein Prozessor zum Ausführen von Aktionen in Übereinstimmung mit Anweisungen und eine oder mehrere Speichervorrichtungen zum Speichern von Anweisungen und Daten. Allgemein enthält ein Computer ebenfalls Daten von einer oder mehreren Massendatenspeichervorrichtungen zum Speichern von Daten, z. B. magnetischen, magnetooptischen Platten oder optischen Platten, oder zum Übertragen von Daten an sie, oder ist er zum Empfangen von Daten von ihnen funktional gekoppelt. Allerdings braucht ein Computer solche Vorrichtungen nicht aufzuweisen. Darüber hinaus kann ein Computer in eine andere Vorrichtung, z. B. in ein Mobiltelephon, in einen Personal Digital Assistant (PDA), in einen mobilen Audio- oder Videoplayer, in eine Spielekonsole, in einen Empfänger des globalen Positionsbestimmungssystems (GPS) oder in eine tragbare Datenspeichervorrichtung (z. B. ein Universal-Serial-Bus-Flash-Laufwerk (USB-Flash-Laufwerk)), um nur einige zu nennen, eingebettet sein. Vorrichtungen, die zum Speichern von Computerprogrammanweisungen und Daten geeignet sind, enthalten alle Formen von nichtflüchtigem Speicher, Medien und Speichervorrichtungen einschließlich beispielhaft Halbleiterspeichervorrichtungen, z. B. EPROM, EEPROM und Flash-Speichervorrichtungen; Magnetplatten, z. B. interne Festplatten oder Wechselplatten; magnetooptische Platten; und CD-ROM- und DVD-ROM-Platten. Der Prozessor und der Speicher können durch eine Speziallogikschaltungsanordnung ergänzt oder in sie integriert sein.
  • Um eine Interaktion mit einem Nutzer bereitzustellen, können Ausführungsformen des in dieser Patentschrift beschriebenen Gegenstands in einem Computer mit einer Anzeigevorrichtung, z. B. mit einem CRT-Monitor (Katodenstrahlenröhrenmonitor) oder mit einem LCD-Monitor (Flüssig kristallanzeigemonitor) zum Anzeigen von Informationen für den Nutzer, und mit einer Tastatur und einer Zeigevorrichtung, z. B. einer Maus oder einem Trackball, durch die der Nutzer eine Eingabe für den Computer bereitstellen kann, implementiert werden. Um eine Interaktion mit einem Nutzer bereitzustellen, können ebenfalls andere Arten von Vorrichtungen verwendet werden; z. B. kann eine für den Nutzer bereitgestellte Rückkopplung irgendeine Form einer sensorischen Rückkopplung, z. B. eine visuelle Rückkopplung, eine hörbare Rückkopplung oder eine Tastrückkopplung, sein; und kann eine Eingabe von dem Nutzer in irgendeiner Form einschließlich einer akustischen Eingabe, einer Spracheingabe oder einer Tasteingabe empfangen werden. Außerdem kann ein Computer mit einem Nutzer dadurch interagieren, dass er an eine Vorrichtung, die durch den Nutzer verwendet wird, Dokumente sendet und Dokumente von ihr empfängt; z. B., indem er in Ansprechen auf Anforderungen, die von dem Webbrowser empfangen werden, Webseiten an einen Webbrowser auf einer Nutzervorrichtung des Nutzers sendet.
  • Ausführungen des in dieser Patentschrift beschriebenen Gegenstands können in einem Computersystem implementiert werden, das eine Backend-Komponente, z. B. als einen Datenserver, enthält oder das eine Middleware-Komponente, z. B. einen Anwendungsserver, enthält oder das eine Frontend-Komponente, z. B. einen Nutzercomputer mit einer graphischen Nutzerschnittstelle oder mit einem Webbrowser, über den ein Nutzer mit einer Implementierung des in dieser Patentschrift beschriebenen Gegenstands interagieren kann, enthält oder das irgendeine Kombination einer oder mehrerer solcher Backend-, Middleware- oder Frontend-Komponenten enthält. Die Komponenten des Systems können durch irgendeine Form oder durch irgendein Medium der digitalen Datenkommunikation, z. B. durch ein Kommunikationsnetz, miteinander verbunden sein. Beispiele für Kommunikationsnetze enthalten ein lokales Netz (”LAN”) und ein Weitverkehrsnetz (”WAN”), ein Inter-Netz (z. B. das Internet) und Peer-to-Peer-Netze (z. B. Ad-hoc-Peer-to-Peer-Netze).
  • Das Computersystem kann Nutzer und Server enthalten. Allgemein sind ein Nutzer und ein Server fern voneinander und üblicherweise interagieren sie über ein Kommunikationsnetz. Die Beziehung von Nutzer und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern ausgeführt werden und die eine Nutzer-Server-Beziehung zueinander besitzen. In einigen Ausführungsformen sendet ein Server Daten (z. B. eine HTML-Seite) an eine Nutzervorrichtung (z. B. zum Anzeigen von Daten für einen Nutzer, der mit der Nutzervorrichtung interagiert, und zum Empfangen einer Nutzereingabe von ihm). Daten, die mit der Nutzervorrichtung erzeugt werden (z. B. ein Ergebnis der Nutzerinteraktion) können von der Nutzervorrichtung bei dem Server empfangen werden.
  • Obwohl diese Patentschrift viele spezifische Implementierungseinzelheiten enthält, sind diese nicht als Beschränkungen des Schutzumfangs irgendwelcher Erfindungen oder des Beanspruchten, sondern vielmehr als Beschreibungen von Merkmalen, die spezifisch für bestimmte Ausführungsformen bestimmter Erfindungen sind, zu verstehen. Bestimmte Merkmale, die in dieser Patentschrift im Kontext getrennter Ausführungsformen beschrieben sind, können ebenfalls zusammen in einer einzelnen Ausführungsform implementiert werden. Umgekehrt können verschiedene Merkmale, die im Kontext einer einzelnen Ausführungsform beschrieben sind, ebenfalls in mehreren Ausführungsformen getrennt oder in irgendeiner geeigneten Teilkombination implementiert werden. Obwohl Merkmale oben in der Weise beschrieben sein können, dass sie in bestimmten Kombinationen wirken und anfangs sogar in der Weise beansprucht sind, können darüber hinaus ein oder mehrere Merkmale aus einer beanspruchten Kombination in einigen Fällen aus der Kombination ausgeschlossen werden und kann die beanspruchte Kombination auf eine Teilkombination oder auf Varianten einer Teilkombination gerichtet sein.
  • Obwohl Operationen in den Zeichnungen in einer bestimmten Reihenfolge gezeigt sind, ist dies ähnlich nicht so zu verstehen, dass es erfordert, dass diese Operationen in einer bestimmten gezeigten Reihenfolge oder in einer sequentiellen Ordnung ausgeführt werden oder dass alle dargestellten Operationen ausgeführt werden, um wünschenswerte Ergebnisse zu erzielen. In bestimmten Umständen können Multitasking und Parallelverarbeitung vorteilhaft sein. Darüber hinaus ist die Trennung verschiedener Systemkomponenten in den oben beschriebenen Ausführungsformen nicht so zu verstehen, dass eine solche Trennung in allen Ausführungsformen erforderlich ist, und können die beschriebenen Programmkomponenten und Systeme selbstverständlich allgemein in ein einzelnes Softwareprodukt integriert oder in mehrere Softwareprodukte gepackt sein.
  • Somit sind bestimmte Ausführungsformen des Gegenstands beschrieben worden. Andere Ausführungsformen liegen im Schutzumfang der folgenden Ansprüche. In einigen Fällen können die in den Ansprüchen dargestellten Aktionen in einer anderen Reihenfolge ausgeführt werden und weiterhin wünschenswerte Ergebnisse erzielen. Außerdem erfordern die in den beigefügten Figuren gezeigten Prozesse nicht notwendig die bestimmte gezeigte Reihenfolge oder sequentielle Ordnung, um wünschenswerte Ergebnisse zu erzielen. In bestimmten Implementierungen können Multitasking und Parallelverarbeitung vorteilhaft sein.

Claims (20)

  1. Computerimplementiertes Verfahren, das umfasst: Empfangen von Anwendungsdaten für jede Anwendung in einer ersten Menge einer oder mehrerer Anwendungen, die auf der zweiten Vorrichtung installiert sind und die durch den zweiten Dienst unterstützt werden, durch einen ersten Dienst, der auf einer ersten Vorrichtung ausgeführt wird, von einem zweiten Dienst, der auf einer zweiten Vorrichtung ausgeführt wird, wobei jede Anwendung in der ersten Menge von dem zweiten Dienst getrennt ist; Veranlassen, dass die erste Vorrichtung die Anwendungsdaten für die Anwendung speichert, durch den ersten Dienst und für jede Anwendung in der ersten Menge; Empfangen einer Anforderung für Anwendungsdaten für jede Anwendung in einer zweiten Menge einer oder mehrerer Anwendungen, die auf der dritten Vorrichtung installiert sind, durch den ersten Dienst und von einem dritten Dienst, der auf einer dritten Vorrichtung ausgeführt wird, wobei jede Anwendung in der zweiten Menge von dem dritten Dienst getrennt ist; Bestimmen, dass die erste Vorrichtung Anwendungsdaten für eine Teilmenge der einen oder mehreren Anwendungen in der zweiten Menge von Anwendungen speichert, durch den ersten Dienst; und Veranlassen, dass die erste Vorrichtung gespeicherte Anwendungsdaten für wenigstens eine Anwendung in der Teilmenge für den dritten Dienst, der auf der dritten Vorrichtung ausgeführt wird, bereitstellt, durch den ersten Dienst.
  2. Verfahren nach Anspruch 1, das ferner umfasst: Veranlassen, dass die erste Vorrichtung die Verfügbarkeit einer drahtlosen Verbindung rundsendet, durch den ersten Dienst; und Empfangen einer Anforderung einer drahtlosen Verbindung von der zweiten Vorrichtung; und Veranlassen, dass die erste Vorrichtung in Ansprechen auf den Empfang der Anforderung einer drahtlosen Verbindung von der zweiten Vorrichtung eine drahtlose Verbindung mit der zweiten Vorrichtung aufbaut, durch den ersten Dienst.
  3. Verfahren nach Anspruch 2, wobei das Veranlassen, dass die erste Vorrichtung die Verfügbarkeit einer drahtlosen Verbindung rundsendet, umfasst: Veranlassen, dass ein Lautsprecher der ersten Vorrichtung ein Audio-Sample, das Daten der drahtlosen Verbindung spezifiziert, aussendet.
  4. Verfahren nach Anspruch 3, wobei die Daten der drahtlosen Verbindung umfassen: einen Service Set Identifier (SSID) für eine drahtlose Komponente der ersten Vorrichtung; ein Kennwort zum Verbinden mit der drahtlosen Komponente; und Daten, die die wenigstens eine Anwendung in der Teilmenge identifizieren.
  5. Verfahren nach Anspruch 3, wobei die Daten der drahtlosen Verbindung umfassen: eine Bluetooth-Kennung (IEEE-802.15.1-Kennung) für eine Bluetooth-Komponente der ersten Vorrichtung; und Daten, die die wenigstens eine Anwendung in der Teilmenge identifizieren.
  6. Verfahren nach Anspruch 3, wobei die Daten der drahtlosen Verbindung einen öffentlichen Schlüssel zum Verschlüsseln von Kommunikationen zwischen der ersten Vorrichtung und der zweiten Vorrichtung umfassen.
  7. Verfahren nach Anspruch 2, wobei die Anforderung einer drahtlosen Verbindung eine erste Gesteneingabe enthält; und der erste Dienst nur in Ansprechen auf die Bestimmung, dass die erste Geste zu einer zuvor konfigurierten Geste passt, veranlasst, dass die erste Vorrichtung eine drahtlose Verbindung mit der zweiten Vorrichtung aufbaut.
  8. Verfahren nach Anspruch 1, wobei die erste Vorrichtung Anwendungsdaten für mehrere Anwendungen speichert, wobei wenigstens eine der mehreren Anwendungen von den in der ersten Menge von Anwendungen enthaltenen Anwendungen verschieden ist.
  9. Verfahren nach Anspruch 8, wobei die Teilmenge der einen oder mehreren Anwendungen wenigstens eine der verschiedenen Anwendungen, für die die erste Vorrichtung Anwendungsdaten speichert, und wenigstens eine in der ersten Menge enthaltene Anwendung enthält.
  10. Verfahren nach Anspruch 1, wobei die erste Vorrichtung gleichzeitig mit der zweiten Vorrichtung und mit der dritten Vorrichtung in Kommunikation steht.
  11. Verfahren nach Anspruch 1, wobei die erste Vorrichtung mit der zweiten Vorrichtung nicht in Kommunikation steht, wenn sie die gespeicherten Anwendungsdaten für die wenigstens eine Anwendung in der Teilmenge für den dritten Dienst, der auf der dritten Vorrichtung ausgeführt wird, bereitstellt.
  12. Verfahren nach Anspruch 1, wobei die erste Vorrichtung eine Ladestation für Mobilvorrichtungen umfasst.
  13. System, das umfasst: ein oder mehrere Datenverarbeitungsgeräte; und eine Datenspeichervorrichtung, die Anweisungen speichert, die, wenn sie durch das eine oder die mehreren Datenverarbeitungsgeräte ausgeführt werden, veranlassen, dass das eine oder die mehreren Datenverarbeitungsgeräte Operationen ausführen, die umfassen: Empfangen von Anwendungsdaten für jede Anwendung in einer ersten Menge einer oder mehrerer Anwendungen, die auf der zweiten Vorrichtung installiert sind und die durch den zweiten Dienst unterstützt werden, durch einen ersten Dienst, der auf einer ersten Vorrichtung ausgeführt wird, von einem zweiten Dienst, der auf einer zweiten Vorrichtung ausgeführt wird, wobei jede Anwendung in der ersten Menge von dem zweiten Dienst getrennt ist; Veranlassen, dass die erste Vorrichtung die Anwendungsdaten für die Anwendung speichert, durch den ersten Dienst und für jede Anwendung in der ersten Menge; Empfangen einer Anforderung für Anwendungsdaten für jede Anwendung in einer zweiten Menge einer oder mehrerer Anwendungen, die auf der dritten Vorrichtung installiert sind, durch den ersten Dienst und von einem dritten Dienst, der auf einer dritten Vorrichtung ausgeführt wird, wobei jede Anwendung in der zweiten Menge von dem dritten Dienst getrennt ist; Bestimmen, dass die erste Vorrichtung Anwendungsdaten für eine Teilmenge der einen oder mehreren Anwendungen in der zweiten Menge von Anwendungen speichert, durch den ersten Dienst; und Veranlassen, dass die erste Vorrichtung gespeicherte Anwendungsdaten für wenigstens eine Anwendung in der Teilmenge für den dritten Dienst, der auf der dritten Vorrichtung ausgeführt wird, bereitstellt, durch den ersten Dienst.
  14. System nach Anspruch 13, wobei die Operationen ferner umfassen: Veranlassen, dass die erste Vorrichtung die Verfügbarkeit einer drahtlosen Verbindung rundsendet, durch den ersten Dienst; und Empfangen einer Anforderung einer drahtlosen Verbindung von der zweiten Vorrichtung; und Veranlassen, dass die erste Vorrichtung in Ansprechen auf den Empfang der Anforderung einer drahtlosen Verbindung von der zweiten Vorrichtung eine drahtlose Verbindung mit der zweiten Vorrichtung aufbaut, durch den ersten Dienst.
  15. System nach Anspruch 14, wobei das Veranlassen, dass die erste Vorrichtung die Verfügbarkeit einer drahtlosen Verbindung rundsendet, umfasst: Veranlassen, dass ein Lautsprecher der ersten Vorrichtung ein Audio-Sample, das Daten der drahtlosen Verbindung spezifiziert, aussendet.
  16. System nach Anspruch 15, wobei die Daten der drahtlosen Verbindung umfassen: einen Service Set Identifier (SSID) für eine drahtlose Komponente der ersten Vorrichtung; ein Kennwort zum Verbinden mit der drahtlosen Komponente; und Daten, die die wenigstens eine Anwendung in der Teilmenge identifizieren.
  17. System nach Anspruch 15, wobei die Daten der drahtlosen Verbindung umfassen: eine Bluetooth-Kennung (IEEE-802.15.1-Kennung) für eine Bluetooth-Komponente der ersten Vorrichtung; und Daten, die die wenigstens eine Anwendung in der Teilmenge identifizieren.
  18. System nach Anspruch 13, wobei die erste Vorrichtung gleichzeitig mit der zweiten Vorrichtung und mit der dritten Vorrichtung in Kommunikation steht.
  19. System nach Anspruch 13, wobei die erste Vorrichtung mit der zweiten Vorrichtung nicht in Kommunikation steht, wenn sie die gespeicherten Anwendungsdaten für die wenigstens eine Anwendung in der Teilmenge für den dritten Dienst, der auf der dritten Vorrichtung ausgeführt wird, bereitstellt.
  20. Computerlesbares Medium, das Anweisungen speichert, die, wenn sie durch das eine oder die mehreren Datenverarbeitungsgeräte ausgeführt werden, veranlassen, dass das eine oder die mehreren Datenverarbeitungsgeräte Operationen ausführen, die umfassen: Empfangen von Anwendungsdaten für jede Anwendung in einer ersten Menge einer oder mehrerer Anwendungen, die auf der zweiten Vorrichtung installiert sind und die durch den zweiten Dienst unterstützt werden, durch einen ersten Dienst, der auf einer ersten Vorrichtung ausgeführt wird, von einem zweiten Dienst, der auf einer zweiten Vorrichtung ausgeführt wird, wobei jede Anwendung in der ersten Menge von dem zweiten Dienst getrennt ist; Veranlassen, dass die erste Vorrichtung die Anwendungsdaten für die Anwendung speichert, durch den ersten Dienst und für jede Anwendung in der ersten Menge; Empfangen einer Anforderung für Anwendungsdaten für jede Anwendung in einer zweiten Menge einer oder mehrerer Anwendungen, die auf der dritten Vorrichtung installiert sind, durch den ersten Dienst und von einem dritten Dienst, der auf einer dritten Vorrichtung ausgeführt wird, wobei jede Anwendung in der zweiten Menge von dem dritten Dienst getrennt ist; Bestimmen, dass die erste Vorrichtung Anwendungsdaten für eine Teilmenge der einen oder mehreren Anwendungen in der zweiten Menge von Anwendungen speichert, durch den ersten Dienst; und Veranlassen, dass die erste Vorrichtung gespeicherte Anwendungsdaten für wenigstens eine Anwendung in der Teilmenge für den dritten Dienst, der auf der dritten Vorrichtung ausgeführt wird, bereitstellt, durch den ersten Dienst.
DE112015004267.9T 2014-09-19 2015-09-18 Speicherung und Übertragung von Anwendungsdaten zwischen Vorrichtungen Withdrawn DE112015004267T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/491,448 2014-09-19
US14/491,448 US20160088064A1 (en) 2014-09-19 2014-09-19 Storing and transferring application data between devices
PCT/US2015/050863 WO2016044692A2 (en) 2014-09-19 2015-09-18 Storing and transferring application data between devices

Publications (1)

Publication Number Publication Date
DE112015004267T5 true DE112015004267T5 (de) 2017-06-14

Family

ID=55526903

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015004267.9T Withdrawn DE112015004267T5 (de) 2014-09-19 2015-09-18 Speicherung und Übertragung von Anwendungsdaten zwischen Vorrichtungen

Country Status (6)

Country Link
US (1) US20160088064A1 (de)
EP (1) EP3195137A4 (de)
CN (1) CN106688224A (de)
DE (1) DE112015004267T5 (de)
GB (1) GB2544903A (de)
WO (1) WO2016044692A2 (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10652243B2 (en) * 2014-09-04 2020-05-12 Lg Electronics Inc. Method and device for controlling device by using Bluetooth Low Energy (LE) technique
US9872174B2 (en) 2014-09-19 2018-01-16 Google Inc. Transferring application data between devices
KR102269387B1 (ko) * 2015-01-06 2021-06-25 삼성전자주식회사 상황별 정보 공유 지원 방법 및 이를 지원하는 전자 장치
US9992258B2 (en) * 2015-01-13 2018-06-05 Whatsapp Inc. Techniques for managing a remote web client from an application on a mobile device
US10235331B1 (en) 2015-06-18 2019-03-19 EMC IP Holding Company LLC Event-based synchronization in a file sharing environment
US10721298B1 (en) 2015-06-18 2020-07-21 EMC IP Holding Company LLC Learning client preferences to optimize event-based synchronization
US10992748B1 (en) * 2015-06-18 2021-04-27 EMC IP Holding Company LLC Verification of event-based synchronization
US10242024B1 (en) 2015-06-18 2019-03-26 EMC IP Holding Company LLC Dynamic reprioritization of content download during synchronization
US11180034B2 (en) 2015-12-04 2021-11-23 Cyberswitchingpatents, Llc Electric vehicle charging system with priority charging
US11104246B2 (en) * 2015-12-04 2021-08-31 Cyber Switching Solutions, Inc. Electric vehicle charging system interface
US10843581B2 (en) 2015-12-04 2020-11-24 Cyberswitchingpatents, Llc Electric vehicle charging method
US10850627B2 (en) 2015-12-04 2020-12-01 Cyberswitchingpatents, Llc Electric vehicle charging system
US10432461B2 (en) * 2015-12-04 2019-10-01 T-Mobile Usa, Inc. Peer-to-peer distribution of radio protocol data for software defined radio (SDR) updates
FR3060790A1 (fr) * 2016-12-16 2018-06-22 Orange Procede d'utilisation d'un poste de travail etendu, et systeme d'utilisation d'un poste de travail etendu associe
US10362482B2 (en) 2016-12-21 2019-07-23 T-Mobile Usa, Inc. Network operation and trusted execution environment
US10432614B2 (en) * 2017-05-16 2019-10-01 Apple Inc. Techniques for verifying user intent and securely configuring computing devices
US10661659B2 (en) 2017-06-21 2020-05-26 Cyberswitchingpatents, LLC. Integrated management of electric vehicle charging and non-electric vehicle fueling
US11310314B1 (en) * 2017-07-28 2022-04-19 Zero Cognitive Systems, Inc. Automatic data synchronization across applications installed on multiple devices via mail server
US11263399B2 (en) * 2017-07-31 2022-03-01 Apple Inc. Correcting input based on user context
CN109597552A (zh) * 2018-11-27 2019-04-09 维沃移动通信有限公司 一种设备管理方法及终端设备
US11283896B2 (en) * 2019-04-10 2022-03-22 Jpmorgan Chase Bank, N.A. Methods for implementing a framework for consumption of services for enterprise cloud platforms
CN110753001A (zh) * 2019-10-25 2020-02-04 珠海格力电器股份有限公司 数据的高效传输方法及装置、存储介质
CN113965581A (zh) * 2020-06-30 2022-01-21 华为技术有限公司 用于设备交互的方法、装置和介质
US11881902B2 (en) * 2021-01-08 2024-01-23 Schneider Electric Systems Usa, Inc. Acoustic node for configuring remote device
US12124893B2 (en) * 2022-07-04 2024-10-22 Omnissa, Llc Clipboard data redirection between virtual desktops
CN115665711A (zh) 2022-10-26 2023-01-31 昆山联滔电子有限公司 无线传输系统及方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7877518B2 (en) * 2000-11-30 2011-01-25 Access Systems Americas, Inc. Method and apparatus for updating applications on a mobile device via device synchronization
US7155521B2 (en) * 2001-10-09 2006-12-26 Nokia Corporation Starting a session in a synchronization system
KR100874773B1 (ko) * 2004-04-01 2008-12-19 노키아 코포레이션 복수의 디바이스들간의 데이터 동기화를 가능하게 하는방법, 디바이스 및 시스템
US7970017B2 (en) * 2005-07-13 2011-06-28 At&T Intellectual Property I, L.P. Peer-to-peer synchronization of data between devices
KR101430517B1 (ko) * 2008-01-31 2014-08-19 삼성전자주식회사 복수의 데이터 통신장치들 간의 데이터 동기 방법
US10031737B2 (en) * 2012-02-16 2018-07-24 Microsoft Technology Licensing, Llc Downloading and distribution of applications and updates to multiple devices
CN103687048A (zh) * 2012-08-30 2014-03-26 光宝电子(广州)有限公司 具有自动联机设定的无线装置、无线网络架构及连网方法
KR20140049365A (ko) * 2012-10-17 2014-04-25 삼성전자주식회사 전자 장치 및 그 제어 방법
US9746926B2 (en) * 2012-12-26 2017-08-29 Intel Corporation Techniques for gesture-based initiation of inter-device wireless connections
KR101463604B1 (ko) * 2013-04-24 2014-11-20 주식회사 오비고 전자제어장치의 업데이트를 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
US10229181B2 (en) * 2013-07-16 2019-03-12 Pankaj Sharma System and method for synchronizing data between communication devices in a networked environment without a central server

Also Published As

Publication number Publication date
GB2544903A (en) 2017-05-31
WO2016044692A3 (en) 2016-05-06
WO2016044692A2 (en) 2016-03-24
US20160088064A1 (en) 2016-03-24
GB201621538D0 (en) 2017-02-01
EP3195137A4 (de) 2018-05-16
CN106688224A (zh) 2017-05-17
EP3195137A2 (de) 2017-07-26

Similar Documents

Publication Publication Date Title
DE112015004267T5 (de) Speicherung und Übertragung von Anwendungsdaten zwischen Vorrichtungen
DE112015004270T5 (de) Übertragung von Anwendungsdaten zwischen Vorrichtungen
DE112013002674B4 (de) Bewerben, Ermitteln und Verwenden von Diensten durch virtuelle Zugriffspunkt-Schnittstellen
DE60104678T2 (de) Mechanismus und vorrichtung um dienst-ergebnissen einer verteilten rechnerumgebung zurückzuliefern
DE102017214757B4 (de) Techniken zum Bereitstellen von elektronischen Bootstrap-Teilnehmeridentitätsmodulen (eSIMs) an mobile Vorrichtungen
DE60102234T2 (de) Verfahren und vorrichtung zur ermittlung von benachbarten diensten
US8639810B2 (en) Access rights used for resource discovery in peer-to-peer networks
DE60317123T2 (de) Verfahren zur Sicherung von Kommunikation über ein Netzwerk
DE102016125808B4 (de) Peer-gestützte offline-Übermittlung von Benachrichtigungen
DE102015118413B4 (de) Multibetriebssystem-Eingabevorrichtung
DE112018007007T5 (de) Verteilte selbstsouveräne identitäten zur virtualisierung von netzwerkfunktionen
DE102015209241A1 (de) Effizientes secure instant messaging (secure instant messaging = sichere sofortige nachrichtenübermittlung)
DE102016213648A1 (de) Verbesserter Datenschutz für drahtlose Vorrichtungen
DE202023100535U1 (de) Systeme für Multi-Blockchain- und Multi-Token-Interoperabilität durch gemeinsame Blockchain-Integration
DE112016000291T5 (de) Sichere Datenverwaltungstechniken
DE112012002343T5 (de) System und Verfahren für den sicheren Austausch von Sofortnachrichten
JP6120650B2 (ja) コンテンツ管理装置、コンテンツ管理方法及びプログラム
CN103329503A (zh) Ad hoc文件共享
DE102015209754A1 (de) Dynamischer Bloom-Filterbetrieb für Dienstentdeckung
US9369874B2 (en) Controlling network access using a wrapper application executing on a mobile device
CN114979097B (zh) 基于mqtt的消息推送方法、装置及电子设备
JP2019215727A (ja) 会議装置、会議装置の制御方法、プログラム及び会議システム
DE102022109139A1 (de) Cloud-gesteuertes rollenmanagement für wlan
DE112017002726T5 (de) Kommunikationssicherheitssysteme und verfahren
DE102020113257A1 (de) Policy management system zur bereitstellung von autorisierungsinformationen über den distributed data store

Legal Events

Date Code Title Description
R012 Request for examination validly filed
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

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee