(57)【要約】      （修正有）【課題】モノのインターネット(IOT)のデバイスコンフィギュレーションを構成すること。【解決手段】2つ以上のIOTデバイス間の特定の自動的な相互作用のデバイスコンフィギュレーションに関するソリューションテンプレートの選択を受け、完全なソリューションテンプレートが選択される場合、デバイスコンフィギュレーションを配備する。そうでない場合、IOTデバイスの選択を受け、選択されるIOTデバイスのIOTデータベース内のデバイス機能にアクセスし、選択されるIOTデバイス間にネットワークコネクションを設定し、IOTデータベース内でデバイスコンフィギュレーションをシミュレーションし、デバイスコンフィギュレーションが使用可能であるか否かを判定する。使用可能でない場合、代替的なIOTデバイスを含むようにデバイスコンフィギュレーションを再構成し、使用可能である場合、デバイスコンフィギュレーションを配備する。【選択図】図１
2016045964.tif 000002
【特許請求の範囲】
【請求項１】
2つ以上の「モノのインターネット」(IOT)デバイス間の特定の自動的な相互作用のデバイスコンフィギュレーションに関するソリューションテンプレートを選択するのに有効なユーザ入力を受ける工程；
前記デバイスコンフィギュレーションに関する完全なソリューションテンプレートが選択されるか否かを判定する工程；
部分的なソリューションテンプレートが選択されることに応じて：
前記部分的なソリューションテンプレートに組み込まれる2つ以上のIOTデバイスを選択するのに有効な追加的なユーザ入力を受けること；
IOTデータベース内の選択されるIOTデバイスのデバイス機能にアクセスすること；
前記選択されるIOTデバイス間にネットワークコネクションを設定すること；
前記選択されるIOTデバイスに対する前記IOTデータベース内でアクセスされる前記デバイス機能を利用してデバイスコンフィギュレーションをシミュレーションすること；
前記シミュレーションに基づいて、前記デバイスコンフィギュレーションが使用可能であるか否かを判定すること；
前記デバイスコンフィギュレーションが使用可能でないことに応じて、1つ以上の代替的なIOTデバイスを含むように前記デバイスコンフィギュレーションを再構成すること；及び
前記デバイスコンフィギュレーションが使用可能であることに応じて、前記デバイスコンフィギュレーションを配備すること；
を行う工程；並びに
前記完全なソリューションテンプレートが選択されることに応じて、前記デバイスコンフィギュレーションを配備する工程；
を有する方法。
【請求項２】
トリガ信号に基づいて前記デバイスコンフィギュレーションを確認する工程を更に有する請求項1に記載の方法。
【請求項３】
前記確認する工程は、
前記デバイスコンフィギュレーションにおけるトリガ状態をマニュアルでエミュレートする何れかの選択されるIOTデバイスに対するユーザ入力から生じるデバイス入力を受信する工程；
エミュレートされるトリガ状態から生じるデバイス入力を記録する工程；
前記IOTデータベースにおける前記デバイス機能に少なくとも部分的に基づいて予想されるパフォーマンスと前記デバイス入力とを比較する工程；及び
ミスマッチが存在する場合に、前記ミスマッチを示すチケットメッセージを生成する工程；
を有する、請求項2に記載の方法。
【請求項４】
前記ネットワークコネクションを設定することが：
前記選択されるIOTデバイスが互いに通信可能であることに応じて、前記選択されるIOTデバイス間の通信を可能にするコンフィギュレーションパラメータを生成すること；
前記選択されるIOTデバイスが互いには通信可能でないことに応じて、物理ハブ及びゲートウェイモジュールの1つ以上を利用して、前記選択されるIOTデバイス間の通信を可能にするコンフィギュレーションパラメータを生成すること；
を含む、請求項1に記載の方法。
【請求項５】
前記デバイスコンフィギュレーションが使用可能であることに応じて、物理的なIOTデバイス及び仮想的な機器のリストを提供し及び前記物理的なIOTデバイス及び前記仮想的な機器のうちの1つ以上の購入を可能にするマーケットプレイスを表示する工程を更に有する請求項1に記載の方法。
【請求項６】
前記シミュレーションすることが：
前記IOTデバイス間の相互作用の実現可能性を確認すること；
前記相互作用は安全性の問題を招かないことを確認すること；
前記相互作用はプライバシの問題を招かないことを確認すること；及び
前記デバイスコンフィギュレーションをデバッグするためにステップバイステップの検査を実行すること；
を含む、請求項1に記載の方法。
【請求項７】
前記配備することが：
提案される前記IOTデバイスの配備場所をユーザに伝えること；
ユーザ入力を受信し、コンフィギュレーションパラメータを前記IOTデバイスに伝えることを開始すること；
前記コンフィギュレーションパラメータをIOTデバイスにアップロードすること；及び
前記コンフィギュレーションパラメータがIOTデバイスに適切にアップロードされたことを前記ユーザに通知すること；
を含む、請求項1に記載の方法。
【請求項８】
前記IOTデータベースが：
1つ以上の前記IOTデバイスの通信プロトコルを保存するデバイス機能データベース；及び
2つ以上の前記IOTデバイス間の通信を可能にするソリューションを保存するデバイス相互運用性データベース；
を含む、請求項1に記載の方法。
【請求項９】
前記判定する工程が：
ランナブルなコンフィギュレーションが存在するか否かを検出する工程；及び
前記デバイスコンフィギュレーションにおける競合する状況を検出する工程；
を含む、請求項1に記載の方法。
【請求項１０】
前記IOTデバイスは、電球、照明システム、ドアロック、温水器、スプリンクラーシステム、空調機、サーモスタット、アラームクロック、窓の日よけ、スイッチ、煙報知器、カメラ、エッグマインダ、電気差し込み口、パーソナル(例えば、ピギー)バンク、プロパンタンク、アラーム、対人近接センサ、ドアセンサ、バイオメトリックセンサ、マットレス、モバイル装置、車両センサ、時計、調理装置、電気遮断機、対人警報センサ、動きセンサ、カレンダ、テレビジョン、ラジオ、無線周波数識別(RFID)タグ/RFID検出器、乗物、電気車両充電器、分散される発電機(例えば、ソーラーパネル)、分散される蓄電池(例えば、バッテリ)、及び、サーモメータのうちの1つ以上を含み；及び
前記IOTデバイスの前記デバイス機能は、メッセージキューテレメトリトランスポート(MQTT)、MQTTセンサ(MQTT-S)、制約されたアプリケーションプロトコル(CoAP)、代表ステートトランスファアプリケーションプロトコルインタフェース(REST  API)、及び、拡張可能メッセージングプレゼンスプロトコル(XMPP)を含む接続プロトコルを含む、請求項1に記載の方法。
【請求項１１】
非一時的なコンピュータ読み取り可能な媒体であって、当該媒体にエンコードされるプログラミングコードを有し、前記プログラミングコードは処理を実行するようにプロセッサにより実行可能であり、前記処理は、
2つ以上の「モノのインターネット」(IOT)デバイス間の特定の自動的な相互作用のデバイスコンフィギュレーションに関するソリューションテンプレートを選択するのに有効なユーザ入力を受ける工程；
前記デバイスコンフィギュレーションに関する完全なソリューションテンプレートが選択されるか否かを判定する工程；
部分的なソリューションテンプレートが選択されることに応じて：
前記部分的なソリューションテンプレートに組み込まれる2つ以上のIOTデバイスを選択するのに有効な追加的なユーザ入力を受けること；
IOTデータベース内の選択されるIOTデバイスのデバイス機能にアクセスすること；
前記選択されるIOTデバイス間にネットワークコネクションを設定すること；
前記選択されるIOTデバイスに対する前記IOTデータベース内でアクセスされる前記デバイス機能を利用してデバイスコンフィギュレーションをシミュレーションすること；
前記シミュレーションに基づいて、前記デバイスコンフィギュレーションが使用可能であるか否かを判定すること；
前記デバイスコンフィギュレーションが使用可能でないことに応じて、1つ以上の代替的なIOTデバイスを含むように前記デバイスコンフィギュレーションを再構成すること；及び
前記デバイスコンフィギュレーションが使用可能であることに応じて、前記デバイスコンフィギュレーションを配備すること；
を行う工程；並びに
前記完全なソリューションテンプレートが選択されることに応じて、前記デバイスコンフィギュレーションを配備する工程；
を有する、媒体。
【請求項１２】
前記処理が、トリガ信号に基づいて前記デバイスコンフィギュレーションを確認する工程を更に有する、請求項11に記載の媒体。
【請求項１３】
前記確認する工程は、
前記デバイスコンフィギュレーションにおけるトリガ状態をマニュアルでエミュレートする何れかの選択されるIOTデバイスに対するユーザ入力から生じるデバイス入力を受信する工程；
エミュレートされるトリガ状態から生じるデバイス入力を記録する工程；
前記IOTデータベースにおける前記デバイス機能に少なくとも部分的に基づいて予想されるパフォーマンスと前記デバイス入力とを比較する工程；及び
ミスマッチが存在する場合に、前記ミスマッチを示すチケットメッセージを生成する工程；
を有する、請求項12に記載の媒体。
【請求項１４】
前記ネットワークコネクションを設定することが：
前記選択されるIOTデバイスが互いに通信可能であることに応じて、前記選択されるIOTデバイス間の通信を可能にするコンフィギュレーションパラメータを生成すること；
前記選択されるIOTデバイスが互いには通信可能でないことに応じて、物理ハブ及びゲートウェイモジュールの1つ以上を利用して、前記選択されるIOTデバイス間の通信を可能にするコンフィギュレーションパラメータを生成すること；
を含む、請求項11に記載の媒体。
【請求項１５】
前記処理が、前記デバイスコンフィギュレーションが使用可能であることに応じて、物理的なIOTデバイス及び仮想的な機器のリストを提供し及び前記物理的なIOTデバイス及び前記仮想的な機器のうちの1つ以上の購入を可能にするマーケットプレイスを表示する工程を更に有する、請求項11に記載の媒体。
【請求項１６】
前記シミュレーションすることが：
前記IOTデバイス間の相互作用の実現可能性を確認すること；
前記相互作用は安全性の問題を招かないことを確認すること；
前記相互作用はプライバシの問題を招かないことを確認すること；及び
前記デバイスコンフィギュレーションをデバッグするためにステップバイステップの検査を実行すること；
を含む、請求項11に記載の媒体。
【請求項１７】
前記配備することが：
提案される前記IOTデバイスの配備場所をユーザに伝えること；
ユーザ入力を受信し、コンフィギュレーションパラメータを前記IOTデバイスに伝えることを開始すること；
前記コンフィギュレーションパラメータをIOTデバイスにアップロードすること；及び
前記コンフィギュレーションパラメータがIOTデバイスに適切にアップロードされたことを前記ユーザに通知すること；
を含む、請求項14に記載の媒体。
【請求項１８】
前記IOTデータベースが：
1つ以上の前記IOTデバイスの通信プロトコルを保存するデバイス機能データベース；及び
2つ以上の前記IOTデバイス間の通信を可能にするソリューションを保存するデバイス相互運用性データベース；
を含む、請求項11に記載の媒体。
【請求項１９】
前記判定する工程が：
ランナブルなコンフィギュレーションが存在するか否かを検出する工程；及び
前記デバイスコンフィギュレーションにおける競合する状況を検出する工程；
を含む、請求項11に記載の媒体。
【請求項２０】
前記IOTデバイスは、電球、照明システム、ドアロック、温水器、スプリンクラーシステム、空調機、サーモスタット、アラームクロック、窓の日よけ、スイッチ、煙報知器、カメラ、エッグマインダ、電気差し込み口、パーソナル(例えば、ピギー)バンク、プロパンタンク、アラーム、対人近接センサ、ドアセンサ、バイオメトリックセンサ、マットレス、モバイル装置、車両センサ、時計、調理装置、電気遮断機、対人警報センサ、動きセンサ、カレンダ、テレビジョン、ラジオ、無線周波数識別(RFID)タグ/RFID検出器、乗物、電気車両充電器、分散される発電機(例えば、ソーラーパネル)、分散される蓄電池(例えば、バッテリ)、及び、サーモメータのうちの1つ以上を含み；及び
前記IOTデバイスの前記デバイス機能は、メッセージキューテレメトリトランスポート(MQTT)、MQTTセンサ(MQTT-S)、制約されたアプリケーションプロトコル(CoAP)、代表ステートトランスファアプリケーションプロトコルインタフェース(REST  API)、及び、拡張可能メッセージングプレゼンスプロトコル(XMPP)を含む接続プロトコルを含む、請求項11に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願で開示される実施形態はIOT(Internet  of  Things)デバイスコンフィギュレーションに関連する。
【背景技術】
【０００２】
モノのインターネット(IOT)はコンピューティング装置(IoTデバイス)の相互接続に関連する。IOTデバイスは、一意に識別可能であり、コンピューティングネットワークを介して1つ以上の他のIOTデバイスと通信し、デバイスコンフィギュレーション(device  configuration)を形成する。複数のプロトコル、ドメイン及びアプリケーションがIOTデバイスに実装されてよい。(複数の)IOTデバイスの中で使用されるプロトコル、ドメイン及びアプリケーションは他のIOTデバイスとコンパチブルでないかもしれず、このことは、デバイスコンフィギュレーションの構築及び全てのIOTデバイス間の通信を困難にするかもしれない。
【０００３】
本願で対象とする事項は、如何なる問題点をも解決する実施形態や上述したような環境でしか動作しない実施形態には限定されない。むしろ、この背景技術は、ここで説明される何らかの実施形態が実施されてよい技術分野の一例を説明することのみのために与えられる。
【発明の概要】
【０００４】
実施の形態によれば、モノのインターネット(IOT)のデバイスコンフィギュレーションを構成する方法は、2つ以上のIOTデバイス間の特定の自動的な相互作用のデバイスコンフィギュレーションに関するソリューションテンプレートを選択するのに有効なユーザ入力を受けることを含む。本方法は、デバイスコンフィギュレーションに関する完全なソリューションテンプレートが選択されるか否かを判定することを含む。完全なソリューションテンプレートが選択されることに応じて、本方法はデバイスコンフィギュレーションを配備することを含む。部分的なソリューションテーブルが選択されることに応じて、本方法は、部分的なソリューションテンプレートに組み込まれる2つ以上のIOTデバイスを選択するのに有効な追加的なユーザ入力を受け、IOTデータベース内の選択されるIOTデバイスのデバイス機能にアクセスし、選択されるIOTデバイス間にネットワークコネクションを設定し、2つ以上のIOTデバイスに対するIOTデータベース内でアクセスされるデバイス機能を利用してデバイスコンフィギュレーションをシミュレーションし、シミュレーションに基づいて、デバイスコンフィギュレーションが使用可能であるか否かを判定することを含む。デバイスコンフィギュレーションが使用可能でない場合、本方法は、1つ以上の代替的なIOTデバイスを含むようにデバイスコンフィギュレーションを再構成することを含む。デバイスコンフィギュレーションが使用可能である場合、本方法はデバイスコンフィギュレーションを配備することを含む。
【０００５】
実施形態の課題及び利点は本願で特に指摘される要素、特徴及び組み合わせにより少なくとも実現及び達成される。
【０００６】
上記の一般的な説明及び以下の詳細な説明の双方は例示的及び説明的であり、本願の限定ではないことが理解されるべきである。
【図面の簡単な説明】
【０００７】
例示的な実施形態は、添付図面を利用することにより、追加的な特殊性及び詳細とともに記述及び説明される。
【図１】モノのインターネット(IOT)システムの一例を示す図である。
【図２】図1のIOTシステムに実装されてよい例示的なコンピュータサーバを示す図である。
【図３】図1のIOTシステムに実装されてよい例示的なIOTデータベースを示す図である。
【図４Ａ】デバイスコンフィギュレーションを構成する方法例のフローチャートを示す図である。
【図４Ｂ】デバイスコンフィギュレーションを構成する方法例のフローチャートを示す図である。
【図５】デバイスコンフィギュレーションをシミュレーションする方法例のフローチャートを示す図である。
【図６】デバイスコンフィギュレーションを配備する方法例のフローチャートを示す図である。
【図７】本願で説明される少なくとも1つの実施形態により配置されるデバイスコンフィギュレーションを確認する方法例のフローチャートを示す図である。
【発明を実施するための形態】
【０００８】
ハードウェア及び通信システムにおける技術進歩は、小型装置をより強力にし、互いに適切に通信できるようにする。モノのインターネット(IOT)はそのような技術進歩とともに出現した。IOTはオートメーションや監視などのような多くの有用な機能を生み出す。しかしながら、IOTは本来的に多様であり、細分化され、分野に特有である。多くのベンダは、他のベンダのデバイスの組み込みを禁止する独立したエコシステムを作成する傾向がある。その結果、第1タイプのデバイスを有するユーザは、第1タイプのデバイスを利用する他のタイプのデバイスに限定される。従って、ここで開示される実施形態は、ユーザの好みに応じてデバイスコンフィギュレーションの構成を可能にしかつ複数のタイプのデバイスが通信及び相互作用することを許容する環境をユーザに提供する。一実施形態では、デバイスコンフィギュレーションの構成プロセスにおいてIOTデータベースが使用される。IOTデータベースは、複数のデバイスの能力又は機能、デバイス間の相互運用性(インターオペラビリティ)、デバイス間のリンクの制約、様々なアプリケーションについての検討事項などを含んでよい。
【０００９】
あるシステムではユーザインタフェースが提供され、そのユーザインタフェースにより、複数のデバイスがデバイスコンフィギュレーションに組み込まれる。しかしながら、これらのシステムでは、セントラル化されるシステムが全てのデバイスをセントラルサーバに接続し、及び/又は、これらのシステムは限られた数のプロトコルで通信するデバイスをサポートするに過ぎない。例えば、これらのうち或る種のシステムは、パーソナルコンピュータ(PC)のような構成又は機構を提供する。デバイス(複数)はペリフェラルとして見え、これらの装置によるタスクはアプリケーションとして見える。従って、新たなデバイスを追加することは、ペリフェラルに組み込む(プラグインする)ことに類似し、タスクを追加することはアプリケーションをインストールすることに類似する。
【００１０】
ここで説明されるある種の実施形態は、複数のプロトコルで通信するIOT装置の統合を可能にする。さらに、いったんデバイスコンフィギュレーションに組み込まれると、デバイスは、セントラルシステムを経由する必要なしに、ピアツーピアで通信してもよい。一実施形態では、ユーザ入力に基づいてデバイスコンフィギュレーションを行使するコンフィギュレーションコントローラが提供される。コンフィギュレーションコントローラはユーザ入力を受信し、ユーザ入力は、2つ以上のIOTデバイス間の特定の自動的なやり取りに関し、特定のデバイスコンフィギュレーションに対するユーザの好みを提供する。ユーザ入力はソリューションテンプレート(solution  template)の選択を含んでよい。選択されるテンプレートは、ユーザがデバイスコンフィギュレーションにおける好みを更に指定することを可能にする部分的なソリューションテンプレートを含んでもよい。
【００１１】
ユーザは2つ以上のIOTデバイスの選択を与えてもよい。コンフィギュレーションコントローラは、選択されたIOTデバイスに対するIOTデータベース中のデバイス機能(device  capability)にアクセスし、選択されたIOTデバイス間にネットワークコネクション(ネットワーク接続)を設定してもよい。一実施形態において、デバイスコンフィギュレーションは、デバイスコンフィギュレーションが使用可能(又はオペレーショナル)であるか否かを判断するためにコンフィギュレーションコントローラによりシミュレーションされてもよい。デバイスコンフィギュレーションが使用可能でない場合、コンフィギュレーションコントローラは、代替的なIOTデバイスを含めるようにデバイスコンフィギュレーションを設定し直してもよい。デバイスコンフィギュレーションが使用可能である場合、コンフィギュレーションコントローラはそのデバイスコンフィギュレーションを配備してもよい。デバイスコンフィギュレーションを配備することは、IOTデバイスの各々に対してだけでなく、設定されるネットワークコネクションに含まれる他の任意のコンポーネントに対してもコンフィギュレーションパラメータを伝達することを含んでよい。
【００１２】
図1は例示的なIOTシステム100を示す。IOTシステム100では、システムサーバ126が、ユーザ102から受信されるユーザ入力に基づいて、IOTデバイスコンフィギュレーション118A及び/又は118B(一般的に、デバイスコンフィギュレーション118或いはデバイスコンフィギュレーション群118と言及される)を構成してよい。一実施形態において、ユーザ102は、デバイスコンフィギュレーション118の構成に使用されるユーザ入力を提供するために、コンフィギュレーションコントローラ104と相互作用する。
【００１３】
デバイスコンフィギュレーション118は、IOTデバイス106A-106C(一般に、IOTデバイス又はIOTデバイス群と言及される)、物理ハブ(physical  hub)120、クラウドサーバ108、ゲートウェイモジュール110、それらの組み合わせ、或いは、他の電子装置との何らかの組み合わせの間の特定の自動的な相互作用(又はやりとり)に関して構成されてもよい。特定の自動的な相互作用は、IOTデバイス106又はIOTデバイス群106のうちの任意の一部分についての任意の機能又は機能群のうちの任意の一部分を含んでもよい。例えば、デバイスコンフィギュレーション118は、自動化されるホームセキュリティ、睡眠中の自動化される寝心地調整、自動化されるエネルギ節約、自動化される料理、緊急事態に対する自動化される対応、自動化される高齢者の監視及び介護、自動化される健康管理、自動化されるリマインダ、及び、自動化される子供の世話などに関して構成されてもよい。ホームセキュリティの構成についての幾つかの追加的な詳細が以下に示される。
【００１４】
特定の自動化される相互作用及びIOTデバイス106は、ユーザ102の好みに従って決定されてもよい。従って、コンフィギュレーションコントローラ104はユーザ102の好みを受信するように構成されてもよい。ユーザ入力に基づいて、コンフィギュレーションコントローラ104は、その好みを取り込むデバイスコンフィギュレーション118を構成してもよい。
【００１５】
図1に示されるように、IOTシステム100は、システムサーバ126、ユーザ装置112、IOTデバイス106、物理ハブ120、クラウドサーバ108及びベンダサーバ130を含んでよい。更に、IOTシステム100において、ベンダ128はベンダサーバ130に関連付けられ、ユーザ102はユーザ装置112に関連付けられてもよい。
【００１６】
IOTシステム100において、システムサーバ126、ユーザ装置112、IOTデバイス106、物理ハブ120、クラウドサーバ108及びベンダサーバ130は、ネットワーク124を介して通信してよい。
【００１７】
ネットワーク124は、IOTシステム100の任意の構成要素(例えば、126、112、130、108、106及び120)の間で信号を通信するように構成される任意の通信ネットワークを含んでよい。第1デバイスコンフィギュレーション118A、第1のIOTデバイス106A、物理ハブ120及び第2のIOTデバイス106Bのような構成要素は、ネットワーク124を介して通信してよい。従って、デバイスコンフィギュレーション118の構成要素の一部分は、ネットワーク124の一部分のコンフィギュレーションコントローラ104による構成を含んでもよい。更に、デバイスコンフィギュレーション118の構成中の少なくとも一部分において、ユーザ装置112はネットワーク124を介してシステムサーバ126と通信してよい。更に、ベンダ128は、ネットワーク124を介して、システムサーバ126及び/又はユーザ装置112にベンダソリューションテンプレートを伝達してもよい。
【００１８】
従って、ネットワーク124は有線であってもよいし或いは無線であってもよい。ネットワーク124は、スター(星状)構成、トークンリング構成又は他の適切な構成を含む様々な構成を有してもよい。更に、ネットワーク124は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)(例えば、インターネット)、及び/又は、複数の装置が通信するその他の相互接続されるデータ経路を含んでもよい。一実施形態において、ネットワーク124はピアツーピア(P2P)ネットワークを含んでもよい。ネットワーク124は、様々な通信プロトコルでデータを通信可能にする電気通信ネットワークに結合されてもよいし或いはその一部を含んでいてもよい。
【００１９】
一実施形態において、ネットワーク124は、ブルートゥース(登録商標)通信ネットワーク、Z-Wave(登録商標)通信ネットワーク、ワイヤレスフィデリティ(WiFi)通信ネットワーク、ZigBee通信ネットワーク、HomePlug通信ネットワーク、電力線通信(PLC)通信ネットワーク、メッセージキューテレメトリトランスポート(MQTT)通信ネットワーク、MQTTセンサ(MQTT-S)通信ネットワーク、制約されたアプリケーションプロトコル(CoAP)通信ネットワーク、代表ステートトランスファアプリケーションプロトコルインタフェース(REST  API)通信ネットワーク、拡張可能メッセージングプレゼンスプロトコル(XMPP)通信ネットワーク、セルラ通信ネットワーク、何らかの同様な通信ネットワーク、或いは、データを送受信するためのそれらの任意の組み合わせ等を含んでもよいし或いは含むように構成されてもよい。ネットワーク124で通信されるデータは、ショートメッセージングサービス(SMS)、マルチメディアメッセージングサービス(MMS)、ハイパーテキストトランスファプロトコル(HTTP)、ダイレクトデータコネクション、ワイヤレスアプリケーションプロトコル(WAP)、電子メール(email)、スマートエネルギプロファイル(SEP)、ECHONET  Lite、OpenADR等を介して通信されるデータを含んでよいし、或いは、IOTデバイス106、物理ハブ(例えば、物理ハブ120)、クラウドサーバ通信或いはゲートウェイモジュール(例えば、ゲートウェイモジュール110)とともに実現される何らかの他のプロトコルを介して通信されるデータを含んでよい。
【００２０】
IOTシステム100において、ベンダサーバ130は、プロセッサ、メモリ及び通信機能を含むハードウェアサーバを含んでもよい。説明される実施形態では、ベンダサーバ130は、ユーザ装置112、システムサーバ126、IOTデバイス106、物理ハブ120及びクラウドサーバ108のうちの1つ以上との間でネットワーク124を介して情報を送受信するためにネットワーク124に結合される。
【００２１】
ベンダサーバ130はベンダ128に関連付けられてもよい。一般に、ベンダ128は、IOTデバイス106、物理ハブ120、クラウドサーバ108、ゲートウェイモジュール110、そこで使用される通信プロトコル、又は、それらの任意の組み合わせのうちの1つ以上を提供する任意の装置を含んでよい。例えば、一実施形態において、ベンダ128は、何れかのIOTデバイス106を開発及び販売する企業を含んでもよい。他の実施形態において、ベンダ128は、1つ以上のIOTデバイス106とともに使用する通信プロトコルを開発及び販売する者(又は個人)であってもよい。
【００２２】
ベンダ128により通信される情報及びデータの中に、ベンダサーバ130により、ベンダソリューションテンプレートが含まれてもよい。ベンダソリューションテンプレートは、特定の自動的な相互作用に対する命令(又は指示)を含んでもよい。例えば、ベンダソリューションテンプレートは、特定の自動的な相互作用に関わるIOTデバイス106、物理ハブ120及びゲートウェイモジュール110のリストを含んでもよい。更に、ベンダソリューションテンプレートは、IOTデバイス106、物理ハブ120及びゲートウェイモジュール110の情報及び機能を含み、情報及び機能は、例えば、特定の自動的な相互作用に関する、他のIOTデバイスとの相互運用性、制限及び理想的な状態などである。制限及び理想的な状態の具体例は、互いの近接性、見通し線に関する検討事項、他の機器に対する近接性、建物内の位置などを含んでもよい。
【００２３】
更に、ベンダ128は、ベンダサーバ130及びネットワーク124を介して、システムサーバ126、ユーザ装置112及びゲートウェイモジュール110と通信してもよい。例えば、ベンダ128は、デバイスコンフィギュレーション118の構成に使用される通信プロトコル間のパッチ(patch)を伝達してもよい。追加的又は代替的に、ベンダ128は、進行中の情報をシステムサーバ126及び/又はユーザ装置112に伝達してもよい。例えば、ベンダ128は、IOTデバイス106の機能に関連する更新、新たなIOTデバイスに関する情報などを伝達してもよい。それに応じてシステムサーバ126及び/又はユーザ装置112は更新情報を利用してデバイスコンフィギュレーション118の構成を可能にする。
【００２４】
更に、ある状況では、ベンダ128は、ベンダ128に関連するIOTデバイス106にクラウドサーバ(例えば、クラウドサーバ108)を介してしかアクセスが許可されないポリシを有してもよく、そのクラウドサーバもベンダ128に関連付けられる及び/又はベンダサーバ130でホストされる。これら及び他の状況において、ベンダ128に関連付けられていないIOTデバイス106、ゲートウェイモジュール110、物理ハブ120又はクラウドサーバ108のうちの1つ以上は、ベンダサーバ130を介して、ベンダ128に関連付けられるIOTデバイスと相互作用するために通信してもよい。ベンダ128に関連付けられていないIOTデバイス106、ゲートウェイモジュール110、物理ハブ120又はクラウドサーバ108のうちの1つ以上は、ベンダサーバ130を介して通信してもよい。
【００２５】
ユーザ102は、IOTシステム100において相互作用(やり取り)を行う任意の者又は装置を含んでよい。ユーザ102は、一般に、デバイスコンフィギュレーション118に含まれるIOTデバイス106が特定の自動的な相互作用を実行するように、1つ以上のデバイスコンフィギュレーション118を実現することを望んでいる。
【００２６】
ユーザ102はユーザ装置112に関連付けられてよい。例えば、ユーザ装置112から伝達されるデータがユーザ102に帰属し、ユーザ装置112に伝達されるデータがユーザ102を意図するように、ユーザ102はユーザ装置112を所有する又は定期的に操作してもよい。ユーザ装置112は、プロセッサ、メモリ及びネットワーク通信機能を含むコンピュータ装置を含んでよい。IOTシステム100において、ユーザ装置112は、システムサーバ126、IOTデバイス106、物理ハブ120、クラウドサーバ108及びベンダサーバ130のうちの1つ以上と通信するためにネットワーク124に結合される。
【００２７】
例えば、ユーザ装置112は、ユーザ102から入力を受け取り、受け取った入力をシステムサーバ126に伝える。一実施形態において、ユーザ装置112は、ユーザ入力をシステムサーバ126に伝えるブラウザベースのインタフェースにアクセスすることにより、システムサーバ126との通信を可能にしてもよい。
【００２８】
追加的又は代替的に、ユーザ装置112はユーザモジュール114を含む。ユーザモジュール114は、ウェブサービス、クラウドアプリケーション、ローカルに保存されたアプリケーション等を含んでよい。一実施形態において、ユーザモジュール114は、フィールドプログラマブルゲートアレイ(FPGA)又は特定用途向け集積回路(ASIC)を含むハードウェアを用いて実現されてもよい。他の場合において、ユーザモジュール114はハードウェア及びソフトウェアの組み合わせを用いて実現されてもよい。
【００２９】
ユーザモジュール114は、ユーザ装置112でローカルに受けた入力をシステムサーバ126に伝達するように構成されてもよい。更に、一実施形態において、ユーザモジュール114は、コンフィギュレーションコントローラ104に帰属する本願で説明される1つ以上の機能を提供してもよい。例えば、ユーザモジュール114は本願で説明されるようにデバイスコンフィギュレーション118の構築を可能にするように構成されてもよい。
【００３０】
ユーザ装置112の具体例は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、モバイル電話機、パーソナルディジタルアシスタント(PDA)、モバイル電子メール装置、携帯用ゲームプレーヤ、携帯用音楽プレーヤ、内蔵又は結合される1つ以上のプロセッサを備えるテレビジョン、或いは、ネットワークを介してアクセス及び通信することが可能なその他の電子装置などを含む。
【００３１】
物理ハブ120は、IOTデバイス106、ユーザ装置112、システムサーバ126、クラウドサーバ108又はそれらの任意の組み合わせのうちの1つ以上を無線又は有線により接続する任意のシステムを含んでよい。一実施形態において、物理ハブ120は、ルーティング機能を含んでもよく、及び/又は、デバイスコンフィギュレーション118の何れかに含まれる他の物理ハブ、ルータ又はスイッチと通信するための機能を含んでもよい。物理ハブ120は、何れのIOTデバイス106が何れと通信するかだけでなく、IOTデバイス106との通信を可能にするために実行される1つ以上のステップをも指示する1つ以上の構成パラメータを含んでもよい。構成パラメータ(コンフィギュレーションパラメータ)は、例えば、1つ以上のIOTデバイス106のインターネットプロトコル(IP)アドレス、送信側又は受信側の装置に基づくルーティングの指示、優先度情報、或いは、1つ以上のデバイスコンフィギュレーション118で使用される他の任意のパラメータを含んでもよい。
【００３２】
クラウドサーバ108は、インターネットで提供されるサービスをホストする(又はホストとなる)ように構成される任意のシステムを含んでよい。クラウドサーバ108は、プロセッサ、メモリ及び通信機能を含み、ネットワーク124を介してアクセス可能なハードウェアサーバを含んでよい。クラウドサーバ108は、デバイスコンフィギュレーション118に対する「仮想的な」サービス及び仮想的な装置を提供してもよい。例えば、クラウドサーバ108は、仮想的な装置の具体例であるゲートウェイモジュール110を含んでもよい。
【００３３】
ゲートウェイモジュール110は、ネットワーク124を介してアクセス可能であり、従って、物理的には遠隔的に設けられてもよい。ゲートウェイモジュール110は、異なる通信プロトコルを用いるIOTデバイス106の間で通信を可能にする任意のシステム又は装置を含んでよい。ゲートウェイモジュール110は、IOTデバイス106間の通信に使用される他の装置を含んでもよい。例えば、ゲートウェイモジュール110は、プロトコル及び/又は信号変換部、インピーダンス整合部、レート変換部、障害分離部などを含んでもよい。ゲートウェイモジュール110は、例えば、ゲートウェイモジュール110が何れのIOTデバイス106と通信してよいか、及び、IOTデバイス106との通信を可能にするために実行される1つ以上のステップを指示する1つ以上の構成パラメータを更に含んでもよい。図1の実施形態では示されていないが、IOTシステム100は、ゲートウェイモジュール110と実質的に類似し、ローカルにアクセスされてもよい(すなわち、非クラウドベースの)物理ゲートウェイを含んでもよい。
【００３４】
一実施形態において、クラウドサーバ108は、何れかのデバイスコンフィギュレーション118に対する他の機能を更に提供してもよい。例えば、クラウドサーバ108は、コンピューティングサービス、アグリゲーション(又は統合)サービス、データベースへのアクセス、或いは、適切な他の何らかのクラウドベースのサービス又はシステムを提供してもよい。クラウドサーバ108は1つ以上の構成パラメータを含んでもよい。構成パラメータは、クラウドサーバ108により提供されるサービス及び/又はクラウドサーバ108が通信するIOTデバイス106を指示してもよい。
【００３５】
IOTデバイス106は、プロセッサ、メモリ及び通信機能を含むコンピュータベースのハードウェアデバイスを含んでもよい。各々のIOTデバイス106は、ユーザ装置112、システムサーバ126、ベンダサーバ130、他のIOTデバイス106、クラウドサーバ108及び物理ハブ120のうちの1つ以上と通信するためにネットワーク124に結合されてもよい。IOTデバイス106の具体例は、電球、照明システム、ドアロック、温水器(湯沸かし器)、スプリンクラーシステム、空調機(エアコン)、サーモスタット、アラームクロック、窓の日よけ、スイッチ、煙報知器、カメラ、エッグマインダ(egg  minder)、電気差し込み口、パーソナル(例えば、ピギー)バンク(貯金箱)、プロパン(ガス)タンク、アラーム、対人近接センサ、ドアセンサ、バイオメトリックセンサ(生体情報センサ)、マットレス、モバイル装置、車両センサ、時計、調理装置、電気遮断機、防犯警報機、動きセンサ、カレンダ、テレビジョン、ラジオ、無線周波数識別(RFID)タグ/RFID検出器、乗物、電気車両充電器、分散される発電機(例えば、ソーラーパネル)、分散される蓄電池(例えば、バッテリ)、及び、サーモメータ等を含む。
【００３６】
デバイスコンフィギュレーション118は、IOTデバイス106が1つ以上の特定のタイプのデータを通信するように、ユーザ102の入力に基づいてコンフィギュレーションコントローラ104により構成される。例えば、センサとして配備されるIOTデバイス106は測定された状態を表す信号を通信してもよいし、特定の処理を実行するように配備されるIOTデバイス106は制御信号を受信するように構成されてもよいし、コントローラとして配備されるIOTデバイス106は、機器の動作が変更される基礎となる状態(又は条件)を把握してもよい。
【００３７】
IOTデバイス106は1つ以上の通信プロトコルを介して通信してもよい。例えば、一実施形態において、IOTデバイス106又はそれらの一部分はベンダ128により供給されてもよい。IOTデバイス106は、特定の機能のために及び/又は1つ以上の他のIOTデバイス106とともに使用するために提供されてもよい。ベンダ128により提供されるIOTデバイス106は、特定の通信プロトコルにより通信してもよい。
【００３８】
ある通信プロトコルは他の通信プロトコルとコンパチブル(両立可能)であるかもしれない。例えば、第1のIOTデバイス106Aの第1プロトコルは、第2のIOTデバイス106Bの第2プロトコルに変換されてもよい。しかしながら、他のプロトコルは、他の全てのIOTデバイス106及び/又は他の通信プロトコルとコンパチブルでないかもしれない。2つのIOTデバイス106が相違してはいるがコンパチブルである2つの通信プロトコルを用いて通信する状況では、物理ハブ120、適切な通信アプリケーションを有するユーザ装置112、ゲートウェイモジュール110、又は、何らかの組み合わせが、それらの間で通信できるように配備されてもよい。
【００３９】
システムサーバ126は、プロセッサ、メモリ及び通信機能を含むハードウェアサーバを含んでよい。説明される実施形態では、システムサーバ126は、ユーザ装置112、ベンダサーバ130、クラウドサーバ108、IOTデバイス106及び物理ハブ120のうちの1つ以上と通信するためにネットワーク124に結合される。
【００４０】
システムサーバ126はIOTデータベース116を含んでもよい。一般に、IOTデータベース116は、1つ以上のIOTデバイス106の機能及びそれらの間の相互運用性(インターオペラビリティ)を含んでもよい。例えば、図3を参照すると、例示的なIOTデータベース116が示されている。IOTデータベース116は、デバイス機能データベース310とデバイス相互運用性データベース312とを含む。デバイス機能データベース310は、IOTデバイス106の各々に対するデバイス機能304を含む。例えば、図3のIOTデータベース116において、第1のIOTデバイス106Aは第1デバイス機能304Aを含む。第1デバイス機能304Aは、「スマートエネルギプロファイル1.1」及び「ZigBee」通信プロトコルを利用して通信する機能を含む。更に、第2のIOTデバイス106Bは第2デバイス機能304Bを含む。第2デバイス機能304Bは、「XMPP」及び「Z-Wave」通信プロトコルを用いて通信する機能を含む。
【００４１】
図3のIOTデータベース116には示されていないが、デバイス機能データベース310は、1つ以上のアプリケーションインタフェースプロトコル(API)に関する情報を含んでもよい。例えば、デバイス機能データベース310は、APIの名称、APIのための引数(argument)等を含んでもよい。
【００４２】
デバイス相互運用性データベース312は、IOTデバイス106の1つ以上のデバイスの組み合わせ306についてのデバイス相互運用性を含む。例えば、デバイスの組み合わせ306は、第1のIOTデバイス106Aと第2のIOTデバイス106Bとの第1組み合わせ306A、第2のIOTデバイス106Bと第3のIOTデバイス106Cとの第2組み合わせ306B、及び、第3のIOTデバイス106Cと第1のIOTデバイス106Aとの第3組み合わせ306Cを含む。各々のデバイスの組み合わせ306に関し、通信ソリューション(「ソリューション308」)がデバイス相互運用性データベース312に含まれてよい。例えば、第1組み合わせ306Aの場合、第1ソリューション308Aは「クラウドにおけるXMPP及びSEP1.1間のトランスレータゲートウェイアプライアンス」及び/又は「ZigBee及びZ-Waveを使用する物理ハブ」を含んでよい。従って、図3の例示的なIOTデータベースにおいて、第1のIOTデバイス106A及び第2のIOTデバイス106Bの間の通信は、「クラウドにおけるXMPP及びSEP1.1間のトランスレータゲートウェイアプライアンス」及び/又は「ZigBee及びZ-Waveを使用する物理ハブ」を利用する。
【００４３】
図3のIOTデータベース116は、3つのIOTデバイス106A-106Cに関する情報を含む。一実施形態において、IOTデータベース116は、3つより多い数のIOTデバイス106に関する情報を含んでよい。更に、図3のIOTデータベース116は、デバイス機能304、デバイスの組み合わせ306及びソリューション308を含む。一実施形態において、IOTデータベース116は、1つ以上のIOTデバイス106間のリンクに関する情報(例えば、制約)を含んでもよい。
【００４４】
図1を再び参照すると、システムサーバ126はコンフィギュレーションコントローラ104を含んでいる。コンフィギュレーションコントローラ104は、デバイスコンフィギュレーション118の構成を可能にするためのコード及びルーチンを含む。図1において、コンフィギュレーションコントローラ104はシステムサーバ126内に含まれる。一実施形態において、コンフィギュレーションコントローラ104は、部分的に、ユーザ装置112に保存されるシンクライアントアプリケーション(例えば、ユーザモジュール114)として、及び、部分的に、システムサーバ126に保存されるコンポーネントとして動作してもよい。一実施形態において、コンフィギュレーションコントローラ104は、システムサーバ126、物理ハブ120、クラウドサーバ108、ゲートウェイモジュール110、ユーザ装置112又はそれらの任意の組み合わせのうちの組み合わせの中に保存されてもよい。例えば、コンフィギュレーションコントローラ104は、ウェブサーバ、クラウドアプリケーション、ローカルに保存されるアプリケーション等を含んでもよい。一実施形態において、コンフィギュレーションコントローラ104は、フィールドプログラマブルゲートアレイ(FPGA)又は特定用途向け集積回路(ASIC)を含むハードウェアを用いて実現されてもよい。他の場合において、コンフィギュレーションコントローラ104は、ハードウェア及びソフトウェアの組み合わせを用いて実現されてもよい。
【００４５】
一般に、コンフィギュレーションコントローラ104は、ユーザ102からの入力に基づいてデバイスコンフィギュレーション118を構成するように、ユーザ102により構成されてもよい。デバイスコンフィギュレーション118は、1つ以上のユーザ102の好みに従って及び/又は完全なソリューションテンプレート(complete  solution  template)に従って構成されてもよい。ユーザの好みは、ソリューションテンプレートの選択、1つ以上のIOTデバイス106の選択、IOTデバイス106の1つ以上の利用可能なパラメータの選択、IOTデバイス106の1つ以上の制約の選択などを含むユーザ入力を含んでもよい。
【００４６】
一実施形態において、デバイスコンフィギュレーション118の構築を開始するために、ユーザ102はソリューションテンプレートを選択してもよい。ソリューションテンプレートは、完全なソリューションテンプレート又は部分的な(不完全な)ソリューションテンプレート(partial  solution  template)を含んでよい。完全なソリューションテンプレートは、特定の自動的な相互作用に対する全ての情報又はほとんど全ての情報を含む。完全なソリューションテンプレートは検査され、その検査は、完全なソリューションテンプレートに関連するデバイスコンフィギュレーション118をコンフィギュレーションコントローラ104が簡易に配備できるようにする。追加的又は代替的に、完全なソリューションテンプレートは、予め選択されるIOTデバイス106を含んでもよい。完全なソリューションテンプレートは、マークされてもよいし、或いは、コンフィギュレーションコントローラ104がソリューションテンプレートを完全なソリューションテンプレートとして特定することを許容する旨の指示を含んでもよい。
【００４７】
部分的なソリューションテンプレート(完全ではないソリューションテンプレート)を利用することは、ユーザ102からの追加的な入力を伴う。例えば、部分的なソリューションテンプレートは、IOTデバイス106の間の特定の自動的な相互作用のアウトライン又は概要を含んでよい。部分的なソリューションテンプレートは、何らかの示唆(又は提案)されるIOTデバイス106、何らかの示唆される構成パラメータ、1つ以上のIOTデバイス106とともに達成される1つ以上の関連する機能、及び、特定の自動的な相互作用を達成するために実現されるIOTデバイス106のカテゴリを含んでもよい。
【００４８】
ソリューションテンプレートは、ホームオートメーション、エネルギ利用、ホームセキュリティ等のような1つ以上の利用形態に応じた論理(例えば、分岐、if/elseステートメント(条件分岐)、及び、ループ等)を含んでもよい。更に、ソリューションテンプレートは、分岐における条件のような論理に含まれる1つ以上の条件を含んでもよい。論理のうちの一部はユーザ102によって修正可能であってもよい。更に、ユーザ102は、コンフィギュレーションコントローラ104に入力するユーザの好みに従って、ソリューションテンプレートにおける論理を変更できてもよい。ベンダソリューションテンプレートは、完全なソリューションテンプレート又は部分的な(不完全な)ソリューションテンプレートを含んでもよい。
【００４９】
ユーザ102が完全なソリューションテンプレートを選択する場合に、コンフィギュレーションコントローラ104はそのデバイスコンフィギュレーション118を配備してもよい。しかしながら、ユーザ102が部分的なソリューションテンプレートを選択する場合、ユーザ102は、デバイスコンフィギュレーション118において使用のための2つのIOTデバイス106を選択してもよい。コンフィギュレーションコントローラ104は、選択されたIOTデバイス106に関連する、IOTデータベース116に保存された情報にアクセスしてもよい。
【００５０】
例えば、コンフィギュレーションコントローラ104はIOTデバイス106の機能及び/又はデバイス相互運用性にアクセスしてもよい。コンフィギュレーションコントローラ104は、IOTデータベース116内でアクセスされた関連情報、選択されたIOTデバイス106及び部分的なソリューションテンプレートを利用して、選択されたIOTデバイス106間のネットワークコネクションを構成してもよい。
【００５１】
更に、ベンダソリューションテンプレートが提供される状況において、コンフィギュレーションコントローラ104は、ベンダソリューションテンプレートに含まれるIOTデバイス106に関連する、IOTデータベース116内の情報にアクセスしてもよい。コンフィギュレーションコントローラ104は、ベンダソリューションテンプレート及びIOTデータベース116からのアクセスされた情報を利用して、ベンダソリューションテンプレートに含まれるIOTデバイス106間のネットワークコネクションを構成してもよい。IOTデバイス106間のネットワークコネクションは、IOTデバイス106間の直接的な1つ以上のコネクションを含んでもよい。追加的又は代替的に、ネットワークコネクションはIOTデバイス間の間接的な1つ以上のコネクションを含んでもよい。例えば、IOTデバイス106間の間接的なコネクションは、物理ハブ120、ゲートウェイモジュール110、ユーザ装置112及びクラウドサーバ108等のような1つ以上の他のコンポーネントを介してもよい。
【００５２】
一実施形態において、コンフィギュレーションコントローラ104は、ネットワークコネクションがランナブル(runnable)であるか否かを検出してもよい。例えば、ソリューションテンプレートがある条件を有し、第1のIOTデバイス106Aにより充足される場合に、第2のIOTデバイス106Bで処理を開始してもよい。コンフィギュレーションコントローラ104は、デバイスコンフィギュレーション118に有用な条件に合致しない場合に、第2のIOTデバイス106Bにおける他の処理を決定してもよい。追加的又は代替的に、コンフィギュレーションコントローラ104は、デバイスコンフィギュレーション118における競合する状況(conflicting  scenario)を検出してもよい。例えば、第1のIOTデバイス106Aで判断される第1状態(条件)が第2のIOTデバイス106Bにおける第1アクションのトリガを与え、第3のIOTデバイス106Cにおける第2状態(条件)が、第2のIOTデバイス106Bにおける第2の競合するアクションを引き起こすかもしれない。第1アクション及び第2アクションは競合(又はコンフリクト)として識別される。
【００５３】
IOTデータベース116からの情報に基づいて、コンフィギュレーションコントローラ104はデバイスコンフィギュレーション118をシミュレーションしてもよい。シミュレーションに基づいて、コンフィギュレーションコントローラ104はデバイスコンフィギュレーション118が使用可能であるか否かを判断してもよい。デバイスコンフィギュレーション118が使用可能でないことに応じて、コンフィギュレーションコントローラ104は、1つ以上の代替的なIOTデバイス(例えば、106)を含めるようにデバイスコンフィギュレーション118を構成し直してもよい。デバイスコンフィギュレーション118が使用可能であることに応じて、コンフィギュレーションコントローラ104はそのデバイスコンフィギュレーション118を配備してもよい。配備は、IOTデバイス106及び/又はデバイスコンフィギュレーション118に含まれるIOTシステムの他の構成要素に、構成パラメータを伝達することを含んでもよい。
【００５４】
更に、一実施形態において、デバイスコンフィギュレーション118が使用可能であることに応じて、コンフィギュレーションコントローラ104はユーザ102にマーケットプレイス(marketplace)を表示してもよい。マーケットプレイスは、デバイスコンフィギュレーション118の特定の自動的な相互作用について使用される物理IOTデバイス106及び仮想的な装置のリストを提供してもよい。マーケットプレイスは、更に、1つ以上のIOTデバイス106及び仮想的な装置の購入を可能にしてもよい。
【００５５】
一実施形態において、マーケットプレイスは、デバイスコンフィギュレーション118を構築することとは異なる時間にユーザ102に表示されてもよい。例えば、マーケットプレイスは、ユーザがソリューションテンプレートを選択できるようにする構築の初期段階の間に表示されてもよい。追加的又は代替的に、マーケットプレイスは、ユーザがIOTデバイス106を選択した後に表示されてもよい。例えば、IOTデバイス106のユーザ102による選択は、マーケットプレイスを介してなされてもよく、ネットワークコネクションを設定するために使用されてもよい。
【００５６】
デバイスコンフィギュレーション118を配備した後に、コンフィギュレーションコントローラ104はデバイスコンフィギュレーション118を確認してもよい。例えば、デバイスコンフィギュレーション118は、トリガ信号を用いて確認されてもよい。一実施形態において、トリガ信号は、生成されてもよいし、或いは、デバイスコンフィギュレーション118のトリガする状態又は起動状態(triggering  condition)をマニュアルでエミュレートするようにユーザ102により入力されてもよい。例えば、ユーザ102は、部屋を暖めること、IOTデバイス106のうちの何れかを操作すること等を行ってもよい。
【００５７】
コンフィギュレーションコントローラ104は、トリガ状態からの結果のデバイス入力、及び/又は、デバイスコンフィギュレーション118の配備の後に生じるデバイス入力を記録してもよい。コンフィギュレーションコントローラ104は、IOTデータベース116内の情報に基づいて予想されるパフォーマンスとデバイス入力とを比較してもよい。ミスマッチ(不整合)が存在する場合、コンフィギュレーションコントローラ104は、そのミスマッチを示すチケットメッセージを生成してもよい。生成されるチケットは、IOTデータベース116における情報を更新又は変更するアドミニストレータに通知されてもよい。IOTデータベース116における情報は、そのミスマッチを反映するように更新されてもよい。
【００５８】
一実施形態において、コンフィギュレーションコントローラ104は、ユーザがユーザ入力を伝えるユーザインタフェースを含む及び/又は提供してもよい。ユーザインタフェースは、ドラッグアンドドロップ入力、居場所又は位置についてのインタラクティブな地図、利用可能なパラメータを設定するための右マウスクリック機能、利用可能なパラメータを設定するためのポップアップメニュー、ドロップダウンメニュー内に制限される選択肢、(高度なユーザによる)プログラミング言語のようなテキストベースの入力(文字入力)、それらの何らかの組み合わせ、或いは、適切な任意の他のユーザ入力を含んでもよい。
【００５９】
IOTシステム100には2つのデバイスコンフィギュレーション118が存在する。別の実施形態では、IOTシステム100は複数のデバイスコンフィギュレーション118を含んでもよい。例えば、デバイスコンフィギュレーション118の具体例は、ホームセキュリティコンフィギュレーションを含んでよい。ホームセキュリティコンフィギュレーションでは、IOTデバイス106はドアセンサを含んでもよいし、別のIOTデバイス106はカメラを含んでもよいし、クラウドサーバ108は顔認識サービスを提供するように実現されてもよい。ある個人がドアセンサにトリガを与えると、カメラがトリガを受ける。その人の写真が顔認識サービスに伝達され、顔認識サービスはその人の身元を確認してもよい。その人が(違法な)侵入者として確認されると、顔認識サービスは、ユーザ装置112の所有者及び/又はコンピューティング装置の近所(又は隣人)にメッセージを伝達してもよい。その人が所有者(オーナー)として確認されると、オーナーが帰宅していることを示すように設定が変更され、カメラにトリガを与えるドアセンサを停止してもよい。更に、そのような設定は、メディアレコーダ又はスプリンクラーのような他のIOTデバイスを起動してもよい。
【００６０】
ホームセキュリティコンフィギュレーションの状況において、コンフィギュレーションコントローラ104は、ユーザ102からユーザ入力を受信するように構成されてもよい。入力は、「セキュリティ」テンプレートのようなセンサテンプレートの選択を含んでもよい。セキュリティテンプレートが部分的なソリューションテンプレートを含む状況において、セキュリティテンプレートの選択の後に、ユーザ102は、ドアセンサ、カメラ、顔認識サービス、隣人、アラートタイプ(警報の種類)を選択し、顔認識サービスで使用するために自身の写真を提供すること等を行ってもよい。コンフィギュレーションコントローラ104は、カメラ、ドアセンサ、顔認識、及び、メッセージに関わる要素に関するIOTデータベース116の中でアクセスされる機能を利用して、ドアセンサ、カメラ、顔認識センサ等の間の特定の自動的な相互作用(例えば、侵入者が家に入ること及びオーナーが家に入ること)に対するデバイスコンフィギュレーションをシミュレートしてもよい。
【００６１】
シミュレーションに基づいて、コンフィギュレーションコントローラ104は、ホームセキュリティコンフィギュレーションが使用可能であるか否かを判断してもよい。デバイスコンフィギュレーションが使用可能でないことに応じて、コンフィギュレーションコントローラ104は、1つ以上の代替的なIOTデバイスを包含するようにホームセキュリティコンフィギュレーションを設定し直してもよい。例えば、カメラが顔認識サーバに写真を伝達できない場合、コンフィギュレーションコントローラ104は、別のカメラ又は別のタイプのカメラを示唆するメッセージを通知してもよい。ホームセキュリティコンフィギュレーションが使用可能であることに応じて、或いは、セキュリティテンプレートが完全なソリューションテンプレートを含むことに応じて、コンフィギュレーションコントローラ104はホームセキュリティコンフィギュレーションを配備してもよい。例えば、コンフィギュレーションコントローラ104は、ドアセンサ、カメラ、顔認識サービス、及び、メッセージに含まれる要素の各々に構成パラメータを伝達してもよい。ユーザ102は、ドアから家に入り、他者を家に入らせることにより、トリガ信号を生成してもよい。トリガ信号の結果によるデータに基づいて、コンフィギュレーションコントローラ104はホームセキュリティコンフィギュレーションを確認してもよい。
【００６２】
デバイスコンフィギュレーションの別の例は、快適性調整コンフィギュレーションを含む。快適性調整コンフィギュレーションでは、IOTデバイス106は、バイオメトリックセンサ、分析サービス、サーモスタット、及び、マットレス調整システムを含んでもよい。個人の測定される生体状態(条件)が分析サービスにおける設定をトリガする場合、サーモスタットが室温を調整してもよいし、或いは、マットレス調整システムがマットレスの堅さを調整してもよい。バイオメトリックセンサは分析サービスに信号を伝達し、分析サービスは、その調整が個人の睡眠を改善するか否かを示す。
【００６３】
快適性調整コンフィギュレーションの状況において、コンフィギュレーションコントローラ104は、ユーザ102からユーザ入力を受けるように構成されてもよい。入力は、「快適性」テンプレートのようなセンサテンプレートの選択を含んでもよい。快適性テンプレートが部分的なソリューションテンプレートを含む状況において、その快適性テンプレートの選択の後に、ユーザ102は、サーモスタット、バイオメトリックセンサ、分析サービス、及び、マットレス調整システムを選択してもよい。コンフィギュレーションコントローラ104は、IOTデータベース116の中でアクセスされる機能を利用して、選択されたIOTデバイス間の特定の自動的な相互作用に対するデバイスコンフィギュレーションをシミュレートしてもよい(例えば、温度が過剰に高くされてもよいし、或いは、ベッドが過剰に硬くされてもよい)。
【００６４】
シミュレーションに基づいて、コンフィギュレーションコントローラ104は、快適性調整コンフィギュレーションが使用可能であるか否かを判断してもよい。快適性調整コンフィギュレーションが使用可能でないことに応じて、コンフィギュレーションコントローラ104は、1つ以上のIOTデバイス(例えば、別のタイプのサーモスタット)を包含するように快適性調整コンフィギュレーションを設定し直してもよい。快適性調整コンフィギュレーションが使用可能であることに応じて、或いは、快適性テンプレートが完全なソリューションテンプレートを含むことに応じて、コンフィギュレーションコントローラ104はその快適性調整コンフィギュレーションを配備してもよい。例えば、コンフィギュレーションコントローラ104は、IOTデバイス106の各々に構成パラメータを伝達してもよい。ユーザ102は、部屋を暖めることや、ユーザが起きている間にバイオメトリックセンサを取り付けること等によって、トリガ信号を生成してもよい。トリガ信号に起因するデータに基づいて、コンフィギュレーションコントローラ104は快適性調整コンフィギュレーションを確認してもよい。
【００６５】
デバイスコンフィギュレーション118の別の具体例は、エネルギ節約コンフィギュレーションを含んでもよい。エネルギ節約コンフィギュレーションにおいて、IOTデバイス106は機器(例えば、テレビジョン)及びユーザ装置112を含んでもよい。ある人が機器を動作させたまま家を出る場合に、ユーザ装置112にメッセージが伝達され、機器が遠隔的にターンオフにされてもよい。
【００６６】
エネルギ節約コンフィギュレーションの状況において、入力は、「エネルギ節約」テンプレートのようなセンサテンプレートの選択を含む。エネルギ節約テンプレートが部分的なソリューションテンプレートを含む状況において、そのエネルギ節約テンプレートの選択の後に、ユーザ102は機器及びユーザ装置112を選択してもよい。コンフィギュレーションコントローラ104は、IOTデータベース116内でアクセスされる機能を利用して、選択されるIOTデバイス106間の特定の自動的な相互作用に対するデバイスコンフィギュレーションをシミュレーションしてもよい(例えば、その人が機器を動作させたまま立ち去る)。シミュレーションに基づいて、上述したように、コンフィギュレーションコントローラ104は、エネルギ節約コンフィギュレーションが使用可能であるか否かを判断し、ユーザ装置112及び機器に構成パラメータを伝達してもよい。
【００６７】
本開示の範囲から逸脱することなく、IOTシステム100に対して修正、付加又は削除がなされてもよい。例えば、図1は、1人のユーザ102に関連する1つのユーザ装置112、3つのIOTデバイス106、1つの物理ハブ120、1つのクラウドサーバ108、1つのベンダサーバ130、2つのデバイスコンフィギュレーション118、1つのゲートウェイモジュール110、及び、1つのシステムサーバ126を示しているが、本開示は、1人以上のユーザ102に関連する1つ以上のユーザ装置112、1つ以上のIOTデバイス106、1つ以上の物理ハブ120、1つ以上のクラウドサーバ108、1つ以上のベンダサーバ130、1つ以上のデバイスコンフィギュレーション118、1つ以上のゲートウェイモジュール110、1つ以上のシステムサーバ126、或いは、それらの任意の組み合わせに適用されてもよい。更に、ここで説明される実施形態における様々な要素及びサービスの区分けは、全ての実施形態でそのような区分けがなされることを示すようには意図されてない。開示される要素及びサーバは、一般に、単独の要素又はサーバに一緒に統合されてもよいし、或いは、複数の要素又はサーバに分離されてもよいことは、本開示の恩恵とともに理解される。
【００６８】
IOTシステム100において、メモリは、ここで説明される機能を提供するためのデータを保存する一時的でないメモリを含んでよい。メモリはストレージに含まれてもよく、ストレージは、ダイナミックランダムアクセスメモリ(DRAM)デバイス、スタティックランダムアクセスメモリ(SRAM)デバイス、フラッシュメモリ、或いは、何らかの他のメモリデバイスであってもよい。一実施形態において、ストレージは、不揮発性メモリ又は類似する永続的なストレージデバイス及び媒体を含んでよく、例えば、ハードディスクドライブ、フロッピディスクドライブ、CD-ROMデバイス、DVD-ROMデバイス、DVD-RAMデバイス、DVD-RWデバイス、フラッシュメモリデバイス、或いは、より永続的な形態で情報を保存する何らかの他の大容量ストレージデバイスを含んでもよい。
【００６９】
図2は例示的なシステムサーバ126のブロック図を示し、システムサーバ126は、例示的に、コンフィギュレーションコントローラ104、IOTデータベース116、プロセッサ212、メモリ216、及び、通信ユニット214を含む。システムサーバ126の構成要素(例えば、104、116、212、214、216)はバス218により通信可能に結合される。
【００７０】
図2において、コンフィギュレーションコントローラ104はシステムサーバ126内に含まれる。別の実施形態では、コンフィギュレーションコントローラ104又はそのうちの一部分又はそれに帰属する機能は、ユーザ装置112又は図1のIOTシステム100の1つ以上の他の構成要素内に含まれてもよい。
【００７１】
プロセッサ212は、算術演算論理ユニット(ALU)、マイクロプロセッサ、汎用コントローラ、又は、演算を実行するように構成される何らかの他のプロセッサアレイを含んでもよい。プロセッサ212は他の要素と通信するためのバス218に結合されてもよい。プロセッサ212は、一般に、データ信号を処理し、様々なコンピューティングアーキテクチャを含んでもよく、コンピューティングアーキテクチャは、復号命令セット(CISC)アーキテクチャ、縮小命令セットコンピュータ(RISC)アーキテクチャ、又は、命令セットの組み合わせを実現するアーキテクチャを含む。図2は1つのプロセッサ212を含んでいるが、複数のプロセッサがシステムサーバ126に含まれてもよい。他のプロセッサ、オペレーティングシステム、センサ、ディスプレイ及び物理的な構成も可能である。
【００７２】
メモリ216は、プロセッサ212により実行される命令及び/又はデータを保存するように構成される。メモリ216は、他の要素と通信するためのバス218に結合される。命令及び/又はデータは、ここで説明される技術又は方法を実行するためのコードを含んでよい。メモリ216は、DRAMデバイス、SRAMデバイス、フラッシュメモリ又は何らかの他のメモリバイスを含んでもよい。一実施形態において、メモリ216は、不揮発性メモリ又は類似する永続的なストレージデバイス及び媒体を含んでよく、例えば、ハードディスクドライブ、フロッピディスクドライブ、CD-ROMデバイス、DVD-ROMデバイス、DVD-RAMデバイス、DVD-RWデバイス、フラッシュメモリデバイス、或いは、より永続的な形態で情報を保存する何らかの他の大容量ストレージデバイスを含んでもよい。
【００７３】
通信ユニット214は、ユーザ装置112、ベンダサーバ130及びIOTデバイス106に対して及びそれらからデータを送信及び受信するように構成される。通信ユニット214はバス218に結合される。一実施形態において、通信ユニット214は、図1のネットワーク124に対する又は他の通信チャネルに対する直接的な物理的なコネクションのためのポートを含む。例えば、通信ユニット214は、IOTシステム100の要素と有線通信するためのUSB、SD、CAT-5又は類似するポートを含んでもよい。一実施形態において、通信ユニット214は1つ以上の無線通信方法を利用して通信チャネルを介してデータを送受信する無線トランシーバを含み、1つ以上の通信方法は、IEEE802.11、IEEE802.15、IEEE802.16、BLUETOOTH(登録商標)、ZigBee、Z-Wave、Home  Plug、GSM（登録商標）(global  system  for  mobile)、GPRS(general  packet  radio  service)、EDGE(enhanced  data  rates  for  GSM  evolution)、符号分割多重アクセス(CDMA)、UMTS(universal  mobile  telecommunications  system)、LTE(long-term  evolution)、LTE-A(LTE-Advanced)、MQTT、MQTT-S、CoAP、REST  API、XMPP、或いは、その他の適切な有線及び/又は無線通信方法等を含む。
【００７４】
一実施形態において、通信ユニット214は、SMS、MMS、HTTP、ダイレクトデータコネクション、WAP、電子メール又は適切な他のタイプの電子通信を介することを含むセルラ通信ネットワークを介してデータを送信及び受信するセルラ通信トランシーバを含む。一実施形態において、通信ユニット214は有線ポート及び無線トランシーバを含む。通信ユニット214は、TCP/IP、HTTP、HTTPS及びSMTP等を含む標準的なネットワークプロトコルを利用してファイル及び/又はメディアオブジェクトを配布するために、図1のネットワーク124に対する従来の他のコネクションを提供してもよい。
【００７５】
図2の実施形態において、コンフィギュレーションコントローラ104は、確認モジュール202、シミュレーションモジュール204、コンフィギュレーションモジュール206、配備モジュール208、通信モジュール252、及び、マーケットプレイスモジュール210(まとめてIOTモジュール270と言及される)を含む。各々のIOTモジュール270は、1つ以上の処理を実行するように構成される1つ以上のルーチンを含むソフトウェアとして実現されてもよい。IOTモジュール270は、以下に説明される機能を提供するようにプロセッサ212により実行可能な一群の命令を含んでよい。一例において、IOTモジュール270は、システムサーバ126のメモリ216に保存されていてもよいし或いは少なくとも一時的にロードされてもよく、プロセッサ212によりアクセス可能でありかつ実行可能である。IOTモジュール270のうちの1つ以上は、バス218を介して、プロセッサ212及びシステムサーバ126の要素と協調及び通信するように構成されてもよい。
【００７６】
通信モジュール252は、コンフィギュレーションコントローラ104とシステムサーバ126の他の要素(例えば、116、212、214、216及び218)との間の通信を処理するように構成される。通信モジュール252は、ユーザ装置112、ベンダサーバ130及びIOTデバイス106のうちの1つ以上に対して及びそれらから、通信ユニット214を介して、データを送信及び受信するように構成される。一例において、通信モジュール252は、図1のIOTシステム100の要素からのデータを、通信ユニット214を介して、受信及び/又は転送するように他のモジュール(例えば、202、204、206、208及び210)と協調してもよい。
【００７７】
一実施形態において、通信モジュール252は、ベンダ130からベンダソリューションテンプレート228(図2のベンダテンプレート228)を受信又はアクセスするように構成されてよい。ベンダソリューションテンプレート228は、特定の自動的な相互作用に適切な又は提案される1つ以上のIOTデバイス(例えば、IOTデバイス106)を含んでもよい。更に、ベンダソリューションテンプレート228は、特定の自動的な相互作用に関連する情報(例えば、コンフィギュレーションパラメータ226、IOTデバイスの限定的制約など)を含んでもよい。通信モジュール252は、IOTデータベース116及び/又は確認モジュール202にベンダソリューションテンプレート228を伝達してもよい。ベンダソリューションテンプレート228は、完全なソリューションテンプレート又は部分的なソリューションテンプレートを含んでよい。
【００７８】
通信モジュール252は、ユーザ装置112からユーザ入力234を受信するように構成されてよい。ユーザ入力234は、テンプレート選択232及び/又はIOTデバイス選択230を含んでよい。通信モジュール252は確認モジュール202にユーザ入力234を伝達してもよい。
【００７９】
テンプレート選択232は、IOTデータベース116又は適切な他のロケーションに保存される部分的なソリューションテンプレート又は完全なソリューションテンプレート(図2のソリューションテンプレート224)を参照してよい。ソリューションテンプレート224は、1つ以上のIOTデバイス106の特定の自動的な相互作用に関する情報を含んでよい。
【００８０】
デバイスコンフィギュレーション118又はここで説明されるような何らかのデバイスコンフィギュレーションを構成するために、確認モジュール202は、デバイスコンフィギュレーション118について完全なソリューションテンプレートが選択されるか否かを確認してもよい。例えば、確認モジュール202は、ユーザ装置112を利用するユーザが、完全なソリューションテンプレートであるベンダソリューションテンプレート228を選択したか、或いは、完全なソリューションテンプレートである何れかのソリューションテンプレート224を選択したかを確認してもよい。
【００８１】
完全なソリューションテンプレートが選択されたことを確認モジュール202が確認したことに応じて、確認モジュール202は、その旨を示す信号を配備モジュール208に伝達する。配備モジュール208は、完全なソリューションテンプレートに従ってデバイスコンフィギュレーション118を配備するように構成される。
【００８２】
部分的なソリューションテンプレートの選択に応じて、通信モジュール252は、2つ以上のIOTデバイス106を選択するのに有効なユーザ入力234(例えば、IOTデバイス選択230)を受信してもよい。IOTデバイス106及び部分的なソリューションテンプレートを選択することにより、ユーザは、選択されるIOTデバイス106が部分的なソリューションテンプレートに組み込まれるべきことを指示してもよい。確認モジュール202はコンフィギュレーションモジュール206にユーザ入力234を伝達する。コンフィギュレーションモジュール206は、IOTデータベース116中のデバイス機能にアクセスしてもよい。アクセスされるデバイス機能に基づいて、コンフィギュレーションモジュール206は、選択されたIOTデバイス106間にネットワークコネクションを設定してもよい。
【００８３】
一実施形態において、ネットワークコネクションを設定するために、コンフィギュレーションモジュール206は、IOTデバイス106が互いに通信できるか否か及びどのように通信できるかを確認してもよい。IOTデバイス106が互いに(直接的には)通信しない場合、ネットワークコネクションは、ゲートウェイモジュール又は物理ゲートウェイ等のような物理ハブ及び/又はゲートウェイを包含するように構築されてもよい。例えば、IOTデバイス106が通信できることに応じて、コンフィギュレーションモジュール206は、選択されたIOTデバイス106間の通信を可能にするパラメータを生成してもよい。選択されたIOTデバイス106が(直接的には)通信できないことに応じて、コンフィギュレーションモジュール206は、物理ハブ又はゲートウェイモジュールを介して、IOTデバイス106間の通信を可能にするパラメータを生成してもよい。
【００８４】
一実施形態において、ネットワークコネクションの1つ以上の部分がIOTデータベース116に保存されてもよい。これら及び他の実施形態において、コンフィギュレーションモジュール206は、IOTデータベース116中の1つ以上の部分にアクセスし、それらの部分を組み合わせてネットワークコネクションを構成してもよい。IOTデータベース116からの情報に基づいて、コンフィギュレーションモジュール206は、IOTデバイス106及び/又は物理ハブ及びゲートウェイに伝達されるコンフィギュレーションパラメータ226を生成してよい。例えば、図2及び図3の組み合わせに関し、コンフィギュレーションモジュール206は、IOTデータベース116のうちの1つ以上についてのデバイス機能にアクセスしてもよい。特定のIOTデバイス106及びデバイスコンフィギュレーション118に組み込まれるIOTデバイスの配置に基づいて、コンフィギュレーションモジュール206は、IOTデバイス106が互いに通信してよいか否かを示すデバイス機能304にアクセスする。IOTデバイス106が互いに通信しない状況において、コンフィギュレーションモジュール206は1つ以上のソリューション308にアクセスし、ソリューションは、2つ以上のIOTデバイス106間のネットワークコネクションの特定の部分に関する情報を含む。コンフィギュレーションモジュール206は、デバイス機能304及び/又はソリューション308に基づいて、IOTデバイス106間の通信をイネーブルにするコンフィギュレーションパラメータ226を生成してもよい。
【００８５】
コンフィギュレーションモジュール206は、ネットワークコネクションを表す信号をシミュレーションモジュール204に伝達する。シミュレーションモジュール204は、IOTデバイス106間の特定の自動的な相互作用に対するデバイスコンフィギュレーション118をシミュレートするように構成される。シミュレーションは、IOTデータベース116中のアクセスされるデバイス機能及び/又はそれらの間のネットワークコネクションを利用してもよい。一実施形態において、シミュレーションは、動画又は一連の2次元又は3次元的な図形を含んでもよい。シミュレーションはユーザ装置112において眺められてもよい。
【００８６】
シミュレーションの間に、シミュレーションモジュール204は、IOTデバイス106間の相互作用の実現可能性を確認し、相互作用が安全性の問題を招かないことを確認し、相互作用がプライバシの問題を招かないことを確認し、或いは、それらの任意の組み合わせを確認してもよい。追加的又は代替的に、シミュレーションモジュール204は、デバイスコンフィギュレーション118をデバッグするために、IOTデバイス106がネットワークコネクションに従って適切に通信するか否かを含むステップバイステップの(又は段階的な)検査を実行してもよい。例えば、シミュレーションモジュール204は、トリガ信号に関する少なくとも一部のシミュレーションに基づいてもよい。トリガ信号は、1つ以上のIOTデバイス106が応答する状態をトリガする状態をシミュレートするように構成されてもよい。一実施形態において、シミュレーションモジュール204はトリガ信号を生成及び/又は通信してもよい。一実施形態において、ユーザは、シミュレーションモジュール204により使用されるトリガ信号を提供してもよい。
【００８７】
トリガ条件を伴うシミュレーションにおいて、トリガ条件の入力に続いて、デバイス入力250が受信されてもよい。デバイス入力250は、デバイスコンフィギュレーション118が使用可能(operational)であるか否かを示してもよい。例えば、シミュレーションモジュール204はデバイス入力250とIOTデータベース116の情報とを比較し、デバイス入力250が、デバイスコンフィギュレーション118の予想されるパフォーマンスに合致するか否かを確認する。デバイス入力250が予想されるパフォーマンスに合致しないことに応じて、シミュレーションモジュール204は、そのデバイスコンフィギュレーション118が使用可能でないと判断してもよい。
【００８８】
シミュレーションに基づいて、確認モジュール202は、デバイスコンフィギュレーション118が使用可能であるか否かを確認してもよい。例えば、デバイスコンフィギュレーション118が使用可能であるか否かを確認する場合に、確認モジュール202は、ランナブルなコンフィギュレーションが存在するか否かを判定し、デバイスコンフィギュレーション118における競合する状況を判定してもよい。
【００８９】
デバイスコンフィギュレーション118が使用可能でないことに応じて、確認モジュールは、コンフィギュレーションモジュール206に信号を伝達してもよい。コンフィギュレーションモジュール206は、1つ以上の代替的なIOTデバイス(例えば、IOTデバイス106)を含めるようにデバイスコンフィギュレーション118を再構成し及び/又は代替的なIOTデバイス間のネットワークコネクションを更新してもよい。ネットワークコネクションが更新された後に、シミュレーションモジュール204は、代替的なIOTデバイス及び/又はネットワークコネクション情報に関するIOTデータベース116内の情報を利用して、デバイスコンフィギュレーション118を改めてシミュレートしてもよい。
【００９０】
デバイスコンフィギュレーション118が使用可能であることに応じて、確認モジュール202は、その旨を表す信号をマーケットプレイスモジュール210に伝達する。マーケットプレイスモジュール210は、マーケットプレイスを表示するように構成される。一実施形態において、マーケットプレイスはユーザ装置112に伝えられる。別の実施形態において、ユーザ装置112(のユーザ)は、コンフィギュレーションコントローラ104及び/又はシステムサーバ126にアクセスすることにより、マーケットプレイスを見てやり取りを行ってもよい。
【００９１】
マーケットプレイスは、IOTデバイス及び/又は仮想的な機器(例えば、ゲートウェイモジュール及びクラウドサービス)の1つ以上のリストを提供し、物理的なIOTデバイス、ソリューションテンプレート、仮想的な機器又はそれらの何らかの組み合わせの購入を可能にする。追加的又は代替的に、マーケットプレイスは、ユーザがIOTデバイス及び/又は仮想的な機器を購入する1つ以上の商用サイトとのインタフェースとなってもよいし或いはそこへのリンクを提供してもよい。
【００９２】
一実施形態では、コンフィギュレーションモジュール206がネットワークコネクションを設定する前に、マーケットプレイスモジュール210は、IOTデバイス、ソリューションテンプレート及び仮想的な機器のリストを提供してもよい。一実施形態において、マーケットプレイスモジュール210は或るリストを提供し、そのリストから、IOTデバイス選択230及び/又はテンプレート選択232がなされる。例えば、IOTデバイス選択230は、リストに含まれる1つ以上のIOTデバイス106の選択を含んでよい。これら及び他の実施形態において、ネットワークコネクションは、マーケットプレイスモジュール210により提供されるリストから選択される特定のIOTデバイス106を含むようにそれに応じて構成される。
【００９３】
更に、デバイスコンフィギュレーション118が使用可能であることに応じて、確認モジュール202は、その旨を表す信号を配備モジュール208に伝達する。配備モジュール208はデバイスコンフィギュレーション118を配備するように構成される。
【００９４】
一実施形態において、配備モジュール208は、IOTデバイス106についての提案される配備の場所を、ユーザ装置112によりユーザに伝えるように構成されてもよい。例えば、配備モジュール208は、第1のIOTデバイス106Aと第2のIOTデバイス106Bとの間の具体的な距離を伝達してもよい。追加的又は代替的に、配備モジュール208は、例えば、「エントリホールの天井に、正面ドアから3フィート離れて第1のIOTデバイス106Aを配置する」というように、第1のIOTデバイス106Aの正確な場所を伝達してもよい。
【００９５】
配備モジュール208は、コンフィギュレーションパラメータ226をIOTデバイスに伝達することを開始するために、ユーザ入力234を受信してもよい。コンフィギュレーションパラメータ226の伝達を開始するためのユーザ入力234は、図2において、開始メッセージ254により表現されている。例えば、配備モジュール208は、IOTデバイス106の配備位置をユーザに伝えてもよい。ユーザは、配備位置に従ってIOTデバイス106を配置してもよい。そして、ユーザは、IOTデバイス106が配備されることを示す指示メッセージ254をユーザ装置112を介して伝達してもよい。
【００９６】
配備モジュール208は、コンフィギュレーションパラメータ226を、IOTデバイス106にアップロードし及びデバイスコンフィギュレーション118に含まれる任意の仮想的な機器、物理ハブ、ゲートウェイ等にアップロードしてもよい。コンフィギュレーションパラメータ226は、デバイスコンフィギュレーション118に従って動作するようにIOTデバイスをプログラムする或いは構成するのに十分な情報を含む。配備モジュール208は、コンフィギュレーションパラメータ226がIOTデバイス106に適切に伝達されたことをユーザに通知してもよい。
【００９７】
配備モジュール208はその後にデバイスコンフィギュレーション118を確認してもよい。配備モジュール208は、トリガ信号を利用してデバイスコンフィギュレーション118を確認(又は承認)してもよい。一実施形態において、トリガ信号は、デバイスコンフィギュレーション118におけるトリガ状態(条件)をマニュアルでシミュレートするために十分なユーザ入力を含んでよい。例えば、ユーザは1つ以上のIOTデバイス106にマニュアルでトリガを与えてもよい。これに応答して、IOTデバイス106は通信モジュール252にデバイス入力250を伝達してもよい。配備モジュール208は、トリガ状態からの結果のデバイス入力250を記録する。そして、配備モジュール208は、IOTデータベース116内の機能に基づいて予想されるパフォーマンスとデバイス入力250とを比較する。ミスマッチが存在する場合、配備モジュール208は、ミスマッチを示すチケットメッセージを生成してもよい。
【００９８】
配備モジュール208は、更に、デバイスコンフィギュレーション118の実際の使用中にデバイス入力を記録してもよい。例えば、デバイスコンフィギュレーション118が使用される場合に、1つ以上の実際のトリガ状態が生じるかもしれない。配備モジュール208は、実際のトリガ状態から生成されるデバイス入力250を受信する。配備モジュール208は、実際のトリガ状態からのデバイス入力250と、IOTデータベース116内の機能に基づく予想されるパフォーマンスとを比較する。ミスマッチが存在する場合、配備モジュール208は、ミスマッチを示すチケットメッセージを生成し、例えば、チケットメッセージをアドミニストレータに伝える。
【００９９】
図4A及び図4Bは、本願で開示される少なくとも1つの実施形態により構成されるデバイスコンフィギュレーションを構築する方法例400のフローチャートである。一実施形態において、方法400は図1及び図2に関連して説明されるシステムサーバ126によりプログラム可能に実行されてよい。システムサーバ126は1つ以上の一時的でないコンピュータ読み取り可能な媒体(例えば、図2のメモリ216)を含んでもよいし或いはそれに通信可能に結合されてもよく、媒体は、媒体に保存される又は媒体にエンコードされるプログラミングコード又は命令を有し、プログラミングコード又は命令は、方法400を実行する又は実行を引き起こすためにプロセッサにより実行可能である。追加的又は代替的に、システムサーバ126は1つ以上のプロセッサ(例えば、図2のプロセッサ212)を含み、プロセッサは方法400の実行を引き起こす又は制御するためにコンピュータ命令を実行するように構成される。個々のブロックとして示されるが、所望の実現手段に依存して、様々なブロックは、追加的なブロックに分割されてもよいし、より少ない数のブロックに統合されてもよいし或いは削除されてもよい。
【０１００】
図4Aに関し、方法400はブロック402から始まってもよい。ブロック402ではユーザ入力が受け取られる。ユーザ入力はユーザ装置から受信されてもよい。ユーザ入力は、デバイスコンフィギュレーションのソリューションテンプレートに有効である。デバイスコンフィギュレーションは、2つ以上のIOTデバイス間の特定の自動的な相互作用に対するものであってよい。一実施形態では、システムサーバがユーザ入力を受けてもよい。例えば、図2に関し、システムサーバ126はユーザ装置112からユーザ入力234を受信してもよい。例えば、図2に関し、ユーザ入力234はテンプレート選択232を含んでもよい。ユーザ入力234はシステムサーバ126の通信ユニット214により受信されてもよい。
【０１０１】
ブロック404において、デバイスコンフィギュレーションに対する完全なソリューションテンプレートが選択されたか否かが判定される。一実施形態では、確認モジュールが、デバイスコンフィギュレーションについて完全なソリューションテンプレートが選択されたか否かを判定してもよい。一実施形態では、判定(又は確認)がなされるように、完全なソリューションテンプレートはマークされてもよい(印が付けられてもよい)。例えば、確認モジュールは、テンプレート選択232が完全なソリューションテンプレートを含むか否かを判定してもよい。完全なソリューションテンプレートが選択されることに応じて(ブロック404で「YES」)、本方法はブロック420に進む。部分的なソリューションテンプレートが選択されることに応じて(ブロック404で「NO」)、本方法はブロック406に進む。
【０１０２】
ブロック406において、追加的なユーザ入力が受け取られる。追加的なユーザ入力は、部分的なソリューションテンプレートに組み込まれる2つ以上のIOTデバイスを選択するのに有効である。一実施形態では、システムサーバがユーザ入力を受け取ってもよい。例えば、通信ユニット214はユーザ装置112から伝達されるIOTデバイス選択230を受信してもよい。ブロック408において、IOTデータベース内のデバイス機能がアクセスされる。特に、選択されるIOTデバイスのデバイス機能がアクセスされる。一実施形態では、コンフィギュレーションモジュールがデバイス機能にアクセスしてもよい。例えば、図2のコンフィギュレーションモジュール206が、IOTデバイス106に関し、IOTデータベース116内のデバイス機能にアクセスしてもよい。
【０１０３】
ブロック410において、選択されたIOTデバイス間にネットワークコネクションが設定される。一実施形態では、コンフィギュレーションモジュールがネットワークコネクションを構築してもよい。例えば、コンフィギュレーションモジュール206は、第1のIOTデバイス106Aと第2のIOTデバイス106Bとの間にネットワークコネクションを構築してもよい。図1に関し、ネットワークコネクションはネットワーク124の一部分を含んでもよい。一実施形態において、ネットワークコネクションを構築することは、選択されたIOTデバイスが互いに通信できるか否かについての判定を含んでもよい。選択されたデバイスが互いに通信できることに応じて、選択されたIOTデバイス間の通信を可能にする1つ以上のコンフィギュレーションパラメータが生成されてもよい。選択されたデバイスが互いには(直接的には)通信できないことに応じて、物理ハブ及びゲートウェイモジュールの1つ以上を用いることで、選択されたIOTデバイス間の通信を可能にするコンフィギュレーションパラメータが生成されてもよい。
【０１０４】
図4Bに関し、ブロック412において、デバイスコンフィギュレーションがシミュレートされる。一実施形態において、デバイスコンフィギュレーションは、IOTデバイスに対するIOTデータベース中のアクセスされる機能を利用してシミュレートされる。例えば、図2のシミュレーションモジュール204のようなシミュレーションモジュールは、IOTデータベース116中のアクセスされるデバイス機能を利用して、デバイスコンフィギュレーション118をシミュレートしてもよい。ブロック414において、デバイスコンフィギュレーションは使用可能であるか否かが判定される。例えば、確認モジュール202のような確認モジュールが、デバイスコンフィギュレーションは使用可能であるか否かを判定してもよい。一実施形態において、デバイスコンフィギュレーションが使用可能であるか否かの判定は、ランナブルコンフィギュレーションが存在するか否かを確認すること、及び、デバイスコンフィギュレーションにおける競合する状況を確認することを含む。デバイスコンフィギュレーションが使用可能でないことに応じて(414において「NO」)、本方法400はブロック416に進む。デバイスコンフィギュレーションが使用可能であることに応じて(414において「YES」)、本方法400はブロック418に進む。
【０１０５】
ブロック416において、デバイスコンフィギュレーションは再構成される。一実施形態において、デバイスコンフィギュレーションは、1つ以上の代替的なIOTデバイスを含むように再構成されてもよい。例えば、図2に関し、デバイスコンフィギュレーション118は、当初は、第1のIOTデバイス106Aを含むとする。確認モジュール202は、デバイスコンフィギュレーション118が使用可能でない旨の判定を行うとする。すると、コンフィギュレーションモジュール206は、第2のIOTデバイス106Bを含むようにデバイスコンフィギュレーションを再構成してもよい。ブロック416に続いて、本方法400はブロック410又はブロック402に進んでよい。例えば、デバイスコンフィギュレーションが代替的なIOTデバイスを含むように再構成される場合、本方法400はブロック410に進んでよい。追加的又は代替的に、例えば特定の状況では不適切であるような大きな(又は重要な)問題に起因して、デバイスコンフィギュレーションが使用可能でない場合、本方法400はブロック402に進む。
【０１０６】
ブロック418において、マーケットプレイスが表示されてもよい。マーケットプレイスは、物理的なIOTデバイス、ソリューションテンプレート、仮想的な機器、或いは、それらの何らかの組み合わせについての1つ以上のリストを提供してもよい。更に、マーケットプレイスは、物理的なIOTデバイス及び/又は仮想的な機器の購入を可能にしてもよい。例えば、図2のマーケットプレイスモジュール210のようなマーケットプレイスモジュールは、ユーザ装置112にマーケットプレイスを表示してもよい。マーケットプレイスは、第1のIOTデバイス106Aを含むリストを含んでもよい。マーケットプレイスは、第1のIOTデバイス106Aの購入を可能にしてもよい。一実施形態において、方法400のブロック418は、ブロック402に先行して及び/又はブロック406に先行して行われてもよい。例えば、ユーザは、マーケットプレイスを利用して、(ブロック402において)ソリューションテンプレートを選択してもよいし、及び/又は、(ブロック406において)1つ以上のIOTデバイスを選択してもよい。
【０１０７】
ブロック420において、デバイスコンフィギュレーションが配備されてもよい。例えば、図2の通信ユニット214及び配備モジュール208のような通信ユニット及び配備モジュールは、コンフィギュレーションパラメータとともにIOTデバイス106を更新してもよい。ブロック422において、デバイスコンフィギュレーションが確認されてもよい。デバイスコンフィギュレーションは、トリガ信号を用いて確認されてもよい。例えば、配備モジュール208のような配備モジュールは、デバイスコンフィギュレーション118を確認(又は承認)してもよい。デバイスコンフィギュレーションが確認(又は承認)されない状況では、本方法400はブロック402又はブロック410に進む。方法400がブロック402に進むのか或いはブロック410に進むのかについての判断は、デバイスコンフィギュレーションが確認(又は承認)されない理由に基づいてもよい。例えば、未知のソリューションテンプレートに起因してデバイスコンフィギュレーションが確認されない場合、方法400はブロック402に進んでもよい。追加的又は代替的に、実行不可能なネットワークコネクションに起因してデバイスコンフィギュレーションが確認されない場合、方法400はブロック410に進んでもよい。
【０１０８】
本願で説明されるこれら及び他のプロセス及び方法に関し、プロセス及び方法で実行される機能は異なる順序で実現されてもよいことを、当業者は認めるであろう。更に、説明されるステップ及び処理は具体例として与えられているに過ぎず、開示される実施形態から逸脱することなく、何らかのステップ及び処理は、選択的であってもよいし、より少ない数のステップ及び処理に統合されてもよいし、或いは、追加的なステップ及び処理に拡張されてもよい。
【０１０９】
図5は、本願で説明される少なくとも1つの実施形態により構成されるデバイスコンフィギュレーションをシミュレーションする方法例500のフローチャートである。一実施形態において、方法500は図1及び図2に関連して説明されるシステムサーバ126によりプログラム可能に実行されてよい。システムサーバ126は1つ以上の一時的でないコンピュータ読み取り可能な媒体(例えば、図2のメモリ216)を含んでもよいし或いはそれに通信可能に結合されてもよく、媒体は、媒体に保存される又は媒体にエンコードされるプログラミングコード又は命令を有し、プログラミングコード又は命令は、方法500を実行する又は実行を引き起こすためにプロセッサにより実行可能である。追加的又は代替的に、システムサーバ126は1つ以上のプロセッサ(例えば、図2のプロセッサ212)を含み、プロセッサは方法500の実行を引き起こす又は制御するためにコンピュータ命令を実行するように構成される。個々のブロックとして示されるが、所望の実現手段に依存して、様々なブロックは、追加的なブロックに分割されてもよいし、より少ない数のブロックに統合されてもよいし或いは削除されてもよい。
【０１１０】
方法500はブロック502から始まる。ブロック502において、IOTデバイス間の相互作用の実現可能性が確認される。例えば、図2のシミュレーションモジュール204のようなシミュレーションモジュールが、第1のIOTデバイス106Aと第2のIOTデバイス106Bとの間の相互作用の実現可能性を確認してもよい。ブロック504において、相互作用は安全性の問題を招かないことが確認される。例えば、シミュレーションモジュール204のようなシミュレーションモジュールは、デバイスコンフィギュレーション118が、火事や靱帯損傷などのような安全性の懸念を招かないことを保証してもよい。
【０１１１】
ブロック506において、相互作用はプライバシの問題を招かないことが確認される。例えば、図2に関し、シミュレーションモジュール204は、デバイスコンフィギュレーション118がプライバシの問題を招かないことを保証してもよい。プライバシの問題は、個人情報を公のサイトに公表することを含んでもよい。ブロック508において、デバイスコンフィギュレーションをデバッグするために、ステップバイステップの検査が実行されてもよい。例えば、シミュレーションモジュール204は、デバイスコンフィギュレーション118のステップバイステップ検査(又は段階的な検査)を行ってもよい。一実施形態において、シミュレーションは1つ以上のトリガ状態を含んでもよい。トリガ状態は、図2のシミュレーションモジュール204のようなシミュレーションモジュールにより提供されてもよい。追加的又は代替的に、トリガ状態(又は条件)は、シミュレーションに関わるIOTデバイスに対するユーザによる入力であってもよい。例えば、第1のデバイスコンフィギュレーション118Aのシミュレーションの際に、ユーザ102は、第1のIOTデバイス106Aに対するトリガ条件を入力してもよい。トリガ条件を含むシミュレーションにおいて、トリガ条件の入力に続いて、デバイス入力が受信されてもよい。デバイス入力は、デバイスコンフィギュレーションが使用可能であるか否かを示す。例えば、デバイス入力がデバイスコンフィギュレーションの予想されるパフォーマンスに合致するか否かを確認するために、デバイス入力は、IOTデータベースにおける情報と比較されてもよい。
【０１１２】
図6は、本願で説明される少なくとも1つの実施形態により構成されるデバイスコンフィギュレーションを配備する方法例600のフローチャートである。一実施形態において、方法600は図1及び図2に関連して説明されるシステムサーバ126によりプログラム可能に実行されてよい。システムサーバ126は1つ以上の一時的でないコンピュータ読み取り可能な媒体(例えば、図2のメモリ216)を含んでもよいし或いはそれに通信可能に結合されてもよく、媒体は、媒体に保存される又は媒体にエンコードされるプログラミングコード又は命令を有し、プログラミングコード又は命令は、方法600を実行する又は実行を引き起こすためにプロセッサにより実行可能である。追加的又は代替的に、システムサーバ126は1つ以上のプロセッサ(例えば、図2のプロセッサ212)を含み、プロセッサは方法600の実行を引き起こす又は制御するためにコンピュータ命令を実行するように構成される。個々のブロックとして示されるが、所望の実現手段に依存して、様々なブロックは、追加的なブロックに分割されてもよいし、より少ない数のブロックに統合されてもよいし或いは削除されてもよい。
【０１１３】
方法600はブロック602から始まる。ブロック602において、提案される配備場所が伝達される。提案される配備場所は、デバイスコンフィギュレーションに含まれる1つ以上のIOTデバイスに対するものであってよい。提案される配備場所はユーザに伝えられる。例えば、図1に関し、提案される配備場所は、コンフィギュレーションコントローラ104により、ネットワーク124を介してユーザ装置112に伝えられてもよい。
【０１１４】
ブロック604において、ユーザ入力が受信されてもよい。ユーザ入力は、コンフィギュレーションパラメータをIOTデバイスに通知することを開始するように構成されてもよい。例えば、図1に関し、ユーザ102は、コンフィギュレーションパラメータをIOTデバイス106に通知することを開始するように構成されるユーザ入力を伝達してもよい。一実施形態において、ユーザ入力は、提案される配備場所にユーザ102が1つ以上のIOTデバイス106を配置することに応じていてもよい。
【０１１５】
ブロック606において、コンフィギュレーションパラメータはIOTデバイスにアップロードされてもよい。例えば、図1に関し、コンフィギュレーションパラメータはシステムサーバ126からIOTデバイス106へネットワークを介してアップロードされてもよい。コンフィギュレーションパラメータは、クラウドサーバ108、ゲートウェイモジュール110、物理ハブ120又はそれらの何らかの組み合わせにアップロードされてもよい。ブロック608において、ユーザは、コンフィギュレーションパラメータがIOTデバイスに適切にアップロードされたことの通知を受ける。例えば、システムサーバ126はユーザ装置112を介してユーザ102に通知してもよい。
【０１１６】
図7は、本願で説明される少なくとも1つの実施形態により構成されるデバイスコンフィギュレーションを確認する方法例700のフローチャートである。一実施形態において、方法700は図1及び図2に関連して説明されるシステムサーバ126によりプログラム可能に実行されてよい。システムサーバ126は1つ以上の一時的でないコンピュータ読み取り可能な媒体(例えば、図2のメモリ216)を含んでもよいし或いはそれに通信可能に結合されてもよく、媒体は、媒体に保存される又は媒体にエンコードされるプログラミングコード又は命令を有し、プログラミングコード又は命令は、方法700を実行する又は実行を引き起こすためにプロセッサにより実行可能である。追加的又は代替的に、システムサーバ126は1つ以上のプロセッサ(例えば、図2のプロセッサ212)を含み、プロセッサは方法700の実行を引き起こす又は制御するためにコンピュータ命令を実行するように構成される。個々のブロックとして示されるが、所望の実現手段に依存して、様々なブロックは、追加的なブロックに分割されてもよいし、より少ない数のブロックに統合されてもよいし或いは削除されてもよい。
【０１１７】
方法700はブロック702から始まる。ブロック702において、デバイス入力が受信される。デバイス入力は、デバイスコンフィギュレーションにおいてトリガ状態をマニュアルでエミュレートするIOTデバイスに対するユーザ入力から生じてもよい。例えば、図1に関し、第1のIOTデバイス106Aが第1のデバイスコンフィギュレーション118Aに含まれるとする。ユーザ102は第1のIOTデバイス106Aにおけるトリガ状態をマニュアルでエミュレートする。これに応じて、第1のIOTデバイス106Aはデバイス入力をシステムサーバ126に伝達する。
【０１１８】
ブロック704において、エミュレートされたトリガ状態から生じるデバイス入力が記録される。例えば、図2に関し、配備モジュール208は、第1のIOTデバイス106Aから伝達されるデバイス入力250を記録してもよい。ブロック706において、デバイス入力は、IOTデータベース内の機能に基づいて予想されるパフォーマンスと比較される。例えば、図2に関し、配備モジュール208は、IOTデータベース116内の第1のIOTデバイス106Aの機能に基づいて、予想されるパフォーマンスとデバイス入力250とを比較してもよい。
【０１１９】
ブロック708において、ミスマッチが存在する場合に、ミスマッチを示すチケットメッセージが生成される。例えば、配備モジュール208は、第1のIOTデバイス106Aからのデバイス入力250と第1のIOTデバイス106Aの予想されるパフォーマンスとの間のミスマッチ(不一致又は不整合)を発見してもよい。第1のIOTデバイス106Aの予想されるパフォーマンスは、IOTデータベース116内の機能に少なくとも部分的に基づいてよい。
【０１２０】
ここで説明される実施形態は、本願で詳細に説明されるように、コンピュータハードウェア又はソフトウェアモジュールを含む専用又は汎用のコンピュータを利用することを含む。
【０１２１】
ここで説明される実施形態は、媒体に保存されるコンピュータ実行可能な命令又はデータ構造を担う又は有するコンピュータ読み取り可能な媒体を用いて実現されてよい。そのようなコンピュータ読み取り可能な媒体は、汎用又は専用のコンピュータによりアクセスされる利用可能な任意の媒体であってもよい。限定ではない具体例として、そのようなコンピュータ読み取り可能な媒体は非一時的なコンピュータ読み取り可能な記憶媒体を含み、記憶媒体は、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、電気的に消去可能でプログラム可能なリードオンリメモリ(EEPROM)、コンパクトディスクリードオンリメモリ(CD-ROM)又は他の光ディスクストレージ、磁気ディスクストレージ又は他の磁気ストレージデバイス、フラッシュメモリデバイス(例えば、ソリッドステートメモリデバイス)を含み、或いは、コンピュータ実行可能な命令又はデータ構造の形式で所望のプログラムコードを担う又は保存するために使用され及び汎用又は専用のコンピュータによりアクセスされる他の任意のストレージ媒体を含んでよい。上述したものの組み合わせもコンピュータ読み取り可能な媒体の範囲に包含されてよい。
【０１２２】
コンピュータ実行可能な命令は、例えば、汎用コンピュータ、専用コンピュータ又は専用の処理装置(例えば、1つ以上のプロセッサ)に、所定の機能又は機能群を実行させる命令及びデータを含んでよい。対象の内容は構造的な特徴及び/又は方法的な処理に特化した言葉で説明されているが、本願で規定される対象の内容は上述の具体的な特徴や処理に限定される必要はないことが、理解されるべきである。むしろ、上述の具体的な特徴及び処理は実施の具体的な形態として開示されている。
【０１２３】
本願で使用されるように、「モジュール」又は「コンポーネント(要素)」等の用語は、コンピューティングシステムの汎用ハードウェア(例えば、コンピュータ読み取り可能な媒体、処理装置、等々)により保存及び/又は実行されるモジュール又はコンポーネント及び/又はソフトウェアオブジェクト又はソフトウェアルーチンの処理を実行するように構成される具体的なハードウェア実現手段を指してもよい。一実施形態では、本願で説明される様々なコンポーネント、モジュール、エンジン及びサービスは、コンピューティングシステムで実行されるオブジェクト又はプロセス(例えば、個別的なスレッド)として実現されてもよい。ここで説明されるいくつかのシステム及び方法は(汎用ハードウェアによって保存及び/又は実行される)ソフトウェアで実現されるように一般的に説明されるが、特定のハードウェア実現手段、或いは、ソフトウェア及び特定のハードウェアの実現手段の組み合わせも使用可能であり、それらも本願で想定されている。本説明において、「コンピューティング装置(エンティティ)」は、上記に規定されるような何らかのコンピューティングシステム、或いは、コンピューティングシステムで動作する何らかのモジュール又はモジュールの組み合わせであってもよい。
【０１２４】
本願で言及される全ての具体例及び条件付けの言葉は、技術進歩に対して発明者が貢献した技術思想及び概念を読者が理解することを促す教示的な目的を意図しており、そのように具体的に言及される具体例や条件に限定することなく解釈されるべきである。本願の実施形態は詳細に説明されてきたが、それらに対する様々な変形、置換及び代替が、本願の精神及び範囲から逸脱することなく可能であることが、理解されるべきである。
【０１２５】
以上の実施の形態に関し、更に以下の付記を開示する。
【０１２６】
（付記1）
2つ以上の「モノのインターネット」(IOT)デバイス間の特定の自動的な相互作用のデバイスコンフィギュレーションに関するソリューションテンプレートを選択するのに有効なユーザ入力を受ける工程；
前記デバイスコンフィギュレーションに関する完全なソリューションテンプレートが選択されるか否かを判定する工程；
部分的なソリューションテンプレートが選択されることに応じて：
前記部分的なソリューションテンプレートに組み込まれる2つ以上のIOTデバイスを選択するのに有効な追加的なユーザ入力を受けること；
IOTデータベース内の選択されるIOTデバイスのデバイス機能にアクセスすること；
前記選択されるIOTデバイス間にネットワークコネクションを設定すること；
前記選択されるIOTデバイスに対する前記IOTデータベース内でアクセスされる前記デバイス機能を利用してデバイスコンフィギュレーションをシミュレーションすること；
前記シミュレーションに基づいて、前記デバイスコンフィギュレーションが使用可能であるか否かを判定すること；
前記デバイスコンフィギュレーションが使用可能でないことに応じて、1つ以上の代替的なIOTデバイスを含むように前記デバイスコンフィギュレーションを再構成すること；及び
前記デバイスコンフィギュレーションが使用可能であることに応じて、前記デバイスコンフィギュレーションを配備すること；
を行う工程；並びに
前記完全なソリューションテンプレートが選択されることに応じて、前記デバイスコンフィギュレーションを配備する工程；
を有する方法。
【０１２７】
（付記2）
トリガ信号に基づいて前記デバイスコンフィギュレーションを確認する工程を更に有する付記1に記載の方法。
【０１２８】
（付記3）
前記確認する工程は、
前記デバイスコンフィギュレーションにおけるトリガ状態をマニュアルでエミュレートする何れかの選択されるIOTデバイスに対するユーザ入力から生じるデバイス入力を受信する工程；
エミュレートされるトリガ状態から生じるデバイス入力を記録する工程；
前記IOTデータベースにおける前記デバイス機能に少なくとも部分的に基づいて予想されるパフォーマンスと前記デバイス入力とを比較する工程；及び
ミスマッチが存在する場合に、前記ミスマッチを示すチケットメッセージを生成する工程；
を有する、付記2に記載の方法。
【０１２９】
（付記4）
前記ネットワークコネクションを設定することが：
前記選択されるIOTデバイスが互いに通信できることに応じて、前記選択されるIOTデバイス間の通信を可能にするコンフィギュレーションパラメータを生成すること；
前記選択されるIOTデバイスが互いには通信できないことに応じて、物理ハブ及びゲートウェイモジュールの1つ以上を利用して、前記選択されるIOTデバイス間の通信を可能にするコンフィギュレーションパラメータを生成すること；
を含む、付記1に記載の方法。
【０１３０】
（付記5）
前記デバイスコンフィギュレーションが使用可能であることに応じて、物理的なIOTデバイス及び仮想的な機器のリストを提供し及び前記物理的なIOTデバイス及び前記仮想的な機器のうちの1つ以上の購入を可能にするマーケットプレイスを表示する工程を更に有する付記1に記載の方法。
【０１３１】
（付記6）
前記シミュレーションすることが：
前記IOTデバイス間の相互作用の実現可能性を確認すること；
前記相互作用は安全性の問題を招かないことを確認すること；
前記相互作用はプライバシの問題を招かないことを確認すること；及び
前記デバイスコンフィギュレーションをデバッグするためにステップバイステップの検査を実行すること；
を含む、付記1に記載の方法。
【０１３２】
（付記7）
前記配備することが：
提案される前記IOTデバイスの配備場所をユーザに伝えること；
ユーザ入力を受信し、コンフィギュレーションパラメータを前記IOTデバイスに伝えることを開始すること；
前記コンフィギュレーションパラメータをIOTデバイスにアップロードすること；及び
前記コンフィギュレーションパラメータがIOTデバイスに適切にアップロードされたことを前記ユーザに通知すること；
を含む、付記1に記載の方法。
【０１３３】
（付記8）
前記IOTデータベースが：
1つ以上の前記IOTデバイスの通信プロトコルを保存するデバイス機能データベース；及び
2つ以上の前記IOTデバイス間の通信を可能にするソリューションを保存するデバイス相互運用性データベース；
を含む、付記1に記載の方法。
【０１３４】
（付記9）
前記判定する工程が：
ランナブルなコンフィギュレーションが存在するか否かを検出する工程；及び
前記デバイスコンフィギュレーションにおける競合する状況を検出する工程；
を含む、付記1に記載の方法。
【０１３５】
（付記10）
前記IOTデバイスは、電球、照明システム、ドアロック、温水器、スプリンクラーシステム、空調機、サーモスタット、アラームクロック、窓の日よけ、スイッチ、煙報知器、カメラ、エッグマインダ、電気差し込み口、パーソナル(例えば、ピギー)バンク、プロパンタンク、アラーム、対人近接センサ、ドアセンサ、バイオメトリックセンサ、マットレス、モバイル装置、車両センサ、時計、調理装置、電気遮断機、対人警報センサ、動きセンサ、カレンダ、テレビジョン、ラジオ、無線周波数識別(RFID)タグ/RFID検出器、乗物、電気車両充電器、分散される発電機(例えば、ソーラーパネル)、分散される蓄電池(例えば、バッテリ)、及び、サーモメータのうちの1つ以上を含み；及び
前記IOTデバイスの前記デバイス機能は、メッセージキューテレメトリトランスポート(MQTT)、MQTTセンサ(MQTT-S)、制約されたアプリケーションプロトコル(CoAP)、代表ステートトランスファアプリケーションプロトコルインタフェース(REST  API)、及び、拡張可能メッセージングプレゼンスプロトコル(XMPP)を含む接続プロトコルを含む、付記1に記載の方法。
【０１３６】
（付記11）
非一時的なコンピュータ読み取り可能な媒体であって、当該媒体にエンコードされるプログラミングコードを有し、前記プログラミングコードは処理を実行するようにプロセッサにより実行可能であり、前記処理は、
2つ以上の「モノのインターネット」(IOT)デバイス間の特定の自動的な相互作用のデバイスコンフィギュレーションに関するソリューションテンプレートを選択するのに有効なユーザ入力を受ける工程；
前記デバイスコンフィギュレーションに関する完全なソリューションテンプレートが選択されるか否かを判定する工程；
部分的なソリューションテンプレートが選択されることに応じて：
前記部分的なソリューションテンプレートに組み込まれる2つ以上のIOTデバイスを選択するのに有効な追加的なユーザ入力を受けること；
IOTデータベース内の選択されるIOTデバイスのデバイス機能にアクセスすること；
前記選択されるIOTデバイス間にネットワークコネクションを設定すること；
前記選択されるIOTデバイスに対する前記IOTデータベース内でアクセスされる前記デバイス機能を利用してデバイスコンフィギュレーションをシミュレーションすること；
前記シミュレーションに基づいて、前記デバイスコンフィギュレーションが使用可能であるか否かを判定すること；
前記デバイスコンフィギュレーションが使用可能でないことに応じて、1つ以上の代替的なIOTデバイスを含むように前記デバイスコンフィギュレーションを再構成すること；及び
前記デバイスコンフィギュレーションが使用可能であることに応じて、前記デバイスコンフィギュレーションを配備すること；
を行う工程；並びに
前記完全なソリューションテンプレートが選択されることに応じて、前記デバイスコンフィギュレーションを配備する工程；
を有する、媒体。
【０１３７】
（付記12）
前記処理が、トリガ信号に基づいて前記デバイスコンフィギュレーションを確認する工程を更に有する、付記11に記載の媒体。
【０１３８】
（付記13）
前記確認する工程は、
前記デバイスコンフィギュレーションにおけるトリガ状態をマニュアルでエミュレートする何れかの選択されるIOTデバイスに対するユーザ入力から生じるデバイス入力を受信する工程；
エミュレートされるトリガ状態から生じるデバイス入力を記録する工程；
前記IOTデータベースにおける前記デバイス機能に少なくとも部分的に基づいて予想されるパフォーマンスと前記デバイス入力とを比較する工程；及び
ミスマッチが存在する場合に、前記ミスマッチを示すチケットメッセージを生成する工程；
を有する、付記12に記載の媒体。
【０１３９】
（付記14）
前記ネットワークコネクションを設定することが：
前記選択されるIOTデバイスが互いに通信できることに応じて、前記選択されるIOTデバイス間の通信を可能にするコンフィギュレーションパラメータを生成すること；
前記選択されるIOTデバイスが互いには通信できないことに応じて、物理ハブ及びゲートウェイモジュールの1つ以上を利用して、前記選択されるIOTデバイス間の通信を可能にするコンフィギュレーションパラメータを生成すること；
を含む、付記11に記載の媒体。
【０１４０】
（付記15）
前記デバイスコンフィギュレーションが使用可能であることに応じて、物理的なIOTデバイス及び仮想的な機器のリストを提供し及び前記物理的なIOTデバイス及び前記仮想的な機器のうちの1つ以上の購入を可能にするマーケットプレイスを表示する工程を更に有する付記11に記載の媒体。
【０１４１】
（付記16）
前記シミュレーションすることが：
前記IOTデバイス間の相互作用の実現可能性を確認すること；
前記相互作用は安全性の問題を招かないことを確認すること；
前記相互作用はプライバシの問題を招かないことを確認すること；及び
前記デバイスコンフィギュレーションをデバッグするためにステップバイステップの検査を実行すること；
を含む、付記11に記載の媒体。
【０１４２】
（付記17）
前記配備することが：
提案される前記IOTデバイスの配備場所をユーザに伝えること；
ユーザ入力を受信し、コンフィギュレーションパラメータを前記IOTデバイスに伝えることを開始すること；
前記コンフィギュレーションパラメータをIOTデバイスにアップロードすること；及び
前記コンフィギュレーションパラメータがIOTデバイスに適切にアップロードされたことを前記ユーザに通知すること；
を含む、付記14に記載の媒体。
【０１４３】
（付記18）
前記IOTデータベースが：
1つ以上の前記IOTデバイスの通信プロトコルを保存するデバイス機能データベース；及び
2つ以上の前記IOTデバイス間の通信を可能にするソリューションを保存するデバイス相互運用性データベース；
を含む、付記11に記載の媒体。
【０１４４】
（付記19）
前記判定する工程が：
ランナブルなコンフィギュレーションが存在するか否かを検出する工程；及び
前記デバイスコンフィギュレーションにおける競合する状況を検出する工程；
を含む、付記11に記載の媒体。
【０１４５】
（付記20）
前記IOTデバイスは、電球、照明システム、ドアロック、温水器、スプリンクラーシステム、空調機、サーモスタット、アラームクロック、窓の日よけ、スイッチ、煙報知器、カメラ、エッグマインダ、電気差し込み口、パーソナル(例えば、ピギー)バンク、プロパンタンク、アラーム、対人近接センサ、ドアセンサ、バイオメトリックセンサ、マットレス、モバイル装置、車両センサ、時計、調理装置、電気遮断機、対人警報センサ、動きセンサ、カレンダ、テレビジョン、ラジオ、無線周波数識別(RFID)タグ/RFID検出器、乗物、電気車両充電器、分散される発電機(例えば、ソーラーパネル)、分散される蓄電池(例えば、バッテリ)、及び、サーモメータのうちの1つ以上を含み；及び
前記IOTデバイスの前記デバイス機能は、メッセージキューテレメトリトランスポート(MQTT)、MQTTセンサ(MQTT-S)、制約されたアプリケーションプロトコル(CoAP)、代表ステートトランスファアプリケーションプロトコルインタフェース(REST  API)、及び、拡張可能メッセージングプレゼンスプロトコル(XMPP)を含む接続プロトコルを含む、付記11に記載の媒体。
【符号の説明】
【０１４６】
100  IOTシステム
102  ユーザ
104  コンフィギュレーションコントローラ
106  IOTデバイス
108  クラウドサーバ
110  ゲートウェイモジュール
112  ユーザ装置
114  ユーザモジュール
116  IOTデータベース
118  デバイスコンフィギュレーション
120  物理ハブ
124  ネットワーク
126  システムサーバ
128  ベンダ
130  ベンダサーバ
【図１】
2016045964.tif 000003
【図２】
2016045964.tif 000004
【図３】
2016045964.tif 000005
【図４Ａ】
2016045964.tif 000006
【図４Ｂ】
2016045964.tif 000007
【図５】
2016045964.tif 000008
【図６】
2016045964.tif 000009
【図７】
2016045964.tif 000010