(57)【要約】【課題】自動学習ユニバーサルゲートウェイ等を提供すること。【解決手段】ゲートウェイは、通信インタフェース及びプロセッサを含む。プロセッサは、該インタフェースを介して、ゲートウェイに接続されるデバイスの、電子フォーマットであるグラフィカル表現を受信し、該表現を使用してデバイスを特定してデータストレージ内のデバイスについてのレコードを見つける。プロセッサは、様々なＩｏＴデバイス又はサービスを探して接続しＩｏＴデバイス又はサービスとインタラクトする。プロセッサは、全ての接続デバイスを記録／モニタリングする。プロセッサは、グラフィカルユーザインタフェースを介して、記録／モニタリングされたパターンに基づいて可能な接続についての提案を提供し、機械学習方法に基づいて、記録／モニタリングされたパターンを学習し、ユーザの許可を伴うアクションをトリガーする又はサービスのセットをユーザに提案する。【選択図】図２
2018098767.tif 000002
【特許請求の範囲】
【請求項１】
ゲートウェイであって、
メモリと、
通信インタフェースと、
前記メモリ及び前記通信インタフェースに動作可能に接続されたプロセッサであって、前記プロセッサは、
前記通信インタフェースを介して、前記ゲートウェイに接続されるデバイスのグラフィカル表現を受信する動作であって、前記グラフィカル表現は、電子フォーマットである、動作と、
前記グラフィカル表現を使用することにより、前記グラフィカル表現に基づいて前記デバイスを特定して、電子データストレージ内の前記デバイスについてのレコードを見つける動作と、
前記通信インタフェースを介して、前記デバイスと利用可能なサービス又は第２のデバイスとの間の可能な接続を探す動作と、
グラフィカルユーザインタフェースを介して、前記可能な接続についての提案を提供する動作と、
前記デバイスの前記可能な接続を有効にする電子承認を受信する動作と、
を実行するよう構成されている、プロセッサと、
を有するゲートウェイ。
【請求項２】
前記デバイスの前記グラフィカル表現は、写真、ＱＲコード（登録商標）、及びバーコードのうちの少なくとも１つを含む、請求項１に記載のゲートウェイ。
【請求項３】
前記プロセッサは、前記グラフィカル表現に基づいて前記デバイスを特定するときに、前記電子データストレージ内の前記レコードから前記デバイスの特性を特定するよう構成されている、請求項１に記載のゲートウェイ。
【請求項４】
前記デバイスの前記特性は、製造者、モデル、サポートされる通信インタフェース、及びアプリケーションプログラミングインタフェースのうちの少なくとも１つを含む、請求項３に記載のゲートウェイ。
【請求項５】
前記プロセッサは、前記グラフィカル表現に基づいて前記デバイスを特定するときに、
リモートデータストレージにおいて前記デバイスのためのドライバを特定し、
前記リモートデータストレージから前記ドライバをダウンロードし、
前記ゲートウェイにおいて前記ドライバを構成し、
前記通信インタフェースを選択し、
前記デバイスを接続する
よう構成されている、請求項１に記載のゲートウェイ。
【請求項６】
前記プロセッサは、前記デバイスと前記利用可能なサービス又は別のデバイスとの間の前記可能な接続を探すときに、デバイス間、サービス間、及び／又はデバイス−サービス間の接続を含む接続グラフに基づいて、既存の接続されているデバイス及び／又はサービスを特定するよう構成されている、請求項１に記載のゲートウェイ。
【請求項７】
前記接続グラフは、コミュニティから学習された可能な接続及び前記ゲートウェイの現在の接続のうちの少なくとも１つのレコードを含む、請求項６に記載のゲートウェイ。
【請求項８】
前記プロセッサは、さらに、
前記デバイスに関連付けられる使用パターンをモニタリングする動作と、
前記使用パターンに基づいて新たな提案を生成する動作と、
を実行するよう構成されている、請求項１に記載のゲートウェイ。
【請求項９】
通信インタフェースを介して、ゲートウェイに接続されるデバイスのグラフィカル表現を受信するステップであって、前記グラフィカル表現は、電子フォーマットである、ステップと、
前記グラフィカル表現を使用することにより、前記デバイスを特定して、電子データストレージ内の前記デバイスについてのレコードを見つけるステップと、
前記通信インタフェースを介して、前記デバイスと利用可能なサービス又は第２のデバイスとの間の可能な接続を探すステップと、
グラフィカルユーザインタフェースを介して、前記可能な接続についての提案を提供するステップと、
前記デバイスの前記可能な接続を有効にする電子承認を受信するステップと、
を含む方法。
【請求項１０】
前記デバイスの前記グラフィカル表現は、写真、ＱＲコード（登録商標）、及びバーコードのうちの少なくとも１つを含む、請求項９に記載の方法。
【請求項１１】
前記グラフィカル表現に基づいて前記デバイスを特定することは、前記電子データストレージ内の前記レコードから前記デバイスの特性を特定することを含む、請求項９に記載の方法。
【請求項１２】
前記デバイスの前記特性は、製造者、モデル、サポートされる通信インタフェース、及びアプリケーションプログラミングインタフェースのうちの少なくとも１つを含む、請求項１１に記載の方法。
【請求項１３】
前記グラフィカル表現に基づいて前記デバイスを特定することは、
リモートデータストレージにおいて前記デバイスのためのドライバを特定することと、
前記リモートデータストレージから前記ドライバをダウンロードすることと、
前記ゲートウェイにおいて前記ドライバを構成することと、
前記デバイスを接続することと、
を含む、請求項９に記載の方法。
【請求項１４】
前記デバイスと前記利用可能なサービス又は別のデバイスとの間の前記可能な接続を探すことは、デバイス間、サービス間、及び／又はデバイス−サービス間の接続を含む接続グラフに基づいて、既存の接続されているデバイス及び／又はサービスを特定することを含む、請求項９に記載の方法。
【請求項１５】
前記接続グラフは、コミュニティから学習された可能な接続及び前記ゲートウェイの現在の接続のうちの少なくとも１つのレコードを含む、請求項１４に記載の方法。
【請求項１６】
前記デバイスに関連付けられる使用パターンをモニタリングするステップと、
前記使用パターンに基づいて新たな提案を生成するステップと、
をさらに含む、請求項９に記載の方法。
【請求項１７】
通信インタフェースを介して、ゲートウェイに接続されるデバイスのグラフィカル表現を受信する動作であって、前記グラフィカル表現は、電子フォーマットである、動作と、
前記グラフィカル表現を使用することにより、前記デバイスを特定して、電子データストレージ内の前記デバイスについてのレコードを見つける動作と、
前記通信インタフェースを介して、前記デバイスと利用可能なサービス又は第２のデバイスとの間の可能な接続を探す動作と、
グラフィカルユーザインタフェースを介して、前記可能な接続についての提案を提供する動作と、
前記デバイスの前記可能な接続を有効にする電子承認を受信する動作と、
を実行するための、プロセッサにより実行可能なプログラミングコードを符号化している非一時的なコンピュータ読み取り可能な媒体。
【請求項１８】
前記デバイスの前記グラフィカル表現は、写真、ＱＲコード（登録商標）、及びバーコードのうちの少なくとも１つを含む、請求項１７に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項１９】
前記グラフィカル表現に基づいて前記デバイスを特定することは、前記電子データストレージ内の前記レコードから前記デバイスの特性を特定することを含む、請求項１７に記載の非一時的なコンピュータ読み取り可能な媒体。
【請求項２０】
前記デバイスの前記特性は、製造者、モデル、サポートされる通信インタフェース、及びアプリケーションプログラミングインタフェースのうちの少なくとも１つを含む、請求項１９に記載の非一時的なコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載の実施形態は、自動学習ユニバーサルゲートウェイに関する。
【背景技術】
【０００２】
ゲートウェイは、しばしば、異なるプロトコルを使用することがある別のネットワーク又はモジュールとインタフェースをとるために設けられるハードウェアデバイスを指す。ゲートウェイは、システム相互運用性を提供するのに必要な、異なるプロトコルとインタラクトするためのプロトコル変換器、障害分離器、又は信号変換器等の様々なデバイスを含み得る。
【０００３】
本出願において特許請求される主題は、あらゆる欠点を解決する実施形態又は上記のような環境においてのみ動作する実施形態に限定されるものではない。そうではなく、この背景技術の記載は、本明細書に記載のいくつかの実施形態が実施され得る１つの例示的な技術領域を示すために提供されているに過ぎない。
【発明の概要】
【０００４】
一実施形態の一態様に従うと、ゲートウェイは、通信インタフェースと、前記通信インタフェースに動作可能に接続されたプロセッサと、を含む。前記プロセッサは、前記通信インタフェースを介して、前記ゲートウェイに接続されるデバイスのグラフィカル表現を受信するよう構成されている。前記グラフィカル表現は、電子フォーマットである。前記プロセッサは、さらに、前記デバイスの前記グラフィカル表現を使用して前記デバイスを特定して、電子データストレージ内の前記デバイスについてのレコードを見つけるよう構成されている。前記プロセッサは、前記デバイスと利用可能な第２のデバイス又はサービスとの間の可能な接続を探すよう構成されている。前記プロセッサはまた、グラフィカルユーザインタフェースを介した表示のために、前記可能な接続についての提案を提供するよう構成されている。前記プロセッサは、前記デバイスの前記可能な接続を有効にする電子承認を受信するよう構成されている。
【０００５】
実施形態の目的及び利点が、少なくとも請求項において特に示される要素、特徴、及び組合せにより、実現及び達成される。
【０００６】
前述の総括的な説明及び以下の詳細な説明の両方ともが、例示的で説明的なものであり、特許請求される発明を限定するものではないことを理解されたい。
【図面の簡単な説明】
【０００７】
例示的な実施形態が、添付の図面を使用して、より具体的且つ詳細に記載及び説明される。
【図１】ゲートウェイを含むシステムの例示的な動作環境のブロック図。
【図２】自動学習ユニバーサルゲートウェイに関連する例示的な方法のフロー図。
【図３】システムにおける接続の関係を表現する例示的な接続グラフを示す図。
【図４】複合動作の視覚的提示がディスプレイデバイスを介してユーザに少なくとも部分的に提示され得る例示的なシステムを示す図。
【図５】本明細書に記載の少なくとも１つの実施形態に従って全て構成される、本明細書に記載の方法のうちの任意の１つ以上を、コンピューティングデバイスの例示的な形態であるマシンに実行させる命令のセットが実行され得る、該マシンの図式表現を示す図。
【発明を実施するための形態】
【０００８】
ハードウェアにおける技術が進化しており、通信システムは、小型デバイスをより強力にし、互いとより良く通信できるようにしている。これらのデバイスは、宅内環境、車両環境、又はインターネットオブシングス（ＩｏＴ）環境等の様々な環境において、ゲートウェイにしばしば接続する。ＩｏＴは、自動化、監視等といった多くの有用な機能をもたらしている。しかしながら、ＩｏＴは、本質的に、多様で細分化されセクタ固有である。多くのベンダは、他のベンダからのデバイスの組み込みを禁じる独立したエコシステムを作成する傾向にある。結果として、第１のタイプのデバイスを有するユーザは、ユーザが第１のタイプのデバイスとともに使用する可能性がある他のタイプのデバイスについて制限される場合がある。従来のゲートウェイは、異なるプロトコルを使用して互いと通信するデバイス群を可能にするハードウェア及び／又はソフトウェアを含み得る。例えば、ゲートウェイは、デバイスが、異なる無線周波数（ＲＦ）プロトコルを使用する異なるＲＦデバイス群とインタラクトすることを可能にし得る。デバイスを従来のゲートウェイに接続することは、一般に、厄介であり、誤りを犯しがちである。
【０００９】
本開示の態様は、自動学習ユニバーサルゲートウェイを提供することにより、従来のゲートウェイ及び関連するシステムのこれらの欠点及び他の欠点に対処する。本ゲートウェイは、機械学習方法に基づいて、ウェブ等の様々なソースから、プロトコル、アプリケーションプログラミングインタフェース（ＡＰＩ）、及びデバイスについて学習することができる。さらに、本ゲートウェイは、異種のプロトコル、ＡＰＩ、及びデバイスと協働するための提案システムを提供することができる。
【００１０】
したがって、本明細書で開示されるいくつかの実施形態は、本ゲートウェイが写真、バーコード、ＱＲコード（登録商標）等を介して新たなデバイスを自動的に特定できる自動デバイス構成を可能にする環境を提供する。ユーザが、新たなデバイスを追加することを望むときに、ユーザは、新たなデバイスの写真を撮影する又はＱＲコード（登録商標）やバーコードをスキャンすることができる。次いで、本ゲートウェイは、クラウドに接続して、新たなデバイスを接続するためのドライバを自動的にダウンロードする。さらに、他の既存のデバイス又はサービスとの接続が、パーソナライズされたユーザフレンドリーなインタフェースを介して有効にされ得る。新たなデバイスの通信インタフェースが、新たなデバイスの仕様を介して、自動的に特定され得、本ゲートウェイは、通信インタフェースを選択して、新たなデバイスに接続することができる。また、新たなデバイスとインタラクトするためのソフトウェアが、本ゲートウェイにダウンロードされ得る。このソフトウェアは、ＡＰＩ学習方法を介して生成され得る。代替的に、上記ソフトウェアは、バックエンドシステムに存在してもよく、本ゲートウェイは、バックエンドシステムにあるソフトウェアを介して、新たなデバイスと通信してもよい。
【００１１】
本ゲートウェイは、新たなデバイスを自動的に特定して新たなデバイスへの接続を有効にすることにより、新たなデバイスに接続するプロセスを容易にすることができる。本ゲートウェイは、ゲートウェイを使用して、デバイス間、クラウドサービス間、及び／又はデバイス−クラウドサービス間で通信する、宅内環境（ホームゲートウェイとして）、車両環境（車両ゲートウェイとして）、及び任意のＩｏＴ環境等の環境において使用され得る。例えば、ホームゲートウェイの場合、モバイルデバイスやタブレット等のユーザデバイスは、ユニバーサルホームゲートウェイとして機能することができる。
【００１２】
本開示の他の利点は、新たなデバイスの自動特定及び自律構成、接続及びサービスの提案についての学習能力、自動プロトコル変換を介する複数のＩｏＴエコシステムのサポート、旧式のＩｏＴデバイス（すなわち、オリジナルベンダからメンテナンスの継続的サポートを受けられないデバイス）をサポートするための演算プラットフォーム、デバイス／サービスから生成されたデータをホストし、クラウドサービス（例えば、クラウドビデオ記録サービス）のコストを節減するための記憶空間、より複合的な機能（例えば、複数のトリガー条件、コンピュータビジョン等）、及び、重要なデータを本ゲートウェイ又はローカルストレージにおいて保持することによる、プライバシーの増大された保護を含む。
【００１３】
本明細書に記載のいくつかの実施形態は、複数のプロトコルで通信するデバイス群の統合を可能にする。さらに、デバイス構成に組み込まれると、これらのデバイスは、中央システムを必ずしも介する必要なく、ピアツーピアで通信することができる。
【００１４】
図１は、本明細書に記載の少なくとも１つの実施形態に従って構成される、システムの例示的な動作環境１００のブロック図を示している。図１に示されるように、動作環境１００は、１つ以上のデバイス１０６、ゲートウェイ１１０、１つ以上のウェブサービス１１５、ネットワーク１２４、システムサーバ１２５、ユーザデータベース（ＤＢ）１２８、提案データベース（ＤＢ）１３０、ローカルデータベース（ＤＢ）１３６、及びクラウド１４０を含み得る。ゲートウェイ１１０、ウェブサービス１１５、システムサーバ１２５、及びクラウド１４０（集合的に「環境」コンポーネント）は、ネットワーク１２４を介して、互いに通信可能に接続され得る。
【００１５】
デバイス１０６は、プロセッサ、メモリ、及び通信能力を含むコンピュータベースのハードウェアデバイスを含み得る。デバイス１０６の各々は、動作環境１００の他のコンポーネントのうちの任意のコンポーネントとデータを通信するために、ネットワーク１２４に接続され得る。デバイス１０６のいくつかの例は、電球、照明システム、ドアロック、給湯器、スプリンクラーシステム、空調装置、サーモスタット、アラーム時計、ブラインド、スイッチ、煙感知／報知器、カメラ、エッグマインダー（egg  minder）、電気差し込み口、個人用貯金入れ（例えば、貯金箱）、プロパンタンク、アラーム、対人近接センサ、ドアセンサ、バイオメトリックセンサ、マットレス、モバイルデバイス、車両センサ、時計、調理デバイス、電気ブレーカ、個人用警報センサ、動きセンサ、カレンダー、テレビジョン、ラジオ、無線周波数識別（ＲＦＩＤ）タグ／ＲＦＩＤ検出器、乗り物、電気車両充電器、分散型発電機（例えば、ソーラーパネル）、分散型エネルギー貯蔵器（例えば、バッテリ）、及び温度計を含む。
【００１６】
デバイス１０６は、１つ以上の通信プロトコルを用いて通信することができる。例えば、いくつかの実施形態において、デバイス１０６又はデバイス１０６の何らかのサブセットは、ベンダにより提供され得る。デバイス１０６は、特定の機能のために、且つ／又は、他のデバイス１０６のうちの１つ以上との一緒の使用のために、提供され得る。ベンダにより提供されるデバイス１０６は、特定の通信プロトコルを用いて通信することができる。
【００１７】
いくつかの通信プロトコルは、他の通信プロトコルと互換性があることがある。例えば、第１のデバイス１０６Ａからの第１のプロトコルは、第２のデバイス１０６Ｂの第２のプロトコルに変換され得る。しかしながら、他の通信プロトコルは、全ての他のデバイス１０６及び／又は他の通信プロトコルと互換性がないことがある。異なるが互換性がある２つの通信プロトコルを２つのデバイス１０６が使用して通信する状況において、ゲートウェイ１１０は、２つのデバイス１０６間の通信を可能にするために配備され得る。
【００１８】
ゲートウェイ１１０は、ネットワーク１２４を介してアクセス可能であり得、したがって、リモートに物理的に配置され得る。ゲートウェイ１１０は、異なる通信プロトコルを使用するデバイス１０６間の通信を可能にする任意のシステム又はデバイスを含み得る。ゲートウェイ１１０は、デバイス１０６間の通信において使用される他のデバイスを含み得る。例えば、ゲートウェイ１１０は、プロトコル変換器及び／又は信号変換器、インピーダンス整合器、レート変換器、障害分離器等を含み得る。ゲートウェイ１１０は、例えば、デバイス１０６のうちどのデバイスとゲートウェイ１１０が通信し得るかと、デバイス１０６との通信を可能にするために実行される１つ以上のステップと、を示し得る１つ以上の構成パラメータをさらに含み得る。ゲートウェイ１１０はまた、局所的に（例えば、非クラウドベースで）アクセスされ得る物理ゲートウェイを含み得る。
【００１９】
デバイス構成は、デバイス１０６が１つ以上の特定のタイプのデータを通信するように、ユーザの入力に基づいて、ゲートウェイ１１０により少なくとも部分的に構築され得る。例えば、センサとして配備されるデバイス１０６は、測定された状態を表す信号を通信することができ、特定の動作を実行するように配備されるデバイス１０６は、制御信号を受信するよう構成され得、コントローラとして配備されるデバイス１０６は、機器の動作が変更され得る条件を受信することができる。
【００２０】
１つ以上のウェブサービス１１５は、ネットワーク１２４（例えば、ワールドワイドウェブ）を介して互いに通信する、電子デバイスにより別の電子デバイスに提供されるサービスを含み得る。１つ以上のウェブサービス１１５は、一般に、ゲートウェイ１１０及び／又はシステムサーバ１２５へのインタフェースを提供する。ウェブサービスは、ゲートウェイ１１０及び／又はシステムサーバ１２５への、気象データ、日の出／日の入りデータ等といった様々なタイプの情報の提供を含み得る。
【００２１】
ネットワーク１２４は、動作環境１００のコンポーネント（例えば、１０６、１１０、１１５、１２５、１２８、１３０、１３６、及び１４０）のうちの任意のコンポーネントの間の信号の通信のために構成されている任意の通信ネットワークを含み得る。例えば、第１のデバイス構成の構築の後、第１のデバイス１０６Ａ、ゲートウェイ１１０、及び第２のデバイス１０６Ｂは、ネットワーク１２４を介して通信することができる。ネットワーク１２４は、有線であってもよいし、無線であってもよい。ネットワーク１２４は、スター構成、トークンリング構成、又は別の適切な構成を含む多数の構成を有し得る。さらに、ネットワーク１２４は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）（例えば、インターネット）、及び／又は、複数のデバイスが通信できる他の相互接続されたデータパスを含み得る。いくつかの実施形態において、ネットワーク１２４は、ピアツーピアネットワークを含み得る。ネットワーク１２４はまた、多種多様な通信プロトコルでのデータの通信を可能にし得る通信ネットワークの諸部分に接続され得る、又は、そのような諸部分を含み得る。
【００２２】
いくつかの実施形態において、ネットワーク１２４は、データを送受信するための、ＢＬＵＥＴＯＯＴＨ（登録商標）通信ネットワーク、Ｚ−Ｗａｖｅ通信ネットワーク、Ｉｎｓｔｅｏｎ通信ネットワーク、ＥｎＯｃｅａｎ通信ネットワーク、Ｗｉ−Ｆｉ（登録商標）通信ネットワーク、ＺｉｇＢｅｅ（登録商標）通信ネットワーク、ＨｏｍｅＰｌｕｇ（登録商標）通信ネットワーク、電力線通信（ＰＬＣ）通信ネットワーク、ＭＱＴＴ（message  queue  telemetry  transport）通信ネットワーク、ＭＱＴＴ−センサ（ＭＱＴＴ−Ｓ）通信ネットワーク、ＣｏＡＰ（constrained  application  protocol）通信ネットワーク、ＲＥＳＴ  ＡＰＩ（representative  state  transfer  application  protocol  interface）通信ネットワーク、ＸＭＰＰ（extensible  messaging  and  presence  protocol）通信ネットワーク、セルラ通信ネットワーク、任意の同様の通信ネットワーク、又は、これらの任意の組合せを含む、又は、これらを含むよう構成される。ネットワーク１２４において通信されるデータは、デバイス１０６、クラウドサーバ通信、又はゲートウェイ１１０により実装され得る、ショートメッセージングサービス（ＳＭＳ）、マルチメディアメッセージングサービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、直接データ接続、無線アプリケーションプロトコル（ＷＡＰ）、電子メール、スマートエネルギープロファイル（ＳＥＰ）、ＥＣＨＯＮＥＴ  Ｌｉｔｅ（登録商標）、ＯｐｅｎＡＤＲ、又は任意の他のプロトコルを介して通信されるデータを含み得る。
【００２３】
システムサーバ１２５は、プロセッサ、メモリ、及び通信能力を含むハードウェアサーバを含み得る。図示される実施形態において、システムサーバ１２５は、ユーザデバイス１０６、ゲートウェイ１１０、クラウド１４０、及びウェブサービス１１５のうちの１つ以上との通信のために、ネットワーク１２４に接続され得る。
【００２４】
クラウド１４０は、クラウドサービスを含み得る。多くのＩｏＴデバイスベンダが、それら自身のクラウドサービスを提供している。デバイス情報、デバイス使用状況情報等といった様々なデータが、様々なクラウドサービスサーバにおいて収集され得る。
【００２５】
システムサーバ１２５は、ユーザデータベース１２８及び／又は提案データベース１３０を含み得る、又は、ユーザデータベース１２８及び／又は提案データベース１３０に接続され得る。概して、ユーザデータベース１２８は、デバイス１０６のうちの１つ以上のデバイスの能力と、デバイス１０６間の相互運用性と、を含み得る。ゲートウェイ１１０は、ローカルデータベース１３６を含み得る、又は、ローカルデータベース１３６に接続され得る。
【００２６】
データベース１２８、１３０、及び１３６は、任意のメモリ又はデータストレージを含み得る。データベース１２８、１３０、及び１３６は、動作環境１００における他のコンポーネントがデータベース１２８、１３０、及び１３６と通信できるように、ネットワーク通信能力を含み得る。いくつかの実施形態において、データベース１２８、１３０、及び１３６は、コンピュータ実行可能な命令又はデータ構造を運ぶ又は記憶するコンピュータ読み取り可能な記憶媒体を含み得る。コンピュータ読み取り可能な記憶媒体は、プロセッサ等の汎用又は専用のコンピュータによりアクセスされ得る任意の利用可能な媒体を含み得る。例えば、データベース１２８、１３０、及び１３６は、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、電気的に消去可能なプログラム可能な読み取り専用メモリ（ＥＥＰＲＯＭ）、コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、フラッシュメモリデバイス（例えば、ソリッドステートメモリデバイス）、又は、コンピュータ実行可能な命令又はデータ構造の形態の所望のプログラムコードを運ぶ又は記憶するために使用され得る任意の他の記憶媒体であって、汎用又は専用のコンピュータによりアクセスされ得る任意の他の記憶媒体、を含む有形の又は非一時的なコンピュータ読み取り可能な記憶媒体であり得るコンピュータ読み取り可能な記憶媒体を含み得る。これらの組合せも、データベース１２８、１３０、及び１３６のうちの任意のデータベースに含まれ得る。
【００２７】
データベース１２８、１３０、及び１３６は、様々なデータを記憶することができる。データは、リレーショナルデータベース構造等の任意のデータ構造で記憶され得る。例えば、ユーザデータベース１２８は、ユーザの使用パターンを含み得る。ユーザの使用パターンは、いかなる特定のユーザも個人的に特定するものではなく、匿名化され得る。使用パターンの例は、ユーザが操作するデバイスのタイプ、デバイスの設定、動作の時刻及び／又は位置等を含み得る。例えば、ユーザが、２つの機器又はサービスを別々に頻繁に操作し得る場合、これらの２つのイベントが順次に発生したとき、システムサーバ１２５は、２つの機器又はサービスの間の関係を認識することができ、自動制御を有効にすることができる。
【００２８】
別の例において、提案データベース１３０は、コミュニティ（匿名化されたユーザ又はオープンフォーラム）から提供された提案を含み得る。例えば、一般的なレシピは、２つのデバイス及び／又はサービスを接続し得る。ユーザが、これら２つのデバイス及び／又はサービスを有し、このレシピを受け取るグループとしての設定を有する場合、システムサーバ１２５は、このレシピをユーザに提案することができる。例えば、ユーザは、踊ることが好きであり得、スマートスピーカ及びスマートＬＥＤ照明の両方を有する。スマートスピーカ及びスマートＬＥＤ照明の両方を制御するためのレシピが存在する場合、システムサーバ１２５は、このレシピをユーザに提案することができる。
【００２９】
さらなる例において、ローカルデータベース１３６は、使用パターン、提案、使用履歴、及び任意の他のデータの一部又は全てを含み得る。
【００３０】
動作中、ゲートウェイ１１０及び／又はシステムサーバ１２５は、接続及びサービスの提案のために機械学習を用いることができる。提案は、他の既存のデバイスとの新たなデバイスの接続と、デバイス／サービス間のインタラクションのためのルールの構成と、の提案を含み得る。提案は、既存の類似するサービス（例えば、ＩＦＴＴＴレシピ）、コミュニティ、他のゲートウェイからの他の匿名化されたユーザの集合、及び／又はユーザの自身の行動から、学習され得る。
【００３１】
機械学習方法に関して、ゲートウェイ１１０及び／又はシステムサーバ１２５は、デバイス特定、通信インタフェース特定、ＡＰＩ通信、機能有効化、接続提案等といった、ゲートウェイ１１０に接続されるデバイスに関連する任意の情報又は特徴についての学習能力を含み得る。少なくともいくつかの実施形態において、デバイス１０６は、一般に手動デバイス構成を用いる従来手法の代わりに、自動的に構成され得る。提案される構成は、ゲートウェイ１１０上のソフトウェアであって、該ソフトウェアがＡＰＩドキュメンテーションとその記載とから学習する学習能力を有する、ゲートウェイ１１０上のソフトウェアにより提供される。例えば、ゲートウェイ１１０は、ＡＰＩのウェブサイトを用いて、デバイスの機能について特定又は学習することができる。
【００３２】
既存のサービスから学習するために、ゲートウェイ１１０及び／又はシステムサーバ１２５は、クラウド１４０等のデータベースにおけるレシピを特定することができる。ゲートウェイ１１０及び／又はシステムサーバ１２５は、図２及び図３に関連してさらに説明されるように、既存のデータベースにおいて発見されたレシピ（例えば、ＩＦＴＴＴレシピ等）を、グローバルグラフＧｃ内に記録することができる。各レシピは、３つのレイヤにおける可能な接続及び機能レイヤにおけるパラメータを含み得る。例示的なレシピは、「if  you  leave  home  (by  location  information),  start  home  security  system（あなたが自宅を離れる場合（位置情報により）、ホームセキュリティシステムを起動しなさい）」であり得る。
【００３３】
クラウドから学習するために、ゲートウェイ１１０及び／又はシステムサーバ１２５は、匿名化されたユーザの設定を、グローバルグラフＧｃ内に記録することができる。ユーザのための提案を探すときに、ゲートウェイ１１０及び／又はシステムサーバ１２５は、ユーザを他のユーザと比較することができる。ユーザに類似するグループ（例えば、環境、嗜好性等）に基づいて、このグループにおける匿名化された設定が、ユーザに提供され得る。クラスタリングにより類似度をどのように測るかの例において、ゲートウェイ１１０及び／又はシステムサーバ１２５は、ユーザが所有するデバイスのタイプ、ユーザの推定年齢、ユーザの収入レベル、ユーザの生活スタイル等といったいくつかの基準に基づいて、全てのユーザをクラスタリングすることができる。各基準は、収入、年齢等といったいくつかのクラスに離散化されることもあるし、又は、（例えば、活動的な時間のインジケーションに基づいて）生活スタイル等の少しのクラスに分類されることもある。ゲートウェイ１１０及び／又はシステムサーバ１２５は、ユーザを、ユーザにとって類似するグループにクラスタリングすることができる。少なくとも１つの実施形態において、あるゲートウェイは、自身が発見したデバイス／レシピを他のユーザに提案するために、該ゲートウェイのデータをゲートウェイ１１０及び／又はシステムサーバ１２５に対して同期することができる。例えば、ゲートウェイ１１０及び／又はシステムサーバ１２５は、（１つのエリア内の）近傍から、デバイスをオン／オフする時刻又は人気のあるＴＶチャンネルにチューニングする時刻を学習することができる。
【００３４】
ユーザ使用の履歴から学習するために、ゲートウェイ１１０及び／又はシステムサーバ１２５は、ユーザの手動操作をモニタリング又は記録して、任意の自動化のパターンを特定することができる（例えば、２つのイベントについての時刻又は位置における相関を見出すことができる）。ユーザの所定の決まってする動作（ルーティン）が特定され得る場合、ゲートウェイ１１０及び／又はシステムサーバ１２５は、自動化されたレシピをユーザに提案することができる。
【００３５】
少なくとも１つの実施形態において、複合動作が、ゲートウェイ１１０において、又は、ゲートウェイ１１０とともにシステムサーバ１２５において、実行され得る。例示的な複合動作は、複数のアクションをトリガーする複数の条件を含むこともあるし、又は、特定の機能が、所定のアクション、又はエラーの自動診断をトリガーするために、ゲートウェイにおいて実行されることもある。
【００３６】
ゲートウェイ１１０は、１つのアクションをトリガーする複数の条件を考慮することができる。これらの条件は、何らかの論理演算であり得る。例えば、ゲートウェイ１１０は、ユーザの車両の位置及びユーザの電話の位置を同時に特定して、ユーザのガレージドア及び玄関ドアの両方を開くことができる。
【００３７】
ゲートウェイ１１０は、所定のアクションをトリガーするために特定の機能を実行することができる。例えば、ゲートウェイ１１０は、車両内に配置され得る。ゲートウェイ１１０は、車両カメラからの撮影されたビデオを処理することができる。ゲートウェイにおいてコンピュータビジョンソフトウェアを実行することにより、所定の条件が検出され得る。所定の条件が満たされたとき、これは、アクションをトリガーし得る。例えば、車両カメラが、他の車両事故を観測すると、そのようなビデオが、クラウドサーバにアップロードされ得る。別の例において、車両が、（例えば、センサデータから）事故の発生を検出すると、事故前のビデオ及び事故後のビデオが、サーバにアップロードされ得る。通知が、ゲートウェイ１１０を介して、家族／友人／救助隊等に送信され得る。高齢者介護の場合、転倒検出センサが、異常なイベントを検出すると、ゲートウェイ１１０は、高齢者の家に設置されているカメラ及び／又は他のセンサ１０６を介して、高齢者の場所を探し、高齢者の状況を継続的にモニタリングすることができる。センサにおける状況（例えば、所定の期間の間動きがないこと）に基づいて、アラーム音、通知が家族／友人／病院に送信される等といった様々な後続アクションが、トリガーされ得る。軽度の状況が観測された場合、ゲートウェイ１１０は、高齢者の状態を分析するために、単純なＱ＆Ａダイアログを介して等（例えば、介護者が問題ないかどうかを尋ねる等）、高齢者と介護者との間の対話を促すことができる。
【００３８】
ゲートウェイ１１０は、エラーを自動的に診断することができる。例えば、ゲートウェイ１１０は、様々なアクティビティをモニタリングすることができ、他のユーザが以前に経験している可能性があることに基づいて、問題をどのように解決するかを提案することができる。これは、動的な知識に基づく診断をサポートする動的な方法であり、静的な、ドキュメンテーションに基づく診断とは異なる。
【００３９】
本開示の範囲から逸脱することなく、動作環境１００に対して、変更、追加、又は省略が可能である。例えば、動作環境１００は、任意の数の説明されたデバイス及びサービスを含んでもよい。さらに、本明細書に記載の実施形態における様々なコンポーネント及びサーバの分離は、そのような分離が全ての実施形態において生じることを示すようには意図されていない。さらに、説明されたコンポーネント及びサーバは、概して、１つのコンポーネント又はサーバに一緒に統合されてもよいし、複数のコンポーネント又はサーバに分離されてもよいことが、本開示の利点として理解されよう。
【００４０】
図２は、自動学習ユニバーサルゲートウェイに関連する例示的な方法２００のフロー図を示している。方法は、ハードウェア（回路、専用ロジック等）、ソフトウェア（汎用コンピュータシステム又は専用マシン上で実行されるソフトウェア等）、又はこれらの組合せを含み得る処理ロジックにより実行され得、処理ロジックは、図１の動作環境１００又は別のコンピュータシステム若しくはデバイスに含まれ得る。しかしながら、別のシステム又はシステムの組合せが、方法を実行するために使用されてもよい。説明を単純にするために、本明細書に記載の方法は、一連の動作として示され説明される。しかしながら、本開示に従った動作は、様々な順序で且つ／又は同時に生じることもあり、本明細書において提示及び説明されない他の動作が生じることもある。さらに、全ての例示される動作が、開示される主題に従った方法を実施するために使用されるわけではない。さらに、方法は、代替的に、状態図を介する一連の相互に関連付けられた状態又はイベントとして表現されてもよいことが、当業者であれば理解及び認識されよう。さらに、本明細書で開示される方法は、そのような方法をコンピューティングデバイスに運んで転送するのを容易にするために、非一時的なコンピュータ読み取り可能な媒体等の製品に記憶されることも可能である。本明細書で使用される製品という用語は、任意のコンピュータ読み取り可能なデバイス又は記憶媒体からアクセス可能なコンピュータプログラムを包含することが意図されている。別個のブロックとして図示されているが、様々なブロックは、所望の実装に応じて、追加のブロックに分割されることもあるし、より少ないブロックに組み合わされることもあるし、除去されることもある。方法２００は、図１のサーバ１２５又はゲートウェイ１１０等、サーバ内の処理ロジックにより、少なくとも部分的に実行され得る。
【００４１】
方法２００は、ブロック２０５で開始し得、ブロック２０５において、処理ロジックは、システムサーバと同期することができる。電源オン後に、処理ロジックは、システムサーバ（例えば、図１のシステムサーバ１２５）に接続し、システムサーバ１２５に関連付けられている１つ以上のデータベース（例えば、ユーザデータベース１２８、提案データベース１３０）と同期することができる。
【００４２】
ブロック２１０において、処理ロジックは、デバイスの写真、ＱＲコード（登録商標）、バーコード、及び／又は、任意の他のグラフィカル表現若しくは視覚的表現を受信することができる。デバイスが、システム（例えば、図１の動作環境）に追加されるときに、処理ロジックは、グラフィカル表現又は視覚的表現により、デバイスを特定することができる。例えば、グラフィカル表現は、デバイスの写真又は画像を含み得る。別の例において、視覚的表現は、デバイスに関連付けられているグラフィック又はコード（例えば、ＱＲコード（登録商標）、バーコード）を含み得る。少なくとも１つの実施形態において、デバイスをシステムに追加することを望むシステム管理者は、ユーザデバイスを介して、デバイスのグラフィカル表現又は視覚的表現を処理ロジックに送信する。少なくとも１つの実施形態において、ユーザは、カメラを用いてデバイス自体の写真を撮影し、撮影された写真を処理ロジックに送信することができる。
【００４３】
ブロック２１５において、処理ロジックは、デバイスの写真、ＱＲコード（登録商標）、バーコード、及び／又は、他のグラフィカル表現若しくは視覚的表現に基づいて、デバイスを特定することができる。処理ロジックは、デバイスの写真、ＱＲコード（登録商標）、バーコード、及び／又は、他のグラフィカル表現若しくは視覚的表現を使用して、製造者、モデル、サポートされる通信インタフェース、ＡＰＩ等といった、デバイスの特性を特定することができる。処理ロジックは、データストレージ（例えば、図１のローカルデータベース１３６又はクラウド１４０）に接続して、新たなデバイスを接続するためのドライバをダウンロードすることができる。
【００４４】
ブロック２２０において、処理ロジックは、デバイスを構成し、デバイスに接続することができる。処理ロジックは、ブロック２１５において得られたドライバに基づいて、デバイスを構成することができる。ドライバがインストールされて構成されると、処理ロジックは、新たなデバイスに接続することができる。少なくとも１つの実施形態において、処理ロジックは、デバイスにアクセスするための通信方法として、最良の通信インタフェースを選択することができる。デバイスドライバ（又は、デバイスのＡＰＩにどのようにアクセスするかのソフトウェア）が、ゲートウェイにダウンロードされる。
【００４５】
ブロック２２５において、処理ロジックは、デバイスについての可能な接続を探すことができる。例えば、処理ロジックは、既存の接続されているデバイス及び／又はサービスを特定することができる。処理ロジックは、次いで、新たなデバイスと、既存のデバイス及び／又はサービスと、の間の可能な新たな接続を探すことができる。システムサーバは、デバイス間、サービス間、及び／又はデバイス−サービス間等の接続を記録する「接続グラフ」の様々なバージョンを保持することができる。少なくとも１つの実施形態において、接続グラフは、コミュニティ（匿名化されたユーザ若しくはオープンフォーラム又は「ＩＦＴＴＴ」レシピ）から学習された、Ｇｃ（コミュニティのグラフ）と呼ばれる可能な接続のレコードを含み得る。接続グラフの別の実施形態は、Ｇｕ（ユーザのグラフ）と呼ばれる、ユーザのゲートウェイ自体の接続を含み得る。新たなノードｘ（新たに追加されるデバイス）をＧｕに追加し、ＧｕをＧｃで比較することにより、処理ロジックは、他のデバイス／サービスとの新たなノードｘの可能な新たな接続を使用することができる。
【００４６】
ブロック２３０において、処理ロジックは、デバイスの接続及び／又は構成についての提案を提供することができる。処理ロジックは、システムサーバから提案を受信することができる。システムサーバは、提案を生成することができる。提案を生成するために、システムサーバは、ゲートウェイの構成を、他のユーザの構成と比較して、接続及び／又は構成の提案を提供することができる。処理ロジックは、提案をクライアントデバイスに提供することができる。クライアントデバイスは、グラフィカルユーザインタフェースを介いて、提案を提示することができる。クライアントデバイスは、提案の承認又は承諾を受け取り、承認又は承諾を処理ロジックに送信することができる。処理ロジックは、クライアントデバイスから受信した承認又は承諾に応じて、デバイスを構成することができる。マルチレベル接続グラフ（例えば、図３参照）の階層が、カテゴリレベル、デバイス／サービスレベル、及び機能レベルという３つのレベルで維持され得る。ある接続を採用したユーザが、該接続に関連付けられ、処理ロジックは、これに応じて、接続グラフを更新することができる。例えば、処理ロジックは、嗜好性、インストール済みデバイス等といった様々な基準に基づいて、（新たに追加されるデバイスを有する）ユーザに最も近い、全てのユーザのグループを探すことができる。このグループの構成に基づいて、新たなデバイスとの新たな接続が、処理ロジックにより提案され得る。より多くの人に採用されている接続は、該接続がユーザにとって有用であり得るより高い可能性（高い優先順位）を示し得る。演算、記憶、機能等の提供等のさらなる特徴が、処理ロジックにより、ユーザに提供され得る。例えば、クラウドビデオ記録機能を使用する代わりに、ゲートウェイは、ゲートウェイにおけるローカル記憶を提供することができる。別の例は、例えば、コンピュータビジョン又は音声認識を用いて特定のイベントを認識する等の特定の実行可能な機能が、ゲートウェイにダウンロードされ得ることであり、処理ロジックは、この機能をローカルで実行することができる。
【００４７】
ブロック２３５において、処理ロジックは、デバイスへの接続を有効にする承認を受信することができる。少なくとも１つの実施形態において、処理ロジックは、この決定を行うのを支援するために、論理レベル情報に基づくチュートリアル情報をユーザに提供することができる。処理ロジックは、パーソナライズされたユーザフレンドリーなインタフェースを介したユーザの選択に基づいて、他の既存のデバイス又はサービスとの接続を有効にすることができる。
【００４８】
ブロック２４０において、処理ロジックは、デバイスに関連付けられる使用パターンをモニタリングすることができる。処理ロジックは、デバイスを継続的にモニタリングし、任意の使用状況情報をデータストレージに記憶することができる。ブロック２４５において、処理ロジックは、使用パターンを学習して、追加の提案を特定することができる。処理ロジックは、様々な使用パターンについて、収集された使用状況情報を解析することができる。複数のシステムからの且つ／又は２人以上のユーザに関連付けられている使用パターンから学習することにより、処理ロジックは、ユーザをより効率的に作業させるための、サービスの新たな提案又は新たな接続を特定することができる。例えば、所定の複数のイベントが、時間的に近接して発生した場合、処理ロジックは、このパターンを観測し、フローをより効率的にするための新たな自動化構成を提案することができる。処理ロジックは、ブロック２３０において、新たな提案をクライアントデバイスに提供することができ、ブロック２３５において、新たな提案の承認を受信することができる。
【００４９】
本明細書で開示されているこの手順及び他の手順並びに方法に関して、方法及びプロセスにおいて実行される機能は、異なる順序で実行されることもあることが、当業者であれば理解されよう。さらに、説明されたステップ及び動作は、例として提供されているに過ぎず、これらのステップ及び動作のうちの一部は、開示されている実施形態から逸脱することなく、任意的であることもあるし、より少ないステップ及び動作に組み合わされることもあるし、追加のステップ及び動作に拡張されることもある。
【００５０】
本明細書に記載の実施形態は、以下でより詳細に説明される様々なコンピュータハードウェア又はソフトウェアモジュールを含む専用又は汎用のコンピュータの使用を含み得る。
【００５１】
図３は、システムにおける接続の関係を表現する例示的な接続グラフ３００を示している。図示されるように、接続グラフ３００は、３つのレベルを含むが、接続グラフ３００は、任意の数のレベルを含んでもよい。説明のしやすさのために、接続グラフ３００が、気象モニタリング及び照明制御に関連して説明される。任意のタイプのシステム、アプリケーション、又は構成が企図されている。接続グラフ３００は、図１のゲートウェイ１１０を含み得るゲートウェイ３１０の表現を含み得る。
【００５２】
図示されるように、第１のレベルは、論理レベル３５０を含み得る。論理レベル３５０は、「気象」カテゴリ及び「照明」カテゴリを含み得る。論理レベル３５０は、ゲートウェイ３１０が気象に関連する情報に基づいて照明をどのように制御し得るかの表現を含み得る。
【００５３】
第２のレベルは、デバイス及び／又はサービスレベル３５５を含み得る。デバイス及び／又はサービスレベル３５５は、論理レベル３５０のカテゴリに属するデバイス及び／又はサービスを含み得る。例えば、デバイス及び／又はサービスレベル３５５は、第１の気象サービスＡ、第２の気象サービスＢ、照明デバイスＡ、及び照明デバイスＢを含む。デバイス及び／又はサービスレベル３５５は、ゲートウェイ３１０がどのように気象サービスからの情報を使用してライトを制御し得るかの表現を含み得る。
【００５４】
第３のレベルは、機能レベル３６０を含み得る。機能レベル３６０は、デバイス及び／又はサービスレベル３５５のデバイス及び／又はサービスの各々の１つ以上の機能の説明を含み得る。例えば、機能レベル３６０は、サービスＢの気温及び日照時間と、デバイスＡのオン／オフ及び明るさと、を含み得る。デバイス及び／又はサービスレベル３５５は、例えば日の入り時に等、ゲートウェイ３１０がライトをどのように自動的にオンにし得るかの表現を含み得る。
【００５５】
図４は、複合動作の視覚的提示４０３がディスプレイデバイスを介してユーザに少なくとも部分的に提示され得る例示的なシステム４００を示している。複合動作が提案又はデプロイされたとき、エンドユーザは、潜在的な効果、影響、又は利点を完全には理解しないことがある。複合動作の視覚的提示４０３及び／又はシミュレーションは、ユーザが、複合動作の構成を承諾するかどうかを決定するのを助けることができる。
【００５６】
少なくとも１つの実施形態において、視覚的提示４０３は、提案システム４０５により生成され得るフローチャート提示４０３及び／又はアクセスルール４０４を含み得る。提案システム４０５は、図１の動作環境１００のゲートウェイ１１０、システムサーバ１２５、又は任意の他のコンポーネントを含み得る。フローチャート提示４０３は、位置決定４１０を含み得、これは、ＧＰＳ位置を含み得る。位置決定は、ＧＰＳデバイス（例えば、デバイス１０６）にアクセスして位置を決定すること４１５を含み得る。フローチャート提示４０３はまた、４１０において決定された位置についての日の出及び／又は日の入りの決定４２０を含み得る。日の出及び／又は日の入りの決定４２０は、日の出及び／又は日の入り情報を提供するウェブベースのサービスであり得る日の出及び／又は日の入りサービスにアクセスすること４２５を含み得る。フローチャート提示４０３はまた、現在時刻の決定４３０を含み得、現在時刻の決定４３０は、時計にアクセスすること４３５を含み得る。フローチャート提示４０３はまた、ライトの出力を調整すること４４０を含み得、ライトの出力を調整すること４４０は、第１の予め定められた時刻にライトをオフにし、第２の予め定められた時刻にライトをオンにすることを含み得る。ライトの出力を調整することは、ライト制御器にアクセスすること４４５を含み得る。
【００５７】
アクセスルール４０４は、実行されるべきタスクと、提案を実行するためにアクセスされるべきデバイス及び／又はサービスと、のサマリを提供することができる。図示されるように、アクセスルール４０４は、モバイルデバイス又はＩｏＴデバイスへのアクセス、様々な許可要求（例えば、現在のＧＰＳ位置、現在時刻、現在の気温、日の出／日の入り、ライトをオン／オフにする）、動作を実行する頻度（例えば、１回、周期的）、及び取るべきアクション（例えば、読み取り、書き込み、変更）を含む。
【００５８】
視覚的提示４０３はまた、アニメーションベースの提示を含み得る。少なくとも１つの実施形態において、単純なアニメーション（例えば、ＧＩＦ）を用いて、論理レベルにおける１つの状態／動作を表現することができる。アニメーションを組み合わせて短いビデオクリップを作成することにより、ユーザは、手順全体を容易に理解することができる。
【００５９】
視覚的提示４０３はまた、シミュレーションベースの方法を含み得る。いくつかの実施形態において、トリガー条件がまれに生じることがあり、したがって、ユーザは、トリガー条件を手動で有効にして、トリガー条件をシミュレートすることができる。次いで、トリガーされた動作が実行され、ユーザは、効果を確認することができる。
【００６０】
ブロック４５０において、ユーザは、視覚的提示４０３に示された提案を承認又は却下することができる。ユーザは、ユーザデバイスに入力を提供することにより、提案を承認又は却下することができる。ユーザが提案を承認した場合（ブロック４５０において「Ｙｅｓ」）、ブロック４５５において、提案システム４０５は、提案の承認を、ユーザについての使用履歴に追加することができる。ブロック４６０において、提案システム４０５は、この使用履歴を用いて、同一の又は類似する提案を、別のクライアント又はユーザに提供することができる。ユーザが提案を却下した場合（ブロック４５０において「Ｎｏ」）、提案システム４０５は、提案の却下を、ユーザについてのレコードに追加することができる。このレコードは、上記の使用履歴と同じであってもよいし異なってもよい。
【００６１】
図５は、本明細書に記載の方法のうちの任意の１つ以上を、コンピューティングデバイス５００の例示的な形態であるマシンに実行させる命令のセットが実行され得る、該マシンの図式表現を示している。コンピューティングデバイス５００は、本明細書に記載の方法のうちの任意の１つ以上をマシンに実行させる命令のセットが実行され得る、携帯電話機、スマートフォン、ネットブックコンピュータ、ラックマウントサーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ等を含み得る。代替実施形態において、マシンは、ＬＡＮ、イントラネット、エクストラネット、又はインターネットにおける他のマシンに接続されてもよい（例えば、ネットワーク化されてもよい）。マシンは、クライアント−サーバネットワーク環境におけるサーバマシンとして動作することができる。マシンは、パーソナルコンピュータ（ＰＣ）、セットトップボックス（ＳＴＢ）、サーバ、ネットワークルータ、スイッチ若しくはブリッジ、又は、マシンにより実行されるアクションを指定する命令のセット（シーケンシャル又はその他）を実行することができる任意のマシンを含み得る。さらに、１つのマシンのみが図示されているが、「マシン」という用語はまた、本明細書に記載の方法のうちの任意の１つ以上を実行するための命令の１つのセット（又は複数のセット）を個々に又は集合的に実行するマシンの任意の集合を含み得る。
【００６２】
例示的なコンピューティングデバイス５００は、処理デバイス（例えば、プロセッサ）５０２、メインメモリ５０４（例えば、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）等のＤＲＡＭ、スタティックメモリ５０６（例えば、フラッシュメモリ、スタティックＲＡＭ（ＳＲＡＭ））、及びデータ記憶デバイス５１６を含み、これらは、バス５０８を介して互いと通信する。
【００６３】
処理デバイス５０２は、マイクロプロセッサ、中央処理装置等といった１つ以上の汎用処理デバイスを表す。より詳細には、処理デバイス５０２は、複合命令セットコンピューティング（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピューティング（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、又は、他の命令セットを実装しているプロセッサ若しくは命令セットの組合せを実装しているプロセッサを含み得る。処理デバイス５０２はまた、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ等といった１つ以上の専用処理デバイスを含み得る。処理デバイス５０２は、本明細書に記載の動作及びステップを実行するための命令５２６を実行するよう構成される。
【００６４】
コンピューティングデバイス５００は、ネットワーク５１８と通信することができるネットワークインタフェースデバイス５２２をさらに含み得る。コンピューティングデバイス５００はまた、ディスプレイデバイス５１０（例えば、液晶ディスプレイ（ＬＣＤ）又は陰極線管（ＣＲＴ））、英数字入力デバイス５１２（例えば、キーボード）、カーソル制御デバイス５１４（例えば、マウス）、及び信号生成デバイス５２０（例えば、スピーカ）を含み得る。一実装において、ディスプレイデバイス５１０、英数字入力デバイス５１２、及びカーソル制御デバイス５１４は、１つのコンポーネント又はデバイス（例えば、ＬＣＤタッチスクリーン）に統合され得る。
【００６５】
データ記憶デバイス５１６は、本明細書に記載の方法及び／又は機能のうちの任意の１つ以上を具現化する命令５２６の１つ以上のセットが記憶されるコンピュータ読み取り可能な記憶媒体５２４を含み得る（例えば、ゲートウェイ１１０、システムサーバ１２５）。命令５２６はまた、コンピューティングデバイス５００による実行中には、メインメモリ５０４及び／又は処理デバイス５０２内に、完全に又は少なくとも部分的に存在し得、メインメモリ５０４及び処理デバイス５０２もコンピュータ読み取り可能な媒体を構成する。命令は、さらに、ネットワークインタフェースデバイス５２２を介しネットワーク５１８を介して、送信又は受信され得る。
【００６６】
例示的な実施形態において、コンピュータ読み取り可能な記憶媒体５２６が、１つの媒体として図示されているが、「コンピュータ読み取り可能な記憶媒体」という用語は、命令の１つ以上のセットを記憶する１つの媒体又は複数の媒体（例えば、集中データベース若しくは分散データベース並びに／又は関連するキャッシュ及びサーバ）を含み得る。「コンピュータ読み取り可能な記憶媒体」という用語はまた、マシンにより実行され、マシンに本開示の方法のうちの任意の１つ以上を実行させる命令のセットを記憶する、符号化する、又は運ぶことができる任意の媒体を含み得る。したがって、「コンピュータ読み取り可能な記憶媒体」という用語は、ソリッドステートメモリ、光媒体、及び磁気媒体を含むが、これらに限定されるものではないと解釈され得る。
【００６７】
本明細書に記載の実施形態は、コンピュータ実行可能な命令又はデータ構造を運ぶ又は記憶するコンピュータ読み取り可能な媒体を使用して実装され得る。そのようなコンピュータ読み取り可能な媒体は、汎用又は専用のコンピュータによりアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ読み取り可能な媒体は、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、電気的に消去可能なプログラム可能な読み取り専用メモリ（ＥＥＰＲＯＭ）、コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、フラッシュメモリデバイス（例えば、ソリッドステートメモリデバイス）、又は、コンピュータ実行可能な命令又はデータ構造の形態の所望のプログラムコードを運ぶ又は記憶するために使用され得る任意の他の記憶媒体であって、汎用又は専用のコンピュータによりアクセスされ得る任意の他の記憶媒体、を含む非一時的なコンピュータ読み取り可能な記憶媒体を含み得る。これらの組合せも、コンピュータ読み取り可能な媒体の範囲に含まれ得る。
【００６８】
コンピュータ実行可能な命令は、例えば、汎用コンピュータ、専用コンピュータ、又は専用処理デバイス（例えば、１つ以上のプロセッサ）に所定の機能又は機能群を実行させる命令及びデータを含み得る。主題が、構造的特徴及び／又は方法的動作に特有の言葉で説明されたが、請求項において定められる主題は、上述した特定の特徴又は動作に必ずしも限定されるものではないことを理解されたい。そうではなく、上述した特定の特徴及び動作は、請求項を実施する例示的な形態として開示されている。
【００６９】
本明細書において使用される場合、「モジュール」又は「コンポーネント」という用語は、モジュール又はコンポーネントの動作を実行するよう構成されている特定のハードウェア実装、及び／又は、コンピューティングシステムの汎用ハードウェア（例えば、コンピュータ読み取り可能な媒体等）に記憶され得る且つ／又はコンピューティングシステムの汎用ハードウェア（例えば、処理デバイス等）により実行され得るソフトウェアオブジェクト又はソフトウェアルーチンを指し得る。いくつかの実施形態において、本明細書に記載の異なるコンポーネント、モジュール、エンジン、及びサービスは、コンピューティングシステム上で実行されるオブジェクト又はプロセスとして（例えば、別個のスレッドとして）実装され得る。本明細書に記載のシステム及び方法のうちの一部は、（汎用ハードウェアに記憶される且つ／又は汎用ハードウェアにより実行される）ソフトウェアにより実装されるとして一般に説明されるが、特定のハードウェア実装又はソフトウェアと特定のハードウェア実装との組合せも可能であり企図されている。本説明において、「コンピューティングエンティティ」は、本明細書において前に定義された任意のコンピューティングシステム、又は、コンピューティングシステム上で動作する任意のモジュール又はモジュールの組合せであり得る。
【００７０】
本明細書において記載された全ての例及び条件付き言語は、当該技術を促進させるために本発明者によって寄与されるコンセプト及び本発明を読者が理解するのを助ける教育上の目的のために意図され、そのような具体的に記載された例及び条件に限定されるものではないとして解釈されるべきである。本発明の実施形態が詳細に説明されたが、それら実施形態に対する様々な変形、置換、及び変更が、本発明の主旨及び範囲から逸脱することなく可能である。
【００７１】
以上の実施形態に関し、さらに以下の付記を開示する。
【００７２】
（付記１）
ゲートウェイであって、
メモリと、
通信インタフェースと、
前記メモリ及び前記通信インタフェースに動作可能に接続されたプロセッサであって、前記プロセッサは、
前記通信インタフェースを介して、前記ゲートウェイに接続されるデバイスのグラフィカル表現を受信する動作であって、前記グラフィカル表現は、電子フォーマットである、動作と、
前記グラフィカル表現を使用することにより、前記グラフィカル表現に基づいて前記デバイスを特定して、電子データストレージ内の前記デバイスについてのレコードを見つける動作と、
前記通信インタフェースを介して、前記デバイスと利用可能なサービス又は第２のデバイスとの間の可能な接続を探す動作と、
グラフィカルユーザインタフェースを介して、前記可能な接続についての提案を提供する動作と、
前記デバイスの前記可能な接続を有効にする電子承認を受信する動作と、
を実行するよう構成されている、プロセッサと、
を有するゲートウェイ。
【００７３】
（付記２）
前記デバイスの前記グラフィカル表現は、写真、ＱＲコード（登録商標）、及びバーコードのうちの少なくとも１つを含む、付記１に記載のゲートウェイ。
【００７４】
（付記３）
前記プロセッサは、前記グラフィカル表現に基づいて前記デバイスを特定するときに、前記電子データストレージ内の前記レコードから前記デバイスの特性を特定するよう構成されている、付記１に記載のゲートウェイ。
【００７５】
（付記４）
前記デバイスの前記特性は、製造者、モデル、サポートされる通信インタフェース、及びアプリケーションプログラミングインタフェースのうちの少なくとも１つを含む、付記３に記載のゲートウェイ。
【００７６】
（付記５）
前記プロセッサは、前記グラフィカル表現に基づいて前記デバイスを特定するときに、
リモートデータストレージにおいて前記デバイスのためのドライバを特定し、
前記リモートデータストレージから前記ドライバをダウンロードし、
前記ゲートウェイにおいて前記ドライバを構成し、
前記通信インタフェースを選択し、
前記デバイスを接続する
よう構成されている、付記１に記載のゲートウェイ。
【００７７】
（付記６）
前記プロセッサは、前記デバイスと前記利用可能なサービス又は別のデバイスとの間の前記可能な接続を探すときに、デバイス間、サービス間、及び／又はデバイス−サービス間の接続を含む接続グラフに基づいて、既存の接続されているデバイス及び／又はサービスを特定するよう構成されている、付記１に記載のゲートウェイ。
【００７８】
（付記７）
前記接続グラフは、コミュニティから学習された可能な接続及び前記ゲートウェイの現在の接続のうちの少なくとも１つのレコードを含む、付記６に記載のゲートウェイ。
【００７９】
（付記８）
前記プロセッサは、さらに、
前記デバイスに関連付けられる使用パターンをモニタリングする動作と、
前記使用パターンに基づいて新たな提案を生成する動作と、
を実行するよう構成されている、付記１に記載のゲートウェイ。
【００８０】
（付記９）
通信インタフェースを介して、ゲートウェイに接続されるデバイスのグラフィカル表現を受信するステップであって、前記グラフィカル表現は、電子フォーマットである、ステップと、
前記グラフィカル表現を使用することにより、前記デバイスを特定して、電子データストレージ内の前記デバイスについてのレコードを見つけるステップと、
前記通信インタフェースを介して、前記デバイスと利用可能なサービス又は第２のデバイスとの間の可能な接続を探すステップと、
グラフィカルユーザインタフェースを介して、前記可能な接続についての提案を提供するステップと、
前記デバイスの前記可能な接続を有効にする電子承認を受信するステップと、
を含む方法。
【００８１】
（付記１０）
前記デバイスの前記グラフィカル表現は、写真、ＱＲコード（登録商標）、及びバーコードのうちの少なくとも１つを含む、付記９に記載の方法。
【００８２】
（付記１１）
前記グラフィカル表現に基づいて前記デバイスを特定することは、前記電子データストレージ内の前記レコードから前記デバイスの特性を特定することを含む、付記９に記載の方法。
【００８３】
（付記１２）
前記デバイスの前記特性は、製造者、モデル、サポートされる通信インタフェース、及びアプリケーションプログラミングインタフェースのうちの少なくとも１つを含む、付記１１に記載の方法。
【００８４】
（付記１３）
前記グラフィカル表現に基づいて前記デバイスを特定することは、
リモートデータストレージにおいて前記デバイスのためのドライバを特定することと、
前記リモートデータストレージから前記ドライバをダウンロードすることと、
前記ゲートウェイにおいて前記ドライバを構成することと、
前記デバイスを接続することと、
を含む、付記９に記載の方法。
【００８５】
（付記１４）
前記デバイスと前記利用可能なサービス又は別のデバイスとの間の前記可能な接続を探すことは、デバイス間、サービス間、及び／又はデバイス−サービス間の接続を含む接続グラフに基づいて、既存の接続されているデバイス及び／又はサービスを特定することを含む、付記９に記載の方法。
【００８６】
（付記１５）
前記接続グラフは、コミュニティから学習された可能な接続及び前記ゲートウェイの現在の接続のうちの少なくとも１つのレコードを含む、付記１４に記載の方法。
【００８７】
（付記１６）
前記デバイスに関連付けられる使用パターンをモニタリングするステップと、
前記使用パターンに基づいて新たな提案を生成するステップと、
をさらに含む、付記９に記載の方法。
【００８８】
（付記１７）
通信インタフェースを介して、ゲートウェイに接続されるデバイスのグラフィカル表現を受信する動作であって、前記グラフィカル表現は、電子フォーマットである、動作と、
前記グラフィカル表現を使用することにより、前記デバイスを特定して、電子データストレージ内の前記デバイスについてのレコードを見つける動作と、
前記通信インタフェースを介して、前記デバイスと利用可能なサービス又は第２のデバイスとの間の可能な接続を探す動作と、
グラフィカルユーザインタフェースを介して、前記可能な接続についての提案を提供する動作と、
前記デバイスの前記可能な接続を有効にする電子承認を受信する動作と、
を実行するための、プロセッサにより実行可能なプログラミングコードを符号化している非一時的なコンピュータ読み取り可能な媒体。
【００８９】
（付記１８）
前記デバイスの前記グラフィカル表現は、写真、ＱＲコード（登録商標）、及びバーコードのうちの少なくとも１つを含む、付記１７に記載の非一時的なコンピュータ読み取り可能な媒体。
【００９０】
（付記１９）
前記グラフィカル表現に基づいて前記デバイスを特定することは、前記電子データストレージ内の前記レコードから前記デバイスの特性を特定することを含む、付記１７に記載の非一時的なコンピュータ読み取り可能な媒体。
【００９１】
（付記２０）
前記デバイスの前記特性は、製造者、モデル、サポートされる通信インタフェース、及びアプリケーションプログラミングインタフェースのうちの少なくとも１つを含む、付記１９に記載の非一時的なコンピュータ読み取り可能な媒体。
【符号の説明】
【００９２】
１０６ａ  デバイス
１０６ｂ  デバイス
１１０    ゲートウェイ
１１５ａ  ウェブサービス
１１５ｂ  ウェブサービス
１２４    ネットワーク
１２５    システムサーバ
１２８    ユーザデータベース（ＤＢ）
１３０    提案データベース（ＤＢ）
１３６    ローカルデータベース（ＤＢ）
１４０    クラウド
３１０    ゲートウェイ
４０５    提案システム
【図１】
2018098767.tif 000003
【図２】
2018098767.tif 000004
【図３】
2018098767.tif 000005
【図４】
2018098767.tif 000006
【図５】
2018098767.tif 000007