JP6809244B2 - 分散式コントローラ - Google Patents

分散式コントローラ Download PDF

Info

Publication number
JP6809244B2
JP6809244B2 JP2017008492A JP2017008492A JP6809244B2 JP 6809244 B2 JP6809244 B2 JP 6809244B2 JP 2017008492 A JP2017008492 A JP 2017008492A JP 2017008492 A JP2017008492 A JP 2017008492A JP 6809244 B2 JP6809244 B2 JP 6809244B2
Authority
JP
Japan
Prior art keywords
controller
computing device
service provider
client
client computing
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
JP2017008492A
Other languages
English (en)
Other versions
JP2017130934A (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
Publication of JP2017130934A publication Critical patent/JP2017130934A/ja
Application granted granted Critical
Publication of JP6809244B2 publication Critical patent/JP6809244B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/442Shutdown
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/062Generation of reports related to network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Environmental & Geological Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

本開示において論じられる実施形態は、分散された諸コントローラを含むシステムに関する。
コントローラは、ネットワークの形成および動作を容易にするようネットワーク要素にサービスを提供しうる。ネットワークのための単一の中央集中式のコントローラはネットワークに対して限界を課すことがある。
本願で請求される主題は、何らかの欠点を解決するまたは上記のような環境でのみ動作する実施形態に限定されない。むしろ、この背景は、本稿に記載される本開示の実施形態が実施されうる一つの例示的な技術領域を示すために与えられている。
一つまたは複数の実施形態において、本開示は、クライアント・システムとサービス・プロバイダー・システムとの間のレイテンシーを決定することを含む方法を含んでいてもよい。前記クライアント・システムは、ネットワーク要素およびクライアント・コンピューティング装置を含んでいてもよく、前記サービス・プロバイダー・システムは、前記クライアント・システムの前記ネットワーク要素にコントローラ・サービスを提供するよう構成されたコントローラ・プログラムを含んでいてもよい。本方法は、前記レイテンシーが閾値より長いことに基づいて、前記コントローラ・プログラムを、前記クライアント・コンピューティング装置によって実行されるよう前記クライアント・コンピューティング装置に送信することをも含んでいてもよい。それにより、前記クライアント・コンピューティング装置が前記クライアント・システムの前記ネットワーク要素にコントローラ・サービスを提供する。
実施形態の目的および利点は、少なくとも、請求項において具体的に指摘される要素、特徴および組み合わせによって実現され、達成される。
以上の概括的な記述および以下の詳細な説明は、例を提供し、説明するものであり、制約するものではない。
例示的な実施形態について、付属の図面を使ってさらに具体的かつ詳細に記述し、説明する。
分散式コントローラをもつ例示的なシステムのブロック図である。 分散式コントローラをもつ例示的なシステムのさまざまな接続を示すブロック図である。 例示的なコンピューティング装置のブロック図である。 分散式コントローラを利用する例示的な方法のフローチャートである。 分散式コントローラを利用するもう一つの例示的な方法のフローチャートである。 分散式コントローラを利用するさらなる例示的な方法のフローチャートの前半である。 分散式コントローラを利用するさらなる例示的な方法のフローチャートの後半である。
本開示は、分散式の諸コントローラを利用しうるシステム、たとえばソフトウェア定義ネットワーキング(SDN: software-defined networking)システムに関する。いくつかの実施形態では、システムはサービス・プロバイダー・システムおよびクライアント・システムを含んでいてもよい。サービス・プロバイダー・システムは、クライアント・システムにコントローラ・サービスを提供するよう構成されていてもよい。
いくつかの実施形態では、サービス・プロバイダー・システムは、クライアント・システムのネットワーク要素にコントローラ・サービスを提供するよう構成されたコントローラを含んでいてもよい。いくつかの実施形態では、コントローラ・サービスは、クライアント・システムのネットワーク要素と、クライアント・システム内で動作しているアプリケーションとの間の制御面(control plane)として機能しうる。トリガーするイベント(たとえば、クライアント・システムとサービス・プロバイダーとの間のレイテンシーが閾値を超えるまたはサービス・プロバイダー・システムの負荷が閾値を超えること)に基づいて、それまで前記諸コントローラによって動作させられていたコントローラ・プログラムが、前記サービス・プロバイダー・システムから前記クライアント・システムに送られてもよい。これらおよび他の実施形態において、前記コントローラ・プログラムは、クライアント・コンピューティング装置に提供され、クライアント・コンピューティング装置によって動作させられてもよい。
クライアント・コンピューティング装置においてコントローラ・プログラムを動作させることは、コントローラ・プログラムとクライアント・システムのネットワーク要素との間のレイテンシーを短縮しうる。さらに、クライアント・コンピューティング装置がコントローラ・プログラムを動作させることは、コントローラ・サービスを提供する負荷の一部を、サービス・プロバイダー・システムからクライアント・システムにオフロード(off-load)しうる。
本開示の実施形態は、付属の図面を参照して説明される。
図1は、本開示の少なくとも一つの実施形態に基づく、分散された諸コントローラをもつ例示的なシステム100のブロック図である。システム100は、サービス・プロバイダー・システム110(一点鎖線で示される)およびクライアント・システム120(破線で示される)を含んでいてもよい。クライアント・システム120は、サービス・プロバイダー・システム110からコントローラ・サービスを受領するよう、契約、合意、取り決めまたはその他を有していてもよい。たとえば、クライアント・システムは、ネットワーク128を提供するよう動作しうる一つまたは複数のネットワーク要素124(たとえば、ネットワーク要素124a、ネットワーク要素124b、ネットワーク要素124c、ネットワーク要素124dおよびネットワーク要素124e)を有していてもよい。ネットワーク要素124の一つまたは複数は、サービス・プロバイダー・システム110の一つまたは複数のコントローラ116(たとえば、コントローラ116a、コントローラ116b、コントローラ116cおよびコントローラ116d)によってコントローラ・サービスを提供されてもよい。コントローラ・サービスは、フロー制御管理、制御面動作、パケット伝送に関してネットワーク要素を指揮すること、ネットワーク資源とアプリケーションとの間のインターフェースを与えること、ネットワーク状態および統計をモニタリングすること、ネットワーク・ハードウェア機能および能力を管理すること、障害をアプリケーション/クライアントに報告することなどの任意のものを含みうる。いくつかの実施形態では、コントローラ116の一つまたは複数はSDNコントローラであってもよい。これらおよび他の実施形態において、コントローラ116によって提供されるコントローラ・サービスは、OPENFLOW(登録商標)プロトコルのような、SDNコントローラおよびシステムに関連する一つまたは複数のプロトコルを使って提供されてもよい。
サービス・プロバイダー・システム110はポータル112を含んでいてもよく、該ポータルにより、クライアント・システム120がサービス・プロバイダー・システム110と対話しうる。サービス・プロバイダー・システム110は、コントローラ116(たとえばコントローラ116a〜116d)を含みうるコントローラ・プール114をも含んでいてもよい。
クライアント・システム120は、一つまたは複数のコンピューティング装置122(たとえば、クライアント・コンピューティング装置122aおよびクライアント・コンピューティング装置122b)を含んでいてもよい。上記のように、クライアント・システム120は、ネットワーク要素124によって実装されるネットワーク128をも含んでいてもよい。
いくつかの実施形態では、サービス・プロバイダー・システム110は、クライアント・システム120内のコンピューティング装置122の一つ(たとえばクライアント・コンピューティング装置122a)にコントローラ・プログラム(たとえばコントローラ・プログラム126)を受信させ、実装させるよう、要求、送信またはその他を行なってもよい。コントローラ・プログラム126は、コントローラ116と同様のまたは同一の機能を実行してもよい。たとえば、コントローラ・プログラム126は、クライアント・システム120のネットワーク要素124の一つまたは複数にコントローラ・サービスを提供してもよい。いくつかの実施形態では、コントローラ・プログラム126は、コントローラ116のうち一つまたは複数を置き換えてもよく、および/またはコントローラ116のうち一つまたは複数の、コントローラ・サービスを補足してもよい。
いくつかの実施形態では、クライアント・コンピューティング装置122aは、一つまたは複数のイベントの生起に基づいてコントローラ・プログラム126を実装してもよい。コンピューティング装置122の一つにコントローラ・プログラムを受信させ、実装させるよう、要求、送信またはその他を行なうことをサービス・プロバイダー・システム110にさせるイベントは、トリガー・イベントと称されてもよい。
トリガー・イベントのさまざまな例は次のとおり。たとえば、トリガー・イベントは、サービス・プロバイダー・システム110とクライアント・システム120の間のレイテンシーが閾値を超える場合(たとえば図2に関して記述されるレイテンシー)に、コントローラ・プログラム126がクライアント・コンピューティング装置122aによって実行されうるということを含んでいてもよい。そのような閾値は、最小ピング応答時間のような、クライアントまたはサービス・プロバイダーによって設定されるパフォーマンス保証に基づいていてもよい。たとえば、クライアントまたはプロバイダーは、最小ピング応答を10ミリ秒、50ミリ秒、100ミリ秒、200ミリ秒、500ミリ秒、900ミリ秒などに設定してもよい。いくつかの実施形態では、最小ピング応答は、100ミリ秒から1000ミリ秒までの間であってもよい。トリガー・イベントのもう一つの例は、コントローラのプール114の負荷が閾値を超える場合に、コントローラ・プログラム126がクライアント・コンピューティング装置122aによって実行されうるというものであってもよい。そのような閾値は、ネットワーク要素対コントローラの最大比またはコントローラ・プログラムのための単位時間当たりの最小プロセッサ・サイクル数のような、クライアントまたはサービス・プロバイダーによって設定される計算資源負荷またはコントローラ負荷に基づいていてもよい。たとえば、いくつかの実施形態では、閾値は、コントローラ上での全プロセッサ利用の80パーセントまたはコントローラ上での全メモリ利用の80パーセントを含んでいてもよい。もう一つの例として、いくつかの実施形態では、閾値は、コントローラ・プログラムによって消費されるプロセッサ利用の50パーセントまたはコントローラ・プログラムによって消費されるメモリ利用の50パーセントを含んでいてもよい。トリガー・イベントのさらなる例は、クライアント・システム120が追加的なコントローラ・サービスを要求する場合(たとえば、ネットワーク128が追加的なネットワーク要素124を追加する場合)に、コントローラ・プログラム126がクライアント・コンピューティング装置122aによって実行されてもよいというものであってもよい。
図1に示されるように、ネットワーク要素124の一つまたは複数は、コントローラ・プール114内のコントローラ116によってコントローラ・サービスを提供されてもよい。たとえば、ネットワーク要素124cおよび124dはコントローラ116bからコントローラ・サービスを受けてもよく、ネットワーク要素124eはコントローラ116dからコントローラ・サービスを受けてもよい。追加的または代替的に、ネットワーク要素124の一つまたは複数が、クライアント・システム120のクライアント・コンピューティング装置122a上で動作しているコントローラ・プログラム126によってコントローラ・サービスを提供されてもよい。これらおよび他の実施形態において、コントローラ・プログラム126は、クライアント・コンピューティング装置122aにコントローラ・プログラム126を動作させるサービス・プロバイダー・システム110によってなされる要求、送信または他のアクションに基づいて動作させられてもよい。
サービス・プロバイダー・システム110は、クライアント・システム120にサービスを提供するよう構成された、任意の数のシステム、装置、コンポーネントまたはそれらの組み合わせを含みうる。たとえば、サービス・プロバイダー・システム110は、クライアント・システム120にSDN実装を提供するサードパーティーであってもよい。別の例として、サービス・プロバイダー・システム110が、クライアント・システム120にコントローラ・サービスを提供してもよい。
ポータル112は、サービス・プロバイダー・システム110とクライアント・システム120との間の通信を提供するよう構成された、任意の数のシステム、装置、コンポーネントまたはそれらの組み合わせを含みうる。たとえば、ポータル112は、クライアント・システム120が、サービス・プロバイダー・システム110からサービスおよび/またはアップデート(updates)を要求するおよび/またはサービス・プロバイダー・システム110によってクライアント・システム120に提供されたサービスの構成設定を管理することを許容しうる。いくつかの実施形態では、クライアント・システム120は、クライアント・システム120がサービス・プロバイダー・システム110から要求するまたは受領するサービス、契約または加入を開始、停止、更新(renew)または他の仕方で管理しうる。
いくつかの実施形態では、ポータル112は、サービス・プロバイダー・システム110とクライアント・システム120の間のレイテンシーおよび/またはコントローラ・プール114および/またはクライアント・コンピューティング装置122の負荷(たとえば、図2に関して述べるレイテンシー)を決定するよう構成されていてもよい。追加的または代替的に、ポータル112は、クライアント・システム120のコンピューティング装置122のうちの一つまたは複数にコントローラ・プログラム126を動作させるまたは他の仕方で受領させるよう、送信する、要求するまたは他の仕方で行なわせるのでもよい。いくつかの実施形態では、ポータル112は、ウェブ・ポータルを含んでいてもよい。これらおよび他の実施形態において、ウェブ・ポータルは、インターネットとインターフェースをもちうるシステムまたは装置を含んでいてもよく、それによりクライアント・システム120のユーザーはインターネットを介してポータル112にアクセスしうる。いくつかの実施形態では、ポータル112は、コンピューティング装置として、たとえば図3に示されるコンピューティング装置として実装されてもよい。
コントローラ116のコントローラ・プール114は、一つまたは複数のネットワーク要素(たとえばクライアント・システム120のネットワーク要素124)にコントローラ・サービスを提供するよう構成された、任意の数のシステム、装置、コンポーネントまたはそれらの組み合わせを含みうる。いくつかの実施形態では、コントローラ・プール114は、データ・センター、サーバーの群または物理的なコンピューティング装置の他の集まりとして実装されてもよい。いくつかの実施形態では、コントローラ・プール114は、仮想化ソフトウェアを含んでいてもよく、コントローラ116はコントローラの仮想化されたインスタンスを含んでいてもよい。コントローラ・プール114は、図3に示されるコンピューティング装置300のような一つまたは複数のコンピューティング装置として実装されてもよい。いくつかの実施形態では、コントローラ116は、コントローラ・プログラム、たとえばコントローラ・サービスを提供する仮想化されたコントローラまたはソフトウェア・プログラムとして実装されてもよい。いくつかの実施形態では、コントローラ116は、コントローラ・プール114内で物理的なコントローラとして実装されてもよい。たとえば、コントローラ116aは一つのコンピューティング装置であってもよく、コントローラ116bはもう一つのコンピューティング装置であってもよく、コントローラ116cはもう一つのコンピューティング装置であってもよく、コントローラ116dはもう一つのコンピューティング装置であってもよい(たとえば、図3に示されるコンピューティング装置300)。
いくつかの実施形態では、サービス・プロバイダー・システム110とクライアント・システム120の間のネットワーク(図示せず)があってもよい。例として、ネットワークは、サービス・プロバイダー・システム110およびクライアント・システム120が通信できるようにする一つまたは複数の広域ネットワーク(WAN)および/またはローカル・エリア・ネットワーク(LAN)を含んでいてもよい。いくつかの実施形態では、ネットワークは、複数のWANおよび/またはLANの間の論理的および物理的な接続によって形成されるグローバルな相互ネットワークを含むインターネットを含んでいてもよい。代替的または追加的に、ネットワークは、一つまたは複数のセルラーRFネットワークおよび/または一つまたは複数の有線および/または無線ネットワーク、たとえばこれに限られないが802.xxネットワーク、ブルートゥース(登録商標)・アクセス・ポイント、無線アクセス・ポイント、IPベースのネットワークなどを含んでいてもよい。ネットワークはまた、ある型のネットワークが別の型のネットワークとインターフェースをもてるようにするサーバーをも含んでいてもよい。追加的または代替的に、ネットワークはイントラネットまたは組織内でまたは他の意味で安全な仕方で通信する一つまたは複数のコンピューティング装置を含んでいてもよい。クライアント・システム120のネットワーク128は、サービス・プロバイダー・システム110とクライアント・システム120の間の通信を提供する、前記ネットワークの一部または部分であってもよい。追加的または代替的に、ネットワーク128は、クライアント・システム120とサービス・プロバイダー・システム110との間の通信を提供するネットワークと同様の仕方で実装されてもよい。いくつかの実施形態では、ネットワーク128は、ネットワーク要素124によってサービスされてもよく、および/または展開されてもよい。
クライアント・コンピューティング装置122(たとえば、クライアント・コンピューティング装置122aおよびクライアント・コンピューティング装置122b)は、クライアント・システム120内で動作するよう構成された、任意の数のシステム、装置、コンポーネントまたはそれらの組み合わせを含みうる。たとえば、クライアント・コンピューティング装置122は、企業イントラネット(たとえばネットワーク128)を通じて接続している多様なラップトップ、サーバー、ワークステーション、モバイル装置などを含みうる。クライアント・コンピューティング装置122はまた、ネットワーク128に接続されることなくクライアント・システム120にアドミン・サービス(administrative services)を提供しうる装置をも含んでいてもよい。たとえば、クライアント・システムの管理者は、ネットワーク128からリモートにクライアント・システム120を管理するまたは他の仕方で制御するのでもよい。いくつかの実施形態では、諸クライアント・コンピューティング装置122の一部または全部が、コントローラ・プログラム126を実行することができてもよい。たとえば、クライアント・コンピューティング装置122a上で動作するように図示されているが、クライアント・コンピューティング装置122bもコントローラ・プログラム126を実行できてもよい。
ネットワーク要素124(たとえば、ネットワーク要素124a、ネットワーク要素124b、ネットワーク要素124c、ネットワーク要素124dおよびネットワーク要素124e)は、ネットワーク128内でパケットを受信する、扱うおよび/または処理するよう構成された任意の装置、システム、コンポーネントまたはコンポーネントの集まりを含みうる。ネットワーク要素124はそれぞれルーター、ゲートウェイ、スイッチまたは他の任意のネットワーク要素として実装されてもよい。いくつかの実施形態では、ネットワーク要素124は、図3に示されるコンピューティング装置300のようなコンピューティング装置として実装されてもよい。
いくつかの実施形態では、ポータル112は、クライアント・コンピューティング装置122a上でのコントローラ・プログラム126の実装をトリガーしうるトリガー・イベントがあるかどうかモニタリングしてもよい。たとえば、トリガー・イベントは、クライアント・システム120とサービス・プロバイダー・システム110の間のレイテンシーが閾値を超えること、あるいはコントローラ・プール114の負荷が閾値を超えることを含んでいてもよい。もう一つの例として、トリガー・イベントは、クライアント・コンピューティング装置122aがポータル112から追加的なコントローラ・サービスを要求することを含んでいてもよい。これらおよび他の実施形態において、諸クライアント・コンピューティング装置122のうちの一つまたは複数のクライアント・コンピューティング装置の負荷および/またはコントローラ・プログラムを動作させているときの諸クライアント・コンピューティング装置122の負荷が、コントローラ・プログラム126をクライアント・システム120において実装するかどうかを決定することにおける要因であってもよい。たとえば、クライアント・コンピューティング装置122aがクライアント・コンピューティング装置122aの計算資源の高い割合を利用していて、クライアント・コンピューティング装置122bがクライアント・コンピューティング装置122bの計算資源の、より低い割合を利用していたら、コントローラ・プログラム126はクライアント・コンピューティング装置122aではなくクライアント・コンピューティング装置122bに送信されてもよい。追加的または代替的に、コントローラ・プログラム126は、ポータル112からクライアント・コンピューティング装置122aおよびクライアント・コンピューティング装置122bの両方に送信されてもよく、クライアント・コンピューティング装置122aおよびクライアント・コンピューティング装置122bの一方のみがポータル112によってコントローラ・プログラム126を実行するよう要求されるのでもよい。
本開示の範囲から外れることなく、図1に修正、追加または省略がなされてもよい。たとえば、システム100は、本開示において図示され、記述されているより多数または少数の要素を含んでいてもよい。たとえば、システム100は、コントローラ・プール114内の任意の数のコントローラ116、任意の数のクライアント・コンピューティング装置122および任意の数のネットワーク要素124を含みうる。もう一つの例として、通信のいくつかの両矢印が図示されているが、明示的に図示されていない通信における他の相互接続およびコンポーネントがあってもよい。追加的な例として、サービス・プロバイダー・システム110からコントローラ・サービスを受領する任意の数のクライアント・システム120があってもよく、および/またはクライアント・システム120は、任意の数のサービス・プロバイダー・システム110からのコントローラ・サービスを利用してもよい。
図2は、本開示の少なくとも一つの実施形態に基づく、分散された諸コントローラをもつ例示的なシステム100のさまざまな接続を示すブロック図である。図2のシステム100は、図1のシステム100と同一または類似であってもよい。図2は、レイテンシーについてモニタリングされうるさまざまな接続を示していてもよく、サービス・プロバイダー・システム110とクライアント・システム120の間のレイテンシーを測るさまざまな実施形態を示すことになる。
いくつかの実施形態では、サービス・プロバイダー・システム110とクライアント・システム120の間のレイテンシーが、ポータル112とクライアント・コンピューティング装置122aとの間の第一の接続210に沿ってレイテンシーを測定することによって測定されてもよい。たとえば、サービス・プロバイダー・システム110は、第一の接続210に沿ってポータル112からクライアント・コンピューティング装置122aに直接、ピングまたは他の往復要求(round-trip-request)を送ることによって、クライアント・コンピューティング装置122aとポータル112との間のレイテンシーをモニタリングしてもよい。もう一つの例として、クライアント・コンピューティング装置122aは、クライアント・コンピューティング装置122aからポータル112にピングまたは他の往復要求を送ることによって該レイテンシーを要求してもよい。
いくつかの実施形態では、サービス・プロバイダー・システム110とクライアント・システム120の間のレイテンシーは、コントローラ116のうちの一つまたは複数(たとえば116aおよび116b)とクライアント・コンピューティング装置122aとの間の第二の接続220に沿ってレイテンシーを測定することによって測定されてもよい。たとえば、サービス・プロバイダー・システム110は、第二の接続220に沿ってコントローラ116からクライアント・コンピューティング装置122aにピングまたは他の往復要求(round-trip-request)を送るようポータル112がコントローラ116に要求し、コントローラ116が結果をポータル112に報告することによって、第二の接続220に沿ったレイテンシーをモニタリングしてもよい。たとえば、クライアント・コンピューティング装置122aは、クライアント・コンピューティング装置122aからコントローラ116の一つまたは複数にピングまたは他の往復要求を送ることによって該レイテンシーを要求してもよい。
いくつかの実施形態では、サービス・プロバイダー・システム110とクライアント・システム120の間のレイテンシーは、ポータル112と、ネットワーク要素124のうちの一つまたは複数(たとえばネットワーク要素124aおよび124c)との間の第三の接続230に沿ってレイテンシーを測定することによって測定されてもよい。たとえば、サービス・プロバイダー・システム110は、ポータル112が第三の接続230に沿ってポータル112からネットワーク要素124にピングまたは他の往復要求(round-trip-request)を送ることによって、第三の接続230に沿ったレイテンシーをモニタリングしてもよい。もう一つの例として、クライアント・コンピューティング装置122aが、ネットワーク要素124からポータル112にピングまたは他の往復要求を送り、結果をクライアント・コンピューティング装置122aおよび/またはポータル112に報告するようネットワーク要素124に指令することによって、該レイテンシーを要求してもよい。これらおよび他の実施形態において、ポータル112がレイテンシー測定要求を送れるよう、クライアント・システム120は、ポータル112に、ネットワーク要素124についてのIPアドレスまたは他の識別情報を提供してもよい。
いくつかの実施形態では、サービス・プロバイダー・システム110とクライアント・システム120の間のレイテンシーは、コントローラ116のうちの一つまたは複数(たとえばコントローラ116d)とネットワーク要素124のうちの一つまたは複数(たとえばネットワーク要素124cおよび124d)との間の第四の接続240に沿ってレイテンシーを測定することによって測定されてもよい。たとえば、サービス・プロバイダー・システム110は、第四の接続240に沿ってコントローラ116からネットワーク要素124にピングまたは他の往復要求(round-trip-request)を送るようポータル112がコントローラ116に要求し、コントローラ116が結果をポータル112に報告することによって、第四の接続240に沿ったレイテンシーをモニタリングしてもよい。もう一つの例として、クライアント・コンピューティング装置122aは、ネットワーク要素124からコントローラ116にピングまたは他の往復要求を送り、結果をクライアント・コンピューティング装置122aおよび/またはポータル112に報告するようネットワーク要素124に指令することによって、該レイテンシーを要求してもよい。これらおよび他の実施形態において、コントローラ116がレイテンシー測定要求を送れるよう、クライアント・システム120は、ポータル112に、ネットワーク要素124についてのIPアドレスまたは他の識別情報を提供してもよく、ポータル112はその情報をコントローラ116に提供してもよい。
本開示の範囲から外れることなく、図2に修正、追加または省略がなされてもよい。たとえば、システム100は、本開示において図示され、記述されているより多数または少数の要素を含んでいてもよい。もう一つの例として、ピングまたは他の往復要求を使ってレイテンシーを測定するものとして記述されているが、さまざまな接続に沿ってレイテンシーを測定するための他の任意の機構、プロセスまたは事項が本開示の範囲内で考えられる。さらに、接続の例が示されているが、任意の数の接続が同時に、別個にまたは他の仕方でモニタリングまたは測定されうる。
図3は、本開示の少なくとも一つの実施形態に基づく、例示的なコンピューティング装置300のブロック図である。サービス・プロバイダー・システム110、ポータル112、コントローラのプール114、コントローラ116、クライアント・システム120、クライアント・コンピューティング装置122および/またはネットワーク要素124の任意のものが、コンピューティング装置300として実装されてもよい。コンピューティング装置300は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、サーバー・コンピュータ、タブレット・コンピュータ、携帯電話、スマートフォン、携帯情報端末(PDA)、ウェアラブル技術(たとえばスマート腕時計)、電子書籍リーダー装置、ネットワーク・スイッチ、ネットワーク・ルーター、ネットワーク・ハブ、他のネットワーキング装置または他の好適なコンピューティング装置を含んでいてもよい。
コンピューティング装置300は、プロセッサ310、記憶装置320、メモリ330および通信コンポーネント340を含んでいてもよい。プロセッサ310、記憶装置320、メモリ330および/または通信コンポーネント340はみな、各コンポーネントが他のコンポーネントと通信しうるよう、通信上結合されていてもよい。コンピューティング装置300は、本開示において記述される動作の任意のものを実行しうる。
一般に、プロセッサ310は、さまざまなコンピュータ・ハードウェアまたはソフトウェア・モジュールを含むいかなる好適な専用または汎用コンピュータ、コンピューティング・エンティティまたは処理装置を含んでいてもよく、いかなる適用可能なコンピュータ可読記憶媒体上に記憶された命令を実行するよう構成されていてもよい。たとえば、プロセッサ310はマイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)またはプログラム命令をインタープリットおよび/または実行するおよび/またはデータを処理するよう構成された他の任意のデジタルもしくはアナログ回路を含んでいてもよい。図3では単一のプロセッサとして示されているが、プロセッサ310は、本開示に記載される任意の数の動作を個々にまたは集団的に実行するよう構成された任意の数のプロセッサを含んでいてもよい。
いくつかの実施形態では、プロセッサ310は、プログラム命令をインタープリットおよび/または実行するおよび/または記憶装置320、メモリ330または記憶装置320とメモリ330に記憶されたデータを処理することを行なってもよい。いくつかの実施形態では、プロセッサ310は記憶装置320からプログラム命令を取ってきて、該プログラム命令をメモリ330にロードしてもよい。プログラム命令がメモリ330にロードされた後、プロセッサ310はプログラム命令を実行してもよい。
たとえば、いくつかの実施形態において、図1のコントローラ116および/またはコントローラ・プログラム126の一つまたは複数がデータ記憶320にプログラム命令として含められてもよい。プロセッサ310は、コントローラ116および/またはコントローラ・プログラム126のうち一つまたは複数の、プログラム命令を取ってきて、コントローラ116および/またはコントローラ・プログラム126の該プログラム命令をメモリ330にロードしてもよい。コントローラ116および/またはコントローラ・プログラム126のプログラム命令がメモリ330にロードされた後、プロセッサ310はプログラム命令を実行してもよく、それによりコンピューティング装置300はプログラム命令によって指令されるように、コントローラ116および/またはコントローラ・プログラム126に関連する動作を実装しうる。
記憶装置320およびメモリ330は、コンピュータ実行可能な命令またはデータ構造を担持するまたは記憶するコンピュータ可読記憶媒体を含んでいてもよい。そのようなコンピュータ可読記憶媒体は、プロセッサ310のような汎用または特殊目的コンピュータによってアクセスされうるいかなる利用可能な媒体を含んでいてもよい。限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスク記憶、磁気ディスク記憶または他の磁気記憶デバイス、フラッシュメモリ・デバイス(たとえば半導体メモリ・デバイス)またはコンピュータ実行可能な命令またはデータ構造の形で所望されるプログラム・コードを担持または記憶するために使用されうる、汎用または特殊目的コンピュータによってアクセスされうる他の任意の記憶媒体を含む、有体または非一時的なコンピュータ可読記憶媒体を含んでいてもよい。上記のものの組み合わせも、コンピュータ可読記憶媒体の範囲内に含まれうる。コンピュータ実行可能な命令はたとえば、プロセッサ310に、ある動作または動作群を実行させるよう構成された命令およびデータを含んでいてもよい。
通信コンポーネント340は、コンピューティング装置300とネットワーク(たとえば図1のネットワーク128または図1のサービス・プロバイダー・システム110とクライアント・システム120との間の通信を許容するネットワーク)との間の通信を許容するまたは容易にするよう構成された任意の装置、システム、コンポーネントまたはコンポーネントの集まりを含んでいてもよい。たとえば、通信コンポーネント340は、限定なしに、モデム、ネットワーク・カード(無線または有線)、赤外線通信装置、光通信装置、無線通信装置(たとえばアンテナ)および/またはチップセット(たとえばブルートゥース装置、802.6装置(たとえば都市圏ネットワーク(MAN))、Wi-Fi装置、WiMAX装置、セルラー通信設備など)および/またはその他を含んでいてもよい。通信コンポーネント340は、若干の例を挙げるとセルラー・ネットワーク、Wi-Fiネットワーク、MAN、光ネットワークなどのような任意のネットワーク(ネットワーク128を含む)および/またはリモート装置を含め本開示に記載される他の装置と、データが交換されることを許容しうる。
本開示の範囲から外れることなく、図3に修正、追加または省略がなされてもよい。たとえば、コンピューティング装置300は、本開示において図示され、記述されているより多数または少数の要素を含んでいてもよい。たとえば、コンピューティング装置300は、タブレットまたは携帯電話の画面のような統合された表示装置を含んでいてもよく、あるいはコンピューティング装置300とは別個でありコンピューティング装置300に通信上結合されているのでもよい外部モニター、プロジェクター、テレビジョンまたは他の好適な表示装置を含んでいてもよい。
図4は、本開示の少なくとも一つの実施形態に基づく、分散された諸コントローラを利用する例示的な方法400のフローチャートである。方法400は、いかなる好適なシステム、装置またはデバイスによって実行されてもよい。たとえば、図1のシステム100および/または図3のコンピューティング装置300が、方法400に関連する動作の一つまたは複数を実行してもよい。離散的なブロックを用いて図示されているが、所望される実装に依存して、方法400のブロックの一つまたは複数に関連するステップおよび動作は追加的なブロックに分割されたり、より少数のブロックに組み合わされたり、あるいはなくされたりしてもよい。
ブロック410では、トリガー・イベントがあるかどうかモニタリングされてもよい。たとえば、サービス・プロバイダー・システム(たとえば図1のサービス・プロバイダー・システム110)がトリガー・イベントをモニタリングしてもよい。そのようなトリガー・イベントは、サービス・プロバイダー・システムとクライアント・システム(たとえば図1のクライアント・システム120)との間のレイテンシーが閾値を超えること、コントローラのプール(たとえば図1のコントローラのプール114)の負荷が閾値を超えること、クライアント・システムが追加的なコントローラ・サービスを要求することなどを含んでいてもよい。
ブロック420では、クライアント・システム・コントローラ・プログラムをトリガーするトリガー・イベントが発生したかどうかについて判定がなされてもよい。トリガー・イベントが発生した場合、方法400はブロック430に進んでもよい。トリガー・イベントが発生していない場合、方法400はブロック410に戻って、トリガー・イベントがあるかどうかモニターすることを続けてもよい。
ブロック430では、コントローラ・プログラム(たとえば図1のコントローラ・プログラム126)がサービス・プロバイダー・システムからクライアント・システムのクライアント・コンピューティング装置(たとえば図1のクライアント・コンピューティング装置122a)に、クライアント・コンピューティング装置122a上で実行されるよう、送信されてもよい。よって、クライアント・コンピューティング装置122aは、クライアント・システムのネットワーク要素(たとえば図1のネットワーク要素124)にコントローラ・サービスを提供してもよい。たとえば、サービス・プロバイダー・システムのポータル(たとえば図1のポータル112)がコントローラ・プログラムをクライアント・システムのクライアント・コンピューティング装置に送信して、クライアント・コンピューティング装置がコントローラ・プログラムを実行できるようにしてもよい。
このように、方法400は、分散されたコントローラを利用しうる。本開示の範囲から外れることなく、方法400に修正、追加または省略がなされてもよい。たとえば、方法400の動作は異なる順序で実装されてもよい。追加的または代替的に、二つ以上の動作が同時に実行されてもよい。さらに、概説された動作およびアクションは例として与えられており、開示される実施形態の本質を損なうことなく、それらの動作およびアクションの一部が任意的であってもよく、より少数の動作およびアクションに組み合わされてもよく、あるいは追加的な動作およびアクションに展開されてもよい。
図5は、本開示の少なくとも一つの実施形態に基づく、分散された諸コントローラを利用するもう一つの例示的な方法500のフローチャートである。方法500は、いかなる好適なシステム、装置またはデバイスによって実行されてもよい。たとえば、図1のシステム100および/または図3のコンピューティング装置300が、方法500に関連する動作の一つまたは複数を実行してもよい。離散的なブロックを用いて図示されているが、所望される実装に依存して、方法500のブロックの一つまたは複数に関連するステップおよび動作は追加的なブロックに分割されたり、より少数のブロックに組み合わされたり、あるいはなくされたりしてもよい。
ブロック510では、クライアント・システムとサービス・プロバイダー・システム(たとえば図1のクライアント・システム120とサービス・プロバイダー・システム110)の間のレイテンシーが決定されてもよい。たとえば、レイテンシーは、図2に関して述べた接続の任意のものに沿って決定されてもよい。いくつかの実施形態では、サービス・プロバイダー・システムは、クライアント・システムのネットワーク要素(たとえば図1のネットワーク要素124a)にコントローラ・サービスを提供するためにコントローラ・プログラム(たとえば図1のコントローラ・プログラム116a)を動作させていてもよい。いくつかの実施形態では、レイテンシーの決定は、レイテンシーを閾値と比較してレイテンシーが閾値を超えているかどうかを判定することを含んでいてもよい。
ブロック520では、クライアント・コンピューティング装置を含む、クライアント・システムにおいて現在動作しているコンピューティング装置の一つまたは複数(たとえば図1のコンピューティング装置122aおよび/または122b)が同定されてもよい。たとえば、ポータル(たとえば図1のポータル112)が、コントローラ・プログラムを動作させる十分なコンピューティング機能を有することができ、クライアント・システムにおいて現在動作している、クライアント・システムのコンピューティング装置を同定してもよい。もう一つの例として、ポータルは、クライアント・システムのユーザーがサービス・プロバイダー・システムに要求をするのに使うコンピューティング装置を同定してもよい。いくつかの実施形態では、前記一つまたは複数のコンピューティング装置は、ブロック510において閾値を超えると判定されたレイテンシーに応答して同定されてもよい。
ブロック530では、コントローラ・プログラムを実行するために、前記クライアント・コンピューティング装置は、ブロック520において同定されたコンピューティング装置から選択されてもよい。たとえば、ポータルはコントローラ・プログラムを実行するために十分なコンピューティング機能を含んでいるとして前記クライアント・コンピューティング装置を同定してもよく、該クライアント・コンピューティング装置を選択してもよい。
ブロック540では、サービス・プロバイダー・システムは、クライアント・コンピューティング装置を操作しているユーザーの認証を受領してもよい。たとえば、サービス・プロバイダー・システムは、クライアント・システムのユーザー(たとえばシステム管理者、パワーユーザーなど)がパスワード、クレデンシャル、フィンガープリントなどまたは他の任意の認証機構を介して認証を提供することを要求してもよい。いくつかの実施形態では、認証は、サービス・プロバイダー・システムからの要求に基づいて提供されてもよい。
ブロック550では、サービス・プロバイダー・システムは、コントローラ・プログラムを、サービス・プロバイダー・システムからクライアント・コンピューティング装置に送信してもよい。コントローラ・プログラムをクライアント・コンピューティング装置に提供することにより、クライアント・コンピューティング装置は、コントローラ・サービスをクライアント・システムのネットワーク要素に提供することを許容されうる。たとえば、サービス・プロバイダーはコントローラ・プログラムの実行可能ファイルをクライアント・コンピューティング装置に送ってもよく、クライアント・コンピューティング装置がその実行可能ファイルを実行してもよい。追加的または代替的に、サービス・プロバイダー・システムは、サービス・プロバイダー・システム上で動作しているコントローラ・プログラムをサスペンドさせるまたは他の仕方でそのスナップショットを取ってもよく、そのスナップショットを実行可能ファイルの代わりにまたは実行可能ファイルと結合して提供してもよい。たとえば、サービス・プロバイダー・システムにおいてコントローラ・プログラムを実装している物理的なメモリ位置がサスペンドされ、コピーされ、クライアント・システムに送信されてもよい。いくつかの実施形態では、コントローラ・プログラムは、ブロック520において同定されたコンピューティング装置の全部に送信されてもよい。
ブロック560では、サービス・プロバイダー・システムは、クライアント・コンピューティング装置がコントローラ・プログラムを実行することを要求してもよい。たとえば、コントローラ・プログラムがサービス・プロバイダー・システムから複数のコンピューティング装置に送信された場合、前記クライアント・コンピューティング装置のみがコントローラ・プログラムを実行するよう要求されてもよい。いくつかの実施形態では、コントローラ・プログラムがクライアント・システムにおいて動作することは、ネットワーク要素とコントローラ・サービスとの間のレイテンシーを短縮しうる。たとえば、クライアント・コンピューティング装置は、サービス・プロバイダー・システムよりも物理的にネットワーク要素に近くてもよく、ネットワークにおいてより少数のホップを経験してもよい、などである。追加的または代替的に、クライアント・コンピューティング装置は、サービス・プロバイダー・システムよりも、ネットワーク要素への、より強力なネットワーク接続(たとえば帯域幅、信号強度など)を有していてもよい。
ブロック570では、サービス・プロバイダー・システムは、クライアント・コンピューティング装置がコントローラ・プログラムを実行しているという確証を受領してもよい。たとえば、クライアント・コンピューティング装置はコントローラ・プログラムを実行してもよく、コントローラ・プログラムが初期化を完了した後、コントローラ・プログラムはクライアント・コンピューティング装置をして、コントローラ・プログラムが正しく機能しているという確証メッセージをサービス・プロバイダー・システムに送信させてもよい。いくつかの実施形態では、サービス・プロバイダー・システムは、確証メッセージに応答して、コントローラ・プログラムがどのネットワーク要素にコントローラ・サービスを提供するべきかなど、コントローラ・プログラムについての詳細および/または他の要求を提供してもよい。
ブロック580では、サービス・プロバイダー・システムは、サービス・プロバイダー・システムにおいて動作しているコントローラ・プログラムをシャットダウンしてもよい。たとえば、クライアント・コンピューティング装置において動作しているコントローラ・プログラムがクライアント・システムのネットワーク要素にコントローラ・サービスを提供しているという確証後、サービス・プロバイダー・システムは、ネットワーク要素に対して前にコントローラ・サービスを提供していたサービス・プロバイダー・システム・コントローラ・プログラムをシャットダウンしてもよい。サービス・プロバイダー・システム・コントローラ・プログラムをシャットダウンすることは、サービス・プロバイダー・システムの負荷を低減しうる。たとえば、コントローラのプールにおいて動作しているコントローラの数を減らすことによって、コントローラのプールを動作させているハードウェアが、低減した負荷をもちうる。
このように、方法500は、分散された諸コントローラを利用しうる。本開示の範囲から外れることなく、方法500に修正、追加または省略がなされてもよい。たとえば、ブロック510、520、530、540、550、560、570および/または580の任意のものが省略されてもよい。別の例として、方法500の動作は異なる順序で実装されてもよい。たとえば、ブロック520、530および/または540は任意の順序で実行されうる。追加的または代替的に、二つ以上の動作が同時に実行されてもよい。たとえば、ブロック520、530および/または540が同時に実行されてもよい。さらに、概説された動作およびアクションは例として与えられており、開示される実施形態の本質を損なうことなく、それらの動作およびアクションの一部が任意的であってもよく、より少数の動作およびアクションに組み合わされてもよく、あるいは追加的な動作およびアクションに展開されてもよい。
図6Aおよび6Bは、本開示の少なくとも一つの実施形態に基づく、分散された諸コントローラを利用するさらなる例示的な方法600のフローチャートである。方法600は、いかなる好適なシステム、装置またはデバイスによって実行されてもよい。たとえば、図1のシステム100および/または図3のコンピューティング装置300が、方法600に関連する動作の一つまたは複数を実行してもよい。離散的なブロックを用いて図示されているが、所望される実装に依存して、方法600のブロックの一つまたは複数に関連するステップおよび動作は追加的なブロックに分割されたり、より少数のブロックに組み合わされたり、あるいはなくされたりしてもよい。
ブロック605では、サービス・プロバイダー・システム(たとえば図1のサービス・プロバイダー・システム110)がクライアント・システム(たとえば図1のクライアント・システム120)の一つまたは複数のネットワーク要素(たとえば図1のネットワーク要素124)にコントローラ・サービスを提供している間に、クライアント・システムがサービス・プロバイダー・システムからの追加的なコントローラ・プログラムを要求してもよい。たとえば、クライアント・システムは、サービス・プロバイダー・システムからコントローラ・サービスを受領する契約を有していてもよい。クライアント・システムは、追加的なネットワーク要素を追加することを決定してもよく、よって該追加的なネットワーク要素にサービスするためにサービス・プロバイダー・システムから追加的なコントローラ・プログラムを要求してもよい。別の例として、ネットワーク要素によってサービスされるネットワーク(たとえばネットワーク128)が遅いまたは遅延を経験している場合、クライアント・システムは、ネットワーク要素によりよいサービスを提供するために、追加的なコントローラ・プログラムを要求してもよい。
ブロック610では、クライアント・システムは、クライアント・コンピューティング装置(たとえば図1のクライアント・コンピューティング装置122aおよび/または122b)の現在の負荷をサービス・プロバイダー・システムに報告してもよい。たとえば、ポータル(たとえば図1のポータル112)は、クライアント・システムが、クライアント・システムにおいて動作しているコンピューティング装置のうち一つまたは複数のコンピューティング装置の現在の負荷を提供することを要求してもよい。応答して、クライアント・システムはコンピューティング装置の負荷(たとえばプロセッサ負荷、メモリ負荷、ネットワーク負荷など)をサービス・プロバイダー・システムに報告してもよい。
ブロック615では、クライアント・システムは、サービス・プロバイダー・システムからコントローラ・プログラム(たとえば図1のコントローラ・プログラム116)を受領してもよい。たとえば、サービス・プロバイダー・システムのポータルが、コントローラ・プログラムの実行可能ファイルを、ポータルからクライアント・コンピューティング装置に送信してもよい。
ブロック620では、クライアント・システムは、クライアント・システムのネットワーク要素のうちの少なくとも一つにコントローラ・サービスを提供するために、クライアント・コンピューティング装置においてコントローラ・プログラムを動作させてもよい。たとえば、コントローラ・プログラムの受領に応答してまたはサービス・プロバイダー・システムからの要求に応答して、クライアント・コンピューティング装置がコントローラ・プログラムを実行してもよい。
ブロック625では、クライアント・システムは、サービス・プロバイダー・システムに、クライアント・コンピューティング装置がコントローラ・プログラムを動作させていることを通知してもよい。たとえば、コントローラ・プログラムの初期化シーケンスの終わりまたは終わり近くに、コントローラ・プログラムは、クライアント・コンピューティング装置がコントローラ・プログラムを成功裏に実行し、ネットワーク要素の少なくとも一つに対してコントローラ・サービスを提供していることをサービス・プロバイダー・システムに報告するよう、クライアント・コンピューティング装置に命令してもよい。もう一つの例として、コントローラ・プログラムがクライアント・コンピューティング装置上で動作している後、クライアント・システムの同じまたは別の装置が、コントローラ・プログラムがネットワーク要素にコントローラ・サービスを提供しているというサービス・プロバイダー・システムへの通知を送ってもよい。
ブロック630では、クライアント・コンピューティング装置によって動作させられるコントローラ・プログラムは、サービス・プロバイダー・システムにおいて動作している追加的なコントローラ・プログラムとクラスタリングされてもよい。たとえば、コントローラ・プログラムは、サービス・プロバイダー・システムにおいて動作しているコントローラのプール(たとえば図1のコントローラのプール114)とインターフェースをもってもよく、これと通信してもよく、および/または他の仕方でその一員として機能してもよい。
ブロック635では、クライアント・コンピューティング装置がコントローラ・プログラムを実行している間に、クライアント・コンピューティング装置においてシャットダウン要求が受領されてもよい。たとえば、クライアント・コンピューティング装置のユーザーが、クライアント・コンピューティング装置へのパワーを低減させるまたはなくすためにシャットダウン手順を要求または初期化してもよい。
ブロック640(図6Bに示される)では、コントローラ・プログラムを実行するためのクライアント・システムの追加的なクライアント・コンピューティング装置が同定されうるまで、クライアント・コンピューティング装置のシャットダウン・プロセスが中断されてもよい。たとえば、クライアント・システムおよび/またはサービス・プロバイダー・システムが、コントローラ・プログラムを動作させるために利用可能なコンピューティング資源を有しうる追加的なコンピューティング装置を同定するおよび/または選択する間、シャットダウン・プロセスは保留にされてもよい。
ブロック645において、コントローラ・プログラムは追加的なクライアント・コンピューティング装置に提供されてもよい。たとえば、クライアント・コンピューティング装置は、コントローラ・プログラムのための実行可能ファイルを追加的なクライアント・コンピューティング装置に送信し、あるいは他の仕方で渡してもよい。もう一つの例として、クライアント・コンピューティング装置は、コントローラ・プログラムのスナップショットを取り、あるいは他の仕方でサスペンドさせてもよく、コントローラ・プログラムのスナップショットまたはサスペンドされたバージョンを追加的なクライアント・コンピューティング装置に送信し、あるいは他の仕方で渡してもよい。たとえば、コントローラ・プログラムを実装しているクライアント・コンピューティング装置の物理的なメモリ位置がサスペンドされ、コピーされ、追加的なクライアント・システムに送信されてもよい。さらなる例として、サービス・プロバイダー・システムがコントローラ・プログラムを追加的なクライアント・コンピューティング装置に送信してもよい。
ブロック650では、クライアント・コンピューティング装置はシャットダウン・プロセスを完了させてもよい。たとえば、追加的なクライアント・コンピューティング装置がコントローラ・プログラムを実行していることを確認後、クライアント・コンピューティング装置は、シャットダウン・プロセスにおいて残っているタスクがあればそれを完了させてもよく、次いでクライアント・コンピューティング装置への電力を低減させるまたは取り除いてもよい。
このように、方法600は、分散された諸コントローラを利用しうる。本開示の範囲から外れることなく、方法600に修正、追加または省略がなされてもよい。たとえば、ブロック605、610、625、630、635、640、645および/または650の任意のものが省略されてもよい。別の例として、方法600の動作は異なる順序で実装されてもよい。たとえば、ブロック605、610および/または615の任意のものは任意の順序で実行されうる。追加的または代替的に、二つ以上の動作が同時に実行されてもよい。たとえば、ブロック620、625、630および/または635の任意のものが同時に実行されてもよい。もう一つの例として、ブロック605、610および/または615の任意のものが同時に実行されてもよい。さらに、概説された動作およびアクションは例として与えられており、開示される実施形態の本質を損なうことなく、それらの動作およびアクションの一部が任意的であってもよく、より少数の動作およびアクションに組み合わされてもよく、あるいは追加的な動作およびアクションに展開されてもよい。
本稿に開示される技術の範囲内の実施形態は、コンピュータ実行可能命令またはデータ構造を担持または記憶するコンピュータ可読媒体を含んでいてもよい。そのようなコンピュータ可読媒体は、汎用または特殊目的コンピュータによってアクセスされうるいかなる利用可能な媒体を含んでいてもよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスク記憶、磁気ディスク記憶または他の磁気記憶デバイス、またはコンピュータ実行可能な命令またはデータ構造の形で所望されるプログラム・コードを担持または記憶するために使用されうる、汎用または特殊目的コンピュータによってアクセスされうる他の任意の記憶媒体を含んでいてもよい。ネットワークまたは他の通信接続(結線、無線または結線と無線の組み合わせ)を通じて情報がコンピュータに転送または提供されるとき、コンピュータは適正に該接続をコンピュータ可読媒体としてみなす。このように、いかなるそのような接続も、適正にコンピュータ可読媒体と称される。上記のものの組み合わせも、コンピュータ可読媒体の範囲内に含まれうる。
コンピュータ実行可能な命令はたとえば、汎用コンピュータ、特殊目的コンピュータまたは特殊目的処理装置にある種の機能または一群の機能を実行させる命令およびデータを含む。主題は、構造的な特徴および/または方法論的な工程に固有の言辞で記述されているが、付属の請求項において定義される主題は必ずしも上記の特定の特徴または工程に限定されないことは理解しておくものとする。むしろ、上記の特定の特徴および工程は、請求項を実装する例示的な形として開示されている。
本開示での用法では、用語「モジュール」または「コンポーネント」は、該モジュールまたはコンポーネントのアクションを実行するよう構成された特定のハードウェア実装および/またはコンピューティング・システムの汎用ハードウェア(たとえばコンピュータ可読媒体、処理装置など)に記憶および/または実行さうれるソフトウェア・オブジェクトまたはルーチンを指しうる。いくつかの実施形態では、本開示に記載される種々のコンポーネント、モジュール、エンジンおよびサービスは、(たとえば別個のスレッドとして)コンピューティング・システム上で実行されるオブジェクトまたはプロセスとして実装されてもよい。本開示に記載されるシステムおよび方法のいくつかは、一般に、(汎用ハードウェアに記憶および/または実行される)ソフトウェアで実装されるものとして記述されるが、個別のハードウェア実装またはソフトウェアと個別のハードウェア実装の組み合わせも可能であり、考えられている。本開示において、「コンピューティング装置」は、本開示で先に定義したような任意のコンピューティング・システムまたはコンピューティング・システム上で走る任意のモジュールもしくはモジュールの組み合わせでありうる。
本開示および特に付属の請求項(たとえば付属の請求項の本文)において使われる用語は一般に「オープン」な用語として意図されている(たとえば、用語「含む」は「含むがそれに限られない」と解釈されるべきであり、用語「もつ」は「少なくとも…をもつ」と解釈されるべきであり、用語「含む」は「含むがそれに限られない」と解釈されるべきであるなど)。
さらに、導入される請求項の記載の特定の数が意図される場合、そのような意図は請求項において明示的に記載される。そのような記載のない場合には、そのような意図はない。たとえば、理解の助けとして、以下の付属の請求項は、請求項の記載を導入するために「少なくとも一つの」および「一つまたは複数の」という導入句の使用を含むことがありうる。しかしながら、たとえ同じ請求項が導入句「一つまたは複数の」または「少なくとも一つの」および「a」または「an」のような不定冠詞を含むときでも、そのような句の使用は、不定冠詞「a」または「an」による請求項の記載の導入が、そのように導入された請求項の記載を含む何らかの特定の請求項を、そのような記載を一つだけ含む実施形態に限定することを含意していると解釈されるべきではない(たとえば、「a」および/または「an」は、「少なくとも一つの」または「一つまたは複数の」を意味するものと解釈されるべきである)。同じことは、請求項の記載を導入する定冠詞の使用についても成り立つ。
さらに、たとえ導入される請求項の記載の特定の数が明示的に記載されていたとしても、当業者は、そのような記載が、少なくともその記載された数を意味すると解釈されるべきであることを認識するであろう(たとえば、他の修飾語なしで単に「二つの記載」という記載は、少なくとも二つの記載または二つ以上の記載を意味する)。さらに、「A、BおよびCなどのうちの少なくとも一つ」または「A、BおよびCなどの一つまたは複数」に類似する慣用句が使われる事例においては、一般に、そのような構文はAだけ、Bだけ、Cだけ、AおよびB両方、AおよびC両方、BおよびC両方またはA、BおよびC全部などを含むことが意図される。
さらに、明細書であれ請求項であれ図面であれ、二つ以上の代替的な用語を呈示するあらゆる離接的な語句は、該用語の一つを含む、該用語のいずれかを含むまたは該用語の両方を含む可能性を考えているものと理解されるべきである。たとえば、「AまたはB」という句は、「A」または「B」または「AおよびB」の可能性を含むと理解されるべきである。
本開示において記載されるすべての例および条件付きの言辞は、本開示および発明者によって当技術分野の発展のために寄与される概念の理解において読者を助ける教育目的を意図されており、そのような特定的に挙げられる例および条件に限定することなく解釈されるものとする。本開示の実施形態について詳細に述べてきたが、本開示の精神および範囲から外れることなく、これにさまざまな変化、代替および変更をなすことができることは理解しておくべきである。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
クライアント・システムとサービス・プロバイダー・システムとの間のレイテンシーを決定する段階であって、前記クライアント・システムは、ネットワーク要素およびクライアント・コンピューティング装置を含み、前記サービス・プロバイダー・システムは、前記クライアント・システムの前記ネットワーク要素にコントローラ・サービスを提供するよう構成されたコントローラ・プログラムを含む、段階と;
前記レイテンシーが閾値より長いことに基づいて、前記コントローラ・プログラムを、前記クライアント・コンピューティング装置によって実行されるよう前記クライアント・コンピューティング装置に送信して、それにより、前記クライアント・コンピューティング装置が前記クライアント・システムの前記ネットワーク要素にコントローラ・サービスを提供するようにする段階とを含む、
方法。
(付記2)
クライアント・システムとサービス・プロバイダー・システムとの間のレイテンシーを決定する前記段階が、前記コントローラ・プログラムを実行している前記サービス・プロバイダー・システムのサービス・プロバイダー・コンピュータと前記ネットワーク要素との間のレイテンシーを測定することを含む、付記1記載の方法。
(付記3)
クライアント・システムとサービス・プロバイダー・システムとの間のレイテンシーを決定する前記段階が、前記サービス・プロバイダー・システムのポータルと前記クライアント・コンピューティング装置との間のレイテンシーを測定することを含む、付記1記載の方法。
(付記4)
クライアント・システムとサービス・プロバイダー・システムとの間のレイテンシーを決定する前記段階が、前記コントローラ・プログラムを実行している前記サービス・プロバイダー・システムのサービス・プロバイダー・コンピュータと前記クライアント・コンピューティング装置との間のレイテンシーを測定することを含む、付記1記載の方法。
(付記5)
クライアント・システムとサービス・プロバイダー・システムとの間のレイテンシーを決定する前記段階が、前記サービス・プロバイダー・システムのポータルと前記ネットワーク要素との間のレイテンシーを測定することを含む、付記1記載の方法。
(付記6)
前記コントローラ・プログラムを送信することがさらに、前記コントローラ・プログラムのメモリ使用に基づく前記クライアント・コンピューティング装置のメモリ負担、前記コントローラ・プログラムによって使用される記憶ボリュームに基づく前記クライアント・コンピューティング装置の記憶負担および前記コントローラ・プログラムのプロセッサ利用に基づく前記クライアント・コンピューティング装置の処理負担のうちの一つまたは複数に基づく、付記1記載の方法。
(付記7)
前記クライアント・システムにおいて現在動作している一つまたは複数のコンピューティング装置を同定する段階であって、前記一つまたは複数のコンピューティング装置は前記クライアント・コンピューティング装置を含む、段階と;
前記一つまたは複数のコンピューティング装置のうちから前記コントローラ・プログラムを実行すべき前記クライアント・コンピューティング装置を選択する段階と;
前記クライアント・コンピューティング装置に前記コントローラ・プログラムを実行するよう要求する段階と;
前記クライアント・コンピューティング装置が前記コントローラ・プログラムを実行していることの確認を受領する段階と;
前記サービス・プロバイダー・システムにおいて前記コントローラ・プログラムをシャットダウンする段階とをさらに含む、
付記1記載の方法。
(付記8)
前記コントローラ・プログラムを前記クライアント・コンピューティング装置に送信する前に、前記クライアント・コンピューティング装置を操作しているユーザーの認証を受領する段階をさらに含む、付記1記載の方法。
(付記9)
クライアント・システムのクライアント・コンピューティング装置においてサービス・プロバイダー・システムからコントローラ・プログラムを受領する段階とであって、前記コントローラ・プログラムは、前記クライアント・システムのネットワーク要素にコントローラ・サービスを提供するよう構成されている、段階と;
前記クライアント・コンピューティング装置によって前記コントローラ・プログラムを動作させる段階と;
前記サービス・プロバイダー・システムに、前記クライアント・コンピューティング装置が前記コントローラ・プログラムを動作させていることを通知する段階とを含む、
方法。
(付記10)
前記クライアント・コンピューティング装置が前記コントローラ・プログラムを実行している間に、前記クライアント・コンピューティング装置においてシャットダウン要求を受領する段階と;
前記コントローラ・プログラムを実行するための前記クライアント・システムの別のクライアント・コンピューティング装置が同定されるまで、前記クライアント・コンピューティング装置のシャットダウン・プロセスを中断する段階と;
前記コントローラ・プログラムを前記別のクライアント・コンピューティング装置に提供する段階と;
前記クライアント・コンピューティング装置の前記シャットダウン・プロセスを完了する段階とをさらに含む、
付記9記載の方法。
(付記11)
前記ネットワーク要素は第一のネットワーク要素であり、当該方法はさらに、前記サービス・プロバイダー・システムが前記クライアント・システムの第二のネットワーク要素にコントローラ・サービスを提供している間に、前記第一のネットワーク要素にコントローラ・サービスを提供するために前記サービス・プロバイダー・システムからの追加的なコントローラ・プログラムを要求する段階をさらに含む、付記9記載の方法。
(付記12)
前記クライアント・システムの第二のネットワーク要素にコントローラ・サービスを提供するために、前記コントローラ・プログラムを、前記サービス・プロバイダー・システムにおいて動作している追加的なコントローラ・プログラムとクラスタリングすることをさらに含む、付記9記載の方法。
(付記13)
前記クラスタリングにより、前記クライアント・コンピューティング装置上で動作している前記コントローラ・プログラムが、前記ネットワーク要素を含む前記クライアント・システムの複数のネットワーク要素にコントローラ・サービスを提供する複数のコントローラ・サービスのプールに加わる、付記12記載の方法。
(付記14)
サービス・プロバイダー・システムと顧客システムとを有するコントローラ・システムであって、
前記サービス・プロバイダー・システムは、前記サービス・プロバイダー・システムにおいて動作している一組の第一のコントローラ・プログラムを含み、
前記顧客システムは、
複数のネットワーク要素と;
前記複数のネットワーク要素のうちの少なくとも一つにコントローラ・サービスを提供するために前記サービス・プロバイダー・システムから受領される第二のコントローラ・プログラムを動作させる顧客コンピュータとを有しており、前記複数のネットワーク要素のうちの残りは前記サービス・プロバイダー・システムにおいて動作する前記一組の第一のコントローラ・プログラムからコントローラ・サービスを受ける、
コントローラ・システム。
(付記15)
前記サービス・プロバイダー・システムが、前記サービス・プロバイダー・システムと前記顧客システムとの間のレイテンシーをモニタリングし、前記レイテンシーが閾値を超えることに応答して前記クライアント・コンピューティング装置に前記第二のコントローラ・プログラムを送信するよう構成されている、付記14記載のコントローラ・システム。
(付記16)
前記一組の第一のコントローラ・プログラムおよび前記第二のコントローラ・プログラムがコントローラ・プールにいて動作している、付記14記載のコントローラ・システム。
(付記17)
前記サービス・プロバイダー・システムが、前記顧客システムによってアクセス可能でありかつ前記顧客システムが前記サービス・プロバイダー・システムと対話できるようにするよう構成されている、ポータルを有する、付記14記載のコントローラ・システム。
(付記18)
前記ポータルがウェブ・ポータルを含む、付記17記載のコントローラ・システム。
(付記19)
前記顧客システムがさらに、前記第二のコントローラ・プログラムを動作させるよう構成された追加的なクライアント・コンピューティング装置を有しており、前記追加的なクライアント・コンピューティング装置は前記第二のコントローラ・プログラムを受領するが実行しない、付記14記載のコントローラ・システム。
(付記20)
前記サービス・プロバイダー・システムは、前記一組の第一のコントローラ・プログラムの負荷をモニタリングし、前記一組の第一のコントローラ・プログラムの前記負荷が閾値を超えることに応答して前記クライアント・コンピューティング装置に前記第二のコントローラ・プログラムを送信するよう構成されている、付記14記載のコントローラ・システム。
110 サービス・プロバイダー・システム
112 ポータル
116 コントローラ
120 クライアント・システム
122 クライアント・コンピューティング装置
124 ネットワーク要素
126 コントローラ

