(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】一時的デバイス・グループの編成方法、システム、プログラム
(51)【国際特許分類】
G06F 9/50 20060101AFI20241203BHJP
H04L 67/12 20220101ALI20241203BHJP
【FI】
G06F9/50 120A
H04L67/12
(21)【出願番号】P 2022540931
(86)(22)【出願日】2020-12-16
(86)【国際出願番号】 IB2020062046
(87)【国際公開番号】W WO2021140386
(87)【国際公開日】2021-07-15
【審査請求日】2023-05-25
(32)【優先日】2020-01-08
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】古市 実裕
(72)【発明者】
【氏名】齊藤 昭
(72)【発明者】
【氏名】上ノ原 勇人
(72)【発明者】
【氏名】横山 智史
(72)【発明者】
【氏名】山本 学
(72)【発明者】
【氏名】岩崎 礼江
【審査官】坂庭 剛史
(56)【参考文献】
【文献】米国特許出願公開第2019/0289469(US,A1)
【文献】米国特許出願公開第2003/0204625(US,A1)
【文献】米国特許出願公開第2018/0302424(US,A1)
【文献】特表2016-521876(JP,A)
【文献】特開2018-147055(JP,A)
【文献】特開2018-148284(JP,A)
【文献】TSIROPOULOU, E. E. et al,Interest, Energy and Physical-Aware Coalition Formation and Resource Allocation in Smart IoT Applications,51st Annual Conference on Information Sciences and Systems,米国,IEEE Explore,2017年05月15日,pp.1-6,インターネット<URL:https://ieeexplore.ieee.org/abstract/document/7926111>,ISBN978-1-5090-4780-2
【文献】PAL, Sujata et al.,Game Theoretic Analysis of Cooperative Message Forwarding in Opportunistic Mobile Networks,IEEE Transactions on Cybernetics,米国,IEEE Explore,2017年02月21日,Volume 47, Issue 12,pp.4463-4474,インターネット<URL:https://ieeexplore.ieee.org/abstract/document/7859459>,ISSN 2168-2275
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
H04L 67/12
(57)【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
複数のデバイスの各々の機能のリストを格納すること
であって、前記機能のリストは前記複数のデバイスの各々にによって提供される機能と、前記複数のデバイスの各々によって提供してもらいたい機能と含む、前記格納することと、
前記複数のデバイスから受信者デバイスを含むデバイス・グループを
送信者デバイスによって形成することを決定することであって、前記受信者デバイスが
、前記送信者デバイスが提供してもらいたい機能のうちの1つを実行する、前記決定することと、
前記機能のリストに対する機能使用利益と機能使用損失との合計を示す個別機能使用スコアを、
前記送信者デバイスによって、生成することと、
前記個別機能使用スコアがデバイスしきい値を超えることに応答して、
前記送信者デバイスによって、デバイス・グループを形成するための要求を前記受信者デバイスに送信することと、
第2の個別機能使用スコアを前記受信者デバイスによって生成することと、
前記第2の個別機能使用スコアが
第2のデバイスしきい値を超えることに応答して、
前記受信者デバイスによって、デバイス・グループを形成するための承認の指示を前記送信者デバイスに送信することと、
前記デバイス・グループを形成する
ための前記承認の指示を前記受信者デバイスから受信することに応答して、
前記送信者デバイスによって、一時的期間の間、前記デバイス・グループを形成することであって、前記デバイス・グループ内で機能およびデータが共有される、前記形成することと
のための動作を含む、コンピュータ実装方法。
【請求項2】
前記動作が、
新しい個別機能使用スコアを定期的に決定することと、
前記新しい個別機能使用スコアが前記デバイスしきい値を超えていないことに応答して、前記デバイス・グループから出ることとをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
別の個別機能使用スコアを生成することに基づいて前記複数のデバイスのうちの新しいデバイスが前記デバイス・グループに参加する、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記複数のデバイスのうちのデバイスが複数のデバイス・グループに参加する、請求項1に記載のコンピュータ実装方法。
【請求項5】
管理サーバを介して送信者デバイスおよび前記受信者デバイスが互いに通信する、請求項1に記載のコンピュータ実装方法。
【請求項6】
SaaS(Software as a Service)が、前記方法の前記動作を行うように構成される、請求項1に記載のコンピュータ実装方法。
【請求項7】
プログラム・コードが具現化されているコンピュータ可読ストレージ媒体を備えているコンピュータ・プログラム製品であって、前記プログラム・コードが、少なくとも1つのプロセッサに、
複数のデバイスの各々の機能のリストを格納すること
であって、前記機能のリストは前記複数のデバイスの各々にによって提供される機能と、前記複数のデバイスの各々によって提供してもらいたい機能と含む、前記格納することと、
前記複数のデバイスから受信者デバイスを含むデバイス・グループを
送信者デバイスによって形成することを決定することであって、前記受信者デバイスが
、前記送信者デバイスが提供してもらいたい機能のうちの1つを実行する、前記決定することと、
前記機能のリストに対する機能使用利益と機能使用損失との合計を示す個別機能使用スコアを、
前記送信者デバイスによって、生成することと、
前記個別機能使用スコアがデバイスしきい値を超えることに応答して、
前記送信者デバイスによって、デバイス・グループを形成するための要求を前記受信者デバイスに送信することと、
第2の個別機能使用スコアを前記受信者デバイスによって生成することと、
前記第2の個別機能使用スコアが
第2のデバイスしきい値を超えることに応答して、
前記受信者デバイスによって、デバイス・グループを形成するための承認の指示を前記送信者デバイスに送信することと、
前記デバイス・グループを形成する
ための前記承認の指示を前記受信者デバイスから受信することに応答して、
前記送信者デバイスによって、一時的期間の間、前記デバイス・グループを形成することであって、前記デバイス・グループ内で機能およびデータが共有される、前記形成することと
のための動作を実行させる、コンピュータ・プログラム製品。
【請求項8】
前記プログラム・コードが、少なくとも1つのプロセッサによって、
新しい個別機能使用スコアを定期的に決定することと、
前記新しい個別機能使用スコアが前記デバイスしきい値を超えていないことに応答して、前記デバイス・グループから出ることと
のための動作を
行させる、請求項
7に記載のコンピュータ・プログラム製品。
【請求項9】
別の個別機能使用スコアを生成することに基づいて前記複数のデバイスのうちの新しいデバイスが前記デバイス・グループに参加する、請求項
7に記載のコンピュータ・プログラム製品。
【請求項10】
前記複数のデバイスのうちのデバイスが複数のデバイス・グループに参加する、請求項
7に記載のコンピュータ・プログラム製品。
【請求項11】
管理サーバを介して送信者デバイスおよび前記受信者デバイスが互いに通信する、請求項
7に記載のコンピュータ・プログラム製品。
【請求項12】
SaaS(Software as a Service)が、前記コンピュータ・プログラム製品の前記動作を行うように構成される、請求項
7に記載のコンピュータ・プログラム製品。
【請求項13】
1つまたは複数のプロセッサと、1つまたは複数のコンピュータ可読メモリと、1つまたは複数の有形のコンピュータ可読ストレージ・デバイスとを備えているコンピュータ・システムであって、
プログラム命令が、前記1つまたは複数のメモリのうちの少なくとも1つを介して、前記1つまたは複数のプロセッサのうちの少なくとも1つによって実行するために、前記1つまたは複数の有形のコンピュータ可読ストレージ・デバイスのうちの少なくとも1つに格納され、
複数のデバイスの各々の機能のリストを格納すること
であって、前記機能のリストは前記複数のデバイスの各々にによって提供される機能と、前記複数のデバイスの各々によって提供してもらいたい機能と含む、前記格納することと、
前記複数のデバイスから受信者デバイスを含むデバイス・グループを
送信者デバイスによって形成することを決定することであって、前記受信者デバイスが
、前記送信者デバイスが提供してもらいたい機能のうちの1つを実行する、前記決定することと、
前記機能のリストに対する機能使用利益と機能使用損失との合計を示す個別機能使用スコアを、
前記送信者デバイスによって、生成することと、
前記個別機能使用スコアがデバイスしきい値を超えることに応答して、
前記送信者デバイスによって、デバイス・グループを形成するための要求を前記受信者デバイスに送信することと、
第2の個別機能使用スコアを前記受信者デバイスによって生成することと、
前記第2の個別機能使用スコアが
第2のデバイスしきい値を超えることに応答して、
前記受信者デバイスによって、デバイス・グループを形成するための承認の指示を前記送信者デバイスに送信することと、
前記デバイス・グループを形成する
ための前記承認の指示を前記受信者デバイスから受信することに応答して、
前記送信者デバイスによって、一時的期間の間、前記デバイス・グループを形成することであって、前記デバイス・グループ内で機能およびデータが共有される、前記形成することと
を含む動作を行う、コンピュータ・システム。
【請求項14】
前記動作が、
新しい個別機能使用スコアを定期的に決定することと、
前記新しい個別機能使用スコアが前記デバイスしきい値を超えていないことに応答して、前記デバイス・グループから出ることとをさらに含む、請求項
13に記載のコンピュータ・システム。
【請求項15】
別の個別機能使用スコアを生成することに基づいて前記複数のデバイスのうちの新しいデバイスが前記デバイス・グループに参加する、請求項
13に記載のコンピュータ・システム。
【請求項16】
前記複数のデバイスのうちのデバイスが複数のデバイス・グループに参加する、請求項
13に記載のコンピュータ・システム。
【請求項17】
管理サーバを介して送信者デバイスおよび前記受信者デバイスが互いに通信する、請求項
13に記載のコンピュータ・システム。
【請求項18】
SaaS(Software as a Service)が、前記コンピュータ・システムの前記動作を行うように構成される、請求項
13に記載のコンピュータ・システム。
【請求項19】
コンピュータ・プログラムであって、前記コンピュータ・プログラムがコンピュータ上で実行された場合に、請求項1ないし
6のいずれかの前記方法をコンピュータに実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、協調的コンピューティングのために一時的デバイス・グループを編成することに関連している。
【背景技術】
【0002】
モノのインターネット(IoT:Internet of Things)は、インターネットに接続されて、互いにまたはインターネットの他の部分あるいはその両方と通信するデバイスのグループとして説明されることがある。デバイスの各々は、通常、デバイスが情報を収集し、他のデバイスと情報を通信できるようにするための電子機器およびソフトウェアを含む。例えば、デバイスは、情報を受信し、追跡するためのセンサを含むことがある。その場合、デバイスはその情報を他のデバイスと共有することがある。
【発明の概要】
【0003】
特定の実施形態に従って、協調的コンピューティングのために一時的デバイス・グループを編成するためのコンピュータ実装方法が提供される。このコンピュータ実装方法は、動作を含む。複数のデバイスの各々の機能のリストが格納される。複数のデバイスから受信者デバイスを含むデバイス・グループを形成する決定が行われ、受信者デバイスは機能のうちの1つを実行する。個別機能使用スコア(individual function usage score)が生成される。個別機能使用スコアがデバイスしきい値(device threshold)を超えることに応答して、デバイス・グループを形成するための要求が受信者デバイスに送信される。デバイス・グループを形成することの承認の指示を受信デバイスから受信することに応答して、一時的期間の間、デバイス・グループが形成され、デバイス・グループ内で機能およびデータが共有される。
【0004】
他の実施形態に従って、協調的コンピューティングのために一時的デバイス・グループを編成するためのコンピュータ・プログラム製品が提供される。コンピュータ・プログラム製品は、プログラム・コードが具現化されているコンピュータ可読ストレージ媒体を備え、プログラム・コードは、動作を行うように少なくとも1つのプロセッサによって実行可能である。複数のデバイスの各々の機能のリストが格納される。複数のデバイスから受信者デバイスを含むデバイス・グループを形成する決定が行われ、受信者デバイスは機能のうちの1つを実行する。個別機能使用スコアが生成される。個別機能使用スコアがデバイスしきい値を超えることに応答して、デバイス・グループを形成するための要求が受信者デバイスに送信される。デバイス・グループを形成することの承認の指示を受信デバイスから受信することに応答して、一時的期間の間、デバイス・グループが形成され、デバイス・グループ内で機能およびデータが共有される。
【0005】
さらに他の実施形態に従って、協調的コンピューティングのために一時的デバイス・グループを編成するためのコンピュータ・システムが提供される。コンピュータ・システムは、1つまたは複数のプロセッサと、1つまたは複数のコンピュータ可読メモリと、1つまたは複数の有形のコンピュータ可読ストレージ・デバイスとを備え、動作を行うためのプログラム命令が、1つまたは複数のメモリのうちの少なくとも1つを介して、1つまたは複数のプロセッサのうちの少なくとも1つによって実行するために、1つまたは複数の有形のコンピュータ可読ストレージ・デバイスのうちの少なくとも1つに格納される。複数のデバイスの各々の機能のリストが格納される。複数のデバイスから受信者デバイスを含むデバイス・グループを形成する決定が行われ、受信者デバイスは機能のうちの1つを実行する。個別機能使用スコアが生成される。個別機能使用スコアがデバイスしきい値を超えることに応答して、デバイス・グループを形成するための要求が受信者デバイスに送信される。デバイス・グループを形成することの承認の指示を受信デバイスから受信することに応答して、一時的期間の間、デバイス・グループが形成され、デバイス・グループ内で機能およびデータが共有される。
【0006】
1つの態様によれば、コンピュータ実装方法が提供されており、コンピュータ実装方法は、複数のデバイスの各々の機能のリストを格納することと、複数のデバイスから受信者デバイスを含むデバイス・グループを形成することを決定することであって、受信者デバイスが機能のうちの1つを実行する、決定することと、個別機能使用スコアを生成することと、個別機能使用スコアがデバイスしきい値を超えることに応答して、デバイス・グループを形成するための要求を受信者デバイスに送信することと、デバイス・グループを形成することの承認の指示を受信デバイスから受信することに応答して、一時的期間の間、デバイス・グループを形成することであって、デバイス・グループ内で機能およびデータが共有される、形成することとのための動作を含む。
【0007】
別の態様によれば、コンピュータ・プログラム製品が提供されており、コンピュータ・プログラム製品は、プログラム・コードが具現化されているコンピュータ可読ストレージ媒体を備え、プログラム・コードは、少なくとも1つのプロセッサによって、複数のデバイスの各々の機能のリストを格納することと、複数のデバイスから受信者デバイスを含むデバイス・グループを形成することを決定することであって、受信者デバイスが機能のうちの1つを実行する、決定することと、個別機能使用スコアを生成することと、個別機能使用スコアがデバイスしきい値を超えることに応答して、デバイス・グループを形成するための要求を受信者デバイスに送信することと、デバイス・グループを形成することの承認の指示を受信デバイスから受信することに応答して、一時的期間の間、デバイス・グループを形成することであって、デバイス・グループ内で機能およびデータが共有される、形成することとのための動作を行うように実行可能である。
【0008】
別の態様によれば、コンピュータ・システムが提供されており、コンピュータ・システムは、1つまたは複数のプロセッサと、1つまたは複数のコンピュータ可読メモリと、1つまたは複数の有形のコンピュータ可読ストレージ・デバイスとを備え、プログラム命令が、1つまたは複数のメモリのうちの少なくとも1つを介して、1つまたは複数のプロセッサのうちの少なくとも1つによって実行するために、1つまたは複数の有形のコンピュータ可読ストレージ・デバイスのうちの少なくとも1つに格納され、複数のデバイスの各々の機能のリストを格納することと、複数のデバイスから受信者デバイスを含むデバイス・グループを形成することを決定することであって、受信者デバイスが機能のうちの1つを実行する、決定することと、個別機能使用スコアを生成することと、個別機能使用スコアがデバイスしきい値を超えることに応答して、デバイス・グループを形成するための要求を受信者デバイスに送信することと、デバイス・グループを形成することの承認の指示を受信デバイスから受信することに応答して、一時的期間の間、デバイス・グループを形成することであって、デバイス・グループ内で機能およびデータが共有される、形成することとを含む動作を行う。
【0009】
以下の図面を単に例として参照し、本発明の好ましい実施形態について説明する。
【図面の簡単な説明】
【0010】
【
図1A】特定の実施形態に記載されたコンピューティング環境をブロック図で示す図である。
【
図1B】特定の実施形態に記載された、ゲートウェイ・デバイスを含んでいる代替のコンピューティング環境をブロック図で示す図である。
【
図2】特定の実施形態に記載されたデバイス・グループ化の例をブロック図で示す図である。
【
図3】特定の実施形態に記載されたデバイス・グループ化の別の例をブロック図で示す図である。
【
図4】特定の実施形態に記載された動的なデバイス・グループの作成の例を示す図である。
【
図5】特定の実施形態に記載された機能的補完の例を示す図である。
【
図6】特定の実施形態に記載された機能的補完の別の例を示す図である。
【
図7】特定の実施形態に記載されたデバイスのコンポーネントをブロック図で示す図である。
【
図8】特定の実施形態に記載された、2つのデバイス・グループの機能を共有することによって分割された役割の例を示す図である。
【
図9】特定の実施形態に記載された、報酬を伴う機能提供の例を示す図である。
【
図10】特定の実施形態に記載された機能最適化の例を示す図である。
【
図11】特定の実施形態に記載された交換機能の動作をフローチャートで示す図である。
【
図12】特定の実施形態に記載された、デバイス・グループを作成するための動作をフローチャートで示す図である。
【
図13】特定の実施形態に記載された、デバイス・グループから出るための動作をフローチャートで示す図である。
【
図14】特定の実施形態に記載された、既存のデバイス・グループに参加するための動作をフローチャートで示す図である。
【
図15】特定の実施形態に記載された、デバイスの構成を決定するための動作をフローチャートで示す図である。
【
図16】特定の実施形態に記載されたコンピューティング・ノードを示す図である。
【
図17】特定の実施形態に記載されたクラウド・コンピューティング環境を示す図である。
【
図18】特定の実施形態に記載された抽象モデル・レイヤを示す図である。
【発明を実施するための形態】
【0011】
図面では、類似する参照番号が、全体を通じて類似する部分を表す。
【0012】
本発明のさまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であるよう意図されておらず、開示された実施形態に制限されるよう意図されてもいない。説明された実施形態の範囲および趣旨から逸脱しない多くの変更および変形が、当業者にとって明らかであろう。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。
【0013】
図1Aは、特定の実施形態に記載されたコンピューティング環境をブロック図で示している。管理サーバ100は、通信経路190(例えば、インターネット、イントラネット、無線自動識別(RFID:Radio-Frequency Identification)など)を介してデバイス150a...150nに結合されている。さまざまな実施形態では、2つ以上のデバイスが存在してよい。管理サーバ100は、グローバル・グループ化システム110を含む。デバイス150a...150nの各々は、ローカル・グループ化システム152a...152n、ローカル機能154a...154n、およびセンサ156a...156nを含む。デバイスのローカル機能154a...154nは、そのデバイスが実行できる機能を表す。センサ156a...156nは、情報を受信して追跡する。他の実施形態では、センサはデバイス150a...150nから分離しており、デバイス150a...150nは、センサ(例えば、建物、交通信号機などにあるセンサ)から情報を受信する。デバイス150a...150nは、(例えば、車両内の)モバイル・デバイスであってよい。機能154a...154nを提供することの要求を受信するデバイス150a...150nは、「受信者」デバイスと呼ばれてよい。機能154a...154nに対する要求を送信するデバイス150a...150nは、「送信者」デバイスと呼ばれてよい。任意のデバイス150a...150nが、受信者デバイス、送信者デバイス、または受信者デバイスと送信者デバイスの両方であってよい。車両内の機能154a...154nの例としては、周辺環境のカメラからカメラ画像を提供することが挙げられる。別のデバイス150a...150nに物理的に近いデバイス150a...150nは、隣接するデバイスまたは隣接デバイスと呼ばれてよい。
【0014】
デバイス150a...150nによって行われるどの動作についても、そのデバイス150a...150nのローカル・グループ化システム152a...152nがそれらの動作を行うことが理解されるべきである。管理サーバ100によって実行されるどの動作についても、グローバル・グループ化システム110がそれらの動作を行うことが理解されるべきである。
【0015】
図1Bは、特定の実施形態に記載された、ゲートウェイ・デバイスを含む代替のコンピューティング環境をブロック図で示している。
図1Bでは、管理サーバ100がゲートウェイ・デバイス180に接続され、ゲートウェイ・デバイス180はデバイス150a...150nにも接続されている。ゲートウェイ・デバイス180を含む実施形態では、管理サーバ100およびデバイス150a...150nが、ゲートウェイ・デバイス180を介して互いに通信する。
【0016】
実施形態は、一時的な相互補完的デバイス・グループの作成を可能にする。デバイス・グループは、デバイス・グループが単一のデバイスとして機能し得るため、仮想デバイスと呼ばれてよい。各デバイス150a...150nのローカル・グループ化システム152a...152nは、通信経路190を介して、他のデバイス150a...150nの各々のローカル・グループ化システム152a...152nに、他のデバイス150a...150nに提供される機能154a...154nおよびデバイス150a...150nが他のデバイス150a...150nから提供してもらいたい機能154a...154nのリストを提供する。
【0017】
デバイス150a...150nのローカル・グループ化システム152a...152nは、デバイス・グループに参加するかどうかを判定するため、デバイス・グループにとどまるかどうかを判定するため、およびデバイス・グループから離れるかどうかを判定するために、個別機能使用スコアを計算する。特定の実施形態では、個別機能使用スコアがデバイスしきい値を超えた場合、デバイス150a...150nがデバイス・グループに参加するか、またはデバイス・グループにとどまり、その個別機能使用スコアがデバイス使用しきい値(device usage threshold)以下である場合、デバイス150a...150nがデバイス・グループに参加しないか、またはデバイス・グループから離れる。
【0018】
特定の実施形態では、1つのデバイス150a...150nの個別機能使用スコアは、別のデバイス150a...150nの機能を使用した場合の、その1つのデバイス150a...150nの効率の増加(「機能使用利益(function usage gain)」)と、別のデバイス150a...150nに機能を提供した場合の、その1つのデバイス150a...150nの効率の減少(「機能使用損失(function usage loss)」)の両方を考慮する。特定の実施形態では、デバイス150a...150nのローカル・グループ化システム152a...152nは、機能の使用を合計することによって個別機能使用スコアを計算する。特定の実施形態では、機能使用利益は正の値を含むか、または(例えば、最小の利益を示す)ゼロであり、一方、機能使用損失は負の値を含むか、または(例えば、最小の損失を示す)ゼロである。例えば、機能使用利益が+5であることがあり、一方、機能使用損失が-3であることがあり、その場合、個別機能使用スコアが+2になり、この値がデバイスしきい値と比較される。
【0019】
特定の実施形態では、特定の機能154a...154nが別のデバイス150a...150nによって提供されたときに、機能使用利益が検出され、特定の機能154a...154nが別のデバイス150a...150nに提供されたときに、機能使用損失が検出される。
【0020】
特定の実施形態では、機能154a...154nを他のデバイス150a...150nから受信せずに、機能154a...154nが別のデバイス150a...150nに提供される。他の実施形態では、機能154a...154nが他のデバイス150a...150nに提供されずに、機能154a...154nが別のデバイス150a...150nから受信される。さらに他の実施形態では、機能154a...154nがデバイス150a...150n間で交換される。
【0021】
特定の実施形態では、デバイス150a...150nが他のデバイス150a...150nに提供する機能154a...154nは、デバイス150a...150n自体にとって少しの利益しかないことがあり、デバイス150a...150nの追加のリソースを必要とするため、機能使用損失を引き起こす機能154a...154nとして分類される。特定の実施形態では、他のデバイス150a...150nによって提供される機能154a...154nは、この機能によってデバイス150a...150nがリソースをデバイス150a...150n(自身)のワークロードに利用できるようにし、デバイス150a...150nが独立して解決することができないことがある問題を解決することを支援するため、機能使用利益をもたらす機能154a...154nとして分類される。
【0022】
特定の実施形態では、機能154a...154nの機能使用利益または機能使用損失の値は、機能154a...154nを提供するデバイス150a...150nのローカル・グループ化システム152a...152nによって設定されてよく、機能を受信するデバイス150a...150nのローカル・グループ化システム152a...152nによって設定されてよく、または係数(例えば、定量的指標および機能の詳細(例えば、車載カメラの画像解像度、障害物認識センサの信頼度、隊列走行運転の能力など))に基づいて設定されてよい。加えて、各デバイス150a...150nは、そのデバイス150a...150n用のデバイスしきい値の異なる値を有してよい。さらに、デバイスしきい値は、単一の値であってよく、または範囲であってもよい。
【0023】
別のデバイス150a...150nから機能154a...154nを受信することの機能使用利益は、例えば、別のデバイス150a...150nのセンサを利用し、デバイス150a...150n自体(すなわち、自分のデバイス)の機能154a...154nを使用しないことから生じる作業の節約を見出し、余剰リソースをデバイス150a...150n自体(すなわち、自分のデバイス)の他の機能154a...154nに転用することから生み出される好影響を見出すことに基づいて、デバイス150a...150nの効率を増やすものとして表されてよい。
【0024】
機能154a...154nを別のデバイス150a...150nに提供することの機能使用損失は、例えば、送信者デバイス150a...150自体の速度の低下、機能154a...154nの提供から生じる追加の負担(例えば、電力の消費量の増加、およびデバイス150a...150n自体の燃料効率の減少)、および機能154a...154nの提供に対して金銭的報酬を提供する(すなわち、1つのデバイス150a...150nが機能を別のデバイス150a...150nに提供することに対して、料金が支払われる)負担の可能性に基づいて、デバイス150a...150nの効率を減らすものとして表されてよい。
【0025】
デバイス150a...150nのローカル・グループ化システム152a...152nが、別のデバイス150a...150nによって提供された特定の機能154a...154nに関して、個別機能使用スコアが送信者デバイス150a...150nのデバイスしきい値を超えたと判定した場合、ローカル・グループ化システム152a...152nは、1つまたは複数のデバイス150a...150nに送信される、デバイス・グループを生成するための要求(例えば、信号、メッセージなど)を発行する。
【0026】
デバイス・グループを生成するための要求を受信する受信者デバイス150a...150nのローカル・グループ化システム152a...152nが、個別機能使用スコアが、特定の機能154a...154nを提供するためのデバイス・グループへの参加に関する受信者デバイス150a...150nのデバイスしきい値を超えたと判定した場合、受信者デバイス150a...150nのローカル・グループ化システム152a...152nは、デバイス・グループ生成承認応答(例えば、信号、メッセージなど)を要求の送信者デバイス150a...150nのローカル・グループ化システム152a...152nに返送する。これは、受信者デバイス150a...150nが、別のデバイス150a...150nから機能を受信していないが、受信者デバイス150a...150nのデバイスしきい値をまだ超えている個別機能使用スコアを有している(例えば、機能使用損失が、そのデバイス150a...150nにとって最小、またはその機能がまだデバイスしきい値を超えている場合に割り当てられる値であると見なされる)場合に発生してよい。その後、送信者デバイス150a...150nおよび受信者デバイス150a...150nは、単一の仮想デバイスとして機能するためのデバイス・グループを形成し、デバイス・グループ内の各デバイス150a...150nのローカル・グループ化システム152a...152nは、データ(例えば、カメラ画像)を交換することによって協調および協力する。
【0027】
デバイス・グループの作成を開始した送信者デバイス150a...150nのローカル・グループ化システム152a...152nは、単一の仮想デバイスとして動作し、他のデバイスまたはデバイス・グループを含む新しいデバイス・グループの作成を繰り返してよい。実施形態では、デバイス・グループ内の各デバイス150a...150nの個別機能使用スコアを含む合計は、デバイス・グループによって形成された仮想デバイスの集合的機能使用スコア(collective function usage score)と呼ばれてよい。
【0028】
デバイス・グループの一部であるデバイス150a...150nは、集合的機能使用スコアがデバイス・グループしきい値(device group threshold)(または「集合的」しきい値)以下になるような集合的機能使用スコアの減少を引き起こさない場合は、第2のデバイス・グループにさらに参加してよい。
【0029】
図2は、特定の実施形態に記載されたデバイス・グループ化の例をブロック図で示している。
図2では、デバイス・グループAのデバイス150a、150bが連携しており、同時に、デバイス・グループBのデバイス150b、150cが連携している。
【0030】
図3は、特定の実施形態に記載されたデバイス・グループ化の別の例をブロック図で示している。
図3では、管理サーバ300が、デバイス・グループA310内のデバイスおよびデバイス・グループB320内のデバイスに接続されている。デバイス・グループA310およびデバイス・グループB320は、両方のデバイス・グループに属する共通のデバイス330を含んでいる。
【0031】
特定の実施形態では、デバイス150a...150nがデバイス・グループから出ることがあり、それがデバイス・グループの再構成を引き起こす。デバイス・グループは、集合的機能使用スコアに基づいて仮想デバイス150a...150nとして動作し、一方、デバイス・グループ内の個別のデバイス150a...150nは、個別機能使用スコアを定期的に更新し、デバイス・グループにとどまることに起因する機能使用損失がそのデバイス150a...150nのデバイスしきい値以下になった場合、デバイス・グループから出る。例えば、デバイス・グループ内に存在することが、そのデバイス150a...150nでのローカルな処理の許容できない遅延をもたらす場合、デバイス150a...150nはデバイス・グループから離れてよい。
【0032】
特定のデバイス150a...150nがデバイス・グループから出た場合、デバイス・グループにとどまっているデバイス150a...150n間で機能が再構成されてよい。この再構成は、相互補完的機能を交換することを含み、デバイス・グループにとどまっているデバイス150a...150nの再配置を含んでよい(例えば、車列の車両内のデバイスの場合、車両は、最前列の車両が車列の後部に移動する新しい構成を形成し得る)。再構成の結果として、別のデバイス150a...150nが、個別機能使用スコアに基づいてデバイス・グループから出てよく、または新しいデバイス150a...150nが、個別機能使用スコアに基づいてデバイス・グループに参加してよい。
【0033】
特定の実施形態では、デバイス150a...150nおよびデバイス・グループが管理サーバ100と協力する。管理サーバ100は、候補デバイス150a...150nが意図的迂回によってデバイス・グループに参加し得る(例えば、車両内のデバイスが、車両が経路から迂回してデバイス・グループに参加することを引き起こす)こと、候補デバイス150a...150nが速度を減らすか、または増やし得る(例えば、より速くまたはより遅く移動している車両内のデバイスが、デバイス・グループに参加し得る)こと、および候補デバイス150a...150nがスタンバイ・モードにあること(スタンバイ・モードの間、候補デバイス150a...150nは、候補デバイス150a...150nが他のデバイス150a...150nを含む新しいデバイス・グループを形成し得るように、望ましい機能を提供できる別のデバイス150a...150nが使用可能になる(例えば、物理的に近くを通る)のを待機する)が、前もって通知されてよい。機能の一方的な提供に対する考慮として、通行料金または税金の削減などの金銭的報酬が与えられてよい(例えば、管理サーバ100によって処理されてよい)。
【0034】
したがって、複数のデバイス150a...150nは、デバイス150a...150n間で機能を補完するために、一時的デバイス・グループを形成してよい。特定の実施形態では、デバイス150a...150nの個別機能使用スコアに基づいて他のデバイス150a...150nが離れることに起因して、1つのデバイス150a...150nがデバイス・グループにとどまっている場合、デバイス・グループが終了する。他の実施形態では、デバイス・グループは、決定された期間の間存在してよい。デバイス150a...150nは、いずれかの特定の時間にデバイス・グループから出てよい。デバイス150a...150nは、1つまたは複数のデバイス・グループに参加してよい。デバイス150a...150nは、管理サーバ100なしで、互いに調整することによってデバイス・グループを自律的に形成してよい。代替として、デバイス150a...150nは、管理サーバ100と協力してデバイス・グループを形成してよく、グループを形成するための要求およびそれらの要求に対する応答が、管理サーバ100を経由する。
【0035】
特定の実施形態では、デバイス150a...150nが物理的に遠く離れている場合、デバイス150a...150nは、管理サーバ100を使用して要求および応答をルーティングしてよい。そのような場合、物理的に遠く離れているデバイス150a...150nは、互いに直接通信できないことがある。特定の実施形態では、2つのデバイス150a...150nが互いに物理的に近い(例えば、互いの近隣または付近にある)場合、デバイス150a...150nは、デバイス・グループを形成するための要求および応答を互いに直接伝達してよく、または管理サーバ100を介して伝達してもよい。
【0036】
デバイス150a...150nがモノのインターネット(IoT)モバイル・デバイス(例えば、通信するために通信経路に接続された車両内のデバイス150a...150n)である実施形態では、デバイス150a...150nのうちの1つによって解決することが困難である問題、または単一のデバイス150a...150nによって解決される問題ではない問題が、1つまたは複数の他のデバイス150a...150nと一時的に協力するデバイス150a...150nによって解決されることがある。これらの他のデバイス150a...150nは、隣接デバイスと呼ばれてよい。
【0037】
例えば、自動運転車は、周辺環境を決定し、自動運転車を制御するためのデバイス150a...150nを含む。しかし、自動運転車内のデバイス150a...150nは、交差点での死角の周辺環境に関する(例えば、他の自動車、歩行者、自転車などに関する)情報、または自動運転車の前の背の高い車両によって遮られた前方の状況に関する情報を取得できないことがある。実施形態では、自動運転車のデバイス150a...150nは、近接(隣接)する車両のデバイス150a...150nからの支援を要求する。その後、近接(隣接)する車両のデバイス150a...150nは、自動運転車(例えば、望ましいデータを収集することができない自動運転車)のデバイス150a...150nの機能が近接(隣接)する車両のデバイス150a...150nの機能によって補完され、自動運転車のデバイス150a...150nが自動運転動作を継続することができるように、自動運転車のデバイス150a...150nに、死角または前方の状況に関する情報を提供する。
【0038】
多くの場合、車両のデバイス150a...150n(例えば、個別のIoTモバイル・デバイス)は、自律的に動作し、行き先、移動速度、動作中のセンサの種類、および車両の使用可能なリソースの能力に関する情報を収集することができる。しかし、実施形態は、デバイス150a...150nがより良い性能のために他のデバイス150a...150nと協力すること、およびデバイス150a...150nが取得できないことがある情報を取得することを可能にする。
【0039】
一緒に移動している車両(例えば、トラック)の車列の場合、実施形態は、同じ目的のために車列の車両のデバイス150a...150nの協調的動作が実行されると仮定して、固定されたデバイス・グループを実装してよい。加えて、実施形態は、多種多様なデバイス150a...150nが混合状態で存在する場合に(例えば、車両内のデバイス150a...150nの場合、混合状態は、車両が異なる速度で移動していることを示し得る)、デバイス150a...150nの各々の動作の目的を妨げることなく、デバイス150a...150nの機能が補完されながら、デバイス150a...150nの一時的な協調的動作を可能にする。
【0040】
図4は、特定の実施形態に記載された動的なデバイス・グループの作成400の例を示している。この例では、ブロック400で、車両Aおよび車両Bのデバイスがデバイス・グループを形成している。その後、ブロック410で、車両Cのデバイスがデバイス・グループに参加する。次に、ブロック420で、車両Dのデバイスがデバイス・グループに参加する。その後、ブロック430で、車両Bのデバイスがデバイス・グループから出る。
【0041】
この例では、機能が相互に補完されている間、デバイス・グループの作成が繰り返される。近接(隣接)する車両の送信者デバイス150a...150nの機能への依存は、受信者デバイス150a...150nの機能を省き、余剰リソースを受信者デバイス150a...150nの他の機能に移動できるようにする。例えば、別の車両の送信者デバイス150a...150nの周辺監視機能の依存は、受信者デバイス150a...150nの周辺監視機能を停止すること、およびリソースを受信者デバイス150a...150nの車両のエンターテイメント・システムの通信機能に使用することを可能にする。
【0042】
特定の実施形態では、受信者デバイス150a...150nは、送信者デバイス150a...150nの機能に部分的に依存してよく、または送信者デバイス150a...150nの機能に完全に依存してよい。部分的依存の場合、車両の受信者デバイス150a...150nは、それ自身の機能も使用して(例えば、視界が部分的に遮られているときに、カメラ画像を生成するために自分のカメラも使用して)自律運転を継続しながら、他の車両の送信者デバイス150a...150nによって提供された機能の一部(例えば、近接する車両によって撮影されたカメラ画像)を使用してよい。一方、車両の受信者デバイス150a...150nは、(例えば、他の車両の送信者デバイス150a...150nのカメラ画像を使用して)別の車両の送信者デバイス150a...150nの機能に完全に依存し、周囲の状況を自分で検出せずに(例えば、自分のカメラを使用せずに)、他の車両の後に続いてよい。
【0043】
実施形態では、個別機能使用スコアに基づいて、デバイス150a...150nがデバイス・グループから出てよい。
【0044】
速度の低下および迂回に起因する遅延の増加が存在することがある。例えば、相対的に速く移動している車両のデバイス150a...150nが、相対的に遅く移動している車両のデバイス150a...150nを含むデバイス・グループを形成する場合、相対的に速く移動している車両のデバイス150a...150nは、その相対的に速く移動している車両の速度を、相対的に遅く移動している車両の速度に落とす。
【0045】
デバイス150a...150nは、デバイス・グループを形成することによって何らかの利益を得ることができるが、個別機能使用スコアは不利益も考慮する。
【0046】
図5は、特定の実施形態に記載された機能的補完の例を示している。ブロック500で、車両Aが車両Bを追い越す。車両Aのデバイスの周辺監視機能は、環境の一部に関するデータを取得する能力が不足していることを認識する。車両Bのデバイスの周辺監視機能は、環境の一部に関するデータを取得する能力が不足していることを認識する。これを踏まえて、ブロック510で、車両Aおよび車両Bのデバイスが、一時的デバイス・グループを形成して、周辺監視機能を統合し、周辺環境に関するデータを共有する。具体的には、車両Aのデバイスが左側を監視すると同時に、車両Bのデバイスが右側を監視して、周辺監視機能を相互に補完する。ブロック520で、車両Aと車両Bの間に距離の増加が存在し、これが、個別機能使用スコアに基づいてデバイス・グループが自動的に解散することを引き起こす。
【0047】
図6は、特定の実施形態に記載された機能的補完の別の例を示している。ブロック600で、車両A、車両B、および自転車が見通しの悪い交差点に接近している(住宅によって車両Aが自転車を見ることを難しくしている)。ブロック610で、車両Aのデバイスおよび車両Bのデバイスが、管理サーバ100を介してデバイス・グループを形成し、管理サーバ100は、交差点に見通しの悪い場所があることを知っており、車両の位置を継続的に監視することによって、2台の車両がこの領域に接近していることを知り、デバイス・グループの形成が補完的機能を提供し得ることを車両Aおよび車両Bに通知する。この場合、車両Aのデバイスは、死角にある自転車をまだ検出していないが、車両Bのデバイスはカメラによって自転車を検出する。ブロック620で、車両Aのデバイスが車両Bのデバイスから自転車に関する情報を受信したため、車両Aは自転車との衝突を回避する。デバイス・グループ内のデバイス間のデータの共有は、車両Aおよび車両Bが互いに衝突することも防ぐ。
【0048】
図7は、特定の実施形態に記載されたデバイスのコンポーネントをブロック図で示している。
図7では、管理サーバ700が、デバイス710およびデバイス750を含むデバイス・グループに接続されている。デバイス・グループ内に追加のデバイスが存在してよく、デバイスの各々は、デバイス710および750に示されたユニットと同じユニットまたは異なるユニットを含んでよい。また、デバイス710および750には例示的なユニットが示されている。他の実施形態では、より少ないユニットまたはユニットの異なる組み合わせを含む他のユニットがあってもよい。また、デバイス710、750の各々は、サブデバイスを介して取得されるデータに加えて、共有される機能を含んでよい。一緒に機能するデバイスのユニットは、ローカル・グループ化システム152a...152nとして表されてよい。
【0049】
デバイス710、750のサブデバイスは、センサ、アクチュエータ、カメラなどを含んでよい。デバイス710のデータ処理ユニットは、センサのセンサ・データを処理し、アクチュエータを制御するようにデバイス制御ユニットに指示し、データ送信ユニットを介して、既定の処理の手順に従って処理結果を管理サーバ700に送信する。デバイス750のデータ処理ユニットは、サブデバイスからデータを受信し、そのデータをデバイス710に送信する。
【0050】
デバイス710、750の機能情報交換ユニットは、そのデバイスによって提供される機能および他のデバイスから提供されることが望ましい機能に関する情報を交換する。
【0051】
デバイス710のグループ管理ユニットは、デバイス710のグループ生成要求送信ユニットを介して、データ処理ユニットによって(例えば、周囲の状況に従って)決定された機能または他のデバイスによって提供される機能の種類に対するグループ生成要求を他のデバイスに送信する。
【0052】
デバイス750のグループ生成要求受信ユニットがグループ生成要求を受信した場合、デバイス750のグループ管理ユニットは、デバイス・グループに参加するかどうかを判定する。承認が行われた場合、デバイス750のグループ生成承認送信ユニットを介して、承認応答がデバイス710のグループ生成承認受信ユニットに送信される。
【0053】
デバイス710、750の双方のグループ管理ユニットは、デバイス・グループ内のデバイス間の機能的補完(例えば、データの送信および受信ならびにデータ処理結果の共有)を実行するように下位のデータ処理機能に指示し、それによって、グループ内データ受信ユニット、グループ内データ送信ユニット、処理結果受信ユニット、処理要求送信ユニット、処理結果送信ユニット、および処理要求受信ユニットを介して、相互の機能的補完を実行する。
【0054】
デバイス710、750のグループ管理ユニットは、グループ退出通知送信ユニットを介して(例えば、周囲の状況における変化に応じた必要性に従って)退出通知をデバイス・グループにさらに送信する。
【0055】
デバイスがデバイス・グループから出るか、またはデバイス・グループに新たに参加するときに、デバイス710、750間の機能的補完の構成の変更が必要とされる場合、構成変更要求送信ユニットを介してデバイス・グループ内の別のデバイスの構成の変更が要求される。
【0056】
特定の実施形態では、管理サーバ700は、デバイス・グループ参加候補デバイス(devicegroup entry candidate device)が接近している状況を特定のデバイスに通知してよい。さらに、管理サーバ700は、接近する状況に従ってデバイス・グループ参加候補デバイスに送信されたグループ生成要求を中継してよい。管理サーバ700は、デバイス所有者に、別のデバイスに機能を提供することによって得られた金銭的報酬を与えてよい。
【0057】
図8は、特定の実施形態に記載された、機能を共有することによって分割された役割の例800を示している。
図8では、デバイス・グループ1は、車両A、車両B、および車両Cを含んでおり、高速で移動する車列を形成している。車両Aは、前方監視機能を使用して自律的に移動している。車両BおよびCは、前方を監視せずに前方の車両Aの後に続いているが、車両BおよびCのデバイスは、車両Aのデバイスの前方監視機能からデータを取得する。車両BおよびCのデバイスは、側方および後方の監視の結果を車両Aのデバイスと共有する。
【0058】
図8では、デバイス・グループ2は、低速な車両D、低速な車両E、および高速な車両Fを含んでいる。車両Dは、前方監視機能を使用して自律的に移動している。車両EおよびFは、前方を監視せずに前方の車両Dの後に続いているが、車両EおよびFのデバイスは、車両Dのデバイスの前方監視機能からデータを取得する。また、車両EおよびFのデバイスは、側方および後方の監視の結果を車両Dのデバイスと共有する。
【0059】
この例では、統合および分離によって、構成における変更が引き起こされる。具体的には、デバイス・グループ1の車両がデバイス・グループ2の車両に接近して追い越した場合、デバイス・グループ1の車両のデバイスが、デバイス・グループ2の車両のデバイスと同じデバイス・グループに一時的に属し、これらのデバイスが周辺監視機能を共有する。
【0060】
速度差のために、車両A、B、およびCが車両D、E、およびFから離れた場合、車両A、B、およびCと車両D、E、およびFは、元のデバイス・グループ1および2にそれぞれ分離される。
【0061】
高速な車両Fは、他の低速な車両DおよびEによって形成されたデバイス・グループ2から出てよく、その後、車両Fが、高速な車両A、B、およびCによって形成されたデバイス・グループ1に参加してよい。
【0062】
デバイスがデバイス・グループから出るか、またはデバイス・グループに新たに参加するたびに、個別のデバイスの役割が再調整されてよい。
【0063】
図9は、特定の実施形態に記載された、デバイス・グループ900内のデバイスに関する、報酬を伴う機能提供の例900を示している。この例では、車両Aのデバイスが、移動中の車列の先導車両を管理サーバ900に対して要求する。管理サーバ900は、先導することができる車両の接近推定時間を車両Aに通知してよい。また、管理サーバ900は、要求の車両Bをデバイスに通知してよい。車両Bは、車両Aのデバイスによって行われた要求に従って、車両Bのデバイスが車両Aのデバイスと一緒に参加する位置に迂回する。
【0064】
車両Bのデバイスが車両Aのデバイスと一緒に参加した後に、車列内の車両Aおよび車両Bが移動している間に、車両Bのデバイスがデータを車両Aのデバイスに提供する。
【0065】
この例では、車両Aは(例えば、自動運転機能に伴う問題に起因して)高速で走行することができない。また、この例では、車両Bは、自動運転機能に加えて、他の車両を先導する機能を有する高速な車両である。この例では、車両Aは、車両Bを含むデバイス・グループを形成する。
【0066】
特定の実施形態では、報酬が車両Bに与えられてよい。 例えば、迂回して先導することに対する対価として、通行料金の割引、自動車税の削減などが車両Bに提供されてよい。
【0067】
加えて、専用の先導車両が公共サービス(例えば、ペースメーカー車両)として常に走らされてよい。
【0068】
図10は、特定の実施形態に記載された機能最適化の例1000を示している。特定の実施形態では、デバイス・グループ全体の機能を最適化するように、個別のデバイスの構成およびレイアウトが動的に決定される。
【0069】
実施形態は、通信して協力し、特定の構成を形成する車両のデバイスと共に移動する効果的な車列を提供する。高い性能を有する先導車両が、車列の先頭に配置される。低い性能を有する後続車両が、中間の位置に配置される。途中で去るようにスケジュールされた車両が、追い越し車線に配置される。さらに、車両のデバイスがデバイス・グループから出るか、またはデバイス・グループに新たに参加するたびに、構成およびレイアウトが動的に変更されてよい。
【0070】
実施形態は、車両のデバイスが通信して協力し、省エネルギーの構成を形成することによって、省エネルギーも可能にする。車両の形状を考慮して、小さい空気抵抗を有する車両の配置形状が選択される。例えば、風除けの役割を果たす目的で、より背の高い車両が先導車両として配置される。不利益を被る車両には、対価が与えられてよい(例えば、先導車両は風除けとして使用される)。
【0071】
図11は、特定の実施形態に記載された交換機能の動作をフローチャートで示している。ブロック1100で制御が開始し、各デバイス150a...150nが、他の各デバイス150a...150nに、提供される機能のリストおよび望まれる機能のリストを送信する。ブロック1102で、各デバイス150a...150nが、他の各デバイス150a...150nから機能のリストを受信し、各リストを格納する。特定の実施形態では、デバイス150a...150nの各々が、機能のリストを管理サーバ100に送信し、管理サーバ100が、機能のリストを他のデバイス150a...150nの各々に配布する。
【0072】
図12は、特定の実施形態に記載された、デバイス・グループを作成するための動作をフローチャートで示している。2つのデバイス150a...150nがデバイス・グループを形成した後に、処理は、デバイス150a...150nまたは他のデバイス・グループを、作成されたデバイス・グループにさらに追加し続けてよい。ブロック1200で制御が開始し、送信者デバイス150a...150nが個別機能使用スコアを生成する。ブロック1202で、送信者デバイス150a...150nが、個別機能使用スコアが第1のデバイスしきい値を超えているかどうかを判定する。超えている場合、処理がブロック1204に進み、超えていない場合、処理が完了する。
【0073】
ブロック1204で、送信者デバイス150a...150nが、デバイス・グループを形成するための要求を受信者デバイス150a...150nに送信する。受信者デバイス150a...150nは、受信者デバイス150a...150nが提供できる機能、および送信者デバイス150a...150nが使用することを望む機能に基づいて選択されてよい。ブロック1206で、受信者デバイス150a...150nが要求を受信する。ブロック1208で、受信者デバイス150a...150nが個別機能使用スコアを生成する。
【0074】
ブロック1210で、受信者デバイス150a...150nが、個別機能使用スコアが第2のデバイスしきい値を超えているかどうかを判定する。超えている場合、処理がブロック1212に進み、超えていない場合、処理がブロック1216に進む。特定の実施形態では、デバイスしきい値はデバイスに固有であってよい。特定の実施形態では、第1のデバイスしきい値および第2のデバイスしきい値が同じ値であり、他の実施形態では、第1のデバイスしきい値および第2のデバイスしきい値が異なる値である。
【0075】
ブロック1212で、受信者デバイス150a...150nが、デバイス・グループの作成を承認する応答を送信する。ブロック1214で、送信デバイス150a...150nおよび受信者デバイス150a...150nを含むデバイス・グループが作成され、送信デバイス150a...150nおよび受信者デバイス150a...150nは、機能および機能によって生成されたデータを共有する。
【0076】
ブロック1216で、受信者デバイス150a...150nが、デバイス・グループの作成を拒否する応答を送信し、デバイス・グループが作成されない。
【0077】
特定の実施形態では、送信者デバイス150a...150nが、要求を管理サーバ100に送信し、管理サーバ100が、要求を受信者デバイス150a...150nに転送する。特定の実施形態では、受信者デバイス150a...150nが、応答を管理サーバ100に送信し、管理サーバ100が、応答を送信者デバイス150a...150nに転送する。
【0078】
図13は、特定の実施形態に記載された、デバイス・グループから出るための動作をフローチャートで示している。ブロック1300で制御が開始し、デバイス・グループ内のデバイス150a...150nが個別機能使用スコアを決定する。この決定は定期的に実行されてよい。ブロック1302で、デバイス150a...150nが、個別機能使用スコアがデバイスしきい値を超えているかどうかを判定する。超えている場合、処理がブロック1304に進み、超えていない場合、処理がブロック1306に進む。
【0079】
ブロック1304で、デバイス150a...150nが、デバイス・グループにとどまることを決定する。ブロック1306で、デバイス150a...150nがデバイス・グループから出る。
【0080】
図14は、特定の実施形態に記載された、既存のデバイス・グループに参加するための動作をフローチャートで示している。ブロック1400で制御が開始し、デバイス・グループに参加することを検討しているデバイス150a...150nが、個別機能使用スコアを決定する。ブロック1402で、デバイス150a...150nが、個別機能使用スコアがデバイスしきい値を超えているかどうかを判定する。超えている場合、処理がブロック1404に進み、超えていない場合、処理がブロック1406に進む。
【0081】
ブロック1404で、デバイス150a...150nがデバイス・グループに参加する。ブロック1406で、デバイス150a...150nがデバイス・グループに参加しないことを決定する。
【0082】
図15は、特定の実施形態に記載された、デバイス150a...150nの構成を決定するための動作をフローチャートで示している。ブロック1500で制御が開始し、デバイス150a...150nまたは管理サーバ100のいずれかが、デバイス150a...150nの構成を識別する。ブロック1502で、デバイス150a...150nまたは管理サーバ100のいずれかが構成をデバイス150a...150nに伝達し、デバイス150a...150nが移動して構成を形成する。
【0083】
デバイス・グループを形成するデバイス150a...150nは、接続された車両または自動運転車両であってよい。デバイス・グループを形成するデバイス150a...150nは、ドローンまたはその他の移動する実体であってよい。
【0084】
特定の実施形態では、実施形態が、エッジ・コンピューティング(ネットワークのエッジの近くでのデータの処理を含む)、フォグ・コンピューティング(エッジ・デバイスを使用して計算、格納、および通信を実行する)、または浸透コンピューティング(ネットワーク・エッジでのIoTサービスおよびアプリケーションの効率的実行を支援する)に適用可能である。
【0085】
特定の実施形態は、複数のモバイル・デバイス150a...150nによって、複数のモバイル・デバイス150a...150nが他のデバイス150a...150nに提供し得る機能、および他のデバイス150a...150nによって提供されることが望ましい機能を通信ユニットを介して交換することによって、デバイス・グループを作成することを対象にする。個々のモバイル・デバイス150a...150nは、(例えば、周辺環境に関するデータを取得することにおける変化のために)別のデバイス150a...150nによって個別のモバイル・デバイス150a...150nに特定の機能が提供された場合、および個別のモバイル・デバイス150a...150nが特定の機能を別のデバイス150a...150nに提供する場合に、(エネルギー、時間、または報酬に基づいて)個別機能使用スコアを計算する。デバイス150a...150nは、個別機能使用スコアに基づいて、隣接するデバイス150a...150nによって提供されている特定の機能からの利益が大きいと判定された場合、デバイス・グループを生成するための要求を隣接するデバイス150a...150nに送信してよい。隣接するデバイス150a...150nが、それ自身の個別機能使用スコアに基づいてデバイス・グループへの参加の利益が大きいと判定した場合、隣接するデバイス150a...150nは、デバイス・グループの生成を承認する応答を返送してよい。
【0086】
特定の実施形態では、作成されたデバイス・グループに対して、1つの仮想デバイスとして集合的機能使用スコアが計算される。
【0087】
デバイス・グループ内の個々のデバイス150a...150nは、特定の間隔で個別機能使用スコアを再計算してよく、個別機能使用スコアがデバイスしきい値を下回ることに基づいて、デバイス・グループから出てよい。
【0088】
さらに、デバイス150a...150nは、管理サーバ100と通信し、デバイス・グループに参加し得る接近している車両の候補デバイス150a...150nに関する情報などの、他のデバイス150a...150nに関する情報を受信してよい。
【0089】
図16は、特定の実施形態に従って、コンピューティング環境1610を示している。特定の実施形態では、コンピューティング環境はクラウド・コンピューティング環境である。
図16を参照すると、コンピュータ・ノード1612は、適切なコンピューティング・ノードの一例に過ぎず、本明細書に記載された本発明の実施形態の使用または機能の範囲に関して、いかなる制限を示唆することも意図されていない。いずれにせよ、コンピュータ・ノード1612は、前述した機能のいずれかを実装すること、または実行すること、あるいはその両方を行うことができる。
【0090】
コンピュータ・ノード1612は、他の多数の汎用または専用のコンピューティング・システム環境または構成で運用できるコンピュータ・システムであってよい。コンピュータ・ノード1612での使用に適した周知のコンピューティング・システム、環境、または構成、あるいはそれらの組み合わせの例としては、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マイクロプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、マイクロコンピュータ・システム、メインフレーム・コンピュータ・システム、およびこれらの任意のシステムまたはデバイスを含む分散クラウド・コンピューティング環境などが挙げられるが、これらに限定されない。
【0091】
コンピュータ・ノード1612は、コンピュータ・システムによって実行されているプログラム・モジュールなどの、コンピュータ・システムによって実行可能な命令との一般的な関連において説明されてよい。通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含んでよい。コンピュータ・ノード1612は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散クラウド・コンピューティング環境内で実践されてよい。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよびリモートの両方のコンピュータ・システム・ストレージ媒体に配置されてよい。
【0092】
図16に示されているように、コンピュータ・ノード1612は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・ノード1612のコンポーネントは、1つまたは複数のプロセッサまたはプロセッシング・ユニット1616、システム・メモリ1628、およびシステム・メモリ1628を含むさまざまなシステム・コンポーネントを1つまたは複数のプロセッサまたはプロセッシング・ユニット1616に結合するバス1618を含むことができるが、これらに限定されない。
【0093】
バス1618は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィックス・ポート、および任意のさまざまなバス・アーキテクチャを使用するプロセッサまたはローカル・バスを含む、任意の複数の種類のバス構造のうちの1つまたは複数を表す。例として、そのようなアーキテクチャは、ISA(Industry Standard Architecture)バス、MCA(MicroChannel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカル・バス、およびPCI(Peripheral Component Interconnects)バスを含むが、これらに限定されない。
【0094】
コンピュータ・ノード1612は、通常、さまざまなコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・ノード1612によってアクセスできる任意の使用可能な媒体であってよく、揮発性および不揮発性媒体、取り外し可能および取り外し不可の媒体を含む。
【0095】
システム・メモリ1628は、ランダム・アクセス・メモリ(RAM:randomaccess memory)1630またはキャッシュ・メモリ1632あるいはその両方などの、揮発性メモリの形態でのコンピュータ・システム可読媒体を含むことができる。コンピュータ・ノード1612は、その他の取り外し可能/取り外し不可、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含んでよい。単に例として、取り外し不可、不揮発性の磁気媒体(図示されておらず、通常は「ハード・ドライブ」と呼ばれる)に対する読み取りと書き込みを行うために、ストレージ・システム1634を提供することができる。図示されていないが、取り外し可能、不揮発性の磁気ディスク(例えば、「フロッピー(R)・ディスク」)に対する読み取りと書き込みを行うための磁気ディスク・ドライブ、およびCD-ROM、DVD-ROM、またはその他の光媒体などの取り外し可能、不揮発性の光ディスクに対する読み取りと書き込みを行うための光ディスク・ドライブを提供することができる。そのような例では、それぞれを、1つまたは複数のデータ媒体インターフェイスによってバス1618に接続することができる。下で詳細に示され、説明されているように、システム・メモリ1628は、本発明の実施形態の機能を実行するように構成された一連の(例えば、少なくとも1つの)プログラム・モジュールを備える少なくとも1つのプログラム製品を含んでよい。
【0096】
例えば、一連の(少なくとも1つの)プログラム・モジュール1642を含むプログラム/ユーティリティ1640がシステム・メモリ1628に格納されるが、これに限定されず、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データも格納されてよい。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データ、またはこれらの組み合わせの各々は、ネットワーク環境の実装を含んでよい。プログラム・モジュール1642は、通常、本明細書に記載された本発明の実施形態の機能または方法あるいはその両方を実行する。
【0097】
また、コンピュータ・ノード1612は、キーボード、ポインティング・デバイス、ディスプレイ1624などの1つまたは複数の外部デバイス1614、ユーザがコンピュータ・ノード1612と情報をやりとりできるようにする1つまたは複数のデバイス、またはコンピュータ・ノード1612が1つまたは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス(例えば、ネットワーク・カード、モデムなど)、あるいはそれらの組み合わせと通信してもよい。そのような通信は、入出力(I/O:Input/Output)インターフェイス1622を介して行うことができる。さらに、コンピュータ・ノード1612は、ローカル・エリア・ネットワーク(LAN:local area network)、一般的な広域ネットワーク(WAN:widearea network)、またはパブリック・ネットワーク(例えば、インターネット)、あるいはそれらの組み合わせなどの1つまたは複数のネットワークと、ネットワーク・アダプタ1620を介して通信することができる。図に示されているように、ネットワーク・アダプタ1620は、バス1618を介してコンピュータ・ノード1612の他のコンポーネントと通信する。図示されていないが、その他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方を、コンピュータ・ノード1612と併用できることが理解されるべきである。その例として、マイクロコード、デバイス・ドライバ、冗長プロセッシング・ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが挙げられるが、これらに限定されない。
【0098】
特定の実施形態では、管理サーバ100または各デバイス150a...150nあるいはその両方が、コンピュータ・ノード1612のアーキテクチャを有している。特定の実施形態では、管理サーバ100または各デバイス150a...150nあるいはその両方が、クラウド・インフラストラクチャの一部である。特定の代替の実施形態では、管理サーバ100または各デバイス150a...150nあるいはその両方が、クラウド・インフラストラクチャの一部ではない。
【0099】
クラウドの実施形態
本開示にはクラウド・コンピューティングに関する詳細な説明が含まれているが、本明細書において示された教示の実装は、クラウド・コンピューティング環境に限定されないと理解されるべきである。むしろ本発明の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
【0100】
クラウド・コンピューティングは、構成可能な計算リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含んでよい。
【0101】
特徴は、次のとおりである。
オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間、ネットワーク・ストレージなどの計算能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
幅広いネットワーク・アクセス:クラウドの能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する。
リソース・プール:プロバイダの計算リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。種々の物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。場所に依存しない感覚があり、利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベルでは、場所(例えば、国、州、またはデータセンター)を指定できる場合がある。
迅速な順応性:クラウドの能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、任意の量をいつでも無制限に購入できるように見える。
測定されるサービス:クラウド・システムは、計測機能を活用することによって、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザのアカウント)に適した抽象レベルで、リソースの使用を自動的に制御および最適化する。リソースの使用量は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
【0102】
サービス・モデルは、次のとおりである。
SaaS(Software as a Service):利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
PaaS(Platform as a Service):利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャにデプロイすることである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、デプロイされたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御することができる。
IaaS(Infrastructure as a Service):利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的な計算リソースのプロビジョニングであり、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをデプロイして実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、およびデプロイされたアプリケーションを制御することができ、場合によっては、選択されたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御できる。
【0103】
デプロイメント・モデルは、次のとおりである。
プライベート・クラウド:このクラウド・インフラストラクチャは、ある組織のためにのみ運用される。この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト)によって固有の実体を残したまま互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
【0104】
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを含んでいるインフラストラクチャである。
【0105】
ここで
図17を参照すると、例示的なクラウド・コンピューティング環境1720が示されている。図示されているように、クラウド・コンピューティング環境1720は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス、例えば、PDA(personal digital assistant)または携帯電話1754A、デスクトップ・コンピュータ1754B、ラップトップ・コンピュータ1754C、または自動車コンピュータ・システム1754N、あるいはそれらの組み合わせなどが通信し得る1つまたは複数のクラウド・コンピューティング・ノード1710を含む。ノード1710は、互いに通信してよい。ノード1710は、1つまたは複数のネットワーク内で、本明細書において前述されたプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組み合わせなどに、物理的または仮想的にグループ化され得る(図示されていない)。これによって、クラウド・コンピューティング環境1720は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはSaaS、あるいはそれらの組み合わせを提供できる。
図17に示されたコンピューティング・デバイス1754A~Nの種類は、例示のみが意図されており、コンピューティング・ノード1710およびクラウド・コンピューティング環境1720は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続(例えば、Webブラウザを使用した接続)あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信することができると理解される。
【0106】
ここで
図18を参照すると、クラウド・コンピューティング環境1720(
図17)によって提供される機能的抽象レイヤのセットが示されている。
図18に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないことが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
【0107】
ハードウェアおよびソフトウェア・レイヤ1860は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム1861、RISC(Reduced Instruction Set Computer)アーキテクチャベースのサーバ1862、サーバ1863、ブレード・サーバ1864、ストレージ・デバイス1865、ならびにネットワークおよびネットワーク・コンポーネント1866が挙げられる。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア1867およびデータベース・ソフトウェア1868を含む。
【0108】
仮想化レイヤ1870は、仮想サーバ1871、仮想ストレージ1872、仮想プライベート・ネットワークを含む仮想ネットワーク1873、仮想アプリケーションおよびオペレーティング・システム1874、ならびに仮想クライアント1875などの仮想的実体を提供できる抽象レイヤを備える。
【0109】
一例を挙げると、管理レイヤ1880は、以下で説明される機能を提供することができる。リソース・プロビジョニング1881は、クラウド・コンピューティング環境内でタスクを実行するために利用される計算リソースおよびその他のリソースの動的調達を行う。計測および価格設定1882は、クラウド・コンピューティング環境内でリソースが利用された際のコスト追跡、およびそれらのリソースの利用に対する請求書の作成と送付を行う。一例を挙げると、それらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクのID検証を行うとともに、データおよびその他のリソースの保護を行う。ユーザ・ポータル1883は、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理1884は、必要なサービス・レベルを満たすように、クラウドの計算リソースの割り当てと管理を行う。サービス水準合意(SLA:Service Level Agreement)計画および実行1885は、今後の要求が予想されるクラウドの計算リソースの事前準備および調達を、SLAに従って行う。
【0110】
ワークロード・レイヤ1890は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供されるワークロードおよび機能の例としては、マッピングおよびナビゲーション1891、ソフトウェア開発およびライフサイクル管理1892、仮想クラスルーム教育の配信1893、データ解析処理1894、トランザクション処理1895、および協調的コンピューティングのための一時的デバイス・グループの編成1896が挙げられる。
【0111】
したがって特定の実施形態では、協調的コンピューティングのための一時的デバイス・グループの編成を実装するソフトウェアまたはプログラムが、本明細書に記載された実施形態に従って、クラウド環境内のサービスとして提供される。
【0112】
追加の実施形態の詳細
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含むコンピュータ可読ストレージ媒体を含んでよい。
【0113】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー(R)・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-onlymemory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasableprogrammable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【0114】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはそれらの組み合わせを介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0115】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータを、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続を、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行うことができる。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールドプログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【0116】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装されることが理解されるであろう。
【0117】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施する手段を作り出すべく、コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を含むように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはそれらの組み合わせに特定の方式で機能するように指示できるものであってもよい。
【0118】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【0119】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能によって、1つのステップとして同時に実行されるか、時間的に部分的または完全に重複する方法で実質的に同時に実行されるか、あるいは場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を行うか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装されることができることにも注意する。
【0120】
用語「実施形態(an embodiment)」、「実施形態(embodiment)」、「実施形態(embodiments)」、「実施形態(the embodiment)」、「実施形態(the embodiments)」、「1つまたは複数の実施形態」、「一部の実施形態」、および「1つの実施形態」は、特に明示的に指定されない限り、「本発明の1つまたは複数の(ただし、すべてではない)実施形態」を意味する。
【0121】
用語「含んでいる」、「備えている」、「有している」、およびこれらの変形は、特に明示的に指定されない限り、「含んでいるが、これに限定されない」ことを意味する。
【0122】
項目の列挙されたリストは、特に明示的に指定されない限り、項目のいずれかまたはすべてが相互に排他的であることを意味しない。
【0123】
用語「a」、「an」、および「the」は、特に明示的に指定されない限り、「1つまたは複数」を意味する。
【0124】
互いに通信するデバイスは、特に明示的に指定されない限り、継続的に互いに通信する必要はない。加えて、互いに通信するデバイスは、直接的に、または1つまたは複数の仲介を介して間接的に通信してよい。
【0125】
互いに通信する複数のコンポーネントを含む実施形態の説明は、そのようなすべてのコンポーネントが必要とされることを意味しない。反対に、本発明の多種多様な可能性のある実施形態を例示するために、さまざまな任意選択的コンポーネントが説明される。
【0126】
本明細書において単一のデバイスまたは品目が説明される場合、単一のデバイス/品目の代わりに2つ以上のデバイス/品目が(協力しているかどうかに関わりなく)使用されることが容易に明らかであろう。同様に、本明細書において2つ以上のデバイスまたは品目が(協力しているかどうかに関わりなく)説明される場合、2つ以上のデバイスまたは品目の代わりに単一のデバイス/品目が使用されてよく、あるいは示された数のデバイスまたはプログラムの代わりに、異なる数のデバイス/品目が使用されることが容易に明らかであろう。デバイスの機能または特徴あるいはその両方が、代替として、そのような機能/特徴を有していると明示的に説明されない1つまたは複数の他のデバイスによって具現化されてよい。したがって、本発明の他の実施形態は、デバイス自体を含む必要がない。
【0127】
本発明のさまざまな実施形態に関する前述の説明は、例示および説明の目的で提供されている。これらの説明が本発明をカバーすること、または開示された厳密な形態に制限することは意図されていない。上記の内容を踏まえて、多くの変更および変形が可能である。本発明の範囲が、この「発明を実施するための形態」によってではなく、本明細書に添付された「特許請求の範囲」によって制限されることが意図される。上記の仕様、実施例、およびデータは、本発明の構成の製造および使用の完全な説明を提供する。本発明の趣旨および範囲から逸脱することなく本発明の多くの実施形態が作られることができるため、本発明の実施形態は、本明細書において後で添付される特許請求の範囲に存在する。
【0128】
前述の説明は、本発明の実施形態の実施例を提供し、他の実施形態において変形および置換が行われてよい。