-
HINTERGRUND
-
Benutzer können Inhalte wie zum Beispiel Mediendateien und Dokumente mithilfe von verschiedenen Geräten erstellen oder erlangen. Gelegentlich kann ein Benutzer den Wunsch haben, Inhalte von einem Gerät auf ein anderes zu übertragen, hochzuladen, sie damit zu synchronisieren oder auf andere Art und Weise zu versenden. Die Inhalte können mit anderen Geräten der Benutzer in einem Netzwerk geteilt werden, damit sie bei Bedarf zum Abruf oder zur Bearbeitung bereitstehen. Zum Beispiel kann ein Benutzer sich entscheiden, ein neues Mobiltelefon mit fortschrittlicheren Funktionen zu kaufen (z. B. Fotobearbeitung, weiter entwickelte Netzwerkeinstellungen usw.) und den Wunsch haben, die Fotos von dem alten Mobiltelefon auf das neue zu übertragen. In einem anderen Beispiel kann ein Benutzer den Wunsch haben, die Videolinks auf seinem Mobiltelefon mit den Videolinks auf seinem Desktop-Computer zu synchronisieren, um die Videos zum Beispiel auf einem größeren Bildschirm anzusehen.
-
Geräte und Kommunikationsnetzwerke ermöglichen das Sammeln und den Austausch von Informationen. Solche Geräte können PCs einschließlich der damit verbundenen Peripheriegeräte, Taschencomputer/PDAs, tragbare Computer und/oder ähnliche Geräte umfassen, mit denen eine Vielzahl von Inhalten wie zum Beispiel Dateien, Patches, Grafiken und/oder ähnliches gesammelt, synchronisiert, übertragen oder ausgetauscht werden können. Zum Beispiel können die Dateien große Mengen von Inhalten wie Videos, Fotos, Musik und Dokumente enthalten. Solche Inhalte können auf einem Gerät erstellt oder heruntergeladen und dann auf den anderen Geräten repliziert werden.
-
Synchronisierungssysteme ermöglichen es verschiedenen Geräten oder Vorrichtungen, Inhalte von einem Gerät oder Synchronisierungsserver und/oder externen Partnern über Netzwerkverbindungen zu versenden, beispielsweise über das Internet. Die Synchronisierung kann durch das Auslösen der Synchronisierung der Inhalte auf Anforderung eines Benutzers, in periodischen Abständen oder in Echtzeit erfolgen. Zum Beispiel kann das Synchronisierungsereignis einer ausdrücklichen Anweisung oder einem Befehl des Benutzers zur Synchronisierung von Informationen im Zusammenhang mit den vorliegenden Inhalten entsprechen (z. B. „meine zuletzt gelesene Seite aufzeichnen”).
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
In der folgenden detaillierten Beschreibung und mit Bezug auf die Zeichnungen werden Beispiele beschrieben, wobei:
-
1 ein Beispielsystem nach einer Ausführungsform darstellt;
-
2 einen Objektsender eines Beispielsystems nach einer Ausführungsform darstellt;
-
3 ein Ablaufdiagramm für einen Beispielprozess nach einer anderen Ausführungsform darstellt; und
-
4 ein Ablaufdiagramm für einen Beispielprozess nach einer Ausführungsform darstellt.
-
DETAILLIERTE BESCHREIBUNG
-
Verschiedene Aspekte der vorliegenden Offenbarung beziehen sich allgemein auf die Synchronisierung von Inhalten. Genauer beziehen sich verschiedene Aspekte der vorliegenden Offenbarung allgemein auf eine Art und Weise, auf die Inhalte über verschiedene Geräte hinweg synchronisiert werden. Dieser Ansatz ermöglicht die Synchronisierung von Inhalten über ein Inhaltssynchronisierungssystem, in dem alle verbundenen Geräte oder Vorrichtungen wie zum Beispiel ein Personal Computer (PC), tragbares Gerät, PDA (Personal Digital Assistant), Tablet, Smartphone, wissenschaftliches Instrument, Kassengerät oder ähnliches eine kontextuelle Synchronisierung über eine große Bandbreite von Kommunikationsnetztopologien hinweg ausführen, einschließlich drahtgebundener und drahtloser Verbindungen.
-
Aspekte der hierin beschriebenen Offenbarung prognostizieren, dass Gruppen von Daten von einer Maschine zu einer anderen übertragen werden. Außerdem priorisieren andere Aspekte der vorliegenden Offenbarung die Daten in jeder Übertragung ausgehend von der Benutzeraktivität und den Systeminformationen an jedem Gerät. Darüber hinaus identifizieren andere Aspekte Benutzeraktionen, die anzeigen, dass der Benutzer sofortigen Zugriff auf die Daten auf einem bestimmten Gerät benötigt und synchronisieren neue oder geänderte Daten, die auf anderen Geräten zur Verfügung stehen, entsprechend auf dieses Gerät, um sie rechtzeitig verfügbar zu machen, wenn der Benutzer sie benötigt.
-
Unter anderem kann dieser Ansatz eine effiziente und wirkungsvolle Möglichkeit darstellen, um Daten zu synchronisieren und zu verhindern, dass Benutzerdaten nicht verfügbar sind, wenn sie benötigt werden, und um zusätzlich das Entladen der Batterien und die Verschwendung von Ressourcen zu verhindern. Dieser Ansatz kann auch die Notwendigkeit einer manuellen Auslösung durch den Benutzer überflüssig machen, bei der der Benutzer manuell synchronisieren muss, während eine gute Benutzererfahrung aufrecht erhalten wird.
-
In einem Beispiel nach der vorliegenden Offenbarung wird ein Verfahren für die Synchronisierung von Daten bereitgestellt. Das Verfahren umfasst die Überwachung eines Satzes von Attributen auf einer Vielzahl von Geräten in einem Netzwerk, wobei eine Gruppe von Daten ausgehend von dem überwachten Satz von Attributen für die Synchronisierung ausgewählt wird, wobei allen ausgewählten Daten und jedem Gerät Prioritätsstufen zugewiesen werden und die Synchronisierungsvorgänge, die an der Gruppe von ausgewählten Daten ausgeführt werden sollen, basierend auf deren Prioritätsstufen priorisiert werden, und die Gruppe der ausgewählten Daten entsprechend der Priorisierung der Synchronisierung synchronisiert wird.
-
In einem anderen Beispiel nach der vorliegenden Offenbarung wird ein System bereitgestellt. Das System umfasst ein Überwachungsmodul zur Überwachung eines Satzes von Attributen auf einer Vielzahl von Geräten in einem Netzwerk, ein Hochrechnungsmodul zur Auswahl einer Gruppe von Daten basierend auf dem überwachten Satz von Attributen für die Synchronisierung und die Zuweisung von Prioritätsstufen zu den ausgewählten Daten und jedem Gerät, und einen Datenmanager zum Priorisieren von auszuführenden Synchronisierungsvorgängen für die Gruppe ausgewählter Daten ausgehend von den Prioritätsstufen. Der Datenmanager synchronisiert außerdem die Gruppe ausgewählter Daten entsprechend der Priorisierung der Synchronisierung.
-
In einem weiteren Beispiel nach der vorliegenden Offenbarung wird ein nichtflüchtiges computerlesbares Medium bereitgestellt. Das nicht-flüchtige computerlesbare Medium umfasst Anweisungen, die, wenn sie ausgeführt werden, ein Gerät dazu veranlassen, (i) einen Satz von Attributen auf einer Vielzahl von Geräten in einem Netzwerk zu überwachen, (ii) eine Gruppe von Daten basierend auf dem überwachten Satz von Attributen für die Synchronisierung auszuwählen, (iii) die an der Gruppe von ausgewählten Daten auszuführenden Synchronisierungsvorgänge ausgehend von der allen ausgewählten Daten und jedem Gerät zugewiesenen Prioritätsstufe zu priorisieren und (iv) die Gruppe von ausgewählten Daten entsprechend der Priorisierung der Synchronisierung zu synchronisieren.
-
1 stellt ein Beispielsystem nach einer Ausführungsform dar. System 100 kann ein System zur Synchronisierung von Inhalten sein und kann eine Vielzahl von Geräten wie zum Beispiel Computergeräte umfassen, die über ein Cloud-Computing-System oder ein anderes Netzwerk verbunden sind. Es sollte offensichtlich sein, dass System 100 eine verallgemeinerte Darstellung ist und dass andere Elemente hinzugefügt oder vorhandene Elemente entfernt, verändert oder neu angeordnet werden können, ohne vom Zweck der vorliegenden Offenbarung abzuweichen. Während System 100 zum Beispiel darstellt, dass 1 die Geräte 110, 120 und 130 umfasst, kann das System tatsächlich mehr oder weniger Geräte umfassen und die drei Geräte wurden nur der Einfachheit halber abgebildet und beschrieben.
-
System 100 kann eine gemeinsame Peer-to-Peer-Umgebung sein, in der eine Architektur angeordnet sein kann, ohne dass eine zentrale Koordination notwendig ist, wobei die Benutzergeräte gleichzeitig sowohl Anbieter als auch Verbraucher von Objekten sind. In einer anderen Ausführungsform kann es sich bei dem System 100 um ein cloudbasiertes Austauschsystem handeln, das Rechenressourcen (Hardware und Software) nutzt, die als Dienst über ein Netzwerk bereitgestellt werden (z. B. das Internet). Das cloudbasierte System stellt Daten für den Zugriff durch Benutzergeräte als einen Dienst über ein Netzwerk bereit und die Benutzergeräte können dementsprechend über die Cloud miteinander verbunden werden. Die Cloud ist in 1 durch die Cloud 105 dargestellt. Die Cloud 105 kann die Funktionen und Fähigkeiten, die durch lokal laufende Anwendungen und Software bereitgestellt werden, ersetzen, ergänzen oder sich in diese einfügen. Die Anwendungen können beispielsweise einen oder mehrere Identitäts- und Verzeichnisdienste, Gerätemanagement und -sicherheit, synchronisierte Speicher- und Datendienste über mehrere Geräte oder Plattformen hinweg und Dienste im Zusammenhang mit Aktivitäten und Neuigkeiten umfassen. Die Cloud 105 kann im Rahmen verschiedener Geschäftsmodelle bereitgestellt werden, wie zum Beispiel kostenlose, werbefinanzierte und aus Abonnements basierende Modelle.
-
Alternativ oder zusätzlich dazu kann das Kommunikationsmedium zwischen den Benutzergeräten beispielsweise, jedoch nicht beschränkt auf eine beliebige Kombination aus drahtgebundenen und/oder drahtlosen Ressourcen umfassen. Zum Beispiel kann das Kommunikationsmedium Ressourcen umfassen, die von einer beliebigen Kombination aus Kabelfernsehnetzen, direkten Videoübertragungsnetzen, Satellitennetzen, Mobilfunknetzen, drahtgebundenen Telefonienetzen und/oder Datennetzen, drahtlosen Datennetzen (z. B. drahtlosen lokalen Netzwerken, drahtlosen persönlichen Netzwerken usw.) und so weiter bereitgestellt werden können.
-
Das System 100 umfasst die Geräte 110, 120 und 130. Das Gerät 110 umfasst eine Überwachungsengine (oder ein Überwachungsmodul) 140, eine Protokolldatenbank 150, eine Hochrechnungsengine (Hochrechnungsmodul) 160, einen Objektempfänger 170, eine Objektdatenbank 180 und einen Objektsender 190, die jeweils nachstehend noch detaillierter beschrieben werden. In einer Ausführungsform kann es sich bei einem Objektempfänger und einem Objektsender um Datenmodule handeln. In einer anderen Ausführungsform kann das System 100 einen Warteschlangenmanager und einen Priorisierungsmanager umfassen (nicht in 1 abgebildet).
-
Die Geräte 110, 120 und 130 können alle drahtgebundenen und drahtlosen Geräte umfassen. in einer Ausführungsform kann das System 110 einen Desktop-Computer, eine Set-top-Box, eine Spielekonsole, einen Laptop-Computer, einen Taschencomputer, ein PDA, ein Smartphone, ein Mobiltelefon, ein Tablet, tragbare Media-Player wie zum Beispiel MP3-Player (Moving Pictures Expert Group, MPEG-1, Audio Layer 3), einen E-Book-Reader, ein tragbares Spielgerät, einen ultramobilen Computer oder ein Gerät umfassen, das eine Kombination aus deren Funktionen umfasst.
-
In einer anderen Ausführungsform kann ein Benutzer das Gerät 110 haben, das ein Arbeitsplatzrechner sein kann, das Gerät 120, das ein Laptop sein kann, und das Gerät 130, das ein Mobilgerät sein kann. Die Geräte können als Peer-Geräte in einem Netz betrachtet werden, in dem die Daten über die Geräte hinweg bewegt werden können (d. h. abgeholt). In einer anderen Ausführungsform können alle Geräte so angeordnet sein, dass sie über die Cloud 105 miteinander verbunden sind. Abhängig von der Ausführungsform können Sicherheitsfunktionen/Tools auf verschiedene Art und Weise umgesetzt werden, beispielsweise durch eine Firewall, Einmalkennwörter, Verschlüsselungsprogramme, digitale Zertifikate, Benutzeranwendungssicherheit usw. Es können verschiedene Kombinationen dieser und/oder anderer Sicherheitsfunktionen genutzt werden. In einer Ausführungsform können diese Sicherheitsansätze übereinander geschichtet werden, um eine besonders sichere Umgebung bereitzustellen, in der ein Gerät mit einem anderen interagieren kann. Zum Beispiel können die Sicherheitsfunktionen eine Anmeldung eines Benutzers erfordern, bevor Daten von einem Gerät zu einem anderen übertragen werden. In anderen Ausführungsformen können es die Sicherheitsfunktionen erfordern, dass der Benutzer für die Cloud 105 vertrauenswürdige Benutzerdaten oder eine Identifizierung angibt, bevor Daten über die Cloud 105 übertragen werden.
-
Die Geräte 110, 120 und 130 können unterschiedliche Funktionen und Fähigkeiten haben. Zum Beispiel können ein Desktop-Computer und ein Laptop jeweils verschiedene Betriebssysteme nutzen, beispielsweise das Betriebssystem Microsoft Windows und das Betriebssystem Apple Mac OS. Alternativ oder zusätzlich kann ein Gerät im Vergleich zu anderen Geräten mit geringeren Ressourcen konfiguriert sein, zum Beispiel bei Verarbeitungsleistung, Arbeitsspeicher und Datenspeicher.
-
Im Sinne der veranschaulichenden Beispiele können die Geräte 110, 120 und 130 jeweils einem Desktop-Computer, einem Laptop und einem Mobilgerät entsprechen. Jedes Gerät speichert Objekte (z. B. Inhalte). Solche Objekte können verschiedene Formen von durch den Benutzer wahrnehmbaren Inhalten umfassen. Exemplarische Objekte können sich auf jedes Objekt beziehen, auf das Benutzer direkt oder indirekt zugreifen können, wie zum Beispiel, jedoch nicht ausschließlich, Multimedia-Daten, digitale Bilder, digitale Videos (z. B. Fernsehsendungen und Filme), anzeigbare Texte, Audiodaten, elektronische Dokumente, elektronische Publikationen, vom Computer ausführbare Codes, Teile der vorgenannten und/oder ähnliches. Darüber hinaus kann die Darstellung der Inhalte abhängig von den Fähigkeiten und der Konfiguration der Geräte 110, 120 und 130 (z. B. ein tragbarer E-Book-Reader gegenüber einem Mobiltelefon) und dem Format des Inhalts (z. B. eine digitale Publikation ggü. einem Video) variieren.
-
In einer Ausführungsform können die Geräte 110, 120 und 130, die mit einem Benutzer oder einem Benutzerkonto verknüpft sind, Zugriff auf verschiedene Darstellungen der von Inhaltsanbietern bereitgestellten Inhalte haben. Zum Beispiel kann das Gerät 110 einem Desktop-Computer entsprechen, der eine digitale Darstellung von Inhalten (z. B. eine digitale Publikation, die auf einem Computer angezeigt werden kann) über ein Kommunikationsnetzwerk abgerufen hat (z. B. ein drahtloses Kommunikationsnetzwerk). Das Gerät 120 kann einem Laptop entsprechen, der eine separate Darstellung der gleichen Inhalte (z. B. eine Kopie der digitalen Publikation, die auf einem Laptop angezeigt werden kann) über das gleiche oder ein anderes Kommunikationsnetzwerk abgerufen hat. Weiter kann das Gerät 130 einem Mobilgerät entsprechen, das eine separate Darstellung der gleichen Inhalte (z. B. eine Kopie der digitalen Publikation, die auf einem Mobilgerät angezeigt werden kann) über das gleiche oder ein anderes Kommunikationsnetzwerk abgerufen hat.
-
In einer anderen Ausführungsform können bei den Geräten 110, 120 und 130 verschiedene Darstellungen der gleichen Inhalte auf jedem Gerät gespeichert sein. Zum Beispiel kann das Gerät 110 einem Desktop-Computer entsprechen, der über eine digitale Darstellung der Inhalte verfügt (z. B. eine digitale Fotografie, die auf einem Computer angezeigt werden kann). Das Gerät 120 kann einem Laptop entsprechen, der über eine separate Darstellung der gleichen Inhalte (z. B. eine Kopie der digitalen Fotografie, die auf einem Laptop angezeigt werden kann) verfügt. Weiter kann das Gerät 130 einem Mobilgerät entsprechen, das über eine separate Darstellung der gleichen Inhalte (z. B. eine Kopie der Fotografie, die auf einem Mobilgerät angezeigt werden kann) verfügt.
-
In einer Ausführungsform kann ein Benutzer des Geräts 110 Inhalte manuell auswählen. Diese Auswahl kann beinhalten, dass der Benutzer Listen der auf dem Gerät 110 gespeicherten Inhalte durchsucht. Alternativ oder zusätzlich kann ein Benutzer des Geräts 110 den Abruf von Inhalten von einem anderen Gerät oder einem Inhalteanbieter über die Cloud 105 anfordern. Der Inhalteanbieter kann alle Einheiten umfassen, die Inhalte für den Abruf durch die Benutzergeräte bereithalten können. Beispiele für Inhalteanbieter können (unter anderem) Fernsehsender, Server, Peer-to-Peer-Netzwerkeinheiten (z. B. andere Benutzergeräte 120, 130) und/oder ähnliche umfassen. Außerdem kann es sich bei den Inhalten um verschiedene Inhalte wie zum Beispiel Dateien, Patches, Grafiken und/oder ähnliches handeln. Die Dateien können Videos, Audios und/oder Texte umfassen.
-
Die Überwachungsengine 140 kann die Sammlung von Daten im Zusammenhang mit Vorgängen und Aktionen des Systems umfassen, Daten, die dazu genutzt werden können, Rückschlüsse auf Benutzeraktivitäten im Netzwerk zu ziehen, sowie Daten, die explizit auf Aktivitäten hinweisen. Zum Beispiel kann die Überwachungsengine 140 Inhalte überwachen, die von einem Benutzer ausgegeben werden. Darüber hinaus kann die Überwachungsengine 140 Daten im Zusammenhang mit der Darstellung der Inhalte für den Benutzer über das Gerät 110 und/oder die Inhaltsauswahl der Benutzer sammeln, welche Inhalte angeben, die der Benutzer für den Empfang angefordert und für die Ausgabe ausgewählt hat (z. B. zum Ansehen und/oder Anhören). Zum Beispiel kann der Benutzer die Dateien in dem Ordner „Mein Projekt” auf seinem Desktop durchsuchen. Der Benutzer kann dann eine Textverarbeitungsanwendung starten und damit beginnen, eine bestimmte Datei in dem Ordner zu bearbeiten. Die Überwachungsengine 140 kann solche Benutzeraktivitäten auf dem Gerät 110 überwachen und auf Grundlage dieser Aktivitäten kann die Überwachungsengine 140 Benutzeraktivitätsdaten erstellen, die dann in der Protokolldatenbank 150 gespeichert und an die Hochrechnungsengine 160 weitergegeben werden können.
-
Darüber hinaus kann die Überwachungsengine 140 Anwendungsdaten überwachen und die Daten verfolgen, auf die die Anwendungen zugreifen. Die Anwendungen können eine Reihe von typischen Anwendungen umfassen, die auf einem Gerät laufen können, um die Produktivität zu verbessern (z. B. Textverarbeitung, Tabellenkalkulation), die Kommunikation zu unterstützen (z. B. E-Mail, Web-Browsing und Instant Messaging), Unterhaltung anzubieten (z. B. Spiele, Multimedia-Player) und/oder ähnliches.
-
In einer anderen Ausführungsform kann die Überwachungsengine 140 Systeminformationen im Zusammenhang mit dem Gerät 110 überwachen. Solche Systeminformationen können verschiedene Attribute des Geräts 110 umfassen. Diese Attribute können statisch oder dynamisch sein. Dynamische Attribute können zum Beispiel, jedoch nicht ausschließlich, Informationen zum Batteriestand, Verbrauchsraten der Batterieleistung, Arbeits-/Datenspeicherkapazität, Signalstärke im drahtlosen Netz, Netzwerkdetails, Allgemeine Informationen zum Gerätestatus, Geräte- oder Umgebungstemperaturwerte und/oder ähnliches umfassen. Die Informationen können auch Informationen in Bezug auf den Status verschiedener Eingabe- oder Ausgabegeräte oder Informationen in Bezug auf eine Statusänderung von Eingabe- oder Ausgabegeräten umfassen. Zum Beispiel können die Geräteinformationen Daten über die Verbindung des Geräts 110 zu einem anderen Gerät umfassen (z. B. über eine drahtlose Bluetooth-Verbindung oder eine festverdrahtete Verbindung). Ebenso können die Geräteinformationen eine Identifikation einer Softwareanwendung umfassen, die über Funktionen zur Darstellung von Inhalten für einen Benutzer verfügt. In einer veranschaulichenden Ausführungsform können die Geräteinformationen von Hardware-Komponenten (z. B. Sensoren) oder Software-Komponenten auf dem Gerät 110 erzeugt werden. Zusätzlich können die Geräteinformationen von dem Gerät 110 von externen Ressourcen abgerufen werden, wie zum Beispiel angeschlossenen Hardware-Komponenten, Fernüberwachungskomponenten/-diensten oder Netzwerkdatenquellen.
-
In einer Ausführungsform können die Geräteinformationen Informationen (wie Angaben zu Breitengrad und Längengrad oder andere geografische Koordinatenangaben) aus einem globalen Ortungssystem („GPS”) oder einem Zellortungssystem (z. B. Triangulation) entsprechen. In einer Ausführungsform kann ein von einer GPS-Antenne empfangenes GPS-Signal durch ein GPS-Empfangsteil verarbeitet werden und kann in die Überwachungsengine 140 eingespeist werden. Die Ortungsinformationen des Geräts 110 können interpretiert und in Benutzerverhaltensdaten umgewandelt werden, die dazu genutzt werden können, einen Satz von Inhalten zu prognostizieren, auf die der Benutzer eventuell an diesem Ort zugreifen muss. Zum Beispiel kann das System erkennen, dass sich der Benutzer in einer Bibliothek befindet und dass das Benutzerverhalten in der Vergangenheit gezeigt hat, dass der Benutzer auf Bilddateien in einem Ordner „Meine Fotos” auf dem Laptop des Benutzers zugreift, wenn er in der Bibliothek ist. Dementsprechend kann die Überwachungsengine 140 die Informationen über den Standort des Benutzers zusätzlich zum vergangenen und/oder aktuellen Verhalten des Benutzers im Zusammenhang mit dem Standort erfassen und diese an die Hochrechnungsengine 160 weitergeben. Nach der Analyse der Informationen kann die Hochrechnungsengine 160 die Objekte vorausberechnen, auf die der Benutzer eventuell auf dem Laptop des Benutzers in der Bibliothek zugreifen will; dies können beispielsweise die Bilddateien in dem Ordner „Meine Fotos” auf dem Laptop des Benutzers sein.
-
In einer anderen Ausführungsform können die überwachten Arten von Daten ausgehend von der Art des Geräts variieren. Ein Gerät kann spezifische Arten von Daten identifizieren, die für die Festlegung von Synchronisierungsereignissen oder die Festlegung von Schwellen für Synchronisierungsereignisse oder beides überwacht werden sollen. Diese Arten von Daten können als Bedingungsereignisse klassifiziert werden. Zum Beispiel kann die Überwachungsengine basierend auf diesen Arten von Daten Muster erkennen, die auf eine starke Nutzung von lokalen Ressourcen hinweisen (z. B. niedriger Batteriestand, geringe Netzwerk-Bandbreite, hoher Netzwerk-Traffic). Entsprechend kann das System in den ressourcenschonenden Modus umschalten und die Datenübertragung sowie die Datensynchronisierung anhalten, reduzieren oder sperren, um die Nutzung des Ressourcen einzuschränken. Zum Beispiel können manche Geräte wie beispielsweise tragbare Geräte die Anzahl der auftretenden Synchronisierungsereignisse weiter beschränken, um die Batterielaufzeit des Geräts zu verlängern. In einem anderen Beispiel kann das System 100 ein Synchronisierungsereignis für ein tragbares Gerät ausgehend von einem minimalen Energieniveau vorgeben (z. B. Übertragung der Synchronisierungsinformationen bevor das Gerät sich abschaltet, die Kommunikationsfähigkeiten verliert, neben weiteren Möglichkeiten). In einem weiteren Beispiel kann das System 100 ein Synchronisierungsereignis für ein tragbares Gerät basierend auf Kriterien der Stärke des Kommunikationssignals vorgeben (minimale dauerhafte Kommunikationssignalstärke).
-
Die Protokolldatenbank 150 kann die von der Überwachungsengine 140 gesammelten Daten empfangen, die explizit angeben können, welches Objekt im Netzwerk des Benutzers derzeit vom Benutzer verwendet oder aufgerufen werden kann. Darüber hinaus kann die Protokolldatenbank 150 eine Benutzerhistorie erstellen, die beispielsweise angibt, dass ein Benutzer des Geräts 110 in zwei Wochen in Folge mit dem Gerät 110 zwei Folgen einer Fernsehserie angesehen hat. Diese Daten können in der Protokolldatenbank 150 zusammen mit den Daten in Bezug auf die anderen derzeitigen und vergangenen Aktivitäten des Benutzers und des Geräts 110 gespeichert werden. In der Protokolldatenbank 150 können die Daten nach einem Qualitätsstandard verwaltet werden (gemessen nach Genauigkeit, Verfügbarkeit, Nutzbarkeit und Ausfallsicherheit). Alternativ oder zusätzlich können die historischen statistischen Daten in einer zentralen Protokolldatenbank 115 in der Cloud 105 gespeichert werden, die über die Hochrechnungsengine 160 mit dem Gerät 110 verbunden werden kann. In einer Ausführungsform kann die zentrale Protokolldatenbank Protokolle von mehreren Geräten im System 100 speichern (z. B. dem Gerät 120 und/oder 130). In einigen Ausführungsformen können die zentrale Protokolldatenbank und die Protokolldatenbank 150 in einer einzigen Datenbank integriert sein, die mit dem Gerät 110 kombiniert werden kann.
-
In einer Ausführungsform können die Überwachungsengine 140 und die Protokolldatenbank 150 mit der Hochrechnungsengine 160 zusammenarbeiten, indem sie die Benutzeraktivitäten und Systeminformationen am Gerät 110 überwachen und die Benutzeraktivitäten und Systeminformationen in Form von historischen Statistiken verfolgen, die in der Protokolldatenbank 150 gespeichert werden. In einem anderen Beispielsystem können die Überwachungsengine 140 und die Hochrechnungsengine 160 in der Lage sein, sich direkt miteinander zu verbinden. Alternativ oder zusätzlich kann die Überwachungsengine mit einer zentralen Hochrechnungsengine 125 verbunden sein.
-
Die Hochrechnungsengine 160 kann gewünschte Synchronisierungen bestimmter Objekte (z. B. Inhalte) zwischen dem Gerät 110 und anderen Geräten (z. B. den Geräten 120 und 130) vorwegnehmen, die mit dem Benutzer des Geräts 110 verbunden sind. In einer Ausführungsform kann die Hochrechnungsengine 160 prädiktive Auswahlen von Inhalten erstellen, die für den Benutzer auf verschiedenen Geräten wünschenswert wären. Die Erzeugung der prädiktiven Auswahlen kann Rückschlüsse auf der Grundlage verschiedener Faktoren beinhalten, beispielsweise vorherige Inhalte, die an die Geräte bereitgestellt wurden und/oder Informationen, die in Statusinformationen des Systems 100 bereitgestellt wurden. Weiter können solche Schlussfolgerungen den Einsatz einer oder mehrerer Heuristiken beinhalten, die auf verschiedene Art und Weise gewichtet werden können, und/oder Data-Mining-Algorithmen, bei denen es sich um einen Satz von Heuristiken und Berechnungen handeln kann, die aus den Daten aus der Protokolldatenbank 150 ein Data-Mining-Modell erstellen können. Um ein Modell zu erstellen, kann der Algorithmus zuerst die von der Protokolldatenbank 150 bereitgestellten Daten analysieren und bestimmte Arten von Mustern oder Trends ermitteln. Der Algorithmus kann die Ergebnisse dieser Analyse dazu nutzen, die optimalen Parameter für die Erstellung des Mining-Modells festzulegen. Diese Parameter können dann auf den gesamten Datensatz angewendet werden, um umsetzbare Muster und detaillierte Statistiken zu extrahieren. Darüber hinaus kann die Hochrechnungsengine 160 Objekten (z. B. Inhalten) Prioritätsstufen zuweisen, die prädiktiv ausgewählt werden. In einigen Ausführungsformen kann die Hochrechnungsengine 160 dynamisch Prioritätsstufen basierend auf den Attributen zuweisen.
-
In einer anderen Ausführungsform kann die Erstellung der prädiktiven Auswahlen von Inhalten durch die zentrale Hochrechnungsengine 125 alternativ oder zusätzlich zu der Hochrechnungsengine 160 im Gerät 110 erfolgen. Die zentrale Hochrechnungsengine 125 kann Daten in Bezug auf das Benutzerverhalten über alle Geräte (z. B. Geräte 110, 120 und 130) und System 100 hinweg von der Protokolldatenbank 150 und der zentralen Protokolldatenbank 115 erhalten und erzeugt prädiktive Auswahlen von Inhalten. Solche prädiktiven Auswahlen von Inhalten können an die Überwachungsengine 160 oder andere verbundene lokale Hochrechnungsengines übermittelt werden.
-
In einer Ausführungsform können die Synchronisierungsinformationen von der Hochrechnungsengine 160 über einen zentrale Quelle, z. B. die Cloud 105, an die anderen Geräte, z. B. die Geräte 120 und 130, weitergegeben werden. In anderen Ausführungsformen können die Synchronisierungsinformationen von dem Gerät 110 direkt an das Gerät 120 und/oder das Gerät 130 weitergegeben werden, ohne dass eine zentrale Quelle notwendig ist.
-
Alternativ oder zusätzlich zur Synchronisierung von Inhalten kann das System 100 Inhalte auch weitergeben, indem es Daten von einem Gerät zum anderen verbreitet. In einer Ausführungsform kann eine solche Verbreitung nach Weitergaberegeln verwaltet werden.
-
In einer Ausführungsform kann die Vorausberechnung auf Ausgabegewohnheiten (z. B. Seh- und/oder Hörgewohnheiten) auf einem bestimmten Gerät basieren. Zum Beispiel kann die verstärkte Ausgabe von Inhalten in einer bestimmten Kategorie oder einer bestimmten Art auf einem bestimmten Gerät die Auswahl weiterer Inhalte einer ähnlichen Kategorie oder Art zur Synchronisierung mit diesem Gerät zur Folge haben. Wenn der Benutzer des Geräts 120 zum Beispiel drei oder mehr Episoden von Sendungen des gleichen Genres (z. B. Sitcoms) auf dem Gerät 120 ansieht, können vor Kurzem aufgezeichnete Episoden dieses Genres ausgewählt und auf dem Gerät 120 synchronisiert werden.
-
In einer anderen Ausführungsform kann die Vorausberechnung die Ausgabegewohnheiten (z. B. Seh- und/oder Hörgewohnheiten) auf mehreren Geräten beinhalten. Zum Beispiel kann das Ansehen bestimmter Inhalte durch einen Benutzer des Geräts 110 die Auswahl der gleichen Inhalte zur Synchronisierung mit dem Gerät 120 zur Folge haben, ausgehend der Vorausberechnung, dass der Benutzer, der mit dem Ansehen von Inhalten auf dem Gerät 110 begonnen hat, diese bestimmten Inhalte eventuell auf dem Gerät 120 weiter ansehen möchte. Wenn zum Beispiel ein Benutzer des Geräts 110 (z. B. Desktop-Computer) auf dem Gerät 110 anfängt, einen Film anzusehen, diesen aber nach der Hälfte pausiert, kann die Hochrechnungsengine 160 schlussfolgern, dass der Benutzer den Film eventuell auf dem Gerät 120 (z. B. Laptop) weiter ansehen möchte. Dementsprechend kann diese Filmdatei zur Synchronisierung mit dem Gerät 120 ausgewählt werden.
-
Als ein weiteres Beispiel, wie oben erläutert, kann ein Benutzer des Geräts 110 zwei Wochen in Folge zwei Podcasts einer Podcast-Serie auf dem Gerät 110 anhören. Ausgehend von diesem Verhalten kann die Hochrechnungsengine 160 (basierend auf der Benutzerhistorie) den dritten Podcast der gleichen Serie zur Synchronisierung auf dem Gerät 110 in der dritten Woche auswählen. Als weiteres Beispiel kann ein Benutzer einen Satz Textdateien in einem Ordner „Mein Projekt” auf dem Gerät 110 durchsuchen. Der Benutzer kann dann eine Textverarbeitungsanwendung starten und damit beginnen, eine bestimmte Datei in dem Ordner zu bearbeiten. Durch den Empfang dieser Benutzeraktivitäten von der Protokolldatenbank 150 kann die Hochrechnungsengine 160 schlussfolgern, dass andere Dateien in dem Ordner eventuell auch von dem Benutzer aufgerufen und/oder bearbeitet werden. Dementsprechend können die Dateien in dem Ordner zur Synchronisierung ausgewählt werden.
-
In weiteren Ausführungsformen kann die Vorausberechnung Bewertungen der Inhalte durch die Benutzer umfassen (die von den Benutzern der Geräte 110, 120 und 130 eingegeben und empfangen werden können). Zum Beispiel können hohe Benutzerbewertungen für Inhalte auf einem bestimmten Gerät die Auswahl ähnlicher Inhalte zur Synchronisierung mit diesem bestimmten Gerät zur Folge haben. Wenn ein Benutzer zum Beispiel zwei Bücher im Ordner „Bücher” auf dem Gerät 110 hoch bewertet, können andere Bücher zur Synchronisierung ausgewählt werden.
-
In weiteren Ausführungsformen kann die Vorausberechnung auf vorhergehenden Synchronisierungsaktivitäten basieren. Zum Beispiel können Inhalte, die zuvor in einer bestimmten Kategorie und/oder einem bestimmten Zeitintervall mit einem bestimmten Gerät synchronisiert wurden, die Auswahl ähnlicher Inhalte zur Synchronisierung mit diesem bestimmten Gerät zur Folge haben. Wenn zum Beispiel der Benutzer von Gerät 120 dreimal explizit Fotos aus dem gleichen Ordner synchronisiert, innerhalb von zwei Tagen, nachdem er sie auf dem Gerät 110 hochgeladen hat, können darauf folgende Uploads von Fotos in den gleichen Ordner auf dem Gerät 110 zur Synchronisierung ausgewählt werden.
-
In einigen Ausführungsformen kann die Vorausberechnung das Suchverhalten der Benutzer einbeziehen. Zum Beispiel kann die Suche nach einer Datei auf einem bestimmten Gerät die Auswahl des Inhalts der Suchergebnisse zur Synchronisierung mit einem anderen Gerät zur Folge haben. Wenn ein Benutzer des Geräts 110 in dem Ordner „Meine Bilder” auf dem Gerät 110 nach Hochzeitsbildern sucht, kann das Gerät 110 eine Liste von Dateien anzeigen, die als Hochzeitsbilder im Ordner „Meine Bilder” identifiziert wurden. Der Benutzer kann diese Dateien zum Ansehen dieser Bilder auf dem Gerät 110 öffnen oder auch nicht. Unabhängig davon können die als Suchergebnisse auf dem Gerät 110 identifizierten Hochzeitsbilder zur Synchronisierung mit dem Gerät 120 ausgewählt werden, ausgehend von der Vorausberechnung, dass der Benutzer diese Bilder eventuell auf dem Gerät 120 ansehen möchte.
-
In einer anderen Ausführungsform kann eine Liste von Suchergebnissen durch Daten beeinflusst werden, die mit dem Verhalten der Benutzer eines Geräts zusammenhängen. Zum Beispiel kann das Verhalten des Benutzers zeigen, dass der Benutzer des Geräts 110 häufig Audiodateien anhört. Dementsprechend kann die Hochrechnungsengine 160 Audiodateien auf dem Gerät 110 eine höhere Priorität zuweisen, ausgehend von der Vorausberechnung, dass der Benutzer eventuell auf diese Dateien zugreift. Wenn der Benutzer auf dem Gerät 120 eine Suche nach dem Stichwort „Geburtstag” ausführt, können die Suchergebnisse die Audiodateien, die unter dem Stichwort „Geburtstag” identifiziert wurden, ausgehend von der höheren Priorität, die den Audiodateien auf dem Gerät 110 zugewiesen wurde, noch vor Bildern oder Textdokumenten auflisten. Die Hochrechnungsengine 160 wählt die unter dem Stichwort „Geburtstag” identifizierten Audiodateien zur Synchronisierung mit dem Gerät 110 aus.
-
Die vorgenannten Kriterien für die Vorausberechnung gelten nur als Beispiele und nicht als Einschränkungen. Entsprechend kann jede beliebige Anzahl an Kriterien, Algorithmen oder anderer Methoden allein oder in jeder Kombination oder Gewichtung angewendet werden. Wie oben erläutert, können von der Hochrechnungsengine 160 und/oder der zentralen Hochrechnungsengine 125 prädiktive Auswahlen von Inhalten erzeugt werden.
-
In anderen Ausführungsformen kann ein Synchronisierungsereignis auch auf Grundlage einer oder mehrerer Eingaben im Zusammenhang mit dem Gerät festgelegt werden (z. B. Energieniveaus, Signalstärke im drahtlosen Netz, Bewegungssensoren, Zeitschaltuhren, Aktivierung von Kopfhörern/Lautsprechern usw.). Zum Beispiel kann die Aktivierung eines Kopfhörers auf einem bestimmten Gerät die Auswahl von Audioinhalten zur Synchronisierung zur Folge haben. Wenn zum Beispiel der Benutzer des Geräts 110 einen Kopfhörer an dem Gerät 110 aktiviert, können Audiodateien in einem Ordner „Meine Musik” zur Synchronisierung ausgewählt werden. Als ein anderes Beispiel kann ein Benutzer eine Aktivität ausführen, die eventuell rechenintensiv ist und umfangreichen Festplattenzugriff oder viele Vorgänge im Dateisystem erfordert. Ein Benutzer kann zum Beispiel Videos bearbeiten oder eine große Tabellenkalkulation neu berechnen und dazu eine oder mehrere Anwendungen nutzen. Die Hochrechnungsengine 160 kann dann die Priorität dieser Objekte herabsetzen, sodass die Synchronisierungsvorgänge die Systemressourcen nicht zusätzlich belasten, die eventuell bereits stark beansprucht werden.
-
Darüber hinaus kann in einer Ausführungsform die Hochrechnungsengine 160 auf dem Gerät 110 nach Empfang der eingehenden Synchronisierungsinformationen zusätzliche Synchronisierungsinformationen einbeziehen, die auf diesem bestimmten Gerät gesammelt wurden, inkonsistente Informationen filtern und/oder andere Konfliktlösungen ausführen.
-
Der Objektempfänger 170 kann eine Komponente für den Erhalt von Objekten auf Grundlage von Synchronisierungsinformationen von verschiedenen Geräten im Benutzernetzwerk, wie zum Beispiel den Geräten 120 und 130, sein. In einer anderen Ausführungsform kann der Objektempfänger 170 Objekte von verschiedenen Inhalteanbietern über ein Kommunikationsmedium einholen.
-
Die Objektdatenbank 180 kann Objekte (z. B. Inhalte) von dem Objektempfänger 170 empfangen und speichern. Zum Beispiel kann ein Synchronisierungsvorgang zwischen den Geräten 110, 120 und 130 auftreten, wenn die Geräte 110, 120 und 130 für einander verfügbar sind. Dies kann beinhalten, dass von dem Gerät 110 gespeicherte Inhalte auf ein Speichermedium auf dem Gerät 120 und/oder dem Gerät 130 kopiert werden. Darüber hinaus kann dies auch beinhalten, dass von dem Gerät 120 gespeicherte Inhalte auf ein Speichermedium auf dem Gerät 110 (z. B. die Objektdatenbank 180) und/oder dem Gerät 130 kopiert werden. Schließlich kann dies auch beinhalten, dass von dem Gerät 130 gespeicherte Inhalte auf ein Speichermedium auf dem Gerät 110 (z. B. die Objektdatenbank 180) und/oder dem Gerät 120 kopiert werden.
-
In einer Ausführungsform können zusätzlich zu den oben beschriebenen Objekten auch Kontextinformationen oder dynamische Attribute wie zum Beispiel Gerätestandort, Gerätetyp und beliebige Attributwerte für den zentralen Referenzpunkt in der Objektdatenbank 180 gespeichert werden. Andere dynamische Attribute können das Client-Betriebssystem, das Client-Gebietsschema, den Client-Gerätetyp, die Staaten-Abkürzung, die Postleitzahl, den Sprachcode, den Landescode, den Bereichscode, die Telefonnummer, die Telefonvorwahl oder ähnliches umfassen.
-
In einer Ausführungsform kann die Objektdatenbank 180 Objekte löschen. Solche Löschungen können nach dem Eintreten einer oder mehrerer Bedingungen ausgeführt werden. Beispielbedingungen beinhalten zum Beispiel, wenn die Inhalte in der Objektdatenbank 180 länger als bis zu einer gewissen Zeitgrenze gespeichert werden (z. B. E-Mails in einem Papierkorb-Ordner), wenn ein Benutzer Inhalte manuell zum Löschen auswählt, wenn die Inhalte bereits von einem Benutzer ausgegeben (z. B. angesehen) wurden und/oder wenn von einem anderen Gerät eine Anweisung zum Löschen der Inhalte eingeht. Die Beispiele sind nicht auf diese Beispiele beschränkt.
-
Der Objektsender 190, der mit dem Gerät 110 verknüpft ist, kann Objekte zu einem oder mehreren Geräten (z. B. den Geräten 120 und 130) übermitteln, die dem Gerät 110 bekannt sind und für den Erhalt der Synchronisierungsinformationen in Frage kommen. Zum Beispiel können Peer-Geräte, die mit dem gleichen Benutzer oder Benutzerkonto verknüpft sind, für den Empfang von Inhalten in Frage kommen. In einer Ausführungsform kann der Objektsender 190 die Übertragung der Objekte navigieren. In einer Ausführungsform kann der Objektsender 190 die Objekte direkt an die empfangenden Geräte wie beispielsweise das Gerät 120 oder 130 übertragen. In einer anderen Ausführungsform kann der Objektsender 190 die Objekte über die Cloud 105 an die empfangenden Geräte übertragen.
-
Die Objektübertragungen können ausgehend von dem Gerät, an das die Objekte übermittelt werden sollen, in eine Warteschlange gestellt werden. Jede Warteschlange kann mit einem Gerät verknüpft werden und ein oder mehrere Objekte zur Übermittlung an das verknüpfte Gerät aufweisen. Eine solche Warteschlange kann als Peer-Warteschlange bezeichnet werden. In einer Ausführungsform kann eine Warteschlange basierend auf der Synchronisierungspriorität, die dem verknüpften Gerät zugewiesen wurde, für die Verarbeitung bedient werden. Die Gerätenummern könnten zum Beispiel durch einen numerischen Wert wie beispielsweise 1, 2 ... N dargestellt werden. Synchronisierungsprioritäten können auch durch einen numerischen Wert dargestellt werden, wobei höhere Werte eine höhere Priorität für die Verarbeitung angeben und niedrigere Werte eine niedrige Priorität angeben. Zum Beispiel kann ein Desktop-Computer eine höhere Priorität haben als ein Mobilgerät, beispielsweise ausgehend von der Verarbeitungsgeschwindigkeit des Geräts. So können die Objekte, die an ein Gerät mit höherer Priorität übermittelt werden sollen, vor den Objekten verarbeitet werden, die an ein Gerät mit niedrigerer Priorität übermittelt werden sollen. Darüber hinaus, wie oben erwähnt, enthält jede Warteschlange ein oder mehrere Objekte. Die Objekte in jeder Warteschlange können basierend auf den Synchronisierungsprioritäten, die mit den Objekten verknüpft sind, klassifiziert werden. Zum Beispiel kann eine Bilddatei aus Gründen, die oben in Bezug auf die Hochrechnungsengine 160 näher erläutert werden, eine höhere Priorität als eine Videodatei haben.
-
In einigen Ausführungsformen kann ein Priorisierungsmanager jedem Objekt und jedem Gerät Synchronisierungsprioritäten (z. B. Prioritätsstufen) zuweisen. Darüber hinaus kann der Priorisierungsmanager die Prioritätsstufe jedes Objekts und jedes Geräts ausgehend von den überwachten Informationen von der Überwachungsengine 140 ändern.
-
In einer Ausführungsform kann das System 100 eine externe Datenquellen-Schnittstellenkomponente für den Erhalt externer Informationen aus netzwerkbasierten Ressourcen umfassen, beispielsweise Informationen in Bezug auf einen Benutzer, der mit dem Gerät 110 oder ausgewählten Empfangsgeräten wie den Geräten 120 und 130 verknüpft ist. Alternativ oder zusätzlich, wie oben näher erläutert, kann das Gerät 110 eine Datenverarbeitungskomponente für die Verarbeitung der von den anderen Geräten erhaltenen Synchronisierungsinformationen umfassen. Die Datenverarbeitungskomponente kann außerdem ein oder mehrere Geräte festlegen, die Empfangsgeräte für bestimmte Synchronisierungsinformationen sein können und, gegebenenfalls, spezielle Untergruppen der Synchronisierungsinformationen festlegen, die jedes Empfangsgerät erhalten soll. Die in der Objektdatenbank 180 gespeicherten Objekte können von der Datenverarbeitungskomponente genutzt werden.
-
Das System 100 und das Gerät 110 können eine Anzahl zusätzlicher Komponenten, Systeme und/oder Untersysteme umfassen, um Kommunikationen mit den anderen drahtlosen oder drahtgebundenen Geräten und/oder der Cloud 105 zu ermöglichen. Die zusätzlichen Komponenten können ein oder mehrere mobile Mobilvermittlungsstellen für die Herstellung von Kommunikationen mit den drahtlosen Geräten über das drahtlose Kommunikationsnetzwerk umfassen, wie zum Beispiel ein Mobilfunknetzwerk, ein auf der Familie der technischen IEEE-802.11-Standards basierendes drahtloses Netzwerk („WiFi”), ein auf IEEE-802.16-Standards basierendes drahtloses Netzwerk („WiMax”) und andere drahtlose Netzwerke. Die Mobilvermittlungsstelle kann Schnittstellen für den Aufbau verschiedener Kommunikationen über ein Kommunikationsnetzwerk umfassen, wie zum Beispiel das Internet, Intranet-Systeme, private Netzwerke und Punkt-zu-Punkt-Netzwerke, die allgemein als „Netzwerk” bezeichnet werden.
-
Das Gerät 110 kann unter Verwendung jeder geeigneten Kombination auf Hardware und/oder Software umgesetzt werden. Zum Beispiel kann das Gerät 110 in einer Ausführungsform mindestens ein Verarbeitungsgerät und einen Speicher umfassen. Das Verarbeitungsgerät kann einem Gerät entsprechen, das allgemein die im Speicher gespeicherten Anweisungen abruft und ausführt (z. B. eine Zentraleinheit (CPU), einen Prozessor, einen Mikrocontroller oder ähnliches). Der Speicher kann einem typischen Speichergerät entsprechen, das computerimplementierte Anweisungen speichert. Das Gerät 110 kann Funktionen mithilfe der Verarbeitungseinheit(en) erfüllen, um vom Systemspeicher bereitgestellte Anweisungen auszuführen. Weiter kann der Speicher Informationen speichern, die eine Betriebssystemkomponente, verschiedene Programmmodule, Programmdaten und/oder andere Komponenten bereitstellen. In einer anderen Ausführungsform kann das Gerät 110 Speichermedien oder maschinenlesbare Artikel umfassen, die zum Beispiel jeden geeigneten Typ von Arbeitsspeichereinheiten, -speichergeräten, -speicherartikeln, -speichermedien, Datenspeichergeräten, -speicherartikeln, -speichermedien und/oder -speichereinheiten umfassen können, zum Beispiel Arbeitsspeicher, entfernbare oder nicht entfernbare Medien, löschbare oder nicht löschbare Medien, beschreibbare oder wiederbeschreibbare Medien, digitale oder analoge Medien, Festplatten, Disketten, CD-ROM (Compact Disk Read Only Memory), CD-R (Compact Disk Recordable), CD-RW (Compact Disk Rewriteable), optische Speicherplatten, magnetische Medien, magnetisch-optische Medien, entfernbare Speicherkarten oder Speicherplatten, verschiedene Arten von DVDs (Digital Versatile Disk), ein Band, eine Kassette oder ähnliches. Das Speichermedium kann eine Anweisung oder einen Satz von Anweisungen speichern, die, wenn sie von der Maschine ausgeführt werden, die Maschine dazu veranlassen können, ein Verfahren und/oder Vorgänge nach den Ausführungsformen auszuführen. Die Anweisungen können jede geeignete Art von Code umfassen, wie zum Beispiel Quellcode, kompilierten Code, interpretierten Code, ausführbaren Code, statischen Code, dynamischen Code, verschlüsselten Code und ähnliches, die mithilfe jeder geeigneten höheren, niedrigen, objektorientierten, visuellen, kompilierten und/oder interpretierten Programmiersprache implementiert werden kann. Das Gerät 110 kann außerdem ein oder mehrere Eingabegeräte (Tastatur, Maus, spezielle Auswahltasten usw.) und ein oder mehrere Ausgabegeräte (Bildschirme, Drucker, Audio-Ausgabemechanismen usw.) umfassen.
-
2 stellt Beispielkomponenten des Systems 100 nach einer Ausführungsform dar. Der Objektsender 190 umfasst eine Peer-1-Warteschlange 210, Peer-2-Warteschlange 220 und Peer-N-Warteschlange 230, von denen jede nachstehend noch detaillierter beschrieben wird. Jede Peer-Warteschlange wird auf einem verknüpften Gerät eingespeist und stellt eine Gruppe von Objekten dar, die auf das verknüpfte Gerät übertragen werden sollen. Zum Beispiel kann Peer-1 240 ein Desktop-Computer sein und Peer-1-WArteschlange 210 kann eine Gruppe von Objekten sein, die zur Übertragung auf den Desktop-Computer aufgereiht ist. Solche Objekte können Inhalte wie Dateien, Patches, Grafiken und/oder ähnliches umfassen. Die Dateien können Videos, Audios und/oder Texte umfassen. Wie oben in Bezug auf 1 näher beschrieben, können ausgehend von dem Gerät, an das die Objekte übermittelt werden sollen, in eine Warteschlange gestellt werden und eine Peer-Warteschlange kann basierend auf der Synchronisierungspriorität, die dem verknüpften Gerät zugewiesen wurde, zur Verarbeitung bedient werden. Alternativ oder zusätzlich, wie ebenfalls oben in Bezug auf 1 näher beschrieben, werden die Objekte basierend auf den mit den Objekten verknüpften Synchronisierungsprioritäten aufgereiht.
-
In einer Ausführungsform kann die Zuweisung der Synchronisierungspriorität auf dem Konsumverhalten von Inhalten, der auf dem Gerät zur Identifizierung der Dateitypen genutzten aktiven Anwendung, den Informationen in Bezug auf den zuletzt auf einem anderen Gerät bewerteten Inhalte und der Prioritätszeit für den Synchronisierungsinhalt basieren.
-
Zum Beispiel kann Peer-1 240 ein Desktop-Computer sein und Peer-2 250 kann ein Laptop sein und Peer-N 230 kann ein Mobilgerät sein. Peer-1 240 kann ausgehend von der Geschwindigkeit des Prozessors eine höhere Priorität haben als Peer-2 250 und Peer-N 230. Der Desktop-Computer mit dem schnelleren Prozessor kann eine höhere Priorität haben, da Peer-1 240 über ausreichende Ressourcen verfügen kann, um große Sätze von Objekten zu synchronisieren, was für einen Benutzer wünschenswerter sein kann. Dementsprechend kann die Peer-1-Warteschlange 210 vor der Peer-2-Warteschlange 220 und der Peer-N-Warteschlange 230 verarbeitet werden.
-
Die Gerätenummern könnten zum Beispiel durch einen numerischen Wert wie beispielsweise 1, 2 ... N dargestellt werden. Synchronisierungsprioritäten (nicht in 2 gezeigt) können auch durch einen numerischen Wert dargestellt werden, wobei höhere Werte eine höhere Priorität für die Verarbeitung angeben und niedrigere Werte eine niedrige Priorität angeben.
-
Es sollte offensichtlich sein, dass der in 2 dargestellte Objektsender 190 eine verallgemeinerte Abbildung darstellt und dass andere Komponenten hinzugefügt oder vorhandene Komponenten entfernt, verändert oder neu angeordnet werden können, ohne vom Zweck der vorliegenden Offenbarung abzuweichen. Während 2 darstellt, dass der Objektsender 190 drei Warteschlangen umfasst, Peer-1-Warteschlange 210, Peer-2-Warteschlange 220 und Peer-N-Warteschlange 230, kann das System tatsächlich auch mehr oder weniger Warteschlangen umfassen. Drei Warteschlangen wurden als eine beispielhafte Ausführungsform dargestellt und beschrieben. Darüber hinaus, während 2 zeigt, dass der Objektsender 190 drei Geräte umfasst, Peer-1-Warteschlange 210, Peer-2-Warteschlange 220 und Peer-N-Warteschlange 230, kann das System tatsächlich auch mehr oder weniger Geräte als Peer-1 240, Peer-2 250 und Peer-N 260 umfassen. Die Nummer N in 2 stellt dar, dass es eine Reihe von Warteschlangen und Geräten in einem Objektsender nach einer Ausführungsform geben kann.
-
Mit Bezug auf den Betrieb des Systems 100 stellt 3 ein Ablaufdiagramm 300 für einen Beispielprozess nach einer Ausführungsform dar. Genauer stellt der illustrierte Prozess ein „Push”-Modell für die Erzeugung einer prädiktiven Auswahl von Objekten und die Übertragung der Objekte basierend auf Synchronisierungsprioritäten dar. Es sollte offensichtlich sein, dass die in 3 dargestellten Prozesse allgemeine Darstellungen sind und dass andere Prozesse hinzugefügt oder vorhandene Prozesse entfernt, verändert oder neu angeordnet werden können, ohne vom Zweck der vorliegenden Offenbarung abzuweichen. Darüber hinaus sollte verständlich sein, dass die Prozesse ausführbare Anweisungen darstellen können, die in einem Speicher gespeichert sind und ein Verarbeitungsgerät dazu veranlassen können, Aktionen auszuführen, Zustände zu ändern und/oder Entscheidungen zu treffen. Daher können die beschriebenen Prozesse als ausführbare Anweisungen und/oder Vorgänge umgesetzt werden, die von einem Speicher bereitgestellt werden, der mit einem Computergerät verknüpft ist, beispielsweise dem Gerät 110, wie in 1 und 2 dargestellt. Darüber hinaus soll 3 die Umsetzung der beschriebenen Ausführungsformen nicht einschränken, sondern die Figur stellt vielmehr funktionale Informationen dar, die ein Fachmann nutzen kann, um Schaltpläne zu entwerfen/herzustellen, Software zu erstellen oder eine Kombination aus Hardware und Software zu nutzen, um die dargestellten Prozesse auszuführen.
-
Der Prozess 300 kann bei Block 305 beginnen, wobei die Überwachungsengine 140 die Benutzeraktivität und die Geräteinformationen am Gerät 110 überwacht. Dieser Prozess kann die Sammlung von Daten im Zusammenhang mit angeforderten Inhalten, empfangenen Inhalten, ausgegebenen Inhalten, genutzten Anwendungen, verfügbarem Speicherplatz, Netzwerkverfügbarkeit, Netzwerkgeschwindigkeit, Netzwerkkosten, Batteriekapazität, Ladezustand, Standort des Geräts usw. umfassen. In einer Ausführungsform kann der Überwachungsprozess die Sammlung von Daten im Zusammenhang mit allen Benutzeraktivitäten und Geräteinformationen umfassen. In einer anderen Ausführungsform kann der Überwachungsprozess auf Grundlage eines zuvor festgelegten Protokolls wie zum Beispiel zuvor identifizierten Bedingungen oder Datenkategorien ausgeführt werden. Zum Beispiel kann die Überwachungsengine 140 so eingestellt werden, dass sie Daten im Zusammenhang mit Aktivitäten sammelt, die der Benutzer für eine Dauer von mehr als einer Minute ausführt, und alle Aktivitäten, mit denen der Benutzer weniger als eine Minute verbringt, können vernachlässigt werden. Darüber hinaus kann die Überwachungsengine 140 Filteraktionen ausführen, um eine Untergruppe der gesammelten Daten zu identifizieren und nur die Untergruppe bereitzustellen, die der Benutzer eventuell benötigt.
-
In Block 310 können die gesammelten Daten in Bezug auf die Benutzeraktivitäten und Geräteinformationen der Protokolldatenbank 150 zur Aufzeichnung bereitgestellt werden. Die Protokolldatenbank 150 kann die Aufzeichnungen speichern und, abhängig von der Ausführungsform, die Daten organisieren und Korrelationen zwischen verschiedenen Arten von Daten herstellen. In einer Ausführungsform kann eine relationale Datenbankstruktur für die Organisation der Daten verwendet werden. Das heißt, die Daten werden in Tabellen gesammelt und zusammengehörige Datenteile können in einer eigenen Struktur oder einem Datensatz gruppiert werden, und zwischen diesen Strukturen und Datensätzen können Beziehungen definiert werden. Solche Strukturen und Datensätze können der Hochrechnungsengine 160 bereitgestellt werden, welche die gespeicherten Daten aus der Protokolldatenbank 150 abruft und die Daten für die weitere Analyse prüft. Wie oben in Bezug auf 1 erläutert, können die Daten aus der Protokolldatenbank in einer Ausführungsform an die zentrale Protokolldatenbank 115 übertragen werden. Die zentrale Protokolldatenbank 115 konsolidiert und speichert alle von den Geräten im Netzwerk (z. B. den Geräten 110, 120 und 130) empfangenen Daten.
-
In Block 315 kann die Hochrechnungsengine 160 ermitteln, ob es zusätzliche Daten aus der zentralen Protokolldatenbank gibt, die berücksichtigt werden können. Wenn zusätzliche Daten, in Block 320, identifiziert werden, können diese Daten abgerufen werden. In Block 325 berechnet die Hochrechnungsengine Objekte (z. B. Inhalte) voraus, welche die Hochrechnungsengine 160 als wünschenswert für den Benutzer ermittelt hat, und wählt sie prädiktiv aus. Der Prozess der prädiktiven Auswahlen kann das Abrufen von Daten aus der Protokolldatenbank 150 und die Durchführung von Datenanalysen für die Interpretation der Daten beinhalten. Wie oben in Bezug auf 1 beschrieben, kann die Hochrechnungsengine eine Hochrechnungsregel erstellen, die die zukünftige Nachfrage nach Objekten ausgehend von verschiedenen Faktoren vorausberechnet, beispielsweise den historischen Datenverbrauchsmustern des Benutzers.
-
In Block 330 werden die prädiktiv ausgewählten Objekte aus der Objektdatenbank 180 abgerufen. In Block 335 erzeugt der Objektsender 190 Warteschlangen, indem er die ausgewählten Objekte auf Grundlage der Geräte, an welche die Objekte übertragen werden, in Warteschlangen gruppiert. Wenn zum Beispiel ein Objekt a an Peer-1 240 übertragen werden soll (wie in 2 dargestellt), kann das Objekt a in die Peer-1-Warteschlange 210 gruppiert werden. Ebenso wenn zum Beispiel ein Objekt b an Peer-2 250 übertragen werden soll (wie in 2 dargestellt), kann das Objekt b in die Peer-2-Warteschlange 220 gruppiert werden. In einer Ausführungsform kann es mehrere Objekte geben, die an das gleiche Gerät übertragen werden sollen. Zum Beispiel können zusätzlich zu dem Objekt a auch die Objekte c und d für die Übertragung an Peer-1 240 vorgesehen sein. Entsprechend können die Objekte c und d zusammen mit Objekt a in die Peer-1-Warteschlange 210 gruppiert werden. In dieser Situation, in Block 340, kann der Gruppierungsprozess auch die Klassifizierung der Objekte a, b und c ausgehend von ihren Synchronisierungsprioritäten umfassen. Zum Beispiel kann das Objekt a eine höhere Priorität haben als die Objekte b und c. Entsprechend kann das Objekt a so eingestellt werden, dass es zuerst synchronisiert und an Peer-1 übertragen wird, bevor die Objekte b und c synchronisiert werden.
-
In Block 345 kann der Prozess der Übertragung von Objekten damit beginnen, dass die Warteschlange mit der höchsten Synchronisierungspriorität verarbeitet wird. Zum Beispiel kann die Peer-1-Warteschlange 210 eine höhere Priorität haben als die Peer-2-Warteschlange 220 und/oder die Peer-N-Warteschlange 230. Dementsprechend initiiert der Objektsender 190 den Prozess der Objektübertragung, indem er die Peer-1-Warteschlange 210 zuerst verarbeitet. Wie oben mit Bezug auf 2 näher erläutert, kann die Synchronisierungspriorität jeder Warteschlange auf der Synchronisierungspriorität basieren, die dem mit der Warteschlange verknüpften Gerät zugewiesen wurde. Zum Beispiel kann die Synchronisierungspriorität der Peer-1-Warteschlange 210 ausgehend von der Synchronisierungspriorität von Peer-1 240 festgelegt werden.
-
In einer Ausführungsform kann die Synchronisierungspriorität der Peer-Warteschlange ausgehend von bestimmten Daten festgelegt werden, die von der Überwachungsengine 140 überwacht werden. Wie oben in Bezug auf 1 näher beschrieben, kann die Überwachungsengine 140 verschiedene Attribute des Geräts 110 überwachen, einschließlich Informationen zum Batteriestand, Verbrauchsraten der Batterieleistung, Arbeits-/Datenspeicherkapazität, Signalstärke im drahtlosen Netz, Netzwerkdetails und/oder ähnlichem. Ausgehend von den Daten im Zusammenhang mit diesen Attributen kann die Hochrechnungsengine 160 schlussfolgern, dass die Ressourcen des Geräts 110 stark beansprucht werden. Zum Beispiel kann die Überwachungsengine 140 feststellen, dass der Batteriestand für das Gerät 110 niedrig ist, die Netzwerkbandbreite begrenzt ist und der Netzwerk-Traffic kostenpflichtig ist (z. B. 3G oder Roaming). Entsprechend kann die Hochrechnungsengine 160 Befehle ausgeben, damit die Übertragung von Objekten angehalten, reduziert oder gesperrt wird, um die Nutzung der Ressourcen zu begrenzen. In einer Ausführungsform kann die Hochrechnungsengine 160 die Synchronisierungspriorität der Peer-Warteschlangen und/oder der Objekte in solchen Warteschlangen herabsetzen, wenn diese zum Beispiel mehr Batterieleistung, Netzwerkbandbreite und/oder Speicherplatz benötigen. In einer anderen Ausführungsform kann das System die Synchronisierungsvorgänge entsprechend den Befehlen von der Hochrechnungsengine 160 durch den Synchronisierungsmanager sperren lassen, um die Synchronisierung auf Grundlage von Informationen zum Batteriestand, Verbrauchsraten der Batterieleistung, Speicherplatz, Signalstärke im drahtlosen Netz und Netzwerkdetails zu sperren.
-
In einer anderen Ausführungsform kann das Gerät 110, nach der Feststellung, dass die Peer-1-Warteschlange 210 ausgehend von dem mit der Warteschlange verknüpften Peer-1 240 die höchste Synchronisierungspriorität hat, ermitteln, ob Peer-1 240 für das Gerät 110 verfügbar ist. Wenn ja, kann die Warteschlange verarbeitet werden und das Objekt wird auf Peer-1 240 synchronisiert (z. B. kopiert). Falls das Gerät jedoch nicht verfügbar ist, kann Gerät 110 den Benutzer dazu auffordern, das Gerät verfügbar zu machen. Diese Aufforderung kann über eine Benutzeroberfläche (z. B. einen Bildschirm) des Geräts und/oder eines mit dem Gerät verbundenen Ausgabegeräts erfolgen. Sobald Peer-1 240 verfügbar ist, kann die Warteschlange verarbeitet werden.
-
4 stellt ein anderes Ablaufdiagramm 400 für einen Beispielprozess nach einer anderen Ausführungsform dar. Genauer entspricht der illustrierte Prozess einem „Pull”-Modell für den Empfang von Objekten von Geräten in einem Netzwerk zur Synchronisierung. Zum Beispiel kann das Gerät 110 eine Anforderung übermitteln oder eine Transaktion initiieren, die das Herunterladen oder Streaming von Objekten (z. B. Inhalten) auf dem Gerät 110 zur Folge hat. Typischerweise würde das Gerät, das die Inhalte bereitstellt, den Transfer nach Erhalt der Anforderung von dem Gerät 110 veranlassen. Es sollte offensichtlich sein, dass die in 4 dargestellten Prozesse allgemeine Darstellungen sind und dass andere Prozesse hinzugefügt oder vorhandene Prozesse entfernt, verändert oder neu angeordnet werden können, ohne vom Zweck und der Absicht der vorliegenden Offenbarung abzuweichen. Darüber hinaus sollte verständlich sein, dass die Prozesse ausführbare Anweisungen darstellen können, die in einem Speicher gespeichert sind und ein Verarbeitungsgerät dazu veranlassen können, Aktionen auszuführen, Zustände zu ändern und/oder Entscheidungen zu treffen. Daher können die beschriebenen Prozesse als ausführbare Anweisungen und/oder Vorgänge umgesetzt werden, die von einem Speicher bereitgestellt werden, der mit einem Computergerät verknüpft ist, beispielsweise dem Gerät 110, wie in 1 und 2 dargestellt. Darüber hinaus soll 4 die Umsetzung der beschriebenen Ausführungsformen nicht einschränken, sondern die Figur stellt vielmehr funktionale Informationen dar, die ein Fachmann nutzen kann, um Schaltpläne zu entwerfen/herzustellen, Software zu erstellen oder eine Kombination aus Hardware und Software zu nutzen, um die dargestellten Prozesse auszuführen.
-
Der Prozess 400 kann bei Block 405 beginnen, wobei die Überwachungsengine 140 die Benutzeraktivität und die Geräteinformationen am Gerät 110 überwacht. In Block 410 ermittelt die Überwachungsengine 140, ob eine der überwachten Aktivitäten oder Systeminformationen darauf hinweist, dass ein Benutzer des Geräts 110 eventuell sofortigen Zugriff auf bestimmte Objekte benötigt (z. B. Inhalte). Dieser Prozess kann insbesondere zum Beispiel die Durchführung eines Ermittlungsprozesses beinhalten, in dem die Überwachungsvorrichtung feststellen kann, dass einige Benutzeraktivitäten darauf hinweisen, dass sofortiger Zugriff auf ein Objekt benötigt wird; dabei kann es sich um eine bestimmte Datei oder einen Satz von Dateien handeln. Zum Beispiel kann der Benutzer zu einem bestimmten Ordner mit Inhalten navigieren und die Überwachungsengine 140 kann in diesem Fall diese Aktivität als Hinweis auf eine anstehende Anforderung für den Zugriff auf die Dateien in diesem bestimmten Ordner interpretieren. Andere Beispiele können beispielsweise, jedoch nicht ausschließlich, das Öffnen einer bestimmten Anwendung durch den Benutzer, die Verbindung mit einer bestimmten LAN-Verbindung und die Suche nach einer bestimmten Datei umfassen.
-
Falls festgestellt wird, dass der Benutzer des Geräts 110 eventuell sofortigen Zugriff auf ein Objekt benötigt, kann der Synchronisierungsprozess von der Hochrechnungsengine 160 veranlasst werden. In Block 420 erzeugt die Hochrechnungsengine 160 eine Benachrichtigung bezüglich der Synchronisierung. Die Benachrichtigung über die Synchronisierung kann das Objekt identifizieren (z. B. die bestimmte Datei oder den Satz von Dateien), angeben, dass das Objekt auf dem Gerät 110 synchronisiert werden muss, und eine Anforderung für den Abruf von Inhalten umfassen. Darüber hinaus kann die Benachrichtigung über die Synchronisierung anfordern, dass die mit dem Objekt verknüpfte Synchronisierungspriorität auf den Geräten geändert wird.
-
In Block 425 sendet die Hochrechnungsengine 160 die Benachrichtigung über die Synchronisierung an die anderen Geräte, die mit dem Benutzer oder Benutzerkonto verknüpft sind. Insbesondere kann dieser Prozess die Identifizierung anderer Geräte, die mit dem Benutzer oder Benutzerkonto verknüpft sind, beinhalten und die Feststellung, ob es eventuell auf einem der verknüpften Geräte eine neuere Version des Objekts gibt. Zum Beispiel kann das zu synchronisierende Objekt eine digitale Publikationsdatei sein. Die Hochrechnungsengine 160 kann angeben, dass die Geräte 120 und 130 mit dem Benutzer von Gerät 110 oder dem Benutzerkonto verknüpft sind und dass die Geräte 120 und 130 über eine Kopie des Objekts verfügen könnten (möglicherweise in einem anderen Format), welches der digitalen Publikationsdatei entspricht. Dementsprechend kann die Hochrechnungsengine 160 die Benachrichtigung über die Synchronisierung an die Geräte 120 und 130 senden. In einer anderen Ausführungsform kann die zentrale Hochrechnungsengine 125 die Benachrichtigung über die Synchronisierung an die Geräte senden, die mit dem Benutzer oder Benutzerkonto verknüpft sind, mit der Angabe, dass das Objekt synchronisiert werden muss.
-
In einer Ausführungsform wird die Anfrage, wenn die Benachrichtigung über die Synchronisierung eingeht, vorzugsweise von einem zentralen Referenzpunkt bestätigt, um zu bestätigen, dass die Anfrage von einem gültigen Gerät kam. Bei dieser Prüfung werden vorzugsweise Sicherheitsinformationen validiert, die in einer Nachrichtenkopfzeile oder ähnlichem eingebettet sind. Diese Sicherheitsinformationen werden vorzugsweise mit einem Schlüssel verschlüsselt, den nur gültige Geräte und Server besitzen. Es kann jedoch nach Wunsch eine beliebige Anzahl von Überprüfungstechniken genutzt werden, wie zum Beispiel Public-Key-Verschlüsselung, digitale Signaturzertifikate und/oder ähnliche. Falls die Anfrage ungültig ist, wird vorzugsweise eine Fehlermeldung an das Gerät, das die Mitteilung gesendet hat (d. h. Gerät 110), zurückgesendet, mit der Angabe, dass das Gerät nicht autorisiert ist, das Synchronisierungssystem zu nutzen.
-
Als Reaktion auf die Benachrichtigung über die Synchronisierung verarbeiten die Geräte 120 und 130 die Benachrichtigung. Dieser Prozess kann die Feststellung beinhalten, ob in den Objektdatenbanken in den Geräten 120 und 130 eine Kopie des Objekts vorhanden ist. Wenn bestätigt wird, dass das Objekt vorhanden ist, wird die mit dem Objekt verknüpfte Synchronisierungspriorität auf dem Gerät erhöht, auf dem sich das Objekt befindet (z. B. Gerät 120 oder Gerät 130 oder beiden Geräten) und in Block 430 überträgt das Gerät das Objekt gemäß seinen eigenen Konfigurationseinstellungen und der Netzwerkverfügbarkeit an das Gerät 110. In Block 425 wird das Objekt vom Objektempfänger 170 im Gerät 110 empfangen. In einigen Ausführungsformen kann die Übertragung direkt von einem Gerät zu einem anderen erfolgen. In einer anderen Ausführungsform kann die Übertragung des Objekts über die Cloud 105 erfolgen.
-
In einer Ausführungsform kann die Übertragung des Objekts zum Gerät 110 ausgehend von bestimmten Daten, die von der Überwachungsengine 140 überwacht werden, gesperrt oder angehalten werden. Wie oben in Bezug auf 1 näher beschrieben, kann die Überwachungsengine 140 verschiedene Attribute des Geräts 110 überwachen, einschließlich Informationen zum Batteriestand, Verbrauchsraten der Batterieleistung, Arbeits-/Datenspeicherkapazität, Signalstärke im drahtlosen Netz, Netzwerkdetails und/oder ähnlichem. Ausgehend von den Daten im Zusammenhang mit diesen Attributen kann die Hochrechnungsengine 160 schlussfolgern, dass die Ressourcen des Geräts 110 stark beansprucht werden. Zum Beispiel kann die Überwachungsengine 140 feststellen, dass der Batteriestand für das Gerät 110 niedrig ist, die Netzwerkbandbreite begrenzt ist und/oder der Netzwerk-Traffic kostenpflichtig ist (z. B. 3G oder Roaming). Entsprechend kann die Hochrechnungsengine 160 Befehle ausgeben, damit die Übertragung des Objekts angehalten oder gesperrt wird, um die Nutzung der Ressourcen zu begrenzen.
-
In Block 435 kann das Objekt in der Objektdatenbank des Geräts 110 gespeichert werden. In einer Ausführungsform können die Geräte 120 und 130 die Benachrichtigung über die Synchronisierung in den Protokolldatenbanken der Geräte 120 und 130 speichern und können solche Informationen nutzen, um die historischen Synchronisierungsdaten in jeder Datenbank zu verbessern. Darüber hinaus kann das Gerät 110 in einer anderen Ausführungsform eine Konfliktlösung für die Synchronisierungsinformationen durchführen, die es von mehreren Geräten erhalten hat.
-
Während die vorstehende Offenbarung mit Bezug auf die vorstehenden Beispiele gezeigt und beschrieben wurde, sollte offensichtlich sein, dass andere Formen, Details und Ausführungsformen möglich sind, ohne von der Absicht und dem Zweck der in den folgenden Ansprüchen definierten Offenbarung abzuweichen.