310 プロセッサ
320 記憶装置
330 メモリ
340 通信装置

410 トリガー・イベントがあるかどうかモニタリング
420 クライアント・システム・コントローラ・プログラムをトリガーするトリガー・イベントが発生したか?
430 スイッチにコントローラ・サービスを提供するよう、コントローラ・プログラムをクライアント・コンピューティング装置に送信

510 クライアント・システムとサービス・プロバイダー・システムの間のレイテンシーを決定。サービス・プロバイダー・システムは、クライアント・システムのスイッチにコントローラ・サービスを提供するためにコントローラ・プログラムを動作させる
520 クライアント・コンピューティング装置を含む、クライアント・システムにおいて現在動作している一つまたは複数のコンピューティング装置を同定
530 コントローラ・プログラムを実行するために、クライアント・コンピューティング装置を選択
540 クライアント・コンピューティング装置を操作しているユーザーの認証情報を受領
550 スイッチにコントローラ・サービスを提供するよう、コントローラ・プログラムをクライアント・コンピューティング装置に送信
560 クライアント・コンピューティング装置にコントローラ・プログラムを実行することを要求
570 クライアント・コンピューティング装置がコントローラ・プログラムを実行していることの確認を受領
580 サービス・プロバイダー・システムにおいてコントローラ・プログラムをシャットダウン

