JP6244998B2 - 情報通信方法及び情報処理装置 - Google Patents

情報通信方法及び情報処理装置 Download PDF

Info

Publication number
JP6244998B2
JP6244998B2 JP2014048196A JP2014048196A JP6244998B2 JP 6244998 B2 JP6244998 B2 JP 6244998B2 JP 2014048196 A JP2014048196 A JP 2014048196A JP 2014048196 A JP2014048196 A JP 2014048196A JP 6244998 B2 JP6244998 B2 JP 6244998B2
Authority
JP
Japan
Prior art keywords
time slot
data
transmission
information processing
processing apparatus
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.)
Expired - Fee Related
Application number
JP2014048196A
Other languages
English (en)
Other versions
JP2015173361A (ja
Inventor
宏一郎 雨宮
宏一郎 雨宮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014048196A priority Critical patent/JP6244998B2/ja
Priority to US14/632,309 priority patent/US10292181B2/en
Publication of JP2015173361A publication Critical patent/JP2015173361A/ja
Application granted granted Critical
Publication of JP6244998B2 publication Critical patent/JP6244998B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W74/00Wireless channel access
    • H04W74/04Scheduled access

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、ノード間におけるデータ送信のスケジューリング技術に関する。
データを生成する様々なデバイスが分散配備されるようになっている。例えば、スマートフォンは、GPS(Global Positioning System)のログデータ、写真、動画などを生成し、センサデバイスは監視データを生成する。このようなデータは、複数のノードを含むネットワークを介して集められ、エンドユーザが用いるアプリケーションや、監視に基づく制御に利用される。
このようなシステムの具体例としては、災害警報システムがある。このシステムでは、河川の水位センサや加速度センサなどからの測定データを常時収集しておき、測定データの値が閾値を超えた際に警報を発する。このようなシステムでは、測定データの値が閾値を超えたという危険な状況を速やかに認識して住民に伝えることが求められる。
また、ある文献には、行動ターゲッティング広告システムのような、利用者の属性や状況に応じた適切な広告を配信するシステムが開示されている。これは、人の好み(例えば購買履歴)や場所の気温などによって、お勧めの広告を表示するシステムである。例えば、表示装置を有する自動販売機で、購入者の好み及び気温などに応じた広告コンテンツを表示させようとすると、ユーザの識別子を取得してから、短時間で広告コンテンツをコンテンツ配信サーバから自動販売機に配信して表示させることになる。そのため、自動販売機への到着期限とデータ送信にかかる時間等から送信時刻を算出して、その送信時刻に従ってデータ送信を行う。但し、多量のデータについて送信時刻が重なると、輻輳が発生してしまう。
また、他のある文献には、主装置と複数の従装置との間で伝送路を介して通信を行う通信システムが開示されている。そして、従装置は、送信予定の情報信号の情報量を伝送路を介して主装置に送信し、主装置は、従装置から受信した情報量に基づき、従装置が送信できる情報量を算出し、従装置に送信する。これに対して従装置は、主装置から、従装置が送信できる情報量を受信すると、その情報量の情報信号を主装置に送信する。
このような通信システムにおける主装置は、単に情報量だけで判断するので、従装置が送信する予定の情報の内容については個別に判断できない。よって、主装置への送信が遅れてしまう場合がある。
特開2011−61869号公報 特開2000−270010号公報 特開2013−254311号公報
従って、本発明の目的は、一側面によれば、データ送信の遅延を抑制するための技術を提供することである。
本発明の一側面に係る情報通信方法は、(A)第1の情報処理装置は、1又は複数のデータブロックについての第1の送信スケジュールを、1又は複数のデータブロックの送信先である第2の情報処理装置に送信し、(B)第2の情報処理装置は、第1の送信スケジュールを第1の情報処理装置から受信し、(C)第2の情報処理装置は、受信した第1の送信スケジュールと、第2の情報処理装置の受信リソースとに基づき、受信した第1の送信スケジュールに含まれる1又は複数のデータブロックの少なくとも一部のデータブロックについて第2の送信スケジュールを決定し、(D)第2の情報処理装置は、第2の送信スケジュールを、第1の情報処理装置に送信し、(E)第1の情報処理装置は、第2の情報処理装置から第2の送信スケジュールを受信し、(F)第1の情報処理装置は、受信した第2の送信スケジュールに基づき、当該第2の送信スケジュールで規定されているデータブロックを、第2の情報処理装置に送信する処理を含む。
本発明の一側面に係る情報処理装置は、(G)1又は複数のデータブロックについての第1の送信スケジュールを、1又は複数のデータブロックの送信先であって第1の送信スケジュールに含まれる1又は複数のデータブロックの少なくとも一部のデータブロックについて受信リソースに基づき第2の送信スケジュールを生成する第2の情報処理装置に送信する第1の送信部と、(H)第2の情報処理装置から第2の送信スケジュールを受信する受信部と、(I)受信した第2の送信スケジュールに基づき、当該第2の送信スケジュールで規定されているデータブロックを、第2の情報処理装置に送信する第2の送信部とを有する。
本発明の一側面に係る第1の情報処理装置は、(J)1又は複数のデータブロックについての第1の送信スケジュールを、1又は複数のデータブロックの送信元である第2の情報処理装置から受信する受信部と、(K)受信した第1の送信スケジュールと、第の情報処理装置の受信リソースとに基づき、受信した第1の送信スケジュールに含まれる1又は複数のデータブロックの少なくとも一部のデータブロックについて第2の送信スケジュールを決定する決定部と、(L)第2の送信スケジュールを、第2の情報処理装置に送信する送信部とを有する。
一側面によれば、データ送信の遅延を抑制できるようになる。
図1は、第1の実施の形態に係るシステムの概要を示す図である。 図2は、第1の実施の形態等に係る変数を説明するための図である。 図3は、第1の実施の形態に係るタイムスロットを説明するための図である。 図4Aは、第1の実施の形態の処理概要を説明するための図である。 図4Bは、第1の実施の形態の処理概要を説明するための図である。 図4Cは、第1の実施の形態の処理概要を説明するための図である。 図4Dは、第1の実施の形態の処理概要を説明するための図である。 図5は、第1の実施の形態に係るノードの構成例を示す図である。 図6は、第1の実施の形態に係るノードが受信するメッセージのフォーマット例を示す図である。 図7は、第1の実施の形態に係るノードが受信するメッセージのフォーマット例を示す図である。 図8は、レイテンシデータ格納部に格納されるデータのフォーマット例を示す図である。 図9は、リンクデータ格納部に格納されるデータのフォーマット例を示す図である。 図10は、データ転送ルート格納部に格納されるデータのフォーマット例を示す図である。 図11Aは、データキューのデータ構造例を示す図である。 図11Bは、データキューのデータ構造例を示す図である。 図12は、リソース管理データ格納部に格納されるデータのフォーマット例を示す図である。 図13は、リソース管理データ格納部に格納されるデータのフォーマット例を示す図である。 図14は、スケジューリングデータ格納部に格納されるデータのフォーマット例を示す図である。 図15は、第1の実施の形態に係るデータ受信時における処理フローを示す図である。 図16は、スケジュールネゴシエータが実行する処理の処理フローを示す図である。 図17は、スケジューリング要求のデータフォーマット例を示す図である。 図18は、JSON形式におけるスケジューリング要求の例を示す図である。 図19は、スケジュールネゴシエータが実行する処理の処理フローを示す図である。 図20は、データ送信部が実行する処理の処理フローを示す図である。 図21は、第2スケジューラが実行する処理の処理フローを示す図である。 図22は、スケジューリング処理部の処理内容を説明するための図である。 図23は、第2スケジューラが実行する処理の処理フローを示す図である。 図24は、メッセージのソートを説明するための図である。 図25は、メッセージのソートを説明するための図である。 図26は、第2スケジューラが実行する処理の処理フローを示す図である。 図27は、第2スケジューラが実行する処理の処理フローを示す図である。 図28は、メッセージのソートを説明するための図である。 図29は、第2の実施の形態に係るリンクデータ格納部に格納されるデータのフォーマット例を示す図である。 図30は、第2の実施の形態に係るデータキューに格納されるデータのフォーマット例を示す図である。 図31は、第2の実施の形態に係るリソース管理データ格納部に格納されるデータのフォーマット例を示す図である。 図32は、第2の実施の形態に係るリソース管理データ格納部に格納されるデータのフォーマット例を示す図である。 図33は、第2の実施の形態に係るスケジューリング要求のデータフォーマット例を示す図である。 図34は、第2の実施の形態に係る(JSON形式)スケジューリング要求のデータフォーマット例を示す図である。 図35は、第2の実施の形態におけるレイテンシの計算を説明するための図である。 図36は、第2の実施の形態に係るデータ受信部により実行される処理の処理フローを示す図である。 図37は、第2の実施の形態に係る第2スケジューラの処理を説明するための図である。 図38は、第3の実施の形態に係るスケジューリング処理部等により実行される処理の処理フローを示す図である。 図39は、第3の実施の形態に係るスケジューリング処理部等により実行される処理の処理フローを示す図である。 図40は、第3の実施の形態に係るスケジューリング処理部の処理内容を示す図である。 図41は、第3の実施の形態に係るスケジューリング処理部等により実行される処理の処理フローを示す図である。 図42は、第3の実施の形態に係るスケジューリング処理部等により実行される処理の処理フローを示す図である。 図43は、第3の実施の形態に係るスケジューリング処理部の処理内容を示す図である。 図44は、第3の実施の形態に係るスケジューリング処理部等により実行される処理の処理フローを示す図である。 図45は、第3の実施の形態に係るスケジューリング処理部の処理内容を示す図である。 図46は、第3の実施の形態に係るスケジューリング処理部の処理内容を示す図である。 図47は、第4の実施の形態に係るノードの構成例を示す図である。 図48は、第4の実施の形態に係るリソースデータ格納部に格納されるデータのフォーマット例を示す図である。 図49は、第4の実施の形態に係る第1スケジューラなどが実行する処理の処理フローを示す図である。 図50は、第4の実施の形態に係る第1スケジューラなどが実行する処理の処理フローを示す図である。 図51は、第5の実施の形態に係るリソースデータ格納部に格納されるデータのフォーマット例を示す図である。 図52は、第5の実施の形態に係る第1スケジューラなどが実行する処理の処理フローを示す図である。 図53は、第5の実施の形態に係る第1スケジューラなどが実行する処理の処理フローを示す図である。 図54は、第6の実施の形態に係るシステムの概要を示す図である。 図55は、第6の実施の形態に係るノードの構成例を示す図である。 図56は、第6の実施の形態に係るメッセージ受信時における処理の処理フローを示す図である。 図57は、第6の実施の形態に係るリスケジューラが実行する処理の処理フローを示す図である。 図58は、第7の実施の形態に係るリスケジューラなどが実行する処理の処理フローを示す図である。 図59は、第7の実施の形態に係るリスケジューラなどが実行する処理の処理フローを示す図である。 図60Aは、第7の実施の形態に係るリスケジューラなどの処理を説明するための図である。 図60Bは、第7の実施の形態に係るリスケジューラなどの処理を説明するための図である。 図60Cは、第7の実施の形態に係るリスケジューラなどの処理を説明するための図である。 図60Dは、第7の実施の形態に係るリスケジューラなどの処理を説明するための図である。 図60Eは、第7の実施の形態に係るリスケジューラなどの処理を説明するための図である。 図61は、コンピュータの機能ブロック図である。
[実施の形態1]
本発明の第1の実施の形態に係るシステムの概要を図1に示す。図1におけるデータ収集配信システムは、複数のノードA乃至Cを含む。ノードA及びBは、センサなどのデータソースからデータを受信して、ノードCに送信する。ノードCは、データを処理する1又は複数のアプリケーションに出力する。
本実施の形態に係るデータ収集配信システムに含まれるノードの数は3に限定されるものではなく、データソースからアプリケーションまでの間に設けられるノードの段数も2に限定されるものではなく、2以上であればよい。すなわち、本実施の形態では、複数段構成になるようにノードが接続される。
ここで以下の説明で用いる変数の定義について説明しておく。ここでは、以下の説明を分かりやすくするために、図2に示すように、ノードNda乃至Ndcによる3段構成になっているものとする。
図2に示すように、ノードNdaとノードNdbとの間にはリンクLa,bが設けられ、ノードNdbとノードNdcとの間にはリンクLb,cが設けられている。そして、リンクLa,bのデータ転送遅延(レイテンシ)をla,bと表し、リンクLb,cのデータ転送遅延をlb,cと表す。
このとき、データdj(データのサイズはsjバイトと表すものとする)の転送ルートが[La,b,Lb,c]であるとすると、ノードNdaからノードNdcまでのエンドツーエンド(end to end)のタイムリミット(time limit。到達期限又は送達期限とも呼ぶ。)をtlim,jと表すものとする。また、データdjの、ノードNdaでの送信期限tlim,j,aは、tlim,j−sum([la,b,lb,c])(sumは総和を表す)となる。同様に、データdjの、ノードNdbでの送信期限tlim,j,bは、tlim,j−lb,cとなる。
なお、リンクLa,bの帯域(bps(bit per second))をca,bと表す。
また、以下で説明するタイムスロットについても、図3を用いて説明する。タイムスロットの幅をΔtと表し、i番目のタイムスロットをtiと表す。また、1度にスケジューリングを行うタイムスロットの数をwと表すと、スケジューリングの幅(すなわちスケジューリングウィンドウ)はwΔtとなる。なお、ノードNdxにおいてスケジューリング要求を行う処理の周期(起動1と起動2の間隔、起動2と起動3の間隔)をTSR,xと表し、スケジューリング要求を行う処理の起動から、スケジューリング対象のスケジューリングウインドウの先頭時刻との差をMxと表すものとする。なお、ノードNdxにおいて、スケジューリング要求を処理する側の処理の周期をTTLS-inter,xと表すものとする。
本実施の形態では、図4Aで示すように、ノードAでの送信スケジュールと、ノードBでの送信スケジュールとを、ノードCに送信する。送信スケジュールは、スケジューリングウィンドウ(ここではw=4)内の各スロットにおいて送信すべきデータに関する情報を含んでいる。具体的には、宛先までの送達期限tlim,j及び送信元のノードにおける送信期限tlim,j,xを含む。図4Aでは、4つのタイムスロットの各々に割り当てられたデータをブロック状に示しており、以下1塊のデータをデータブロックと呼ぶものとする。
ノードCは、ノードA及びBから送信スケジュールを受信すると、図4Bに示すように送信スケジュールを重ね合わせて、各タイムスロットにおいてノードCの受信リソース以内に送信されるデータが収まっているか否かを判断する。図4Bの例では、6つのデータブロックまで1タイムスロット内で受信できるものとする。そうすると3つ目のタイムスロットでは、1つのデータブロックが受信できないことが分かる。そうすると、3つ目のタイムスロットに割り当てられているデータブロックを、tlim,j,x及びtlim,jでソートし、データブロックの優先順位付けを行う。ノードCは、優先順位に基づきデータブロックを選択して、他のタイムスロットにスケジュールし直すが、図4Cに示すように、ここでは受信リソースが余っている1つ手前のタイムスロットに、選択されたデータブロックを割り当てる。そして、ノードCは、このようなスケジューリングの結果をノードA及びノードBに返信する。図4Dに示すように、ノードBのスケジューリング結果は、元の送信スケジュールと同じであるが、ノードAのスケジューリング結果は、2番目のタイムスロットと3番目のタイムスロットとで異なっている。ノードA及びBは、このようなスケジューリング結果に従って、データブロックを送信する。
次に、このような処理を行うためのノードA乃至Cの構成例を図5に示す。ノードは、データ受信部101と、第1スケジューラ102と、リンクデータ格納部103と、データ転送ルート格納部104と、レイテンシデータ格納部105と、データキュー106と、データ送信部107と、スケジュールネゴシエータ108と、第2スケジューラ109と、リソース管理データ格納部110と、スケジューリングデータ格納部111とを有する。
データ受信部101は、他のノードやデータソースからメッセージを受信する。なお、ノード自身が、メッセージに含まれるデータに対して処理を行う場合には、データ受信部101の前段で処理を行うものとする。本実施の形態において、データ受信部101が受信するメッセージのフォーマット例を図6及び図7に示す。データソースから受信したメッセージの場合には、図6に示すように、データのID(dj)と、データの宛先次ノード(直接の送信先のノード)のIDと、データ本体とを含む。データ本体はデータのIDを含む場合もある。また、宛先次ノードのIDではなく、宛先次ノードを特定するためのキーを含むようにして、当該キーから宛先次ノードのIDを特定するためのデータ構造を利用して宛先次ノードのIDを特定するようにしても良い。
なお、他のノードから受信したメッセージの場合には、図7に示すように、データのIDと、データの宛先次ノードのIDと、データdjの宛先までの送達期限tlim,jと、データ本体とを含む。
レイテンシデータ格納部105は、図8に示すように、データのID毎に、当該データ発生から宛先までの送達に許容される遅延時間を格納している。
また、リンクデータ格納部103は、図9に示すように、リンクID毎に、送信元(Source)ノードのIDと、宛先(Destination)ノードのIDと、当該リンクの遅延時間とを格納している。
また、データ転送ルート格納部104は、図10に示すように、データのID毎に、当該データが経由する転送ルートのリンクID配列([L1,2,L2,3,..,Ln-1,n])を格納している。
第1スケジューラ102は、リンクデータ格納部103とデータ転送ルート格納部104とレイテンシデータ格納部105とを用いて、受信したメッセージに対して宛先までの送達期限(到着期限)を特定し、本ノードにおける送信期限を特定し、メッセージのデータと共に、データキュー106に格納する。
データキュー106のデータ構造例を図11A及び図11Bに示す。図11Aの例では、開始時刻と終了時刻とで特定されるタイムスロット毎に、当該タイムスロットのためのキューへのポインタ(又はリンク)が登録されるようになっている。キューには、当該キューに投入されたメッセージ(データブロックに対応)が格納される。
図11Bに、キューに投入されたデータのデータフォーマット例を示す。図11Bの例では、データのIDと、宛先までの送達期限と、本ノードにおける送信期限と、データ本体又はデータへのリンクとが含まれる。
データ送信部107は、データキュー106に規定されているタイムスロット毎に、当該タイムスロットに割り当てられているメッセージを宛先ノードやアプリケーションに送信する。
スケジュールネゴシエータ108は、スケジューリング要求部1081と、スケジュール受信部1082と、リスケジューラ1083とを有する。
スケジューリング要求部1081は、データキュー106に格納されているデータから、送信スケジュールを含むスケジューリング要求を生成し、メッセージ送信先のノードに送信する。スケジュール受信部1082は、メッセージ送信先のノードからスケジューリング結果を含むスケジュール通知を受信し、リスケジューラ1083に出力する。リスケジューラ1083は、受信したスケジューリング結果に従って、データキュー106の内容を更新する。
また、第2スケジューラ109は、要求受信部1091と、スケジューリング処理部1092と、通知部1093とを有する。
要求受信部1091は、他のノードからスケジューリング要求を受信してスケジューリングデータ格納部111に格納し、スケジューリング処理部1092に出力する。スケジューリング処理部1092は、複数ノードからのスケジューリング要求に基づき、リソース管理データ格納部110に格納されているデータを用いて、各ノードの送信スケジュールを変更する。
リソース管理データ格納部110には、例えば図12及び図13で示すようなデータフォーマットでデータが格納される。すなわち、図12の例では、開始時刻と終了時刻とで特定されるタイムスロット毎に、ノードの受信リソースの使用済み数と空き数と最大数と、当該タイムスロットについてのキュー(データリストとも呼ぶ)へのポインタとが格納される。この例では、タイムスロットの幅は1秒で、10データブロック(すなわち10メッセージ)を1タイムスロットで受信できるようになっている。
キューには、当該キューに投入された、データブロックに関する情報が格納される。但し、この情報は、図13に示すように、データブロック毎に、データのIDと、送達期限tlim,jと、要求元ノードxの送信期限tlim,j,xとを含む。
また、スケジューリングデータ格納部111には、例えば図14に示すようなデータフォーマットでデータが格納される。すなわち、スケジューリング要求元のノードのID毎に、スケジューリング要求本体又はそれへのリンクと、スケジューリング結果とが格納される。
通知部1093は、スケジューリング処理部1092によって生成されたスケジューリング結果を、各ノードへ送信する。
次に、図15乃至図28を用いて、ノードの処理内容について説明する。
まず、図15を用いてメッセージ受信時の処理内容について説明する。なお、アンダーバーは、表記の問題を解決するために下付け文字を表すものとする。
データ受信部101は、データ(dj)を含むメッセージを受信し、第1スケジューラ102に出力する(ステップS1)。自ノードがデータソースに接続されている最上流ノードであれば(ステップS3:Yesルート)、第1スケジューラ102は、データのID「dj」でレイテンシデータ格納部105を検索して、宛先までに許容される遅延時間を読み出して、送達期限tlim,jを取得する(ステップS5)。例えば、現時刻+遅延時間にて送達期限を算出する。なお、レイテンシデータ格納部105に送達期限そのものが格納されていれば、それを用いる。一方、自ノードが最上流ノードでなければ(ステップS3:Noルート)、処理はステップS9に移行する。
また、第1スケジューラ102は、受信したメッセージヘッダに送達期限tlim,jを追加する(ステップS7)。これによって、図7に示すようなメッセージが生成される。
さらに、第1スケジューラ102は、データ転送ルート格納部104をdjで検索して転送ルート[Lx,y]を読み出す(ステップS9)。転送ルートは、リンクIDの配列データであるものとする。
そして、第1スケジューラ102は、転送ルート[Lx,y]の各リンクIDでレイテンシデータ格納部105を検索して、各リンクの遅延時間(レイテンシ)lx,yを読み出す(ステップS11)。
その後、第1スケジューラ102は、送達期限tlim,j及びレイテンシlx,yから、本ノードの送信期限tlim,j,xを算出する(ステップS13)。具体的には、tlim,j−Σlx,y(転送経路上の全リンクについての総和)によって計算する。
そして、第1スケジューラ102は、送信期限tlim,j,xから送出要求時刻treq,j,xを決定する(ステップS15)。tlim,j,x=treq,j,xの場合もあれば、一定のマージンαを考慮してtreq,j,x=tlim,j,x−αと設定する場合もある。なお、以下の説明では、説明を簡単にするため、送信期限=送出要求時刻とする。
そして、第1スケジューラ102は、送出要求時刻treq,j,xのタイムスロットに、メッセージを付加データと共に投入する(ステップS17)。図11Bに示すようなデータが格納される。
以上のような処理を、メッセージを受信する毎に実行する。
次に、図16乃至図20を用いて、スケジュールネゴシエータ108の処理内容について説明する。
まず、スケジュールネゴシエータ108は、時間間隔TSR,xの起動タイミングであるか否かを判断する(図16:ステップS21)。起動タイミングでなければ処理はステップS29に移行する。一方、起動タイミングであれば、スケジューリング要求部1081を起動させ、スケジューリング要求部1081は、今回のスケジューリングウィンドウを決定する(ステップS23)。具体的には、図3で説明したように、現在時刻tとすると、t+Mxからt+Mx+wΔtまでが今回のスケジューリングウィンドウとなる。なお、本実施の形態では、システム内の全ノードが同期しているものとする。
そして、スケジューリング要求部1081は、データキュー106から、スケジューリングウィンドウ内のデータ(データ本体を除く)を読み出し、スケジューリング要求を生成する(ステップS25)。
スケジューリング要求のデータフォーマット例を図17に示す。図17の例では、送信元ノードIDと、宛先ノードIDと、各タイムスロットのデータとが含まれる。各タイムスロットのデータは、当該タイムスロットの識別情報(例えば開始時刻−終了時刻)と、各データブロック(メッセージ)について、データのIDと、送達期限と、送信期限とが含まれる。
例えば、JSON(Javascript Object Notation)形式で具体値を入れると、図18に示すようになる。図18の例では、第1のタイムスロットについては2つのデータブロックに関するデータが含まれ、第2のタイムスロットについても2つのデータブロックに関するデータが含まれ、最後のタイムスロットについても2つのデータブロックに関するデータが含まれる。
その後、スケジューリング要求部1081は、スケジューリング要求を、データの送信先に送信する(ステップS27)。
そして、スケジュールネゴシエータ108は、処理終了が指示されたか判断し(ステップS29)、処理終了ではない場合には処理はステップS21に戻る。一方、処理終了であれば、処理を終了する。
このように複数のタイムスロットについてスケジューリング要求を行うことで、送信タイミングの調整が適切に行われるようになる。
次に、図19及び図20を用いて、スケジュール結果を受信した際の処理を説明する。
スケジュール受信部1082は、スケジュール結果を含むスケジュール通知を受信し(図19:ステップS31)、リスケジューラ1083に出力する。スケジュール通知のデータフォーマットは、図17及び図18に示したようなフォーマットである。
そして、リスケジューラ1083は、スケジュール通知を受信すると、スケジュール通知に従って、データキュー106におけるメッセージ(すなわちデータブロック)が投入されるタイムスロットを更新する処理を行う(ステップS33)。スケジュール通知で通知された送信スケジュールとスケジューリング要求における送信スケジュールとが一致する場合もあるので、その場合には特に処理は行わない。異なるタイムスロットに移動させられた場合には、そのタイムスロットのキューにエンキューする。そのタイムスロットのデータがなければ、この段階で生成する。
このようにすれば、送信先ノードにおいて調整された送信スケジュールを、データキュー106に反映させることができる。
次に、データ送信部107の処理内容について、図20を用いて説明する。
データ送信部107は、タイムスロット幅Δtの起動タイミングtになったか否かを判断する(図20:ステップS41)。起動タイミングtになっていない場合には、処理はステップS53に移行する。一方、起動タイミングtになると、データ送信部107は、データキュー106における時刻tからt+Δtのタイムスロットのキューから、メッセージ(すなわちデータブロック)を読み出す処理を行う(ステップS43)。
ステップS43でメッセージのデータを読み出すことができなければ(ステップS45:Noルート)、このタイムスロットについての処理は終了することになる。
一方、メッセージのデータを読み出すことができれば(ステップS45:Yesルート)、データ送信部107は、自ノードが転送経路の末端ノードであるか否かを判断する(ステップS47)。すなわち、アプリケーションにメッセージを出力するノードであるか否かを判断する。
そして、自ノードが末端ノードである場合には、データ送信部107は、読み出したメッセージに付加されている送達期限を削除する(ステップS49)。一方、自ノードが末端ノードでない場合には、処理はステップS51に移行する。
その後、データ送信部107は、読み出したメッセージを、宛先に送信する(ステップS51)。そして、データ送信部107は、処理終了であるか否かを判断し(ステップS53)、処理が終了でなければ処理はステップS41に戻る。一方、処理が終了であれば、処理を終了する。
このように送信先ノードによって決定された送信スケジュールに従ってメッセージを送信できるようになる。従って、送信先ノードでは、その受信リソースで受信できるだけのデータが送信される。よって、データ送信の遅延が抑制される。
次に、第2スケジューラ109の処理内容について、図21乃至図28を用いて説明する。
第2スケジューラ109の要求受信部1091は、データソースに近い各ノードから、スケジューリング要求を受信し、スケジューリング処理部1092に出力すると共に、スケジューリングデータ格納部111に格納する(図21:ステップS61)。
そして、第2スケジューラ109のスケジューリング処理部1092は、各スケジューリング要求を、各タイムスロットについて展開して、各タイムスロットでメッセージ数(データブロック数)を合算する(ステップS63)。この処理結果については、図12及び図13に示すように、リソース管理データ格納部110に格納される。
図22に本ステップの具体例を示す。図22の例では、ノードA乃至Cからスケジューリング要求を受信した場合を示しており、各々4つのタイムスロットについての送信スケジュールのデータが含まれる。このような送信スケジュールを、各タイムスロットについて重ね合わせると、図22の右側のようになる。このような状態を表すデータが、図12及び図13に示すようなデータフォーマットで格納される。この例では、1番目のタイムスロットは、受信リソースの上限である8つのデータブロックで満たされ、2番目のタイムスロットは受信リソースより少ない6つのデータブロックが割り当てられており、3番目のタイムスロットは受信リソースを超える9つのデータブロックが割り当てられており、4番目のタイムスロットは受信リソースより少ない7つのデータブロックが割り当てられている。
そうすると、スケジューリング処理部1092は、各タイムスロットで送信されるメッセージの数(データブロックの数)は、受信リソースの範囲内(すなわち、最大値以下)であるか否かを判断する(ステップS65)。各タイムスロットで送信されるメッセージの数が受信リソースの範囲内であれば、スケジューリング処理部1092は、スケジューリングデータ格納部111に格納されているスケジューリング要求の内容をそのまま含むスケジュール通知を、通知部1093に出力し、各要求元ノードに送信させる(ステップS67)。このような場合には、各ノードの送信スケジュールを変更せずとも受信できるためである。
そして、スケジューリング処理部1092は、各スケジュール通知の内容を、スケジューリングデータ格納部111に格納する(ステップS69)。また、スケジューリング処理部1092は、今回受信した各スケジュール要求を破棄する(ステップS71)。
一方、いずれかのタイムスロットのメッセージの数が受信リソースの範囲を超える場合には、処理は端子Aを介して図23の処理に移行する。
まず、スケジューリング処理部1092は、タイムスロットのカウンタnを1に初期化する(ステップS73)。そして、スケジューリング処理部1092は、n番目のタイムスロットのメッセージの数が受信リソースを超えているか判断する(ステップS75)。n番目のタイムスロットのメッセージの数が受信リソースの範囲内であれば、処理は端子Cを介して図26の処理に移行する。
一方、n番目のタイムスロットのメッセージの数が受信リソースを超えている場合には、スケジューリング処理部1092は、n番目のタイムスロット内のメッセージを、送信元ノードの送信期限を第1のキーとして、送達期限を第2のキーとしてソートする(ステップS77)。
図22の3番目のタイムスロットについて図24及び図25を用いて本ステップの具体例を説明する。なお、キュー(データリストとも呼ぶ)の上が先頭で下が末尾であるものとする。図24では、9つのメッセージ(データブロック)のうち1番目から4番目がノードAについてのメッセージであり、5及び6番目がノードBについてのメッセージであり、7番目から9番目がノードCについてのメッセージである。e2e_limは送達期限を表し、local_limはノードの送信期限を表すとする。上で述べたように、送信期限及び送達期限でこれらのメッセージをソートすると、図25のような結果が得られる。すなわち、同じタイムスロットに割り当てられているメッセージが送信期限及び送達期限から優先順位付けされることになる。
その後、スケジューリング処理部1092は、n番目のタイムスロットより前のタイムスロットに、受信リソースの空きがあるか判断する(ステップS79)。空きがなければ処理は端子Bを介して図26の処理に移行する。送信を前倒しできれば、データ送信遅延の可能性を抑制できるため、先に前のタイムスロットを判断する。
一方、n番目のタイムスロットより前のタイムスロットに空きがあれば、スケジューリング処理部1092は、n番目のタイムスロットの先頭から、空きのあるタイムスロットの末尾にメッセージを移動させる(ステップS81)。
図22に示した例では、3番目のタイムスロットより前の2番目のタイムスロットに空きがあるので、3番目のタイムスロットの先頭のメッセージを、2番目のタイムスロットの末尾に移動させる。
なお、2以上のメッセージが受信リソースの範囲を超える場合もある。この場合には、n番目のタイムスロットより前のタイムスロットの空き数だけ、n番目のタイムスロットの先頭からメッセージを取り出して、移動させる。3つのメッセージが受信リソースの範囲を超えるが、前のタイムスロットに2つしか空きがない場合には、2つだけメッセージを前のタイムスロットに移動させる。残りの1つは以下の処理で対応策が決定される。
そして、スケジューリング処理部1092は、n番目のスロットにはまだ受信リソースの範囲を超えるメッセージが割り当てられている状態であるか否かを判断する(ステップS83)。この条件を満たす場合には、処理は端子Bを介して図26の処理に移行する。
一方、n番目のスロットのメッセージの数が受信リソースの範囲内となった場合には、処理は端子Cを介して図26の処理に移行する。
図26の処理の説明に移行して、スケジューリング処理部1092は、n番目のタイムスロットより後のタイムスロットに空きがあるか否かを判断する(ステップS85)。空きがない場合には、処理はステップS91に移行する。
一方、n番目より後ろのスロットにタイムスロットに空きがある場合には、スケジューリング処理部1092は、n番目のタイムスロットの末尾から、空きのあるタイムスロットの先頭にメッセージを移動させる(ステップS87)。
図22に示した例で、3番目のタイムスロットより前に空きがないと仮定した場合、4番目のタイムスロットにも空きがあるので、3番目のタイムスロットの末尾のメッセージを、4番目のタイムスロットの先頭に移動させる。
なお、2以上のメッセージが受信リソースの範囲を超える場合もある。この場合には、n番目のタイムスロットより後のタイムスロットの空き数だけ、n番目のタイムスロットの末尾からメッセージを取り出して、移動させる。3つのメッセージが受信リソースの範囲を超えるが、後のタイムスロットに2つしか空きがない場合には、2つだけメッセージを後のタイムスロットに移動させる。残りの1つは後に処理される。
さらに、スケジューリング処理部1092は、n番目のタイムスロットにはまだ受信リソースの範囲を超えるメッセージが割り当てられている状態であるか否かを判断する(ステップS89)。この条件を満たさない場合には、処理はステップS95に移行する。
この条件を満たす場合には、スケジューリング処理部1092は、今回のスケジューリングウィンドウの後ろにタイムスロットを追加する(ステップS91)。そして、スケジューリング処理部1092は、n番目のスロットの末尾から、追加タイムスロットの先頭に、この段階で受信リソースの範囲を超えた分のメッセージを移動させる(ステップS93)。
このようにすれば、スケジューリングウィンドウの各タイムスロットにおいては、受信リソースの範囲内にメッセージの受信を抑制できるので、輻輳が抑制され、データ送信の遅延が抑制される。
そして、スケジューリング処理部1092は、カウンタnが、スケジューリングウィンドウ内のタイムスロット数w以上となったか判断する(ステップS95)。この条件を満たさない場合には、スケジューリング処理部1092は、nを1インクリメントして(ステップS97)、処理は端子Dを介して図23のステップS75に戻る。一方、nがw以上となると、処理は端子Eを介して図27の処理に移行する。
図27の処理の説明に移行して、スケジューリング処理部1092は、各要求元ノードについて、そのメッセージのスケジューリング結果(すなわち送信スケジュール)を抽出して、スケジュール通知を生成し、各要求元ノードへ通知部1093に送信させる(ステップS99)。
図28に示すように、ノードAでは、3番目のタイムスロットにおけるノードAのデータブロック(メッセージ)を、2番目のタイムスロットに移動させるので、ノードAに対するスケジュール通知では、1番目から4番目までのタイムスロットで均等にデータブロック(メッセージ)を送信するという送信スケジュールを指示するようになる。
そして、スケジューリング処理部1092は、各スケジュール通知の内容を、スケジューリングデータ格納部111に格納する(ステップS101)。また、スケジューリング処理部1092は、今回受信した各スケジュール要求を破棄する(ステップS103)。
このような処理を行えば、データの受信側のリソースの範囲内で送信元ノードからデータを受信できるようになり、輻輳が抑制され、データの遅延が抑制される。
[実施の形態2]
第1の実施の形態では、各メッセージのサイズが同じであることを前提にして説明したが、メッセージのサイズが異なる場合もある。本実施の形態では、併せてリンクの送信能力をも考慮して処理する場合について説明する。
なお、図5に示したノードの構成は、本実施の形態においてもおおよそ同じであるが、保持するデータの内容については異なるものもある。
本実施の形態に係るリンクデータ格納部103には、図29に示すようなデータフォーマットでデータが格納される。図29の例では、リンク毎に、リンクのIDと、送信元ノードのIDと、宛先ノードのIDと、送信元ノードから宛先ノードまでのリンク帯域[bps]とが格納される。
また、データキュー106におけるタイムスロットについてのデータは同じであるが、個々のメッセージ(データブロック)に関するデータの部分については、図30に示すようなデータフォーマットでデータが格納される。図30の例では、データのIDと、宛先までの送達期限と、本ノードの送信期限と、データのサイズ(bytes)と、データ本体又はその格納領域へのリンクとが格納されるようになっている。
さらに、リソース管理データ格納部110には、図31及び図32に示すようなデータフォーマットでデータが格納される。すなわち、図31の例では、開始時刻と終了時刻とで特定されるタイムスロット毎に、ノードの受信リソースの使用済み容量(bit)と空き容量(bit)と最大容量(bit)と、当該タイムスロットについてのキュー(データリストとも呼ぶ)へのポインタとが格納される。この例では、1タイムスロットには最大1Gビット受信でき、1番目のタイムスロットでは、既に200Mビット分のデータを受信することになっており、800Mビット分空いていることを表している。
キューには、当該キューに投入された、メッセージ(データブロック)に関する情報が格納される。但し、この情報は、図32に示すように、メッセージ(データブロック)毎に、データのIDと、送達期限tlim,jと、要求元ノードjの送信期限tlim,j,xと、データサイズとを含む。なお、データサイズについてはビット単位又はバイト単位であってもよいが、タイムスロットの最大容量に対する割合で表すようにしても良い。
また、スケジューリング要求及びスケジュール通知のデータフォーマットは、図33及び図34に示すようになる。図17及び図18と異なる点は、各メッセージ(データブロック)についてデータサイズ(ds)が追加された部分のみである。
本実施の形態では、データサイズ及びリンクの帯域を用いてレイテンシ(遅延時間)を算出することになる。この点について、図35を用いて説明する。
ここではノードNdaがデータソースからデータサイズsjのデータdjを受信し、ノードNdbを介してノードNddに送信する。また、ノードNdcがデータソースからデータサイズskのデータdkを受信し、ノードNddに送信する。
ここで、ノードNdaからノードNdbまでのリンクLa,bのレイテンシla,bは、データサイズsj/リンク帯域ca,bで算出される。同様に、ノードNdbからノードNddまでのリンクLb,dのレイテンシlb,dは、データサイズsj/リンク帯域cb,dで算出される。
従って、ノードNdaにおける送信期限tlim,j,aは、送達期限tlim,j−sum([la,b,lb,d])=tlim,j−(sj/ca,b+sj/cb,d)と算出される。同様に、ノードNdbにおける送信期限tlim,j,bは、送達期限tlim,j−lb,d=tlim,j−sj/cb,dとなる。
また、ノードNdcにおける送信期限tlim,k,cは、送達期限tlim,k−lc,d lim,k−sk/cc,dで算出される。
次に、本実施の形態に係る処理内容について図36及び図37を用いて説明する。
まず、図36を用いてメッセージ受信時の処理内容について説明する。
データ受信部101は、データ(dj)を含むメッセージを受信し、第1スケジューラ102に出力する(ステップS201)。自ノードがデータソースに接続されている最上流ノードであれば(ステップS203:Yesルート)、第1スケジューラ102は、データのID「dj」でレイテンシデータ格納部105を検索して、宛先までに許容される遅延時間を読み出して、送達期限tlim,jを取得する(ステップS205)。例えば、現時刻+遅延時間にて送達期限を算出する。なお、レイテンシデータ格納部105に送達期限そのものが格納されていれば、それを用いる。一方、自ノードが最上流ノードでなければ(ステップS203:Noルート)、処理はステップS209に移行する。
また、第1スケジューラ102は、受信したメッセージヘッダに送達期限tlim,jを追加する(ステップS207)。これによって、図7に示すようなメッセージが生成される。
さらに、第1スケジューラ102は、データ転送ルート格納部104をdjで検索して転送ルート[Lx,y]を読み出す(ステップS209)。転送ルートは、リンクIDの配列データであるものとする。
そして、第1スケジューラ102は、転送ルート[Lx,y]の各リンクIDでレイテンシデータ格納部105を検索して、各リンクのリンク帯域cx,yを読み出す(ステップS211)。
その後、第1スケジューラ102は、送達期限tlim,j、リンク帯域cx,y及びメッセージのデータサイズから、本ノードの送信期限tlim,j,xを算出する(ステップS213)。具体的には、tlim,j−Σsj/cx,y(転送経路上の全リンクについての総和)によって計算する。
そして、第1スケジューラ102は、送信期限tlim,j,xから送出要求時刻treq,j,xを決定する(ステップS215)。tlim,j,x=treq,j,xの場合もあれば、一定のマージンαを考慮してtreq,j,x=tlim,j,x−αと設定する場合もある。なお、以下の説明では、説明を簡単にするため、送信期限=送出要求時刻とする。
そして、第1スケジューラ102は、送出要求時刻treq,j,xのタイムスロットに、メッセージを付加データと共に投入する(ステップS217)。
以上のような処理を、メッセージを受信する毎に実行する。
スケジュールネゴシエータ108の処理内容については、第1の実施の形態とほぼ同様であり、生成されるスケジューリング要求のデータフォーマットが、図33及び図34に示すようなデータである点のみが異なる。
また、データ送信部107の処理内容についても図20に示したものと同様である。
さらに、第2スケジューラ109の処理内容についても一部を除き同様である。具体的には、メッセージ数(データブロック数)ではなくデータ量でスロットの空きを判断する点が異なる。
図37に示すように、各データブロック(メッセージ)のデータサイズ(ds)を考慮することになる。送信元ノード毎にリンク帯域が異なる場合には、リンク帯域をも考慮することになるが、ここでは同一であるものとする。
例えば、スロット幅Δt=1秒で100Mbpsであるとする。そうすると、20Mビットのデータであれば、送信に、0.2秒かかり、10Mビットのデータであれば0.1秒かかる。ここでは、10Mビットを1単位として、ds:1は10Mビットのデータを表し、ds:2は20Mビットであるものとする。
ここでノードA及びノードBの送信スケジュールを重ね合わせると、図37の右側のように表される。図37の右側では、データサイズに応じた高さでデータブロック(メッセージ)を表している。このように、3番目のタイムスロットでは、受信リソースである最大容量を超えており、超えた分だけデータブロックを他のタイムスロットに移動させることになる。
空きスロットについても、空き容量を考慮して、データブロック(メッセージ)を移動させられるか否かを判断する。例えば、1つのデータブロック(メッセージ)のデータサイズが大きく、空きスロットの空き容量が不足する場合には、移動できないものとする。
通知部1093の処理内容についてもスケジュール通知のデータフォーマットが図33及び図34のようになる点のみが異なる。
以上のように、データサイズが異なるメッセージ(データブロック)を送信する場合であっても、対処できる。
[実施の形態3]
第1の実施の形態及び第2の実施の形態では、各ノードにおけるスケジューリング要求部1081の起動間隔TSR,x及び初期起動時刻が同じであるという前提で説明している。
本実施の形態では、各ノードにおいて、スケジューリング要求部1081の起動間隔TSR,x及び初期起動時刻が異なるものとする。従って、スケジューリングウィンドウも、各ノードで異なり、そのノードの起動間隔TSR,xに応じて設定されるものとする。
なお、第1及び第2の実施の形態では、ほぼ同時にスケジューリング要求を受信して、それに応じて第2スケジューラ109が処理を行うようになっていたが、本実施の形態では、スケジューリング要求を受信するタイミングが、各送信元ノードで異なるので、第2スケジューラ109の起動間隔TTLS-inter,xについては、以下のように定義する。
TLS-inter,x=min(TSR,a,TSR,b,TSR,c,...,TSR,n
すなわち、送信元ノードの最も短い起動間隔を、第2スケジューラ109の起動間隔の最大値とする。これは、1つのTTLS-inter,xの間に、複数のスケジューリング要求を送信するノードが発生しないようにするためである。
このような状況に対処するためのノードの構成は、第1の実施の形態と同様である。但し、処理内容については一部異なるので、異なる処理内容について以下説明する。
まず、要求受信部1091の処理内容について図38を用いて説明する。第1の実施の形態では、要求受信部1091はスケジューリング処理部1092と連動していたが、スケジューリング要求の受信タイミングが、各ノードで異なるので、独立して動作するようになる。
すなわち、要求受信部1091は、送信元ノードからスケジューリング要求を受信すると(ステップS301)、当該スケジューリング要求のデータを、スケジューリングデータ格納部111に格納する(ステップS303)。
このような処理を、スケジューリング要求を受信する毎に繰り返すことになる。
次に、スケジューリング処理部1092等の処理内容について、図39乃至図46を用いて説明する。
スケジューリング処理部1092は、起動間隔TTLS-inter,x又は以下の処理で設定された時間が経過して、起動タイミングtになったか判断する(図39:ステップS311)。起動タイミングtでなければ、待機する。
一方、起動タイミングtになると、スケジューリング処理部1092は、最大幅TTLS-inter,x以内であって全ノードからのスケジューリング要求が揃っている未処理タイムスロットについてのデータを、スケジューリングデータ格納部111から読み出す(ステップS313)。
例えば図40のような初期的な状態を想定する。この場合、3つのノードからスケジューリング要求を受信することになるが、スケジューリングウィンドウに含まれるタイムスロットの数wが異なっている。ここでは、ノードBが最も小さいw=2を採用しているので、t0からt0+2Δtまでのタイムスロットについてのデータを、スケジューリングデータ格納部111から読み出すことになる。なお、t0から2Δtまでのタイムスロットのデータを含むスケジューリング要求のデータを読み出すようにしても良い。
そして、スケジューリング処理部1092は、読み出したデータを、各タイムスロットについて展開して、各タイムスロットでメッセージ数(データブロック数)を合算する(ステップS315)。この処理結果については、図12及び図13に示すように、リソース管理データ格納部110に格納される。
図40の例では、最上段に示すように、2つのタイムスロットの各々についてメッセージ数(データブロック数)を計数することになる。この場合、いずれのタイムスロットについても、受信リソースの最大数には達していない。
そうすると、スケジューリング処理部1092は、各タイムスロットで送信されるメッセージの数は、受信リソースの範囲内であるか否かを判断する(ステップS317)。各タイムスロットで送信されるメッセージの数が受信リソースの範囲内であれば、スケジューリング処理部1092は、スケジューリングデータ格納部111に格納されているスケジューリング要求の内容をそのまま含むスケジュール通知を、通知部1093に出力し、各要求元ノードに送信させる(ステップS319)。このような場合には、各ノードの送信スケジュールを変更せずとも受信できるためである。
そして、スケジューリング処理部1092は、各スケジュール通知の内容を、スケジューリングデータ格納部111に格納する(ステップS321)。
さらに、スケジューリング処理部1092は、次回の起動タイミングを、t+今回のスケジュール完了タイムスロット数×Δtに設定する(ステップS323)。本実施の形態では、起動タイミング毎に、処理されるタイムスロット数が異なるため、このように起動毎に、次回の起動タイミングを設定するものである。
一方、いずれかのタイムスロットのメッセージの数が受信リソースの範囲を超える場合には、処理は端子Fを介して図41の処理に移行する。
まず、スケジューリング処理部1092は、タイムスロットのカウンタnを1に初期化する(ステップS325)。そして、スケジューリング処理部1092は、n番目のタイムスロットのメッセージの数が受信リソースを超えているか判断する(ステップS327)。n番目のタイムスロットのメッセージの数が受信リソースの範囲内であれば、処理は端子Gを介して図42の処理に移行する。
一方、n番目のタイムスロットのメッセージの数が受信リソースを超えている場合には、スケジューリング処理部1092は、n番目のタイムスロット内のメッセージを、送信元ノードの送信期限を第1のキーとして、送達期限を第2のキーとしてソートする(ステップS329)。この処理はステップS77と同様である。
その後、スケジューリング処理部1092は、n番目より前のタイムスロット(但し、今回処理するタイムスロットの範囲内)に、受信リソースの空きがあるか判断する(ステップS331)。空きがなければ処理は端子Hを介して図42の処理に移行する。送信を前倒しできれば、データ送信遅延の可能性を抑制できるため、先に前のタイムスロットを判断する。
一方、n番目より前のタイムスロットに空きがあれば、スケジューリング処理部1092は、n番目のタイムスロットの先頭から、空きのあるタイムスロットの末尾にメッセージを移動させる(ステップS333)。
なお、2以上のメッセージが受信リソースの範囲を超える場合もある。この場合には、n番目のタイムスロットより前のタイムスロットの空き数だけ、n番目のタイムスロットの先頭からメッセージを取り出して、移動させる。3つのメッセージが受信リソースの範囲を超えるが、前のタイムスロットに2つしか空きがない場合には、2つだけメッセージを前のタイムスロットに移動させる。残りの1つは以下の処理で対応策が決定される。
そして、スケジューリング処理部1092は、n番目のスロットにはまだ受信リソースの範囲を超えるメッセージが割り当てられている状態であるか否かを判断する(ステップ335)。この条件を満たす場合には、処理は端子Hを介して図42の処理に移行する。
一方、n番目のスロットのメッセージの数が受信リソースの範囲内となった場合には、処理は端子Gを介して図42の処理に移行する。
図42の処理の説明に移行して、スケジューリング処理部1092は、n番目のタイムスロットより後のタイムスロット(但し、今回処理するタイムスロットの範囲内)に空きがあるか否かを判断する(ステップS337)。空きがない場合には、処理はステップS343に移行する。
一方、n番目のタイムスロットより後ろのスロットにタイムスロットに空きがある場合には、スケジューリング処理部1092は、n番目のタイムスロットの末尾から、空きのあるタイムスロットの先頭にメッセージを移動させる(ステップS339)。
なお、2以上のメッセージが受信リソースの範囲を超える場合もある。この場合には、n番目のタイムスロットより後のタイムスロットの空き数だけ、n番目のタイムスロットの末尾からメッセージを取り出して、移動させる。3つのメッセージが受信リソースの範囲を超えるが、後のタイムスロットに2つしか空きがない場合には、2つだけメッセージを後のタイムスロットに移動させる。残りの1つは後に処理される。
さらに、スケジューリング処理部1092は、n番目のタイムスロットにはまだ受信リソースの範囲を超えるメッセージが割り当てられている状態であるか否かを判断する(ステップS341)。この条件を満たさない場合には、処理はステップS345に移行する。
この条件を満たす場合には、第1の実施の形態ではスケジューリングウィンドウの後ろにタイムスロットを生成して、その先頭にメッセージ(データブロック)を割り当てるような処理を行うが、本実施の形態では、既にタイムスロットが存在して、そのタイムスロットにはメッセージ(データブロック)が割り当てられているので、異なる処理を行うことになる。
すなわち、スケジューリング処理部1092は、他のタイムスロットに移動させることができなかったメッセージ(データブロック)を、今回処理対象のタイムスロットの範囲より後のタイムスロットに移動させる(ステップS343)。
図43は、図40の後の起動タイミングt0+2Δtにおける処理を模式的に示すものである。ノードBからは2回目のスケジューリング要求を受信した状態であるが、他のノードについては1回目のスケジューリング要求しか受信していない。そうすると、全ノードから送信スケジュールが得られているタイムスロットは3番目のタイムスロット1つしかない。このタイムスロットについて、メッセージの数を合算すると、図43の最上段に示すように、1つのメッセージ(データブロック)が、受信リソースの範囲を超えることになる。しかしながら、1つのタイムスロットしか処理しないので、前のタイムスロットにも、後のタイムスロットにも、移動させることはできない。そこで、優先順位が低い順にメッセージ(データブロック)を、今回処理対象のタイムスロットの範囲より後ろのタイムスロット(例えば直後)に移動させる。
このようにすれば、スケジューリングウィンドウの各タイムスロットにおいては、受信リソースの範囲内にメッセージの受信を抑制できるので、輻輳が抑制され、データ送信の遅延が抑制される。
そして、スケジューリング処理部1092は、カウンタnが、今回処理対象のタイムスロットの数以上となったか判断する(ステップS345)。この条件を満たさない場合には、スケジューリング処理部1092は、nを1インクリメントして(ステップS347)、処理は端子Jを介して図41のステップS327に戻る。一方、nが今回処理対象のタイムスロットの数以上となると、処理は端子Iを介して図44の処理に移行する。
図44の処理の説明に移行して、スケジューリング処理部1092は、各要求元ノードについて、そのメッセージのスケジューリング結果(すなわち送信スケジュール)を抽出して、スケジュール通知を生成し、各要求元ノードへ通知部1093に送信させる(ステップS349)。
そして、スケジューリング処理部1092は、各スケジュール通知の内容を、スケジューリングデータ格納部111に格納する(ステップS351)。
さらに、スケジューリング処理部1092は、次回の起動タイミングを、t+今回のスケジュール完了タイムスロット数×Δtに設定する(ステップS353)。本ステップは、ステップS323と同様の処理である。
図43の処理を行った後の状態を、図45に示す。ここではノードAから2回目のスケジューリング要求を受信した状態である。ここで、ノードA乃至Cからのスケジューリング要求のうち、共通する未処理のタイムスロットは1つしかない。ここで、図45の最上段のように、メッセージ数を合算すると、受信リソースの範囲内となっている。但し、図43で示したように、1つのメッセージ(データブロック)が追加されているので、そのメッセージの割当先タイムスロットが変更されたことになる。このようなスケジューリング結果を各ノードに通知する。
さらに、図45の処理を行った後の状態を、図46に示す。ノードBからは3回目のスケジューリング要求を受信し、ノードCからは2回目のスケジューリング要求を受信した状態を表している。そうすると、今回は、2つの未処理タイムスロットについて処理することになる。図46の最上段に示すように、いずれのタイムスロットについても、受信リソースの範囲内のメッセージ(データブロック)しか送信予定となっていないので、要求どおりに送信するように各ノードに通知する。
このようにすれば、スケジューリングウィンドウの差及び初期起動タイミングのずれに対処できるようになる。
なお、第2の実施の形態のように、各メッセージのデータサイズが異なっていても、第2の実施の形態のように本実施の形態を変形すればよい。
[実施の形態4]
本実施の形態では、送信リソースの上限値を考慮する場合について説明する。
本実施の形態に係るノードの構成を図47に示す。本実施の形態では、リソースデータ格納部112が追加されており、第1スケジューラ102は、このリソースデータ格納部112に格納されている送信リソースのデータを参照して、メッセージのタイムスロットへの割り当てを制御する。
図48に、リソースデータ格納部112に格納されるデータのデータフォーマット例を示す。図48に示すように、タイムスロット幅のデータと、最大送信リソースとしてタイムスロットにおいて送信可能な最大メッセージ数(最大データブロック数)とが格納されるようになっている。なお、タイムスロット毎に最大メッセージ数(最大データブロック数)が異なる場合には、タイムスロットの開始時刻と終了時刻とのペアに対応付けて最大メッセージ数(最大データブロック数)を格納するようにしても良い。
次に、本実施の形態に係るデータ受信部101及び第1スケジューラ102の処理について図49及び図50を用いて説明する。
データ受信部101は、データ(dj)を含むメッセージを受信し、第1スケジューラ102に出力する(図49:ステップS501)。自ノードがデータソースに接続されている最上流ノードであれば(ステップS503:Yesルート)、第1スケジューラ102は、データのID「dj」でレイテンシデータ格納部105を検索して、宛先までに許容される遅延時間を読み出して、送達期限tlim,jを取得する(ステップS505)。例えば、現時刻+遅延時間にて送達期限を算出する。なお、レイテンシデータ格納部105に送達期限そのものが格納されていれば、それを用いる。一方、自ノードが最上流ノードでなければ(ステップS503:Noルート)、処理はステップS509に移行する。
また、第1スケジューラ102は、受信したメッセージヘッダに送達期限tlim,jを追加する(ステップS507)。これによって、図7に示すようなメッセージが生成される。
さらに、第1スケジューラ102は、データ転送ルート格納部104をdjで検索して転送ルート[Lx,y]を読み出す(ステップS509)。転送ルートは、リンクIDの配列データであるものとする。
そして、第1スケジューラ102は、転送ルート[Lx,y]の各リンクIDでレイテンシデータ格納部105を検索して、各リンクの遅延時間(レイテンシ)lx,yを読み出す(ステップS511)。
その後、第1スケジューラ102は、送達期限tlim,j及びレイテンシlx,yから、本ノードの送信期限tlim,j,xを算出する(ステップS513)。具体的には、tlim,j−Σlx,y(転送経路上の全リンクについての総和)によって計算する。
そして、第1スケジューラ102は、送信期限tlim,j,xから送出要求時刻treq,j,xを決定する(ステップS515)。tlim,j,x=treq,j,xの場合もあれば、一定のマージンαを考慮してtreq,j,x=tlim,j,x−αと設定する場合もある。なお、以下の説明では、説明を簡単にするため、送信期限=送出要求時刻とする。
そして、第1スケジューラ102は、送出要求時刻treq,j,xのタイムスロットに、メッセージを付加データと共に投入する(ステップS517)。図11A及びBに示すようなデータが格納される。ここまでは第1の実施の形態と同様である。処理は端子Kを介して図50の処理に移行する。
図50の処理の説明に移行して、第1スケジューラ102は、リソースデータ格納部112に格納されている送信リソース(最大メッセージ数(最大データブロック数))から、エンキューされたタイムスロットはリソース不足となっているか判断する(ステップS519)。エンキューされたタイムスロットのリソースが足りている場合には、処理は終了する。
一方、エンキューされたタイムスロットがリソース不足である場合には、第1スケジューラ102は、今回受信したメッセージがエンキューされたタイムスロット内のメッセージを、本ノードの送信期限を第1のキーとして、送達期限を第2のキーとしてソートする(ステップS521)。
そして、第1スケジューラ102は、今回受信したメッセージがエンキューされたタイムスロットより前のタイムスロットに、送信リソースの空きがあるか判断する(ステップS523)。送信を前倒しできれば、データ送信遅延の可能性を抑制できるため、先に前のタイムスロットを判断する。
エンキューされたタイムスロットより前のタイムスロットに空きがあれば、第1スケジューラ102は、今回メッセージがエンキューされたタイムスロットの先頭から、空きのあるタイムスロットの末尾にメッセージを移動させる(ステップS525)。そして処理は終了する。
一方、エンキューされたタイムスロットより前のタイムスロットに空きがなければ、第1スケジューラ102は、今回受信したメッセージがエンキューされたタイムスロットより後のタイムスロットに空きがあるか判断する(ステップS527)。
エンキューされたタイムスロットより後ろのスロットにタイムスロットに空きがある場合には、第1スケジューラ102は、今回受信したメッセージがエンキューされたタイムスロットの末尾から、空きのあるタイムスロットの先頭にメッセージを移動させる(ステップS529)。そして処理は終了する。
一方、エンキューされたタイムスロットより後ろのタイムスロットに空きがない場合には、第1スケジューラ102は、現在定義されているタイムスロットの後ろ側にタイムスロットを追加し(ステップS531)、今回受信されたメッセージがエンキューされたタイムスロットの末尾から、追加タイムスロットの先頭に、今回受信されたメッセージを移動させる(ステップS533)。
このような処理を行えば、データの送信側のリソースの範囲内でデータを送信できるようになり、輻輳が抑制され、データ送信の遅延が抑制される。
他の処理内容については第1の実施の形態と同様であるから、説明を省略する。
[実施の形態5]
第4の実施の形態についても、第2の実施の形態のように、データサイズを考慮する形に変形しても良い。
ノードの構成については図47に示したものと同様である。但し、第2の実施の形態で説明したように、処理内容が異なる。さらに、第4の実施の形態においては、送信リソースをも考慮することになるので、そのため、データ受信部101及び第1スケジューラ102の処理が異なる。さらに、リソースデータ格納部112に格納されているデータのデータフォーマットを、図51に示す。図51でも、タイムスロット幅Δtと、タイムスロット幅Δtにおいて送信可能な最大ビット数とが格納されるようになっている。
次に、本実施の形態に係るデータ受信部101及び第1スケジューラ102の処理内容について図52及び図53を用いて説明する。
データ受信部101は、データ(dj)を含むメッセージを受信し、第1スケジューラ102に出力する(図52:ステップS601)。自ノードがデータソースに接続されている最上流ノードであれば(ステップS603:Yesルート)、第1スケジューラ102は、データのID「dj」でレイテンシデータ格納部105を検索して、宛先までに許容される遅延時間を読み出して、送達期限tlim,jを取得する(ステップS605)。例えば、現時刻+遅延時間にて送達期限を算出する。なお、レイテンシデータ格納部105に送達期限そのものが格納されていれば、それを用いる。一方、自ノードが最上流ノードでなければ(ステップS603:Noルート)、処理はステップS609に移行する。
また、第1スケジューラ102は、受信したメッセージヘッダに送達期限tlim,jを追加する(ステップS607)。これによって、図7に示すようなメッセージが生成される。
さらに、第1スケジューラ102は、データ転送ルート格納部104をdjで検索して転送ルート[Lx,y]を読み出す(ステップS609)。転送ルートは、リンクIDの配列データであるものとする。
そして、第1スケジューラ102は、転送ルート[Lx,y]の各リンクIDでレイテンシデータ格納部105を検索して、各リンクのリンク帯域cx,yを読み出す(ステップS611)。
その後、第1スケジューラ102は、送達期限tlim,j、リンク帯域cx,y及びメッセージのデータサイズから、本ノードの送信期限tlim,j,xを算出する(ステップS613)。具体的には、tlim,j−Σsj/cx,y(転送経路上の全リンクについての総和)によって計算する。
そして、第1スケジューラ102は、送信期限tlim,j,xから送出要求時刻treq,j,xを決定する(ステップS615)。tlim,j,x=treq,j,xの場合もあれば、一定のマージンαを考慮してtreq,j,x=tlim,j,x−αと設定する場合もある。なお、以下の説明では、説明を簡単にするため、送信期限=送出要求時刻とする。
そして、第1スケジューラ102は、送出要求時刻treq,j,xのタイムスロットに、メッセージ(データブロック)を付加データと共に投入する(ステップS617)。そして処理は、端子Lを介して図53の処理の説明に移行する。
図53の処理の説明に移行して、第1スケジューラ102は、リソースデータ格納部112に格納されている送信リソース(最大ビット数)から、エンキューされたタイムスロットはリソース不足となっているか判断する(ステップS619)。すなわち、エンキューされたタイムスロットにおけるメッセージ(データブロック)のデータサイズの総和を算出し、最大ビット数と比較する。エンキューされたタイムスロットの送信リソースが足りている場合には、処理は終了する。
一方、エンキューされたタイムスロットがリソース不足である場合には、第1スケジューラ102は、今回受信したメッセージがエンキューされたタイムスロット内のメッセージを、本ノードの送信期限を第1のキーとして、送達期限を第2のキーとしてソートする(ステップS621)。
そして、第1スケジューラ102は、今回受信したメッセージがエンキューされたタイムスロットより前のタイムスロットに、送信リソースの空きがあるか判断する(ステップS623)。送信を前倒しできれば、データ送信遅延の可能性を抑制できるため、先に前のタイムスロットを判断する。なお、空きがあるか否かについては、空き容量が、今回メッセージがエンキューされたタイムスロットの先頭メッセージ(先頭データブロック)のデータサイズ以上であるか否かを判断することになる。
エンキューされたタイムスロットより前のタイムスロットに空きがあれば、第1スケジューラ102は、今回メッセージがエンキューされたタイムスロットの先頭から、空きのあるタイムスロットの末尾にメッセージを移動させる(ステップS625)。そして処理は終了する。
一方、エンキューされたタイムスロットより前のタイムスロットに空きがなければ、第1スケジューラ102は、今回受信したメッセージがエンキューされたタイムスロットより後のタイムスロットに空きがあるか判断する(ステップS627)。ステップS623と同様に、空きがあるか否かについては、空き容量が、今回メッセージがエンキューされたタイムスロットの末尾メッセージ(末尾データブロック)のデータサイズ以上であるか否かを判断することになる。
エンキューされたタイムスロットより後ろのスロットにタイムスロットに空きがある場合には、第1スケジューラ102は、今回受信したメッセージがエンキューされたタイムスロットの末尾から、空きのあるタイムスロットの先頭にメッセージを移動させる(ステップS629)。そして処理は終了する。
一方、エンキューされたタイムスロットより後ろのタイムスロットに空きがない場合には、第1スケジューラ102は、現在定義されているタイムスロットの後ろ側にタイムスロットを追加し(ステップS631)、今回受信されたメッセージがエンキューされたタイムスロットの末尾から、追加タイムスロットの先頭に、今回受信されたメッセージを移動させる(ステップS633)。
このような処理を行えば、データの送信側のリソースの範囲内でデータを送信できるようになり、輻輳が抑制され、データ送信の遅延が抑制される。
他の処理内容については第4の実施の形態と同様であるから、説明を省略する。
[実施の形態6]
本実施の形態では、図54に示すように、ノードAがノードC及びノードDにメッセージ(データブロック)を送信し、ノードBがノードC及びノードDにメッセージ(データブロック)を送信するようになっている場合を取り扱う。このように、複数のノードにメッセージ(データブロック)を送信するようになっている場合には、送信先ノード毎にデータキューを設けるようにする。
すなわち、ノードの構成例は図55に示すように変形される。第1の実施の形態に係るノードの構成と異なる点は、データキュー106a及び106bが、送信先ノード毎に設けられる点である。すなわち、図11A及び図11Bに示すデータフォーマットで、各データキュー106a及び106bにおいてデータを格納する。
次に、図56を用いてメッセージ受信時の処理内容について説明する。
データ受信部101は、データ(dj)を含むメッセージを受信し、第1スケジューラ102に出力する(ステップS701)。自ノードがデータソースに接続されている最上流ノードであれば(ステップS703:Yesルート)、第1スケジューラ102は、データのID「dj」でレイテンシデータ格納部105を検索して、宛先までに許容される遅延時間を読み出して、送達期限tlim,jを取得する(ステップS705)。例えば、現時刻+遅延時間にて送達期限を算出する。なお、レイテンシデータ格納部105に送達期限そのものが格納されていれば、それを用いる。一方、自ノードが最上流ノードでなければ(ステップS703:Noルート)、処理はステップS709に移行する。
また、第1スケジューラ102は、受信したメッセージヘッダに送達期限tlim,jを追加する(ステップS707)。これによって、図7に示すようなメッセージが生成される。
さらに、第1スケジューラ102は、データ転送ルート格納部104をdjで検索して転送ルート[Lx,y]を読み出す(ステップS709)。転送ルートは、リンクIDの配列データであるものとする。
そして、第1スケジューラ102は、転送ルート[Lx,y]の各リンクIDでレイテンシデータ格納部105を検索して、各リンクの遅延時間(レイテンシ)lx,yを読み出す(ステップS711)。
その後、第1スケジューラ102は、送達期限tlim,j及びレイテンシlx,yから、本ノードの送信期限tlim,j,xを算出する(ステップS713)。具体的には、tlim,j−Σlx,y(転送経路上の全リンクについての総和)によって計算する。
そして、第1スケジューラ102は、送信期限tlim,j,xから送出要求時刻treq,j,xを決定する(ステップS715)。tlim,j,x=treq,j,xの場合もあれば、一定のマージンαを考慮してtreq,j,x=tlim,j,x−αと設定する場合もある。なお、以下の説明では、説明を簡単にするため、送信期限=送出要求時刻とする。
そして、第1スケジューラ102は、送信先ノードのデータキューにおいて、送出要求時刻treq,j,xのタイムスロットに、メッセージを付加データと共に投入する(ステップS717)。図11A及び図11Bに示すようなデータが格納される。
以上のような処理を、メッセージを受信する毎に実行する。
なお、第2スケジューラ109の処理内容については、第1の実施の形態と同様であるので、説明は省略する。
但し、スケジュールネゴシエータ108の処理内容については一部異なる。すなわち、リスケジューラ1083の処理内容は、図57に示すように変更される。
すなわち、スケジュール受信部1082は、スケジュール結果を含むスケジュール通知を受信し(ステップS721)、リスケジューラ1083に出力する。スケジュール通知のデータフォーマットは、図17及び図18に示したようなフォーマットである。
そして、リスケジューラ1083は、スケジュール通知を受信すると、その送信元ノードのIDからデータキュー106a又は106bを特定し(ステップS723)、当該スケジュール通知に従って、データキュー106a又は106bにおけるメッセージ(すなわちデータブロック)が投入されるタイムスロットを更新する処理を行う(ステップS725)。スケジュール通知で通知された送信スケジュールとスケジューリング要求における送信スケジュールとが一致する場合もあるので、その場合には特に処理は行わない。異なるタイムスロットに移動させられた場合には、そのタイムスロットのキューにエンキューする。そのタイムスロットのデータなければ、この段階で生成する。
このようにすれば、送信先ノードにおいて調整された送信スケジュールを、送信先ノードのためのデータキュー106a又は106bに反映させることができる。
なお、第2の実施の形態のように、第6の実施の形態においても、データサイズを考慮するような形態に変形しても良い。
[実施の形態7]
本実施の形態では、第6の実施の形態において送信リソースを考慮する場合について説明する。具体的には、送信先ノードが複数ある場合、スケジュール通知に含まれる送信スケジュールを重ね合わせると、送信リソースを超えたメッセージ(データブロック)を送信することになってしまう場合がある。そこで、本実施の形態では、リスケジューラ1083の処理を変更することで、送信リソースを考慮したリスケジュール処理を行うこととする。
なお、第6の実施の形態に係るノードの構成は、処理内容以外については本実施の形態でも同様である。
特に、スケジュールネゴシエータ108のスケジュール受信部1082及びリスケジューラ1083の処理内容について、図58乃至図60Eを用いて説明する。
すなわち、スケジュール受信部1082は、スケジュール結果を含むスケジュール通知を受信し(図58:ステップS801)、リスケジューラ1083に出力する。スケジュール通知のデータフォーマットは、図17及び図18に示したようなフォーマットである。
そして、リスケジューラ1083は、スケジュール通知を受信すると、その送信元ノードのIDを特定する(ステップS803)。
そして、リスケジューラ1083は、送信元ノードのIDからデータキュー106a又は106bを特定し、当該スケジュール通知に従って、データキュー106a又は106bにおけるメッセージ(すなわちデータブロック)が投入されるタイムスロットを更新する処理を行う(ステップS805)。スケジュール通知で通知された送信スケジュールとスケジューリング要求における送信スケジュールとが一致する場合もあるので、その場合には特に処理は行わない。異なるタイムスロットに移動させられた場合には、そのタイムスロットのキューにエンキューする。そのタイムスロットのデータなければ、この段階で生成する。
さらに、リスケジューラ1083は、更新があったタイムスロットのうち未処理のタイムスロットを1つ特定する(ステップS807)。なお、更新があったタイムスロットが存在しない場合には、処理を終了する。一方、更新があったタイムスロットは複数の場合もある。
そうすると、リスケジューラ1083は、特定されたタイムスロットのデータを全送信先についてデータキュー106a又は106bから読み出して、メッセージ数(データブロック数)を合算する(ステップS809)。
そして、リスケジューラ1083は、特定されたタイムスロットで送信されるメッセージの数は、リソースデータ格納部112に格納されている送信リソースの範囲内であるか否かを判断する(ステップS811)。
特定されたタイムスロットで送信されるメッセージの数が送信リソースの範囲内(最大メッセージ数)であれば、リスケジューラ1083は、更新があったタイムスロットのうち、未処理のスロットが存在するか否かを判断する(ステップS813)。未処理のスロットが存在しない場合には、処理を終了する。また、未処理のスロットが存在する場合には、処理はステップS807に戻る。
一方、特定されたタイムスロットで送信されるメッセージの数が、送信リソースの範囲内ではない、すなわち送信リソースが不足する場合には、処理は端子Mを介して図59の処理に移行する。
図59の処理の説明に移行して、リスケジューラ1083は、特定されたタイムスロット内のメッセージ(データブロック)を、本ノードの送信期限を第1のキーとして、送達期限を第2のキーとしてソートする(ステップS815)。
その後、リスケジューラ1083は、次回以降にスケジューリング要求の対象となる各タイムスロットについて、全送信先のメッセージの数を合算する(ステップS816)。
そして、リスケジューラ1083は、次回以降にスケジューリング要求の対象となるいずれかのタイムスロットに空きが存在するか否かを判断する(ステップS817)。空きがなければ処理はステップS821に移行する。
一方、空きがあれば、リスケジューラ1083は、特定されたタイムスロットの末尾から、空きのあるタイムスロットの先頭にメッセージを移動させる(ステップS819)。
なお、2以上のメッセージが送信リソースの範囲を超える場合もある。この場合には、タイムスロットの空き数だけ、特定されたタイムスロットの末端からメッセージを取り出して、移動させる。3つのメッセージが送信リソースの範囲を超えるが、次回以降にスケジューリング要求の対象となるタイムスロットに2つしか空きがない場合には、2つだけメッセージをそのタイムスロットに移動させる。残りの1つは以下の処理で対応策が決定される。
そして、リスケジューラ1083は、特定されたタイムスロットにはまだ送信リソースの範囲を超えるメッセージが割り当てられている状態であるか否かを判断する(ステップS821)。この条件を満たさない場合には、処理は端子Nを介して図58のステップS813に戻る。
一方、この条件を満たす場合には、リスケジューラ1083は、他のタイムスロットに移動させることができなかったメッセージ(データブロック)を、現在生成されているタイムスロットより後ろにタイムスロットを追加設定して、当該追加タイムスロットに、移動させられなかったメッセージ(データブロック)移動させる(ステップS823)。
このようにすれば、スケジューリングウィンドウの各タイムスロットにおいては、送信リソースの範囲内にメッセージの送信を抑制できるので、輻輳が抑制され、データ送信の遅延が抑制される。
以下、図58及び図59で説明した処理について、図60A乃至図60Eにおいて具体例を用いて説明する。
まず、例えばノードDにおいて、送信先ノードA、ノードB及びノードCについて、データキュー106a乃至106cが、図60Aに示す状態であるものとする。そのため、図60Bの左側に示すようなスケジューリング要求が、ノードA、ノードB及びノードCに送信される。ノードA、ノードB及びノードCにおいては、その第2スケジューラ109が処理を行って、図60Bの右側に示すようなスケジュール結果が生成されたものとする。なお、ノードAにおけるスケジュール結果は、2番目のタイムスロットにおけるメッセージ(データブロック)を1つ3番目のタイムスロットに移動させることを示している。同様に、ノードCにおけるスケジュール結果は、2番目のタイムスロットにおけるメッセージ(データブロック)を1つ3番目のタイムスロットに移動させることを示している。
そうすると、ノードDにおけるデータキュー106a乃至106cは、図60Cに示すような状態に更新される。但し、3番目のタイムスロットに割り当てられたメッセージ(データブロック)の数が増加している。
ここで、上で述べた処理フローによれば、図60Dの左側に示すように、ノードA乃至ノードCへ送信されるメッセージの数を、各タイムスロットで合算する。そうすると、3番目のタイムスロットにおいて送信リソースの範囲を超えるメッセージの送信が予定されるようになる。
しかしながら、これでは3番目のタイムスロットでメッセージを送りきれないので、図60Dに示すように、この例では1つのメッセージ(データブロック)を、他のタイムスロットへ移動させる。但し、第1のスケジューリングウィンドウについては既に他のノードでスケジューリングが行われてしまっているので、第1のスケジューリングウィンドウに含まれるタイムスロットへ移動させることはできない。そこで、第2のスケジューリングウィンドウ以降のタイムスロットへ移動させる。図60Dの右側に示すように、5番目のタイムスロットにおいては空きリソースが存在しているので、このタイムスロットに、3番目のタイムスロットにおいて優先順位が最下位のメッセージ(データブロック)を、移動させる。そうすると、ノードA乃至Cのためのデータキュー106a乃至106cは、図60Eに示すような状態となる。
このようにすれば、スケジュール済みのタイムスロットに影響を最小限度に抑えつつ、輻輳などによるデータ送信の遅延を抑制できるようになる。
なお、本実施の形態についても、第2の実施の形態のように、データサイズを考慮するように変形しても良い。
以上、本発明に係る実施の形態を説明したが、本発明はこれに限定されるものではない。
例えば、処理フローについては、処理結果が変わらない限り、処理順番を入れ替えたり、並列処理するようにしても良い。機能ブロック図も一例であって、プログラムモジュール構成及びファイル構成と一致しない場合もある。
さらに、上で述べた実施の形態を、任意に組み合わせるようにしても良い。
なお、上で述べたノードは、コンピュータ装置であって、図61に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本実施の形態をまとめると、以下のようになる。
本実施の形態に係る情報通信方法は、(A)第1の情報処理装置は、1又は複数のデータブロックについての第1の送信スケジュールを、1又は複数のデータブロックの送信先である第2の情報処理装置に送信し、(B)第2の情報処理装置は、第1の送信スケジュールを第1の情報処理装置から受信し、(C)第2の情報処理装置は、受信した第1の送信スケジュールと、第2の情報処理装置の受信リソースとに基づき、受信した第1の送信スケジュールに含まれる1又は複数のデータブロックの少なくとも一部のデータブロックについて第2の送信スケジュールを決定し、(D)第2の情報処理装置は、第2の送信スケジュールを、第1の情報処理装置に送信し、(E)第1の情報処理装置は、第2の情報処理装置から第2の送信スケジュールを受信し、(F)第1の情報処理装置は、受信した第2の送信スケジュールに基づき、当該第2の送信スケジュールで規定されているデータブロックを、第2の情報処理装置に送信する処理を含む。
このようにすれば、受信側の第2の情報処理装置において受信リソースを超えるようなデータブロック(例えばメッセージ)を受信することを回避でき、データ送信の遅延を抑制できる。
なお、上で述べた第1の送信スケジュールが、複数のタイムスロットについての送信スケジュールである場合もある。また、上で述べた第2の送信スケジュールが、複数のタイムスロットのうちの少なくともいずれかについての送信スケジュールである場合もある。このように複数のタイムスロットについて処理することで、受信リソースを超えるようなデータブロックの受信を回避するようなスケジューリングが容易になる。
また、上で述べた決定する処理が、(c1)第1の情報処理装置における送信期限と宛先での到着期限とのうち少なくともいずれかによって1又は複数のデータブロックを優先順位付けする処理を含むようにしても良い。このようにすれば、データ送信の遅延を最小限度に抑えることができるようになる。
また、上で述べた決定する処理が、(c2)複数のタイムスロットのうちのあるタイムスロットについて、当該あるタイムスロットに送信がスケジュールされたデータブロックの数又はデータ量が閾値以下であるか否かを判断し、(c3)あるタイムスロットに送信がスケジュールされたデータブロックの数又はデータ量が閾値を超える場合には、あるタイムスロットに送信がスケジュールされたデータブロックのうち優先順位に基づき選択されたデータブロックを、あるタイムスロットの前又は後のタイムスロットに割り当てる処理を含むようにしても良い。このようにすれば、確実に受信リソースの範囲内でデータブロック(メッセージ)を受信できるようになる。
さらに、上で述べた割り当てる処理が、(c31)あるタイムスロットに送信がスケジュールされたデータブロックのうち優先順位に基づき選択されるデータブロック(例えば優先順位が最上位から選択されるデータブロック)を、あるタイムスロットの前のタイムスロットに割り当てられるか判断し、(c32)割り当てられない場合には、あるタイムスロットに送信がスケジュールされたデータブロックのうち優先順位に基づき選択されるデータブロック(例えば優先順位が最下位から選択されるデータブロック)を、あるタイムスロットの後のタイムスロットに割り当てる処理を含むようにしても良い。これによって送信スケジュールを変更することによって生ずる遅延を最小限に抑制できるようになる。
さらに、第1の情報処理装置が複数であって、第1の送信スケジュールでスケジュールされたタイムスロットが複数の第1の情報処理装置において異なる場合には、上で述べた決定する処理が、(c4)複数の第1の情報処理装置から受信した第1の送信スケジュールでスケジュールされたタイムスロットのうち共通するタイムスロットについて、当該あるタイムスロットに送信がスケジュールされたデータブロックの数又はデータ量が閾値以下であるか否かを判断し、(c5)あるタイムスロットに送信がスケジュールされたデータブロックの数又はデータ量が閾値を超える場合には、あるタイムスロットに送信がスケジュールされたデータブロックのうち優先順位に基づき選択されたデータブロックを、あるタイムスロットの前又は後のタイムスロットに割り当てる処理を含むようにしても良い。
第1の送信スケジュールにおけるタイムスロットが送信元の第1の情報処理装置によってずれている場合には、このようにすればずれを吸収しつつ第2の送信スケジュールを生成できる。
さらに、上記情報通信方法は、(G)第1の情報処理装置が、受信したデータブロックの送信期限に応じて第1の送信スケジュールを生成する処理をさらに含むようにしても良い。
また、上記情報通信方法は、(H)第1の情報処理装置が、受信したデータブロックの送信期限に応じて、当該データブロックを送信すべきタイムスロットを特定し、(I)第1の情報処理装置が、特定したタイムスロットにおいて送信すべきデータブロックの数又はデータ量が閾値以下であるか否かを判断し、(J)第1の情報処理装置が、特定したタイムスロットにおいて送信すべきデータブロックの数又はデータ量が閾値を超える場合には、特定したタイムスロットに送信がスケジュールされたデータブロックのうち優先順位に基づき選択されたデータブロックを、特定したタイムスロットの前又は後のタイムスロットに割り当てる処理をさらに含むようにしても良い。
これによって、送信リソースを超えるようなデータブロック(メッセージ)の送信が抑制される。
さらに、第2の情報処理装置が複数である場合、(K)第1の情報処理装置が、受信したデータブロックの送信期限及び第2の情報処理装置に応じて第1の送信スケジュールを生成する処理をさらに含むようにしても良い。送信先毎に処理を行うものである。
さらに、第2の情報処理装置が複数である場合、(L)第1の情報処理装置が、受信したデータブロックの送信期限及び第2の情報処理装置に応じて第1の送信スケジュールを生成してもよい。この場合、上で述べた第2の送信スケジュールを受信する処理において、(e1)第1の情報処理装置が、複数の第2の情報処理装置のうちいずれかの第2の情報処理装置から第2の送信スケジュールを受信する場合がある。さらに、上で述べたデータブロックを送信する処理が、(f1)受信した第2の送信スケジュールが、受信した第2の送信スケジュールの送信元の第2の情報処理装置に送信した第1の送信スケジュールとは異なる場合、相違があるタイムスロットにおいて送信すべきデータブロックの数又はデータ量が閾値を超える場合には、相違があるタイムスロットに送信がスケジュールされたデータブロックのうち優先順位に基づき選択されたデータブロックを、第2の送信スケジュールより後のタイムスロットに割り当てる処理を含むようにしても良い。
複数の第2の情報処理装置があれば、第2の送信スケジュールに従うと送信リソースを超えるような送信スケジュールが規定される場合もあるので、それを適切に是正するものである。
なお、本実施の形態に係るデータフロー上流側の情報処理装置は、(M)1又は複数のデータブロックについての第1の送信スケジュールを、1又は複数のデータブロックの送信先であって第1の送信スケジュールに含まれる1又は複数のデータブロックの少なくとも一部のデータブロックについて受信リソースに基づき第2の送信スケジュールを生成する第2の情報処理装置に送信する第1の送信部と、(N)第2の情報処理装置から第2の送信スケジュールを受信する受信部と、(O)受信した第2の送信スケジュールに基づき、当該第2の送信スケジュールで規定されているデータブロックを、第2の情報処理装置に送信する第2の送信部とを有する。
本実施の形態に係るデータフロー下流側の情報処理装置は、(P)1又は複数のデータブロックについての第1の送信スケジュールを、1又は複数のデータブロックの送信元である第2の情報処理装置から受信する受信部と、(Q)受信した第1の送信スケジュールと、第2の情報処理装置の受信リソースとに基づき、受信した第1の送信スケジュールに含まれる1又は複数のデータブロックの少なくとも一部のデータブロックについて第2の送信スケジュールを決定する決定部と、(R)第2の送信スケジュールを、第2の情報処理装置に送信する送信部とを有する。
なお、上で述べたような処理をプロセッサ又はコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
第1の情報処理装置は、1又は複数のデータブロックについての第1の送信スケジュールを、前記1又は複数のデータブロックの送信先である第2の情報処理装置に送信し、
前記第2の情報処理装置は、前記第1の送信スケジュールを前記第1の情報処理装置から受信し、
前記第2の情報処理装置は、受信した前記第1の送信スケジュールと、前記第2の情報処理装置の受信リソースとに基づき、受信した前記第1の送信スケジュールに含まれる前記1又は複数のデータブロックの少なくとも一部のデータブロックについて第2の送信スケジュールを決定し、
前記第2の情報処理装置は、前記第2の送信スケジュールを、前記第1の情報処理装置に送信し、
前記第1の情報処理装置は、前記第2の情報処理装置から前記第2の送信スケジュールを受信し、
前記第1の情報処理装置は、受信した前記第2の送信スケジュールに基づき、当該第2の送信スケジュールで規定されているデータブロックを、前記第2の情報処理装置に送信する
処理を含む、情報通信方法。
(付記2)
前記第1の送信スケジュールが、複数のタイムスロットについての送信スケジュールであり、
前記第2の送信スケジュールが、前記複数のタイムスロットのうちの少なくともいずれかについての送信スケジュールである
付記1記載の情報通信方法。
(付記3)
前記決定する処理が、
前記第1の情報処理装置における送信期限と宛先での到着期限とのうち少なくともいずれかによって前記1又は複数のデータブロックを優先順位付けする処理
を含む付記1又は2記載の情報通信方法。
(付記4)
前記決定する処理が、
前記複数のタイムスロットのうちのあるタイムスロットについて、当該あるタイムスロットに送信がスケジュールされたデータブロックの数又はデータ量が閾値以下であるか否かを判断し、
前記あるタイムスロットに送信がスケジュールされたデータブロックの数又はデータ量が閾値を超える場合には、前記あるタイムスロットに送信がスケジュールされたデータブロックのうち優先順位に基づき選択されたデータブロックを、前記あるタイムスロットの前又は後のタイムスロットに割り当てる
処理を含む付記2記載の情報通信方法。
(付記5)
前記割り当てる処理が、
前記あるタイムスロットに送信がスケジュールされたデータブロックのうち優先順位に基づき選択されるデータブロックを、前記あるタイムスロットの前のタイムスロットに割り当てられるか判断し、
割り当てられない場合には、前記あるタイムスロットに送信がスケジュールされたデータブロックのうち優先順位に基づき選択されるデータブロックを、前記あるタイムスロットの後のタイムスロットに割り当てる
処理を含む付記4記載の情報通信方法。
(付記6)
前記第1の情報処理装置が複数であって、前記第1の送信スケジュールでスケジュールされたタイムスロットが前記複数の第1の情報処理装置において異なる場合には、
前記決定する処理が、
前記複数の第1の情報処理装置から受信した前記第1の送信スケジュールでスケジュールされたタイムスロットのうち共通するタイムスロットについて、当該あるタイムスロットに送信がスケジュールされたデータブロックの数又はデータ量が閾値以下であるか否かを判断し、
前記あるタイムスロットに送信がスケジュールされたデータブロックの数又はデータ量が閾値を超える場合には、前記あるタイムスロットに送信がスケジュールされたデータブロックのうち優先順位に基づき選択されたデータブロックを、前記あるタイムスロットの前又は後のタイムスロットに割り当てる
処理を含む付記2記載の情報通信方法。
(付記7)
前記第1の情報処理装置が、受信したデータブロックの送信期限に応じて第1の送信スケジュールを生成する
処理をさらに含む付記1乃至6のいずれか1つ記載の情報通信方法。
(付記8)
前記第1の情報処理装置が、受信したデータブロックの送信期限に応じて、当該データブロックを送信すべきタイムスロットを特定し、
前記第1の情報処理装置が、特定した前記タイムスロットにおいて送信すべきデータブロックの数又はデータ量が閾値以下であるか否かを判断し、
前記第1の情報処理装置が、特定した前記タイムスロットにおいて送信すべきデータブロックの数又はデータ量が閾値を超える場合には、特定した前記タイムスロットに送信がスケジュールされたデータブロックのうち優先順位に基づき選択されたデータブロックを、特定した前記タイムスロットの前又は後のタイムスロットに割り当てる
処理をさらに含む付記1乃至6のいずれか1つ記載の情報通信方法。
(付記9)
前記第2の情報処理装置が複数である場合、
前記第1の情報処理装置が、受信したデータブロックの送信期限及び前記第2の情報処理装置に応じて第1の送信スケジュールを生成する
処理をさらに含む付記1乃至6のいずれか1つ記載の情報通信方法。
(付記10)
前記第2の情報処理装置が複数である場合、
前記第1の情報処理装置が、受信したデータブロックの送信期限及び前記第2の情報処理装置に応じて第1の送信スケジュールを生成し、
前記第2の送信スケジュールを受信する処理において、
前記第1の情報処理装置が、前記複数の第2の情報処理装置のうちいずれかの第2の情報処理装置から前記第2の送信スケジュールを受信し、
前記データブロックを送信する処理が、
受信した前記第2の送信スケジュールが、受信した前記第2の送信スケジュールの送信元の第2の情報処理装置に送信した第1の送信スケジュールとは異なる場合、相違があるタイムスロットにおいて送信すべきデータブロックの数又はデータ量が閾値を超える場合には、前記相違があるタイムスロットに送信がスケジュールされたデータブロックのうち優先順位に基づき選択されたデータブロックを、前記第2の送信スケジュールより後のタイムスロットに割り当てる
処理を含む付記1乃至6のいずれか1つ記載の情報通信方法。
(付記11)
第1の情報処理装置に、
1又は複数のデータブロックについての第1の送信スケジュールを、前記1又は複数のデータブロックの送信先であって前記第1の送信スケジュールに含まれる1又は複数のデータブロックの少なくとも一部のデータブロックについて受信リソースに基づき第2の送信スケジュールを生成する第2の情報処理装置に送信し、
前記第2の情報処理装置から前記第2の送信スケジュールを受信し、
受信した前記第2の送信スケジュールに基づき、当該第2の送信スケジュールで規定されているデータブロックを、前記第2の情報処理装置に送信する
処理を実行させるプログラム。
(付記12)
第1の情報処理装置に、
1又は複数のデータブロックについての第1の送信スケジュールを、前記1又は複数のデータブロックの送信元である第2の情報処理装置から受信し、
受信した前記第1の送信スケジュールと、前記第2の情報処理装置の受信リソースとに基づき、受信した前記第1の送信スケジュールに含まれる前記1又は複数のデータブロックの少なくとも一部のデータブロックについて第2の送信スケジュールを決定し、
前記第2の送信スケジュールを、前記第2の情報処理装置に送信する
処理を実行させるためのプログラム。
(付記13)
情報処理装置であって、
1又は複数のデータブロックについての第1の送信スケジュールを、前記1又は複数のデータブロックの送信先であって前記第1の送信スケジュールに含まれる1又は複数のデータブロックの少なくとも一部のデータブロックについて受信リソースに基づき第2の送信スケジュールを生成する第2の情報処理装置に送信する第1の送信部と、
前記第2の情報処理装置から前記第2の送信スケジュールを受信する受信部と、
受信した前記第2の送信スケジュールに基づき、当該第2の送信スケジュールで規定されているデータブロックを、前記第2の情報処理装置に送信する第2の送信部と、
を有する情報処理装置。
(付記14)
情報処理装置であって、
1又は複数のデータブロックについての第1の送信スケジュールを、前記1又は複数のデータブロックの送信元である第2の情報処理装置から受信する受信部と、
受信した前記第1の送信スケジュールと、前記第2の情報処理装置の受信リソースとに基づき、受信した前記第1の送信スケジュールに含まれる前記1又は複数のデータブロックの少なくとも一部のデータブロックについて第2の送信スケジュールを決定する決定部と、
前記第2の送信スケジュールを、前記第2の情報処理装置に送信する送信部と、
を有する情報処理装置。
101 データ受信部
102 第1スケジューラ
103 リンクデータ格納部
104 データ転送ルート格納部
105 レイテンシデータ格納部
106 データキュー
107 データ送信部
108 スケジュールネゴシエータ
109 第2スケジューラ
110 リソース管理データ格納部
111 スケジューリングデータ格納部
1081 スケジューリング要求部
1082 スケジュール受信部
1083 リスケジューラ
1091 要求受信部
1092 スケジューリング処理部
1093 通知部

Claims (10)

  1. 第1の情報処理装置は、1又は複数のデータブロックについての第1の送信スケジュールを、前記1又は複数のデータブロックの送信先である第2の情報処理装置に送信し、
    前記第2の情報処理装置は、
    前記第1の送信スケジュールを前記第1の情報処理装置から受信し、
    受信した前記第1の送信スケジュールに定義された複数のタイムスロットのうちのあるタイムスロットについて、当該あるタイムスロットに送信がスケジュールされたデータブロックの数又はデータ量が閾値を超えるか否かを判断し、
    前記あるタイムスロットに送信がスケジュールされたデータブロックの数又はデータ量が前記閾値を超える場合には、前記あるタイムスロットに送信がスケジュールされたデータブロックのうち優先順位に基づき選択される第1のデータブロックを、前記あるタイムスロットの前のタイムスロットに割り当てられるか判断し、
    前記第1のデータブロックを前記あるタイムスロットの前のタイムスロットに割り当てられる場合には、前記第1のデータブロックを前記あるタイムスロットの前のタイムスロットに割り当て、
    前記第1のデータブロックを前記あるタイムスロットの前のタイムスロットに割り当てられない場合には、前記あるタイムスロットに送信がスケジュールされたデータブロックのうち前記優先順位に基づき選択される第2のデータブロックを、前記あるタイムスロットの後のタイムスロットに割り当て、
    前記第1のデータブロックの割り当て又は前記第2のデータブロックの割り当てに基づき、受信した前記第1の送信スケジュールに含まれる前記1又は複数のデータブロックの少なくとも一部のデータブロックについて第2の送信スケジュールを決定し、
    記第2の送信スケジュールを、前記第1の情報処理装置に送信し、
    前記第1の情報処理装置は、
    前記第2の情報処理装置から前記第2の送信スケジュールを受信し、
    信した前記第2の送信スケジュールに基づき、当該第2の送信スケジュールで規定されているデータブロックを、前記第2の情報処理装置に送信する
    処理を含む、情報通信方法。
  2. 記第2の送信スケジュールが、前記複数のタイムスロットのうちの少なくともいずれかについての送信スケジュールである
    請求項1記載の情報通信方法。
  3. 前記優先順位が、
    前記第1の情報処理装置における送信期限と宛先での到着期限とのうち少なくともいずれかによって決定される優先順位である
    求項1又は2記載の情報通信方法。
  4. 前記第1の情報処理装置が複数であって、前記第1の送信スケジュールに定義されたタイムスロットが前記複数の第1の情報処理装置において異なる場合には、
    前記あるタイムスロットが、
    前記複数の第1の情報処理装置から受信した前記第1の送信スケジュールに定義されたタイムスロットのうち共通するタイムスロットである
    求項1乃至3記載の情報通信方法。
  5. 前記第1の情報処理装置が、受信したデータブロックの送信期限に応じて第1の送信スケジュールを生成する
    処理をさらに含む請求項1乃至のいずれか1つ記載の情報通信方法。
  6. 前記第1の情報処理装置が、受信したデータブロックの送信期限に応じて、当該データブロックを送信すべきタイムスロットを特定し、
    前記第1の情報処理装置が、特定した前記タイムスロットにおいて送信すべきデータブロックの数又はデータ量が第2の閾値を超えるか否かを判断し、
    前記第1の情報処理装置が、特定した前記タイムスロットにおいて送信すべきデータブロックの数又はデータ量が前記第2の閾値を超える場合には、特定した前記タイムスロットに送信がスケジュールされたデータブロックのうち優先順位に基づき選択されたデータブロックを、特定した前記タイムスロットの前又は後のタイムスロットに割り当てる
    処理をさらに含む請求項1乃至のいずれか1つ記載の情報通信方法。
  7. 前記第2の情報処理装置が複数である場合、
    前記第1の情報処理装置が、前記複数の第2の情報処理装置の各々について、受信したデータブロックのうち当該第2の情報処理装置へ送信されるデータブロックの送信期限に応じて第1の送信スケジュールを生成する
    処理をさらに含む請求項1乃至のいずれか1つ記載の情報通信方法。
  8. 前記第2の情報処理装置が複数である場合、
    前記第1の情報処理装置が、前記複数の第2の情報処理装置の各々について、受信したデータブロックのうち当該第2の情報処理装置へ送信されるデータブロックの送信期限に応じて第1の送信スケジュールを生成し、
    前記第2の送信スケジュールを受信する処理において、
    前記第1の情報処理装置が、前記複数の第2の情報処理装置のうちいずれかの第2の情報処理装置から前記第2の送信スケジュールを受信し、
    前記データブロックを送信する処理が、
    受信した前記第2の送信スケジュールが、受信した前記第2の送信スケジュールの送信元の第2の情報処理装置に送信した第1の送信スケジュールとは異なる場合、相違があるタイムスロットにおいて送信すべきデータブロックの数又はデータ量が第2の閾値を超える場合には、前記相違があるタイムスロットに送信がスケジュールされたデータブロックのうち優先順位に基づき選択されたデータブロックを、前記第2の送信スケジュールより後のタイムスロットに割り当てる
    処理を含む請求項1乃至のいずれか1つ記載の情報通信方法。
  9. 第1の情報処理装置に、
    1又は複数のデータブロックについての第1の送信スケジュールを、前記1又は複数のデータブロックの送信元である第2の情報処理装置から受信し、
    受信した前記第1の送信スケジュールに定義された複数のタイムスロットのうちのあるタイムスロットについて、当該あるタイムスロットに送信がスケジュールされたデータブロックの数又はデータ量が閾値を超えるか否かを判断し、
    前記あるタイムスロットに送信がスケジュールされたデータブロックの数又はデータ量が前記閾値を超える場合には、前記あるタイムスロットに送信がスケジュールされたデータブロックのうち優先順位に基づき選択される第1のデータブロックを、前記あるタイムスロットの前のタイムスロットに割り当てられるか判断し、
    前記第1のデータブロックを前記あるタイムスロットの前のタイムスロットに割り当てられる場合には、前記第1のデータブロックを前記あるタイムスロットの前のタイムスロットに割り当て、
    前記第1のデータブロックを前記あるタイムスロットの前のタイムスロットに割り当てられない場合には、前記あるタイムスロットに送信がスケジュールされたデータブロックのうち前記優先順位に基づき選択される第2のデータブロックを、前記あるタイムスロットの後のタイムスロットに割り当て、
    前記第1のデータブロックの割り当て又は前記第2のデータブロックの割り当てに基づき、受信した前記第1の送信スケジュールに含まれる前記1又は複数のデータブロックの少なくとも一部のデータブロックについて第2の送信スケジュールを決定し、
    前記第2の送信スケジュールを、前記第2の情報処理装置に送信する
    処理を実行させるためのプログラム。
  10. 情報処理装置であって、
    1又は複数のデータブロックについての第1の送信スケジュールを、前記1又は複数のデータブロックの送信元である第2の情報処理装置から受信する受信部と、
    受信した前記第1の送信スケジュールに定義された複数のタイムスロットのうちのあるタイムスロットについて、当該あるタイムスロットに送信がスケジュールされたデータブロックの数又はデータ量が閾値を超えるか否かを判断し、
    前記あるタイムスロットに送信がスケジュールされたデータブロックの数又はデータ量が前記閾値を超える場合には、前記あるタイムスロットに送信がスケジュールされたデータブロックのうち優先順位に基づき選択される第1のデータブロックを、前記あるタイムスロットの前のタイムスロットに割り当てられるか判断し、
    前記第1のデータブロックを前記あるタイムスロットの前のタイムスロットに割り当てられる場合には、前記第1のデータブロックを前記あるタイムスロットの前のタイムスロットに割り当て、
    前記第1のデータブロックを前記あるタイムスロットの前のタイムスロットに割り当てられない場合には、前記あるタイムスロットに送信がスケジュールされたデータブロックのうち前記優先順位に基づき選択される第2のデータブロックを、前記あるタイムスロットの後のタイムスロットに割り当て、
    前記第1のデータブロックの割り当て又は前記第2のデータブロックの割り当てに基づき、受信した前記第1の送信スケジュールに含まれる前記1又は複数のデータブロックの少なくとも一部のデータブロックについて第2の送信スケジュールを決定する決定部と、
    前記第2の送信スケジュールを、前記第2の情報処理装置に送信する送信部と、
    を有する情報処理装置。
JP2014048196A 2014-03-11 2014-03-11 情報通信方法及び情報処理装置 Expired - Fee Related JP6244998B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014048196A JP6244998B2 (ja) 2014-03-11 2014-03-11 情報通信方法及び情報処理装置
US14/632,309 US10292181B2 (en) 2014-03-11 2015-02-26 Information communication method and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014048196A JP6244998B2 (ja) 2014-03-11 2014-03-11 情報通信方法及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2015173361A JP2015173361A (ja) 2015-10-01
JP6244998B2 true JP6244998B2 (ja) 2017-12-13

Family

ID=54070560

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014048196A Expired - Fee Related JP6244998B2 (ja) 2014-03-11 2014-03-11 情報通信方法及び情報処理装置

Country Status (2)

Country Link
US (1) US10292181B2 (ja)
JP (1) JP6244998B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5704234B2 (ja) * 2011-05-23 2015-04-22 富士通株式会社 メッセージ判定装置およびメッセージ判定プログラム
WO2016009278A2 (en) 2014-06-27 2016-01-21 Techflux, Ltd. Method and device for transmitting data
CN107079485B (zh) 2014-06-27 2020-10-30 泰科弗勒克斯公司 用于发送数据的方法和装置
WO2019005108A1 (en) * 2017-06-30 2019-01-03 Intel Corporation DATA MANAGEMENT TECHNOLOGIES IN VEHICLE BASED COMPUTING PLATFORMS
US11109408B2 (en) 2019-08-16 2021-08-31 Techflux, Inc. Method and device for uplink transmission
JP7574936B2 (ja) * 2021-07-19 2024-10-29 日本電信電話株式会社 信号転送制御装置、信号転送制御方法、信号転送制御プログラム、及び信号転送システム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999038292A1 (en) 1998-01-23 1999-07-29 Kabushiki Kaisha Toshiba Point-to-multipoint communication system
JP2000270010A (ja) 1999-03-16 2000-09-29 Nippon Telegr & Teleph Corp <Ntt> 蓄積型データ転送方式およびデータ転送スケジュール決定方法
US7027409B2 (en) * 2002-01-10 2006-04-11 Harris Corporation Method and device for establishing communication links and for estimating overall quality of a directional link and reporting to OLSR in a communication system
US7664126B2 (en) * 2002-07-31 2010-02-16 Sharp Kabushiki Kaisha Data communication apparatus, intermittent communication method therefor, program describing the method and recording medium for recording the program
US7339923B2 (en) * 2003-10-31 2008-03-04 Rivulet Communications, Inc. Endpoint packet scheduling system
WO2006077907A1 (ja) * 2005-01-20 2006-07-27 Nec Corporation 無線リソース割り当てシステム、無線制御局及びそれらに用いる無線リソース割り当て方法並びにそのプログラム
JP4574600B2 (ja) * 2006-08-25 2010-11-04 エヌ・ティ・ティ・コミュニケーションズ株式会社 ゲートウェイ装置、データ集約装置、データ集約システム、データ送信方法、及びプログラム
JP5076992B2 (ja) * 2008-03-18 2012-11-21 富士通株式会社 無線通信システムにおける上り無線リソースの割当て方法、無線基地局および無線端末
JP4779036B2 (ja) * 2009-05-01 2011-09-21 株式会社エヌ・ティ・ティ・ドコモ 移動通信方法及び無線基地局
JP2010272905A (ja) * 2009-05-19 2010-12-02 Fujitsu General Ltd リピータ装置及びこれを備えた空調ネットワークシステム
CN102123399B (zh) * 2010-01-08 2014-01-01 华为技术有限公司 调度请求的方法及装置
CA2803976A1 (en) * 2010-06-28 2012-01-05 Research In Motion Limited Method and system for radio access technology selection
JP5578107B2 (ja) * 2011-02-22 2014-08-27 株式会社Jvcケンウッド サーバ装置および情報提供方法
KR101740707B1 (ko) * 2011-05-13 2017-05-26 연세대학교 산학협력단 무선 다중 홉 네트워크에서의 전송 스케줄링 장치 및 방법
US8837398B2 (en) * 2011-11-01 2014-09-16 Google Inc. Generating transmission schedules
JP5949115B2 (ja) * 2012-05-07 2016-07-06 富士ゼロックス株式会社 通信管理システム及びプログラム
JP5906950B2 (ja) 2012-06-06 2016-04-20 富士通株式会社 コンテンツ配信のための情報処理方法及び装置
JP6083476B2 (ja) * 2014-01-15 2017-02-22 日本電気株式会社 ログデータ収集システム、端末装置及びログデータ収集方法

Also Published As

Publication number Publication date
JP2015173361A (ja) 2015-10-01
US10292181B2 (en) 2019-05-14
US20150264713A1 (en) 2015-09-17

Similar Documents

Publication Publication Date Title
JP6244998B2 (ja) 情報通信方法及び情報処理装置
JP5320512B2 (ja) 中継器、中継器の制御方法、およびプログラム
JP6398674B2 (ja) データ送信方法、データ送信プログラム、及び情報処理装置
JP5603481B2 (ja) 中継装置
EP3611889B1 (en) Scheduled service processing method and apparatus
CN113032938A (zh) 时间敏感流的路由调度方法、装置、电子设备及介质
US20200204500A1 (en) Enhance communication of network traffic
JPWO2014017069A1 (ja) バスシステムおよび中継器
EP3295629B1 (en) Query plan and operation-aware communication buffer management
JP6499097B2 (ja) リソース割当計算装置、リソース割当計算方法、及びプログラム
Sun et al. Joint routing and scheduling optimization of in-vehicle time-sensitive networks based on improved grey wolf optimizer
KR101226177B1 (ko) 멀티 프로세서 환경에서 효율적인 데이터 전송을 위한 방법및 시스템
Sharma et al. Packet scheduling scheme to guarantee QoS in internet of things
CN116545915A (zh) 确定性路由的设置方法、装置、电子设备及存储介质
CN119806839A (zh) 一种资源分配方法及电子设备
CN103067306A (zh) 分配带宽的方法及装置
EP3485618B1 (en) Device and method for managing end-to-end connections
JP5307745B2 (ja) トラヒック制御システムと方法およびプログラムならびに通信中継装置
KR20120055947A (ko) 가입자 인지 플로우별 QoS 제공 방법 및 장치
JP6279981B2 (ja) エラスティック光パスネットワークシステム、スペクトル割り当て方法及びプログラム
JP6402576B2 (ja) 通信装置、情報処理装置、情報処理システム及び通信装置の制御方法
Ogawa et al. Cloud bursting approach based on predicting requests for business-critical web systems
CN109547360B (zh) 数据传输调度方法和装置
JPWO2016088371A1 (ja) 管理ノード、端末、通信システム、通信方法、および、プログラム記録媒体
RU2684581C2 (ru) Способ стохастической диспетчеризации очередей коммутатора и устройство, его реализующее

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170901

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: 20171017

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171030

R150 Certificate of patent or registration of utility model

Ref document number: 6244998

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees