(57)【要約】【課題】非ＩＰベースの通信を介して接続されたデバイスを利用するために必要とされるパーサを自動的に準備する。【解決手段】本発明の一態様によれば通信装置が提供される。この通信装置は、通信部と、パーサローダーとを含む。通信部は、非ＩＰベースの通信を行って、目標デバイスのＩＤを搬送する第１のパケットを受信する。パーサローダーは、デバイスのＩＤとデバイスを利用するために必要な通信プロトコルのパーサとを関連付けるデータベースから、目標デバイスのＩＤに関連付けられた目標パーサを検索し、目標パーサが見つかった場合には当該目標パーサをロードする。【選択図】図１
2018042018.tif 000002
【特許請求の範囲】
【請求項１】
非ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ベースの通信を行って、目標デバイスのＩＤを搬送する第１のパケットを受信する通信部と、
デバイスのＩＤと前記デバイスを利用するために必要な通信プロトコルのパーサとを関連付けるデータベースから、前記目標デバイスのＩＤに関連付けられた目標パーサを検索し、前記目標パーサが見つかった場合には当該目標パーサをロードするパーサローダーと
を具備する、通信装置。
【請求項２】
前記目標パーサが見つからなかった場合には、前記通信部は、前記目標パーサを要求する第２のパケットを送信し、前記目標パーサを搬送する第３のパケットを受信する、請求項１に記載の通信装置。
【請求項３】
前記パーサローダーは、前記第３のパケットが受信された場合には、前記目標デバイスのＩＤと前記目標パーサとを関連付けて前記データベースに保存する、請求項２に記載の通信装置。
【請求項４】
非ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ベースの通信を行って、目標デバイスのＩＤを搬送する第１のパケットを受信することと、
デバイスのＩＤと前記デバイスを利用するために必要な通信プロトコルのパーサとを関連付けるデータベースから、前記目標デバイスのＩＤに関連付けられた目標パーサを検索し、前記目標パーサが見つかった場合には当該目標パーサをロードすることと
を具備する、通信方法。
【請求項５】
前記目標パーサが見つからなかった場合には、前記非ＩＰベースの通信を行って、前記目標パーサを要求する第２のパケットを送信し、前記目標パーサを搬送する第３のパケットを受信することをさらに具備する、請求項４に記載の通信方法。
【請求項６】
前記第３のパケットが受信された場合には、前記目標デバイスのＩＤと前記目標パーサとを関連付けて前記データベースに保存することをさらに具備する、請求項５に記載の通信方法。
【請求項７】
コンピュータを、
非ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ベースの通信を行って、目標デバイスのＩＤを搬送する第１のパケットを受信する手段、
デバイスのＩＤと前記デバイスを利用するために必要な通信プロトコルのパーサとを関連付けるデータベースから、前記目標デバイスのＩＤに関連付けられた目標パーサを検索し、前記目標パーサが見つかった場合には当該目標パーサをロードする手段、
として機能させるための通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ベースの通信を介したデバイスの利用に関する。
【背景技術】
【０００２】
ＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）は、様々なデバイス（ＰＣ、周辺機器、ＡＶ機器および家電製品など）をネットワークに接続するだけで、複雑な操作や設定作業を必要とすることなく、同ネットワークに接続されたコントロールポイント（ＰＣ、ネットワークリモコンなど）から当該デバイスを制御することを可能とする。デバイスは、ネットワークに接続されると、同ネットワーク上のコントロールポイントにその存在を通知する。コントロールポイントは、ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）と呼ばれるＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）を応用した規格を用いて、デバイスの操作などを行うことができる。
【０００３】
但し、ＵＰｎＰは、ＩＰベースの通信を使用することを前提としている。他方、近年、スマートフォンなどの通信装置は、小型化／低コスト化のためにＢＬＥ（Ｂｌｕｅｔｏｏｔｈ（登録商標）  Ｌｏｗ  Ｅｎｅｒｇｙ）に代表される非ＩＰ通信を積極的に活用する傾向にある。しかしながら、通信装置は、非ＩＰベースの通信を介して接続されたデバイスの操作のためにＵＰｎＰを利用することはできない。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】ＵＰｎＰ  ＦＯＲＵＭ，「ＵＰｎＰ  Ｄｅｖｉｃｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  １．１」，２００８年１０月１５日，第６７頁〜第８３頁
【発明の概要】
【発明が解決しようとする課題】
【０００５】
通信装置が非ＩＰベースの通信を介して接続されたデバイス（の機能）を利用するためには、所定の通信プロトコルの使用を課されるおそれがある。例えば、ＢＬＥでは、プロファイルと呼ばれる通信プロトコルが多種多様に規定されており、通信装置はデバイスの利用目的に見合ったプロファイルを使用しなければならない。他方で、あらゆる通信プロトコルのパーサを通信装置にプリインストールしておくことは事実上不可能である。故に、通信装置がデバイスを利用するために必要なパーサをインストールしていないケースが想定される。このような場合に、ユーザは、パーサを通信装置に新たにインストールしたり、通信装置に既にインストールされているアプリケーションをアップデートしたりしなければならない。このような作業は、ユーザにとって煩雑であり、ユーザのリテラシ次第では実施されないおそれがある。
【０００６】
本発明は、非ＩＰベースの通信を介して接続されたデバイスを利用するために必要とされるパーサを自動的に準備することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば通信装置が提供される。この通信装置は、通信部と、パーサローダーとを含む。通信部は、非ＩＰベースの通信を行って、目標デバイスのＩＤを搬送する第１のパケットを受信する。パーサローダーは、デバイスのＩＤとデバイスを利用するために必要な通信プロトコルのパーサとを関連付けるデータベースから、目標デバイスのＩＤに関連付けられた目標パーサを検索し、目標パーサが見つかった場合には当該目標パーサをロードする。
【発明の効果】
【０００８】
本発明によれば、非ＩＰベースの通信を介して接続されたデバイスを利用するために必要とされるパーサを自動的に準備することができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る通信装置を例示するブロック図。
【図２】図１の通信装置と非ＩＰベースの通信を行うデバイスを例示するブロック図。
【図３】図１の通信装置と図２のデバイスとの間でやり取りされるパケットの説明図。
【図４】図１の通信装置および図２のデバイスによって行われるパーサ自動ロード処理の一例を示すシーケンス図。
【図５】図１の通信装置および図２のデバイスによって行われるパーサ自動ロード処理の別の例を示すシーケンス図。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら実施形態の説明が述べられる。尚、以降、説明済みの要素と同一または類似の要素には同一または類似の符号が付され、重複する説明は基本的に省略される。
【００１１】
（第１の実施形態）  
図１に例示されるように、第１の実施形態に係る通信装置１００は、通信部１０１と、パーサローダー１０２と、記憶部１０３とを含む。通信装置１００は、典型的には、スマートフォンであるが、タブレット、ＰＣ、ネットワークリモコンなどであってもよい。
【００１２】
通信装置１００は、例えばＢＬＥなどの非ＩＰベースの通信を介して接続された（目標）デバイス（の機能）を利用する。係るデバイスの利用機能は、通信装置１００によって実行されるアプリケーション（例えばスマホアプリ）として実装されてもよい。このアプリケーションのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）のためにＷｅｂＶｉｅｗを利用してもよい。ＷｅｂＶｉｅｗを利用することで、アップデートまたはインストールを必要とせずにＧＵＩを動的に変更することができる。
【００１３】
通信部１０１は、デバイスとの間で、例えばＢＬＥなどの非ＩＰベースの通信を行う。デバイスは、例えば、ＰＣ、周辺機器、ＡＶ機器、家電製品、ロボット、センサなどの種々の機器であり得る。デバイスの一例は、図２を用いて後述される。通信部１０１は、図３に例示される種々のパケットをデバイスとやり取りすることができる。
【００１４】
具体的には、通信部１０１は、後述されるパーサ自動ロード処理のための専用プロトコルの開始を通知する専用開始パケットをデバイスから受信する。この専用開始パケットに続いて、通信部１０１は、図３に示されるＩＤ通知パケットを受信する。ＩＤ通知パケットは、デバイスのＩＤを搬送する。なお、ＩＤ通知パケットに含まれるＩＤは、デバイスの個体識別番号そのものであってもよいし、係る個体識別番号を秘匿化のためにハッシュ化した値であってもよい。通信部１０１は、ＩＤ通知パケットによって搬送されたＩＤをパーサローダー１０２へと転送する。
【００１５】
通信部１０１は、パーサローダー１０２からデバイスを利用するために必要な通信プロトコルのパーサが通信装置１００内に存在しないとの通知を受けると、パーサの転送を要求するパケットをデバイスへと送信する。
【００１６】
この通信プロトコルとは、ＢＬＥにおいてはプロファイルに相当する。但し、Ｂｌｕｅｔｏｏｔｈ  ＳＩＧによって規定されたいわゆる標準プロファイルは、ここでの通信プロトコルに包含されてもよいが除外されてもよい。他方、デバイス固有の機能を利用するためにベンダー等により規定された独自のプロファイルは、ここでの通信プロトコルに包含されることが好ましい。
【００１７】
通信部１０１は、その後、図３に示されるパーサ転送用パケットを受信する。パーサ転送用パケットは、パーサ（プログラムデータ）を搬送する。通信部１０１は、パーサ転送用パケットによって搬送されたパーサをパーサローダー１０２へと転送する。
【００１８】
通信部１０１は、パーサローダー１０２からパーサのロードが完了したとの通知を受けると、パーサのロード完了を通知するためのパケットをデバイスへと送信する。パーサのロード完了後に、通信部１０１は上記通信プロトコルを用いた通信をデバイスとの間で行うことで、当該デバイスを操作して目的（例えば、所望の機能の利用）を達成することができるようになる。
【００１９】
通信部１０１は、上述のパケットの他に、図３に示されるファームウェアアップデート用のパケットをデバイスへと送信してもよい。このファームウェアアップデート用のパケットは、デバイスがアップデートすべきファームウェア（プログラムデータ）を搬送しており、これを受信したデバイスはファームウェアをアップデートできる。このようなパケットをデバイスへと送信することにより、例えばデバイスに新たな機能を追加したり、デバイスの既存の機能を変更したりすることができる。
【００２０】
なお、通信部１０１によって行われる非ＩＰベースの通信は、典型的には無線通信を指しているが、有線通信を排除するものではない。また、通信部１０１は、非ＩＰベースの通信に加え、ＩＰベースの通信を行ってもよい。
【００２１】
パーサローダー１０２は、通信部１０１からデバイスのＩＤを通知されると、記憶部１０３に構築されたパーサデータベースにアクセスし、当該ＩＤに関連付けられたパーサ（目標パーサ）を検索する。ここで、パーサデータベースは、デバイスのＩＤと、当該デバイスを利用するために必要な通信プロトコルのパーサとを関連付けて管理する。
【００２２】
ＩＤに関連付けられたパーサが見つかった場合には、パーサローダー１０２は、当該パーサをロードする。パーサローダー１０２は、パーサのロード完了を通信部１０１に通知する。
【００２３】
他方、ＩＤに関連付けられたパーサが見つからなかった場合には、パーサローダー１０２は、当該パーサの不存在を通信部１０１に通知する。その後に、通信部１０１からパーサが転送されると、パーサローダー１０２は再びパーサデータベースにアクセスし、デバイスのＩＤと転送されたパーサとを関連付けて保存することで、当該パーサデータベースを更新する。さらに、パーサローダー１０２は、転送されたパーサをロードし、パーサのロード完了を通信部１０１に通知する。
【００２４】
なお、パーサが専用のＤＳＬ（Ｄｏｍａｉｎ  Ｓｐｅｃｉｆｉｃ  Ｌａｎｇｕａｇｅ）を用いて記述されている場合には、通信装置１００のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）はＤＳＬで記述されたパーサを当該ＯＳに解釈可能な言語へと変換してもよい。
【００２５】
記憶部１０３には、前述のように、パーサデータベースが構築される。記憶部１０３には、パーサデータベースの他にも、例えば、デバイスがアップデートすべきファームウェアなどの種々のデータが記憶されてもよい。記憶部１０３は、例えば、半導体メモリ、ハードディスクドライブなどを用いて実装可能である。
【００２６】
図２には、図１の通信装置の通信相手となるデバイス２００が例示される。デバイス２００は、通信部２０１と、送信制御部２０２と、記憶部２０３とを含む。
【００２７】
通信部２０１は、通信装置１００との間で、例えばＢＬＥなどの非ＩＰベースの通信を行う。通信部２０１は、図３に例示される種々のパケットを通信装置１００とやり取りすることができる。
【００２８】
具体的には、通信部２０１は、前述の専用開始パケットを通信装置１００へと送信する。この専用開始パケットに続いて、通信部２０１は、さらに、図３に示されるＩＤ通知パケットを通信装置１００へと送信する。ＩＤ通知パケットに含まれるＩＤは、例えば、送信制御部２０２によって記憶部２０３から読み出され、通信部２０１へと転送される。
【００２９】
通信部２０１は、通信装置１００がデバイス２００を利用するために必要な通信プロトコルのパーサを有しない場合に、当該通信装置１００からパーサの転送を要求するパケットを受信する。係るパケットを受信すると、通信部２０１は、図３に示されるパーサ転送用パケットを通信装置１００へと送信する。パーサ転送用パケットに含まれるパーサは、例えば、送信制御部２０２によって記憶部２０３から読み出され、通信部２０１へと転送される。このパーサは、ＤＳＬを用いて記述されていてもよい。パーサをＤＳＬで記述すれば、通信装置１００のＯＳを考慮する必要がなくなる。すなわち、デバイス２００の内部に異なる言語で記述された複数のパーサを保持しておかなくても、多種多様なＯＳを持つ通信装置に利用可能なパーサを提供することができる。
【００３０】
通信部２０１は、通信装置１００からパーサのロード完了を通知するためのパケットを受信すると、上記通信プロトコルを用いた通信を通信装置１００との間で開始する。
【００３１】
通信部２０１は、上述のパケットの他に、図３に示されるファームウェアアップデート用のパケットを通信装置１００から受信してもよい。この場合に、デバイス２００は、パケットによって搬送されたデータを用いて、ファームウェアをアップデートできる。
【００３２】
なお、通信部２０１によって行われる非ＩＰベースの通信は、典型的には無線通信を指しているが、有線通信を排除するものではない。また、通信部２０１は、非ＩＰベースの通信に加え、ＩＰベースの通信を行ってもよい。
【００３３】
送信制御部２０２は、通信部２０１が通信装置１００からパーサの転送を要求するパケットを受信すると、パーサを記憶部２０３から読み出して通信部２０１へと転送する。また、送信制御部２０２は、ＩＤ通知パケットに含められるＩＤを、記憶部２０３から読み出して通信部２０１へと転送してもよい。
【００３４】
記憶部２０３には、例えば、デバイス２００のＩＤ、当該デバイス２００を利用するために必要なプロトコルのパーサなどの種々のデータが記憶されてもよい。記憶部２０３は、例えば、半導体メモリ、ハードディスクドライブなどを用いて実装可能である。
【００３５】
以下、図４および図５を用いて、通信装置１００およびデバイス２００によって行われるパーサ自動ロード処理を説明する。図４の動作例は、通信装置１００がデバイス２００を利用するために必要な通信プロトコルのパーサを有する場合に対応する。他方、図５の動作例は、通信装置１００が上記パーサを有しない場合に対応する。このパーサ自動ロード処理は、典型的には、通信装置１００とデバイス２００との初回通信時に行われる。
【００３６】
なお、このパーサ自動ロード処理は、通信装置１００のＯＳがサポートする通信プロトコル（例えば標準プロファイル）を対象外としてもよいし、係る通信プロトコルを対象に組み入れてもよい。いずれにせよ、通信装置１００は、ＯＳがサポートしない通信プロトコルをパーサ自動ロード処理によってハンドリングし、ＯＳがサポートする通信プロトコルをＯＳまたはパーサ自動ロード処理によってハンドリングすることで、両方の通信プロトコルを併用できる。
【００３７】
パーサ自動ロード処理は、デバイス２００内部の通信部２０１が専用開始パケットを通信装置１００へと送信することで開始する（Ｓ３０１）。続いて、通信部２０１は、デバイス２００のＩＤを搬送するＩＤ通知パケットを通信装置１００へと送信する（Ｓ３０２）。
【００３８】
専用開始パケットおよびＩＤ通知パケットは、通信装置１００内部の通信部１０１によって受信される。通信装置１００内部のパーサローダー１０２は、ＩＤ通知パケットに含まれていたＩＤに対応するパーサをパーサデータベースから検索する（Ｓ３０３）。
【００３９】
図４の動作例では、パーサローダー１０２はパーサの検索に成功する。故に、パーサローダー１０２は、パーサデータベースから検索されたパーサをロードする（Ｓ３０４）。その後に、通信部１０１は、ロード完了を通知するパケットをデバイス２００へと送信し（Ｓ３０５）、通信装置１００とデバイス２００との間で上記通信プロトコルを用いた通信が開始する（Ｓ３０６）。
【００４０】
他方、図５の動作例では、パーサローダー１０２はパーサの検索に失敗する。故に、通信部１０１は、パーサの転送を要求するパケットをデバイス２００へと送信する（Ｓ３０７）。これに応じて、通信部２０１は、パーサ転送用パケットを通信装置１００へと送信する（Ｓ３０８）。パーサローダー１０２は、ＩＤ通知パケットに含まれていたＩＤとパーサ転送用パケットに含まれていたパーサとを関連付けてパーサデータベースに保存することで、当該パーサデータベースを更新する（Ｓ３０９）。そして、パーサローダー１０２は、パーサ転送用パケットに含まれていたパーサをロードする（Ｓ３０４）。その後に、通信部１０１は、ロード完了を通知するパケットをデバイス２００へと送信し（Ｓ３０５）、通信装置１００とデバイス２００との間で上記通信プロトコルを用いた通信が開始する（Ｓ３０６）。
【００４１】
以上説明したように、第１の実施形態に係る通信装置は、非ＩＰベースの通信を介したデバイス（の機能）の利用を開始する場合に、自動的に、デバイスのＩＤとその利用に必要な通信プロトコルのパーサとを関連付けるパーサデータベースにアクセスし、所望のデバイスの利用に必要な通信プロトコルのパーサの有無を確認する。そして、この通信装置は、パーサがデータベースに存在する場合にはこれをロードし、パーサがデータベースに存在しない場合にはデバイスにパーサの転送を要求し、転送されたパーサをロードする。従って、この通信装置によれば、ユーザが複雑な操作や設定作業をすることなく、所望のデバイスを利用するために必要とされる通信プロトコルのパーサを自動的に準備することができる。
【００４２】
なお、第１の実施形態において説明されたパーサ自動ロード処理を実行するためには、通信装置およびデバイスの双方が専用のプロトコルを新たにサポートする必要がある。しかしながら、このプロトコル自体の変更は基本的に不要または低頻度であるから、通信装置１００は一旦このプロトコルをサポートすれば、様々なデバイスとの間で同様にパーサ自動ロード処理を実行できる。故に、このパーサ自動ロード処理によれば、開発者およびユーザの負担を軽減することができる。
【００４３】
上述の実施形態は、本発明の概念の理解を助けるための具体例を示しているに過ぎず、本発明の範囲を限定することを意図されていない。実施形態は、本発明の要旨を逸脱しない範囲で、様々な構成要素の付加、削除または転換をすることができる。
【００４４】
上記各実施形態において説明された種々の機能部は、回路を用いることで実現されてもよい。回路は、特定の機能を実現する専用回路であってもよいし、プロセッサのような汎用回路であってもよい。
【００４５】
上記各実施形態の処理の少なくとも一部は、汎用のコンピュータを基本ハードウェアとして用いることでも実現可能である。上記処理を実現するプログラムは、コンピュータで読み取り可能な記録媒体に格納して提供されてもよい。プログラムは、インストール可能な形式のファイルまたは実行可能な形式のファイルとして記録媒体に記憶される。記録媒体としては、磁気ディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、半導体メモリなどである。記録媒体は、プログラムを記憶でき、かつ、コンピュータが読み取り可能であれば、何れであってもよい。また、上記処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ（サーバ）上に格納し、ネットワーク経由でコンピュータ（クライアント）にダウンロードさせてもよい。
【符号の説明】
【００４６】
１００・・・通信装置
１０１，２０１・・・通信部
１０２・・・パーサローダー
１０３，２０３・・・記憶部
２００・・・デバイス
２０２・・・送信制御部
【図１】
2018042018.tif 000003
【図２】
2018042018.tif 000004
【図３】
2018042018.tif 000005
【図４】
2018042018.tif 000006
【図５】
2018042018.tif 000007