605 サービス・プロバイダー・システムがクライアント・システムの諸スイッチにコントローラ・サービスを提供している間に、サービス・プロバイダー・システムからの追加的なコントローラ・プログラムを要求
610 クライアント・コンピューティング装置の現在の負荷をサービス・プロバイダー・システムに報告
615 クライアント・システムにおいて、サービス・プロバイダー・システムからコントローラ・プログラムを受領
620 クライアント・システムのスイッチにコントローラ・サービスを提供するために、クライアント・システムのクライアント・コンピューティング装置においてコントローラ・プログラムを動作させる
625 サービス・プロバイダー・システムに、クライアント・コンピューティング装置がコントローラ・プログラムを動作させていることを通知
630 コントローラ・プログラムを、サービス・プロバイダー・システムにおいて動作している追加的なコントローラ・プログラムとクラスタリング
635 クライアント・コンピューティング装置がコントローラ・プログラムを実行している間に、クライアント・コンピューティング装置においてシャットダウン要求を受領
640 コントローラ・プログラムを実行するためのクライアント・システムの追加的なクライアント・コンピューティング装置が同定されるまで、クライアント・コンピューティング装置のシャットダウン・プロセスを中断
645 コントローラ・プログラムを追加的なクライアント・コンピューティング装置に提供
650 クライアント・コンピューティング装置のシャットダウン・プロセスを完了

