(57)【特許請求の範囲】
【請求項１】
情報処理装置であって、
ネットワーク上の中継サーバを介して他の情報処理装置と通信可能であり、前記他の情報処理装置から送信された当該情報処理装置宛のデータの存在を通知する通知メッセージを前記中継サーバから受信可能な通信部と、
前記通信部と前記中継サーバとの通信を中継する通信中継装置の属性情報を含む、前記通信部の通信環境を示す通信環境情報を取得可能であり、
前記取得された通信環境情報に基づいて、前記中継サーバとの接続を維持するための維持信号を送信する送信間隔を算出可能であり、
前記算出された送信間隔で、前記維持信号を前記中継サーバへ送信するように前記通信部を制御可能であり、
前記中継サーバが当該情報処理装置に接続して前記通知メッセージを送信するために設定すべき設定情報として、異なる複数の通信環境に応じた複数の設定情報を予め生成可能であり、かつ、当該生成された複数の設定情報を前記中継サーバへ送信するように前記通信部を制御可能な制御部と
を具備し、
前記中継サーバは、前記送信された複数の設定情報を記憶し、当該記憶された複数の設定情報のうち、少なくとも１つに基づいて前記通知メッセージを送信する
情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記制御部は、前記通信部による前記中継サーバとの接続後、前記通信中継装置により当該接続が切断された場合に、前記接続から前記切断までの継続時間を算出し、当該算出された継続時間を基に前記維持信号の送信間隔を算出する
情報処理装置。
【請求項３】
請求項１に記載の情報処理装置であって、
前記通信部は、前記ネットワーク上に存在する接続テストサーバと通信可能であり、
前記制御部は、前記通信部による前記接続テストサーバとの接続後、前記通信中継装置により当該接続が切断された場合に、前記接続から前記切断までの継続時間を算出し、当該算出された継続時間を基に前記維持信号の送信間隔を算出する
情報処理装置。
【請求項４】
請求項１に記載の情報処理装置であって、
前記制御部は、前記通信環境の変化に応じて、前記生成された設定情報を更新可能であり、かつ、当該更新された設定情報を前記中継サーバへ送信するように前記通信部を制御可能であり、
前記中継サーバは、前記更新され送信された設定情報により、前記記憶された設定情報を更新する
情報処理装置。
【請求項５】
請求項１に記載の情報処理装置であって、
前記制御部は、
前記通信環境の変化した場合であって、前記送信された複数の設定情報のいずれもが当該変化後の通信環境に対応していない場合に、当該変化後の通信環境に応じた新たな設定情報を生成可能であり、
前記生成された新たな設定情報を前記中継サーバへ送信するように前記通信部を制御可能である
情報処理装置。
【請求項６】
請求項１に記載の情報処理装置であって、
記憶部をさらに具備し、
前記通信部は、前記中継サーバから、当該中継サーバに接続されている当該情報処理装置を含む複数の情報処理装置の数に応じて生成された、当該情報処理装置と前記中継サーバとの接続が切断された場合に当該情報処理装置が前記中継サーバへ再接続するタイミングに関連する再接続情報を定期的に受信可能であり、
前記制御部は、
前記定期的に受信される再接続情報のうち最新の再接続情報を記憶するように前記記憶部を制御可能であり、
当該情報処理装置と前記中継サーバとの接続が切断された場合に、前記記憶された再接続情報に基づいて前記中継サーバと再接続するように前記通信部を制御可能である
情報処理装置。
【請求項７】
請求項６に記載の情報処理装置であって、
前記通信部は、前記再接続情報として、前記切断から前記再接続までの最大待ち時間を示す情報を受信し、
前記制御部は、
乱数を用いて前記最大待ち時間内の待ち時間を決定し、
前記決定された待ち時間の経過後に前記中継サーバと再接続するように前記通信部を制御する
情報処理装置。
【請求項８】
請求項７に記載の情報処理装置であって、
前記中継サーバは、前記送信された維持信号に対して、前記最大待ち時間を示す情報を含むＡＣＫを返信し、
前記通信部は、前記ＡＣＫを受信し、
前記制御部は、前記受信されたＡＣＫから前記最大待ち時間を示す情報を取得する
情報処理装置。
【請求項９】
第１の情報処理装置と第２の情報処理装置とを具備する情報処理システムであって、
前記第１の情報処理装置は、
前記第２の情報処理装置を介して他の情報処理装置と通信可能であり、前記他の情報処理装置から送信された前記第１の情報処理装置宛のデータの存在を通知する通知メッセージを前記第２の情報処理装置から受信可能な第１の通信部と、
前記第１の情報処理装置と前記第２の情報処理装置との通信を中継する通信中継装置の属性情報を含む、前記第１の通信部の通信環境を示す通信環境情報を取得可能であり、
前記取得された通信環境情報に基づいて、前記第２の情報処理装置との接続を維持するための維持信号を送信する送信間隔を算出可能であり、
前記算出された送信間隔で、前記維持信号を前記第２の情報処理装置へ送信するように前記第１の通信部を制御可能であり、
前記第２の情報処理装置が前記第１の情報処理装置に接続して前記通知メッセージを送信するために設定すべき設定情報として、異なる複数の通信環境に応じた複数の設定情報を予め生成可能であり、かつ、当該生成された複数の設定情報を前記第２の情報処理装置へ送信するように前記第１の通信部を制御可能な第１の制御部と
を有し、
前記第２の情報処理装置は、
前記第１の通信部と通信して、前記第１の情報処理装置と前記他の情報処理装置との間の通信を中継可能な第２の通信部と、
前記送信された複数の設定情報を記憶する記憶部と、
前記第１の情報処理装置から送信された維持信号を受信し、当該維持信号に対するＡＣＫを前記第１の情報処理装置へ送信し、前記記憶された複数の設定情報のうち、少なくとも１つに基づいて前記通知メッセージを送信するように、前記第２の通信部を制御可能な第２の制御部と
を有する
情報処理システム。
【請求項１０】
ネットワーク上の中継サーバを介して他の情報処理装置と通信可能な情報処理装置に接続された、前記情報処理装置と前記中継サーバとの通信を中継する通信中継装置の属性情報を含む、前記情報処理装置の通信環境を示す通信環境情報を取得し、
前記取得された通信環境情報に基づいて、前記中継サーバとの接続を維持するための維持信号を送信する送信間隔を算出し、
前記算出された送信間隔で、前記維持信号を前記中継サーバへ送信し、
前記他の情報処理装置から送信された前記情報処理装置宛のデータの存在を通知する通知メッセージを前記中継サーバから受信し、
前記中継サーバが前記情報処理装置に接続して前記通知メッセージを送信するために設定すべき設定情報として、異なる複数の通信環境に応じた複数の設定情報を予め生成し、
前記生成された複数の設定情報を前記中継サーバへ送信し、
前記中継サーバは、前記送信された複数の設定情報を記憶し、当該記憶された複数の設定情報のうち、少なくとも１つに基づいて前記通知メッセージを送信する
情報処理方法。
【請求項１１】
ネットワーク上の中継サーバを介して他の情報処理装置と通信可能な情報処理装置に、
前記情報処理装置と前記中継サーバとの通信を中継する通信中継装置の属性情報を含む、前記情報処理装置の通信環境を示す通信環境情報を取得するステップと、
前記取得された通信環境情報に基づいて、前記中継サーバとの接続を維持するための維持信号を送信する送信間隔を算出するステップと、
前記算出された送信間隔で、前記維持信号を前記中継サーバへ送信するステップと、
前記他の情報処理装置から送信された前記情報処理装置宛のデータの存在を通知する通知メッセージを前記中継サーバから受信するステップと、
前記中継サーバが前記情報処理装置に接続して前記通知メッセージを送信するために設定すべき設定情報として、異なる複数の通信環境に応じた複数の設定情報を予め生成するステップと、
前記生成された複数の設定情報を前記中継サーバへ送信するステップと
を実行させるプログラムであって、
前記中継サーバは、前記送信された複数の設定情報を記憶し、当該記憶された複数の設定情報のうち、少なくとも１つに基づいて前記通知メッセージを送信する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、通信中継装置を介してネットワーク上の他の情報処理装置と通信可能な情報処理装置、当該情報処理装置を含む情報処理システム、当該情報処理装置における情報処理方法及び当該情報処理装置で実行されるプログラムに関する。
【背景技術】
【０００２】
ＮＡＴルータやプロキシサーバ等の通信中継装置を経由した情報処理装置間の通信処理においては、一定時間通信がない場合、通信中継装置が接続を切断することがある。そこで、通信中継装置は、一定の時間間隔で接続維持のための通信（KeepAlive、HeartBeat通信）を行う。KeepAliveについては、例えば、下記特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２３２３５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、通信中継装置が接続を切断するまでの時間は、通信中継装置やそれが属する通信環境によって大きく異なる。それにも関わらず、従来の通信中継装置は、一律の時間間隔でKeepAlive通信を行うため、接続維持のために本来必要な頻度以上に通信が行われており、通信負荷及びトラフィックの増加を招いていた。【０００５】
以上のような事情に鑑み、本技術の目的は、情報処理装置間の接続を維持するための通信処理による通信負荷を軽減することが可能な情報処理装置、情報処理システム、情報処理方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上述の課題を解決するため、本技術の一形態に係る情報処理装置は、通信部と制御部とを有する。上記通信部は、ネットワーク上の中継サーバを介して他の情報処理装置と通信可能である。上記制御部は、上記通信部と上記中継サーバとの通信を中継する通信中継装置の属性情報を含む、上記通信部の通信環境を示す通信環境情報を取得可能である。また制御部は、上記取得された通信環境情報に基づいて、上記中継サーバとの接続を維持するための維持信号を送信する送信間隔を算出可能である。さらに制御部は、上記算出された送信間隔で、上記維持信号を上記中継サーバへ送信するように上記通信部を制御可能である。【０００７】
この構成によれば、情報処理装置は、通信中継装置の通信環境に応じて維持信号の送信間隔を決定することができるため、通信環境によらずに一律に維持信号を送信する場合に比べて、維持信号の送信処理による通信負荷を軽減することができる。【０００８】
上記制御部は、上記通信部による上記中継サーバとの接続後、上記通信中継装置により当該接続が切断された場合に、上記接続から上記切断までの継続時間を算出し、当該算出された継続時間を基に上記維持信号の送信間隔を算出してもよい。【０００９】
これにより情報処理装置は、中継サーバとの過去の通信における接続切断までの時間に基づいて維持信号の送信間隔を算出することで、次回の中継サーバとの通信においては適切な間隔での維持信号の送信により接続を維持することができる。【００１０】
上記通信部は、上記ネットワーク上に存在する接続テストサーバと通信可能であってもよい。この場合上記制御部は、上記通信部による上記接続テストサーバとの接続後、上記通信中継装置により当該接続が切断された場合に、上記接続から上記切断までの継続時間を算出し、当該算出された継続時間を基に上記維持信号の送信間隔を算出してもよい。【００１１】
これにより情報処理装置は、中継サーバと通信する前に接続テストサーバと通信し、それとの接続切断までの時間に基づいて維持信号の送信間隔を算出することで、中継サーバとは初回から一度も接続を切断することなく通信を行うことができる。【００１２】
上記通信部は、上記他の情報処理装置から送信された当該情報処理装置宛のデータの存在を通知する通知メッセージを上記中継サーバから受信可能であってもよい。この場合上記制御部は、上記中継サーバが当該情報処理装置に接続して上記通知メッセージを送信するために設定すべき設定情報を、上記通信環境に応じて生成可能であり、かつ、当該生成された設定情報を上記中継サーバへ送信するように上記通信部を制御可能であってもよい。この場合上記中継サーバは、上記送信された設定情報を記憶し、当該記憶された設定情報に基づいて上記通知メッセージを送信してもよい。【００１３】
これにより情報処理装置は、通信環境に応じた設定情報を中継サーバへ送信し、通知メッセージを確実に受信することができる。【００１４】
上記制御部は、上記通信環境の変化に応じて、上記生成された設定情報を更新可能であり、かつ、当該更新された設定情報を上記中継サーバへ送信するように上記通信部を制御可能であってもよい。この場合上記中継サーバは、上記更新され送信された設定情報により、上記記憶された設定情報を更新してもよい。【００１５】
これにより情報処理装置は、たとえば情報処理装置が携帯端末である場合等、通信環境が変化し得る場合であっても、その変化に応じて設定情報を更新して中継サーバに設定させることができる。【００１６】
上記制御部は、上記通信環境の変化に応じて生成され得る複数の上記設定情報を予め生成可能であってもよい。また制御部は、上記生成された複数の設定情報を上記中継サーバへ送信するように上記通信部を制御可能であってもよい。また制御部は、上記通信環境の変化した場合であって、上記送信された複数の設定情報のいずれもが当該変化後の通信環境に対応していない場合に、当該変化後の通信環境に応じた新たな設定情報を生成可能であってもよい。さらに制御部は、上記生成された新たな設定情報を上記中継サーバへ送信するように上記通信部を制御可能であってもよい。この場合上記中継サーバは、上記送信された複数の設定情報を記憶し、当該記憶された複数の設定情報のうち、少なくとも１つに基づいて上記通知メッセージを送信してもよい。【００１７】
これにより、情報処理装置は、複数の通信環境に応じた複数の設定情報を予めサーバへ送信しておくため、通信環境が変化しても、その都度設定情報を中継サーバへ送信する必要がなくなり、その送信処理に係る当該情報処理装置及びサーバの負荷を軽減できる。【００１８】
上記情報処理装置は、記憶部をさらに具備してもよい。この場合上記通信部は、上記中継サーバから、当該中継サーバに接続されている当該情報処理装置を含む複数の情報処理装置の数に応じて生成された、当該情報処理装置と上記中継サーバとの接続が切断された場合に当該情報処理装置が上記中継サーバへ再接続するタイミングに関連する再接続情報を定期的に受信可能であってもよい。この場合上記制御部は、上記定期的に受信される再接続情報のうち最新の再接続情報を記憶するように上記記憶部を制御可能であってもよい。さらに制御部は、当該情報処理装置と上記中継サーバとの接続が切断された場合に、上記記憶された再接続情報に基づいて上記中継サーバと再接続するように上記通信部を制御可能であってもよい。【００１９】
これにより情報処理装置は、何らかの障害により中継サーバとの接続が切断された場合に、その時点で記憶されている最新の再接続情報に基づいて中継サーバと再接続する。したがって、中継サーバに接続されていた多数の他の情報処理緒装置が同じタイミングで中継サーバに再接続を要求することがなくなり、それによる接続エラーの発生が防止されるとともに、中継サーバの負荷が軽減される。【００２０】
上記通信部は、上記再接続情報として、上記切断から上記再接続までの最大待ち時間を示す情報を受信してもよい。この場合上記制御部は、乱数を用いて上記最大待ち時間内の待ち時間を決定してもよい。さらに制御部は、上記決定された待ち時間の経過後に上記中継サーバと再接続するように上記通信部を制御してもよい。【００２１】
これにより情報処理装置は、中継サーバから最大待ち時間情報を受信することで、その範囲内でランダムに待ち時間を決定するだけで、サーバにおける更なる通信エラーを防ぐことができる。【００２２】
上記中継サーバは、上記送信された維持信号に対して、上記最大待ち時間を示す情報を含むＡＣＫを返信してもよい。この場合上記通信部は、上記ＡＣＫを受信し、上記制御部は、上記受信されたＡＣＫから上記最大待ち時間を示す情報を取得してもよい。【００２３】
これにより、中継サーバからの最大待ち時間を示す情報の送信処理によって通信負荷が増大するのが防止される。【００２４】
本技術の他の形態に係る情報処理システムは、第１の情報処理装置と第２の情報処理装置とを有する。上記第１の情報処理装置は、第１の通信部と、第１の制御部とを有する。上記第１の通信部は、上記第２の情報処理装置を介して他の情報処理装置と通信可能である。上記第１の制御部は、上記第１の情報処理装置と上記第２の情報処理装置との通信を中継する通信中継装置の属性情報を含む、上記第１の通信部の通信環境を示す通信環境情報を取得可能である。また第１の制御部は、上記取得された通信環境情報に基づいて、上記第２の情報処理装置との接続を維持するための維持信号を送信する送信間隔を算出可能である。さらに第１の制御部は、上記算出された送信間隔で、上記維持信号を上記第２の情報処理装置へ送信するように上記通信部を制御可能である。上記第２の情報処理装置は、第２の通信部と、第２の制御部とを有する。上記第２の通信部は、上記第１の通信部と通信して、上記第１の情報処理装置と上記他の情報処理装置との間の通信を中継可能である。上記第２の制御部は、上記第１の情報処理装置から送信された維持信号を受信し、当該維持信号に対するＡＣＫを上記第１の情報処理装置へ送信するように、上記第２の通信部を制御可能である。【００２５】
本技術の他の形態に係る情報処理方法は、情報処理装置と上記中継サーバとの通信を中継する通信中継装置の属性情報を含む、上記情報処理装置の通信環境を示す通信環境情報を取得することを含む。上記情報処理装置は、ネットワーク上の中継サーバを介して他の情報処理装置と通信可能な情報処理装置に接続される。上記方法では、さらに、上記取得された通信環境情報に基づいて、上記中継サーバとの接続を維持するための維持信号を送信する送信間隔が算出される。そして、上記算出された送信間隔で、上記維持信号が上記中継サーバへ送信される。【００２６】
本技術のまた別の形態に係るプログラムは、ネットワーク上の中継サーバを介して他の情報処理装置と通信可能な情報処理装置に、取得ステップと、算出ステップと、送信ステップとを実行させる。上記取得ステップでは、上記情報処理装置と上記中継サーバとの通信を中継する通信中継装置の属性情報を含む、上記情報処理装置の通信環境を示す通信環境情報が取得される。上記算出ステップでは、上記取得された通信環境情報に基づいて、上記中継サーバとの接続を維持するための維持信号を送信する送信間隔が算出される。上記送信ステップでは、上記算出された送信間隔で、上記維持信号が上記中継サーバへ送信される。
【発明の効果】
【００２７】
以上のように、本技術によれば、情報処理装置間の接続を維持するための通信処理による通信負荷を軽減することができる。
【図面の簡単な説明】
【００２８】
【図１】本技術の第１の実施形態におけるシステムのネットワーク構成を示した図である。
【図２】上記システムにおけるメッセージングサーバのハードウェア構成を示したブロック図である。
【図３】上記システムにおけるデバイスのハードウェア構成を示したブロック図である。
【図４】上記システムにおけるメッセージングサーバのソフトウェアモジュール構成を示したブロック図である。
【図５】上記システムにおけるデバイスのソフトウェアモジュール構成を示したブロック図である。
【図６】上記デバイスによる通信環境判定処理の流れを示したフローチャートである。
【図７】上記デバイスによる通信環境設定処理の一例の流れを示したフローチャートである。
【図８】上記デバイスによる通信環境設定処理の他の例の流れを示したフローチャートである。
【図９】上記デバイスによる接続維持処理の流れを示したフローチャートである。
【図１０】上記メッセージングサーバの処理の流れを示したフローチャートである。
【図１１】本技術の第２の実施形態におけるシステムのネットワーク構成を示した図である。
【図１２】第２の実施形態のシステムにおけるメッセージングサーバのソフトウェアモジュール構成を示した図である。
【図１３】第２の実施形態のシステムにおけるデバイスのソフトウェアモジュール構成を示した図である。
【図１４】第２の実施形態における通知手段のタイプとそれに対応する通知手段付加情報の例を示した図である。
【図１５】第２の実施形態における通知手段設定情報の例を示した図である。
【図１６】第２の実施形態における通知手段設定判定処理の流れを示したフローチャートである。
【図１７】第２の実施形態における通知手段設定情報の生成手法について示した図である。
【図１８】第２の実施形態におけるメッセージングサーバによるメッセージ転送処理の流れを示したフローチャートである。
【図１９】第２の実施形態におけるメッセージングサーバによる通知手段決定処理の流れを示したフローチャートである。
【図２０】複数のデバイスとメッセージングサーバとの常時接続が切断された場合に、各デバイスが同じタイミングで再接続を行う場合の例を示した図である。
【図２１】複数のデバイスとメッセージングサーバとの常時接続が切断された場合に、各デバイスがタイミングをずらして再接続を行う場合の例を示した図である。
【図２２】第３の実施形態のシステムにおけるメッセージングサーバのソフトウェアモジュール構成を示した図である。
【図２３】第３の実施形態のシステムにおけるデバイスのソフトウェアモジュール構成を示した図である。
【図２４】第３の実施形態におけるデバイスによる再接続設定処理の流れを示したフローチャートである。
【図２５】第３の実施形態におけるデバイスによる再接続処理の流れを示したフローチャートである。
【図２６】第３の実施形態におけるメッセージングサーバによる再接続設定判定処理の流れを示したフローチャートである。
【発明を実施するための形態】
【００２９】
以下、本技術に係る実施形態を、図面を参照しながら説明する。
【００３０】
＜第１の実施形態＞
まず、本技術の第１の実施形態を説明する。
【００３１】
［システムのネットワーク構成］
図１は、本実施形態に係るシステムのネットワーク構成を示した図である。
【００３２】
同図に示すように、このシステムは、クラウド上のメッセージングサーバ１００及び接続テストサーバ２００と、それらサーバとＷＡＮ（Wide Area Network）５０を介して接続可能な複数のデバイス３００とを有する。
【００３３】
デバイス３００は、例えばスマートフォン、携帯電話機、タブレットＰＣ（Personal Computer）、デスクトップＰＣ、ノートブックＰＣ、ＰＤＡ（Personal Digital Assistant）、携帯型ＡＶプレイヤー、電子ブック、デジタルスチルカメラ、カムコーダ、テレビジョン装置、ＰＶＲ（Personal Video Recorder）、ゲーム機器、カーナビゲーションシステム、デジタルフォトフレーム等、あらゆる情報処理装置であり得る。同図では、デバイス３００Ａとデバイス３００Ｂの２台のみが示されているが、デバイス３００の数は３台以上であっても構わない。
【００３４】
各デバイス３００は、通信中継装置３５０を介して上記メッセージングサーバ１００及び接続テストサーバ２００と通信する場合もあるし、通信中継装置３５０を介さずに直接それらのサーバと通信する場合もある。各デバイス３００は、メッセージングサーバ１００と常時接続により通信可能である。
【００３５】
通信中継装置３５０とは、内側（デバイス３００側）のネットワークと外部（クラウド側）のネットワークとの間の通信を中継する機能を持ち、両ネットワークにおいて利用されるアドレスの相違や、セキュリティを保護する機構のために、外部のサーバが、特別な手段を用いない限り、内部の特定のデバイスを指定して接続することを不可能にしているものをいう。このような通信中継装置３５０としては、例えばＮＡＴルータやプロキシサーバまたはファイアーウォールが挙げられる。
【００３６】
接続テストサーバ２００は、各デバイス３００と通信可能である。この接続テストサーバ２００は、各デバイス３００がメッセージングサーバ１００と通信するのに先立って、当該通信の切断を事前に防止するための接続テストを行うために設置されたサーバである。ただし、デバイス３００は、接続テストサーバ２００を利用してもよいし、しなくてもよい。
【００３７】
同図では、メッセージングサーバ１００はクラウド上に１台のみ図示されているが、メッセージングサーバ１００は複数設けられていてもよい。この場合、デバイス３００からのメッセージは、複数のメッセージングサーバ１００間で中継され得る。
【００３８】
つまり、各デバイス３００には、複数のメッセージングサーバ１００のうち、特定のメッセージングサーバ１００が、その利用サーバ（担当サーバ）として割り当てられている。割り当ての方法は如何なるものであってもよいが、例えば、各デバイス及びメッセージングサーバのＩＤを元に行われる。後述するが、あるデバイス３００が送信したメッセージが、当該デバイスを担当しないメッセージングサーバ１００によって受信された場合、そのメッセージは、当該担当の他のメッセージングサーバ１００へ転送される。
【００３９】
［メッセージングサーバのハードウェア構成］
図２は、上記メッセージングサーバ１００のハードウェア構成を示した図である。同図に示すように、メッセージングサーバ１００は、ＣＰＵ（Central Processing Unit）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３、入出力インタフェース１５、及び、これらを互いに接続するバス１４を備える。
【００４０】
ＣＰＵ１１は、必要に応じてＲＡＭ１３等に適宜アクセスし、各種演算処理を行いながらメッセージングサーバ１００の各ブロック全体を統括的に制御する。ＲＯＭ１２は、ＣＰＵ１１に実行させるＯＳ、プログラムや各種パラメータなどのファームウェアが固定的に記憶されている不揮発性のメモリである。ＲＡＭ１３は、ＣＰＵ１１の作業用領域等として用いられ、ＯＳ、実行中の各種アプリケーション、処理中の各種データを一時的に保持する。
【００４１】
入出力インタフェース１５には、表示部１６、操作受付部１７、記憶部１８、通信部１９等が接続される。
【００４２】
表示部１６は、例えばＬＣＤ（Liquid Crystal Display）、ＯＥＬＤ（Organic ElectroLuminescence Display）、ＣＲＴ（Cathode Ray Tube）等を用いた表示デバイスである。
【００４３】
操作受付部１７は、例えばマウス等のポインティングデバイス、キーボード、タッチパネル、その他の入力装置である。操作受付部１７がタッチパネルである場合、そのタッチパネルは表示部１６と一体となり得る。
【００４４】
記憶部１８は、例えばＨＤＤ（Hard Disk Drive）や、フラッシュメモリ（ＳＳＤ；Solid State Drive）、その他の固体メモリ等の不揮発性メモリである。当該記憶部１８には、上記ＯＳや各種アプリケーション、各種データが記憶される。特に本実施形態において、記憶部１８には、後述する複数のソフトウェアモジュール等のプログラムが記憶される。
【００４５】
通信部１９は、ＷＡＮ５０に接続するためのＮＩＣ等であり、デバイス３００との間の通信処理を担う。
【００４６】
［接続テストサーバのハードウェア構成］
上記接続テストサーバ２００のハードウェア構成も、上記メッセージングサーバのハードウェア構成と同様であるため、説明を省略する。本実施形態では、接続テストサーバ２００において、上記メッセージングサーバ１００のＣＰＵ１１、記憶部１８、通信部１９と対応するハードウェアをそれぞれＣＰＵ２１、記憶部２８、通信部２９と称する。
【００４７】
［デバイスのハードウェア構成］
図３は、上記デバイス３００のハードウェア構成を示した図である。同図に示すように、デバイス３００のハードウェア構成も、上記サーバ１００のハードウェア構成と基本的に同様である。すなわち、デバイス３００は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、入出力インタフェース３５、及び、これらを互いに接続するバス３４、表示部３６、操作受付部３７、記憶部３８、通信部３９を備える。ここで表示部３６は、デバイス３００に内蔵されていてもよいし、デバイス３００に外部接続されていてもよい。
【００４８】
ＣＰＵ３１は、記憶部３８や通信部３９等の各ブロックを制御して、メッセージングサーバ１００や接続テストサーバ２００との通信処理や、各種データ処理を実行する。
【００４９】
記憶部３８には、後述する複数のソフトウェアモジュール等のプログラムや、各種データベースが記憶される。これらのプログラムは、デバイス３００に、ＷＡＮ５０を介して提供されてもよいし、デバイス３００で読み取り可能な記録媒体として提供されてもよい。
【００５０】
［各機器のモジュール構成］
（メッセージングサーバのモジュール構成）
図４は、上記メッセージングサーバ１００が有するソフトウェアモジュールの構成を示した図である。
【００５１】
同図に示すように、メッセージングサーバ１００は、接続管理部１０１、接続維持部１０２、メッセージ受信部１０３、メッセージ転送部１０４及びメッセージ送信部１０５の各ソフトウェアモジュールを有する。
【００５２】
接続管理部１０１は、各デバイス３００との間で接続を確立し、確立した全ての接続を管理する。
【００５３】
接続維持部１０２は、上記接続管理部１０１の接続を介して、デバイス３００との接続維持のための通信（KeepAlive通信）を行う。つまり接続維持部１０２は、デバイス３００から送信されたKeepAliveパケット（接続維持信号）に対してＡＣＫを返答する。
【００５４】
メッセージ受信部１０３は、接続管理部１０１の接続を介して、デバイス３００からのメッセージ（データ）を受信する。
【００５５】
メッセージ転送部１０４は、メッセージングサーバ１００が自ら担当しないデバイス３００へメッセージを送るために、当該メッセージを他のメッセージングサーバ（図示せず）へ転送する。
【００５６】
メッセージ送信部１０５は、接続管理部１０１の接続を介して、あるデバイス３００からのメッセージ（データ）を他のデバイス３００へ送信する。
【００５７】
（デバイスのモジュール構成）
図５は、上記デバイス３００が有するソフトウェアモジュールの構成を示した図である。
【００５８】
同図に示すように、デバイス３００は、接続管理部３０１、接続維持部３０２、メッセージ送信部３０３、メッセージ受信部３０４、通信環境判定部３０５、通信設定判定部３０６及び通信設定管理部３０７を有する。
【００５９】
接続管理部３０１は、メッセージングサーバ１００及び接続テストサーバ２００との間で接続を確立し、確立した全ての接続を管理する。
【００６０】
接続維持部３０２は、上記接続管理部３０１の接続を介して、メッセージングサーバ１００との接続維持のための通信（KeepAlive通信）を行う。つまり接続維持部３０２は、メッセージングサーバ１００へ、後述する処理で決定された送信間隔で、KeepAliveパケット（接続維持信号）を送信する。
【００６１】
メッセージ送信部３０３は、接続管理部３０１の接続を介して、メッセージングサーバ１００及び接続テストサーバ２００へメッセージ（データ）を送信する。
【００６２】
メッセージ受信部３０４は、接続管理部３０１の接続を介して、メッセージングサーバ１００及び接続テストサーバ２００からのメッセージ（データ）を受信する。
【００６３】
通信環境判定部３０５は、デバイス３００の現在の通信環境を判定する。この通信環境判定処理の詳細については後述する。
【００６４】
通信設定判定部３０６は、通信環境判定部３０５により判定された通信環境情報に基づいて、通信環境ごとの通信設定を判定する。この通信設定判定処理の詳細についても後述する。
【００６５】
通信設定管理部３０７は、上記通信設定判定部３０６によって判定された、通信環境ごとの通信設定情報を管理する。
【００６６】
［システムの動作］
次に、以上のように構成されたシステムにおけるメッセージングサーバ１００及びデバイス３００の動作について説明する。本実施形態及び他の実施形態において、メッセージングサーバ１００及びデバイス３００における動作は、ＣＰＵと、その制御下において実行される上記各ソフトウェアモジュールとで協働して行われる。
【００６７】
［デバイスの動作］
まず、デバイス３００における動作について説明する。
【００６８】
（通信環境判定処理）
まず、通信環境判定処理について説明する。図６は、デバイス３００による通信環境判定処理の流れを示したフローチャートである。同図の処理の前提として、デバイス３００はメッセージングサーバ１００に接続された状態であるものとする。
【００６９】
同図に示すように、通信環境判定部３０５は、通信状態が変化したか否かを判断する（ステップ４１）。
【００７０】
通信状態が変化したと判断した場合（Ｙｅｓ）、通信環境判定部３０５は、通信環境タイプを「Unknown」と判定する（ステップ４２）。
【００７１】
続いて通信環境判定部３０５は、デバイス３００のＩＰアドレスを取得する（ステップ４３）。
【００７２】
続いて通信環境判定部３０５は、接続管理部３０１の接続を用いて、メッセージングサーバ１００から、ＷＡＮ側のＩＰアドレス情報（メッセージングサーバ１００がデバイス３００との接続に用いているＩＰアドレス）を取得する（ステップ４４）。
【００７３】
続いて通信環境判定部３０５は、取得したデバイス３００のＩＰアドレスが、上記メッセージングサーバ１００から取得したＷＡＮ側のＩＰアドレスと同一であるか否かを判断する（ステップ４５）。
【００７４】
デバイス３００のＩＰアドレスがＷＡＮ側のＩＰアドレスであると判断した場合（Ｙｅｓ）、通信環境判定部３０５は、通信環境タイプを「Global IP」と判定する（ステップ４６）。
【００７５】
デバイス３００のＩＰアドレスがＷＡＮ側のＩＰアドレスでないと判断した場合（Ｎｏ）、通信環境判定部３０５は、デバイス３００がプロキシサーバを利用しているか否かを判断する（ステップ４７）。
【００７６】
デバイス３００がプロキシサーバを利用していると判断した場合（Ｙｅｓ）、通信環境判定部３０５は、通信環境タイプを「Proxy」と判定する（ステップ４８）。
【００７７】
デバイス３００がプロキシサーバを利用していないと判断した場合（Ｎｏ）、通信環境判定部３０５は、デバイス３００がＮＡＴルータを利用しているか否かを判断する（ステップ４９）。
【００７８】
デバイス３００がＮＡＴルータを利用していると判断した場合（Ｙｅｓ）、通信環境判定部３０５は、通信環境タイプを「NAT Router」と判定し（ステップ５０）、ＮＡＴルータ（通信中継装置３０５）からルータ情報を取得する（ステップ５１）。
【００７９】
続いて通信環境判定部３０５は、上記判定した通信環境タイプを基に通信環境情報を取得し、当該通信環境情報が、これまでの設定と異なるか否かを判断する（ステップ５２）。
【００８０】
そして通信環境判定部３０５は、通信環境情報がこれまでと異なると判断した場合（Ｙｅｓ）、当該通信環境情報を通信設定判定部３０６へ送信する（ステップ５３）。
【００８１】
ここで、通信環境情報とは、上記通信環境タイプによって取得される、通信環境を一意に指定する情報であり、具体的には、以下の情報を含む。
−  通信状態
−  ＷＡＮ側ＩＰアドレス／ポート番号
−  デバイスＩＰアドレス／ポート番号
−  通信環境タイプ
−  ルータ情報（ルータ機種名／ＭＡＣアドレス／UPnP IGD対応情報等）
【００８２】
（通信設定判定処理）
次に、上記通信環境情報に基づいた通信設定判定処理について説明する。当該通信設定判定処理としては、デバイス３００が、メッセージングサーバ１００との通信に先立って、上記接続テストサーバ２００を利用するか否かに応じて２つの処理が考えられる。
【００８３】
（通信設定判定処理（１））
図７は、デバイス３００が接続テストサーバ２００を利用しない場合の通信設定判定処理の流れを示したフローチャートである。
【００８４】
同図に示すように、デバイス３００の通信設定判定部３０６は、通信環境判定部３０５からの通信環境情報の入力を待つ（ステップ６１）。
【００８５】
通信環境判定部３０５から上記通信環境情報を取得した場合（ステップ６２のＹｅｓ）、通信設定判定部３０６は、上記通信設定管理部３０７から、当該通信環境情報に対応した通信設定情報を取得する（ステップ６３）。
【００８６】
ここで通信設定情報とは、上記通信環境情報に、Keep Alive通信の要否及びそのKeep Aliveパケットの送信間隔を定めた情報（以下、Keep Alive要否／間隔とも称する）を加えた情報をいう。
【００８７】
上記対応する通信設定情報が存在しないと判断した場合（ステップ６４のＹｅｓ）、通信環境判定部３０５は、上記通信環境情報に基づいて、デフォルトのKeep Alive要否／間隔を設定して通信設定情報を生成する（ステップ６５）。そして通信環境判定部３０５は、当該通信設定情報を通信設定管理部３０７に出力する（ステップ６６）。
【００８８】
上記対応する通信環境情報が存在する場合（ステップ６４のＮｏ）及び上記デフォルト設定に基づいて生成された通信環境情報が通信設定管理部３０７へ出力された場合、通信設定判定部３０６は、接続維持部３０２へ当該通信設定情報を出力する（ステップ６７）。
【００８９】
続いて通信設定判定部３０６は、接続管理部３０１から、接続状態変化情報を取得したか否かを判断する（ステップ６８）。
【００９０】
上記接続状態変化情報が取得された場合（Ｙｅｓ）、通信設定判定部３０６は、当該接続状態変化情報を基に、メッセージングサーバ１００との接続が切断されたか否かを判断する（ステップ６９）。
【００９１】
メッセージングサーバ１００との接続が切断されたと判断した場合、通信設定判定部３０６は、接続管理部３０１により、メッセージングサーバ１００と再接続する（ステップ７０）。
【００９２】
続いて通信設定判定部３０６は、現在（接続切断時）までのメッセージングサーバ１００との接続の継続時間を接続管理部３０１から取得する（ステップ７１）。
【００９３】
続いて通信設定判定部３０６は、上記取得された接続継続時間を基に、Keep Alive要否／間隔を再計算する（ステップ７２）。すなわち、通信設定判定部３０６は、例えば当該接続継続時間と同一の時間をKeep Alive間隔として算出する。しかし、Keep Aliveパケットの送信間隔は、上記接続継続時間よりもやや短い（所定時間を減じた）時間とされてもよい。
【００９４】
続いて通信設定判定部３０６は、上記再計算したKeep Alive要否／間隔により、上記通信設定情報を更新する必要があるか否か、すなわち、前回計算した通信設定情報から変化があったか否かを判断する（ステップ７３）。
【００９５】
通信設定情報の更新が必要であると判断した場合（Ｙｅｓ）、通信設定判定部３０６は、上記再計算後の情報を反映した通信設定情報を、通信設定管理部３０７及び接続維持部３０２へ出力する（ステップ７４）。
【００９６】
（通信設定判定処理（２））
図８は、デバイス３００が接続テストサーバ２００を利用する場合の通信設定判定処理の流れを示したフローチャートである。上記図７の場合と異なり、同図の処理では、デバイス３００の接続先は接続テストサーバ２００となる。
【００９７】
同図に示すように、ステップ８１から８６までの処理は、上記図７のステップ６１から６６までの処理と同様である。
【００９８】
上記ステップ８６において通信設定情報を出力した後、通信設定判定部３０６は、接続管理部３０１により、上記接続テストサーバ２００に接続する（ステップ８７）。
【００９９】
続いて通信設定判定部３０６は、上記図７の場合と同様に、接続維持部３０２に通信設定情報を出力し（ステップ８８）、接続管理部３０１から、接続状態変化情報を取得したか否かを判断する（ステップ８９）。
【０１００】
接続状態変化情報が取得されたと判断した場合（Ｙｅｓ）、通信設定判定部３０６は、当該接続状態変化情報を基に、接続テストサーバ２００との接続が切断されたか否かを判断する（ステップ９０）。
【０１０１】
続いて通信設定判定部３０６は、接続テストサーバ２００との規定の接続テスト回数に達したか否かを判断し（ステップ９１）、達していなければ（Ｎｏ）、接続管理部３０１により、接続テストサーバ２００と再接続する。
【０１０２】
上記ステップ９１において規定のテスト回数に達したと判断した場合（Ｙｅｓ）、または、上記ステップ９２において接続テストサーバ２００と再接続した場合の後の処理は、上記図７におけるステップ７１から７４までの処理と同様である（ステップ９２〜９６）。
【０１０３】
すなわち、通信設定判定部３０６は、現在（接続切断時）までの接続テストサーバ２００との接続継続時間を基にKeep Alive要否／間隔を再計算し、通信設定情報の更新が必要と判断すれば、それを通信設定管理部３０７及び接続維持部３０２へ出力する。
【０１０４】
（接続維持処理）
次に、上記通信設定情報に基づいた接続維持処理について説明する。図９は、デバイス３００による接続維持処理の流れを示したフローチャートである。
【０１０５】
まず、デバイス３００の接続維持部３０２は、上記通信設定判定部３０６からの通信設定情報の入力またはタイマーからの通知を待つ（ステップ１０１）。
【０１０６】
通信設定情報の入力があった場合（ステップ１０２のＹｅｓ）、接続維持部３０２は、当該通信設定情報から、Keep Alive要否及び送信間隔の各情報を取得する（ステップ１０３）。
【０１０７】
続いて接続維持部３０２は、当該Keep Alive要否が「要」に設定されているか否かを破断する（ステップ１０４）。
【０１０８】
Keep Alive要否が「要」に設定されていると判断した場合、前回メッセージングサーバ１００へKeep Aliveパケットを送信してからKeep Alive間隔だけ経過した時間に通知するように、タイマーをセットする（ステップ１０５）。
【０１０９】
タイマーからの上記通知があった場合（ステップ１０６のＹｅｓ）、接続維持部３０２は、上記Keep Alive間隔だけ経過した時間に通知をするようにタイマーを再セットする（ステップ１０７）。
【０１１０】
そして接続維持部３０２は、Keep Aliveパケットをメッセージングサーバ１００へ送信し（ステップ１０８）、メッセージングサーバ１００から当該Keep AliveパケットのＡＣＫを受信する（ステップ１０９）。
【０１１１】
［メッセージングサーバの動作］
次に、メッセージングサーバ１００における動作について説明する。図１０は、メッセージングサーバ１００の動作の流れを示したフローチャートである。
【０１１２】
同図に示すように、メッセージングサーバ１００の接続維持部１０２は、接続管理部１０１からのKeep Aliveパケットの受信を待つ（ステップ１１１）。
【０１１３】
そして、接続維持部１０２は、Keep Aliveパケットが受信された場合（ステップ１１２のＹｅｓ）、それに応答するＡＣＫパケットをデバイス３００へ送信する（ステップ１１３）。
【０１１４】
［まとめ］
以上のように、本実施形態によれば、デバイス３００は、メッセージングサーバ１００または接続テストサーバ２００との間の接続が実際に切断された場合の接続継続時間を基にKeep Alive間隔を決定してKeep Aliveパケットを送信する。したがって、通信環境にか変わらず一律の間隔でKeep Aliveパケットが送信される場合に比べて、Keep Alive通信によるメッセージングサーバ１００及びデバイス３００の通信付負荷が軽減される。
【０１１５】
＜第２の実施形態＞
次に、本技術の第２の実施形態を説明する。本実施形態においては、特に説明しない箇所は、上記第１の実施形態と同様の構成である。また本実施形態において、上記第１の実施形態と同様の機能及び構成を有する箇所には同一の符号を付し、その説明を省略または簡略化する。
【０１１６】
図１１は、本実施形態におけるシステムのネットワーク構成を示した図である。
【０１１７】
本実施形態では、メッセージングサーバ１００は、あるデバイス３００から他のデバイス３００宛の送信されたデータ（メッセージ）が存在する旨を通知する通知メッセージを、メッセージの宛先のデバイス３００へ通知する機能を有する。当該通知のための手段は、デバイス３００の通信環境（例えば、通信中継装置３５０の仕様等）に応じて複数存在しうる。
【０１１８】
各デバイス３００は、メッセージングサーバ１００と通信するにあたり、その通信環境に応じて、メッセージングサーバ１００が通知メッセージを送信するための通知手段を設定させる通知手段設定情報を、予めメッセージングサーバ１００へ送信し、通知手段を設定させる。
【０１１９】
また、上記通知メッセージは、メッセージングサーバ１００が送信してもよいが、クラウド上に別途設けられた通知サーバ４００がその役割を担ってもよい。
【０１２０】
通知サーバ４００は、上記通信中継装置３５０の存在により、外部（メッセージングサーバ１００）からの直接の通信が行えない場合に、デバイス３００への上記通知メッセージの送信のために設けられるものである。通知サーバ４００は、メッセージングサーバ１００及び各デバイス３００とＷＡＮ５０を介して通信可能である。デバイス３００が通知サーバ４００を利用する場合、デバイス３００は通知サーバ４００と常時接続され、メッセージングサーバ１００とは必要に応じて接続を確立する。
【０１２１】
［メッセージングサーバのソフトウェア構成］
図１２は、本実施形態におけるメッセージングサーバ１００のソフトウェアモジュール構成を示した図である。
【０１２２】
同図に示すように、上記第１の実施形態におけるメッセージングサーバ１００のモジュール構成（図４）と比較して、本実施形態では、通知手段設定受信部１０６、通知手段設定管理部１０７、通知手段決定部１０８及び接続要求通知部１０９の各ソフトウェアモジュールが追加されている。
【０１２３】
通知手段設定受信部１０６は、デバイス３００から送信される上記通知手段設定情報を受信する。
【０１２４】
通知手段設定管理部１０７は、上記デバイス３００から受信された通知手段設定情報を管理する。当該通知手段設定情報は、記憶部１８に記憶される。
【０１２５】
通知手段決定部１０８は、デバイス３００との通信に際して、上記通知手段設定管理部１０７で管理している情報に基づいて、利用する通知手段を決定する。
【０１２６】
接続要求通知部１０９は、上記通知手段決定部１０８によって決定された通知手段に基づいて、実際にデバイス３００への通知メッセージの送信処理を実行する。
【０１２７】
また、本実施形態において、接続管理部１０１は、デバイス３００のみならず通知サーバ４００との接続も管理する。
【０１２８】
［デバイスのソフトウェア構成］
図１３は、本実施形態におけるデバイス３００のソフトウェアモジュール構成を示した図である。
【０１２９】
同図に示すように、上記第１の実施形態におけるデバイス３００のモジュール構成（図５）と比較して、本実施形態では、通知待ち受け部３０８、通知手段設定送信部３０９、通知手段設定判定部３１０及び通知手段設定管理部３１１が追加されている。
【０１３０】
通知待ち受け部３０８は、メッセージングサーバ１００または通知サーバ４００から送信される通知メッセージを待ち受ける。
【０１３１】
通知手段設定判定部３１０は、デバイス３００の通信環境情報に基づいて、適切な通知手段を判定し、通知手段設定情報を生成または更新する。
【０１３２】
通知手段設定送信部３０９は、上記生成または更新された通知手段設定情報をメッセージングサーバ１００へ送信する。
【０１３３】
通知手段設定管理部３１１は、上記生成または更新された通知手段設定情報を管理する。
【０１３４】
また本実施形態において、接続管理部３０１は、メッセージングサーバ１００のみならず通知サーバ４００との接続も管理する。
【０１３５】
［通知手段のタイプ及び通知手段設定情報］
次に、本実施形態における上記通知手段のタイプ及び上記通知手段設定情報について説明する。
【０１３６】
図１４は、上記通知手段のタイプとそれに対応する通知手段付加情報の例を示した図である。
【０１３７】
同図に示すように、本実施形態における通知手段タイプとしては、「Notify Server」、「Global IP」、「Router UPnP IGD」、「Router User Setting」、「Proxy Server」、「Mail」及び「Polling」の７つがある。
【０１３８】
「Notify Server」は、メッセージングサーバ１００が通知サーバ４００を経由して各デバイス３００へ接続可能であることを示す。各デバイス３００が後述のNAT Traversal機構等をサポートしない通常の通信中継装置３５０を経由してクラウド側と接続される場合は、当該通知手段が用いられる。
【０１３９】
「Global IP」は、デバイス３００（例えばモバイルデバイス）にグローバルＩＰアドレスが割り振られており、メッセージングサーバ１００からデバイス３００に、通信中継装置３５０を介さずに直接接続可能であることを示す。このエントリでは、付加情報として、デバイス３００のグローバルＩＰアドレス及びポート番号が記載される。
【０１４０】
「Router UPnP IGD」は、ＮＡＴルータ（通信中継装置３５０）が、それに接続されたデバイス３００からの指示により、外部からの通信を内部のデバイス３００へ転送する設定が可能とされており、メッセージングサーバ１００から通信中継装置３５０を経由してデバイス３００へ接続可能であることを示す。これは具体的には、通信中継装置３５０としてのＮＡＴルータが、UPnP IGDプロトコルによるNAT Traversal機構をサポートしている場合である。この場合、内部のデバイス３００が、メッセージングサーバ１００と共同してＷＡＮ５０側のポート番号とＬＡＮ側のポート番号とを決定して、当該ＷＡＮ５０側のポート番号への通信を、当該ＬＡＮ側のＩＰアドレス／ポート番号へ転送するように、ＮＡＴルータに設定する。メッセージングサーバ１００は、当該ＷＡＮ側のＩＰアドレス及びポート番号を、付加情報として記憶しておき、デバイス３００と通信する際には、当該記憶されたＩＰアドレス及びポート番号を用いる。
【０１４１】
「Router User Setting」は、「UPnP IGD」と同様の転送設定が、デバイス３００からの指示ではなく、ポートフォワーディング機構を用いて、ユーザが手動で変更することにより可能とされていることを示す。この場合も、設定されたＩＰアドレス及びポート番号は付加情報として記憶される。
【０１４２】
「Proxy Server」は、メッセージングサーバ１００が、デバイス３００側のプロキシサーバを経由してデバイス３００と通信可能であることを示す。この場合、プロキシサーバのＩＰアドレス及びポート番号が付加情報として記憶される。
【０１４３】
「Mail」は、メッセージングサーバ１００から電子メール経由で通知メッセージをデバイス３００へ送信する場合を示す。この場合、デバイス３００のユーザのメールアドレスが付加情報として記憶される。
【０１４４】
「Polling」は、デバイス３００からメッセージングサーバ１００へのポーリングにより通知メッセージが送信される場合を示す。
【０１４５】
図１５は、上記通知手段設定情報の例を示した図である。
【０１４６】
同図（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）及び（Ｅ）は、通知手段タイプがそれぞれ「Global IP」、「Router UPnP IGD」、「Proxy Server」、「Notify Server」及び「Mail」である場合の通知手段設定情報の例を示す。
【０１４７】
同図に示すように、通知手段設定情報には、デバイス３００を一意に識別するデバイスＩＤ、通知手段タイプ、通知手段付加情報、有効期限、通信環境情報及び優先度の各項目が含まれる。通信環境情報は、上記第１の実施形態において説明したものと同様である。優先度については後述する。
【０１４８】
［システムの動作］
次に、以上のように構成されたシステムにおけるメッセージングサーバ１００及びデバイス３００の動作について説明する。
【０１４９】
［デバイスの動作］
まず、本実施形態におけるデバイス３００の動作について説明する。
【０１５０】
（通知手段設定判定処理）
図１６は、本実施形態における通知手段設定判定処理の流れを示したフローチャートである。
【０１５１】
同図に示すように、デバイス３００の通知手段設定判定部３１０は、まず、通信環境判定部３０５から、通信環境情報が入力されるのを待つ（ステップ１６１）。
【０１５２】
通信環境情報が取得された場合（ステップ１６２のＹｅｓ）、通知手段設定判定部３１０は、通知手段設定管理部３１１から、当該通信環境情報に対応する通知手段設定情報を取得する（ステップ１６３）。
【０１５３】
ここで、対応する通知手段設定情報が存在しない場合（ステップ１６４のＹｅｓ）、通知手段設定判定部３１０は、上記通信環境情報から、対応する通知手段設定情報を生成する（ステップ１６５）。
【０１５４】
そして通知手段設定判定部３１０は、当該生成した通知手段設定情報を、上記通知手段設定管理部３１１へ出力する（ステップ１６６）。
【０１５５】
上記通知手段設定情報は、通知手段設定送信部３０９によりメッセージングサーバ１００へ送信される。利用されうる通知手段設定情報が複数種類存在する場合、全ての通知手段設定情報がメッセージングサーバ１００へ送信される。
【０１５６】
図１７は、上記通知手段設定情報の生成手法について示した図である。
【０１５７】
同図に示すように、本実施形態では、通信環境タイプに応じて、固定的に通知手段及び優先度が決定される。
【０１５８】
すなわち、通信環境タイプが「Global IP」であれば、通知手段タイプは「Global IP」とされ、優先度は100とされる。
通信環境タイプがNAT Routerであり、UPnPIGDに対応している場合には、通知手段タイプは「Router/UPnPIGD」とされ、優先度は200とされる。
通信環境タイプがNAT Routerであり、ユーザによるＮＡＴ設定が可能である場合には、通知手段タイプは「Router User Setting」とされ、優先度は200とされる。
通信環境タイプがNAT Routerであり、ＮＡＴの設定に対応不可である場合には、通知手段タイプは「Notify Server」とされ、優先度200とされる。
通信環境タイプがProxyServerであれば、通知手段タイプは「Notify Server」とされ、優先度は200とされる。
通信環境タイプが上記以外で、ポーリングによる通知がサポートされている場合には、通知手段タイプは「Polling」とされ、優先度は300とされる。
通信環境タイプが上記以外で、メールによる通知がサポートされている場合には、通知手段タイプは「Mail」とされ、優先度は500とされる。
【０１５９】
後述するが、優先度は、メッセージングサーバ１００において、利用可能な複数の通知手段からいずれかを選択する際の基準として用いられる。優先度は、その値が小さい程、高いものとされる。
【０１６０】
しかし、通知手段設定情報の生成方法（通知手段及び優先度の決定方法）としては、通信環境情報に基づいて適切な通知手段及び優先度に関する情報を生成できれば、どのような方法が用いられても構わない。
【０１６１】
［メッセージングサーバの動作］
次に、本実施形態におけるメッセージングサーバ１００の動作について説明する。
【０１６２】
（メッセージ転送処理）
図１８は、メッセージングサーバ１００によるメッセージ転送処理の流れを示したフローチャートである。
【０１６３】
まず、メッセージングサーバ１００のメッセージ受信部１０３は、接続管理部１０１の接続を介して、デバイス３００（３００Ａ）からのメッセージを受信する（ステップ１８１）。
【０１６４】
続いて、メッセージ転送部１０４は、当該メッセージが、他のメッセージングサーバで処理されるべきメッセージであるか否かを判断する（ステップ１８２）。
【０１６５】
上記メッセージが他のメッセージングサーバで処理されるべきメッセージであると判断された場合（Ｙｅｓ）、メッセージ転送部１０４は、メッセージ送信部１０５へ当該メッセージを転送する（ステップ１８４）。
【０１６６】
上記メッセージが他のメッセージングサーバで処理されるべきメッセージでないと判断された場合（Ｎｏ）、メッセージ転送部１０４は、自身（メッセージングサーバ１００）で処理されるべき（メッセージングサーバ１００宛の）メッセージであるか否かを判断する（ステップ１８５）。
【０１６７】
上記メッセージがメッセージングサーバ１００で処理されるべきメッセージであると判断された場合（Ｙｅｓ）、メッセージ転送部１０４は、当該メッセージを処理する（ステップ１８６）。
【０１６８】
上記メッセージがメッセージングサーバ１００で処理されるべきメッセージでない（他のデバイス３００（３００Ｂ）宛のメッセージである）と判断された場合（Ｎｏ）、メッセージ送信部１０５は、接続管理部１０１を介して、メッセージの宛先のデバイス３００Ｂとの接続が存在するか否かを確認する（ステップ１８７）。
【０１６９】
メッセージの宛先のデバイス３００Ｂとの接続が存在しないと判断した場合（Ｎｏ）、メッセージ送信部１０５は、通知手段決定部１０８に、上記メッセージに関する通知メッセージの送信を依頼する（ステップ１８９）。これにより、後述する通知手段決定部１０８による通知手段決定処理が実行される。
【０１７０】
続いてメッセージ送信部１０５は、接続管理部１０１を介して、メッセージの宛先のデバイス３００Ｂとの接続が確立されるのを待つ（ステップ１９０）。
【０１７１】
そしてメッセージ送信部１０５は、接続管理部１０１の接続を介して、上記メッセージを、その宛先のデバイス３００Ｂへ送信する（ステップ１９１）。
【０１７２】
（通知手段決定処理）
図１９は、メッセージングサーバ１００による通知手段決定処理の流れを示したフローチャートである。
【０１７３】
同図に示すように、通知手段決定部１０８は、通知手段設定管理部１０７から、メッセージの宛先のデバイス３００に対応する通知手段設定情報を取得する（ステップ２０１）。
【０１７４】
続いて通知手段決定部１０８は、上記図１５で示した通知手段設定情報中の適用条件及び有効期限を確認し、有効なエントリ（複数可）を対象エントリとして選択する（ステップ２０２）。
【０１７５】
ここで、対象エントリが存在しない場合は（ステップ２０３のＹｅｓ）、通知手段決定部１０８は処理を終了する。
【０１７６】
対象エントリが存在する場合（ステップ２０３のＮｏ）、通知手段決定部１０８は、上記通知手段設定情報中の優先度が最も高い（値が小さい）エントリ（複数可）を取り出す（ステップ２０４）。
【０１７７】
通知手段決定部１０８は、取り出した複数のエントリの通知手段を並行して用いて、接続要求通知部１０９を介して、同時並行処理で通知メッセージを送信する（ステップ２０５）。
【０１７８】
そして通知手段決定部１０８は、上記複数の送信処理のうちいずれかが成功したか否かを判断し（ステップ２０６）、いずれかが成功していた場合（Ｙｅｓ）には処理を終了し、いずれも成功していない場合（Ｎｏ）には上記ステップ２０３以降の処理を繰り返す。
【０１７９】
［まとめ］
以上説明したように、本実施形態によれば、デバイス３００は、予めメッセージングサーバ１００に複数の通知手段設定情報を送信しておき、メッセージングサーバ１００はそれらの通知手段を組み合わせて通知メッセージを送信する。したがって、デバイス３００が移動する場合、そのたびに通知手段を切り替えるためにデバイス３００と通信する必要がないため、そのような通信によりメッセージングサーバ１００に負荷がかかるのが防止される。
【０１８０】
すなわち、仮にデバイス３００が移動することで通知手段が変更されても、メッセージングサーバ１００は、予め知らされた複数の通知手段を並行して実施するため、デバイス３００が新たな通知手段設定情報を送信することはない。デバイス３００は、全く新たな通信環境が加わったり、既存の通知手段設定を変更することが必要になったりしたときだけ、新たな通知手段設定情報をメッセージングサーバ１００へ送信すればよい。
【０１８１】
＜第３の実施形態＞
次に、本技術の第３の実施形態を説明する。本実施形態においては、特に説明しない箇所は、上記第１及び第２の実施形態と同様の構成である。また本実施形態において、上記第１及び第２の実施形態と同様の機能及び構成を有する箇所には同一の符号を付し、その説明を省略または簡略化する。
【０１８２】
図２０は、複数のデバイス３００とメッセージングサーバ１００との常時接続が切断された場合に、各デバイス３００が同じタイミングで再接続を行う場合の例を示した図である。図２１は、複数のデバイス３００とメッセージングサーバ１００との常時接続が切断された場合に、各デバイス３００がタイミングをずらして再接続を行う場合の例を示した図である。
【０１８３】
上記第１の実施形態では、メッセージングサーバ１００とデバイス３００とは、Keep Alive通信により両者間の常時接続を維持していた。しかし、メッセージングサーバ１００で障害が発生すると、メッセージングサーバ１００に常時接続しているデバイス３００との接続は全て切断されてしまう。
【０１８４】
この場合、図２０に示すように、各デバイス３００が、サーバが復旧する時間だけ待って、再接続処理を開始すると、メッセージングサーバ１００が膨大な数の同時接続をサポートする場合、再接続処理が集中してしまう。そうすると、メッセージングサーバ１００の接続確立処理が間に合わず、接続エラーが発生してしまう。
【０１８５】
そして、各デバイス３００は、さらに一定時間だけ待って、再度再接続処理を行うが、ここでも同じタイミングで接続を行うことになり、さらに接続エラーが発生するという状況が繰り返される。
【０１８６】
一方、図２１に示すように、各デバイス３００が、再接続するタイミングを一定の再接続開始待ち時間の中からデバイス３００毎にランダムに選択する機構を利用すれば、上記図２０のような問題を解決することができる。
【０１８７】
しかしながら、メッセージングサーバ１００に常時接続を行うデバイス３００の数に変化がない場合おいては、この再接続開始待ち時間を適切に設定することは容易であるが、多数のデバイス３００が移動して、その接続形態が変化する環境では、設定すべき値が常時変化するため、再接続開始待ち時間の設定も困難になると考えられる。
【０１８８】
そこで、本実施形態では、メッセージングサーバ１００が、デバイス３００との常時接続状況に応じて、再接続開始待ち時間を再計算して、各デバイス３００に通知することとしている。
【０１８９】
上記再接続開始待ち時間に関する情報は、例えば、各デバイス３００から送信されるKeep Aliveパケットに対するＡＣＫパケットに書き込まれる。
【０１９０】
図２２は、本実施形態のシステムにおけるメッセージングサーバ１００のソフトウェアモジュール構成を示した図である。
【０１９１】
同図に示すように、上記第２の実施形態におけるメッセージングサーバ１００のモジュール構成（図１２）と比較して、本実施形態では、再接続設定判定部１１０が追加されている。
【０１９２】
再接続設定判定部１１０は、接続管理部１０１から、定期的にメッセージングサーバ１００に対する常時接続に関する情報を取得し、適切な再接続開始待ち時間を決定し、当該再接続開始待ち時間を、接続維持部１０２を介してデバイス３００に通知する。
【０１９３】
図２３は、本実施形態のシステムにおけるデバイス３００のソフトウェアモジュール構成を示した図である。
【０１９４】
同図に示すように、上記第２の実施形態におけるデバイス３００のモジュール構成（図１３）と比較して、本実施形態では、再接続設定管理部３１２が追加されている。
【０１９５】
再接続設定管理部３１２は、接続維持部３０２を介して取得した再接続設定を管理し、接続管理部３０１に設定する。この当該再接続設定情報は、上記記憶部３８に記憶され、メッセージングサーバ１００から最新のものが受信されるたびに更新される。
【０１９６】
［システムの動作］
次に、以上のように構成されたシステムにおけるメッセージングサーバ１００及びデバイス３００の動作について説明する。
【０１９７】
［デバイスの動作］
まず、本実施形態におけるデバイス３００の動作について説明する。
【０１９８】
（再接続設定処理）
図２４は、デバイス３００による再接続設定処理の流れを示したフローチャートである。
【０１９９】
同図に示すように、デバイス３００の接続維持部３０２は、上記第１の実施形態で示した送信間隔で、Keep Aliveパケットをメッセージングサーバ１００へ送信する（ステップ２４１）。
【０２００】
続いて接続維持部３０２は、メッセージングサーバ１００から上記Keep Aliveパケットに対するＡＣＫパケットを受信する（ステップ２４２）。
【０２０１】
続いて接続維持部３０２は、上記ＡＣＫパケットに記載されている、新たな再接続開始待ち時間情報（T_backoff）を取得する（ステップ２４３）。
【０２０２】
そして接続維持部３０２は、当該取得した再接続開始待ち時間情報（T_backoff）を接続管理部１０１に設定する（ステップ２４４）。
【０２０３】
（再接続処理）
図２５は、デバイス３００による再接続処理の流れを示したフローチャートである。
【０２０４】
同図に示すように、デバイス３００の接続管理部１０１は、まず、メッセージングサーバ１００との接続状態の変化を待つ（ステップ２５１）。
【０２０５】
続いて接続管理部１０１は、メッセージングサーバ１００との接続が切断されたか否かを判断する（ステップ２５２）。
【０２０６】
上記接続が切断されたと判断した場合（Ｙｅｓ）、接続管理部１０１は、再接続最小待ち時間（T_min）だけ待機する（ステップ２５３）。当該再接続最小待ち時間（T_min）は、各デバイス３００で共通して定められたものである。
【０２０７】
続いて接続管理部１０１は、最新の再接続開始待ち時間（T_cur_backoff）を、上記メッセージングサーバ１００から取得した再接続開始待ち時間情報（T_backoff）に設定する（ステップ２５４）。
【０２０８】
続いて接続管理部１０１は、乱数を用いて、０＜T≦T_cur_backoffとなるTを決定する（ステップ２５５）。
【０２０９】
続いて接続管理部１０１は、上記Tで示される時間だけ待機した上で（ステップ２５６）、メッセージングサーバ１００へ再接続を要求する（ステップ２５７）。
【０２１０】
続いて接続管理部１０１は、メッセージングサーバ１００との接続が確立できたか否かを判断する（ステップ２５８）。
【０２１１】
上記接続が確立されなかった場合（Ｎｏ）、接続管理部１０１は、最新の再接続開始待ち時間（T_cur_backoff）を、T_max_backoffとT_cur_back*2のうちいずれか小さい方の値に設定し（ステップ２５９）、上記ステップ２５３以降の処理を繰り返す。ここでT_max_backoffは、予めデバイス３００に設定された、最大再接続開始待ち時間を指す。
【０２１２】
［メッセージングサーバの動作］
次に、本実施形態におけるメッセージングサーバ１００の動作について説明する。
【０２１３】
（再接続設定判定処理）
図２６は、メッセージングサーバ１００による再接続設定判定処理の流れを示したフローチャートである。
【０２１４】
同図に示すように、メッセージングサーバ１００の再接続設定判定部１１０は、接続管理部１０１から、現在のデバイス３００の常時接続数(N)を取得する（ステップ２６１）。
【０２１５】
続いて再接続設定判定部１１０は、現在の常時接続数(N)に基づき、再接続開始待ち時間（T_backoff）を以下の式で計算する。
T_backoff = f_backoff(N)
【０２１６】
ここで、f_backoff(N)は、例えば、単位時間あたりにメッセージングサーバ１００が処理可能な接続開始要求（N_max_conn_req）を用いて、以下の式で計算される。
f_backoff(N) = N / N_max_conn_req
【０２１７】
続いて再接続設定判定部１１０は、計算したT_backoffが、これまでの値と異なっているか否かを判断する（ステップ２６３）。
【０２１８】
T_backoffが、これまでの値と異なっていると判断した場合、再接続設定判定部１１０は、接続維持部３０２を介して、再接続開始待ち時間（T_backoff）を、上記Keep Aliveパケットに対するＡＣＫに記載してデバイス３００へ送信する。
［まとめ］
【０２１９】
以上説明したように、本実施形態では、メッセージングサーバ１００に障害が発生した場合に、メッセージングサーバ１００は、その時点での、全デバイス３００の接続状況に基づいて、再接続のための設定を決定し、各デバイス３００に通知する。したがって、メッセージングサーバ１００の復旧後にデバイス３００の再接続が集中してさらに接続障害を引き起こすことが防止される。
【０２２０】
またこれにより、メッセージングサーバ１００は、障害からの復旧後に再接続を行うであろうデバイス３００の数に応じて、通信エラーの発生を防止しつつ、各デバイス３００が適切な再接続時間で正常な接続状態に到達することを可能とする。
【０２２１】
さらに、メッセージングサーバ１００は、各デバイス３００から接続維持のために送信されるKeep Aliveパケットに対するＡＣＫ上に、再接続開始待ち時間を記載する。したがって、再接続開始待ち時間を通知するためだけに新たに通信が行われることがないため、モバイルデバイスなどの移動するデバイス３００が多数存在する環境においても、通常時の通信負荷を増大させずに、障害発生時にも最適な設定で接続が復旧される。
【０２２２】
［変形例］
本技術は上述の実施形態にのみ限定されるものではなく、本技術の要旨を逸脱しない範囲内において種々変更され得る。
【０２２３】
上述の第１の実施形態において、接続テストサーバ２００はクラウド上に１台のみ図示されているが（図１）、接続テストサーバ２００は複数台設けられてもよく、またデバイス３００ごとに専用の接続テストサーバ２００が予め決められていてもよい。
【０２２４】
上述の第２の実施形態では、メッセージングサーバ１００は、複数の通知手段が利用可能な場合、優先度が最も高い通知手段を同時並行で実行していた。しかし、メッセージングサーバ１００は、優先度によらずに複数の通知手段を順に試してもよいし、全ての通知手段を同時並行で実行してもよい。
【０２２５】
上述の第３の実施形態では、再接続開始待ち時間に関する情報は、Keep Aliveパケットに対するＡＣＫパケットに記載されていたが、当該ＡＣＫとは別個に送信されても構わない。
【０２２６】
上述の第３の実施形態では、メッセージングサーバ１００は、接続管理部１０１から、その時点におけるデバイス３００の常時接続数(N)を取得し、単位時間あたりにメッセージングサーバ１００が処理可能な接続開始要求（N_max_conn_req）を用いてf_backoff(N)を計算した。しかし、接続管理部１０１から取得する接続に関する情報と、これに基づいてT_backoffを計算する計算式 f_backoff()には、どのようなものが用いられても構わない。
【０２２７】
上述の各実施形態では、各デバイス３００のメッセージ送信部３０３及びメッセージ受信部３０４は別個のモジュールとして示されたが、両者で用いられる接続が共用されてもよい。
【０２２８】
上述の各実施形態では、デバイス３００間のメッセージングサーバ１００経由でのやり取りには、全てメッセージが用いられていた。しかし、各デバイス３００のアプリケーションには、このメッセージ機構を元に、ＲＰＣ（Remote Procedure Call）機構やストリーム通信機構、さらにはＨＴＴＰエミューレーション等の通信機構が提供されてもよい。
【０２２９】
上述の第２の実施形態では、メッセージングサーバ１００と通知サーバ４００とは物理的に異なるサーバとして示された。しかし、両者の違いは、各デバイス３００との接続についてのバッファサイズの設定や取り扱い方から生じることから、物理的に異なるサーバ上で動作させる形態でなくとも、以下のような形態でも同様の効果が得られる。
（１）単一のサーバマシン上で通知サーバプロセスとメッセージングサーバプロセス双方を動作させる。
（２）単一のサーバマシン上で、通知サーバ機能とメッセージングサーバ機能を持った１つのサーバプロセスを動作させる(デバイス３００との通信状況に応じて、通知サーバ相当の接続形態と、メッセージングサーバ相当の接続形態を切り替える)。
【０２３０】
上述した第１〜第３の実施形態における各技術は、それぞれ独立して実施可能であるとともに、互いに矛盾しない限り、如何様にも組み合わされて実施されうる。
【０２３１】
［その他］
本技術は以下のような構成も採ることができる。
（１）
ネットワーク上の中継サーバを介して他の情報処理装置と通信可能な通信部と、
前記通信部と前記中継サーバとの通信を中継する通信中継装置の属性情報を含む、前記通信部の通信環境を示す通信環境情報を取得可能であり、
前記取得された通信環境情報に基づいて、前記中継サーバとの接続を維持するための維持信号を送信する送信間隔を算出可能であり、
前記算出された送信間隔で、前記維持信号を前記中継サーバへ送信するように前記通信部を制御可能な制御部と
を具備する情報処理装置。
（２）
前記（１）に記載の情報処理装置であって、
前記制御部は、前記通信部による前記中継サーバとの接続後、前記通信中継装置により当該接続が切断された場合に、前記接続から前記切断までの継続時間を算出し、当該算出された継続時間を基に前記維持信号の送信間隔を算出する
情報処理装置。
（３）
前記（１）または（２）に記載の情報処理装置であって、
前記通信部は、前記ネットワーク上に存在する接続テストサーバと通信可能であり、
前記制御部は、前記通信部による前記接続テストサーバとの接続後、前記通信中継装置により当該接続が切断された場合に、前記接続から前記切断までの継続時間を算出し、当該算出された継続時間を基に前記維持信号の送信間隔を算出する
情報処理装置。
（４）
前記（１）〜（３）のいずれかに記載の情報処理装置であって、
前記通信部は、前記他の情報処理装置から送信された当該情報処理装置宛のデータの存在を通知する通知メッセージを前記中継サーバから受信可能であり、
前記制御部は、前記中継サーバが当該情報処理装置に接続して前記通知メッセージを送信するために設定すべき設定情報を、前記通信環境に応じて生成可能であり、かつ、当該生成された設定情報を前記中継サーバへ送信するように前記通信部を制御可能であり、
前記中継サーバは、前記送信された設定情報を記憶し、当該記憶された設定情報に基づいて前記通知メッセージを送信する
情報処理装置。
（５）
前記（４）に記載の情報処理装置であって、
前記制御部は、前記通信環境の変化に応じて、前記生成された設定情報を更新可能であり、かつ、当該更新された設定情報を前記中継サーバへ送信するように前記通信部を制御可能であり、
前記中継サーバは、前記更新され送信された設定情報により、前記記憶された設定情報を更新する
情報処理装置。
（６）
前記（４）または（５）に記載の情報処理装置であって、
前記制御部は、
前記通信環境の変化に応じて生成され得る複数の前記設定情報を予め生成可能であり、
前記生成された複数の設定情報を前記中継サーバへ送信するように前記通信部を制御可能であり、
前記通信環境の変化した場合であって、前記送信された複数の設定情報のいずれもが当該変化後の通信環境に対応していない場合に、当該変化後の通信環境に応じた新たな設定情報を生成可能であり、
前記生成された新たな設定情報を前記中継サーバへ送信するように前記通信部を制御可能であり、
前記中継サーバは、前記送信された複数の設定情報を記憶し、当該記憶された複数の設定情報のうち、少なくとも１つに基づいて前記通知メッセージを送信する
情報処理装置。
（７）
前記（１）〜（６）のいずれかに記載の情報処理装置であって、
記憶部をさらに具備し、
前記通信部は、前記中継サーバから、当該中継サーバに接続されている当該情報処理装置を含む複数の情報処理装置の数に応じて生成された、当該情報処理装置と前記中継サーバとの接続が切断された場合に当該情報処理装置が前記中継サーバへ再接続するタイミングに関連する再接続情報を定期的に受信可能であり、
前記制御部は、
前記定期的に受信される再接続情報のうち最新の再接続情報を記憶するように前記記憶部を制御可能であり、
当該情報処理装置と前記中継サーバとの接続が切断された場合に、前記記憶された再接続情報に基づいて前記中継サーバと再接続するように前記通信部を制御可能である
情報処理装置。
（８）
前記（７）に記載の情報処理装置であって、
前記通信部は、前記再接続情報として、前記切断から前記再接続までの最大待ち時間を示す情報を受信し、
前記制御部は、
乱数を用いて前記最大待ち時間内の待ち時間を決定し、
前記決定された待ち時間の経過後に前記中継サーバと再接続するように前記通信部を制御する
情報処理装置。
（９）
前記（８）に記載の情報処理装置であって、
前記中継サーバは、前記送信された維持信号に対して、前記最大待ち時間を示す情報を含むＡＣＫを返信し、
前記通信部は、前記ＡＣＫを受信し、
前記制御部は、前記受信されたＡＣＫから前記最大待ち時間を示す情報を取得する
情報処理装置。
【符号の説明】
【０２３２】
１１、２１、３１…ＣＰＵ
１８、２８、３８…記憶部
１９、２９、３９…通信部
５０…ＷＡＮ
１００…メッセージングサーバ
１０１…接続管理部
１０２…接続維持部
１０３…メッセージ受信部
１０４…メッセージ転送部
１０５…メッセージ送信部
１０６…通知手段設定受信部
１０７…通知手段設定管理部
１０８…通知手段決定部
１０９…接続要求通知部
１１０…再接続設定判定部
２００…接続テストサーバ
３００（３００Ａ，３００Ｂ）…デバイス
３０１…接続管理部
３０２…接続維持部
３０３…メッセージ送信部
３０４…メッセージ受信部
３０５…通信環境判定部
３０６…通信設定判定部
３０７…通信設定管理部
３０８…通知待ち受け部
３０９…通知手段設定送信部
３１０…通知手段設定判定部
３１１…通知手段設定管理部
３１２…再接続設定管理部
３５０（３５０Ａ，３５０Ｂ）…通信中継装置
４００…通知サーバ
【図１】
0005880688.tif 000002
【図２】
0005880688.tif 000003
【図３】
0005880688.tif 000004
【図４】
0005880688.tif 000005
【図５】
0005880688.tif 000006
【図６】
0005880688.tif 000007
【図７】
0005880688.tif 000008
【図８】
0005880688.tif 000009
【図９】
0005880688.tif 000010
【図１０】
0005880688.tif 000011
【図１１】
0005880688.tif 000012
【図１２】
0005880688.tif 000013
【図１３】
0005880688.tif 000014
【図１４】
0005880688.tif 000015
【図１５】
0005880688.tif 000016
【図１６】
0005880688.tif 000017
【図１７】
0005880688.tif 000018
【図１８】
0005880688.tif 000019
【図１９】
0005880688.tif 000020
【図２２】
0005880688.tif 000021
【図２３】
0005880688.tif 000022
【図２４】
0005880688.tif 000023
【図２５】
0005880688.tif 000024
【図２６】
0005880688.tif 000025
【図２０】
0005880688.tif 000026
【図２１】
0005880688.tif 000027