JP6942609B2 - Communication equipment, communication methods, and programs - Google Patents
Communication equipment, communication methods, and programs Download PDFInfo
- Publication number
- JP6942609B2 JP6942609B2 JP2017211154A JP2017211154A JP6942609B2 JP 6942609 B2 JP6942609 B2 JP 6942609B2 JP 2017211154 A JP2017211154 A JP 2017211154A JP 2017211154 A JP2017211154 A JP 2017211154A JP 6942609 B2 JP6942609 B2 JP 6942609B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- client
- client devices
- push
- receiving
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Description
本発明は、サーバ装置から通信装置を介してクライアント装置へデータを送信する技術に関する。 The present invention relates to a technique for transmitting data from a server device to a client device via a communication device.
近年、サーバ装置からクライアント装置へプッシュ型のデータ送信を行うプッシュサービスが考えられている。プッシュサービスにおいては、クライアント装置からサーバ装置へのリクエストのタイミングによらずに、サーバ装置からクライアント装置へイベントの発生などを通知するためのデータが送信される。IETF(Internet Engineering Task Force)においては、Web技術を用いたプッシュサービスの実現の方式としてWebPushプロトコルが提案されている。 In recent years, a push service for transmitting push-type data from a server device to a client device has been considered. In the push service, data for notifying the occurrence of an event or the like is transmitted from the server device to the client device regardless of the timing of the request from the client device to the server device. In the IETF (Internet Engineering Task Force), the WebPush protocol has been proposed as a method for realizing a push service using Web technology.
WebPushプロトコルに従う通信においては、サーバ装置(AS:ApplicationServer)から送信されたデータを通信装置(PS:PushService)がクライアント装置(UA:UserAgent)へ転送する。これにより、ASからUAへのプッシュ型のデータ送信が実現される。また、PSからUAへデータが送達された際に、PSは送達の確認を通知するメッセージ(レシート)をASへ送信する。 In the communication according to the WebPush protocol, the communication device (PS: PushService) transfers the data transmitted from the server device (AS: Application Server) to the client device (UA: UserAgent). As a result, push-type data transmission from AS to UA is realized. Further, when the data is delivered from the PS to the UA, the PS sends a message (receipt) notifying the confirmation of the delivery to the AS.
一方、特許文献1には、サーバ装置が複数のクライアント装置に接続され、各クライアント装置にデータをプッシュすることが開示されている。 On the other hand, Patent Document 1 discloses that a server device is connected to a plurality of client devices and pushes data to each client device.
従来技術では、サーバ装置から通信装置を介して複数のクライアント装置へデータが送信される場合に、送信先のクライアント装置へデータが送達されたことを通信装置がサーバ装置へ適切に通知する方法が考えられていなかった。例えば、WebPushプロトコルに従う通信において、ASからPSを介して複数のUAにデータを送信する場合を考える。この場合に、データが何れかのUAへ最初に送達された際にのみPSからASへレシートが送信されると、ASはすべてのUAへデータが送達されたかを判断するのが困難である。 In the prior art, when data is transmitted from a server device to a plurality of client devices via a communication device, the communication device appropriately notifies the server device that the data has been delivered to the destination client device. It wasn't considered. For example, in communication according to the WebPush protocol, consider a case where data is transmitted from AS to a plurality of UAs via PS. In this case, if the receipt is sent from PS to AS only when the data is first served to any UA, it is difficult for AS to determine if the data has been served to all UAs.
本発明は上記課題に鑑み、サーバ装置から通信装置を介して複数のクライアント装置へデータを送信する場合に、送信先のクライアント装置へデータが送達されたことを通信装置がサーバ装置へ適切に通知できるようにすることを目的とする。 In view of the above problems, when data is transmitted from the server device to a plurality of client devices via the communication device, the communication device appropriately notifies the server device that the data has been delivered to the destination client device. The purpose is to be able to do it.
上記の課題を解決するため、本発明に係る通信装置は、例えば以下の構成を有する。すなわち、サーバ装置からデータを受信する第1受信手段と、前記第1受信手段により受信される前記データをクライアント装置へ送信する第1送信手段と、前記第1送信手段により送信された前記データがクライアント装置により受信されたことを示す確認応答を当該クライアント装置から受信する第2受信手段と、前記第1送信手段により前記データが複数のクライアント装置へ送信される場合に、前記第2受信手段が前記複数のクライアント装置から前記確認応答を受信した後に、前記第1送信手段により送信された前記データが前記複数のクライアント装置により受信されたことを示す送達確認の通知を、プッシュ型のデータ送信により前記サーバ装置に送信する第2送信手段とを有する。 In order to solve the above problems, the communication device according to the present invention has, for example, the following configuration. That is, the first receiving means for receiving data from the server device, the first transmitting means for transmitting the data received by the first receiving means to the client device, and the data transmitted by the first transmitting means are The second receiving means for receiving an acknowledgment indicating that the data has been received by the client device from the client device, and the second receiving means when the data is transmitted to a plurality of client devices by the first transmitting means. After receiving the confirmation response from the plurality of client devices, a delivery confirmation notification indicating that the data transmitted by the first transmission means has been received by the plurality of client devices is sent by push-type data transmission. It has a second transmission means for transmitting to the server device.
本発明によれば、サーバ装置から通信装置を介して複数のクライアント装置へデータを送信する場合に、送信先のクライアント装置へデータが送達されたことを通信装置がサーバ装置へ適切に通知できるようになる。 According to the present invention, when data is transmitted from a server device to a plurality of client devices via a communication device, the communication device can appropriately notify the server device that the data has been delivered to the destination client device. become.
[実施例1]
[システム構成]
以下、本発明の実施形態について、図面を参照して説明する。図1は、本実施形態に係る通信システム100の構成を示す図である。本実施形態の通信システム100は、中継装置101、クライアント装置102、クライアント装置103、及びサーバ装置104を有する。クライアント装置102及びクライアント装置103は中継装置101を介してサーバ装置104と有線または無線で接続され、相互に通信を行って、例えば静止画や動画等のコンテンツデータやイベント通知コマンドなどを送受信する。なお、図1に示す通信システム100内には2台のクライアント装置が存在するが、中継装置101に接続されるクライアント装置の数はこれに限らず、3台以上であってもよい。また、中継装置101に接続されるサーバ装置104も、2台以上であってもよい。
[Example 1]
[System configuration]
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a diagram showing a configuration of a
本実施形態において、クライアント装置102とクライアント装置103はHTTP/2(Hypertext Transfer Protocol version 2)において規定されるクライアントとして動作する。一方、中継装置101はHTTP/2において規定されるサーバとして動作する。即ち、クライアント装置102及びクライアント装置103は中継装置101にHTTPリクエストを送信し、中継装置101は受信したHTTPリクエストに応じてクライアント装置102及びクライアント装置103にHTTPレスポンスを送信する。
In the present embodiment, the
サーバ装置104は、クライアント装置102及びクライアント装置103に対して、中継装置101を介してデータを送信することによりプッシュサービスを提供する。プッシュサービスの実現のために、中継装置101からクライアント装置102及びクライアント装置103へのデータの転送には、例えばHTTP/2の機能としてのサーバープッシュなどプッシュ型のデータ送信方法が用いられる。なお、サーバ装置104は中継装置101との通信においては、HTTP/1.1(Hypertext Transfer Protocol version 1.1)において規定されるクライアントとして動作する。そして中継装置101は、サーバ装置104との通信においてHTTP/1.1において規定されるサーバとして動作する。具体的には、サーバ装置104は中継装置101にPOSTメソッドなどのリクエストを送信し、プッシュによる送信の対象となるデータを中継装置101にアップロードする。
The
中継装置101は具体的には、PC、ネットワークスイッチ、及びルータなどの通信装置である。クライアント装置102及びクライアント装置103は具体的には、デジタルカメラ、ネットワークカメラ、プリンタ、複合機、テレビ、プロジェクタ、携帯電話、スマートフォン、及びPCなどのクライアント装置である。また、サーバ装置104の具体例も、クライアント装置102及びクライアント装置103と同様である。ただし、通信システム100内の各装置の形態はこれらに限定されない。
Specifically, the
クライアント装置102、クライアント装置103、及びサーバ装置104と中継装置101とは、例えばLAN(Local Area Network)やWAN(Wide Area Network)、又はそれらの組み合わせにより接続される。LANとしては、Ethernet(登録商標)に則った有線LANや、IEEE(Institute of Electrical and Electronics Engineers)802.11シリーズに則った無線LANなどが用いられる。WANとしては、例えばインターネットなどが用いられる。また、Bluetooth(登録商標)やZigbee(登録商標)など他の通信方式に基づいて接続されてもよい。
The
クライアント装置102とクライアント装置103との間、及びクライアント装置102とサーバ装置104との間でもデータのやり取りが行われる。本実施形態ではこのデータのやり取りがLANやWANを介した通信により行われる場合を中心に説明するが、データのやり取りの方法はこれに限らない。例えば、一方の装置に表示させた画像やQRコード(登録商標)を他方の装置により読み取ることでデータをやり取りしてもよいし、一方の装置に表示された情報をユーザが他方の装置に入力してもよい。また、クライアント装置102やサーバ装置104などが不図示の情報管理装置に対するデータの登録、削除、及び更新などを行うことにより、情報管理装置を介したデータのやり取りが行われてもよい。情報管理装置は、例えば、クラウド上やサーバ上で管理されるソフトウェアであってもよい。情報管理装置を介したデータのやり取りが行われる場合には、情報管理装置にアクセスするための識別子や鍵情報がクライアント装置102とサーバ装置104との間でやり取りされてもよい。
Data is also exchanged between the
本実施形態において、中継装置101はWebPushプロトコルにおいて規定されるPS(PushService)の機能を持つ。また、クライアント装置102とクライアント装置103はWebPushプロトコルにおいて規定されるUA(UserAgent)の機能を持つ。そして、サーバ装置104はWebPushプロトコルにおいて規定されるAS(ApplicationService)の機能を持つ。
In the present embodiment, the
通信システム100の基本的な動作としては、以下のようになる。すなわち、クライアント装置102及びクライアント装置103が中継装置101にデータの転送要求を行い、サーバ装置104が中継装置101へプッシュによる送信の対象となるデータを送信する。そして中継装置101が、サーバ装置104からのデータの受信に応じたタイミングで、転送要求を行った中継装置へ当該データを転送する。また中継装置101は、転送したデータを受信したことを示す確認応答をクライアント装置102及びクライアント装置103から受け取ると、送達確認の通知をサーバ装置104に送信する。本実施形態において、送達確認の通知はWebPushプロトコルにおいて規定されるプッシュメッセージレシート(以降、レシート)として送信されるものとする。ただし通知の形式はこれに限定されず、データが正しくクライアント装置に送達されたことをサーバ装置104が知ることができる方法で通知が行われればよい。各装置の詳細な動作については後述する。
The basic operation of the
通信システム100の具体的な例としては、以下のようなものがある。クライアント装置102はスマートフォンであり、サーバ装置104はネットワークカメラである。クライアント装置102は中継装置101に転送要求を行い、サーバ装置104からの撮影画像の送信を待ち受ける。サーバ装置104は、カメラにより監視エリアを撮影し、監視エリアにおける異常を検知した場合に撮影画像を中継装置101に送信する。そして中継装置101は、サーバ装置104から送信された撮影画像をクライアント装置102に転送する。これにより、クライアント装置102のユーザは、監視エリアにおいて検知された異常を知り、監視エリアの撮影画像を確認することができる。
Specific examples of the
ここで、中継装置101からのデータの転送先がクライアント装置102だけである場合、中継装置101はクライアント装置102から確認応答を受け取った際にサーバ装置104にレシートを送信すればよい。一方、中継装置101からのデータの転送先がクライアント装置102とクライアント装置103のように複数である場合も考えられる。この場合には、中継装置101が最初に確認応答を受け取った際にのみサーバ装置104にレシートを送信すると、すべての転送先にデータが送達されたか否かをサーバ装置104が判断するのは困難である。そこで、本実施形態においては、中継装置101が複数の転送先から確認応答を受け取った後でサーバ装置104に送達確認の通知を送信することで、当該複数の転送先へデータが送達されたことをサーバ装置104が判断できるようにする。
Here, when the transfer destination of the data from the
また、中継装置101が複数のクライアント装置のそれぞれから確認応答を受信するたびにサーバ装置104に同様のレシートを送信することも考えられる。ただしこの場合にも、中継装置101が管理している転送先のクライアント装置の数をサーバ装置104が把握していないと、すべての転送先へデータが送達されたかをサーバ装置104が判断するのは困難である。そこで、本実施形態で説明するように、中継装置101が複数の転送先から確認応答を受信した後に特定の送達確認の通知をサーバ装置104に送信することで、当該複数の転送先へデータが送達されたかをサーバ装置104が判断することを容易にできる。
It is also conceivable that the
そしてサーバ装置104は、中継装置101から送達確認の通知を受信すると、例えばクライアント装置102及びクライアント装置103へ送信すべき次のデータを中継装置101へ送信する。一方、中継装置101から所定期間内に送達確認の通知を受信しなかった場合や、中継装置101からエラーレスポンスを受信した場合には、データの再送などのエラー処理を行う。また、データの送達に失敗した原因がエラーレスポンスと共に中継装置101からサーバ装置104へ通知されるような場合には、サーバ装置104は、通知された失敗の原因が解消されるように送信データの種別やサイズなどを制御してもよい。
Then, when the
[装置構成]
図2は、中継装置101のハードウェア構成を示すブロック図である。なお、クライアント装置102、クライアント装置103、及びサーバ装置104も、中継装置101と同様の構成である。中継装置101は、CPU201、ROM202、RAM203、補助記憶装置204、表示部205、操作部206、通信部207、及びバス208を有する。
[Device configuration]
FIG. 2 is a block diagram showing a hardware configuration of the
CPU201は、ROM202やRAM203に格納されているコンピュータプログラムやデータを用いて中継装置101の全体を制御する。ROM202は、変更を必要としないプログラムやパラメータを格納する。RAM203は、補助記憶装置204から供給されるプログラムやデータ、及び通信部207を介して外部から供給されるデータなどを一時記憶する。補助記憶装置204は、例えばハードディスクドライブ等で構成され、静止画や動画などのコンテンツデータを記憶する。
The
表示部205は、例えば液晶ディスプレイやLED等で構成され、ユーザが中継装置101を操作するためのGUI(Graphical User Interface)やエラー情報などを表示する。操作部206は、例えばキーボードやマウス、タッチパネル等で構成され、ユーザによる操作を受けて各種の指示をCPU201に入力する。通信部207は、クライアント装置102やクライアント装置103、サーバ装置104などの外部の装置と通信を行う。中継装置101が外部の装置と有線で接続される場合には、例えばLANケーブル等が通信部207に接続される。また、中継装置101が外部の装置と無線通信する機能を有する場合、通信部207はアンテナ等を備える。バス208は、中継装置101の各部を繋いで情報を伝達する。
The
なお、本実施形態ではCPU201がプログラムを実行することで通信部207を介した中継装置101と外部の装置との通信を制御するが、中継装置101と外部の装置との通信の少なくとも一部を通信部207がハードウェア処理により制御してもよい。また、本実施形態では表示部205と操作部206は中継装置101の内部に存在するが、表示部205及び操作部206の少なくとも一方が中継装置101の外部に別の装置として存在していてもよい。この場合、CPU201が、表示部205を制御する表示制御部、及び操作部206を制御する操作制御部として動作する。
In the present embodiment, the
[通信シーケンス]
以下、本実施形態における通信システム100内における通信のシーケンスについて、詳細に説明する。図3は、サーバ装置104が中継装置101を介してクライアント装置102及びクライアント装置103にデータをプッシュにより送信する際のシーケンスである。図3に示すシーケンスは、クライアント装置102、クライアント装置103、及びサーバ装置104のそれぞれと中継装置101との間の接続が確立されたタイミングで開始される。ただし、図3の処理の開始タイミングは上記タイミングに限定されない。図3に示す各通信処理は、通信システム100内の各装置のCPU201が通信部207などを制御することで実行される。
[Communication sequence]
Hereinafter, the sequence of communication in the
M1301において、クライアント装置102は中継装置101にサブスクライブ(識別子の情報要求)を行う。中継装置101はクライアント装置102からのサブスクライブを受け付け、WebPushプロトコルにおいて規定されるプッシュURIとそれに対応するプッシュメッセージサブスクリプションURI(以降、サブスクリプションURI)を生成する。生成されたプッシュURIとサブスクリプションURIは、図12(a)に示す識別子リストのような形式で中継装置101のRAM203に保存される。
In M1301, the
プッシュURI及びサブスクリプションURIは、中継装置101がサーバ装置104から送信されるデータの転送先を特定するために用いる識別子であり、要求に応じて中継装置101により生成(発行)される発行情報である。なお、これらの識別子はサブスクライブに応じて生成されるものに限らず、予め中継装置101が保持していた識別子の中からサブスクライブに応じて決定されたものであってもよい。本実施形態では識別子をURI(UniformResourceIdentifer)としているが、UUID(UniversallyUniqueIdetifer)のような他の形態の識別子であってもよい。また、本実施形態ではプッシュURIとサブスクリプションURIという2種類の情報が用いられる場合を中心に説明するが、これに限らず、1種類の情報を用いて転送対象のデータや転送先が特定されてもよい。すなわち、以下の説明におけるプッシュURIとサブスクリプションURIとが同一の情報であってもよい。
The push URI and the subscription URI are identifiers used by the
本実施形態では、サブスクライブがHTTP/1.1のPOSTメソッドを用いて行われるものとするが、例えばGETメソッドの様な別メソッドが用いられてもよいし、FTPやWebsocketなどの他通信規格に従う通信が用いられても良い。また本実施形態では、プッシュURIとサブスクリプションURIという2つの識別子がクライアント装置102からのサブスクライブに応じて中継装置101により生成される場合について説明するが、これに限らない。例えば、プッシュURIのみが生成されてもよいし、プッシュURIとサブスクリプションURIに加えてWebpushプロトコルにおいて規定されるプッシュメッセージサブスクリプション・セットURIが生成されてもよい。
In this embodiment, subscription is performed using the POST method of HTTP / 1.1, but another method such as the GET method may be used, or other communication standards such as FTP and Websocket may be used. Communication according to may be used. Further, in the present embodiment, the case where two identifiers, the push URI and the subscription URI, are generated by the
M1302において、中継装置101は、M1301におけるクライアント装置102からの要求に応じて、M1301で生成されたプッシュURIとサブスクリプションURIを含むレスポンスを送信する。クライアント装置102はレスポンスを受信し、受信したレスポンスに含まれるプッシュURIとサブスクリプションURIをRAM203などに保存する。本実施形態ではこのレスポンスにおけるステータスコードを201Createdとしているが、これに限らなくてもよい。
In the M1302, the
M1303において、クライアント装置102はクライアント装置103に、M1302で受信したプッシュURIとサブスクリプションURIを送信する。クライアント装置103はプッシュURIとサブスクリプションURIを受信し、プッシュURIとサブスクリプションURIをRAM203などに保存する。
In M1303, the
M1304において、クライアント装置102はサーバ装置104にプッシュURIを送信する。サーバ装置104はプッシュURIを受信し、プッシュURIをRAM203などに保存する。なお、図3の例ではHTTP/1.1に従う通信を用いてクライアント装置102からサーバ装置104へのプッシュURIの受け渡しを行っているが、すでに説明した通り、データの受け渡しの方法はこれに限定されない。例えば、サーバ装置104はプッシュURIを他の通信プロトコルを用いて受信してもよいし、クライアント装置102の表示部205に表示された画像やQRコードを用いて受信してもよいし、情報管理装置を介して受信してもよい。また、ユーザがサーバ装置104の操作部206を操作してプッシュURIを入力してもよい。なお、M1303におけるデータの受け渡しについても同様である。
In M1304, the
M1305において、クライアント装置102は中継装置101に、M1302で中継装置101から受信したサブスクリプションURIを含む転送要求を送信する。この転送要求の送信により、クライアント装置102は、中継装置101によるプッシュ型のデータ送信を要求する。中継装置101は転送要求を受信し、受信した転送要求に含まれるサブスクリプションURIがRAM203内の識別子リストに保存済みのサブスクリプションURIと合致することを確認する。そして中継装置101は、そのサブスクリプションURIに対応するプッシュURIと、転送要求の送信元であるクライアント装置102のデバイス情報とを、図12(b)に示すプッシュ配信リストのような形式でRAM203に保存する。M1306において、クライアント装置103は中継装置101に、M1303でクライアント装置102から受信したサブスクリプションURIを含む転送要求を送信する。中継装置101はM1305の処理と同様に、転送要求を受信し、プッシュURIとデバイス情報をプッシュ配信リストに保存する。
In M1305, the
すなわち、M1305及びM1306において中継装置101は、同一のサブスクリプションURIを含む2つの転送要求を、クライアント装置102とクライアント装置103の2つの装置から受信する。そして、中継装置101が保持するプッシュ配信リストにおいては、図12(b)に示すように、同一のプッシュURIに複数のデバイス情報が対応付けられる。
That is, in M1305 and M1306, the
M1307において、サーバ装置104は中継装置101に対して、以降にサーバ装置104から送信されるデータ(例えばM1311において送信される配信メッセージ)に対応する送達確認の通知を行うことを要求する。M1308において、中継装置101は、M1307において受け付けた通知要求に応じてレシートサブスクリプションURIとプッシュメッセージURIを生成する。そして中継装置101は、通知要求に対するレスポンスとして、生成したレシートサブスクリプションURIとプッシュメッセージURIを、HTTPのステータスコード(例えば200Accepted)と共にサーバ装置104へ送信する。ただし、通知要求に対するレスポンスとして中継装置101からサーバ装置104へ送信される情報はこれらに限らず、プッシュメッセージURIのみが送信されてもよいし、別の識別子が送信されてもよい。なお、中継装置101は、送達確認の通知を行うことを拒否する場合には、別のステータスコード(例えば400や404など)を送信する。
In M1307, the
M1309において、サーバ装置104は、レシートをプッシュ型のデータ送信により中継装置101から受け取るためのレシート要求を行う。このレシート要求は、例えばHTTPのGETメソッドによりサーバ装置104から中継装置101へ送信され、レシートにより送達を確認する対象となるデータに対応するプッシュURIがレシート要求に含まれる。また、サーバ装置104から送信されるレシート要求には、M1308において中継装置101から取得したレシートサブスクリプションURIと、プッシュポリシーとが含まれる。プッシュポリシーは、中継装置101がサーバ装置104から受信したデータの転送先とすべきクライアント装置の数などを指定するための指定情報である。プッシュポリシーは例えばレシート要求のHTTPヘッダのフィールドにPUSH−MODE:allといった形で記載されていてもよいし、ボディ部分に記載されていてもよい。ここで、PUSH−MODEはプッシュの方式を示すための拡張HTTPヘッダであり、allはサブスクライブしている全てのクライアント装置にデータをプッシュすることを示している。
In M1309, the
中継装置101はサーバ装置104からレシート要求を受信すると、図12(c)に示すようなプッシュポリシーリストを生成する。レシート要求に含まれるプッシュURIをキーとして、レシート要求の送信元であるサーバ装置104のデバイス情報、レシート要求に含まれるレシートサブスクリプションURI、及びプッシュポリシーが同一エントリとして対応付けられてリストに保存される。また、M1308において当該レシートサブスクリプションURIと共に生成されたプッシュメッセージURIも同一エントリに保存される。プッシュポリシーの詳細については後縦する。
When the
M1310において、中継装置101はサーバ装置104に、M1309において受信したレシート要求に含まれるレシートサブスクリプションURIに対応するプッシュURIを含むプッシュ予約を送信する。プッシュ予約の送信により、後にレシートがサーバ装置104へプッシュされることが通知される。図3の例では、ストリーム番号が82のストリームを用いてレシートをプッシュすることを予約するためのPUSH_PROMISEフレームが、ストリーム番号が13のストリームを用いて送信される。ストリームやPUSH_PROMISEフレームは、HTTP/2に従う通信において使用されることが標準規格で規定されている。
In M1310, the
M1311において、サーバ装置104は中継装置101に、M1304でクライアント装置102から受信したプッシュURIを含む配信メッセージを送信する。中継装置101はサーバ装置104からプッシュURIを含む配信メッセージを受信し、受信した配信メッセージに含まれるプッシュURIがRAM203内の識別子リストに保存済みのプッシュURIと合致することを確認する。合致する場合の当該配信メッセージは、当該プッシュURIと対応するサブスクリプションURIを含む転送要求の送信元であるクライアント装置へ転送すべきデータである。M1312において、中継装置101はサーバ装置104に、プッシュのリクエストを受け付けたことを示す配信レスポンスを送信し、サーバ装置104は配信レスポンスを受信する。
In M1311, the
M1313において、中継装置101は、RAM203に保存されているプッシュ配信リストから、M1311で受信した配信メッセージに含まれるプッシュURIに対応するデバイス情報を検索する。そして中継装置101は、該当したデバイス情報から特定されるクライアント装置102に、そのプッシュURIを含むプッシュ予約を送信する。プッシュ予約の送信により、後にメッセージがプッシュ通知により送信されることが送信先に通知される。クライアント装置102はプッシュ予約を受信し、中継装置101からプッシュメッセージを受信するまで待機する。
In the M1313, the
M1314において、中継装置101はクライアント装置102にプッシュメッセージを送信する。クライアント装置102はプッシュメッセージを受信する。このプッシュメッセージは、M1305における転送要求に応じて中継装置101からクライアント装置102へプッシュにより送信されるメッセージである。すなわち、クライアント装置102からのリクエストに依存しないタイミングで中継装置101からプッシュメッセージが送信される。ただし、M1314におけるプッシュ型のデータ送信の代わりに、中継装置101はクライアント装置102からのリクエストを待ってメッセージを送信してもよい。
In M1314, the
ここで中継装置101から送信されるプッシュメッセージは、S1311においてサーバ装置104から送信された配信メッセージに応じた情報である。またこのプッシュメッセージは、配信メッセージに含まれるプッシュURIに対応するサブスクリプションURIを含むM1305における転送要求に応じて中継装置101により転送される情報でもある。なお、配信メッセージとプッシュメッセージは同一のデータを含んでいてもよいし、異なるデータを含んでいてもよい。M1315において、クライアント装置102は中継装置101に、プッシュメッセージを受信したことを示す確認応答としてのプッシュレスポンスを送信する。中継装置101はプッシュレスポンスを受信する。
Here, the push message transmitted from the
M1316において、中継装置101はサーバ装置104に、M1310において予約されたストリームを用いてステータスコードが100CONTINUEのレシートをプッシュ型のデータ送信により送信する。ここで送信されるステータスコードが100CONTINUEのレシートは、プッシュメッセージが転送先であるクライアント装置102及びクライアント装置103のうちの一方にのみ送達されたことを示す暫定応答である。ここで送信されるレシートには、プッシュメッセージが送達されたクライアント装置102を特定するための情報などが含まれてもよい。これにより、サーバ装置104はどのクライアント装置へデータが送達されたかを把握することができる。
In M1316, the
M1317において、中継装置101はM1313と同様に、M1311で受信した配信メッセージに含まれるプッシュURIに対応するデバイス情報から特定されるクライアント装置103に、そのプッシュURIを含むプッシュ予約を送信する。クライアント装置103はプッシュ予約を受信し、中継装置101からプッシュメッセージを受信するまで待機する。
In M1317, similarly to M1313, the
M1318において、中継装置101はクライアント装置103にプッシュメッセージを送信し、クライアント装置103はプッシュメッセージを受信する。ここで送信されるプッシュメッセージは、S1311においてサーバ装置104から送信された配信メッセージに応じた情報である。なお、S1318において送信されるプッシュメッセージとM1314において送信されるプッシュメッセージは同一であってもよいし、送信先に応じて異なるデータを含んでいてもよい。M1319において、クライアント装置103は中継装置101に確認応答としてのプッシュレスポンスを送信し、中継装置101はプッシュレスポンスを受信する。
In M1318, the
M1320において、中継装置101はサーバ装置104に、M1310において予約されたストリームを用いてステータスコードが204NoContentのレシートをプッシュ型のデータ送信により送信する。ここで送信されるステータスコードが204NoContentのレシートは、プッシュメッセージが転送先であるクライアント装置102及びクライアント装置103の両方に送達されたことを示す送達確認通知である。ここで送信されるレシートには、プッシュメッセージが送達されたすべての転送先(クライアント装置102及びクライアント装置103)を特定するための情報などが含まれてもよい。これにより、サーバ装置104は最終的にどのクライアント装置へデータが送達されたかを把握することができる。
In M1320, the
以上で通信システム100における一連の通信が終了する。図3を用いて説明したシーケンスの要点をまとめると、以下のようになる。サーバ装置104は、クライアント装置102及びクライアント装置103へ転送されるべきデータを中継装置101へ送信する(M1311)。中継装置101は、サーバ装置104から受信したデータをクライアント装置102及びクライアント装置103へ転送する(M1314及びM1318)。そして中継装置101は、転送されたデータの受信が完了したことを示す確認応答をクライアント装置102とクライアント装置103の両方から受信した後に、データの送達確認の通知をサーバ装置104に送信する(M1320)。
This completes a series of communications in the
このように、本実施形態の通信システム100によれば、中継装置101がデータの転送先である複数のクライアント装置から確認応答を受信した後に、当該データの送達確認の通知がサーバ装置104へ送信される。これにより、すべての転送先にデータが送達されたかをサーバ装置104が判断できるようになる。
As described above, according to the
また中継装置101は、M1316のように、転送先である複数のクライアント装置のうちの一部のクライアント装置から確認応答を受信した後に、暫定応答をサーバ装置104へ送信してもよい。このように、送達確認の通知とは異なる通知である暫定応答を送信することで、一部の転送先にデータが送達されたことをサーバ装置104が判断できる。すなわち、暫定応答が送信された時点ではすべての転送先へのデータの送達は未完了であることをサーバ装置104が判断できる。なお、中継装置101は暫定応答を送信せずに送達確認の通知だけを送信してもよい。こうすることで、中継装置101が転送先から確認応答を受信するたびに暫定応答を送信する場合と比較して、中継装置101とサーバ装置104との間の通信量を低減することができる。
Further, the
また、中継装置101は、暫定応答と送達確認の通知という2種類の通知を送信するものに限らず、データの転送先のクライアント装置の種別や送達が完了した転送先の数などに応じて、3種類以上の通知をサーバ装置104へ送信してもよい。また、中継装置101は、転送先のクライアント装置それぞれから確認応答を受信するたびに、同様の通知をサーバ装置104へ送信してもよい。図3の例で言えば、M1316で送信される暫定応答とM1320で送信される送達確認の通知とが同様のメッセージであってもよい。この方法でも、特にサーバ装置104が転送先のクライアント装置の数を把握している場合には、サーバ装置104は中継装置101から受信した通知の数を判定することで、転送先のクライアント装置すべてへデータが送達されたかを判断することができる。
Further, the
サーバ装置104が転送先のクライアント装置の数を把握する方法としては、例えば中継装置101が、受信した転送要求の数をサーバ装置104へ送信してもよいし、クライアント装置から転送要求を受信するたびにサーバ装置104に通知を行ってもよい。そして、クライアント装置から中継装置101へアンサブスクライブ(転送要求の取り消し)が行われた際にも、その旨を中継装置101がサーバ装置104へ通知してもよい。また例えば、サーバ装置104がクライアント装置102からプッシュURIを取得する際に、クライアント装置102が識別子を共有する別のクライアント装置(図3の例におけるクライアント装置103)の数も併せて取得してもよい。
As a method for the
また、図3のシーケンスにおいては、中継装置101が受信した転送要求の送信元のすべて(クライアント装置102及びクライアント装置103)がデータの転送先となる場合を示した。ただしこれに限らず、中継装置101は転送要求の送信元のうちの一部にのみデータを転送してもよい。そして、中継装置101が転送要求の送信元のすべてにデータを転送するか一部にのみ転送するかを、サーバ装置104がプッシュポリシーにより指定してもよい。
Further, in the sequence of FIG. 3, the case where all the transmission sources of the transfer request received by the relay device 101 (
例えば、図12(c)に示すプッシュポリシーリストにおいて、サーバ装置104対応するプッシュポリシーはallとなっている。この場合、中継装置101は、転送要求を行ったクライアント装置を図12(b)のプッシュ配信リストから検索し、該当するクライアント装置のすべてにプッシュメッセージを送信する。
For example, in the push policy list shown in FIG. 12 (c), the push policy corresponding to the
一方、中継装置101が、サーバ装置104とは別のサーバ装置105から、プッシュポリシーとしてanyが指定されたレシート要求を受信した場合を考える。この場合には、中継装置101は、サーバ装置105から送信されるデータについての転送要求を行ったクライアント装置のうち、何れか1つにのみプッシュメッセージを送信する。そして中継装置101は、プッシュメッセージの送信先のクライアント装置から確認応答を受信した後に、サーバ装置105に送達確認の通知を送信する。この方法によれば、転送要求を行った機器のうちの何れか1つにのみプッシュ通知が届けばよい場合に、プッシュメッセージに係る通信量や中継装置101の処理負荷を低減できる。例えば、同一のユーザが所有するスマートフォン、スマートウォッチ、タブレットといった複数の機器から転送要求が行われる場合に、そのうちの1つにプッシュ通知が届けば、ユーザがその通知を確認することができる。なおこの場合に、複数の機器に優先度を設定しておき、中継装置101は設定された優先度の高い機器にデータを転送してもよい。
On the other hand, consider a case where the
また、プッシュポリシーの内容はこれらに限らず、例えば転送要求を行ったクライアント装置のうちデータの転送先とするクライアント装置の数を指定するものであってもよい。また例えば、転送要求を行った複数のクライアント装置にデータを転送し、転送先のクライアント装置のうちの一部のクライアント装置から中継装置101が確認応答を受信した後に送達確認の通知を送信することを指定するものであってもよい。そして中継装置101は、転送先である複数のクライアント装置すべてから確認応答を受信した後に送達確認の通知を送信するか、一部のクライアント装置から確認応答を受信した後に送達確認の通知を送信するかを、プッシュポリシーに基づいて決定してもよい。この場合、中継装置101は、プッシュポリシーに基づく決定に応じたタイミングで送達確認の通知をサーバ装置104に送信する。またサーバ装置104は、中継装置101が送達確認の通知の前に暫定応答を送信するか否かを指定してもよい。例えば、サーバ装置104はM1309におけるレシート要求のヘッダにExpect:100−Continueを含めることで暫定応答を要求してもよい。
Further, the content of the push policy is not limited to these, and for example, the number of client devices to which data is transferred may be specified among the client devices that have made the transfer request. Further, for example, data is transferred to a plurality of client devices that have made a transfer request, and a delivery confirmation notification is transmitted after the
また、中継装置101がどのクライアント装置へデータを転送するかの決定には、プッシュポリシー以外の情報も用いられてもよい。例えば、プッシュポリシーがanyである場合に、中継装置101は、転送要求を行った複数のクライアント装置がデータを受信可能な状態であることを把握している場合には、上述のように何れかのクライアント装置にデータを送信する。一方、転送要求を行った複数のクライアント装置がデータを受信可能であるか不明である場合には、中継装置101は、複数のクライアント装置にデータを転送し、何れかのクライアント装置から確認要求を受信したことに応じて送達確認の通知を送信してもよい。これにより、クライアント装置の状態に応じたより適切なデータ転送処理が実現できる。
Further, information other than the push policy may be used to determine to which client device the
[装置の動作フロー]
次に、通信システム100内の各装置の動作フローについて説明する。なお、図4から図11を用いて以下で説明する処理は、各装置のCPU201がROM202に格納されたプログラムをRAM203に展開して実行することで実現される。ただし、以下で説明する処理の少なくとも一部が、CPU201とは異なる専用のハードウェアにより実現されてもよい。
[Device operation flow]
Next, the operation flow of each device in the
図4は、中継装置101が識別子を生成する際の処理を説明するためのフローチャートである。図4に示す処理は、中継装置101がクライアント装置102もしくはクライアント装置103から識別子要求(サブスクライブ)を受信するタイミングで開始される。S501において、中継装置101は、クライアント装置102もしくはクライアント装置103から識別子要求を受信する。S502において、中継装置101は、識別子としてサブスクリプションURIとプッシュURIを生成する。S503において、中継装置101は、S501での識別子要求の送信元であるクライアント装置102もしくはクライアント装置103に識別子を送信する。S504において、中継装置101はS502で生成した識別子を図12(a)に示すRAM203内の識別子リストに保存する。
FIG. 4 is a flowchart for explaining a process when the
図5は、中継装置101が転送要求を受信した際の処理を説明するためのフローチャートである。図5に示す処理は、中継装置がクライアント装置102もしくはクライアント装置103から転送要求を受信するタイミングで開始される。S601において、中継装置101は、クライアント装置102もしくはクライアント装置103から識別子を含む転送要求を受信する。S602において、中継装置101は、S601で受信した識別子とS504で識別子リストに保存した識別子を比較し、受信した識別子が識別子リストに含まれている場合はS603に進み、含まれていない場合はS604に進む。
FIG. 5 is a flowchart for explaining the process when the
S603において、中継装置101は、S601で受信した転送要求の送信元であるクライアント装置のデバイス情報を図12(b)に示すRAM203内のプッシュ配信リストに保存する。本実施形態におけるデバイス情報は、中継装置101がクライアント装置を一意に特定することができる情報である。具体的には、クライアント装置の機器ID、MACアドレス、又はクライアント装置と中継装置との間のコネクションの識別情報などである。S604において、中継装置101は、S601での転送要求の送信元であるクライアント装置102もしくはクライアント装置103にエラーレスポンスを送信する。
In S603, the
図6は、中継装置101がクライアント装置102及びクライアント装置103にプッシュメッセージを送信する処理を説明するためのフローチャートである。図6に示す処理は、中継装置101がサーバ装置104から配信メッセージを受信するタイミングで開始される。S701において、中継装置101はサーバ装置104から識別子を含む配信メッセージを受信する。S702において、中継装置101は、S701で受信した識別子とS504で識別子リストに保存した識別子を比較し、受信した識別子が識別子リストに含まれている場合はS703に進み、含まれていない場合はS704に進む。
FIG. 6 is a flowchart for explaining a process in which the
S703において、中継装置101は、図12(c)に示すプッシュポリシーリストから、S701において受信した配信メッセージのプッシュURIに対応するプッシュポリシーを確認する。そしてS705において、中継装置101はサーバ装置104に配信レスポンスを送信する。一方、S704においては、中継装置101はサーバ装置104にエラーレスポンスを送信し、図6の処理を終了する。
In S703, the
S706において、中継装置101はS703で確認したプッシュポリシーに応じて、プッシュメッセージの転送先を決定する。例えば、プッシュポリシーがallであり、中継装置101がS701で受信した配信メッセージに対応する転送要求を複数のクライアント装置から受信していた場合、当該複数のクライアント装置すべてが転送先として決定される。一方、プッシュポリシーがanyだった場合、中継装置101は、受信した転送要求の送信元である複数のクライアント装置のうち何れか1つのクライアント装置を転送先として決定する。また、プッシュポリシーにより転送先の数が指定されている場合、指定に応じた数のクライアント装置が転送先として決定される。
In S706, the
S707において、中継装置101は、S603で保存したプッシュ配信リストにおいてS701で受信した識別子と対応するデバイス情報のうち、S705で決定された転送先それぞれについて、S708からS711の処理を行う。S708において、中継装置101は、対象のデバイス情報に対応するクライアント装置にプッシュ予約を送信する。S709において、中継装置101は、対象のデバイス情報に対応するクライアント装置にプッシュメッセージを送信する。S710において、中継装置101は、S709でのプッシュメッセージの転送先のクライアント装置からプッシュレスポンスを受信する。S711において、中継装置101はサーバ装置104に暫定応答(HTTP 100Continue)を送信する。この暫定応答には、例えばFQDN(Fully Qualified Domain Name)やIPアドレスその他の識別子を用いて、どのクライアント装置からプッシュレスポンスを受信したかの情報を含めてもよい。
In S707, the
S701で受信されたプッシュURIと対応する複数のデバイス情報が転送先として決定されている場合、S708からS711において中継装置101は、S701において受信した配信メッセージを転送先の決定に応じた複数のクライアント装置へ転送する。ここで、同一のプッシュURIと対応する複数のデバイス情報が転送先となっている場合とは、すなわち中継装置101が同一のサブスクリプションURIに基づく転送要求を転送先に決定された複数のクライアント装置から受信していた場合である。
When a plurality of device information corresponding to the push URI received in S701 is determined as the transfer destination, the
すべての転送先についてS708からS711の処理が終了すると、S712において中継装置101は、すべての転送先にプッシュメッセージが送達されたことを示す送達確認通知をサーバ装置104に送信し、処理を終了する。また、中継装置101は、指定されたプッシュポリシーに合致したプッシュメッセージの送達に失敗した場合や、送達の完了前にタイムアウトした場合などには、S712において送達確認の通知に代えてエラーレスポンスを送信する。エラーレスポンスには、データが送達されたクライアント装置の識別情報や、データを送達できなかったクライアント装置の識別情報、データの送達に失敗した原因を示す情報などが含まれていてもよい。なお、S711における暫定応答の送信は、一部の転送先についてのみ行われてもよい。例えば、中継装置101は、複数の転送先から送信されるプッシュレスポンスのうち最後のプッシュレスポンスを受信した場合には、S711における暫定応答の送信を行わずに、S712における送達確認の通知の送信を行ってもよい。また、サーバ装置104が転送先のクライアント装置の数を把握している場合などには、中継装置101は、S712における送達確認の通知の送信を行わず、S711における暫定応答の送信のみを行ってもよい。
When the processing from S708 to S711 for all the forwarding destinations is completed, the
また、複数の転送先のうち一部(n個)の転送先にプッシュメッセージが送達された場合に送達確認を通知するようにプッシュポリシーにより指定された場合には、中継装置101は、すべての転送先についてS708からS711までの処理を並列処理する。そして、S710で受信するプッシュレスポンスの数を確認し、n個に達するとループを抜け、S712で送達確認の通知が送信される。プッシュポリシーにより転送先のクライアント装置が指定される場合においても、同様な処理を行うことでプッシュポリシーに応じたプッシュメッセージの送信が実現できる。
Further, when the push policy specifies to notify the delivery confirmation when the push message is delivered to a part (n) of the plurality of forwarding destinations, the
図7は、クライアント装置102が中継装置101から識別子を受信し、クライアント装置103及びサーバ装置104に識別子を送信する処理を説明するためのフローチャートである。図7に示す処理は、例えばクライアント装置102にユーザの操作などによって識別子要求の指示がなされたタイミングで開始される。ただし、図7に示す処理の開始タイミングは上記タイミングに限定されない。
FIG. 7 is a flowchart for explaining a process in which the
S801において、クライアント装置102は中継装置101に識別子要求を送信する。S802において、クライアント装置102は中継装置101から識別子を受信する。S803において、クライアント装置102は自装置が有するRAM203内の識別子リストにS802で受信した識別子を保存する。S804において、クライアント装置102は、送信対象装置それぞれについてS805の処理を行う。本実施形態における送信対象装置はクライアント装置103及びサーバ装置104を指すが、これに限らない。例えば、識別子を管理するための情報管理装置(不図示)を送信対象装置とし、クライアント装置102は他の装置との間の識別子のやり取りを、情報管理装置を介して行ってもよい。S805において、クライアント装置102は送信対象装置に識別子を送信する。
In S801, the
図8は、クライアント装置103がクライアント装置102から識別子を取得する処理を説明するためのフローチャートである。図8に示す処理は、クライアント装置103がクライアント装置102から識別子を受信するタイミングで開始される。S901において、クライアント装置103はクライアント装置102から識別子を受信する。S902において、クライアント装置103は自装置が有するRAM203内の識別子リストにS901で受信した識別子を保存する。なお、サーバ装置104がクライアント装置102から識別子を取得する処理についても、図8を用いて説明した処理と同様である。
FIG. 8 is a flowchart for explaining a process in which the
図9は、クライアント装置102が中継装置101からプッシュメッセージを受信する処理を説明するためのフローチャートである。図9に示す処理は、例えばクライアント装置102にユーザの操作などによって転送要求の指示がなされたタイミングで開始される。ただし、図10に示す処理の開始タイミングは上記タイミングに限定されない。S1001において、クライアント装置102は中継装置101に転送要求を送信する。S1002において、クライアント装置102は中継装置101からの転送終了までS1003からS1006の処理を繰り返す。本実施形態において転送終了となる場合は、例えばクライアント装置102にユーザの操作などによってプッシュメッセージの受信を終了する指示がなされた場合や、クライアント装置102が中継装置101から転送終了を示すメッセージを受信した場合である。なお、転送終了の条件はこれに限らない。
FIG. 9 is a flowchart for explaining a process in which the
S1003において、クライアント装置102は中継装置101から識別子を含むプッシュ予約を受信する。S1004において、クライアント装置102は中継装置101からプッシュメッセージを受信するまで待機する。S1005において、クライアント装置102は中継装置101からプッシュメッセージを受信する。S1006において、クライアント装置102は中継装置101にプッシュレスポンスを送信する。なお、クライアント装置103が中継装置101からプッシュメッセージを受信する処理についても、図9を用いて説明した処理と同様である。
In S1003, the
図10は、サーバ装置104が中継装置101に配信メッセージを送信する処理を説明するためのフローチャートである。図10に示す処理は、例えばサーバ装置104にユーザの操作などによってデータ送信の指示がなされたタイミングや、サーバ装置104がセンサーなどにより所定のイベントを検知したタイミングで開始される。ただし、図10に示す処理の開始タイミングは上記タイミングに限定されない。
FIG. 10 is a flowchart for explaining a process in which the
S1101において、サーバ装置104は中継装置101に配信メッセージを送信する。S1102において、サーバ装置104は中継装置101から暫定応答を受信する。暫定応答は、配信メッセージが転送先のクライアント装置うちの一部に送達されたことを示す。これにより、サーバ装置104は各クライアント装置におけるメッセージの受信状況を把握することができる。S1103において、サーバ装置104は中継装置101から送達確認の通知を受信する。
In S1101, the
図11は、中継装置101がサーバ装置104へのレシートの送受信のために行う前処理を説明するためのフローチャートである。図11に示す処理は、例えばサーバ装置104がクライアント装置102からプッシュURIを取得したタイミングで開始される。ただし、図11に示す処理の開始タイミングは上記タイミングに限定されない。
FIG. 11 is a flowchart for explaining the preprocessing performed by the
S1201において、中継装置101はサーバ装置104から、送達確認の通知を要求するための通知要求を受信する。S1202において、中継装置101はサーバ装置104に、通知要求に対するレスポンスを送信する。S1203において、中継装置101はサーバ装置104から、送達確認の通知や暫定応答などを要求するためのレシート要求を受信する。S1204において、中継装置101はサーバ装置104に、プッシュ型のデータ送信によりレシートを送信するためのプッシュ予約を送信する。
In S1201, the
[変形例]
上述した本実施形態については、その主旨を逸脱しない範囲で種々の変形が可能である。本実施形態においては、クライアント装置102とクライアント装置103の2台の装置が同一の識別子を用いて中継装置101からプッシュメッセージを受信する場合を中心に説明した。ただしこれに限らず、3台以上のクライアント装置が同一の識別子を用いて中継装置101からのプッシュメッセージを受信してもよい。また、クライアント装置102及びクライアント装置103は、複数のサーバ装置からプッシュされるデータを受信してもよい。この場合、サーバ装置ごとに異なる識別子が用いられてもよい。なお、本実施形態では送信される転送要求やデータに識別子が含まれているものとしたが、識別子に基づく転送要求やデータが送信されればよい。例えば、転送要求と識別子とを関連付けるデータが、当該転送要求とは別に送信されてもよい。
[Modification example]
The above-described embodiment can be modified in various ways without departing from the spirit of the present embodiment. In the present embodiment, the case where two devices, the
また、本実施形態では、中継装置101とクライアント装置102やクライアント装置103との間の通信は、HTTP/2において規定されるコネクション及びストリームを使用して行われるものとした。一方、中継装置101とサーバ装置104との間の通信は、HTTP/1.1に従うものとした。ただし、通信システム100内で行われる通信の方式はこれらに限定されない。例えば、中継装置101とサーバ装置104との間の通信もHTTP/2に従う通信であってもよい。また、HTTP/1.1やHTTP/2に限らず、WebSocketやQUIC(Quick UDP Internet Connections)などの他の通信規格に従って通信が行われてもよい。この場合、各規格に応じた形式のメッセージや論理的な接続を使用して通信が行われる。また、本実施形態ではWebPushプロトコルに基づくプッシュ型のデータ送信が行われる例を説明したが、これに限らず、プッシュ通知を送受信するための他のプロトコルにも本実施形態を適用することができる。さらに、プッシュを用いないプロトコルにも適用可能である。
Further, in the present embodiment, the communication between the
また、本実施形態においては、サーバ装置104が中継装置101へ送信するレシート要求にプッシュポリシーを含める場合を中心に説明した。これにより、中継装置101はサーバ装置104の要求に応じたデータの転送処理を行うことができる。なお、プッシュポリシーはサーバ装置104から中継装置101へ送信される配信メッセージに含まれていてもよいし、レシート要求や配信メッセージとは別に送信されてもよい。また、中継装置101やクライアント装置102などがプッシュポリシーを決定し、決定されたプッシュポリシーをサーバ装置104に通知してよい。さらに、複数装置間のネゴシエーションによってプッシュポリシーが決定されてもよい。また、クライアント装置102やクライアント装置103は、プッシュメッセージの受信ポリシーを決定し、この受信ポリシーに従って、中継装置101から送信されるプッシュメッセージを受信するか否かを判断してもよい。
Further, in the present embodiment, the case where the push policy is included in the receipt request transmitted by the
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC等)によっても実現可能である。また、そのプログラムをコンピュータにより読み取り可能な記録媒体に記録して提供してもよい。
<Other Embodiments>
The present invention supplies a program that realizes one or more functions of the above-described embodiment to a system or device via a network or storage medium, and one or more processors in the computer of the system or device reads and executes the program. It can also be realized by the processing to be performed. It can also be realized by a circuit (for example, ASIC or the like) that realizes one or more functions. Further, the program may be recorded and provided on a computer-readable recording medium.
100 通信システム
101 中継装置
102 クライアント装置
103 クライアント装置
104 サーバ装置
100
Claims (13)
前記第1受信手段により受信される前記データをクライアント装置へ送信する第1送信手段と、
前記第1送信手段により送信された前記データがクライアント装置により受信されたことを示す確認応答を当該クライアント装置から受信する第2受信手段と、
前記第1送信手段により前記データが複数のクライアント装置へ送信される場合に、前記第2受信手段が前記複数のクライアント装置から前記確認応答を受信した後に、前記第1送信手段により送信された前記データが前記複数のクライアント装置により受信されたことを示す送達確認の通知を、プッシュ型のデータ送信により前記サーバ装置に送信する第2送信手段とを有することを特徴とする通信装置。 The first receiving means for receiving data from the server device,
A first transmitting means for transmitting the data received by the first receiving means to the client device, and
A second receiving means for receiving an acknowledgment indicating that the data transmitted by the first transmitting means has been received by the client device from the client device, and a second receiving means.
When the data is transmitted to a plurality of client devices by the first transmission means , the confirmation response is received from the plurality of client devices, and then the data is transmitted by the first transmission means. A communication device comprising a second transmission means for transmitting a delivery confirmation notification indicating that data has been received by the plurality of client devices to the server device by push-type data transmission.
前記第1送信手段は、前記第1受信手段により受信される前記データに対応する転送要求を前記第3受信手段が複数のクライアント装置から受信した場合に、当該複数のクライアント装置へ前記データを送信することを特徴とする請求項1に記載の通信装置。When the third receiving means receives a transfer request corresponding to the data received by the first receiving means from a plurality of client devices, the first transmitting means transmits the data to the plurality of client devices. The communication device according to claim 1, wherein the communication device is characterized by the above.
前記第1受信手段により受信される前記データに対応する転送要求を前記第3受信手段が複数のクライアント装置から受信した場合に、当該複数のクライアント装置のうち前記データの送信先とすべきクライアント装置を決定する決定手段とを有し、When the third receiving means receives a transfer request corresponding to the data received by the first receiving means from a plurality of client devices, the client device to be the transmission destination of the data among the plurality of client devices. Has a decision-making means to determine
前記第1送信手段は、前記決定手段による決定に応じたクライアント装置へ前記データを送信することを特徴とする請求項1又は2に記載の通信装置。The communication device according to claim 1 or 2, wherein the first transmission means transmits the data to the client device according to the determination by the determination means.
前記決定手段は、前記データの送信先とすべきクライアント装置を、前記第4受信手段により受信される前記指定情報に基づいて決定することを特徴とする請求項3に記載の通信装置。The communication device according to claim 3, wherein the determination means determines a client device to be a transmission destination of the data based on the designated information received by the fourth receiving means.
前記第1送信手段は、前記第3送信手段により送信された発行情報であって前記第1受信手段により受信される前記データに対応する発行情報を含む転送要求を前記第3受信手段が複数のクライアント装置から受信した場合に、前記データを当該複数のクライアント装置のうちの1以上のクライアント装置へ送信することを特徴とする請求項2乃至4の何れか1項に記載の通信装置。In the first transmitting means, the third receiving means has a plurality of transfer requests including the issuing information transmitted by the third transmitting means and the issuing information corresponding to the data received by the first receiving means. The communication device according to any one of claims 2 to 4, wherein when received from a client device, the data is transmitted to one or more client devices among the plurality of client devices.
前記第2送信手段は、前記決定手段による決定に応じたタイミングで前記送達確認の通知を前記サーバ装置に送信することを特徴とする請求項1乃至8の何れか1項に記載の通信装置。The communication device according to any one of claims 1 to 8, wherein the second transmission means transmits a notification of delivery confirmation to the server device at a timing corresponding to a decision by the determination means.
前記第1受信工程において受信される前記データを前記通信装置からクライアント装置へ送信する第1送信工程と、A first transmission step of transmitting the data received in the first reception step from the communication device to the client device, and
前記第1送信工程において送信された前記データがクライアント装置により受信されたことを示す確認応答を前記通信装置が当該クライアント装置から受信する第2受信工程と、A second receiving step in which the communication device receives an acknowledgment indicating that the data transmitted in the first transmitting step has been received by the client device from the client device.
前記第1送信工程において前記データが複数のクライアント装置へ送信される場合に、前記第2受信工程において前記通信装置が前記複数のクライアント装置から前記確認応答を受信した後に、前記第1送信工程において送信された前記データが前記複数のクライアント装置により受信されたことを示す送達確認の通知を、プッシュ型のデータ送信により前記通信装置から前記サーバ装置へ送信する第2送信工程とを有することを特徴とする通信方法。When the data is transmitted to a plurality of client devices in the first transmission step, after the communication device receives the confirmation response from the plurality of client devices in the second reception step, in the first transmission step. It is characterized by having a second transmission step of transmitting a delivery confirmation notification indicating that the transmitted data has been received by the plurality of client devices from the communication device to the server device by push-type data transmission. Communication method.
前記第1送信工程においては、前記第1受信工程において受信される前記データに対応する転送要求を前記第3受信工程において前記通信装置が複数のクライアント装置から受信した場合に、当該複数のクライアント装置へ前記データが送信されることを特徴とする請求項11に記載の通信方法。In the first transmission step, when the communication device receives a transfer request corresponding to the data received in the first reception step from a plurality of client devices in the third reception step, the plurality of client devices. The communication method according to claim 11, wherein the data is transmitted to the client.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017211154A JP6942609B2 (en) | 2017-10-31 | 2017-10-31 | Communication equipment, communication methods, and programs |
US16/158,879 US11196831B2 (en) | 2017-10-31 | 2018-10-12 | Communication apparatus, communication method, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017211154A JP6942609B2 (en) | 2017-10-31 | 2017-10-31 | Communication equipment, communication methods, and programs |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019082953A JP2019082953A (en) | 2019-05-30 |
JP6942609B2 true JP6942609B2 (en) | 2021-09-29 |
Family
ID=66670448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017211154A Active JP6942609B2 (en) | 2017-10-31 | 2017-10-31 | Communication equipment, communication methods, and programs |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6942609B2 (en) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3641107B2 (en) * | 1997-08-07 | 2005-04-20 | 日本電信電話株式会社 | Electronic file delivery method |
JP3692830B2 (en) * | 1999-05-14 | 2005-09-07 | 株式会社日立製作所 | Multicast communication system |
JP2002344477A (en) * | 2001-05-16 | 2002-11-29 | Mitsubishi Electric Corp | Multicast delivery system and its terminal |
JP4814998B2 (en) * | 2006-06-27 | 2011-11-16 | トムソン ライセンシング | Method and apparatus for reliable delivery of multicast data |
US9372739B2 (en) * | 2011-04-20 | 2016-06-21 | International Business Machines Corporation | Monitoring of subscriber message processing in a publish/subscribe messaging environment |
US9479387B2 (en) * | 2012-06-22 | 2016-10-25 | Salesforce.Com, Inc. | Methods and systems for priority-based notifications for mobile devices |
US10285050B2 (en) * | 2015-04-13 | 2019-05-07 | Samsung Electronics Co., Ltd. | Method and apparatus for managing a profile of a terminal in a wireless communication system |
-
2017
- 2017-10-31 JP JP2017211154A patent/JP6942609B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2019082953A (en) | 2019-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10866776B2 (en) | Pull printing method and system using cloud server | |
CN102739411B (en) | The service of proof is provided | |
US9549096B2 (en) | Image processing system, relay server, and program for relaying communications | |
US10623699B2 (en) | Device, system and method for embedded video chat | |
JP6562085B2 (en) | COMMUNICATION DEVICE, COMMUNICATION SYSTEM, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM | |
JP7190837B2 (en) | Relay device, control method, and program | |
JP6862191B2 (en) | Information processing device, its control method, and program | |
JP6429559B2 (en) | COMMUNICATION DEVICE, COMMUNICATION SYSTEM, INFORMATION PROCESSING METHOD, AND PROGRAM | |
JP6843522B2 (en) | Communication equipment and its control method, and programs | |
JP6942609B2 (en) | Communication equipment, communication methods, and programs | |
JP7009163B2 (en) | Communication equipment, communication methods, and programs | |
WO2008050585A1 (en) | Two-way communication system, server apparatus, relay apparatus, two-way communication method and program | |
JP6758858B2 (en) | Communication equipment, communication methods and programs | |
JP7051396B2 (en) | Communication equipment, communication methods, and programs | |
US9106608B2 (en) | Communication device, communication method, and non-transitory computer-readable recording medium | |
JP6465755B2 (en) | Control method, program, and client terminal | |
JP6998746B2 (en) | Communication device, notification device, relay device, communication system, control method of each device, and program | |
US11196831B2 (en) | Communication apparatus, communication method, and storage medium | |
WO2016177257A1 (en) | Data sharing method and device | |
CN114338574A (en) | Instant messaging method, management node and system | |
JP7293268B2 (en) | COMMUNICATION DEVICE, CONTROL METHOD THEREOF, AND PROGRAM | |
CN112583934B (en) | Data communication method, apparatus and computer-readable storage medium | |
JP2019033539A (en) | Communication device, communication system, communication method, and program | |
JP6332915B2 (en) | Information processing apparatus, information processing method, and program | |
JP6008664B2 (en) | Output instruction device, output device, and content output system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200911 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210616 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210622 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210714 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210810 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210908 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6942609 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |