【解決手段】 中継装置は、サーバ装置から受け取った少なくとも1種類の配信データをクライアント装置に配信する送信手段と、前記配信データのうち、前記配信データの種類ごとに最新の前記配信データを記憶手段に記憶させる記憶制御手段と、前記クライアント装置からの再送要求に従って、前記記憶手段において記憶されている、前記再送要求により要求される種類の前記最新の配信データを前記クライアント装置に送信する処理を行う要求対応手段と、を備える。
前記クライアント装置と、当該クライアント装置が配信を希望する前記配信データの種類と、を関連づける配信対象情報に基づいて、前記配信データごとに、前記送信手段が当該配信データを配信する対象となる前記クライアント装置を特定する特定手段をさらに備え、
前記送信手段は、特定された前記クライアント装置に当該配信データを送信し、特定された前記クライアント装置でない前記クライアント装置には当該配信データを送信しない、
請求項1または2に記載の中継装置。
前記記憶制御手段は、前記配信データの種類ごとに、前記最新の配信データを前記記憶手段に記憶させる際に最新でない前記配信データを当該最新の配信データで上書きする、
請求項1から3のいずれか一項に記載の中継装置。
請求項3に記載の中継装置に対し、前記配信データのうち配信されることを希望するデータの種類、および/または配信されることを希望しないデータの種類を表す、配信希望情報を送信する送信手段を備え、
前記配信対象情報は、前記配信希望情報に基づいて生成される、
クライアント装置。
【発明を実施するための形態】
【0019】
以下、図面を参照しながら、本発明の実施形態を詳細に説明する。
【0020】
<<第1の実施形態>>
まず、本発明の第1の実施形態について説明する。
【0021】
<構成>
図1は、第1の実施形態に係るデータ通信システム1の構成を示すブロック図である。
【0022】
図1を参照すると、データ通信システム1は、サーバ装置11と、クライアント装置21と、中継装置31とを含む。
【0023】
=サーバ装置11=
サーバ装置11は、生成部101と、送信部102と、を備える。
【0024】
生成部101は、クライアント装置21または中継装置31に送信するデータを生成する。生成部101が生成するデータは、リアルタイムストリーミング配信によって配信され得る何らかのデータである。たとえば、生成されるデータは、現在の気温や為替相場を表すテキストデータや、数秒ごとに表示内容が切り替わる画像データ等である。データがどのように生成されるかは問わない。一例として、データが気温を表すテキストデータである場合は、データは、温度センサによって検知された温度をテキストデータに変換するソフトウェアによって生成されてもよい。
【0025】
生成部101は、生成したデータを送信部102に出力する。
【0026】
送信部102は、生成部101が生成したデータを、伝送路501を介して、後述の中継装置31の受信部301に送信する。
【0027】
伝送路501は、IEEE802.3に代表される有線通信路でもよいし、IEEE802.11に代表される無線通信路でもよい。伝送路501は、有線通信路および無線通信路の組み合わせでもよい。サーバ装置11と中継装置31との間の通信は、プロセス間通信によって実現されてもよい。
【0028】
送信部102および受信部301は、伝送路501を通して通信できるインタフェースであれば、何でもよい。たとえば、送信部102と受信部301とは、TCP/IP(Transmission Control Protocol/Internet Protocol)を用いて互いに通信する。
【0029】
=クライアント装置21=
クライアント装置21は、受信部201、処理部202、および要求送信部203を備える。
【0030】
受信部201は、後述の中継装置31の送信部303から、伝送路601を介してデータを受信する。受信部201は、受信したデータを処理部202に出力する。
【0031】
伝送路601は、IEEE802.3に代表される有線通信路でもよいし、IEEE802.11に代表される無線通信路でもよい。伝送路601は、有線通信路および無線通信路の組み合わせでもよい。送信部303と受信部201との間の通信は、プロセス間通信によって実現されてもよい。
【0032】
送信部303および受信部201は、伝送路601を通して通信できるインタフェースであれば、何でもよい。たとえば、送信部303と受信部201とは、TCP/IPを用いて互いに通信する。
【0033】
処理部202は、受信部201から受け取ったデータを処理する。すなわち、たとえば、処理部202は、受け取ったデータを用いてソフトウェアを実行してもよいし、受け取ったデータに基づく情報を出力してもよい。たとえば、受け取ったデータが特定の演算を行うために必要なデータであれば、処理部202は、そのデータを用いてその特定の演算を行う。たとえば、受け取ったデータが、ある地域の気温を表すテキストデータであれば、処理部202は、そのテキストデータに基づいて、その地域の気温を示す画像を生成してもよい。受け取ったデータが経時変化する特定の事柄に関する最新の値であれば、処理部202は、その最新の値を、時系列変化を記録するリストに追加してもよい。処理部202は、処理によって生成した情報(上記演算結果や、上記画像およびリスト等)を出力してもよい。処理部202により出力されるデータは、たとえば、図示しない表示部によってクライアント装置21の利用者に画像情報として表示されてもよい。
【0034】
図2は、処理部202によるデータの処理によって表示部の表示画面が変化する例を示す図である。
図2の(a)は、東京の現在の気温を表す「26℃」という表示が、処理部202が東京の現在の気温が27℃であることを示すデータを取得し処理することによって、「27℃」という表示に変わる例である。
図2の(b)は、所定の期間におけるある株式会社の株価の推移を表示しているグラフが、処理部202が最新の株価の値を取得し処理することによって、最新のグラフに変化する例である。
【0035】
処理部202が、受信部201から受け取ったデータが、処理を行うにあたって不十分であると判断したとき、要求送信部203に対して必要なデータを要求するよう通知する。データが不十分である場合とは、たとえば、行うべき演算に必要な情報がない場合、表示すべき内容の基になるべきデータがない場合、または、所定の期間における特定の事柄に関する値が揃っていない場合、等である。
【0036】
要求送信部203は、中継装置31の要求対応部305に対して、処理部202により通知された必要なデータを要求する。要求送信部203が行う、必要なデータの要求を「、以下「再送要求」とも称する。
【0037】
なお、伝送路602は、IEEE802.3に代表される有線通信路でもよいし、IEEE802.11に代表される無線通信路でもよい。伝送路602は、有線通信路および無線通信路の組み合わせでもよい。要求送信部203と要求対応部305との間の通信は、プロセス間通信によって実現されてもよい。
図1では伝送路601と伝送路602とは別々に記載されているが、伝送路602の一部または全部が伝送路601と同一の経路でもよい。
【0038】
要求送信部203および要求対応部305は、伝送路602を通して通信できるインタフェースであれば、何でもよい。たとえば、要求送信部203と要求対応部305とは、TCP/IPを用いて互いに通信する。
【0039】
=中継装置31=
中継装置31は、サーバ装置11とクライアント装置21との間で、データの配信を中継する。
【0040】
図1に示される通り、中継装置31は、受信部301、調整部302、送信部303、記憶制御部304、要求対応部305、および記憶部310を備える。
【0041】
受信部301は、サーバ装置11から、生成部101が生成したデータを受信する。受信部301は、受信したデータを調整部302に出力する。
【0042】
調整部302は、受信部301が受信したデータを、後述の送信部303と記憶制御部304とに出力する。調整部302においては、データを中継する際に適用可能な既知の技術が適用されてもよい。たとえば、調整部302は、受信部301が受信したデータを加工してもよい。調整部302は、送信部303がデータを送信するタイミングを調整してもよい。調整部302は、送信先のクライアント装置21ごとに、送信されるべきデータの種類や量を調整してもよい。
【0043】
送信部303は、調整部302から受け取ったデータを、クライアント装置21の受信部201に、伝送路601を介して送信する。調整部302から受け取ったデータは、すなわち、サーバ装置11から配信されたデータである。したがって、このデータは送信部303を通してクライアント装置21にリアルタイムに配信される。このデータは、クライアント装置21が特段の指示をしなくても自動的にクライアント装置21に送信される。このような送信の方法を、プッシュ配信と称することがある。
【0044】
記憶制御部304は、調整部302から受信したデータを、記憶部310に記憶させる。記憶部310は、例えば記録媒体である。なお、
図1においては、記憶部310は中継装置31の内部に記載されているが、記憶部310は中継装置の外部に存在してもよい。
【0045】
記憶制御部304は、受信したデータを記憶部310に記憶させる際、記憶部310にある同種の古いデータを上書きしてもよい。同種の古いデータとは、同じ事柄に関する情報を有する、生成された日時が早い方のデータである。たとえば、受信したデータが東京の現在の気温である場合で、以前に東京の現在の気温として記憶されたデータがあれば、そのデータは古いデータである。その場合、記憶制御部304は、直近に調整部302から受信したデータを新たに東京の現在の気温を表すデータとして、古いデータを上書きしてもよい。データを上書きする構成によれば、記憶部310が記憶するデータの量は増えないので、処理量やコストが抑えられる。
【0046】
あるいは、記憶制御部304は、記憶しているデータにデータの新しさの序列を表す番号を付与し、同種のデータを系統的に記憶部310に蓄積させてもよい。特に、株価や為替に関するデータの場合、ある程度の期間蓄積されたデータを表示することがユーザにとって好ましいので、記憶制御部304が記憶部310にデータを蓄積させる構成であることが望ましい。ただし、その際、蓄積されたデータの個数が所定の数を超えた場合に、記憶制御部304は、最も古いデータを消去してもよい。
【0047】
要求対応部305は、要求送信部203から受信した再送要求に基づいて、記憶部310において記憶されたデータをクライアント装置21に再送する処理を行う。
【0048】
具体的には、例えば、要求対応部305はまず、再送要求によって要求されているデータが記憶されているかどうかを、記憶部310に問い合わせる。要求対応部305は、記憶部310が記憶するデータを探索してもよい。そして、要求されているデータが記憶されていたら、そのデータを読み出し、そのデータを送信部303に送出する。要求対応部305は、データの読み出しや読み出したデータの送信部303への送出を、記憶制御部304や調整部302に命令して行わせてもよい。送信部303は、記憶部310から読み出されたデータを受け取ると、そのデータを、伝送路601を介してクライアント装置21の受信部201に送信する。
【0049】
要求されたデータが記憶部310において記憶されていなかった場合は、要求対応部305は例外処理を行う。たとえば、例外処理では、要求対応部305は、要求されたデータが存在しないことを、例えば送信部303を介して、クライアント装置21に通知する。または、要求対応部305は、定期的に記憶部310にアクセスし、要求されたデータがサーバ装置11から送信されて記憶部310に記憶されるまで待機してもよい。この場合、所定の時間が経過しても要求されたデータがサーバ装置11から送信されてこない場合に、要求対応部305は、要求されたデータが存在しないことを、送信部303を介してクライアント装置21に通知してもよい。
【0050】
以上の構成により、中継装置31は、クライアント装置21に対して、サーバ装置11によって送信済みであるデータを、再送する機能を提供できる。なお、再送要求によって要求されているデータがクライアント装置21に送られるための処理が実現するのであれば、要求対応部305の処理は上記以外の処理でもよい。
【0051】
<動作>
次に、第1の実施形態に係るデータ通信システム1の各部の具体的な動作の流れの例を、
図3のシーケンス図を用いて説明する。
【0052】
この例では、サーバ装置11の生成部101が生成するデータは、GPSと温度センサ等から取得される、特定の地域とその地域の気温に関する情報である。特定の地域は、「東京」であるとする。
【0053】
生成部101は、東京における気温(たとえば、「10℃」を示す数値)を取得し、取得した気温の情報(以下、「気温情報」と称す)を示すデータを、配信データとして生成する(ステップS31)。気温情報は、たとえば、「東京の現在の気温は10℃である」という情報である。生成部101は、生成した気温情報を、送信部102に出力する。
【0054】
送信部102は、伝送路501を介して、中継装置31の受信部301に気温情報を送信する(ステップS32)。なお、気温情報は、
図3のシーケンス図では「配信データ」とされている。送信部102は、気温情報が更新される(すなわち、新たな気温情報が生成される)たびに、受信部301に気温情報を送信する。
【0055】
中継装置31の受信部301が、気温情報を受信すると(ステップS33)、受信部301は受信した気温情報を調整部302に出力する。
【0056】
調整部302は、気温情報を記憶制御部304および送信部303に出力する。
【0057】
記憶制御部304は、受け取った気温情報を記憶部310に記憶させる(ステップS34)。記憶されるデータの構造は問わない。たとえば、記憶部310は、情報の項目と、その項目の最新の値とを、双方が関連づいた形態で記憶する。つまり、たとえば記憶部310は、キーと値とを関連づけるリストの形式でデータを記憶してもよい。この場合、たとえば記憶制御部304は、調整部302から受け取った気温情報に基づき、「東京」というキーに対して「10℃」という値を関連づける形で、気温情報を記憶部310に記憶させる。このとき、すでに「東京」というキーに対して古い値が関連付けられていたときは、記憶制御部304は、その古い値を「10℃」という値で上書きしてもよい。
【0058】
「東京」という項目自体がなかった場合は、記憶制御部304は、記憶部310が記憶する項目のリストに「東京」を追加し、その項目の値(10℃)を記憶させる。
【0059】
一方、送信部303は、調整部302から受け取った気温情報を、伝送路601を介してクライアント装置21の受信部201に送信(プッシュ配信)する(ステップS35)。
【0060】
クライアント装置21において、受信部201が気温情報を受信し、処理部202が気温情報をプッシュ配信されたデータとして処理する(ステップS36)。例えば、処理部202は、図示しない表示部に「東京の現在の気温は10℃」と表示させる。
【0061】
さて、この後、ユーザが、クライアント装置21におけるデータの受信を一時中断するオペレーションを行うとする。そして、暫くの後、ユーザが再びクライアント装置21におけるデータの受信を再開させるとする。
【0062】
すると、この時点で取得されている気温情報は、受信を中断した時点のものであるため、最新ではない。あるいは、気温情報を消去してしまっている場合は、処理部202は、画面情報を表示できない。すなわち、気温情報が、処理を行うにあたって不足している、必要なデータである。したがって、処理部202は、要求送信部203に対して気温情報を要求するよう通知する。そして、要求送信部203は、伝送路602を介して中継装置31の要求対応部305に気温情報を要求する(ステップS37)。要求する内容は、たとえば、「東京の現在の気温を教えよ」という内容である。
【0063】
要求対応部305は、要求送信部203からの要求を受信する(ステップS38)。要求対応部305は、要求された内容に関する気温情報を記憶しているかを記憶部310に問い合わせる。
【0064】
このとき、記憶部310は「東京」をキーとし、「12℃」を値とした気温情報を、最新のデータとして記憶しているとする。要求対応部305は、この気温情報を読み出す(ステップS39)。そして、要求対応部305は、送信部303に、この気温情報をクライアント装置21へと送信させる。送信部303は、読み出された気温情報を受信部201に送信する(ステップS40)。
【0065】
クライアント装置21において、受信部201が気温情報を受信し、処理部202がその気温情報を処理する(ステップS41)。たとえば、処理部202は、表示部に「東京の現在の気温は12℃」と表示させる。
【0066】
このようにして、クライアント装置21は、サーバ装置11および中継装置31によって配信済みであるデータ(気温情報)を、再送要求を行うことによって取得し、処理することが可能となる。
【0067】
<効果>
第1の実施形態のデータ通信システム1によれば、クライアント装置21は、サーバ装置11によって配信された過去のデータを取得することができる。
【0068】
その理由は、サーバ装置11とクライアント装置21の間に設置された中継装置31が、サーバ装置11から送信されたデータを記憶し、クライアント装置21からの配信済みデータの再送要求に対して記憶されたデータを送信するからである。
【0069】
本構成によれば、サーバ装置11が常時すべてのデータを配信し続けていなくても、クライアント装置21は、最新のデータを取得することができる。
【0070】
再送要求の機能により、クライアント装置21は、サーバ装置11から自発的に行われる配信を待たずに、都合の良いタイミングで、配信済みの最新のデータを中継装置31からすぐに取得することができる。
【0071】
なお、サーバ装置11が記憶制御部304および要求対応部305に相当する構成を有することにより、クライアント装置21に配信済みのデータの再送要求の機能を提供する構成もありうる。しかし、その場合、サーバ装置11の負担が大きくなり、全体的な処理が遅くなる可能性がある。第1の実施形態の構成であれば、サーバ装置11が再送要求の機能を有さなくても、クライアント装置21は再送要求ができる。特に、第1の実施形態の中継装置31により、既存のサーバ装置11自体には変更を加えることなく、クライアント装置21に配信済みのデータの再送要求の機能を提供することができる。
【0072】
以上の通り、本実施形態に係る中継装置31は、データがリアルタイムに配信されるストリーミング配信において、配信済みのデータをクライアント装置21が受信していない場合における不都合を解消する。
【0073】
<<第2の実施形態>>
一般的なリアルタイムストリーミング配信において、クライアント装置はサーバ装置から配信される全ての更新を受信する。しかし、クライアント装置にとってプッシュ配信される(すなわち、リアルタイムで自動的に送信される)ことが望まれるデータが、サーバ装置11が配信するデータのうち特定の種類のデータのみである場合、プッシュ配信されることが望まれないデータの通信は不要である。そこで、例えば、データ通信システムを、プッシュ配信が望まれないデータをクライアント装置にプッシュ配信しないよう構成することが考えられる。しかし、その場合、例えばその望まれないデータが、配信データの受信開始時等、特定のタイミングにおいては必要となるデータである場合、クライアント装置はその特定のタイミングにおいて必要なデータを受け取ることができない、ということが起こり得る。
【0074】
本発明の第2の実施形態に係るデータ通信システム2は、上記の問題の解決に寄与する。以下、第2の実施形態について説明する。
【0075】
<構成>
図4は、第2の実施形態に係るデータ通信システム2の構成を示すブロック図である。
【0076】
第2の実施形態においては、中継装置32が、第1の実施形態に係る中継装置31と同様の構成に加えて、更に特定部306を備える。
【0077】
なお、第2の実施形態における構成のそれぞれは、第1の実施形態における、同一の符号が付された構成と同様の機能を有していてよい。以下の第2の実施形態の説明では、第1の実施形態と重複する説明は省略することがある。
【0078】
第2の実施形態に係るデータ通信システム2では、サーバ装置11が配信するデータは、2つ以上の複数の種類のデータであるとする。たとえば、サーバ装置11が配信するデータは、特定の地域における、現在の天気を示すデータと、現在の気温を表すデータの2つから構成されるとする。
【0079】
クライアント装置21の処理部202は、プッシュ配信されることを希望するデータの種類、および/またはプッシュ配信されることを希望しないデータの種類を表す、配信希望情報を作成する。たとえば、処理部202は、天気を示すデータがプッシュ配信されることを希望するデータであり、気温を示すデータがプッシュ配信されることを希望しないデータであるということを示す、配信希望情報を作成する。
【0080】
配信希望情報の情報は、たとえば、クライアント装置21の利用者がクライアント装置21に対して指示することにより取得される。たとえば、利用者が、プッシュ配信されることを希望するデータを指示し、さらに/またはプッシュ配信されることを希望しないデータを指示することにより、処理部202は、指示された内容を基に配信希望情報を作成する。なお、プッシュ配信されることを希望しないデータとは、すなわち、再送要求がない限りは送信部303がプッシュ配信しないことが求められるデータである。
【0081】
処理部202は、プッシュ配信されることを希望しないデータの指示のみを受信してもよい。その場合、処理部202は、プッシュ配信されることを希望しないデータとして指示されなかったデータを、プッシュ配信されることを希望するデータであるとして扱えばよい。
【0082】
処理部202は、クライアント装置21の配信希望情報を要求送信部203に通知する。配信希望情報の通知は、いつ行われてもよい。たとえば、クライアント装置21が配信サーバからのデータ配信を受信することが決定したときに、処理部202は配信希望情報を作成し、要求送信部203に送信してもよい。
【0083】
要求送信部203は、伝送路602を介して、中継装置32の要求対応部305に配信希望情報を通知する。
【0084】
中継装置32の要求対応部305は、受信した配信希望情報を特定部306に通知する。
【0085】
特定部306は、配信希望情報に基づく、配信対象情報を記憶する。配信対象情報は、配信データの種類のそれぞれについて、配信する対象となるクライアント装置21を特定する情報である。配信希望情報に基づく配信対象情報は、いわば、クライアント装置と、クライアント装置がプッシュ配信を希望する配信データの種類と、を関連づける情報である。配信対象情報は、たとえば、配信データの種類とクライアント装置の識別子とが関連付けられたリスト形式の情報であってもよい。配信対象情報は、各クライアント装置21から受信する配信希望情報のリストでもよい。たとえば、特定部306が、配信希望情報に基づき、配信対象情報を作成する。特定部306は、たとえば、配信対象情報を記憶するための記憶領域(不図示)を有し、その記憶領域に配信対象情報を保持してもよい。
【0086】
調整部302は、受信部301が配信データを受け取った場合に、特定部306に、受け取ったデータをプッシュ配信されることを希望するクライアント装置21を問い合わせる。たとえば、調整部302は、特定部306に受け取ったデータの種類を送信し、特定部306から、そのデータの種類に基づいて特定されるクライアント装置21の識別子(例えば、IPアドレス等)を取得する。
【0087】
特定部306は、記憶されている配信対象情報に基づき、調整部302が受け取ったデータがプッシュ配信されることを希望するクライアント装置21を特定し、特定したクライアント装置21の識別子を調整部302に通知する。特定部306は、たとえば、記憶しているリストを参照し、調整部302から受け取ったデータの種類が関連づけられているクライアント装置21を特定すればよい。
【0088】
調整部302は、受信部301から受け取ったデータと、そのデータをプッシュ配信されることを希望するクライアント装置21の識別子とを、送信部303に出力する。
【0089】
また、調整部302は、第1の実施形態と同様、データを記憶制御部304にも出力する。
【0090】
送信部303は調整部302から受け取ったデータを、プッシュ配信されることを希望するクライアント装置21の受信部201に、伝送路601を介して送信する。
【0091】
送信部303は、プッシュ配信されることを希望するクライアント装置21でないクライアント装置21には、受け取ったデータを送らない。
【0092】
図5は、プッシュ配信されるデータの流れの例を表すブロック図である。
図5においては、中継装置32は、3台のクライアント装置21(21−1、21−2、および21−3)に接続されている。中継装置32は、サーバ装置11から配信データを受け取り、上記3台のクライアント装置21に配信データを送信する。
【0093】
サーバ装置11から配信されるデータの種類は3種あり、それぞれをデータ種A、B、Cとして区別するとする。サーバ装置11は、それぞれのデータ種のデータを、常時連続的に配信してもよいし、非連続的に(別の言い方では、不連続に、断続的に)配信してもよい。また、サーバ装置11は、それぞれのデータ種のデータを非連続的に配信する場合は、それぞれのデータを別々のタイミングで配信してもよい。
【0094】
そして、中継装置32は、特定部306において、「クライアント装置21−1はデータ種Cのデータのプッシュ配信を希望しない」という情報を、配信希望情報として有しているとする。すなわち、たとえば、データ種A,B,Cと各クライアント装置21とを関連づけるリストにおいて、クライアント装置21−2と21−3とはデータ種A、B、およびCに関連づけられ、クライアント装置21−1はデータ種AおよびBに関連づけられているとする。
【0095】
図5における矢印およびアルファベットは、上記のような例のもとで送信される配信データのデータ種の流れを示している。
【0096】
上記のような例では、サーバ装置11から配信されるデータ種A、Bのデータは、中継装置32で受け取られた後、クライアント装置21−1、21−2、21−3のいずれにもプッシュ配信される。一方、データ種Cのデータは、クライアント装置21−1がプッシュ配信を希望しないデータであるため、クライアント装置21−1にはプッシュ配信されず、クライアント装置21−2および21−3にはプッシュ配信される。
【0097】
<動作>
第2の実施形態に係る中継装置32の具体的な動作の例を、
図6のフローチャートを用いて説明する。
【0098】
まず、中継装置32の受信部301は、配信データをサーバ装置11の送信部102から受け取る(ステップS61)。
【0099】
調整部302は、受け取ったデータのプッシュ配信を希望するクライアント装置21を特定部306に問い合わせる。
【0100】
特定部306は、受け取ったデータのプッシュ配信を希望するクライアント装置21を特定する(ステップS62)。
【0101】
調整部302は、受け取ったデータと、特定部306によって特定されたクライアント装置21の識別子とを、送信部303に出力する。
【0102】
送信部303は、プッシュ配信を希望するクライアント装置21に、調整部302から受け取ったデータを送信(プッシュ配信)する(ステップS63)。言い換えれば、送信部303は、プッシュ配信を希望しないクライアント装置21以外のクライアント装置21には、調整部302から受け取ったデータを送信しない。
【0103】
以上のように、中継装置32は、各クライアント装置21に対して、配信データのうちクライアント装置21が希望する配信データのみをプッシュ配信する。
【0104】
たとえば
図5で示される例では、クライアント装置21−1には、データ種Cのデータがプッシュ配信されない。しかし、クライアント装置21−1にとってデータ種Cのデータが必要になった時は、クライアント装置21−1は、要求対応部305に対して、第1の実施形態で説明される再送要求を送信すればよい。それにより、クライアント装置21−1は、データ種Cのデータを取得することができる。
【0105】
<効果>
第2の実施形態に係るデータ通信システム2によれば、クライアント装置21の利用者がプッシュ配信を希望しないデータの通信を省き、通信の無駄を低減することができる。そして、第1の実施形態に係るデータ通信システム1と同様の構成により、プッシュ配信を希望しないデータが何らかの処理に必要なデータであっても、クライアント装置21は、再送要求によってそのデータを取得することができる。クライアント装置21は、たとえば受信開始時のみにそのデータが必要であれば、受信開始時に要求対応部305に対して再送要求を行えばよい。
【0106】
本実施形態のデータ通信システム2は、プッシュ配信が望まれない、必要になる場合があるデータの通信量を削減することができるという効果を有する。その理由は、データを必要な時にだけ取得することができるので、そのデータを常にプッシュ配信する必要がないからである。
【0107】
<<主要構成>>
本発明の主要な構成を備える中継装置30を、
図7を参照して説明する。
【0108】
中継装置30は、データを配信するサーバ装置と、データを処理するクライアント装置とに通信可能に接続される。
【0109】
中継装置30は、送信部303と、記憶制御部304と、要求対応部305とを備える。
【0110】
送信部303は、サーバ装置から配信された少なくとも1種類の配信データを受け取り、受け取った配信データをクライアント装置に配信する。送信部303は、たとえば、サーバ装置から配信データを受け取り次第、受け取った配信データをクライアント装置にプッシュ配信する。
【0111】
記憶制御部304は、受け取った配信データのうち、配信データの種類ごとに最新の配信データを、記憶部(不図示)に記憶させる制御を行う。たとえば、記憶制御部304は、最新の配信データを、記憶部の記憶領域に格納する。記憶部は中継装置30の内部の構成であってもよいし、中継装置30の内部にない記憶装置または記録媒体であってもよい。記憶制御部304自体がデータを記憶する記憶部として機能していてもよい。
【0112】
最新のデータとは、最後に配信されたデータと同一のデータを指す。たとえば、記憶制御部304が、同種のデータを上書きする構成であり、受け取ったデータを記憶部に記憶させる際に、受け取ったデータと既に記憶されたデータとが同一であった場合には上書きしないという構成であったとしても、その上書きされなかったデータは最新であるといえる。
【0113】
要求対応部305は、クライアント装置からの再送要求に従って、記憶部において記憶されている、クライアント装置が要求する種類の最新の配信データをクライアント装置に送信する処理を行う。
【0114】
なお、クライアント装置の一例は、
図8に示されるクライアント装置20である。クライアント装置20は、中継装置30に対し、配信データの再送要求を送信する要求送信部203と、再送要求によって送信された配信データを用いて処理を行う処理部202と、を備える。
【0115】
図9は、中継装置30の各部の動作の流れを示すフローチャートである。送信部303は、サーバ装置から配信された少なくとも1種類の配信データを受け取り、受け取った配信データをクライアント装置に配信する(ステップS91)。記憶制御部304は、受け取った配信データのうち、配信データの種類ごとに最新の配信データを記憶部に記憶させる(ステップS92)。ただし、ステップS91とステップS92の順序は同時に行われても、逆順に行われてもよい。その後要求対応部305がクライアント装置から再送要求を受けると、要求対応部305は、その再送要求に従って、記億部において記憶されている、クライアント装置が要求する種類の最新の配信データをクライアント装置に送信する処理を行う(ステップS93)。
【0116】
サーバ装置がデータを非連続的に(たとえばある間隔をおいて)配信する場合、上記構成によれば、クライアント装置が最新のデータを取得していない場合における不都合(たとえば、最新のデータに基づく出力内容を表示できない等)を解消する。特に、サーバ装置が配信データを配信する間隔が、人間がブランクや遅れとして知覚可能な間隔(たとえばクライアント装置によるデータの処理において通常かかると考えられる時間の範囲を超える時間。数秒など)であれば、中継装置30は特に有利な効果を奏する。なぜなら、中継装置30によれば、この間隔によって配信データの受信および処理が遅れることによってユーザの苛立ちや不安感が誘発されるのを防ぐことができるからである。
【0117】
クライアント装置は、最新の配信データと、最新でない配信データとの両方を用いる処理を行う装置であってもよい。また、クライアント装置は、最新の配信データおよび最新でない配信データのそれぞれに対する処理結果を同時に表示する装置であってもよい。そして、記憶制御部304は、少なくとも所定の数の、最新でないデータ(いわゆる、データのログ、履歴)を記憶部に記憶させてもよい。そうすることで、クライアント装置は、サーバ装置が過去に配信した(その時点においてリアルタイムでは配信されていない)データをも取得できる。すなわち、クライアント装置は、リアルタイムでの配信によって取得されなかったデータをも用いて、処理を行ったり、表示を行なったりすることができる。
【0118】
以上のように、本構成によれば、データがリアルタイムに配信されるストリーミング配信において、クライアント装置が配信済みのデータを受信していない場合における不都合が解消される。
【0119】
なお、既に説明したように、リアルタイムストリーミング配信においてデータを記憶するバッファを有するストリーミング配信装置が、たとえば特許文献2に開示されている。しかしながら、特許文献2は、映像・音声を含むデータのみを想定しており、サーバ装置が連続的にデータを送信することが前提である。すると、仮に、特許文献2における「主信号パケット」の1つ1つが、本願で説明される「配信データ」に相当するとみなすとすると、その場合は、再送要求に従って送られるパケットは「最新の配信データ」ではない。再送要求がされるのはパケットロスによって届かなかったパケットであり、そのパケットのプッシュ配信よりも後に、次々と新しいパケットが、プッシュ配信され、バッファに記憶されているはずだからである。
【0120】
(ハードウェアの構成について)
以上、説明した本発明の各実施形態において、各装置の各構成要素は、機能単位のブロックを示している。各装置の各構成要素の一部または全部は、例えば
図10に示すようなコンピュータ1000とプログラムとの可能な組み合わせにより実現される。コンピュータ1000は、一例として、以下のような構成を含む。
【0121】
・CPU(Central Processing Unit)1001
・ROM(Read Only Memory)1002
・RAM(Random Access Memory)1003
・RAM1003にロードされるプログラム1004Aおよび記憶情報1004B
・プログラム1004Aおよび記憶情報1004Bを格納する記憶装置1005
・記録媒体1006の読み書きを行うドライブ装置1007
・通信ネットワーク1009と接続する通信インタフェース1008
・データの入出力を行う入出力インタフェース1010
・各構成要素を接続するバス1011
各実施形態における各装置の各構成要素は、これらの機能を実現するプログラム1004AをCPU1001がRAM1003にロードして実行することで実現される。各装置の各構成要素の機能を実現するプログラム1004Aは、例えば、予め記憶装置1005やROM1002に格納されており、必要に応じてCPU1001が読み出す。なお、プログラム1004Aは、通信ネットワーク1009を介してCPU1001に供給されてもよいし、予め記録媒体1006に格納されており、ドライブ装置1007が当該プログラムを読み出してCPU1001に供給してもよい。
【0122】
各装置の実現方法には、様々な変形例がある。例えば、各装置は、構成要素毎にそれぞれ別個のコンピュータ1000とプログラムとの可能な組み合わせにより実現されてもよい。また、各装置が備える複数の構成要素が、一つのコンピュータ1000とプログラムとの可能な組み合わせにより実現されてもよい。
【0123】
また、各装置の各構成要素の一部または全部は、その他の汎用または専用の回路、コンピュータ等やこれらの組み合わせによって実現される。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。
【0124】
各装置の各構成要素の一部または全部が複数のコンピュータや回路等により実現される場合には、複数のコンピュータや回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、コンピュータや回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【0125】
本願発明は以上に説明した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0126】
上記実施形態の一部または全部は以下の付記のようにも記載され得るが、以下には限られない。
【0127】
<<付記>>
[付記1]
サーバ装置から受け取った少なくとも1種類の配信データをクライアント装置に配信する送信手段と、
前記配信データのうち、前記配信データの種類ごとに最新の前記配信データを記憶手段に記億させる記憶制御手段と、
前記クライアント装置からの再送要求に従って、前記記憶手段において記憶されている、前記再送要求により要求される種類の前記最新の配信データを前記クライアント装置に送信する処理を行う要求対応手段と、
を備える中継装置。
[付記2]
前記サーバ装置は、少なくとも1種類の前記配信データの配信を、非連続的に行うことを特徴とする、
付記1に記載の中継装置。
[付記3]
前記クライアント装置と、当該クライアント装置が配信を希望する前記配信データの種類と、を関連づける配信対象情報に基づいて、前記配信データごとに、前記送信手段が当該配信データを配信する対象となる前記クライアント装置を特定する特定手段をさらに備え、
前記送信手段は、特定された前記クライアント装置に当該配信データを送信し、特定された前記クライアント装置でない前記クライアント装置には当該配信データを送信しない、
付記1または2に記載の中継装置。
[付記4]
前記記憶制御手段は、前記配信データの種類ごとに、前記最新の配信データを前記記憶手段に記憶させる際に最新でない前記配信データを当該最新の配信データで上書きする、
付記1から3のいずれか一項に記載の中継装置。
[付記5]
前記記憶制御手段は、前記最新の配信データに加え、少なくとも所定の数の最新でない前記配信データを前記記憶手段に記憶させ、
前記要求対応手段は、前記再送要求に従って、前記最新の配信データと前記最新でない配信データとを前記クライアント装置に送信する処理を行い、
前記クライアント装置は、少なくとも、前記再送要求に従って送信された前記最新の配信データと前記最新でない配信データとの両方を用いて、処理を行い、または、前記両方に対する処理結果を同時に出力する、
付記1から3のいずれか一項に記載の中継装置。
[付記6]
付記1に記載の中継装置に対し、過去に配信された前記最新の配信データの再送要求を送信する要求送信手段と、
前記再送要求によって送信された前記最新の配信データを用いて処理を行う処理手段と、
を備えるクライアント装置。
[付記7]
付記3に記載の中継装置に対し、前記配信データのうち配信されることを希望するデータの種類、および/または配信されることを希望しないデータの種類を表す、配信希望情報を送信する送信手段を備え、
前記配信対象情報は、前記配信希望情報に基づいて生成される、
クライアント装置。
[付記8]
付記1から5のいずれか一項に記載の中継装置と、
前記サーバ装置と、
前記クライアント装置と、
を含むデータ通信システム。
[付記9]
サーバ装置から受け取った少なくとも1種類の配信データをクライアント装置に配信し、
前記配信データのうち、前記配信データの種類ごとに最新の前記配信データを記憶手段に記憶させ、
前記クライアント装置からの再送要求に従って、前記記憶手段において記憶されている、前記再送要求により要求される種類の前記最新の配信データを前記クライアント装置に送信する処理を行う、
中継方法。
[付記10]
前記サーバ装置は、少なくとも1種類の前記配信データの配信を、非連続的に行うことを特徴とする、
付記9に記載の中継方法。
[付記11]
前記クライアント装置と、当該クライアント装置が配信を希望する前記配信データの種類と、を関連づける配信対象情報に基づいて、前記配信データごとに、当該配信データを配信する対象となる前記クライアント装置を特定し、
特定された前記クライアント装置に当該配信データを送信し、特定された前記クライアント装置でない前記クライアント装置には当該配信データを送信しない、
付記9または10に記載の中継方法。
[付記12]
前記配信データの種類ごとに、前記最新の配信データを前記記憶手段に記憶させる際に最新でない前記配信データを当該最新の配信データで上書きする、
付記9から11のいずれか一項に記載の中継方法。
[付記13]
前記最新の配信データに加え、少なくとも所定の数の最新でない前記配信データを前記記憶手段に記憶させ、
前記再送要求に従って、前記最新の配信データと前記最新でない配信データとを前記クライアント装置に送信する処理を行い、
前記クライアント装置は、少なくとも、前記再送要求に従って送信された前記最新の配信データと前記最新でない配信データとの両方を用いて、処理を行い、または、前記両方に対する処理結果を同時に出力する、
付記9から12のいずれか一項に記載の中継方法。
[付記14]
付記1に記載の中継装置に対し、過去に配信された前記最新の配信データの再送要求を送信し、
前記再送要求によって送信された前記最新の配信データを用いて処理を行う、
データ処理方法。
[付記15]
付記3に記載の中継装置に対し、前記配信データのうち配信されることを希望するデータの種類、および/または配信されることを希望しないデータの種類を表す、配信希望情報を送信し、
前記配信対象情報は、前記配信希望情報に基づいて生成される、
データ処理方法。
[付記16]
コンピュータに、
サーバ装置から受け取った少なくとも1種類の配信データをクライアント装置に配信する送信処理と、
前記配信データのうち、前記配信データの種類ごとに最新の前記配信データを記憶手段に記憶させる記憶制御処理と、
前記クライアント装置からの再送要求に従って、前記記憶手段において記憶されている、前記再送要求により要求される種類の前記最新の配信データを前記クライアント装置に送信する処理を行う要求対応処理と、
を実行させるプログラム。
[付記17]
前記サーバ装置は、少なくとも1種類の前記配信データの配信を、非連続的に行うことを特徴とする、
付記16に記載のプログラム。
[付記18]
コンピュータに、前記クライアント装置と、当該クライアント装置が配信を希望する前記配信データの種類と、を関連づける配信対象情報に基づいて、前記配信データごとに、前記送信処理が当該配信データを配信する対象となる前記クライアント装置を特定する特定処理を実行させ、
前記送信処理は、特定された前記クライアント装置に当該配信データを送信し、特定された前記クライアント装置でない前記クライアント装置には当該配信データを送信しない、
付記16または17に記載のプログラム。
[付記19]
前記記憶制御処理は、前記配信データの種類ごとに、前記最新の配信データを前記記憶手段に記憶させる際に最新でない前記配信データを当該最新の配信データで上書きする、
付記16から18のいずれか一項に記載のプログラム。
[付記20]
前記記憶制御処理は、前記最新の配信データに加え、少なくとも所定の数の最新でない前記配信データを前記記憶手段に記憶させ、
前記要求対応処理は、前記再送要求に従って、前記最新の配信データと前記最新でない配信データとを前記クライアント装置に送信する処理を行い、
前記クライアント装置は、少なくとも、前記再送要求に従って送信された前記最新の配信データと前記最新でない配信データとの両方を用いて、処理を行い、または、前記両方に対する処理結果を同時に出力する、
付記16から18のいずれか一項に記載のプログラム。
[付記21]
コンピュータに、
付記1に記載の中継装置に対し、過去に配信された前記最新の配信データの再送要求を送信する要求送信処理と、
前記再送要求によって送信された前記最新の配信データを用いた処理と、
を実行させるプログラム。
[付記22]
コンピュータに、
付記3に記載の中継装置に対し、前記配信データのうち配信されることを希望するデータの種類、および/または配信されることを希望しないデータの種類を表す、配信希望情報を送信する送信処理を実行させ、
前記配信対象情報は、前記配信希望情報に基づいて生成される、
プログラム。