DE112015004270T5 - Übertragung von Anwendungsdaten zwischen Vorrichtungen - Google Patents

Übertragung von Anwendungsdaten zwischen Vorrichtungen Download PDF

Info

Publication number
DE112015004270T5
DE112015004270T5 DE112015004270.9T DE112015004270T DE112015004270T5 DE 112015004270 T5 DE112015004270 T5 DE 112015004270T5 DE 112015004270 T DE112015004270 T DE 112015004270T DE 112015004270 T5 DE112015004270 T5 DE 112015004270T5
Authority
DE
Germany
Prior art keywords
application
service
data
wireless connection
applications
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
DE112015004270.9T
Other languages
English (en)
Inventor
Erdi Chen
Jenny Chun-yi Chen
Maria-Ines Carrera
Estelle Laure Myriam Comment
Christopher John Adams
Lucas Gill Dixon
Vincent Wei-Kang Chen
Paul Lee
Gregory M. Hecht
Eric Chu
Peter Jin Hong
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 DE112015004270T5 publication Critical patent/DE112015004270T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/50Secure pairing of devices
    • 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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/65Environment-dependent, e.g. using captured environmental data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Es werden Verfahren, Systeme und Geräte zur Übertragung von Anwendungsdaten zwischen Vorrichtungen beschrieben. In einem Aspekt enthält ein Verfahren das Veranlassen, dass die erste Vorrichtung eine drahtlose Verbindung mit einer zweiten Vorrichtung aufbaut, durch einen ersten Dienst, der auf einer ersten Vorrichtung ausgeführt wird; das Empfangen von Daten, die Anwendungen spezifizieren, die auf der zweiten Vorrichtung installiert sind und die durch den zweiten Dienst unterstützt werden, von einem zweiten Dienst, der auf der zweiten Vorrichtung ausgeführt wird, wobei jede der Anwendungen von dem zweiten Dienst getrennt ist; das Bestimmen, dass eine erste Anwendung, die auf der ersten Vorrichtung installiert ist, zu einer der Anwendungen, die auf der zweiten Vorrichtung installiert sind, passt, durch den ersten Dienst, wobei die erste Anwendung von dem ersten Dienst getrennt ist; das Empfangen von Daten der ersten Anwendung von der ersten Anwendung durch den ersten Dienst; und das Veranlassen, dass die erste Vorrichtung die Daten der ersten Anwendung unter Verwendung der drahtlosen Verbindung an den zweiten Dienst, der auf der zweiten Vorrichtung ausgeführt wird, sendet, durch den ersten Dienst.

