(57)【要約】  別のユーザデバイスを介して、リモートデバイスと適応的にインタラクトする方法および装置が開示される。ユーザデバイスは、リモートデバイスとインタラクトするユーザインターフェース（ＵＩ）を、リモートデバイスに関連する受信したデバイス情報に基づいて構成することができ、ＵＩは、リモートデバイスとインタラクトするようにユーザデバイスを制御する１つ以上のＵＩ要素を含む。デバイス情報は、ユーザデバイスとリモートデバイスとの間のインタラクションの１つ以上のタイプを定義し、ユーザ入力をリモートデバイスにより理解され得るインタラクション要求に変換するスクリプトを含む。１つ以上のＵＩ要素のうちの１つのＵＩ要素に関連するユーザ入力に応答して、ユーザデバイスに、リモートデバイスとの関連するタイプのインタラクションを行わせる。このアプローチにより、ＵＩを、接続先のリモートデバイスによりサポートされるインタラクションの特定のタイプに従って適合させることができる。デバイス情報を取得するローカルディスカバリ方法およびリモートディスカバリ方法も開示される。
2020512620.tif 000002
【特許請求の範囲】
【請求項１】
ユーザデバイスを介して、リモートデバイスとインタラクトする方法であって、
前記ユーザデバイスとインタラクトすることができるリモートデバイスを前記ユーザデバイスの近傍に発見することと、
前記発見したリモートデバイスに関連するデバイス情報を前記ユーザデバイスで受信することであって、前記デバイス情報が、前記ユーザデバイスと前記リモートデバイスとの間のインタラクションの１つ以上のタイプを定義し、ユーザ入力を前記リモートデバイスにより理解され得るインタラクション要求に変換するスクリプトを含む、受信することと、
ユーザインターフェースＵＩを、前記受信したデバイス情報に基づいて構成することであって、前記ＵＩが、前記リモートデバイスとインタラクトするように前記ユーザデバイスを制御する１つ以上のＵＩ要素を含む、構成することと、
前記１つ以上のＵＩ要素のうちの１つのＵＩ要素に関連するユーザ入力を受信することと、
前記スクリプトを使用して前記受信したユーザ入力を、前記リモートデバイスにより理解され得るインタラクション要求に変換することと、
前記受信したユーザ入力が関連する前記ＵＩ要素に従って、かつ前記受信したユーザ入力に従って、前記インタラクション要求を前記リモートデバイスに送信することによって、前記ユーザデバイスを前記リモートデバイスとインタラクトさせることと、を含む、方法。
【請求項２】
前記デバイス情報を受信することが、
デバイス識別子およびユニフォームリソース識別子（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）ＵＲＩを前記リモートデバイスから受信することと、
前記デバイス情報に関する要求を前記ＵＲＩで識別されるサーバに送信することであって、前記要求が、前記受信したデバイス識別子を含む、送信することと、
前記デバイス情報を前記サーバから受信することと、を含む、請求項１に記載の方法。
【請求項３】
前記デバイス情報が前記リモートデバイスから受信される、請求項１に記載の方法。
【請求項４】
前記ユーザデバイスが、所定のプロトコルに従って、前記リモートデバイスとインタラクトするように構成されており、前記ユーザデバイスとインタラクトすることができるリモートデバイスを発見することが、
デバイスディスカバリを実行して、１つ以上のリモートデバイスを前記ユーザデバイスの近傍内に発見することと、
前記発見した１つ以上のリモートデバイスの各リモートデバイスについて、前記リモートデバイスが前記所定のプロトコルをサポートしている場合に、前記リモートデバイスが前記ユーザデバイスとインタラクトすることができると判断することと、を含む、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記ＵＩはグラフィカルユーザインターフェースであり、前記方法が、
前記ＵＩを表示することをさらに含む、請求項１〜４のいずれか一項に記載の方法。
【請求項６】
前記１つ以上のＵＩ要素の各ＵＩ要素に関して、前記デバイス情報は複数の所定のＵＩ要素タイプのうちの１つのＵＩ要素タイプを識別し、前記ＵＩを表示することが、
前記１つ以上のＵＩ要素の各ＵＩ要素に関して、前記デバイス情報により識別されるＵＩ要素の前記タイプに関連する格納テクスチャを取り出すことと、
前記ＵＩ要素を、前記取り出したテクスチャを使用してレンダリングすることと、を含む、請求項５に記載の方法。
【請求項７】
リモートデバイスとインタラクトするようにユーザデバイスを制御するユーザインターフェースＵＩを構成するために、前記リモートデバイスで格納されているデバイス情報を取り出すことであって、前記デバイス情報が、前記ユーザデバイスと前記リモートデバイスとの間のインタラクションの１つ以上のタイプを定義し、前記ユーザデバイスで受信されるユーザ入力を、前記リモートデバイスにより理解され得るインタラクション要求に変換するスクリプトを含む、取り出すことと、
前記デバイス情報を前記ユーザデバイスに送信することと、を含む、方法。
【請求項８】
インタラクションの前記１つ以上のタイプのうちの１つのタイプを識別するインタラクション要求を前記ユーザデバイスから受信することと、
前記受信したインタラクション要求に従って、前記リモートデバイスを前記ユーザデバイスとインタラクトさせることと、をさらに含む、請求項７に記載の方法。
【請求項９】
リモートデバイスとインタラクトするようにユーザデバイスを制御するユーザインターフェースＵＩを構成するために、デバイス情報に関する要求を受信することであって、前記デバイス情報が、前記ユーザデバイスと前記リモートデバイスとの間のインタラクションの１つ以上のタイプを定義し、前記ユーザデバイスで受信されるユーザ入力を、前記リモートデバイスにより理解され得るインタラクション要求に変換するスクリプトを含み、デバイス情報に関する前記要求が、前記リモートデバイスを識別するデバイス識別子ＩＤを含み、デバイス情報に関する前記要求がサーバで受信される、受信することと、
前記受信したデバイスＩＤで識別されるリモートデバイスに関連する格納されているデバイス情報を前記サーバで取り出すことと、
前記取り出したデバイス情報を前記サーバから前記ユーザデバイスに送信することと、を含む、方法。
【請求項１０】
インタラクション要求を前記ユーザデバイスから前記リモートデバイスで受信することであって、前記インタラクション要求が、インタラクションの前記１つ以上のタイプのうちの１つのタイプを識別する、受信することと、
前記受信したインタラクション要求に従って、前記リモートデバイスを前記ユーザデバイスとインタラクトさせることと、をさらに含む、請求項９に記載の方法。
【請求項１１】
前記格納されているデバイス情報が、１つ以上の条件付きインタラクションタイプを定義し、前記条件付きインタラクションタイプの各条件付きインタラクションタイプが、関連条件が満たされた場合にのみ許可され、前記デバイス情報を取り出すことが、
前記１つ以上の条件付きインタラクションタイプの各条件付きインタラクションタイプを、前記条件付きインタラクションタイプのうちの前記１つの条件付きインタラクションタイプに関する前記関連条件が満たされるかどうかに従って選択することを含み、
前記送信したデバイス情報が、複数の前記条件付きインタラクションタイプの中から選択される前記１つ以上の条件付きインタラクションタイプのみを定義する、請求項７〜１０のいずれか一項に記載の方法。
【請求項１２】
前記デバイス情報が、前記１つ以上のＵＩ要素が前記ユーザインターフェースにどのように表示される必要があるかを定義する、請求項１〜１１のいずれか一項に記載の方法。
【請求項１３】
前記デバイス情報が、前記ＵＩ内の前記１つ以上のＵＩ要素の各ＵＩ要素のサイズ、形状、向き、および位置のうちの１つ以上をさらに定義する、請求項１２に記載の方法。
【請求項１４】
現在のユーザを認証することと、
認証された前記ユーザのセキュリティレベルを判断することと、をさらに含み、
前記デバイス情報が、認証された前記ユーザの前記セキュリティレベルに関して許可されるインタラクションの１つ以上のタイプのみを定義する、請求項１〜１３のいずれか一項に記載の方法。
【請求項１５】
ユーザの識別情報、
パスワード、および
前記ユーザデバイスおよび前記リモートデバイスの近接度のうち１つ以上に基づいて前記ユーザが認証される、および／または前記セキュリティレベルが判断され、前記ユーザデバイスと前記リモートデバイスとの間の距離が閾値距離を上回るか、または下回るかどうかに従って、前記ユーザが認証される、および／または異なるセキュリティレベルが選択される、請求項１４に記載の方法。
【請求項１６】
コンピュータプログラム命令を備え、
前記コンピュータプログラム命令が実行された場合、コンピュータに請求項１〜１５のいずれか一項に記載の方法を実行させる、プログラム。
【請求項１７】
ユーザデバイスを介して、リモートデバイスとインタラクトする装置であって、前記装置が、
コンピュータプログラム命令を実行する１つ以上のプロセッサと、
コンピュータプログラム命令を格納するように適合させたメモリと、を備え、前記コンピュータプログラム命令が前記１つ以上のプロセッサにより実行されると、前記装置に、
前記ユーザデバイスとインタラクトすることができるリモートデバイスを前記ユーザデバイスの近傍に発見することと、
前記発見したリモートデバイスに関連するデバイス情報を前記ユーザデバイスで受信することであって、前記デバイス情報が、前記ユーザデバイスと前記リモートデバイスとの間のインタラクションの１つ以上のタイプを定義し、ユーザ入力を前記リモートデバイスにより理解され得るインタラクション要求に変換するスクリプトを含む、受信することと、
ユーザインターフェースＵＩを前記受信したデバイス情報に基づいて構成することであって、前記ＵＩが、前記リモートデバイスとインタラクトするように前記ユーザデバイスを制御する１つ以上のＵＩ要素を含む、構成することと、
前記１つ以上のＵＩ要素のうちの１つのＵＩ要素に関連するユーザ入力を受信することと、
前記スクリプトを使用して前記受信したユーザ入力を、前記リモートデバイスにより理解され得るインタラクション要求に変換することと、
前記受信したユーザ入力が関連する前記ＵＩ要素に従って、かつ前記受信したユーザ入力に従って、前記インタラクション要求を前記リモートデバイスに送信することによって、前記ユーザデバイスを前記リモートデバイスとインタラクトさせることと、を行わせる、装置。
【請求項１８】
リモートデバイスをユーザデバイスとインタラクトさせる装置であって、前記装置が、
コンピュータプログラム命令を実行する１つ以上のプロセッサと、
コンピュータプログラム命令を格納するように適合させたメモリと、を備え、前記コンピュータプログラム命令が前記１つ以上のプロセッサにより実行されると、前記装置に、
前記リモートデバイスとインタラクトするように前記ユーザデバイスを制御するユーザインターフェースＵＩを構成するために、格納されているデバイス情報を取り出すことであって、前記デバイス情報が、前記ユーザデバイスと前記リモートデバイスとの間のインタラクションの１つ以上のタイプを定義し、前記ユーザデバイスで受信されるユーザ入力を、前記リモートデバイスにより理解され得るインタラクション要求に変換するスクリプトを含む、取り出すことと、
前記デバイス情報を前記ユーザデバイスに送信することと、
インタラクションの前記１つ以上のタイプのうちの１つのタイプを識別するインタラクション要求を前記ユーザデバイスから受信することと、
前記受信したインタラクション要求に従って、前記リモートデバイスを前記ユーザデバイスとインタラクトさせることと、を行わせる、装置。
【請求項１９】
ユーザデバイスとインタラクトすることができるリモートデバイスに関連するデバイス情報を供給する装置であって、前記装置が、
コンピュータプログラム命令を実行する１つ以上のプロセッサと、
コンピュータプログラム命令を格納するように適合させたメモリと、を備え、前記コンピュータプログラム命令が前記１つ以上のプロセッサにより実行されると、前記装置に、
前記リモートデバイスとインタラクトするように前記ユーザデバイスを制御するユーザインターフェースＵＩを構成するために、デバイス情報に関する要求を受信することであって、前記デバイス情報が、前記ユーザデバイスと前記リモートデバイスとの間のインタラクションの１つ以上のタイプを定義し、前記ユーザデバイスで受信されるユーザ入力を、前記リモートデバイスにより理解され得るインタラクション要求に変換するスクリプトを含み、デバイス情報に関する前記要求が、前記リモートデバイスを識別するデバイス識別子ＩＤを含む、受信することと、
前記受信したデバイスＩＤで識別される前記リモートデバイスに関連する格納されているデバイス情報を取り出すことと、
前記取り出したデバイス情報を前記ユーザデバイスに送信することと、を行わせる、装置。
【請求項２０】
請求項１８に記載の装置を備えるリモートデバイスと、
前記リモートデバイスとインタラクトするユーザデバイスと、を備え、前記ユーザデバイスが、請求項１７に記載の装置を備える、システム。
【請求項２１】
リモートデバイスと、
前記リモートデバイスとインタラクトするユーザデバイスであって、請求項１７に記載の装置を備える、ユーザデバイスと、
前記デバイス情報を前記ユーザデバイスに供給するサーバと、を備え、前記サーバが、請求項１９に記載の装置を備える、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モノのインターネット（ＩｏＴ）デバイスのようなリモートデバイスと適応的にインタラクトして、様々な機能を実行することに関する。
【背景技術】
【０００２】
ＩｏＴインフラストラクチャに関与しているデバイスおよびスマートオブジェクトの数は爆発的に増加しており、指数関数的に増えている。幾つかの推定によれば、相互接続されるデバイスの数は、２０２０年までに３００億を超えると予測されている。ＩｏＴデバイスの数および種類が増えると、異種デバイスとのインタラクションが益々複雑になる。ＩｏＴデバイスをスマートフォンのような別のユーザデバイスから制御する現在のソリューションは、問題の特定のＩｏＴデバイスに固有の専用アプリケーションをユーザデバイスにインストールする必要がある。これにより、多くの異なるアプリケーションをインストールして特定のユーザデバイスが多くの異なるＩｏＴデバイスとインタラクトできるようにする必要がある。
【０００３】
本発明はこのような状況で行われたものである。
【発明の概要】
【０００４】
本発明の第１の態様によれば、ユーザデバイスを介して、リモートデバイスとインタラクトする方法が提供され、この方法は、ユーザデバイスとインタラクトすることができるリモートデバイスをユーザデバイスの近傍に発見することと、発見したリモートデバイスに関連するデバイス情報をユーザデバイスで受信することであって、デバイス情報は、ユーザデバイスとリモートデバイスとの間のインタラクションの１つ以上のタイプを定義し、ユーザ入力をリモートデバイスにより理解され得るインタラクション要求に変換するスクリプトを含む、受信することと、ユーザインターフェースＵＩを受信したデバイス情報に基づいて構成することであって、ＵＩは、リモートデバイスとインタラクトするようにユーザデバイスを制御する１つ以上のＵＩ要素を含む、構成することと、１つ以上のＵＩ要素のうちの１つのＵＩ要素に関連するユーザ入力を受信することと、スクリプトを使用して受信したユーザ入力を、リモートデバイスにより理解され得るインタラクション要求に変換することと、受信したユーザ入力が関連するＵＩ要素に従って、かつ受信したユーザ入力に従って、前記インタラクション要求をリモートデバイスに送信することによって、ユーザデバイスをリモートデバイスとインタラクトさせることと、を含む。
【０００５】
第１の態様による幾つかの実施形態では、デバイス情報を受信することは、デバイス識別子およびユニフォームリソース識別子ＵＲＩをリモートデバイスから受信することであって、要求は、受信したデバイス識別子を含むことと、デバイス情報をサーバから受信することと、を含む。これは、「ｒｅｍｏｔｅ  ｄｉｓｃｏｖｅｒｙ（リモートディスカバリ）」手順と表記することができる。
【０００６】
第１の態様による幾つかの実施形態では、デバイス情報はリモートデバイスから受信される。これは、「ｌｏｃａｌ  ｄｉｓｃｏｖｅｒｙ（ローカルディスカバリ）」手順と表記することができる。
【０００７】
第１の態様による幾つかの実施形態では、ユーザデバイスは、所定のプロトコルに従って、リモートデバイスとインタラクトするように構成され、ユーザデバイスとインタラクトすることができるリモートデバイスを発見することは、デバイスディスカバリを実行して１つ以上のリモートデバイスをユーザデバイスの近傍内に発見することと、発見した１つ以上のリモートデバイスの各リモートデバイスに関して、リモートデバイスが所定のプロトコルをサポートしている場合に、リモートデバイスがユーザデバイスとインタラクトすることができると判断することと、を含む。
【０００８】
第１の態様による幾つかの実施形態では、ＵＩはグラフィカルユーザインターフェースであり、方法は、ＵＩを表示することをさらに含む。
【０００９】
第１の態様による幾つかの実施形態では、１つ以上のＵＩ要素の各ＵＩ要素に関して、デバイス情報は複数の所定のＵＩ要素タイプのうちの１つのＵＩ要素タイプを識別し、ＵＩを表示することは、１つ以上のＵＩ要素の各ＵＩ要素に関して、デバイス情報で識別されるＵＩ要素のタイプに関連する格納テクスチャを取り出すことと、ＵＩ要素を、取り出したテクスチャを使用してレンダリングすることと、を含む。
【００１０】
本発明の第２の態様によれば、方法が提供され、方法は、リモートデバイスとインタラクトするようにユーザデバイスを制御するユーザインターフェースＵＩを構成するために、リモートデバイスで格納されているデバイス情報を取り出すことであって、デバイス情報は、ユーザデバイスとリモートデバイスとの間のインタラクションの１つ以上のタイプを定義し、ユーザデバイスで受信されるユーザ入力をリモートデバイスにより理解され得るインタラクション要求に変換するスクリプトを含む、取り出すことと、デバイス情報をユーザデバイスに送信することと、を含む。
【００１１】
第２の態様による幾つかの実施形態では、方法は、ユーザデバイスから、１つ以上のタイプのインタラクションのうちの１つを識別するインタラクション要求を受信することと、受信したインタラクション要求に従って、リモートデバイスをユーザデバイスとインタラクトさせることと、をさらに含む。
【００１２】
本発明の第３の態様によれば、方法が提供され、方法は、リモートデバイスとインタラクトするようにユーザデバイスを制御するユーザインターフェースＵＩを構成するために、デバイス情報に関する要求を受信することであって、デバイス情報は、ユーザデバイスとリモートデバイスとの間のインタラクションの１つ以上のタイプを定義し、ユーザデバイスで受信されるユーザ入力をリモートデバイスにより理解され得るインタラクション要求に変換するスクリプトを含み、デバイス情報に関する要求は、リモートデバイスを識別するデバイス識別子ＩＤを含み、デバイス情報に関する要求はサーバで受信される、受信することと、受信したデバイスＩＤで識別されるリモートデバイスに関連する格納デバイス情報をサーバで取り出すことと、取り出したデバイス情報をサーバからユーザデバイスに送信することと、を含む。
【００１３】
第３の態様による幾つかの実施形態では、方法は、インタラクション要求をユーザデバイスからリモートデバイスで受信することであって、インタラクション要求は、インタラクションの１つ以上のタイプのうちの１つのタイプを識別することと、受信したインタラクション要求に従って、リモートデバイスをユーザデバイスとインタラクトさせることと、をさらに含む。
【００１４】
第２または第３の態様による幾つかの実施形態では、格納デバイス情報は、１つ以上の条件付きインタラクションタイプを定義し、条件付きインタラクションタイプの各条件付きインタラクションタイプは、関連条件が満たされた場合にのみ許可され、デバイス情報を取り出すことは、１つ以上の条件付きインタラクションタイプの各条件付きインタラクションタイプを、条件付きインタラクションタイプの１つの条件付きインタラクションタイプに関する関連条件が満たされるかどうかに従って選択することを含み、送信したデバイス情報は、複数の条件付きインタラクションタイプの中から選択される１つ以上の条件付きインタラクションタイプのみを定義する。
【００１５】
第１、第２、または第３の態様による幾つかの実施形態では、デバイス情報は、１つ以上のＵＩ要素がユーザインターフェースにどのように表示される必要があるかを定義する。デバイス情報は、ＵＩ内の１つ以上のＵＩ要素の各ＵＩ要素のサイズ、形状、向き、および位置のうち１つ以上をさらに定義することができる。
【００１６】
第１、第２、または第３の態様による幾つかの実施形態では、方法は、現ユーザを認証するステップと、認証ユーザのセキュリティレベルを判断するステップと、をさらに含み、デバイス情報は、認証ユーザのセキュリティレベルに関して許可されるインタラクションの１つ以上のタイプのみを定義する。例えば、幾つかの実施形態では、ユーザ識別情報、パスワード、およびユーザデバイスならびにリモートデバイスの近接度のうち１つ以上に基づいて、ユーザを認証することができる、および／またはセキュリティレベルを判断することができ、ユーザデバイスとリモートデバイスとの間の距離が閾値距離を上回るか、または下回るかどうかに従って、ユーザが認証される、および／または異なるセキュリティレベルが選択される。
【００１７】
本発明の第４の態様によれば、コンピュータプログラム命令を格納するように適合させた非一時的なコンピュータ可読記憶媒体が提供され、コンピュータプログラム命令が実行されると、第１、第２または第３の態様のいずれか１つの態様による方法を実行する。
【００１８】
本発明の第５の態様によれば、ユーザデバイスを介して、リモートデバイスとインタラクトする装置が提供され、装置は、コンピュータプログラム命令を実行する１つ以上のプロセッサと、コンピュータプログラム命令を格納するように適合させたメモリと、を備え、コンピュータプログラム命令が１つ以上のプロセッサにより実行されると、装置に、ユーザデバイスとインタラクトすることができるリモートデバイスをユーザデバイスの近傍に発見することと、発見したリモートデバイスに関連するデバイス情報をユーザデバイスで受信することであって、デバイス情報は、ユーザデバイスとリモートデバイスとの間のインタラクションの１つ以上のタイプを定義し、ユーザ入力をリモートデバイスにより理解され得るインタラクション要求に変換するスクリプトを含む、受信することと、ユーザインターフェースＵＩを受信したデバイス情報に基づいて構成することであって、ＵＩは、リモートデバイスとインタラクトするようにユーザデバイスを制御する１つ以上のＵＩ要素を含む、構成することと、１つ以上のＵＩ要素のうちの１つのＵＩ要素に関連するユーザ入力を受信することと、スクリプトを使用して受信したユーザ入力を、リモートデバイスにより理解され得るインタラクション要求に変換することと、受信したユーザ入力が関連するＵＩ要素に従って、かつ受信したユーザ入力に従って、インタラクション要求をリモートデバイスに送信することによって、ユーザデバイスをリモートデバイスとインタラクトさせることと、を行わせる。
【００１９】
本発明の第６の態様によれば、ユーザデバイスを介して、リモートデバイスとインタラクトする装置が提供され、装置は、コンピュータプログラム命令を実行する１つ以上のプロセッサと、コンピュータプログラム命令を格納するように適合させたメモリと、を備え、コンピュータプログラム命令が１つ以上のプロセッサにより実行されると、装置に、リモートデバイスとインタラクトするようにユーザデバイスを制御するユーザインターフェースＵＩを構成するために、格納デバイス情報を取り出すことであって、デバイス情報は、ユーザデバイスとリモートデバイスとの間のインタラクションの１つ以上のタイプを定義し、ユーザデバイスで受信されるユーザ入力を、リモートデバイスにより理解され得るインタラクション要求に変換するスクリプトを含む、取り出すことと、デバイス情報をユーザデバイスに送信することと、インタラクションの１つ以上のタイプのうちの１つのタイプを識別するインタラクション要求をユーザデバイスから受信することと、受信したインタラクション要求に従って、リモートデバイスをユーザデバイスとインタラクトさせることと、を行わせる。
【００２０】
本発明の第７の態様によれば、ユーザデバイスとインタラクトすることができるリモートデバイスに関連するデバイス情報を供給する装置が提供され、装置は、コンピュータプログラム命令を実行する１つ以上のプロセッサと、コンピュータプログラム命令を格納するように適合させたメモリと、を備え、コンピュータプログラム命令が１つ以上のプロセッサにより実行されると、装置に、リモートデバイスとインタラクトするようにユーザデバイスを制御するユーザインターフェースＵＩを構成するために、デバイス情報に関する要求を受信することであって、デバイス情報は、ユーザデバイスとリモートデバイスとの間のインタラクションの１つ以上のタイプを定義し、ユーザデバイスで受信されるユーザ入力を、リモートデバイスにより理解され得るインタラクション要求に変換するスクリプトを含み、デバイス情報に関する要求は、リモートデバイスを識別するデバイス識別子ＩＤを含む、受信することと、受信したデバイスＩＤで識別されるリモートデバイスに関連する格納デバイス情報を取り出すことと、取り出したデバイス情報をユーザデバイスに送信することと、を行わせる。
【００２１】
本発明の第８の態様によれば、システムが提供され、システムは、第６の態様による装置を備えるリモートデバイスと、リモートデバイスとインタラクトするユーザデバイスと、を備え、ユーザデバイスは、第５の態様による装置を備える。
【００２２】
本発明の第９の態様によれば、システムが提供され、システムは、第６の態様による装置を備えるリモートデバイスと、リモートデバイスとインタラクトするユーザデバイスであって、ユーザデバイスが、第５の態様による装置を備える、当該ユーザデバイスと、デバイス情報をユーザデバイスに供給するサーバと、を備え、サーバは、第７の態様による装置を備える。
【図面の簡単な説明】
【００２３】
次に、本発明の実施形態は、添付の図面を参照して一例としてのみ記述される。
【００２４】
【図１】本発明の１つの実施形態による無線通信が可能であるユーザデバイスおよびリモートデバイスを備えるシステムを示している。
【図２】本発明の１つの実施形態による図１のシステムのユーザデバイスで表示されるユーザインターフェースを示している。
【図３】本発明の１つの実施形態による、リモートデバイスによりデバイスディスカバリ中に実行されるステップを示すフローチャートである。
【図４】本発明の１つの実施形態による、ユーザデバイスによりデバイスディスカバリ中に実行されるステップを示すフローチャートである。
【図５】本発明の１つの実施形態によるリモートデバイスとユーザデバイスとの間でデバイスディスカバリ中に授受される一連の通信を示している。
【図６】本発明の１つの実施形態によるユーザデバイスでローカルディスカバリ手順中に実行されるステップを示すフローチャートである。
【図７】本発明の１つの実施形態によるユーザデバイスと、リモートデバイスと、リモートデバイスに関連するデバイス情報を供給するサーバと、を備えるシステムを示している。
【図８】本発明の１つの実施形態によるリモートデバイス、サーバ、およびユーザデバイスの間でリモートディスカバリ手順中に授受される一連の通信を示している。
【図９】本発明の１つの実施形態によるユーザデバイスでリモートディスカバリ手順中に実行されるステップを示すフローチャートである。
【発明を実施するための形態】
【００２５】
以下の詳細な説明では、本発明の特定の例示的な実施形態のみが単に例示として示され、記述されている。当業者が理解するように、記述される実施形態は、全てが本発明の範囲から逸脱することなく、様々な異なる方法で変更することができる。したがって、図面および説明は、本質的に例示であり、限定的ではないとみなされるべきである。同様の参照番号は同様の構成要素を、明細書全体を通じて指している。
【００２６】
ここで図１を参照するに、本発明の１つの実施形態による無線通信可能な第１および第２のデバイスを備えるシステムが示されている。第１のデバイス１１０は、ユーザにより、ユーザインターフェースを表示し、ユーザ入力を受信することにより操作されるように構成される任意のタイプのデバイスとすることができる。第１のデバイス１１０は以後、「ｕｓｅｒ  ｄｅｖｉｃｅ（ユーザデバイス）」と表記される。ユーザデバイス１１０で表示されるユーザインターフェース２００を図２に示す。第１のデバイス１１０として使用されるために適切であるとすることができるタイプのデバイスの例は、これらには限定されないが、スマートフォン、タブレット、ラップトップコンピュータまたはデスクトップコンピュータ、およびウェアラブル電子デバイスを含む。
【００２７】
第２のデバイス１２０は、ユーザデバイス１１０とインタラクトすることができる無線通信可能である任意のタイプのデバイスとすることができる。第２のデバイス１２０は、ユーザデバイス１１０から物理的に隔てられており、したがって以後「ｒｅｍｏｔｅ  ｄｅｖｉｃｅ（リモートデバイス）」と表記される。幾つかの実施形態では、リモートデバイス１２０は、モノのインターネット（ＩｏＴ）デバイス、例えば無線センサまたはアクチュエータとすることができる。実施形態に応じて、インタラクションは、ユーザデバイス１１０とリモートデバイス１２０との間のデータフローを単に含むことができ、例えばリモートデバイス１２０は、センサデータをユーザデバイス１１０に送信することができる、またはインタラクションは、ユーザデバイス１１０が第２のデバイス１２０を制御して特定の機能を実行させることを含むことができる。
【００２８】
ユーザデバイス１１０およびリモートデバイス１２０は、任意の適切な無線インターフェースを介して通信することができる。本実施形態では、ユーザデバイスおよびリモートデバイスは、ブルートゥース（登録商標）低エネルギー（Ｂｌｕｅｔｏｏｔｈ（登録商標）  Ｌｏｗ  Ｅｎｅｒｇｙ：ＢＬＥ）接続を介して通信する。しかしながら、他の実施形態では、ユーザデバイスおよびリモートデバイスは、異なるタイプのインターフェース、例えばブルートゥースクラシック（Ｂｌｕｅｔｏｏｔｈ  Ｃｌａｓｓｉｃ）またはＷｉＦｉを介して互いに通信するようにしてもよい。
【００２９】
図１に示すように、本実施形態のユーザデバイス１１０は、処理ユニット１１１、無線インターフェース１１２、およびディスプレイ１１３を備える。処理ユニット１１１は、コンピュータプログラム命令を実行する１つ以上のプロセッサ１１１ａを備え、コンピュータ可読メモリ１１１ｂをさらに備える。コンピュータ可読メモリ１１１ｂは、コンピュータプログラム命令を格納するように適合させ、コンピュータプログラム命令が１つ以上のプロセッサ１１１ａにより実行されると、ユーザデバイス１１０が、ユーザデバイス１１０により実行されるそれぞれのステップを、本明細書において開示される方法のいずれかの方法で実行するようになる。併せて、ユーザデバイス１１０の１つ以上のプロセッサ１１１ａおよびコンピュータ可読メモリ１１１ｂは、リモートデバイス１２０とインタラクトするようにユーザデバイス１１０を制御する装置を形成する。
【００３０】
本実施形態のリモートデバイス１２０もまた、１つ以上のプロセッサ１２１ａおよびコンピュータ可読メモリ１２１ｂを含む処理ユニット１２１を備える。ユーザデバイス１１０と同様に、リモートデバイス１２０のコンピュータ可読メモリ１２１ｂは、コンピュータプログラム命令を格納するように適合させ、コンピュータプログラム命令が１つ以上のプロセッサ１２１ａにより実行されると、リモートデバイス１２０が、リモートデバイス１２０により実行されるそれぞれのステップを、本明細書において開示される方法のいずれかの方法で実行するようになる。併せて、リモートデバイス１１０の１つ以上のプロセッサ１２１ａおよびコンピュータ可読メモリ１２１ｂは、ユーザデバイス１１０とインタラクトするようにリモートデバイス１２０を制御する装置を形成する。
【００３１】
また、本実施形態のリモートデバイス１２０は、無線インターフェース１２２と、メモリに格納されるデバイス情報１２３と、をさらに備える。実施形態に応じて、デバイス情報１２３は、処理ユニット１２１により使用される同じ物理メモリ１２１ｂに格納することができる、または別のメモリに格納することができる。リモートデバイス１２０は、デバイス情報１２３をユーザデバイス１１０に、リモートデバイス１２０およびユーザデバイス１１０に含まれるそれぞれの無線インターフェース１２２、１１２を介して送信することができる。デバイス情報１２３を共有した後、ユーザデバイス１１０およびリモートデバイス１２０は、信号をそれぞれの無線インターフェース１１２、１２２を介して送受信することにより、引き続き互いにインタラクトすることができる。本実施形態では、デバイス情報１２３は、ユーザデバイス１１０とリモートデバイスとの間で引き続き行われるインタラクションに使用される同じ無線接続を介して送信されるが、他の実施形態では、デバイス情報１２３は、異なる接続を介して送信することができる。
【００３２】
デバイス情報１２３は、ユーザデバイス１１０とリモートデバイス１２０との間で行われる得るインタラクションの１つ以上のタイプを定義する。任意の所定のリモートデバイス１２０によりサポートされるインタラクションの特定のタイプは、当該特定のデバイスの機能に依存する可能性がある。例えば、本実施形態では、リモートデバイス１２０は、アクチュエータ１２４およびセンサ１２５を備える。この実施形態では、ユーザデバイス１１０は、リモートデバイス１２０とインタラクトし、アクチュエータ１２４を制御して物理機構、例えばドアロックを操作することができる、および／またはリモートデバイス１２０とインタラクトしてデータをセンサ１２５から読み取ることができる。ユーザデバイス１１０が利用できるインタラクションのタイプは、すなわちユーザデバイス１１０に送信されるデバイス情報により定義されるインタラクションのタイプは、リモートデバイス１２０のハードウェア機能に依存する可能性があるだけでなく、現ユーザのセキュリティレベルのような他のファクタに依存する可能性がある。また、アクチュエータ１２４およびセンサ１２５は、一例としてのみ示されており、本発明の実施形態における全てのリモートデバイスがアクチュエータおよびセンサの両方を含む必要がある訳ではないことを理解されたい。
【００３３】
デバイス情報１２３は、ユーザデバイス１１０にインストールされる対応するアプリケーションにより理解可能である形式で供給することができる。アプリケーションは、ポイントツーポイントグローバルディスカバリサービス（Ｐｏｉｎｔ−ｔｏ−Ｐｏｉｎｔ  Ｇｌｏｂａｌ  Ｄｉｓｃｏｖｅｒｙ  Ｓｅｒｖｉｃｅ：ＰＰＧＤＳ）アプリケーションと表記することができる。ユーザデバイス１１０がリモートデバイス１２０との接続を行うと、ユーザデバイス１１０のアプリケーションは、ディスカバリプロセスを開始してリモートデバイス１２０の利用可能サービスおよび機能を発見することができる。本実施形態では、アプリケーションがデバイス情報１２３をリモートデバイス１２０に対して要求するローカルディスカバリプロセスが使用される。別の実施形態では、アプリケーションがデバイス情報１２３をサーバに対して要求することができるリモートディスカバリプロセスを使用することができる。デバイス情報１２３を受信すると、アプリケーションがディスカバリ情報１２３を解析して、リモートデバイス１２０によりサポートされるインタラクションのタイプを判断し、リモートデバイス１２０によりサポートされるインタラクションの各タイプに関連する制御要素を含むカスタマイズされたユーザインターフェース（ＵＩ）を生成する。幾つかの実施形態では、デバイス情報は、ＵＩ内の制御要素の構造および配置を判断することもできる。
【００３４】
本実施形態では、グラフィカルユーザインターフェース（ＧＵＩ）が生成される。しかしながら、本発明の実施形態はＧＵＩに限定されない。他の実施形態では、異なるタイプのＵＩは、デバイス情報、例えば音声インターフェース、ジェスチャを利用したインターフェース、触覚インターフェース、視線追跡インターフェースなどに基づいて生成することができる。デバイス情報により定義される制御要素のタイプは、特定の実施形態において使用されるＵＩのタイプに依存する可能性がある。例えば、音声インターフェースでは、制御要素は、リモートデバイスの異なる機能を制御するためにユーザが発話することができるキーワードまたは語句とすることができる、またはジェスチャを利用したインターフェースでは、制御要素は、異なるジェスチャとすることができる。
【００３５】
デバイス情報１２３により、リモートデバイス１２０はユーザデバイス１１０に、ユーザデバイス１１０がリモートデバイス１２０とどのようにインタラクトすることができるかを信号通知することができる。これにより、ユーザデバイス１１０は、異なるタイプのリモートデバイス１２０との接続、およびインタラクトを行えるようになり、各特定のリモートデバイス１２０の機能に関するいずれの知識も予め持つ必要がない。また、デバイス情報１２３は、ユーザデバイス１１０により使用されて、特に当該特定のリモートデバイス１２０とインタラクトするユーザインターフェース（ＵＩ）を構成することができる。したがって、ユーザデバイス１１０が初めてリモートデバイス１２０と接続すると、ユーザデバイス１１０は、ＵＩを動的に生成することができ、ＵＩを当該特定のリモートデバイス１２０の機能に合うように調整し、適切なＵＩをユーザデバイス１１０で事前にインストールしておく必要を回避する。このアプローチは、ユーザデバイス１１０が、非常に異なる機能を有している可能性がある多種多様なＩｏＴデバイスと接続することができるＩｏＴ状況において特に有利となり得る。
【００３６】
ここで図２を参照すると、本発明の１つの実施形態による図１のユーザデバイスで表示されるユーザインターフェースが示されている。ＵＩ２００は、リモートデバイス１２０とインタラクトするようにユーザデバイス１１０を制御する複数のＵＩ要素２０１、２０２、２０３を備える。ユーザデバイス１１０は、ＵＩ２００をリモートデバイス１２０から受信されるデバイス情報１２３に基づいて、適切なＵＩ要素を、デバイス情報１２３内にリモートデバイス１２０によりサポートされている通りに定義されるインタラクションのタイプに対応して選択することにより生成する。次に、ユーザデバイス１１０は、構成したＵＩ２００をディスプレイ１１３に表示する。本実施形態では、ディスプレイ１１３はユーザデバイス１１０に含まれるが、他の実施形態では、ユーザデバイス１１０は、構成したＵＩ２００を、物理的に別のディスプレイデバイスに出力することができる。
【００３７】
本実施形態では、デバイス情報はハイパーテキストマークアップ言語（ＨＴＭＬ）形式で供給され、ユーザデバイス１１０は、ＵＩを、ＨＴＭＬデバイス情報を解析およびレンダリングすることにより構成する。一例として、ＵＩ要素は、ＨＴＭＬ入力要素を使用して定義することができ、インタラクションのタイプは＜ｉｎｐｕｔ＞タグの「ｔｙｐｅ」属性を使用することにより定義される。例えば、本実施形態では、リモートデバイス１２０でセキュリティライトを点灯／消灯するスイッチＵＩ要素２０２は、デバイス情報内で、入力タイプを「ｂｕｔｔｏｎ（ボタン）」に設定することにより以下の通りに定義することができる：
＜ｈｔｍｌ＞
＜ｂｏｄｙ＞
＜ｉｎｐｕｔ  ｔｙｐｅ＝"ｂｕｔｔｏｎ"  ｖａｌｕｅ＝"Ｌｉｇｈｔ  ｏｎ／ｏｆｆ"  ／＞
＜／ｂｏｄｙ＞
＜／ｈｔｍｌ＞
【００３８】
ユーザデバイス１１０のアプリケーションにより解析されると、これによりＵＩ要素がＵＩ２００のボタンとしてレンダリングされる。同様に、セキュリティライトが自動的に点灯または消灯する時間を制御する図２に示す入力要素２０１は、「ｔｅｘｔ（テキスト）」ＨＴＭＬ入力タイプを使用して定義することができ、輝度を制御する入力要素２０３は「ｒａｎｇｅ（範囲）」ＨＴＭＬ入力タイプを使用して定義することができる。これらのＵＩ要素は単に例として説明されており、他のタイプのＵＩ要素を他の実施形態において、リモートデバイスによりサポートされるインタラクションのタイプに応じて使用することができる。
【００３９】
幾つかの実施形態では、デバイス情報１２３は、ユーザデバイス１１０のアプリケーションがスクリプトを使用して、ユーザ入力をリモートデバイス１２０により理解され得るインタラクション要求に変換することができる当該スクリプトをさらに含むことができる。これにより、ユーザデバイス１１０は、任意のリモートデバイス１１０とインタラクトすることができ、当該特定のリモートデバイス１１０を制御する専用アプリケーションをインストールする必要がなく、ユーザデバイス１１０が、リモートデバイス１２０が必要とするシグナリング形式に関する知識を事前に全く持つ必要がない。スイッチＵＩ要素２０２の例を挙げると、デバイス情報１２３は、ＵＩ要素がユーザ入力により選択されるのに応答して、リモートデバイス１２０により理解され得るシグナリングを生成する以下の通りのスクリプトを含むことができる。
＜ｈｔｍｌ＞
＜ｂｏｄｙ＞
＜ｉｎｐｕｔ  ｔｙｐｅ＝"ｂｕｔｔｏｎ"  ｖａｌｕｅ＝"Ｌｉｇｈｔ  ｏｎ／ｏｆｆ"  ｏｎＣｌｉｃｋ＝"ｌｉｇｈｔＳｗｉｔｃｈ（）"  ／＞
＜ｓｃｒｉｐｔ  ｔｙｐｅ＝"ｔｅｘｔ／ｊａｖａｓｃｒｉｐｔ"＞
ｆｕｎｃｔｉｏｎ  ｌｉｇｈｔＳｗｉｔｃｈ（）  ｛
ＡｐｐＩｎｔｅｒｆａｃｅ．ｗｒｉｔｅＢＬＥＣｈａｒＷｉｔｈＲｓｓｉ（"００００ＦＥ０１−００００−１０００−８０００−００８０５Ｆ９Ｂ３４ＦＢ"、１）；
｝
＜／ｂｏｄｙ＞
＜／ｈｔｍｌ＞
【００４０】
上記の例では、ｗｒｉｔｅＢＬＥＣｈａｒＷｉｔｈＲｓｓｉ関数は、ユーザデバイス１１０にインストールされるアプリケーション内で定義することができ、当該アプリケーションは、ユーザデバイス１１０の無線インターフェースモジュールを操作して、リモートデバイス１２０により理解され得るインタラクション要求を生成する。
【００４１】
一旦、ＵＩ２００が表示されると、ユーザは次に、ユーザデバイス１１０を、ＵＩ要素を介して制御してリモートデバイス１２０とインタラクトすることができる。例えば、図２に示すＵＩ２００は、タッチスクリーンディスプレイ１１３に表示することができ、ユーザデバイス１１０は、ＵＩ要素群のうち１つのＵＩ要素に関するユーザ入力をタッチイベントまたはドラッグジェスチャの形態で受信することができる。ユーザ入力に応答して、ユーザデバイス１１０の処理ユニット１１１は、ユーザデバイス１１０を制御して、受信したユーザ入力が関連するＵＩ要素に従って、かつ無線インターフェース１１２を介して送信されるシグナリングにより受信されるユーザ入力に従って、リモートデバイス１２０とインタラクトする。
【００４２】
幾つかの実施形態では、ユーザデバイス１１０にあるアプリケーションは、ＵＩ要素を、格納テクスチャを使用してレンダリングすることができ、各テクスチャはＵＩ要素の特定の所定のタイプに関連付けられる。テクスチャは、ユーザデバイス１１０で事前にインストールしておくことができる、またはデバイス情報１２３内で定義されるＵｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ（ユニフォームリソース識別子：ＵＲＩ）で識別されるウェブアドレスから取り出すことができる。幾つかの実施形態では、デバイス情報は、ＵＩ要素がどのように表示される必要があるかを、例えばＵＩ内の各ＵＩ要素のサイズ、形状、向き、および／または位置を定義することにより定義することができる。これにより、リモートデバイス１２０の製造業者は、ＵＩインターフェースがユーザデバイス１１０にどのように表示されるかをより強力に制御することができる。
【００４３】
本発明の１つの実施形態によるデバイスディスカバリ手順を図３および図４を参照して説明する。当該手順を使用して、ユーザデバイスが、ＰＰＧＤＳをサポートする利用可能なリモートデバイスを現在の近傍に特定してリモートデバイスと接続するようにすることができる。図３は、デバイスディスカバリ中にリモートデバイスにより実行されるステップを示すフローチャートであり、図４は、デバイスディスカバリ中にユーザデバイスにより実行されるステップを示すフローチャートである。デバイスディスカバリ手順は、図１のユーザデバイス１１０と、図１に示すデバイスと同様の１つ以上のリモートデバイスと、を備えるシステムにおいて使用することができる。
【００４４】
実施形態に応じて、任意の所定のリモートデバイスは、その場で発見されるか、または遠く離れた場所で発見されるように構成することができる。図３に示すように、ステップＳ３０１では、リモートデバイスは、リモートデバイスが、ユーザデバイスとリモートデバイスとの間のインタラクションを制御する所定のプロトコルに適合しているかどうかを示すディスカバリメッセージを繰り返し放送する。例えば、プロトコルは、デバイス情報の構造、およびＵＩをどのようにしてデバイス情報に基づいて生成する必要があるかの両方を定義する業界基準または独自の基準で定義することができる。本実施形態では、所定のプロトコルはＰＰＧＤＳである。リモートデバイスがＰＰＧＤＳをサポートする場合、これは、ＰＰＧＤＳアプリケーションにより解析することができるデバイス情報を当該リモートデバイスが利用できることにより、ユーザデバイスがリモートデバイスとインタラクトすることができることを意味している。このようなデバイスは、ＰＰＧＤＳ対応リモートデバイスと表記することができる。ＰＰＧＤＳ対応リモートデバイスには、第１のＰＰＧＤＳアプリケーションがインストールされ、第１のＰＰＧＤＳアプリケーションは、ユーザデバイスから受信されるインタラクション要求を解釈することができ、インタラクション要求に基づいて動作することができる。ＰＰＧＤＳ対応ユーザデバイスには、対応する第２のＰＰＧＤＳアプリケーションがインストールされ、第２のＰＰＧＤＳアプリケーションは、インタラクション要求を、リモートデバイスにある第１のＰＰＧＤＳアプリケーションにより理解可能な形式で生成することができる。
【００４５】
ディスカバリメッセージを放送した後、ステップＳ３０２およびＳ３０３では、リモートデバイス１２０は、ユーザデバイス１１０からの接続要求を待機し、接続要求が受信されない場合には、ディスカバリメッセージを定期的に再送信する。一旦、接続要求がステップＳ３０２において受信されると、リモートデバイス１２０は、ユーザデバイス１１０との接続を確立する。
【００４６】
ステップＳ４０１では、ユーザデバイス１１０は、無線インターフェース１１２を介して受信されるディスカバリメッセージを継続的に走査する。走査プロセス中、ディスカバリメッセージは、ユーザデバイスにこれまで認識されていなかったリモートデバイスから受信することができる。「ｐｒｅｖｉｏｕｓｌｙ  ｕｎｋｎｏｗｎ（これまで認識されていなかった）」とは、ユーザデバイスが、この特定のリモートデバイスとこれまで通信していなかった、またはこの特定のリモートデバイスとこれまでインタラクトしていなかったことにより、このリモートデバイスによりサポートすることができるインタラクションのタイプに関する事前の知識を持っていないことを意味する。このようにして、ユーザデバイス１１０は、これまで認識していなかったデバイスを発見し、当該デバイスとインタラトすることができ、追加のソフトウェアをインストールする必要がない。
【００４７】
ディスカバリメッセージをリモートデバイス１２０から無線インターフェース１１２を介して受信すると、ユーザデバイス１１０は、ステップＳ４０２において、リモートデバイス１２０を利用可能なリモートデバイスのリストに追加する。本実施形態では、当該リストは、現在、ユーザデバイス１１０の範囲内にある任意のＢＬＥデバイスを含む。リスト内では、任意のＰＰＧＤＳ対応リモートデバイスを強調表示することができる。ステップＳ４０３において、リストからのＢＬＥデバイスのユーザ選択に応答して、ステップＳ４０４において、ユーザデバイス１１０は、選択したデバイスがＰＰＧＤＳ対応リモートデバイスの１つのＰＰＧＤＳ対応リモートデバイスであるかどうかをチェックする。ＰＰＧＤＳ対応リモートデバイスではない場合、ユーザデバイス１１０は走査を再開し、ＰＰＧＤＳ対応リモートデバイス１２０が選択されるのを待機する。別の実施形態では、ユーザデバイス１１０は、ＰＰＧＤＳ対応デバイスのみを、利用可能なデバイスの表示リストに含めるように構成することができ、この場合、ユーザが選択を行った後の追加チェックは省略することができる。一旦、ユーザがＰＰＧＤＳ対応リモートデバイス１２０を選択すると、ユーザデバイス１１０は、ステップＳ４０５において、リモートデバイス１２０との接続を、無線インターフェース１１２を介して確立し、接続がＳ４０６において成功したことをチェックする。例えば、接続は、ユーザデバイス１１０とリモートデバイス１２０との間の無線受信が、接続を確立するプロセス中に失敗する場合に失敗する可能性がある。
【００４８】
本実施形態では、リモートデバイス１２０との接続が開設された後、リモートデバイス１２０は、ユーザデバイス１１０に対して、ローカルディスカバリまたはリモートディスカバリを利用する必要があるかどうかを、およびリモートデバイス１２０とインタラクトするためにパスワードが必要かどうかを信号通知する。本実施形態では、ユーザデバイス１１０は、「Ｄｉｓｃｏｖｅｒｙ  Ｍｏｄｅ（ディスカバリモード）」属性、および「Ｐａｓｓｗｏｒｄ  Ｒｅｑｕｉｒｅｍｅｎｔ（パスワード要件）」属性を含むメタデータをリモートデバイス１２０から受信する。「ディスカバリモード」属性は、ユーザデバイス１１０に対して、ローカルディスカバリまたはリモートディスカバリを利用する必要があるかどうかを示し、「パスワード要件」属性は、ユーザデバイス１１０が、リモートデバイス１２０とインタラクトする前に、認証プロセスに合格する必要があるかどうかを示している。他の実施形態では、ディスカバリモードのタイプに関する情報、および／またはパスワード要件に関する情報は、リモートデバイス１２０により放送されるディスカバリメッセージに含めることができるので、リモートデバイス１２０との接続を開設する前に、ユーザデバイス１１０により取得することができる。
【００４９】
ユーザデバイス１１０が、リモートデバイス１２０とこれまでにインタラクトしていない場合、デバイス情報を取得して、当該特定のリモートデバイス１２０のＵＩを構成する必要がある。さらに、幾つかの実施形態では、ユーザデバイス１１０は、ユーザデバイス１１０が、当該特定のリモートデバイス１２０に関するデバイス情報をこれまで取得していた場合でも、リモートデバイス１２０との接続を開設するときに更新されるデバイス情報を必ずチェックするように構成することができる。これにより、利用可能なインタラクションのタイプを異なる条件の下で、例えば１日の異なる時刻に、ユーザデバイス１１０に対して、現条件に従って更新されたデバイス情報を供給することにより変更することができる。
【００５０】
上に説明したように、幾つかの実施形態では、ユーザデバイスは、ローカルディスカバリモードおよびリモートディスカバリモードの両方をサポートすることができる。本実施形態では、ユーザデバイスは、ステップＳ４０７において、ローカルディスカバリまたはリモートディスカバリを行うかどうかを、リモートデバイスにより指定されるディスカバリモードのタイプに従って判断して、リモートデバイス１２０に関連するデバイス情報を取り出す。したがって、本実施形態では、一旦、リモートデバイス１２０との接続が確立されると、ユーザデバイス１１０は、リモートデバイス１２０から受信されるディスカバリモード属性の状態をチェックして、ローカルディスカバリまたはリモートディスカバリを利用するかどうかを判断する。これにより、様々なタイプのリモートデバイスとの相互運用性が可能になり、これらのリモートデバイスの幾つかのリモートデバイスは、ローカルディスカバリをサポートすることができ、これらのリモートデバイスの他のリモートデバイスは、リモートディスカバリをサポートすることができる。他の実施形態では、システム内の全てのデバイス（すなわち、任意のユーザデバイスおよびリモートデバイス）は、ローカルディスカバリを必ず利用するように、またはリモートディスカバリを必ず利用するように構成することができる。
【００５１】
ここで、デバイス情報を取り出すローカルディスカバリ手順について図５および図６を参照して説明する。図５は、本発明の１つの実施形態によるリモートデバイスとユーザデバイスとの間でローカルディスカバリ手順中に授受される通信のシーケンスを示している。図６は、ローカルディスカバリ手順中にユーザデバイスで実行されるステップを示すフローチャートである。図５および図６に示すディスカバリ手順は、図１のリモートデバイス１２０およびユーザデバイス１１０で使用することができ、デバイス情報１２３は、リモートデバイス１２０にその場で格納される。
【００５２】
図６に示すフローチャートは、デバイスディスカバリが行われ、リモートデバイスとの接続が確立された後に開始する。本実施形態では、ユーザデバイス１１０は、パスワード要件属性をリモートデバイス１２０からステップＳ６０１において取得することにより開始する。次に、ユーザデバイス１１０は、パスワード要件属性をステップＳ６０２でチェックして、パスワードがこのリモートデバイス１２０により必要とされているかどうかを判断する。パスワードが必要とされている場合、次にステップＳ６０３において、ユーザデバイス１１０はユーザにパスワードを入力するように促すことができ、ステップＳ６０４において、ユーザ入力パスワードをユーザデバイス１１０の識別子（ＩＤ）と一緒にリモートデバイス１２０に送信することができる。あるいは、ユーザデバイス１１０は、格納パスワードを取り出すことができ、格納パスワードは、ユーザにより既に入力されているパスワードとすることができる。パスワードが必要とされていない場合、ユーザデバイス１１０は単に、ステップＳ６０５において、当該ユーザデバイス固有のＩＤをリモートデバイス１２０に送信するだけである。さらに、他の実施形態では、ローカルディスカバリは、パスワードまたはＩＤをユーザデバイス１１０に対して要求することなく実行することができ、この場合、リモートデバイス１２０は、任意のユーザデバイス１１０とインタラクトし易い。
【００５３】
実施形態に応じて、リモートデバイス１２０は、認証および／または許可を受信パスワードおよびユーザデバイスＩＤに基づいて行うことができ、ユーザデバイス１１０が、当該ユーザデバイスが認証および／または許可に成功した場合にのみインタラクトすることができるようにする。必要な許可および／または認証プロセスが成功する場合、リモートデバイス１２０は、メモリ内の内部フラグ「ｉｓＰａｓｓｗｏｒｄＡｕｔｈｅｎｔｉｃａｔｅｄ」の値を設定して、ユーザデバイス１１０が現在の接続セッション全体を通じて許可されることを知らせる。次に、リモートデバイス１２０は、ステップＳ６０６において、ユーザデバイス１１０に対して、認証／許可プロセスの結果で応答する。
【００５４】
ユーザデバイス１１０は、ステップＳ６０７において、認証／認可プロセスの結果をチェックする。結果が失敗である場合（すなわち、ユーザデバイス１１０が認証されない、および／または許可されないかのいずれかである場合）、リモートデバイス１２０はこの特定のユーザデバイス１１０とのインタラクションを許可しないことになるので、ステップＳ６０８において、ユーザデバイス１１０はリモートデバイス１２０との接続を終了させる。これとは異なり、結果が成功である場合、ステップＳ６０９において、ユーザデバイス１１０は、デバイス情報をリモートデバイス１２０に対して要求する。リモートデバイス１２０は、要求を受信し、格納デバイス情報１２３を取り出し、デバイス情報１２３をユーザデバイス１１０に送信する。次に、ユーザデバイス１１０は、図１および図２を参照して上述した手順を使用して、デバイス情報を解析し、ＵＩを構成し、構成したＵＩを表示することができる。図５に示すように、ユーザデバイス１１０は、引き続き、ステップＳ６１０において、インタラクション要求をユーザ入力に応答して送信することができ、リモートデバイス１２０は応答を、要求されているインタラクションのタイプに従って行うことができる。
【００５５】
図５および図６を参照して上述した手順のようなローカルディスカバリ手順を使用することにより、ユーザデバイスはリモートデバイスとの接続を行うことができ、受信したデバイス情報にのみ基づいてリモートデバイスとインタラクトするためにＵＩを構成することができ、追加情報を別のソースに対して要求する必要が全くない。さらに、リモートデバイスにより理解され得るインタラクション要求を生成するために使用することができるスクリプトをデバイス情報に含めることにより、ユーザデバイスは、リモートデバイスとどのようにインタラクトするかを、追加ソフトウェアを、例えばインターネットサーバからダウンロードする必要なく学習することができる。スクリプトは、ユーザデバイスのアプリケーションに対して、ユーザデバイスにインタラクション要求を生成させる内部制御信号をどのようにして生成するかを伝えることができる。したがって、ユーザデバイス１１０およびリモートデバイス１２０は、インターネット接続または他のネットワーク接続が無い状態で、接続を確立することができ、互いに対してインタラクトすることができる。
【００５６】
図５および図６に示す実施形態では、デバイス情報は、リモートデバイスにその場で格納される。他の実施形態では、デバイス情報がウェブサーバで格納されるリモートディスカバリ手順を使用することができる。ここで図７を参照すると、本発明の１つの実施形態によるユーザデバイスと、リモートデバイスと、リモートデバイスに関連するデバイス情報を供給するサーバと、を備えるシステムが示されている。
【００５７】
本実施形態のユーザデバイス７１０は、１つ以上のプロセッサ７１１ａおよびコンピュータ可読メモリ７１１ｂを含む処理ユニット７１１と、無線インターフェース７１２と、ディスプレイ７１３と、を備える。リモートデバイス７２０は、１つ以上のプロセッサ７２１ａおよびコンピュータ可読メモリ７２１ｂを含む処理ユニット７２１と、無線インターフェース７２２と、アクチュエータ７２４と、センサ７２５と、を備える。これらの要素は、図１に示す実施形態のユーザデバイス１１０およびリモートデバイス１２０の対応する要素と同様であり、詳細な説明は、ここでは繰り返さないこととする。
【００５８】
さらに、本実施形態のユーザデバイス７１０は、インターネットサーバまたはローカルネットワーク上のサーバとすることができるサーバ７３０と通信するネットワークインターフェース７１４をさらに備える。サーバ７３０は、１つ以上のプロセッサ７３１ａおよびコンピュータ可読メモリ７３１ｂを含む処理ユニット７３１と、ネットワークインターフェース７３２と、デバイス情報７３３と、を含む。図１のユーザデバイス１１０およびリモートデバイス１２０と同様に、サーバ７３０のコンピュータ可読メモリ７３１ｂは、コンピュータプログラム命令を格納するように適合させ、コンピュータプログラム命令が、１つ以上のプロセッサ７３１ａにより実行されると、サーバ７３０が、サーバ７３０により実行されるそれぞれのステップを、本明細書において開示されるリモートディスカバリ手順で実行するようになる。併せて、サーバ７３０の１つ以上のプロセッサ７３１ａおよびコンピュータ可読メモリ７３１ｂは、サーバ７３０を制御してデバイス情報７３３をユーザデバイス７１０に供給する装置を形成する。図１の実施形態と同様に、本実施形態では、デバイス情報７３３は、処理ユニット７３１により使用される同じ物理メモリ７３１ｂに格納することができる、または別のメモリに格納することができる。
【００５９】
ここで、図７に示すシステムにより実行することができるリモートディスカバリ手順が、本発明の実施形態に従って、図８および図９を参照して説明される。図８は、本発明の１つの実施形態によるリモートデバイス、サーバ、およびユーザデバイスの間でリモートディスカバリ手順中に授受される通信のシーケンスを示している。図９は、ユーザデバイスでローカルディスカバリ手順中に実行されるステップを示すフローチャートである。
【００６０】
図９に示す方法の第１ステップ、および図８において送信される第１通信は、図５および図６に示すローカルディスカバリ手順のステップおよび通信と同様であり、詳細な説明は、ここでは繰り返さないこととする。図６に示すローカルディスカバリ手順のステップＳ６０１からＳ６０５と同様に、リモートディスカバリ手順のステップＳ９０１からＳ９０５では、ユーザデバイス７１０は、許可が必要かどうかを設定し、ユーザに対して、パスワードが必要であれば、パスワードを入力するように促す。次に、リモートデバイス７２０は、認証および／または認可に成功したかどうかを判断し、ステップＳ９０６において、結果をユーザデバイス７１０に信号通知する。ユーザデバイス７１０は、ステップＳ９０７において、認証／認可プロセスの結果をチェックする。結果が失敗である場合、ステップＳ９０８において、リモートデバイス７２０が、この特定のユーザデバイス７１０とのインタラクションを許可しないので、ユーザデバイス７１０はリモートデバイス７２０との接続を終了させる。
【００６１】
ローカルディスカバリおよびリモートディスカバリの両方において、２つのデバイスは、これらのデバイスの一方のデバイスが接続を終了させるまで、接続されたままになる。認証または許可が必要な場合にリモートデバイスとユーザデバイスとの間の接続が終了すると必ず、リモートデバイスがパスワード要件により構成される場合には、リモートデバイスはフラグ「ｉｓＰａｓｓｗｏｒｄＡｕｔｈｅｎｔｉｃａｔｅｄ」をリセットする。これにより、確実に、いずれのユーザデバイスも、全ての接続セッションにおいて、正しく認証および許可される必要があり、ユーザデバイスがリモートデバイスとインタラクトすることを、過去に異なるユーザにより確立されている可能性があるこれまでの接続を使用することにより防止する。
【００６２】
一旦、ユーザデバイス７１０がステップＳ９０７において、リモートデバイス７２０による認証および／または許可に成功すると、リモートディスカバリ手順はローカルディスカバリ手順から外れる。当該時点で、ユーザデバイス７１０は、ステップＳ９０９において、リモートデバイスが保有する固有ＩＤおよびサーバ７３０のＵＲＩを要求する。リモートデバイス７２０は、リモートデバイス７２０に位置するメモリにその場で格納されている要求された情報で応答する。
【００６３】
本実施形態では、ＩＤおよびＵＲＩをリモートデバイス７２０から受信した後、ステップＳ９１０では、ユーザデバイス７１０は、ネットワーク接続がネットワークインターフェース７１４を介して現在利用可能であるかどうかをチェックする。利用可能ではない場合、ユーザデバイス７１０は、リモートデバイス７２０との接続を、ユーザデバイスがデバイス情報７３３をサーバ７３０から取り出すことができないので終了させることができる。ネットワーク接続が利用可能である場合、ユーザデバイス７１０は、ステップＳ９１１において、サーバ７３０との接続を確立し、本実施形態では、デバイス情報（ＧＥＴコマンド）に関するＨＴＴＰ要求を、リモートデバイス７２０により供給されるＵＲＩおよびＩＤを使用して送信する。
【００６４】
ＨＴＴＰ  ＧＥＴコマンドが本実施形態において使用されて、インターネットサーバに適合させるが、他の実施形態では、デバイス情報を要求するときに異なる形式を使用することができる。幾つかの実施形態では、ユーザデバイス７１０は、ユーザデバイスが保有する固有ＩＤ、例えばシリアル番号をデバイス情報に関する要求に含めることもでき、サーバは、任意の余分なセキュリティ／許可プロセスを実行することができる。ＨＴＴＰ  ＧＥＴコマンドは、ＵＲＩをリモートデバイスのＩＤおよびユーザデバイスのＩＤと、形式＜ＵＲＩ＞／＜ｒｅｍｏｔｅ  ｄｅｖｉｃｅ  ＩＤ＞／＜ｕｓｅｒ  ｄｅｖｉｃｅ  ＩＤ＞で連結させることにより生成することができる。
【００６５】
サーバ７３０は、複数の異なるリモートデバイスに関するデバイス情報７３３を格納することができる。このような場合、特定のリモートデバイスに関するデバイス情報７３３は、対応するリモートデバイスのＩＤに関連付けて格納することができる。サーバ７３０がデバイス情報に関する要求を受信すると、当該サーバは、要求に含まれていたリモートデバイスＩＤに関連する格納デバイス情報７３３を取り出し、取り出したデバイス情報７３３をユーザデバイス７１０に送信する。幾つかの実施形態では、サーバ７３０は、ユーザデバイス７１０を認証するように構成することができ、デバイス情報７３３をユーザデバイス７１０の認証の成功に応答するときにのみ送信することができる。
【００６６】
デバイス情報７３３をステップＳ９１２において受信すると、ユーザデバイス７１０は次に、ステップＳ９１３において、ローカルディスカバリ手順について上述したのと同様の方法で、ＵＩを構成し、リモートデバイス７２０とインタラクトすることができる。
【００６７】
リモートデバイス１２０またはサーバ７３０が格納デバイス情報を取り出し、当該デバイス情報をユーザデバイス１１０、７１０に送信する本発明の実施形態について説明してきた。幾つかの実施形態では、デバイス情報は、当該デバイス情報をユーザデバイス１１０、７１０に送信する前に、例えばユーザデバイス１１０、７１０の認証ユーザのセキュリティレベルに基づいてカスタマイズすることができる。このような実施形態では、格納デバイス情報は、複数の所定のセキュリティレベルのうちの特定の１つのセキュリティレベルに関してのみ許可されるインタラクションの１つ以上のタイプを定義することができ、デバイス情報をカスタマイズして、現ユーザのセキュリティレベルに関して許可されるインタラクションのこれらのタイプのみを定義することができる。例えば、セキュリティレベルが低いユーザは、データをリモートデバイス１２０、７２０に含まれる温度センサから読み出すことが許可されるだけであるのに対し、セキュリティレベルがより高いユーザは、特定の動作をリモートデバイス１２０、７２０で開始させる温度設定値を変えることができる。
【００６８】
幾つかの実施形態では、ユーザは、および／またはセキュリティレベルは、ユーザの識別情報（ＩＤ）、パスワード、および／またはユーザデバイス１１０、７１０のリモートデバイス１２０、７２０への近接度のような様々なパラメータに基づいて認証される、および／または判断することができる。近接度が使用される場合、ユーザは認証され得る、および／または異なるセキュリティレベルは、ユーザデバイス１１０、７１０とリモートデバイス１２０、７２０との間の距離が閾値を上回るか、または下回るかどうかに従って選択することができる。
【００６９】
例えば、近接度は、ユーザデバイス１１０、７１０およびリモートデバイス１２０、７２０の全地球測位システム（ＧＰＳ）座標を使用して判断することができる、または他のデバイスの無線インターフェース１１２、１２２、７１２、７２２により受信される、デバイス群の１つのデバイスからの信号の電力レベルに基づいて判断することができる。好ましくは、セキュリティのために、リモートデバイス１２０、７２０とユーザデバイス１１０、７１０との間の距離の判断は、リモートデバイス１２０、７２０により行われて、ユーザデバイス１１０、７１０が偽の距離を供給するのを回避して、ロケーションベースのセキュリティ制限を受けることがないようにする。例えば、幾つかの実施形態では、リモートデバイス１２０、７２０は、ユーザデバイス１１０、７１０から受信されるインタラクション要求のような、無線インターフェース１２２、７２２にあるユーザデバイス１１０、７１０から受信される信号の電力レベルを測定し、ユーザデバイス１１０、７１０までの距離を以下の方程式に従って判断するように構成することができる。
ｐａｔｈ  ｌｏｓｓ＝４０＋２５ｌｏｇ（ｄ）
式中、ｄは送信機と受信機との間の距離である。幾つかのシナリオでは、リモートデバイス１２０、７２０は、受信無線信号が雑音および干渉の影響を強く受ける可能性があるので、測定距離を大まかな推定値として使用するに過ぎず、したがって、測定距離を所定の閾値と比較する場合に、測定値の取り得る誤差マージンを考慮に入れることができる。
【００７０】
さらに、リモートディスカバリが使用される幾つかの実施形態では、異なるセキュリティレベルに関してカスタマイズされたディスカバリ情報は、異なるセキュリティレベルに関する異なるＵＲＩを供給することにより供給することができる。このような実施形態では、リモートデバイス７２０は、ＵＲＩに関する要求をユーザデバイス７１０から受信するときの現ユーザのセキュリティレベルを判断することができ、判断したセキュリティレベルに関連するＵＲＩで応答することができる。これにより、ユーザデバイス７１０は、異なるデバイス情報をサーバ７３０からリモートデバイス７２０により判断されるセキュリティレベルに従って取り出し、リモートデバイス７２０は、ユーザに付与される制御レベルをカスタマイズすることができる。あるいは、異なるＵＲＩを供給する代わりに、デバイス情報のカスタマイズは、上記のようにサーバ側で行うことができる。
【００７１】
幾つかの実施形態では、他の条件付きインタラクションタイプをデバイス情報内で定義することができる。条件付きインタラクションは、関連条件が満たされる場合にのみ許可されるインタラクションである。特定のインタラクションに付随する可能性がある条件の例には、これらには限定されないが、日付または１日の時刻、ユーザデバイスの識別情報、現在の気象条件、およびリモートデバイスの位置の混雑度または密集度が含まれる。デバイス情報を供給するように要求される場合、リモートデバイス１２０（ローカルディスカバリの場合）、またはサーバ７３０（リモートディスカバリの場合）は、各条件付きインタラクションに関して、関連条件が満たされるかどうかをチェックすることができ、条件付きインタラクションを送信したデバイス情報に、条件が満たされる場合にのみ含めることができる。例えば、これにより、リモートデバイスの特定の機能に、１日の特定の時刻にのみアクセスすることができる、または特定の気象条件下でのみアクセスすることができるなどである。
【００７２】
ローカルディスカバリ手順またはリモートディスカバリ手順のいずれかの幾つかの実施形態では、多要素認証（ＭＦＡ）方法を使用することができる。ＭＦＡを使用して現ユーザの識別情報を確認することができ、これにより、ユーザには、複数の異なる情報の提示に成功した後に、特定のタイプのインタラクションへのアクセスのみが付与される。複数の異なる情報を使用することにより、不正な当事者が正しい情報の全ての供給に成功することができる可能性が低くなるので、セキュリティが向上する。ＭＦＡが本発明の実施形態において使用される場合に必要とされる可能性がある情報のタイプの例には、これらには限定されないが、以下が含まれる。
●知識：パスワードまたは他のシークレットのような特定の個人にのみ知られている情報。
●所有：ユーザデバイスＩＤにより識別される認識ユーザデバイスのような、ユーザが物理的に所有する情報。ローカルディスカバリに使用される場合、これにより、余分なメモリが、リモートデバイス１２０で利用可能になって、複数のユーザデバイスＩＤを格納して検証に使用する必要がある。リモートディスカバリに使用される場合、上記のように、ユーザデバイスＩＤはサーバ７３０に送信される要求に含めることができる。
●近接度：認証に成功するためのユーザデバイス１１０、７１０とリモートデバイス１２０、７２０との間の最小または最大距離閾値。
●アクセスレベル制御：上記のように、異なる許可ユーザに対して異なるセキュリティレベルを割り当てることができ、それに応じて、異なるアクセスレベルを付与することができる。
●動的ルール割り当て：リモートデバイスの動作は、付加することができる一連のルールに基づいて、特定の用途に基づいて、多種多様なユーザに対応して、特定の条件下で動的に調整および決定することができる。各リモートデバイスにその場で格納されている一連のルールを個別に更新する必要があるのではなく、リモートデバイス動作を変更するルールをサーバで集中的に定義およびカスタマイズすることができるので、これは、リモートディスカバリを使用するシステムにおいて非常に効率的に実行することができる。
【００７３】
本発明の実施形態では、ユーザデバイスは、単一の汎用アプリケーションを使用して、異なる機能を提供することができる様々なリモートデバイスを発見することができる。任意のデバイスがインタラクションを行うために使用することができる共通の動作環境基準を作成することにより、異なるデバイスの間の高レベルの相互運用性を実現することにより、本発明の実施形態は、ＩｏＴの展開の将来に大きな影響を与えることが予想される。
【００７４】
本発明の特定の実施形態が、本明細書において図面を参照して説明されてきたが、多くの変形および修正が、添付の特許請求の範囲に定義される通り、本発明の範囲から逸脱することなく可能であることが理解できるであろう。
【図１】
2020512620.tif 000003
【図２】
2020512620.tif 000004
【図３】
2020512620.tif 000005
【図４】
2020512620.tif 000006
【図５】
2020512620.tif 000007
【図６】
2020512620.tif 000008
【図７】
2020512620.tif 000009
【図８】
2020512620.tif 000010
【図９】
2020512620.tif 000011
【国際調査報告】
2020512620.tif 000012
2020512620.tif 000013