(57)【要約】【課題】  ウェブサイトにデバイスを登録時に、ユーザーがデバイスの識別子を誤入力すると、当該デバイスのユーザーにリモート監視によるサービスを適切に提供できない。【解決手段】  本発明の情報処理装置は、ウェブアプリケーションが接続許可されたＢＴデバイスに、ウェブブラウザー及びＯＳを介してＢＬＵＥＴＯＯＴＨの通信でリクエストを実行させ、ＢＴデバイスの識別子を取得することを特徴とする。【選択図】  図６
2020067916.tif 000002
【特許請求の範囲】
【請求項１】
ウェブブラウザーが動作し、該ウェブブラウザーでサーバーが提供するウェブアプリケーションを実行する情報処理装置であって、
前記ウェブアプリケーションが提供する画面を介してＢＬＵＥＴＯＯＴＨを用いた探索が指示された場合に、前記情報処理装置にＢＬＵＥＴＯＯＴＨで通信できるデバイスを探索する第１命令を実行する第１実行手段と、
前記第１命令に応じて前記ウェブブラウザーが前記情報処理装置のＯＰＥＲＡＴＩＮＧ  ＳＹＳＴＥＭ（ＯＳ）を介して実行したリクエストに対する１以上の応答に基づき、前記ウェブアプリケーションがＢＬＵＥＴＯＯＴＨで通信できるデバイスに接続することを許可するかを確認するための、該１以上の応答に含まれる１以上のデバイスの情報を含むプロンプトを表示する表示手段と、
前記プロンプトでの選択に対応する選択デバイスに対する該デバイスの識別子を取得するための第２命令を実行する第２実行手段と、
前記第２命令に応じてＢＬＵＥＴＯＯＴＨでの通信を用いて前記ウェブブラウザーが前記ＯＳを介して実行したリクエストに対する前記選択デバイスからの応答に含まれる識別子を、前記サーバーに対して送信する送信手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記情報処理装置では、前記プロンプトで許可の対象としてデバイスが選択されたことに応じて、前記情報処理装置と選択デバイスとの間で、ＢＬＵＥＴＯＯＴＨでの通信のためのペアリングが実行されることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１命令に応じて前記ウェブブラウザーが前記ＯＳを介して実行したリクエストに対して１以上の応答があった場合に、該応答を行った１以上のデバイスのそれぞれについて、特定のタイプであるかを確認するための第３の命令を実行する第３実行手段と、を更に有し、
前記表示手段は、前記第３命令に応じてＢＬＵＥＴＯＯＴＨでの通信を用いて前記ウェブブラウザーが前記ＯＳを介して実行したリクエストに対する１以上のデバイスからの応答に基づき、前記特定のタイプであると確認されたデバイスのみの情報を含む前記プロンプトを表示することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
ウェブブラウザーが動作し、該ウェブブラウザーでサーバーが提供するウェブアプリケーションを実行する情報処理装置における方法であって、
前記ウェブアプリケーションが提供する画面を介してＢＬＵＥＴＯＯＴＨを用いた探索が指示された場合に、前記情報処理装置にＢＬＵＥＴＯＯＴＨで通信できるデバイスを探索する第１命令を実行する第１実行工程と、
前記第１命令に応じて前記ウェブブラウザーが前記情報処理装置のＯＰＥＲＡＴＩＮＧ  ＳＹＳＴＥＭ（ＯＳ）を介して実行したリクエストに対する１以上の応答に基づき、前記ウェブアプリケーションがＢＬＵＥＴＯＯＴＨで通信できるデバイスに接続することを許可するかを確認するための、該１以上の応答に含まれる１以上のデバイスの情報を含むプロンプトを表示する表示工程と、
前記プロンプトでの選択に対応する選択デバイスに対する該デバイスの識別子を取得するための第２命令を実行する第２実行工程と、
前記第２命令に応じて前記ウェブブラウザーが前記ＯＳを介して実行したリクエストに対する前記選択デバイスからの応答に含まれる識別子を、前記サーバーに対して送信する送信工程と、を有することを特徴とする方法。
【請求項５】
ウェブブラウザーで実行されるサーバーが提供するプログラムであって、
コンピューターを、
前記プログラムが提供する画面を介してＢＬＵＥＴＯＯＴＨを用いた探索が指示された場合に、前記コンピューターにＢＬＵＥＴＯＯＴＨで通信できるデバイスを探索する第１命令を実行する第１実行手段と、
前記第１命令に応じて前記ウェブブラウザーがＯＰＥＲＡＴＩＮＧ  ＳＹＳＴＥＭ（ＯＳ）を介して実行したリクエストに対する１以上の応答に基づき、前記プログラムがＢＬＵＥＴＯＯＴＨで通信できるデバイスに接続することを許可するかを確認するための、該１以上の応答に含まれる１以上のデバイスの情報を含むプロンプトを表示する表示手段と、
前記プロンプトでの選択に対応する選択デバイスに対する該デバイスの識別子を取得するための第２命令を実行する第２実行手段と、
前記第２命令に応じて前記ウェブブラウザーが前記ＯＳを介して実行したリクエストに対する前記選択デバイスからの応答に含まれる識別子を、前記サーバーに対して送信する送信手段、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブアプリケーションが無線通信を利用して機器情報を取得する技術に関する。
【背景技術】
【０００２】
近年、ＩＮＴＥＲＮＥＴ  ＯＦ  ＴＨＩＮＧＳ（ＩＯＴ）と呼ばれるインターネットに接続する能力を備えたデバイスが急速に成長・増加している。ＩＯＴデバイスの１つのユースケースとしては、デバイスが取得したセンサデータや、デバイス自体・各パーツのステータスなどを、ウェブサーバーに送信し、リモートでデバイスを監視することである。
【０００３】
例えば、ＩＯＴデバイスとしてのプリンターにおけるユースケースとして、印刷に必須となるトナー・用紙などの消耗品の残量などをリモートで監視することが可能である。プリンターは、消耗品の残量レベルがＬＯＷになったら、ウェブサーバーにアラートを送信・通知することができる。この仕組みを活用すれば、ウェブサーバー側で消耗品残量レベルのＬＯＷを検知したときに、プリンターのユーザーに対し、プロアクティブに新しい消耗品を自動配送することができる。
【０００４】
このような消耗品の残量検知・自動配送のようなユースケースを実現するには、例えば以下のような構成が必要となる。オンラインショッピングＷＥＢサイトなどで、ユーザーに消耗品自動配送契約を申し込んでもらい、そのユーザーが使用しているプリンターをウェブサーバーに登録し監視対象とする。ウェブサーバーに登録する際に、プリンターごとにユニークな識別子としてシリアル番号を使用する。自動配送契約のユーザーと、プリンターのシリアル番号が関連付けられることにより、残量レベルＬＯＷを検出したシリアル番号のプリンターのユーザーである契約者に消耗品を配送することができる。
【０００５】
また、特許文献１では、プリンタを販売した販売店のコンピューターからプリンタのシリアルナンバーと販売店コードとを含む機器情報を機器情報データベースに登録し、該プリンタについての消耗品の受注を受け付けた際に、その受注をシリアルナンバーから特定される販売店に通知するシステムが開示されている。また、プリンタのシリアルナンバーの入力方法として、シリアルナンバーをコード化したコード（例えば、バーコード）を販売店のコンピューターに接続された読み取り機により読み取らせることで実現することが開示されている。専用の読み取り機により読み取らせることを前提としており、汎用性が低いとはいえる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−８６６８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、ＩＯＴデバイスや、該ＩＯＴデバイスを登録したいウェブサイトにウェブブラウザーを用いてアクセスしているコンピューターは、ＢＬＵＥＴＯＯＴＨ（登録商標）などの標準の無線通信の機能に対応している場合がある。従って、このような機能を利用することにより、コンピューターがＩＯＴデバイスからＩＯＴデバイスのユニークな識別子を取得し、ウェブサイトに登録する仕組みが望まれる。
【０００８】
ここで、コンピューターからＢＬＵＥＴＯＯＴＨ（ＢＴ）デバイスを使用するには、ＯＰＥＲＡＴＩＮＧ  ＳＹＳＴＥＭ（ＯＳ）のＢＴデバイス管理機能からペアリング・接続する必要があった。また、専用のデバイスドライバーを必要とするデバイスの場合は、さらに、別途ドライバーを入手・ＯＳに対してインストールする必要があった。この場合には、ＯＳ経由で取得したＢＴデバイスの情報を、ウェブサイトに手動で登録することになる。
【０００９】
さらに、前述のウェブサイトにおいてＩＯＴデバイスのユニークな識別子を自動取得するウェブアプリケーションを提供することも可能である。しかしながら、ウェブアプリケーションからコンピューターに接続されたＢＴデバイスの情報読み出しなどのために利用するには、次のような煩雑な手間があった。
【００１０】
まずは、ＢＴデバイスのためのＯＳ機能にアクセス可能なブラウザープラグインを作成して、プラグインをウェブブラウザーにインストールする。さらに、該プラグインにＯＳにインストールされたドライバーを利用するなどの実行許可を与える必要がある。ＯＳやブラウザーの種類が異なれば、それぞれに応じてブラウザープラグインを用意する必要がある。提供側の手間としては、さらに、ウェブアプリケーションを、各ブラウザープラグインを利用環境に従い区別して利用するようにプログラムする必要がある。
【００１１】
本発明は、従来よりも手間が少ない、ウェブアプリケーションを用いたＢＴデバイスの識別子などの機器情報を登録できる仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述の課題を解決するために本発明の情報処理装置は、ウェブブラウザーが動作し、該ウェブブラウザーでサーバーが提供するウェブアプリケーションを実行する情報処理装置であって、
前記ウェブアプリケーションが提供する画面を介してＢＬＵＥＴＯＯＴＨを用いた探索が指示された場合に、前記情報処理装置にＢＬＵＥＴＯＯＴＨで通信できるデバイスを探索する第１命令を実行する第１実行手段と、前記第１命令に応じて前記ウェブブラウザーが前記情報処理装置のＯＰＥＲＡＴＩＮＧ  ＳＹＳＴＥＭ（ＯＳ）を介して実行したリクエストに対する１以上の応答に基づき、前記ウェブアプリケーションがＢＬＵＥＴＯＯＴＨで通信できるデバイスに接続することを許可するかを確認するための、該１以上の応答に含まれる１以上のデバイスの情報を含むプロンプトを表示する表示手段と、前記プロンプトでの選択に対応する選択デバイスに対する該デバイスの識別子を取得するための第２命令を実行する第２実行手段と、前記第２命令に応じてＢＬＵＥＴＯＯＴＨでの通信を用いて前記ウェブブラウザーが前記ＯＳを介して実行したリクエストに対する前記選択デバイスからの応答に含まれる識別子を、前記サーバーに対して送信する送信手段と、を有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ウェブアプリケーションを用いて、ＢＴデバイスの識別子などの機器情報をウェブサイト側に簡単に登録できる仕組みを提供できる。
【図面の簡単な説明】
【００１４】
【図１】本発明のネットワークシステムの構成例を示す図
【図２】情報処理装置のハードウェアの構成例を示す図
【図３】システム内の各装置のソフトウェアおよびハードウェアの構成例を示す図
【図４】ウェブアプリケーションを実行するブラウザーが提供する画面例（１）
【図５】ウェブアプリケーションを実行するブラウザーが提供する画面例（２）
【図６】ウェブアプリケーションを含むシステム内の処理を説明するフローチャート
【図７】ウェブアプリケーションを実行するブラウザーが提供する画面例（３）
【図８】応用例１に係る追加処理を説明するフローチャート
【図９】ウェブアプリケーションを実行するブラウザーが提供する画面例（４）
【図１０】応用例２に係る追加処理を説明するフローチャート
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１６】
図１は、本発明を実施するためのシステム構成およびネットワーク構成の一例を示している。１０１は、インターネット・イントラネットなどのネットワークである。１０５は、プライベートネットワークあるいはローカルエリアネットワーク（ＬＡＮ）などのネットワークである。１０５は、コンピューター等の機器を接続する末端のネットワークであるが、有線通信のネットワークに限らず、無線ＬＡＮや携帯電話通信ネットワークなどの無線通信網の場合もある。１１１はコンピューターである。コンピューター１１１としては、パーソナルコンピューター、ラップトップコンピューター、タブレットコンピューター、スマートフォンなどの形態・種別が存在する。１２１はネットワークを介してアプリケーションを提供するサーバーである。
【００１７】
１３１は、コンピューター１１１と有線及び無線の少なくともいずれかで接続可能なＩＯＴデバイスである。また、デバイス１３１は、ネットワーク１０１、１０５を介して、サーバー１２１とも通信可能である。デバイス１３１の一例として、本実施例ではプリンターを例示して説明する。デバイス１３１としては、家電製品やスマート音声アシスタントデバイス、３次元プリンターなどであっても本発明を適用できる。
【００１８】
１３５は、コンピューター１１１とデバイス１３１を接続する無線通信接続である。本実施例では、ＢＬＵＥＴＯＯＴＨ接続を例示して説明する。以降、コンピューター１１１に対してＢＬＵＥＴＯＯＴＨ接続され、情報読み出しなどの操作対象となるデバイスをＢＴデバイスとも呼ぶ場合がある。
【００１９】
本発明では、ウェブブラウザーが動作するコンピューター１１１が、ＷＥＢ  ＢＬＵＥＴＯＯＴＨという技術を利用することを想定している。この技術は、ＷＯＲＬＤ  ＷＩＤＥ  ＷＥＢ  ＣＯＮＳＯＲＴＩＵＭに新しいＷＥＢ標準の提案されている技術である。ＷＥＢ  ＢＬＵＥＴＯＯＴＨでは、従来のデバイスドライバー相当をＪＡＶＡＳＣＲＩＰＴ（登録商標）プログラムとして、アドホックにダウンロード・使用でき、ウェブアプリケーションからコンピューターに接続したＢＴデバイスにアクセス可能とすることを目的としている。
【００２０】
図２は、コンピューター１１１、サーバー１２１、デバイス１３１の情報処理装置のハードウェアの構成例を図示している。なお、サーバー１２１は、１台以上の情報処理装置や該情報処理装置上で実現される１台以上の仮想マシンで実現することも可能である。
【００２１】
２０２はネットワークインターフェースであり、ＬＡＮなどのネットワークに接続して、他のコンピューターやネットワーク機器との通信を行う。通信の方式としては、有線・無線のいずれでもよい。２０４は組込済みプログラムおよびデータが記録されているＲＯＭである。２０５は一時メモリ領域のＲＡＭである。２０６はＨＤＤやフラッシュメモリに代表されるような二次記憶装置（以降、記憶装置とも呼ぶ）である。２０３はＣＰＵであり、ＲＯＭ２０４、ＲＡＭ２０５、記憶装置２０６などから読み込んだプログラムを実行する。２０１はユーザーインターフェースであり、ディスプレイ、キーボード、マウス、ボタン、タッチパネルなどによる、情報や信号の入出力を行う。これらのハードウェアを備えないコンピューターは、リモートデスクトップやリモートシェルなどにより、他のコンピューターから接続・操作することも可能である。各部は入出力インターフェース２０７を介して接続されている。
【００２２】
デバイス１３１がプリンターである場合には、不図示のプリンターエンジンや、給紙、排紙のための構成、トナーなどの消耗品をエンジンに供給するための構成などが更に含まれることになる。デバイス１３１が他のＩＯＴデバイスであっても、交換可能な消耗品を利用するための構成がデバイス１３１内に含まれることになる。
【００２３】
図３は、本発明のネットワークシステム内の各装置のソフトウェア構成を示す図である。各ハードウェアにインストールされたソフトウェアは、それぞれＣＰＵ２０３で実行され、ネットワーク接続の矢印で図示するように、相互に通信可能な構成となっている。
【００２４】
３１１は、サーバー１２１にインストールされたウェブアプリケーションサーバーである。３１２は、ウェブアプリケーションサーバー３１１によって提供されるＷＥＢ  ＡＰＩ（ＡＰＰＬＩＣＡＴＩＯＮ  ＰＲＯＧＲＡＭＭＩＮＧ  ＩＮＴＥＲＦＡＣＥ）である。３１３は、ウェブアプリケーションサーバー３１１によって提供されるＷＥＢ  ＵＩ（ＵＳＥＲ  ＩＮＴＥＲＦＡＣＥ）である。３１４は、ウェブアプリケーションサーバー３１１が使用するデータを保存・格納するデータストアである。ウェブアプリケーションサーバー３１１は、クライアントからのＨＴＴＰリクエストの内容に応じて、次のような応答を返す。ＷＥＢ  ＵＩ３１３がＨＴＭＬやＪＡＶＡＳＣＲＩＰＴなどのコンテンツファイルを応答したり、ＷＥＢ  ＡＰＩ３１２がデータストア３１４内のデータをリード、ライトして、結果をＸＭＬやＪＳＯＮデータで応答したりする。
【００２５】
３２１は、コンピューター１１１に備えられたＢＬＵＥＴＯＯＴＨ接続・通信を行うＢＬＵＥＴＯＯＴＨコントローラーである。３２２は、コンピューター１１１にインストールされたＯＰＥＲＡＴＩＮＧ  ＳＹＳＴＥＭ（以降、ＯＳ）である。ＯＳ３２２は、コンピューター１１１の各ハードウェアを管理・制御し、各種プログラムの実行管理を行う基本ソフトウェアである。３２３は、ＯＳ３２２内に備えるＢＬＵＥＴＯＯＴＨプロトコル・スタックである。ＢＬＵＥＴＯＯＴＨプロトコルを利用するためのプログラムモジュール、ライブラリー、ＡＰＩなどを備える。３２４は、ＢＬＵＥＴＯＯＴＨコントローラードライバーである。ＢＬＵＥＴＯＯＴＨプロトコル・スタック層３２３からの命令で、ＢＬＵＥＴＯＯＴＨコントローラー３２１を駆動・制御する。
【００２６】
３２５は、コンピューター１１１にインストールされたウェブブラウザーである。ブラウザー３２５は、ＨＴＭＬやＪＡＶＡＳＣＲＩＰＴを表示・実行するアプリケーションである。３２６は、ブラウザー上で実行されるＪＡＶＡＳＣＲＩＰＴである。前記ブラウザーは、ネットワークを介して、サーバー１２１で実行されるウェブアプリケーションサーバー３１１からＨＴＭＬ，  ＪＡＶＡＳＣＲＩＰＴ３２６等を取得・実行・表示する。３２７は、前記ブラウザーが備えるＢＲＯＷＳＥＲ  ＡＰＩである。ＢＲＯＷＳＥＲ  ＡＰＩ３２７は、ブラウザー上で実行されるＪＡＶＡＳＣＲＩＰＴ３２６からＯＳ３２２が提供する機能にアクセスできるように設けられているＡＰＩである。
【００２７】
３３１は、デバイス１３１に備えられたＢＬＵＥＴＯＯＴＨ接続・通信を行うＢＬＵＥＴＯＯＴＨコントローラーである。３３２は、デバイス１３１にインストールされたＢＬＵＥＴＯＯＴＨコントローラードライバーである。ＢＬＵＥＴＯＯＴＨコントローラードライバー３３２は、ＢＬＵＥＴＯＯＴＨコントローラー３３１を駆動・制御する。３３３は、アクセス制御部である。３３４は、デバイス１３１内のデータ記憶部である。アクセス制御部３３３は、ＢＬＵＥＴＯＯＴＨ接続からの通信内容を判断し、データ記憶部３３４へのアクセス許可を制御し、必要なデータの読み込み・書き込みを制御する。３３５は、ウェブアプリケーションサーバー３１１のＷＥＢ  ＡＰＩ３１２に、デバイス内のデータを送信するデータ通信部である。ネットワーク１０５、１０１を介して、サーバー１２１にデバイス１３１のデータを送信し、収集する。例えば、デバイス１３１がプリンターの場合、プリンターのシリアル番号、モデル名、プリンターのライフタイム印刷カウント、消耗品の残量、エラー発生の有無・エラーコードなどを収集して、プリンターのリモート監視を可能とする。
【００２８】
図４、５に、サーバー１２１が提供するウェブアプリケーションのブラウザー３２５での実行・表示例を示す。まず、コンピューター１１１から、サーバー１２１にデバイス１３１を監視対象として登録する手順を説明する。
【００２９】
４００は、サーバー１２１に接続して、ウェブアプリケーションサーバー３１１から取得したウェブアプリケーションを構成するＨＴＭＬ，ＪＡＶＡＳＣＲＩＰＴを表示・実行しているブラウザーのウィンドウである。４０１が、ブラウザーで開かれているウェブアプリケーションサーバー３１１のＵＲＬである。４０２は、登録対象デバイスのモデル名を選択するコントロールである。４０３は、登録対象デバイスのシリアル番号を入力するコントロールである。４０４は、前記選択・入力したデバイス情報をウェブアプリケーションサーバー３１１に送信・登録するためのボタンコントロールである。デバイス情報を手動で入力する場合は、４０２、４０３のコントロールを使用して、ユーザーが入力する。
【００３０】
しかしながら、冒頭の課題で説明したように、デバイスをユニークに識別するためのシリアル番号で誤入力があると、サーバー１２１に正しい情報が登録されないという問題点がある。そのために、本発明では、デバイス情報の自動入力を実行する開始手段として、「ＢＬＵＥＴＯＯＴＨで探索」というボタン４０５を追加で提供する。
【００３１】
４１０は、ウェブアプリケーションサーバー３１１のドメインが、コンピューター１１１のＢＬＵＥＴＯＯＴＨ通信レンジ内に存在するデバイスを、ＷＥＢ  ＢＬＵＥＴＯＯＴＨで探索・接続するための許可プロンプトである。４１１は、ＷＥＢ  ＢＬＵＥＴＯＯＴＨの接続先デバイスの選択肢である。４１２は、接続先を選択するリストコントロールである。リスト４１２ではＢＴデバイスのデバイス名が列挙されている。４１３は、前記ＷＥＢ  ＢＬＵＥＴＯＯＴＨの接続許可操作を実行するボタンコントロールである。
【００３２】
５００は、ＷＥＢ  ＢＬＵＥＴＯＯＴＨの接続・通信で取得したデバイス情報が自動入力された画面である。５０１は、自動入力されたモデル名を表示するコントロールである。５０２は、自動入力されたシリアル番号を表示するコントロールである。ユーザーの誤入力・誤操作を防ぐために、自動入力後は５０１、５０２のコントロールを操作不可に設定してもよい。５０４は、４０４に同様の登録ボタンコントロールである。
【００３３】
５１０は、登録ボタン５０４押下後、登録結果を表示する画面である。登録が成功、または、失敗したかを表示してユーザーに通知する。
【００３４】
図６は、ネットワークシステム上での、図４、５で説明したウェブアプリケーションを利用した処理を説明するフローチャートである。
【００３５】
Ｓ６０１で、ブラウザー３２５が起動され、ウェブアプリケーションのＵＲＬ４０１が指定される。
【００３６】
Ｓ６０２で、ブラウザー３２５は、ウェブアプリケーションサーバー３１１に、ＷＥＢコンテンツリクエストを送信する。Ｓ６０３で、ウェブアプリケーションサーバー３１１は、ウェブアプリケーションを構成するＨＴＭＬ／ＪＡＶＡＳＣＲＩＰＴ等のコンテンツを応答する。Ｓ６０４で、ブラウザー３２５は、受信したＨＴＭＬ／ＪＡＶＡＳＣＲＩＰＴを表示・実行し、前述した画面４００を表示する。
【００３７】
Ｓ６０５で、ブラウザー３２５は、画面４００内の「ＢＬＵＥＴＯＯＴＨで探索」ボタン４０５の押下を検出する。ユーザーは、ボタン操作によりＢＴデバイスのネットワーク上でのスキャン指示を出すことができる。
【００３８】
Ｓ６０６で、ブラウザー３２５は、ＪＡＶＡＳＣＲＩＰＴ３２６のプログラム内から、ＢＲＯＷＳＥＲ  ＡＰＩ３２７に対してＢＬＵＥＴＯＯＴＨ．ＲＥＱＵＥＳＴＤＥＶＩＣＥを命令する。Ｓ６０７で、ブラウザー３２５は、コンピューター１１１にＢＬＵＥＴＯＯＴＨ接続可能なデバイスを探索するために、ＯＳ３２２を介してＢＬＵＥＴＯＯＴＨを用いたリクエストの発信を制御する。Ｓ６０８で、リクエストを受信したデバイスは、ＲＥＱＵＥＳＴＤＥＶＩＣＥ応答を返す。ブラウザー３２５は、ＯＳ３２２を介して応答があったＢＴデバイスの情報（デバイス名、ベンダ名など）を保持する。
【００３９】
Ｓ６０９で、ブラウザー３２５は、応答があったデバイスに対してＰＥＲＭＩＳＳＩＯＮ．ＳＴＡＴＥが許可済みであるかをチェックする。Ｓ６１０で、今回が初回接続の場合には、ブラウザー３２５は、前述の画面４１０内のリスト４１２にデバイス情報を表示する。Ｓ６１１で、ブラウザー３２５は、ユーザーからの接続対象デバイスの選択を受け付ける。さらに、ブラウザー３２５は、接続許可ボタン４１３の押下を検出した場合に、ウェブアプリケーションに対して、該選択に対応するＢＴデバイスへのＷＥＢ  ＢＬＵＥＴＯＯＴＨ接続を許可する。ここで、選択されたＢＴデバイス（選択デバイス）の例が、デバイス１３１とする。Ｓ６１２で、ブラウザー３２５は、接続許可プロンプト４１１にて、接続が許可されたかを判定する。接続が許可されなかった場合は、処理フローを終了する。接続が許可された場合は、次ステップに進む。
【００４０】
Ｓ６１３で、ＪＡＶＡＳＣＲＩＰＴ３２６のプログラム内から、ＢＲＯＷＳＥＲ  ＡＰＩ３２７に対して、接続対象デバイスを指定してＤＥＶＩＣＥ．ＧＡＴＴ．ＣＯＮＮＥＣＴ命令を出す。Ｓ６１４で、ブラウザー３２５は、ＯＳ３２２を介して、デバイス１３１にＢＬＵＥＴＯＯＴＨ接続ペアリング要求を送る。
【００４１】
Ｓ６１５で、ＯＳ３２２は、ＢＬＵＥＴＯＯＴＨペアリング確認プロンプト画面を表示する。Ｓ６１６で、ユーザーは、ペアリング許可操作を実行する。Ｓ６１７で、ＯＳ３２２は、デバイス１３１にペアリング要求を送信する。Ｓ６１８で、デバイス１３１は、ＯＳ３２２にペアリング結果を応答する。Ｓ６１９で、ＯＳ３２２は、ブラウザー３２５にペアリング結果を応答する。
【００４２】
Ｓ６２０で、ブラウザー３２５は、ウェブアプリケーションの識別情報、接続許可されたデバイス１３１の識別情報（デバイス名）と、ＰＥＲＭＩＳＳＩＯＮ．ＳＴＡＴＥが許可済みであることを示す値とを紐付けて、記憶装置２０６に保存する。この紐付け情報はブラウザー３２５で管理され、次回の接続以降は、Ｓ６０９のタイミングで、ＰＥＲＭＩＳＳＩＯＮ．ＳＴＡＴＥのチェックで許可済みのデバイスとして保存してあれば、Ｓ６１０のプロンプトの表示による選択処理を省略できる。
【００４３】
Ｓ６２１で、ＪＡＶＡＳＣＲＩＰＴ３２６のプログラム内から、ＢＲＯＷＳＥＲ  ＡＰＩ３２７に対して、デバイス１３１が提供するＢＬＵＥＴＯＯＴＨのＳＥＲＶＩＣＥ  ＩＤＥＮＴＩＦＩＥＲを要求する。Ｓ６２２で、ブラウザー３２５は、ＯＳ３２２を介して、デバイス１３１にＳＥＲＶＩＣＥ  ＩＤＥＮＴＩＦＩＥＲを問い合わせる。Ｓ６２３で、デバイス１３１は、提供可能なＳＥＲＶＩＣＥ  ＩＤＥＮＴＩＦＩＥＲを応答する。例えば、デバイス１３１がプリンターの場合、プリンターサービスを示すＳＥＲＶＩＣＥ  ＩＤＥＮＴＩＦＩＥＲが取得できるとする。
【００４４】
Ｓ６２４で、ＪＡＶＡＳＣＲＩＰＴ３２６のプログラム内から、ＢＲＯＷＳＥＲ  ＡＰＩ３２７に対して、デバイス１３１が提供する前記ＳＥＲＶＩＣＥ  ＩＤＥＮＴＩＦＩＥＲで取得可能なＣＨＡＲＡＣＴＥＲＩＳＴＩＣ一覧を要求する。Ｓ６２５で、ブラウザー３２５は、ＯＳ３２２を介して、デバイス１３１に前記ＳＥＲＶＩＣＥ  ＩＤＥＮＴＩＦＩＥＲのＣＨＡＲＡＣＴＥＲＩＳＴＩＣ一覧を要求する。Ｓ６２６で、デバイス１３１は、提供可能なＣＨＡＲＡＣＴＥＲＩＳＴＩＣ一覧を応答する。例えば、プリンターサービスでは、ＣＨＡＲＡＣＴＥＲＩＳＴＩＣとして、シリアル番号、モデル名、その他、プリンターのライフタイム印刷カウント、消耗品の残量、エラー発生の有無・エラーコードなどが取得できるとする。
【００４５】
Ｓ６２７で、ＪＡＶＡＳＣＲＩＰＴ３２６のプログラム内から、ＢＲＯＷＳＥＲ  ＡＰＩ３２７に対して、デバイス１３１が提供する前記ＣＨＡＲＡＣＴＥＲＩＳＴＩＣのうち、デバイス毎にユニークな識別子としてのシリアル番号、モデル名のＲＥＡＤリクエストを命令する。Ｓ６２８で、ブラウザー３２５は、ＯＳ３２２を介して、デバイス１３１に前記指定されたＣＨＡＲＡＣＴＥＲＩＳＴＩＣのＲＥＡＤリクエストを送信する。Ｓ６２９で、デバイス１３１は、アクセス制御部３３３を介して、データ記憶部３３４から指定されたデータを取得し、前記ＣＨＡＲＡＣＴＥＲＩＳＴＩＣデータを応答する。
【００４６】
Ｓ６３０で、ＪＡＶＡＳＣＲＩＰＴ３２６のプログラム内で、ブラウザー３２５により受信できたデータからシリアル番号、モデル名を画面４００のコントロール４０２、４０３に自動入力し、画面５００を表示する。画面５００では、値が入力済みのコントロール５０１、５０２が表示される。
【００４７】
Ｓ６３１で、ブラウザー３２５は、画面５００を介したユーザーによる登録ボタン５０３の押下を検出する。Ｓ６３２で、ＪＡＶＡＳＣＲＩＰＴ３２６のプログラム内で、ＷＥＢサイトへのデバイス登録を実行する。具体的には、ブラウザー３２５から、ウェブアプリケーションサーバー３１１のＷＥＢ  ＡＰＩ３１２に、画面５００に対して自動入力されたシリアル番号、モデル名を含むデバイス登録リクエストを送信する。ウェブアプリケーションサーバー３１１は、デバイス登録リクエストの内容に基づき、データストア３１４にシリアル番号などの必要なデータを書き込む。その後、Ｓ６３３で、ウェブアプリケーションサーバー３１１は、デバイス登録リクエストの処理に成功したか失敗したかを、ＡＰＩの応答としてブラウザー３２５に返す。Ｓ６３４で、ブラウザー３２５を介して、デバイス登録の結果を示す画面５１０が表示される。
【００４８】
（応用例１）
図７、８を用いて、サーバー１２１が提供するウェブアプリケーションのブラウザー３２５での実行・表示の別の例を示す。
【００４９】
図７の７００は、前述の画面４１０で示した許可プロンプト画面の別の例である。７０１は、ＷＥＢ  ＢＬＵＥＴＯＯＴＨの接続先デバイスの選択肢である。７０２は、接続先を選択するリストコントロールである。
【００５０】
図８は、システム内におけるウェブアプリケーションを含む処理を説明するフローチャートである。図６の一部を拡張した処理を示している。
【００５１】
前述の画面４１０では、コンピューター１１１とＢＬＵＥＴＯＯＴＨ通信可能なデバイスの全てが、接続先の候補として４１１に一覧表示されてしまう。例えば、プリンターを探索したいのに、スマートフォンやデジタルカメラなど、多種のＢＴデバイスが一覧に表示される可能性がある。さらには、探索対象がプリンターであっても、ウェブアプリケーションサーバー３１１との接続・通信能力を持たないプリンターを候補から除外したい場合もある。リスト４１２にプリンター名が表示されれば、ユーザーは当該プリンターがＷＥＢサイトに登録可能であると誤解する懸念がある。仮にＷＥＢサイトへの登録が成功したとしても、選択したプリンターが接続・通信能力を持たない場合、ウェブアプリケーションサーバー３１１でプリンターのデータが収集できないため意味がない。
【００５２】
そのため、図８の例では、接続許可プロンプト画面において、サーバー１２１への接続・通信能力を持つプリンターを示す特定のタイプのデバイスのみを選択肢として提供する方法を説明する。
【００５３】
具体的には、Ｓ６０４以降の代替ステップとして、以下を実行する。
【００５４】
Ｓ８０１で、ＪＡＶＡＳＣＲＩＰＴ３２６のプログラム内で、ＷＥＢ  ＡＰＩ３１２に前述の特定のタイプ（モデル名）を取得するための取得要求を送信する。Ｓ８０２で、ＷＥＢ  ＡＰＩ３１２は、接続・通信能力を持つデバイスのモデル名の一覧を応答する。
【００５５】
Ｓ８０３は、前述のステップＳ６０５と同様である。Ｓ８０４では、前述のステップＳ６０６同様、ブラウザー３２５は、ＪＡＶＡＳＣＲＩＰＴ３２６のプログラム内から、ＢＲＯＷＳＥＲ  ＡＰＩ３２７に対してＢＬＵＥＴＯＯＴＨ．ＲＥＱＵＥＳＴＤＥＶＩＣＥを命令する。前述したＳ６０６と異なる点は、ＲＥＱＵＥＳＴＤＥＶＩＣＥ命令内のＦＩＬＴＥＲ条件として、Ｓ８０２で取得したモデル名一覧を設定することである。Ｓ８０５〜８０７は、前述のステップＳ６０７〜６０９と同様である。
【００５６】
Ｓ８０８では、ウェブアプリケーションからの初回接続の場合、図７に示すにように接続候補となるＢＴデバイスのリストを表示する。ここでは、ＦＩＬＴＥＲ条件に従い、ウェブアプリケーションサーバー３１１に接続可能なデバイスの候補がリスト７０２に列挙される。Ｓ８０９は、前述のＳ６１１と同様である。以降は、Ｓ６１２のステップへと続く。
【００５７】
（応用例２）
図９、１０を用いて、サーバー１２１が提供するウェブアプリケーションのブラウザー３２５でのデバイス登録実行処理に加えて、デバイス１３１からサーバー１２１への通信開始を設定する方法をさらに説明する。
【００５８】
サーバー１２１にデバイス１３１のシリアル番号を登録した後には、デバイス１３１からサーバー１２１へのデータ送信の開始のための手続きを行う必要がある。通常、この操作をするためには、デバイス１３１本体の操作部上の画面を操作して、データ送信を開始するための手続きを行う必要がある。しかし、本発明では、小型のＩＯＴデバイスなども想定しているので、手続きのために十分な視認性をもつ画面をもたないデバイス、もしくは画面を備えないデバイスも存在する。
【００５９】
そこで、ここでは、前述した登録処理で用いたＢＬＵＥＴＯＯＴＨリンクを用いて、通信開始を引き続き設定する手法について説明する。
【００６０】
９００は、コンピューター１１１のブラウザー３２５が、サーバー１２１上のウェブアプリケーションサーバー３１１から取得したウェブアプリケーションを構成するＨＴＭＬ，ＪＡＶＡＳＣＲＩＰＴを表示・実行しているウィンドウである。９０１が、ブラウザーで開かれているウェブアプリケーションサーバー３１１のＵＲＬである。９０２は、前記説明した接続済みのＷＥＢ  ＢＬＵＥＴＯＯＴＨ通信で取得したデバイス１３１のモデル名を表示するフィールドである。９０３は、同じく取得したシリアル番号を表示するフィールドである。画面９００の例では、デバイス１３１からインターネット上のサーバー１２１にデータ送信を行う旨について、データ送信同意文を表示している。同意の内容としては、送信先、送信データの種類、用途などの契約事項が含まれる。これに、ユーザーが同意したことにより、デバイス１３１からのウェブアプリケーションサーバー３１１への通信の有効化に許諾されたこととなる。これに同意しない場合には、デバイス１３１からの通信を開始させない。９０５は、前記データ送信同意文に同意して、通信を有効化するボタンである。９０６は、同意せずに操作をキャンセルするボタンである。９１０は、データ送信設定の結果表示画面である。
【００６１】
図１０は、ウェブアプリケーションを含むシステム内の処理を説明するフローチャートである。
【００６２】
Ｓ１００１で、ブラウザー３２５が起動され、ウェブアプリケーションのＵＲＬ９０１が指定される。これは、画面５１０で提供されるＵＲＬリンク（不図示）によるナビゲーションでもよい。
【００６３】
Ｓ１００２で、ブラウザー３２５は、ウェブアプリケーションサーバー３１１に、ＷＥＢコンテンツリクエストを送信する。Ｓ１００３で、ウェブアプリケーションサーバー３１１は、ウェブアプリケーションを構成するＨＴＭＬ／ＪＡＶＡＳＣＲＩＰＴ等のコンテンツを応答する。Ｓ１００４で、ブラウザー３２５は、受信したＨＴＭＬ／ＪＡＶＡＳＣＲＩＰＴを表示・実行する。この段階では、画面９００の中の９０１〜９０３までの情報が提供され、データ送信に係る同意文やボタン９０５，９０６は提供されていない。
【００６４】
Ｓ１００５で、ＪＡＶＡＳＣＲＩＰＴ３２６のプログラム内から、ＢＲＯＷＳＥＲ  ＡＰＩ３２７に対して、データ送信の同意状態を取得するためのＲＥＡＤリクエストを命令する。Ｓ１００６で、ブラウザー３２５は、ＯＳ３２２を介して、デバイス１３１にデータＲＥＡＤリクエストを送信する。Ｓ１００７で、デバイス１３１は、データ送信の同意状態を示す値を含むデータを応答する。
【００６５】
Ｓ１００８で、ＪＡＶＡＳＣＲＩＰＴ３２６のプログラム内で、応答されたデータ送信の同意状態を確認し、同意済みであるか否かを判定する。すでに同意済みであると判定された場合は、画面９１０を提供した上で、図１０で示す処理を終了する。同意済みでないと判定された場合は、後続のステップを実行する。
【００６６】
Ｓ１００９で、ＪＡＶＡＳＣＲＩＰＴ３２６のプログラム内から、ＢＲＯＷＳＥＲ  ＡＰＩ３２７に対して、同意文取得のＲＥＡＤリクエストを命令する。Ｓ１０１０で、ブラウザー３２５は、ＯＳ３２２を介して、デバイス１３１にデータＲＥＡＤリクエストを送信する。Ｓ１０１１で、デバイス１３１は、同意文を含むデータを応答する。Ｓ１０１２で、ブラウザー３２５は、受信した同意文を画面９００内に表示する。本例では、同意文をデバイス１３１に保存されたものから取得したが、ウェブアプリケーションサーバー３１１からＨＴＴＰなどのプロトコルで取得する構成としてもよい。
【００６７】
Ｓ１０１３で、ブラウザー３２５は、画面９００に対するユーザー操作を検出する。Ｓ１０１４で、ＪＡＶＡＳＣＲＩＰＴ３２６のプログラム内で、検出されたユーザー操作が同意か否かを判断する。ユーザーが同意しなかった場合は処理がキャンセルされ、図１０で示す処理が終了する。ユーザーがボタン９０５を押下して同意したと判断された場合には、後続のステップに進む。
【００６８】
Ｓ１０１５で、ＪＡＶＡＳＣＲＩＰＴ３２６のプログラム内から、ＢＲＯＷＳＥＲ  ＡＰＩ３２７に対して、同意状態が同意済みであることを設定するためのＷＲＩＴＥリクエストを命令する。Ｓ１０１６で、ブラウザー３２５は、ＯＳ３２２を介して、デバイス１３１にデータＷＲＩＴＥリクエストを送信する。Ｓ１０１７で、デバイス１３１は、リクエストされた同意状態をデータ記憶部３３４に記録し、ＷＲＩＴＥリクエストの結果を応答する。Ｓ１０１８で、ブラウザー３２５は、受信した結果に従い、画面９１０に表示する。
【００６９】
Ｓ１０２１で、デバイス１３１は、デバイス内のデータをサーバー１２１に送信を開始する。送信するデータには、デバイス１３１のシリアル番号、ネットワークアドレス、消耗品に関するステータス、データ送信に関する同意状態が含まれる。これら情報をＷｅｂ  ＡＰＩ３１２を介して受信したウェブアプリケーションサーバー３１１は、消耗品に関するステータスを監視する。ウェブアプリケーションサーバー３１１は、必要に応じて、デバイス登録時にシリアル番号に紐づけられるユーザーの住所などに消耗品を自動で配送するための処理を実行する。
【００７０】
本発明では、ＷＥＢ  ＢＬＵＥＴＯＯＴＨの通信リンクを用いるウェブアプリケーションにより、デバイスの識別子（シリアル番号）を登録画面に自動入力してサーバーに正しく登録できるようになる。特に小型のＩＯＴ機器で、シリアル番号を調べるのが困難で、バーコードの印字などが難しい場合には、より効果的である。
【００７１】
（他の実施例）
本発明は、上述した実施形態を適宜組み合わせることにより構成された装置あるいはシステムやその方法も含まれるものとする。
【００７２】
ここで、本発明は、上述した実施形態の機能を実現する１以上のソフトウェア（プログラム）を実行する主体となる装置あるいはシステムである。また、その装置あるいはシステムで実行される上述した実施形態を実現するための方法も本発明の一つである。また、そのプログラムは、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給され、そのシステム或いは装置の１以上のコンピュータ（ＣＰＵやＭＰＵ等）によりそのプログラムが読み出され、実行される。つまり、本発明の一つとして、さらにそのプログラム自体、あるいは該プログラムを格納したコンピューターにより読み取り可能な各種記憶媒体も含むものとする。また、上述した実施形態の機能を実現する回路（例えば、ＡＳＩＣ）によっても、本発明は実現可能である。
【符号の説明】
【００７３】
１１１  コンピューター
１２１  サーバー
１３１  デバイス
３２５  ブラウザー
【図１】
2020067916.tif 000003
【図２】
2020067916.tif 000004
【図３】
2020067916.tif 000005
【図４】
2020067916.tif 000006
【図５】
2020067916.tif 000007
【図６】
2020067916.tif 000008
【図７】
2020067916.tif 000009
【図８】
2020067916.tif 000010
【図９】
2020067916.tif 000011
【図１０】
2020067916.tif 000012