Description

  • HINTERGRUND
  • Diese Patentschrift bezieht sich auf das Ü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 folgenden Aktionen enthalten: Veranlassen, dass die erste Vorrichtung eine drahtlose Verbindung mit einer zweiten Vorrichtung aufbaut, durch einen ersten Dienst, der auf einer ersten Vorrichtung ausgeführt wird; Empfangen von Daten, die Anwendungen spezifizieren, die auf der zweiten Vorrichtung installiert sind und die durch den zweiten Dienst unterstützt werden, von einem zweiten Dienst, der auf der zweiten Vorrichtung ausgeführt wird, wobei jede der Anwendungen von dem zweiten Dienst getrennt ist; Bestimmen, dass eine erste Anwendung, die auf der ersten Vorrichtung installiert ist, zu einer der Anwendungen, die auf der zweiten Vorrichtung installiert sind, passt, durch den ersten Dienst, wobei die erste Anwendung von dem ersten Dienst getrennt ist; Empfangen von Daten der ersten Anwendung von der ersten Anwendung durch den ersten Dienst; und Veranlassen, dass die erste Vorrichtung die Daten der ersten Anwendung unter Verwendung der drahtlosen Verbindung an den zweiten Dienst, der auf der zweiten Vorrichtung ausgeführt wird, sendet, durch den ersten Dienst. Andere Ausführungsformen dieses Aspekts enthalten entsprechende Systeme, Geräte und Computerprogramme, die dafür konfiguriert sind, die Aktionen der Verfahren auszuführen, die auf Computerdatenspeichervorrichtungen codiert sind.
  • Diese und andere Ausführungsformen können optional ein oder mehrere der folgenden Merkmale enthalten. Ein Verfahren kann enthalten: Bestimmen, dass eine zweite Anwendung, die auf der ersten Vorrichtung installiert ist, zu einer zweiten der einen oder mehreren Anwendungen, die auf der zweiten Vorrichtung installiert sind, passt, durch den ersten Dienst, wobei die zweite Anwendung von der ersten Anwendung verschieden ist; Empfangen zweiter Anwendungsdaten von der zweiten Anwendung durch den ersten Dienst; und Veranlassen, dass die erste Vorrichtung die Daten der zweiten Anwendung unter Verwendung der drahtlosen Verbindung an die zweite Vorrichtung sendet, durch den ersten Dienst.
  • Das Verfahren kann 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 wobei die erste Vorrichtung veranlasst, 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.
  • 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 erste Anwendung 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 erste Anwendung identifizieren.
  • Die Daten der drahtlosen Verbindung können einen öffentlichen Schlüssel zum Verschlüsseln von Kommunikationen zwischen der ersten Vorrichtung und der zweiten Vorrichtung umfassen.
  • Die Daten der ersten Anwendung können über einen ersten Kommunikations-Socket zwischen der ersten Anwendung und dem ersten Dienst durch den ersten Dienst empfangen werden; wobei die Daten der ersten Anwendung eine Kennung enthalten, die die erste Anwendung identifiziert.
  • Der erste Dienst kann veranlassen, dass die erste Vorrichtung in Ansprechen auf den Empfang einer ersten Gesteneingabe die Verfügbarkeit einer drahtlosen Verbindung rundsendet; die Anforderung einer drahtlosen Verbindung kann eine zweite Gesteneingabe enthalten; und der erste Dienst kann veranlassen, dass die erste Vorrichtung nur in Ansprechen auf die Bestimmung, dass die zweite Geste zu der ersten Geste passt, eine drahtlose Verbindung mit der zweiten Vorrichtung aufbaut.
  • Die erste Vorrichtung kann einen oder mehrere physikalische Sensoren zum Erfassen einer physikalischen Bewegung der ersten Vorrichtung enthalten; und die erste Geste kann eine physikalische Geste sein, die durch den einen oder die mehreren physikalischen Sensoren interpretiert wird.
  • Die erste Vorrichtung kann einen oder mehrere Berührungssensoren zum Erfassen einer Tasteingabe auf einem berührungsempfindlichen Bildschirm enthalten; und die erste Geste kann ein Muster sein, das durch den einen oder die mehreren Berührungssensoren interpretiert wird.
  • Allgemein kann ein anderer Aspekt des in dieser Patentschrift beschriebenen Gegenstands in Verfahren verkörpert sein, die die die folgenden Aktionen enthalten: Empfangen drahtloser Daten, die angeben, dass eine drahtlose Verbindung verfügbar ist, bei einer ersten Vorrichtung, wobei die drahtlosen Daten eine Kennung für eine zweite Vorrichtung spezifizieren; Veranlassen, dass die erste Vorrichtung eine drahtlose Verbindung mit der zweiten Vorrichtung aufbaut, durch einen ersten Dienst, der auf der ersten Vorrichtung ausgeführt wird; Empfangen von Daten, die Anwendungen spezifizieren, die auf der zweiten Vorrichtung installiert sind und die durch den zweiten Dienst unterstützt werden, von einem zweiten Dienst, der auf der zweiten Vorrichtung ausgeführt wird, wobei jede der Anwendungen von dem zweiten Dienst getrennt ist; Bestimmen, dass eine erste Anwendung, die auf der ersten Vorrichtung installiert ist, zu einer der Anwendungen, die auf der zweiten Vorrichtung installiert sind, passt, durch den ersten Dienst, wobei die erste Anwendung von dem ersten Dienst getrennt ist; Veranlassen, 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, durch den ersten Dienst; Empfangen der Daten der ersten Anwendung für die erste Anwendung durch den ersten Dienst und von dem zweiten Dienst; und Bereitstellen der Daten der ersten Anwendung für die erste Anwendung. Andere Ausführungsformen dieses Aspekts enthalten entsprechende Systeme, Geräte und Computerprogramme, die dafür konfiguriert sind, die Aktionen der Verfahren auszuführen, die auf Computerdatenspeichervorrichtungen codiert sind.
  • 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 lokalen Netz oder zu einem Weitverkehrsnetz. Nutzervorrichtungen, die nicht mit einem Drittanbieter-Anwendungsserver kommunizieren können, können Anwendungsdaten von einer anderen Nutzervorrichtung erhalten. Nutzervorrichtungen können in der Lage sein, miteinander schneller und/oder auf zuverlässigere und/oder sicherere 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
  • 1 ist ein Blockschaltplan einer beispielhaften Umgebung, in der Anwendungsdaten zwischen Vorrichtungen übertragen werden.
  • 2 ist ein Datenfluss eines beispielhaften Prozesses zum Übertragen von Anwendungsdaten zwischen Vorrichtungen.
  • 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 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.
  • 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.
  • 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. 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 steht die Nutzervorrichtung 1 104 in Kommunikation mit der Nutzervorrichtung 2 110, mit der Nutzervorrichtung 3 120 und mit der Nutzervorrichtung N 130.
  • Jede Nutzervorrichtung ist eine elektronische Vorrichtung, die, z. B. über das Netz 102 oder zwischen Nutzervorrichtungen, 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 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.
  • Beispielhafte Anwendungsdatenübertragung
  • 2 ist ein Datenfluss eines beispielhaften Prozesses 200 zum Übertragen von Anwendungsdaten zwischen Vorrichtungen. 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.
  • Verbinden von Vorrichtungen
  • 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 sein können. 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.
  • 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.
  • Übertragung von Anwendungsdaten 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.
  • 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.
  • 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 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 Nutzervorrichtung 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 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.
  • Obwohl die oben anhand von 4 und 5 beschriebenen Prozesse 400 und 500 in der Weise beschrieben sind, dass sie über drahtlose Kommunikation ausgeführt werden, können einige oder alle Prozesse unter Verwendung einer verdrahteten Verbindung für Kommunikationen zwischen Vorrichtungen ausgeführt werden. Außerdem kann eine einzelne Nutzervorrichtung einen Sync-Dienst ausführen, der die Funktion der beiden oben beschriebenen Prozesse 400 und 500 ausführen kann. Somit braucht die Übertragung von Anwendungsdaten nicht einseitig gerichtet zu sein und kann zwischen Vorrichtungen, auf denen Sync-Dienste mit zusammenpassenden Anwendungen ausgeführt werden, eine wechselweise gemeinsame Nutzung von Anwendungsdaten ausgeführt werden.
  • 6 ist ein Blockschaltplan eines beispielhaften Datenverarbeitungsgeräts 600. Das System 600 enthält einen Prozessor 610, einen Speicher 620, eine Datenspeichervorrichtung 630 und eine Eingabe/Ausgabe-Vorrichtung 640. Jede der Komponenten 610, 620, 630 und 640 kann z. B. unter Verwendung eines Systembusses 650 miteinander verbunden sein. Der Prozessor 610 ist in der Lage, Anweisungen zur Ausführung innerhalb des Systems 600 zu verarbeiten. In einer Implementierung ist der Prozessor 610 ein Single-Threaded-Prozessor. In einer anderen Implementierung ist der Prozessor 610 ein Multi-Threaded-Prozessor. Der Prozessor 610 ist in der Lage, Anweisungen zu verarbeiten, die in dem Speicher 620 oder auf der Datenspeichervorrichtung 630 gespeichert sind.
  • Der Speicher 620 speichert Informationen innerhalb des Systems 600. In einer Implementierung ist der Speicher 620 ein computerlesbares Medium. In einer Implementierung ist der Speicher 620 eine flüchtige Speichereinheit. In einer anderen Implementierung ist der Speicher 620 eine nichtflüchtige Speichereinheit.
  • Die Datenspeichervorrichtung 630 ist in der Lage, eine Massenspeicherung für das System 600 bereitzustellen. In einer Implementierung ist die Datenspeichervorrichtung 630 ein computerlesbares Medium. In verschiedenen anderen Implementierungen kann die Datenspeichervorrichtung 630 z. B. eine Festplattenvorrichtung, eine optische Plattenvorrichtung oder eine andere Datenspeichervorrichtung mit hoher Kapazität enthalten.
  • Die Eingabe/Ausgabe-Vorrichtung 640 stellt Eingabe/Ausgabe-Operationen für das System 600 bereit. In einer Implementierung kann die Eingabe/Ausgabe-Vorrichtung 640 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 660, 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üssigkristallanzeigemonitor) 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: Veranlassen, dass die erste Vorrichtung eine drahtlose Verbindung mit einer zweiten Vorrichtung aufbaut, durch einen ersten Dienst, der auf einer ersten Vorrichtung ausgeführt wird; Empfangen von Daten, die Anwendungen spezifizieren, die auf der zweiten Vorrichtung installiert sind und die durch den zweiten Dienst unterstützt werden, von einem zweiten Dienst, der auf der zweiten Vorrichtung ausgeführt wird, wobei jede der Anwendungen von dem zweiten Dienst getrennt ist; Bestimmen, dass eine erste Anwendung, die auf der ersten Vorrichtung installiert ist, zu einer der Anwendungen, die auf der zweiten Vorrichtung installiert sind, passt, durch den ersten Dienst, wobei die erste Anwendung von dem ersten Dienst getrennt ist; Empfangen von Daten der ersten Anwendung von der ersten Anwendung durch den ersten Dienst; und Veranlassen, dass die erste Vorrichtung die Daten der ersten Anwendung unter Verwendung der drahtlosen Verbindung an den zweiten Dienst, der auf der zweiten Vorrichtung ausgeführt wird, sendet, durch den ersten Dienst.
  2. Verfahren nach Anspruch 1, das ferner umfasst: Bestimmen, dass eine zweite Anwendung, die auf der ersten Vorrichtung installiert ist, zu einer zweiten der einen oder mehreren Anwendungen, die auf der zweiten Vorrichtung installiert sind, passt, durch den ersten Dienst, wobei die zweite Anwendung von der ersten Anwendung verschieden ist; Empfangen zweiter Anwendungsdaten von der zweiten Anwendung durch den ersten Dienst; und Veranlassen, dass die erste Vorrichtung die Daten der zweiten Anwendung unter Verwendung der drahtlosen Verbindung an die zweite Vorrichtung sendet, durch den ersten Dienst.
  3. 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 wobei die erste Vorrichtung veranlasst, 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.
  4. Verfahren nach Anspruch 3, 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.
  5. Verfahren nach Anspruch 4, 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 erste Anwendung identifizieren.
  6. Verfahren nach Anspruch 4, 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 erste Anwendung identifizieren.
  7. Verfahren nach Anspruch 4, wobei die Daten der drahtlosen Verbindung einen öffentlichen Schlüssel zum Verschlüsseln von Kommunikationen zwischen der ersten Vorrichtung und der zweiten Vorrichtung umfassen.
  8. Verfahren nach Anspruch 1, wobei: die Daten der ersten Anwendung über einen ersten Kommunikations-Socket zwischen der ersten Anwendung und dem ersten Dienst durch den ersten Dienst empfangen werden; und die Daten der ersten Anwendung eine Kennung enthalten, die die erste Anwendung identifiziert.
  9. Verfahren nach Anspruch 3, wobei der erste Dienst veranlasst, dass die erste Vorrichtung in Ansprechen auf den Empfang einer ersten Gesteneingabe die Verfügbarkeit einer drahtlosen Verbindung rundsendet; die Anforderung einer drahtlosen Verbindung eine zweite Gesteneingabe enthält; und der erste Dienst veranlasst, dass die erste Vorrichtung nur in Ansprechen auf die Bestimmung, dass die zweite Geste zu der ersten Geste passt, eine drahtlose Verbindung mit der zweiten Vorrichtung aufbaut.
  10. Verfahren nach Anspruch 9, wobei: die erste Vorrichtung einen oder mehrere physikalische Sensoren zum Erfassen einer physikalischen Bewegung der ersten Vorrichtung enthält; und die erste Geste eine physikalische Geste ist, die durch den einen oder die mehreren physikalischen Sensoren interpretiert wird.
  11. Verfahren nach Anspruch 9, wobei: die erste Vorrichtung einen oder mehrere Berührungssensoren zum Erfassen einer Tasteingabe auf einem berührungsempfindlichen Bildschirm enthält; und die erste Geste ein Muster ist, das durch den einen oder die mehreren Berührungssensoren interpretiert wird.
  12. Computerimplementiertes Verfahren, das umfasst: Empfangen drahtloser Daten, die angeben, dass eine drahtlose Verbindung verfügbar ist, bei einer ersten Vorrichtung, wobei die drahtlosen Daten eine Kennung für eine zweite Vorrichtung spezifizieren; Veranlassen, dass die erste Vorrichtung eine drahtlose Verbindung mit der zweiten Vorrichtung aufbaut, durch einen ersten Dienst, der auf der ersten Vorrichtung ausgeführt wird; Empfangen von Daten, die Anwendungen spezifizieren, die auf der zweiten Vorrichtung installiert sind und die durch den zweiten Dienst unterstützt werden, von einem zweiten Dienst, der auf der zweiten Vorrichtung ausgeführt wird, wobei jede der Anwendungen von dem zweiten Dienst getrennt ist; Bestimmen, dass eine erste Anwendung, die auf der ersten Vorrichtung installiert ist, zu einer der Anwendungen, die auf der zweiten Vorrichtung installiert sind, passt, durch den ersten Dienst, wobei die erste Anwendung von dem ersten Dienst getrennt ist; Veranlassen, 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, durch den ersten Dienst; Empfangen der Daten der ersten Anwendung für die erste Anwendung durch den ersten Dienst und von dem zweiten Dienst; und Bereitstellen der Daten der ersten Anwendung für die erste Anwendung.
  13. System, das umfasst: eine 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: Veranlassen, dass die erste Vorrichtung eine drahtlose Verbindung mit einer zweiten Vorrichtung aufbaut, durch einen ersten Dienst, der auf einer ersten Vorrichtung ausgeführt wird; Empfangen von Daten, die Anwendungen spezifizieren, die auf der zweiten Vorrichtung installiert sind und durch den zweiten Dienst unterstützt werden, von einem zweiten Dienst, der auf der zweiten Vorrichtung ausgeführt wird, wobei jede der Anwendungen von dem zweiten Dienst getrennt ist; Bestimmen, dass eine erste Anwendung, die auf der ersten Vorrichtung installiert ist, zu einer der Anwendungen, die auf der zweiten Vorrichtung installiert sind, passt, durch den ersten Dienst, wobei die erste Anwendung von dem ersten Dienst getrennt ist; Empfangen von Daten der ersten Anwendung von der ersten Anwendung durch den ersten Dienst; und Veranlassen, dass die erste Vorrichtung die Daten der ersten Anwendung unter Verwendung der drahtlosen Verbindung an den zweiten Dienst, der auf der zweiten Vorrichtung ausgeführt wird, sendet, durch den ersten Dienst.
  14. System nach Anspruch 13, wobei die Operationen ferner umfassen: Bestimmen, dass eine zweite Anwendung, die auf der ersten Vorrichtung installiert ist, zu einer zweiten der einen oder mehreren Anwendungen, die auf der zweiten Vorrichtung installiert sind, passt, durch den ersten Dienst, wobei die zweite Anwendung von der ersten Anwendung verschieden ist; Empfangen zweiter Anwendungsdaten von der zweiten Anwendung durch den ersten Dienst; und Veranlassen, dass die erste Vorrichtung die Daten der zweiten Anwendung unter Verwendung der drahtlosen Verbindung an die zweite Vorrichtung sendet, durch den ersten Dienst.
  15. 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 wobei der erste Dienst veranlasst, 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.
  16. System nach Anspruch 15, 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 aussendet, das Daten der drahtlosen Verbindung spezifiziert.
  17. System nach Anspruch 16, 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 erste Anwendung identifizieren.
  18. System nach Anspruch 16, 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 erste Anwendung identifizieren.
  19. System nach Anspruch 16, wobei die Daten einer drahtlosen Verbindung einen öffentlichen Schlüssel zum Verschlüsseln von Kommunikationen zwischen der ersten Vorrichtung und der zweiten Vorrichtung umfassen.
  20. Computerlesbares Speichermedium, das Anweisungen speichert, die, wenn sie durch ein oder mehrere Datenverarbeitungsgeräte ausgeführt werden, veranlassen, dass das eine oder die mehreren Datenverarbeitungsgeräte Operationen ausführen, die umfassen: Veranlassen, dass die erste Vorrichtung eine drahtlose Verbindung mit einer zweiten Vorrichtung aufbaut, durch einen ersten Dienst, der auf einer ersten Vorrichtung ausgeführt wird; Empfangen von Daten, die Anwendungen spezifizieren, die auf der zweiten Vorrichtung installiert sind und die durch den zweiten Dienst unterstützt werden, von einem zweiten Dienst, der auf der zweiten Vorrichtung ausgeführt wird, wobei jede der Anwendungen von dem zweiten Dienst getrennt ist; Bestimmen, dass eine erste Anwendung, die auf der ersten Vorrichtung installiert ist, zu einer der Anwendungen, die auf der zweiten Vorrichtung installiert sind, passt, durch den ersten Dienst, wobei die erste Anwendung von dem ersten Dienst getrennt ist; Empfangen von Daten der ersten Anwendung von der ersten Anwendung durch den ersten Dienst; und Veranlassen, dass die erste Vorrichtung die Daten der ersten Anwendung unter Verwendung der drahtlosen Verbindung an den zweiten Dienst, der auf der zweiten Vorrichtung ausgeführt wird, sendet, durch den ersten Dienst.
