(57)【要約】【課題】  サーバ装置から通信装置を介して複数のクライアント装置へデータを送信する場合における、通信装置へのデータ送信に係るサーバ装置の処理負荷の増大を抑制する。【解決手段】  中継装置１０１は、別の装置からの要求に応じて識別子を送信し、当該識別子に基づく転送要求をクライアント装置から受信する。また中継装置１０１は、当該識別子に基づく転送要求の送信元のクライアント装置へ転送すべきデータを、サーバ装置１０４から受信する。そして中継装置１０１は、当該識別子に基づく転送要求をクライアント装置１０２及びクライアント装置１０３から受信した場合に、サーバ装置１０４から受信したデータをクライアント装置１０２及びクライアント装置１０３へ転送する。【選択図】  図３
2019082954.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置から受信したデータをクライアント装置へ転送する通信装置であって、
前記通信装置とは別の装置からの情報要求に応じて前記別の装置へ情報を送信する送信手段と、
前記情報に基づく転送要求をクライアント装置から受信する第１受信手段と、
前記情報に基づく転送要求の送信元であるクライアント装置へ転送すべきデータを、前記サーバ装置から受信する第２受信手段と、
前記第１受信手段が、前記情報に基づく転送要求を、前記送信手段により前記情報が送信されていないクライアント装置を含む複数のクライアント装置から受信した場合に、前記第２受信手段により受信されたデータを前記複数のクライアント装置へ転送する転送手段とを有することを特徴とする通信装置。
【請求項２】
前記第１受信手段は、前記通信装置によるプッシュ型のデータ送信を要求するための転送要求をクライアント装置から受信し、
前記転送手段は、前記第２受信手段による前記サーバ装置からのデータの受信に応じたタイミングで当該データを前記複数のクライアント装置へ転送することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記別の装置は、前記複数のクライアント装置の何れかであることを特徴とする請求項１又は２に記載の通信装置。
【請求項４】
前記別の装置は、前記送信手段により送信された前記情報をクライアント装置へ通知する前記サーバ装置であることを特徴とする請求項１又は２に記載の通信装置。
【請求項５】
前記別の装置からの前記情報要求に応じて前記情報としてのＵＲＩを生成する生成手段を有し、
前記送信手段は、前記生成手段により生成されたＵＲＩを前記別の装置へ送信することを特徴とする請求項１乃至４の何れか１項に記載の通信装置。
【請求項６】
前記第１受信手段が前記情報に基づく転送要求を所定数以上のクライアント装置から受信した場合に、エラー通知を行う通知手段を有することを特徴とする請求項１乃至５の何れか１項に記載の通信装置。
【請求項７】
前記第２受信手段により受信されるデータを前記複数のクライアント装置のすべてに転送するかを判定する判定手段を有し、
前記転送手段は、前記第２受信手段により受信されるデータを前記複数のクライアント装置のすべてに転送すると前記判定手段により判定されなかった場合には、当該受信されるデータを前記複数のクライアント装置のうち一部のクライアント装置にのみ転送することを特徴とする請求項１乃至６の何れか１項に記載の通信装置。
【請求項８】
前記判定手段は、前記第２受信手段により受信されるデータを前記複数のクライアント装置のすべてに転送するかを、当該受信されるデータに付加された情報に基づいて判定することを特徴とする請求項７に記載の通信装置。
【請求項９】
前記送信手段は、前記別の装置からの前記情報要求に応じて前記別の装置へ第１情報及び第２情報を送信し、
前記第２受信手段は、前記第２情報に基づくデータを、前記第１情報に基づく転送要求の送信元であるクライアント装置へ転送すべきデータとして前記サーバ装置から受信し、
前記転送手段は、前記第１受信手段が前記第１情報に基づく転送要求を複数のクライアント装置から受信した場合に、前記第２受信手段により受信されたデータを前記複数のクライアント装置へ転送することを特徴とする請求項１乃至８の何れか１項に記載の通信装置。
【請求項１０】
前記送信手段により送信される前記第２情報と認証情報とを関連付けて記憶する記憶手段と、
前記記憶手段により記憶されている前記第２情報についての削除要求を受信する第３受信手段と、
前記第３受信手段により受信された前記第２情報についての削除要求が、前記認証情報と合致する情報を含む場合に、前記記憶手段により記憶されている前記第２情報を削除する削除手段とを有し、
前記転送手段は、前記第２受信手段により受信されたデータに対応する前記第２情報が前記記憶手段により記憶されている場合に、当該受信されたデータを転送することを特徴とする請求項９に記載の通信装置。
【請求項１１】
前記情報に基づく転送要求は、前記情報を含む転送要求又は前記情報と関連づけられた転送要求であることを特徴とする請求項１乃至１０の何れか１項に記載の通信装置。
【請求項１２】
前記第１情報及び前記第２情報は、それぞれＷｅｂＰｕｓｈプロトコルにおいて規定されるサブスクリプションＵＲＩおよびプッシュＵＲＩであることを特徴とする請求項１０又は１１に記載の通信装置。
【請求項１３】
前記通信装置は、前記複数のクライアント装置との通信において、ＨＴＴＰ／２において規定されるサーバとして機能することを特徴とする請求項１乃至１２の何れか１項に記載の通信装置。
【請求項１４】
通信装置に対する情報要求に応じて前記通信装置から送信された情報を受信する受信手段と、
前記通信装置を介して複数のクライアント装置へ送信すべきデータを前記通信装置へ送信する第１送信手段と、
前記受信手段により受信された前記情報であって、前記第１送信手段により前記通信装置へ送信された前記データを前記通信装置から取得するために用いられる前記情報を、前記複数のクライアント装置へ送信する第２送信手段とを有することを特徴とするサーバ装置。
【請求項１５】
前記第２送信手段により送信される前記情報は、クライアント装置が前記通信装置からプッシュ型のデータ送信により前記データを取得するために用いられる情報であることを特徴とする請求項１４に記載のサーバ装置。
【請求項１６】
クライアント装置であって、
前記クライアント装置とは別のクライアント装置からの情報要求に応じて前記別のクライアント装置へ通信装置により送信された情報であって、サーバ装置から前記通信装置へ送信されたデータを前記通信装置から取得するために用いられる情報を、前記別のクライアント装置から受信する第１受信手段と、
前記データの転送要求であって、前記第１受信手段により受信された前記情報に基づく転送要求を、前記通信装置へ送信する送信手段と、
前記送信手段により送信された前記転送要求に応じて前記通信装置により転送された前記データを受信する第２受信手段とを有することを特徴とするクライアント装置。
【請求項１７】
前記送信手段は、前記通信装置からのプッシュ型のデータ送信による前記データの転送を要求するための前記転送要求を、前記通信装置へ送信することを特徴とする請求項１６に記載のクライアント装置。
【請求項１８】
サーバ装置から送信されたデータを通信装置を介してクライアント装置へ転送する通信システムにより実行される通信方法であって、
複数のクライアント装置から前記通信装置へ、前記通信装置によるプッシュ型のデータ送信を要求するための転送要求を送信する第１送信工程と、
前記通信装置が前記サーバ装置からデータを受信する受信工程と、
前記第１送信工程において送信された転送要求に応じて、前記通信装置から前記複数のクライアント装置へ、前記受信工程において受信された前記データを送信する第２送信工程とを有することを特徴とする通信方法。
【請求項１９】
前記通信装置とは別の装置からの情報要求に応じて前記通信装置が前記別の装置へ情報を送信する第３送信工程を有し、
前記第１送信工程においては、前記第３送信工程において前記情報が送信されていないクライアント装置を含む前記複数のクライアント装置から前記通信装置へ、前記情報に基づく転送要求が送信され、
前記受信工程においては、前記情報に基づく転送要求の送信元であるクライアント装置へ転送すべき前記データを、前記通信装置が前記サーバ装置から受信することを特徴とする請求項１８に記載の通信方法。
【請求項２０】
前記別の装置は、前記複数のクライアント装置の何れかであることを特徴とする請求項１９に記載の通信方法。
【請求項２１】
コンピュータを、請求項１乃至１３の何れか１項に記載の通信装置の各手段、請求項１４若しくは１５に記載のサーバ装置の各手段、又は請求項１６若しくは１７に記載のクライアント装置の各手段として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ装置から通信装置を介してクライアント装置へデータを送信する技術に関する。
【背景技術】
【０００２】
近年、サーバ装置からクライアント装置へプッシュ型のデータ送信を行うプッシュサービスが考えられている。プッシュサービスにおいては、クライアント装置からサーバ装置へのリクエストのタイミングによらずに、サーバ装置からクライアント装置へイベントの発生などを通知するためのデータが送信される。ＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）においては、Ｗｅｂ技術を用いたプッシュサービスの実現の方式としてＷｅｂＰｕｓｈプロトコルが提案されている。ＷｅｂＰｕｓｈプロトコルに従う通信においては、サーバ装置（ＡＳ：ＡｐｐｌｉｃａｔｉｏｎＳｅｒｖｅｒ）から送信されたデータを通信装置（ＰＳ：ＰｕｓｈＳｅｒｖｉｃｅ）がクライアント装置（ＵＡ：ＵｓｅｒＡｇｅｎｔ）へ転送する。これにより、ＡＳからＵＡへのプッシュ型のデータ送信が実現される。特許文献１には、サーバ装置が複数のクライアント装置に接続され、一つのクライアント装置に対して他の複数のクライアント装置の状態を示す情報をプッシュすることが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−８３９２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来技術では、サーバ装置から通信装置を介して複数のクライアント装置へデータを送信する場合に、通信装置へのデータ送信に係るサーバ装置の処理負荷が大きくなってしまうという課題がある。例えば、ＷｅｂＰｕｓｈプロトコルに従う通信において、ＡＳからＰＳを介して複数のＵＡに同一のデータを送信する場合に、ＡＳが複数のＵＡそれぞれを宛先とする複数回のデータ送信をＰＳに対して行うと、ＡＳの処理負荷が大きくなる。
【０００５】
本発明は上記課題に鑑み、サーバ装置から通信装置を介して複数のクライアント装置へデータを送信する場合における、通信装置へのデータ送信に係るサーバ装置の処理負荷の増大を抑制するための技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するため、本発明に係る通信装置は、例えば以下の構成を有する。すなわち、サーバ装置から受信したデータをクライアント装置へ転送する通信装置であって、前記通信装置とは別の装置からの情報要求に応じて前記別の装置へ情報を送信する送信手段と、前記情報に基づく転送要求をクライアント装置から受信する第１受信手段と、前記情報に基づく転送要求の送信元であるクライアント装置へ転送すべきデータを、前記サーバ装置から受信する第２受信手段と、前記第１受信手段が、前記情報に基づく転送要求を、前記送信手段により前記情報が送信されていないクライアント装置を含む複数のクライアント装置から受信した場合に、前記第２受信手段により受信されたデータを前記複数のクライアント装置へ転送する転送手段とを有する。
【発明の効果】
【０００７】
本発明によれば、サーバ装置から通信装置を介して複数のクライアント装置へデータを送信する場合における、通信装置へのデータ送信に係るサーバ装置の処理負荷の増大を抑制することができる。
【図面の簡単な説明】
【０００８】
【図１】通信システム１００の構成例を示す図である。
【図２】中継装置１０１のハードウェア構成例を示す図である。
【図３】通信システム１００の動作シーケンスの例を示す図である。
【図４】中継装置１０１による識別子の生成に関する動作について説明するためのフローチャートである。
【図５】中継装置１０１による転送要求の受信に関する動作について説明するためのフローチャートである。
【図６】中継装置１０１によるプッシュメッセージの送信に関する動作について説明するためのフローチャートである。
【図７】クライアント装置１０２による識別子の受信と送信に関する動作について説明するためのフローチャートである。
【図８】クライアント装置１０３による識別子の取得に関する動作について説明するためのフローチャートである。
【図９】クライアント装置１０２によるプッシュメッセージの受信に関する動作について説明するためのフローチャートである。
【図１０】サーバ装置１０４によるメッセージの送信に関する動作について説明するためのフローチャートである。
【図１１】中継装置１０１により管理されるリストの例を示す図である。
【図１２】通信システム１００の動作シーケンスの例を示す図である。
【発明を実施するための形態】
【０００９】
〔実施形態１〕
［システム構成］
以下、本発明の実施形態について、図面を参照して説明する。図１は、本実施形態に係る通信システム１００の構成を示す図である。本実施形態の通信システム１００は、中継装置１０１、クライアント装置１０２、クライアント装置１０３、及びサーバ装置１０４を有する。クライアント装置１０２及びクライアント装置１０３は中継装置１０１を介してサーバ装置１０４と有線または無線で接続され、相互に通信を行って、例えば静止画や動画等のコンテンツデータやイベント通知コマンドなどを送受信する。なお、図１に示す通信システム１００内には２台のクライアント装置が存在するが、中継装置１０１に接続されるクライアント装置の数はこれに限らず、３台以上であってもよい。また、中継装置１０１に接続されるサーバ装置１０４も、２台以上であってもよい。
【００１０】
本実施形態において、クライアント装置１０２とクライアント装置１０３はＨＴＴＰ／２（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ２）において規定されるクライアントとして動作する。一方、中継装置１０１はＨＴＴＰ／２において規定されるサーバとして動作する。即ち、クライアント装置１０２及びクライアント装置１０３は中継装置１０１にＨＴＴＰリクエストを送信し、中継装置１０１は受信したＨＴＴＰリクエストに応じてクライアント装置１０２及びクライアント装置１０３にＨＴＴＰレスポンスを送信する。
【００１１】
サーバ装置１０４は、クライアント装置１０２及びクライアント装置１０３に対して、中継装置１０１を介してデータを送信することによりプッシュサービスを提供する。プッシュサービスの実現のために、中継装置１０１からクライアント装置１０２及びクライアント装置１０３へのデータの転送には、例えばＨＴＴＰ／２の機能としてのサーバープッシュなどプッシュ型のデータ送信方法が用いられる。なお、サーバ装置１０４は中継装置１０１との通信においては、ＨＴＴＰ／１．１（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  １．１）において規定されるクライアントとして動作する。そして中継装置１０１は、サーバ装置１０４との通信においてＨＴＴＰ／１．１において規定されるサーバとして動作する。具体的には、サーバ装置１０４は中継装置１０１にＰＯＳＴメソッドなどのリクエストを送信し、プッシュによる送信の対象となるデータを中継装置１０１にアップロードする。
【００１２】
中継装置１０１は具体的には、ＰＣ、ネットワークスイッチ、及びルータなどの通信装置である。クライアント装置１０２及びクライアント装置１０３は具体的には、デジタルカメラ、ネットワークカメラ、プリンタ、複合機、テレビ、プロジェクタ、携帯電話、スマートフォン、及びＰＣなどのクライアント装置である。また、サーバ装置１０４の具体例も、クライアント装置１０２及びクライアント装置１０３と同様である。ただし、通信システム１００内の各装置の形態はこれらに限定されない。
【００１３】
クライアント装置１０２、クライアント装置１０３、及びサーバ装置１０４と中継装置１０１とは、例えばＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、又はそれらの組み合わせにより接続される。ＬＡＮとしては、Ｅｔｈｅｒｎｅｔ（登録商標）に則った有線ＬＡＮや、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）８０２．１１シリーズに則った無線ＬＡＮなどが用いられる。ＷＡＮとしては、例えばインターネットなどが用いられる。また、Ｂｌｕｅｔｏｏｔｈ（登録商標）やＺｉｇｂｅｅ（登録商標）など他の通信方式に基づいて接続されてもよい。
【００１４】
クライアント装置１０２とクライアント装置１０３との間、及びクライアント装置１０２とサーバ装置１０４との間でもデータのやり取りが行われる。本実施形態ではこのデータのやり取りがＬＡＮやＷＡＮを介した通信により行われる場合を中心に説明するが、データのやり取りの方法はこれに限らない。例えば、一方の装置に表示させた画像やＱＲコード（登録商標）を他方の装置により読み取ることでデータをやり取りしてもよいし、一方の装置に表示された情報をユーザが他方の装置に入力してもよい。また、クライアント装置１０２やサーバ装置１０４などが不図示の情報管理装置に対するデータの登録、削除、及び更新などを行うことにより、情報管理装置を介したデータのやり取りが行われてもよい。情報管理装置は、例えば、クラウド上やサーバ上で管理されるソフトウェアであってもよい。
【００１５】
本実施形態において、中継装置１０１はＷｅｂＰｕｓｈプロトコルにおいて規定されるＰＳ（ＰｕｓｈＳｅｒｖｉｃｅ）の機能を持つ。また、クライアント装置１０２とクライアント装置１０３はＷｅｂＰｕｓｈプロトコルにおいて規定されるＵＡ（ＵｓｅｒＡｇｅｎｔ）の機能を持つ。そして、サーバ装置１０４はＷｅｂＰｕｓｈプロトコルにおいて規定されるＡＳ（ＡｐｐｌｉｃａｔｉｏｎＳｅｒｖｉｃｅ）の機能を持つ。通信システム１００の基本的な動作としては、以下のようになる。すなわち、クライアント装置１０２及びクライアント装置１０３が中継装置１０１にデータの転送要求を行い、サーバ装置１０４が中継装置１０１へプッシュによる送信の対象となるデータを送信する。そして中継装置１０１が、サーバ装置１０４からのデータの受信に応じたタイミングで、転送要求を行った中継装置へ当該データを転送する。各装置の詳細な動作については後述する。
【００１６】
通信システム１００の具体的な例としては、以下のようなものがある。クライアント装置１０２はスマートフォンであり、サーバ装置１０４はネットワークカメラである。クライアント装置１０２は中継装置１０１に転送要求を行い、サーバ装置１０４からの撮影画像の送信を待ち受ける。サーバ装置１０４は、カメラにより監視エリアを撮影し、監視エリアにおける異常を検知した場合に撮影画像を中継装置１０１に送信する。そして中継装置１０１は、サーバ装置１０４から送信された撮影画像をクライアント装置１０２に転送する。これにより、クライアント装置１０２のユーザは、監視エリアにおいて検知された異常を知り、監視エリアの撮影画像を確認することができる。
【００１７】
ここで、クライアント装置１０２とクライアント装置１０３の両方が、サーバ装置１０４からの同一データの送信を待ち受ける場合を考える。この場合に、サーバ装置１０４がまずクライアント装置１０２を宛先とするデータを中継装置１０１に送信し、その後にクライアント装置１０３を宛先とするデータを中継装置１０１に送信すると、サーバ装置１０４は同一データを２回送信することになる。このような方法を用いる場合、宛先となるクライアント装置の数が多くなるほどサーバ装置１０４からのデータ送信の回数が多くなり、サーバ装置１０４及び中継装置１０１の処理負荷や、ネットワークの負荷が大きくなる。そこで、本実施形態に係る通信システム１００においては、複数のクライアント装置による転送要求において同一の識別情報を共用することで、サーバ装置１０４から中継装置１０１へのデータ送信の回数を削減する。
【００１８】
［装置構成］
図２は、中継装置１０１のハードウェア構成を示すブロック図である。なお、クライアント装置１０２、クライアント装置１０３、及びサーバ装置１０４も、中継装置１０１と同様の構成である。中継装置１０１は、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、補助記憶装置２０４、表示部２０５、操作部２０６、通信部２０７、及びバス２０８を有する。
【００１９】
ＣＰＵ２０１は、ＲＯＭ２０２やＲＡＭ２０３に格納されているコンピュータプログラムやデータを用いて中継装置１０１の全体を制御する。ＲＯＭ２０２は、変更を必要としないプログラムやパラメータを格納する。ＲＡＭ２０３は、補助記憶装置２０４から供給されるプログラムやデータ、及び通信部２０７を介して外部から供給されるデータなどを一時記憶する。補助記憶装置２０４は、例えばハードディスクドライブ等で構成され、静止画や動画などのコンテンツデータを記憶する。
【００２０】
表示部２０５は、例えば液晶ディスプレイ等で構成され、ユーザが中継装置１０１を操作するためのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）などを表示する。操作部２０６は、例えばキーボードやマウス、タッチパネル等で構成され、ユーザによる操作を受けて各種の指示をＣＰＵ２０１に入力する。通信部２０７は、クライアント装置１０２やクライアント装置１０３、サーバ装置１０４などの外部の装置と通信を行う。中継装置１０１が外部の装置と有線で接続される場合には、例えばＬＡＮケーブル等が通信部２０７に接続される。また、中継装置１０１が外部の装置と無線通信する機能を有する場合、通信部２０７はアンテナ等を備える。バス２０８は、中継装置１０１の各部を繋いで情報を伝達する。
【００２１】
なお、本実施形態ではＣＰＵ２０１がプログラムを実行することで通信部２０７を介した中継装置１０１と外部の装置との通信を制御するが、中継装置１０１と外部の装置との通信の少なくとも一部を通信部２０７がハードウェア処理により制御してもよい。また、本実施形態では表示部２０５と操作部２０６は中継装置１０１の内部に存在するが、表示部２０５及び操作部２０６の少なくとも一方が中継装置１０１の外部に別の装置として存在していてもよい。この場合、ＣＰＵ２０１が、表示部２０５を制御する表示制御部、及び操作部２０６を制御する操作制御部として動作する。
【００２２】
［通信シーケンス］
以下、本実施形態における通信システム１００内における通信のシーケンスについて、詳細に説明する。図３は、サーバ装置１０４が中継装置１０１を介してクライアント装置１０２及びクライアント装置１０３にデータをプッシュにより送信する際のシーケンスである。図３に示すシーケンスは、クライアント装置１０２、クライアント装置１０３、及びサーバ装置１０４のそれぞれと中継装置１０１との間の接続が確立されたタイミングで開始される。ただし、図３の処理の開始タイミングは上記タイミングに限定されない。図３に示す各通信処理は、通信システム１００内の各装置のＣＰＵ２０１が通信部２０７などを制御することで実行される。
【００２３】
Ｍ１３０１において、クライアント装置１０２は中継装置１０１にサブスクライブ（識別子の情報要求）を行う。中継装置１０１はクライアント装置１０２からのサブスクライブを受け付け、ＷｅｂＰｕｓｈプロトコルにおいて規定されるプッシュＵＲＩとそれに対応するプッシュメッセージサブスクリプションＵＲＩ（以降、サブスクリプションＵＲＩ）を生成する。生成されたプッシュＵＲＩとサブスクリプションＵＲＩは、図１１（ａ）に示す識別子リストのような形式で中継装置１０１のＲＡＭ２０３に保存される。プッシュＵＲＩ及びサブスクリプションＵＲＩは、中継装置１０１がサーバ装置１０４から送信されるデータの転送先を特定するために用いる識別子である。なお、これらの識別子はサブスクライブに応じて生成されるものに限らず、予め中継装置１０１が保持していた識別子の中からサブスクライブに応じて決定されたものであってもよい。本実施形態では識別子をＵＲＩ（ＵｎｉｆｏｒｍＲｅｓｏｕｒｃｅＩｄｅｎｔｉｆｅｒ）としているが、ＵＵＩＤ（ＵｎｉｖｅｒｓａｌｌｙＵｎｉｑｕｅＩｄｅｔｉｆｅｒ）のような他の形態の識別子であってもよい。また、本実施形態ではプッシュＵＲＩとサブスクリプションＵＲＩという２種類の情報が用いられる場合を中心に説明するが、これに限らず、１種類の情報を用いて転送対象のデータや転送先が特定されてもよい。すなわち、以下の説明におけるプッシュＵＲＩとサブスクリプションＵＲＩとが同一の情報であってもよい。
【００２４】
本実施形態では、サブスクライブがＨＴＴＰ／１．１のＰＯＳＴメソッドを用いて行われるものとするが、例えばＧＥＴメソッドの様な別メソッドが用いられてもよいし、ＦＴＰやＷｅｂｓｏｃｋｅｔなどの他通信規格に従う通信が用いられても良い。また本実施形態では、プッシュＵＲＩとサブスクリプションＵＲＩという２つの識別子が中継装置１０１により生成される場合について説明するが、これに限らない。例えば、プッシュＵＲＩのみが生成されてもよいし、プッシュＵＲＩとサブスクリプションＵＲＩに加えてＷｅｂｐｕｓｈプロトコルにおいて規定されるプッシュメッセージサブスクリプション・セットＵＲＩが生成されてもよい。
【００２５】
Ｍ１３０２において、中継装置１０１は、Ｍ１３０１におけるクライアント装置１０２からの要求に応じて、Ｍ１３０１で生成されたプッシュＵＲＩとサブスクリプションＵＲＩを含むレスポンスを送信する。クライアント装置１０２はレスポンスを受信し、受信したレスポンスに含まれるプッシュＵＲＩとサブスクリプションＵＲＩをＲＡＭ２０３などに保存する。本実施形態ではこのレスポンスにおけるステータスコードを２０１Ｃｒｅａｔｅｄとしているが、これに限らなくてもよい。
【００２６】
Ｍ１３０３において、クライアント装置１０２はクライアント装置１０３に、Ｍ１３０２で受信したプッシュＵＲＩとサブスクリプションＵＲＩを送信する。クライアント装置１０３はプッシュＵＲＩとサブスクリプションＵＲＩを受信し、プッシュＵＲＩとサブスクリプションＵＲＩをＲＡＭ２０３などに保存する。
【００２７】
Ｍ１３０４において、クライアント装置１０２はサーバ装置１０４にプッシュＵＲＩを送信する。サーバ装置１０４はプッシュＵＲＩを受信し、プッシュＵＲＩをＲＡＭ２０３などに保存する。なお、図３の例ではＨＴＴＰ／１．１に従う通信を用いてクライアント装置１０２からサーバ装置１０４へのプッシュＵＲＩの受け渡しを行っているが、すでに説明した通り、データの受け渡しの方法はこれに限定されない。例えば、サーバ装置１０４はプッシュＵＲＩを他の通信プロトコルを用いて受信してもよいし、クライアント装置１０２の表示部２０５に表示された画像やＱＲコードを用いて受信してもよいし、情報管理装置を介して受信してもよい。また、ユーザがサーバ装置１０４の操作部２０６を操作してプッシュＵＲＩを入力してもよい。なお、Ｍ１３０３におけるデータの受け渡しについても同様である。
【００２８】
Ｍ１３０５において、クライアント装置１０２は中継装置１０１に、Ｍ１３０２で中継装置１０１から受信したサブスクリプションＵＲＩを含む転送要求を送信する。この転送要求の送信により、クライアント装置１０２は、中継装置１０１によるプッシュ型のデータ送信を要求する。中継装置１０１は転送要求を受信し、受信した転送要求に含まれるサブスクリプションＵＲＩがＲＡＭ２０３内の識別子リストに保存済みのサブスクリプションＵＲＩと合致することを確認する。そして中継装置１０１は、そのサブスクリプションＵＲＩに対応するプッシュＵＲＩと、転送要求の送信元であるクライアント装置１０２のデバイス情報とを、図１１（ｂ）に示すプッシュ配信リストのような形式でＲＡＭ２０３に保存する。
【００２９】
Ｍ１３０６において、クライアント装置１０３は中継装置１０１に、Ｍ１３０３でクライアント装置１０２から受信したサブスクリプションＵＲＩを含む転送要求を送信する。中継装置１０１はＭ１３０５の処理と同様に、転送要求を受信し、プッシュＵＲＩとデバイス情報をプッシュ配信リストに保存する。
【００３０】
すなわち、Ｍ１３０５及びＭ１３０６において中継装置１０１は、同一のサブスクリプションＵＲＩを含む２つの転送要求を、クライアント装置１０２とクライアント装置１０３の２つの装置から受信する。そして、中継装置１０１が保持するプッシュ配信リストにおいては、図１１（ｂ）に示すように、同一のプッシュＵＲＩに複数のデバイス情報が対応付けられる。
【００３１】
Ｍ１３０７において、サーバ装置１０４は中継装置１０１に、Ｍ１３０４でクライアント装置１０２から受信したプッシュＵＲＩを含む配信メッセージを送信する。中継装置１０１はサーバ装置１０４からプッシュＵＲＩを含む配信メッセージを受信し、受信した配信メッセージに含まれるプッシュＵＲＩがＲＡＭ２０３内の識別子リストに保存済みのプッシュＵＲＩと合致することを確認する。合致する場合の当該配信メッセージは、当該プッシュＵＲＩと対応するサブスクリプションＵＲＩを含む転送要求の送信元であるクライアント装置へ転送すべきデータである。Ｍ１３０８において、中継装置１０１はサーバ装置１０４に、プッシュのリクエストを受け付けたことを示す配信レスポンスを送信し、サーバ装置１０４は配信レスポンスを受信する。
【００３２】
Ｍ１３０９において、中継装置１０１は、ＲＡＭ２０３に保存されているプッシュ配信リストから、Ｍ１３０７で受信した配信メッセージに含まれるプッシュＵＲＩに対応するデバイス情報を検索する。そして中継装置１０１は、該当したデバイス情報から特定されるクライアント装置１０２に、そのプッシュＵＲＩを含むプッシュ予約を送信する。プッシュ予約の送信により、後にメッセージがプッシュ通知により送信されることが送信先に通知される。クライアント装置１０２はプッシュ予約を受信し、中継装置１０１からプッシュメッセージを受信するまで待機する。
【００３３】
Ｍ１３１０において、中継装置１０１はクライアント装置１０２にプッシュメッセージを送信する。クライアント装置１０２はプッシュメッセージを受信する。このプッシュメッセージは、Ｍ１３０５における転送要求に応じて中継装置１０１からクライアント装置１０２へプッシュにより送信されるメッセージである。すなわち、クライアント装置１０２からのリクエストに依存しないタイミングで中継装置１０１からプッシュメッセージが送信される。ただし、Ｍ１３１０におけるプッシュ型のデータ送信の代わりに、中継装置１０１はクライアント装置１０２からのリクエストを待ってメッセージを送信してもよい。
【００３４】
ここで中継装置１０１から送信されるプッシュメッセージは、Ｓ１３０７においてサーバ装置１０４から送信された配信メッセージに応じた情報である。またこのプッシュメッセージは、配信メッセージに含まれるプッシュＵＲＩに対応するサブスクリプションＵＲＩを含むＭ１３０５における転送要求に応じて中継装置１０１により転送される情報でもある。なお、配信メッセージとプッシュメッセージは同一のデータを含んでいてもよいし、異なるデータを含んでいてもよい。Ｍ１３１１において、クライアント装置１０２は中継装置１０１に、プッシュメッセージを受信したことを示すプッシュレスポンスを送信する。中継装置１０１はプッシュレスポンスを受信する。
【００３５】
Ｍ１３１２において、中継装置１０１はＭ１３０９と同様に、Ｍ１３０７で受信した配信メッセージに含まれるプッシュＵＲＩに対応するデバイス情報から特定されるクライアント装置１０３に、そのプッシュＵＲＩを含むプッシュ予約を送信する。クライアント装置１０３はプッシュ予約を受信し、中継装置１０１からプッシュメッセージを受信するまで待機する。
【００３６】
Ｍ１３１３において、中継装置１０１はクライアント装置１０３にプッシュメッセージを送信し、クライアント装置１０３はプッシュメッセージを受信する。ここで送信されるプッシュメッセージは、Ｓ１３０７においてサーバ装置１０４から送信された配信メッセージに応じた情報である。なお、Ｓ１３１３において送信されるプッシュメッセージとＭ１３１０において送信されるプッシュメッセージは同一であってもよいし、送信先に応じて異なるデータを含んでいてもよい。Ｍ１３１４において、クライアント装置１０３は中継装置１０１にプッシュレスポンスを送信し、中継装置１０１はプッシュレスポンスを受信する。
【００３７】
以上で通信システム１００における一連の通信が終了する。図３を用いて説明したシーケンスをまとめると、以下のようになる。中継装置１０１は、サーバ装置１０４から送信されるデータを転送するためのサブスクリプションＵＲＩと、そのサブスクリプションＵＲＩに対応するプッシュＵＲＩとを生成する（Ｍ１３０１）。クライアント装置１０２とクライアント装置１０３は、同一のサブスクリプションＵＲＩを取得し（Ｍ１３０２及びＭ１３０３）、中継装置１０１によるプッシュ型のデータ送信を要求するための転送要求を送信する（Ｍ１３０５及びＭ１３０６）。サーバ装置１０４は、プッシュＵＲＩを取得し（Ｍ１３０４）、取得したプッシュＵＲＩに基づくデータを中継装置１０１へ送信する（Ｍ１３０７）。中継装置１０１は、サーバ装置１０４から受信したデータを、そのデータのプッシュＵＲＩに対応するサブスクリプションＵＲＩに基づく転送要求を送信したクライアント装置１０２及びクライアント装置１０３へ転送する（Ｍ１３１０及びＭ１３１３）。
【００３８】
このように、本実施形態の通信システム１００によれば、サーバ装置１０４から中継装置１０１への１回のデータ送信で、クライアント装置１０２及びクライアント装置１０３の両方へのプッシュ型のデータ送信を実現することができる。すなわち、サーバ装置１０４が中継装置１０１を介してクライアント装置１０２及びクライアント装置１０３にメッセージを送信する際に、サーバ装置１０４から中継装置１０１への配信メッセージを省略することができる。これにより、サーバ装置１０４及び中継装置１０１の通信に係る処理負荷を軽減することができ、またサーバ装置１０４がプッシュＵＲＩとサブスクリプションＵＲＩを管理するために使用するメモリ容量を減らせるという効果もある。
【００３９】
また、中継装置１０１に識別子リストに保存された使用済みのプッシュＵＲＩとサブスクリプションＵＲＩを削除するためのアンサブスクライブはクライアント装置１０２及びクライアント装置１０３の何れか一方が行えばよくなる。そのため、クライアント装置１０２及びクライアント装置１０３の処理負荷を軽減できるという効果もある。さらに、本実施形態の通信システム１００によれば、サーバ装置１０４から送信される同一のデータが、クライアント装置１０２とクライアント装置１０３の両方により受信される。例えば、クライアント装置１０２がユーザの自宅にあるＰＣで、クライアント装置１０３がユーザの持っている携帯端末であった場合に、ユーザは在宅時にはＰＣで受信したデータを閲覧し、外出時には携帯端末で受信データを閲覧するようなことが可能となる。
【００４０】
［装置の動作フロー］
次に、通信システム１００内の各装置の動作フローについて説明する。なお、図４から図１０を用いて以下で説明する処理は、各装置のＣＰＵ２０１がＲＯＭ２０２に格納されたプログラムをＲＡＭ２０３に展開して実行することで実現される。ただし、以下で説明する処理の少なくとも一部が、ＣＰＵ２０１とは異なる専用のハードウェアにより実現されてもよい。
【００４１】
図４は、中継装置１０１が識別子を生成する際の処理を説明するためのフローチャートである。図４に示す処理は、中継装置１０１がクライアント装置１０２もしくはクライアント装置１０３から識別子要求（サブスクライブ）を受信するタイミングで開始される。Ｓ５０１において、中継装置１０１は、クライアント装置１０２もしくはクライアント装置１０３から識別子要求を受信する。Ｓ５０２において、中継装置１０１は、識別子としてサブスクリプションＵＲＩとプッシュＵＲＩを生成する。Ｓ５０３において、中継装置１０１は、Ｓ５０１での識別子要求の送信元であるクライアント装置１０２もしくはクライアント装置１０３に識別子を送信する。Ｓ５０４において、中継装置１０１はＳ５０２で生成した識別子を図１１（ａ）に示すＲＡＭ２０３内の識別子リストに保存する。
【００４２】
図５は、中継装置１０１が転送要求を受信した際の処理を説明するためのフローチャートである。図５に示す処理は、中継装置がクライアント装置１０２もしくはクライアント装置１０３から転送要求を受信するタイミングで開始される。Ｓ６０１において、中継装置１０１は、クライアント装置１０２もしくはクライアント装置１０３から識別子を含む転送要求を受信する。Ｓ６０２において、中継装置１０１は、Ｓ６０１で受信した識別子とＳ５０４で識別子リストに保存した識別子を比較し、受信した識別子が識別子リストに含まれている場合はＳ６０３に進み、含まれていない場合はＳ６０４に進む。
【００４３】
Ｓ６０３において、中継装置１０１は、Ｓ６０１で受信した転送要求の送信元であるクライアント装置のデバイス情報を図１１（ｂ）に示すＲＡＭ２０３内のプッシュ配信リストに保存する。本実施形態におけるデバイス情報は、中継装置１０１がクライアント装置を一意に特定することができる情報である。具体的には、クライアント装置の機器ＩＤ、ＭＡＣアドレス、又はクライアント装置と中継装置との間のコネクションの識別情報などである。Ｓ６０４において、中継装置１０１は、Ｓ６０１での転送要求の送信元であるクライアント装置１０２もしくはクライアント装置１０３にエラーレスポンスを送信する。
【００４４】
図６は、中継装置１０１がクライアント装置１０２及びクライアント装置１０３にプッシュメッセージを送信する処理を説明するためのフローチャートである。図６に示す処理は、中継装置１０１がサーバ装置１０４から配信メッセージを受信するタイミングで開始される。Ｓ７０１において、中継装置１０１はサーバ装置１０４から識別子を含む配信メッセージを受信する。Ｓ７０２において、中継装置１０１は、Ｓ７０１で受信した識別子とＳ５０４で識別子リストに保存した識別子を比較し、受信した識別子が識別子リストに含まれている場合はＳ７０３に進み、含まれていない場合はＳ７０４に進む。
【００４５】
Ｓ７０３において、中継装置１０１はサーバ装置１０４に配信レスポンスを送信する。Ｓ７０４において、中継装置１０１はサーバ装置１０４にエラーレスポンスを送信する。Ｓ７０５において、中継装置１０１は、Ｓ６０３で保存したプッシュ配信リストにおいてＳ７０１で受信した識別子と対応するデバイス情報それぞれについて、Ｓ７０６からＳ７０８の処理を行う。Ｓ７０６において、中継装置１０１は、対象のデバイス情報に対応するクライアント装置にプッシュ予約を送信する。Ｓ７０７において、中継装置１０１は、対象のデバイス情報に対応するクライアント装置にプッシュメッセージを送信する。Ｓ７０８において、中継装置１０１は、Ｓ７０７でのプッシュメッセージの送信先のクライアント装置からプッシュレスポンスを受信する。
【００４６】
Ｓ７０１で受信されたプッシュＵＲＩと対応するデバイス情報がプッシュ配信リストに複数保存されている場合、Ｓ７０５からＳ７０８において中継装置１０１は、Ｓ７０１において受信した配信メッセージを当該複数のクライアント装置へ転送する。ここで、同一のプッシュＵＲＩと対応するデバイス情報がプッシュ配信リストに複数保存されている場合とは、すなわち中継装置１０１が同一のサブスクリプションＵＲＩに基づく転送要求を複数のクライアント装置から受信していた場合である。図３を用いて上述した例では、クライアント装置１０２のデバイス情報と、中継装置１０１から識別子が直接送信されていないクライアント装置１０３のデバイス情報との両方が、Ｍ１３０５及びＭ１３０６の転送要求に応じてプッシュ配信リストに保存される。
【００４７】
図７は、クライアント装置１０２が中継装置１０１から識別子を受信し、クライアント装置１０３及びサーバ装置１０４に識別子を送信する処理を説明するためのフローチャートである。図７に示す処理は、例えばクライアント装置１０２にユーザの操作などによって識別子要求の指示がなされたタイミングで開始される。ただし、図７に示す処理の開始タイミングは上記タイミングに限定されない。
【００４８】
Ｓ８０１において、クライアント装置１０２は中継装置１０１に識別子要求を送信する。Ｓ８０２において、クライアント装置１０２は中継装置１０１から識別子を受信する。Ｓ８０３において、クライアント装置１０２は自装置が有するＲＡＭ２０３内の識別子リストにＳ８０２で受信した識別子を保存する。Ｓ８０４において、クライアント装置１０２は、送信対象装置それぞれについてＳ８０５の処理を行う。本実施形態における送信対象装置はクライアント装置１０３及びサーバ装置１０４を指すが、これに限らない。例えば、識別子を管理するための情報管理装置（不図示）を送信対象装置とし、クライアント装置１０２は他の装置との間の識別子のやり取りを、情報管理装置を介して行ってもよい。Ｓ８０５において、クライアント装置１０２は送信対象装置に識別子を送信する。
【００４９】
図８は、クライアント装置１０３がクライアント装置１０２から識別子を取得する処理を説明するためのフローチャートである。図８に示す処理は、クライアント装置１０３がクライアント装置１０２から識別子を受信するタイミングで開始される。Ｓ９０１において、クライアント装置１０３はクライアント装置１０２から識別子を受信する。Ｓ９０２において、クライアント装置１０３は自装置が有するＲＡＭ２０３内の識別子リストにＳ９０１で受信した識別子を保存する。なお、サーバ装置１０４がクライアント装置１０２から識別子を取得する処理についても、図８を用いて説明した処理と同様である。
【００５０】
図９は、クライアント装置１０２が中継装置１０１からプッシュメッセージを受信する処理を説明するためのフローチャートである。図９に示す処理は、例えばクライアント装置１０２にユーザの操作などによって転送要求の指示がなされたタイミングで開始される。ただし、図１０に示す処理の開始タイミングは上記タイミングに限定されない。Ｓ１００１において、クライアント装置１０２は中継装置１０１に転送要求を送信する。Ｓ１００２において、クライアント装置１０２は中継装置１０１からの転送終了までＳ１００３からＳ１００６の処理を繰り返す。本実施形態において転送終了となる場合は、例えばクライアント装置１０２にユーザの操作などによってプッシュメッセージの受信を終了する指示がなされた場合や、クライアント装置１０２が中継装置１０１から転送終了を示すメッセージを受信した場合である。なお、転送終了の条件はこれに限らない。
【００５１】
Ｓ１００３において、クライアント装置１０２は中継装置１０１から識別子を含むプッシュ予約を受信する。Ｓ１００４において、クライアント装置１０２は中継装置１０１からプッシュメッセージを受信するまで待機する。Ｓ１００５において、クライアント装置１０２は中継装置１０１からプッシュメッセージを受信する。Ｓ１００６において、クライアント装置１０２は中継装置１０１にプッシュレスポンスを送信する。なお、クライアント装置１０３が中継装置１０１からプッシュメッセージを受信する処理についても、図９を用いて説明した処理と同様である。
【００５２】
図１０は、サーバ装置１０４が中継装置１０１に配信メッセージを送信する処理を説明するためのフローチャートである。図１０に示す処理は、例えばサーバ装置１０４にユーザの操作などによってデータ送信の指示がなされたタイミングや、サーバ装置１０４がセンサーなどにより所定のイベントを検知したタイミングで開始される。ただし、図１０に示す処理の開始タイミングは上記タイミングに限定されない。Ｓ１１０１において、サーバ装置１０４は中継装置１０１に配信メッセージを送信する。Ｓ１１０２において、サーバ装置１０４は中継装置１０１から配信レスポンスを受信する。
【００５３】
［変形例］
上述した本実施形態については、その主旨を逸脱しない範囲で種々の変形が可能である。例えば、クライアント装置１０２は中継装置１０１にサブスクライブを送信する際に、併せて認証情報を送信してもよい。中継装置１０１は、受信した認証情報と識別子とを関連づけて記憶する。そして中継装置１０１は、他の装置からアンサブスクライブ（識別子リストに保存された識別子の削除要求）のメッセージを受信した際に、そのメッセージにサブスクライブ時に受信した認証情報が含まれている場合のみ、保存済みの識別子を削除してもよい。これにより、中継装置１０１に登録済みの識別子が、クライアント装置１０２のユーザが意図しないタイミングで他の装置により削除されることを防げるという効果がある。またクライアント装置１０２は、クライアント装置１０３に識別子を送信する際に、併せて認証情報を送信するか否かを切り替え可能であってもよい。これにより、クライアント装置１０３によるアンサブスクライブを許可するか否かをクライアント装置１０２が制御できるようになる。
【００５４】
また、本実施形態においては、クライアント装置１０２とクライアント装置１０３の２台の装置が同一の識別子を用いて中継装置１０１からプッシュメッセージを受信する場合を中心に説明した。ただしこれに限らず、３台以上のクライアント装置が同一の識別子を用いて中継装置１０１からのプッシュメッセージを受信してもよい。また、クライアント装置１０２及びクライアント装置１０３は、複数のサーバ装置からプッシュされるデータを受信してもよい。この場合、サーバ装置ごとに異なる識別子が用いられてもよい。なお、本実施形態では送信される転送要求やデータに識別子が含まれているものとしたが、識別子に基づく転送要求やデータが送信されればよい。例えば、転送要求と識別子とを関連付けるデータが、当該転送要求とは別に送信されてもよい。
【００５５】
また、本実施形態では、中継装置１０１が、サーバ装置１０４から受信したデータを、転送要求の送信元であるすべてのクライアント装置に転送する場合について説明した。ただしこれに限らず、中継装置１０１は、サーバ装置１０４から受信したデータを、転送要求の送信元である複数のクライアント装置のうちの一部のクライアント装置にのみ転送してもよい。中継装置１０１は、データをすべてのクライアント装置に転送するか一部のクライアント装置にのみ転送するかの判定を、例えばサーバ装置１０４から送信されるデータに付加された情報に基づいて行えばよい。これにより、例えばサーバ装置１０４からクライアント装置１０２とクライアント装置１０３の少なくとも何れか一方にデータが送信されればよい場合に、中継装置１０１のデータ転送に係る処理負荷を低減できる。なお、データをすべてのクライアント装置に転送するか一部のクライアント装置にのみ転送するかの判定方法は上記に限らず、クライアント装置１０２からの送信される情報や中継装置１０１の処理負荷などに基づいて行われてもよい。
【００５６】
また、本実施形態では、中継装置１０１が、識別子リストに含まれていない識別子に対応する転送要求や配信メッセージを受信した場合にエラーレスポンスを送信するものとした（Ｓ６０４、Ｓ７０４）。ただし、エラーレスポンスの送信タイミングはこれに限らない。例えば、中継装置１０１は、所定数以上のクライアント装置から転送要求を受信した場合に、クライアント装置に対してエラーレスポンスを送信してもよい。また、中継装置１０１は、所定数以上のサブスクリプションＵＲＩに対応する転送要求を受信した場合や、同一のサブスクリプションＵＲＩに対応する転送要求を所定数以上のクライアント装置から受信した場合に、エラーレスポンスを送信してもよい。これにより、プッシュメッセージの送信に係る中継装置１０１の処理負荷が過大になることを抑制できる。上記の所定数は、例えば中継装置１０１に対するユーザ操作により設定されてもよいし、中継装置１０１の処理負荷などに応じて自動で設定されてもよい。
【００５７】
なお、本実施形態では、中継装置１０１がエラーレスポンスを送信することで他の装置に対してエラーを通知するものとしているが、エラー通知の方法はこれに限らない。中継装置１０１は例えば、表示部２０５にエラーを示す画像を表示することで、ユーザに対してエラーの発生を通知してもよい。また中継装置１０１は、ＬＥＤランプを点灯させたり、スピーカーから音を発したりすることで、エラー通知を行ってもよい。
【００５８】
また、本実施形態では、中継装置１０１とクライアント装置１０２やクライアント装置１０３との間の通信は、ＨＴＴＰ／２において規定されるコネクション及びストリームを使用して行われるものとした。一方、中継装置１０１とサーバ装置１０４との間の通信は、ＨＴＴＰ／１．１に従うものとした。ただし、通信システム１００内で行われる通信の方式はこれらに限定されない。例えば、中継装置１０１とサーバ装置１０４との間の通信もＨＴＴＰ／２に従う通信であってもよい。また、ＨＴＴＰ／１．１やＨＴＴＰ／２に限らず、ＷｅｂＳｏｃｋｅｔやＱＵＩＣ（Ｑｕｉｃｋ  ＵＤＰ  Ｉｎｔｅｒｎｅｔ  Ｃｏｎｎｅｃｔｉｏｎｓ）などの他の通信規格に従って通信が行われてもよい。この場合、各規格に応じた形式のメッセージや論理的な接続を使用して通信が行われる。また、本実施形態ではＷｅｂＰｕｓｈプロトコルに基づくプッシュ型のデータ送信が行われる例を説明したが、これに限らず、プッシュ通知を送受信するための他のプロトコルにも本実施形態を適用することができる。
【００５９】
また、本実施形態では、図３に示すように、クライアント装置１０２が中継装置１０１から識別子を受信し、受信した識別子をクライアント装置１０３及びサーバ装置１０４に通知する場合について説明した。そしてクライアント装置１０３は、サーバ装置１０４から中継装置１０１へ送信されたデータを、クライアント装置１０２から受信した当該識別子を用いて取得するものとした。ただし、通信システム１００内の各装置の間で識別子を共有する方法はこれに限らない。例えば、サーバ装置１０４が中継装置１０１から識別子を受信し、受信した識別子をクライアント装置１０２及びクライアント装置１０３に通知してもよい。以下では、この場合の通信システム１００内における通信シーケンスの例について、図１２を用いて説明する。
【００６０】
図１２に示すシーケンスは、クライアント装置１０２、クライアント装置１０３、及びサーバ装置１０４のそれぞれと中継装置１０１との間の接続が確立されたタイミングで開始される。ただし、図１２の処理の開始タイミングは上記タイミングに限定されない。図１２に示す各通信処理は、通信システム１００内の各装置のＣＰＵ２０１が通信部２０７などを制御することで実行される。なお、Ｍ１４０５〜Ｍ１４１４の処理は図３のＭ１３０５〜Ｍ１３１４の処理と同様であるため、説明を省略する。
【００６１】
Ｍ１４０１において、サーバ装置１０４は中継装置１０１にサブスクライブ（識別子の情報要求）を行う。中継装置１０１はサーバ装置１０４からのサブスクライブを受け付け、プッシュＵＲＩとそれに対応するサブスクリプションＵＲＩを生成する。Ｍ１４０２において、中継装置１０１は、Ｍ１４０１におけるサーバ装置１０４からの要求に応じてプッシュＵＲＩとサブスクリプションＵＲＩを含むレスポンスを送信する。サーバ装置１０４はレスポンスを受信し、プッシュＵＲＩとサブスクリプションＵＲＩをＲＡＭ２０３などに保存する。
【００６２】
Ｍ１４０３において、サーバ装置１０４はクライアント装置１０２にプッシュＵＲＩとサブスクリプションＵＲＩを送信する。クライアント装置１０２はプッシュＵＲＩとサブスクリプションＵＲＩを受信し、プッシュＵＲＩとサブスクリプションＵＲＩをＲＡＭ２０３などに保存する。Ｍ１４０４において、サーバ装置１０４はクライアント装置１０３にプッシュＵＲＩとサブスクリプションＵＲＩを送信する。クライアント装置１０３はプッシュＵＲＩとサブスクリプションＵＲＩを受信し、プッシュＵＲＩとサブスクリプションＵＲＩをＲＡＭ２０３などに保存する。
【００６３】
Ｍ１４０３において送信される識別子（プッシュＵＲＩ及びサブスクリプションＵＲＩ）と、Ｍ１４０４において送信される識別子は、何れもＭ１４０２において中継装置１０１から送信された識別子である。すなわち、Ｍ１４０３及びＭ１４０４において、サーバ装置１０４は、同一の識別子をクライアント装置１０２とクライアント装置１０３とに送信する。なお、サーバ装置１０４はＭ１４０３及びＭ１４０４において、プッシュＵＲＩを送信せずサブスクリプションＵＲＩだけを送信してもよい。
【００６４】
以上の処理により、図３で説明したＭ１３０１〜Ｍ１３０４の処理と同様、通信システム１００内の各装置の間で識別子を共有することができる。そしてＭ１４０５以降の処理では、Ｍ１４０３及びＭ１４０４において送信された識別子を用いて、クライアント装置１０２及びクライアント装置１０３が中継装置１０１からプッシュメッセージを取得する。このような方法によれば、Ｍ１４０７においてサーバ装置１０４がクライアント装置１０２及びクライアント装置１０３へ送信すべきデータを中継装置１０１へ１回送信するだけで、複数の装置へのプッシュによるデータ送信を実現できる。なお、配信メッセージの転送先を指定するために、Ｍ１４０７においてサーバ装置１０４から送信される配信メッセージには、Ｍ１４０３及びＭ１４０４でクライアント装置へ送信したサブスクリプションＵＲＩに対応するプッシュＵＲＩが含まれる。
【００６５】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ等）によっても実現可能である。また、そのプログラムをコンピュータにより読み取り可能な記録媒体に記録して提供してもよい。
【符号の説明】
【００６６】
１００  通信システム
１０１  中継装置
１０２  クライアント装置
１０３  クライアント装置
１０４  サーバ装置
【図１】
2019082954.tif 000003
【図２】
2019082954.tif 000004
【図３】
2019082954.tif 000005
【図４】
2019082954.tif 000006
【図５】
2019082954.tif 000007
【図６】
2019082954.tif 000008
【図７】
2019082954.tif 000009
【図８】
2019082954.tif 000010
【図９】
2019082954.tif 000011
【図１０】
2019082954.tif 000012
【図１１】
2019082954.tif 000013
【図１２】
2019082954.tif 000014