(57)【要約】【課題】通信装置の電力消費量を低減する。【解決手段】通信装置であって、所定の代理処理に関する信号を他の通信装置に送信する送信手段と、前記送信手段により送信された前記信号に対する応答を、前記他の通信装置から受信する受信手段と、前記他の通信装置が前記所定の代理処理を実行可能である場合に前記他の通信装置から送信される前記応答を受信した場合、前記通信装置が前記他の通信装置と通信可能な期間に関する情報を通知する第１の通知手段と、前記他の通信装置が前記所定の代理処理を実行できない場合に前記他の通信装置から送信される前記応答を受信した場合、エラーを通知する第２の通知手段と、を有する。【選択図】  図４
2019213219.tif 000002
【特許請求の範囲】
【請求項１】
通信装置であって、
所定の代理処理に関する信号を他の通信装置に送信する送信手段と、
前記送信手段により送信された前記信号に対する応答を、前記他の通信装置から受信する受信手段と、
前記他の通信装置が前記所定の代理処理を実行可能である場合に前記他の通信装置から送信される前記応答を受信した場合、前記通信装置が前記他の通信装置と通信可能な期間に関する情報を通知する第１の通知手段と、
前記他の通信装置が前記所定の代理処理を実行できない場合に前記他の通信装置から送信される前記応答を受信した場合、エラーを通知する第２の通知手段と、
を有することを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信システム、通信装置の制御方法およびプログラムに関する。
【背景技術】
【０００２】
近年、ウェブ技術の発展により、ＨＴＴＰ／１．１の高速化が求められている。ＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）では、ＨＴＴＰ／１．１の次期の規格であるＨＴＴＰ／２が提案されている（非特許文献１）。このＨＴＴＰは、パーソナルコンピュータやブラウザ以外の通信装置（組込み機器）においても広く利用されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ＲＦＣ７５４０
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、例えば通信装置がプッシュメッセージを受け付けるような場合、外部装置との間でＴＣＰおよびＨＴＴＰ／２のコネクションを維持する必要がある。例えば、通信装置がカメラなどの組込み機器の場合、コネクションを維持するために電力を消費するため、待ち受け時間が短くなることがある。
【０００５】
本発明は、上記の課題に鑑みてなされたものであり、通信装置の電力消費量を低減する技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の目的を達成するために、本発明の一態様による通信装置は以下の構成を備える。即ち、
通信装置であって、
所定の代理処理に関する信号を他の通信装置に送信する送信手段と、
前記送信手段により送信された前記信号に対する応答を、前記他の通信装置から受信する受信手段と、
前記他の通信装置が前記所定の代理処理を実行可能である場合に前記他の通信装置から送信される前記応答を受信した場合、前記通信装置が前記他の通信装置と通信可能な期間に関する情報を通知する第１の通知手段と、
前記他の通信装置が前記所定の代理処理を実行できない場合に前記他の通信装置から送信される前記応答を受信した場合、エラーを通知する第２の通知手段と、
を有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、通信装置の電力消費量を低減することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係る通信システムの構成例を示す図である。
【図２】本発明の一実施形態に係る通信装置の機能ブロック図である。
【図３】本発明の一実施形態に係るプロキシ装置の機能ブロック図である。
【図４】本発明の一実施形態に係る通信装置がプッシュメッセージのプロキシの依頼を送信する場合の処理手順を示すフローチャートである。
【図５】本発明の一実施形態に係るプロキシ装置がプッシュメッセージのプロキシの依頼を受信する場合の処理手順を示すフローチャートである。
【図６】本発明の一実施形態に係る通信システム全体の代理処理開始時のシーケンスを示す図である。
【図７】本発明の一実施形態に係る通信装置およびプロキシ装置の処理状態の一例を示す図である。
【図８】本発明の一実施形態に係るプロキシ装置が通信装置へ緊急のプッシュ通知を送信する場合の処理状態の一例を示す図である。
【図９】本発明の一実施形態に係る外部装置が処理を終了した時の通信システム全体のシーケンスを示す図である。
【図１０】本発明の一実施形態に係る通信システム全体の代理処理終了時のシーケンスを示す図である。
【発明を実施するための形態】
【０００９】
以下、添付の図面を参照しながら、本発明の実施形態について詳述する。本発明の一実施形態では、通信装置がプロキシ装置に処理の一部を委譲することで電力消費を低減する。
【００１０】
（実施形態）
＜通信システムの構成＞
図１は、本発明の一実施形態に係る通信システムの構成例を示す図である。１０１は、プッシュメッセージの送受信を行う通信装置である。本実施形態では、通信装置１０１は例えばデジタルカメラである。１０２もまた通信装置であり、通信装置１０１のプッシュメッセージの送受信の処理の一部を代理するプロキシ装置である。本実施形態では、プロキシ装置１０２は例えばスマートフォンで実現するが、これに限らず、クラウドサービス、サーバ、モバイルルータ、ブラウザ、車両などで実現できる。１０３は、通信装置１０１およびプロキシ装置１０２とＨＴＴＰ／２通信を行う外部装置である。外部装置１０３は、プロキシ装置１０２を通じて、通信装置１０１とプッシュメッセージの送受信を行う。
【００１１】
１０４は、通信装置１０１およびプロキシ装置１０２が接続するネットワークである。本実施形態では、ネットワーク１０４は無線アドホックネットワークを用いて実現するが、これに限らない。インターネット、ＷＡＮ (Wide Area Network)、ＬＡＮ (Local Area Network)、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｚｉｇｂｅｅ（登録商標）、ＵＳＢ、ＮＦＣ (Near Field Communication)、その他有線方式および無線方式などの複合であっても実現できる。
【００１２】
１０５は、プロキシ装置１０２および外部装置１０３が接続するネットワークである。本実施形態では、ネットワーク１０４はインターネットを用いて実現するが、これに限らない。インターネット、ＷＡＮ (Wide Area Network)、ＬＡＮ (Local Area Network)、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｚｉｇｂｅｅ（登録商標）、ＵＳＢ、その他有線方式および無線方式などの複合であっても実現できる。
【００１３】
＜通信装置１０１の構成＞
図２は、本発明の一実施形態に係る通信装置１０１の機能ブロック図である。２００は、各構成要素を接続するバスである。２０１は、プッシュメッセージ送受信処理を行う通信処理部である。本実施形態では、ＵＤＰを利用する例を説明するが、これに限らない。ＨＴＴＰ／２、ＷｅｂＳｏｃｋｅｔ、ＭＱＴＴ（MQ Telemetry Transport）、ＣｏＡＰ（Constrained Application Protocol）など他のプロトコルを用いてもよい。
【００１４】
２０２は、アプリケーションの実行結果の表示やエラーの表示等を行う表示部である。不図示の表示制御部による制御下で動作する。２０３は、プロキシ装置１０２にプッシュメッセージ送受信の代理処理の依頼を送信する依頼部である。２０４は、ＴＣＰ／ＩＰの制御を行うＴＣＰ／ＩＰ処理部である。プロキシ装置１０２や外部装置１０３との通信は、ＴＣＰ／ＩＰ処理部２０４を通じて処理される。２０５は、通信装置１０１とプロキシ装置１０２との間でプッシュメッセージ送受信を行う間隔を設定する時間設定部である。２０６は、時間設定部２０５によって設定された所定の間隔毎に通信処理部２０１による通信を実行する実行部である。
【００１５】
２０７は、プロキシ装置１０２を介して外部装置１０３へプッシュメッセージを送信するプッシュ通知送信部である。２０８は、外部装置１０３からプロキシ装置１０２を介してプッシュメッセージを受信するプッシュ通知受信部である。２０９は、現在時間を管理するためのタイマ部である。本実施形態のタイマ部２０９は、ある時点からの相対時間を管理しているが、これに限らず、絶対時間を管理してもよいし、ＮＴＰ（Network Time Protocol）、ＧＰＳなどを用いて他機器から情報を取得してもよい。２１０は、通信装置１０１の機能の少なくとも一部をスリープさせるスリープ部である。本実施形態のスリープ部２１０は、機能のスリープを行うが、これに限らず、通信装置１０１に含まれるＣＰＵのクロックを下げたり、動作箇所を限定したりしてもよい。
【００１６】
＜プロキシ装置１０２の構成＞
図３は、本発明の一実施形態に係るプロキシ装置１０２の機能ブロック図である。３００は、各構成要素を接続するバスである。３０１は、プッシュメッセージ送受信処理を行う通信処理部である。本実施形態では、ＵＤＰを利用する例を説明するが、これに限らない。ＨＴＴＰ／２、ＷｅｂＳｏｃｋｅｔ、ＭＱＴＴ（MQ Telemetry Transport）、ＣｏＡＰ（Constrained Application Protocol）など他のプロトコルを用いてもよい。
【００１７】
３０２は、アプリケーションの実行結果の表示やエラーの表示等を行う表示部である。３０３は、通信装置１０１からプッシュメッセージ送受信の代理処理の依頼を受信する依頼受信部である。３０４は、ＴＣＰ／ＩＰの制御を行うＴＣＰ／ＩＰ処理部である。通信装置１０１や外部装置１０３との通信は、ＴＣＰ／ＩＰ処理部３０４を通じて処理される。３０５は、通信装置１０１とプロキシ装置１０２との間でプッシュメッセージ送受信を行う間隔を設定する時間設定部である。３０６は、時間設定部３０５によって設定された所定の間隔毎に通信処理部３０１による通信を実行する実行部である。
【００１８】
３０７は、プッシュメッセージを通信装置１０１および外部装置１０３に送信するプッシュ通知送信部である。３０８は、プッシュメッセージを通信装置１０１および外部装置１０３から受信するプッシュ通知受信部である。３０９は、現在時間を管理するためのタイマ部である。本実施形態のタイマ部３０９は、ある時点からの相対時間を管理しているが、これに限らず、絶対時間を管理してもよいし、ＮＴＰ（Network Time Protocol）、ＧＰＳなどを用いて他機器から情報を取得してもよい。
【００１９】
３１０は、通信装置１０１にスリープ状態を解除するメッセージを送信するスリープ起動部である。本実施形態のスリープ起動部３１０は、機能のスリープ解除を行うが、これに限らず、通信装置１０１に含まれるＣＰＵクロックを上げたり、動作箇所の限定を解除するためのメッセージを送信したりしてもよい。
【００２０】
３１１は、通信装置１０１とプロキシ装置１０２との間の通信経路、および、プロキシ装置１０２と外部装置１０３との間の通信経路を維持する経路維持部である。経路維持部３１１は、ネットワーク１０４およびネットワーク１０５に存在する中継装置の経路エントリが時間切れで切断される前に通信経路を維持するためのパケットを送信する。キープアライブのメッセージを送信してもよいし、プッシュ通知に含めてパケットを送信してもよいし、通信経路の登録パケットを送信してもよい。なお、本実施形態ではプロキシ装置１０２から送信する例を説明するが、これに限らず、通信装置１０１や外部装置１０３が経路維持を行ってもよい。３１２は、通信装置１０１と通信するためのプロトコルと、外部装置１０３と通信するためのプロトコルとの間でプロトコルの変換を行う変換部である。本実施形態では、通信装置１０１とプロキシ装置１０２の間はＵＤＰでプッシュメッセージが通信され、プロキシ装置１０２と外部装置１０３の間はＨＴＴＰ／２でプッシュメッセージが通信される場合の例を中心に説明する。なお、ＵＤＰは、通信のためにコネクションの維持が不要なプロトコルであり、ＨＴＴＰ／２は、通信のためにコネクションの維持が必要なプロトコルである。ただし、使用する通信プロトコルは、ＵＤＰとＨＴＴＰ／２に限らない。
【００２１】
＜通信装置１０１の処理＞
図４は、本発明の一実施形態に係る通信装置１０１がプッシュメッセージのプロキシの依頼を送信する場合の処理手順を示すフローチャートである。まず、通信処理部２０１は、ＴＣＰ／ＩＰ処理部２０４を介して、ネットワーク１０４上でＳＳＤＰを用いてプロキシ装置１０２をサーチする（Ｓ４０１）。プロキシ装置１０２が発見された場合、Ｓ４０２へ進む。一方、プロキシ装置１０２が発見されなかった場合、Ｓ４０８へ進む。
【００２２】
なお、本実施形態では、プロキシ装置のサーチ処理をＳＳＤＰで実現したが、これに限らず、ｍＤＮＳ、ＷＳ−Ｄｉｓｃｏｖｅｒｙなど他のサーチプロトコルを用いても実現できる。本実施形態では、プロキシ装置１０２をサーチしたが、これに限らず、予め設定された値から取得してもよいし、ダイナミックＤＮＳなどを用いて動的に取得してもよいし、デフォルトゲートウェイなどの経路情報から取得してもよい。
【００２３】
通信処理部２０１は、ユーザ、システム、アプリケーション等を通じて指定されたプッシュ通知の動作モードを設定する（Ｓ４０２）。ここでの動作モードとは、プッシュ通知の送信、受信、その両方を行うかを示すものである。また、プッシュ通知の送信や受信で複数のプロトコルを利用してもよいし、プロトコル内の設定や形式などを設定してもよい。
【００２４】
依頼部２０３は、Ｓ４０２で設定された動作モードに従った代理処理をプロキシ装置１０２に対して依頼する（Ｓ４０３）。依頼部２０３は、プロキシ装置１０２から代理処理できるか否かを示すメッセージを受信する。依頼部２０３は、受信したメッセージに基づいて、代理処理の可否を判定する。代理処理が可能であると判定された場合、Ｓ４０５へ進む。一方、代理処理が可能ではないと判定された場合、Ｓ４０８へ進む。
【００２５】
本実施形態において、代理処理ができないと依頼部２０３が判定する基準は、代理処理できないことを示すメッセージを受信した場合、または、プロキシ装置１０２から所定時間以内に返答がない場合である。
【００２６】
時間設定部２０５は、例えば、プロキシ装置１０２との間でプッシュメッセージの送受信を行うための所定時間の情報をプロキシ装置１０２から取得する（Ｓ４０５）。なお、所定時間としては、通信装置１０１に設定された値を用いてもよいし、通信装置１０１とプロキシ装置１０２との間でネゴシエーションを行って得られた結果の値を用いてもよい。
【００２７】
タイマ部２０９は、時刻同期を行うためのタイマ情報を取得する（Ｓ４０６）。同期のために利用する時間は、ＮＴＰやＧＰＳから取得した絶対時間でもよいし、プロキシ装置１０２との間でネゴシエーションを行った時に調整した相対時間であってもよい。時刻同期の詳細については図７を用いて後述するが、本実施形態における時刻同期は、通信装置１０１の処理時間とプロキシ装置１０２の処理時間とを合わせるための処理である。ただし、通信装置１０１の処理時間とプロキシ装置１０２の処理時間とを必ずしも完全に一致させなくても良い。ネットワークの種類や通信プロトコル等に応じて揺らぎが発生するようにしても良い。
【００２８】
通信処理部２０１は、所定時間の情報と、タイマ情報取得処理により得られたタイマ情報とに基づいて、プロキシ装置１０２との間で時刻同期を開始し（Ｓ４０７）、処理を終了する。通信処理部２０１は、外部装置１０３に直接接続し、プッシュメッセージの送受信を行う（Ｓ４０８）。これに限らず、他のプロキシ装置を発見し、接続を行ってもよい。また、電池の残り残量が所定値以下であった場合や、所定の設定であった場合、外部装置１０３に接続せずにＳ４０９に進んでもよい。
【００２９】
表示部２０２は、プロキシ装置１０２と接続できなかったことを示すエラー情報を表示する（Ｓ４０９）。表示部２０２は、外部装置１０３に直接接続した場合や別の形態で接続した場合には、接続形態のエラーを表示してもよい。なお、本実施形態では、表示としたがこれに限らず、ＬＥＤ点滅、画像、音、振動、メッセージなどの方式でユーザやアプリケーションにエラーを通知してもよい。以上で図４の一連の処理が終了する。
【００３０】
＜プロキシ装置１０２の処理＞
図５は、本発明の一実施形態に係るプロキシ装置１０２がプッシュメッセージのプロキシの依頼を受信する場合の処理手順を示すフローチャートである。通信処理部３０１は、ＴＣＰ／ＩＰ処理部３０４を介して、ネットワーク１０４上で通信装置１０１からのＳＳＤＰを用いたサーチを受信したか否かを判定する。サーチを受信したと判定された場合、Ｓ５０２へ進む。一方、サーチを受信していないと判定された場合、Ｓ５１１へ進み、所定時間待機してＳ５０１に戻る。
【００３１】
なお、本実施形態では、通信装置１０１がプロキシ装置１０２をサーチしているが、これに限らず、プロキシ装置１０２が通信装置１０１をサーチしてもよいし、相互にサーチしてもよい。ここでのサーチとは、通信装置１０１乃至プロキシ装置１０２が探索メッセージを送信し発見してもよいし、広告メッセージの送信であってもよい。また、サーチの際は、無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｚｉｇｂｅｅ（登録商標）を利用してもよい。
【００３２】
依頼受信部３０３は、通信装置１０１から代理処理の依頼のメッセージを受信する（Ｓ５０２）。依頼受信部３０３は、依頼のメッセージの内容を確認し、動作モードに従った代理処理が可能か否かを判定する（Ｓ５０３）。代理処理が可能であると判定された場合、依頼受信部３０３は、通信処理部３０１を通じて、外部装置１０３とＨＴＴＰ／２による接続を行い、動作モードに従ってメッセージプッシュの送受信処理を行い、Ｓ５０４へ進む。一方、代理処理が可能ではないと判定された場合、Ｓ５０９へ進む。
【００３３】
なお、本実施形態では、通信装置１０１が動作モードに従った代理処理の依頼をプロキシ装置１０２に送信していたが、これに限らない。プロキシ装置１０２が通信装置１０１に代理処理可能であることを示す動作モード情報を送ってもよいし、更に通信装置１０１とプロキシ装置１０２との間でネゴシエーションを行ってもよい。
【００３４】
通信処理部３０１は、代理処理ができることを示すメッセージを通信装置１０１へ送信する（Ｓ５０４）。時間設定部３０５は、通信装置１０１との間でプッシュメッセージの送受信を行うための所定時間の情報を取得して通信装置１０１に送信する（Ｓ５０５）。所定時間は、プロキシ装置１０２に設定された値でもよいし、ベンダーサイトから取得した値でもよいし、通信装置１０１とプロキシ装置１０２との間でネゴシエーションを行った結果の値であってもよい。
【００３５】
タイマ部３０９は、時刻同期を行うためのタイマ情報の取得を行う（Ｓ５０６）。同期のために利用する時間は、ＮＴＰやＧＰＳから取得した絶対時間でもよいし、通信装置１０１との間でネゴシエーションを行った時に調整した相対時間であってもよい。通信処理部３０１は、通信装置１０１との間で時刻同期を開始する（Ｓ５０７）。経路維持部３１１は、通信装置１０１および外部装置１０３との間の通信経路の維持を開始する（Ｓ５０８）。
【００３６】
ネットワーク１０４およびネットワーク１０５がルータを含むようなネットワークの場合、ルータが所定時間で経路を切断することが知られている。この問題を解決するために、経路を維持するためのエントリの登録やキープアライブのパケットの送受信を行う。ネットワークおよびルータによって経路維持のためのエントリの登録間隔やキープアライブのパケット送受信の間隔が異なるため、経路維持部３１１はネットワーク１０４およびネットワーク１０５における経路維持のための間隔を取得する。経路維持部３１１は、例えば片端又は両端のＩＰアドレスから経路維持のための間隔を決定する。なお、本実施形態ではＩＰアドレスから決定する例を説明するが、これに限らず、動的に取得してもよい。例えば、所定時間の経路維持の間隔を徐々に増やしていくことで、経路維持ができない時間を測定することができる。
【００３７】
また、本実施形態では、プロキシ装置１０２が経路維持を行う例を説明するが、これに限らない。通信装置１０１および外部装置１０３が経路維持を行ってもよい。あるいは、通信装置１０１およびプロキシ装置１０２、乃至、プロキシ装置１０２および外部装置１０３が協調して経路維持を行ってもよい。また、通信装置１０１、プロキシ装置１０２、外部装置１０３が、経路維持の処理をルータなどの別の機器に依頼してもよい。
【００３８】
通信処理部３０１は、代理処理できないことを示すメッセージを通信装置１０１へ送信する（Ｓ５０９）。表示部３０２は、代理処理の依頼を受理できなかったことを示すエラーを表示する（Ｓ５１０）。なお、本実施形態では、表示する例を挙げたがこれに限らず、ＬＥＤ点滅、画像、音、振動、メッセージなどの方式でユーザやアプリケーションにエラーを通知してもよい。
【００３９】
＜通信システム全体のシーケンス（開始時）＞
図６は、本発明の一実施形態に係る通信システム全体の代理処理開始時のシーケンスを示す図である。通信装置１０１は、プロキシ装置１０２をサーチし、発見する（Ｍ６０１）。通信装置１０１は、プロキシ装置１０２に代理処理を依頼する（Ｍ６０２）。プロキシ装置１０２は代理処理の依頼を受信すると、ＨＴＴＰ／２で外部装置１０３に接続し、プッシュメッセージの送受信のためのＰＵＳＨ＿ＰＲＯＭＩＳＥを完了する（Ｍ６０３）。プロキシ装置１０２がプッシュメッセージを送信する場合、プロキシ装置１０２がＰＵＳＨ＿ＰＲＯＭＩＳＥを外部装置１０３に送信する。一方、プロキシ装置１０２がプッシュメッセージを受信する場合、プロキシ装置１０２はＰＵＳＨ＿ＰＲＯＭＩＳＥを外部装置１０３から受信する。
【００４０】
プロキシ装置１０２は、通信装置１０１に対して代理処理できること示すメッセージを送信する（Ｍ６０４）。通信装置１０１は、Ｓ４０５〜Ｓ４０７に相当する処理を実行する（Ｍ６０５〜Ｍ６０７）。プロキシ装置１０２は、Ｓ５０４〜Ｓ５０８に相当する処理を実行する（Ｍ６０８〜Ｍ６１１）。プロキシ装置１０２は、外部装置１０３からＨＴＴＰ／２によるプッシュメッセージを受信する（Ｍ６１２）。プロキシ装置１０２は、所定時間が経過すると、ＵＤＰを用いてプッシュメッセージを通信装置１０１へ送信する（Ｍ６１３）。そして、通信装置１０１は、所定時間が経過すると、プロキシ装置１０２からのプッシュメッセージの受信を開始する（Ｍ６１３）。
【００４１】
通信装置１０１は、所定時間が経過すると、ＵＤＰを用いてプロキシ装置１０２にプッシュメッセージを送信する（Ｍ６１４）。そして、プロキシ装置１０２は、所定時間が経過すると、通信装置１０１からのプッシュメッセージの受信を開始する（Ｍ６１４）。そして、プロキシ装置１０２は、通信装置１０１から受信したプッシュメッセージのデータを変換し、ＨＴＴＰ／２で外部装置１０３へ送信する（Ｍ６１５）。
【００４２】
本実施形態では、通信装置１０１とプロキシ装置１０２との間はＵＤＰを用いたバイナリ通信を行う。プロキシ装置１０２と外部装置１０３との間はＨＴＴＰ／２を用いたＪＳＯＮ形式での通信を行う。このように、プロキシ装置１０２は、変換部３１２により、プロトコルの形式の変換、データフォーマットの変換、ネットワークの変換を行う。本実施形態では、バイナリやＪＳＯＮを用いたがこれに限らず、ＸＭＬ、テキストなど他の形式であってもよい。
【００４３】
通信装置１０１およびプロキシ装置１０２が、Ｍ６１３およびＭ６１４でＵＤＰを用いたプッシュメッセージを送信または受信する場合、さらに、プッシュメッセージが届いたことを示すＡＣＫメッセージを返信してもよい。ＡＣＫメッセージがなかった場合、通信装置１０１またはプロキシ装置１０２はＵＤＰパケットがネットワークでロストしたと判定して再送する。後述する通信可能状態時の同じ期間内に再送してもよいし、次回以降の通信可能状態の期間に再送してもよい。
【００４４】
＜通信装置およびプロキシ装置の処理状態（通常時）＞
図７は、本発明の一実施形態に係る通信装置１０１およびプロキシ装置１０２の処理状態の一例を示す図である。横軸が時間、縦軸が処理状態である。
【００４５】
通信装置１０１の処理状態が７０１の時は処理可能な状態であり、７０１はプッシュメッセージ処理可能期間（スリープしていない期間）である。また、通信装置１０１の処理状態が７０２の時は処理可能ではない状態であり、７０２はプッシュメッセージ処理不可能期間（スリープしている期間）である。通信装置１０１側の７０６は所定時間であり、プロキシ装置１０２側の所定時間である７０７と同期している。ここでの所定時間や同期は、固定値だけでなく揺らぎや幅を持たせてもよい。
【００４６】
一方、プロキシ装置１０２の処理状態が７０３の時は処理可能な状態であり、７０３はプッシュメッセージ処理可能期間である。また、プロキシ装置１０２の処理状態が７０４の時は処理可能ではない状態であり、７０４はプッシュメッセージ処理不可能期間である。プロキシ装置１０２側の７０７は所定時間であり、通信装置１０１側の所定時間である７０６と同期している。ここで、プロキシ装置１０２は、例えば外部装置１０３からプッシュメッセージを受信すると、プッシュイベント７０８を発生させる。プロキシ装置１０２は、プッシュメッセージ処理可能期間にプッシュイベント７０８が発生したため、プッシュメッセージ７０５を通信装置１０１へ送信する。
【００４７】
別の例として、プロキシ装置１０２は、別のタイミングに外部装置１０３からプッシュメッセージを受信すると、プッシュイベント７０９を発生させる。一方、通信装置１０１は、例えば不審な人物がカメラに写り込んだことに応じて、プッシュイベント７１０を発生させる。プッシュメッセージ処理不可能期間にプッシュイベントが発生したため、プッシュメッセージ処理可能期間に移行するまで待機する。
【００４８】
プッシュメッセージ処理可能期間になると、通信装置１０１はプッシュイベント７１０に対応するプッシュメッセージをプロキシ装置１０２へ送信する。一方、プロキシ装置１０２はプッシュイベント７０９に対応するプッシュメッセージを通信装置１０１へ送信する（７１１）。プロキシ装置１０２は、プッシュイベント７１０に対応するプッシュメッセージを通信装置１０１から受信すると、外部装置１０３に合致した形式に変換を行った後、ＨＴＴＰ／２を用いてプッシュ通知を外部装置１０３へ送信する。
【００４９】
ここで、プロキシ装置１０２における通信装置１０１に接続するためのハードウェアと外部装置１０３に接続するためのハードウェアとが異なる場合、通信装置１０１と接続するためのハードウェアサブモジュールを低クロックまたはスリープ状態にしてもよい。これによりプロキシ装置１０２の消費電力量を低減できる。
【００５０】
さらに、プロキシ装置１０２と外部装置１０３との間でプッシュメッセージ送受信の時刻同期を行っている場合、プロキシ装置１０２と通信装置１０１との時刻同期と関連付けた周期で同期を行ってもよい。例えば、同じ周期や２回に１回の周期などである。これにより、プロキシ装置１０２と通信装置１０１との処理状態を同じにできるため、処理可能状態（プッシュメッセージ処理可能期間７０３に対応）と処理状可能でない状態（プッシュメッセージ処理不可能期間７０４に対応）と間の移行にかかる処理負荷を低減できる。
【００５１】
また、通信装置１０１、プロキシ装置１０２、外部装置１０３が無線ＬＡＮを利用している場合、無線ＬＡＮの周期とあわせることで更に処理負荷を低減できる。本実施形態では無線ＬＡＮで説明したが、これに限らず、Ｂｌｕｅｔｏｏｔｈ、Ｚｉｇｂｅｅ、ＮＦＣなど他の無線方式であっても同様である。
【００５２】
また、通信装置１０１がプロキシ装置１０２からプッシュメッセージを受信した場合、通信装置１０１の通信処理部２０１がプッシュメッセージの内容を解析し、表示部２０２が処理するアプリケーションに伝達することなく返信を行ってもよい。例えば、ＰＩＮＧのメッセージを受信した場合、アプリケーションの介在なく通信処理部２０１で処理してもよい。さらに、通信処理部２０１と表示部２０２とが別のＣＰＵで動作する構成であった場合、表示部２０２の処理が不必要に実行されることがなくなり、処理負荷を軽減し、消費電力を低減できる。
【００５３】
同様に、プロキシ装置１０２が通信装置１０１からプッシュメッセージを受信した場合、プロキシ装置１０２の通信処理部３０１がプッシュメッセージの内容を解析し、表示部３０２が処理するアプリケーションに伝達することなく返信を行ってもよい。例えば、ＰＩＮＧのメッセージを受信した場合、アプリケーションの介在なく通信処理部３０１で処理してもよい。さらに、通信処理部３０１と表示部３０２とが別のＣＰＵで動作する構成であった場合、表示部３０２の処理が不必要に実行されることがなくなり、処理負荷を軽減し、消費電力を低減できる。
【００５４】
また、プロキシ装置１０２に対して、多くの他の装置がプッシュメッセージの代理処理を依頼する可能性がある。この場合、他の装置毎にプッシュメッセージを送る周期が異なると結果的にプロキシ装置１０２の省電力化が図れない場合がある。そこで、新たな他の装置からプロキシ装置１０２に対してプッシュメッセージの代理処理が依頼された場合には、プロキシ装置１０２は、既に時刻同期を行っている周期と同一の周期を、当該新たな他の装置に対して割り当てて処理状態の期間を一致させてもよい。これにより、処理負荷の軽減を図ることができる。
【００５５】
また、通信装置１０１は、プッシュイベント７１０が発生したプッシュメッセージ処理不可能期間内に、別のプッシュイベントがさらに発生したような場合、プッシュメッセージ処理可能期間内に移行した後の７１１でまとめてプロキシ装置１０２へ送信するように構成してもよい。それぞれのプッシュイベントは、通信装置１０１内での解析後にプッシュイベントのボディを連結することで、プッシュイベントのメッセージのサイズを小さくすることができる。
【００５６】
また、通信装置１０１がプッシュメッセージ処理可能期間内に送信できない量のプッシュイベントがある場合、次のプッシュメッセージ処理可能期間と併せて分割して送信してもよい。この時、通信装置１０１は優先度の高いプッシュイベントに対応するプッシュメッセージから先に送信してもよい。また、通信装置１０１はプッシュイベントの量が所定値よりも多いと判定した場合、プロキシ装置１０２と通信して、プッシュメッセージ処理可能期間を延長してもよい。プロキシ装置１０２もまた、通信装置１０１と同様の処理を行ってもよい。
【００５７】
＜通信装置およびプロキシ装置の処理状態（緊急時）＞
図８は、プロキシ装置１０２が通信装置１０１に緊急のプッシュ通知を送信する場合の処理状態の一例を示す図である。以下、主に図７との差分について説明する。プロキシ装置１０２が、外部装置１０３から受信したプッシュイベント８０１が緊急イベントであると判断したとする。緊急イベントとは、例えば、通信装置１０１の近辺に不審者がいるため、すぐに録画を開始したい場合などのイベントである。外部装置１０３から受信したプッシュイベントを解析することで、緊急イベントであるか否かを判定してもよい。例えば、緊急イベントであることを示す情報が付加されているか否かに基づいて判定してもよい。プロキシ装置１０２は、ＷＯＬ（ＷａｋｅＯｎＬａｎ）を利用して外部から通信装置１０１を起動する（８０２）。
【００５８】
なお、これに限らず、Ｂｌｕｅｔｏｏｔｈ、Ｚｉｇｂｅｅ、ＮＦＣであっても特殊なデータを送信することでスリープから解除する処理を行うことでも実現できる。その場合、受信装置である通信装置１０１の通信処理部２０１に、特殊なデータだけを受信するフィルタを設けることで、ホストＣＰＵ起動の介入頻度を低減させて、さらなる省電力化を図ってもよい。その後、プロキシ装置１０２は、プッシュイベント８０１に対応するプッシュメッセージを通信装置１０１へ送信する（８０３）。
【００５９】
なお、これに限らず、通信装置１０１が緊急のプッシュイベントを検知して、プロキシ装置１０２に緊急のプッシュイベントを送信してもよい。その時、既にプロキシ装置１０２が処理可能な状態（プッシュメッセージ処理可能期間）である場合にはＷＯＬの処理を省略してもよい。通信装置１０１は、プッシュメッセージ処理不可能期間に生じたプッシュイベントが存在する場合、それらのプッシュイベントに対応するプッシュメッセージを８０３でまとめて送信してもよい。この時、通信装置１０１は優先度の高いプッシュイベントに対応するプッシュメッセージから先に送信してもよい。プロキシ装置１０２も通信装置１０１と同様の処理を行ってもよい。
【００６０】
＜外部装置が処理を終了した時の通信システム全体のシーケンス＞
図９は、本発明の一実施形態に係る外部装置１０３が処理を終了した時の通信システム全体のシーケンスを示す図である。外部装置１０３が処理を終了するか、または、ネットワークから離脱したとする（Ｍ９０１）。すると、プロキシ装置１０２は、外部装置１０３が処理を終了したこと、または、ネットワークから離脱したことを検知する（Ｍ９０２）。
【００６１】
プロキシ装置１０２は、外部装置１０３が処理を終了したこと、または、ネットワークから離脱したことを示すメッセージを通信装置１０１へ送信する（Ｍ９０３）。通信装置１０１は、プロキシ装置１０２から外部装置１０３が終了したこと、または、ネットワークから離脱したことを示すメッセージを受信した後、外部装置１０３との接続をリトライするか切断するかの指示をプロキシ装置１０２へ送信する（Ｍ９０４）。
【００６２】
切断する指示であった場合、通信装置１０１およびプロキシ装置１０２は、時間同期の処理を終了する（Ｍ９０５、Ｍ９０６）。通信装置１０１およびプロキシ装置１０２は、時刻同期時にキープアライブのメッセージ（ネットワーク上で、接続が有効であることを確認するために定期的に行われる通信。）を送信または受信してもよい。これにより、通信装置１０１およびプロキシ装置１０２がネットワークから離脱または処理を終了した場合、時刻同期処理を実行し続けることを防止できることから、処理負荷を低減できる。キープアライブのメッセージは時刻同期毎に送信してもよいし、何回かに一度の頻度で送信してもよい。
【００６３】
＜通信システム全体のシーケンス（終了時）＞
図１０は、本発明の一実施形態に係る通信システム全体の代理処理終了時のシーケンスを示す図である。通信装置１０１は、代理処理の終了をプロキシ装置１０２へ依頼する（Ｍ１００１）。プロキシ装置１０２は、外部装置１０３との接続に使用しているＨＴＴＰ／２通信を終了し、プッシュメッセージの送受信を終了する（Ｍ１００２）。プロキシ装置１０２は、外部装置１０３との接続が終了したことを示すメッセージを通信装置１０１へ送信する（Ｍ１００３）。
【００６４】
その後、通信装置１０１は、プロキシ装置１０２との時刻同期を終了する（Ｍ１００４）。同様に、プロキシ装置１０２は、通信装置１０１との時刻同期を終了する（Ｍ１００５）。通信装置１０１は、プロキシ装置１０２による代理処理が終了し、外部装置１０３とのプッシュメッセージ送受信処理が終了したことを表示する（Ｍ１００６）。同様に、プロキシ装置１０２は、通信装置１０１に依頼されて実施していた代理処理が終了し、外部装置１０３とのプッシュメッセージ送受信処理が終了したことを表示する（Ｍ１００７）。
【００６５】
このようにして、通信装置１０１は、プロキシ装置１０２を介したプッシュメッセージの送受信を終了できる。一連の処理の終了後、通信装置１０１は外部装置１０３に直接接続してもよい。また、通信装置１０１とプロキシ装置１０２の間の通信リンクが切断された場合も、通信装置１０１が外部装置１０３に直接接続するよう通信処理部２０１を制御することで、プッシュメッセージの送受信を継続して実行可能にしてもよい。
【００６６】
また、Ｍ１００１の処理をスキップし、プロキシ装置１０２が主導で通信装置１０１にプッシュメッセージの送受信を終了することを通知してもよい。なお、本実施形態では、通信装置１０１とプロキシ装置１０２との間で時間同期を行っていたが、所定の条件を満足する場合は、常に処理可能状態にしてもよく、または、処理可能状態の時間を延長してもよい。所定の条件を満足する場合として、例えば、通信装置１０１とプロキシ装置１０２とのどちらかをユーザが操作している時に、常に処理可能状態にしてもよく、または、処理可能状態の時間を延長してもよい。プッシュメッセージをより早い時間で送受信できればユーザビリティが向上するからである。また、所定の条件を満足する場合とは、通信装置１０１とプロキシ装置１０２との各電池残量が多い時や給電されている時であってもよい。あるいは、例えば通信装置１０１が不審人物を発見した時や、プロキシ装置１０２や他の通信装置から不審人物を監視するイベントを受信した時であってもよい。
【００６７】
また、本実施形態では、簡単化のために外部装置１０３が１つである例を説明したが、これに限らず、通信装置１０１は複数の外部装置と接続するための代理処理の依頼を行ってもよい。通信装置１０１が複数の外部装置１０３と接続する場合、プロキシ装置１０２が外部装置１０３へのメッセージを複製して、適する１つ以上の外部装置１０３に送信する。これにより、通信装置１０１は１つのプッシュメッセージで複数の外部装置へプッシュメッセージを送信できるようになり、通信装置１０１の処理負荷を低減することができる。
【００６８】
また、プロキシ装置１０２についても１つの装置を例に説明したが、これに限らず、通信装置１０１は複数のプロキシ装置と接続してもよい。以上、本発明の一実施形態を示した。
【００６９】
本実施形態によれば、通信装置がコネクションを維持するための処理負荷を低減し、電力消費量を低減することができる。カメラなどの組込み機器の場合、プッシュメッセージの待受け時間が長くなるという効果がある。
【００７０】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７１】
１０１：通信装置、１０２：プロキシ装置、１０３：外部装置、１０４，１０５：ネットワーク、２０１：通信処理部、２０２：表示部、２０３：依頼部、２０４：ＩＰ処理部、２０５：時間設定部、２０６：実行部、２０７：プッシュ通知送信部、２０８：プッシュ通知受信部、２０９：タイマ部、２１０：スリープ部、３０１：通信処理部、３０２：表示部、３０３：依頼受信部、３０４：ＩＰ処理部、３０５：時間設定部、３０６：実行部、３０７：プッシュ通知送信部、３０８：プッシュ通知受信部、３０９：タイマ部、３１０：スリープ起動部、３１１：経路維持部、３１２：変換部
【図１】
2019213219.tif 000003
【図２】
2019213219.tif 000004
【図３】
2019213219.tif 000005
【図４】
2019213219.tif 000006
【図５】
2019213219.tif 000007
【図６】
2019213219.tif 000008
【図７】
2019213219.tif 000009
【図８】
2019213219.tif 000010
【図９】
2019213219.tif 000011
【図１０】
2019213219.tif 000012
【手続補正書】
【提出日】令和1年10月15日(2019.10.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
通信装置であって、
所定の信号の送信または受信の少なくとも一方の代理処理を他の通信装置に依頼する信号を送信する送信手段と、
前記送信手段により送信された前記信号に対する応答を前記他の通信装置から受信する受信手段と、
前記他の通信装置が前記代理処理を実行可能である場合に前記他の通信装置から送信される前記応答を受信した場合、前記通信装置が通信を実行可能な期間に関する情報を前記他の通信装置と通信する通信手段と、
前記他の通信装置が前記代理処理を実行できない場合に前記他の通信装置から送信される前記応答を受信した場合、エラーを通知する通知手段と、
を有することを特徴とする通信装置。
【請求項２】
前記通知手段は、前記通信装置が備える表示部にエラー情報を表示することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記通信手段は、前記期間を示す情報を前記他の通信装置から受信することを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記通信装置は、前記期間を決定するためのネゴシエーションを前記他の通信装置と行うことを特徴とする請求項１から３の何れか１項に記載の通信装置。
【請求項５】
前記代理処理のモードとして、前記所定の信号の送信を行う第１のモードと、前記所定の信号の受信を行う第２のモードとを含む複数のモードの内、何れか一つを選択する選択手段を更に有し、
前記送信手段は、前記選択手段によって選択されたモードによる前記代理処理を依頼する前記信号を送信することを特徴とする請求項１から４の何れか１項に記載の通信装置。
【請求項６】
前記複数のモードには、前記第１のモードと、前記第２のモードと、前記所定の信号の送信および受信の両方を行う第３のモードとが含まれることを特徴とする請求項５に記載の通信装置。
【請求項７】
前記選択手段による選択は、ユーザ、またはシステム、またはアプリケーションによって行われることを特徴とする請求項５または６に記載の通信装置。
【請求項８】
前記選択手段によって前記第２のモードを選択した場合に、前記通信装置と前記他の通信装置との通信が実行可能な前記期間と異なる期間に前記他の通信装置が代理で受信した前記所定の信号を、前記通信装置と前記他の通信装置との通信が実行可能な前記期間に前記他の通信装置から受信する第２の受信手段を更に有することを特徴とする請求項５から７の何れか１項に記載の通信装置。
【請求項９】
前記他の通信装置が前記代理処理を実行できない場合に前記他の通信装置から送信される前記応答を受信した場合、前記所定の信号の送信または受信の少なくとも一方を前記通信装置が実行するように制御する制御手段を更に有することを特徴とする請求項１から８の何れか１項に記載の通信装置。
【請求項１０】
前記所定の信号は、プッシュメッセージであることを特徴とする請求項１から９に記載の通信装置。
【請求項１１】
通信装置の制御方法であって、
所定の信号の送信または受信の少なくとも一方の代理処理を他の通信装置に依頼する信号を送信する送信工程と、
前記送信工程において送信された前記信号に対する応答を前記他の通信装置から受信する受信工程と、
前記他の通信装置が前記代理処理を実行可能である場合に前記他の通信装置から送信される前記応答を受信した場合、前記通信装置が通信を実行可能な期間に関する情報を前記他の通信装置と通信する通信工程と、
前記他の通信装置が前記代理処理を実行できない場合に前記他の通信装置から送信される前記応答を受信した場合、エラーを通知する通知工程と、
を有することを特徴とする制御方法。
【請求項１２】
請求項１から１０の何れか１項に記載の通信装置としてコンピュータを動作させるためのプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
上記の目的を達成するために、本発明の一態様による通信装置は以下の構成を備える。即ち、
通信装置であって、
所定の信号の送信または受信の少なくとも一方の代理処理を他の通信装置に依頼する信号を送信する送信手段と、
前記送信手段により送信された前記信号に対する応答を前記他の通信装置から受信する受信手段と、
前記他の通信装置が前記代理処理を実行可能である場合に前記他の通信装置から送信される前記応答を受信した場合、前記通信装置が通信を実行可能な期間に関する情報を前記他の通信装置と通信する通信手段と、
前記他の通信装置が前記代理処理を実行できない場合に前記他の通信装置から送信される前記応答を受信した場合、エラーを通知する通知手段と、
を有することを特徴とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、通信装置、通信装置の制御方法およびプログラムに関する。