-
VERWEIS AUF VERWANDTE ANMELDUNGEN
-
Die vorliegende Anmeldung beansprucht den Vorteil der vorläufigen
US-Patentanmeldung Nr. 63/066,602 mit dem Titel „SYSTEM ZUR VERSTÄRKUNG VON FÄHIGKEITEN AN EINEM ENDGERÄT“ eingereicht am 17. August 2020, die hierin durch Bezugnahme vollständig aufgenommen ist.
-
HINTERGRUND
-
In Geräte-Ökosystemen sind mehrere Geräte, die jeweils bestimmte Fähigkeiten aufweisen, miteinander vernetzt, um ihre Fähigkeiten einem oder mehreren Benutzern bereitzustellen. Traditionell, um dem Geräte-Ökosystem eine neue Fähigkeit hinzuzufügen, wird ein neues Gerät zum Netzwerk hinzugefügt und führt die neue Fähigkeit aus, wenn sie vom Netzwerk angefordert wird. Das Hinzufügen eines neuen Geräts zum Geräte-Ökosystem kann jedoch umständlich und einschränkend sein, da nur begrenzte Betriebssysteme und Kommunikationsprotokolle vom Geräte-Ökosystem unterstützt werden, wie z. B. in einem geschlossenen Geräte-Ökosystem. Darüber hinaus erhöht das kontinuierliche Hinzufügen von Geräten zum Geräte-Ökosystem die Komplexität zum Verwalten der Fähigkeiten der einzelnen Geräte innerhalb des Geräte-Ökosystems.
-
Häufig sind Geräte, die zu einem Geräte-Ökosystem hinzugefügt werden, an Benutzerdaten gebunden, die einschränkend festlegen, zu welchen Geräte-Ökosystemen das Gerät hinzugefügt werden kann. Ferner sind viele Geräte-Ökosysteme so konfiguriert, dass sie mit einer kleinen Anzahl an Kommunikationsprotokollen kommunizieren, was wiederum einschränkt, welche Geräte zu einem bestimmten Geräte-Ökosystem hinzugefügt werden können.
-
KURZDARSTELLUNG DER AUSFÜHRUNGSFORMEN
-
Gemäß einer beispielhaften Ausführungsform beinhaltet ein Verfahren das Empfangen einer Liste von verfügbaren Systemdiensten, die mit dem zweiten Endpunktgerät assoziiert sind, durch ein erstes Gerät von einem zweiten Endpunktgerät. Ferner kann das Verfahren das Empfangen einer verfügbaren Auflösung für zumindest einen verfügbaren Systemdienst aus der Liste der verfügbaren Systemdienste beinhalten. Das Verfahren kann zusätzlich das Ausführen einer oder mehrerer Anwendungen, die mit einer Funktionalität assoziiert sind, durch das erste Endpunktgerät beinhalten. Das Ausführen der einen oder der mehreren Anwendungen kann das Übertragen von Daten, die die Funktionalität implementieren, von dem ersten Endpunktgerät an das zweite Endpunktgerät beinhalten, wobei zumindest ein verfügbares System aus der Liste der verfügbaren Systemdienste basierend auf der verfügbaren Auflösung verwendet wird.
-
Das Verfahren kann auch das Empfangen einer Vielzahl von verfügbaren Auflösungen von dem zweiten Endpunktgerät durch das erste Endpunktgerät beinhalten, basierend auf zumindest einem verfügbaren Systemdienst aus der Liste der verfügbaren Systemdienste. Die verfügbare Auflösung kann eine aus der Vielzahl von verfügbaren Auflösungen sein. Zusätzlich kann das Verfahren das Empfangen von Daten, die eine Interaktion mit der einen oder den mehreren Anwendungen darstellen, durch das erste Endpunktgerät von dem zweiten Endpunktgerät beinhalten und das Modifizieren der Ausführung der einen oder den mehreren Anwendungen durch das erste Endpunktgerät basierend auf den Daten, die die Interaktion mit der einen oder den mehreren Anwendungen darstellen.
-
Das Verfahren kann ferner das Empfangen einer zweiten Liste von verfügbaren Systemdiensten, die mit einem dritten Endpunktgerät assoziiert ist, das kommunikativ mit dem zweiten Endpunktgerät gekoppelt ist, durch das erste Endpunktgerät von dem zweiten Endpunktgerät beinhalten. Das Verfahren kann auch beinhalten, dass durch das erste Endpunktgerät von dem zweiten Endpunktgerät eine zweite verfügbare Auflösung für einen Systemdienst aus der zweiten Liste von verfügbaren Systemdiensten angefordert wird. Das Ausführen der einen oder der mehreren Anwendungen kann auch das Übertragen von Daten zum Implementieren der Funktionalität durch das erste Endpunktgerät an das dritte Endpunktgerät beinhalten, wobei der Systemdienst aus der zweiten Liste von verfügbaren Systemdiensten basierend auf der zweiten verfügbaren Auflösung verwendet wird.
-
Zusätzlich kann das Verfahren das Erkennen, durch das erste Endpunktgerät, des zweiten Endpunktgeräts und das Empfangen, durch das erste Endpunktgerät von dem zweiten Gerät, der Auflösungsdienstdaten beinhalten, die mit dem zweiten Endpunktgerät assoziiert sind. Das Verfahren kann ferner das Anfordern, durch das erste Endpunktgerät von dem zweiten Endpunktgerät, der Liste von verfügbaren Systemdiensten beinhalten, die mit dem zweiten Endpunktgerät über ein Kommunikationsprotokoll aus einer Vielzahl von Kommunikationsprotokollen basierend auf den Auflösungsdienstdaten assoziiert sind. In einer anderen beispielhaften Ausführungsform beinhaltet ein Verfahren das Erkennen, durch ein erstes Endpunktgerät, eines zweiten Endpunktgeräts, das einen oder mehrere Systemdienste und das Empfangen beinhaltet, durch das erste Endpunktgerät, einer verfügbaren Auflösung, die mit dem einen oder den mehreren Systemdiensten des zweiten Endpunktgeräts assoziiert ist. Das Verfahren kann auch das Ausführen einer oder mehrerer Anwendungen auf dem ersten Endpunktgerät beinhalten, unter Nutzung des einen oder der mehreren Systemdienste des zweiten Endpunktgeräts, basierend auf der verfügbaren Auflösung, die mit dem einen oder den mehreren Systemdiensten assoziiert ist.
-
Das Verfahren kann zusätzlich das Empfangen von Auflösungsdienstdaten von dem zweiten Endpunktgerät und das Anfordern, durch das erste Endpunktgerät, einer Liste mit den einen oder den mehreren Systemdiensten über ein Kommunikationsprotokoll, basierend auf den Auflösungsdienstdaten, beinhalten. Ferner kann das Verfahren das Empfangen von Daten, die eine Interaktion mit der einen oder den mehreren Anwendungen darstellen, von dem zweiten Endpunktgerät durch das erste Endpunktgerät und das Ausführen der einen oder den mehreren Anwendungen basierend auf den Daten, die die Interaktion mit der einen oder den mehreren Anwendungen darstellen, beinhalten. Die verfügbare Auflösung kann eine aus einer Vielzahl von verfügbaren Auflösungen sein, die von dem zweiten Endpunktgerät empfangen werden. Außerdem kann das zweite Endpunktgerät durch ein erstes Kommunikationsprotokoll erkannt werden und die verfügbare Auflösung kann durch ein zweites Kommunikationsprotokoll empfangen werden.
-
Zusätzlich kann das Verfahren in Reaktion auf das Erkennen des zweiten Endpunktgeräts das Anfordern, durch das erste Endpunktgerät, eines Zugriffs auf eine Erkennungsdienst-Engine des zweiten Endpunktgeräts beinhalten. Ferner kann das Verfahren das Empfangen von Auflösungsdienstdaten, die mit der Erkennungsdienst-Engine des zweiten Endpunktgeräts assoziiert sind, an dem ersten Endpunktgerät und den Zugriff auf die Erkennungsdienst-Engine des zweiten Endpunktgeräts basierend auf den Auflösungsdienstdaten beinhalten. Außerdem kann das Verfahren das Zugreifen auf die Erkennungsdienst-Engine des zweiten Endpunktgeräts durch ein Kommunikationsprotokoll aus einer Vielzahl von Kommunikationsprotokollen basierend auf den Auflösungsdienstdaten beinhalten.
-
Im Allgemeinen können bei Verfahren hierin eine oder mehrere Anwendungen so konfiguriert sein, dass sie eine oder mehrere Benachrichtigungen ausgeben. Außerdem kann das Ausführen der einen oder der mehreren Anwendungen das Ausgeben einer oder mehrerer Benachrichtigungen auf einer Anzeige beinhalten, die elektronisch mit dem zweiten Endpunktgerät gekoppelt ist. Ferner kann das erste Endpunktgerät im Allgemeinen ein erstes Betriebssystem aufweisen und das zweite Endpunktgerät kann ein zweites Betriebssystem aufweisen, das sich von dem ersten Betriebssystem unterscheidet. Das zweite Betriebssystem kann zumindest eine unterschiedliche Schnittstelle, Sprache, Speicherverwaltungstechnik, Kommunikationsprotokoll, Verschlüsselung oder Netzwerk-Stapel als das erste Betriebssystem aufweisen. Im Allgemeinen kann sich das zweite Endpunktgerät in der Nähe des ersten Endpunktgeräts befinden. Zusätzlich kann das zweite Endpunktgerät Geräte-ID-Daten eines dritten Endpunktgeräts beinhalten.
-
Gemäß exemplarischen Ausführungsformen kann ein System ein erstes Endpunktgerät beinhalten, das einen oder mehrere Prozessoren und gespeicherte ausführbare Anweisungen beinhaltet, die so konfiguriert sind, dass sie den einen oder die mehreren Prozessoren manipulieren, um die hierin offenbarten Verfahren durchzuführen.
-
Gemäß weiteren exemplarischen Ausführungsformen kann ein System ein Endpunktgerät-Framework beinhalten, das ein oder mehrere Endpunktgeräte beinhaltet, die kommunikativ mit einem oder mehreren anderen Endpunktgeräten gekoppelt sind, wobei das System konfiguriert ist, um die hierin offenbarten Verfahren durchzuführen.
-
Figurenliste
-
Die vorliegende Offenbarung kann von Fachleuten auf dem Gebiet durch Bezugnahme auf die beigefügten Zeichnungen besser verstanden werden, zudem können ihre zahlreichen Merkmale und Vorteile hierdurch verdeutlicht werden. Die Verwendung der gleichen Bezugszeichen in verschiedenen Zeichnungen zeigt ähnliche oder identische Elemente an.
- 1 ist ein Blockdiagramm eines Endpunktgerät-Frameworks für gemeinsam genutzte Systemdienste gemäß einigen Ausführungsformen.
- 2 ist ein Blockdiagramm eines Endpunktgeräts, das gemäß einigen Ausführungsformen zum Importieren und Exportieren eines oder mehrerer Systemdienste innerhalb des Endpunktgerät-Frameworks von 1 konfiguriert ist.
- 3 ist ein Ablaufdiagramm, das einen beispielhaften Bootstrapping-Vorgang eines Endpunktgeräts gemäß einigen Ausführungsformen veranschaulicht.
- 4 ist ein Blockdiagramm von kommunikativ gekoppelten Endpunktgeräten, die gemäß einigen Ausführungsformen zur gemeinsamen Nutzung eines oder mehrerer Systemdienste innerhalb des Endpunktgerät-Frameworks von 1 konfiguriert sind.
- 5 ist ein Signalablaufdiagramm, das einen exemplarischen Vorgang für eine Zugriffsanforderung eines Suchdienstes für ein Endpunktgerät gemäß einigen Ausführungsformen veranschaulicht.
- 6 ist ein Signalablaufdiagramm, das eine exemplarische Anforderung von verfügbaren Systemdiensten gemäß einigen Ausführungsformen veranschaulicht.
- 7 ist ein Ablaufdiagramm, das einen Prozess zum Ausführen einer Anwendung unter Nutzung gemeinsam genutzter Systemdienste gemäß einigen Ausführungsformen veranschaulicht.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die hierin beschriebenen Techniken und Systeme befassen sich mit dem Bereitstellen einer Flexibilität in einem Geräte-Ökosystem von Endpunktgeräten durch die gemeinsame Nutzung von Systemdiensten über ein oder mehrere Endpunktgeräte hinweg. Insbesondere erlauben derartige hierin beschriebenen Techniken und Systeme einem Endpunktgerät, die Fähigkeiten von Systemdiensten zu nutzen, die von einem oder mehreren anderen Endpunktgeräten gemeinsam genutzt werden. Um diese Fähigkeiten zu erhalten, erkennt ein erstes Endpunktgerät, auf dem eine Anwendung läuft, ein oder mehrere andere Endpunktgeräte, die mit dem ersten Endpunktgerät kommunikativ gekoppelt sind. Zum Beispiel erkennt das erste Endpunktgerät ein oder mehrere andere Endpunktgeräte nahe oder in der Nähe des ersten Endpunktgeräts. Nach dem Ermitteln eines oder mehrerer anwendbarer Systemdienste basierend auf der laufenden Anwendung fordert das erste Endpunktgerät die für den Zugriff auf die anwendbaren Systemdienste erforderlichen Daten von den jeweiligen Endpunktgeräten an. Nach dem Ermitteln eines oder mehrerer anwendbarer Systemdienste basierend auf der laufenden Anwendung fordert das erste Endpunktgerät die für den Zugriff auf die anwendbaren Systemdienste erforderlichen Daten von den jeweiligen Endpunktgeräten an. Das Endpunktgerät implementiert dann die Funktionalität der Anwendung unter Nutzung eines oder mehrerer der anwendbaren Systemdienste. Auf diese Weise erhält das erste Endpunktgerät die Fähigkeiten der anwendbaren Systemdienste, die von den anderen Endpunktgeräten gemeinsam genutzt werden.
-
Darüber hinaus ermöglichen die hierin beschriebenen Techniken und Systeme die gemeinsame Nutzung von agnostischen Systemdiensten zwischen Endpunktgeräten durch das Betriebssystem. Das heißt, ein Endpunktgerät mit einem ersten Betriebssystem kann Systemdienste gemeinsam mit einem oder mehreren Endpunktgeräten mit einem oder mehreren unterschiedlichen Betriebssystemen betreiben. Ein derartiges Framework ermöglicht eine größere Flexibilität beim Hinzufügen von Endpunktgeräten zu einem Geräte-Ökosystem.
-
1 veranschaulicht ein Endpunktgerät-Framework 100, das gemäß einigen Ausführungsformen gemeinsame Systemdienste ermöglicht. Das Endpunktgerät-Framework 100 beinhaltet ein oder mehrere Endpunktgeräte 102, die jeweils mit zumindest einem anderen Endpunktgerät kommunikativ gekoppelt sind, und ist so konfiguriert, dass die gemeinsame Nutzung von Systemdiensten 106 zwischen den kommunikativ gekoppelten Endpunktgeräten möglich ist. „Kommunikativ gekoppelt“ wie hierin verwendet, beinhaltet zwei oder mehr Geräte, die jeweils konfiguriert sind, um die Übertragung von Daten, den Empfang von Daten oder beides zwischen ihnen zu ermöglichen, z. B. durch drahtgebundene Kommunikation, drahtlose Kommunikation, Netzwerkkommunikation, Brückenkommunikation oder dergleichen, um nur einige zu nennen. Ein „Endpunktgerät“ wie hierin verwendet, beinhaltet Hardware- und Softwareressourcen, die zum Ausführen einer oder mehrerer Anwendungen 104 konfiguriert sind, und beinhaltet beispielsweise einen oder mehrere Desktop-Computer, Server, virtuelle Server, Notebook-Computer, Tablet-Computer, Virtual-Reality-Systeme, Systeme mit erweiterter Realität, ein Computerfähiges Mobiltelefon (d. h. ein „Smartphone“), Computer-fähige tragbare Geräte (d. h. „Wearables“), einen Kommunikations-Hub, eine in einem Fahrzeug integrierte Anzeige, eine Computer-fähige Anzeige (d. h. eine „intelligente Anzeige“), einen Computer-fähigen Fernseher, (d. h. einen „intelligenten Fernseher“), oder eine beliebige Kombination davon.
-
In Ausführungsformen ist jede Anwendung 104 mit einer oder mehreren Funktionalitäten assoziiert, die durch das Endpunktgerät 102 implementiert werden, wenn die Anwendung 104 ausgeführt wird. Zum Beispiel beinhaltet jede Anwendung 104 eine Logik zum Implementieren einer oder mehrerer Funktionalitäten. Derartige Funktionalitäten beinhalten beispielsweise das Streamen von Videodaten, das Streamen von Audiodaten, das Steuern von Datenströmen, die Wiedergabesteuerung, das Erzeugen von Benachrichtigungen, das Anzeigen von Benachrichtigungen oder eine beliebige Kombination davon, um nur einige zu nennen. Um diese Funktionalitäten zu implementieren, beinhaltet jedes Endpunktgerät 102 einen oder mehrere Systemdienste 106, die konfiguriert sind, um zumindest einen Teil einer Funktionalität zu implementieren, wenn die Anwendung 104 ausgeführt wird. Ein „Systemdienst“, wie er hierin verwendet wird, beinhaltet Hardware und Software eines Endpunktgeräts 102, die so konfiguriert sind, dass sie zumindest einen Teil einer Funktionalität einer Anwendung 104 implementieren. Ein Systemdienst 106 beinhaltet beispielsweise Hardware und Software, die konfiguriert sind, Audiodaten wiederzugeben (z. B. ein oder mehrere Audio-Encoder, Audio-Decoder, Lautsprecher), Videodaten wiederzugeben (z. B. ein oder mehrere Video-Encoder, ein oder mehrere Video-Decoder, Anzeigen), Daten zu empfangen, Daten zu übertragen, Eingaben zu empfangen, Interaktionen zu empfangen (z. B. interaktiver Touchscreen, Maus, Tastatur, Game-Controller), Erzeugen von Abfragen oder eine beliebige Kombination davon, um nur einige zu nennen. Ein weiteres Beispiel, umfasst ein Systemdienst 106 eine oder mehrere Anwendungsschnittstellen (APIs), die konfiguriert sind, eine oder mehrere Funktionalitäten einer Anwendung 104 zu implementieren, die auf einem Endpunktgerät 102 ausgeführt wird. Obwohl in der veranschaulichten Ausführungsform drei Systemdienste 106-1, 106-2 und 106-3 zum Implementieren von Funktionalitäten, die mit zwei Anwendungen 104-1 und 104-2 assoziiert sind, dargestellt sind, können in anderen Ausführungsformen beliebig viele Systemdienste Funktionalitäten für eine beliebige Anzahl an Anwendungen implementieren.
-
Gemäß einer Ausführungsform ist jedes Endpunktgerät 102 so konfiguriert, dass es einen oder mehrere Systemdienste 106 an ein oder mehrere andere Endpunktgeräte exportiert, um den Zugriff auf die exportierten Systemdienste 106 und deren Steuerung durch ein oder mehrere andere Endpunktgeräte zu ermöglichen (d. h. sie offenzulegen). Jeder Systemdienst 106 eines Endpunktgeräts 102 ist so konfiguriert, dass er einen oder mehrere Systemdienste 106 an ein oder mehrere andere Endpunktgeräte exportiert, wobei ein oder mehrere Kommunikationsprotokolle, kabelgebundene Kommunikationsverbindungen und drahtlose Kommunikationsverbindungen verwendet werden, zum Beispiel Bluetooth, Bluetooth Low Energy (BLE), Multicast Domain Name System (mDNS), QR-Code, Ultrabreitband, Ultraschall, Generischer Webservice API, USB, Radiofrequenz-Identifikation (RFID), Nahfeldkommunikation (NFC), Kurzmitteilungsdienst (SMS), WLAN, das Internet, lokales Netzwerk (LAN), Ethernet oder eine beliebige Kombination davon. In Ausführungsformen kann das zweite Endpunktgerät, sobald ein erstes Endpunktgerät (z. B. Endpunktgerät 102-1) einen Systemdienst 106 an ein zweites Endpunktgerät (z. B. Endpunktgerät 102-2) exportiert hat, auf den Systemdienst 106 zugreifen und diesen steuern, um beispielsweise zumindest einen Teil einer oder mehrerer Funktionalitäten zu implementieren, die mit auf dem zweiten Endpunktgerät laufenden Anwendungen 104 assoziiert sind. Das heißt, das zweite Endpunktgerät verwendet den Systemdienst 106 des ersten Endpunktgeräts, um Funktionalitäten der auf dem zweiten Endpunktgerät laufenden Anwendungen 104 zu implementieren. In der veranschaulichten Ausführungsform kann beispielsweise der Systemdienst 106-3 an die Endpunktgeräte 102-2, 102-3 oder 102-4 exportiert werden und kann verwendet werden, um zumindest einen Teil einer Funktionalität der jeweiligen auf den Endpunktgeräten 102-2, 102-3 oder 102-4 laufenden Anwendungen zu implementieren. Durch Exportieren eines oder mehrerer Systemdienste 106 an ein oder mehrere andere Endpunktgeräte erhalten die ein oder mehreren anderen Endpunktgeräte effektiv neue Fähigkeiten, die mit der Hardware und Software der exportierten Systemdienste 106 assoziiert sind.
-
In Ausführungsformen beinhaltet jedes Endpunktgerät 102 einen oder mehrere Proxy-Systemdienste 108, die Software und Hardware beinhalten, die konfiguriert sind, um auf einen oder mehrere exportierte Systemdienste 106 von einem oder mehreren anderen Endpunktgeräten zuzugreifen und diese zu steuern. Gemäß Ausführungsformen ist ein Proxy-Systemdienst 108 so konfiguriert, dass er zumindest einen Teil einer oder mehrerer Funktionalitäten einer Anwendung 104 (hierin auch als „unterstützte Anwendung“ bezeichnet) implementiert, indem er einen oder mehrere exponierte Systemdienste eines anderen Endpunktgeräts verwendet. In Ausführungsformen implementiert ein Proxy-Systemdienst 108 die Funktionalität einer unterstützten Anwendung durch Übertragen von Daten, die die Funktionalität implementieren, die mit der unterstützten Anwendung assoziiert ist, an den exponierten Systemdienst 106. Zum Beispiel überträgt der Proxy-Systemdienst 108 Daten, die die Logik einer Anwendung 104 darstellen, um eine Funktionalität zu implementieren, die mit der Anwendung 104 assoziiert ist, indem er einen exportierten Systemdienst 106 von einem anderen Endpunktgerät verwendet. Obwohl in der veranschaulichten Ausführungsform drei Proxy-Systemdienste 108-1, 108-2 und 108-3 dargestellt sind, die die Funktionalität einer unterstützten Anwendung 104-3 unter Nutzung von drei Endpunktgeräten 102-2, 102-3 und 102-4 implementieren, kann in anderen Ausführungsformen eine beliebige Anzahl an Proxy-Systemdiensten verwendet werden, um die Funktionalität einer beliebigen Anzahl an Anwendungen zu implementieren, die auf einer beliebigen Anzahl an Endpunktgeräten ausgeführt werden. Auf diese Weise kann zumindest ein Teil einer Anwendung, die auf einem ersten Endpunktgerät ausgeführt wurde, auf einem zweiten Endpunktgerät implementiert werden. Zum Beispiel kann eine Anwendung 104, die durch ein erstes Endpunktgerät 102-1 ausgeführt wird, eine Funktionalität aufweisen, die das Erzeugen und Anzeigen von Benachrichtigungen beinhaltet. Hier kann zumindest ein Teil der Anwendung 104, die auf dem ersten Endpunktgerät 102-1 läuft, z. B. die Benachrichtigung zum Anzeigen, auf einem zweiten Endpunktgerät 102-2 implementiert werden.
-
Gemäß Ausführungsformen sind die Proxy-Systemdienste 108 konfiguriert, Eingabedaten von einem oder mehreren exportierten Systemdiensten 106 von anderen Endpunktgeräten zu empfangen. „Eingabedaten“, wie sie hier verwendet werden, beinhalten Daten, die Interaktionen (z. B. Gesten auf einem Touchscreen, Tippen auf einem Touchscreen, eingegebener Text, Mausklicks, Tastendrücke) auf einem Eingabegerät darstellen, z. B. einem interaktiven Touchscreen, einer Maus, einer Tastatur oder einem Game-Controller, um nur einige zu nennen. In Ausführungsformen ist jeder Proxy-Systemdienst 108 konfiguriert, die Ausführung einer unterstützten Anwendung basierend auf den Eingabedaten zu modifizieren. So stellt beispielsweise ein Proxy-Systemdienst 108 die Eingabedaten als Eingabe für die unterstützte Anwendung bereit. Als weiteres Beispiel initiieren oder stoppen Proxy-Systemdienste 108 die Ausführung der unterstützten Anwendung basierend auf den Eingabedaten.
-
In Ausführungsformen beinhaltet jedes Endpunktgerät 102 des Endpunktgerät-Frameworks 100 ein oder mehrere Betriebssysteme, die beispielsweise eine oder mehrere Schnittstellen, Sprachen, Speicherverwaltungstechniken, Kommunikationsprotokolle, Verschlüsselungen, Netzwerkstapel oder eine beliebige Kombination davon aufweisen, um nur einige zu nennen. Gemäß Ausführungsformen ist das Endpunktgerät-Framework 100 als Betriebssystem-unabhängig konfiguriert. „Betriebssystem-unabhängig“, wie hierin verwendet, beinhaltet das Endpunktgerät-Framework 100, das so konfiguriert ist, dass es zumindest ein Endpunktgerät 102 mit einem ersten Betriebssystem und zumindest ein weiteres Endpunktgerät mit einem zweiten, unterschiedlichen Betriebssystem unterstützt. Das heißt, innerhalb des Endpunktgerät-Frameworks 100 kann ein erstes Endpunktgerät 102 mit einem ersten Betriebssystem einen oder mehrere Systemdienste 106 an ein zweites Endpunktgerät mit einem zweiten, anderen Betriebssystem exportieren oder importieren, das eine oder mehrere andere Schnittstellen, Speicherverwaltungstechniken, Kommunikationsprotokolle, Netzwerkstapel oder eine beliebige Kombination davon beinhaltet als das erste Betriebssystem.
-
Ein erstes Endpunktgerät (z. B. Endpunktgerät 102-1) beinhaltet beispielsweise ein erstes Betriebssystem, das eine erste Schnittstelle und ein erstes Speicherverwaltungssystem aufweist. Innerhalb des Endpunktgerät-Frameworks 100 kann das erste Endpunktgerät einen oder mehrere Systemdienste von einem zweiten Endpunktgerät importieren, das ein zweites, unterschiedliches Betriebssystem mit einer zweiten, eigenen Schnittstelle und einem zweiten, eigenen Speicherverwaltungssystem aufweist. Wie nachstehend unter Bezugnahme auf 2 erläutert, kann das erste Endpunktgerät den Zugriff auf einen oder mehrere Systemdienste 106 auf dem zweiten Endpunktgerät anfordern. In Reaktion darauf überträgt das zweite Endpunktgerät Daten, die angeben, wie auf die Systemdienste 106 gemäß dem auf dem zweiten Endpunktgerät laufenden Betriebssystem zugegriffen werden kann. Mit anderen Worten überträgt das zweite Endpunktgerät Daten, die angeben, wie auf seine Systemdienste 106 gemäß einer oder mehreren Schnittstellen, Speicherverwaltungstechniken, Kommunikationsprotokollen, Netzwerkstapeln oder einer beliebigen Kombination davon des zweiten Betriebssystems zugegriffen werden soll. Mit diesen Daten kann das erste Endpunktgerät dann auf die Systemdienste des zweiten Endpunktgeräts zugreifen.
-
Unter Bezugnahme auf 2 wird nun ein beispielhaftes Endpunktgerät 202 dargestellt, das zur gemeinsamen Nutzung von Systemdiensten konfiguriert ist. In Ausführungsformen implementiert das Endpunktgerät 202 Aspekte des Endpunktgerät-Frameworks 100, wie in 1 beschrieben. Das Endpunktgerät 202 kann beispielsweise einem in 1 beschriebenen Endpunktgerät 102 ähneln oder mit diesem identisch sein. Das Endpunktgerät 202 beinhaltet Hardware und Software für den Export und Import von einem oder mehreren Systemdiensten zu bzw. von einem oder mehreren anderen Endpunktgeräten. Gemäß einigen Ausführungsformen ist das Endpunktgerät 202 Teil eines elektronischen Geräts, die den Export und Import von Systemdiensten zu und von einem oder mehreren anderen Endpunktgeräten unterstützt, einschließlich z. B. einem Desktop-Computer, einem Notebook-Computer, einem Tablet-Computer, einem Virtual-Reality-System, einem System mit erweiterter Realität, einem Smartphone, einem Kommunikations-Hub, einer intelligenten Anzeige oder einem Smart-TV, um nur einige zu nennen. In Ausführungsformen beinhaltet das Endpunktgerät 202 ein oder mehrere Peripheriegeräte 212, beispielsweise Anzeigen, Eingabegeräte, Lautsprecher, Leuchten (z. B. Leuchtdioden (LEDs), organische Leuchtdioden (OLEDs)) oder eine beliebige Kombination davon, oder ist mit diesen kommunikativ gekoppelt. Obwohl in der veranschaulichten Ausführungsform das Endpunktgerät 202 mit drei Peripheriegeräten 212-1, 212-2 und 212-3 kommunikativ gekoppelt ist, kann in anderen Ausführungsformen das Endpunktgerät 202 mit einer beliebigen Anzahl an Peripheriegeräten kommunikativ gekoppelt sein.
-
In Ausführungsformen beinhaltet das Endpunktgerät 202 Verarbeitungselemente 230, die kommunikativ mit dem Speicher 210 gekoppelt sind. Der Speicher 210 beinhaltet ein elektronisches Speichergerät, beispielsweise ein Festkörperlaufwerk, ein Festplattenlaufwerk, einen Direktzugriffsspeicher („RAM“), einen Festwertspeicher („ROM“), einen elektronisch löschbaren programmierbaren ROM („EEPROM“), ein optisches Speichergerät oder eine beliebige Kombination davon. Der Speicher 210 beinhaltet Anweisungen und Daten betreffend die Ausführung einer oder mehrerer Anwendungen und den Export und Import von Systemdiensten von einem oder mehreren Endpunktgeräten, zum Beispiel Geräte-ID-Daten 222, Liste von Systemdiensten 224 und Auflösungsdienstdaten 226.
-
Gemäß Ausführungsformen beinhalten die Verarbeitungselemente 230 eine oder mehrere Steuerungsverarbeitungseinheiten („CPUs“), Mikroprozessoren, feldprogrammierbare Gate-Arrays („FPGAs“), Grafikverarbeitungseinheiten („GPUs“), anwendungsspezifische integrierte Schaltungen (ASICs) oder eine beliebige Kombination davon und sind so konfiguriert, dass sie einen oder mehrere Systemdienste in ein oder mehrere andere Endpunktgeräte importieren und aus diesen exportieren. In Ausführungsformen beinhaltet das Endpunktgerät 202 eine Liste von Systemdiensten 224, die in dem Speicher 210 gespeichert ist. Die Liste von verfügbaren Systemdiensten 224 beinhaltet Daten, die die für das Endpunktgerät 202 verfügbaren Systemdienste 106 angeben. Die dem Endpunktgerät 202 zur Verfügung stehenden Systemdienste beinhalten sowohl die im Endpunktgerät 202 beinhalteten Systemdienste 106 als auch die von einem oder mehreren anderen Endpunktgeräten an das Endpunktgerät 202 exportierten Systemdienste (d. h. Systemdienste anderer Endpunktgeräte, die von einem oder mehreren Proxy-Systemdiensten 108 gesteuert werden). Gemäß Ausführungsformen kann die Liste von verfügbaren Systemdiensten 224 ferner Systemdienste beinhalten, die für ein oder mehrere andere Endpunktgeräte verfügbar sind, die mit dem Endpunktgerät 202 kommunikativ gekoppelt sind.
-
Gemäß Ausführungsformen beinhaltet der Speicher 210 Auflösungsdienstdaten 226, einschließlich der verfügbaren Auflösungen, die mit einer oder mehreren Komponenten des Endpunktgeräts 202 (z. B. Bootstrapping-Engine 214, Identifizierungs-Engine 216, Discovery Service-Engine 220, Peripheriegeräte 212) assoziiert sind, einen oder mehrere Systemdienste in der Liste von Systemdiensten 224 oder beides. „Verfügbare Auflösungen“, wie hierin verwendet, beinhalten Daten, die angeben, wie auf eine oder mehrere Komponenten des Endpunktgeräts 202 oder auf Systemdienste 106 des Endpunktgeräts 202 unter Nutzung eines oder mehrerer Kommunikationsprotokolle zugegriffen werden kann. Eine verfügbare Auflösung beinhaltet beispielsweise Daten, die einen oder mehrere adressierbare Standorte für einen Systemdienst 106 angeben, der von einem oder mehreren Protokollen nutzbar ist (z. B. Internetprotokoll, Ports, Bluetooth Generisches Attributprofil (GATT), um nur einige zu nennen). In Ausführungsformen beinhaltet eine verfügbare Auflösung mehrere adressierbare Standorte, die von zwei oder mehr Kommunikationsprotokollen nutzbar sind. Auf diese Weise beinhalten die Auflösungsdienstdaten 226 Daten, die angeben, wie auf einen Systemdienst 106 unter Nutzung mehrerer Kommunikationsprotokolle zugegriffen werden kann. Gemäß Ausführungsformen beinhalten Auflösungsdienstdaten 226 verfügbare Auflösungen für einen oder mehrere der Systemdienste 106, die dem Endpunktgerät 202 zur Verfügung stehen, einschließlich der Systemdienste, die von einem oder mehreren anderen Endpunktgeräten an das Endpunktgerät 202 exportiert wurden. In Ausführungsformen beinhalten die Auflösungsdienstdaten 226 ferner verfügbare Auflösungen für einen oder mehrere Systemdienste, die einem oder mehreren anderen Endpunktgeräten zur Verfügung stehen, die mit dem Endpunktgerät 202 kommunikativ gekoppelt sind.
-
Die Verarbeitungselemente 230 beinhalten eine Bootstrapping-Engine 214, die zum Durchführen einer Bootstrapping-Operation zum Auffinden und Kontaktieren eines oder mehrerer anderer Endpunktgeräte zum Endpunktgerät 202 konfiguriert ist. Gemäß Ausführungsformen beinhaltet die Bootstrapping-Operation der Bootstrapping-Engine 214 eine Erkennungsstufe, die konfiguriert ist, um das Vorhandensein von einem oder mehreren Endpunktgeräten in der Nähe des Endpunktgeräts 202 zu erkennen. Wie hierin verwendet, befindet sich ein Endpunktgerät in der Nähe des Endpunktgeräts 202, wenn es von der Bootstrapping-Engine 214 unter Nutzung eines oder mehrerer Protokolle, z. B. BLE, mDNS oder NFC, um nur einige zu nennen, auffindbar ist. Das heißt, ein in der Nähe befindliches Endpunktgerät befindet sich in einer Entfernung von dem Endpunktgerät 202, die es noch ermöglicht, dass es von der Bootstrapping-Engine 214 erkannt wird. In Ausführungsformen ist die Erkennungsstufe der Bootstrapping-Engine 214 so konfiguriert, dass sie das Vorhandensein eines oder mehrerer Endpunktgeräte erkennt, die mit dem Endpunktgerät 202 kommunikativ gekoppelt oder assoziiert sind, z. B. durch ein oder mehrere Benutzerkonten (z. B. ein oder mehrere Endpunktgeräte, die sich ein Benutzerkonto mit dem Endpunktgerät 202 teilen), einen Server (z. B. ein oder mehrere Endpunktgeräte, die bei einem Server registriert sind), um nur ein paar zu nennen. Gemäß Ausführungsformen beinhaltet die Bootstrapping-Operation der Bootstrapping Engine 214 ferner eine Initialisierungsstufe, die konfiguriert ist, Geräteidentifikationsdaten (Geräte-ID-Daten) von einem oder mehreren erkannten Endpunktgeräten abzufragen und zurückzugeben.
-
In Ausführungsformen beinhaltet der Speicher 210 Geräte-ID-Daten 222, die eine Geräte-ID des Endpunktgeräts 202 umfassen, die die Identität, den Besitz, den Zugriff, die Bescheinigungen des Endpunktgeräts 202 oder eine beliebige Kombination davon angibt. Gemäß Ausführungsformen beinhaltet die Geräte-ID eine adressierbare Kennzeichnung für das Endpunktgerät 202, ähnlich einer Internetprotokoll („IP“)-Adresse. Gemäß Ausführungsformen sind Endpunktgeräte so konfiguriert, dass sie mit anderen Endpunktgeräten (z. B. dem Endpunktgerät 202) kommunizieren können, indem sie sich gegenseitig ihre Geräte-IDs und adressierbaren Kennzeichnungen bereitstellen. In Ausführungsformen beinhaltet die Geräte-ID die öffentliche Hälfte eines asymmetrischen Schlüsselpaares. Gemäß Ausführungsformen ist ein Endpunktgerät (z. B. das Endpunktgerät 202) so konfiguriert, dass es das Schlüsselpaar für digitale Signaturen verwendet. Auf diese Weise kann ein Endpunktgerät, das die digitale Signatur von einem zweiten Endpunktgerät empfängt, die Signaturen des zweiten Endpunktgeräts überprüfen. In Ausführungsformen beinhaltet eine Geräte-ID ein Bescheinigungs-Token, das eine oder mehrere Bescheinigungen eines Endpunktgeräts beinhaltet. Eine Bescheinigung beinhaltet Daten, die eine oder mehrere Fähigkeiten, Konfigurationen oder Integritäten eines Endpunktgeräts darstellen. Eine Bescheinigung kann beispielsweise Daten beinhalten, die angeben, dass die Systemsoftware des Endpunktgeräts seit dessen Herstellung nicht modifiziert wurde. In einer Ausführungsform ist eine Geräte-ID 32 Byte lang, während in anderen Ausführungsformen eine andere Anzahl an Bytes verwendet werden kann. Gemäß Ausführungsformen beinhaltet eine Geräte-ID ferner Kommunikationsinformationen, zum Beispiel Adressinformationen für einen oder mehrere Systemdienste, Engines, Module oder Prozessoren des Endpunktgeräts und ein oder mehrere Kommunikationsprotokolle, die von dem Endpunktgerät oder dessen einem oder mehreren Systemdiensten, Engines, Modulen oder Prozessoren unterstützt werden. Als Beispiel kann eine Geräte-ID für das Endpunktgerät 202 Kommunikationsinformationen beinhalten, die angeben, wie auf die Resolution Service Engine 218 zugegriffen werden kann (z. B. einen oder mehrere adressierbare Standorte der Auflösungsdienst-Engine 218) und welche Kommunikationsprotokolle von der Auflösungsdienst-Engine 218 unterstützt werden. In Ausführungsformen beinhalten Geräte-ID-Daten die Geräte-IDs für ein oder mehrere andere Endpunktgeräte, z. B. solche, mit denen das Endpunktgerät 202 kommunikativ gekoppelt ist, zuvor kommunikativ gekoppelt war, oder beides.
-
Gemäß Ausführungsformen beinhalten die Verarbeitungselemente 230 eine Identifizierungs-Engine 216, die so konfiguriert ist, dass sie Geräte-IDs erzeugt, speichert, modifiziert, beibehält und authentifiziert, z. B. solche, die in Geräte-ID-Daten 222 gespeichert sind. In Ausführungsformen ist die Identifizierungs-Engine 216 konfiguriert, eine von einem oder mehreren Endpunktgeräten empfangene Geräte-ID zu authentifizieren. Beispielsweise ist die Identitäts-Engine 216 konfiguriert, den Besitz einer Geräte-ID zu bestätigen, die Adresse einer Geräte-ID zu bestätigen, eine Bescheinigung der Geräte-ID zu bestätigen (z. B., dass das Endpunktgerät nicht manipuliert wurde), z. B. durch einen Bescheinigungsdienst, die Identität einer Geräte-ID zu bestätigen, einen Zeitstempel für die Geräte-ID zu ermitteln oder eine beliebige Kombination davon. Als Beispiel bestätigt die Identitäts-Engine 216 die Identität einer empfangenen Geräte-ID, indem sie eine in der empfangenen Geräte-ID angegebene Identität mit einer von einem Bescheinigungsdienst erhaltenen Identität vergleicht. Als weiteres Beispiel kann eine Geräte-ID eine öffentliche Hälfte eines asymmetrischen Schlüsselpaares umfassen, das in digitalen Signaturen verwendet wird und es dem Verifizierer 216 ermöglicht, Signaturen zu überprüfen, die von dem Endpunktgerät empfangen werden, das mit der Geräte-ID assoziiert ist. Die Identifizierungs-Engine 216 ist konfiguriert, eine oder mehrere empfangene Geräte-IDs in Geräte-ID-Daten 222 zu speichern. Gemäß Ausführungsformen speichert die Identifizierungs-Engine 216 nur authentifizierte Geräte-IDs in den Geräte-ID-Daten 222.
-
In Ausführungsformen beinhalten die Verarbeitungselemente 230 die Auflösungsdienst-Engine 218, die Software und Hardware beinhaltet, die zur Handhabung eingehender Anforderungen zur Auflösung des Auffindungszugriffs und von Auflösungsanfragen konfiguriert sind, die von einem oder mehreren anderen Endpunktgeräten empfangen werden. Wie hierin verwendet, umfasst eine „Anforderung zur Auflösung des Auffindungszugriffs“ eine Anforderung des Zugriffs auf die Erkennungsdienst-Engine 220 des Endpunktgeräts 202, die von einem oder mehreren anderen Endpunktgeräten empfangen wird. Basierend auf der Anforderung zur Auflösung des Auffindungszugriffs ist die Auflösungs-Engine 218 konfiguriert, eine oder mehrere verfügbare Auflösungen, die mit der Erkennungsdienst-Engine 220 assoziiert sind, an die Endpunktgeräte zu übertragen, die die Anforderung zur Auflösung des Discovery-Zugriffs gesendet haben. Das heißt, die Auflösungsdienst-Engine 218 ist konfiguriert, Daten zu übertragen, die angeben, wie auf die Erkennungsdienst-Engine 220 unter Nutzung eines oder mehrerer Kommunikationsprotokolle an die anfordernden Endpunktgeräte zugegriffen werden kann. Wie hierin verwendet, umfasst eine „Auflösungsanfrage“ eine Anforderung für den Zugriff auf einen oder mehrere identifizierte Systemdienste, die in der Liste der Systemdienste 224 enthalten sind. Basierend auf empfangenen Auflösungsanfragen ist die Auflösungs-Engine 218 konfiguriert, eine oder mehrere verfügbare Auflösungen, die mit den identifizierten Systemdiensten assoziiert sind, an die Endpunktgeräte zu übertragen, die eine Auflösungsanfrage gesendet haben. Mit anderen Worten ist die Auflösungsdienst-Engine 218 konfiguriert, Daten, die angeben, wie auf die identifizierten Systemdienste (z. B. einen oder mehrere adressierbare Standorte) zugegriffen werden kann, unter Nutzung eines oder mehrerer Kommunikationsprotokolle an die anfordernden Endpunktgeräte zu übertragen.
-
Gemäß Ausführungsformen beinhalten die Verarbeitungselemente 230 die Erkennungsdienst-Engine 220, die Software und Hardware beinhaltet, die zur Handhabung eingehender Systemdienstanfragen konfiguriert ist, die von einer oder mehreren anderen Endpunktgeräten empfangen werden. Eine „Systemdienstanfrage“, wie sie hierin verwendet wird, umfasst eine Anforderung zur Identifizierung oder Liste von einem oder mehreren Systemdiensten, die dem Endpunktgerät 202 zur Verfügung stehen. Basierend auf der empfangenen Systemdienstanfrage greift die Erkennungsdienst-Engine 220 auf die Liste der Systemdienste 224 zu und ermittelt die für das Endpunktgerät 202 verfügbaren Systemdienste.
-
Gemäß Ausführungsformen ist die Erkennungsdienst-Engine 220 konfiguriert, Daten einschließlich der Liste von verfügbaren Systemdiensten an das anfordernde Endpunktgerät zu übertragen. In Ausführungsformen ist die Erkennungsdienst-Engine 220 ferner konfiguriert, eine oder mehrere zusätzliche Listen von verfügbaren Systemdiensten an ein anforderndes Endpunktgerät zu übermitteln. Jede zusätzliche Liste von verfügbaren Systemdiensten gibt die Systemdienste an, die für ein entsprechendes Endpunktgerät verfügbar sind, das mit dem Endpunktgerät 202 kommunikativ gekoppelt ist. Auf diese Weise fungiert das Endpunktgerät 202 als Vermittler oder Brücke zwischen dem anfordernden Endpunktgerät und dem kommunikativ mit dem Endpunktgerät 202 gekoppelten Endpunktgerät.
-
3 stellt eine beispielhafte Bootstrapping-Operation 300 dar, die durch eine Bootstrapping-Engine, ähnlich oder gleich der Bootstrapping-Engine 214, eines ersten Endpunktgeräts, ähnlich oder gleich dem Endpunktgerät 202, ausgeführt wird. In Schritt 305 initiiert die Bootstrapping-Engine die Erkennungsstufe. In Ausführungsformen beinhaltet das Initiieren der Erkennungsstufe, dass die Bootstrapping-Engine ein oder mehrere Kommunikationsprotokolle initiiert (z. B. aktiviert), z. B. Bluetooth, BLE, Multicast Domain mDNS, QR-Code, Ultrabreitband, RFID, NFC oder eine beliebige Kombination davon, um nur einige zu nennen. In Schritt 310 erkennt die Bootstrapping-Engine eine oder mehrere Endpunktgeräte in der Nähe gemäß einem oder mehreren initiierten Protokollen. In Ausführungsformen beinhalten eines oder mehrere der initiierten Protokolle ein erstes Gerät, das als Abtastgerät betrieben wird (z. B. das erste Endpunktgerät), und ein zweites Gerät, das als Werbegerät betrieben wird (z. B. ein oder mehrere andere Endpunktgeräte). Ein „Werbegerät“, wie es hierin verwendet wird, ist konfiguriert, seine Anwesenheit basierend auf einem oder mehreren der verwendeten Initiierungsprotokolle bekannt zu geben. Beispielsweise ist ein Werbegerät konfiguriert, ein Signal oder eine Bake zu übermitteln, die die Anwesenheit des Werbegeräts gemäß einem oder mehreren der initiierten Protokolle angibt. Ein „Abtastgerät“ wie es hierin verwendet wird, ist konfiguriert, die Anwesenheit eines oder mehrerer Werbegeräte zu erkennen, zum Beispiel durch Empfangen der von den Werbegeräten übertragenen Signale oder Baken. Gemäß einer Ausführungsform kann ein einzelnes Gerät gleichzeitig als Abtastgerät und als Werbegerät betrieben werden.
-
In Schritt 315, nachdem die Bootstrapping-Engine das Vorhandensein von einem oder mehreren Endpunktgeräten erkannt hat, initiiert die Bootstrapping-Engine die Initialisierungsstufe. In der Initialisierungsstufe ist die Bootstrapping-Engine konfiguriert, Kontakt mit einem oder mehreren erkannten Endpunktgeräten unter Nutzung eines oder mehrerer Kommunikationsprotokolle zu initiieren. In Ausführungsformen initiiert die Bootstrapping-Engine den Kontakt mit einem oder mehreren erkannten Endpunktgeräten, indem sie eines oder mehrere der initiierten Protokolle verwendet. In Schritt 320, nachdem die Bootstrapping-Engine den Kontakt mit den erkannten Endpunktgeräten initiiert hat, erstellt die Bootstrapping-Engine eine Geräte-ID-Abfrage und überträgt diese an die erkannten Endpunktgeräte. Die Geräte-ID-Abfrage beinhaltet ein Anfordern der Geräte-ID der verbundenen Endpunktgeräte. Das heißt, die Bootstrapping-Engine fordert von jedem erkannten Endpunktgerät Identifikationsdaten an. Gemäß einigen Ausführungsformen beinhaltet die Geräte-ID-Abfrage die Geräte-ID des Endpunktgeräts, das den Bootstrapping-Prozess initiiert. In Schritt 325 empfängt die Bootstrapping-Engine die entsprechenden Geräte-IDs von einem oder mehreren erkannten Endpunktgeräten. Gemäß einer Ausführungsform empfängt die Bootstrapping-Engine ferner eine oder mehrere Geräte-IDs von einem erkannten Endpunktgerät, die ein oder mehrere entsprechende Endpunktgeräte identifizieren, die mit dem erkannten Endpunktgerät gekoppelt sind. In Ausführungsformen kann die Bootstrapping-Engine die empfangenen Geräte-IDs einer Identifizierungs-Engine bereitstellen, die der Identifizierungs-Engine 216 ähnelt oder mit dieser identisch ist. Die Identitäts-Engine ist konfiguriert, die Geräte-ID zu authentifizieren, z. B. durch Bestätigen des Besitzes einer Geräte-ID, Bestätigen der Adresse einer Geräte-ID, Bestätigen einer Bescheinigung der Geräte-ID durch einen Bescheinigungsdienst, Bestätigen der Identität einer Geräte-ID, Ermitteln eines Zeitstempels für die Geräte-ID (z. B. zum Bestätigen, dass die Geräte-ID nicht abgelaufen ist) oder einer beliebigen Kombination davon. Gemäß Ausführungsformen beinhalten die von den erkannten Endpunktgeräten empfangenen Geräte-IDs jeweils eine oder mehrere verfügbare Auflösungen, die mit einer jeweiligen Erkennungsdienst-Engine der verbundenen Endpunktgeräte assoziiert sind (d. h. Daten, die angeben, wie auf die jeweiligen Erkennungsdienst-Engines der verbundenen Endpunktgeräte zugegriffen werden kann).
-
Unter Bezugnahme auf 4 wird ein Blockdiagramm von kommunikativ gekoppelten Endpunktgeräten dargestellt, die zur gemeinsamen Nutzung von Systemdiensten konfiguriert sind. In Ausführungsformen implementieren die Endpunktgeräte 402-1 (einschließlich Erkennungsdienst-Engine 420-1, Auflösungsdienst-Engine 418-1 und Systemdienste 406-1) und 402-2 (einschließlich Erkennungsdienst-Engine 420-2, Auflösungsdienst-Engine 418-2 und Systemdienste 406-2) Aspekte des Endpunktgerät-Frameworks 100 wie in 1 beschrieben. Die Endpunktgerät 402-1 und 402-2 können beispielsweise einem in 1 beschriebenen Endpunktgerät 102 ähneln oder mit diesem identisch sein. Obwohl in der veranschaulichten Ausführungsform das Endpunktgerät 402-1 mit einem anderen Endpunktgerät 402-2 kommunikativ gekoppelt ist, kann in anderen Ausführungsformen das Endpunktgerät 402-1 mit einer beliebigen Anzahl an anderen Endpunktgeräten kommunikativ gekoppelt sein. Gemäß Ausführungsformen initiiert das Endpunktgerät 402-1 den Kontakt mit dem Endpunktgerät 402-2 unter Nutzung eines oder mehrerer Kommunikationsprotokolle, indem es beispielsweise die zuvor unter Bezugnahme auf 3 erläuterte beispielhafte Bootstrapping-Operation 300 implementiert.
-
In Ausführungsformen ist jedes Endpunktgerät 402 konfiguriert, eine oder mehrere Anwendungen 404-1 bzw. 404-2 auszuführen, die jeweils mit einer oder mehreren Funktionalitäten assoziiert sind. Jedes Endpunktgerät ist konfiguriert, diese Funktionalitäten unter Nutzung der Systemdienste 406 innerhalb des Endpunktgeräts 402 oder unter Nutzung eines oder mehrerer exportierter Systemdienste 406, die von einem anderen Endpunktgerät 402 gemeinsam genutzt werden, zu implementieren. In der veranschaulichten Ausführungsform ist das Endpunktgerät 402-1 beispielsweise konfiguriert, eine oder mehrere Funktionalitäten der Anwendung 404-1 zu implementieren, indem es Systemdienste 406-1, Systemdienste 406-2 auf dem Endpunktgerät 402-2 oder beides verwendet. Auf diese Weise werden die Fähigkeiten des Endpunktgeräts 402-1 erhöht, da mehr Systemdienste verfügbar sind, um die Funktionalitäten einer Anwendung zu implementieren. Gemäß Ausführungsformen sind für den Zugriff auf die Systemdienste 406 auf einem anderen Endpunktgerät eine oder mehrere Anwendungen 404, die auf einem Endpunktgerät 402 laufen, so konfiguriert, dass sie auf die Erkennungsdienst-Engine 420, die der Erkennungsdienst-Engine 220 ähnlich oder gleich ist, eines oder mehrerer anderer Endpunktgeräte zugreifen. Obwohl in der veranschaulichten Ausführungsform eine Anwendung 404-1, die auf einem ersten Endpunktgerät 402-1 läuft, auf eine Erkennungsdienst-Engine 420-2 eines anderen Endpunktgeräts 402 zugreift, kann in anderen Ausführungsformen eine beliebige Anzahl an Anwendungen 404, die auf dem ersten Endpunktgerät 402-1 laufen, auf eine beliebige Anzahl an Erkennungsdienst-Engines einer beliebigen Anzahl an anderen Endpunktgeräten zugreifen. In einigen Ausführungsformen greift eine Anwendung 404, die auf einem ersten Endpunktgerät 402-1 betrieben wird, auf eine Erkennungsdienst-Engine 420-2 zu, die auf einem zweiten Endpunktgerät 402-2 betrieben wird, basierend auf einer Geräte-ID, die von dem zweiten Endpunktgerät 402-2 während einer Bootstrapping-Operation empfangen wird, die der Bootstrapping-Operation 300 ähnlich oder gleich ist. Beispielsweise empfängt das Endpunktgerät 402-1 während der Bootstrapping-Operation eine Geräte-ID von dem Endpunktgerät 402-2, die eine oder mehrere verfügbare Auflösungen beinhaltet, die mit der auf dem Endpunktgerät 402-2 arbeitenden Erkennungsdienst-Engine 420-2 assoziiert sind (d. h. Daten, die angeben, wie auf die Erkennungsdienst-Engine 420-2 zugegriffen werden kann). Basierend auf diesen verfügbaren Auflösungen kann die Anwendung 404-1 über ein oder mehrere Kommunikationsprotokolle auf die Erkennungsdienst-Engine 420-2 zugreifen. In Ausführungsformen empfängt das Endpunktgerät 402-1 eine Geräte-ID von dem Endpunktgerät 402-2, die eine oder mehrere verfügbare Auflösungen beinhaltet, die mit einer oder mehreren Erkennungsdienst-Engines von einem oder mehreren anderen Endpunktgeräten assoziiert sind, die kommunikativ mit dem Endpunktgerät 402-2 gekoppelt sind. In anderen Ausführungsformen fordert die auf dem ersten Endpunktgerät 402-1 betriebene Anwendung 404-1 zunächst den Zugriff auf die Erkennungsdienst-Engine 420-2 an, indem sie die auf dem Endpunktgerät 402-2 betriebene Auflösungsdienst-Engine 418-2 abfragt.
-
Unter Bezugnahme auf 5 ist beispielsweise eine beispielhafte Anforderungsoperation 500 für den Zugriff auf eine Erkennungsdienst-Engine dargestellt. Gemäß Ausführungsformen ist ein erstes Endpunktgerät 502-1, ähnlich oder gleich dem Endpunktgerät 102, konfiguriert, Zugriff auf eine Erkennungsdienst-Engine, ähnlich oder gleich der Erkennungsdienst-Engine 220, anzufordern, die auf einem zweiten Endpunktgerät 502-2 betrieben wird, das kommunikativ mit dem ersten Endpunktgerät 502-1 gekoppelt ist. Das zweite Endpunktgerät 502-2 beinhaltet eine Auflösungsdienst-Engine 518, ähnlich oder gleich der Auflösungsdienst-Engine 218, und eine Identifizierungs-Engine 516, ähnlich oder gleich der Identifizierungs-Engine 216. Die Anforderungsoperation 500 beinhaltet, dass das erste Endpunktgerät 502-1 eine Identifizierungsanfrage 501 an das zweite Endpunktgerät 502-2 übermittelt. In Ausführungsformen beinhaltet die Identifizierungsanfrage 501 Daten, die die Geräte-ID des zweiten Endpunktgeräts 502-2 anfordern. Gemäß Ausführungsformen ist die Identifizierungs-Engine 516 des zweiten Endpunktgeräts 502-2 in Reaktion auf das Empfangen der Identifizierungsanfrage 501 konfiguriert, die Geräte-ID-Daten 503 des zweiten Endpunktgeräts 502-2 an das erste Endpunktgerät 502-1 zu übertragen. Die an das erste Endpunktgerät 502-1 übermittelten Geräte-ID-Daten 503 beinhalten Daten, die angeben, wie auf die Auflösungsdienst-Engine 518 des zweiten Endpunktgeräts 502-2 zugegriffen werden kann. Die Geräte-ID-Daten 503 beinhalten beispielsweise Daten, die die von der Auflösungsdienst-Engine 518 unterstützten Kommunikationsprotokolle, einen adressierbaren Standort der Auflösungsdienst-Engine 518 oder beides angeben.
-
Basierend auf den empfangenen Geräte-ID-Daten 503 erzeugt das erste Endpunktgerät 502-1 eine Aufforderung zur Auflösung des Discovery-Zugriffs 505 und übermittelt die Aufforderung zur Auflösung des Zugriffs 505 an die Erkennungsdienst-Engine 518 des zweiten Endpunktgeräts 502-2. Die Anforderung zur Auflösung des Discovery-Zugriffs 505 beinhaltet Daten, die Zugriffsinformationen für die Erkennungsdienst-Engine anfordern, die auf dem zweiten Endpunktgerät 502-2 läuft. Die Anforderung zur Auflösung des Discovery-Zugriffs 505 beinhaltet zum Beispiel eine Abfrage der verfügbaren Auflösungen für die Erkennungsdienst-Engine des zweiten Endpunktgeräts 502-2. In Reaktion auf das Empfangen der Anforderung zur Auflösung des Discovery-Zugriffs 505 ist die Auflösungsdienst-Engine 518 konfiguriert, die Auflösungsdaten 507 an das erste Endpunktgerät zu übermitteln. Die Auflösungsdaten 507 beinhalten eine oder mehrere verfügbare Auflösungen für die Erkennungsdienst-Engine des zweiten Endpunktgeräts 502-2. Das heißt, die Auflösungsdaten 507 beinhalten Daten, die angeben, wie auf die Erkennungsdienst-Engine des zweiten Endpunktgeräts 502-2 zugegriffen werden kann. Die Auflösungsdaten 507 beinhalten beispielsweise ein oder mehrere von der Erkennungsdienst-Engine unterstützte Kommunikationsprotokolle und einen adressierbaren Standort der Erkennungsdienst-Engine. Aus den Auflösungsdaten 507 kann das erste Endpunktgerät 502-1 auf die Erkennungsdienst-Engine des zweiten Endpunktgeräts 502-2 zugreifen. So können die Auflösungsdaten 507 beispielsweise Daten beinhalten, die ein von der Erkennungsdienst-Engine des zweiten Endpunktgeräts unterstütztes Kommunikationsprotokoll (z. B. Bluetooth LTE) und einen oder mehrere offene Ports identifizieren, an denen die Erkennungsdienst-Engine verfügbar ist. Basierend auf dem identifizierten Kommunikationsprotokoll und den offenen Ports kann das erste Endpunktgerät 502-1 auf die Erkennungsdienst-Engine des zweiten Endpunktgeräts 502-2 zugreifen. In Ausführungsformen beinhalten die Auflösungsdaten 507 ferner eine oder mehrere verfügbare Auflösungen für die Erkennungsdienst-Engine des einen oder den mehreren Endpunktgeräten, die mit dem zweiten Endpunktgerät 502-2 kommunikativ gekoppelt sind.
-
Unter erneuter Bezugnahme auf 4 fragt die auf dem ersten Endpunktgerät 402-1 laufende Anwendung 404-1, nachdem sie Zugriff auf die Erkennungsdienst-Engine 420-2 des zweiten Endpunktgeräts 402-2 erhalten hat, eine Liste von verfügbaren Systemdiensten von der Erkennungsdienst-Engine 420-2 ab und empfängt diese. Die Liste von verfügbaren Systemdiensten beinhaltet jeden Systemdienst, der dem zweiten Endpunktgerät 402-2 zur Verfügung steht, einschließlich derjenigen, die von einer oder mehreren anderen Endpunktgeräten an das zweite Endpunktgerät 402-2 exportiert (d. h. mit diesem gemeinsam genutzt) werden. Gemäß einigen Ausführungsformen fragt das erste Endpunktgerät 402-1 von der Erkennungsdienst-Engine 420-2 eine oder mehrere zusätzliche Listen von verfügbaren Systemdiensten ab und empfängt diese, die Systemdienste beinhalten, die für ein oder mehrere entsprechende andere Endpunktgeräte verfügbar sind, die kommunikativ mit dem zweiten Endpunktgerät 402-2 gekoppelt sind. Auf diese Weise fungiert die Erkennungsdienst-Engine 420-2 als Brücke oder Vermittler zwischen dem ersten Endpunktgerät 402-1 und einem oder mehreren anderen Endpunktgeräten, die kommunikativ mit dem zweiten Endpunktgerät 402-2 gekoppelt sind.
-
In Ausführungsformen ermittelt die Anwendung 404-1 einen oder mehrere anwendbare Systemdienste aus der einen oder den mehreren Listen von verfügbaren Systemdiensten basierend auf den Funktionalitäten, die mit einer oder mehreren auf dem ersten Endpunktgerät 402 ausgeführten Anwendungen assoziiert sind. Hier beinhaltet ein anwendbarer Systemdienst einen Systemdienst, der bei der Implementierung einer oder mehrerer Funktionalitäten, die mit den auf dem Endpunktgerät laufenden Anwendungen assoziiert sind, behilflich ist oder für diese notwendig ist. Die Anwendung 404-1 ermittelt zum Beispiel einen oder mehrere anwendbare Systemdienste aus der Liste von Systemdiensten, die bei der Implementierung einer oder mehrerer Funktionalitäten, die mit der Anwendung 404-1 assoziiert sind, behilflich sind oder für diese notwendig sind. Nach dem Ermitteln der anwendbaren Systemdienste fragt die Anwendung 404-1 die Auflösungsdienst-Engine 418-2 des zweiten Endpunktgeräts 402-2 nach verfügbaren Auflösungen ab, die mit den anwendbaren Systemdiensten assoziiert sind. Anders ausgedrückt, fordert die Anwendung 404-1 von der Auflösungsdienst-Engine 418-2 Daten an, die angeben, wie auf die anwendbaren Systemdienste zugegriffen werden kann.
-
Unter Bezugnahme auf 6 ist beispielsweise eine beispielhafte Anforderungsoperation 600 für verfügbare Systemdienste von einem Endpunktgerät dargestellt. In Ausführungsformen erzeugt und überträgt ein erstes Endpunktgerät 602-1, das dem Endpunktgerät 102 ähnlich oder gleich ist, eine Systemdienstanfrage 601 an die Erkennungsdienst-Engine 620 eines zweiten Endpunktgeräts 602-2. Die Systemdienstanfrage 601 beinhaltet Daten, mit denen eine Liste von Systemdiensten angefordert wird, die für das zweite Endpunktgerät 602-2 verfügbar sind. In Reaktion auf die empfangene Systemdienstanfrage 601 übermittelt die Erkennungsdienst-Engine 620, die auf dem zweiten Endpunktgerät 602-2 betrieben wird, eine Liste von verfügbaren Systemdiensten 603 an das erste Endpunktgerät 602-1. Die Liste von verfügbaren Systemdiensten 603 beinhaltet Daten, die jeden Systemdienst identifizieren, der für das zweite Endpunktgerät 602-2 verfügbar ist. Solche Systemdienste beinhalten die Systemdienste, die auf dem zweiten Endpunktgerät 602-2 betrieben werden, sowie die Systemdienste, die von einer oder mehreren anderen Endpunktgeräten an das zweite Endpunktgerät 602-2 exportiert oder mit diesem gemeinsam genutzt werden. Gemäß einigen Ausführungsformen übermittelt das zweite Endpunktgerät 602-2 eine oder mehrere zusätzliche Listen von verfügbaren Systemdiensten, die jeweils Daten beinhalten, die die Systemdienste identifizieren, die für entsprechende andere Endpunktgeräte verfügbar sind, die mit dem zweiten Endpunktgerät 602-2 kommunikativ gekoppelt sind. Basierend auf der Liste von verfügbaren Systemdiensten 603 oder einer oder mehreren zusätzlichen Listen von verfügbaren Systemdiensten ermittelt das erste Endpunktgerät 602-1 einen oder mehrere anwendbare Systemdienste basierend auf einer oder mehreren Funktionalitäten der auf dem ersten Endpunktgerät 602-1 laufenden Anwendungen.
-
Nachdem das erste Endpunktgerät 602-1 eine oder mehrere anwendbare Anwendungen ermittelt hat, erzeugt und überträgt das erste Endpunktgerät 602-1 eine Auflösungsdienst-Engine 618 des zweiten Endpunktgeräts 602-2 und stellt eine Auflösungsanfrage 605. Die Auflösungsanfrage 605 beinhaltet Daten, mit denen der Zugriff auf die ermittelten anwendbaren Systemdienste angefordert wird (d. h. die Anforderung einer oder mehrerer verfügbarer Auflösungen für die anwendbaren Systemdienste). In Reaktion auf das Empfangen der Auflösungsanfrage 605 ermittelt die Auflösungsdienst-Engine 618 des zweiten Endpunktgeräts 602-2 eine oder mehrere verfügbare Auflösungen 607 für die anwendbaren Systemdienste. Die Auflösungsdienst-Engine 618 analysiert beispielsweise Auflösungsdienstdaten, um eine oder mehrere verfügbare Auflösungen 607 für die Anwendungssystemdienste zu ermitteln. Sobald die Auflösungsdienst-Engine 618 die verfügbaren Auflösungen 607 für die anwendbaren Systemdienste ermittelt hat, werden die verfügbaren Auflösungen 607 an das erste Endpunktgerät 602-1 übermittelt.
-
Unter erneuter Bezugnahme auf 4, nachdem die auf dem ersten Endpunktgerät 402-1 laufende Anwendung 404-1 die verfügbaren Auflösungen für die anwendbaren Systemdienste empfängt, greift die Anwendung 404-1 auf diese anwendbaren Systemdienste des Endpunktgeräts 402-2 zu, sodass die Anwendung 404-1 die Kontrolle über die anwendbaren Systemdienste besitzt. Nach dem Zugriff der Anwendung 404-1 auf die anwendbaren Systemdienste führt das erste Endpunktgerät 402-1 eine oder mehrere Anwendungen 404 aus, indem es die Funktionalitäten, die mit diesen Anwendungen 404 assoziiert sind, unter Nutzung der anwendbaren Systemdienste implementiert. Das Endpunktgerät 402-1 implementiert beispielsweise eine Funktionalität, die mit der Anwendung 404-1 assoziiert ist und Systemdienste 406-2 des zweiten Endpunktgeräts 402-2 verwendet. In Ausführungsformen beinhaltet das Implementieren einer Funktionalität einer Anwendung das Ausführen mindestens eines Teils der Anwendung unter Nutzung der anwendbaren Systemdienste. Auf diese Weise erhält das erste Endpunktgerät 402-1 die Fähigkeiten der Systemdienste 406-2 des zweiten Endpunktgeräts 402-2.
-
Als Beispiel beinhaltet die Anwendung 404-1 eine oder mehrere Funktionalitäten zur Benachrichtigung, zum Beispiel das Erzeugen, Anzeigen und Interagieren von einer oder mehreren Benachrichtigungen. Aus einer Liste von verfügbaren Systemdiensten von dem zweiten Endpunktgerät 402-2 ermittelt die Anwendung 404-1 einen oder mehrere anwendbare Systemdienste, die bei der Anzeige und Interaktion einer oder mehrerer Benachrichtigungen helfen, zum Beispiel eine Anzeige-API, eine Eingabe-API und eine Schnittstelle des zweiten Endpunktgeräts 402-2. Sobald die Anwendung 404-1 die verfügbaren Auflösungen für die Anzeige-API, die Eingabe-API und die Schnittstelle des zweiten Endpunktgeräts 402-2 empfängt, implementiert die Anwendung 404-1 die Anzeige einer oder mehrerer Benachrichtigungen, indem sie beispielsweise die Anzeige-API und die Schnittstelle des zweiten Endpunktgeräts 402-2 verwendet, und implementiert die Interaktion mit einer oder mehreren Benachrichtigungen, indem sie beispielsweise die Eingabe-API und die Schnittstelle des zweiten Endpunktgeräts 402-2 verwendet.
-
Ein weiteres Beispiel beinhaltet die Anwendung 404-1 eine oder mehrere Funktionalitäten, zum Beispiel den Empfang und das Streaming eines Telefonanrufs. Aus einer Liste von verfügbaren Systemdiensten von dem zweiten Endpunktgerät 402-2 ermittelt die Anwendung 404-1 einen oder mehrere anwendbare Systemdienste, die den Empfang und das Streaming eines Telefonanrufs unterstützen, zum Beispiel eine Telekommunikations-API des zweiten Endpunktgeräts 402-2. Sobald die Anwendung 404-1 die verfügbaren Auflösungen für die Telekommunikations-API des zweiten Endpunktgeräts 402-2 empfängt, implementiert die Anwendung 404-1 den Empfang und das Streaming eines Telefonanrufs, indem sie zum Beispiel die Telekommunikations-API des zweiten Endpunktgeräts 402-2 verwendet.
-
Unter Bezugnahme auf 7 wird nun ein Ablaufdiagramm eines exemplarischen Prozesses 700 zum Ausführen einer Anwendung unter Nutzung gemeinsam genutzter Systemdienste veranschaulicht. In Schritt 705 greift ein erstes Endpunktgerät, das dem Endpunktgerät 102 ähnlich oder gleich ist, zunächst auf die Erkennungsdienst-Engine eines oder mehrerer anderer Endpunktgeräte zu, die kommunikativ mit dem ersten Endpunktgerät gekoppelt sind. In Ausführungsformen ist das erste Endpunktgerät für den Zugriff auf die Erkennungsdienst-Engines konfiguriert, um zunächst das eine oder die mehreren anderen Endpunktgeräte gemäß einem oder mehreren Kommunikationsprotokollen zu erkennen. Das erste Endpunktgerät fordert dann die Geräte-ID jedes erkannten Endpunktgeräts an. Gemäß einer Ausführungsform beinhaltet jede Geräte-ID des erkannten Endpunktgeräts Daten, die angeben, wie auf die jeweilige Erkennungsdienst-Engine für dieses Endpunktgerät zugegriffen werden kann.
-
Ferner fragt das erste Endpunktgerät in Schritt 705, sobald es Zugriff auf die Erkennungsdienst-Engine eines oder mehrerer anderer Endpunktgeräte hat, die mit dem ersten Endpunktgerät kommunikativ gekoppelt sind, die verfügbaren Systemdienste für jedes der anderen Endpunktgeräte ab. Das heißt, das erste Endpunktgerät fragt von jedem anderen Endpunktgerät die Systemdienste ab, die auf dem anderen Endpunktgerät laufen, sowie die Systemdienste, die von zumindest einem anderen Endpunktgerät an das andere Endpunktgerät exportiert (d. h. gemeinsam mit diesem genutzt) werden. In Schritt 710 empfängt das erste Endpunktgerät eine Liste von verfügbaren Systemdiensten von jedem der abgefragten Endpunktgeräte. Aus den Listen von verfügbaren Systemdiensten identifiziert das erste Endpunktgerät eine oder mehrere anwendbare Systemdienste. Der anwendbare Systemdienst beinhaltet einen oder mehrere Systemdienste, die bei der Implementierung einer oder mehrerer Funktionalitäten, die mit den einen oder mehreren auf dem ersten Endpunktgerät laufenden Anwendungen assoziiert sind, behilflich oder für diese notwendig sind. In Schritt 715 fragt das erste Endpunktgerät Auflösungsdaten für die anwendbaren Systemdienste von einer oder mehreren der Endpunktgeräte ab, die die anwendbaren Systemdienste aufgelistet haben. Das heißt, das erste Endpunktgerät fragt die Endpunktgeräte ab, die eine Liste von verfügbaren Systemdiensten, einschließlich der anwendbaren Systemdienste übermittelt haben. In Schritt 720 empfängt das erste Endpunktgerät eine oder mehrere verfügbare Auflösungen für jeden der anwendbaren Systemdienste von den jeweiligen Endpunktgeräten (d. h. den Endpunktgeräten, die abgefragt wurden). Die verfügbaren Auflösungen beinhalten Daten, die angeben, wie auf die anwendbaren Systemdienste zugegriffen und diese gesteuert werden können, z. B. Daten, die ein oder mehrere Kommunikationsprotokolle angeben, die mit einem anwendbaren Systemdienst assoziiert sind, und einen oder mehrere adressierbare Standorte des anwendbaren Systemdienstes.
-
In Schritt 725 führt das erste Endpunktgerät eine oder mehrere Anwendungen aus. Das Ausführen der einen oder der mehreren Anwendungen beinhaltet das Implementieren einer oder mehrerer Funktionalitäten, die mit den Anwendungen assoziiert sind und einen oder mehrere der anwendbaren Systemdienste verwenden. Auf diese Weise führt das erste Endpunktgerät eine Anwendung aus, die die Systemdienste anderer Endpunktgeräte verwendet. In Schritt 730 empfängt das erste Endpunktgerät Daten, die eine Interaktion mit einem entsprechenden Endpunktgerät darstellen, das einen anwendbaren Systemdienst beinhaltet, der Funktionalitäten der auf dem ersten Endpunktgerät ausgeführten Anwendung implementiert. Das heißt, das erste Endpunktgerät empfängt Daten, die Interaktionen mit der auf dem ersten Endpunktgerät ausgeführten Anwendung darstellen, von einem zweiten Endpunktgerät, das anwendbare Systemdienste beinhaltet, die beim Implementieren von Funktionalitäten der auf dem ersten Endpunktgerät ausgeführten Anwendung verwendet werden. Auf diese Weise fungiert das zweite Endgerät als entferntes Eingabegerät für die Anwendung, die auf dem ersten Endpunktgerät ausgeführt wird. In Schritt 735 ist das erste Endpunktgerät konfiguriert, das Ausführen einer oder mehrerer Anwendungen gemäß den Daten zu modifizieren, die Interaktionen mit einem entsprechenden Endpunktgerät darstellen. Zum Beispiel stellt das erste Endpunktgerät die Daten, die Interaktionen mit einem entsprechenden Endpunktgerät darstellen, als Eingabe für eine oder mehrere Anwendungen bereit, initiiert die Ausführung einer oder mehrerer Anwendungen basierend auf den Daten, hält die Ausführung einer oder mehrerer Anwendungen basierend auf den Daten an, oder eine beliebige Kombination davon, um nur einige zu nennen.
-
In einigen Ausführungsformen können bestimmte Aspekte der zuvor beschriebenen Techniken durch einen oder mehrere Prozessoren eines Verarbeitungssystems, das Software ausführt, implementiert werden. Die Software umfasst einen oder mehrere Sätze ausführbarer Anweisungen, die auf einem nicht-flüchtigen computerlesbaren Speichermedium gespeichert oder anderweitig greifbar verkörpert sind. Die Software kann die Anweisungen und bestimmte Daten beinhalten, die, bei Ausführung durch den einen oder die mehreren Prozessoren, den einen oder die mehreren Prozessoren manipulieren, um einen oder mehrere Aspekte der zuvor beschriebenen Techniken auszuführen. Das nicht-flüchtige, computerlesbare Speichermedium kann zum Beispiel eine magnetische oder optische Plattenspeichervorrichtung, Festkörperspeichervorrichtungen, wie z. B. Direktzugriffsspeicher (RAM) oder ein anderes nichtflüchtiges Speichergerät bzw. -geräte und dergleichen beinhalten. Die ausführbaren Anweisungen, die auf dem nicht-flüchtigen, computerlesbaren Speichermedium gespeichert sind, können als Quellcode, als Code in einer Assemblersprache, als Objektcode oder in einem anderen Anweisungsformat vorliegen, das durch den einen oder die mehreren Prozessoren interpretiert wird oder auf andere Weise ausgeführt werden kann.
-
Ein computerlesbares Speichermedium kann ein beliebiges Speichermedium oder eine Kombination von Speichermedien beinhalten, auf die während des Gebrauchs durch ein Computersystem zugegriffen werden kann, um dem Computersystem Anweisungen und/oder Daten bereitzustellen. Derartige Speichermedien können optische Medien (z. B. Compact Disc (CD), Digital Versatile Disc (DVD), Blu-Ray Disc),magnetische Medien (z. B. Floppy Disc, Magnetband oder eine magnetische Festplatte), flüchtige Datenspeicher (z. B. Schreib-/Lese-Speicher (RAM) oder Cache), nicht-flüchtige Datenspeicher (z. B. Festwertspeicher(ROM) oder Flash-Speicher) oder auf mikroelektromechanischen Systemen (MEMS) basierende Speichermedien beinhalten, sind jedoch nicht darauf beschränkt. Das computerlesbare Speichermedium kann im Rechensystem eingebettet (z. B. System-RAM oder System-ROM), fest am Rechensystem befestigt (z. B. eine magnetische Festplatte), entfernbar am Rechensystem befestigt (z. B. eine optische Disc oder ein auf dem Universal-Serial-Bus (USB) basierender Flash-Speicher) oder über ein leitungsgebundenes oder drahtloses Netzwerk mit dem Computersystem gekoppelt sein (z. B. netzzugreifbarer Speicher (NAS)).
-
Es ist zu beachten, dass nicht alle der oben in der allgemeinen Beschreibung beschriebenen Aktivitäten oder Elemente erforderlich sind, dass ein Teil einer bestimmten Aktivität oder einer bestimmten Vorrichtung möglicherweise nicht erforderlich ist und dass zusätzlich zu den beschriebenen eine oder mehrere weitere Aktivitäten ausgeführt werden oder Elemente beinhaltet sein können. Darüber hinaus ist die Reihenfolge, in der Aktivitäten aufgelistet werden, nicht notwendigerweise die Reihenfolge, in der sie ausgeführt werden. Auch wurden die Konzepte unter Bezugnahme auf bestimmte Ausführungsformen beschrieben. Fachleute auf dem Gebiet erkennen jedoch, dass, wie in den nachstehenden Ansprüchen dargelegt, verschiedene Modifikationen und Änderungen vorgenommen werden können, ohne vom Umfang der vorliegenden Offenbarung abzuweichen. Dementsprechend sollen die Beschreibung und die Figuren in einem veranschaulichenden und nicht in einem einschränkenden Sinn betrachtet werden, zudem sollen alle derartigen Modifikationen im Umfang der vorliegenden Offenbarung enthalten sein.
-
Die Präposition „oder“, wie sie im Kontext von „zumindest eines von A, B oder C“ verwendet wird, wird hierin verwendet, um „einschließlich oder“ zu bezeichnen. Das heißt, in den zuvor genannten und ähnlichen Kontexten wird oder verwendet, um „zumindest eines von oder eine beliebige Kombination davon“ zu bezeichnen. Zum Beispiel wird „zumindest eines von A, B und C“ verwendet, um „zumindest eines von A, B, C oder eine beliebige Kombination davon“ zu bezeichnen.
-
Vorteile, andere Vorzüge und Lösungen für Probleme wurden oben in Bezug auf spezifische Ausführungsformen beschrieben. Die Vorteile, Vorzüge, Lösungen für Probleme und jegliche Merkmale, die bewirken können, dass ein Vorteil, Vorzug oder eine Lösung auftritt oder stärker ausgeprägt wird, sind jedoch nicht als kritisches, erforderliches oder wesentliches Merkmal eines oder aller Ansprüche auszulegen. Darüber hinaus sind die zuvor offenbarten speziellen Ausführungsformen nur veranschaulichend, da der offenbarte Gegenstand auf verschiedene, jedoch äquivalente Arten, die für Fachleute auf dem Gebiet ersichtlich sind und die Vorteile der hierin enthaltenen Lehren aufweisen, modifiziert und praktiziert werden kann. Es sind keine Einschränkungen für die hierin dargestellten Details der Konstruktion oder des Designs beabsichtigt, außer wie in den nachstehenden Ansprüchen beschrieben. Es ist daher offensichtlich, dass die bestimmten, zuvor offenbarten Ausführungsformen geändert oder modifiziert werden können und alle derartigen Variationen als innerhalb des Umfangs des offenbarten Gegenstands betrachtet werden. Dementsprechend ist der hier beanspruchte Schutz wie in den nachstehenden Ansprüchen dargelegt.
-
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
-