Claims (20)

  1. クライアント・システムとサービス・プロバイダー・システムとの間のレイテンシーを決定する段階であって、前記クライアント・システムは、ネットワーク要素およびクライアント・コンピューティング装置を含み、前記サービス・プロバイダー・システムは、前記クライアント・システムの前記ネットワーク要素にコントローラ・サービスを提供するよう構成されたコントローラ・プログラムを含む、段階と;
    前記レイテンシーが閾値より長いことに基づいて、前記コントローラ・プログラムを、前記クライアント・コンピューティング装置によって実行されるよう前記クライアント・コンピューティング装置に送信して、それにより、前記クライアント・コンピューティング装置が前記クライアント・システムの前記ネットワーク要素にコントローラ・サービスを提供するようにする段階とを含む、
    方法。
  2. クライアント・システムとサービス・プロバイダー・システムとの間のレイテンシーを決定する前記段階が、前記コントローラ・プログラムを実行している前記サービス・プロバイダー・システムのサービス・プロバイダー・コンピュータと前記ネットワーク要素との間のレイテンシーを測定することを含む、請求項1記載の方法。
  3. クライアント・システムとサービス・プロバイダー・システムとの間のレイテンシーを決定する前記段階が、前記サービス・プロバイダー・システムのポータルと前記クライアント・コンピューティング装置との間のレイテンシーを測定することを含む、請求項1記載の方法。
  4. クライアント・システムとサービス・プロバイダー・システムとの間のレイテンシーを決定する前記段階が、前記コントローラ・プログラムを実行している前記サービス・プロバイダー・システムのサービス・プロバイダー・コンピュータと前記クライアント・コンピューティング装置との間のレイテンシーを測定することを含む、請求項1記載の方法。
  5. クライアント・システムとサービス・プロバイダー・システムとの間のレイテンシーを決定する前記段階が、前記サービス・プロバイダー・システムのポータルと前記ネットワーク要素との間のレイテンシーを測定することを含む、請求項1記載の方法。
  6. 前記コントローラ・プログラムを送信することがさらに、前記コントローラ・プログラムのメモリ使用に基づく前記クライアント・コンピューティング装置のメモリ負担、前記コントローラ・プログラムによって使用される記憶ボリュームに基づく前記クライアント・コンピューティング装置の記憶負担および前記コントローラ・プログラムのプロセッサ利用に基づく前記クライアント・コンピューティング装置の処理負担のうちの一つまたは複数に基づく、請求項1記載の方法。
  7. 前記クライアント・システムにおいて現在動作している一つまたは複数のコンピューティング装置を同定する段階であって、前記一つまたは複数のコンピューティング装置は前記クライアント・コンピューティング装置を含む、段階と;
    前記一つまたは複数のコンピューティング装置のうちから前記コントローラ・プログラムを実行すべき前記クライアント・コンピューティング装置を選択する段階と;
    前記クライアント・コンピューティング装置に前記コントローラ・プログラムを実行するよう要求する段階と;
    前記クライアント・コンピューティング装置が前記コントローラ・プログラムを実行していることの確認を受領する段階と;
    前記サービス・プロバイダー・システムにおいて前記コントローラ・プログラムをシャットダウンする段階とをさらに含む、
    請求項1記載の方法。
  8. 前記コントローラ・プログラムを前記クライアント・コンピューティング装置に送信する前に、前記クライアント・コンピューティング装置を操作しているユーザーの認証を受領する段階をさらに含む、請求項1記載の方法。
  9. クライアント・システムのクライアント・コンピューティング装置においてサービス・プロバイダー・システムからコントローラ・プログラムを受領する段階とであって、前記コントローラ・プログラムは、前記クライアント・システムのネットワーク要素にコントローラ・サービスを提供するよう構成されている、段階と;
    前記クライアント・コンピューティング装置によって前記コントローラ・プログラムを動作させる段階と;
    前記サービス・プロバイダー・システムに、前記クライアント・コンピューティング装置が前記コントローラ・プログラムを動作させていることを通知する段階とを含む、
    方法。
  10. 前記クライアント・コンピューティング装置が前記コントローラ・プログラムを実行している間に、前記クライアント・コンピューティング装置においてシャットダウン要求を受領する段階と;
    前記コントローラ・プログラムを実行するための前記クライアント・システムの別のクライアント・コンピューティング装置が同定されるまで、前記クライアント・コンピューティング装置のシャットダウン・プロセスを中断する段階と;
    前記コントローラ・プログラムを前記別のクライアント・コンピューティング装置に提供する段階と;
    前記クライアント・コンピューティング装置の前記シャットダウン・プロセスを完了する段階とをさらに含む、
    請求項9記載の方法。
  11. 前記ネットワーク要素は第一のネットワーク要素であり、当該方法はさらに、前記サービス・プロバイダー・システムが前記クライアント・システムの第二のネットワーク要素にコントローラ・サービスを提供している間に、前記第一のネットワーク要素にコントローラ・サービスを提供するために前記サービス・プロバイダー・システムからの追加的なコントローラ・プログラムを要求する段階をさらに含む、請求項9記載の方法。
  12. 前記クライアント・システムの第二のネットワーク要素にコントローラ・サービスを提供するために、前記コントローラ・プログラムを、前記サービス・プロバイダー・システムにおいて動作している追加的なコントローラ・プログラムとクラスタリングすることをさらに含む、請求項9記載の方法。
  13. 前記クラスタリングにより、前記クライアント・コンピューティング装置上で動作している前記コントローラ・プログラムが、前記ネットワーク要素を含む前記クライアント・システムの複数のネットワーク要素にコントローラ・サービスを提供する複数のコントローラ・サービスのプールに加わる、請求項12記載の方法。
  14. サービス・プロバイダー・システムと顧客システムとを有するコントローラ・システムであって、
    前記サービス・プロバイダー・システムは、前記サービス・プロバイダー・システムにおいて動作している一組の第一のコントローラ・プログラムを含み、
    前記顧客システムは、
    複数のネットワーク要素と;
    前記複数のネットワーク要素のうちの少なくとも一つにコントローラ・サービスを提供するために前記サービス・プロバイダー・システムから受領される第二のコントローラ・プログラムを動作させるクライアント・コンピューティング装置とを有しており、前記複数のネットワーク要素のうちの残りは前記サービス・プロバイダー・システムにおいて動作する前記一組の第一のコントローラ・プログラムからコントローラ・サービスを受ける、
    コントローラ・システム。
  15. 前記サービス・プロバイダー・システムが、前記サービス・プロバイダー・システムと前記顧客システムとの間のレイテンシーをモニタリングし、前記レイテンシーが閾値を超えることに応答して前記クライアント・コンピューティング装置に前記第二のコントローラ・プログラムを送信するよう構成されている、請求項14記載のコントローラ・システム。
  16. 前記一組の第一のコントローラ・プログラムおよび前記第二のコントローラ・プログラムがコントローラ・プールにいて動作している、請求項14記載のコントローラ・システム。
  17. 前記サービス・プロバイダー・システムが、前記顧客システムによってアクセス可能でありかつ前記顧客システムが前記サービス・プロバイダー・システムと対話できるようにするよう構成されている、ポータルを有する、請求項14記載のコントローラ・システム。
  18. 前記ポータルがウェブ・ポータルを含む、請求項17記載のコントローラ・システム。
  19. 前記顧客システムがさらに、前記第二のコントローラ・プログラムを動作させるよう構成された追加的なクライアント・コンピューティング装置を有しており、前記追加的なクライアント・コンピューティング装置は前記第二のコントローラ・プログラムを受領するが実行しない、請求項14記載のコントローラ・システム。
  20. 前記サービス・プロバイダー・システムは、前記一組の第一のコントローラ・プログラムの負荷をモニタリングし、前記一組の第一のコントローラ・プログラムの前記負荷が閾値を超えることに応答して前記クライアント・コンピューティング装置に前記第二のコントローラ・プログラムを送信するよう構成されている、請求項14記載のコントローラ・システム。
