(57)【要約】【課題】優先度が与えられたデータを転送する際に、最優先のデータの並列性を保ちつつ適正に優先制御を行う技術を提案する。【解決手段】データ転送装置（10）は、複数の通信回線（30A,30B）のそれぞれと対に設けられた第１の記憶領域（13a,13b）および該第１の記憶領域と別個に設けられた第２の記憶領域（12）を有するバッファメモリと、送信すべきデータの種別およびその優先度を認識し最も優先度が高い種別のデータを第１の記憶領域へ格納し且つ他の種別のデータを第２の記憶領域へ格納する手段（11）と、第１の記憶領域のデータを複数の通信回線へ送信する手段（15a,15b）と、第２の記憶領域のデータを複数の通信回線へ送信し且つ該送信を第１の記憶領域にデータがあるとき所定期間停止する手段（14_1,14_2）とを備える。【選択図】図１
2007288740.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信回線のそれぞれと対に設けられた第１の記憶領域および該第１の記憶領域と別個に設けられた第２の記憶領域を有するバッファメモリと、
送信すべきデータの種別およびその優先度を認識し最も優先度が高い種別のデータを前記第１の記憶領域へ格納し且つ他の種別のデータを前記第２の記憶領域へ格納する手段と、
前記第１の記憶領域のデータを前記複数の通信回線へ送信する手段と、
前記第２の記憶領域のデータを前記複数の通信回線へ送信し且つ該送信を前記第１の記憶領域にデータがあるとき所定期間停止する手段とを備えることを特徴とするデータ転送装置。
【請求項２】
前記第１の記憶領域にデータを格納したとき該格納の旨を示すフラグ情報を記録することを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記第１および第２の両記憶領域のデータに関し予め設定された送信比率ａ：ｂに基づき、前記第２の記憶領域のデータの停止期間を単位時間の（ａ−ｂ）倍として認識することを特徴とする請求項１又は２記載のデータ転送装置。
【請求項４】
前記複数の通信回線からのデータを優先度ごとに受信する手段を有することを特徴とする請求項１乃至３のいずれか１項に記載のデータ転送装置。
【請求項５】
コンピュータを請求項１乃至４のいずれか１項に記載のデータ転送装置として機能させることを特徴とするプログラム。
【請求項６】
複数の通信回線のそれぞれと対に設けられた第１の記憶領域および該第１の記憶領域と別個に設けられた第２の記憶領域を有するバッファメモリを備えるデータ転送装置が、
送信すべきデータの種別およびその優先度を認識し最も優先度が高い種別のデータを前記第１の記憶領域へ格納し且つ他の種別のデータを前記第２の記憶領域へ格納するステップと、
前記第１の記憶領域のデータを前記複数の通信回線へ送信するステップと、
前記第２の記憶領域のデータを前記複数の通信回線へ送信し且つ該送信を前記第１の記憶領域にデータがあるとき所定期間停止するステップとを実行することを特徴とする優先制御方法。
【請求項７】
前記データ転送装置が、前記バッファメモリへデータを格納する前記ステップにおいて、
前記第１の記憶領域にデータを格納したとき該格納の旨を示すフラグ情報を記録することを特徴とする請求項６記載の優先制御方法。
【請求項８】
前記データ転送装置が、さらに、
前記第１および第２の両記憶領域のデータに関し予め設定された送信比率ａ：ｂに基づき、前記第２の記憶領域のデータの停止期間を単位時間の（ａ−ｂ）倍として認識するステップを実行することを特徴とする請求項６又は７記載の優先制御方法。
【請求項９】
前記データ転送装置が、さらに、
前記複数の通信回線からのデータを優先度ごとに受信するステップを実行することを特徴とする請求項６乃至８のいずれか１項に記載の優先制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続されたサーバ装置間にてデータを転送する技術に関し、特に、優先度が与えられたデータを複数の通信回線を利用して転送する技術に関する。
【背景技術】
【０００２】
従来、サーバ間にて高速にデータ通信するための技術として、いわゆるリンクアグリゲーション（Link Aggregation）あるいは負荷分散と呼ばれる技術が存在する。図７に、リンクアグリゲーションの概念を示す。リンクアグリゲーションが導入されたサーバ1は、複数の回線4a／4b／4cに対する送信処理を担う複数のデータ送信部3a／3b／3cを備え、各データ送信部（3a〜3c）が、データ送信バッファ2に格納された転送データを読み出し、それぞれに対応する回線（4a〜4c）へ送信するというものである。
【０００３】
上記のリンクアグリゲーションを利用した技術は、例えば、後述の特許文献１に記載されている。同文献には、複数の回線に接続された遠隔装置が、回線に送信したデータのデータ長に基づいて各回線へのデータの振り分けを制御するという技術が提案されている。
【０００４】
また、サーバ間のデータ通信では、データ種別に関連付けられた優先度に従いデータを転送するという優先制御を行うことがある。図８に、従来の優先制御の概念を示す。優先制御を行うサーバ5は、高優先データ送信バッファ6および低優先データ送信バッファ7を備え、データ送信部8が、両バッファ（6/7）に格納されたデータの送信頻度に差を与えるよう転送を制御する。
【０００５】
このような優先度が与えられたデータを取り扱う技術として、例えば、後述の特許文献２に記載のものがある。同文献には、優先度毎に異なるデータ送信バッファを割り当て、ひとつのデータ送信部が、データを取り出すデータ送信バッファを優先度に応じて選択するという技術が提案されている。
【特許文献１】特開平１１−１５４９８９号公報
【特許文献２】特許第３７１９１６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、データ種別によっては、例えば転送のデータサイズが比較的小さい用途のように、転送に複数回線の帯域を必要としない場合がある。しかしながら、上記特許文献１に提案されているような従来の技術を用いると、このような場合であっても複数回線が利用されることから、通信帯域を無駄に占有するおそれがある。また、サイズの小さいデータを大量かつ高速に転送するような場合は、複数の回線を独立に使用して、転送の並列性を向上させることが望まれる。
【０００７】
ここで、図７に示す従来のサーバ構成に、図８の優先制御を適用した技術の概念を図９に示す。この場合、サーバ1´では、複数のデータ送信部3a／3b／3cのそれぞれが、高優先データ送信バッファ6および低優先データ送信バッファ7のデータを、送信頻度に差をつけて各回線（4a〜4c）へ送出する。
【０００８】
しかしながら、図９に示す手法にあっては、各優先度のバッファ（6/7）を複数のデータ送信部（3a/3b/3c）からアクセスするため、各優先度にてバッファの読み出し待ちが発生し、結果、データ送信の並列性が損なわれるという問題がある。
【０００９】
本発明は、上記課題に鑑みてなされたものであり、優先度が与えられたデータを転送する際に、最優先のデータの並列性を保ちつつ適正に優先制御を行う技術を提案することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係るデータ転送装置は、複数の通信回線のそれぞれと対に設けられた第１の記憶領域および該第１の記憶領域と別個に設けられた第２の記憶領域を有するバッファメモリと、送信すべきデータの種別およびその優先度を認識し最も優先度が高い種別のデータを前記第１の記憶領域へ格納し且つ他の種別のデータを前記第２の記憶領域へ格納する手段と、前記第１の記憶領域のデータを前記複数の通信回線へ送信する手段と、前記第２の記憶領域のデータを前記複数の通信回線へ送信し且つ該送信を前記第１の記憶領域にデータがあるとき所定期間停止する手段とを備える。
【発明の効果】
【００１１】
本発明によれば、最優先のデータを格納するバッファ領域が複数の通信回線と対に設けられていることから、最優先データの転送の際、それらを読み出すバッファに対する排他処理が不要となる。これにより、高優先データの並列性を損うことなく高速にデータを転送することができる。また、高優先データの送信時には低優先データの送信を一時的に停止させることから、複数の優先度で回線を共用しながらも、優先制御を適正に行うことができる。
【発明を実施するための最良の形態】
【００１２】
図１に、本発明の第１の実施形態の構成を示す。本実施形態のシステム101は、複数の回線30A及び回線30Bを介して通信可能に接続されたサーバ10及びサーバ20を備える。サーバ10及びサーバ20は、互いに同様な構成を持つデータ転送装置であるが、図面の簡素化のため、サーバ10にはデータ送信を担う構成要素のみが記載され、他方のサーバ20にはデータの受信を担う構成要素が記載されている。
【００１３】
かかるシステム101において、データ転送の優先度としては、「高優先」及び「低優先」の２つのレベルが設けられている。
【００１４】
サーバ10は、図１に示すように、低優先データを格納する低優先データ送信バッファ12と、低優先データ送信バッファ12のデータを回線30A及び回線30Bへ送信する低優先データ送信部14_1及び低優先データ送信部14_2と、回線30A／30Bと対になるように設けられた高優先データ送信バッファ13a及び高優先データ送信バッファ13bと、高優先データ送信バッファ13aのデータを回線30Aへ送信する高優先データ送信部15aと、高優先データ送信バッファ13bのデータを回線30Bへ送信する高優先データ送信部15bと、送信すべきデータをそのデータ種別に応じて各バッファ（12,13a/13b）へ振り分けるデータ振分部11とを備える。
【００１５】
各低優先データ送信部（14_1/14_2）及び各高優先データ送信部（15a/15b）は、回線30A及び回線30Bを通して、他方のサーバ20との間にコネクションを確立しデータを転送する。
【００１６】
また、サーバ10は、高優先データ及び低優先データの送信割合に関し予め設定された送信割合情報16と、送信すべき高優先データがバッファ（13a/13b）に格納されたか否かを表す高優先データ送信フラグ17とを記憶する。
【００１７】
転送先のサーバ20は、回線30A及び回線30Bから低優先データを受信する低優先データ受信部21_1及び低優先データ受信部21_2と、回線30Aから高優先データを受信する高優先データ受信部22aと、回線30Bから高優先データを受信する高優先データ受信部22bとを備える。
【００１８】
図２、図３及び図４に示すフローチャートを参照して、本実施形態の動作について説明する。サーバ10がサーバ20へデータを転送するとき、データ振分部11が、送信すべきデータの種別を認識し（図２：ステップS1）、その種別に対応する優先度を判別する（ステップS2）。各データ種別に対する優先度は予め各サーバに登録しておく。
【００１９】
その結果、データ種別が「低優先」に対応する場合、データ振分部11は、対象のデータを低優先データ送信バッファ12へ格納する（ステップS3）。一方、データ種別が「高優先」である場合は、対象のデータを高優先データ送信バッファ13a及び高優先データ送信バッファ13bへ交互に格納し（ステップS4）、さらに、高優先データ送信フラグ17を有効に設定する（ステップS5）。
【００２０】
各高優先データ送信部（15a/15b）は、高優先データ送信バッファ（13a/13b）にデータが格納されたか否かを確認する（図３：ステップS11）。その結果、データが格納されている場合は読み出しを行い（ステップS12）、それぞれに対応する回線（30A/30B）へ並列的に送信する（ステップS13）。送信されたデータは、転送先となるサーバ20の各高優先データ受信部（22a/22b）により受け取られる。
【００２１】
また、一連の高優先データの送信が完了し、新たに送信すべきデータがバッファ（13a/13b）に存在しない場合は、高優先データ送信フラグ17を無効に設定する（ステップS14）。
【００２２】
各低優先データ送信部（14_1/14_2）は、送信処理を開始する前に、送信割合情報16を参照し（図４：ステップS21）、適用すべき動作時間及び停止時間を計算する（ステップS22）。ここで算出する停止時間とは、高優先データの送信を優先させるために、各低優先データ送信部（14_1/14_2）がデータの読み出し及び送信を意図的に停止させる期間を指す。なお、送信割合情報16は、あらかじめ指定された固定的な値を用いてもよいし、使用目的に応じて適宜変更してもよい。
【００２３】
いま、高優先データ及び低優先データの送信割合が「n：m」（n＞m）に設定されているとすると、各低優先データ送信部（14_1/14_2）の動作時間および停止時間は、次の式により求めることができる。
【００２４】
動作時間：（m）×単位時間
停止時間：（n-m）×単位時間
【００２５】
上記計算により動作時間及び停止時間を求めた後、各低優先データ送信部（14_1/14_2）は、１つのバッファ（12）に対する他方の低優先データ送信部との排他処理を経て（ステップS23）、低優先データ送信バッファ12にデータが格納されているか否かを確認する（ステップS24）。その結果、バッファにデータが格納されていれば、それを読み出し（ステップS25）、回線（30A/30B）へ並列的に送信する（ステップS26）。送信されたデータは、転送先となるサーバ20の各低優先データ受信部（21_1/21_2）により受け取られる。
【００２６】
また、各低優先データ送信部（14_1/14_2）は、現時点で高優先データ送信フラグ17が有効に設定されているか否かを確認する。フラグが有効でない場合は（ステップS27：No）、データの読み出し及び送信動作を継続する。
【００２７】
一方、フラグが有効に設定されている、すなわち高優先データがバッファ（13a/13b）に格納されている場合、各低優先データ送信部（14_1/14_2）は、予め算出した停止時間の分、処理を一時停止する（ステップS28）。そして、停止時間が満了したとき（ステップS29：Yes）、処理を再開する（ステップS23）。
【００２８】
以上説明したように、本実施形態によれば、各高優先データ送信バッファ（13a/13b）が複数の回線（30A/30B）と１対１に割り当てられていることから、高優先データの転送の際に、バッファに対する排他処理が不要となる。これにより、高優先データを並列性を損うことなく高速に転送することができる。また、高優先データの送信時には低優先データの送信を一時的に停止させることから、複数の優先度で回線を共用しながらも、優先制御を適正に行うことができる。
【００２９】
図５に、本発明の第２の実施形態の構成を示す。前述の実施形態は、優先度が「高優先」及び「低優先」の二段階であったのに対し、本実施形態は、優先度が高いものから順に「優先度３」、「優先度２」及び「優先度１」の三段階としたものである。図５に示すサーバ40及びサーバ50は互いに同様な構成を持つが、ここでは説明のため、サーバ40には送信処理を担う構成要素のみを記載し、他方のサーバ50には受信処理の要素が記載されている。
【００３０】
サーバ40は、図５に示すように、優先度１のデータを格納する優先度１データ送信バッファ42と、優先度２のデータを格納する優先度２データ送信バッファ43と、最上位の優先度３のデータを格納する優先度３データ送信バッファ44a及び優先度３データ送信バッファ44bとを備える。
【００３１】
また、優先度１データ送信バッファ42のデータを回線60A及び回線60Bへ送信する優先度１データ送信部45_1／45_2と、優先度２データ送信バッファ43のデータを回線60A及び回線60Bへ送信する優先度２データ送信部46_1／46_2と、優先度３データ送信バッファ44aのデータを回線60Aへ送信する優先度３データ送信部47aと、優先度３データ送信バッファ44bのデータを回線60Bへ送信する優先度３データ送信部47bと、送信すべきデータをそのデータ種別に応じて各バッファ（42,43,44a/44b）へ振り分けるデータ振分部41とを備える。
【００３２】
サーバ50は、各優先度に対応した受信手段を備える。すなわち、優先度１データ受信部51_1／51_2と、優先度２データ受信部52_1／52_2と、優先度３データ受信部53a／53bとである。
【００３３】
次に、本実施形態の動作について説明する。サーバ40がサーバ50へデータを転送するとき、データ振分部41が、送信すべきデータの種別を認識し（図６：ステップS31）、その種別に対応する優先度を判別する（ステップS32）。前述の実施形態と同様に、各データ種別に対する優先度は予め登録しておく。
【００３４】
判別の結果、データ種別が「優先度１」に対応する場合、データ振分部41は、対象のデータを優先度１データ送信バッファ42へ格納する（ステップS33）。また、データ種別が「優先度２」に対応する場合は、対象のデータを優先度２データ送信バッファ43へ格納する（ステップS34）。
【００３５】
さらにまた、データ種別が最上位の「優先度３」に対応する場合、データ振分部41は、対象のデータを優先度３データ送信バッファ44a及び優先度３データ送信バッファ44bへ交互に格納する（ステップS35）。そして、優先度３データ送信フラグ49を有効に設定する（ステップS36）。
【００３６】
各優先度３データ送信部47a／47bがそれぞれに対応するバッファ（44a/44b）のデータを読み出して回線60A又は回線60Bへ送信する手順は、図３に示す前述の高優先データ送信部15a／15bの手順に準じたものであり、説明を省略する。
【００３７】
また、各優先度１データ送信部45_1／45_2が優先度１データ送信バッファ42のデータを読み出して回線60A及び回線60Bへ送信する手順、及び、各優先度２データ送信部46_1／46_2が優先度２データ送信バッファ43のデータを読み出して回線60A及び回線60Bへ送信する手順は、図４に示す前述の低優先データ送信部14_1／14_2に準じたものであり、説明を省略する。ただし、動作時間及び停止時間の算出（図４：ステップS22）については、前述の実施形態とは異なるため以下に説明する。
【００３８】
いま、「優先度３」、「優先度２」及び「優先度１」の送信割合が「n：m：l」（n＞m＞l）に設定されているとする。このとき、最優先の「優先度３」以外のデータを扱うデータ送信部の動作時間および停止時間は、次の式により求めることができる。
【００３９】
優先度２データ送信部（46_1/46_2）の動作時間：（m）×単位時間
優先度２データ送信部（46_1/46_2）の停止時間：（n-m）×単位時間
優先度１データ送信部（45_1/45_2）の動作時間：（l）×単位時間
優先度１データ送信部（45_1/45_2）の停止時間：（n-l）×単位時間
【００４０】
以上説明した各実施形態は、優先度が二段階あるいは三段階のものであったが、本発明は、優先度が三段階を超える形態にも適用可能である。いずれの場合も、最上位を除く各優先度のデータ送信の停止時間は、最上位の優先度と当該優先度との送信割合「a：b」に基づき「（a-b）×単位時間」として算出すればよい。優先度の段階数を増加させるほど、よりきめ細かい優先制御が可能となる。
【図面の簡単な説明】
【００４１】
【図１】本発明の第１の実施形態のシステム構成を示すブロック図である。
【図２】第１の実施形態におけるデータ振分部のフローチャートである。
【図３】第１の実施形態における高優先データ送信部のフローチャートである。
【図４】第１の実施形態における低優先データ送信部のフローチャートである。
【図５】本発明の第２の実施形態のシステム構成を示すブロック図である。
【図６】第２の実施形態におけるデータ振分部のフローチャートである。
【図７】従来のリンクアグリゲーション技術の概念に関する説明図である。
【図８】従来の優先制御技術の概念に関する説明図である。
【図９】従来のリンクアグリゲーション技術に従来の優先制御技術を適用した場合の説明図である。
【符号の説明】
【００４２】
１０１  システム
１０、２０  サーバ
１１  データ振分部
１２  低優先データ送信バッファ
１３ａ、１３ｂ  高優先データ送信バッファ
１４_１、１４_２  低優先データ送信部
１５ａ、１５ｂ  高優先データ送信部
１６  送信割合情報
１７  高優先データ送信フラグ
２１_１、２１_２  低優先データ受信部
２２ａ、２２ｂ  高優先データ受信部
３０Ａ、３０Ｂ  回線
【図１】
2007288740.tif 000003
【図２】
2007288740.tif 000004
【図３】
2007288740.tif 000005
【図４】
2007288740.tif 000006
【図５】
2007288740.tif 000007
【図６】
2007288740.tif 000008
【図７】
2007288740.tif 000009
【図８】
2007288740.tif 000010
【図９】
2007288740.tif 000011