-
QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
-
Die vorliegende Anmeldung beansprucht den Vorteil und die Priorität der vorläufigen
US-Patentanmeldung mit der Nr. 62/413,169 , eingereicht am 26. Oktober 2016, die hierin unter Bezugnahme in ihrer Gesamtheit eingeschlossen wird.
-
GEBIET DER ERFINDUNG
-
Die vorliegende Erfindung betrifft Einrichtungsinteroperabilität für Benutzereinrichtungen.
-
KURZFASSUNG
-
Ein Einrichtungsinteroperabilitätssystem für eine oder mehrere Benutzereinrichtungen, die mit einem Benutzer assoziiert sind, wobei die eine oder die mehreren Benutzereinrichtungen eine erste Benutzereinrichtung umfassen, das Einrichtungsinteroperabilitätssystem umfasst: ein Kommunikationsmodul, wobei eine erste Verbindung zwischen der ersten Benutzereinrichtung und dem Kommunikationsmodul erstellt wird; einen Speicher, der mit dem Einrichtungsinteroperabilitätssystem assoziiert und mit dem Kommunikationsmodul gekoppelt ist, wobei der Speicher ein Betriebssystem, ein oder mehrere Programme und mit dem Benutzer assoziierte Daten speichert, ferner wobei das Betriebssystem durch die erste Benutzereinrichtung über die erste Verbindung gebootet wird; und ein oder mehrere Prozessoren zum Unterstützen des Einrichtungsinteroperabilitätssystems.
-
Ein Verfahren zur Einrichtungsinteroperabilität für eine oder mehrere Benutzereinrichtungen, die mit einem Benutzer assoziiert sind, wobei die eine oder die mehreren Benutzereinrichtungen eine erste Benutzereinrichtung umfassen; wobei das Verfahren umfasst: Erstellen einer ersten Verbindung zwischen der ersten Benutzereinrichtung und einem Einrichtungsinteroperabilitätssystem über ein Kommunikationsmodul innerhalb des Einrichtungsinteroperabilitätssystems; Speichern, unter Verwendung eines Speichers innerhalb des Einrichtungsinteroperabilitätssystems, eines Betriebssystems, eines oder mehrerer Programme und von mit dem Benutzer assoziierten Daten; und Booten des Betriebssystems durch die erste Benutzereinrichtung über die erste Verbindung.
-
Die vorstehenden und zusätzliche Aspekte und Ausführungsformen der vorliegenden Offenbarung werden Durchschnittsfachleuten hinsichtlich der ausführlichen Beschreibung verschiedener Ausführungsformen und/oder Aspekte ersichtlich, die unter Bezugnahme auf die Zeichnungen, die als Nächstes kurz beschrieben werden, durchgeführt werden.
-
Figurenliste
-
Die vorstehenden und andere Vorteile der Offenbarung werden beim Lesen der folgenden ausführlichen Beschreibung und unter Bezugnahme auf die Zeichnungen ersichtlich werden.
- 1 veranschaulicht eine Situation für einen Benutzer mit einer oder mehreren Benutzereinrichtungen.
- 2A veranschaulicht ein Beispiel für ein Einrichtungsinteroperabilitätssystem, das in Verbindung mit den Benutzereinrichtungen arbeitet.
- 2B veranschaulicht eine beispielhafte Architektur für das Einrichtungsinteroperabilitätss ys tem.
- 2C veranschaulicht ein Beispiel für ein Gerät, das das Einrichtungsinteroperabilitätssystem ausführen soll.
- 2D stellt ein Beispiel dar, bei dem das Einrichtungsinteroperabilitätssystem in einer Benutzereinrichtung integriert ist.
- 2E stellt ein Beispiel dar, bei dem das Einrichtungsinteroperabilitätssystem als eine Anwendung auf einer Benutzereinrichtung ausgeführt wird.
- 3A stellt einen beispielhaften Algorithmus für eine Benutzereinrichtungsumschaltbarkeit zwischen einem „unabhängigen“ und einem „Interoperabilitätssystem“-Modus dar.
- 3B stellt einen beispielhaften Algorithmus zum Schalten des Betriebssystems zwischen unterschiedlichen Hardwarekonfigurationen beim Booten dar.
- 4A stellt ein Ausführungsbeispiel einer Caching-Operation dar.
- 4B veranschaulicht ein Ausführungsbeispiel eines Cachens, bei dem zusätzliche Prüfungen vor dem Schreiben von Daten in den Cache durchgeführt werden.
- 4C stellt ein Ausführungsbeispiel eines Vorabrufs zu einem Cache dar.
-
Obwohl die vorliegende Offenbarung für verschiedene Modifikationen und alternative Formen empfänglich ist, sind spezifische Ausführungsformen oder Implementierung beispielhaft in den Zeichnungen dargestellt worden und werden hierin ausführlich beschrieben. Es versteht sich jedoch, dass nicht beabsichtigt wird, dass die Offenbarung auf die speziellen offenbarten Formen beschränkt ist. Stattdessen sollte die Offenbarung alle Modifikationen, Äquivalente und Alternativen abdecken, die innerhalb des Gedankens und Schutzumfangs einer Erfindung, wie durch die angehängten Ansprüche definiert, fallen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die Anzahl von Einrichtungen, die einer Person gehören oder durch diese betrieben wird, hat enorm zugenommen. Typischerweise besitzt eine Person mehrere Recheneinrichtungen, wie etwa:
- - Smartphones,
- - Tablets,
- - Desktops,
- - Laptops,
- - Spielekonsolen,
- - Smartwatches/-bands, und
- - intelligente Brillen.
-
Zusätzlich dazu sind viele andere Einrichtungen und Gegenstände „intelligent“ geworden, das heißt ihre Rechenfähigkeiten und Verarbeitungsleistung haben zugenommen und sie sind netzwerkfähig geworden. Diese beinhalten zum Beispiel:
- - Fahrzeuge, wie etwa Autos und Lastwagen,
- - Fernseh(TV)-Geräte,
- - Küchengeräte, wie etwa Kühlschränke und Mikrowellen,
- - Kameras,
- - Fitnesseinrichtungen, wie etwa Fitbit®,
- - medizinische Einrichtungen, wie etwa Blutdruckmonitore und Herzfrequenzmonitore,
- - Klimaanlagensysteme, und
- - intelligente Haussysteme.
-
Des Weiteren ist das „Internet der Dinge“ (IoT - Internet of Things) enorm gewachsen. Das IoT bezieht sich auf Netzwerke von Verbraucher- und Industrieeinrichtungen, die miteinander und mit anderen Recheneinrichtungen verbunden sind.
-
All dies bedeutet, dass die Anzahl von Einrichtungen, die Rechen- und Netzwerkfähigkeit aufweisen und mit einem speziellen Benutzer assoziiert sind, rasant zunimmt.
-
1 veranschaulicht diese Situation. In 1 umfassen Benutzereinrichtungen 101-1 bis 101-N die mit einem Benutzer 100 assoziierten Einrichtungen. Diese beinhalten zum Beispiel die elektronischen Recheneinrichtungen und die anderen oben erwähnten Einrichtungen und Gegenstände.
-
In Anbetracht der in 1 dargestellten Situation stehen Benutzer, wie etwa der Benutzer 100, vor vielen verschiedenen Herausforderungen. Erstens müssen Dokumente und Daten von unterschiedlichen Einrichtungen miteinander synchronisiert werden. Typischerweise wird dies zum Beispiel unter Verwendung von Folgendem durchgeführt:
- - Portablen Datenspeichereinrichtungen, wie etwa USB(Universal Serial Bus)-Flash-Laufwerken und entfernbaren Festplatten, und
- - Netzwerk- oder „Cloud“-basierten Techniken.
-
Diese Techniken von Dokument- und Datensynchronisation weisen Mängel auf. Cloud-Konnektivität ist möglicherweise nicht immer vorhanden. Wenn sie vorhanden ist, kann die Konnektivität unregelmäßig oder langsam sein. Außerdem kann Datenschutz mit Cloud-basierten Techniken ein Problem sein.
-
Zweitens kann die Synchronisation aufgrund dessen, dass jede Recheneinrichtung und jeder Verbrauchergegenstand unterschiedliche Betriebssysteme (OSes) und unterschiedliche Plattformen ausführt, mangelhaft oder unvollständig sein. Mit Bezug auf 1 besitzen die Benutzereinrichtung 101-1 bis 101-N ihre eigenen Verarbeitungs- und Speichermöglichkeiten und können unterschiedliche OSes, Plattformen und Software ausführen. Infolgedessen wird der Benutzer gezwungen, sich an unterschiedliche Umgebungen auf unterschiedlichen Einrichtungen zu gewöhnen und außerdem dieselben Aufgaben für mehrere Einrichtungen zu wiederholen, zum Beispiel das Installieren von Anwendungen, das Anpassen von Einstellungen oder das Durchführen von Dienstaufgaben, wie Softwareaktualisierungen oder Antivirusscannen. Die Kompatibilität kann auch ein Problem sein. Als ein Beispiel kann, falls der Benutzer 100 eine Datei zuerst mit der Benutzereinrichtung 101-1 und dann mit der Benutzereinrichtung 101-2 bearbeitet, diese Datei infolge der unterschiedlichen Versionen der Bearbeitungssoftware, die auf der Benutzereinrichtung 101-1 und 101-2 installiert ist, beschädigt werden.
-
Es ist daher notwendig, diese Mängel bei der Einrichtungssynchronisation anzusprechen, um eine kontinuierliche Zunahme und Annahme von „intelligenter“ Technologie und die Interoperabilität dieser Benutzereinrichtungen zu gewährleisten.
-
Der Rest dieser Spezifikation legt ein System und ein Verfahren zur Einrichtungsinteroperabilität ausführlich dar, um die obigen Probleme anzusprechen. Eine beispielhafte Architektur eines derartigen Einrichtungsinteroperabilitätssystems 200 ist in den 2A und 2B dargestellt. In 2A werden eine oder mehrere Verbindungen 201-1, 201-2, 201-3 bis 201-N zwischen dem Einrichtungsinteroperabilitätssystem 200 und einer oder mehreren Benutzereinrichtungen 101-1, 101-2, 101-3 bis 101-N wie erforderlich erstellt. Bei einer Ausführungsform initiieren die eine oder die mehreren Benutzereinrichtungen 101-1, 101-2, 101-3 bis 101-N die Erstellung der Verbindung. Bei einer anderen Ausführungsform initiiert das Einrichtungsinteroperabilitätssystem 200 die Erstellung der Verbindung.
-
Das Einrichtungsinteroperabilitätssystem 200 umfasst mehrere Komponenten, die für seine Funktionsfähigkeit notwendig sind. Eine Veranschaulichung einer Ausführungsform des Einrichtungsinteroperabilitätssystems 200 ist in 2B dargestellt. Wie in 2B dargestellt, umfasst das Einrichtungsinteroperabilitätssystem 200 eine Batterie 211, ein Batterielademodul 221, einen Speicher 212, einen oder mehrere Prozessoren 215 und ein Kommunikationsmodul 213.
-
Der eine oder die mehreren Prozessoren 215 führen die Funktionen des Unterstützens der anderen Elemente des Einrichtungsinteroperabilitätssystems 200 durch. Diese beinhalten zum Beispiel:
- - Aufrechterhalten einer Verbindung zwischen den Elementen des Einrichtungsinteroperabilitätssystems 200,
- - Aufrechterhalten der Gesamtsicherheit des Einrichtungsinteroperabilitätssystems 200, und
- - Dienstfunktionen, die für den Betrieb des Einrichtungsinteroperabilitätssystems 200 notwendig sind.
-
Das Kommunikationsmodul 213 nimmt an der Erstellung der einen oder der mehreren Verbindungen 201-1 bis 201-N teil. Das Kommunikationsmodul 213 arbeitet auch, um die eine oder die mehreren Verbindungen 201-1 bis 201-N zu der einen oder den mehreren Benutzereinrichtungen 101-1 bis 101-N aufrecht zu erhalten. Das Kommunikationsmodul 213 arbeitet auch, um Operationen durchzuführen, die zum Sichern der Verbindungen 201-1 bis 201-N notwendig sind. Diese beinhalten zum Beispiel Verschlüsselungs- und Zugriffsoperationen. Bei einer Ausführungsform verwaltet und optimiert das Kommunikationsmodul 213 auch den Leistungsverbrauch bezüglich der einen oder den mehreren Verbindungen 201-1 bis 201-N. Das Kommunikationsmodul 213 passt zum Beispiel die Übertragungsleistungen, die für die eine oder die mehreren Verbindungen 201-1 bis 201-N verwendet werden, basierend auf Abständen von Benutzereinrichtungen, wie etwa der Benutzereinrichtung 101-1, an.
-
Die Batterie 211 liefert Leistung für den Betrieb des Einrichtungsinteroperabilitätssystems 200. Das Lademodul 221 ermöglicht die Ladung der Batterie 211 unter Verwendung einer externen Leistungsquelle. Bei einer Ausführungsform ermöglicht das Lademodul 221 eine drahtlose Ladung.
-
Wie in 2B dargestellt, ist der Speicher 212 mit dem Kommunikationsmodul 213 gekoppelt und wird zum Speichern eines OS 214, von Programmen und Daten 216, die für die Funktionsfähigkeit des Einrichtungsinteroperabilitätssystems 200 notwendig sind, verwendet. Benutzerpräferenzen, Anwendungen und Benutzerdokumente und Daten können zum Beispiel auch auf dem Speicher 212 gespeichert werden. Die Funktionsfähigkeit des OS 214 wird unten ausführlich besprochen. Bei einer Ausführungsform wird der Speicher 212 unter Verwendung von energieeffizienter Speichertechnologie, wie etwa SSD- (Solid State Drive - Festkörperlaufwerk) oder eMMC-Flash-Speichertechnologie (eMMC: embedded MultiMedia Controller - eingebettete Multimedia-Steuerung) gebildet. Bei einer Ausführungsform sind die in dem Speicher 212 gespeicherten Informationen verschlüsselt. Dies verringert das Risiko, dass eine bösartige Partei einen Zugriff auf die gespeicherten Informationen erhält. Bei einer Ausführungsform wird der fortschrittliche Verschlüsselungsstandard (AES: Advanced Encryption Standard) zur Verschlüsselung verwendet.
-
Mit Bezug auf die 2A und 2B wird die Verbindung 201-1 zwischen dem Einrichtungsinteroperabilitätssystem 200 und der Benutzereinrichtung 101-1 erstellt, bevor das native OS der Benutzereinrichtung 101-1 geladen wird. Sobald die Verbindung 201-1 mit der Benutzereinrichtung 101-1 erstellt ist, wird das OS 214 aus dem Speicher 212 auf der Benutzereinrichtung 101-1 gebootet und ausgeführt. Dann ist die Benutzereinrichtung 101-1 in der Lage, auf Daten und Programmcode, die auf dem Speicher 212 gespeichert sind, wie erforderlich zuzugreifen. Der Programmcode des OS 214 und installierte Anwendungen werden auf der Benutzereinrichtung, mit der das Einrichtungsinteroperabilitätssystem 200 verbunden ist, ausgeführt und verwenden die Verarbeitungsmöglichkeiten dieser Benutzereinrichtung für ihren Betrieb. Beispielsweise unter Bezugnahme auf 2A wird dann, falls das Einrichtungsinteroperabilitätssystem 200 mit der Benutzereinrichtung 101-1 verbunden ist, der Programmcode auf der Benutzereinrichtung 101-1 unter Verwendung der Verarbeitungsleistung und des Speichers der Benutzereinrichtung 101-1 wie erforderlich ausgeführt. Die Erstellung der Verbindung 201-1 und das anschließende Booten des OS 214 wird auf eine Vielfalt von Weisen durchgeführt, wie unten ausführlich beschrieben wird.
-
Bei einer Ausführungsform ist mindestens eine der Verbindungen 201-1 bis 201-N eine direkte Verbindung. Diese direkte Verbindung kann zum Beispiel eine direkte drahtlose Verbindung sein.
-
Bei manchen Ausführungsformen umfasst die Benutzereinrichtung 101-1 Firmware, die die Fähigkeit zum Unterstützen des Bootens vom Einrichtungsinteroperabilitätssystem 200 über eine direkte drahtlose Verbindung bereitstellt. Bei einer Ausführungsform umfasst die Benutzereinrichtung 101-1 zum Beispiel ein BIOS (Basic Input Output System) oder eine UEFI (Unified Extensible Firmware Interface), das bzw. die die medienagnostische USB-Spezifikation unterstützt. Dies ermöglicht der Benutzereinrichtung 101-1, das USB-Protokoll über die direkte drahtlose Verbindung zu verwenden, um das Booten des OS 214 auf der Benutzereinrichtung 101-1 und den Datentransfer zwischen dem Einrichtungsinteroperabilitätssystem 200 und der Benutzereinrichtung 101-1 zu ermöglichen.
-
Bei manchen Ausführungsformen umfasst die Benutzereinrichtung 101-1 keine Firmware, die die Fähigkeit zum Unterstützen des Bootens vom Einrichtungsinteroperabilitätssystem 200 über eine direkte drahtlose Verbindung bereitstellt. Dann ist es notwendig, einen Vermittler zu verwenden. Bei einer Ausführungsform ist das Einrichtungsinteroperabilitätssystem 200 zum Beispiel drahtlos mit einem Miniatur-USB-Dongle verbunden, der in einen USB-Port an der Benutzereinrichtung 101-1 eingesteckt ist. Dann wird der Miniatur-USB-Dongle ein USB-Flash-Laufwerk simulieren, das mit der Benutzereinrichtung 101-1 verbunden ist. Wenn dann die Benutzereinrichtung 101-1 eingeschaltet wird, wird die direkte drahtlose Verbindung zwischen dem Miniatur-USB-Dongle und dem Einrichtungsinteroperabilitätssystem 200 erstellt. Dann wird das OS 214 auf der Benutzereinrichtung 101-1 aus dem Speicher 212 gebootet, als ob es ein gewöhnliches USB-Flash-Laufwerk ist, das mit dem USB-Port verbunden ist. Bei einer Ausführungsform muss der Benutzer die BIOS- oder UEFI-Einstellungen für die Benutzereinrichtung 101-1 ändern, sodass die Benutzereinrichtung 101-1 vom Einrichtungsinteroperabilitätssystem 200 booten wird.
-
Bei einer anderen Ausführungsform ist die direkte Verbindung eine direkte verdrahtete Verbindung. Bei einer weiteren Ausführungsform beinhaltet die mindestens eine direkte verdrahtete Verbindung zum Beispiel eine USB-Verbindung. Bei weiteren Ausführungsformen ist die direkte verdrahtete Verbindung eine Verbindung, die über Andocken ermöglicht wird. Bei noch einer anderen Ausführungsform ist mindestens eine der Verbindungen 201-1 bis 201-N direkt drahtlos und ist mindestens eine der Verbindungen 201-1 bis 201-N direkt verdrahtet.
-
Wenn die Verbindung 201-1 zwischen der Benutzereinrichtung 101-1 und dem Einrichtungsinteroperabilitätssystem 200 über Andocken ermöglicht wird, sind auch weitere Ausführungsformen möglich. Bei einer Ausführungsform weisen sowohl die Einrichtung, auf der das Einrichtungsinteroperabilitätssystem 200 installiert ist, als auch die Benutzereinrichtung 101-1 direkte Andockmöglichkeiten auf, einschließlich zum Beispiel Andockports. Dann interagiert das Einrichtungsinteroperabilitätssystem 200 mit der Benutzereinrichtung 101-1 über diese direkten Andockmöglichkeiten. Bei noch einer anderen Ausführungsform ist die Einrichtung, auf der das Einrichtungsinteroperabilitätssystem 200 installiert ist, mit einer Andockstation gekoppelt, die mit der Benutzereinrichtung 101-1 verbunden ist. Bei einer weiteren Ausführungsform wird, wenn die Andockstation mit der Benutzereinrichtung 101-1 mit zum Beispiel einem USB-Kabel verbunden ist, die Benutzereinrichtung 101-1 die Andockstation mit der Einrichtung, auf der das Einrichtungsinteroperabilitätssystem 200 installiert ist, als ein verbundenes externes USB-Laufwerk erkennen. Bei einer Ausführungsform muss der Benutzer die BIOS- oder UEFI-Einstellungen für die Benutzereinrichtung 101-1 ändern, sodass die Benutzereinrichtung 101-1 von der USB-verbundenen Einrichtung booten wird. Bei einer weiteren Ausführungsform stellt die Andockstation ein Laden für die Einrichtung, auf der das Einrichtungsinteroperabilitätssystem 200 installiert ist, bereit.
-
Obwohl das Obige Situationen beschreibt, bei denen die Verbindungen 201-1 bis 201-N direkte Verbindungen zwischen zwei Einrichtungen sind, würde ein Fachmann wissen, dass es auch möglich ist, indirekte Verbindungen zu verwenden. Bei einer anderen Ausführungsform ist mindestens eine der Verbindungen 201-1 bis 201-N indirekte Verbindungen. Diese indirekten Verbindungen beinhalten zum Beispiel eine oder mehrere der Folgenden:
- - Verbindungen, die über ein Lokalnetz (LAN: Local Area Network) ermöglicht werden, oder
- - Verbindungen, die über einen Cloud-basierten Dienst ermöglicht werden. Bei einer weiteren Ausführungsform, wenn mindestens zwei der oben beschriebenen Typen von Verbindungen verfügbar sind, wird die Auswahl zwischen Verbindungstypen automatisch für mindestens eine der Verbindungen 201-1 bis 201-N durchgeführt. Bei einer Ausführungsform basiert die Auswahl auf den folgenden Faktoren:
- - Verbindungsgeschwindigkeit,
- - Verbindungslatenz,
- - Datenübertragungskosten,
- - Benutzerpräferenzen.
-
Bei einer weiteren Ausführungsform wird, wenn die Konnektivität verloren ist, ein anderer Typ von entweder direkter oder indirekter Verbindung automatisch ausgewählt.
-
Bei einer weiteren Ausführungsform ist die mindestens eine Verbindung gesichert. Die Sicherung wird zum Beispiel durch Folgendes durchgeführt:
- - Verschlüsselung unter Verwendung von Techniken, wie etwa WPA2 (Wi-Fi Protected Access - geschützter WiFi-Zugriff), und
- - Erfordern einer Zugangsauthentifizierung an beiden Endpunkten einer Verbindung, wenn die Verbindung zuerst erstellt wird. Dies wird zum Beispiel unter Verwendung von Passwörtern und Techniken, wie etwa NFC-(NFC: Near Field Communication - Nahfeldkommunikation) oder WPSartigen (WPS: Wi-Fi Protected Setup - geschützter WiFi-Aufbau) Algorithmen durchgeführt.
-
Bei Ausführungsformen, bei denen die mindestens eine Verbindung gesichert ist, wird, bevor die Verbindung erstellt wird, eine Authentifizierung an den Endpunkten, das heißt zwischen dem Einrichtungsinteroperabilitätssystem 200 und der Benutzereinrichtung 101-1, durchgeführt.
-
Das Einrichtungsinteroperabilitätssystem 200 kann auf eine Vielfalt von Weisen implementiert werden. Bei einer Ausführungsform wird das Einrichtungsinteroperabilitätssystem 200 unter Verwendung eines separaten Geräts, wie etwa eines Geräts 210, wie in 2C dargestellt, implementiert. Dann werden die eine oder die mehreren Verbindungen 201-1 bis 201-N mit dem Gerät 210 erstellt.
-
Bei einer anderen Ausführungsform wird das Einrichtungsinteroperabilitätssystem 200 über eine Integration in eine der Benutzereinrichtungen 101-1 bis 101-N installiert. Wie zum Beispiel in 2D dargestellt, wird das Einrichtungsinteroperabilitätssystem 200 in die Benutzereinrichtung 101-1 integriert. Dies wird zum Beispiel erzielt, indem das Einrichtungsinteroperabilitätssystem 200 als ein Firmwaremodul der Benutzereinrichtung 101-1 implementiert wird. Dann verwendet das Einrichtungsinteroperabilitätssystem 200 die Batterie und/oder den Speicher und/oder das Kommunikationsmodul und/oder die Prozessoren und/oder andere Fähigkeiten der Benutzereinrichtung 101-1 auf eine ähnliche Weise wie die oben beschriebene Verwendung der Batterie 211, des Speichers 212, eines oder mehrerer Prozessoren 215 und des Kommunikationsmoduls 213 für seinen Betrieb. Das OS 214 ist innerhalb des Speichers der Benutzereinrichtung 101-1 gespeichert. Dann führt die Benutzereinrichtung 101-1 das OS 214 anstelle ihres nativen OS aus. Wenn, wie in 2D dargestellt, mindestens eine der Verbindungen 201-2 bis 201-N zwischen der Benutzereinrichtung 101-1 und mindestens einer der anderen Einrichtungen 101-2 bis 101-N erstellt ist, ermöglicht das Einrichtungsinteroperabilitätssystem 200 der verbundenen Benutzereinrichtung Folgendes:
- - Booten des OS 214, das in dem Speicher der Benutzereinrichtung 101-1 gespeichert ist, und
- - Verwenden der Programme und Daten 216, die in dem Speicher der Benutzereinrichtung 101-1 gespeichert sind.
-
Bei einer weiteren Ausführungsform werden manche Hardwarekomponenten der Benutzereinrichtung 101-1 mit dem integrierten Einrichtungsinteroperabilitätssystem 200 erkannt und durch das OS 214 als verbundene externe Einrichtungen verwendet, wenn das OS 214 auf einer anderen Einrichtung ausgeführt wird, die mit der Benutzereinrichtung 101-1 verbunden ist. Zum Beispiel in dem Fall, bei dem die Benutzereinrichtung 101-1 ein Smartphone ist: Wenn das OS 214 auf der Benutzereinrichtung 101-2 ausgeführt wird, die mit der Benutzereinrichtung 101-1 verbunden ist, werden die Hardwarekomponenten der Benutzereinrichtung 101-1, wie etwa das Mikrofon, die Sensoren, das Mobiltelekommunikationsmodul und die Anzeige, durch das OS 214 als externe Einrichtungen verwendet.
-
Bei noch einer anderen Ausführungsform wird das Einrichtungsinteroperabilitätssystem 200 als eine installierte Anwendung oder eine „App“ implementiert, die auf einer der Benutzereinrichtungen 101-1 bis 101-N, zum Beispiel der Benutzereinrichtung 101-1, ausgeführt wird. Wie zum Beispiel in 2E dargestellt, wird das Einrichtungsinteroperabilitätssystem 200 als eine App auf der Benutzereinrichtung 101-1 ausgeführt. Dann verwendet das Einrichtungsinteroperabilitätssystem 200 die Batterie und/oder den Speicher und/oder das Kommunikationsmodul und/oder die Prozessoren und/oder andere Fähigkeiten der Benutzereinrichtung 101-1 für seinen Betrieb, ähnlich wie der oben und in 2D beschriebene integrierte Fall. Ähnlich wie oben beschrieben, gibt das Einrichtungsinteroperabilitätssystem 200, wenn eine Verbindung mit einer Benutzereinrichtung erstellt wird, der verbundenen Benutzereinrichtung die Fähigkeit, das OS 214, das in dem Speicher der Benutzereinrichtung 101-1 gespeichert ist, zu booten. Bei einer anderen Ausführungsform, falls die App nicht in der Lage ist, das erforderliche Zugangsniveau auf Daten, die auf dem Speicher 212 der Benutzereinrichtung 101-1 gespeichert sind und zum Booten des OS 214 auf der Benutzereinrichtung 101-2 verwendet werden, bereitzustellen, beinhaltet das Interoperabilitätssystem 200 auch ein separates Abbild von:
- - entweder einer Kopie des OS 214, oder
- - manchen seiner Komponenten.
-
Dieses Abbild wird für sich allein oder in Verbindung mit den Komponenten des OS der Benutzereinrichtung 101-1, die auf dem Speicher der Benutzereinrichtung 101-1 gespeichert sind, verwendet, um das OS auf der Benutzereinrichtung 101-2 zu booten. Ähnlich wie die oben beschriebenen Fälle werden bei einer weiteren Ausführungsform manche Hardwarekomponenten der Benutzereinrichtung 101-1 erkannt und durch das OS 214 als verbundene externe Einrichtungen verwendet, wenn das OS 214 auf einer anderen Einrichtung ausgeführt wird, die mit der Benutzereinrichtung 101-1 verbunden ist.
-
Bei manchen der Ausführungsformen, bei denen das Einrichtungsinteroperabilitätssystem 200 über eine Integration in die Benutzereinrichtung 101-1 oder als eine App auf der Benutzereinrichtung 101-1 installiert wird, wird als Teil des Kommunikationsmoduls 213 der Benutzereinrichtung 101-1 ein externer Drahtlosadapter hinzugefügt, um zusätzliche Kommunikationsfähigkeiten bereitzustellen, die nicht auf der Benutzereinrichtung 101-1 zur Verfügung stehen, sodass die Leistungsfähigkeit und/oder die Energieeffizienz verbessert wird. Dieser externe Drahtlosadapter arbeitet zum Beispiel mit einer integrierten Steuerung, die schon auf der Benutzereinrichtung 101-1 vorhanden ist. Dann umfasst das Kommunikationsmodul 213 die integrierte Steuerung und den externen Drahtlosadapter der Benutzereinrichtung 101-1. Ein USB-Drahtlosadapter basierend auf WiGig- oder Li-Fi-Kommunikationstechnologie wird in einen USB-Port der Benutzereinrichtung 101-1 eingesteckt. Dieser eingesteckte Drahtlosadapter wird mit einer integrierten USB-Steuerung, die schon auf der Benutzereinrichtung 101-1 vorhanden ist, interagieren. Dann umfasst das Kommunikationsmodul 213 diese integrierte USB-Steuerung und den eingesteckten USB-Drahtlosadapter. Diese hinzugefügten Komponenten stellen zusätzliche Kommunikationstechnologie bereit, die nicht anfänglich auf der Benutzereinrichtung 101-1 zur Verfügung steht, um die Leistungsfähigkeit und/oder die Energieeffizienz zu verbessern.
-
Ein Beispiel für den Betrieb des Einrichtungsinteroperabilitätssystems 200 wird unten unter Bezugnahme auf eine Benutzereinrichtung, genauer gesagt die Benutzereinrichtung 101-1, ausführlich dargelegt. Die untenstehenden Beschreibungen sind auf eine Vielfalt von Situationen anwendbar, zum Beispiel:
- - das Einrichtungsinteroperabilitätssystem 200, das auf einem Gerät, wie etwa dem Gerät 210, installiert ist;
- - das Einrichtungsinteroperabilitätssystem 200 wird über Integration in eine der Benutzereinrichtungen, die sich von der Benutzereinrichtung 101-1 unterscheidet, zum Beispiel den Benutzereinrichtungen 101-2 bis 101-N, installiert; und
- - das Einrichtungsinteroperabilitätssystem 200 wird als eine App auf einer der Benutzereinrichtungen, die sich von der Benutzereinrichtung 101-1 unterscheidet, zum Beispiel den Benutzereinrichtungen 101-2 bis 101-N, installiert.
-
Zusätzlich dazu besteht eine Notwendigkeit, zu bestimmen, ob die Benutzereinrichtung 101-1 in entweder einem „unabhängigen“ oder „Einrichtungsinteroperabilitätssystem“-Modus arbeiten wird. Im unabhängigen Modus führt die Benutzereinrichtung 101-1 ihr natives OS aus. Im Interoperabilitätssystemmodus ist die Benutzereinrichtung 101-1 mit dem Einrichtungsinteroperabilitätssystem 200 verbunden und führt das OS 214 aus. Bei einer weiteren Ausführungsform ist die Benutzereinrichtung 101-1 zwischen dem unabhängigen und Interoperabilitätssystemmodus schaltbar.
-
Ein beispielhafter Algorithmus zum Schalten zwischen dem unabhängigen Modus und dem Interoperabilitätssystemmodus, der Folgendes umfasst:
- - Erstellung der Verbindung 201-1 bei den Ausführungsformen, bei denen die Verbindung 201-1 eine gesicherte Verbindung ist,
- - anschließendes Booten des geeigneten OS in Abhängigkeit davon, ob ein unabhängiger Modus oder Interoperabilitätsmodus verwendet wird,
ist in 3A bereitgestellt.
-
In 3A wird die Benutzereinrichtung 101-1 im Schritt 301 eingeschaltet. Im Schritt 302, vor der Erstellung der Verbindung 201-1, unterbreitet die Benutzereinrichtung 101-1 dem Benutzer die Option des Einrichtens für den Interoperabilitätssystemmodus.
-
Falls der Benutzer die Option des Einrichtens für den Interoperabilitätssystemmodus innerhalb einer vorbestimmten Periode im Schritt 303 annimmt, dann führt der Benutzer im Schritt 304 eine Authentifizierung durch. Bei einer Ausführungsform gibt der Benutzer im Schritt 304 einen eindeutigen String, ein eindeutiges Passwort oder eine eindeutige Passphrase ein, die für das Einrichtungsinteroperabilitätssystem 200 spezifisch sind. Bei einer anderen Ausführungsform gibt der Benutzer im Schritt 304 einen Anmeldenamen und ein Passwort ein, die für das OS 214 spezifisch sind. Bei noch einer anderen Ausführungsform verwendet der Benutzer Anmeldedaten von einer anderen Social-Media-Seite oder Webmail-Seite, zum Beispiel Facebook®, LinkedIn®, Twitter®, Google®, Gmail® oder anderen. Zusätzliche Schritte sind auch für die Authentifizierung möglich. Bei einer anderen Ausführungsform wird der Benutzer zusätzlich gefragt, eine Kombination von Buchstaben, Zahlen und Symbolen in einem Bild zu erkennen und die Kombination in ein Feld einzugeben. Ein Beispiel für einen derartigen Test ist der CAPTCHA-Test (CAPTCHA: Completely Automated Public Turing test to tell Computers and Humans Apart - vollautomatischer öffentlicher Turing-Test zur Unterscheidung von Computern und Menschen). Bei einer anderen Ausführungsform wird der Benutzer eine Sicherheitsfrage gefragt, für die nur der Benutzer die Antwort kennt. Bei noch einer anderen Ausführungsform kann der Benutzer zusätzliche persönliche Informationen gefragt werden, wie etwa Geburtsdatum und Heimatadresse. Bei einer anderen Ausführungsform wird der Benutzer gefragt, ein Bild von sich selbst aufzunehmen, und das Einrichtungsinteroperabilitätssystem 200 wird das Bild mit einem zuvor gespeicherten Bild abstimmen. Bei noch einer anderen Ausführungsform werden andere biometrische Maßnahmen, wie etwa Fingerabdruckscannen, verwendet. Die Authentifizierungsdaten werden als ein Pre-Shared-Key (vorher vereinbarter Schlüssel) verwendet und Authentifizierungs-/Verschlüsselungsschlüssel für eine verschlüsselte Verbindung werden erstellt.
-
Im Schritt 306 speichert die Benutzereinrichtung die Authentifizierungs-/Verschlüsselungsschlüssel und Verbindungsparameter zur zukünftigen Verwendung ab.
-
Im Schritt 307 wird die Verbindung 201-1 erstellt.
-
Im Schritt 308 wird das OS 214 auf der Benutzereinrichtung 101-1 gebootet.
-
Im Schritt 309 arbeitet die Benutzereinrichtung 101-1 im Einrichtungsinteroperabilitäts systemmodus.
-
Falls der Benutzer die Option zum Einrichten für den Interoperabilitätssystemmodus im Schritt 303 nicht annimmt, dann bestimmt die Benutzereinrichtung 101-1 im Schritt 305, ob sie schon für den Interoperabilitätssystemmodus eingerichtet ist. Falls die Benutzereinrichtung 101-1 im Schritt 305 schon eingerichtet ist, dann versucht die Benutzereinrichtung im Schritt 310, eine Verbindung mit dem Einrichtungsinteroperabilitätssystem 200 unter Verwendung der gespeicherten Authentifizierungsschlüssel und Parameter zu erstellen.
-
Im Anschluss an Schritt 310 wird dann, falls die Verbindungserstellung im Schritt 311 erfolgreich ist, das OS 214 auf der Benutzereinrichtung 101-1 gebootet (Schritt 308) und die Benutzereinrichtung 101-1 arbeitet im Einrichtungsinteroperabilitätssystemmodus (Schritt 309).
-
Falls die Verbindung im Schritt 311 nicht erfolgreich ist, dann lädt die Benutzereinrichtung 101-1 ihr eigenes OS im Schritt 312. Im Schritt 313 arbeitet die Benutzereinrichtung 101-1 im unabhängigen Modus.
-
Falls die Benutzereinrichtung im Schritt 305 nicht schon eingerichtet ist, dann lädt die Benutzereinrichtung 101-1 ihr eigenes OS (Schritt 312) und arbeitet im unabhängigen Modus (Schritt 313).
-
Bei einer Ausführungsform wird, um die Betriebsgeschwindigkeit zu verbessern und die Menge an Daten zu reduzieren, die über eine Verbindung, wie etwa die Verbindung 201-1, übertragen werden, die Swap-Datei oder Swap-Partition das OS 214 auf dem Speicher der Benutzereinrichtung 101-1 platziert.
-
Bei einer Ausführungsform wird, um die Betriebsgeschwindigkeit zu verbessern, ein Caching durchgeführt, indem zum Beispiel ein Teil des Speichers der verbundenen Benutzereinrichtung für einen Cache beiseitegelegt wird. Bei einer Ausführungsform, wenn das OS 214 gebootet wird, wird es bestimmen, ob es einen Cache auf der verbundenen Benutzereinrichtung gibt. Caching-Operationen werden weiter unten ausführlich besprochen.
-
Bei einer Ausführungsformen wird zumindest ein Teil des lokalen Speichers einer Benutzereinrichtung, die mit dem Einrichtungsinteroperabilitätssystem 200 verbunden ist, durch das OS 214 verwendet, um Daten, die nur zur Verwendung auf dieser speziellen Einrichtung beabsichtigt sind, zu speichern. Ein Beispiel besteht darin, dass die Benutzereinrichtung 101-1 ein Desktop ist, der durch den Benutzer 100 spezifisch für das Ausführen von Anwendungen mit hohem Ressourcenbedarf, wie etwa Videospiele, verwendet wird. Dann werden manche der Daten, die für das Ausführen der Anwendung mit hohem Ressourcenbedarf notwendig sind, auf dem lokalen Speicher der Benutzereinrichtung 101-1 anstelle dem Speicher 212 gespeichert. Bei einer weiteren Ausführungsform wird der zu verwendende Teil des Speichers der Benutzereinrichtung 101-1 durch das OS 214 als ein verbundenes zusätzliches Laufwerk erkannt und dementsprechend dargelegt.
-
Bei einer Ausführungsform wird ein Teil des lokalen Speicherplatzes einer Benutzereinrichtung, die mit dem Einrichtungsinteroperabilitätssystem 200 verbunden ist, durch das OS 214 verwendet, um eine Sicherung von zumindest manchen der Daten, die in dem Speicher 212 gespeichert sind, durchzuführen. Die Menge an Daten, die gesichert wird, hängt von der verfügbaren Kapazität des lokalen Speichers der Benutzereinrichtung ab. Bei einer weiteren Ausführungsform wird die Sicherung unter Verwendung mehrerer Benutzereinrichtungen durchgeführt. Das heißt, Daten werden von dem Speicher 212 zu einem Teil jedes lokalen Speicherplatzes entsprechend jeder der mehreren Benutzereinrichtungen gesichert.
-
Bei einer weiteren Ausführungsform wird zumindest ein Teil der Daten, die auf dem Speicher der Benutzereinrichtung 101-1 für entweder Caching, Swapping, Speichererweiterung, Sicherungen oder eine beliebige Kombination dieser Zwecke gespeichert sind, in einer oder mehrerer Partitionen platziert, die auf dem Speicher der Benutzereinrichtung 101-1 eingerichtet sind. Bei einer anderen Ausführungsform werden die Daten, die auf dem Speicher der Benutzereinrichtung 101-1 für entweder Caching, Speichererweiterung, Sicherungen oder eine beliebige Kombination dieser Zwecke gespeichert sind, in einen oder mehrere Dateicontainer platziert, die in einer bestehenden Partition der Benutzereinrichtung 101-1 erzeugt werden. Dies eliminiert den Bedarf, irgendwelche Daten von dem Speicher der Benutzereinrichtung 101-1 neu zu partitionieren oder zu löschen.
-
Bei einer weiteren Ausführungsform sind die Daten, die auf dem Speicher der Benutzereinrichtung 101-1 für entweder Caching, Swapping, Speichererweiterung, Sicherungen oder eine beliebige Kombination dieser Zwecke gespeichert sind, verschlüsselt. Die Entschlüsselungsschlüssel werden durch das OS 214 gespeichert und verwaltet, wodurch ein unautorisierter Zugriff auf die Daten verhindert wird.
-
Bei einer Ausführungsform ist das OS 214 in der Lage, zwischen verschiedenen Hardwarekonfigurationen während des Bootens zu schalten, wie etwa im Schritt 308 von 3A. Ein beispielhafter Algorithmus zum Schalten zwischen verschiedenen Hardwarekonfigurationen ist in 3B bereitgestellt.
-
Wenn das OS 214 auf einer Benutzereinrichtung, wie etwa der Benutzereinrichtung 101-1, gebootet wird, dann identifiziert das OS 214 im Schritt 3B-01 die Benutzereinrichtung. Im Schritt 3B-02 bestimmt das OS 214, ob es den Konfigurationssatz, der der identifizierten Benutzereinrichtung entspricht, in dem Speicher 212 gespeichert hat. Falls ja, dann verwendet das OS 214 im Schritt 3B-03 den korrekten Satz von Treibern und Einstellungen für die identifizierte Benutzereinrichtung. Die Benutzereinrichtung arbeitet dann im Schritt 3B-07 im Einrichtungsinteroperabilitäts systemmod us.
-
Falls das OS 214 im Schritt 3B-02 nicht in der Lage ist, den Konfigurationssatz entsprechend der identifizierten Benutzereinrichtung in dem Speicher 212 zu finden, dann wird das OS 214 im Schritt 3B-04 die gesamte Hardware auf dieser Benutzereinrichtung detektieren und erforderliche Treiber automatisch installieren.
-
Im Schritt 3B-05 fordert das OS 214 den Benutzer auf, eine oder mehrere Antworten auf eine oder mehrere Fragen einzugeben, um zu bestimmen, wie der Benutzereinrichtungsspeicher für die Funktionsfähigkeit des OS 214 verwendet wird. Beispielhafte Fragen beinhalten:
- - Wird der Benutzereinrichtungsspeicher zum Caching verwendet?
- - Wird der Benutzereinrichtungsspeicher für Sicherungen verwendet?
- - Wird der Benutzereinrichtungsspeicher verwendet, um zusätzlichen Speicherplatz für das OS 214 für dessen Gebrauch bereitzustellen?
- - Wie viel Platz wird für spezifizierte obige Zwecke reserviert?
-
Im Schritt 3B-06 wird das OS 214 den Konfigurationssatz abspeichern und, falls notwendig, rebooten, bevor es damit fortfährt, im Schritt 3B-07 im Einrichtungsinteroperabilitätssystemmodus zu arbeiten.
-
Wie zuvor erwähnt, werden Ausführungsbeispiele von Caching-Operationen unten unter Bezugnahme auf die 4A, 4B und 4C ausführlich besprochen.
-
4A stellt einen beispielhaften Fluss dar, wenn eine empfangene Lese- oder Schreiboperationsanforderung durch das OS 214 verarbeitet wird. Bei diesem Beispiel ist das OS 214 auf der Einrichtung gespeichert, auf der das Einrichtungsinteroperabilitätssystem 200 installiert ist. Diese Einrichtung ist mit der Benutzereinrichtung 101-1 verbunden. Außerdem ist ein Cache auf der Benutzereinrichtung 101-1 eingerichtet worden.
-
Im Schritt 401 wird der Anforderungstyp durch das OS 214 bestimmt.
-
Falls die Anforderung als eine Leseoperation bestimmt wird, dann bestimmt das OS 214 im Schritt 403, ob der Cache die angeforderten Daten enthält. Bei einer Ausführungsform greift das OS 214 auf die Cache-Dienstdatenbank zu, um zu bestimmen, ob der auf der Benutzereinrichtung 101-1 eingerichtete Cache die angeforderten Daten enthält. Die Cache-Dienstdatenbank beschreibt Modifikationszeiten der Versionen der Dateien, die in mindestens einem der Caches der Benutzereinrichtungen 101-1 bis 101-N gespeichert sind, und Modifikationszeiten der ursprünglichen Versionen dieser Dateien, die in dem Speicher 212 gespeichert sind. Eine Bestimmung, ob der Cache die angeforderten Daten enthält, wird durch einen Vergleich dieser Modifikationszeiten durchgeführt. Die Cache-Dienstdatenbank ist in dem Speicher 212 gespeichert.
-
Tabelle 1 stellt ein Beispiel für eine Cache-Dienstdatenbank dar:
Tabelle 1: Beispiel für Cache-Dienstdatenbank
Datei [1C-01] | Speicher 212 | Cache #1 | Cache #2 | ... |
| [1C-02] | [1C-03] | [1C-04] | |
C:\Pfad1\Datei1 | dd/mm/yy | dd/mm/yy | dd/mm/yy | |
[1R-01] | HH:MM:SS | HH:MM:SS | HH:MM:SS | |
| [1R-01, 1C-02] | [1R-01, 1C-03] | [1R-01, 1C-04] | |
C:\Pfad2\Datei2 | dd/mm/yy | n. a. | dd/mm/yy | |
[1R-02] | HH:MM:SS | [1R-02, 1C-03] | HH:MM:SS | |
| [1R-02, 1C-02] | | [1R-02, 1C-04] | |
... | | | | |
-
In Tabelle 1 repräsentiert die Spalte 1C-01 die Dateien. Jede Datei entspricht einer separaten Zeile der Tabelle 1. Mit Bezug auf die Tabelle 1 ist die Datei 1 der Zeile 1R-01 zugewiesen, Datei 2 ist der Zeile 1R-02 zugewiesen und so weiter.
-
Die Spalte 1C-02 der Tabelle 1 repräsentiert die Modifikationszeiten der ursprünglichen Versionen dieser Dateien, die in dem Speicher 212 und in mindestens einem der Caches auf den Benutzereinrichtungen 101-1 bis 101-N gespeichert sind. Dann, mit Bezug auf Tabelle 1:
- - repräsentiert die Zelle [1R-01, 1C-02] die Modifikationszeit der ursprünglichen Version der Datei 1 in dem Speicher 212,
- - repräsentiert die Zelle [1R-02, 1C-02] die Modifikationszeit der ursprünglichen Version der Datei 2 in dem Speicher 212.
-
Die Spalten 1C-03 und 1C-04 repräsentieren die Modifikationszeiten der Versionen der Datei in den jeweiligen Caches. Die Spalte 1C-03 entspricht zum Beispiel dem Cache 1, der auf der Benutzereinrichtung 101-1 gespeichert ist, 1C-04 entspricht dem Cache 2, der auf der Benutzereinrichtung 101-2 gespeichert ist, und so weiter. Dann:
- - repräsentiert die Zelle [1R-01, 1C-03] die Modifikationszeit der Version der Datei 1 im Cache 1,
- - repräsentiert die Zelle [1R-01, 1C-04] die Modifikationszeit der Version der Datei 1 im Cache 2,
- - repräsentiert die Zelle [1R-02, 1C-03] die Modifikationszeit der Version der Datei 2 im Cache 1, und
- - repräsentiert die Zelle [1R-02, 1C-04] die Modifikationszeit der Version der Datei 2 im Cache 2.
-
Es gibt eine Vielfalt von Formaten, die zum Repräsentieren der Zeiten in der Cache-Dienstdatenbank verwendet werden können. Ein beispielhaftes Format ist eine zweistellige Repräsentation von Tag/Monat/Jahr gefolgt von Stunde:Minute:Sekunde oder „dd/mm/yy HH:MM:SS“.
-
Es gibt eine Vielfalt anderer Informationen, die auch in der Cache-Dienstdatenbank enthalten sein können. Die Cache-Dienstdatenbank kann zum Beispiel auch Dateigrößen und Prüfsummen für Datenintegritätsprüfungen beinhalten.
-
Bei einer anderen Ausführungsform basiert die Cache-Dienstdatenbank auf Dateiprüfsummen anstelle von Dateimodifikationszeiten. Dann beschreibt die Cache-Dienstdatenbank Prüfsummen der Versionen der Dateien, die in mindestens einem der Caches der Benutzereinrichtungen 101-1 bis 101-N gespeichert sind, und Prüfsummen der ursprünglichen Versionen dieser Dateien, die in dem Speicher 212 gespeichert sind. Eine Bestimmung, ob der Cache die angeforderten Daten enthält, wird durch einen Vergleich dieser Prüfsummen durchgeführt.
-
Falls die Daten im Schritt 404 nicht auf dem Cache gefunden werden können oder die Daten auf dem Cache eine Modifikationszeit aufweisen, die sich von der Modifikationszeit der entsprechenden Daten auf dem Speicher 212 unterscheiden (Schritt 405) oder die Prüfsummen unterschiedlich sind; dann ruft das OS 214 die Daten aus dem Speicher 212 ab (Schritt 406). Im Schritt 408 werden dann die abgerufenen Daten in den Cache geschrieben, sodass anschließende Datenleseoperationen unter Verwendung des Caches durchgeführt werden. Dies besitzt auch den Vorteil, den Leistungsverbrauch der Einrichtung, auf der das Einrichtungsinteroperabilitätssystem 200 installiert ist, zu reduzieren, da Daten nicht von dieser Einrichtung über die Verbindung 201-1 zu der Benutzereinrichtung 101-1 übertragen werden müssen. Im Schritt 409 wird die Cache-Dienstdatenbank auch aktualisiert.
-
Falls im Schritt 404 die Daten auf dem Cache aufgefunden werden und die Daten auf dem Cache mit den entsprechenden Daten auf dem Speicher 212 übereinstimmen (Schritt 405); dann werden die Daten im Schritt 407 aus dem Cache gelesen.
-
Bei einer weiteren Ausführungsform führt dann, falls der Anforderungstyp im Schritt 401 als eine Schreiboperation bestimmt wird, das OS 214 im Schritt 402 eine Datenschreiboperation durch. Bei einer Ausführungsform wird diese Datenschreiboperation in einem Durchschreibmodus durchgeführt. Im Anschluss daran, dass das OS 214 die Daten im Schritt 402 über die Verbindung 201-1 in den Speicher 214 schreibt, schreibt dann das OS 214 im Schritt 408 auch Daten in den Cache der Benutzereinrichtung 101-1. Im Schritt 409 wird die Cache-Dienstdatenbank auch aktualisiert.
-
Bei einer anderen Ausführungsform werden eine oder mehrere zusätzliche Prüfungen durchgeführt, um zu bestimmen, ob die Daten in den Cache geschrieben werden sollten. 4B veranschaulicht ein Beispiel für eine Ausführungsform. Die Schritte 4B-01 bis 4B-07 ähneln den Schritten 401 - 407 in 4A. Im Schritt 4B-08 werden zusätzliche Prüfungen verwendet, um zu bestimmen, ob sich die Daten zum Caching eignen. Beispiele für die Faktoren, die überprüft werden, um zu bestimmen, ob sich die Daten zum Caching eignen, beinhalten:
- - Maximalkapazität des Caches,
- - Nutzung der Cache-Kapazität,
- - Größe eines Datenelements,
- - Gebrauchshäufigkeit eines Datenelements,
- - Zeitablauf eines Datenelements,
- - gegenwärtig ausgeführte Anwendungen,
- - zuvor gesammelte Datennutzungsmuster, und
- - Einrichtungstyp der Benutzereinrichtung 101-1.
-
Falls im Schritt 4B-08 bestimmt wird, dass sich die Daten zum Caching eignen, dann werden die Daten im Schritt 4B-10 in den Cache geschrieben und im Schritt 4B-11 wird die Cache-Dienstdatenbank aktualisiert.
-
Bei einer Ausführungsform führt das OS 214 zusätzliche Cache-Dienstfunktionen durch, zum Beispiel:
- - Cache-Defragmentierung, oder
- - Löschen von weniger Cache-geeigneten Daten, um Platz zu schaffen.
-
Dann werden die oben beschriebenen Faktoren, die im Schritt 4B-08 verwendet werden, auch zum Optimieren der Leistungsfähigkeit dieser zusätzlichen Cache-Dienstfunktionen verwendet.
-
Bei einer weiteren Ausführungsform wird dann, falls im Schritt 4B-08 bestimmt wird, dass sich die Daten nicht zum Caching eignen, im Schritt 4B-09 eine zusätzliche Prüfung zum Bestimmen der Notwendigkeit der Aktualisierung der Cache-Dienstdatenbank durchgeführt. Falls zum Beispiel bestimmt wird, dass sich die Daten nicht in irgendeinem Cache irgendeiner Benutzereinrichtung befinden, dann ist es nicht notwendig, die Cache-Dienstdatenbank zu aktualisieren.
-
Bei einer Ausführungsform werden, wenn die Benutzereinrichtung 101-1 das OS 214 ausführt, Daten aus dem Speicher 212 zuvor abgerufen und zum Aktualisieren des Caches der Benutzereinrichtung 101-1 verwendet. Das heißt, Daten werden aus dem Speicher 212 zuvor abgerufen und zu dem Cache der Benutzereinrichtung 101-1 in Bereitschaft einer zukünftigen Verwendung übertragen.
-
4C stellt ein Ausführungsbeispiel des Vorabrufs dar. Im Schritt 4C-01 werden Daten, die in dem Speicher 212 gespeichert sind, durch das OS 214 mit den Daten, die in dem Cache der Benutzereinrichtung 101-1 gespeichert sind, verglichen. Das OS 214 führt den Datenvergleich durch Vergleichen der Informationen aus der Cache-Dienstdatenbank, die der Benutzereinrichtung 101-1 entsprechen, mit den Informationen, die im Dateisystem des Speichers 212 gespeichert sind, durch.
-
Falls im Schritt 4C-02 bestimmt wird, dass die in dem verbundenen Cache gespeicherten Daten nicht mit den in dem Speicher 212 gespeicherten Daten übereinstimmen, dann bestimmt das OS 214 im Schritt 4C-03, welche des einen oder der mehreren Teile von Daten, die in dem Speicher 212 gespeichert sind, im Vergleich zu den Daten auf dem Cache der Benutzereinrichtung 101-1 verschieden sind.
-
Bei einer weiteren Ausführungsform ruft das OS 214 im Schritt 4C-04 selektiv einen oder mehrere Teile von in dem Speicher 212 gespeicherten Daten ab, die sich von den Daten, die in dem Cache der Benutzereinrichtung 101-1 gespeichert sind, unterscheiden.
-
Die Auswahl und Priorisierung von Daten hängt von mehreren Faktoren ab:
- - Verbindung der Einrichtung, auf der das Einrichtungsinteroperabilitätssystem 200 installiert ist, mit einer Leistungsquelle,
- - Ladungspegel der Batterie 211,
- - Gesamtkapazität der Batterie 211,
- - gegenwärtige Nutzung der Verbindung 201-1,
- - gegenwärtige Benutzeraktivität,
- - gegenwärtige Hardwarenutzung der Benutzereinrichtung 101-1,
- - Maximalkapazität des verbundenen Caches,
- - Nutzung der Cache-Kapazität,
- - Größe eines Datenteils,
- - Gebrauchshäufigkeit eines Datenelements,
- - Zeitablauf eines Datenelements,
- - gegenwärtig ausgeführte Anwendungen,
- - zuvor gesammelte Datennutzungsmuster, und
- - Einrichtungstyp der Benutzereinrichtung 101-1.
-
Dann wird im Schritt 4C-05 die Cache-Dienstdatenbank dementsprechend basierend auf den Daten, die im Cache der Benutzereinrichtung 101-1 gespeichert sind, aktualisiert.
-
Bei einer Ausführungsform werden Sicherheitsmaßnahmen verwendet, um das Risiko zu verringern, dass eine bösartige Partei einen Zugriff auf das Einrichtungsinteroperabilitätssystem 200 erlangt. Bei einer Ausführungsform wird der Zugriff auf das Einrichtungsinteroperabilitätssystem 200 zum Beispiel unter Verwendung von biometrischen Maßnahmen, wie etwa Fingerabdruckscannen oder Gesichtserkennung, gesichert.
-
Bei einer Ausführungsform ist das OS 214 in der Lage, seinen Betrieb zu pausieren, falls die Verbindung 201-1 verloren wird, und den Betrieb wieder unmittelbar aufzunehmen, wenn die Verbindung erneut erstellt wird.
-
Bei einer Ausführungsform beinhaltet das OS 214 einen oder mehrere Kernel, die einer oder mehreren Architekturen entsprechen. Das OS 214 beinhaltet zum Beispiel Kernel für die x86- und ARM-Architekturen. Dann wird, in Abhängigkeit von der Architektur der verbundenen Benutzereinrichtung, der geeignete Kernel automatisch verwendet. Dieses Verhalten ist für den Benutzer vollständig transparent.
-
Bei einer Ausführungsform wird eine grafische Benutzeroberfläche (GUI: Graphical User Interface) auf der Benutzereinrichtung 101-1 erzeugt, um dem Benutzer zu ermöglichen, mit der Benutzereinrichtung 101-1, die das OS 214 enthält, zu interagieren und sich mit dieser zu verbinden. Bei einer Ausführungsform optimiert das OS 214 automatisch die GUI und passt diese gemäß den folgenden Faktoren an:
- - physischer Formfaktor der Benutzereinrichtung 101-1. Zum Beispiel, welcher Einrichtungstyp ist die Benutzereinrichtung 101-1? Ist sie ein Laptop, ein Tablet, ein TV-Gerät, eine Spielekonsole oder ein integriertes fahrzeuginternes System?
- - Anzahl und Größe von Bildschirmen, die mit der Benutzereinrichtung 101-1 assoziiert sind;
- - Bildschirmauflösung; und
- - Eingabeverfahren. Zum Beispiel, ist die Eingabeeinrichtung eine Tastatur und eine Maus, ein Touchscreen, eine Infrarotfernsteuerung oder ein Gamepad?
-
Beispiele für GUI-Optimierungen und -Anpassungen beinhalten:
- - Anpassen der Größe und Platzierung von GUI-Steuerelementen, wie etwa Tasten und Kontrollkästchen;
- - Anpassen der Größe und Platzierung von Fenstern;
- - Aktivieren oder Deaktivieren von spezifischen Texteingabeverfahren, wie etwa Bildschirmtastatur oder Sprachtexteingabe;
- - Aktivieren oder Deaktivieren von GUI-Teilen für einrichtungsspezifische Merkmale, wie etwa Steuerungen für ein fahrzeuginternes Klimaanlagensystem.
-
Bei einer Ausführungsform ist das OS 214 nur in der Lage, an jeweils einer verbundenen Benutzereinrichtung zu arbeiten. Ein Beispiel besteht darin, dass das OS 214 auf der Benutzereinrichtung 101-1 ausgeführt wird. Dann muss das OS 214, um auf einer anderen Benutzereinrichtung, wie etwa der Benutzereinrichtung 101-2, nach der Erstellung der Verbindung 201-2 zu arbeiten, bei einer Ausführungsform auf der Benutzereinrichtung 101-1 heruntergefahren und dann auf der Benutzereinrichtung 101-2 gebootet werden. Bei einer anderen Ausführungsform wird der Betrieb des OS 214 auf der Benutzereinrichtung 101-1 zuerst pausiert. Dann wird das OS 214 entweder gebootet oder, falls es zuvor pausiert wurde, auf der Benutzereinrichtung 101-2 fortgesetzt.
-
Bei einer anderen Ausführungsform ist das OS 214 in der Lage, mit mehreren Benutzereinrichtungen, wie etwa zum Beispiel den Benutzereinrichtungen 101-1, 101-2 und 101-3, zu arbeiten. Um dies zu ermöglichen, ist das Kommunikationsmodul 213 bei einer Ausführungsform in der Lage, die Verbindungen 201-1, 201-2 und 201-3 mit den Benutzereinrichtungen 101-1, 101-2 bzw. 101-3 zu erstellen und gleichzeitig aufrecht zu erhalten. Dann sind die Benutzereinrichtungen 101-1, 101-2 und 101-3 gleichzeitig mit dem Einrichtungsinteroperabilitätssystem 200 verbunden und jede dieser Benutzereinrichtungen führt ihre Instanz des OS 214 parallel zueinander aus. Bei einer Ausführungsform wird die Übertragungskapazität des Kommunikationsmoduls 213 zwischen den Verbindungen 201-1, 201-2 und 201-3 gemäß der gegenwärtigen Nutzung jeder Verbindung ausgeglichen.
-
Bei einer weiteren Ausführungsform verwenden unterschiedliche Instanzen des OS 214, die gleichzeitig auf den Benutzereinrichtungen 101-1, 101-2 und 101-3 ausgeführt werden, den verteilten Sperrenverwaltungsansatz, um den gleichzeitigen Zugriff auf den Speicher 212 zu koordinieren. Die Sperrenmanager aller drei Instanzen des OS 214, die auf den Benutzereinrichtungen 101-1, 101-2 und 101-3 ausgeführt werden, verwenden zum Beispiel dieselbe Sperrendatenbank, die unter diesen Instanzen mittels des Einrichtungsinteroperabilitätssystems 200 und der Verbindungen 201-1, 201-2 und 201-3 verteilt wird.
-
Bei einer Ausführungsform wird das Interoperabilitätssystem 200 durch die verschiedenen Instanzen des OS 214, die gleichzeitig auf verschiedenen Benutzereinrichtungen ausgeführt werden, verwendet, um manche Einzelheiten über ihren gegenwärtigen Status auszutauschen. Dies beinhaltet zum Beispiel:
- - Anzahl und Einrichtungstypen von gleichzeitig arbeitenden Benutzereinrichtungen,
- - Status von wichtigen OS-Dienstfunktionen, zum Beispiel eines OS-Aktualisierungsprozesses,
- - gegenwärtige Benutzeraktivität, und
- - gegenwärtig ausgeführte Anwendungen.
-
Diese Daten werden durch jede ausgeführte Instanz des OS 214 verwendet, um seine Dienstfunktionen zu koordinieren und zu optimieren. Wenn zum Beispiel drei Instanzen des OS 214 auf den Benutzereinrichtungen 101-1, 101-2 und 101-3 ausgeführt werden, wird eine Koordination durchgeführt, um zu gewährleisten, dass der OS-Aktualisierungsprozess nicht gleichzeitig auf allen drei Einrichtungen ausgeführt wird. Bei einer weiteren Ausführungsform werden diese Daten verwendet, um den Ausgleich der Übertragungskapazität des Kommunikationsmoduls 213 zwischen den erstellten Verbindungen 201-1 bis 201-3 zu priorisieren. Zum Beispiel wird jener Benutzereinrichtung eine höhere Priorität gegeben, die der Benutzer 100 gegenwärtig verwendet.
-
Bei noch einer anderen Ausführungsform unterstützt das OS 214 eine Migration von ausgeführten Anwendungen zwischen OS-Instanzen, die auf unterschiedlichen Benutzereinrichtungen ausgeführt werden. Mit Bezug auf das obige Beispiel unterstützt das OS 214 die Fähigkeit, eine gegenwärtig ausgeführte Anwendung von der Benutzereinrichtung 101-2 zu der Benutzereinrichtung 101-3 zu verschieben. Nach der Migration fährt die Anwendung fort, einen Zugang auf beliebige zuvor geöffnete Dateien zu besitzen. Bei einer weiteren Ausführungsform werden die zuvor beschriebenen Daten verwendet, um einem Benutzer mehr Einzelheiten darzulegen, falls der Benutzer wählt, Anwendungen zu migrieren, und die Verbindungen 201-2 und 201-3 werden zum Ermöglichen des Migrationsprozesses verwendet.
-
Die Verwendung des Einrichtungsinteroperabilitätssystems 200 bietet mehrere andere Vorteile. Bei manchen Ausführungsformen wird das Einrichtungsinteroperabilitätssystem 200 in Verbindung mit Cloud-basierten Datensynchronisationsfähigkeiten verwendet. Falls zum Beispiel Cloud-basierte Dienste zur Synchronisation von Daten zwischen verschiedenen Benutzereinrichtungen verwendet werden, verringert das Einrichtungsinteroperabilitätssystem 200 die Notwendigkeit, dass sich Benutzereinrichtungen mit der Cloud verbinden, um die Datensynchronisation durchzuführen. Stattdessen verwenden die Benutzereinrichtungen Daten aus dem Speicher 212. Dies verringert die Nutzung der Cloud-Verbindung mit den Benutzereinrichtungen. Des Weiteren gewährleistet das Einrichtungsinteroperabilitätssystem 200 bei manchen Ausführungsformen eine Datenverfügbarkeit, falls eine Cloud-Konnektivität verloren wird oder nicht verfügbar ist, da die Benutzereinrichtungen Daten aus dem Speicher 212 abrufen können. Bei manchen Ausführungsformen werden intelligente Ansätze eingesetzt, um die Verfügbarkeit von Daten, die am wahrscheinlichsten für einen Benutzer relevant sind, zu gewährleisten. Diese beinhalten zum Beispiel Ansätze basierend auf:
- - Zeitlicher Lokalität: Daten, die zuletzt auf einer Benutzereinrichtung verwendet wurden, werden auf dem Speicher 212 gespeichert, da es wahrscheinlich ist, dass die Benutzereinrichtung diese Daten in der nahen Zukunft erneut verwenden wird.
- - Räumlicher Lokalität: Datensätze, die Speicherorte nahe zuletzt verwendeten Daten einnehmen, werden auf dem Speicher 212 gespeichert, da es wahrscheinlich ist, dass die Benutzereinrichtung diese Datensätze in der nahen Zukunft verwenden wird.
- - Zweiglokalität: In Fällen, bei denen es mehrere mögliche Resultate aus bedingten Verzweigungsanweisungen gibt, werden dann Daten bezüglich jedes dieser Resultate auf dem Speicher 212 gespeichert, da es wahrscheinlich ist, dass die Benutzereinrichtung diese Daten verwenden wird.
- - Probabilistische Analyse von Benutzerinteraktionen mit Benutzereinrichtungen: Falls zum Beispiel eine hohe Wahrscheinlichkeit besteht, dass ein Benutzer einen oder mehrere Datensätze entweder in Verbindung mit oder nach der Verwendung eines speziellen Programms verwenden wird, dann werden diese Datensätze auf dem Speicher 212 gespeichert.
-
Bei manchen Ausführungsformen werden manche Benutzerdaten auf dem Speicher 212, aber nicht innerhalb der Cloud gespeichert. Diese Fähigkeit ist nützlich, falls Benutzer zum Beispiel die Kontrolle über sensible Daten behalten wollen.
-
Die Verwendung des Einrichtungsinteroperabilitätssystems 200 bietet auch Vorteile für IoT-fähige Benutzereinrichtungen. Ähnlich wie mit Cloud-basierten Diensten verringert das Einrichtungsinteroperabilitätssystem 200 die Notwendigkeit, sich mit der Cloud zu verbinden, um eine Datensynchronisation durchzuführen. Des Weiteren verringert es die Schwierigkeit, separate Cloud-Anmeldedaten und Einrichtungseinstellungen für Benutzereinrichtungen aufrechterhalten zu müssen.
-
Obwohl die oben beschriebenen Algorithmen, einschließlich jener mit Bezug auf die vorstehenden Flussdiagramme, getrennt beschrieben worden sind, versteht es sich, dass zwei oder mehr beliebige der hierin offenbarten Algorithmen in einer beliebigen Kombination kombiniert werden können. Beliebige der hierin beschriebenen Verfahren, Algorithmen, Implementierungen oder Prozeduren können maschinenlesbare Anweisungen zur Ausführung durch: (a) einen Prozessor, (b) eine Steuerung und/oder (c) eine beliebige andere geeignete Verarbeitungseinrichtung beinhalten. Ein beliebiger Algorithmus, eine beliebige Software oder ein beliebiges Verfahren, die hierin offenbart sind, können in Software umgesetzt sein, die auf einem nichtflüchtigen greifbaren Medium gespeichert ist, wie etwa zum Beispiel einem Flash-Speicher, einer CD-ROM, einer Floppy Disk, einer Festplatte, einer DVD (Digital Versatile Disk) oder anderen Speichereinrichtungen, aber Durchschnittsfachleute werden leicht zu würdigen wissen, dass der gesamte Algorithmus und/oder Teile davon alternativ durch eine Einrichtung außer einer Steuerung ausgeführt und/oder in Firmware oder dedizierter Hardware auf eine wohlbekannte Art und Weise umgesetzt werden könnte (z. B. kann es durch eine anwendungsspezifische integrierte Schaltung (ASIC: Application Specific Integrated Circuit), eine programmierbare Logikeinrichtung (PLD: Programmable Logic Device), eine feldprogrammierbare Logikeinrichtung (FPLD: Field Programmable Logic Device), diskrete Logik usw. implementiert werden). Außerdem können manche oder alle der maschinenlesbaren Anweisungen, die in einem beliebigen hierin abgebildeten Flussdiagramm repräsentiert sind, manuell im Gegensatz zu automatisch durch eine Steuerung, einen Prozessor oder eine ähnliche Recheneinrichtung oder Maschine implementiert werden. Des Weiteren werden, obwohl spezifische Algorithmen mit Bezug auf hierin abgebildete Flussdiagramme beschrieben sind, Durchschnittsfachleute leicht zu würdigen wissen, dass viele andere Verfahren zum Implementieren der beispielhaften maschinenlesbaren Anweisungen alternativ verwendet werden können. Die Reihenfolge der Ausführung der Blöcke kann zum Beispiel geändert werden und/oder manche der beschriebenen Blöcke können geändert, eliminiert oder kombiniert werden.
-
Es sollte angemerkt werden, dass die hierin veranschaulichten und besprochenen Algorithmen verschiedene Module aufweisen, die spezielle Funktionen durchführen und miteinander interagieren. Es sollte verstanden werden, dass diese Module lediglich basierend auf ihrer Funktion für den Zweck der Beschreibung getrennt werden und Computerhardware und/oder ausführbaren Softwarecode, der auf einem computerlesbaren Medium zur Ausführung auf geeigneter Rechenhardware gespeichert ist, repräsentieren. Die verschiedenen Funktionen der unterschiedlichen Module und Einheiten können kombiniert oder als Hardware und/oder Software, die auf einem nichtflüchtigen computerlesbaren Medium gespeichert ist, wie oben als Module auf eine beliebige Art und Weise getrennt werden, und können separat oder in Kombination verwendet werden.
-
Obwohl spezielle Implementierungen und Anwendungen der vorliegenden Offenbarung veranschaulicht und beschrieben worden sind, versteht es sich, dass die vorliegende Offenbarung nicht auf die präzise Konstruktion und hierin offenbarten Zusammensetzungen beschränkt ist und dass verschiedene Modifikationen, Änderungen und Variationen aus den vorstehenden Beschreibungen ersichtlich sein können, ohne vom Gedanken oder Schutzumfang einer Erfindung, wie in den angehängten Ansprüchen definiert, abzuweichen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-