JP2017008492A 2016-01-21 2017-01-20 分散式コントローラ Expired - Fee Related JP6809244B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/003,767 2016-01-21
US15/003,767 US10148538B2 (en) 2016-01-21 2016-01-21 Distributed controllers

Publications (2)

Publication Number Publication Date
JP2017130934A JP2017130934A (ja) 2017-07-27
JP6809244B2 true JP6809244B2 (ja) 2021-01-06

Family

ID=59360952

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017008492A Expired - Fee Related JP6809244B2 (ja) 2016-01-21 2017-01-20 分散式コントローラ

Country Status (2)

Country Link
US (1) US10148538B2 (ja)
JP (1) JP6809244B2 (ja)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978567A (en) * 1994-07-27 1999-11-02 Instant Video Technologies Inc. System for distribution of interactive multimedia and linear programs by enabling program webs which include control scripts to define presentation by client transceiver
US7849156B2 (en) * 2007-06-04 2010-12-07 International Business Machines Corporation Method, apparatus and computer program product for discovering and prioritizing patterns of component usage in a virtual application container for enhancing prefetching
US8849897B2 (en) * 2007-11-15 2014-09-30 Microsoft Corporation Delegating application invocation back to client
US8189487B1 (en) * 2009-07-28 2012-05-29 Sprint Communications Company L.P. Determination of application latency in a network node
EP2564557B1 (en) * 2010-04-26 2018-12-12 Telefonaktiebolaget LM Ericsson (publ) Method for setting and adjusting a parameter dependent on a round trip time
US8750119B2 (en) 2010-07-06 2014-06-10 Nicira, Inc. Network control apparatus and method with table mapping engine
US9882950B2 (en) * 2012-06-13 2018-01-30 All Purpose Networks LLC Methods and systems of an all purpose broadband network
US9069608B2 (en) * 2013-03-06 2015-06-30 Vmware, Inc. Method and system for providing a roaming remote desktop
US9525586B2 (en) * 2013-03-15 2016-12-20 Intel Corporation QoS based binary translation and application streaming
US9800507B2 (en) * 2015-02-10 2017-10-24 Verizon Patent And Licensing Inc. Application-based path computation
US10171333B2 (en) * 2015-02-10 2019-01-01 International Business Machines Corporation Determining connection feasibility and selection between different connection types
US10394616B2 (en) * 2015-10-29 2019-08-27 International Business Machines Corporation Efficient application management
US9986064B2 (en) * 2015-12-03 2018-05-29 International Business Machines Corporation Adaptable applications in a client/server architecture

