(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-12
(45)【発行日】2024-04-22
(54)【発明の名称】情報処理装置、方法、及びプログラム
(51)【国際特許分類】
H04L 67/00 20220101AFI20240415BHJP
G06F 3/12 20060101ALI20240415BHJP
【FI】
H04L67/00
G06F3/12 305
G06F3/12 326
G06F3/12 331
G06F3/12 336
(21)【出願番号】P 2022200910
(22)【出願日】2022-12-16
(62)【分割の表示】P 2018201270の分割
【原出願日】2018-10-25
【審査請求日】2023-01-12
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】松田 浩太郎
【審査官】中川 幸洋
(56)【参考文献】
【文献】特開2018-007039(JP,A)
【文献】特開2013-250915(JP,A)
【文献】特開2015-225456(JP,A)
【文献】大澤 文孝,ブラウザからBLEデバイスを操作できる「Web Bluetooth API」を使ってみよう,I/O 第42巻 第11号 ,日本,株式会社工学社,2017年11月01日,第42巻
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/00
G06F 3/12
(57)【特許請求の範囲】
【請求項1】
ウェブブラウザーが動作する情報処理装置であって、
サーバーから提供されたコンテンツに基づき前記ウェブブラウザーが表示する
デバイスの識別子のユーザーによる入力操作が可能な画面に対する当該入力操作とは異なる所定の操作を受け付けた後に、前記情報処理装置のOperating System(OS)を介して見つかった所定の通信方式で通信できるデバイスの識別子を当該デバイスから前記所定の通信方式での通信を用いて取得する処理を、前記コンテンツに含まれるプログラムに基づき実行する実行手段と、
前記ウェブブラウザーが表示する画面で、前記OSを介して実行した前記処理に基づき取得された識別子を表示させる表示制御手段と、
前記ウェブブラウザーが前記OSを介して実行した前記処理に基づき取得された識別子を、
前記入力操作なしに、前記サーバーに対して送信する送信手段と、を有
し、
前記所定の操作を受け付けた後に前記ウェブブラウザーにより、前記コンテンツに対応するウェブアプリケーションが前記所定の通信方式でデバイスに接続することを許可するかを確認するためのプロンプトが表示され、前記実行手段は該プロンプトでの選択に対応する選択デバイスに対して前記識別子を取得する前記処理を実行することを特徴とする情報処理装置。
【請求項2】
前記実行手段は、さらに、前記所定の操作に応じて、前記情報処理装置が前記所定の通信方式で通信できるデバイスからの応答を受け取るためのリクエストの送信を実行し、
1以上の前記応答があった場合に、前記ウェブブラウザーにより前記プロンプトが表示されることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記所定の通信方式は、Bluetoothであることを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記プロンプトで許可の対象としてデバイスが選択されたことに応じて、
前記処理を実行する前に該プロンプトでの選択に対応する選択デバイスとBluetoothでの通信のためのペアリングが実行されることを特徴とする請求項
3に記載の情報処理装置。
【請求項5】
前記サーバーに対する前記識別子の送信は、前記ウェブブラウザーが表示する画面に対するユーザーによる
前記入力操作とは異なる指示操作に応じて行われることを特徴とする請求項1に記載の情報処理装置。
【請求項6】
前記ウェブアプリケーションは前記サーバーが前記ウェブブラウザーに対して提供することを特徴とする請求項1に記載の情報処理装置。
【請求項7】
ウェブブラウザーが動作する情報処理装置における方法であって、
サーバーから提供されたコンテンツに基づき前記ウェブブラウザーが表示するデバイスの識別子のユーザーによる入力操作が可能な画面に対する当該入力操作とは異なる所定の操作を受け付けた後に、前記情報処理装置のOperating System(OS)を介して見つかった所定の通信方式で通信できるデバイスの識別子を当該デバイスから前記所定の通信方式での通信を用いて取得する処理を、前記コンテンツに含まれるプログラムに基づき実行する実行工程と、
前記ウェブブラウザーが表示する画面で、前記OSを介して実行した前記処理に基づき取得された識別子を表示させる表示制御工程と、
前記ウェブブラウザーが前記OSを介して実行した前記処理に基づき取得された識別子を、前記入力操作なしに、前記サーバーに対して送信する送信工程と、を有し、
前記所定の操作を受け付けた後に前記ウェブブラウザーにより、前記コンテンツに対応するウェブアプリケーションが前記所定の通信方式でデバイスに接続することを許可するかを確認するためのプロンプトが表示され、前記実行工程では該プロンプトでの選択に対応する選択デバイスに対して前記識別子を取得する前記処理が実行されることを特徴とする方法。
【請求項8】
ウェブブラウザーで実行される、サーバーから提供されたコンテンツに含まれ、Operating System(OS)とは異なるプログラムであって、
コンピュータを、前記コンテンツに基づき前記ウェブブラウザーが表示するデバイスの識別子のユーザーによる入力操作が可能な画面に対する当該入力操作とは異なる所定の操作を受け付けた後に、前記OSを介して見つかった所定の通信方式で通信できるデバイスの識別子を当該デバイスから前記所定の通信方式での通信を用いて取得する処理を、前記ウェブブラウザーに前記OSを介して行わせる手段と、
前記ウェブブラウザーが表示する画面で、前記OSを介して実行した前記処理に基づき取得された識別子を表示させる手段として機能させ、
前記所定の操作を受け付けた後に前記ウェブブラウザーにより、前記コンテンツに対応するウェブアプリケーションが前記所定の通信方式でデバイスに接続することを許可するかを確認するためのプロンプトが表示され、該プロンプトでの選択に対応する選択デバイスに対して前記識別子を取得する前記処理が実行され、
前記ウェブブラウザーが前記OSを介して実行した前記処理に基づき取得された識別子が、前記コンピュータから前記サーバーに対して、前記入力操作なしに送信されることを特徴とするプログラム。
【請求項9】
前記プログラムは、前記所定の操作に応じて、前記コンピュータが前記所定の通信方式で通信できるデバイスからの応答を受け取るためのリクエストを、前記ウェブブラウザーに前記OSを介して行わせる手段として機能させ、
1以上の前記応答があった場合に、前記ウェブブラウザーにより前記プロンプトが表示されることを特徴とする請求項8に記載のプログラム。
【請求項10】
前記所定の通信方式は、Bluetoothであることを特徴とする請求項8に記載のプログラム。
【請求項11】
前記プロンプトで許可の対象としてデバイスが選択されたことに応じて、前記処理を実行する前に該プロンプトでの選択に対応する選択デバイスとBluetoothでの通信のためのペアリングが実行されることを特徴とする請求項10に記載のプログラム。
【請求項12】
前記コンピュータから前記サーバーに対する前記識別子の送信は、前記ウェブブラウザーが表示する画面に対するユーザーによる前記入力操作とは異なる指示操作に応じて行われることを特徴とする請求項8に記載のプログラム。
【請求項13】
前記ウェブアプリケーションは前記サーバーが前記ウェブブラウザーに対して提供することを特徴とする請求項8に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ウェブアプリケーションが無線通信を利用して機器情報を取得する技術に関する。
【背景技術】
【0002】
近年、INTERNET OF THINGS(IOT)と呼ばれるインターネットに接続する能力を備えたデバイスが急速に成長・増加している。IOTデバイスの1つのユースケースとしては、デバイスが取得したセンサデータや、デバイス自体・各パーツのステータスなどを、ウェブサーバーに送信し、リモートでデバイスを監視することである。
【0003】
例えば、IOTデバイスとしてのプリンターにおけるユースケースとして、印刷に必須となるトナー・用紙などの消耗品の残量などをリモートで監視することが可能である。プリンターは、消耗品の残量レベルがLOWになったら、ウェブサーバーにアラートを送信・通知することができる。この仕組みを活用すれば、ウェブサーバー側で消耗品残量レベルのLOWを検知したときに、プリンターのユーザーに対し、プロアクティブに新しい消耗品を自動配送することができる。
【0004】
このような消耗品の残量検知・自動配送のようなユースケースを実現するには、例えば以下のような構成が必要となる。オンラインショッピングWEBサイトなどで、ユーザーに消耗品自動配送契約を申し込んでもらい、そのユーザーが使用しているプリンターをウェブサーバーに登録し監視対象とする。ウェブサーバーに登録する際に、プリンターごとにユニークな識別子としてシリアル番号を使用する。自動配送契約のユーザーと、プリンターのシリアル番号が関連付けられることにより、残量レベルLOWを検出したシリアル番号のプリンターのユーザーである契約者に消耗品を配送することができる。
【0005】
また、特許文献1では、プリンタを販売した販売店のコンピューターからプリンタのシリアルナンバーと販売店コードとを含む機器情報を機器情報データベースに登録し、該プリンタについての消耗品の受注を受け付けた際に、その受注をシリアルナンバーから特定される販売店に通知するシステムが開示されている。また、プリンタのシリアルナンバーの入力方法として、シリアルナンバーをコード化したコード(例えば、バーコード)を販売店のコンピューターに接続された読み取り機により読み取らせることで実現することが開示されている。専用の読み取り機により読み取らせることを前提としており、汎用性が低いとはいえる。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
ここで、IOTデバイスや、該IOTデバイスを登録したいウェブサイトにウェブブラウザーを用いてアクセスしているコンピューターは、Bluetooth(登録商標、以降、BT、またはBLUETOOTHと記載する)などの標準の無線通信の機能に対応している場合がある。従って、このような機能を利用することにより、コンピューターがIOTデバイスからIOTデバイスのユニークな識別子を取得し、ウェブサイトに登録する仕組みが望まれる。
【0008】
ここで、コンピューターからBTデバイスを使用するには、Operating System(以降、OSまたはOPERATING SYSTEMと記載する)のBTデバイス管理機能からペアリング・接続する必要があった。また、専用のデバイスドライバーを必要とするデバイスの場合は、さらに、別途ドライバーを入手・OSに対してインストールする必要があった。この場合には、OS経由で取得したBTデバイスの情報を、ウェブサイトに手動で登録することになる。
【0009】
さらに、前述のウェブサイトにおいてIOTデバイスのユニークな識別子を自動取得するウェブアプリケーションを提供することも可能である。しかしながら、ウェブアプリケーションからコンピューターに接続されたBTデバイスの情報読み出しなどのために利用するには、次のような煩雑な手間があった。
【0010】
まずは、BTデバイスのためのOS機能にアクセス可能なブラウザープラグインを作成して、プラグインをウェブブラウザーにインストールする。さらに、該プラグインにOSにインストールされたドライバーを利用するなどの実行許可を与える必要がある。OSやブラウザーの種類が異なれば、それぞれに応じてブラウザープラグインを用意する必要がある。提供側の手間としては、さらに、ウェブアプリケーションを、各ブラウザープラグインを利用環境に従い区別して利用するようにプログラムする必要がある。
【課題を解決するための手段】
【0012】
上述の課題を解決するために本発明の情報処理装置は、ウェブブラウザーが動作する情報処理装置であって、サーバーから提供されたコンテンツに基づき前記ウェブブラウザーが表示するデバイスの識別子のユーザーによる入力操作が可能な画面に対する当該入力操作とは異なる所定の操作を受け付けた後に、前記情報処理装置のOperating System(OS)を介して見つかった所定の通信方式で通信できるデバイスの識別子を当該デバイスから前記所定の通信方式での通信を用いて取得する処理を、前記コンテンツに含まれるプログラムに基づき実行する実行手段と、前記ウェブブラウザーが表示する画面で、前記OSを介して実行した前記処理に基づき取得された識別子を表示させる表示制御手段と、前記ウェブブラウザーが前記OSを介して実行した前記処理に基づき取得された識別子を、前記入力操作なしに、前記サーバーに対して送信する送信手段と、を有し、前記所定の操作を受け付けた後に前記ウェブブラウザーにより、前記コンテンツに対応するウェブアプリケーションが前記所定の通信方式でデバイスに接続することを許可するかを確認するためのプロンプトが表示され、前記実行手段は該プロンプトでの選択に対応する選択デバイスに対して前記識別子を取得する前記処理を実行することを特徴とする。
【発明の効果】
【0013】
本発明によれば、ウェブアプリケーションを用いて、BTデバイスの識別子などの機器情報をウェブサイト側に簡単に登録できる仕組みを提供できる。
【図面の簡単な説明】
【0014】
【
図1】本発明のネットワークシステムの構成例を示す図
【
図2】情報処理装置のハードウェアの構成例を示す図
【
図3】システム内の各装置のソフトウェアおよびハードウェアの構成例を示す図
【
図4】ウェブアプリケーションを実行するブラウザーが提供する画面例(1)
【
図5】ウェブアプリケーションを実行するブラウザーが提供する画面例(2)
【
図6】ウェブアプリケーションを含むシステム内の処理を説明するフローチャート
【
図7】ウェブアプリケーションを実行するブラウザーが提供する画面例(3)
【
図8】応用例1に係る追加処理を説明するフローチャート
【
図9】ウェブアプリケーションを実行するブラウザーが提供する画面例(4)
【
図10】応用例2に係る追加処理を説明するフローチャート
【発明を実施するための形態】
【0015】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【0016】
図1は、本発明を実施するためのシステム構成およびネットワーク構成の一例を示している。101は、インターネット・イントラネットなどのネットワークである。105は、プライベートネットワークあるいはローカルエリアネットワーク(LAN)などのネットワークである。105は、コンピューター等の機器を接続する末端のネットワークであるが、有線通信のネットワークに限らず、無線LANや携帯電話通信ネットワークなどの無線通信網の場合もある。111はコンピューターである。コンピューター111としては、パーソナルコンピューター、ラップトップコンピューター、タブレットコンピューター、スマートフォンなどの形態・種別が存在する。121はネットワークを介してアプリケーションを提供するサーバーである。
【0017】
131は、コンピューター111と有線及び無線の少なくともいずれかで接続可能なIOTデバイスである。また、デバイス131は、ネットワーク101、105を介して、サーバー121とも通信可能である。デバイス131の一例として、本実施例ではプリンターを例示して説明する。デバイス131としては、家電製品やスマート音声アシスタントデバイス、3次元プリンターなどであっても本発明を適用できる。
【0018】
135は、コンピューター111とデバイス131を接続する無線通信接続である。本実施例では、BLUETOOTH接続を例示して説明する。以降、コンピューター111に対してBLUETOOTH接続され、情報読み出しなどの操作対象となるデバイスをBTデバイスとも呼ぶ場合がある。
【0019】
本発明では、ウェブブラウザーが動作するコンピューター111が、Web Bluetoothという技術を利用することを想定している。この技術は、WORLD WIDE WEB CONSORTIUMに新しいWEB標準の提案されている技術である。Web Bluetoothでは、従来のデバイスドライバー相当をJavaScript(登録商標、以降、JAVASCRIPTと記載する)プログラムとして、アドホックにダウンロード・使用でき、ウェブアプリケーションからコンピューターに接続したBTデバイスにアクセス可能とすることを目的としている。
【0020】
図2は、コンピューター111、サーバー121、デバイス131の情報処理装置のハードウェアの構成例を図示している。なお、サーバー121は、1台以上の情報処理装置や該情報処理装置上で実現される1台以上の仮想マシンで実現することも可能である。
【0021】
202はネットワークインターフェースであり、LANなどのネットワークに接続して、他のコンピューターやネットワーク機器との通信を行う。通信の方式としては、有線・無線のいずれでもよい。204は組込済みプログラムおよびデータが記録されているROMである。205は一時メモリ領域のRAMである。206はHDDやフラッシュメモリに代表されるような二次記憶装置(以降、記憶装置とも呼ぶ)である。203はCPUであり、ROM204、RAM205、記憶装置206などから読み込んだプログラムを実行する。201はユーザーインターフェースであり、ディスプレイ、キーボード、マウス、ボタン、タッチパネルなどによる、情報や信号の入出力を行う。これらのハードウェアを備えないコンピューターは、リモートデスクトップやリモートシェルなどにより、他のコンピューターから接続・操作することも可能である。各部は入出力インターフェース207を介して接続されている。
【0022】
デバイス131がプリンターである場合には、不図示のプリンターエンジンや、給紙、排紙のための構成、トナーなどの消耗品をエンジンに供給するための構成などが更に含まれることになる。デバイス131が他のIOTデバイスであっても、交換可能な消耗品を利用するための構成がデバイス131内に含まれることになる。
【0023】
図3は、本発明のネットワークシステム内の各装置のソフトウェア構成を示す図である。各ハードウェアにインストールされたソフトウェアは、それぞれCPU203で実行され、ネットワーク接続の矢印で図示するように、相互に通信可能な構成となっている。
【0024】
311は、サーバー121にインストールされたウェブアプリケーションサーバーである。312は、ウェブアプリケーションサーバー311によって提供されるWEB API(APPLICATION PROGRAMMING INTERFACE)である。313は、ウェブアプリケーションサーバー311によって提供されるWEB UI(USER INTERFACE)である。314は、ウェブアプリケーションサーバー311が使用するデータを保存・格納するデータストアである。ウェブアプリケーションサーバー311は、クライアントからのHTTPリクエストの内容に応じて、次のような応答を返す。WEB UI313がHTMLやJAVASCRIPTなどのコンテンツファイルを応答したり、WEB API312がデータストア314内のデータをリード、ライトして、結果をXMLやJSONデータで応答したりする。
【0025】
321は、コンピューター111に備えられたBLUETOOTH接続・通信を行うBLUETOOTHコントローラーである。322は、コンピューター111にインストールされたOperating System(以降、OS)である。OS322は、コンピューター111の各ハードウェアを管理・制御し、各種プログラムの実行管理を行う基本ソフトウェアである。323は、OS322内に備えるBLUETOOTHプロトコル・スタックである。BLUETOOTHプロトコルを利用するためのプログラムモジュール、ライブラリー、APIなどを備える。324は、BLUETOOTHコントローラードライバーである。BLUETOOTHプロトコル・スタック層323からの命令で、BLUETOOTHコントローラー321を駆動・制御する。
【0026】
325は、コンピューター111にインストールされたウェブブラウザーである。ブラウザー325は、HTMLやJAVASCRIPTを表示・実行するアプリケーションである。326は、ブラウザー上で実行されるJAVASCRIPTである。前記ブラウザーは、ネットワークを介して、サーバー121で実行されるウェブアプリケーションサーバー311からHTML, JAVASCRIPT326等を取得・実行・表示する。327は、前記ブラウザーが備えるBROWSER APIである。BROWSER API327は、ブラウザー上で実行されるJAVASCRIPT326からOS322が提供する機能にアクセスできるように設けられているAPIである。
【0027】
331は、デバイス131に備えられたBLUETOOTH接続・通信を行うBLUETOOTHコントローラーである。332は、デバイス131にインストールされたBLUETOOTHコントローラードライバーである。BLUETOOTHコントローラードライバー332は、BLUETOOTHコントローラー331を駆動・制御する。333は、アクセス制御部である。334は、デバイス131内のデータ記憶部である。アクセス制御部333は、BLUETOOTH接続からの通信内容を判断し、データ記憶部334へのアクセス許可を制御し、必要なデータの読み込み・書き込みを制御する。335は、ウェブアプリケーションサーバー311のWEB API312に、デバイス内のデータを送信するデータ通信部である。ネットワーク105、101を介して、サーバー121にデバイス131のデータを送信し、収集する。例えば、デバイス131がプリンターの場合、プリンターのシリアル番号、モデル名、プリンターのライフタイム印刷カウント、消耗品の残量、エラー発生の有無・エラーコードなどを収集して、プリンターのリモート監視を可能とする。
【0028】
図4、5に、サーバー121が提供するウェブアプリケーションのブラウザー325での実行・表示例を示す。まず、コンピューター111から、サーバー121にデバイス131を監視対象として登録する手順を説明する。
【0029】
400は、サーバー121に接続して、ウェブアプリケーションサーバー311から取得したウェブアプリケーションを構成するHTML,JAVASCRIPTを表示・実行しているブラウザーのウィンドウである。401が、ブラウザーで開かれているウェブアプリケーションサーバー311のURLである。402は、登録対象デバイスのモデル名を選択するコントロールである。403は、登録対象デバイスのシリアル番号を入力するコントロールである。404は、前記選択・入力したデバイス情報をウェブアプリケーションサーバー311に送信・登録するためのボタンコントロールである。デバイス情報を手動で入力する場合は、402、403のコントロールを使用して、ユーザーが入力する。
【0030】
しかしながら、冒頭の課題で説明したように、デバイスをユニークに識別するためのシリアル番号で誤入力があると、サーバー121に正しい情報が登録されないという問題点がある。そのために、本発明では、デバイス情報の自動入力を実行する開始手段として、「BLUETOOTHで探索」というボタン405を追加で提供する。
【0031】
410は、ウェブアプリケーションサーバー311のドメインが、コンピューター111のBLUETOOTH通信レンジ内に存在するデバイスを、WEB BLUETOOTHで探索・接続するための許可プロンプトである。411は、WEB BLUETOOTHの接続先デバイスの選択肢である。412は、接続先を選択するリストコントロールである。リスト412ではBTデバイスのデバイス名が列挙されている。413は、前記WEB BLUETOOTHの接続許可操作を実行するボタンコントロールである。
【0032】
500は、WEB BLUETOOTHの接続・通信で取得したデバイス情報が自動入力された画面である。501は、自動入力されたモデル名を表示するコントロールである。502は、自動入力されたシリアル番号を表示するコントロールである。ユーザーの誤入力・誤操作を防ぐために、自動入力後は501、502のコントロールを操作不可に設定してもよい。504は、404に同様の登録ボタンコントロールである。
【0033】
510は、登録ボタン504押下後、登録結果を表示する画面である。登録が成功、または、失敗したかを表示してユーザーに通知する。
【0034】
図6は、ネットワークシステム上での、
図4、5で説明したウェブアプリケーションを利用した処理を説明するフローチャートである。
【0035】
S601で、ブラウザー325が起動され、ウェブアプリケーションのURL401が指定される。
【0036】
S602で、ブラウザー325は、ウェブアプリケーションサーバー311に、WEBコンテンツリクエストを送信する。S603で、ウェブアプリケーションサーバー311は、ウェブアプリケーションを構成するHTML/JAVASCRIPT等のコンテンツを応答する。S604で、ブラウザー325は、受信したHTML/JAVASCRIPTを表示・実行し、前述した画面400を表示する。
【0037】
S605で、ブラウザー325は、画面400内の「BLUETOOTHで探索」ボタン405の押下を検出する。ユーザーは、ボタン操作によりBTデバイスのネットワーク上でのスキャン指示を出すことができる。
【0038】
S606で、ブラウザー325は、JAVASCRIPT326のプログラム内から、BROWSER API327に対してBLUETOOTH.REQUESTDEVICEを命令する。S607で、ブラウザー325は、コンピューター111にBLUETOOTH接続可能なデバイスを探索するために、OS322を介してBLUETOOTHを用いたリクエストの発信を制御する。S608で、リクエストを受信したデバイスは、REQUESTDEVICE応答を返す。ブラウザー325は、OS322を介して応答があったBTデバイスの情報(デバイス名、ベンダ名など)を保持する。
【0039】
S609で、ブラウザー325は、応答があったデバイスに対してPERMISSION.STATEが許可済みであるかをチェックする。S610で、今回が初回接続の場合には、ブラウザー325は、前述の画面410内のリスト412にデバイス情報を表示する。S611で、ブラウザー325は、ユーザーからの接続対象デバイスの選択を受け付ける。さらに、ブラウザー325は、接続許可ボタン413の押下を検出した場合に、ウェブアプリケーションに対して、該選択に対応するBTデバイスへのWEB BLUETOOTH接続を許可する。ここで、選択されたBTデバイス(選択デバイス)の例が、デバイス131とする。S612で、ブラウザー325は、接続許可プロンプト411にて、接続が許可されたかを判定する。接続が許可されなかった場合は、処理フローを終了する。接続が許可された場合は、次ステップに進む。
【0040】
S613で、JAVASCRIPT326のプログラム内から、BROWSER API327に対して、接続対象デバイスを指定してDEVICE.GATT.CONNECT命令を出す。S614で、ブラウザー325は、OS322を介して、デバイス131にBLUETOOTH接続ペアリング要求を送る。
【0041】
S615で、OS322は、BLUETOOTHペアリング確認プロンプト画面を表示する。S616で、ユーザーは、ペアリング許可操作を実行する。S617で、OS322は、デバイス131にペアリング要求を送信する。S618で、デバイス131は、OS322にペアリング結果を応答する。S619で、OS322は、ブラウザー325にペアリング結果を応答する。
【0042】
S620で、ブラウザー325は、ウェブアプリケーションの識別情報、接続許可されたデバイス131の識別情報(デバイス名)と、PERMISSION.STATEが許可済みであることを示す値とを紐付けて、記憶装置206に保存する。この紐付け情報はブラウザー325で管理され、次回の接続以降は、S609のタイミングで、PERMISSION.STATEのチェックで許可済みのデバイスとして保存してあれば、S610のプロンプトの表示による選択処理を省略できる。
【0043】
S621で、JAVASCRIPT326のプログラム内から、BROWSER API327に対して、デバイス131が提供するBLUETOOTHのSERVICE IDENTIFIERを要求する。S622で、ブラウザー325は、OS322を介して、デバイス131にSERVICE IDENTIFIERを問い合わせる。S623で、デバイス131は、提供可能なSERVICE IDENTIFIERを応答する。例えば、デバイス131がプリンターの場合、プリンターサービスを示すSERVICE IDENTIFIERが取得できるとする。
【0044】
S624で、JAVASCRIPT326のプログラム内から、BROWSER API327に対して、デバイス131が提供する前記SERVICE IDENTIFIERで取得可能なCHARACTERISTIC一覧を要求する。S625で、ブラウザー325は、OS322を介して、デバイス131に前記SERVICE IDENTIFIERのCHARACTERISTIC一覧を要求する。S626で、デバイス131は、提供可能なCHARACTERISTIC一覧を応答する。例えば、プリンターサービスでは、CHARACTERISTICとして、シリアル番号、モデル名、その他、プリンターのライフタイム印刷カウント、消耗品の残量、エラー発生の有無・エラーコードなどが取得できるとする。
【0045】
S627で、JAVASCRIPT326のプログラム内から、BROWSER API327に対して、デバイス131が提供する前記CHARACTERISTICのうち、デバイス毎にユニークな識別子としてのシリアル番号、モデル名のREADリクエストを命令する。S628で、ブラウザー325は、OS322を介して、デバイス131に前記指定されたCHARACTERISTICのREADリクエストを送信する。S629で、デバイス131は、アクセス制御部333を介して、データ記憶部334から指定されたデータを取得し、前記CHARACTERISTICデータを応答する。
【0046】
S630で、JAVASCRIPT326のプログラム内で、ブラウザー325により受信できたデータからシリアル番号、モデル名を画面400のコントロール402、403に自動入力し、画面500を表示する。画面500では、値が入力済みのコントロール501、502が表示される。
【0047】
S631で、ブラウザー325は、画面500を介したユーザーによる登録ボタン503の押下を検出する。S632で、JAVASCRIPT326のプログラム内で、WEBサイトへのデバイス登録を実行する。具体的には、ブラウザー325から、ウェブアプリケーションサーバー311のWEB API312に、画面500に対して自動入力されたシリアル番号、モデル名を含むデバイス登録リクエストを送信する。ウェブアプリケーションサーバー311は、デバイス登録リクエストの内容に基づき、データストア314にシリアル番号などの必要なデータを書き込む。その後、S633で、ウェブアプリケーションサーバー311は、デバイス登録リクエストの処理に成功したか失敗したかを、APIの応答としてブラウザー325に返す。S634で、ブラウザー325を介して、デバイス登録の結果を示す画面510が表示される。
【0048】
(応用例1)
図7、8を用いて、サーバー121が提供するウェブアプリケーションのブラウザー325での実行・表示の別の例を示す。
【0049】
図7の700は、前述の画面410で示した許可プロンプト画面の別の例である。701は、WEB BLUETOOTHの接続先デバイスの選択肢である。702は、接続先を選択するリストコントロールである。
【0050】
図8は、システム内におけるウェブアプリケーションを含む処理を説明するフローチャートである。
図6の一部を拡張した処理を示している。
【0051】
前述の画面410では、コンピューター111とBLUETOOTH通信可能なデバイスの全てが、接続先の候補として411に一覧表示されてしまう。例えば、プリンターを探索したいのに、スマートフォンやデジタルカメラなど、多種のBTデバイスが一覧に表示される可能性がある。さらには、探索対象がプリンターであっても、ウェブアプリケーションサーバー311との接続・通信能力を持たないプリンターを候補から除外したい場合もある。リスト412にプリンター名が表示されれば、ユーザーは当該プリンターがWEBサイトに登録可能であると誤解する懸念がある。仮にWEBサイトへの登録が成功したとしても、選択したプリンターが接続・通信能力を持たない場合、ウェブアプリケーションサーバー311でプリンターのデータが収集できないため意味がない。
【0052】
そのため、
図8の例では、接続許可プロンプト画面において、サーバー121への接続・通信能力を持つプリンターを示す特定のタイプのデバイスのみを選択肢として提供する方法を説明する。
【0053】
具体的には、S604以降の代替ステップとして、以下を実行する。
【0054】
S801で、JAVASCRIPT326のプログラム内で、WEB API312に前述の特定のタイプ(モデル名)を取得するための取得要求を送信する。S802で、WEB API312は、接続・通信能力を持つデバイスのモデル名の一覧を応答する。
【0055】
S803は、前述のステップS605と同様である。S804では、前述のステップS606同様、ブラウザー325は、JAVASCRIPT326のプログラム内から、BROWSER API327に対してBLUETOOTH.REQUESTDEVICEを命令する。前述したS606と異なる点は、REQUESTDEVICE命令内のFILTER条件として、S802で取得したモデル名一覧を設定することである。S805~807は、前述のステップS607~609と同様である。
【0056】
S808では、ウェブアプリケーションからの初回接続の場合、
図7に示すにように接続候補となるBTデバイスのリストを表示する。ここでは、FILTER条件に従い、ウェブアプリケーションサーバー311に接続可能なデバイスの候補がリスト702に列挙される。S809は、前述のS611と同様である。以降は、S612のステップへと続く。
【0057】
(応用例2)
図9、10を用いて、サーバー121が提供するウェブアプリケーションのブラウザー325でのデバイス登録実行処理に加えて、デバイス131からサーバー121への通信開始を設定する方法をさらに説明する。
【0058】
サーバー121にデバイス131のシリアル番号を登録した後には、デバイス131からサーバー121へのデータ送信の開始のための手続きを行う必要がある。通常、この操作をするためには、デバイス131本体の操作部上の画面を操作して、データ送信を開始するための手続きを行う必要がある。しかし、本発明では、小型のIOTデバイスなども想定しているので、手続きのために十分な視認性をもつ画面をもたないデバイス、もしくは画面を備えないデバイスも存在する。
【0059】
そこで、ここでは、前述した登録処理で用いたBLUETOOTHリンクを用いて、通信開始を引き続き設定する手法について説明する。
【0060】
900は、コンピューター111のブラウザー325が、サーバー121上のウェブアプリケーションサーバー311から取得したウェブアプリケーションを構成するHTML,JAVASCRIPTを表示・実行しているウィンドウである。901が、ブラウザーで開かれているウェブアプリケーションサーバー311のURLである。902は、前記説明した接続済みのWEB BLUETOOTH通信で取得したデバイス131のモデル名を表示するフィールドである。903は、同じく取得したシリアル番号を表示するフィールドである。画面900の例では、デバイス131からインターネット上のサーバー121にデータ送信を行う旨について、データ送信同意文を表示している。同意の内容としては、送信先、送信データの種類、用途などの契約事項が含まれる。これに、ユーザーが同意したことにより、デバイス131からのウェブアプリケーションサーバー311への通信の有効化に許諾されたこととなる。これに同意しない場合には、デバイス131からの通信を開始させない。905は、前記データ送信同意文に同意して、通信を有効化するボタンである。906は、同意せずに操作をキャンセルするボタンである。910は、データ送信設定の結果表示画面である。
【0061】
図10は、ウェブアプリケーションを含むシステム内の処理を説明するフローチャートである。
【0062】
S1001で、ブラウザー325が起動され、ウェブアプリケーションのURL901が指定される。これは、画面510で提供されるURLリンク(不図示)によるナビゲーションでもよい。
【0063】
S1002で、ブラウザー325は、ウェブアプリケーションサーバー311に、WEBコンテンツリクエストを送信する。S1003で、ウェブアプリケーションサーバー311は、ウェブアプリケーションを構成するHTML/JAVASCRIPT等のコンテンツを応答する。S1004で、ブラウザー325は、受信したHTML/JAVASCRIPTを表示・実行する。この段階では、画面900の中の901~903までの情報が提供され、データ送信に係る同意文やボタン905,906は提供されていない。
【0064】
S1005で、JAVASCRIPT326のプログラム内から、BROWSER API327に対して、データ送信の同意状態を取得するためのREADリクエストを命令する。S1006で、ブラウザー325は、OS322を介して、デバイス131にデータREADリクエストを送信する。S1007で、デバイス131は、データ送信の同意状態を示す値を含むデータを応答する。
【0065】
S1008で、JAVASCRIPT326のプログラム内で、応答されたデータ送信の同意状態を確認し、同意済みであるか否かを判定する。すでに同意済みであると判定された場合は、画面910を提供した上で、
図10で示す処理を終了する。同意済みでないと判定された場合は、後続のステップを実行する。
【0066】
S1009で、JAVASCRIPT326のプログラム内から、BROWSER API327に対して、同意文取得のREADリクエストを命令する。S1010で、ブラウザー325は、OS322を介して、デバイス131にデータREADリクエストを送信する。S1011で、デバイス131は、同意文を含むデータを応答する。S1012で、ブラウザー325は、受信した同意文を画面900内に表示する。本例では、同意文をデバイス131に保存されたものから取得したが、ウェブアプリケーションサーバー311からHTTPなどのプロトコルで取得する構成としてもよい。
【0067】
S1013で、ブラウザー325は、画面900に対するユーザー操作を検出する。S1014で、JAVASCRIPT326のプログラム内で、検出されたユーザー操作が同意か否かを判断する。ユーザーが同意しなかった場合は処理がキャンセルされ、
図10で示す処理が終了する。ユーザーがボタン905を押下して同意したと判断された場合には、後続のステップに進む。
【0068】
S1015で、JAVASCRIPT326のプログラム内から、BROWSER API327に対して、同意状態が同意済みであることを設定するためのWRITEリクエストを命令する。S1016で、ブラウザー325は、OS322を介して、デバイス131にデータWRITEリクエストを送信する。S1017で、デバイス131は、リクエストされた同意状態をデータ記憶部334に記録し、WRITEリクエストの結果を応答する。S1018で、ブラウザー325は、受信した結果に従い、画面910に表示する。
【0069】
S1021で、デバイス131は、デバイス内のデータをサーバー121に送信を開始する。送信するデータには、デバイス131のシリアル番号、ネットワークアドレス、消耗品に関するステータス、データ送信に関する同意状態が含まれる。これら情報をWeb API312を介して受信したウェブアプリケーションサーバー311は、消耗品に関するステータスを監視する。ウェブアプリケーションサーバー311は、必要に応じて、デバイス登録時にシリアル番号に紐づけられるユーザーの住所などに消耗品を自動で配送するための処理を実行する。
【0070】
本発明では、WEB BLUETOOTHの通信リンクを用いるウェブアプリケーションにより、デバイスの識別子(シリアル番号)を登録画面に自動入力してサーバーに正しく登録できるようになる。特に小型のIOT機器で、シリアル番号を調べるのが困難で、バーコードの印字などが難しい場合には、より効果的である。
【0071】
(他の実施例)
本発明は、上述した実施形態を適宜組み合わせることにより構成された装置あるいはシステムやその方法も含まれるものとする。
【0072】
ここで、本発明は、上述した実施形態の機能を実現する1以上のソフトウェア(プログラム)を実行する主体となる装置あるいはシステムである。また、その装置あるいはシステムで実行される上述した実施形態を実現するための方法も本発明の一つである。また、そのプログラムは、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給され、そのシステム或いは装置の1以上のコンピュータ(CPUやMPU等)によりそのプログラムが読み出され、実行される。つまり、本発明の一つとして、さらにそのプログラム自体、あるいは該プログラムを格納したコンピューターにより読み取り可能な各種記憶媒体も含むものとする。また、上述した実施形態の機能を実現する回路(例えば、ASIC)によっても、本発明は実現可能である。
【符号の説明】
【0073】
111 コンピューター
121 サーバー
131 デバイス
325 ブラウザー