DE112015004270.9T 2014-09-19 2015-09-17 Übertragung von Anwendungsdaten zwischen Vorrichtungen Withdrawn DE112015004270T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/491,368 US9872174B2 (en) 2014-09-19 2014-09-19 Transferring application data between devices
US14/491,368 2014-09-19
PCT/US2015/050624 WO2016044551A2 (en) 2014-09-19 2015-09-17 Transferring application data between devices

Publications (1)

Publication Number Publication Date
DE112015004270T5 true DE112015004270T5 (de) 2017-06-29

Family

ID=55527057

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015004270.9T Withdrawn DE112015004270T5 (de) 2014-09-19 2015-09-17 Übertragung von Anwendungsdaten zwischen Vorrichtungen

Country Status (4)

Country Link
US (5) US9872174B2 (de)
EP (2) EP3195634B1 (de)
DE (1) DE112015004270T5 (de)
WO (1) WO2016044551A2 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021161104A1 (en) 2020-02-12 2021-08-19 Monday.Com Enhanced display features in collaborative network systems, methods, and devices
US11410129B2 (en) 2010-05-01 2022-08-09 Monday.com Ltd. Digital processing systems and methods for two-way syncing with third party applications in collaborative work systems
JP6371402B2 (ja) * 2014-02-12 2018-08-08 ノキア テクノロジーズ オサケユイチア 装置のファームウェアを更新するための方法および装置
US20160286398A1 (en) * 2015-03-23 2016-09-29 Qualcomm Incorporated Schedule selection and connection setup between devices participating in a nan data link
WO2017044910A1 (en) 2015-09-10 2017-03-16 I'm In It, Llc Methods, devices, and systems for determining a subset for autonomous sharing of digital media
CN107623625A (zh) * 2016-07-14 2018-01-23 忻宏德 具有隐藏内容的通信系统及其通信方法
US10817066B2 (en) * 2016-12-05 2020-10-27 Google Llc Information privacy in virtual reality
US10205768B2 (en) * 2017-01-25 2019-02-12 International Business Machines Corporation Facility for initiating automatic exchange of file(s) between mobile devices
EP3396994B1 (de) * 2017-04-27 2020-12-02 ABB Schweiz AG Herstellen einer lokalen verbindung
US11436359B2 (en) 2018-07-04 2022-09-06 Monday.com Ltd. System and method for managing permissions of users for a single data type column-oriented data structure
US11698890B2 (en) 2018-07-04 2023-07-11 Monday.com Ltd. System and method for generating a column-oriented data structure repository for columns of single data types
US11108862B2 (en) 2019-10-14 2021-08-31 Journey Mobile, Inc. Bi-directional data sync between a client device and an application server
US11526661B2 (en) 2019-11-18 2022-12-13 Monday.com Ltd. Digital processing systems and methods for integrated communications module in tables of collaborative work systems
EP4062313A1 (de) 2019-11-18 2022-09-28 Monday.com Ltd. Kollaborative netzwerksysteme, verfahren und vorrichtungen
KR20210119174A (ko) 2020-03-24 2021-10-05 삼성전자주식회사 전자 장치 및 이의 제어 방법
US11501255B2 (en) 2020-05-01 2022-11-15 Monday.com Ltd. Digital processing systems and methods for virtual file-based electronic white board in collaborative work systems
US11829953B1 (en) 2020-05-01 2023-11-28 Monday.com Ltd. Digital processing systems and methods for managing sprints using linked electronic boards
US11277361B2 (en) 2020-05-03 2022-03-15 Monday.com Ltd. Digital processing systems and methods for variable hang-time for social layer messages in collaborative work systems
CN114327924A (zh) * 2020-09-30 2022-04-12 华为终端有限公司 一种终端设备交互方法及装置
US11782582B2 (en) 2021-01-14 2023-10-10 Monday.com Ltd. Digital processing systems and methods for detectable codes in presentation enabling targeted feedback in collaborative work systems
CN116074942A (zh) * 2021-10-29 2023-05-05 北京小米移动软件有限公司 应用同步方法、装置、电子设备及存储介质
US11741071B1 (en) 2022-12-28 2023-08-29 Monday.com Ltd. Digital processing systems and methods for navigating and viewing displayed content
US11886683B1 (en) 2022-12-30 2024-01-30 Monday.com Ltd Digital processing systems and methods for presenting board graphics
US11893381B1 (en) 2023-02-21 2024-02-06 Monday.com Ltd Digital processing systems and methods for reducing file bundle sizes

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6671757B1 (en) 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US7653744B2 (en) 2000-06-12 2010-01-26 At&T Mobility Ii Llc Method and apparatus for sharing wireless content
US7194557B1 (en) 2004-11-08 2007-03-20 Palmsource, Inc. Data exchange between a handheld device and another computer system using an exchange manager via synchronization
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
US6981062B2 (en) 2001-04-20 2005-12-27 Sbc Technology Resources, Inc. World wide web content synchronization between wireless devices
US20030055927A1 (en) 2001-06-06 2003-03-20 Claudius Fischer Framework for a device and a computer system needing synchronization
US7155521B2 (en) 2001-10-09 2006-12-26 Nokia Corporation Starting a session in a synchronization system
US7962575B2 (en) 2003-11-03 2011-06-14 Grape Technology Group, Inc. System and method for data synchronization between devices
US7970017B2 (en) 2005-07-13 2011-06-28 At&T Intellectual Property I, L.P. Peer-to-peer synchronization of data between devices
GB0600348D0 (en) 2006-01-10 2006-02-15 Ibm Updating of data processing and communication devices
JP4864094B2 (ja) * 2006-02-06 2012-01-25 パナソニック株式会社 通信制御システム
US7656849B1 (en) * 2006-05-31 2010-02-02 Qurio Holdings, Inc. System and method for bypassing an access point in a local area network for P2P data transfers
US8631088B2 (en) 2007-01-07 2014-01-14 Apple Inc. Prioritized data synchronization with host device
US8396466B2 (en) 2007-06-28 2013-03-12 Alcatel Lucent Content synchronization between electronic devices
US9843351B2 (en) * 2007-07-26 2017-12-12 Nokia Technologies Oy Gesture activated close-proximity communication
US7970350B2 (en) * 2007-10-31 2011-06-28 Motorola Mobility, Inc. Devices and methods for content sharing
KR101430517B1 (ko) 2008-01-31 2014-08-19 삼성전자주식회사 복수의 데이터 통신장치들 간의 데이터 동기 방법
JP4613969B2 (ja) 2008-03-03 2011-01-19 ソニー株式会社 通信装置、及び通信方法
JP4506856B2 (ja) * 2008-03-10 2010-07-21 ソニー株式会社 通信装置、及び通信方法
US20110106954A1 (en) 2008-09-26 2011-05-05 Manjirnath Chatterjee System and method for inductively pairing devices to share data or resources
US8756532B2 (en) 2010-01-21 2014-06-17 Cisco Technology, Inc. Using a gesture to transfer an object across multiple multi-touch devices
US20110288932A1 (en) * 2010-05-21 2011-11-24 Inedible Software, LLC, a Wyoming Limited Liability Company Apparatuses, systems and methods for determining installed software applications on a computing device
US8725682B2 (en) * 2010-09-08 2014-05-13 Daniel J Young Distribution and synchronization of digital objects
KR20130035603A (ko) 2011-09-30 2013-04-09 삼성전자주식회사 적어도 하나의 어플리케이션 데이터를 동기화하기 위한 장치 및 방법
US10031737B2 (en) 2012-02-16 2018-07-24 Microsoft Technology Licensing, Llc Downloading and distribution of applications and updates to multiple devices
US20130282564A1 (en) * 2012-04-21 2013-10-24 Research In Motion Limited System and method for transmitting application data between two communication devices
US9125004B2 (en) 2012-05-31 2015-09-01 Cellco Partnership Group sharing using near field communication (NFC)
US9147057B2 (en) * 2012-06-28 2015-09-29 Intel Corporation Techniques for device connections using touch gestures
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 주식회사 오비고 전자제어장치의 업데이트를 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
US9853719B2 (en) * 2013-06-09 2017-12-26 Apple Inc. Discovery of nearby devices for file transfer and other communications
US9280704B2 (en) * 2013-06-12 2016-03-08 The Code Corporation Communicating wireless pairing information for pairing an electronic device to a host system
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
US11356429B2 (en) * 2013-07-23 2022-06-07 Blancco Technology Group IP Oy Systems and methods for device data transfer
US9226119B2 (en) * 2013-11-20 2015-12-29 Qualcomm Incorporated Using sensor data to provide information for proximally-relevant group communications
US9215005B2 (en) * 2013-11-26 2015-12-15 Cisco Technology, Inc. Social cloud application-mediated mobile data hotspot sharing
GB2522022A (en) * 2014-01-09 2015-07-15 Nokia Technologies Oy Service Data Provision
CN104883343A (zh) * 2014-02-28 2015-09-02 致伸科技股份有限公司 网络联机分享方法、系统及其事务机器
US9918213B2 (en) * 2014-05-07 2018-03-13 DewMobile Inc. Discovery and networking of proximate wireless devices by acoustic messaging
US20160088064A1 (en) 2014-09-19 2016-03-24 Google Inc. Storing and transferring application data between devices