Also Published As

Publication number Publication date
JP2017130934A (ja) 2017-07-27
US20170214593A1 (en) 2017-07-27
US10148538B2 (en) 2018-12-04

Similar Documents

Publication Publication Date Title
JP7047113B2 (ja) アプリケーションのサービスレベル合意を保証するための方法、デバイスおよびシステム
US20220191602A1 (en) Out-of-band platform tuning and configuration
US11070625B2 (en) Server connection capacity management
US10608914B2 (en) Methods and devices for monitoring of network performance for container virtualization
US10749983B2 (en) Server request management
US10404548B2 (en) Control of network nodes in computer network systems
US20200326989A1 (en) Building pool-based m2m service layer through nfv
WO2020134414A1 (zh) 切片资源部署方法、装置、切片管理器和计算机存储介质
US11144423B2 (en) Dynamic management of monitoring tasks in a cloud environment
US8566847B2 (en) Out-of-band host management via a management controller
US11044188B2 (en) Automated testing of push notification service in cloud computing system
US11782775B2 (en) Dynamic management of network policies between microservices within a service mesh
US20160050102A1 (en) Mechanism for rapid network failure detection for faster switch-over in server-to-server applications
US20170111240A1 (en) Service Elastic Method and Apparatus in Cloud Computing
US9851980B1 (en) Distributed update service enabling update requests
US9942354B1 (en) Managing service message rates in a computing service environment
US20140189127A1 (en) Reservation and execution image writing of native computing devices
JP6809244B2 (ja) 分散式コントローラ
US12015521B2 (en) Using an application programming interface (API) gateway to manage communications in a distributed system
CN105357097A (zh) 虚拟网络的调节方法及系统
US20240267782A1 (en) Method and system for private network traffic optimization based on remote network context

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170227

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191008

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200923

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201028

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201123

R150 Certificate of patent or registration of utility model

Ref document number: 6809244

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees