JP6641288B2 - ワイド・エリア・ネットワークを介したデーター転送に対する長期スケジュールの計算 - Google Patents

ワイド・エリア・ネットワークを介したデーター転送に対する長期スケジュールの計算 Download PDF

Info

Publication number
JP6641288B2
JP6641288B2 JP2016557247A JP2016557247A JP6641288B2 JP 6641288 B2 JP6641288 B2 JP 6641288B2 JP 2016557247 A JP2016557247 A JP 2016557247A JP 2016557247 A JP2016557247 A JP 2016557247A JP 6641288 B2 JP6641288 B2 JP 6641288B2
Authority
JP
Japan
Prior art keywords
network
computing device
long
data
term schedule
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
Application number
JP2016557247A
Other languages
English (en)
Other versions
JP2017508403A5 (ja
JP2017508403A (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2017508403A publication Critical patent/JP2017508403A/ja
Publication of JP2017508403A5 publication Critical patent/JP2017508403A5/ja
Application granted granted Critical
Publication of JP6641288B2 publication Critical patent/JP6641288B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/121Shortest path evaluation by minimising delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/127Avoiding congestion; Recovering from congestion by using congestion prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • H04L47/564Attaching a deadline to packets, e.g. earliest due date first
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/628Queue scheduling characterised by scheduling criteria for service slots or service orders based on packet size, e.g. shortest packet first
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/72Admission control; Resource allocation using reservation actions during connection setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/12Wireless traffic scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/781Centralised allocation of resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)

Description

[0001] ワイド・エリア・ネットワーク(WAN)は、至る所に存在するようになりつつあり、比較的大きなボリュームのデーターが、WANにおいて計算デバイス間で転送されることも多い。大きなボリュームのデーターの転送をサポートするために、それぞれのWANの運営業者は、かなりの量のリソースをコンピューター・ネットワーキング・ハードウェアに投資して、WANにおける計算デバイス間のデーター転送を促進する。WANにおけるこのようなコンピューター・ネットワーキング・ハードウェアの利用を最大化することは、したがって、効率の観点から望ましいことである。
[0002] 生憎、ネットワーク・データー・トラフィックを生成する、WANにおけるデーター転送の要求元(requestor)は、互いに知らないのが通例である。つまり、データー転送の要求元は、WANが要求を処理できるという期待をもって要求を出し、このデーター転送は直ちに開始される。これは比較的小さいボリュームのネットワーク・トラフィックでは大して問題にならないが、比較的大きなボリュームのデーターを伴うデーター転送が時間的に重複すると、WANに過度に負担が強いられるおそれがある。このような重複転送は、1人以上の要求元が彼らの転送を他の時間に遅らせる選択肢を有していても、発生する可能性がある。何故なら、このようなデーター転送の時間をずらすことができるメカニズムが提供されていないからである。その結果、この柔軟性欠如が過度のネットワーク負担期間を生じさせるおそれがあるだけでなく、他の時間期間では、比較的少量のネットワーク・トラフィックしかないこともあるので、WANのハードウェア・リソースが過小利用される時間期間もおそれがある。したがって、WANの運営業者は、大きなボリュームのデーターがWAN上で転送される高デマンド時間期間に対処するために、費用がかかるコンピューター・ネットワーキング・ハードウェアを購入することを強いられることが多い。この結果、通例、WANが過剰にプロビジョニングされ、このような費用がかかるコンピューター・ネットワーキング・ハードウェアがその寿命の大部分にわたって過小利用され続けることになる。
[0003] 以下は、本明細書において更に詳しく説明する主題の端的な摘要である。この摘要は、請求項の範囲のように限定することを意図するのではない。
[0004] 本明細書において説明するのは、複数のデーター転送要求に基づいて、ワイド・エリア・ネットワーク(WAN)のようなネットワークにおけるデーター転送のスケジュールに関する種々の技術であり、要求(request)はそれぞれのデッドラインを有し、データー転送はそれぞれのデッドラインに前に完了されなければならない。実施形態例では、ネットワークは複数のデーター・センタ(各々複数の計算デバイスを含む)を含むことができ、データーを転送する要求は、第1データー・センタにおける計算デバイスから第2データー・センタにおける計算デバイスにデーターを転送する要求とすることができる。ネットワークにおけるデーター・センタは、パブリック・クラウドまたはプライベート・クラウドに含まれることも可能である。パブリック・クラウドは、インターネットによって、データー・センタのリソース(例えば、アプリケーションおよびストレージ)を一般公衆に露出する。対照的に、プライベート・クラウドは、データー・センタのリソースを、データー・センタを運営する私的企業に露出する。
[0005] 更に、ネットワークは、当該ネットワークにおけるデバイス間のデーター転送を促進する複数のデバイスを含む。これら複数のデバイスは、データーを格納し処理するように構成された複数の計算デバイスを含み、この複数の計算デバイスはネットワークのエッジに存在する。例えば、複数の計算デバイスは、データー・センタにおいてサーバー計算デバイスを含むことができる。加えて、複数のデバイスは、複数の計算デバイスにおける計算デバイス間で(among and between)データーの転送を導く(direct)ように構成されたネットワーク・インフラストラクチャー・デバイス(例えば、スイッチ、ルーター、ハブ、ゲートウェイ等)も含む。
[0006] また、ネットワークは、このネットワークを介したデーター転送をスケジューリングするように構成された制御計算デバイス(controller computing device)も含む。例えば、制御計算デバイスは、ネットワークにおけるそれぞれの計算デバイス間でデーターを転送する複数の要求を受けることができ、各要求は、1)それぞれの送信元計算デバイス(例えば、ここからデーターが転送される)、2)それぞれの受信先計算デバイス(例えば、ここにデーターが転送される)、3)送信元計算デバイスから受信先計算デバイスに転送されるそれぞれのデーター量、および4)それぞれのデッドラインを識別することができ、送信元計算デバイスから受信先計算デバイスへのデーター転送は、デッドラインの前に完了されなければならない。制御計算デバイスは、これらの要求を任意の時刻に受けることができ、要求は異なる量のデーターおよび異なるデッドラインを指定することができる。例えば、第1データー転送要求を第1時点において受けることができ、第1時点に近いデッドラインを指定することによって、このデーターの転送が比較的緊急であることを示すことができる。第2データー転送要求は、第2時点において受けることができ(第1時点および第2時点は近い)、第2時点から比較的遠いデッドラインを指定することによって、このデーター転送が特に時間には厳しくないことを示すことができる。
[0007] 制御計算デバイスは、このような要求を受けて、ネットワークにおけるデーターの転送に対して長期スケジュールを計算する。長期スケジュールは、複数の(潜在的に均一の)時間単位をカバーする(cover)ができ、ネットワークを通るデーター・フローは、長期スケジュールによってカバーされる時間単位毎に長期スケジュールにおいて定められる。このため、長期スケジュールは長期スケジュールによってカバーされる時間単位毎にサブスケジュールを含む。非限定的な例では、長期スケジュールは12回の5分間隔をカバーすることができ、時間単位は5分間隔となる。長期スケジュールにおけるこれらの時間単位の各々に対して、長期スケジュールはそれぞれのサブスケジュールを含むことができる。サブスケジュールは、どの計算デバイスがそのサブスケジュールの時間単位の間送信元計算デバイスとして機能するか、計算デバイスがデーターを出力するそれぞれのレート、データーが送信元計算デバイスと受信先計算デバイスとの間を進むそれぞれの経路等を識別することができる。したがって、制御計算デバイスは、ネットワーク・リソースの利用を最大化しつつ、それぞれのデッドラインの前に、要求されたデーター転送の完了を促進するために、長期スケジュールを計算することを確認することができる。このために、一例では、制御計算デバイスは、長期スケジュールに基づいて、新たに受けたデーター転送要求を受け入れるかまたは拒否するか決定することができる(例えば、制御計算デバイスは、長期スケジュール、以前に受けたがデーター転送が未だ完了していない要求、およびそれらのそれぞれのデッドラインに基づいて、その指定されたデッドラインよりも前に、要求されたデーター転送を完了することができるか否か判定することができる)。制御計算デバイスは、新たに受けた要求、ネットワークにおける変化、満たされた要求(それぞれのデーター転送が完了した)等を考慮に入れるために、時の経過に連れて長期スケジュールを再計算する。実施形態例では、制御計算デバイスは、最適化プロセスを実行することによって、長期スケジュールを計算することができる。例えば、最適化プロセスは、混合パッキングおよびカバリング・アルゴリズム(mixed packing and covering algorithm)を含むことができる。
[0008] 制御計算デバイスは、更に、長期スケジュールに基づいて短期スケジュールを計算することができる。短期スケジュールは、長期スケジュールよりも少ない時間ユニットしかカバーすることができない。例えば、短期スケジュールは、現在の時間単位(例えば、5分間隔)の直後にある1つの時間単位をカバーすることができる。短期スケジュールは、1)ネットワークにおけるそれぞれのネットワーク・インフラストラクチャー・デバイスに対するルーティング・テーブル、ならびに2)送信元計算デバイスによって出力されるデーター、および送信元計算デバイスによってデーターが出力されるそれぞれのレートを識別する、送信元計算デバイスのための命令を含む。制御計算デバイスは、長期スケジュールにしたがってデーター転送の完了を促進するために短期スケジュールを計算する。制御計算デバイスは、ルーティング・テーブルおよび命令を短期スケジュールにおいて、ネットワークにおけるそれぞれのネットワーク・インフラストラクチャー・デバイスおよび送信元計算デバイスに送信する。
[0009] ネットワークがパブリック・クラウドにおいて露出された計算デバイス間におけるデーター転送をサポートする実施形態例では、制御計算デバイスは、パブリック・クラウドの運営業者の顧客に露出される価格設定スケジュール(pricing schedule)を計算することができる。制御計算デバイスは、経時的に要求を平滑化するために価格スケジュール(price schedule)を計算し、これによってネットワークのネットワーク・リソースの利用最大化を促進することができる。例えば、価格設定スケジュールは、緊急性が高いデマンド(demand)の要求(request)と比較して、緊急性が低いデマンドの要求程、転送されるデーター単位毎に少ない料金が関連付けられることを示すことができる。他の例では、価格設定スケジュールは、特定の時間期間内にデッドラインが関連付けられたデーター転送は、他の時間期間(特定の時間期間よりも少ないデマンドに関連付けられた)内にデッドラインが関連付けられたデーター転送と比較して、一般に、転送されるデーターの単位毎に課金が多くなることを示すことができる。更にまた、データー転送の価格は、送信元および/または宛先計算デバイス(1つまたは複数)に基づくこともできる。
[0010] 以上の摘要は、本明細書において説明するシステムおよび/または方法の一部の形態の基本的な理解が得られるようにするために、簡略化した摘要を紹介する。この摘要は、本明細書において説明するシステムおよび/または方法の広範が全体像ではない。主要となる/必須のエレメントを識別することや、このようなシステムおよび/または方法の範囲を正確に定めることを意図するのではない。その唯一の目的は、後に紹介する更に詳細な説明に対する序説として、一部の概念を簡略化した形態で紹介することである。
図1は、ネットワークにおける計算デバイス間におけるデーター転送のスケジューリングを容易にするシステム例の機能ブロック図である。 図2は、ネットワークにおけるデーター転送に対する長期スケジュール例である。 図3は、ネットワークにおけるデーター転送に対する短期スケジュール例である。 図4は、WANにおけるデーター転送に対して長期スケジュールおよび短期スケジュールを生成することができるスケジューラー・コンポーネント例の機能ブロック図である。 図5は、ネットワーク・グラフ例である。 図6は、ネットワークを介したデーター転送の要求受領を促進するために、顧客に露出することができるグラフィカル・ユーザー・インターフェース例である。 図7は、ネットワークにおいてデーター転送をスケジューリングする方法例を示す流れ図である。 図8は、ネットワークにおけるデーター転送に対して長期スケジュールを計算する方法例を示す流れ図である。 図9は、ネットワークにおけるデーターの転送に対応する価格スケジュールを露出する方法例を示す流れ図である。 図10は、計算システム例である。
[0021] これより図面を参照して、ネットワーク(ワイド・エリア・ネットワーク(WAN)のような)における計算デバイス間のデーター転送に関する種々の技術について説明する。図面においては、同様のエレメントを示すために全体を通じて同様の参照番号が使用される。以下の説明では、説明の目的に限って、1つ以上の形態の完全な理解が得られるようにするために、数多くの具体的な詳細を説明する。しかしながら、このような形態(1つまたは複数)は、これら具体的な詳細がなくても実施できることは明らかであろう。その一方で、周知の構造およびデバイスは、1つ以上の形態を説明し易くするために、ブロック図形態で示される。更に、1つのシステム・コンポーネントによって実行されると説明される機能が、複数のコンポーネントによって実行されてもよいことは理解されよう。同様に、例えば、1つのコンポーネントが、複数のコンポーネントによって実行されると説明される機能を実行するように構成される場合もある。
[0022] 更に、「または」(or)という用語は、排他的な「または」ではなく、包含的な「または」を意味することを意図している。即ち、別段指定されない限り、または文脈から明らかでない限り、「XはAまたはBを採用する」という句は、自然な包含的置換(natural inclusive permutation)のいずれかを意味することを意図している。即ち、「XはAまたはBを採用する」という句は、以下の実例、XはAを採用する、XはBを採用する、またはXはAおよびB双方を採用するのいずれによっても満たされる。加えて、冠詞「a」および「an」は、本願および添付する特許請求の範囲において使用する場合、一般に、別段指定されない限り、または文脈から単数形に向けられることが明らかでない限り、「1つ以上」を意味するように解釈されてしかるべきである。
[0023] 更に、本明細書において使用する場合、「コンポーネント」および「システム」という用語は、プロセッサーによって実行されるとある種の機能を実行させるコンピューター実行可能命令が構成されたコンピューター読み取り可能データー・ストレージを含むことを意図している。コンピューター実行可能命令は、ルーチン、関数等を含むことができる。また、コンポーネントまたはシステムは1つのデバイス上に配置されても、または様々なデバイスにわたって分散されてもよいことも理解されよう。更に、本明細書において使用する場合、「例示的」(exemplary)という用語は、あるものの実証例または一例として役割を果たすことを意味することを意図しており、好み(preference)を示すことを意図するのではない。
[0024] これより図1を参照すると、ネットワーク102においてデーター転送に対して長期スケジュールを計算するように構成された制御計算デバイス例100が示されている。例えば、ネットワーク102はWANとすることができる。制御計算デバイス100はネットワークに対して外部であるように示されているが、これは例示の目的のためであって、制御計算デバイス100はネットワーク102内に含まれることは理解されよう。更に、制御計算デバイス100は1つの計算デバイスであるように示され説明されるが、制御計算デバイス100は、論理的な集中制御システムも含み、制御計算デバイス100によって実行されると説明される機能は、様々な計算デバイスにまたがって分散されてもよい。
[0025] ネットワーク102は、ネットワーク102のエッジ上に存在する複数の計算デバイス104〜110を含む。実施形態例では、複数の計算デバイス104〜110における計算デバイスの台数は、10台の計算デバイスおよび3000台の計算デバイスの間であることができる。他の実施形態例では、複数の計算デバイス104〜110における計算デバイスの台数は、10台の計算デバイスおよび100,000台の計算デバイスの間であることができる。実施形態例では、計算デバイス104〜110は、それぞれのサーバー・ラック内に存在するサーバー計算デバイスであることができる。更に、一例では、計算デバイス104〜110がそれぞれの異なるデーター・センタにあってもよく、各データー・センタが、互いに通信可能なそれぞれの複数の計算デバイスを含む。データー・センタは、パブリックおよび/またはプライベート・クラウドのプロビジョニングを容易にするために採用することができる。パブリック・クラウドは、インターネットによってデーター・センタのリソースを公衆に露出し(例えば、費用について)、一方プライベート・クラウドは、データー・センタのリソースを、このデーター・センタを運営する企業に露出する。更に、ネットワーク102は、計算デバイス104〜110間におけるデーターの転送を促進する複数のネットワーク・インフラストラクチャー・デバイス112〜114も含む。例えば、ネットワーク・インフラストラクチャー・デバイス112〜114は、スイッチ、ルーター、ハブ、ゲートウェイ等とすることができ、またはこれらを含むことができる。一例によれば、複数のネットワーク・インフラストラクチャー・デバイスにおけるネットワーク・インフラストラクチャー・デバイスの台数は、10台のデバイスおよび1000台のデバイスの間であることができる。他の例では、複数のネットワーク・インフラストラクチャー・デバイスにおけるネットワーク・インフラストラクチャー・デバイスの台数は、100台のデバイスおよび10000台のデバイスの間であることができる。
[0026] 一例では、計算デバイス104〜110の内1つに保持されたデーターの所有者が、このようなデーターを計算デバイス104〜110の内他のものに転送することを望む場合がある。従来では、例えば、第1計算デバイス104から第3計算デバイス108にデーターを転送する要求を受けたとき、スケジューリングは殆ど必要とされない。代わりに、第1計算デバイス104はできるだけ高いレートでデーターを転送し始め、データーは、1本以上の経路に沿って進んでネットワーク102を通過して第3計算デバイス108に達し、ネットワーク102のインフラストラクチャーに負担をかける可能性がある。具体的には、ネットワーク・インフラストラクチャー・デバイス112〜114には、通例、意図する受信先(第3計算デバイス108)までデーターを導くとき、ネットワーク・リンクを通って送信される負荷の均衡を取るための命令が構成される(configure)。この手法は、 WAN102の運営業者が最大データー転送デマンドを満たす十分なネットワーク容量を提供する、プロビジョニング過剰なネットワークにとっては有効である。しかしながら、これは、ネットワーク102のリソース使用が非効率的になる傾向がある。
[0027] 以下で更に詳しく説明するが、制御計算デバイス100は、ネットワーク102上におけるデーター転送に対して長期スケジュールを計算し、その結果、経時的にネットワーク102上におけるトラフィックのボリュームを円滑化し、こうしてネットワーク102の利用効率を高めることができる。このために、制御計算デバイス100は、従来の手法とは対照的に、ネットワーク102におけるデーター転送に対して長期スケジュール(計画)を計算するときに、転送デッドライン(異なる時刻に受信され、異なる期間を有する)を考慮する(contemplate)。
[0028] 長期スケジュールの計算に関して更に詳細に説明すると、制御計算デバイス100は、複数のデーター転送要求を受けることができる受信コンポーネント116を含む。例えば、ネットワーク102は同時に100,000の別々のトラフィック・フロー(例えば、計算デバイス104〜110における計算デバイス間のデーター転送)をサポートするように構成することができる。受信コンポーネント116が受けるデーター転送要求は、送信されるデーターの送信元のそれぞれの識別、送信されるデーターの意図する受信先のそれぞれの識別、WAN102上で送信されるデーターのそれぞれのボリューム、およびそれぞれのデッドラインを含む。更に特定すると、受信コンポーネント116が受けるデーター転送要求は、1)データーが転送される元である送信元計算デバイスの識別、2)転送されるデーターの指示、3)転送されるデーターを受信する受信先計算デバイスの識別、4)送信元計算デバイスから受信先計算デバイスに転送されるデーターのボリューム、および5)デッドラインを含み、このボリュームのデーターは、送信元計算デバイスから受信先計算デバイスにデッドラインよりも前に転送されなければならない。更に、要求は複数の可能なデッドラインを含むことができ、転送のための費用はデッドラインに依存して変化することは理解されよう。受信コンポーネント116は、送信元計算デバイスから、受信先計算デバイスから、または送信元計算デバイスから受信先計算デバイスに転送されるデーターの所有者によって操作される他の計算デバイスから、データー転送要求を受けることができる。データー転送要求は、計算デバイス104〜110におけるデバイスの内任意のものから受けることができ、あるいはデーターが転送される元であるサーバー(1つまたは複数)を識別するシステムまたはコンポーネントから受けることができる。一例では、以上で言及したシステムまたはコンポーネントは、特定の送信元および目標計算デバイスを要求において識別する必要はない。つまり、要求はもっと一般的であることが可能であり、ネットワークにおける経路についての情報、転送レート等を求める。
[0029] 非限定的な例では、受信コンポーネント116は第1データー転送要求を受けることができ、第1データー転送要求は、第1計算デバイス104を送信元計算デバイスとして識別し、転送されるデーターを識別し、第3計算デバイス108を受信先計算デバイスとして識別し、データーのボリュームが50テラバイトであることを識別し、このような転送は、データー転送要求の日の午後4時よりも前に完了しなければならないことを確認する。同様に、受信コンポーネント116はM番目のデーター転送要求を受けることができ、M番目のデーター転送要求は、第2計算デバイス106を送信元計算デバイスとして識別し、転送されるデーターを識別し、第1計算デバイス104を受信先計算デバイスとして識別し、このデーターのボリュームが5ペタバイトであることを識別し、このようなデーター転送が次の日の午前5時までに完了しなければならないことを確認する。
[0030] 加えて、制御計算デバイス100は、受信コンポーネント116と通信するスケジューラー・コンポーネント118を含む。制御計算デバイス100は、データー・ストア120にアクセスすることができ、データー・ストア120はネットワーク・マップ122を含む。ネットワーク・マップ122は、ネットワーク102の物理的トポグラフィ(physical topography)を表す。例えば、ネットワーク・マップ122は、ネットワーク102を表すコンピューター実装グラフであってもよく、このグラフは、ネットワーク102におけるデバイス(例えば、計算デバイス104〜110、およびネットワーク・インフラストラクチャー・デバイス112〜114)を表すノード、およびそれぞれのデバイス間における通信リンクを表すエッジを含む。更に、ネットワーク・マップ122は、ネットワーク102のそれぞれのリンクの容量というような、ネットワーク102の制約(constraint)を識別するデーターを含むことができる。実施形態例では、ネットワーク・マップ122は、ネットワーク102のデバイスから受信されるデーターに基づいて適時更新することができる。例えば、特定のリンクが故障していることを示すデーターを、ネットワーク102におけるデバイスから受信することができる。他の例では、特定のリンクが復旧したことを示すデーターを、ネットワーク102におけるデバイスから受信することができる。ネットワーク・マップ122は、ネットワーク102のトポロジーにおけるこれらの変更を反映するために適宜更新することができる。
[0031] スケジューラー・コンポーネント118は、複数のデーター転送要求(時の経過に連れて)およびデーター・レポジトリー120からのネットワーク・マップ122を受信し、このデーター転送要求およびネットワーク・マップ122に基づいてネットワーク102におけるデーター転送に対して長期スケジュール124を計算し、長期スケジュール124をデーター・レポジトリー120に格納する。加えて、図示しないが、スケジューラー・コンポーネント118は、過去のネットワーク利用に基づいて長期スケジュールを計算することもできる。例えば、顧客が過去に毎日特定の時刻にデーターの転送を要求したことがある場合、受信コンポーネント116がこの顧客からデーター転送要求を未だ受けていなくても、スケジューラー・コンポーネント118は、長期スケジュールにおいてこの顧客のためにネットワーク・リソースを確保することができる。更にまた、スケジューラー・コンポーネント118は、長期スケジュールを計算するとき、その場限りの(ad-hoc)要求のためにネットワーク・リソースを確保することができる。その場限りの要求とは、通例、デッドラインが指定されず、比較的小さなボリュームのデーターをネットワーク102上で転送することを要求するものである。一例では、そして以下で更に詳しく説明するように、スケジューラー・コンポーネント118は、長期スケジュール124を計算するときに、最適化プロセスを実行することができる。最適化プロセスは、混合パッキングおよびカバリング・アルゴリムの実行を含むことができる。
[0032] 長期スケジュール124に関する追加の詳細についてこれより説明する。長期スケジュール124は、時間的に先行する複数の時間単位(例えば、今後の時間単位)をカバーする。実施形態例では、長期スケジュール124によってカバーされる時間単位は、これらの時間単位が共通の期間を有するように、均一にすることができる。他の実施形態例では、長期スケジュールによってカバーされる時間単位は非均一でもよく、この場合、長期スケジュール124によってカバーされ現在の時刻に時間的に近接する時間単位の期間は、長期スケジュールによってカバーされ時間的に現在の時刻から離れている時間単位よりも短い。一例によれば、長期スケジュール124は、240の連続する1分の時間枠(例えば、4時間の総時間枠)をカバーすることができ、長期スケジュール124によってカバーされる時間単位は1分の枠である。長期スケジュール124は、長期スケジュール124によってカバーされる時間単位毎に、それぞれのサブスケジュールを含み、サブスケジュールはその時間単位中においてネットワーク102を通過するデーター・フローを定める。
[0033] 例えば、サブスケジュールは、計算デバイス104〜110においてどの計算デバイスが送信元計算デバイスであるか識別し、計算デバイス104〜110においてどの計算デバイスが受信先計算デバイスであるか識別し(1つの計算デバイスが送信元計算デバイスおよび受信先計算デバイスの双方であることが可能である)、それぞれの送信元計算デバイスがデーターを出力するレートを識別し、データーが送信元計算デバイスから受信先計算デバイスに転送されるときに通る経路を識別することができる。時間が先に進むに連れて長期スケジュールが特定の期間の時間枠をカバーするように、スケジューラー・コンポーネント118は、時間が経過するに連れて長期スケジュール124を再計算する。長期スケジュールの再計算によって、更に、新たなデーター転送要求(その場限りまたはデッドライン指定)を想定する(contemplate)こと、ネットワーク102のトポロジー変化を想定すること、要求の完了を想定すること等が可能になる。この長期スケジュール124の計算を実行するプロセス例について、以下で説明する。
[0034] スケジューラー・コンポーネント118は、長期スケジュール124に基づいて、短期スケジュール126を計算することができ、短期スケジュール126をデーター・レポジトリー120に格納することができる。短期スケジュール126は、現在の時間単位の直後にある時間単位(例えば、次の1分時間枠)の間においてネットワーク102を通過するデーター・フローを定める。したがって、短期スケジュール126は、長期スケジュール124よりも少ない時間単位をカバーする。実施形態例では、短期スケジュール126は1つの時間単位をカバーすることができる。短期スケジュール126は、1)ネットワーク・インフラストラクチャー・デバイス112〜114のそれぞれのためのルーティング・テーブル、および短期スケジュール126によってカバーされる時間中に特定のデーターを出力するか否かについて、計算デバイス104〜110における送信元計算デバイスに対する命令、およびこの特定のデーターを出力するレートを含む。制御計算デバイス100は、それぞれのルーティング・テーブルをネットワーク・インフラストラクチャー・デバイス112〜114に送信することができ、それぞれの命令を計算デバイス104〜110の1つ以上に送信することができる。
[0035] したがって、それぞれのデッドラインよりも前に、受け入れられたデーター転送要求に対応する、要求されたデーター転送の完了を促進するために、スケジューラー・コンポーネント118が長期スケジュール124および短期スケジュール126を計算することを確認することができる。他の例では、データー転送の完了が可能でない場合、スケジューラー・コンポーネント118は、収益の損失を最小限に抑えるため、要求のあるパーセンテージを満たす(例えば、全ての要求の内95%を満たす)ことを可能にする等のために、長期スケジュール124を計算することができる。加えて、先に注記したようにスケジューラー・コンポーネント118は、長期スケジュール124に基づいて、受けたデーター転送要求を受け入れるかまたは拒否するか決定することができる。一例によれば、長期スケジュール124は、特定の時間枠に対して、ネットワーク102における一定のリンクが最大容量でデーターを送信するようにスケジューリングされていることを示すことができる。この情報に基づいて、スケジューラー・コンポーネント118は、デッドラインよりも前にデーター転送要求を完了することができないという指示を要求元に出力することができる(このデーター転送要求によって生じる容量増大を、リンクがサポートできないため)。スケジューラー・コンポーネント118は、加えて、データー転送をスケジューリングするときに他の分析を行うこともできる。例えば、パブリック・クラウドにおいて動作するとき、スケジューラー・コンポーネント118は、利益を最大化するため、損失を極力抑えるため等で、受けた要求を受け入れるかまたは拒否するか決定するように構成することができる。
[0036] 加えて、制御計算デバイス100は、価格設定コンポーネント128を含むことができる。価格設定コンポーネント128は、長期スケジュール124に基づいて、価格設定スケジュールを顧客に露出することができる。例えば、計算デバイス104〜110の少なくとも1つが、パブリック・クラウドによってリソースを露出するデーター・センタに含まれるとき、このパブリック・クラウドの顧客はデーターの転送に対して料金を支払うこともあり得る。価格設定コンポーネント128は、データー転送に対する価格を、データー転送要求におけるデッドライン(の長さ)、転送を完了させる時刻等の関数として設定することができる。例えば、価格設定コンポーネント128は、データー転送要求のデッドラインが現在時刻よりも時間的に離れているときに転送されるデーターの単位当たりに設定する価格を低くすることができる。価格設定コンポーネント128は、ネットワーク利用を所望の動作点(operating point)に引き上げるように価格スケジュールを計算することができる。即ち、価格設定コンポーネント128は、デッドライン・ベースのデーター転送要求に基づいて、ネットワーク102におけるデーター転送要求を操作するために価格を設定することができる。つまり、コスト削減を達成するために、データー転送要求の発起側(initiator) に、デッドラインを長くする動機付けをさせるのでもよい。更に、価格設定コンポーネント128は、価格の申し出を受け入れるまたは拒否するように構成することができる。例えば、要求は複数のデッドラインを識別することができ、各デッドラインには特定の価格が関係付けられる(例えば、転送される単位毎)。例えば、転送が第1時点までに完了した場合、要求元は第1価格を支払う用意があり、転送が第2時点までに完了した場合、要求元は第2価格を支払う用意がある等を、要求が示すことができる。価格設定コンポーネント128は、価格(つまり、デッドライン)を選択するように動作することができ、価格設定コンポーネント128の動作(action)に基づいて、長期スケジュールを計算することができる。
[0037] これより図2を参照して、スケジューラー・コンポーネント118によって計算される長期スケジュール124の図示例を示す。確認できるように、長期スケジュール124は複数の時間単位(時間単位1〜時間単位P)をカバーすることができる。したがって、長期スケジュール124は、複数のサブスケジュール202〜210を含み、時間単位毎に1つのサブスケジュールがあることが認められる。サブスケジュール202〜210における各サブスケジュールは、そのそれぞれの時間単位の間データーがどのようにネットワーク102を通過するか定めることができる。例えば、長期スケジュール124における第1サブスケジュール202は、第1時間単位(例えば、第1時間単位によって表される5分間)の間、データーがどのようにネットワーク102を通過するか定めることができる。したがって、第1サブスケジュール202は、送信元計算デバイスと受信先計算デバイスとの間におけるデーター転送(トラフィック・フロー)毎に送信元がデーターを出力するレート、出力データーが受信先計算デバイスに到達するために進む経路(1本または複数)を定めることができる。したがって、第1サブスケジュール202は、種々のトラフィック・フローのレートおよび経路を構成する(または指定する)ことができ、各トラフィック・フローはそれ自体の送信元および受信先計算デバイスを有し、各トラフィック・フローには、このトラフィック・フローが送信元計算デバイスから受信先計算デバイスまで進む経路(1本または複数)が定められる。先に示したように、時間単位1〜Pは共通の期間を有してもよく、一例では、1分および5分の間にすることができる。他の例では、時間単位1〜Pが異なる期間を有してもよい。例えば、第1時間単位は、P番目の時間単位よりも短い期間を有してもよい。特定の例によれば、第1サブスケジュール202の第1時間単位は1分の時間期間を有するのでもよく、一方P番目のスケジュール210のP番目の時間単位は10分の時間期間を有するのでもよい。
[0038] これより図3を参照して、短期スケジュール126の図示例を示す。短期スケジュール126は、直後の時間単位(時間単位0)をカバーする。短期スケジュール126は、それぞれ、複数のネットワーク・インフラストラクチャー・デバイス112〜114 に対応する複数のルーティング・テーブル302〜306、および複数の計算デバイス104〜110にそれぞれ対応する複数の命令308〜312を含む。複数の命令308〜312は、計算デバイス104〜110の内、データー転送要求を満足するためにデーター出力し始めるもの、そして計算デバイス(1つまたは複数)がこのようなデーターを出力するレート(1つまたは複数)を定める。スケジューラー・コンポーネント118は、ルーティング・テーブル302〜306をそれぞれのネットワーク・インフラストラクチャー・デバイス112〜114に送信することができ、スケジューラー・コンポーネント118は、命令308〜312をそれぞれの計算デバイス104〜110に送信することができる。このように、第1ルーティング・テーブル302は第1ネットワーク・インフラストラクチャー・デバイス112に送信され、N番目のルーティング・テーブル306はN番目のネットワーク・インフラストラクチャー・デバイス114に送信される。第1ネットワーク・インフラストラクチャー・デバイス112は、第1ルーティング・テーブル302を受信したことに応答して、ルーティング・テーブル302が構成され(時間単位0の間)、第1ルーティング・テーブル302の内容にしたがって、ネットワーク・インフラストラクチャー・デバイス112によって受信されたデーターを導く。同様に、第1命令310は第1計算デバイス304に送信され、Z番目の命令312はZ番目の計算デバイス110に送信される。したがって、一例では、第1計算デバイス304は、第1命令310の受信に応答して、第1命令310にしたがってデーターを出力する。
[0039] これより図4を参照すると、スケジューラー・コンポーネント118の詳細な図が示されている。スケジューラー・コンポーネント118は、データー・レポジトリー120にアクセスし、ネットワーク・マップ122を引き出すことができる。スケジューラー・コンポーネント118は、ネットワーク・マップ122を受信するネットワーク・グラフ構築コンポーネント401を含み、ネットワーク・マップ122および長期スケジュール124によってカバーされる複数の時間単位に基づいて、ネットワーク・グラフ402を構築する。スケジューラー・コンポーネント118は、ネットワーク・グラフ402をデーター・レポジトリー120内に保持させる。ネットワーク・グラフ402を構築するとき、ネットワーク・グラフ構築コンポーネント401は、ネットワーク・マップ122の複数のインスタンスを、つまり、長期スケジュール124によってカバーされる時間単位毎に1つのインスタンスを生成することができる。ネットワーク・グラフ構築コンポーネント401は、同じデバイスを表すネットワーク・マップ122のインスタンスにおけるノードを結合するエッジを生成することによって、ネットワーク・マップ122の異なるインスタンスを結合することができる。
[0040] 端的に図5を参照すると、ネットワーク・グラフ構築コンポーネント401によって構築することができるネットワーク・グラフ例500が示されている。ネットワーク・グラフ例500は、第1時間単位に対するネットワーク・マップの第1インスタンス501a、および第2時間単位に対するネットワーク・マップの第2インスタンス501bを含む。ネットワーク・マップ122の第1インスタンス501aは、それぞれネットワーク102の計算デバイス104〜110を表す第1複数のノード502a〜508aと、それぞれネットワーク・インフラストラクチャー・デバイス112〜114を表す第2複数のノード510a〜512aとを含む。ネットワーク・マップ122の第1インスタンス501aは、ネットワーク102におけるデバイス間の物理リンクを表すエッジ(実線で示す)を含む。加えて、ネットワーク・マップ122の第2インスタンス501bもこのようなエッジを含む。一例では、エッジには、ネットワーク・マップ122のインスタンスにおいて異なる重み付けを行うことができる。例えば、第2時間単位と比較して、第1時間単位の間にはネットワーク102における特定のリンクにより多くの帯域幅を確保することが望ましい場合がある。これは、ネットワーク・グラフ500において、ネットワーク・マップ122の第1インスタンス501aおよびネットワーク・マップ122の第2インスタンス501bにおけるリンクへの異なる重みの指定によって表すことができる。
[0041] また、ネットワーク・グラフ402は複数のエッジ514〜524も含む。エッジ514〜524は、ネットワーク・マップ122のインスタンス501aおよび501b間において、同じデバイスを表すノードを結合する。例えば、第1エッジ514はノード504aをノード504bと結合し、504aおよび504bは双方共第2計算デバイス106を表す。同様に、第2エッジ516は、ノード502aをノード502bに結合し、ノード502aおよび502bは双方共ネットワーク102における第1計算デバイス104を表す。実施形態例では、比較的高い重みをエッジ514〜524に指定することができる。したがって、ネットワーク・グラフ402によって、複数の異なる時間単位においてネットワーク102を表すことができる。実線で示すエッジには、例えば、このようなエッジによって表される物理ネットワーク・リンクの容量、これらの時間単位におけるこれらの物理リンクの過去のデマンド、これらの何らかの組み合わせなどに基づいて重み付けすることができる。図示しないが、ネットワーク・グラフ500が、第3時間単位に対応するネットワーク・マップ122の第3インスタンスを含む場合、WANマップ122の第3インスタンスにおける各ノードは、ネットワーク・グラフ500において同じデバイスを表す全てのノードに結合される。
[0042] 図4に戻り、スケジューラー・コンポーネント118は、更に、経路制約コンポーネント404も含むことができる。経路制約コンポーネント404は、ネットワーク・グラフ402を受け、経路に基づく制約をネットワーク・グラフ402に適用する。例えば、計算の複雑さを減らすために、経路制約コンポーネント404は、送信元と宛先との間に可能な経路の本数を、何らかの閾値本数の経路に制約することができ、送信元計算デバイスと宛先計算デバイスとの間におけるネットワーク・ホップの回数に基づいて経路を制約することができ(例えば、送信元と宛先との間で閾値数よりも多いホップを有するネットワーク経路は、送信元と受信先との間で経路を決定するときに考慮されない)、または他の適した制約が可能である。制約をネットワーク・グラフ402に適用したことに応答して、スケジューラー・コンポーネント118は制約グラフ406をデーター・レポジトリー120に格納することができる。
[0043] スケジューラー・コンポーネント118は、更に、最適化コンポーネント408も含むことができる。最適化コンポーネント408は、制約グラフ406、および全ての保留中のデーター転送要求(例えば、既に受領され受け入れられたデーター転送要求であり、それぞれのデーター転送は未完了である)に関係するデーターを受け、保留中のデーター転送要求、それらのそれぞれのステータス(例えば、転送されるデーター量、要求のそれぞれのデッドラインよりも前の時間量等)、および制約グラフ406に基づいて、長期スケジュール124を出力する。先に示したように、最適化コンポーネント408は、長期スケジュールを計算するために適した最適化プロセスを実行することができる。実施形態例では、最適化プロセスは、混合パッキングおよびカバリング・アルゴリズムの実行を含むことができ、最適化コンポーネント408は、(例えば)経時的なネットワーク利用を平滑化し要求のデッドラインを満たすために、長期スケジュール124を計算する。実施形態例では、最適化コンポーネント408は、並列化バージョンの混合パッキングおよびカバリング・アルゴリズムを実行することができる。並列化は、状況が変化するにつれて時の経過と共に長期スケジュール124の繰り返し計算を可能にするために必要となる場合がある。予測−最大化手法(expectation-maximization approaches)、線形プログラミング・プロセス等を含む他のタイプの最適化手法も、長期スケジュール124を生成するために使用することができる。最適化コンポーネント408は、長期スケジュール124に基づいて、短期スケジュール126を生成することができる。
[0044] ここで最適化コンポーネント408によって実行することができる最適化プロセス例に関する更なる詳細について説明する。一般に、最適化コンポーネント408は、コンピューター実装グラフG=(V,E)を受ける。ここで、|V|= nおよび|E|= mであり、負でないエッジ容量 c:E→Rである。長期要求は、タプル(a、b 、d、D、s、t、P)によって定めることができる。ここで、aは、最適化コンポーネント408が要求を認識した認識時点であり、biは、デマンドをスケジューリングすることができる開始時点であり、dは、デッドラインであり、その後には要求をスケジューリングすることができない。Dは、要求のデマンド(demand of the request)であり、sは、要求を導かなければならない送信元ノードであり、tは、要求を受け入れなければならない先のターゲット・ノードであり、Pは、要求のsからtまでの受入可能な経路の集合体である。
[0045] 時間ステップτが始まるとき、最適化コンポーネント408は全ての長期要求iを認識する。ここで、α=τである。加えて、最適化コンポーネント408は、時点τにおける高い優先順位(例えば、その場限り)の要求によって必要とされ得るエッジeの容量cの端数(fraction)についての推定値Xe,τを有することができる。Xe,τは推定値であるので、その場限りの要求にサービスするために必要とされる容量の実際の端数は、時間τの開始時に分かる(そのような時点において行われる長期要求と共に)。
[0046] 先に示したように、最適化コンポーネント408は、スケジューリング問題を混合パッキングおよびカバリング問題として扱うことができ、したがってパッキングおよびカバリング制約を使用してスケジュールを生成することができる。例えば、最適化コンポーネント408は、時間τにおいて経路p∈P上における要求iに割り当てられるフローの量に対応する変数fi,p,τを使用することができる。ここで、b≦τ≦dである。これらの変数を使用して、割り当ての実現可能性をアサートする線形パッキングおよびカバリング不等式を定式化することができ、あらゆる時間においておよびあらゆるエッジに対して、それに割り当てられるフロー全体がその容量を超えることはない。各長期要求iには、そのデッドラインまで、そのデマンドDの少なくとも端数αが割り当てられる。
[0047] これらの不等式は、様々な理由のために、時の経過と共に発展し変化する。その理由とは、新たな長期要求が届くこと、エッジの高優先順位使用の確率的実現(例えば、その場限りの要求にサービスするため)が解明されること、そして遠い未来におけるエッジの過小割り当てが、時間が進むに連れて減少することである。最適化コンポーネント408は、不等式の変化に応答して、変数fi,p,τを調節することによって、スケジュールを適応させる。尚、この手法は、現時間インスタンス(time instance)に対するスケジュールだけを計算する方式を改良することを注記しておく。何故なら、最適化コンポーネント408は、比較的遠い未来にフローをスケジューリングし、i番目の要求(request)が受けたデマンド(demand)の端数において約束されたαの出力を可能にするからである。
[0048] 更に、示したように、最適化コンポーネント408は高優先順位(その場だけ)のデーター転送要求を訂正することができる。Xe,τは、時点τにおいて高優先順位デマンドによって必要とされるエッジeの容量の端数の推定値である。つまり、先の不等式を定式化するとき、時点τにおける容量cを使用する代わりに、最適化コンポーネント408は(1−Xe,τ)・cを使用することができる。一旦時点τに到達し、このような端数の実現が観察されたなら、最適化コンポーネント408は、そのエッジeが過剰使用されていること、例えば、eにおけるフロー全体がその容量を超えていることを発見することができる。これが発生したとき、最適化コンポーネント408は、e∈pが成り立ついくつかの予めスケジューリングされているフローfi、p、τを減らすことができる。これは、最適化コンポーネント408によって出力された約束(promise)αに対する影響を最小限に抑えるために、小さな線形プログラム(そのサイズは、元のコンピューター実装グラフGのサイズのみに依存し、τには依存しない)を定式化することによって行うことができる。
[0049] 更に、最適化コンポーネント408は、遠い未来にあるエッジを過小利用し(例えば、グラフGに制約をかける)、時間が進むに連れてこの制限を緩和するように構成することができる。例えば、パラメータβe、t、τを使用して、時点τにおいて最適化コンポーネント408によって利用することができる(1−Xe,τ)・cの端数を判定することができる。時間τが進むにつれて、βe、t、τは増大することができる(例えば、過小利用制限が緩和する)。
[0050] 実施形態例では、最適化コンポーネント408は、「公平な」目的に対応する最悪の約束αを最大化するように構成することができる。αを最大化するにも拘わらず、ネットワーク102のある部分が過小利用されてもよく、より多くのフローを割り当てることができる。この問題に取り組むために、最適化コンポーネント408は副ユーティリティ関数(secondary utility function)を採用し、例えば、平均約束δを最大化することができ、これによって、ネットワークをより多く利用するスケジュールが得られる。このユーティリティは、カバリング不等式として定式化することができる。
[0051] 尚、過度に長い、例えば、d−aが非常に大きい長期要求は、最適化コンポーネント408の実行時間を遅らせる可能性があることを確認することができる。解を比較的素速く計算するのを促進するために、最適化コンポーネント408は、スライディング・ウィンドウ手法を採用することができ、この場合、最適化コンポーネント408は固定数の時間ステップを今後に考慮する。それぞれのデッドラインがスライディング・ウィンドウを超える要求は、もっと小さな要求に分解することができる。このような場合、最適化コンポーネント408は、その元のデマンド(original demand)および既に割り当てられているフロー全体に基づいて、もっと小さい要求のデマンド(request's demand)を更新することができる。
[0052] 最適化コンポーネント408の設計および動作に関する更なる詳細についてこれより説明する。説明の目的のために、プロセスは段階的に得られ、オフライン・ケースから開始し、オンライン・ケースに進み、次いでβパラメータによるトラフィック平滑化、容量制約の猶予(grace)または違反(violation)、有界範囲(bounded horizon)による要求分割、および異なる優先順位の処理というような、追加の機能を追加する。更に、本明細書において示される例はネットワークにおける計算トラフィック・フローのスケジュールに言及するが、本明細書において説明する混合パッキングおよびカバリング手法は、他のシナリオでも使用できることは理解されよう。例えば、解を出力するためにデーターを受けるときの不等式の動的変更が考えられる。加えて、混合パッキングおよびカバリング・アルゴリズムの並列化も一般に考えられ、ネットワーク・トラフィック・フローに対して長期スケジュールを計算するためにそうすることは、混合パッキングおよびカバリング・アルゴリズムを並列化することが望ましいと考えられる1つのシナリオ例に過ぎない。更にまた、ネットワークにおいて高優先順位のトラフィックを推定し、目標を満たすためにネットワーク・リンクの残りの帯域幅を割り当てる一般的な手法も考えられる。このような場合、リンクの帯域幅の割り当ては、実際の高優先順位のトラフィックが推定値と異なるときには、目標に対して起こる混乱を最小限に抑えつつ、動的に更新することができる。
[0053] 先に示したように、G=(V,E)であり、ここで、|V|=nおよび|E|=mであり、負でないエッジ容量c:E→Rである。長期要求は、タプル(a、b 、d、D、s、t、P)によって定めることができる。加えて、別段指定されなければ、要求のそれぞれのデッドラインに上限を設ける絶対的なサイズT(大きくてもよい)があると仮定することができる。例えば、T≧d∀1≦i≦kである。
[0054] オフライン・ケースにおける最適化コンポーネント408についてこれより説明するが、最適化コンポーネント408は最初から全ての要求を認識していると仮定する。例えば、全ての要求1<i≦kに対してa≡0である。グラフGおよびk個の要求全てを仮定して、容量の制約を尊重しつつ各要求のデマンドの少なくともaの端数を導くことができるように、最も大きなα、0≦α≦1を突き止めることが望ましいという可能性がある。これを「同時多品種流通」問題と呼び、線形パッキングおよびカバリング制約のシステムを断片的に解く問題の特殊なケースである。αが与えられた場合、線形問題によってオフライン・ケース(ユーティリティなし)を解くために必要とされる線形不等式のシステムは以下のようになる。
Figure 0006641288
以上で説明した例では、最適化プロセスは最良のαを繰り返し検索する(例えば、ライン検索方法を使用する)。各繰り返しにおいて、線形プログラムが実現可能か否か確認する。実現可能である場合、実現可能な解を出力することができる。この実現可能性問題を解くプロセス例を以下に紹介する。

初期化
Figure 0006641288
[0055] 以上で言及した初期化およびye、tおよびzの更新は、以下の式が成り立つように行われる。
Figure 0006641288
[0056] このプロセスの各ステップにおいて、1つの(慎重に選択された)フロー変数f 、p 、t を増加させる。この変数は、「最悪」ピッキングの増大(例えば、ネットワーク102において、容量が最も違反(being violated)に近いリンク)が、「最悪」カバリング制約(例えば、そのデマンド制約から最も離れている要求)の増大よりも小さくなるように選択することができる。パッキングおよびカバリング問題に関する既存のプロセスは、最大および最小演算子の平滑近似の使用によって、この要件を満たすことができる。近似要件は不等式(*)において実証され、ye、tを、パッキング制約を表す内部変数と見なすことができ、一方zは、カバリング制約を表す内部変数と見なすことができる。
[0057] 既存のパッキングおよびカバリング・アルゴリズムの出力は、カバリング制約が満たされる(αが実現可能であると仮定する)ことを保証する。(*)は、最大および最小の平滑近似の微分(derivative)の比率であるので(制約の値の変化の比率ではなく)、出力は小さな乗算係数だけパッキング制約を違反する。この係数は、精度パラメータεを0に減少させるに連れて、単調に1に減少する。このような保証は、以下の定理において、公式が作られる(made formal)。
定理1:線形プログラムが実現可能である場合、あらゆる0<ε≦1/2に対して、プロセスの出力は以下の式を満たす。
Figure 0006641288
定理2:あらゆる0<ε≦1/2に対して、実現可能性チェック・プロセスは、せいぜい、
Figure 0006641288
回の繰り返しの後終了する。
[0058] εの選択は、プロセスの精度(パッキング制約がどのくらい逸脱するか)と実行時間との間に必要とされるトレードオフを反映する。容量制約における小さな違反は、βパラメータによるトラフィック平滑化の概念のときに受入可能であってもよい。これは、違反とは、容量cの予め指定された端数だけが超えられるのであって、容量全体ではないからである。
[0059] 確認できるように、αの最大化は、公正目的(fairness objective)に対応し、各要求のデマンドからのαの端数がそのデッドラインによって導かれることを保証する。これだけでは不十分な場合もある。何故なら、最良のαを達成する解がネットワークの部分を利用できず、それでもより多くのフローが導かれる可能性があるからである。したがって、追加のユーティリティ関数、例えば、平均、
Figure 0006641288
を使用してもよい。これは、元の公正目的の最適解全てに沿って最大化される必要がある(例えば、前述の「最悪の」αの最大化)。
[0060] 以下の形式の任意のユーティリティを導入することができる。
Figure 0006641288
ここで、ui、p、t≧0である。具体的には、前述の平均αユーティリティは、
Figure 0006641288
を選択することによって得ることができる。尚、「ソフト・デッドライン」をモデル化するために、
Figure 0006641288
を使用できることが認められる。例えば、要求iを固定することができ、ユーティリティ係数ui、p、t=h(t)を、t>D(Dはある時間ステップ)に対して指数的に速く減衰する関数h(t)について考慮することができる。この関数は、Dが要求iに対してソフト・デッドラインであるという事実をモデル化する。
[0061] gの最大値のある予測(guess)Uに対して、先に参照した線形プログラムに、以下の制約を追加することができる。
Figure 0006641288
従来のパッキングおよびカバリング・アルゴリズムは任意のパッキングおよびカバリング制約に作用するので、以上の線形カバリング制約を追加することが可能である。この制約を仮定すると、以上で参照したプロセスに以下の変更を行うことができる。内部r変数を追加する。rを1に初期化する。f 、p 、t を増大させるとき、rを以下のように更新する。
Figure 0006641288
条件(*)を以下のように変更する。
Figure 0006641288
新たな制約が最初に満たされるとき、即ち、
Figure 0006641288
であるとき、内部変数rは(*)から削除され、もはや更新されない。このプロセスの停止条件は、全てのカバリング制約(要求iおよび追加のユーティリティ制約
Figure 0006641288
毎に1つずつ)が満たされることである。γが以下の式によって選択される。
Figure 0006641288
変数rは、以下の式が成り立つように、以上のように初期化される。
Figure 0006641288
[0062] 最適化コンポーネント408のオンライン・ケースにおける動作では、最適化コンポーネント408は要求を受け、要求の受領に応答して長期スケジュールを適応させる。これより、この動作について説明する。最適化コンポーネント408は時点t=0、例えば、α≡0において全ての要求を認識しているというオフライン・ケースにおいて行われた仮定は、不合理である可能性がある。オンラインで使用されるときに最適化コンポーネント408によって採用することができるプロセス例は、次の3つの主要なプロパティを有する。要求のオンライン処理を可能にする。新たな要求が届く毎に解に対して増分変化を行う。約束されたα値を累進的に更新する。
[0063] このようなプロセスに関して、時間をτによってインデックス化することができる。時間ステップτが開始するとき、最適化コンポーネント408によって採用されたプロセスは、認識時点がτである、例えば、α=τの要求iを認識する。時点τにおいて関連がある要求の集合体をR(τ)={i:α≦τ,d≧τ}によって示すことができる。このようなプロセスの導出について、ここでは段階毎に説明する。
[0064] 第1の設計を紹介する。ここでは、プロセスは性質上増分的であり、値を欲張って(greedily)選択する。線形プログラムLP(τ)によって時点τにおいて解くためにオンライン・プロセスが利用する不等式のシステムは、以下のように表される。
Figure 0006641288
Figure 0006641288
は、要求i∈R(τ)に対して時点τより前にプロセスによって既に導かれた全フローとして、そして、αi、プロセスがスケジューリングした要求iのデマンドの約束された端数(promised fraction of request i's demand)によって定めることができる。尚、Fi、τ−1は、時間ステップτで動作するときは定数であることが認められる。
[0065] 時点τにおけるオンライン・プロセスは、直前の時間ステップからの解をその開始点として使用する。その後、αに対する値が与えられると、プロセスはオフライン・アルゴリズムを実行して、所与のα値に対して実現可能な解があるか否か判定することができる。プロセスはα個の値を決定することができる。何故なら、新しくない要求i、例えば、α<τ、は、直前の時間ステップから約束されたα個の値を既に有するからである。新たに認識された要求i、例えば、α=τは、初期状態ではα=0で有すると設定することができる。プロセスは、「注水」プロセスを導くことができ、LP(τ)が実現可能である限り、最も低いαスコアを増大させる。
[0066] オフライン・プロセスに関して、以下の変更を行うことができる。条件(*)を以下のように変更する。
Figure 0006641288
、p 、t を増大させるとき、変数z を以下のように更新する。
Figure 0006641288
γは、
Figure 0006641288
にしたがって変化させられる。iは、
Figure 0006641288
のとき、Rから削除される。このアルゴリズムの停止条件は、全ての「新たな」カバリング制約が満たされることである。式(1)および式(2)と同様、ye、tおよびzは、以下の定義を保持するために維持される。
Figure 0006641288
[0067] 以上のオンライン増分解に伴って存在する問題は、本質的にαの値を欲張って選択することであり、シーケンスα、α、...に広いばらつきを生ずるおそれがあり、あるαは非常に小さな値を有する場合もある。
[0068] 経時的な公正さを維持するために、トラフィック平滑化の概念を導入することができる。直観的に、これは、増分オンライン・プロセスが使用できる容量を限定し、今後の要求のためにある容量を空にしておくことによって行うことができる。定式的には、βe、t、τが、時間ステップτにおいて実行しているときに、オンライン増分プロセスによって使用することができる、未来時点tにおけるエッジeの容量の端数を示すことができる。これは、LP(τ)の容量制約を以下のように変化させる。
Figure 0006641288
エッジe∈Eおよび時点tを仮定すると、以下の関数はτにおいて非減少(non-decreasing)である。
Figure 0006641288
βe、t、τを1に設定することができる。何故なら、オンライン・プロセスが時間ステップτ=tに達したとき、今後の使用のために空の容量を取っておく必要がないので、エッジの容量全体を使用することができるからである。例えば、ある選択例では、ある定数cに対して、βe、t、τ=exp(−(t−τ)/c)となる。
[0069] 以上のことに基づいて、式(1)に対する以下の変更を実施することができる。ye、t に対する規則を更新することができる。ここで、
Figure 0006641288
条件(*)は、以下のように変化する。
Figure 0006641288
e,tは、初期化され、以下の定義を維持するように更新される。
Figure 0006641288
[0070] オンライン・ケースでは、時点τにおいて動作するとき、トラフィック平滑化手法によって得られる結果を改良することができる。最適化コンポーネント408は、オンライン・プロセスを採用するとき、各時間ステップτにおいて満水(water filling)を適用するので、α値の一部を改良できることもなくはない。各時間ステップτにおいて、オンライン・プロセス(トラフィック平滑化が終了している)後に、同じアルゴリズム手法にユーティリティ制約を適用することができる。LP’(τ)は、オンライン・プロセスが時点τにおいてユーティリティ
Figure 0006641288
によって解く必要がある不等式のシステムを示すことができる。
Figure 0006641288
Figure 0006641288
は、要求i∈R(τ)に対して時点τより前にプロセスによって既に導かれたフローの全ユーティリティとして定めることができる。尚、Ui,τ−1は、時間ステップτにおいて動作するときの定数であることが認められる。
[0071] 第2の制約は、要求iの全フローがその全デマンドDを超えてはならないことを規定する(これはパッキング制約である)。第3の制約は、全ユーティリティが少なくともある所与の値Fであることを規定する(これはカバリング制約である)。尚、第2の制約は、LPおよびLP(τ)では必要とされないが、ここではLP’(τ)によって必要とされることが認められる。
[0072] このような制約を考慮するとき、式(1)に対する以下の変更を最適化コンポーネント408に組み込むことができ、内部変数sを追加することができる。ここで、∀i∈R(τ)。f ,p ,t を増大させるとき、s が以下のように更新される。
Figure 0006641288
条件(*)は以下のように変更される。
Figure 0006641288
このプロセスの停止条件は、ユーティリティ制約が満たされることであり、γは、
Figure 0006641288
となるように選択される。内部変数ye、t、s、およびrは、式(6)が変化しないままであり続けるように維持され、以下の式が成り立つ。
Figure 0006641288
[0073] 定理1において示したように、最適化コンポーネント408は、せいぜい(1+3ε)の小さな乗算係数だけ容量制約を違反する解を生成する場合がある。これは、トラフィック平滑化およびユーティリティ組み込みの双方において起こり得る。しかしながら、これは問題にはならない。何故なら、時点τおよびエッジの容量cにおいてオンライン・プロセスによってスケジューリングされた時点tにおけるエッジe上のフローのβe、t、τ・C単位を超えるからである。この手法によって、最終出力において容量を実際には全く違反せずに最適化コンポーネント408によって生成される小さな容量違反の容認が可能になり、更に高いα値が得られる結果となる。
[0074] 尚、オンライン・ケースは理論的な動作保証(performance guarantee)がないことを確認することができるが、不等式のしかるべきシステムが実現可能であるとき、最適化コンポーネント408によって使用されるプロセスは抜け出せないことはないことは証明することができる。即ち、常に増加することができる変数f ,p ,t があり、最悪のパッキング制約の平滑化の微分(derivative)と、最悪のパッキング制約の平滑化の微分(derivative)との比率が1を上限とされていることを含意する。これは、任意の現在の解
Figure 0006641288
に対して成り立つ。これは、以下の定理によって要約される。
定理3:任意の
Figure 0006641288
に対して、LP、LP(τ)、およびLP’(τ)が実現可能である場合、常に、それぞれの条件(*)が成り立つようなi,p,tがある。
[0075] 先に参照したように、高優先順位の要求(例えば、その場限りの要求)は満たされることが望ましい。全ての高優先順位の要求が小さなチャンクに分解され、各々、a=b=dを有する、例えば、各高優先順位要求が正確に1回の時間ステップに及ぶと仮定することができる。先に参照したプロセスは、高優先順位の要求に必要とされる、時点tにおけるエッジeの容量cの端数の以前の推定を有する。この端数をXe,tで示すことができる。これは、以前に述べたプロセスの以下の改変を招く。即ち、cが(1−Xe,t)・cと置き換えられる。Xは推定であるので、一旦時間ステップtに達し、プロセスが実際の高優先順位要求を認識してから、エッジeの容量のXe,t端数よりも多くが必要とされることが明らかになるということもあり得る。この場合、プロセスは、エッジeにおいてある予めスケジューリングされているフローを削減するように構成することができ、これは、最適化コンポーネント408によって与えられる約束保証αに対する影響を最小限に抑えつつ、エッジeにおいて予めスケジューリングされているフローを訂正する小さな線形プログラムを定式化することによって遂行することができる。
[0076] 他の実施形態例では、実行時間を短縮するために、スライディング・ウィンドウ手法の使用を考慮することが望まれる場合もある。ウィンドウ・サイズWを仮定し、オンライン・プロセスが時間ステップτにある場合、その先にはW個の時間ステップしか見えない。この手法に伴う可能性がある問題は、d−a>Wとなる要求iがあり得ることである。例えば、プロセスが要求iを認識する時点において、現在のウィンドウの後にそれが終了する。
[0077] この可能性がある問題に対する解決策は、この要求をもっと小さい要求に分解することである。具体的には、以上のように、一旦プロセスが時点τにおいて要求iを認識したなら、そのデッドラインを、スライディング・ウィンドウの現在の終了時点、τ+Wであると見なす。加えて、そのデマンドが、その元のデマンドの内現在のスライディング・ウィンドウに収まる割合に設定される。更に特定すれば、最適化コンポーネント408のオンライン・プロセスが時点τにあるとき以下の式によってデマンドを決定することができる。
Figure 0006641288
それ以外の場合
任意の後続の時間ステップにおいて、スケジューリングされた要求iのフローの合計をDiから減算することができる。
[0078] 最適化コンポーネント408は比較的厳しい時間幅で動作しなければならないことを確認することができる。したがって、以上で説明したプロセスは、その実行の促進を容易にするために変更することができる。例えば、最短経路問題(shortest path problem)を分解することができる。(*)を満たす(i、t、p)タプルを発見することは、拡張グラフ上において全対最短経路プロセス(all-pairs shortest path process)を実行することと実質的に同様であり、拡張グラフはあらゆる時間インスタンス(time instance)において元のネットワークのコピーを含む。しかしながら、このように行うのは、スケジューラー・コンポーネント118によって考慮されるとよい大きな問題のインスタンスに鑑みると、負担が大きすぎるおそれがある。つまり、先に暗示したように、ネットワーク・グラフ402に制約を設けることができる。例えば、送信元−宛先対毎に、経路を長さでソートしたリストを、グラフのコピー毎に保持することができる(経路の長さは、そのエッジの長さの和であり、エッジの長さは、
Figure 0006641288
によって与えられる)。全てのコピー間で最小長経路を求めることによって、送信元/宛先対毎に最短経路を得ることができる。このような分解の利点は、遙かに小さなグラフ上において最短経路を検索できることである。
[0079] 以上のことを考慮すると、プロセスの任意の繰り返しにおいて、最後の更新に対応する時間インスタンスに対してのみ、最短経路を計算できることを観察することができる(例えば、このような時間インスタンスがtで示される場合)。更に、最短経路(時点tに対応する)は、現在の最短経路が、フローが増強された経路との接合エッジを有するユーザーに対してだけ計算すれば済む。この結果、各繰り返しにおける更新が少なくなり、プロセスが一層効率的になる。
[0080] 更に、以上で説明したプロセスを並列化することができる。時間次元において競争(contention)がなく、更に一度に1つのスレッドだけに要求が指定される限り、フロー変数fi,p,tを増分することと、対応する内部変数ye,tおよびzを更新することとを並列して行うことができる。これらの制約に従うために、全時間を時間範囲に分割することができ、各時間範囲が異なるスレッドに指定される。各範囲における「負荷」(要求数)がほぼ等しくなるように、特定の時間範囲を選択することができる。並列化は、各要求が正確に1つの時間範囲内で「生きている」ときは単純である。しかしながら、要求が複数の時間範囲に跨がる場合もある。この課題に取り組むために、要求を特定の時間範囲に、その時間範囲における要求の相対的質量(relative mass)に等しい確率で、指定することができる。このような指定により、以上で説明した制約が実際に行使されることが保証される。散乱フェーズ(scatter phase)では、各スレッドが所与の繰り返し回数だけ実行する(例えば、10に設定することができる)。次いで、続く収集フェーズ(gather phase)において、全ての変数の値を更新する。あるカバリング制約が満たされないままであり、条件*に基づくfi,p,tに対する実現可能な編集は可能なままであるが、最適化コンポーネント408は以上の散乱フェーズおよび収集フェーズを繰り返す。尚、複数の時間範囲に跨がる要求を異なる散乱フェーズにおける異なるスレッドに指定できることを注記しておく。実行の終了に向かって、満たされない要求の数が小さくなり、プロセスは一スレッド実行に切り替えることができる(例えば、並列化のオーバーヘッドが有意になる)。
[0081] 以上のことの少なくとも一部を要約すると、最適化コンポーネント408によって使用することができるアルゴリズム例を混合パッキングおよびカバリング・アルゴリズムとして分類することができる。このプロセスは、パッキング制約においてオーバーシュート違反に制限ができるように、小さいが確率が高い安全な変更を変数に対して行うことによって、解を識別する。新たな制約が現われたとき(例えば、次の時間ステップにおける新たな転送、またはネットワーク条件の変化)、本プロセスは「古い」収束された状態を使用することができる(例えば、問題を一度に解決する必要はなく、以前に収束された状態から開始することができる)。このプロセスは、要求元に約束することを可能とし、約束は、新たな到達、高い優先順位(その場限りの)要求、およびネットワーク条件の変化があっても、転送要求が満たされることを保証する。これは、今後のネットワーク・リソースの内特定の量を別に取っておくことによって遂行することができ、次の時間ステップにおいて(現在の時点から)、リソースを全体的に割り当てることができ、一方今後の時間ステップでは、割り当てずに残すリソースの量を増やすことができる。更に、このようなプロセスは、実用的な実施のために並列化することができる。
[0082] 図6を参照すると、ネットワーク102の少なくとも1つの計算デバイスに保持されたデーターの所有者に露出することができるグラフィカル・ユーザー・インターフェース例600が示されている。グラフィカル・ユーザー・インターフェース600は、送信元計算デバイスから受信先計算デバイスに転送されるデーターの識別を受けるように構成されたデーター・フィールド602を含む。例えば、データー・フィールド602において参照されたデーターの識別に基づいて、送信元計算デバイスから受信先計算デバイスに転送されることが要求されているデーターのボリュームを確認することができる。
[0083] 加えて、グラフィカル・ユーザー・インターフェース600は、ネットワーク102において受信先計算デバイスを識別する受信先IDフィールド604を含む。グラフィカル・ユーザー・インターフェース600は、任意に、開始フィールド606を含んでもよい。開始フィールド606は、受信先IDフィールド604において識別された受信先計算デバイスへのデーターの転送を開始することができる時刻の識別を受けるように構成される。開始フィールド606がグラフィカル・ユーザー・インターフェース600から省略される場合、または開始時刻が指定されない場合、データーの転送は直ちに開始できると仮定することができる。また、グラフィカル・ユーザー・インターフェース600は、デッドライン・フィールド608も含む。デッドライン・フィールド608は、受信先IDフィールド604において識別された受信先計算デバイスへの送信元計算デバイスからのデーターの転送が完了するときの指示を受けることができる。フィールド602〜608において説明したデーターに基づいて、価格設定フィールド610に価格設定情報を提示することができる。価格設定情報は、例えば、デッドライン・フィールド608において説明したデッドラインが変化するとき、データー・フィールド602におけるデーターの量が変化するとき等に、変化することができる。したがって、グラフィカル・ユーザー・インターフェース600は、データーの転送をデッドラインよりも前に完了させなければならないときに、絶対的なデッドラインの指定を容易にすることを確認することができる。スケジューラー・コンポーネント118は、要求を受け入れるかまたは拒否するか決定するときにデッドラインを考慮することができ、このデッドラインに基づいて長期スケジュール124および短期スケジュール126を計算することができる。
[0084] 図7〜図9は、ネットワークにおけるデーター転送のスケジューリングに関する方法例を示す。これらの方法は、順序通りに実行される一連のアクトであるとして示され説明されるが、これらの方法は実行の順序(order of the sequence)によって限定されないことは理解され、認められよう。例えば、一部のアクトは、ここで説明するのとは異なる順序で行うことができる。加えて、1つのアクトが他のアクトと同時に行うこともできる。更に、場合によっては、ここで説明する方法を実現するために全てのアクトが必要でないこともある。
[0085] 更に、本明細書において説明するアクトは、1つ以上のプロセッサーによって実現され、および/または1つまたは複数のコンピューター読み取り可能媒体に格納することができるコンピューター実行可能命令であってもよい。コンピューター実行可能命令は、ルーチン、サブルーチン、プログラム、実行のスレッド等を含むことができる。更にまた、これらの方法のアクトの結果は、コンピューター読み取り可能媒体に格納すること、ディスプレイ・デバイス上に表示すること等が可能である。
[0086] これより図7を参照すると、長期スケジュールの計算を容易にする方法例700が示されている。方法700は702において開始し、704において、ネットワークにおける第1計算デバイスからネットワークにおける第2計算デバイスにデーターを転送する要求を受ける。先に示したように、要求は、第2計算デバイスを識別する第1データー、要求にしたがって第1計算デバイスから第2計算デバイスに転送されるデーターのボリュームを識別する第2データー、およびデッドラインを識別する第3データーを含み、第1計算デバイスから第2計算デバイスへのデーターの転送は、デッドラインよりも前に完了されなければならない。
[0087] 要求を受けたことに応答して、そして少なくとも部分的にこの要求に基づいて、706において、ネットワークにおけるデーター転送に対する長期スケジュールを生成する。先に示したように、長期スケジュールを計算するために最適化プロセスが使用される。長期スケジュールは、複数の今後の時間単位をカバーし、デッドラインよりも前における第1計算デバイスから第2計算デバイスへのデーターのボリュームの転送の完了を促進するために生成される。更に、長期スケジュールは、複数の今後の時間単位における少なくとも1つの今後の時間単位に対して、データーが第1計算デバイスから第2計算デバイスに転送されるネットワークにおける経路を識別する。
[0088] 708において、長期スケジュールに基づいて、ネットワークにおけるデーター転送に対して短期スケジュールを生成する。短期スケジュールは、デッドラインよりも前における第1計算デバイスから第2計算デバイスへのデーターの転送の完了を促進するために生成される。短期スケジュールは、ネットワークにおけるネットワーク・インフラストラクチャー・デバイスに対するルーティング・テーブルを含む。ルーティング・テーブルは、ネットワーク・インフラストラクチャー・デバイスによって受信されたデーターが転送される少なくとも1つのデバイスを識別する。710において、ルーティング・テーブルをネットワーク・インフラストラクチャー・デバイスに送信し、方法700は712において完了する。
[0089] これより図8を参照すると、長期スケジュールの生成を容易にする方法例800が示されている。方法800は802において開始し、804において、ネットワークのマップを受信する。先に示したように、ネットワークのマップは、WANにおけるデバイスを表す複数のノードと、ネットワークにおけるデバイス間のネットワーク・リンクを表す複数のエッジとを含む。806において、ネットワークのマップに基づいて、ネットワーク・グラフを構築する。ネットワーク・グラフは、ネットワークのマップの複数のインスタンスを含み、長期スケジュールによってカバーされる時間単位毎に、ネットワークのマップの1つのインスタンスがある。808において、データー転送に対する経路制約を受ける。このような経路制約は、送信元計算デバイスから受信先計算デバイスに転送されるデーターが進むことができる経路に制約を設けることができる。
[0090] 810において、保留中のデーター転送要求についての情報を受信する。このような情報は、情報の中でもとりわけ、要求毎に転送されるために残っているそれぞれのデーター・ボリューム、要求のそれぞれのデッドラインを含むことができる。812において、ネットワーク・グラフ、経路制約、および810において受信した情報に基づいて、ネットワーク・グラフに対して混合パッキングおよびカバリング・アルゴリズムを並列に実行する。尚、長期スケジュールを計算するためには、他のタイプのアルゴリズムも考えられることが考えられることは理解されよう。例えば、長期スケジュールの計算に関連して線形プログラムを解決することができる。方法800は814において完了する。
[0091] これより図9に移ると、ネットワークを介したデーター転送についての価格設定情報を露出するのを容易にする方法例900が示されている。この方法は902において開始し、904において、ネットワークを介したデーター転送に対する長期スケジュールを受信する。906において、長期スケジュールに基づいて、データー転送に対する価格設定スケジュールを生成する。この価格設定スケジュールは、経時的にネットワークにおけるデーター転送のデマンドを平滑化することにより、ネットワークのハードウェア・リソースの利用効率を高めるように構成することができる。908において、WAN上のデーター転送要求を受ける。この要求は、転送するデーターの量、および転送が完了されなければならないデッドラインを含む。910において、価格設定スケジュールおよび受領した要求に基づいて、価格設定情報を要求元に露出する。次いで、データー転送の要求元は、価格を受け入れるか、または価格設定情報に基づいて要求を変更することができる。方法900は912において完了する。
[0092] これより図10を参照すると、本明細書において開示したシステムおよび方法にしたがって使用することができる計算デバイス例1000の上位図が示されている。例えば、計算デバイス1000は、ネットワークにおけるデーター転送に対して長期スケジュールの計算をサポートするシステムにおいて使用することができる。他の例として、計算デバイス1000は、ネットワーク102における送信元計算デバイスまたは受信先計算デバイスであることも可能である。計算デバイス1000は、メモリー1004に格納されている命令を実行する少なくとも1つのプロセッサー1002を含む。命令は、例えば、以上で説明した1つ以上のコンポーネントによって実行されると説明された機能を実現するための命令、または以上で説明した方法の内1つ以上を実現するための命令であってもよい。プロセッサー1002は、システム・バス1006を介してメモリー1004にアクセスすることができる。実行可能命令を格納することに加えて、メモリー1004は、ルーティング・テーブル、長期スケジュール、短期スケジュール等も格納することができる。
[0093] 加えて、計算デバイス1000は、システム・バス1006を介してプロセッサー1002によってアクセス可能なデーター・ストア1008も含む。データー・ストア1008は、実行可能命令、データー転送スケジュール等を含むことができる。また、計算デバイス1000は、外部デバイスが計算デバイス1000と通信することを可能にする入力インターフェース1010も含む。例えば、入力インターフェース1010は、外部コンピューター・デバイスから、ユーザーから等で命令を受けるために使用することができる。また、計算デバイス1000は出力インターフェース1012も含む。出力インターフェース1012は、計算デバイス1000を1つ以上の外部デバイスとインターフェースする。例えば、計算デバイス1000は、出力インターフェース1012を介して、テキスト、画像等を表示することができる。
[0094] 尚、入力インターフェース1010および出力インターフェース1012を介して計算デバイス1000と通信する外部デバイスは、ユーザーが対話処理することができる実質的にあらゆるタイプのユーザー・インターフェースを設ける環境に含むことができると考えられる。ユーザー・インターフェース・タイプの例には、グラフィカル・ユーザー・インターフェース、自然ユーザー・インターフェース等が含まれる。例えば、グラフィカル・ユーザー・インターフェースは、キーボード、マウス、リモコン等のような入力デバイス(1つまたは複数)を使用するユーザーから入力を受け入れ、ディスプレイのような出力デバイス上に出力を供給することができる。更に、自然ユーザー・インターフェースは、ユーザーが、キーボード、マウス、リモコン等のような入力デバイスによって強いられる制約を受けないように、計算デバイス1000と対話処理することを可能にするのでもよい。逆に、自然ユーザー・インターフェースは、音声認識、タッチおよびスタイラス認識、画面上および画面近く双方におけるジェスチャー認識、エア・ジェスチャー、頭部および眼球追跡、声および発話(voice and speech)、視覚、接触、ジェスチャー、機械インテリジェンス等に頼るのでもよい。
[0095] 加えて、1つのシステムとして例示したが、計算デバイス1000は分散型システムであってもよいことは理解されよう。つまり、例えば、様々なデバイスがネットワーク接続を介して通信することができ、計算デバイス1000によって実行されると説明したタスクを、集合的に実行するのでもよい。
[0096] 本明細書において説明した種々の機能は、ハードウェア、ソフトウェア、またはこれらの任意の組み合わせで実現することができる。ソフトウェアで実現する場合、機能は、コンピューター読み取り可能媒体上の1つ以上の命令またはコードとして格納することまたは送信することができる。コンピューター読み取り可能媒体は、コンピューター読み取り可能記憶媒体を含む。コンピューター読み取り可能記憶媒体は、コンピューターによってアクセスすることができる任意の入手可能な記憶媒体とすることができる。一例として、そして限定ではなく、このようなコンピューター読み取り可能記憶媒体は、RAM、ROM、EEPROM、CD−ROMまたは他の光ディスク・ストレージ、磁気ディスク・ストレージまたは他の磁気記憶デバイス、あるいは命令またはデーター構造の形態で所望のプログラム・コードを搬送または格納するために使用することができ、コンピューターによってアクセスすることができる任意の他の媒体を含むことができる。ディスク(disk and disc)は、本明細書において使用する場合、コンパクト・ディスク(CD)、レーザ・ディスク、光ディスク、ディジタル・バーサタイル・ディスク(DVD)、フロッピー・ディスク、ブルーレイ・ディスク(BD)を含み、ディスク(disk)は通常データーを磁気的に再生し、ディスク(disc)は通常レーザを使用してデーターを光学的に再生する。更に、伝搬信号は、コンピューター読み取り可能記憶媒体の範囲には含まれない。また、コンピューター読み取り可能媒体は、1つの場所から他の場所へのコンピューター・プログラムの転送を容易にする任意の媒体を含む通信媒体も含む。例えば、接続は通信媒体となることができる。例えば、ソフトウェアがウェブサイト、サーバー、または他の離れた送信元から、同軸ケーブル、光ファイバ・ケーブル、撚り線対、ディジタル加入者回線(DSL)、あるいは赤外線、無線、およびマイクロ波のようなワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバ・ケーブル、撚り線対、DSL、または赤外線、無線、およびマイクロ波のようなワイヤレス技術は、通信媒体の定義に含まれる。以上のものの組み合わせも、コンピューター読み取り可能媒体の範囲に含まれてしかるべきである。
[0097] あるいは、または加えて、本明細書において説明した機能は、少なくとも部分的に、1つ以上のハードウェア・ロジック・コンポーネントによって実行することができる。例えば、そして限定ではなく、使用することができる実証的なタイプのハードウェア・ロジック・コンポーネントには、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定プログラム集積回路(ASIC)、特定プログラム標準的製品(ASSP)、システム・オン・チップ・システム(SOC)、複合プログラマブル・ロジック・デバイス(CPLD)等が含まれる。
[0098] 以上で説明したことには、1つ以上の実施形態の例が含まれる。勿論、以上のデバイスまたは方法の着想可能なあらゆる変更(modification)および変形(alteration)を、先に述べた態様を説明する目的で記載することは不可能であるが、種々の態様には多くの更に他の変更および置換が可能であることを、当業者は認めることができよう。したがって、説明した態様は、添付する請求項の主旨および範囲に該当する、このような変形、変更、および変種(variation)を全て包含することを意図している。更に、「含む」(includes)という用語が詳細な説明または特許請求の範囲において使用される限りにおいて、このような用語は、「備える」(comprising)という用語が請求項において移行性単語として採用されるときに「備える」が解釈されるときと同様に、包含的であることを意図している。

Claims (9)

  1. 方法であって、
    ネットワークにおける第1計算デバイスから前記ネットワークにおける第2計算デバイスにデーターを転送する要求を受けるステップであって、前記要求が、
    前記第2計算デバイスの識別と、
    前記要求にしたがって前記第1計算デバイスから前記第2計算デバイスに転送されるデーターのボリュームの識別と、
    時刻を識別するデッドラインであって、前記第1計算デバイスから前記第2計算デバイスへのデーターの転送が、前記デッドラインにおいて識別された前記時刻よりも前に完了される、デッドラインと、
    を含む、ステップと、
    前記要求を受けたことに応答して、かつ前記要求に基づいて、複数の時間単位カバーする長期スケジュールを計算するステップであって、前記長期スケジュールが、前記第1計算デバイスから前記第2計算デバイスへのデーターの転送の前記デッドラインにおいて識別された前記時刻よりも前における完了を促進するために生成され、前記長期スケジュールが、前記複数の時間単位における1つの時間単位に対して、前記データーが前記第1計算デバイスから前記第2計算デバイスに転送されるネットワークにおける少なくとも1つの経路を識別する、ステップと、
    前記長期スケジュールに基づいて、現在の時間単位の直後の時間単位をカバーする短期スケジュールを計算するステップであって、前記短期スケジュールが、前記長期スケジュールよりも少ない時間単位を含み、前記短期スケジュールが、前記第1計算デバイスから前記第2計算デバイスへの前記ボリュームのデーターの転送の前記デッドラインにおいて識別された時刻よりも前における完了を促進するために計算され、前記短期スケジュールが、前記ネットワークにおけるネットワーク・インフラストラクチャー・デバイスに対するルーティング・テーブルを含み、前記ルーティング・テーブルが、前記ネットワーク・インフラストラクチャー・デバイスによって受信されたデーターが転送される少なくとも1つのデバイスを識別する、ステップと、
    前記ルーティング・テーブルを前記ネットワーク・インフラストラクチャー・デバイスに送信するステップであって、前記ネットワーク・インフラストラクチャー・デバイスが、前記ルーティング・テーブルにしたがって前記少なくとも1つのデバイスに対し前記データーを転送する、ステップと、
    を含む、方法。
  2. 請求項1記載の方法であって、更に、
    前記ネットワークのマップを受信するステップであって、前記ネットワークのマップが、前記ネットワークにおけるデバイスをそれぞれ表す複数のノードを含み、前記ネットワークのマップが、更に、前記ネットワークにおけるそれぞれのデバイス間のリンクを表す複数のエッジを含む、ステップと、
    前記ネットワークのマップに基づいて、前記長期スケジュールを生成するステップと、
    を含む、方法。
  3. 請求項2記載の方法であって、更に、
    前記ネットワークのマップの受信に応答して、前記複数の時間単位にわたる前記ネットワークを表すネットワーク・グラフを構築するステップであって、前記ネットワーク・グラフが、前記複数の時間単位にそれぞれ対応する前記ネットワークのマップの複数のインスタンスを含み、前記ネットワークのマップの前記複数のインスタンスが、共通のデバイスを表す前記ネットワークのマップの前記複数のインスタンスにおけるノード間のエッジを介して互いに接続され、前記長期スケジュールが前記ネットワーク・グラフに基づいて生成される、ステップを含む、方法。
  4. 請求項3記載の方法であって、更に、前記第1計算デバイスと前記第2計算デバイスとの間における前記データー転送に対して、前記ネットワーク・グラフにおいて表された経路の内、前記第1計算デバイスから前記第2計算デバイスに前記データーを転送するために使用することができる経路の数を、可能な閾値数の経路に制約するステップを含み、前記長期スケジュールの生成が、前記可能な閾値数の経路に基づく、方法。
  5. 請求項1記載の方法であって、更に、
    前記ネットワークにおける種々の計算デバイス間におけるそれぞれの複数のデーター転送に対する複数の要求を受けるステップであって、前記複数の要求が、それぞれの複数のデッドラインを識別し、前記それぞれの複数のデッドラインが異なる、ステップと、
    前記複数の要求に基づいて前記長期スケジュールを生成するステップであって、前記長期スケジュールが、前記ネットワークにおける前記種々の計算デバイス間における前記データー転送のそれぞれの複数のデッドラインよりも前における完了を促進するために生成される、ステップと、
    を含む、方法。
  6. 請求項1記載の方法において、前記長期スケジュールが、複数のプロセッサー・コアに跨がって並列に計算される、方法。
  7. 請求項1記載の方法において、前記長期スケジュールの計算が、前記長期スケジュールを計算するために混合パッキングおよびカバリング・アルゴリズムの実行を含む、方法。
  8. 制御計算デバイスであって、
    少なくとも1つのプロセッサーと、
    命令を格納するメモリーと、
    を含み、前記命令が前記少なくとも1つのプロセッサーにより実行されると前記少なくとも1つのプロセッサーに動作を実行させ、該動作が、
    複数のデーター転送要求を受ける動作であって、各データー転送要求が、
    転送されるデーターのボリュームの識別と、
    それぞれの時刻を識別するデッドラインであって、各データー転送要求が、複数のネットワーク・インフラストラクチャー・デバイスを含むネットワークを介してデーターを転送する要求であり、各データー転送要求が、前記デッドラインにおいて識別された前記それぞれの時刻よりも前に完了される、デッドラインと、
    を含む、動作と、
    前記複数のデーター転送要求に基づいて長期スケジュールを計算する動作であって、前記長期スケジュールが複数の時間単位カバーし、前記長期スケジュールが、前記複数の時間単位における各時間単位に対する前記ネットワークを介したトラフィックのフローを定める、動作と、
    前記長期スケジュールに基づいて、現在の時間単位の直後の時間単位をカバーする短期スケジュールを計算する動作であって、前記短期スケジュールが前記長期スケジュールよりも少ない時間単位を含む、動作と、
    前記短期スケジュールに基づいてそれぞれのルーティング・テーブルを前記複数のネットワーク・インフラストラクチャー・デバイスに送信させる動作であって、前記複数のネットワーク・インフラストラクチャー・デバイスが、前記ルーティング・テーブルに基づいて、データー・パケットを前記ネットワークにおいて導く、動作と、
    を含む、制御計算デバイス。
  9. 請求項8記載の計算デバイスにおいて、前記長期スケジュールを計算する動作が、混合パッキングおよびカバリング・アルゴリズムを実行することを含む、計算デバイス。
JP2016557247A 2014-03-14 2015-03-11 ワイド・エリア・ネットワークを介したデーター転送に対する長期スケジュールの計算 Active JP6641288B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/210,538 2014-03-14
US14/210,538 US10218639B2 (en) 2014-03-14 2014-03-14 Computing long-term schedules for data transfers over a wide area network
PCT/US2015/019808 WO2015138523A2 (en) 2014-03-14 2015-03-11 Computing long-term schedules for data transfers over a wide area network

Publications (3)

Publication Number Publication Date
JP2017508403A JP2017508403A (ja) 2017-03-23
JP2017508403A5 JP2017508403A5 (ja) 2018-04-19
JP6641288B2 true JP6641288B2 (ja) 2020-02-05

Family

ID=52875231

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016557247A Active JP6641288B2 (ja) 2014-03-14 2015-03-11 ワイド・エリア・ネットワークを介したデーター転送に対する長期スケジュールの計算

Country Status (17)

Country Link
US (2) US10218639B2 (ja)
EP (1) EP3117574B1 (ja)
JP (1) JP6641288B2 (ja)
KR (1) KR102296617B1 (ja)
CN (1) CN106134136B (ja)
AU (2) AU2015229558B2 (ja)
BR (1) BR112016020103B1 (ja)
CA (1) CA2939964A1 (ja)
CL (1) CL2016002225A1 (ja)
IL (1) IL247164B (ja)
MX (1) MX2016011539A (ja)
MY (1) MY186472A (ja)
NZ (1) NZ723357A (ja)
PH (1) PH12016501638A1 (ja)
RU (1) RU2688270C2 (ja)
SG (1) SG11201607426XA (ja)
WO (1) WO2015138523A2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9705749B2 (en) * 2014-09-08 2017-07-11 International Business Machines Corporation Executing data stream processing applications in dynamic network environments
US9755946B2 (en) * 2015-01-06 2017-09-05 Verizon Patent And Licensing Inc. Confidentially determining route diversity for network routes
WO2016161127A1 (en) * 2015-04-01 2016-10-06 Neutrona Networks International Llc Network management system with traffic engineering for a software defined network
US10164904B2 (en) * 2016-05-04 2018-12-25 Facebook, Inc. Network bandwidth sharing in a distributed computing system
US20180012164A1 (en) * 2016-07-08 2018-01-11 Conduent Business Services, Llc Method of planning for deployment of facilities and apparatus associated therewith
WO2018095513A1 (en) 2016-11-22 2018-05-31 Huawei Technologies Co., Ltd. Bandwidth calendaring in sdn
US10541939B2 (en) * 2017-08-15 2020-01-21 Google Llc Systems and methods for provision of a guaranteed batch
KR102423416B1 (ko) * 2017-12-12 2022-07-22 한국전자통신연구원 서버리스 환경에서의 펑션 장기 실행 제공 장치 및 방법
US11601825B2 (en) * 2018-08-08 2023-03-07 Faraday&Future Inc. Connected vehicle network data transfer optimization
US11070645B1 (en) * 2018-12-14 2021-07-20 Amazon Technologies, Inc. Flexible scheduling of data transfers between computing infrastructure collections for efficient resource utilization
US11563642B2 (en) * 2019-10-15 2023-01-24 Rockwell Collins, Inc. Smart point of presence (SPOP) aircraft-based high availability edge network architecture
US11777793B2 (en) 2020-04-06 2023-10-03 Vmware, Inc. Location criteria for security groups
US11381456B2 (en) 2020-04-06 2022-07-05 Vmware, Inc. Replication of logical network data between global managers
US11088919B1 (en) 2020-04-06 2021-08-10 Vmware, Inc. Data structure for defining multi-site logical network
US11394634B2 (en) 2020-04-06 2022-07-19 Vmware, Inc. Architecture for stretching logical switches between multiple datacenters
US11343227B2 (en) 2020-09-28 2022-05-24 Vmware, Inc. Application deployment in multi-site virtualization infrastructure
US11411891B2 (en) 2020-10-30 2022-08-09 Ge Aviation Systems Llc System and method for a time-sensitive network
US11997614B2 (en) 2021-04-22 2024-05-28 Commscope Technologies Llc Systems and methods for providing planned spectrum allocation for shared spectrum
US11974314B2 (en) * 2021-06-30 2024-04-30 Commscope Technologies Llc Systems and methods for diminishing frequency spectrum contentions amongst at least two spectrum access systems

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920701A (en) * 1995-01-19 1999-07-06 Starburst Communications Corporation Scheduling data transmission
US5615254A (en) * 1995-04-04 1997-03-25 U S West Technologies, Inc. Methods and systems for dynamic routing in a switched comunication network
US6130875A (en) * 1997-10-29 2000-10-10 Lucent Technologies Inc. Hybrid centralized/distributed precomputation of network signal paths
US6205150B1 (en) * 1998-05-28 2001-03-20 3Com Corporation Method of scheduling higher and lower priority data packets
US6108314A (en) 1998-08-31 2000-08-22 Motorola, Inc. Method, subscriber device, wireless router, and communication system efficiently utilizing the receive/transmit switching time
US6760328B1 (en) 1999-10-14 2004-07-06 Synchrodyne Networks, Inc. Scheduling with different time intervals
JP2001229081A (ja) 2000-02-17 2001-08-24 Hitachi Ltd データ転送方式
JP3756054B2 (ja) 2000-10-16 2006-03-15 シャープ株式会社 ネットワーク通信方法、ネットワーク通信装置及び情報機器
US7280526B2 (en) * 2001-01-18 2007-10-09 Lucent Technologies Inc. Fast and scalable approximation methods for finding minimum cost flows with shared recovery strategies, and system using same
US7010493B2 (en) * 2001-03-21 2006-03-07 Hitachi, Ltd. Method and system for time-based storage access services
AU2002345574A1 (en) 2001-06-05 2002-12-16 Cetacean Networks, Inc. Real-time network scheduled packet routing system
US6760813B1 (en) * 2001-12-20 2004-07-06 Cisco Technology, Inc. Devices, softwares and methods for preemptively updating expiring entries in a cache memory to anticipate future inquiries
US7983923B1 (en) * 2002-07-10 2011-07-19 Sap Ag Collaborative management of delivery schedules
AU2002349425A1 (en) 2002-11-13 2004-07-14 Zte Corporation Forward-link rate scheduling method and scheduler
US7376121B2 (en) * 2003-06-06 2008-05-20 Microsoft Corporation Method and system for global routing and bandwidth sharing
US7526765B2 (en) * 2003-11-26 2009-04-28 International Business Machines Corporation Method and apparatus for on-demand resource allocation and job management
US8213438B2 (en) * 2003-12-19 2012-07-03 Iwics Inc. Data transport protocol for a multi-station network
US7366528B1 (en) * 2004-01-13 2008-04-29 At&T Mobility Ii Llc Preventing wireless message delivery outside of specified times
US8412822B1 (en) * 2004-01-27 2013-04-02 At&T Intellectual Property Ii, L.P. Optimized job scheduling and execution in a distributed computing grid
JP4829474B2 (ja) 2004-01-30 2011-12-07 富士通株式会社 ネットワーク制御装置およびそのパス制御方法
US7529217B2 (en) 2004-03-27 2009-05-05 Dust Networks, Inc. Low-power autonomous node for mesh communication network
US8924247B2 (en) * 2004-08-19 2014-12-30 LoadPoint, Inc Ranking system using instant post-transaction surveying of transaction judges
US7542473B2 (en) 2004-12-02 2009-06-02 Nortel Networks Limited High-speed scheduling apparatus for a switching node
US8417549B2 (en) * 2005-05-27 2013-04-09 Sap Aktiengeselleschaft System and method for sourcing a demand forecast within a supply chain management system
US7751317B2 (en) * 2006-01-26 2010-07-06 Microsoft Corporation Cost-aware networking over heterogeneous data channels
US20080180445A1 (en) * 2007-01-29 2008-07-31 Mark Peskin Output Management Systems And Methods
US7865614B2 (en) * 2007-02-12 2011-01-04 International Business Machines Corporation Method and apparatus for load balancing with server state change awareness
US8861356B2 (en) * 2007-03-13 2014-10-14 Ntt Docomo, Inc. Method and apparatus for prioritized information delivery with network coding over time-varying network topologies
US8719375B2 (en) * 2007-03-22 2014-05-06 Microsoft Corporation Remote data access techniques for portable devices
US8325627B2 (en) 2007-04-13 2012-12-04 Hart Communication Foundation Adaptive scheduling in a wireless network
WO2009084102A1 (ja) * 2007-12-28 2009-07-09 Japan Marine Science Inc. プロセスマネジメント支援システム、及びシミュレーション方法
GB2457431A (en) * 2008-01-28 2009-08-19 Fujitsu Lab Of Europ Ltd Interference mitigation method in a wireless network
RU2361386C1 (ru) * 2008-02-26 2009-07-20 Федеральное государственное образовательное учреждение высшего профессионального образования Дальневосточный государственный аграрный университет Комбайн самоходный гусеничный кормоуборочный
US20100041365A1 (en) * 2008-06-12 2010-02-18 At&T Mobility Ii Llc Mediation, rating, and billing associated with a femtocell service framework
US8368698B2 (en) * 2008-09-24 2013-02-05 Microsoft Corporation Calculating a webpage importance from a web browsing graph
US8040810B2 (en) * 2008-11-26 2011-10-18 Mitsubishi Electric Research Laboratories, Inc. Method for routing packets in wireless ad-hoc networks with probabilistic delay guarantees
GB2469501B (en) * 2009-04-16 2012-01-04 Appshare Ltd Method and system for network-based collaboration
US9779386B2 (en) * 2009-08-31 2017-10-03 Thomson Reuters Global Resources Method and system for implementing workflows and managing staff and engagements
US20110154353A1 (en) 2009-12-22 2011-06-23 Bmc Software, Inc. Demand-Driven Workload Scheduling Optimization on Shared Computing Resources
US8346845B2 (en) * 2010-04-14 2013-01-01 International Business Machines Corporation Distributed solutions for large-scale resource assignment tasks
US8914471B2 (en) 2010-05-28 2014-12-16 Qualcomm Incorporated File delivery over a broadcast network using file system abstraction, broadcast schedule messages and selective reception
RU106474U1 (ru) * 2010-12-24 2011-07-10 Дмитрий Валерьевич Овчинников Региональная информационно-вычислительная сеть
US8705363B2 (en) * 2011-04-05 2014-04-22 Telefonaktiebolaget L M Ericsson (Publ) Packet scheduling method and apparatus
US9009318B2 (en) * 2011-11-03 2015-04-14 Microsoft Corporation Offline resource allocation algorithms
US8787154B1 (en) * 2011-12-29 2014-07-22 Juniper Networks, Inc. Multi-topology resource scheduling within a computer network
US20130179371A1 (en) 2012-01-05 2013-07-11 Microsoft Corporation Scheduling computing jobs based on value
US9197508B2 (en) * 2012-06-15 2015-11-24 Cisco Technology, Inc. Time-based scheduling for tunnels computed by a stateful path computation element
US20130346227A1 (en) * 2012-06-22 2013-12-26 Microsoft Corporation Performance-Based Pricing for Cloud Computing
US8843169B2 (en) 2012-08-06 2014-09-23 Microsoft Corporation Signal-aware data transfer in cellular networks
US8583467B1 (en) 2012-08-23 2013-11-12 Fmr Llc Method and system for optimized scheduling of workflows
US20140214474A1 (en) * 2013-01-25 2014-07-31 Marcello Balduccini Aggregation of customer requirements
US10068285B2 (en) * 2013-04-24 2018-09-04 International Business Machines Corporation Multi-dimensional surface-based bid matching
US9367809B2 (en) * 2013-10-11 2016-06-14 Accenture Global Services Limited Contextual graph matching based anomaly detection
US9325624B2 (en) * 2013-11-12 2016-04-26 Twilio, Inc. System and method for enabling dynamic multi-modal communication

Also Published As

Publication number Publication date
EP3117574A2 (en) 2017-01-18
IL247164B (en) 2019-08-29
WO2015138523A2 (en) 2015-09-17
US10218639B2 (en) 2019-02-26
WO2015138523A3 (en) 2015-11-05
AU2015229558B2 (en) 2018-12-20
BR112016020103A8 (pt) 2021-06-29
US20190260692A1 (en) 2019-08-22
PH12016501638A1 (en) 2017-02-06
EP3117574B1 (en) 2019-04-24
MX2016011539A (es) 2016-11-29
AU2015229558A1 (en) 2016-09-08
SG11201607426XA (en) 2016-10-28
KR20160132852A (ko) 2016-11-21
BR112016020103A2 (pt) 2017-08-15
NZ723357A (en) 2022-02-25
CA2939964A1 (en) 2015-09-17
RU2016136670A (ru) 2018-03-16
RU2688270C2 (ru) 2019-05-21
RU2016136670A3 (ja) 2018-10-24
IL247164A0 (en) 2016-09-29
CN106134136A (zh) 2016-11-16
MY186472A (en) 2021-07-22
US20150264135A1 (en) 2015-09-17
JP2017508403A (ja) 2017-03-23
KR102296617B1 (ko) 2021-08-31
CL2016002225A1 (es) 2017-02-24
CN106134136B (zh) 2019-11-19
US10693812B2 (en) 2020-06-23
BR112016020103B1 (pt) 2023-11-28
AU2019201941A1 (en) 2019-04-11
AU2019201941B2 (en) 2020-04-30

Similar Documents

Publication Publication Date Title
JP6641288B2 (ja) ワイド・エリア・ネットワークを介したデーター転送に対する長期スケジュールの計算
US10679169B2 (en) Cross-domain multi-attribute hashed and weighted dynamic process prioritization
JP6501918B2 (ja) 計算ワークフローにおいてサービス品質を確保するためのシステム及び方法
TW201820165A (zh) 用於雲端巨量資料運算架構之伺服器及其雲端運算資源最佳化方法
US11663051B2 (en) Workflow pipeline optimization based on machine learning operation for determining wait time between successive executions of the workflow
Asghari et al. Bi-objective cloud resource management for dependent tasks using Q-learning and NSGA-3
Li et al. Cost-aware scheduling for ensuring software performance and reliability under heterogeneous workloads of hybrid cloud
CN110489214B (zh) 云环境中数据密集型工作流的动态任务分配
WO2022252694A1 (zh) 神经网络优化方法及其装置
Depoorter et al. Advance reservation, co-allocation and pricing of network and computational resources in grids
JP2008503008A (ja) エンド・ツウ・エンド遅延保証を含む多層インフラストラクチャのコストを最小限度まで低減するための方法および装置
JP6753521B2 (ja) 計算資源管理装置、計算資源管理方法、及びプログラム
WO2018098797A1 (zh) Q学习中调整状态空间边界的方法和装置
Lu et al. RLPTO: A reinforcement learning-based performance-time optimized task and resource scheduling mechanism for distributed machine learning
JP7461378B2 (ja) 予備乗務員パターンを最適化すること
Kaur et al. PaF & MbOTS: Novel Task Scheduling Strategies for Fog Computing Environment
Shafinezhad et al. An Adaptive Budget and Deadline-aware Algorithm for Scheduling Workflows Ensemble in IaaS Clouds
CN117546145A (zh) 使用约束编程来设定资源分配限制以便向消费者分配资源
CN118312281A (zh) 任务调度方法及云平台
CN118093126A (zh) 任务调度方法、装置、系统、服务器及存储介质
CN117749631A (zh) 一种动态网络拓扑资源的隔离方法和装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180312

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190318

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190617

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191227

R150 Certificate of patent or registration of utility model

Ref document number: 6641288

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250