(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-20
(45)【発行日】2022-12-28
(54)【発明の名称】モノのインターネット(IoT)ネットワーク内で接続された複数のリソースを最適化するための方法、コンピュータ・システムおよびプログラム
(51)【国際特許分類】
H04L 41/0897 20220101AFI20221221BHJP
H04L 41/082 20220101ALI20221221BHJP
G06F 9/50 20060101ALI20221221BHJP
【FI】
H04L41/0897
H04L41/082
G06F9/50 120A
G06F9/50 150Z
(21)【出願番号】P 2020558946
(86)(22)【出願日】2019-04-17
(86)【国際出願番号】 IB2019053190
(87)【国際公開番号】W WO2019211690
(87)【国際公開日】2019-11-07
【審査請求日】2021-08-30
(32)【優先日】2018-05-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521555742
【氏名又は名称】キンドリル・インク
【氏名又は名称原語表記】Kyndryl Inc.
【住所又は居所原語表記】One Vanderbilt Avenue,15th Floor,New York,New York 10017,USA
(74)【代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】モロイ、クリストファー
(72)【発明者】
【氏名】ミリガン、ロバート
(72)【発明者】
【氏名】グリーンリー、ゴーダン
(72)【発明者】
【氏名】ウェイト、スティーブン
【審査官】羽岡 さやか
(56)【参考文献】
【文献】特開2017-219930(JP,A)
【文献】国際公開第2018/020306(WO,A1)
【文献】特表2013-517544(JP,A)
【文献】特開2011-090594(JP,A)
【文献】特開2016-219943(JP,A)
【文献】村山 和宏 KAZUHIRO MURAYAMA,分散リアルタイムシステムに向けた動的リソース管理ミドルウェアの設計 Design of dynamic resource management middleware for distributed real-time systems,情報処理学会研究報告 Vol.2006 No.26 IPSJ SIG Technical Reports,日本,社団法人情報処理学会 Information Processing Society of Japan,2006年03月17日,第2006巻,P.257-262
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-69/40
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
モノのインターネット(IoT)ネットワーク内で接続された複数のリソースを最適化するための方法であって、
前記IoTネットワーク内で接続された前記複数のリソースのうちの第1のリソースの使用状況および第2のリソースの使用状況を追跡することであって、前記第1のリソースの前記使用状況が、第1の作業および前記第1の作業が実行される時間を含んでおり、前記第2のリソースの前記使用状況が、第2の作業および前記第2の作業が実行される時間を含んでいる、前記追跡することと、
前記第1のリソースの前記追跡された使用状況に基づいて、予想される時間での予想される第1の作業を識別し、前記第2のリソースの前記追跡された使用状況に基づいて、前記第2のリソースで、実質的に同じ予想される時間での予想される能力を識別することと、
前記予想される時間の間、前記予想される第1の作業を前記第2のリソースに移動することによって、前記第1のリソースで余剰能力を生み出すことと、
前記予想される時間での前記第1のリソースの前記余剰能力を、一定距離を置いた関係者によって使用することに指定することと、
前記一定距離を置いた関係者からの負荷を前記第1のリソースの前記余剰能力に割り当てることとを
含み、
前記第1のリソースおよび前記第2のリソースがそれぞれ、前記IoTネットワークに接続された2つの別々のデバイスのコンポーネントであり、前記第1および第2のリソースが、両方ともストレージ・リソースおよび処理リソースから成る群から選択される、方法。
【請求項2】
前記方法が、
前記第1のリソースおよび前記第2のリソースごとにリソース使用状況プロファイルを生成することと、
ある期間に対して、前記第1の作業および前記第1の作業が実行される前記時間、ならびに前記第2の作業および前記第2の作業が実行される前記時間をマッピングすることと、
前記マッピングに基づいて、前記予想される第1の作業および前記予想される能力を予測することとをさらに含んでいる、請求項1に記載の方法。
【請求項3】
前記方法が、
前記第1または第2のリソースの前記使用状況プロファイルで、既定のしきい値の範囲外の変化を検出することと、
前記変化に応答して、前記第1または第2のリソースを無効にすることと、
前記変化に応答して、通知を生成することとをさらに含んでいる、請求項2に記載の方法。
【請求項4】
前記方法が、前記第1の作業および前記第1の作業が実行される前記時間の前記マッピング、または前記第2の作業および前記第2の作業が実行される前記時間の前記マッピングに基づいて、前記期間の間に第3のリソースによって実行するために、作業をスケジューリングすることをさらに含んでいる、請求項2または3に記載の方法。
【請求項5】
前記方法が、
前記IoTネットワーク内で接続された1つまたは複数のデバイスによって生成されたデータの分類を状況から識別することと、
前記分類に基づいて、前記生成されたデータにおける前記一定距離を置いた関係者の関心を決定することと、
許可に応答して、前記生成されたデータをパッケージとして前記一定距離を置いた関係者に提供することと、
前記生成されたデータを前記一定距離を置いた関係者に提供することとをさらに含んでいる、請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記方法が、
前記第1のリソースと前記一定距離を置いた関係者との間のVPN接続を確立することと、
前記一定距離を置いた関係者によって、前記第1のリソースの使用状況を監視することと、
前記一定距離を置いた関係者から、前記第1のリソースの前記監視された使用に対する補償を受け取ることとをさらに含んでいる、請求項1~5のいずれか1項に記載の方法。
【請求項7】
モノのインターネット(IoT)ネットワーク内で接続された複数のリソースを最適化するためのコンピュータ・システムであって、前記コンピュータ・システムが、
プログラム命令を含んでいる記憶媒体と、
前記記憶媒体に結合されたバスと、
前記プログラム命令を実行するために、前記バスを介してIoTリソース最適化エンジンに結合されたプロセッサとを備えており、前記プロセッサが、前記プログラム命令を実行した場合に、前記システムに、
前記IoTネットワーク内で接続された前記複数のリソースのうちの第1のリソースの使用状況および第2のリソースの使用状況を追跡することであって、前記第1のリソースの前記使用状況が、第1の作業および前記第1の作業が実行される時間を含んでおり、前記第2のリソースの前記使用状況が、第2の作業および前記第2の作業が実行される時間を含んでいる、前記追跡することと、
前記第1のリソースの前記追跡された使用状況に基づいて、予想される時間での予想される第1の作業を識別し、前記第2のリソースの前記追跡された使用状況に基づいて、前記第2のリソースで、実質的に同じ予想される時間での予想される能力を識別することと、
前記予想される時間の間、前記予想される第1の作業を前記第2のリソースに移動することによって、前記第1のリソースで余剰能力を生み出すことと、
前記予想される時間での前記第1のリソースの前記余剰能力を、一定距離を置いた関係者によって使用することに指定することと、
前記一定距離を置いた関係者からの負荷を前記第1のリソースの前記余剰能力に割り当てることとを実行さ
せ、
前記第1のリソースおよび前記第2のリソースがそれぞれ、前記IoTネットワークに接続された2つの別々のデバイスのコンポーネントであり、前記第1および第2のリソースが、両方ともストレージ・リソースおよび処理リソースから成る群から選択される、コンピュータ・システム。
【請求項8】
モノのインターネット(IoT)ネットワーク内で接続された複数のリソースを最適化するためのコンピュータ・システムが実行するプログラムであって、前記プログラムは前記コンピュータ・システムに、
前記IoTネットワーク内で接続された前記複数のリソースのうちの第1のリソースの使用状況および第2のリソースの使用状況を追跡することであって、前記第1のリソースの前記使用状況が、第1の作業および前記第1の作業が実行される時間を含んでおり、前記第2のリソースの前記使用状況が、第2の作業および前記第2の作業が実行される時間を含んでいる、前記追跡することと、
前記第1のリソースの前記追跡された使用状況に基づいて、予想される時間での予想される第1の作業を識別し、前記第2のリソースの前記追跡された使用状況に基づいて、前記第2のリソースで、実質的に同じ予想される時間での予想される能力を識別することと、
前記予想される時間の間、前記予想される第1の作業を前記第2のリソースに移動することによって、前記第1のリソースで余剰能力を生み出すことと、
前記予想される時間での前記第1のリソースの前記余剰能力を、一定距離を置いた関係者によって使用することに指定することと、
前記一定距離を置いた関係者からの負荷を前記第1のリソースの前記余剰能力に割り当てることとを実行さ
せ、
含み、
前記第1のリソースおよび前記第2のリソースがそれぞれ、前記IoTネットワークに接続された2つの別々のデバイスのコンポーネントであり、前記第1および第2のリソースが、両方ともストレージ・リソースおよび処理リソースから成る群から選択される、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モノのインターネット環境内の複数のデバイス間でリソースの使用状況を最適化することに関連している。
【背景技術】
【0002】
モノのインターネット(IoT:Internet of Things)ネットワーク内で接続されたスマート・デバイスおよびその他のデバイスが、ますます住宅内に設置されるようになってきている。これらのデバイスによって形成されたIoTネットワークは、通常、ソフトウェアを含む物理的電子デバイスを結合し、これらのデバイスが、それら自身の間でデータの交換のための連結ネットワークを形成できるようにする、ネットワークである。各IoTデバイスは、分離したコンピューティング・システムとして認識され得るが、IoTネットワークのインフラストラクチャ内で動作することもできる。一部のIoTデバイスは、例えば、物理的世界内で監視するためのセンサまたは作業を実行するためのアクチュエータを含むこともある。さらに具体的には、IoTにおける「モノ」という用語は、「スマート」サーモスタットから複雑な生物学的監視装置にわたる、多種多様なデバイスのいずれかを指すことができる。IoTデバイスおよびそれらから形成されたIoTネットワークは、モノの中でも特に、コンピュータ・システムを物理的世界に統合する、ハードウェア、ソフトウェア、データ生成、およびサービス実行の組合せを提供することができる。これによって、従来人間の介入を必要としていた領域内で人間の介入を最小限に抑えることを可能にし、加えて、IoT環境内の1つまたは複数のデバイスの制御下でシステムの効率および精度の向上を可能にすることができる。
【発明の概要】
【課題を解決するための手段】
【0003】
本明細書において提示される方法は、モノのインターネット(IoT)ネットワーク内で接続された複数のリソースの最適化を可能にする。さらに具体的には、IoTネットワーク内で接続された複数のリソースのうちの第1および第2のリソースの使用状況が追跡される。この使用状況は、2つのリソースの各々に関する作業および作業が実行される時間を含む。第1のリソースの追跡された使用状況に基づいて、予想される時間での予想される作業が識別される。第2のリソースの追跡された使用状況に基づいて、第2のリソースで、実質的に同じ予想される時間での予想される能力も識別される。予想される時間の間、予想される第1の作業を第2のリソースに移動することによって、第1のリソースで余剰能力が生み出される。この余剰能力は、一定距離を置いた関係者によって使用されることに指定される。その後、一定距離を置いた関係者からの負荷が余剰能力に割り当てられる。
【0004】
本発明の1つの態様は、モノのインターネット(IoT)ネットワーク内で接続された複数のリソースを最適化するための方法を含んでおり、この方法は、IoTネットワーク内で接続された複数のリソースのうちの第1のリソースの使用状況および第2のリソースの使用状況を追跡することであって、第1のリソースの使用状況が第1の作業および第1の作業が実行される時間を含み、第2のリソースの使用状況が第2の作業および第2の作業が実行される時間を含む、追跡することと、第1のリソースの追跡された使用状況に基づいて、予想される時間での予想される第1の作業を識別し、第2のリソースの追跡された使用状況に基づいて、第2のリソースで、実質的に同じ予想される時間での予想される能力を識別することと、予想される時間の間、予想される第1の作業を第2のリソースに移動することによって、第1のリソースで余剰能力を生み出すことと、予想される時間での第1のリソースの余剰能力を、一定距離を置いた関係者によって使用することに指定することと、一定距離を置いた関係者からの負荷を第1のリソースの余剰能力に割り当てることとを含む。
【0005】
本発明の別の態様は、モノのインターネット(IoT)ネットワーク内で接続された複数のリソースを最適化するためのコンピュータ・システムを含んでおり、このコンピュータ・システムは、プログラム命令を含んでいる記憶媒体と、記憶媒体に結合されたバスと、バスを介してIoTリソース最適化エンジンに結合された、プログラム命令を実行するためのプロセッサとを備えており、このプロセッサは、プログラム命令を実行しているときに、システムに、IoTネットワーク内で接続された複数のリソースのうちの第1のリソースの使用状況および第2のリソースの使用状況を追跡することであって、第1のリソースの使用状況が第1の作業および第1の作業が実行される時間を含み、第2のリソースの使用状況が第2の作業および第2の作業が実行される時間を含む、追跡することと、第1のリソースの追跡された使用状況に基づいて、予想される時間での予想される第1の作業を識別し、第2のリソースの追跡された使用状況に基づいて、第2のリソースで、実質的に同じ予想される時間での予想される能力を識別することと、予想される時間の間、予想される第1の作業を第2のリソースに移動することによって、第1のリソースで余剰能力を生み出すことと、予想される時間での第1のリソースの余剰能力を、一定距離を置いた関係者によって使用することに指定することと、一定距離を置いた関係者からの負荷を第1のリソースの余剰能力に割り当てることとを実行させる。
【0006】
本発明のさらに別の態様は、モノのインターネット(IoT)ネットワーク内で接続された複数のリソースを最適化するためのコンピュータ・プログラム製品を含んでおり、このコンピュータ・プログラム製品は、コンピュータ可読ハードウェア・ストレージ・デバイスと、コンピュータ可読ハードウェア・ストレージ・デバイスに格納されたプログラム命令とを備えており、これらのプログラム命令は、IoTネットワーク内で接続された複数のリソースのうちの第1のリソースの使用状況および第2のリソースの使用状況を追跡することであって、第1のリソースの使用状況が第1の作業および第1の作業が実行される時間を含み、第2のリソースの使用状況が第2の作業および第2の作業が実行される時間を含む、追跡することと、第1のリソースの追跡された使用状況に基づいて、予想される時間での予想される第1の作業を識別し、第2のリソースの追跡された使用状況に基づいて、第2のリソースで、実質的に同じ予想される時間での予想される能力を識別することと、予想される時間の間、予想される第1の作業を第2のリソースに移動することによって、第1のリソースで余剰能力を生み出すことと、予想される時間での第1のリソースの余剰能力を、一定距離を置いた関係者によって使用することに指定することと、一定距離を置いた関係者からの負荷を第1のリソースの余剰能力に割り当てることとを実行する。
【0007】
さらに、本発明のコンポーネントのいずれかは、コンピュータ・システム内で受動監視を実施することを提供するサービス・プロバイダによって、展開、管理、サービス提供などが実行され得る。
【0008】
本発明の実施形態は、関連するシステム、方法、またはプログラム製品、あるいはその組合せも提供する。
【0009】
本発明のこれらおよびその他の特徴は、添付の図面と共に選択された本発明のさまざまな態様に関する以下の詳細な説明から、より容易に理解されるであろう。
【図面の簡単な説明】
【0010】
【
図1】実施形態例に従って本発明が実装されてよいアーキテクチャを示す図である。
【
図2】本発明の実施形態例に従ってクラウド・コンピューティング環境を示す図である。
【
図3】本発明の実施形態例に従って抽象モデル・レイヤを示す図である。
【
図4】実施形態例に従って本明細書において説明されている機能を表すモノのインターネット(IoT)環境およびシステム図を示す図である。
【
図5】実施形態例に従って本発明の例示的な実装を示す図である。
【
図6】実施形態例に従ってIoTネットワーク内で接続された複数のリソースを最適化するためのプロセスのフローチャートを示す図である。
【発明を実施するための形態】
【0011】
図面の縮尺は、必ずしも一定ではない。図面は単なる表現であり、本発明の具体的なパラメータを表すように意図されていない。図面は、本発明の標準的な実施形態のみを示すように意図されており、したがって、範囲を制限していると見なされるべきではない。図面において、類似する番号は類似する要素を表す。
【0012】
本明細書では、実施形態例が示されている添付の図面を参照して、実施形態例についてこれから詳細に説明する。本開示が、多くのさまざまな形態で具体化されてよく、本明細書において示された実施形態例に制限されると解釈されるべきではないということが、理解されるであろう。
【0013】
さらに、本明細書において使用されている用語は、特定の実施形態を説明することのみを目的としており、本開示を制限するように意図されていない。本明細書において使用されるとき、単数形「a」、「an」、および「the」は、文脈で特に明示的に示されない限り、複数形も含むように意図されている。さらに、「a」、「an」などの用語の使用は、数量の制限を意味しておらず、参照されている項目のうちの少なくとも1つの存在を意味している。さらに、異なる図内の同様の要素には、同様の要素番号が割り当てられていることがある。さらに、「備える」もしくは「備えている」またはその両方、あるいは「含む」もしくは「含んでいる」またはその両方の用語は、本特許明細書で使用される場合、記載された特徴、領域、整数、ステップ、動作、要素、またはコンポーネント、あるいはその組合せの存在を示すが、1つまたは複数のその他の特徴、領域、整数、ステップ、動作、要素、コンポーネント、またはこれらのグループ、あるいはその組合せの存在または追加を除外していないということが、理解されるであろう。
【0014】
特に具体的に述べられない限り、「処理する」、「検出する」、「決定する」、「評価する」、「受信する」などの用語は、コンピューティング・システムのレジスタまたはメモリあるいはその両方内の物理量(例えば、電子)として表されたデータを操作するか、またはコンピューティング・システムのメモリ、レジスタ、またはその他のそのような情報の格納デバイス、送信デバイス、もしくは表示デバイス内の物理量として同様に表されたその他のデータに転送するか、あるいはその両方を実行する、コンピュータもしくはコンピューティング・システムまたは同様の電子データ・センター・デバイスの動作またはプロセスあるいはその両方のことを指していると理解されてよい。実施形態は、このような文脈に限定されない。
【0015】
前述したように、本明細書に記載された実施形態は、モノのインターネット(IoT)ネットワーク内で接続された複数のリソースの最適化を提供する。さらに具体的には、IoTネットワーク内で接続された複数のリソースのうちの第1および第2のリソースの使用状況が追跡される。この使用状況は、2つのリソースの各々に関する作業および作業が実行される時間を含む。第1のリソースの追跡された使用状況に基づいて、予想される時間での予想される作業が識別される。第2のリソースの追跡された使用状況に基づいて、第2のリソースで、実質的に同じ予想される時間での予想される能力も識別される。予想される時間の間、予想される第1の作業を第2のリソースに移動することによって、第1のリソースで余剰能力が生み出される。この余剰能力は、一定距離を置いた関係者によって使用されることに指定される。その後、一定距離を置いた関係者からの負荷が余剰能力に割り当てられる。
【0016】
本開示はクラウド・コンピューティングの詳細な説明を含んでいるが、本明細書において示された内容の実装は、クラウド・コンピューティング環境に限定されないということが、あらかじめ理解される。むしろ、本発明の実施形態は、現在既知であるか、または今後開発される任意のその他の種類のコンピューティング環境と組み合わせて実装できる。
【0017】
クラウド・コンピューティングは、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス提供モデルであり、管理上の手間またはサービス・プロバイダとのやりとりを最小限に抑えて、これらのリソースを迅速にプロビジョニングおよび解放することができる。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つのデプロイメント・モデルを含むことができる。
【0018】
特徴は、次のとおりである。
オンデマンドのセルフ・サービス:クラウドの利用者は、サーバの時間、ネットワーク・ストレージなどのコンピューティング能力を一方的に、サービス・プロバイダとの人間的なやりとりを必要とせず、必要に応じて自動的にプロビジョニングすることができる。
幅広いネットワーク・アクセス:クラウドの能力は、ネットワークを経由して利用可能であり、標準的なメカニズムを使用してアクセスできるため、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による利用を促進する。
リソース・プール:プロバイダのコンピューティング・リソースは、プールされ、マルチテナント・モデルを使用して複数の利用者に提供される。さまざまな物理的および仮想的リソースが、要求に従って動的に割り当ておよび再割り当てされる。利用者は通常、提供されるリソースの正確な場所に関して管理することも知ることもないが、さらに高い抽象レベルでは、場所(例えば、国、州、またはデータセンター)を指定できる場合があるという点で、場所に依存しないという感覚がある。
迅速な順応性:クラウドの能力は、迅速かつ柔軟に、場合によっては自動的にプロビジョニングされ、素早くスケールアウトし、迅速に解放されて素早くスケールインすることができる。プロビジョニングに使用できる能力は、利用者には、多くの場合、無制限であるように見え、任意の量をいつでも購入することができる。
測定されるサービス:クラウド・システムは、計測機能を活用して、サービスの種類に適した一部の抽象レベル(例えば、ストレージ、処理、帯域幅、およびアクティブな利用者のアカウント)で、リソースの使用を自動的に制御および最適化する。リソースの使用状況は監視、制御、および報告することができ、利用されるサービスのプロバイダと利用者の両方に透明性が提供される。
【0019】
サービス・モデルは、次のとおりである。
サービスとしてのソフトウェア(SaaS:Software as a Service):利用者に提供される能力は、クラウド・インフラストラクチャ上で稼働しているプロバイダのアプリケーションの利用である。それらのアプリケーションは、Webブラウザ(例えば、Webベースの電子メール)などのシン・クライアント・インターフェイスを介して、さまざまなクライアント・デバイスからアクセスできる。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能でさえも含む基盤になるクラウド・インフラストラクチャを、限定的なユーザ固有のアプリケーション構成設定を行う可能性を除き、管理することも制御することもない。
サービスとしてのプラットフォーム(PaaS:Platform as a Service):利用者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャに展開することである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、展開されたアプリケーション、および場合によってはアプリケーション・ホスティング環境の構成を制御する。
サービスとしてのインフラストラクチャ(IaaS:Infrastructure as a Service):利用者に提供される能力は、処理、ストレージ、ネットワーク、およびその他の基本的なコンピューティング・リソースのプロビジョニングであり、ここで、利用者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアを展開して実行できる。利用者は、基盤になるクラウド・インフラストラクチャを管理することも制御することもないが、オペレーティング・システム、ストレージ、展開されたアプリケーションを制御し、場合によっては、選択されたネットワーク・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御する。
【0020】
デプロイメント・モデルは、次のとおりである。
プライベート・クラウド:このクラウド・インフラストラクチャは、ある組織のためにのみ運用される。このクラウド・インフラストラクチャは、この組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
コミュニティ・クラウド:このクラウド・インフラストラクチャは、複数の組織によって共有され、関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンスに関する考慮事項)を共有している特定のコミュニティをサポートする。このクラウド・インフラストラクチャは、これらの組織またはサード・パーティによって管理することができ、オンプレミスまたはオフプレミスに存在することができる。
パブリック・クラウド:このクラウド・インフラストラクチャは、一般ユーザまたは大規模な業界団体が使用できるようになっており、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、データとアプリケーションの移植を可能にする標準化された技術または独自の技術(例えば、クラウド間の負荷バランスを調整するためのクラウド・バースト)によって固有の実体を残したままだが互いに結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
【0021】
クラウド・コンピューティング環境は、ステートレス、疎結合、モジュール性、および意味的相互運用性に重点を置いたサービス指向の環境である。クラウド・コンピューティングの中心になるのは、相互接続されたノードのネットワークを備えるインフラストラクチャである。
【0022】
ここで
図1を参照すると、IoTネットワーク内で接続された複数のリソースを最適化するためのクラウド・コンピューティング・ノードの例の概略図が示されている。クラウド・コンピューティング・ノード10は、適切なクラウド・コンピューティング・ノードの一例に過ぎず、本明細書に記載された本発明の実施形態の使用または機能の範囲に関して、いかなる制限を示唆することも意図されていない。いずれにせよ、クラウド・コンピューティング・ノード10は、前述した機能のいずれかを実装すること、または実行すること、あるいはその両方を行うことができる。
【0023】
クラウド・コンピューティング・ノード10内には、その他の多数の汎用または専用のコンピューティング・システム環境または構成で運用できるコンピュータ・システム/サーバ12が存在する。コンピュータ・システム/サーバ12と共に使用するのに適する可能性のある周知のコンピューティング・システム、環境、または構成、あるいはその組合せの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベース・システム、セット・トップ・ボックス、プログラマブル・コンシューマ・エレクトロニクス、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、およびこれらの任意のシステムまたはデバイスを含む分散クラウド・コンピューティング環境などを含むが、これらに限定されない。
【0024】
コンピュータ・システム/サーバ12は、コンピュータ・システムによって実行されているプログラム・モジュールなどの、コンピュータ・システムによって実行可能な命令との一般的な関連において説明されてよい。通常、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含んでよい。コンピュータ・システム/サーバ12は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散クラウド・コンピューティング環境内で実践されてよい。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカルおよびリモートの両方のコンピュータ・システム記憶媒体に配置されてよい。
【0025】
さらに、
図1を参照すると、クラウド・コンピューティング・ノード10内のコンピュータ・システム/サーバ12は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム/サーバ12のコンポーネントは、1つまたは複数のプロセッサまたはプロセッシング・ユニット16、システム・メモリ28、およびシステム・メモリ28を含むさまざまなシステム・コンポーネントをプロセッシング・ユニット16に結合するバス18を含んでよいが、これらに限定されない。
【0026】
バス18は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィックス・ポート、および任意のさまざまなバス・アーキテクチャを使用するプロセッサまたはローカル・バスを含む、任意の複数の種類のバス構造のうちの1つまたは複数を表す。例として、そのようなアーキテクチャは、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカル・バス、およびPCI(Peripheral Component Interconnects)バスを含むが、これらに限定されない。
【0027】
プロセッシング・ユニット16は、通常、論理演算、計算タスク、制御機能などを実行する任意の装置のことを指す。プロセッサは、1つまたは複数のサブシステム、コンポーネント、またはその他のプロセッサ、あるいはその組合せを含んでよい。プロセッサは、通常、クロック信号を使用してデータをラッチするか、論理の状態を進めるか、計算および論理演算を同期させるか、またはその他のタイミング機能を提供するか、あるいはその組合せを実行するように動作する、さまざまな論理コンポーネントを含む。動作時に、プロセッシング・ユニット16は、外部デバイス14と入力デバイス(図示されていない)の間の入力および出力を表す信号を収集してルーティングする。これらの信号は、LANまたはWANあるいはその両方(例えば、T1、T3、56kb、X.25)、ブロードバンド接続(ISDN、フレーム・リレー、ATM)、無線リンク(802.11、Bluetooth(登録商標)など)などを経由して送信され得る。一部の実施形態では、これらの信号は、例えば信頼できるキーペア暗号化を使用して暗号化されてよい。異なるシステムが、イーサネット(登録商標)または無線ネットワーク、ダイレクト・シリアルまたはパラレル接続、USB、Firewire(登録商標)、Bluetooth(登録商標)、あるいはその他の独自のインターフェイスなどの、異なる通信経路を使用して情報を送信してよい。(FirewireはApple Computer社の登録商標である。BluetoothはBluetooth Special Interest Group(SIG)の登録商標である)。
【0028】
一般に、プロセッシング・ユニット16は、IoTネットワーク内で接続された複数のリソースを最適化するためのプログラム・コードなどの、メモリ28、ストレージ・システム34、またはプログラム/ユーティリティ40、あるいはその組合せに格納されているコンピュータ・プログラム・コードを実行する。プロセッシング・ユニット16は、コンピュータ・プログラム・コードの実行中に、メモリ28、ストレージ・システム34、およびプログラム/ユーティリティ40との間で、データを読み取るか、または書き込むか、あるいはその両方を実行することができる。
【0029】
コンピュータ・システム/サーバ12は、通常、さまざまなコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ12によってアクセスできる任意の使用可能な媒体であってよく、揮発性および不揮発性媒体、取り外し可能および取り外し不可の媒体を含む。
【0030】
システム・メモリ28は、ランダム・アクセス・メモリ(RAM:random access memory)30またはキャッシュ・メモリ32あるいはその両方などの、揮発性メモリの形態でのコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ12は、その他の取り外し可能/取り外し不可、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体(例えば、VCR、DVR、RAIDアレイ、USBハード・ドライブ、光ディスク・レコーダ、フラッシュ・ストレージ・デバイス、またはデータを格納もしくは処理またはその両方を実行するための任意のその他のデータ処理および格納要素、あるいはその組合せ)をさらに含んでよい。単に例として、取り外し不可、不揮発性の磁気媒体(図示されておらず、通常は「ハード・ドライブ」と呼ばれる)に対する読み取りと書き込みを行うために、ストレージ・システム34を提供することができる。図示されていないが、取り外し可能、不揮発性の磁気ディスク(例えば、「フロッピー(登録商標)・ディスク」)に対する読み取りと書き込みを行うための磁気ディスク・ドライブ、またはCD-ROM、DVD-ROM、もしくはその他の光媒体などの取り外し可能、不揮発性の光ディスクに対する読み取りと書き込みを行うための光ディスク・ドライブ、あるいはその両方を提供することができる。そのような例では、それぞれを、1つまたは複数のデータ媒体インターフェイスによってバス18に接続することができる。下で詳細に示され、説明されるように、メモリ28は、本発明の実施形態の機能を実行するように構成された1セットの(例えば、少なくとも1つの)プログラム・モジュールを備える少なくとも1つのプログラム製品を含んでよい。
【0031】
コンピュータ可読媒体上で具体化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、無線周波数(RF:radio-frequency)など、またはこれらの任意の適切な組合せを含むが、これらに限定されない、任意の適切な媒体を使用して送信されてよい。
【0032】
例として、1セットの(少なくとも1つの)プログラム・モジュール42を含んでいるプログラム/ユーティリティ40は、メモリ28に格納されてよいが、これに限定されない。メモリ28は、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データも含んでもよい。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データまたはこれらの一部の組合せの各々は、ネットワーク環境の実装を含んでよい。プログラム・モジュール42は、通常、本明細書に記載された本発明の実施形態の機能または方法あるいはその両方を実行する。
【0033】
また、コンピュータ・システム/サーバ12は、キーボード、ポインティング・デバイス、ディスプレイ24などの1つまたは複数の外部デバイス14、利用者がコンピュータ・システム/サーバ12と情報をやりとりできるようにする1つまたは複数のデバイス、またはコンピュータ・システム/サーバ12が1つまたは複数のその他のコンピューティング・デバイスと通信できるようにする任意のデバイス(例えば、ネットワーク・カード、モデムなど)、あるいはその組合せと通信してもよい。このような通信は、I/Oインターフェイス22を介して行うことができる。さらに、コンピュータ・システム/サーバ12は、ローカル・エリア・ネットワーク(LAN:local area network)、一般的な広域ネットワーク(WAN:wide area network)、またはパブリック・ネットワーク(例えば、インターネット)、あるいはその組合せなどの1つまたは複数のネットワークと、ネットワーク・アダプタ20を介して通信することができる。図示されているように、ネットワーク・アダプタ20は、バス18を介してコンピュータ・システム/サーバ12のその他のコンポーネントと通信する。図示されていないが、その他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方を、コンピュータ・システム/サーバ12と併用して使用できるということが理解されるべきである。その例として、マイクロコード、デバイス・ドライバ、冗長プロセッシング・ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが挙げられるが、これらに限定されない。
【0034】
ここで
図2を参照すると、例示的なクラウド・コンピューティング環境50が示されている。クラウド・コンピューティング環境50は、クラウドの利用者によって使用されるローカル・コンピューティング・デバイス(例えば、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはその組合せなど)が通信できる1つまたは複数のクラウド・コンピューティング・ノード10を含んでいる。ノード10は、互いに通信してよい。ノード10は、1つまたは複数のネットワーク内で、本明細書において前述したプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはこれらの組合せなどに、物理的または仮想的にグループ化されてよい(図示されていない)。これによって、クラウド・コンピューティング環境50は、クラウドの利用者がローカル・コンピューティング・デバイス上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム、またはSaaS、あるいはその組合せを提供できる。
図2に示されたコンピューティング・デバイス54A~Nの種類は、例示のみが意図されており、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意の種類のネットワークまたはネットワーク・アドレス可能な接続(例えば、Webブラウザを使用した接続)あるいはその両方を経由して任意の種類のコンピュータ制御デバイスと通信することができると理解される。
【0035】
ここで
図3を参照すると、クラウド・コンピューティング環境50(
図2)によって提供される機能的抽象レイヤのセットが示されている。
図3に示されたコンポーネント、レイヤ、および機能は、例示のみが意図されており、本発明の実施形態がこれらに限定されないということが、あらかじめ理解されるべきである。図示されているように、次のレイヤおよび対応する機能が提供される。
【0036】
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレームが含まれる。一例として、IBM(登録商標) zSeriesシステムおよびRISC(Reduced Instruction Set Computer)アーキテクチャ・ベース・サーバが挙げられる。一例として、IBM pSeriesシステム、IBM System xサーバ、IBM BladeCenter(登録商標)システム、ストレージ・デバイス、ネットワーク、およびネットワーク・コンポーネントが挙げられる。ソフトウェア・コンポーネントの例には、ネットワーク・アプリケーション・サーバ・ソフトウェアが含まれる。一例として、IBM WebSphere(登録商標)アプリケーション・サーバ・ソフトウェアおよびデータベース・ソフトウェアが挙げられる。一例として、IBM DB2(登録商標)データベース・ソフトウェアが挙げられる。(IBM、zSeries、pSeries、System x、BladeCenter、WebSphere、およびDB2は、世界中の多くの管轄区域で登録されているInternational Business Machines Corporationの商標である)。
【0037】
仮想化レイヤ62は、仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーションおよびオペレーティング・システム、ならびに仮想クライアントなどの仮想的実体を提供できる抽象レイヤを備える。
【0038】
一例として、管理レイヤ64は、下で説明される機能を提供することができる。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよびその他のリソースの動的調達を行う。計測および価格設定は、クラウド・コンピューティング環境内でリソースが利用された際のコスト追跡、およびそれらのリソースの利用に対する請求書の作成と送付を行う。一例として、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウドの利用者およびタスクのID検証を行うとともに、データおよびその他のリソースの保護を行う。利用者ポータルは、クラウド・コンピューティング環境へのアクセスを利用者およびシステム管理者に提供する。サービス・レベル管理は、必要なサービス・レベルを満たすように、クラウドのコンピューティング・リソースの割り当てと管理を行う。サービス・レベル・アグリーメント(SLA:Service Level Agreement)計画および実行は、今後の要求が予想されるクラウド・コンピューティング・リソースの事前準備および調達を、SLAに従って行う。
【0039】
ワークロード・レイヤ66は、クラウド・コンピューティング環境で利用できる機能の例を示している。このレイヤから提供できるワークロードおよび機能の例としては、マッピングおよびナビゲーション、ソフトウェア開発およびライフサイクル管理、仮想クラスルーム教育の配信、データ解析処理、トランザクション処理、ならびにIoTリソース最適化が挙げられる。前述したように、
図3に関して説明された上記の例は、すべて例示に過ぎず、本発明はこれらの例に限定されない。
【0040】
本明細書において説明されている本発明のすべての機能は、通常、(プログラム/ユーティリティ40(
図1)のプログラム・コードのモジュール42として明白に具体化できるワークロード・レイヤ66の)IoTリソース最適化機能によって実行できると理解される。ただし、そのように実行する必要はない。むしろ、
図3に示されているレイヤ60~66のいずれかによって、本明細書において示される機能の実行/実装、または有効化、あるいはその組合せが行われ得る。
【0041】
本開示はクラウド・コンピューティングに関する詳細な説明を含んでいるが、本明細書において示される内容の実装が、クラウド・コンピューティング環境に限定されないということを、繰り返し述べる。むしろ、本発明の一部の実施形態は、任意の種類の今では既知のネットワーク・コンピューティング環境または今後開発されるネットワーク・コンピューティング環境で実装されるように意図されている。
【0042】
ここで
図4を参照すると、例示的なモノのインターネット(IoT)環境70が示されている。IoT環境70は、IoTデバイス74A~Nによって形成されたモノのインターネット(IoT)ネットワーク72を含んでいる。IoTデバイス74A~Nは、1つまたは複数のアンビエント・デバイス、電子レコーダ、電子アクチュエータ、個人用電子機器、消耗品、ウェアラブル・デバイス、電化製品、計量装置など(住宅76に関連付けられたデバイス74A~Nなど)を含んでよい。デバイス74A~Nは、例えば、個人用電子機器74A(例えば、ウェアラブル・デバイスなど)、システム制御デバイス74B(例えば、スマート・サーモスタット、スマート・プラグ、スマート・ロック、スマート電球など)、スマート家電74C(例えば、スマート冷蔵庫/食器洗い機/洗濯機、スマート・カー/芝刈り機など)、またはスマート・メーター74N(例えば、水道メーター/電気メーター/ガス・メーター)、あるいはその組合せを含んでよい。
図4に示されているデバイス74A~Nの種類が、単に例示的であるように意図されており、制限として解釈されるべきでないということが、理解される。本明細書では詳細に説明されないが、IoTデバイス74A~Nは、テレビ、サーモスタット、煙/CO2検知器、照明(例えば、HUE)、白物家電(例えば、洗濯機、乾燥機)、台所用電化製品(例えば、コンロ、電子レンジ、冷蔵庫、食器洗い機)、セキュリティ・システム(例えば、カメラ、モーション・センサ)、スプリンクラー・システム・コントローラ、ロック(例えば、ガレージの戸、スマート・デッドボルト)、台所用デバイス(例えば、コーヒー・メーカー、トースター)、ポータブル・デバイス(例えば、カメラ)、ウェアラブル・デバイス、車両(例えば、自動車、ボートなど)、自動ブラインド、空気分配デバイス(例えば、屋根裏換気扇、自動通気口、相対湿度センサ、除湿機、自動窓オープナー)、配水デバイス(例えば、漏水検知、自動閉止弁)、および運動器具(例えば、自転車、昇降運動マシン)のいずれかを含むことができるが、これらに限定されない。IoTネットワーク72のデバイス74A~Nが、PAN、WSAN、WLAN、またはWAN、ハード配線された接続などの、任意の種類のネットワークまたはネットワーク・アドレス可能接続あるいはその両方78を経由して、さまざまな種類のコンピュータ化されたシステムまたはサーバ12あるいはその両方と通信できるということも理解されるべきである。
【0043】
デバイス74A~Nは、住宅76に関連付けられた任意の活動、イベント、条件、または状況を制御するように構成されてよい。例えば、システム制御デバイス74Bは、住宅76の温度を制御するように構成されたスマート・サーモスタットであってよく、時刻または季節に応じたさまざまな温度で住宅76の温度を維持するように、さらに構成されてよい。別の事例では、システム制御デバイス74Bは、検出された動きまたは動きの欠如に応答して点灯するか、または薄暗くなるように構成されたスマート電球であってよい。別の例では、スマート家電74Cは、食器洗い機の引き出しが容量のしきい値に達したときに食器洗いのサイクルを実行するように構成された、スマート食器洗い機であってよい。さらに別の例では、スマート家電74Cは、収容されている食品の賞味期限が過ぎるときに警告を送信するように構成されたスマート冷蔵庫であってよい。
【0044】
デバイス74A~Nは、追加または代替として、住宅76に関連付けられたデータの追跡、記録、または格納、あるいはその組合せを実行してよい。住宅76に関連付けられた追跡されるデータは、住宅76の任意の活動、イベント、条件、または状況を表す、デバイス74A~Nによって監視されるデータを含むが、これらに限定されない。この追跡されるデータは、一定の期間にわたる動的変化を表示するために、監視されてもよい。例えば、スマート・メーター74Nは、住宅76による公共施設(例えば、電気、水道、またはガス)の使用状況を1日を通して記録するように構成され得る。別の例では、住宅76の住民が、個人用電子機器74A(例えば、カメラ付きのスマートフォン)を使用してデジタル写真を撮影し、格納することがある。さらに別の例では、個人用電子機器74Aは、住宅76の複数の住民が見ている番組を監視するように構成されたスマートTVであってよい。
【0045】
本発明の発明者は、ますます多くのIoTデバイスおよびその他のスマート・デバイスが住宅内で見られるようになっているが、これらのデバイスが必ずしも使用されているとは限らないか、または全体として非効率的な方法で使用されているか、あるいはその両方であるということを発見した。この問題は、スマート・デバイスが、冷蔵庫内の商品の賞味期限が過ぎているかどうかを検出すること、および交換品をデジタル・ショッピングのリストに追加すること、または部屋の検出された状態に応答して部屋を自動的に電気掃除機で掃除することなどの、従来は住宅の住民によって手動で実行されていた特定の作業を実行するようにますます特殊化するにつれて、悪化する。その結果、単一の住宅内の一群のIoTデバイスはそれぞれ、電力を消費し、この住宅に関連付けられた無線ネットワーク容量を要求しながら、それ自身の作業を同時に実行していることがある。その場合、これらのデバイスは、ネットワーク容量に関して互いに競合して作業することを強いられることがあり、それによって、より多くの電力を消費しながら、単一のデバイスまたはIoTデバイス群のすべての作業を実行する人間と比較して、より低い効率で実行することになる。さらに、多くのIoTデバイスおよびスマート・デバイスは、使用中でないときでも、デバイスの電源投入を必要とするスタンバイ・モードまたは準備モードに置かれ、電力資源をさらに非効率的に消費する。
【0046】
したがって、本発明の発明者は、複数のIoTデバイスにわたって実行される作業をより少ないIoTデバイスに移動し、それによって、これらの作業を完了するために必要なリソースの数を減らすシステムを開発した。本発明の発明者によって開発されたシステムは、一定距離を置いた関係者からの作業を(例えば、補償と引き換えに)実行するようにさらに構成することができ、それによって、現在未使用のIoTデバイスの予備の処理能力(例えば、CPU、メモリ、ネットワーク)およびストレージ・リソースを、より効率的に使用する。さらに、本発明の実施形態は、IoTネットワーク内で接続された複数のリソースを最適化するための複数の利点を提供する。例えば、本発明の実施形態は、IoTデバイスの作業ごとに消費されるIoTリソースをより少なくすることを可能にする。また、本発明の実施形態は、リソースおよび電力の特定の消費量に対して、実行される作業の量を最大化できる。さらに、本発明の実施形態は、通常は無駄なスタンバイ・モードで電力およびリソースを浪費するIoTデバイスを利用して、有益な作業を実行することを可能にする。さらに、本発明の実施形態は、IoTネットワーク内のデバイスが自己調整できるようにし、それによって、最適化された利益をユーザに提供する。
【0047】
図4を再び参照すると、本発明の一実施形態に従って、本明細書において説明される機能を表すシステム図が示されている。本明細書に示された内容が、ネットワーク・コンピューティング環境(例えば、クラウド・コンピューティング環境50)を含むが、これに限定されない、任意の種類のコンピューティング環境内で実践されてよいということが、理解される。スタンドアロンのコンピュータ・システム/サーバ12が、単に例示の目的で
図4に示されている。本明細書に示された内容が、ネットワーク・コンピューティング環境内で実践される場合、各クライアントは、IoTリソース最適化エンジン80(以下では、「システム80」)を含む必要がない。むしろ、システム80の全部または一部が、クライアントと(例えば、無線で)通信して、IoTネットワーク内で接続された複数のリソースを最適化することを提供する、サーバまたはサーバ対応のデバイスに読み込まれ得る。いずれにせよ、図示されているように、システム80は、コンピュータ・システム/サーバ12内に示されている。一般に、システム80は、
図1のコンピュータ・システム12上のプログラム/ユーティリティ40として実装することができ、本明細書に示された機能を可能にすることができる。
【0048】
これらの線に沿って、システム70は、汎用コンピュータに同様の複数の機能を実行してよい。具体的には、機能の中でも特に、システム80は、ネットワーク・コンピューティング環境において、IoTネットワーク内で接続された複数のリソースを最適化することができる。これを実現するために、システム80は、本発明の実施形態を実行するためのコンポーネントのセット(例えば、
図1のプログラム・モジュール42)を含むことができる。これらのコンポーネントは、使用状況モニタ82、リソース・オプティマイザ84、およびキャパシティ・プロバイダ(capacity provider)86を含むことができるが、これらに限定されない。
【0049】
システム80は、コンピュータ・システム/サーバ12を介して、クラウド・コンピューティング環境50または任意のその他のネットワーク・コンピューティング環境(例えば、インターネット)と通信し、情報をやりとりすることができる。クラウド・コンピューティング環境50を介して、一定距離を置いたクラウド・ワークロード90が、モノのインターネット(IoT)ネットワーク72上の1つまたは複数のリソースに割り当てるために選択され得る。一定距離を置いたクラウド・ワークロード90は、クラウド・コンピューティング環境50のユーザが、クラウド・コンピューティング環境50のリソースを使用してクラウド・コンピューティング環境50が実行することを要求するワークロードである。クラウド・コンピューティング環境50のこのユーザは、住宅76の住民ではない。一部の実施形態では、コンピュータ・システム/サーバ12は、ネットワーク内の接続されたIoTデバイスであることができ、IoTネットワーク72と通信することができる。一部のその他の実施形態では、コンピュータ・システム/サーバ12は、クラウド・コンピューティング環境50のコンポーネントであることができ、IoTネットワーク72にリモートから接続され得る。いずれにせよ、コンピュータ・システム/サーバ12のシステム80は、一定距離を置いたクラウド・ワークロード90およびIoTネットワーク72を(例えば、仮想プライベート・ネットワーク(VPN:virtual private network)によって)接続するように構成される。
【0050】
システム80の使用状況モニタ82は、コンピュータ・システム/サーバ12によって実行されたときに、IoTネットワーク72内で接続されたIoTデバイス74A~Nのリソースの使用状況を追跡することができる。使用状況モニタ82によって追跡される使用状況は、リソースに対して実行される作業、およびそれらの作業が実行される関連する時間を含む。IoTデバイス74A~Nのリソースは、ストレージ・リソース(例えば、ハード・ドライブ、メモリ・カード)および処理リソース(例えば、CPU、メモリ、ネットワーク)を含むことができるが、これらに限定されない。例えば、使用状況モニタ82は、システム制御デバイス74Bのストレージおよび処理活動を追跡し、システム制御デバイス74Bのストレージ・リソース上で使用可能なストレージ空間の25%が現在使用中であることと、ストレージ空間の多くても30%がこれまでに使用中であることと、したがって、システム制御デバイス74Bのストレージ・リソース上のストレージ空間の70%が一度も使用されていないということとを決定することができる。さらに、使用状況モニタ82は、システム制御デバイス74Bの処理リソースのCPU処理能力の35%が現在使用中であることと、昼間のピーク時に、処理能力の多くても55%がこれまでに使用中であることと、したがって、システム制御デバイス74Bの処理リソース上の処理能力の45%が一度も使用されていないということと、システム制御デバイス74Bの処理リソース上の処理能力の最大65%がオフピーク時に使用可能であることとを決定することができる。
【0051】
一部の実施形態では、使用状況モニタ82は、一部または全部の監視された使用活動の統合データ・ストアをマスタ・データ管理(MDM:master data management)リポジトリ内に作成できる。このMDMは、IoTデバイス74A~Nごと、またはIoTデバイス74A~Nの処理もしくはストレージ・リソースごとにでも、使用状況データを別々に格納できる。統合データは、IoTネットワーク72内(例えば、IoTネットワーク72の1つまたは複数のデバイスにわたって)、またはクラウド・コンピューティング環境50のストレージ領域内、あるいはその両方などの、任意の場所に格納され得る。
【0052】
使用状況モニタ82は、IoTネットワーク72内で接続されたIoTデバイス74A~Nのリソースの使用状況を監視/追跡することによって、各デバイス74A~Nまたは各IoTデバイス74A~Nの各リソースあるいはその両方の使用状況プロファイルを作成できる。これらの使用状況プロファイルは、IoTデバイス74A~NまたはIoTデバイス74A~Nのリソースあるいはその両方の平均的使用状況または標準的使用状況を、毎日、毎週、または毎月などの特定の時間サイクルにマッピングできる。使用状況プロファイルは、IoTデバイス74A~NまたはIoTデバイス74A~Nのリソースあるいはその両方について、要求のピーク期間(または要求のオフピーク期間、あるいはその両方)を時間サイクル内で示すことができる。例えば、システム制御デバイス74Bの使用状況プロファイルは、制御されたシステムが午前11時と午後4時の間に最も多くの処理能力を消費するということを示してよい。どの場合でも、使用状況モニタ82は、特定の時間サイクルにおいて、デバイス74A~Nが、それらのデバイスの使用可能なリソースをいつ最も多く消費し、いつ最も少なく消費すると予想されるかを示す使用パターンを決定できる。
【0053】
本発明の一部の実施形態では、使用状況モニタ82は、その特定のデバイスまたはリソースあるいはその両方の使用状況プロファイルにおいて確立された標準的なリソースの使用パターンと比較して、リソースまたはデバイス74A~Nあるいはその組合せの使用状況の異常な挙動を検出することができる。使用状況モニタ82は、すべてまたは一部のリソースに関する許容偏差のしきい値を使用して、(例えば、数式に基づいて)自動で、または(例えば、ユーザによって)手動で構成することができ、ここで、その許容値を上回る偏差または下回る偏差は、異常な使用状況の警告をトリガーする。これらの実施形態の一部では、使用状況モニタ82は、異常な使用状況の警告に応答して動作を実行するように構成され得る。この動作は、警告をトリガーしたIoTデバイス74A~Nの特定のデバイスをオフにすること、警告をトリガーした特定のリソースへのアクセス/そのようなリソースの使用を停止する/防ぐこと、または異常な使用状況の警告をデバイスのユーザもしくは世帯の住民またはその両方に通知すること、あるいはその組合せを含むことができるが、これらに限定されない。例えば、この通知は、電子メールもしくはSMSメッセージなどの電子的通知、または聴覚的(例えば、ビープ音)インジケータもしくは視覚的(例えば、点滅する光)インジケータなどの、住宅76の1人または複数の住民が感知できるインジケータの形態であることができる。
【0054】
本発明の実施形態によれば、使用状況モニタ82は、IoTデバイス74A~Nまたはデバイス74A~Nのリソースあるいはその両方の2つ以上の使用状況プロファイルを互いに対してさらにマッピングすることができる。このマッピングは、使用状況モニタ82が、サイクル中に、IoTデバイス74A~Nが使用可能な余剰リソースを有している時間、および使用可能なリソースの量を見つけることを可能にする。さらに、このマッピングは、使用状況モニタ82が、サイクル中に、あるデバイスのリソースは需要があるが、別のデバイスの補完的リソース(すなわち、要求されたリソースと同じ作業を実行できるリソース)はあまり需要がないか、または全く需要がない時間を識別することを可能にする。そのため、使用状況モニタ82は、IoTネットワーク72内のすべてのリソースの活動をIoTネットワーク72の完全な時間サイクルにマッピングできる。
【0055】
システム80のリソース・オプティマイザ84は、コンピュータ・システム/サーバ12によって実行されたときに、追跡されたリソースの使用状況に基づいて、予想される時間での予想される作業、および実質的に同じ予想される時間での予想される使用可能な能力を識別することができる。これを実現するために、リソース・オプティマイザ84は、IoTデバイス74A~NまたはIoTデバイス74A~Nのリソースあるいはその両方のリソース使用状況プロファイルから使用状況モニタ82によって作成された、IoTネットワーク72内の一部または全部のリソースの活動の使用状況マップを解析することができる。リソース・オプティマイザ84は、マッピングに基づいて、リソース最適化の機会を認識するように構成され得る。例えば、リソース・オプティマイザ84は、毎日の昼間のピーク時に、システム制御デバイス74Bのストレージ空間の30%および処理能力の55%が使用中であることと、この期間中に、スマート家電74Cのストレージ空間の5%および処理能力の7%のみが使用中であることとを決定できる。
【0056】
システム80のリソース・オプティマイザ84は、コンピュータ・システム/サーバ12によって実行されたときに、予想される作業を、第1のリソースから、予想される作業と一致する時間での第2のリソースに移動することによって、第1のリソース上に余剰能力をさらに生成することができる。これを実現するために、リソース・オプティマイザ84は、通常はあるIoTデバイス上で実行される作業を、別のIoTデバイスにルーティングすることができる。例えば、リソース・オプティマイザ84は、IoTデバイス74Cのストレージ空間に格納されている項目をIoTデバイス74Bのストレージ空間に移動することができ、処理作業をIoTデバイス74Cの処理コンポーネントからIoTデバイス74Bの処理コンポーネントに移動することができる。一部の実施形態では、これは、第1のデバイスからの1つまたは複数のワークロードを1つまたは複数の第2のデバイス上で実行するようにマイクロ・サービスをスケジューリングすることによって、実現され得る。これによって、IoTデバイス74Cの1つまたは複数のリソースを解放する。したがって、IoTデバイス74Cは、例えば、IoTデバイス74Cが、エネルギーを節約する低電力状態にされるか、バックアップ・ストレージ/処理に使用されるか、またはその他の作業の実行のために提供されることを可能にすることによって最適化され、このことが、下でさらにより詳細に説明される。
【0057】
一部の実施形態では、あるIoTデバイスから別のIoTデバイスへの作業の移動は、MQTT(Message Queue Telemetry Transport)などの、出版―購読型モデルに基づくメッセージング・プロトコルを使用して、データをIoTネットワーク72内のあるIoTデバイス74A~Nから別のIoTデバイス74A~Nに送信することができる。そのような一実施形態では、リソース・オプティマイザ84は、Eclipse Mosquittoなどのメッセージ・ブローカを使用してMQTTプロトコルを実装することができる。追加的または代替的に、IBMのBluemix(登録商標)上のWatson(登録商標) IoTプラットフォームが、MQTTサーバとして使用され得る。ただし、本発明の実施形態はBluemixまたはMQTTあるいはその両方に限定されず、そのため、本発明の実施形態は、現在知られているか、または今後開発される任意のプロトコルを使用して、データをIoTデバイス74A~Nとの間で送信および受信することができるということが、理解されるべきである。本明細書において使用されているすべての商標および商品名は、それらの各所有者に属しており、例示および説明の目的のみに使用される。
【0058】
一部の実施形態では、リソース・オプティマイザ84は、1つまたは複数のIoTデバイス上の使用可能なストレージ・リソースをバックアップ・データ・ストアとして活用できる。例えば、カメラ・デバイスまたはカメラ・フォンで撮影された写真を、従来、そのような写真が格納されなかったスマート家電74Cなどの1つまたは複数のIoTデバイス74A~N上に、バックアップすることができる。
【0059】
一部の実施形態では、システム80のリソース・オプティマイザ84は、特定のその他のIoTデバイス74A~N上で実行されることが予想されるか、または現在実行されている作業に関連するIoTデバイス74A~N上の作業をスケジューリングするように構成され得る。一部の実施形態では、このスケジューリングは、マップのリソースまたはIoTデバイスの使用状況に基づくことができる。さらに、関連するIoTデバイス74A~N上の作業のスケジューリングは、別のIoTデバイス74A~Nからのデータの読み取りに応答したものであることができる。例えば、リソース・オプティマイザ84は、スマートTV IoTデバイス上の明るさおよび明るさの欠如を感知し、それに応じて、1セットのスマート電球IoTデバイスを薄暗くすることができる。別の例では、リソース・オプティマイザ84は、スマートTV IoTデバイスが使用中であることを検出し、それに応じて、その他のIoTデバイスによって作り出された背景ノイズを減らすことができる。その他の例としては、検出された雨に応じてスマート・スプリンクラー・システムの放水スケジュールを変更すること、あるいは外部温度が内部温度より望ましいか、または検出された花粉が少ないもしくは汚染度が低いか、あるいはその両方である場合に、自動窓を開けることが挙げられるが、これらに限定されない。
【0060】
ここで
図4に加えて
図5を参照すると、本発明の一実施形態の実装の例が示されている。システム80のキャパシティ・プロバイダ86は、コンピュータ・システム/サーバ12によって実行されたときに、予想される時間にIoTリソース上で生み出される余剰能力を、一定距離を置いた関係者によって使用することに指定し、一定距離を置いた関係者からの負荷をIoTリソースの余剰能力に割り当てることができる。これを実現するために、キャパシティ・プロバイダ86は、1つまたは複数のIoTデバイス74A~Nの予備/余剰ストレージ/処理能力の一部を提供するように、クラウド・コンピューティング・リソース・ブローカ(cloud computing resource broker)を使用して、それらの1つまたは複数のIoTデバイス74A~Nを構成することができる。一部の実施形態では、クラウド・コンピューティング・リソース・ブローカはキャパシティ・プロバイダ86のコンポーネントであるが、一部のその他の実施形態では、クラウド・コンピューティング・リソース・ブローカはクラウド・コンピューティング環境500のコンポーネントである。
【0061】
キャパシティ・プロバイダ86は、一部の実施形態では、クラウド・コンピューティング・リソース・ブローカを介して、クラウド・コンピューティング環境50からの1つまたは複数のIoTデバイス74A~Nの予備/余剰ストレージ/処理能力へのアクセス権限を構成することができる。このアクセス権限は、ゲートウェイのVPNメカニズムなどの、プライベートかつ安全な手段を介することができる。クラウド・ワークロード・ユーザ94がクラウド・コンピューティング・リソース・ブローカに対してワークロードを実行するリソースを要求することに応答して、キャパシティ・プロバイダ86は、例えば、VPNメカニズムを介して、1つまたは複数のIoTデバイス74A~Nの予備/余剰ストレージ/処理能力へのアクセス権限をクラウド・ワークロード・ユーザ94に付与することができる。クラウド・ワークロード・ユーザ94が、クラウド・コンピューティング環境50の一定距離を置いたユーザであり、住宅76の世帯の住民92との関連性を有さないということが、理解されるべきである。次に、キャパシティ・プロバイダ86は、クラウド・ワークロード・ユーザ94のワークロードが、使用可能な1つまたは複数のIoTデバイス74A~Nの予備ストレージまたは処理能力を実行するか、またはその他の方法で使用することを可能にすることができる。クラウド・ワークロード・ユーザ94の視点からは、クラウド・ワークロード・ユーザ94のワークロードは、クラウド・コンピューティング環境50のリソースを使用しているようにシームレスに見える。
【0062】
一部の実施形態では、キャパシティ・プロバイダ86は、この予備/余剰ストレージ/処理能力を、金銭的補償の料金または補償の一部のその他の形態と引き換えに、クラウド・コンピューティング・リソース・ブローカに提供することができる。そのため、キャパシティ・プロバイダ86またはクラウド・コンピューティング・リソース・ブローカあるいはその両方は、デバイスの使用と引き換えに世帯の住民92に権利が与えられる補償の量を決定する目的で、IoTデバイス74A~Nの予備ストレージまたは処理能力の使用状況を監視するか、または記録するか、あるいはその両方を(例えば、定期的な間隔で)実行することができる。一部の実施形態では、キャパシティ・プロバイダ86またはクラウド・コンピューティング・リソース・ブローカあるいはその両方は、クラウド・ワークロード・ユーザ94から補償(例えば、支払い)を受け取り、その補償を世帯の住民92に分配することができる。
【0063】
一部の実施形態では、キャパシティ・プロバイダ86は、IoTデバイス74A~Nの1つまたは複数のリソースを、クラウド・ワークロード・ユーザ94によって使用するための単一の提供物としてパッケージ化することができる。例えば、1時間のブロックのIoTデバイス74Bの余剰処理能力が、3時間のブロックのIoTデバイス74Cの余剰ストレージ容量で支払われ得る。パッケージ化されたリソースが、IoTネットワーク72の同じデバイスまたは異なるデバイスからのリソースであることができ、同じ種類または異なる種類のリソースであることができ、任意の時間枠に提供することができ、任意の数であることができるということが、理解されるべきである。一部の実施形態では、キャパシティ・プロバイダ86は、使用状況モニタ82によるデバイス74A~Nの使用状況プロファイルのマッピングおよびリソース・オプティマイザ84によるアクティブなリソースの最適化/集中に基づいて、どのリソースを提供物としてまとめてパッケージ化するかを決定することができる。
【0064】
一部の実施形態では、キャパシティ・プロバイダ86は、世帯の住民92が、使用可能な余剰/予備能力の量または割合、あるいはそのような余剰/予備能力が使用可能になる時間枠を選択し、クラウド・コンピューティング・リソース・ブローカを介して一定距離を置いた関係者に提供することを可能にするように、構成され得る。一部のさらなる実施形態では、キャパシティ・プロバイダ86は、IoTリソースの予備能力の使用と引き換えに、補償の提供をクラウド・ワークロード・ユーザ94から受け取ることと、世帯の住民92が提案された補償の料金での提供を受け入れるか、または拒否することを可能にすることとを実行するように、構成され得る。一部の実施形態では、キャパシティ・プロバイダ86は、世帯の住民92が、余剰能力の購入を許可する一定距離を置いた関係者を選択する前に、補償の提供を比較することを可能にするインターフェイス(例えば、オムニチャネル・インターフェイス)を、世帯の住民92に提示することができる。
【0065】
本発明の一部の実施形態によれば、システム80のキャパシティ・プロバイダ86は、コンピュータ・システム/サーバ12によって実行されたときに、追加または代替として、IoTネットワーク72の1つまたは複数のIoTデバイス74A~Nからの追跡された使用状況データを、一定距離を置いた関係者に提供することができる。これらの実施形態では、キャパシティ・プロバイダ86は、MDMリポジトリの各統合セクションに格納されたデータの種類(例えば、IoTデバイスの使用状況データ、IoTデバイスの能力データ)およびデータの分類(例えば、スマートTVからの視聴統計情報、スマート・サーモスタットからの加熱/冷却プロファイル、ウェアラブル・デバイスからの運動データ)を状況から決定することができる。このデータは、データを介して世帯の住民92が識別可能にならないように、匿名化され得る。キャパシティ・プロバイダ86は、データの2つ以上のセットが、互いに関連しているかどうか、またはデータの分類された種類に基づいてデータの潜在的価値を最大化するために、まとめてパッケージ化されるべきかどうか、あるいはその両方であるかどうかを判定することもできる。例えば、ウェアラブルIoTデバイスからの運動データ、スマート体重計からの減量データ、およびスマート冷蔵庫からの食品消費量データは、関連している/相関性がある可能性が高い。
【0066】
キャパシティ・プロバイダ86は、状況から決定されたデータの種類または分類に基づいて、パッケージ化されたデータに興味を持つ可能性がある関係者の種類(例えば、運動/減量/食品データの場合は、保険会社および医療会社)をさらに決定できる。データの特定のクラスまたは種類に応じてキャパシティ・プロバイダ86が識別してよい関係者の非限定的な例を、以下の表に示す。
【0067】
【0068】
キャパシティ・プロバイダ86は、興味を持つ可能性があるとして識別された関係者に連絡し、補償と引き換えに匿名化されたデータの1つまたは複数のクラスを提供することができる。これらの実施形態では、キャパシティ・プロバイダ86は、MDMリポジトリに格納された統合データのカタログを世帯の住民92に提供することと、補償と引き換えにどのデータを提供することをキャパシティ・プロバイダ86が許可されるかに関する選択を世帯の住民92から受信することとを実行するように構成される。キャパシティ・プロバイダ86が可能性のある購入者を見つけた後に、キャパシティ・プロバイダ86は、補償とのデータの交換を進めることの許可を世帯の住民92に対して要求するように構成され得る。
【0069】
図6に示されているように、1つの実施形態では、システム(例えば、コンピュータ・システム12)が、本明細書において開示された方法を実行する。IoTネットワーク内で接続された複数のリソースを最適化するためのプロセスのフローチャート600が示されている。ステップ602で、IoTネットワーク内で接続された複数のリソースのうちの第1のリソースの使用状況および第2のリソースの使用状況が追跡され、第1のリソースの使用状況が、第1の作業および第1の作業が実行される時間を含んでおり、第2のリソースの使用状況が、第2の作業および第2の作業が実行される時間を含んでいる。604で、第1のリソースの追跡された使用状況に基づいて、予想される時間での予想される第1の作業が識別され、第2のリソースの追跡された使用状況に基づいて、第2のリソースで、実質的に同じ予想される時間での予想される能力が識別される。606で、予想される時間の間、予想される第1の作業を第2のリソースに移動することによって、第1のリソースで余剰能力が生み出される。608で、予想される時間での第1のリソースの余剰能力が、一定距離を置いた関係者によって使用されることに指定される。610で、一定距離を置いた関係者からの負荷が第1のリソースの余剰能力に割り当てられる。
【0070】
図6のプロセスのフローチャート600は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示している。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、またはそれらのブロックは場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組合せは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【0071】
本特許明細書において説明された機能コンポーネントの一部は、それらの実装の独立性を特に強調するために、システムまたはユニットとしてラベル付けされている。例えば、システムまたはユニットは、カスタムVLSI回路またはゲート・アレイ、論理チップなどの市販の半導体、トランジスタ、あるいはその他の個別のコンポーネントを備えているハードウェア回路として実装されてよい。システムまたはユニットは、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ論理、プログラマブル論理デバイスなどの、プログラム可能なハードウェア・デバイスにおいて実装されてもよい。システムまたはユニットは、さまざまな種類のプロセッサによって実行するために、ソフトウェアにおいて実装されてもよい。例えば、実行可能コードのシステムまたはユニットまたはコンポーネントは、例えばオブジェクト、プロシージャ、または関数として編成されてよいコンピュータ命令の1つまたは複数の物理的または論理的ブロックを備えてよい。それにもかかわらず、識別されたシステムまたはユニットの実行ファイルは、物理的に一緒に配置される必要はなく、異なる位置に格納された異種の命令を含んでよく、それらの命令は、論理的に一緒に結合された場合にシステムまたはユニットを構成し、システムまたはユニットの規定された目的を達成する。
【0072】
さらに、実行可能コードのシステムまたはユニットは、単一の命令であるか、または多くの命令であることができ、複数の異なるコード・セグメントにわたって、異なるプログラム間および複数のメモリ・デバイスにまたがって、分散されてさえもよい。同様に、操作可能なデータが、識別され、本明細書ではモジュール内で示されてよく、任意の適切な形態で具現化され、任意の適切な種類のデータ構造内で編成されてよい。操作可能なデータは、単一のデータ・セットとして収集されてよく、または異なるストレージ・デバイスおよび異種のメモリ・デバイスを含む、異なる位置にわたって分散されてよい。
【0073】
さらに、システム/ユニットは、ソフトウェアおよび1つまたは複数のハードウェア・デバイスの組合せとして実装されてもよい。例えば、プログラム/ユーティリティ40は、記憶媒体(例えば、メモリ・ストレージ・デバイス)に格納されたソフトウェア実行可能コードの組合せで具現化されてよい。さらなる一例では、システムまたはユニットは、操作可能なデータのセットを処理するプロセッサの組合せであってよい。
【0074】
前述したように、実施形態の一部は、ハードウェアにおいて具現化されてよい。ハードウェアは、ハードウェア要素として参照されることがある。一般に、ハードウェア要素は、特定の動作を実行するように構成された任意のハードウェア構造のことを指してよい。1つの実施形態では、例えば、ハードウェア要素は、基板上に製造された任意のアナログまたはデジタルの電気素子または電子素子を含んでよい。この製造は、例えば、相補型金属酸化膜半導体(CMOS:complementary metal oxide semiconductor)、バイポーラ、およびバイポーラCMOS(BiCMOS:bipolar CMOS)技術などの、シリコンベースの集積回路(IC:integrated circuit)技術を使用して実行されてよい。ハードウェア要素の例としては、プロセッサ、マイクロプロセッサ、回路、回路素子(例えば、トランジスタ、抵抗器、コンデンサ、インダクタなど)、集積回路、特定用途向け集積回路(ACIS:application specific integrated circuits)、プログラマブル論理デバイス(PLD:programmable logic devices)、デジタル信号プロセッサ(DSP:digital signal processors)、フィールド・プログラマブル・ゲート・アレイ(FPGA:field programmable gate array)、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップ・セットなどが挙げられ得る。ただし、実施形態はこのような文脈に限定されない。
【0075】
本明細書において提供されるコンポーネントのいずれかは、IoTネットワーク内で接続された複数のリソースを最適化するためのプロセスに関するコンピューティング・インフラストラクチャを展開または統合することを提供するサービス・プロバイダによって、展開、管理、サービス提供などが実行され得る。したがって、本明細書における実施形態は、コンピュータ可読コードをコンピューティング・システム(例えば、コンピュータ・システム12)に統合すること、ホストすること、維持すること、および展開することを含む、コンピュータ・インフラストラクチャを支援するためのプロセスを開示し、このコンピューティング・システムと組み合わせたコードは、本明細書に記載された機能を実行することができる。
【0076】
別の実施形態では、本発明は、加入、宣伝、または有料、あるいはその組合せの形態で、本発明のプロセスのステップを実行する方法を提供する。すなわち、Solution Integratorなどのサービス・プロバイダは、IoTネットワーク内で接続された複数のリソースを最適化するためのプロセスの作成、維持、支援などを実行することを提供できる。この場合、サービス・プロバイダは、1人または複数の顧客のために、本発明のプロセスのステップを実行するコンピュータ・インフラストラクチャの作成、維持、支援などを行うことができる。その見返りとして、サービス・プロバイダは、加入または有料契約あるいはその両方に基づいて顧客から支払いを受け取ることができ、またはサービス・プロバイダは、1つまたは複数のサード・パーティへの宣伝コンテンツの販売から支払いを受け取ることができ、あるいはその組合せが可能である。
【0077】
前述したように、一部の実施形態は、ソフトウェアにおいて具現化されてよい。ソフトウェアは、ソフトウェア要素として参照されることがある。一般に、ソフトウェア要素は、特定の動作を実行するように構成された任意のソフトウェア構造のことを指してよい。例えば、1つの実施形態では、ソフトウェア要素は、プロセッサなどのハードウェア要素によって実行するのに適合しているプログラム命令またはデータあるいはその両方を含んでよい。プログラム命令は、既定の構文で配置された単語、値、またはシンボルを含むコマンドの構造化されたリストを含んでよく、実行された場合に、プロセッサに、対応する1セットの動作を実行させることができる。
【0078】
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読ストレージ媒体を含んでよい。
【0079】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読ストレージ媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであってよいが、これらに限定されない。コンピュータ可読ストレージ媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー(登録商標)・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック(登録商標)、フロッピー(登録商標)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組合せを含む。本明細書において使用されるとき、コンピュータ可読ストレージ媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一過性の信号であると解釈されるべきではない。
【0080】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組合せ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【0081】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードまたはオブジェクト・コードのいずれかであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路を仕様に合わせてカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
【0082】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組合せが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
【0083】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施するための手段を作り出すべく、汎用コンピュータ、専用コンピュータ、またはその他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読ストレージ媒体がフローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、またはその他のデバイス、あるいはその組合せに特定の方式で機能するように指示できるものであってもよい。
【0084】
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックに指定される機能/動作を実施するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれてもよく、それによって、一連の動作可能なステップを、コンピュータ上、その他のプログラム可能な装置上、またはコンピュータ実装プロセスを生成するその他のデバイス上で実行させる。
【0085】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組合せは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
【0086】
本明細書では、IoTネットワーク内で接続された複数のリソースを最適化するための方法が提供されているということが、明らかである。本発明は、実施形態例と共に具体的に示され、説明されたが、当業者が変形および変更を思い付くということが、理解されるであろう。したがって、添付された特許請求の範囲が、本発明の真の範囲に含まれるそのようなすべての修正および変更を対象にするように意図されているということが、理解されるべきである。