(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024156873
(43)【公開日】2024-11-06
(54)【発明の名称】能力が増大したエンドポイントデバイスのためのエンドポイントデバイス間のシステムサービス共有
(51)【国際特許分類】
H04L 67/51 20220101AFI20241029BHJP
H04L 67/02 20220101ALI20241029BHJP
H04L 69/322 20220101ALI20241029BHJP
【FI】
H04L67/51
H04L67/02
H04L69/322
【審査請求】有
【請求項の数】17
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024127747
(22)【出願日】2024-08-02
(62)【分割の表示】P 2022540707の分割
【原出願日】2021-08-17
(31)【優先権主張番号】63/066,602
(32)【優先日】2020-08-17
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ツァオ,マイケル・エイチ
(72)【発明者】
【氏名】ニシ,ダニエル
(72)【発明者】
【氏名】マ,リザ
(72)【発明者】
【氏名】ラム,ユク・イン・モーリス
(72)【発明者】
【氏名】クーグラー,タイラー
(72)【発明者】
【氏名】ベセット,テイラー
(57)【要約】 (修正有)
【課題】エンドポイントデバイスシステムは、1つ以上のエンドポイントデバイス間で1つ以上のシステムサービスを共有する方法及びシステムを提供する。
【解決手段】システムは、第1のエンドポイントデバイスに通信可能に結合された1つ以上の他のエンドポイントデバイスを検出する第1のエンドポイントデバイスを含む。第1のエンドポイントデバイスは、検出されたエンドポイントデバイスのうち少なくとも1つに対して、利用可能なシステムサービスのリストを要求する。実行中のアプリケーションに基づいて1つ以上の適用可能なシステムサービスを決定した後、検出したエンドポイントデバイスに対して、適用可能なシステムサービスについての利用可能な解決を要求する。第1のエンドポイントデバイスは、次いで、利用可能な解決に基づいて、適用可能なシステムサービスのうちの1つ以上を用いて、アプリケーションの機能を実行する。
【選択図】
図7
【特許請求の範囲】
【請求項1】
方法であって、
第1のエンドポイントデバイスによって、第2のエンドポイントデバイスから、前記第2のエンドポイントデバイスに関連付けられた利用可能なシステムサービスのリストと、前記利用可能なシステムサービスのリストからの少なくとも1つの利用可能なシステムサービスについての利用可能な解決とを受信するステップと、
前記第1のエンドポイントデバイスによって、機能に関連付けられた1つ以上のアプリケーションを実行するステップとを含み、前記1つ以上のアプリケーションを実行するステップは、前記利用可能な解決に基づいて前記利用可能なシステムサービスのリストからの少なくとも1つの利用可能なシステムを用いて前記機能を実現するデータを、前記第1のエンドポイントデバイスから前記第2のエンドポイントデバイスに送信するステップを含む、方法。
【請求項2】
前記方法はさらに、
前記第1のエンドポイントデバイスによって、前記利用可能なシステムサービスのリストからの少なくとも1つの利用可能なシステムサービスに基づいて、前記第2のエンドポイントデバイスから複数の利用可能な解決を受信するステップを含み、
前記利用可能な解決は、前記複数の利用可能な解決のうちの1つである、請求項1に記載の方法。
【請求項3】
前記第1のエンドポイントデバイスによって、前記1つ以上のアプリケーションとの対話を表わすデータを前記第2のエンドポイントデバイスから受信するステップと、
前記第1のエンドポイントデバイスによって、前記1つ以上のアプリケーションとの前記対話を表わす前記データに基づいて前記1つ以上のアプリケーションの実行を修正するステップとをさらに含む、請求項1または2に記載の方法。
【請求項4】
前記第1のエンドポイントデバイスによって、前記第2のエンドポイントデバイスから、前記第2のエンドポイントデバイスに通信可能に結合された第3のエンドポイントデバイスに関連付けられた利用可能なシステムサービスの第2のリストを受信するステップと、
前記第1のエンドポイントデバイスによって、前記第2のエンドポイントデバイスに対して、前記利用可能なシステムサービスの第2のリストからのシステムサービスについての第2の利用可能な解決を要求するステップとをさらに含む、請求項1から3のいずれか1項に記載の方法。
【請求項5】
前記1つ以上のアプリケーションを実行するステップはさらに、前記第1のエンドポイントデバイスによって、前記第2の利用可能な解決に基づいて前記利用可能なシステムサービスの第2のリストからの前記システムサービスを用いて前記機能を実現するデータを、前記第3のエンドポイントデバイスに送信するステップを含む、請求項4に記載の方法。
【請求項6】
前記第1のエンドポイントデバイスによって、前記第2のエンドポイントデバイスを検出するステップと、
前記第1のエンドポイントデバイスによって、前記第2のエンドポイントデバイスから、前記第2のエンドポイントデバイスに関連付けられた解決サービスデータを受信するステップとをさらに含む、請求項1から5のいずれか1項に記載の方法。
【請求項7】
前記第1のエンドポイントデバイスによって、前記解決サービスデータに基づいて、複数の通信プロトコルのうちの通信プロトコルを通じて、前記第2のエンドポイントデバイ
スに関連付けられた前記利用可能なシステムサービスのリストを前記第2のエンドポイントデバイスに要求するステップをさらに含む、請求項6に記載の方法。
【請求項8】
方法であって、
第1のエンドポイントデバイスによって、1つ以上のシステムサービスを含む第2のエンドポイントデバイスを検出するステップと、
前記第1のエンドポイントデバイスによって、前記第2のエンドポイントデバイスの前記1つ以上のシステムサービスに関連付けられた利用可能な解決を受信するステップと、
前記第1のエンドポイントデバイス上で、前記1つ以上のシステムサービスに関連付けられた前記利用可能な解決に基づいて、前記第2のエンドポイントデバイスの前記1つ以上のシステムサービスを用いて1つ以上のアプリケーションを実行するステップとを含む、方法。
【請求項9】
前記第2のエンドポイントデバイスから解決サービスデータを受信するステップと、
前記第1のエンドポイントデバイスによって、前記解決サービスデータに基づいて通信プロトコルを通じて前記1つ以上のシステムサービスを含むリストを要求するステップとをさらに含む、請求項8に記載の方法。
【請求項10】
前記第1のエンドポイントデバイスによって、前記第2のエンドポイントデバイスから、前記1つ以上のアプリケーションとの対話を表わすデータを受信するステップと、
前記1つ以上のアプリケーションとの前記対話を表わす前記データに基づいて前記1つ以上のアプリケーションを実行するステップとをさらに含む、請求項8または9に記載の方法。
【請求項11】
前記利用可能な解決は、前記第2のエンドポイントデバイスから受信された複数の利用可能な解決のうちの1つである、請求項8から10のいずれか1項に記載の方法。
【請求項12】
前記第2のエンドポイントデバイスは第1の通信プロトコルによって検出され、前記利用可能な解決は、第2の通信プロトコルによって受信される、請求項8から11のいずれか1項に記載の方法。
【請求項13】
前記第2のエンドポイントデバイスを検出することに応答して、前記第1のエンドポイントデバイスによって、前記第2のエンドポイントデバイスの発見サービスエンジンへのアクセスを要求するステップをさらに含む、請求項8から12のいずれか1項に記載の方法。
【請求項14】
前記第1のエンドポイントデバイスにおいて、前記第2のエンドポイントデバイスの前記発見サービスエンジンに関連付けられた解決サービスデータを受信するステップと、
前記解決サービスデータに基づいて前記第2のエンドポイントデバイスの前記発見サービスエンジンにアクセスするステップとをさらに含む、請求項13に記載の方法。
【請求項15】
前記解決サービスデータに基づいて、複数の通信プロトコルのうちの通信プロトコルによって前記第2のエンドポイントデバイスの前記発見サービスエンジンにアクセスするステップをさらに含む、請求項14に記載の方法。
【請求項16】
前記1つ以上のアプリケーションは、1つ以上の通知をレンダリングするように構成される、請求項1から15のいずれか1項に記載の方法。
【請求項17】
前記1つ以上のアプリケーションを実行するステップは、前記第2のエンドポイントデバイスに電子的に結合されたディスプレイ上に1つ以上の通知をレンダリングするステッ
プを含む、請求項1から16のいずれか1項に記載の方法。
【請求項18】
前記第1のエンドポイントデバイスは第1のオペレーティングシステムを有し、前記第2のエンドポイントデバイスは、前記第1のオペレーティングシステムとは別個の第2のオペレーティングシステムを有する、請求項1から17のいずれか1項に記載の方法。
【請求項19】
前記第2のオペレーティングシステムは、前記第1のオペレーティングシステムとは異なる少なくとも1つのインターフェイス、言語、メモリ管理技術、通信プロトコル、暗号化、またはネットワークスタックを有する、請求項18に記載の方法。
【請求項20】
前記第2のエンドポイントデバイスは、前記第1のエンドポイントデバイスに近接している、請求項1から19のいずれか1項に記載の方法。
【請求項21】
前記第2のエンドポイントデバイスは、第3のエンドポイントデバイスのデバイスIDデータを含む、請求項1から20のいずれか1項に記載の方法。
【請求項22】
システムであって、
1つ以上のプロセッサを含む第1のエンドポイントデバイスを含み、前記第1のエンドポイントデバイスは、請求項1から21のいずれか1項に記載の方法を実行するように前記1つ以上のプロセッサを操作するように構成された実行可能命令を格納している、システム。
【請求項23】
システムであって、
1つ以上の他のエンドポイントデバイスに通信可能に結合された1つ以上のエンドポイントデバイスを含むエンドポイントデバイスフレームワークを含み、前記システムは、請求項1から21のいずれか1項に記載の方法を実行するように構成される、システム。
【発明の詳細な説明】
【背景技術】
【0001】
関連出願の参照
本願は、2020年8月17日に出願され「エンドポイントにおいて能力を得るためのシステム」(SYSTEM FOR GAINING CAPABILITIES AT AN ENDPOINT)と題された米国仮特許出願連続番号第63/066,602号の利益を主張するものであって、その全体が引用により本明細書に援用されている。
【0002】
背景
デバイスエコシステムにおいては、各々がそれぞれの能力を有する複数のデバイスが、それら自体の能力を1以上のユーザに提供するために一緒にネットワーク化されている。従来、デバイスエコシステムに新しい能力を追加するために、新しいデバイスがネットワークに追加され、ネットワークによる要求時に新しい能力を実行する。しかしながら、デバイスエコシステムに新しいデバイスを追加することは煩雑で制限的なものになる可能性がある。なぜなら、閉鎖型デバイスエコシステムなどにおけるデバイスエコシステムによってサポートされているオペレーティングシステムおよび通信プロトコルが制限されているからである。加えて、デバイスエコシステムにデバイスを頻繁に追加することにより、デバイスエコシステム内の各デバイスの能力の管理がより複雑になる。
【0003】
多くの場合、デバイスエコシステムに追加されるデバイスは、各デバイスがどのデバイスエコシステムに追加され得るかを制限するユーザデータに結び付けられている。さらに、多くのデバイスエコシステムは、少数の通信プロトコルを用いて通信するように構成されており、このことによっても、どのデバイスが特定のデバイスエコシステムに追加され得るかが制限されてしまう。
【発明の概要】
【0004】
例示的な一実施形態に従うと、方法は、第1のエンドポイントデバイスによって、第2のエンドポイントデバイスから、当該第2のエンドポイントデバイスに関連付けられた利用可能なシステムサービスのリストを受信するステップを含む。さらに、当該方法は、当該利用可能なシステムサービスのリストから少なくとも1つの利用可能なシステムサービスについての利用可能な解決を受信するステップを含み得る。当該方法は加えて、当該第1のエンドポイントデバイスによって、機能に関連付けられた1つ以上のアプリケーションを実行するステップを含み得る。当該1つ以上のアプリケーションを実行するステップは、当該利用可能な解決に基づいて当該利用可能なシステムサービスのリストからの少なくとも1つの利用可能なシステムを用いて当該機能を実現するデータを、当該第1のエンドポイントデバイスから当該第2のエンドポイントデバイスに送信するステップを含み得る。
【0005】
当該方法はまた、当該第1のエンドポイントデバイスによって、当該利用可能なシステムサービスのリストからの少なくとも1つの利用可能なシステムサービスに基づいて、当該第2のエンドポイントデバイスから複数の利用可能な解決を受信するステップを含み得る。当該利用可能な解決は、当該複数の利用可能な解決のうちの1つであり得る。加えて、当該方法は、当該第1のエンドポイントデバイスによって、当該1つ以上のアプリケーションとの対話を表わすデータを当該第2のエンドポイントデバイスから受信するステップと、当該第1のエンドポイントデバイスによって、当該1つ以上のアプリケーションとの当該対話を表わす当該データに基づいて当該1つ以上のアプリケーションの実行を修正するステップとを含み得る。
【0006】
当該方法はさらに、当該第1のエンドポイントデバイスによって、当該第2のエンドポイントデバイスから、当該第2のエンドポイントデバイスに通信可能に結合された第3のエンドポイントデバイスに関連付けられた利用可能なシステムサービスの第2のリストを受信するステップを含み得る。また、当該方法は、当該第1のエンドポイントデバイスによって、当該第2のエンドポイントデバイスに対して、当該利用可能なシステムサービスの第2のリストからのシステムサービスについての第2の利用可能な解決を要求するステップを含み得る。当該1つ以上のアプリケーションを実行するステップはまた、当該第1のエンドポイントデバイスによって、当該第2の利用可能な解決に基づいて当該利用可能なシステムサービスの第2のリストからの当該システムサービスを用いて当該機能を実現するデータを、当該第3のエンドポイントデバイスに送信するステップを含み得る。
【0007】
加えて、当該方法は、当該第1のエンドポイントデバイスによって、当該第2のエンドポイントデバイスを検出するステップと、当該第1のエンドポイントデバイスによって、当該第2のエンドポイントデバイスから、当該第2のエンドポイントデバイスに関連付けられた解決サービスデータを受信するステップとを含み得る。当該方法はさらに、当該第1のエンドポイントデバイスによって、当該解決サービスデータに基づいて、複数の通信プロトコルのうちの通信プロトコルを通じて、当該第2のエンドポイントデバイスに関連付けられた当該利用可能なシステムサービスのリストを当該第2のエンドポイントデバイスに対して要求するステップを含み得る。
【0008】
別の例示的な実施形態では、方法は、第1のエンドポイントデバイスによって、1つ以上のシステムサービスを含む第2のエンドポイントデバイスを検出するステップと、当該第1のエンドポイントデバイスによって、当該第2のエンドポイントデバイスの1つ以上のシステムサービスに関連付けられた利用可能な解決を受信するステップとを含む。当該方法はまた、当該第1のエンドポイントデバイス上で、当該1つ以上のシステムサービスに関連付けられた当該利用可能な解決に基づいて、当該第2のエンドポイントデバイスの当該1つ以上のシステムサービスを用いて1つ以上のアプリケーションを実行するステップを含み得る。
【0009】
当該方法は、加えて、当該第2のエンドポイントデバイスから解決サービスデータを受信するステップと、当該第1のエンドポイントデバイスによって、当該解決サービスデータに基づいて通信プロトコルを通じて当該1つ以上のシステムサービスを含むリストを要求するステップとを含み得る。さらに、当該方法は、当該第1のエンドポイントデバイスによって、当該第2のエンドポイントデバイスから、当該1つ以上のアプリケーションとの対話を表わすデータを受信するステップと、当該1つ以上のアプリケーションとの当該対話を表わす当該データに基づいて当該1つ以上のアプリケーションを実行するステップとを含み得る。当該利用可能な解決は、当該第2のエンドポイントデバイスから受信された複数の利用可能な解決のうちの1つであり得る。また、当該第2のエンドポイントデバイスは、第1の通信プロトコルによって検出され得るとともに、当該利用可能な解決は、第2の通信プロトコルによって受信され得る。
【0010】
加えて、当該方法は、当該第2のエンドポイントデバイスを検出することに応答して、当該第1のエンドポイントデバイスによって、当該第2のエンドポイントデバイスの発見サービスエンジンへのアクセスを要求するステップを含み得る。さらに、当該方法は、当該第1のエンドポイントデバイスにおいて、当該第2のエンドポイントデバイスの当該発見サービスエンジンに関連付けられた解決サービスデータを受信するステップと、当該解決サービスデータに基づいて当該第2のエンドポイントデバイスの当該発見サービスエンジンにアクセスするステップとを含み得る。また、当該方法は、当該解決サービスデータに基づいて、複数の通信プロトコルのうちの通信プロトコルによって当該第2のエンドポ
イントデバイスの当該発見サービスエンジンにアクセスするステップを含み得る。
【0011】
概して、本明細書に記載の方法に関して、1つ以上のアプリケーションは、1つ以上の通知をレンダリングするように構成され得る。また、当該1つ以上のアプリケーションを実行するステップは、当該第2のエンドポイントデバイスに電子的に結合されたディスプレイ上に1つ以上の通知をレンダリングするステップを含み得る。さらに、概して、当該第1のエンドポイントデバイスは、第1のオペレーティングシステムを有し得るとともに、当該第2のエンドポイントデバイスは、当該第1のオペレーティングシステムとは別個の第2のオペレーティングシステムを有し得る。当該第2のオペレーティングシステムは、当該第1のオペレーティングシステムとは異なる少なくとも1つのインターフェイス、言語、メモリ管理技術、通信プロトコル、暗号化、またはネットワークスタックを有し得る。概して、当該第2のエンドポイントデバイスは、当該第1のエンドポイントデバイスに近接し得る。加えて、当該第2のエンドポイントデバイスは、第3のエンドポイントデバイスのデバイスIDデータを含み得る。
【0012】
例示的ないくつかの実施形態に従うと、システムは、1つ以上のプロセッサを含む第1のエンドポイントデバイスを含み得る。当該第1のエンドポイントデバイスは、本明細書に開示される方法を実行するように当該1つ以上のプロセッサを操作するように構成された実行可能命令を格納している。
【0013】
追加の例示的な実施形態に従うと、システムは、1つ以上の他のエンドポイントデバイスに通信可能に結合された1つ以上のエンドポイントデバイスを含むエンドポイントデバイスフレームワークを含み得るとともに、当該システムは、本明細書に開示される当該方法を実行するように構成される。
【0014】
図面の簡単な説明
本開示は、添付の図面を参照することによって、よりよく理解され得るとともに、その多数の特徴および利点が当業者にとって明らかになり得る。異なる図面内で同じ参照符号を用いる場合、それは類似または同一の要素を示す。
【図面の簡単な説明】
【0015】
【
図1】いくつかの実施形態に従った、共有されたシステムサービスのためのエンドポイントデバイスフレームワークを示すブロック図である。
【
図2】いくつかの実施形態に従った、
図1のエンドポイントデバイスフレームワーク内の1つ以上のシステムサービスをインポートおよびエクスポートするように構成されたエンドポイントデバイスを示すブロック図である。
【
図3】いくつかの実施形態に従った、エンドポイントデバイスの例示的なブートストラッピング動作を示すフロー図である。
【
図4】いくつかの実施形態に従った、
図1のエンドポイントデバイスフレームワーク内で1つ以上のシステムサービスを共有するように構成された、通信可能に結合されたエンドポイントデバイスを示すブロック図である。
【
図5】いくつかの実施形態に従った、エンドポイントデバイスのための例示的な発見サービスアクセス要求動作を示す信号フロー図である。
【
図6】いくつかの実施形態に従った、例示的な利用可能なシステムサービス要求を示す信号フロー図である。
【
図7】いくつかの実施形態に従った、共有されたシステムサービスを用いてアプリケーションを実行するためのプロセスを示すフロー図である。
【発明を実施するための形態】
【0016】
詳細な説明
本明細書に記載の技術およびシステムは、1つ以上のエンドポイントデバイスにわたってシステムサービスを共有することにより、複数のエンドポイントデバイスのデバイスエコシステムにおける柔軟性を提供することに対処する。具体的には、本明細書に記載されるこのような技術およびシステムは、エンドポイントデバイスが、1つ以上の他のエンドポイントデバイスから共有されるシステムサービスの能力を取得することを可能にする。これらの能力を取得するために、アプリケーションを実行する第1のエンドポイントデバイスは、第1のエンドポイントデバイスに通信可能に結合された1つ以上の他のエンドポイントデバイスを検出する。たとえば、第1のエンドポイントデバイスは、第1のエンドポイントデバイスの近くにあるかまたは当該第1のエンドポイントデバイスに近接する1つ以上の他のエンドポイントデバイスを検出する。第1のエンドポイントデバイスは、検出されたエンドポイントデバイスの各々に対し、利用可能なシステムサービスのそれぞれのリストを要求する。実行中のアプリケーションに基づいて1つ以上の適用可能なシステムサービスを決定した後、第1のエンドポイントデバイスは、それぞれのエンドポイントデバイスに対し、適用可能なシステムサービスにアクセスするのに必要なデータを要求する。次いで、エンドポイントデバイスは、適用可能なシステムサービスのうちの1つ以上を用いてアプリケーションの機能を実現する。このようにして、第1のエンドポイントデバイスは、他のエンドポイントデバイスから共有される適用可能なシステムサービスの能力を取得する。
【0017】
加えて、本明細書に記載の技術およびシステムは、エンドポイントデバイス間におけるオペレーティングシステム非依存型システムサービスの共有を可能にする。すなわち、第1のオペレーティングシステムを有するエンドポイントデバイスは、1つ以上の異なるオペレーティングシステムを有する1つ以上のエンドポイントデバイスとシステムサービスを共有し得る。このようなフレームワークは、エンドポイントデバイスをデバイスエコシステムに追加する際のさらなる柔軟性を可能にする。
【0018】
図1は、いくつかの実施形態に従った、共有されたシステムサービスを可能にするエンドポイントデバイスフレームワーク100を示す。エンドポイントデバイスフレームワーク100は、少なくとも1つの他のエンドポイントデバイスに各々が通信可能に結合された1つ以上のエンドポイントデバイス102を含むとともに、当該通信可能に結合されたエンドポイントデバイス間でシステムサービス106の共有を可能にするように構成される。本明細書で使用する「通信可能に結合された」は、いくつか例を挙げると、2つ以上のデバイスの各々が、たとえば、有線通信、無線通信、ネットワーク通信、ブリッジ通信などによって、それらの間でのデータの送信、データの受信、またはこれら両方を可能にするように構成されている状態を含む。本明細書で使用する「エンドポイントデバイス」は、1つ以上のアプリケーション104を実行するように構成されたハードウェアリソースおよびソフトウェアリソースを含み、さらに、たとえば、1つ以上のデスクトップコンピュータ、サーバ、仮想サーバ、ノートブックコンピュータ、タブレットコンピュータ、仮想現実システム、拡張現実システム、演算処理対応携帯電話(すなわち、「スマートフォン」)、演算処理可能ウェアラブルデバイス(すなわち、「ウェアラブル」)、通信ハブ、車両に一体化されたディスプレイ、演算処理対応ディスプレイ(すなわち、「スマートディスプレイ」)、演算処理対応テレビ(すなわち、「スマートテレビ」)、またはそれらの任意の組合わせを含む。
【0019】
いくつかの実施形態では、各アプリケーション104は、アプリケーション104を実行する際にエンドポイントデバイス102によって実現される1つ以上の機能に関連付けられている。たとえば、各アプリケーション104は、1つ以上の機能を実現するための論理を含む。このような機能は、たとえば、いくつか例を挙げると、ビデオデータのストリーミング、オーディオデータのストリーミング、データストリームの制御、再生制御、通知の生成、通知の表示、またはこれらのいずれかの組合わせを含む。これらの機能を実
現するために、各々のエンドポイントデバイス102は、アプリケーション104の実行時に機能のうち少なくとも一部を実現するように構成された1つ以上のシステムサービス106を含む。本明細書で使用する「システムサービス」は、アプリケーション104の機能のうち少なくとも一部を実現するように構成されたエンドポイントデバイス102のハードウェアおよびソフトウェアを含む。たとえば、システムサービス106は、いくつか例を挙げると、オーディオデータ(たとえば、1つ以上のオーディオエンコーダ、オーディオデコーダ、スピーカ)をレンダリングし、ビデオデータ(たとえば、1つ以上のビデオエンコーダ、1つ以上のビデオデコーダ、ディスプレイ)をレンダリングし、データを受信し、データを送信し、入力を受信し、対話を受信し(たとえば、対話型タッチスクリーン、マウス、キーボード、ゲームコントローラ)、クエリを生成し、または、これらのいずれかの組合わせを行なうように構成されたハードウェアおよびソフトウェアを含む。別の例として、システムサービス106は、エンドポイントデバイス102上で実行されるアプリケーション104の1つ以上の機能を実現するように構成された1つ以上のアプリケーションインターフェイス(application interface:API)を備える。図示さ
れる実施形態では、3つのシステムサービス106-1、106-2、および106-3が、2つのアプリケーション104-1および104-2に関連付けられた機能を実現するために提示されているが、他の実施形態では、任意の数のシステムサービスが、任意の数のアプリケーションのための機能を実現し得る。
【0020】
いくつかの実施形態に従うと、各エンドポイントデバイス102は、1つ以上のシステムサービス106を1つ以上の他のエンドポイントデバイスにエクスポートして、1つ以上の他のエンドポイントデバイスへの当該エクスポートされたシステムサービス106のアクセスおよび当該エクスポートされたシステムサービス106の制御(すなわち、公開)を可能にするように構成される。エンドポイントデバイス102の各システムサービス106は、1つ以上の通信プロトコル、有線通信接続、および無線通信接続、たとえば、Bluetooth(登録商標)、Bluetooth(登録商標)Low Energy(BLE)、マルチキャストドメインネームシステム(Multicast Domain Name System)(mDNS)、QRコード(登録商標)、超広帯域、超音波、汎用ウェブサービスAPI、USB、無線周波数識別(radio frequency identification:RFID)、近距離無線通信(Near-field Communication:NFC)、ショートメッセージサービス(Short Message Service:SMS)、W
i-Fi、インターネット、ローカルエリアネットワーク(local area network:LAN)、イーサネット(登録商標)、またはこれらの任意の組合わせを用いて、1つ以上のシステムサービス106を1つ以上の他のエンドポイントデバイスにエクスポートするように構成される。いくつかの実施形態では、第1のエンドポイントデバイス(たとえば、エンドポイントデバイス102-1)が第2のエンドポイントデバイス(たとえば、エンドポイントデバイス102-2)にシステムサービス106をエクスポートすると、第2のエンドポイントデバイスは、たとえば、第2のエンドポイントデバイス上で実行されるアプリケーション104に関連付けられた1つ以上の機能のうち少なくとも一部を実現するように、システムサービス106にアクセスして、当該システムサービス106を制御することができる。すなわち、第2のエンドポイントデバイスは、第1のエンドポイントデバイスのシステムサービス106を用いて、第2のエンドポイントデバイス上で実行されるアプリケーション104の機能を実現する。たとえば、図示される実施形態では、システムサービス106-3は、エンドポイントデバイス102-2、102-3、または102-4にエクスポートされ得るとともに、エンドポイントデバイス102-2、102-3、または102-4上で実行されるそれぞれのアプリケーションの機能のうち少なくとも一部を実現するために使用され得る。1つ以上のシステムサービス106を1つ以上の他のエンドポイントデバイスにエクスポートすることにより、1つ以上の他のエンドポイントデバイスは、エクスポートされたシステムサービス106のハードウェアおよびソフトウェアに関連付けられた新しい能力を有効に取得する。
【0021】
いくつかの実施形態では、各エンドポイントデバイス102は1つ以上のプロキシシステムサービス108を含む。当該1つ以上のプロキシシステムサービス108は、1つ以上の他のエンドポイントデバイスから1つ以上のエクスポートされたシステムサービス106にアクセスし、当該エクスポートされたシステムサービス106を制御するように構成されたソフトウェアおよびハードウェアを含む。いくつかの実施形態に従うと、プロキシシステムサービス108は、別のエンドポイントデバイスからの1つ以上の公開されたシステムサービスを用いて、アプリケーション104(本明細書では「サポートされるアプリケーション」とも称される)の1つ以上の機能のうち少なくとも一部を実現するように構成される。いくつかの実施形態では、プロキシシステムサービス108は、サポートされるアプリケーションに関連付けられた機能を実現するデータを公開されたシステムサービス106に送信することによって、サポートされるアプリケーションの機能を実現する。たとえば、プロキシシステムサービス108は、アプリケーション104の論理を表わすデータを送信し、別のエンドポイントデバイスからのエクスポートされたシステムサービス106を用いて、アプリケーション104に関連付けられた機能を実現する。図示される実施形態では、3つのエンドポイントデバイス102-2、102-3、および102-4を用いて1つのサポートされるアプリケーション104-3の機能を実現する3つのプロキシシステムサービス108-1、108-2、および108-3が実証されているが、他の実施形態では、任意の数のエンドポイントデバイス上で実行される任意の数のアプリケーションの機能を実現するために、任意の数のプロキシシステムサービスが用いられ得る。このようにして、第1のエンドポイントデバイス上で実行されるアプリケーションの少なくとも一部は、第2のエンドポイントデバイス上で実現され得る。たとえば、第1のエンドポイントデバイス102-1上で実行されるアプリケーション104は、通知の生成および表示を含む機能を有し得る。ここで、第1のエンドポイントデバイス102-1上で実行されるアプリケーション104のうち少なくとも一部、たとえば、通知の表示は、第2のエンドポイントデバイス102-2上で実現され得る。
【0022】
いくつかの実施形態に従うと、プロキシシステムサービス108は、他のエンドポイントデバイスからの1つ以上のエクスポートされたシステムサービス106から入力データを受信するように構成される。本明細書で用いられる「入力データ」は、いくつか例を挙げると、入力デバイス、たとえば、対話型タッチスクリーン、マウス、キーボード、またはゲームコントローラ上での対話(たとえば、いくつか例を挙げると、タッチスクリーン上でのジェスチャ、タッチスクリーンへのタップ、テキスト入力、マウスクリック、ボタン押下)を表わすデータを含む。いくつかの実施形態では、各プロキシシステムサービス108は、入力データに基づいて、サポートされるアプリケーションの実行を修正するように構成される。たとえば、プロキシシステムサービス108は、サポートされるアプリケーションへの入力として入力データを提供する。別の例として、プロキシシステムサービス108は、入力データに基づいて、サポートされるアプリケーションの実行を開始または停止させる。
【0023】
いくつかの実施形態では、エンドポイントデバイスフレームワーク100の各エンドポイントデバイス102は、たとえば、いくつか例を挙げると、1つ以上のインターフェイス、言語、メモリ管理技術、通信プロトコル、暗号化、ネットワークスタック、またはこれらの任意の組合わせを各々が有する、1つ以上のオペレーティングシステムを含む。いくつかの実施形態に従うと、エンドポイントデバイスフレームワーク100は、オペレーティングシステムに依存しないように構成される。本明細書で使用する「オペレーティングシステムに依存しない」とは、第1のオペレーティングシステムを有する少なくとも1つのエンドポイントデバイス102と、第2の別個のオペレーティングシステムを有する少なくとも1つの他のエンドポイントデバイスとをサポートするように構成されたエンドポイントデバイスフレームワーク100を含む。すなわち、エンドポイントデバイスフレームワーク100内で、第1のオペレーティングシステムを備えた第1のエンドポイント
デバイス102は、第1のオペレーティングシステムから、1つ以上のさまざまなインターフェイス、メモリ管理技術、通信プロトコル、ネットワークスタック、またはこれらの任意の組合わせを含む第2のさまざまなオペレーティングシステムを備えた第2のエンドポイントデバイスに対し、1つ以上のシステムサービス106をエクスポートまたはインポートすることができる。
【0024】
たとえば、第1のエンドポイントデバイス(たとえば、エンドポイントデバイス102-1)は、第1のインターフェイスおよび第1のメモリ管理システムを有する第1のオペレーティングシステムを含む。エンドポイントデバイスフレームワーク100内で、第1のエンドポイントデバイスは、第2の別個のインターフェイスおよび第2の別個のメモリ管理システムを備えた第2の別のオペレーティングシステムを有する第2のエンドポイントデバイスから、1つ以上のシステムサービスをインポートすることができる。
図2を参照して以下で説明するように、第1のエンドポイントデバイスは、第2のエンドポイントデバイス上の1つ以上のシステムサービス106へのアクセスを要求することができる。これに応答して、第2のエンドポイントデバイスは、第2のエンドポイントデバイス上で実行されるオペレーティングシステムに従ってシステムサービス106に如何にアクセスするかを示すデータを送信する。言い換えれば、第2のエンドポイントデバイスは、第2のオペレーティングシステムの1つ以上のインターフェイス、メモリ管理技術、通信プロトコル、ネットワークスタック、またはそれらの任意の組合わせに従って、そのシステムサービス106に如何にアクセスするかを示すデータを送信する。次いで、第1のエンドポイントデバイスは、このデータから、第2のエンドポイントデバイスのシステムサービスにアクセスすることができる。
【0025】
ここで
図2を参照すると、システムサービスを共有するように構成された例示的なエンドポイントデバイス202が提示されている。いくつかの実施形態では、エンドポイントデバイス202は、
図1で説明されるようなエンドポイントデバイスフレームワーク100の局面を実現する。たとえば、エンドポイントデバイス202は、
図1に記載されるエンドポイントデバイス102と同様であり得るかまたは同じであり得る。エンドポイントデバイス202は、1つ以上の他のエンドポイントデバイスに対する1つ以上のシステムサービスのエクスポートおよびインポートのためのハードウェアおよびソフトウェアを含む。いくつかの実施形態に従うと、エンドポイントデバイス202は、たとえば、数例を挙げると、デスクトップコンピュータ、ノートブックコンピュータ、タブレットコンピュータ、仮想現実システム、拡張現実システム、スマートフォン、通信ハブ、スマートディスプレイ、またはスマートtvを含む1つ以上の他のエンドポイントデバイスに対するシステムサービスのエクスポートおよびインポートをサポートする電子デバイスの一部である。いくつかの実施形態では、エンドポイントデバイス202は、1つ以上の周辺機器212、たとえば、ディスプレイ、入力デバイス、スピーカ、照明(たとえば、発光ダイオード(light-emitting diode:LED)、有機発光ダイオード(organic light-emitting
diode:OLED))、またはそれらの任意の組合わせを含むか、またはそれらに通信可能に結合される。図示される実施形態では、エンドポイントデバイス202は、3つの周辺機器212-1、212-2、および212-3に通信可能に結合されるが、他の実施形態では、エンドポイントデバイス202は、任意の数の周辺機器に通信可能に結合され得る。
【0026】
いくつかの実施形態では、エンドポイントデバイス202は、メモリ210に通信可能に結合された処理要素230を含む。メモリ210は、電子記憶装置、たとえば、ソリッドステートドライブ、ハードディスクドライブ、ランダムアクセスメモリ(random access memory:RAM)、読出し専用メモリ(read-only memory:ROM)、電子的に消去可能なプログラマブルROM(electronically erasable programmable ROM:EEPROM)、光学記憶装置、またはそれらの任意の組合わせを含む。メモリ210は、1つ以上の
アプリケーションの実行ならびに1つ以上のエンドポイントデバイスからのシステムサービスのエクスポートおよびインポートに関連する命令およびデータ、たとえば、デバイスIDデータ222、システムサービスのリスト224、および解決サービスデータ226を含む。
【0027】
いくつかの実施形態に従うと、処理要素230は、1つ以上の制御処理ユニット(control processing unit:CPU)、マイクロプロセッサ、フィールドプログラマブルゲー
トアレイ(field-programmable gate array:FPGA)、グラフィックス処理ユニット
(graphics processing unit:GPU)、特定用途向け集積回路(application-specific
integrated circuit:ASIC)、またはそれらの任意の組合わせを含むとともに、1
つ以上の他のエンドポイントデバイスに対する1つ以上のシステムサービスのインポートおよびエクスポートを実行するように構成される。いくつかの実施形態では、エンドポイントデバイス202は、メモリ210に格納されたシステムサービスのリスト224を含む。システムサービスのリスト224は、エンドポイントデバイス202が利用可能なシステムサービス106を示すデータを含む。エンドポイントデバイス202が利用可能なシステムサービスは、エンドポイントデバイス202に含まれるシステムサービス106と、1つ以上の他のエンドポイントデバイス(すなわち、1つ以上のプロキシシステムサービス108によって制御される他のエンドポイントデバイスのシステムサービス)からエンドポイントデバイス202にエクスポートされるシステムサービスとを含む。いくつかの実施形態に従うと、システムサービスのリスト224はさらに、エンドポイントデバイス202に通信可能に結合された1つ以上の他のエンドポイントデバイスが利用可能なシステムサービスを含み得る。
【0028】
いくつかの実施形態に従うと、メモリ210は、エンドポイントデバイス202の1つ以上のコンポーネント(たとえば、ブートストラップエンジン214、識別エンジン216、発見サービスエンジン220、周辺機器212)に関連付けられた利用可能な解決、システムサービスのリスト224内の1つ以上のシステムサービス、またはこれらの両方を含む解決サービスデータ226を含む。本明細書で使用する「利用可能な解決」は、エンドポイントデバイス202の1つ以上の構成要素またはエンドポイントデバイス202のシステムサービス106が、1つ以上の通信プロトコルを用いて如何にアクセスされ得るかを示すデータを含む。たとえば、利用可能な解決は、1つ以上のプロトコル(たとえば、数例を挙げると、インターネットプロトコル、ポート、Bluetooth(登録商標) 汎
用属性プロファイル(Generic Attribute Profile:GATT)によって使用可能なシス
テムサービス106のための1つ以上のアドレス指定可能なロケーションを示すデータを含む。いくつかの実施形態では、利用可能な解決は、2つ以上の通信プロトコルが使用可能な複数のアドレス指定可能なロケーションを含む。このように、解決サービスデータ226は、複数の通信プロトコルを用いてシステムサービス106に如何にアクセスするかを示すデータを含む。いくつかの実施形態に従うと、解決サービスデータ226は、1つ以上の他のエンドポイントデバイスからエンドポイントデバイス202にエクスポートされたシステムサービスを含む、エンドポイントデバイス202が利用可能なシステムサービス106のうちの1つ以上についての利用可能な解決を含む。いくつかの実施形態では、解決サービスデータ226はさらに、エンドポイントデバイス202に通信可能に結合された1つ以上の他のエンドポイントデバイスが利用可能な1つ以上のシステムサービスについての利用可能な解決を含む。
【0029】
処理要素230は、エンドポイントデバイス202に対する1つ以上の他のエンドポイントデバイスを発見し、当該1つ以上の他のエンドポイントデバイスとの接触を開始するためにブートストラッピング動作を実行するように構成されたブートストラッピングエンジン214を含む。いくつかの実施形態に従うと、ブートストラップエンジン214のブートストラッピング動作は、エンドポイントデバイス202に近接する1つ以上のエンド
ポイントデバイスの存在を検出するように構成された検出段階を含む。本明細書で用いられるように、エンドポイントデバイスは、いくつか例を挙げると、1つ以上のプロトコル、たとえばBLE、mDNS、またはNFCを用いてブートストラッピングエンジン214によって発見可能である場合、エンドポイントデバイス202に近接している。すなわち、近接するエンドポイントデバイスは、ブートストラッピングエンジン214によって検出できる程度の距離の範囲内だけエンドポイントデバイス202から離れている。いくつかの実施形態では、ブートストラッピングエンジン214の検出段階は、たとえば、数例を挙げると、1つ以上のアカウント(たとえば、エンドポイントデバイス202とユーザアカウントを共有する1つ以上のエンドポイントデバイス)、サーバ(たとえば、サーバに登録された1つ以上のエンドポイントデバイス)によって、エンドポイントデバイス202に通信可能に結合されるかまたは関連付けされている1つ以上のエンドポイントデバイスの存在を検出するように構成される。いくつかの実施形態に従うと、ブートストラッピングエンジン214のブートストラッピング動作はさらに、1つ以上の検出されたエンドポイントデバイスからデバイス識別データ(デバイスIDデータ)について問合わせを行ない、これを返すように構成された初期化段階を含む。
【0030】
いくつかの実施形態では、メモリ210は、エンドポイントデバイス202のアイデンティティ、所有権、アクセス、証明、またはこれらの任意の組合わせを示すエンドポイントデバイス202のデバイスIDを含むデバイスIDデータ222を含む。いくつかの実施形態に従うと、デバイスIDは、インターネットプロトコル(internet protocol:I
P)アドレスと同様のエンドポイントデバイス202についてのアドレス指定可能なラベルを含む。いくつかの実施形態に従うと、エンドポイントデバイスは、それらのデバイスIDおよびアドレス指定可能なラベルを互いに提供し合うことによって、他のエンドポイントデバイス(たとえば、エンドポイントデバイス202)と通信するように構成される。いくつかの実施形態では、デバイスIDは、非対称鍵ペアの公開半分を含む。いくつかの実施形態に従うと、エンドポイントデバイス(たとえば、エンドポイントデバイス202)は、デジタル署名のための鍵ペアを使用するように構成される。このようにして、第2のエンドポイントデバイスからデジタル署名を受信するエンドポイントデバイスは、第2のエンドポイントデバイスの署名を検証することができる。いくつかの実施形態では、デバイスIDは、エンドポイントデバイスの1つ以上の証明を含む証明トークンを含む。証明は、エンドポイントデバイスの1つ以上の能力、構成、または完全性を表わすデータを含む。たとえば、証明は、エンドポイントデバイスのシステムソフトウェアがその製造以来修正されていないことを示すデータを含み得る。例示的な一実施形態では、デバイスIDは、長さが32バイトであるが、他の実施形態では、異なる数のバイトが用いられてもよい。いくつかの実施形態に従うと、デバイスIDはさらに、通信情報、たとえば、エンドポイントデバイスの1つ以上のシステムサービス、エンジン、モジュール、またはプロセッサについてのアドレス情報、および、エンドポイントデバイスまたはその1つ以上のシステムサービス、エンジン、モジュール、またはプロセッサによってサポートされる1つ以上の通信プロトコルを含む。一例として、エンドポイントデバイス202についてのデバイスIDは、解決サービスエンジン218に如何にアクセスするか(たとえば、解決サービスエンジン218の1つ以上のアドレス指定可能なロケーション)と、解決サービスエンジン218によってサポートされる通信プロトコルとを示す通信情報を含み得る。いくつかの実施形態では、デバイスIDデータは、1つ以上の他のエンドポイントデバイスについてのデバイスID、たとえば、エンドポイントデバイス202が通信可能に結合されているか、以前に通信可能に結合されていたか、または通信可能に結合されているとともに以前に通信可能に結合されていたエンドポイントデバイスについてのデバイスIDを含む。
【0031】
いくつかの実施形態に従うと、処理要素230は、デバイスID、たとえば、デバイスIDデータ222に格納されたデバイスIDを生成し、格納し、修正し、維持しかつ認証
するように構成された識別エンジン216を含む。いくつかの実施形態では、識別エンジン216は、1つ以上のエンドポイントデバイスから受信したデバイスIDを認証するように構成される。たとえば、識別エンジン216は、デバイスIDの所有権の確認、デバイスIDのアドレスの確認、たとえば証明サービスによるデバイスIDの証明(たとえば、エンドポイントデバイスが改ざんされていないこと)の確認、デバイスIDのアイデンティティの確認、デバイスIDについてのタイムスタンプの決定、または、これらの任意の組合わせを実行するように構成される。一例として、識別エンジン216は、受信したデバイスIDに示されるアイデンティティを証明サービスから取得されたアイデンティティと比較することによって、受信したデバイスIDのアイデンティティを確認する。別の例として、デバイスIDは、識別エンジン216がデバイスIDに関連付けられたエンドポイントデバイスから受信された署名を検証することを可能にする、デジタル署名において用いられる非対称鍵ペアの公開半分を含み得る。識別エンジン216は、受信した1つ以上のデバイスIDをデバイスIDデータ222に格納するように構成される。いくつかの実施形態に従うと、識別エンジン216は、認証されたデバイスIDのみをデバイスIDデータ222に格納する。
【0032】
いくつかの実施形態では、処理要素230は、1つ以上の他のエンドポイントデバイスから受信した着信発見アクセス解決要求および解決クエリを処理するように構成されたソフトウェアおよびハードウェアを含む解決サービスエンジン218を含む。本明細書で使用する「発見アクセス解決要求」は、1つ以上の他のエンドポイントデバイスから受信される要求であって、エンドポイントデバイス202の発見サービスエンジン220へのアクセスについての要求を含む。発見アクセス解決要求に基づいて、解決エンジン218は、発見サービスエンジン220に関連付けられた1つ以上の利用可能な解決を、発見アクセス解決要求を送信したエンドポイントデバイスに送信するように構成される。すなわち、解決エンジン218は、1つ以上の通信プロトコルを用いて発見サービスエンジン220に如何にアクセスするかを示すデータを要求側エンドポイントデバイスに送信するように構成される。本明細書で使用する場合、「解決クエリ」は、システムサービスのリスト224に含まれる1つ以上の識別されたシステムサービスへのアクセスを求める要求を含む。受信した解決クエリに基づいて、解決エンジン218は、識別されたシステムサービスに関連付けられた1つ以上の利用可能な解決を、解決クエリを送信したエンドポイントデバイスに送信するように構成される。言い換えれば、解決エンジン218は、1つ以上の通信プロトコルを用いて識別済みのシステムサービス(たとえば、1つ以上のアドレス指定可能ロケーション)に如何にアクセスするかを示すデータを要求側エンドポイントデバイスに送信するように構成される。
【0033】
いくつかの実施形態に従うと、処理要素230は、1つ以上の他のエンドポイントデバイスから受信した着信システムサービスクエリを処理するように構成されたハードウェアおよびソフトウェアを含む発見サービスエンジン220を含む。本明細書で使用する「システムサービスクエリ」は、エンドポイントデバイス202が利用可能な1つ以上のシステムサービスの識別またはリストを求める要求を含む。受信したシステムサービスクエリに基づいて、発見サービスエンジン220は、システムサービスのリスト224にアクセスし、エンドポイントデバイス202が利用可能なシステムサービスを決定する。いくつかの実施形態に従うと、発見サービスエンジン220は、利用可能なシステムサービスのリストを含むデータを要求側エンドポイントデバイスに送信するように構成される。いくつかの実施形態では、発見サービスエンジン220はさらに、利用可能なシステムサービスについての1つ以上の追加のリストを要求側エンドポイントデバイスに送信するように構成される。利用可能なシステムサービスについての追加リストの各々は、エンドポイントデバイス202に通信可能に結合されたそれぞれのエンドポイントデバイスが利用可能なシステムサービスを示す。このようにして、エンドポイントデバイス202は、要求側エンドポイントデバイスとエンドポイントデバイス202に通信可能に結合されたエンド
ポイントデバイスとの間の仲介または橋渡しとして機能する。
【0034】
図3は、エンドポイントデバイス202と同様または同じ第1のエンドポイントデバイスのブートストラッピングエンジン214と同様または同じブートストラッピングエンジンによって実行される例示的なブートストラッピング動作300を示す。ステップ305において、ブートストラップエンジンは、検出段階を開始する。いくつかの実施形態では、検出段階を開始するステップは、ブートストラップエンジンが、1つ以上の通信プロトコル、たとえば、いくつか例を挙げると、Bluetooth(登録商標)、BLE、マルチキャ
ストドメインmDNS、QRコード(登録商標)、超広帯域、RFID、NFC、またはこれらの任意の組合わせを開始する(たとえば、作動させる)ステップを含む。ステップ310において、ブートストラッピングエンジンは、開始されたプロトコルのうちの1つ以上に従って、1つ以上の近接エンドポイントデバイスを検出する。いくつかの実施形態では、開始されたプロトコルのうちの1つ以上は、走査デバイス(たとえば、第1のエンドポイントデバイス)として動作する第1のデバイスと、広告デバイス(たとえば、1つ以上の他のエンドポイントデバイス)として動作する第2のデバイスとを含む。本明細書で用いられる「広告デバイス」は、開始されたプロトコルのうちの1つ以上に基づいてその存在を告知するように構成される。たとえば、広告デバイスは、開始されたプロトコルのうちの1つ以上に従って、広告デバイスの存在を示す信号またはビーコンを送信するように構成される。本明細書で用いられる「走査デバイス」は、たとえば、広告デバイスによって送信された信号またはビーコンを受信することによって、1つ以上の広告デバイスの存在を検出するように構成される。いくつかの実施形態に従うと、単一のデバイスは、走査デバイスおよび広告デバイスとして同時に動作し得る。
【0035】
ステップ315において、ブートストラップエンジンが1つ以上のエンドポイントデバイスの存在を検出した後、ブートストラップエンジンは初期化段階を開始する。初期化段階では、ブートストラップエンジンは、1つ以上の通信プロトコルを用いて、1つ以上の検出されたエンドポイントデバイスとの接触を開始するように構成される。いくつかの実施形態では、ブートストラッピングエンジンは、開始されたプロトコルのうちの1つ以上を用いて、1つ以上の検出されたエンドポイントデバイスとの接触を開始する。ステップ320において、ブートストラップエンジンが検出されたエンドポイントデバイスとの接触を開始すると、ブートストラップエンジンは、デバイスIDクエリを構築し、構築されたデバイスIDクエリを検出されたエンドポイントデバイスに送信する。デバイスIDクエリは、接続されたエンドポイントデバイスのデバイスIDを求める要求を含む。すなわち、ブートストラップエンジンは、検出された各エンドポイントデバイスに対して識別データを要求する。いくつかの実施形態に従うと、デバイスIDクエリは、ブートストラッピングプロセスを開始するエンドポイントデバイスのデバイスIDを含む。ステップ325において、ブートストラッピングエンジンは、1つ以上の検出されたエンドポイントデバイスからそれぞれのデバイスIDを受信する。いくつかの実施形態に従うと、ブートストラッピングエンジンはさらに、検出されたエンドポイントデバイスから、当該検出されたエンドポイントデバイスに結合された1つ以上のそれぞれのエンドポイントデバイスを識別する1つ以上のデバイスIDを受信する。いくつかの実施形態では、ブートストラッピングエンジンは、受信したデバイスIDを、識別エンジン216と同様のまたは同じ識別エンジンに提供し得る。識別エンジンは、たとえば、デバイスIDの所有権を確認すること、デバイスIDのアドレスを確認すること、証明サービスによってデバイスIDの証明を確認すること、デバイスIDのアイデンティティを確認すること、デバイスIDについてのタイムスタンプを決定する(たとえば、デバイスIDが満了していないことを確認する)ことによって、またはこれらの任意の組合わせによって、デバイスIDを認証するように構成される。いくつかの実施形態に従うと、検出されたエンドポイントデバイスから受信されたデバイスIDは各々、接続されたエンドポイントデバイスのそれぞれの発見サービスエンジンに関連付けられた1つ以上の利用可能な解決(すなわち、接続されたエ
ンドポイントデバイスのそれぞれの発見サービスエンジンに如何にアクセスするかを示すデータ)を含む。
【0036】
ここで
図4を参照すると、システムサービスを共有するように構成された通信可能に結合されたエンドポイントデバイスのブロック図が示されている。いくつかの実施形態では、(発見サービスエンジン420-1、解決サービスエンジン418-1、およびシステムサービス406-1を含む)エンドポイントデバイス402-1ならびに(発見サービスエンジン420-2、解決サービスエンジン418-2、およびシステムサービス406-2を含む)エンドポイントデバイス402-2は、
図1で説明されるようなエンドポイントデバイスフレームワーク100の局面を実現する。たとえば、エンドポイントデバイス402-1および402-2は、
図1に示されるエンドポイントデバイス102と同様または同じであり得る。図示される実施形態では、エンドポイントデバイス402-1は、1つの他のエンドポイントデバイス402-2に通信可能に結合されているが、他の実施形態では、エンドポイントデバイス402-1は、任意の数の他のエンドポイントデバイスに通信可能に結合されてもよい。いくつかの実施形態に従うと、エンドポイントデバイス402-1は、たとえば、
図3を参照して上述した例示的なブートストラッピング動作300を実現することによって、1つ以上の通信プロトコルを用いてエンドポイントデバイス402-2との接触を開始する。
【0037】
いくつかの実施形態では、各エンドポイントデバイス402は、各々が1つ以上の機能に関連付けられた1つ以上のアプリケーション404-1および404-2をそれぞれ実施または実行するように構成される。各エンドポイントデバイスは、エンドポイントデバイス402内にあるかもしくはエンドポイントデバイス402に固有であるシステムサービス406を用いて、または、別のエンドポイントデバイス402から共有される1つ以上のエクスポートされたシステムサービス406を用いて、これらの機能を実現するように構成される。たとえば、図示される実施形態では、エンドポイントデバイス402-1は、エンドポイントデバイス402-2上のシステムサービス406-1、システムサービス406-2、またはこれらの両方を用いて、アプリケーション404-1の1つ以上の機能を実現するように構成される。このようにして、アプリケーションの機能を実現するためにより多くのシステムサービスが利用可能になるのに応じて、エンドポイントデバイス402-1の能力が高められる。いくつかの実施形態に従うと、別のエンドポイントデバイス上のシステムサービス406にアクセスするために、エンドポイントデバイス402上で実行されている1つ以上のアプリケーション404は、1つ以上の他のエンドポイントデバイスの、発見サービスエンジン220と同様のまたは同じ発見サービスエンジン420にアクセスするように構成される。図示される実施形態では、第1のエンドポイントデバイス402-1上で実行されている1つアプリケーション404-1は他の1つのエンドポイントデバイス402のうちの1つの発見サービスエンジン420-2にアクセスしているが、他の実施形態では、第1のエンドポイントデバイス402-1上で実行されている任意の数のアプリケーション404は、任意の数の他のエンドポイントデバイスの任意の数の発見サービスエンジンにアクセスし得る。いくつかの実施形態では、第1のエンドポイントデバイス402-1上で動作するアプリケーション404は、ブートストラッピング動作300と同様のまたは同じブートストラッピング動作中に第2のエンドポイントデバイス402-2から受信したデバイスIDに基づいて、第2のエンドポイントデバイス402-2上で動作する発見サービスエンジン420-2にアクセスする。たとえば、ブートストラッピング動作中、エンドポイントデバイス402-1は、エンドポイントデバイス402-2上で動作する発見サービスエンジン420-2に関連付けられた1つ以上の利用可能な解決を含むデバイスID(すなわち、発見サービスエンジン420-2に如何にアクセスするかを示すデータ)を、エンドポイントデバイス402-2から受信する。これらの利用可能な解決に基づいて、アプリケーション404-1は、1つ以上の通信プロトコルを用いて発見サービスエンジン420-2にアクセスし得る。いく
つかの実施形態では、エンドポイントデバイス402-1は、エンドポイントデバイス402-2に通信可能に結合された1つ以上の他のエンドポイントデバイスのうちの1つ以上の発見サービスエンジンに関連付けられた1つ以上の利用可能な解決を含むデバイスIDを、エンドポイントデバイス402-2から受信する。他の実施形態では、第1のエンドポイントデバイス402-1上で動作するアプリケーション404-1は、最初に、エンドポイントデバイス402-2上で動作する解決サービスエンジン418-2に問合わせすることによって、発見サービスエンジン420-2へのアクセスを要求する。
【0038】
たとえば、ここで
図5を参照すると、発見サービスエンジンへのアクセスのための例示的な要求動作500が示される。いくつかの実施形態に従うと、エンドポイントデバイス102と同様のまたは同じ第1のエンドポイントデバイス502-1は、第1のエンドポイントデバイス502-1に通信可能に結合された第2のエンドポイントデバイス502-2上で動作する、発見サービスエンジン220と同様のまたは同じ発見サービスエンジンへのアクセスを要求するように構成される。第2のエンドポイントデバイス502-2は、解決サービスエンジン218と同様のまたは同じ解決サービスエンジン518と、識別エンジン216と同様のまたは同じ識別エンジン516とを含む。要求動作500は、第1のエンドポイントデバイス502-1が識別クエリ501を第2のエンドポイントデバイス502-2に送信するステップを含む。いくつかの実施形態では、識別クエリ501は、第2のエンドポイントデバイス502-2のデバイスIDを要求するデータを含む。いくつかの実施形態に従うと、識別クエリ501を受信することに応答して、第2のエンドポイントデバイス502-2の識別エンジン516は、第2のエンドポイントデバイス502-2のデバイスIDデータ503を第1のエンドポイントデバイス502-1に送信するように構成される。第1のエンドポイントデバイス502-1に送信されたデバイスIDデータ503は、第2のエンドポイントデバイス502-2の解決サービスエンジン518に如何にアクセスするかを示すデータを含む。たとえば、デバイスIDデータ503は、解決サービスエンジン518によってサポートされる通信プロトコル、解決サービスエンジン518のアドレス指定可能なロケーション、またはこれらの両方を示すデータを含む。
【0039】
第1のエンドポイントデバイス502-1は、受信したデバイスIDデータ503に基づいて、発見アクセス解決要求505を生成し、発見アクセス解決要求505を第2のエンドポイントデバイス502-2の解決サービスエンジン518に送信する。発見アクセス解決要求505は、第2のエンドポイントデバイス502-2上で実行される発見サービスエンジンについてのアクセス情報を要求するデータを含む。たとえば、発見アクセス解決要求505は、第2のエンドポイントデバイス502-2の発見サービスエンジンについての利用可能な解決のクエリを含む。発見アクセス解決要求505を受信することに応答して、解決サービスエンジン518は、解決データ507を第1のエンドポイントデバイスに送信するように構成される。解決データ507は、第2のエンドポイントデバイス502-2の発見サービスエンジンについての1つ以上の利用可能な解決を含む。すなわち、解決データ507は、第2のエンドポイントデバイス502-2の発見サービスエンジンに如何にアクセスするかを示すデータを含む。たとえば、解決データ507は、発見サービスエンジンによってサポートされる1つ以上の通信プロトコルと、発見サービスエンジンのアドレス指定可能なロケーションとを含む。第1のエンドポイントデバイス502-1は、解決データ507から、第2のエンドポイントデバイス502-2の発見サービスエンジンにアクセスすることができる。たとえば、解決データ507は、第2のエンドポイントデバイスの発見サービスエンジン(たとえば、Bluetooth(登録商標)LT
E)によってサポートされる通信プロトコルと、発見サービスエンジンが利用可能である1つ以上のオープンポートとを識別するデータを含み得る。識別された通信プロトコルおよびオープンポートに基づいて、第1のエンドポイントデバイス502-1は、第2のエンドポイントデバイス502-2の発見サービスエンジンにアクセスすることができる。
いくつかの実施形態では、解決データ507はさらに、第2のエンドポイントデバイス502-2に通信可能に結合された1つ以上のエンドポイントデバイスの発見サービスエンジンについての1つ以上の利用可能な解決を含む。
【0040】
再び
図4を参照すると、第2のエンドポイントデバイス402-2の発見サービスエンジン420-2にアクセスした後、第1のエンドポイントデバイス402-1上で実行されるアプリケーション404-1は、利用可能なシステムサービスのリストについて問合わせを行なって発見サービスエンジン420-2から当該リストを受信する。利用可能なシステムサービスのリストは、1つ以上の他のエンドポイントデバイスによって第2のエンドポイントデバイス402-2にエクスポートされる(すなわち、共有される)ものを含め、第2のエンドポイントデバイス402-2が利用可能な各システムサービスを含む。いくつかの実施形態に従うと、第1のエンドポイントデバイス402-1は、第2のエンドポイントデバイス402-2に通信可能に結合された1つ以上のそれぞれの他のエンドポイントデバイスが利用可能なシステムサービスを含む利用可能なシステムサービスの1つ以上の追加のリストについて問合わせして、発見サービスエンジン420-2から受信する。このようにして、発見サービスエンジン420-2は、第1のエンドポイントデバイス402-1と第2のエンドポイントデバイス402-2に通信可能に結合された1つ以上の他のエンドポイントデバイスとの間の橋渡しまたは仲介としての役割を果たす。
【0041】
いくつかの実施形態では、アプリケーション404-1は、第1のエンドポイントデバイス402上で実行される1つ以上のアプリケーションに関連付けられた機能に基づいて、利用可能なシステムサービスの1つ以上のリストから1つ以上の適用可能なシステムサービスを決定する。ここで、適用可能なシステムサービスは、エンドポイントデバイス上で実行されるアプリケーションに関連付けられた1つ以上の機能の実現を支援するかまたは当該機能の実現のために必要であるシステムサービスを含む。たとえば、アプリケーション404-1は、アプリケーション404-1に関連付けられた1つ以上の機能の実現を支援するかまたは当該機能の実現のために必要であるシステムサービスのリストから1つ以上の適用可能なシステムサービスを決定する。適用可能なシステムサービスを決定した後、アプリケーション404-1は、適用可能なシステムサービスに関連付けられた利用可能な解決に関して第2のエンドポイントデバイス402-2の解決サービスエンジン418-2について問合わせる。言い換えれば、アプリケーション404-1は、適用可能なシステムサービスに如何にアクセスするかを示すデータを解決サービスエンジン418-2に要求する。
【0042】
たとえば、ここで
図6を参照すると、エンドポイントデバイスからの利用可能なシステムサービスについての例示的な要求動作600が提示される。いくつかの実施形態では、エンドポイントデバイス102と同様のまたは同じ第1のエンドポイントデバイス602-1は、システムサービスクエリ601を生成し、第2のエンドポイントデバイス602-2の発見サービスエンジン620に送信する。システムサービスクエリ601は、第2のエンドポイントデバイス602-2が利用可能なシステムサービスのリストを要求するデータを含む。システムサービスクエリ601の受信に応答して、第2のエンドポイントデバイス602-2上で動作する発見サービスエンジン620は、利用可能なシステムサービスのリスト603を第1のエンドポイントデバイス602-1に送信する。利用可能なシステムサービスのリスト603は、第2のエンドポイントデバイス602-2が利用可能な各システムサービスを識別するデータを含む。このようなシステムサービスは、第2のエンドポイントデバイス602-2上で動作するシステムサービスと、1つ以上の他のエンドポイントデバイスによって第2のエンドポイントデバイス602-2にエクスポートされるかまたは当該第2のエンドポイントデバイス602-2と共有されるシステムサービスとを含む。いくつかの実施形態に従うと、第2のエンドポイントデバイス602-2は、利用可能なシステムサービスの1つ以上の追加のリストを送信する。当該利用可
能なシステムサービスの1つ以上の追加のリストは各々、第2のエンドポイントデバイス602-2に通信可能に結合されたそれぞれの他のエンドポイントデバイスが利用可能なシステムサービスを識別するデータを含んでいる。利用可能なシステムサービスのリスト603または利用可能なシステムサービスの1つ以上の追加のリストに基づいて、第1のエンドポイントデバイス602-1は、第1のエンドポイントデバイス602-1上で実行されるアプリケーションの1つ以上の機能に基づいて、1つ以上の適用可能なシステムサービスを決定する。
【0043】
第1のエンドポイントデバイス602-1が1つ以上の適用可能なアプリケーションを決定した後、第1のエンドポイントデバイス602-1は、解決クエリ605を生成して、第2のエンドポイントデバイス602-2の解決サービスエンジン618に送信する。解決クエリ605は、決定された適用可能なシステムサービスに如何にアクセスするかを要求する(すなわち、適用可能なシステムサービスについての1つ以上の利用可能な解決を要求する)データを含む。解決クエリ605の受信に応答して、第2のエンドポイントデバイス602-2の解決サービスエンジン618は、適用可能なシステムサービスについての1つ以上の利用可能な解決607を決定する。たとえば、解決サービスエンジン618は、アプリケーションシステムサービスについての1つ以上の利用可能な解決607を決定するために、解決サービスデータを解析する。解決サービスエンジン618が適用可能なシステムサービスについての利用可能な解決607を決定すると、利用可能な解決607は第1のエンドポイントデバイス602-1に送信される。
【0044】
再び
図4を参照すると、第1のエンドポイントデバイス402-1上で実行されるアプリケーション404-1が、適用可能なシステムサービスについての利用可能な解決を受信した後、アプリケーション404-1は、アプリケーション404-1が適用可能なシステムサービスを制御するように、エンドポイントデバイス402-2のそれらの適用可能なシステムサービスにアクセスする。アプリケーション404-1が適用可能なシステムサービスにアクセスした後、第1のエンドポイントデバイス402-1は、適用可能なシステムサービスを用いてそれらのアプリケーション404に関連付けられた機能を実現することによって、1つ以上のアプリケーション404を実行する。たとえば、エンドポイントデバイス402-1は、第2のエンドポイントデバイス402-2のシステムサービス406-2を用いてアプリケーション404-1に関連付けられた機能を実現する。いくつかの実施形態では、アプリケーションの機能を実現することは、適用可能なシステムサービスを用いてアプリケーションのうち少なくとも一部を実行することを含む。このようにして、第1のエンドポイントデバイス402-1は、第2のエンドポイントデバイス402-2のシステムサービス406-2の能力を得る。
【0045】
一例として、アプリケーション404-1は、1つ以上の通知機能、たとえば、1つ以上の通知の生成、表示、および対話を含む。アプリケーション404-1は、第2のエンドポイントデバイス402-2からの利用可能なシステムサービスのリストから、1つ以上の通知、たとえば、第2のエンドポイントデバイス402-2の表示API、入力API、およびインターフェイスの表示および対話を支援する1つ以上の適用可能なシステムサービスを決定する。アプリケーション404-1が、第2のエンドポイントデバイス402-2の表示API、入力API、およびインターフェイスについての利用可能な解決を受信すると、アプリケーション404-1は、たとえば、第2のエンドポイントデバイス402-2の表示APIおよびインターフェイスを用いて1つ以上の通知の表示を実現するとともに、たとえば、第2のエンドポイントデバイス402-2の入力APIおよびインターフェイスを用いて1つ以上の通知との対話を実現する。
【0046】
別の例として、アプリケーション404-1は、1つ以上の機能、たとえば、電話呼の受信およびストリーミングを含む。第2のエンドポイントデバイス402-2からの利用
可能なシステムサービスのリストから、アプリケーション404-1は、電話呼の受信およびストリーミングを支援する1つ以上の適用可能なシステムサービス、たとえば、第2のエンドポイントデバイス402-2のテレコムAPIを決定する。アプリケーション404-1が第2のエンドポイントデバイス402-2のテレコムAPIについての利用可能な解決を受信すると、アプリケーション404-1は、たとえば、第2のエンドポイントデバイス402-2のテレコムAPIを用いて、電話呼の受信およびストリーミングを実現する。
【0047】
ここで
図7を参照すると、共有されたシステムサービスを用いてアプリケーションを実行するための例示的なプロセス700のフロー図が示されている。ステップ705において、エンドポイントデバイス102と同様のまたは同じ第1のエンドポイントデバイスが、第1のエンドポイントデバイスに通信可能に結合された1つ以上の他のエンドポイントデバイスの発見サービスエンジンに最初にアクセスする。いくつかの実施形態では、発見サービスエンジンにアクセスするために、第1のエンドポイントデバイスは、1つ以上の通信プロトコルに従って1つ以上の他のエンドポイントデバイスを最初に検出するように構成される。次いで、第1のエンドポイントデバイスは、検出された各エンドポイントデバイスのデバイスIDを要求する。いくつかの実施形態に従うと、検出されたエンドポイントデバイスの各デバイスIDは、そのエンドポイントデバイスについてのそれぞれの発見サービスエンジンに如何にアクセスするかを示すデータを含む。
【0048】
さらに、ステップ705において、第1のエンドポイントデバイスが、第1のエンドポイントデバイスに通信可能に結合された1つ以上の他のエンドポイントデバイスの発見サービスエンジンにアクセスすると、第1のエンドポイントデバイスは、他のエンドポイントデバイスごとに利用可能なシステムサービスについて問合わせする。すなわち、第1のエンドポイントデバイスは、他の各エンドポイントデバイスから、他のエンドポイントデバイス上で実行されているシステムサービスと、少なくとも別の異なるエンドポイントデバイスから他のエンドポイントデバイスにエクスポートされる(すなわち、共有される)システムサービスとについて問合わせする。ステップ710において、第1のエンドポイントデバイスは、問合わせされたエンドポイントデバイスの各々から利用可能なシステムサービスのリストを受信する。第1のエンドポイントデバイスは、利用可能なシステムサービスのリストから、1つ以上の適用可能なシステムサービスを識別する。適用可能なシステムサービスは、第1のエンドポイントデバイス上で実行される1つ以上のアプリケーションに関連付けられた1つ以上の機能の実現を支援するかまたは当該実現のために必要である1つ以上のシステムサービスを含む。ステップ715において、第1のエンドポイントデバイスは、適用可能なシステムサービスを列挙したエンドポイントデバイスのうちの1つ以上から、適用可能なシステムサービスに関する解決データについて問合わせる。すなわち、第1のエンドポイントデバイスは、適用可能なシステムサービスを含む利用可能なシステムサービスのリストを送信したエンドポイントデバイスについて問合わせる。ステップ720において、第1のエンドポイントデバイスは、それぞれのエンドポイントデバイス(すなわち、問合わせされたエンドポイントデバイス)から適用可能なシステムサービスの各々についての1つ以上の利用可能な解決を受信する。利用可能な解決は、適用可能なシステムサービスに如何にアクセスし、当該適用可能なシステムサービスを如何に制御するかを示すデータ、たとえば、適用可能なシステムサービスに関連付けられた1つ以上の通信プロトコルおよび適用可能なシステムサービスの1つ以上のアドレス指定可能なロケーションを示すデータを含む。
【0049】
ステップ725において、第1のエンドポイントデバイスは、1つ以上のアプリケーションを実行する。1つ以上のアプリケーションを実行するステップは、適用可能なシステムサービスのうちの1つ以上を用いてアプリケーションに関連付けられた1つ以上の機能を実現するステップを含む。このようにして、第1のエンドポイントデバイスは、他のエ
ンドポイントデバイスのシステムサービスを用いてアプリケーションを実行する。ステップ730において、第1のエンドポイントデバイスは、第1のエンドポイントデバイス上で実行されるアプリケーションの機能を実現する適用可能なシステムサービスを含む、それぞれのエンドポイントデバイスとの対話を表わすデータを受信する。すなわち、第1のエンドポイントデバイスは、第1のエンドポイントデバイス上で実行されるアプリケーションの機能を実現するのに用いられる適用可能なシステムサービスを含む第2のエンドポイントデバイスから、第1のエンドポイントデバイス上で実行されるアプリケーションとの対話を表わすデータを受信する。このようにして、第2のエンドポイントデバイスは、第1のエンドポイントデバイス上で実行されるアプリケーションのためのリモート入力デバイスとして機能する。ステップ735において、第1のエンドポイントデバイスは、それぞれのエンドポイントデバイスとの対話を表わすデータに従って、1つ以上のアプリケーションの実行を修正するように構成される。たとえば、第1のエンドポイントデバイスは、いくつか例を挙げると、それぞれのエンドポイントデバイスとの対話を表わすデータを1つ以上のアプリケーションへの入力として提供するか、データに基づいて1つ以上のアプリケーションの実行を開始するか、データに基づいて1つ以上のアプリケーションの実行を停止するか、またはこれらのいずれかの組合わせを実行する。
【0050】
いくつかの実施形態では、上記で説明した技術のいくつかの局面は、ソフトウェアを実行する処理システムの1つ以上のプロセッサによって実現され得る。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に格納されたかまたは非一時的なコンピュータ可読記憶媒体上で有形に具現化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、1つ以上のプロセッサによって実行されると、上記で説明した技術の1つ以上の局面を実行するように当該1つ以上のプロセッサを操作する命令といくつかのデータとを含み得る。非一時的なコンピュータ可読記憶媒体は、たとえば、磁気または光学ディスク記憶装置、ソリッドステート記憶装置、たとえば、フラッシュメモリ、キャッシュ、ランダムアクセスメモリ(random access memory:RAM)、または他の不揮発性メモリ装置などを含み得る。非一時的なコンピュータ可読記憶媒体に格納された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、または1つ以上のプロセッサによって解釈されるかもしくは実行可能である他の命令フォーマットであり得る。
【0051】
コンピュータ可読記憶媒体は、命令および/またはデータをコンピュータシステムに提供するために使用している間にコンピュータシステムによってアクセス可能な任意の記憶媒体または記憶媒体の組合わせを含み得る。このような記憶媒体は、光学媒体(たとえば、コンパクトディスク(compact disc:CD)、デジタル多用途ディスク(digital versatile disc:DVD)、ブルーレイディスク)、磁気媒体(たとえば、フロッピー(登録商標)ディスク、磁気テープ、または磁気ハードドライブ)、揮発性メモリ(たとえば、ランダムアクセスメモリ(RAM)もしくはキャッシュ)、不揮発性メモリ(たとえば、読出し専用メモリ(ROM)もしくはフラッシュメモリ)、または、微小電気機械システム(microelectromechanical systems:MEMS)ベースの記憶媒体を含み得るが、それらに限定されない。コンピュータ可読記憶媒体は、コンピューティングシステム(たとえば、システムRAMもしくはROM)に埋込まれるか、コンピューティングシステム(たとえば、磁気ハードドライブ)に固定して取付けられるか、コンピューティングシステム(たとえば、光ディスクもしくはユニバーサルシリアルバス(Universal Serial Bus:USB)ベースのフラッシュメモリ)に取外し可能に取付けられるか、または、有線もしくは無線ネットワーク(たとえば、ネットワークアクセス可能ストレージ(network accessible storage:NAS))を介してコンピュータシステムに結合され得る。
【0052】
なお、概略の記載において上述される動作または要素のすべてが必要とされるわけではなく、特定の動作またはデバイスの一部が必要とされない場合もあり、上述したものに加えて、1つ以上のさらに別の動作が実行されてもよく、または、要素が含まれてもよい。
さらに、動作が列挙される順番は必ずしもそれらが実行される順番ではない。さらに、特定の実施形態を参照して概念が説明されてきた。しかしながら、当業者であれば、添付の請求の範囲において記載される本開示の範囲から逸脱するものでなければ、さまざまな修正および変更が実施可能であることを理解する。したがって、明細書および図面は、限定的な意味ではなく例示的な意味で解釈されるべきであり、すべてのそのような修正は本開示の範囲内に含まれるよう意図されている。
【0053】
「A、B、またはCのうちの少なくとも1つ」の文脈で用いられる「または」という語句は、本明細書では、「非排他的なまたは」を意味するために用いられる。すなわち、上述および同様の文脈において、「少なくとも1つまたはそれらの任意の組合わせ」を意味するために用いられる。たとえば、「A、B、およびCのうちの少なくとも1つ」は、「A、B、C、またはそれらの任意の組合わせのうちの少なくとも1つ」を意味するために用いられる。
【0054】
有用性、他の利点および問題の解決手段は、特定の実施形態に関して上記で説明されている。しかしながら、これらの有用性、利点、問題の解決手段、および、任意の有用性、利点または解決手段をもたらし得るかまたはより顕著にし得る任意の特徴は、請求項のいずれかまたはすべてにおける重要な特徴、必要な特徴または必須の特徴として解釈されるべきでない。さらに、上記に開示された主題は、本願明細書における教示の利益を有する当業者にとって明白であるさまざまな、但し同等の態様で修正および実施され得るので、上記で開示された特定の実施形態は単に例示的なものに過ぎない。添付の請求の範囲に記載されるもの以外の、本明細書中に示される構造または設計の詳細は限定されるよう意図されてたものではない。したがって、上記で開示された特定の実施形態が変更または修正されてもよく、すべてのそのような変更が開示された主題の範囲内にあるとみなされることは明らかである。従って、本明細書において要求される保護は添付の請求の範囲に記載される通りである。
【手続補正書】
【提出日】2024-08-23
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
方法であって、
第1のエンドポイントデバイスによって、第2のエンドポイントデバイスから、前記第2のエンドポイントデバイスに関連付けられた利用可能なシステムサービスのリストを受信するステップと、
前記第1のエンドポイントデバイスによって、機能に関連付けられた1つ以上のアプリケーションを実行するステップとを含み、前記1つ以上のアプリケーションを実行するステップは、前記利用可能なシステムサービスのリストからの少なくとも1つの利用可能なシステムサービスを用いて前記機能を実現するデータを、前記第1のエンドポイントデバイスから前記第2のエンドポイントデバイスに送信するステップを含み、前記方法はさらに、
前記第1のエンドポイントデバイスによって、前記1つ以上のアプリケーションとの対話を表わすデータを前記第2のエンドポイントデバイスから受信するステップと、
前記第1のエンドポイントデバイスによって、前記1つ以上のアプリケーションとの前記対話を表わす前記データに基づいて前記1つ以上のアプリケーションの実行を修正するステップとを含む、方法。
【請求項2】
前記方法はさらに、
前記第1のエンドポイントデバイスによって、前記利用可能なシステムサービスのリストからの少なくとも前記1つの利用可能なシステムサービスに基づいて、前記第2のエンドポイントデバイスから複数の利用可能な解決を受信するステップを含み、
前記1つ以上のアプリケーションを実行するステップは、前記複数の利用可能な解決のうちの1つに基づく、請求項1に記載の方法。
【請求項3】
前記1つ以上のアプリケーションの実行を修正するステップは、前記実行を停止させるステップを含む、請求項1または2に記載の方法。
【請求項4】
前記第1のエンドポイントデバイスによって、前記第2のエンドポイントデバイスから、前記第2のエンドポイントデバイスに通信可能に結合された第3のエンドポイントデバイスに関連付けられた利用可能なシステムサービスの第2のリストを受信するステップをさらに含み、前記1つ以上のアプリケーションを実行するステップはさらに、前記第1のエンドポイントデバイスによって、前記利用可能なシステムサービスの第2のリストからの前記システムサービスを用いて前記機能を実現するデータを、前記第3のエンドポイントデバイスに送信するステップを含む、請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記第1のエンドポイントデバイスによって、前記第2のエンドポイントデバイスを検出するステップと、
前記第1のエンドポイントデバイスによって、前記第2のエンドポイントデバイスから、前記第2のエンドポイントデバイスに関連付けられた解決サービスデータを受信するステップとをさらに含む、請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記第2のエンドポイントデバイスを検出することに応答して、前記第2のエンドポイントデバイスの発見サービスエンジンへのアクセスを要求し、前記第1のエンドポイントデバイスによって前記第2のエンドポイントデバイスの前記発見サービスエンジンにアクセスする方法を受信するステップと、
前記第2のエンドポイントデバイスの前記発見サービスエンジンにアクセスし、前記第2のエンドポイントデバイスに関連付けられた前記利用可能なシステムサービスのリストを、前記第1のエンドポイントデバイスによって、前記第2のエンドポイントデバイスの前記発見サービスエンジンから受信するステップとをさらに含む、請求項5に記載の方法。
【請求項7】
前記第1のエンドポイントデバイスにおいて、前記第2のエンドポイントデバイスの前記発見サービスエンジンに関連付けられた解決サービスデータを受信するステップと、
前記解決サービスデータに基づいて前記第2のエンドポイントデバイスの前記発見サービスエンジンにアクセスするステップとをさらに含む、請求項5または6に記載の方法。
【請求項8】
解決サービスデータに基づいて、複数の通信プロトコルのうちの通信プロトコルによって前記第2のエンドポイントデバイスの前記発見サービスエンジンにアクセスするステップをさらに含む、請求項5~7のいずれか1項に記載の方法。
【請求項9】
前記1つ以上のアプリケーションは、1つ以上の通知をレンダリングするように構成される、請求項1~8のいずれか1項に記載の方法。
【請求項10】
前記1つ以上のアプリケーションを実行するステップは、前記第2のエンドポイントデバイスに電子的に結合されたディスプレイ上に1つ以上の通知をレンダリングするステップを含む、請求項1から9のいずれか1項に記載の方法。
【請求項11】
前記第1のエンドポイントデバイスは第1のオペレーティングシステムを有し、前記第2のエンドポイントデバイスは、前記第1のオペレーティングシステムとは別個の第2のオペレーティングシステムを有する、請求項1~10のいずれか1項に記載の方法。
【請求項12】
前記第2のオペレーティングシステムは、前記第1のオペレーティングシステムとは異なる少なくとも1つのインターフェイス、言語、メモリ管理技術、通信プロトコル、暗号化、またはネットワークスタックを有する、請求項11に記載の方法。
【請求項13】
前記第2のエンドポイントデバイスは、前記第1のエンドポイントデバイスに近接している、請求項1から12のいずれか1項に記載の方法。
【請求項14】
前記第2のエンドポイントデバイスは、第3のエンドポイントデバイスのデバイスIDデータを含む、請求項1~13のいずれか1項に記載の方法。
【請求項15】
システムであって、
1つ以上のプロセッサを含む第1のエンドポイントデバイスを含み、前記第1のエンドポイントデバイスは、請求項1~14のいずれか1項に記載の方法を実行するように前記1つ以上のプロセッサを操作するように構成された実行可能命令を格納している、システム。
【請求項16】
システムであって、
1つ以上の他のエンドポイントデバイスに通信可能に結合された1つ以上のエンドポイントデバイスを含むエンドポイントデバイスフレームワークを含み、前記システムは、請求項1~14のいずれか1項に記載の方法を実行するように構成される、システム。
【請求項17】
請求項1~14のいずれか1項に記載の方法を1つ以上のプロセッサに実行させるプログラム。
【外国語明細書】