(57)【要約】【課題】ネットワーク負荷を極力抑えながらも、通信相手のデバイスに接続できない状態が検出された場合に当該デバイスに関する情報を誤りなく無効化すること。【解決手段】情報処理装置は、通信部と、記憶部と、制御部とを有する。上記記憶部は、上記通信部により通信可能なデバイスが発見される度に生成される、上記デバイスに関するデバイス情報と、当該デバイス情報を上記発見毎に識別する識別子とを対応付けて記憶する。上記制御部は、所定の通信路を介した上記デバイスとの通信が不可能な状態であることを検出した場合であって、かつ、上記識別子が上記記憶時から変化していないことを検出した場合に、上記デバイス情報を無効化する。【選択図】図７
2015041947.tif 000002
【特許請求の範囲】
【請求項１】
通信部と、
前記通信部により通信可能なデバイスが発見される度に生成される、前記デバイスに関するデバイス情報と、当該デバイス情報を前記発見毎に識別する識別子とを対応付けて記憶する記憶部と、
所定の通信路を介した前記デバイスとの通信が不可能な状態であることを検出した場合であって、かつ、前記識別子が前記記憶時から変化していないことを検出した場合に、前記デバイス情報を無効化する制御部と
を具備する情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記記憶部は、前記識別子として、前記デバイスが発見された時刻を示すタイムスタンプを記憶し、
前記制御部は、前記デバイス情報を利用して前記所定の通信路を介して前記デバイスとの接続を確立し、前記利用されたデバイス情報に対応付けられたタイムスタンプと、現在の前記デバイス情報に対応付けられたタイムスタンプとを比較し、両タイムスタンプが一致した場合に前記デバイス情報を無効化する
情報処理装置。
【請求項３】
請求項１に記載の情報処理装置であって、
前記制御部は、
前記所定の通信路を介して前記デバイスと接続を確立した後、当該デバイスとの接続が有効であることを確認するための確認信号を第１の時間間隔で前記デバイスへ送信し、
前記デバイスとの通信が不可能な状態であることを推測させる所定のイベントが発生した場合に、前記確認信号を送信する時間間隔を前記第１の時間間隔から当該第１の時間間隔よりも短い第２の時間間隔へ変更し、
前記第２の時間間隔での前記確認信号に対する前記デバイスからの応答信号が受信されない場合に、前記デバイスとの接続を破棄する
ように前記通信部を制御可能である
情報処理装置。
【請求項４】
請求項３に記載の情報処理装置であって、
前記制御部は、前記デバイスと接続を確立した後、前記所定の通信路以外の通信路を介して前記デバイスからデータを受信した場合に、前記時間間隔を変更するように前記通信部を制御可能である
情報処理装置。
【請求項５】
請求項４に記載の情報処理装置であって、
前記通信部は、当該情報処理装置と前記デバイスとの間の通信を中継し前記情報処理装置と前記デバイスとの接続を管理する中継サーバと、前記所定の通信路とは異なる通信路を介して通信可能であり、
前記制御部は、前記デバイスと接続を確立した後、前記デバイスから前記中継サーバを介して前記データを受信した場合に、前記時間間隔を変更するように前記通信部を制御可能である
情報処理装置。
【請求項６】
請求項３に記載の情報処理装置であって、
前記制御部は、前記接続を確立した前記デバイスから定期的に受信されるべき通知信号が受信されなくなった場合に、前記時間間隔を変更するように前記通信部を制御可能である
情報処理装置。
【請求項７】
請求項３に記載の情報処理装置であって、
前記制御部は、前記デバイスから前記確認信号を受信したときに当該確認信号に対する前記応答信号を前記デバイスへ送信するように前記通信部を制御可能である
情報処理装置。
【請求項８】
通信可能なデバイスが発見される度に生成される、前記デバイスに関するデバイス情報と、当該デバイス情報を前記発見毎に識別する識別子とを対応付けて記憶し、
所定の通信路を介した前記デバイスとの通信が不可能な状態であることを検出した場合であって、かつ、前記識別子が前記記憶時から変化していないことを検出した場合に、前記デバイス情報を無効化する
情報処理方法。
【請求項９】
情報処理装置に、
通信可能なデバイスが発見される度に生成される、前記デバイスに関するデバイス情報と、当該デバイス情報を前記発見毎に識別する識別子とを対応付けて記憶するステップと、
所定の通信路を介した前記デバイスとの通信が不可能な状態であることを検出した場合であって、かつ、前記識別子が前記記憶時から変化していないことを検出した場合に、前記デバイス情報を無効化するステップと
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、他の情報処理装置と通信可能な情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、通信技術の発達により、異なるネットワークインターフェースを有する複数の機器が相互にネットワーク接続することが可能となっている。例えばＵＰｎＰ（Universal Plug and Play）で用いられているＳＳＤＰ（Simple Service Discovery Protocol）はそれを実現するためのプロトコルの一つである。
【０００３】
ところで、このようなネットワークにおける通信処理において、ネットワークに接続されたデバイス間のコネクションが不通になる場合がある。ＳＳＤＰでは、デバイスがネットワークから離脱する場合にはssdp:bye byeメッセージによりそれを通知することとされているが、例えば突然の電源断によって、接続先のデバイスがssdp:bye byeメッセージを送信できずにネットワークから離脱することもあり得る。
【０００４】
このような場合、接続先のデバイスに関するエントリ情報は、接続時のままの誤った情報であるにも関わらず、上記離脱が検出できない以上、存在し続けるため、接続先のデバイスに送信すべきデータが、不通になっているコネクションに流れ、誤動作が広がってしまうことになる。
【０００５】
このような問題に関連して、下記特許文献１には、ネットワーク接続された外部装置から、ssdp:aliveメッセージを受信して接続登録を維持するとともに、当該ssdp:aliveメッセージの受信間隔よりも短い間隔で外部装置へssdp:discoverメッセージを送信して応答を確認（polling）することで、外部機器のネットワークからの離脱を速やかに認識可能とすることが記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−６５６８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記特許文献１に記載の技術では、外部機器と正常な通信状態であっても常に外部機器との間でポーリングを行っているため、ネットワーク負荷を増大させることになる。
【０００８】
以上のような事情に鑑み、本技術の目的は、ネットワーク負荷を極力抑えながらも、通信相手のデバイスに接続できない状態が検出された場合に当該デバイスに関する情報を誤りなく無効化することが可能な情報処理装置、情報処理方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上述の課題を解決するため、本技術の一形態に係る情報処理装置は、通信部と、記憶部と、制御部とを有する。
上記記憶部は、上記通信部により通信可能なデバイスが発見される度に生成される、上記デバイスに関するデバイス情報と、当該デバイス情報を上記発見毎に識別する識別子とを対応付けて記憶する。
上記制御部は、所定の通信路を介した上記デバイスとの通信が不可能な状態であることを検出した場合であって、かつ、上記識別子が上記記憶時から変化していないことを検出した場合に、上記デバイス情報を無効化する。
【００１０】
これにより情報処理装置は、ネットワーク負荷を極力抑えながらも、通信相手のデバイスに接続できない状態が検出された場合に当該デバイスに関する情報を誤りなく無効化することができ、無駄な通信処理を削減することができる。
【００１１】
上記記憶部は、上記識別子として、上記デバイスが発見された時刻を示すタイムスタンプを記憶してもよい。この場合上記制御部は、上記デバイス情報を利用して上記所定の通信路を介して上記デバイスとの接続を確立し、上記利用されたデバイス情報に対応付けられたタイムスタンプと、現在の上記デバイス情報に対応付けられたタイムスタンプとを比較し、両タイムスタンプが一致した場合に上記デバイス情報を無効化してもよい。
【００１２】
これにより情報処理装置は、タイムスタンプの比較により両者が一致した場合にはじめてデバイス情報を無効化することで、無効化の直前に、デバイスのネットワーク復帰によりデバイス情報が更新されて有効になっていた場合に、それが誤って無効化されてしまうのを防ぐことができる。
【００１３】
上記制御部は、上記所定の通信路を介して上記デバイスと接続を確立した後、当該デバイスとの接続が有効であることを確認するための確認信号を第１の時間間隔で上記デバイスへ送信するように上記通信部を制御してもよい。さらに制御部は、上記デバイスとの通信が不可能な状態であることを推測させる所定のイベントが発生した場合に、上記確認信号を送信する時間間隔を上記第１の時間間隔から当該第１の時間間隔よりも短い第２の時間間隔へ変更するように上記制御部を制御してもよい。さらに制御部は、上記第２の時間間隔での上記確認信号に対する上記デバイスからの応答信号が受信されない場合に、上記デバイスとの接続を破棄するように上記通信部を制御してもよい。
【００１４】
これにより情報処理装置は、デバイスとの不通が疑われるイベントが発生した場合に確認信号（Heart Beat信号やM-Search）の間隔を短くすることで、不通であることを迅速に検出し、接続を破棄することができる。ここで第１の時間間隔は例えば２０秒、第２の時間間隔は例えば３秒であるが、もちろんこれらに限られない。
【００１５】
上記制御部は、上記デバイスと接続を確立した後、上記所定の通信路以外の通信路を介して上記デバイスからデータを受信した場合に、上記時間間隔を変更するように上記通信部を制御可能であってもよい。
【００１６】
これにより情報処理装置は、所定の通信路でのコネクションがあるにも関わらずそれ以外の通信路を介してデータを受信したことをもって、不通を推測することができる。
【００１７】
上記通信部は、当該情報処理装置と上記デバイスとの間の通信を中継し上記情報処理装置と上記デバイスとの接続を管理する中継サーバと、上記所定の通信路とは異なる通信路を介して通信可能であってもよい。この場合上記制御部は、上記デバイスと接続を確立した後、上記デバイスから上記中継サーバを介して上記データを受信した場合に、上記時間間隔を変更するように上記通信部を制御可能であってもよい。
【００１８】
これにより情報処理装置は、デバイスとのＰ２Ｐ接続が確立しているにも関わらず中継サーバを介してデータを受信したことをもって、Ｐ２Ｐ接続の不通を推測することができる。
【００１９】
上記制御部は、上記接続を確立した上記デバイスから定期的に受信されるべき通知信号が受信されなくなった場合に、上記時間間隔を変更するように上記通信部を制御可能であってもよい。
【００２０】
これにより情報処理装置は、例えばSSDP Notify等の定期的な通知を受信しなくなったことをもって、不通を推測することができる。
【００２１】
上記制御部は、上記デバイスから上記確認信号を受信したときに当該確認信号に対する上記応答信号を上記デバイスへ送信するように上記通信部を制御可能であってもよい。
【００２２】
これにより情報処理装置は、デバイスとの接続の有効性を自ら確認することができるのみならず、デバイスからの確認信号に応答することで、上記有効性をデバイスにも確認させることができる。
【００２３】
本技術の他の形態に係る情報処理方法は、通信可能なデバイスが発見される度に生成される、上記デバイスに関するデバイス情報と、当該デバイス情報を上記発見毎に識別する識別子とを対応付けて記憶すること、及び、所定の通信路を介した上記デバイスとの通信が不可能な状態であることを検出した場合であって、かつ、上記識別子が上記記憶時から変化していないことを検出した場合に、上記デバイス情報を無効化することを含む。
【００２４】
本技術のまた別の形態に係るプログラムは、情報処理装置に、記憶ステップと無効化ステップとを実行させる。上記記憶ステップでは、通信可能なデバイスが発見される度に生成される、上記デバイスに関するデバイス情報と、当該デバイス情報を上記発見毎に識別する識別子とが対応付けられて記憶される。上記無効化ステップでは、所定の通信路を介した上記デバイスとの通信が不可能な状態であることが検出された場合であって、かつ、上記識別子が上記記憶時から変化していないことが検出された場合に、上記デバイス情報が無効化される。
【発明の効果】
【００２５】
以上のように、本技術によれば、ネットワーク負荷を極力抑えながらも、通信相手のデバイスに接続できない状態が検出された場合に当該デバイスに関する情報を誤りなく無効化することができる。
【図面の簡単な説明】
【００２６】
【図１】本技術の第１の実施形態に係るシステムの概要を示した図である。
【図２】本技術の第１の実施形態に係るデバイスのハードウェア構成を示した図である。
【図３】本技術の第１の実施形態に係るデバイスのソフトウェアモジュールの構成を示した図である。
【図４】本技術の第１の実施形態に係るデバイスが保持する近隣機器テーブルの例を示した図である。
【図５】本技術の第１の実施形態に係るデバイスが保持する通信路テーブルの例を示した図である。
【図６】本技術の第１の実施形態に係るデバイスの近隣機器テーブル及び通信路テーブルのキャッシュ処理の流れを示したフローチャートである。
【図７】本技術の第１の実施形態に係るデバイスによる近隣機器情報の削除処理の流れを示したフローチャートである。
【図８】本技術の第１の実施形態に係るデバイスによる近隣機器情報の削除処理を概念的に示した図である。
【図９】本技術の第２の実施形態に係るデバイスによる近隣機器情報の削除処理の流れを示したフローチャートである。
【図１０】本技術の第２の実施形態に係るデバイスによる近隣機器情報の削除処理を概念的に示した図である。
【発明を実施するための形態】
【００２７】
以下、本技術に係る実施形態を、図面を参照しながら説明する。
【００２８】
＜第１の実施形態＞
まず、本技術の第１の実施形態について説明する。
【００２９】
［システムの概要］
図１は、本実施形態に係る通信システムの概要を示した図である。
【００３０】
同図に示すように、本実施形態に係るシステムは、デバイス１００、デバイス２００及びクラウド（インターネット）上の中継サーバ３００から構成される。
【００３１】
同図では、デバイス１００、デバイス２００及び中継サーバ３００はそれぞれ１台ずつ示されているが、それぞれ複数台存在し得る。
【００３２】
デバイス１００及びデバイス２００は、中継サーバ３００と常時接続により通信可能であり、当該中継サーバ３００を介して互いに通信可能である。またデバイス１００とデバイス２００とは、可能な場合には直接、例えばＵＰｎＰによるＰ２Ｐ（Peer to Peer）通信を行う。
【００３３】
ここでデバイス１００及びデバイス２００は、例えばスマートフォン、デスクトップＰＣ、ノートブックＰＣ、タブレット、ＢＤＲ（Blu-ray （登録商標）Recorder）、ＴＶ、ストレージ装置、ゲーム機器、オーディオ機器等、あらゆるデバイスであり得る。
【００３４】
中継サーバ３００は、デバイス１００とデバイス２００との間の通信を中継し、両者間のコネクションを管理する。中継サーバ３００は、デバイス間の所定数のコネクション毎に設置されてもよい。
【００３５】
中継サーバ３００は、デバイス１００、デバイス２００及びその他のデバイスの接続情報（ＩＰアドレス、ポート番号等）を、各デバイスを識別するデバイスＩＤ等と対応付けて記憶している。
【００３６】
各デバイスが中継サーバ３００を介して通信する場合には、各デバイスは、自身のＩＤ及び送信先ＩＤを指定して中継サーバ３００へメッセージを送信し、中継サーバ３００は当該ＩＤに基づいて送信先ＩＤを有するデバイスへ当該メッセージを転送する。
【００３７】
また、中継サーバ３００の負荷を軽減するため、各デバイスは、可能な場合にはＰ２Ｐにより通信する。詳細は後述するが、このＰ２Ｐ通信には、近隣機器テーブル及び通信路テーブルという２つのテーブルが用いられる。各デバイスは、例えばSSDP Notifyによる近隣機器の検索により他のデバイスを発見すると、そのデバイスに関する情報（デバイス情報）を近隣機器テーブルのエントリに追加する。そして、接続元のデバイスは、上記近隣機器テーブルを用いて、接続先のデバイスと通信路（コネクション）を確立し、当該通信路に関する情報を通信路テーブルのエントリに追加する。
【００３８】
また、上記Ｐ２Ｐ通信が開始された通信路に関する情報は、中継サーバ３００にも通知される。中継サーバ３００は、当該情報を用いて、両デバイス間のコネクションを管理する。
【００３９】
詳細は後述するが、本実施形態では、デバイス１００は、上記Ｐ２Ｐ通信による通信が確立された後、Ｐ２Ｐ通信の不通が疑われる現象が発生した場合に、それを確認するための動作を実行した上で、不通が確認された場合には、上記通信路テーブルのエントリ及び近隣機器テーブルのエントリを削除する。これにより不通となった通信路による通信が無駄に繰り返されるのが防止される。
【００４０】
［デバイスのハードウェア構成］
図２は、上記デバイス１００のハードウェア構成を示した図である。同図に示すように、デバイス１００は、ＣＰＵ（Central Processing Unit）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３、入出力インタフェース１５、及び、これらを互いに接続するバス１４を備える。
【００４１】
ＣＰＵ１１は、必要に応じてＲＡＭ１３等に適宜アクセスし、各種演算処理を行いながら中継サーバ３００の各ブロック全体を統括的に制御する。ＲＯＭ１２は、ＣＰＵ１１に実行させるＯＳ、プログラムや各種パラメータなどのファームウェアが固定的に記憶されている不揮発性のメモリである。
【００４２】
ＲＡＭ１３は、ＣＰＵ１１の作業用領域等として用いられ、ＯＳ、実行中の各種アプリケーション、処理中の各種データを一時的に保持する。特に本実施形態においては、ＲＡＭ１３は、上記通信路テーブル及び近隣機器テーブル用のキャッシュとしても機能する。
【００４３】
入出力インタフェース１５には、表示部１６、操作受付部１７、記憶部１８、通信部１９等が接続される。
【００４４】
表示部１６は、例えばＬＣＤ（Liquid Crystal Display）、ＯＥＬＤ（Organic ElectroLuminescence Display）、ＣＲＴ（Cathode Ray Tube）等を用いた表示デバイスである。
【００４５】
操作受付部１７は、例えばタッチパネル、キーボード、ボタン、マウス等の入力装置である。操作受付部１７がタッチパネルである場合、それは表示部１６と一体化されている。
【００４６】
記憶部１８は、例えばＨＤＤ（Hard Disk Drive）、フラッシュメモリ（ＳＳＤ；Solid State Drive）、その他の固体メモリ等の不揮発性メモリである。当該記憶部１８には、ＯＳや、本実施形態におけるデバイス情報（各テーブルのエントリ）の削除処理に必要な各種ソフトウェアや各種データが記憶される。
【００４７】
通信部１９は、ネットワークに接続するためのＮＩＣ（Network Interface Card）や無線通信モジュールであり、上記外部デバイス２００や中継サーバ３００との間の通信処理を担う。
【００４８】
図示しないが、デバイス２００及び中継サーバ３００のハードウェア構成は、基本的にデバイス１００及び２００のそれと略同様である。
【００４９】
［デバイスのソフトウェア構成］
図３は、上記デバイス１００が有するソフトウェアモジュールの構成を示した図である。
【００５０】
同図に示すように、デバイス１００は、通信部１１０、近隣機器情報制御部１２０、近隣機器探索部１３０、近隣機器情報記憶部１４０、通信経路判定部１５０、通信路管理部１６０、通信路情報記憶部１７０、Heart Beat制御部１８０の各ソフトウェアモジュールを有する。
【００５１】
通信部１１０は、デバイス２００及び中継サーバ３００との通信処理を制御する。
【００５２】
近隣機器探索部１３０は、近隣機器情報制御部１２０の指示を受けて、例えばSSDP Notifyに基づいて近隣のデバイス（例えばデバイス２００）を探索する。
【００５３】
近隣機器情報制御部１２０は、上記近隣機器探索部１３０の探索処理を制御するとともに、探索により発見されたデバイスに関する情報を近隣機器情報記憶部１４０に記憶し、管理する。
【００５４】
近隣機器情報記憶部１４０は、上記発見されたデバイス情報のエントリからなる近隣機器テーブルを記憶する。
【００５５】
通信経路判定部１５０は、デバイス２００等の他のデバイスが、どの通信路を介してデバイス１００に接続されたかを判定する。
【００５６】
通信路管理部１６０は、デバイス２００等の他のデバイスとの間における通信路（コネクション）の確立及び切断を制御し、当該通信路に関する情報を通信路情報記憶部１７０に記憶させる。
【００５７】
通信路情報記憶部１７０は、上記コネクションが確立された通信路及びその通信相手であるデバイスに関する情報のエントリからなる上記通信路テーブルを記憶する。
【００５８】
Heart Beat制御部１８０は、コネクションを確立したデバイスとの間で、そのコネクションが有効であるか否かを確認するためのHeart Beat通信を行うとともに、上記通信経路判定部１５０による判定結果に応じて、そのHeart Beat通信の時間間隔を制御する。
【００５９】
ここで、本実施形態において実行されるHeart Beatとしては、一般的なレスポンスレスのモデルではなく、レスポンスモデルが採用されている。
【００６０】
レスポンスレスモデルのHeart Beatでは、双方のデバイスが独立して一定間隔でパケットを送信し、受信したデバイスは、送信側から一定間隔でHeart Beatを受信できなくなった場合に、異常が発生したと判断している。
【００６１】
一方、本実施形態で採用されるレスポンスモデルのHeart Beatでは、双方のデバイスが一定間隔でパケットを送信し、それを受信したデバイスは、すぐにレスポンスを返す。したがって送信側のデバイスは、そのレスポンスが無い場合には即座に異常が発生したことを把握することができる。
【００６２】
このモデルが採用されることで、各デバイスが能動的にHeart Beat間隔を変更できる。
【００６３】
［近隣機器テーブル及び通信路テーブル］
次に、上記近隣機器テーブル及び通信路テーブルについて説明する。
【００６４】
図４は、デバイス１００が保持する近隣機器テーブルの例を示した図である。
【００６５】
同図に示すように、近隣機器テーブルには、例えばSSDP Notifyによって発見された近隣のデバイス（例えばデバイス２００）の機器ＩＤ、ＩＰアドレス及び発見時間（タイムスタンプ）が対応付けされてキャッシュされる。
【００６６】
発見されたデバイスが同一で、発見時間が異なる場合は、発見時間が更新される。
【００６７】
ここで、当該近隣機器テーブルにエントリされるデバイスは、必ずしもデバイス１００の近隣に存在するデバイスでなくてもよく、例えばクラウド上等、遠隔地に存在するデバイスがエントリされてもよい。
【００６８】
図５は、デバイス１００が保持する通信路テーブルの例を示した図である。
【００６９】
同図に示すように、通信路テーブルには、他のデバイス（例えばデバイス２００）とコネクションを確立した通信路を識別する通信路ＩＤ、当該他のデバイスの機器ＩＤ、当該通信路の確立に上記近隣機器テーブルのエントリ情報（SSDP情報）が利用されたか否かを示すフラグ、及び当該利用されたエントリ情報に記憶された発見時間がキャッシュされる。
【００７０】
［デバイスの動作］
次に、以上のように構成されたシステムにおけるデバイス１００の動作について説明する。本実施形態及び他の実施形態において、デバイス１００の動作は、ＣＰＵ１１と、その制御下において実行される上記各ソフトウェアモジュールとで協働して行われる。
【００７１】
（近隣機器テーブル及び通信路テーブルのキャッシュ処理）
まず、デバイス１００による近隣機器テーブル及び通信路テーブルのキャッシュ処理について説明する。図６は、当該キャッシュ処理の流れを示したフローチャートである。
【００７２】
同図に示すように、デバイス１００の近隣機器探索部１３０は、他のデバイスからのSSDP Notifyを待機し（ステップ６１）、SSDP Notifyを受信すると（ステップ６２）、近隣機器情報制御部１２０は、それによりデバイスを発見してデバイスの情報（機器ＩＤ、ＩＰアドレス）を抽出する（ステップ６３）。
【００７３】
続いて近隣機器情報制御部１２０は、上記抽出した情報と、上記発見時の時間情報とを近隣機器テーブルにキャッシュする（ステップ６４）。
【００７４】
続いて通信路管理部１６０は、上記近隣機器テーブルにキャッシュされた情報を利用して、エントリ内のデバイスと通信路を確立する（ステップ６５）。
【００７５】
そして通信路管理部１６０は、上記通信路を確立したデバイスに関する情報（通信路ＩＤ、機器ＩＤ、SSDP情報の利用の有無、発見時間）を通信路テーブルにキャッシュする（ステップ６６）。
【００７６】
（不通時における近隣機器テーブル情報の削除処理）
次に、上記他のデバイスと通信路を確立した後に、その通信路が不通となった場合のデバイス１００による近隣機器情報の削除処理について説明する。図７は、当該近隣機器情報の削除処理の流れを示したフローチャートである。また図８は、当該近隣機器情報の削除処理を概念的に示した図である。
【００７７】
通信路確立後は、Heart Beat制御部１８０によるHeart Beat通信も所定間隔（例えば20秒間隔）で実行されているものとする。
【００７８】
図７に示すように、デバイス１００の通信経路判定部１５０は、接続先のデバイス（例えばデバイス２００）からの通信データを待機し（ステップ７２）、通信データを受信すると（ステップ７２）、それが中継サーバ３００経由で受信されたものか否かを判断する（ステップ７３）。
【００７９】
上記デバイス２００からの通信データが中継サーバ経由であると判断した場合（Ｙｅｓ）、Heart Beat制御部１８０は、接続先のデバイスが近隣機器であるか否かを判断する（ステップ７４）。この処理は、近隣機器以外のデバイスについては同図の処理を適用しないための処理であるが、近隣機器以外のデバイスについてもコネクション異常を検知してもよい場合には、当該ステップ７４の処理は不要である。
【００８０】
続いてHeart Beat制御部１８０は、上記通信データの送信元のデバイスとの間に、Ｐ２Ｐによる通信路が確立されているか（通信路テーブルにエントリがあるか）否かを判断する（ステップ７５）。
【００８１】
このように、通信路テーブル上はＰ２Ｐ通信が確立されているにも関わらず中継サーバ３００経由で通信データを受信するケースは、例えば、図８に示すように、接続先のデバイスがスマートフォンであり、移動等の理由により当該デバイスがＷＬＡＮから突然３Ｇ／ＬＴＥ（Long Term Evolution）ネットワークに切り替わった場合等が考えられる。
【００８２】
上記ステップ７５において通信路が確立されていると判断した場合（Ｙｅｓ）、Heart Beat制御部１８０は、接続先のデバイスへのHeart Beatを短くする（例えば２０秒から３秒へ）（ステップ７６）。
【００８３】
そして、当該Heart Beatに対するレスポンスが例えば数秒以内に無い場合（Heart Beat異常の場合）（ステップ７８のＹｅｓ）、通信路管理部１６０は、接続先のデバイスとの通信路を破棄し、上記通信路テーブルから該当するエントリを削除する（ステップ７９）（図８参照）。
【００８４】
一方、Heart Beatに対するレスポンスがあり、異常無しと判断された場合には（ステップ７８のＮｏ）、Heart Beat制御部１８０は、Heart Beat間隔を以前の間隔（例えば２０秒）に戻す（ステップ７７）。
【００８５】
また、近隣機器情報制御部１２０は、上記通信路テーブルにおける発見時間と、当該エントリに対応するデバイスの、現在の近隣機器テーブルにおけるエントリ内の発見時間とを比較する（ステップ８０）。
【００８６】
両者が一致する場合（変更がない場合）（Ｙｅｓ）には、近隣機器テーブルから当該エントリを削除する（ステップ８１）（図８参照）。
【００８７】
ここで、発見時間が比較されるのは、例えば上記エントリの削除を試みる直前に情報が更新されて（例えばデバイスが３Ｇネットワークから再度ＷＬＡＮに復帰して）、コネクションが有効になっている可能性があるからである。
【００８８】
すなわち、発見時間を比較しない場合には、実際には有効な通信路情報が誤って削除されてしまう可能性があるが、当該比較処理により、それが防止されることになる。
【００８９】
上記ステップ８０において両発見時間が一致しない場合には（Ｎｏ）、エントリの破棄は行われず、そのままコネクションが維持される。
【００９０】
このように、デバイス１００は、不通が推測される現象（Ｐ２Ｐ通信確立後の中継サーバ３００からのデータ受信）が発生した場合にはじめて、それをHeart Beat間隔の短縮により確認しているため、常時Heart Beatを短い間隔で送信する場合に比べて、ネットワーク負荷が軽減される。
【００９１】
＜第２の実施形態＞
次に、本技術の第２の実施形態について説明する。以下の説明において、上記第１の実施形態と同様の構成となる箇所については説明を省略する。
【００９２】
上述の第１の実施形態では、デバイス１００は、上記Ｐ２Ｐ通信による通信が確立された後、Ｐ２Ｐ通信の不通が疑われる現象が発生した場合（通信データを中継サーバ３００から受信した場合）に、それを確認するための動作（Heart Beat間隔の短縮）を実行した上で、不通が確認された場合には、上記通信路テーブルのエントリ及び近隣機器テーブルのエントリを削除していた。
【００９３】
一方、本実施形態では、デバイス１００は、上記近隣機器テーブルに基づいてＰ２Ｐ通信の接続確立を試みるもののそれが失敗した場合に、近隣機器テーブルのエントリを削除することとしている。その際、デバイス１００は、上記第１の実施形態と同様に、エントリの削除の際に、タイムスタンプの比較によって、接続失敗時の近隣機器テーブルのエントリと削除時の同エントリとが同一であることを確認し、同一でない場合には削除は実行しないこととしている。
【００９４】
図９は、本実施形態に係るデバイス１００による近隣機器情報の削除処理の流れを示したフローチャートである。また図１０は、近隣機器情報の削除処理を概念的に示した図である。
【００９５】
図９に示すように、まず、デバイス１００の近隣機器情報制御部１２０は、ＳＳＤＰ情報のキャッシュにより近隣機器テーブルを作成し、通信路管理部１６０は、待機の後（ステップ９１）、接続を開始する（ステップ９２）。
【００９６】
続いて通信路管理部１６０は、上記接続が失敗したか否かを判断し（ステップ９３）、失敗した場合には（Ｙｅｓ）、上記失敗した接続が、近隣機器テーブルのエントリを利用したものであったか否かを判断する（ステップ９４）。このような接続の失敗の理由としては、上記第１の実施形態と同様、デバイス２００がＷＬＡＮから３Ｇ／ＬＴＥネットワークへ突然切り替わったこと等が挙げられる（図１０参照）。
【００９７】
接続が近隣機器テーブルを利用したものであった場合（Ｙｅｓ）、近隣機器情報制御部１２０は、利用した近隣機器テーブルのエントリに含まれる発見時間と、現在の近隣機器テーブルのエントリに含まれる発見時間とを比較し、両者が等しいか否かを判断する（ステップ９５）。
【００９８】
そして近隣機器情報制御部１２０は、両発見時間が等しいと判断した場合には（Ｙｅｓ）、近隣機器テーブルから、上記接続を失敗したデバイスのエントリを削除する（ステップ９６）（図１０参照）。
【００９９】
[まとめ]
以上説明したように、本技術の第１の実施形態及び第２の実施形態によれば、デバイス１００は、Ｐ２Ｐ通信が可能なデバイスが発見される度に生成されるデバイス情報と、当該デバイス情報を上記発見毎に識別する識別子（タイムスタンプ）とを対応付けて記憶しておき、Ｐ２Ｐ通信が不可能な状態であることを検出した場合であって、かつ、上記識別子が上記記憶時から変化していないことを検出した場合に、上記デバイス情報を無効化（削除）する。
【０１００】
これによりデバイス１００は、ネットワーク負荷を極力抑えながらも、通信相手のデバイスに接続できない状態が検出された場合に当該他のデバイスに関する情報を誤りなく無効化することができ、無駄な通信処理を削減することができる。
【０１０１】
［変形例］
本技術は上述の実施形態にのみ限定されるものではなく、本技術の要旨を逸脱しない範囲内において種々変更され得る。
【０１０２】
上述の第１の実施形態では、Ｐ２Ｐ通信の確立後に中継サーバ３００経由で通信データが受信された場合にHeart Beatの間隔が短縮されたが、Heart Beat間隔の短縮のトリガとなる現象はこれに限られない。例えば、中継サーバ３００以外のデバイスを経由して、またはＰ２Ｐによる通信路以外の通信路を介して、データが受信された事実がトリガとされてもよい。また、Ｐ２Ｐ通信確立後に定期的に受け取るはずのSSDP Notifyを接続先のデバイスから受け取らなくなった事実がトリガとされてもよい。
【０１０３】
上述の第１の実施形態では、Ｐ２Ｐ通信の確立後の中継サーバ３００からデータを受信した場合に、Heart Beatの送信間隔が短縮された。しかし、その処理の代わりに、デバイス１００は、例えば、SSDPのM-Searchを意図的に送信する等、他の処理によってデバイス２００との不通を確認しても構わない。
【０１０４】
さらに、デバイス１００は、Heart Beatの間隔を短くするだけでなく、その期間を設けてもよい。例えば、２秒間隔でのHeart BeatをＸ秒間（またはＹ回）行ってもよい。
【０１０５】
上述の第１及び第２の実施形態では、近隣機器テーブル作成後、デバイス２００との普通が確認された場合には、そのエントリが削除された。しかし、デバイス１００は、エントリを削除するのではなく、それに「無効」のフラグをつけるだけでもよい。すなわち、上述の各実施形態におけるデバイス情報の削除処理は、デバイス情報の無効化処理の一形態である。また、確認の結果、デバイス２００との接続が有効であることが判明した場合、デバイス１００は、エントリはそのまま維持するものの、疑いがあったことは記録しておいてもよい。
【０１０６】
上述の第１及び第２の実施形態では、近隣機器テーブル及び通信路テーブルのエントリは発見時間（タイムスタンプ）によって識別されていたが、例えば当該エントリが記憶されたメモリ上のアドレス等、他の識別子によってエントリが識別されても構わない。
【０１０７】
上述の各実施形態では、上記図２で説明した各ハードウェアと図３で示したソフトウェアモジュールとによって本技術が実施されたが、本技術は、当該ソフトウェアモジュールに代わる専用回路等の他のハードウェアによって実施されても構わない。
【０１０８】
［その他］
本技術は以下のような構成も採ることができる。
（１）
通信部と、
前記通信部により通信可能なデバイスが発見される度に生成される、前記デバイスに関するデバイス情報と、当該デバイス情報を前記発見毎に識別する識別子とを対応付けて記憶する記憶部と、
所定の通信路を介した前記デバイスとの通信が不可能な状態であることを検出した場合であって、かつ、前記識別子が前記記憶時から変化していないことを検出した場合に、前記デバイス情報を無効化する制御部と
を具備する情報処理装置。
（２）
上記（１）に記載の情報処理装置であって、
前記記憶部は、前記識別子として、前記デバイスが発見された時刻を示すタイムスタンプを記憶し、
前記制御部は、前記デバイス情報を利用して前記所定の通信路を介して前記デバイスとの接続を確立し、前記利用されたデバイス情報に対応付けられたタイムスタンプと、現在の前記デバイス情報に対応付けられたタイムスタンプとを比較し、両タイムスタンプが一致した場合に前記デバイス情報を無効化する
情報処理装置。
（３）
上記（１）または（２）に記載の情報処理装置であって、
前記制御部は、
前記所定の通信路を介して前記デバイスと接続を確立した後、当該デバイスとの接続が有効であることを確認するための確認信号を第１の時間間隔で前記デバイスへ送信し、
前記デバイスとの通信が不可能な状態であることを推測させる所定のイベントが発生した場合に、前記確認信号を送信する時間間隔を前記第１の時間間隔から当該第１の時間間隔よりも短い第２の時間間隔へ変更し、
前記第２の時間間隔での前記確認信号に対する前記デバイスからの応答信号が受信されない場合に、前記デバイスとの接続を破棄する
ように前記通信部を制御可能である
情報処理装置。
（４）
上記（３）に記載の情報処理装置であって、
前記制御部は、前記デバイスと接続を確立した後、前記所定の通信路以外の通信路を介して前記デバイスからデータを受信した場合に、前記時間間隔を変更するように前記通信部を制御可能である
情報処理装置。
（５）
上記（４）に記載の情報処理装置であって、
前記通信部は、当該情報処理装置と前記デバイスとの間の通信を中継し前記情報処理装置と前記デバイスとの接続を管理する中継サーバと、前記所定の通信路とは異なる通信路を介して通信可能であり、
前記制御部は、前記デバイスと接続を確立した後、前記デバイスから前記中継サーバを介して前記データを受信した場合に、前記時間間隔を変更するように前記通信部を制御可能である
情報処理装置。
（６）
上記（３）に記載の情報処理装置であって、
前記制御部は、前記接続を確立した前記デバイスから定期的に受信されるべき通知信号が受信されなくなった場合に、前記時間間隔を変更するように前記通信部を制御可能である
情報処理装置。
（７）
上記（３）〜（６）のいずれかに記載の情報処理装置であって、
前記制御部は、前記デバイスから前記確認信号を受信したときに当該確認信号に対する前記応答信号を前記デバイスへ送信するように前記通信部を制御可能である
情報処理装置。
【符号の説明】
【０１０９】
１１…ＣＰＵ
１３…ＲＡＭ
１８…記憶部
１９…通信部
１００，２００…デバイス
１１０…通信部
１２０…近隣機器情報制御部
１３０…近隣機器探索部
１４０…近隣機器情報記憶部
１５０…通信経路判定部
１６０…通信路管理部
１７０…通信路情報記憶部
１８０…Heart Beat制御部
３００…中継サーバ
【図１】
2015041947.tif 000003
【図２】
2015041947.tif 000004
【図３】
2015041947.tif 000005
【図４】
2015041947.tif 000006
【図５】
2015041947.tif 000007
【図６】
2015041947.tif 000008
【図７】
2015041947.tif 000009
【図８】
2015041947.tif 000010
【図９】
2015041947.tif 000011
【図１０】
2015041947.tif 000012