Also Published As

Publication number Publication date
EP3195634A4 (de) 2018-08-15
EP4149088A2 (de) 2023-03-15
US20180176772A1 (en) 2018-06-21
US20200288311A1 (en) 2020-09-10
WO2016044551A3 (en) 2016-05-12
US10667129B2 (en) 2020-05-26
US20160088480A1 (en) 2016-03-24
US20190174309A1 (en) 2019-06-06
US20230319552A1 (en) 2023-10-05
US9872174B2 (en) 2018-01-16
US10200859B2 (en) 2019-02-05
EP3195634B1 (de) 2022-11-02
US11528602B2 (en) 2022-12-13
EP4149088A3 (de) 2023-06-07
EP3195634A2 (de) 2017-07-26
WO2016044551A2 (en) 2016-03-24

Similar Documents

Publication Publication Date Title
DE112015004270T5 (de) Übertragung von Anwendungsdaten zwischen Vorrichtungen
DE112015004267T5 (de) Speicherung und Übertragung von Anwendungsdaten zwischen Vorrichtungen
DE102017108589B4 (de) Computer-implementiertes Verfahren und System zum Erleichtern einer Aufstellung, einer Aufdeckung von Fähigkeiten und Interaktion von elektronischen Geräten
US8639810B2 (en) Access rights used for resource discovery in peer-to-peer networks
DE112014002697B4 (de) Kommunikation zwischen Host und Zubehörvorrichtungen unter Verwendung von Zubehörprotokollen über drahtlosen Transport
DE112013002674B4 (de) Bewerben, Ermitteln und Verwenden von Diensten durch virtuelle Zugriffspunkt-Schnittstellen
DE102016125808B4 (de) Peer-gestützte offline-Übermittlung von Benachrichtigungen
DE102015118413B4 (de) Multibetriebssystem-Eingabevorrichtung
DE112016000291T5 (de) Sichere Datenverwaltungstechniken
DE202013012485U1 (de) System für Browseridentität
JP6120650B2 (ja) コンテンツ管理装置、コンテンツ管理方法及びプログラム
DE202015009968U1 (de) Anwendungsübergreifende delegierte Authentifizierung
DE112015004813T5 (de) Systeme und verfahren zur gemeinsamen nutzung von medien und dateninhalt über mehrere geräte durch lokale nähe
US20170279720A1 (en) Real-Time Logs
DE102016102434A1 (de) Selektives Bereitstellen von Inhalten an innerhalb einer virtuellen Umfangslinie befindlicher Benutzer
DE112017007393T5 (de) System und verfahren für netzwerkvorrichtungssicherheits- und vertrauenswertbestimmung
US9369874B2 (en) Controlling network access using a wrapper application executing on a mobile device
DE102016124991A1 (de) Drahtlose benutzerschnittstellenprojektion für fahrzeuge
DE112016000587T5 (de) Interoperabilität von entdeckungs- und verbindungsprotokollen zwischen clientvorrichtungen und ersten bildschirmvorrichtungen
DE112015003955T5 (de) Örtlichkeitsspezifische Wi-Fi-Verbindungsfähigkeitsbenachrichtigungen
US20190386839A1 (en) Device, method, and system for managed updating of meeting handout data
DE102013009494A1 (de) System und Verfahren, um es einer Hostvorrichtung zu ermöglichen, sich sicher mit einer Peripherievorrichtung zu verbinden
DE102019204521A1 (de) Kontextabhängiges Routing von Mediendaten
DE102020113257A1 (de) Policy management system zur bereitstellung von autorisierungsinformationen über den distributed data store
DE102018105495B4 (de) Verfahren und System zum Ermitteln einer Konfiguration einer Schnittstelle

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: PROCK, THOMAS, DR., GB

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

R082 Change of representative

Representative=s name: PROCK, THOMAS, DR., GB

R120 Application withdrawn or ip right abandoned