JP4527976B2 - ホストされるアプリケーションのためのサーバ・リソース管理 - Google Patents

ホストされるアプリケーションのためのサーバ・リソース管理 Download PDF

Info

Publication number
JP4527976B2
JP4527976B2 JP2003519792A JP2003519792A JP4527976B2 JP 4527976 B2 JP4527976 B2 JP 4527976B2 JP 2003519792 A JP2003519792 A JP 2003519792A JP 2003519792 A JP2003519792 A JP 2003519792A JP 4527976 B2 JP4527976 B2 JP 4527976B2
Authority
JP
Japan
Prior art keywords
resource
application
resource class
instance
instances
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
JP2003519792A
Other languages
English (en)
Other versions
JP2004538573A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2004538573A publication Critical patent/JP2004538573A/ja
Application granted granted Critical
Publication of JP4527976B2 publication Critical patent/JP4527976B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)
  • Telephonic Communication Services (AREA)
  • Multi Processors (AREA)

Description

本発明は、サード・パーティにホストされるアプリケーションへのアクセスを提供するためのサーバ・リソースの管理に関し、詳細には、ただしそれだけには限らないが、アプリケーション・サービス・プロバイダによって運営されるサーバの自動管理に関する。
アプリケーション・サービス・プロバイダ(ASP)は、しばしばサーバ・ファームと称される共用コンピューティング・インフラストラクチャを使用して、複数の顧客(すなわち、クライアント組織)に向けてアプリケーションをホストする。ASPは、(冗長性、ピーク負荷ハンドリング、専門技術などに関して)規模の経済性を利用し、複雑な情報テクノロジ管理よりも中核業務に注力しなければならない顧客の要求に便乗する。コンピューティング・インフラストラクチャはASPが所有し、顧客の間で共用されるので、ASPは、リソースの利用度を高め、それによって、費用対効果の高いサービスを提供する機会に恵まれている。
上述のことから見て、経済上、技術上、および競争上の理由から、企業ユーザが使用アプリケーションをASPにアウトソーシングする明らかな傾向があることがわかる。現在、大多数のASPは、顧客毎に専用のサーバを用意して、ウェブ・ホスティングのような単純なサービスを提供している。他のASPは、サービス内容を取り決めた非常に単純なサービス品質保証契約(SLA)を伴った、比較的に静的な方式でのサーバの共用を可能にしている。
マシン使用度を高めるための1つの既存手法は、すべてのマシンを顧客間にどう割り当て、またそれをどう解除するかに関係する。この手法では、顧客は自らのニーズを、自分の裁量で、必要なマシン数の下限および上限の形で明確に指定する必要があるが、そのためには、顧客は技術的に相当知識を有していなければならない。大企業のクライアントにとって、これは難しいことではないが、小規模および中規模の企業にとっては一般に、簡単なことではない。
改良された手法が、カリフォルニア州サニーベールのエンシム・コーポレーション(EnsimCorporation)によって提案された。提案されたこの手法は、マシン・フラクション(machine fraction)という概念を使用したアプリケーション・ホスティングを提供する。エンシムのソリューションを用いると、ASPは、サーバ・リソースを顧客間で安全に共用できるようになり、またプライベート・サーバ(PS)と称されるものをサポートすることによって、サーバ・ファーム全体にわたるアプリケーションの配備を管理できるようになる。各PSは、物理サーバ上でサポートされる市販のアプリケーションはどれでも実行することができる。エンシムのシステムはまた、障害を起したPSを復旧させ、PS間およびマシン間で顧客を移動させ、またPSリソースを手動で増加させるための管理プリミティブも提供する。ASPは、1台のコンソールから、複数のPSにデータを供給し(provision)、これを管理することができる。ホストされるアプリケーションは、ウェブ・ホスティングに対応していさえすればよく、その他の変更は必要としない。
様々な利点があるにもかかわらず、エンシムによって提案された手法には様々な制限がある。各PSが物理サーバ・リソースの最低限の可用性を保証するという点で、PSは比較的に静的である。その結果、エンシムによって提供されたソリューションは、リソース利用の点から見ると、まだ比較的に効果が薄い。また、システム管理をコンソールを介して手動で行わなければならない。
上述の点に鑑みて、アプリケーションをホストするための改良されたソリューションであって、少なくとも既存技法に伴う上記およびその他の制限への対処を試みるソリューションが明らかに必要とされている。
顧客はしばしば、専用ハードウェアの提供をASPに求めない。顧客スタッフの要求は一般に小さく、複数の顧客の要求をサーバ・ファームの1つのマシンでホストすることによって、そうした要求を同時に満たすことが可能である。したがって、フラクショナル・ホスティング(すなわち、マシンの一部分だけを特定の顧客に割り当てること)が一般に望ましい。これによって、ハイエンドなサービスの提供が見込まれる一方で、高価なマシンおよびソフトウェアの費用負担は顧客間で分担される。これとの関連で、フラクショナル・ホスティングを提供するための、後に説明する「仮想」サーバという概念を使用した柔軟な管理形態が提供される。
アプリケーション宛てのリクエストは、そのアプリケーション(または、そのアプリケーションの適切なコンポーネント)の特定の実行中インスタンスに転送される。転送先のインスタンスには、当該アプリケーションまたはそのコンポーネントの使用可能なインスタンスのうちで最も作業負荷の軽いものが選ばれる。そうしたインスタンスの数または容量あるいはその両方は、アプリケーションまたはそのコンポーネント宛てのリクエストの数が変化するにつれて、動的に増減する。
クライアント単位でリクエストが管理され、インスタンスが調整される。すなわち、アプリケーションまたはそのコンポーネントあるいはその両方のインスタンスが、個々の顧客または特定の顧客グループが使用するために確保される。このような方式による運営は、エンティティ毎に取り交したサービス品質保証契約の遵守を容易にする。
現在割り当てられているリソースおよび現在消費されているリソースについての記録が、アプリケーションまたはそのコンポーネントのインスタンスによって処理されるリクエストがそのインスタンスにかける負荷を表す負荷率の形で、インスタンスと顧客の組合せ毎に維持管理される。
顧客と取り交すサービス品質保証契約は、アプリケーションに対するリクエスト数の推定範囲の形で構造化される。この推定範囲を細分した1つまたは複数の異なる範囲でのサービス・リクエスト料率によって請求が行われる。インフラストラクチャのせいでリクエストにサービスを提供できない場合は、(顧客に支払われる)ペナルティ料率で請求される。
好ましい実施形態では、複数の顧客からのリクエストがピークに達したときの負荷を処理するのに必要とされるリソースを、またSLAに違反しないように保証するのに必要とされるリソースを減少させることによって、ASPのリソース利用度を高めることができる。確保しておかなければならない予備の容量は、顧客数につれて線形に増加することはなく、顧客数が多くなっても、ほぼ一定の値に留まるようになる。それにもかかわらず、障害リスクが限られているのは、異なるユーザからの要求が一時に集中する(すなわち、同時に発生する)確率は大きくなく、もともと小さな確率の積によって表されるためである。
上述のシステムは、リソース割当ての最適化、自動システム管理、必要に基づくリソース(ハードウェアおよびソフトウェア)共用によって、ASPの収入を最大にする。
本明細書で説明する技法を用いれば、好都合にも、顧客は、使用を希望するアプリケーションと期待する使用レベルの形で、ハイレベルな要求を明確にするだけでよい。顧客は、裏に隠れたリソースに関するすべての決定をASPに委ねる。ASPは、異なるマシン・フラクションを顧客に割り当てることができ、それらは全体で、変動する負荷と障害に応じて時間と共に増減することのある1つの仮想サーバを構成する。
サーバ・リソースを管理するための技法および構成を、ASPによって提供されるサービスとの関連で説明する。ユーザ(ASPの顧客またはクライアント)は、ASPによって運営されるネットワーク接続された複数のマシン上でホストされる1つまたは複数のアプリケーションにアクセスすることができる。ネットワーク接続されたマシンのこの集合体は、一般に特定の物理サイトにおけるローカル・エリア・ネットワーク(LAN)によって接続され、サーバ・ファームと呼ばれる。
アプリケーション・ホスティング
サーバ・ファームは、リソースの集合体と見ることができる。リソースには、ハードウェア(コンピュータ、電源機構、ネットワーク機器など)、およびASPがその潜在的カストマによって有用と考えるソフトウェア(アプリケーション、標準ミドルウェア、オペレーティング・システム)が含まれる。コンピュータは、異機種が混在してもよく、性能に大きな隔たりがあってもよい。例えば、ASPは、小規模ウェブサイトをホストするための簡単なパーソナル・コンピュータ・サーバを提供することができ、複雑な財務分析または科学的分析を実行するためのハイエンドのメインフレームを提供することもできる。
同様に、ASPによって提供されるソフトウェアも、簡単な生産性向上ツール(ワード・プロセッサ、スプレッドシート)から本格的なアプリケーション(給与計算、eコマース・ウェブサイト)や専門領域の複雑なアルゴリズム(チェスなどの対話型ゲーム、気象予報などの科学計算その他)まで多岐にわたる。
仮想サーバおよび仮想サーバ・ファーム
アプリケーションは、1組のリソース・クラスと考えることができる。仮想サーバ・タイプという用語は、そのような1組のリソース・クラスを指すために使用される。例えば、ウェブ・ベースの小売店アプリケーションを、以下のコンポーネントから構成することができる。
・フロントエンド・コンポーネント<web server>
・中間層コンポーネント<e-commerce server>
・バックエンド・コンポーネント<database server>
したがって、ASPのクライアントが一般に必要とするアプリケーションは、概念的に1組のリソース・クラスに区分化される。リソース・クラスは、特定タイプのリソースの属性および機能をカプセル化する。例を挙げると、
・DB2(商標)サーバは、リソースクラス<database server>のインスタンスである。
・WebSphere(商標)コマース・サーバ(WCS)は、リソースクラス<e-commerceserver>のインスタンスである、など。
リソース・クラスは、異なるインスタンスをもつことができる。例えば、<databaseserver>クラスは、DB2サーバの他にも、OracleサーバやSybaseサーバを包含することができる。しかし、これらのインスタンスは、共用リレーショナル・データベースへのリモート・アクセスを提供する共通機能を共有する。
仮想サーバは、仮想サーバ・タイプのインスタンスである。例えば、ASPの顧客のウェブストア・アプリケーションは、Apache(商標)ウェブ・サーバ、WebSphere(商標)コマース・サーバ、およびDB2(商標)データベース・サーバから構成することができる。このアプリケーションをASPのサーバ・ファーム上に配備する場合、すべての受信リクエストをタイムリーに処理できるように、各リソース・クラスの複数のインスタンスが存在してよいことに留意されたい。
ASPは、例えば、ウェブストアのその時の負荷次第で、Apache(商標)フロントエンドのインスタンスを5つ、WCS(商標)のインスタンスを2つ、DB2(商標)データベースのインスタンスを1つ実行することにしてもよい。したがって、仮想サーバの実行時の実施形態は、仮想サーバ・タイプに含まれる各リソース・クラスの(おそらく複数の)インスタンスから構成される。
したがって、クライアントのアプリケーション要件は、仮想サーバ・タイプの指定に変換することができる。次のステップは、サーバ・ファームで使用可能な物理マシンにリソース・インスタンスをいかにマッピングするかを決定することである。
以下の説明では、ASPが顧客間でマシンを共用しているものとし、マシン・フラクションを、1つのクライアントに割り当てられた1組のリソースであって、そのすべてが同一の物理マシン上に存在する1組のリソースとして定義する。
以下で詳細に説明するように、仮想サーバのリソース・インスタンスはすべて、1つのマシン・フラクション内に共存することもできるが、一般にはASPは、仮想サーバを異なるマシン上に分散する1組のマシン・フラクションにマッピングする。例えば、顧客のウェブストアを表す仮想サーバは、2つのApache(商標)サーバと1つのWCS(商標)サーバを第1のマシン・フラクションで実行し、3つのApache(商標)サーバと1つのWCS(商標)サーバを別のマシンで実行し、DB2(商標)サーバを第3のマシンで実行することによってサポートすることができる。こうすることで、ASPは負荷をマシン間に分散させることができる。後になって、顧客のウェブストアの負荷が非常に低くなった場合、ASPは、仮想サーバを、1つのApache(商標)サーバと1つのWCS(商標)サーバとを含む第1のマシン・フラクションとDB2(商標)サーバを実行する第2のフラクションとに再構成することもできる。
1つの手法は、マシンを特定のリソース・クラス専用にすることである。例えば、顧客の仮想サーバを、フロントエンドのウェブ・サーバだけを実行する第1のマシン・フラクションと、コマース・サーバだけを実行する別のマシンと、データベース・サーバだけを実行する第3のマシンとにマッピングすることができる。このようにすると、ASPのメンテナンス作業を容易にし、マシンが専門に扱うアプリケーションの監視および使用度測定の際に他のアプリケーションの干渉を抑制する利点がある。物理マシンを特定のリソース・クラスの専用にするというこの手法は、好ましい実施形態において採用されている手法である。
仮想サーバとマシン・フラクションという一対の概念を用いてモデル化され管理されるASPサーバ・ウェアハウスは、仮想サーバ・ファームと称される。仮想サーバ・ファームの目的は、ASPのリソースの効率的な自動管理を提供することであり、その管理の下で、顧客とのサービス品質保証契約に規定する合意されたサービス基準を維持しながら、最適化されたまたはほぼ最適化された方式で、リソースが要求に応じて顧客に割り当てられる。
サービス品質保証契約
ASPの顧客は望ましくは、ASPのリソースに関する技術的詳細について知らなくてよい。このため、ASPは、専門化向けの技術的なパラメータを参照する必要のない顧客や詳しい技術的知識の理解を必要としない顧客とも、サービス品質保証契約を取り交すことができることが理解されよう。一方で、そのようなサービス品質保証契約は、顧客のサービス要件を把握するのにも適している。顧客はただ、ホストされることを望むアプリケーションとアプリケーションへの予測要求または負荷とを示すことができさえすればよい。
本明細書で説明する実施形態との関連で提供することができるサービス品質保証契約は、アプリケーションのヒットという概念に基づいている。ヒットは、アプリケーションの使用を求めるリクエストを表す。ヒットは一般に、その重み、すなわち、アプリケーションに課される計算上の加重によって変化する。さらに、実際のリソース使用は、アプリケーションのベンチマークから得た予測使用と正確に合致しないかもしれない。本明細書で説明する実施形態は、この実際の挙動と予測された挙動との差のような小幅な変動であれば対処することができる。それにもかかわらず、ヒットはほぼ予測に従う(well behaved)ものと仮定される。すなわち、重みには限度がある。
顧客は、配備されるアプリケーションに対する予測リクエスト率の形で、自らの要件を指定する。異なる期間に対して、値が異なるヒット率を指定することもできる。ヒット率の指定に基づいて、顧客とASPは、サービス品質保証契約の料金を取り決める。価格モデルは望ましくは、システムから独立している。システムは、多様な価格体系をサポートすることができる。例えば、ASPは、どのようなサービスが提供されようとも、顧客に一定の月額料金を請求することができ、あるいは時間帯によって変化するアプリケーションのユーザ数に基づいて請求することもできる。一貫性を保つために、サービス品質保証契約は、以下のパラメータを含むものとする。
・顧客のアプリケーションが受信しサポートすると予測されるヒット範囲。さらに可能であれば、平均ヒット率。
・この範囲の中の異なるサブ範囲毎に、顧客が支払いに同意した価格。
・最低限の要件が満たされなかった場合に、ASPが顧客に支払う違約金。
このタイプの簡易的なサービス品質保証契約では、顧客は、使用されるハードウェアの種類、配備されるサーバの数、その他の技術的指定といった技術的詳細について詳しく知る必要はないが、アプリケーションが扱うことになる負荷量については知っておく必要がある。一方、ASPは、顧客要件の機能的指定を、サービス品質保証契約にある顧客の要求を満たすことができる特定の1組のリソースに移し変えることができる。この変換を達成するために、ASPは望ましくは、次に説明するようなタイプのベンチマーキング・データを参考にする。
ベンチマーキング
特定のアプリケーションをサポートするマシンの容量は、そのマシン上で実行した場合にアプリケーションがサポート可能なヒット率によって評価される。ホストされるアプリケーションはすべて、最初にベンチマーク・テストにかけられて、中央処理装置サイクル、ランダム・アクセス・メモリ要件、ディスク空間使用量など、マシンの物理リソースの消費状況に関する情報が取得される。このベンチマーキング・プロセスは、2つのレベルで実行される。(a)すべてのエンドユーザ・アプリケーションについてベンチマーク・テストを行う。(b)エンドユーザ・アプリケーションの構成単位を構成するすべてのソフトウェア・リソース・クラスについて個別にベンチマーク・テストを行う。
後者の個別のリソース・クラスに関するベンチマーキング・プロセスによって、所与のヒット率を得るために必要な物理リソースが決定される。この情報は、ヒット率の形で要求が出されたときに、クライアントのアプリケーションを構成するリソース・クラスに割り当てる実際の物理リソース量を決定するのに必要となる。一方、エンドユーザのアプリケーションに関するベンチマーキング情報は、所与のヒット率をサポートするのに必要な異なる構成リソース・クラスの量を示す。この情報は、エンドユーザのアプリケーションのソフトウェア・コンポーネント間の関係を定めるが、この関係は、アプリケーションの負荷をこれら個々のコンポーネントの負荷に変換する割合を表す。
広く普及している多くのアプリケーションでは、関連するディベロッパから、こうしたベンチマーキング情報を容易に入手することができる。ベンチマーキング情報を入手できない場合、ASPは自ら、適切な試験および実験を行うことによって、ベンチマーキング情報を生成することができる。あるいは、必要とされる物理リソースについての公平な初期評価に基づいてリソースを割り当てた後、アプリケーションを配備することもできる。実験期間中に実際のリソース使用に関する情報を蓄え、それに基づき試行錯誤を繰り返しながら、リソース割当てを調整していくこともできる。
概要
図1に、ASP管理システムの機能コンポーネントを示す。以下の概要で、これらの機能コンポーネントついて簡略に説明する。これらのコンポーネントは、システムによって制御されるネットワーク接続された1つまたは複数のマシン上に存在する。図1では、図示の機能コンポーネント間の情報フローは、これらの機能コンポーネントを結ぶ矢印で示される。機能コンポーネント同士の相互関係を以下に説明する。
リソース・マネージャ
リソース・マネージャ150は、エージェントと共に、1つの分散コンポーネントを構成する。エージェントは、サーバ・ファーム内の物理マシンに分散される。中核コンポーネントであるリソース・マネージャ150は、それ用のマシンに配置される単一のエンティティである。
ロード・ディストリビュータ
仮想サーバ・ファーム内の各サブファーム毎に1つの集中型のロード・ディストリビュータ110が存在する。
グローバル・ディシジョン・メーカ(GDM)
グローバル・ディシジョン・メーカ140は、単一の集中型エンティティである。
ロード・モニタ
ロード・モニタ130は、図1に示唆するように、仮想サーバ・ファーム内の物理マシン全体に分散される。
アグレゲータ
アグレゲータ120は、以下に述べるように、異なるコンポーネントから構成される。
・レベル1・アグレゲータは、サーバ・ファーム全体に分散される。このコンポーネントの各インスタンスは、1つまたは複数のサブファーム、またはファームの1つの顧客グループを担当する。この実装上の決定は、負荷情報生成で表した対応するサブファームのサイズに依存する。各インスタンスは、異なるマシン上に配置される。
・レベル2a・アグレゲータは、レベル1・アグレゲータによって生成される負荷に応じて、分散型エンティティでも集中型エンティティでもよい。分散型の場合、各インスタンスは1つの顧客グループを処理する。
・レベル2b・アグレゲータも同様に、レベル1・アグレゲータによって生成される負荷に応じて、分散型エンティティでも集中型エンティティでもよい。分散型の場合、各インスタンスはリソース・クラスの1グループを処理する。
コンフィグレーション・リポジトリ
コンフィグレーション・リポジトリ160は、集中型のデータベースである。
システム・アーキテクチャ概要
図1に示すシステム・アーキテクチャについて、次にやや詳細に論じる。ASPは複数の顧客をホストし、顧客のユーザはインターネットを介してASPのインフラストラクチャにアクセスする。サーバ・ファームへの加入時に、顧客は顧客要件に関する情報を含むサービス品質保証契約にサインする。顧客の仮想サーバを初期化するために、これが使用される。
顧客のアプリケーションは、リソース・クラス(上述したような、ウェブ・サーバ、コマース・サーバ、データベース・サーバから成る階層など)に分割され、各リソース・クラスは、任意の時に動作する複数のインスタンスをもつことができる。顧客のアプリケーションと様々なリソース・インスタンスの物理マシンへの配置とについての詳細な情報が、コンフィグレーション・リポジトリ160の中で動的に維持管理される。
ハイレベルな顧客要件は、ベンチマーキング情報およびアプリケーション特性を用いて、リソース・クラス毎の要件に変換される。システムは数多くのサブファームをもち、各サブファームは1つのリソース・クラスの数多くのインスタンスから構成される。特定のサブファームへのトラフィックは、そのサブファームのロード・ディストリビュータ110によって提供され、ロード・ディストリビュータ110は、その管理下にある異なるインスタンス間に均等に負荷を分配する。
各リソース・インスタンスは、関連するロード・モニタ130をもち、ロード・モニタ130は、リソース・インスタンスのパフォーマンスに関する計測値(metric)の継続的収集を担当する。この情報はロード・ディストリビュータ110から使用できるようになり、ロード・ディストリビュータ110は、この情報を使用して負荷を分散させる。モニタした情報はアグレゲータ120にも提供され、アグレゲータ120は、計測値を意味のある方式で蓄積し標準化する。こうすることで、測定値はリソース・クラス毎の全体的な使用状況、さらには顧客毎の使用状況の形に加工される。この後者の使用状況は、顧客のサービス品質保証契約に記載された許容範囲セットと比較される。これらの数値に基づいて、アグレゲータ120は、各顧客に対する現在のリソース割当てに何らかの変更が必要かどうか判断し、それをグローバル・ディシジョン・メーカ140に提示する。
グローバル・ディシジョン・メーカ140は、発生した収入、現在の割当てにおけるリソース利用度または変動(perturbation)など、何らかのパラメータを最適化する目的で、様々な顧客へのリソース割当てを再計算する。新しい割当ては、リソース・マネージャ150に提供され、リソース・マネージャ150は、変更された割当てプランの実際の実施を担当する。リソース・マネージャ150はまた、変更が完了した後、サーバ・ファームの中心的な構成定義ストレージであるコンフィグレーション・リポジトリ160を更新する。
サーバ・ファームの動作的構造
次に、リソース使用および割当てを管理するコンポーネントとの関連で、仮想サーバ・ファームの動作について説明する。
ロード・モニタ
論理モニタIは、時系列のモニタ・データ(またはモニタ・イベント)−mI0、mI1、...、mInを表す。論理モニタの組は動的である。2種類のモニタ、すなわち、ヒット率モニタとマシン負荷モニタがある。各リソース・インスタンス毎に、各種類のモニタが1つずつある。各モニタの最初のモニタ・イベント(第0イベント)は、一貫性の維持と単純化のために事前定義される。そうした初期化は、アプリケーションにかかると予測される初期負荷に基づいている。各モニタは、リソース・インスタンスに問い合せることができるモジュールのために、「最新の」1つのモニタ・イベントを常にバッファリングしている。より古いモニタ・イベントは、それらの値を永続的に保存しておく必要がないので、廃棄することができる。
アグレゲータ
アグレゲータ120は、2つのレベルのアグレゲータを含む。レベル1・アグレゲータは、モニタ・データを収集し統合する。クライアントとリソース・クラスの各対毎に、レベル1・アグレゲータが1つ存在する。クライアントとリソース・クラスの対に対応するインスタンスからのすべてのモニタ・データが、1つのアグレゲータに送られる。アグレゲータは、このデータをインスタンス毎の(自明な)ヒット率とインスタンス毎のヒット加重値(hit weight)に変換する。アグレゲータは、アグレゲータに関連する各モニタから「最新の」1つのモニタ・イベントを取得する。事前定義されたモニタ・イベントが常に使用可能なので、新しいモニタ・イベントが生成されなくとも、最新モニタ・イベントを収集するプロセスは不明確にはならず、無閉塞である。このプロセスですべてのモニタ・イベントが使用される保証はないので、統合を行う際に、所定のモニタ系列内のいくつかのイベントをスキップすることができる。
ヒット加重値を計算する際、アグレゲータは、モニタ・イベント収集プロセスは高速であり、すべての収集データが時間内に配列されるので、計算結果は意味があると仮定する。レベル1・アグレゲータの出力は、3種類のレベル1・イベントから成る。
・第1のイベントは、クライアントに対応する各アプリケーション・インスタンス毎にどれだけの負荷がかかっているかに関する、ロード・ディストリビュータに提供される負荷率である。
・第2のイベントは、レベル2a・アグレゲータに送られる新ヒット率である。レベル2a・アグレゲータは、クライアントのすべてのリソース・クラスにわたってデータを収集して統合し、ヒット率モニタ(のみ)から得た現在のデータとクライアントについての現在の割当てとに基づいてクライアントに関する要求予測を行う。レベル2a・アグレゲータは、コンフィグレーション・リポジトリを検索することによって、現在の割当てを取得する。
・第3のイベントは、レベル2b・アグレゲータに送られる新ヒット加重値である。レベル2b・アグレゲータは、各インスタンスについての補正率(correction factor)を計算し、それらを統合してクライアントについての(リソース・クラス毎の)全体的な補正率にする。
要約すると、統合は、顧客について、モニタ系列データの部分(slices)を検索することと、そのデータを、クライアントについてのクラス毎の加重値補正率(weightcorrection factor)、クライアントについての予測割当て要求、およびロード・ディストリビュータに対するフィードバック・イベントに変換することを含む。
ロード・ディストリビュータ
サーバ・ファームは、複数の内部的なサブファームに分割され、各サブファームは、ファーム内の1つのリソース・クラスに対応する。リソース・クラスに対応するアプリケーション・インスタンスは、サブファームに含まれ、アプリケーション・インスタンスに対する受信負荷は、インスタンス間に分配される。各サブファーム毎にロード・ディストリビュータ110が1つ存在する。サーバ・ファームのゲートウェイは、顧客の識別情報に基づいて別個のフロントエンド・サブファームのディストリビュータに受信ヒットを転送する。フロントエンド・サブファームは、フロントエンドのコンポーネントが依存する中間層のリソース・クラスまたはバックエンドのリソース・クラスあるいはその両方にかかる内部負荷を生成する。この負荷は、中間層/バックエンドのリソース・クラスに対応するサブファームに対して生成される内部ヒットの形をとる。内部ヒットは、内部サブファームのロード・ディストリビュータ110に転送される。
サブファームのロード・ディストリビュータ110は、以下のように機能する。受信ヒットに関するクライアントが特定され、その次に、どのサブファーム・アプリケーション・インスタンスが、クライアントに割り当てられた割当て容量を、ヒットを処理できるのに十分なだけ残しているかを判断する。その次に、ヒットがそのアプリケーションに転送される。ヒットを処理する余分な割当て容量がない場合、そのヒットは取り除かれるか、遅延処理用のキューに入れられる。
ロード・ディストリビュータ110は、ディストリビュータがヒットを分配するインスタンスの現在の組について、割当て容量と現在の負荷を追跡する。各ロード・ディストリビュータ110は、レベル1・アグレゲータから最新の負荷情報を読み取ることによって、保有する情報を更新する。したがって、負荷情報は、先にモニタのようなモジュールについて論じたように、単位容量のバッファに保存することができる。バッファは、予測される初期負荷に基づいて事前定義された負荷を使用して初期化することができる。最新の負荷情報の他にも、各ロード・ディストリビュータ110は、最新のリソース割当て情報を取得する必要があり、これをコンフィグレーション・リポジトリ160から取得する。
グローバル・ディシジョン・メーカ
全体的な判断プロセスが1つ存在する。このプロセスには、すべてのクライアントについて、1組の「最新」要求が与えられる。この目的のため、レベル2a・アグレゲータは、モニタがそのデータに関して行ったように、単位容量の最新要求バッファを維持管理することができる。(モニタの場合と同様に)有効な「最新要求」が常に存在するように、バッファを事前定義された要求で最初に初期化しなければならない。グローバル・ディシジョン・メーカ140は、1組の最新要求によって呼び出された際、サーバ・ファームについての割当てプランを計算する。割当てプランは、グローバル・ディシジョン・メーカ140の単位容量の出力バッファ上から入手可能となる。モニタやアグレゲータの単位容量出力バッファとは異なり、グローバル・ディシジョン・メーカ140の出力バッファは、事前定義された割当てで初期化されることはない。したがって、グローバル・ディシジョン・メーカ140に依存するモジュールは、「最新」割当てプランが入手できない場合の閉塞にあらかじめ対処しておかなければならない。割当てプランを生成する過程で、グローバル・ディシジョン・メーカ140は、コンフィグレーション・リポジトリ160に格納された情報を使用する。
リソース・マネージャ
リソース・マネージャ150は、グローバル・ディシジョン・メーカ140によって作成された最新割当てプランに従って動作する単一のプロセスである。リソース・マネージャ150は、以下のタスクを担当する。
・割当てに従ってアプリケーション・インスタンスを生成する。
・モニタを生成し初期化する。
・廃棄されたアプリケーション・インスタンスをそのモニタと共に消滅させる。
・アプリケーション容量の縮小/拡大のために、任意のOSレベル技法とのインタフェースをとる。
・上記の変更に従ってアグレゲータを変更する(例えば、データ取得先のモニタ・セットの変更、アグレゲータからディストリビュータへの接続の変更、さらにグローバル・ディシジョン・メーカ140への接続の変更)。
・サブファームおよびロード・ディストリビュータ110の生成/削除を行う。
リソース・マネージャ150は、リソースの仮想世界とマシンおよびプロセスの物理世界との橋渡しをする。グローバル・ディシジョン・メーカ140は、抽象的な形でファーム全般のリソース割当てを計算し、リクエスト処理容量(request-serving capacity)の形でリソース・インスタンスを様々なクライアントに割り当てる。これらの割当てプランは、物理マシンおよび実際のプロセス上で実行される動作に変換して、望ましい構成を達成しなければならない。リソース・マネージャは、エージェントと共に、このタスクを実行する。
所与のクライアントについて、サブファームのアプリケーション・インスタンスがただ1つ必要とされるだけで、サブファームは存在し続けることができるので、一般にサブファームは静的である。しかし、サブファームは、新しいリソース・クラスを用いた新しいクライアントの追加に伴い、また古いクライアントと古いリソース・クラスの削除に伴い、生成および削除することができる。リソース・マネージャ150は、クライアントとそのヒットに関する限り、上記のすべての動作が透過的に行われることを保証しなければならない。上記の動作に関しては、サーバ・ファームは停止またはタイムアウトすることができない。これは、サブファームの生成および削除に関して、生成はサブファームへのすべてのヒットの到着の前に行われなければならず、削除はサブファームへのすべてのヒットの到着の後に行われなければならいことを意味する。
コンフィグレーション・リポジトリ
コンフィグレーション・リポジトリ160は、サーバ・ファームの中央ストレージとして動作する。コンフィグレーション・リポジトリ160は、以下の情報を格納する。
・ハードウェア情報。
・ソフトウェア情報:依存関係、必要とするハードウェアなど。
・マシン容量テーブル:k個(様々な数)一組の参考ヒットで表した、様々なリソース・クラス(アプリケーション)に関するベンチマーキング情報。
・アロケーション・テーブル:処理することができる実際のヒットおよび様々なリソース・クラス・インスタンスについてのヒット加重値で表した、サーバ・ファームにおける各クライアント毎の現在の割当て。
・アプリケーション特性テーブル:アプリケーションを構成する様々なリソース・クラスに対する参考ヒットで表した、ホストされるアプリケーションに関するベンチマーキング情報。
・すべての顧客のSLA情報。
・システム・コンポーネントの構成情報。すべてのシステム管理コンポーネントは、初期化のとき、この情報、例えば、情報送信先のコンポーネントのアドレスなどを読み取る。
以下で説明する単純なスイープ・スケジュール(sweep schedule)に合せて、集中型のコンフィグレーション・リポジトリ160へのアクセス間の競合/依存は、以下の大まかな方針を用いて簡略化することができる。スケジュールされた所定の1組のスイープ(モニタの次がアグレゲータ、その次がグローバル・ディシジョン・メーカ140、その次がリソース・マネージャ150)の中で、データがスケジュール中の次のモジュールによって使用されることになるまで、どのモジュールもコンフィグレーション・リポジトリ160にデータを書き込まない。
言い換えると、データは、モジュールからモジュールへ、そのデータを使用する最後のモジュールまでメッセージ渡し方式で渡され、そのデータが後で使用される場合は、最後のモジュールが、コンフィグレーション・リポジトリ160へデータを書き込む。例を挙げると、ヒット加重値は、アグレゲータからグローバル・ディシジョン・メーカ140に渡され、グローバル・ディシジョン・メーカ140は、そのヒット加重値を割当てプランとともに、リソース・マネージャ150に渡すことができ、あるいはリソース・マネージャは、そのヒット加重値とプランとを、リソース・マネージャ150および後のスケジュールが使用できるように、コンフィグレーション・リポジトリ160へ書き込むことができる。上記の方針に従って、グローバル・ディシジョン・メーカ140は、コンフィグレーション・リポジトリへの書込みは一切行わず、そのすべてをリソース・マネージャ150に委ね、リソース・マネージャ150は、渡されたデータに基づいてすべての書込みを行う。
上記の方針の下では、現在のスケジュールで保存されたデータを対象としたコンフィグレーション・リポジトリへの読取りアクセスは発生しない。すべての読取りアクセスは、それ以前の長いスケジュール(または初期化のようなその他のより早い時期のイベント)において保存されたデータを対象にしており、そのデータを対象とした従属(dependency)間でのデッドロックは発生せず、そのデータに関する競合問題は単純である(読取りのみ)。これは、モニタリングと統合と負荷分配のみを含む短いスケジュールに関しても当てはまり、短いスケジュールは、グローバル・ディシジョン・メーカ140またはリソース・マネージャ150の呼び出しの間に何度も実行することができる。
スケジューリング
1つの単純なスケジュールは、モニタリング・スイープ(monitoring sweep)、統合スイープ(aggregationsweep)、グローバル・ディシジョン・メーカ140のプラン計算をこの順序で行い、最後にリソース・マネージャによるプラン展開を行うというものである。この後、同じサイクルを繰り返す。プランの計算と展開は比較的低速なプロセスであるので、直前で説明したようなサイクルには比較的長い時間を要する。モニタリング、並びに負荷情報をロード・ディストリビュータ110にフィードバックするための統合には、比較的短い時間しか要しないことがある。これに応じて(tocater to this)、ロード・ディストリビュータ110へのフィードバック・サイクルの多くは、グローバル・ディシジョン・メーカ140が関係するサイクル毎に実行することができる。したがって、僅かな少数ガイド・プランの再計算(asmall minority guiding plan recomputation)だけで、モニタ系列中の大多数のイベントを、ロード・ディストリビュータ110へのフィードバックに合せて調整することができる。この方式の簡単な任意選択の変形には、僅かな少数ガイド・プランの再計算に、その他のモニタ・イベントから計算された平均も含めるものがある。
仮想サーバ・ファームの実装
次に、仮想サーバ・ファーム・システムの個々のコンポーネントの実装について、図1を参照しながら具体的に説明する。仮想サーバと仮想サーバ・ファームの1つの例が、図2に示されている。
図2には、ASPホスティング・ソリューションのアーキテクチャが示されている。サーバ・ファームのゲートウェイは、別個のフロントエンド・サブファーム212、242にそれぞれ対応するディストリビュータ210、240に、受信ヒットを転送する。図2では、仮想サーバ1(実線で表す)は、サブファーム212、222、232にあるリソースのインスタンスから構成され、仮想サーバ2(破線で表す)は、サブファーム242、222、232にあるリソースのインスタンスから構成され、仮想サーバ3(一点鎖線で表す)は、サブファーム212、252、262にあるリソースのインスタンスから構成される。ヒットは、図示するように、これらのサーバファーム212、222、232、242、252、262の各々に、対応するロード・ディストリビュータ210、220、230、240、250、260によって分配される。
ロード・モニタ
ロード・モニタ130は、リソースの使用状況をモニタするために、様々なリソース・クラスのインスタンスによって使用される。この情報を使用して、サービス品質保証契約に従った割当ての変更が決定され、様々なリソース・クラスのインスタンス全体にわたって負荷の均衡が図られる。
各クライアントは、そのアプリケーションが必要とするリソース・クラスのインスタンスをもつ。このインスタンスを、以下の方法によって、実際の実装上にマッピングすることができる。
・クライアント毎に、リソース・クラスの別個の物理インスタンスが存在する。特定のクライアントに対応する複数のこうしたインスタンスは、複数の物理マシン上に存在することができる。
・異なるクライアントに対応するインスタンスが、同一の物理マシン上に存在することができる。
・単一の物理リソース・インスタンスは、複数のクライアントにサービスを提供する。各クライアントによるリソースの使用は、インスタンス自体によって、または外部エンティティによって制限される。
論理的に、ロード・モニタ130は、あるクライアントについて、リソース・クラスの各インスタンス毎に存在する。しかし、実際のシステムでは、物理マシン毎にある単一のロード・モニタが、そのマシン上のすべてのアプリケーション・インスタンスについての負荷情報をモニタし報告することができる。
2種類のモニタが存在する。
・各アプリケーション・インスタンスについて、単位時間当たりのヒット数を計測するヒット率モニタ。
・アプリケーション・インスタンスによって実際に消費された物理リソースを計測するマシン負荷モニタ。これは、中央処理装置サイクルや必要メモリ容量などのパラメータから成るk次元ベクトルとすることができる。
ロード・ディストリビュータ110は、それに転送されたヒット数を総計することによって、クライアントの各アプリケーション・インスタンスについてヒット率を計測する。したがって、ロード・ディストリビュータ110は、ロード・モニタとしても動作する。
マシン負荷モニタは、以下の技法のいずれかを使用して実施することができる。
・UNIX(R)のpsやtopなど、負荷情報を提供する既存の何らかのシステム・プログラムを使用する。
・UNIX(R)の/procファイル・システムのような、下層のオペレーティング・システムが提供する情報を使用する。
・Tivoli(商標)負荷モニタ・システムのような、既存の何らかの負荷モニタ技術。
・アプリケーションが提供する負荷情報(提供される場合)。
ロード・モニタ130は最新の負荷情報を単位バッファに保持し、レベル1・アグレゲータがそれを取り出す。
負荷情報を使用して、リソース使用状況に応じてクライアントに請求を行うこともできる。さらに、ある時間帯に到着した1組のリクエストによって生成された負荷をモニタすることによって、価値のある情報を獲得することができる。こうした情報を収集して、システムを微調整し、またより良い方針を立案することができる。
ロード・ディストリビュータLD−nは、VSFシステムの以下のコンポーネントと相互に情報交換して、上で列挙したそのすべてのタスクを実施する。
レベル1・ロード・アグレゲータ
LD−nは、レベル1・ロード・アグレゲータにSjkを送信し、レベル1・ロード・アグレゲータからLjkと各クライアントのインスタンスの可用性ステータスとを受信する。
リソース・マネージャ
LD−nは、リソース・マネージャ150から以下の点に関するメッセージを受信する。
・既存インスタンスのシャットダウン。
・インスタンスの生成、クライアント毎のインスタンスへの割当て容量。
・クライアント毎のインスタンスへの割当て容量の変更。
・新しい割当てに変更するための「プラン切替え」メッセージ。
リソース・クラスiのサブファームのロード・ディストリビュータをLD−nとする。0からTの間の値をとるタイマをtとする。tはシステム・クロックに基づいて増加する。タイマはロード・ディストリビュータのローカル・タイマである。開始時およびサブファーム生成中は、すべてのクライアントについての各インスタンスのSjkおよびLjkは、0であると仮定する。クライアントk毎の各インスタンスjのHjkは、リソース・マネージャから受信した値に初期化される。tは0に初期化される。LD−nは、リソース・マネージャ150によって通知された、クライアント毎の各インスタンスの割当てHjkに基づいて、受信リクエストの転送を開始する。
アグレゲータ
アグレゲータ120は、モニタ・エージェントから負荷情報を収集し、効果的な判断を行うために様々なレベルでそれを統合する。図3には、統合データのフローを処理する方法が概略的に示されている。図3を参照すると、アグレゲータ120は、以下のサブコンポーネントから構成されている。
レベル1・アグレゲータ322は、ロード・モニタ130(R1、R2、R3)から負荷情報(各アプリケーション・インスタンス毎の現在の受信ヒット率、および各アプリケーション・インスタンスによる現在のリソース消費を表すk個1組のリソース使用状況)を受け取り、その情報をユーザ単位かつリソース・クラス単位に統合する。アグレゲータ120は、以下に与える式を用いて、以下のパラメータを計算する。
・新ヒット率:特定ユーザ、特定リソース・クラスの各インスタンスのヒット率を合計することによって獲得した、ユーザ単位かつリソース・クラス単位に統合したヒット率。レベル1・アグレゲータ322は、この情報をレベル2a・アグレゲータ324に送信する。
・新ヒット加重値:各リソース・クラスのインスタンス毎のヒットの重み。レベル1・アグレゲータ322は、この情報を対応するヒット率とともに、レベル2b・アグレゲータ326に送信する。
・負荷率:各リソース・クラスのインスタンス毎の消費された割当てリソースの割合。この情報は、ロード・ディストリビュータ110に送信される。
ヒットの重み=max.(“(実際に処理したヒット数に対するリソース使用率)/(参考ヒットに対するリソース使用率×実際に処理したヒット数))。ただし、iは、CPU、メモリなどのk個の要素を含む組。
負荷率=(処理したヒットの数×現在のヒットの重み)/(実際の割当てヒット×割当てヒットの重み)
参考ヒットによるあるマシン上の特定リソースのリソース使用率(先に述べたように、CPU、メモリなどのk個の要素を含む組)は、コンフィグレーション・リポジトリ160に格納されたベンチマーキング情報から取得される。これに加えて、各リソース・インスタンスに割り当てたヒットの数および割り当てた重みも、コンフィグレーション・リポジトリ160から読み取られる。
レベル2・アグレゲータ324、326は、レベル1・アグレゲータ322から統合された負荷情報を受け取り、ユーザの各リソース・クラスについてのリソース要件の変化を計算し、それを要求としてグローバル・ディシジョン・メーカ140に送信する。新しいリソース要件が現在の割当てと異なり、クライアントのSLAに適合している場合、変更が要求される。ユーザのこれらの要求は、参考ヒット数の(増減の)形で送信される。
先に述べたように、要求は、各クライアント毎、そのクライアントのアプリケーションを構成しているリソース・クラス毎に送信される。これらの要求は、2種類のリクエストから構成される。第1のタイプの要求は、リソース・クラスの受信ヒット率に変化があり、この変化に対応するためにシステムがリソース割当ての調整を必要としたときに発生する。これらの要求は、レベル2a・アグレゲータ324によって、識別され、検証され、生成される。レベル2a・アグレゲータ324は、図3において、グローバル・ディシジョン・メーカ140と対比させて、ローカル・ディシジョン・メーカと呼ばれる。
(訂正率と呼ばれる)第2のタイプの要求は、受信ヒットの重みが参考ヒットと異なり、変化を反映させてリソース割当てを訂正する必要があるときに、生成する必要がある。これらの要求は、レベル2b・アグレゲータ326によって、識別され、生成される。
レベル2a・アグレゲータ324は、クライアントについての各リソース・クラスの現在のヒット率を表す負荷情報の一部を受け取る。この情報と(コンフィグレーション・リポジトリ160から取得した)現在のリソース割当て情報とに基づいて、アグレゲータ120は、クライアントに対する割当て(割当て無しの場合あり)をどう変更する必要があるか計算する。
図4は、新しいリソース要求を計算するのに使用されるアルゴリズムのフローチャートである。このアルゴリズムでは、クライアントが異なれば異なることがある4つのコンフィグレーション・パラメータ(α、β、γ、δ)を使用する。パラメータαは、過負荷トリガを表す。すなわち、クライアントの作業負荷が、現在の割当てに係数αを乗じた値に達した場合、βで表される増分量がそのクライアントのために要求される。パラメータγおよびδは、対応する過少負荷パラメータである。これらのパラメータα、β、γ、δは、定数であるか、または現在の負荷、現在の割当て、およびSLAの制限の関数であるが、いずれの場合も、それらはシステム・パフォーマンスが向上するように調整することができる。しかし、βを計算した後、アグレゲータは、割当ての要求された増分がクライアントのSLAに適合していることを検証し、適合している場合にだけ、その要求をグローバル・ディシジョン・メーカ140に送信する。
同様に、変化がマイナスである場合、すなわち、割当てを減少させる場合、アグレゲータは、その減少がSLA毎に定めたリソース割当ての最小レベルを下回らないことをチェックする必要がある。
図4のアルゴリズムの流れは、上で概説したように単純である。ステップ410で、現在の負荷が、現在の割当てにパラメータαを乗じた値と比較される。現在の負荷の方が小さい場合、ステップ420で、現在の負荷が、現在の割当てにパラメータγを乗じた値より小さいかどうかチェックされる。それぞれの場合において、現在の負荷の方が大きい場合、また現在の負荷の方が小さい場合、現在の負荷が、最小リソース要件と最大リソース要件の間にあるかどうかが、ステップ430、440でそれぞれチェックされる。
現在の負荷が、現在の割当てにパラメータαを乗じた値より大きく、このリソース要件範囲の外にある場合、ステップ450で、現在の負荷が、最小リソース要件に同じパラメータαを乗じた値より大きいかどうかチェックされる。大きい場合、新しい割当てが、最大リソース割当てと現在の割当てにパラメータβを加算した値のうち小さい方に決まる。ステップ430で、現在の負荷が、リソース要件の範囲内にあった場合、新しい割当てはやはり、最大リソース割当てと現在の割当てにパラメータβを加算した値のうち小さい方に決まる。
同様に、現在の負荷が、現在の割当てにパラメータγを乗じた値より小さく、リソース要件範囲の外にある場合、ステップ460で、現在の負荷が、最大リソース要件に同じパラメータγを乗じた値より大きいかどうかチェックされる。大きい場合、新しい割当てが、最小リソース割当てと現在の割当てからパラメータδを減算した値のうち大きい方に決まる。ステップ440で、現在の負荷が、リソース要件の範囲内にあった場合、新しい割当てはやはり、最小リソース割当てと現在の割当てからパラメータδを減算した値のうち大きい方に決まる。
そうではなくて、ステップ450または460で、(i)現在の割当てが、最小リソース割当てにパラメータαを乗じた値より大きいこと(ステップ450)、または(ii)現在の割当てが、最大リソース要件にパラメータγを乗じた値より大きいこと(ステップ460)が分った場合、単に最小リソース要件が新しい割当てになる。
さらに、要件の変化が、クライアント・アプリケーションのフロントエンドとして動作するリソース・クラスに対応する場合、この要求はアプリケーション・レベルの要求であり、異なる扱いを受ける。言い換えると、こうしたリクエストは、クライアント・アプリケーションのすべてのリソース・クラス毎の適切なヒット数から成る複合リクエストに変換される。根底にあるリソース・クラスに対応するヒット要求を計算するために、アグレゲータは、そのクライアントに関する、そのアプリケーションのリソース・クラス毎の現在の対応率を計算する。
アプリケーションの対応率は、そのアプリケーションのフロントエンド・リソース・クラスに到着した各ヒットについて、根底にあるリソース・クラスで生成される参考ヒットの数を指定する。この情報は、クライアントに関する、各リソース・クラス毎の現在のヒット率を取得し、その値を比較することによって、計算することができる。システム初期化時に、この比率はベンチマーキング情報から取得され、コンフィグレーション・リポジトリに格納される。新たに計算した比率に著しい変化があった場合、コンフィグレーション・リポジトリ中の古い値は、新しい値で上書きされる。アグレゲータは、構成比率を取得した後、その比率を使用して、そのアプリケーションのすべてのリソース・クラスについて、適切なリソース要求を生成する。
レベル2b・アグレゲータ326は、各クライアントの各リソース・クラス・インスタンス毎に、参考ヒットで表した訂正率を計算する。レベル2b・アグレゲータ326は、各リソース・クラス・インスタンス毎に、現在のヒット率を対応する重みとともに、レベル1・アグレゲータから受信する。アグレゲータ120は、コンフィグレーション・リポジトリ160から前のヒット加重値を取得し、以下に示す式を用いて訂正率を計算する。
訂正率=(新ヒット加重値−前のヒット加重値)×割り当てられた参考ヒット数
各クライアントの各リソース・クラス毎のすべてのインスタンスについて、これらの訂正率を統合することによって、要求の全体的な変化も計算される。これらの要求は、各リソース・クラス・インスタンスについての、現在の割当て、現在のヒット加重値、訂正率とともに、グローバル・ディシジョン・メーカ140に転送される。
ロード・ディストリビュータ
ロード・ディストリビュータ110は、転送されて来たリクエストを、リクエストのクライアント識別情報に従って、適切なアプリケーション・インスタンスにマッピングする。サブファームのインスタンスによって生成されたリクエストは、次のレベルのロード・ディストリビュータによって、次のレベルのサブファームの1つに転送される。
図5には、受信リクエストがいかに分配されるかが概略的に示されている。図5に示すように、受信リクエストは、レベル1・ロード・ディストリビュータ512で受信される。これらのリクエストは、レベル1・ロード・ディストリビュータ512によって、例えば、インスタンス1、2、3(522、524、526)をホストする、リソース・クラス1のサブファーム1(540)に分配される。リクエストは、リソース・クラス1のサブファーム1(540)で処理された後、レベル2・ロード・ディストリビュータ(514)に送られる。これらのリクエストは次に、レベル2・ロード・ディストリビュータ514によって、例えば、インスタンス1、2(532、534)をホストする、リソース・クラス2のサブファーム2(560)に分配される。
図6には、受信リクエストの流れが概略的に示されている。図6では、クライアントCに属するリクエストRを、LD−1(610)が受信するものとする。リクエストRは、サブファームS1(612)内のクライアントCに属する最も負荷の軽いインスタンスIに転送される。リクエストRを処理した後、インスタンスIは、次の階層のリソース宛ての内部リクエストを生成することができる。サブファームS2(622)の一部を、次の階層のリソースのインスタンスとする。そのようなリクエストは、LD−2(620)(すなわち、LD−1(610)の次のレベルのディストリビュータ)によって、サブファームS2(622)内のクライアントCについての第2層リソースのインスタンスのうち最も負荷の軽いインスタンスに転送される。図6に示すように、リクエストはこのようにして、その他のロード・ディストリビュータLD−4(640)、LD−5(650)に送られ、そこからそれぞれ、サブファームS4(642)、サブファームS5(652)内のクライアントCに属する最も負荷の軽いインスタンスに送られる。
ロード・ディストリビュータ110は、ヒット率の計算に関する単位時間間隔Tを有する。また受信リクエストに関するFIFOキューも有する。各ロード・ディストリビュータは、2つの2次元テーブル、すなわち、各行がサブファーム内のリソース・インスタンスに対応し、各列がクライアントに対応するテーブルも有する。一方のテーブルは、グローバル・ディシジョン・メーカ140によるリソース割当てに関して静的であり、RAT(リソース・アロケーション・テーブル)と呼ばれる。もう一方のテーブルは動的であり、RCT(リソース消費テーブル)と呼ばれる。Hjk、すなわち、時間間隔Tの間に、クライアントkの第jインスタンスによって処理される割当てヒットが、RATのエントリである。(Sjk,Ljk)が、RCTのエントリである。Sjkは、現在の時間間隔Tの間に、クライアントkの第jインスタンス宛てに送られたヒットの数である。Ljkは、現在の時間間隔Tの間の、クライアントkの第jインスタンスの負荷情報(負荷率)である。
ロード・ディストリビュータLD−nによって実行される、ヒットをベスト・エフォート方式でインスタンス間に分配するタスクについて、以下で説明する。
・ロード・ディストリビュータは、受信した各リクエスト毎に、最小負荷インスタンスmを見つけ、そこにヒットを転送する。
・現在の時間間隔の間にあるインスタンスに転送したヒット数をクライアント単位に追跡し、この情報をレベル1・アグレゲータに送信する。
・障害を起したインスタンスをRATとRCTから削除する。
・リソース・マネージャによって新しいリソース割当てプランが実施された時、インスタンス毎に割当て容量を更新し、新しい割当てに従ったリクエストの転送を開始する。
・シャットダウンしたインスタンスへのリクエストの転送を中止し、新しく生成されたインスタンスへのリクエストの転送を開始する。
・リクエストFIFOキューが空ではない場合、キューの先頭のリクエストを処理(転送/削除)する。
グローバル・ディシジョン・メーカ
グローバル・ディシジョン・メーカ140は、現在のシステム状態をクライアントのSLAとともに入力として取得し、新しいリソース割当てプランを出力として生成する、システム・コンポーネントである。グローバル・ディシジョン・メーカ140は、以下の情報を入力として受け取る。
・レベル2a・アグレゲータ324によって維持管理される単位出力バッファからの、参考ヒットで表したリソース要求。当該サイクルにおいて、<リソース・クラス,クライアント>の組についての要求が存在しない場合、出力バッファは古い値(古いことはフラグで示される)を含んでおり、無視される。
・レベル2b・アグレゲータ326によって維持管理される単位出力バッファからの、参考ヒットで表した訂正率要求。上記の場合と同様に、入力が前のサイクルに属する場合、その入力は無視される。
・対応率。システム初期化時、クライアントのベンチマーキング情報によって、クライアントが使用するリソース・クラス間で相互依存関係がある場合に、対応率が定義される。この比率は、リソース割当ての際に使用される。アプリケーションが特定のリソース・クラスに対する要求を承認されていない場合、そのアプリケーションのその他のリソース・クラスの対応するリソースを確保しておいても意味はないので、これは重要である。この比率は時間につれて著しく変動することがある。その値はアグレゲータによって更新され、コンフィグレーション・リポジトリに格納される。グローバル・ディシジョン・メーカ140は、この値をコンフィグレーション・リポジトリ160から読み取る。
・その他のクライアント固有のアプリケーション情報(コンフィグレーション・リポジトリ160から取得)。
・割り当てられる各リソース・クラスの最小および最大量(SLAから取得。0も可能)。
・あるクライアントについて、あるリソース・クラスで許容されているインスタンスの最大数。
・あるリソース・クラスの新しいインスタンスを開始する際のコスト、または既存インスタンスをシャットダウンする際のコストを表す数(正数、0、負数が可能)。
・あるマシンから別のマシンへ、あるリソース・インスタンスを移動させる際のコストを表す数。
・インフラストラクチャ情報(コンフィグレーション・リポジトリ160から取得)。
・各リソース・クラスで使用可能なマシンの抽象的識別情報(名前)、それらのマシンの中で、各クライアントが使用可能なマシン。
・リソース・クラスに関する各マシンの容量。これは、O/Sのオーバヘッドおよびアプリケーションのオーバヘッドを明らかにし、負荷の短時間の変動に対処するための事前定義された予備の容量を差し引いた後に算出される。
・それら各マシン上で許容されるインスタンスの数の限度(限度がある場合)。
・実ヒット率で表した、ファーム内のマシン上での各クライアントの既存割当て。これらとともにヒット加重値も供給される。この2つの積によって、参考ヒットで表した割当てが与えられる。
・クライアントのSLAからの請求情報。これには、SLAが遵守されなかった様々な場合に支払われる違約金が含まれる。
システム障害は(発生した場合は)、マシン容量を減少させる(0になる場合もある)。グローバル・ディシジョン・メーカ140は、そうした障害による使用可能容量の減少がコンフィグレーション・リポジトリ160に反映されていると仮定する。
GDMソルバ・アルゴリズムが、上記の要求に応じて、負荷のマシンへの割当てを決定する。ホスティング・コストは、システムの混合整数線形計画法モデルを用いて最小限に抑えられる。線形モデルについて説明し、その後でこのモデルの解法について説明する。
線形計画法モデル
(線形計画法を使用した)モデルの目的は、様々なリソース・クラスにおいて、マシンの供給をクライアントの要求に合致させることである。複数のタイプのマシンと異なる金額を支払うクライアントとがあると仮定すると、モデルは、収入が最大になるように供給と要求を合致させる(線形計画法の分野における)輸送問題となる。主として、各マシンを単一のリソース・クラスに割り当てるという要件によって、複雑さが増す。
余分な割当ては無駄になるので、たかだか要求される容量が供給されるだけである(式(2)参照)。また、システムが十分な容量を有していない場合、優先度が最低のクライアントによる要求の一部を削除することができる。
供給制約(以下の式(3、4)参照)は2つの制約に変更される。一方の制約は、1つのリソース・クラスを各マシンに割り当てる。もう一方の制約は、そのリソース・クラスの要求のみをそれに割り付けることを可能にする。
1つのマシン上に存在することができるクライアントの数と、1つのリソース・クラスに関する1つのクライアントの要件が分散されるマシンの数とによって、制限がモデル化される。最初の制限は、多数のクライアントを単一のマシン上でサポートすることから生じるオーバヘッドを制限する。第2の制限を使用するのは、クライアントが分散されるマシンの数が増加するにつれて、複数インスタンスの管理がより難しくなるためである(式(5、6)参照)。
次の制約は、異なるリソース・クラスのリソースに対する要件が互いに依存している場合(例えば、あるリソース・クラスが別のリソース・クラスを呼び出している場合)、割り当てられる量が比率で表されることを保証する(式(7)参照)。線形モデルは正確なモデルではないが、2つのリソース間の実際の依存関係を近似する。
モデルを試験してみると、すべてのクライアントの最小要求を満たすだけのリソースが十分ある限り、この問題には常に実現可能な解があることが明らかになる。式(7)を満たすために、関連するリソース・クラスへの割当ては、ボトルネックとなるリソース・クラスが使用可能な容量に従って減らされる。
最後に、クライアントに約束されたSLAに従う各クライアントの最小要件が常に満たされるという制約(式(8)参照)。マシンは常に、この制約の実現可能性を保証するのに十分なだけ供給されるが、大規模なシステム障害の場合は、この制約は守られないこともある。最小要件もまた対応率の形で表さなければならない。
以下のコスト・モデルを最適化しながら、上記モデルについて、実現可能な割当てが決められる。
第1に、クライアントは、SLA、使用マシン、および利用リソース・クラスに応じた使用リソース単位(単位は参考ヒット)で請求される。請求は、その時点でクライアントに該当する使用「範囲」によっても左右される。例えば、請求単位が請求周期内でのヒットの全数である場合、最初のA個の単位には次のA個の単位よりも低い料率がかけられ、その後の単位も同様であることもある(以下の式(1)の第1項参照)。また、請求に参考ヒットのヒット加重値に従った重み付けを施して、クライアントがヒットに支払う実際の金額に反映させることもできる。
第2に、クライアントを追加するシステム・コスト(セットアップ・コスト)とクライアントをマシンから削除するシステム・コスト(「クリーニング」・コスト)がある(式(1)の第2項参照)。
第3に、あるリソース・クラスについて、クライアントのインスタンスの数が増えるにつれて、システムがデータ一貫性を管理するのに要するコストが大きくなる(式(1)の第3項参照)。
最後に、システムがシステム障害など何らかの理由でクライアントの最小要件を処理できない場合にかかる違約金がある。すべてのクライアントの最小要求を満たすだけのリソースが十分にない場合にのみ、モデルに違約金が追加され、その場合、この制約(式(8))は取り除かれ、この制約を外し代りに違約金を加えてモデルが再度解かれる。線形計画法に違約金を取り込んだ標準モデルがあるが、そのモデルは話を簡単にするため省略する(例えば[12]参照)。
詳細にモデルを説明するには、いくつかの表記を使用する必要がある。以下の文字は、変数(その値が求められる)、またはGDMソルバへの入力(システムについてのデータ)を表すことができる。添字i、j、kはそれぞれ、1からN、N、Nまでのすべての整数値をとり、システム上のクライアントの全数をN、リソース・クラスの全数をN、マシンの全数をNとする。
明確にするため、以下に入力を示す。
ijk:現在の割当て。
jj’:対応率。
ij:要求。
jk:max.あるマシン上のクライアント数。
ij:max.あるクライアントが存在するマシンの数。
Minij:要求。
:クライアント数。
:リソース・クラス数。
:マシン数。
ijk:請求金額。
jk:リソース・クラス毎のマシン容量。
ijk:インスタンスの追加または削除についての違約金。
ij:インスタンス数についての違約金。
ijk:ヒット加重値要求。
ijk:現在マシン上にあるインスタンス。
以下に変数を示す。
ijk:クライアントへの割当て。
ijk:マシン上のインスタンスの割当て。
jk:リソース・クラスへのマシンの割当て。
ijを、クライアントiによるリソース・クラスj宛てのすべての要求とする。Dijは、特定クライアントについての最大許容負荷を超える分を除外した、参考ヒット単位で表したアグレゲータ2a、2bからの要求の総和である。Dijは、リソース割当ての減少に関するリクエストである場合には、負数であることもある。コンフィグレーション・リポジトリから、リソース・クラスj上、マシンk上のクライアントiについて、Aijk、すなわち、参考ヒットで表した現在の割当てを取得する。これを解いて、最終的な割当てBijkを求める。
ijkは、クライアントiとリソース・クラスjとマシンkとの組合せに割り付けられたリソースBijkの単位分当たりの請求総額を表すものとする。クライアントを追加または削除するシステム・コストはともに、こうした各変化毎に、料率Tijkで請求される。Uijは、これらのインスタンス間で一貫性を維持するためのシステム・コストを表すものとする。
(1) Maximize SiSjSk(Pij×Bijk)-SiSjSkTijk×|Yijk-Zijk|-SiSj(Uij×SkZijk)
ここで、{0,1}内のYijkは、Aijk>0かどうかを表し、{0,1}内のZijkは、Bijk>0かどうかを表す。Sjkは、リソース・クラスjについてのマシンkの容量、すなわち、そのマシンがサポートできるリソース・クラスjの参考ヒットの数を表すものとする。第2式だけが制約となる以下の式が得られる。
Yijk>=Aijk/Sjk,Zijk>=Bijk/Sjk
要求制約は以下のようになる。
(2) Sk Bijk<=SkAijk+Dij、すべてのi、jについて。
各マシンkは、第jリソース・クラスの容量Sjkに関して、その容量を超えて割り当てることはできない。{0,1}内の変数Rjkは、リソース・クラスjがマシンk上に存在するかどうかを表す。
(3) Si Bijk<=Sjk×Rjk、すべてのj、kについて。
1つのマシン上には、ただ1つのリソース・クラスの存在が許される。
(4) Sj Rjk<=1、すべてのkについて。
各マシン上のインスタンスの数には限度Ljkがある。
(5) Si Zijk<=Ljk、すべてのj、kについて。
所与のリソース・クラスに関して、各クライアント毎のインスタンスの数には別の限度Mijがある。
(6) Sk Zijk<=Mij、すべてのi、jについて。
jj’は、対応率(リソース・クラスj’の使用量とリソース・クラスjの使用量との比率として先に定義)を表すものとする。割当てが対応率Cjj’に対応することを保証するために、以下の式を満たすものとする。
(7) Sk Bij’k=Cjj’×SkBijk、依存関係にあるすべてのj、j’について。
各クライアントには最小量を割り当てなければならない。
(8) Sk Bijk>=Minij、すべてのi、jについて。
上記の制約に加えて、変数の数を減らすために、以下の単純化を施すことができる。あるクライアントとリソースの組合せは、特定の1組のマシン上にのみ存在する。上記の組の中にないすべてのk’マシンについて、対応するBijk’を削除する。また、1つの特定のリソース・クラスに割り当てられたすべてのマシンk’について、対応するRjk’を1に設定し、k’と等しくないkについての、その他のRjkを0に設定する。
式(8)中の以下の最小値を求めるために、上記の問題を最初に解く。
Minij=maximum(SLAで指定される最小値,(SkAijk+Sk Vijk))、ただし、(Sk Aijk+SkVijk)は、現在の割当てと、やはり参考ヒットによって指定されるそれに対応するヒット加重値要求Vijkとの総和を表す。システム内の既存の割当ては維持されるので、このオプションによってすべてのクライアントへのより高い品質のサービスがサポートされる。これが実現可能でない場合、元の式(8)によって置き換える。それが実現不能である場合、先に述べたように、最小リソース要件が満たされないので、制約を違約金によって置き換える。
上記の問題は一般に、厳密に解くのは困難である。しかし、上記の問題に対する近似解を効果的に生成することのできる、標準的な線形計画法の技法、問題線形計画リラクゼーション(problem linear programming relaxation)、切除平面法、分岐限定法、カラム生成技法(columngeneration technique)が存在する。単純な発見的手続きで、線形計画リラクゼーションによって解を生成し、次に、整数変数を丸められた(しかし、実現可能な)値に設定した後、単純化した問題を再度解く。前処理モジュールの追加によって、解法が高速化するように、余分な変数、制約を取り除くことができる。解法プロセスは、その時までに得られた最良の解を求めるための短い時間の後、停止させられる。
新しい割当てプランを取得した後、リソース・マネージャは、新しい割当てを実行するよう指示される。グローバル・ディシジョン・メーカ140がリソース・マネージャ150に渡す情報は、マシン上での現在のヒット加重値を伴った、仮想サーバ・ファーム内のマシン上でのリソース割当てに関するクライアント単位のリストから構成される。これらの割当ては、参考ヒットの形で指定される。実行が成功すると、リソース・マネージャ150は、(参考ヒットで表した割当てを対応するヒット加重値で除算することによって取得される)処理可能な実際のヒットの形による新しい割当て値で、コンフィグレーション・リポジトリ160を更新する。ヒット加重値の値も更新される。
リソース・マネージャ
リソース・マネージャ・エージェント(RMエージェント)を、マシンをブート・アップしたときに自動的に開始するプログラムとして、サーバ・ファームの各マシン上にインストールする。RMエージェントは、リソース・マネージャ150だけが、そのマシン上のリソース・インスタンスを管理するために使用することができるインタフェースを提供する。ファーム内で使用可能なリソースの各タイプについて、低レベルのstartupコマンドとshutdownコマンドの適切な1組が、ファームのコンフィグレーション・リポジトリ160に登録される。サブファームの各マシンは、1つのタイプのリソースをホストするだけなので、RMエージェントは、1組のstartupコマンドとshutdownコマンドについて知りさえすればよい。RMエージェントは、そのマシン上でホストされるリソースのタイプを知ると、コンフィグレーション・リポジトリ160に問い合せて、適切なコマンドを取得する。これを行った後、エージェントはそのロケーションをコンフィグレーション・リポジトリ160に登録して、リソース・マネージャ150が必要なときにエージェントと通信が行えるようにする。
サブファーム内のマシンは、リソースの複数のインスタンスをホストすることができる。各インスタンスには、そのマシン上で一意の識別子(instanceID)が与えられる。これは、単にオペレーティング・システムのプロセス識別子(pid)をインスタンスIDとして使用することで、実施することができる。各インスタンスは、複数のクライアントからのヒットをサポートすることができ、そのインスタンス上で、各クライアントには、それぞれ異なる最大ヒット率を割り当てることができる。したがって、マシンのRMエージェントは、クライアント毎のこれらのヒット率割当てを含むテーブルを、各インスタンス毎に維持管理する。エージェントは、以下の抽象インタフェースをRMに提示する。
startup() returns instanceID
このstartup()コマンドは、そのマシン上でリソースのインスタンスを開始し、それにIDを割り当てるようエージェントに要求する。
shutdown(instanceID)
このshutdown()コマンドは、指定されたリソース・インスタンスをシャットダウンするようエージェントに要求する。
setAllocation(instanceID,clientName,hitRate)
このsetAllocation()コマンドは、指定されたインスタンスについて、ヒット率で表したクライアントのリソース割当てを設定する。
これらの動作のいずれかが要求されたとき、エージェントはその動作の実行を試み、それが成功したか失敗したかについてリソース・マネージャ150に報告する。これらの動作各々の実施について以下で詳しく説明する。
リソース・マネージャ150は、グローバル・ディシジョン・メーカ140によって作成された割当てプランを実施するために、エージェントの動作、さらには仮想サーバ・ファームの他のコンポーネントを調整する中央エンティティである。リソース・マネージャ150は、割当ての2つのコピー、すなわち、ファームの現在の状態を反映している現在プランと、グローバル・ディシジョン・メーカ140によって提供された新プランとを維持管理する。ファームの起動時、現在プランは、どのクライアントにもリソースが割り当てられていないことを表すように初期化される。リソース・マネージャ150は始動すると、グローバル・ディシジョン・メーカ140の出力バッファを検査して、新しい割当てプランが生成されたかどうか判断する。生成されていない場合、リソース・マネージャ150は、そのようなプランが入手できるようになるまで、単に待機する。
グローバル・ディシジョン・メーカ140の割当てプランは、3次元テーブルの形で定義される。各クライアント毎に、プランは、クライアントが必要とするすべてのリソース・クラスの各インスタンスの更新された割当てを列挙する。割当ては通常通り、ヒット率の形で表現される。グローバル・ディシジョン・メーカ140は、新プランの生成を完了すると、リソース・マネージャ150を呼び出し、実施すべきプランをパラメータとして供給する。次にリソース・マネージャ150は、3次元のプラン・テーブルをリソース・インスタンス軸に沿って調べる。リソース・マネージャ150は、各リソース・インスタンスについて、各クライアント毎の現在の割当てを新しい割当てと比較する。いくつかのケースが考えられる。
I.現在の割当てと新しい割当てが等しいケース。
I.現在の割当てが0で、新しい割当てが非0のケース。
I.現在の割当てが非0で、新しい割当てが0のケース。
I.現在の割当てと新しい割当てが共に非0で、現在の割当てと新しい割当てが等しくないケース。
ケースI
リソース・マネージャ150は、どんな動作も行う必要がない。
ケースII
新しいリソース・インスタンスがまだ存在していない場合、すなわち、そのインスタンスに関して他のすべてのクライアントも現時点での割当てが0である場合、新しいリソース・インスタンスを生成しなければならない。リソース・マネージャ150は、RMエージェント上でstartup()動作を呼び出す。リソース・マネージャ150は、コンフィグレーション・リポジトリ160においてエージェントのアドレスを検索して、適切なエージェントを探し出す。エージェントは、リソースのstartupスクリプトを用いてインスタンスを生成することによって応答する。各インスタンスは、関連するモニタをもたなければならない。したがって、RMエージェントは、新しいモニタを生成し、またはそのマシン上の既存モニタに新しいインスタンスをモニタする任務を割り当てる。RMエージェントは、これらのタスクを正常に完了した場合、肯定応答メッセージをリソース・マネージャ150に送信し、次にリソース・マネージャ150は、エージェントのsetAllocation動作を使用して、クライアントのヒット率割当てを新しい値に初期化する。次にRMエージェントは、そのサブファームのロード・ディストリビュータ110にメッセージを送信して、新しいインスタンスの生成を通知し、ロード・ディストリビュータ110が受信リクエストを処理できるようにする。
ケースIII
リソース・インスタンスがもはや必要でない場合、すなわち、そのインスタンスに関して他のすべてのクライアントも割当てが0に減少した場合、そのインスタンスを破棄しなければならない。リソース・マネージャ150は、適切なRMエージェント上で、インスタンスIDを与えてshutdown動作を呼び出す。エージェントは最初に、そのリソース・インスタンスがもはや使用できないことをサブファームのロード・ディストリビュータ110に通知し、それ以降のヒットがそのインスタンスに転送されることがないようにする。次にエージェントは、リソースのshutdownスクリプトを用いてそのインスタンスを破棄し、関連するモニタを無効にし、そのインスタンスに属する内部データ・テーブルを削除する。リソース・クラスによって提供されるshutdownスクリプトは、インスタンスを直ちに破棄する必要はない。インスタンスは、すでに受信したリクエストの処理は続行し、さらなる受信リクエストは拒絶することができる。保留中だったリクエストを処理し終えた後で、インスタンスは自らを完全にシャットダウンすることができる。
ケースIV
リソース・インスタンスの割当てを変更する必要がある。リソース・マネージャ150は、RMエージェント上でsetAllocation動作を使用して、これを実現する。エージェントは、新しい最大ヒット率を示すように、その内部テーブルを更新する。エージェントはこの割当てを実施する必要がある。この目的のために、エージェントは、メッセージをサブファームのロード・ディストリビュータ110に送信して、リソース・インスタンス上のクライアントについての新しい割当てを通知する。ロード・ディストリビュータ110は、この割り当てられた限度を超えたリソースの使用を防止するために、クライアントの受信リクエストを抑制する任務を担う。このケースには特殊なサブケースが存在する。
ケースIV−A
このケースでは、新しい割当て>現在の割当て、すなわち、割当てが増加する。一般に、グローバル・ディシジョン・メーカ140が特定のインスタンスの割当てを増やす場合、そのクライアントのアプリケーションが必要とするその他のリソース・クラスの割当ても増やす必要がある。第n層のリソース・インスタンスを増加させる際にそれと対応する第(n+1)層を増加させないと増加の効果はなく、第(n+1)層のインスタンスが併せて拡張されるまで、超過リクエストが抑制されるだけである。各エージェントへのメッセージ送信に関係する予期せぬ遅延のため、ケースIV−Aでは、ロード・ディストリビュータ110は、このインスタンスの使用を直ちに増やすことができない。ロード・ディストリビュータ110は、依存するすべてのリソース・インスタンスもメッセージを受信するまで、待機しなければならない。したがって、RMエージェントは、肯定応答メッセージをリソース・マネージャ150に送信する必要があり、リソース・マネージャ150は、効果的にバリア同期(barrier synchronization)を実施する。インスタンスが拡張されたことをすべてのエージェントが確認した後で、リソース・マネージャは、すべてのロード・ディストリビュータ110宛てに「プラン切替え」メッセージを発行する。ロード・ディストリビュータ110は、このメッセージを受信したときに、新しい増加された割当てへの切替えを実行することができる。
さらに、オペレーティング・システム・レベルの機構が、クライアント間でのマシン区画化に使用できる場合、RMエージェントはその機構とのインタフェースを担当する。そのような区画化機構は一般に、CPU使用、ディスク空間、ネットワーク帯域幅、およびその他の同様のOSレベルのリソースに関して各アプリケーション毎に厳格な境界を定める。これにより、アプリケーションは互いに安全に隔てられ、加えて、リソースの過剰消費が防止される。クライアントのアプリケーションが変更されると、RMエージェントはそれに従って、オペレーティング・システムにマシン区画の縮小または拡張を要求する。しかし、そのような機構が使用できない場合でも、抑制に基づく独立した機構がいずれにせよ割当て限度を緩やかに定めるので、システムは機能し続ける。
RMエージェントが要求された再割当てを実行した後、リソース・マネージャ150は、新しい割当てプランをコンフィグレーション・リポジトリ160に対してコミットする。
サブファームの生成および削除
リソース・マネージャ150は、すべてのサブファームの生成および削除も担当する。クライアントが到着し、サーバ・ファームで現在使用できないリソース・クラスの使用を要求した場合、そのリソース・クラスのインスタンスを実行するために、新しいサブファームを生成しなければならない。リソース・マネージャ150は、コンフィグレーション・リポジトリ160に問合せを行って、フリー・プール内にある当該リソース・クラスがインストールされた使用可能なマシンを見つける。次に、それらを新しいサブファームの一部として指定し、このサブファーム宛ての受信リクエストを管理するためのロード・ディストリビュータ110のインスタンスを生成する。この段階では、リソース・インスタンスは実際には生成されない。グローバル・ディシジョン・メーカ140がインスタンスに対して非0ヒット率を割り当てたとき、先に概略を述べたように、インスタンスが生成される。
ある段階で、あるサブファームにインストールされたリソース・クラスを必要とするクライアントが存在しないために、サブファームがもはや必要でなくなることもある。グローバル・ディシジョン・メーカ140は、そのサブファーム専用のマシンを回収して、重い負荷がかかっている他のサブファームでそれを再利用することを決定することができる。グローバル・ディシジョン・メーカ140は、リソース・マネージャ150にそのサブファームを削除するよう要求する。リソース・マネージャ150はそのエージェントを使用して、そのサブファーム上で動作しているすべてのリソース・インスタンス(およびそのモニタ)をシャットダウンし、次に同様にファームのロード・ディストリビュータ110のシャットダウン動作を呼び出す。ファームが活動停止状態になった後で、リソース・マネージャ150は、コンフィグレーション・リポジトリ160を更新して、ファーム内の各マシンのステータスを変更し、それらが再びフリー・プール内で使用可能になったことを知らせる。
ロード・ディストリビュータ110は、クライアントに割り当てられた特定のリソース・インスタンス間に受信ヒットを分配し、同じリソース・クラスの他のインスタンスが比較的軽負荷であるにもかかわらず、ある1つのインスタンスだけが過負荷になることがないようにする。ロード・ディストリビュータ110はまた、グローバル・ディシジョン・メーカ140によってクライアントに割り当てられた容量に従って、クライアントによる使用を制御する。同じリソース・クラスの1組のインスタンスを含む各サブファーム毎に、ロード・ディストリビュータ110が1つ使用される。
障害処理
本明細書で説明するモデルを実施して、サブファームのマシン障害を処理する。マシンが障害を起しているかどうか判断するために、中枢的な機構(heartbeat mechanism)が使用される。障害マシンが識別された場合、この機構はアグレゲータ120に通知する。アグレゲータは、障害通知を受信すると、システム管理者に通知を送る。アグレゲータは、影響を受けるロード・ディストリビュータ110に、ヒットを障害マシン宛てに送るのを中止するよう通知する。この情報は、通常の負荷フィードバック情報とともに、ロード・ディストリビュータに渡される。その後、ヒットを可能ならば他のマシンに送信し、いくつかの処理できないヒットを抑制するのは、ロード・ディストリビュータが担当する。
アグレゲータ120は、障害データをグローバル・ディシジョン・メーカ140に渡すように変更され、それによって、グローバル・ディシジョン・メーカ140は、その割当てプランから障害マシンを削除できるようになる。割当てプランの作成の前に、グローバル・ディシジョン・メーカ140は、マシンのフリー・プールの最新ステータスを収集し(使用可能な新しいマシンまたは新たに修理されたマシンがプールに追加されていることもある)、削除しなければならないすべての障害マシンを考慮する。
リソース・マネージャ150は、その新しいプラン展開の一環として、削除しなければならないマシン上のアプリケーション・インスタンスを破棄する。リソース・マネージャ150は、それらのマシンをシャットダウンし、システム管理者コンソールに、マシンを分離して修理してよいことを通知する。
マシン上の障害を発見するために、中枢的な機構が以下のように使用される。エージェントは周期的に、マシン上のアプリケーション・インスタンスにその可用性ステータスを要求するポーリング/pingを行う。アプリケーションは、障害を起していなければ、ある時間間隔内にこのエージェントに応答するように、機能を設け(instrumented)/ラップしなければならない。エージェントは次に、以下のような文脈依存規則に基づいて応答を照合する。マシンが障害を起している場合、アプリケーション・インスタンスはどれも応答しない。マシンが障害を起しておらず、xパーセント未満のアプリケーション・インスタンスが障害を起している場合、このマシンのいずれかの負荷を処理するために、ロード・ディストリビュータ110が使用できる代替マシンはない。マシンが障害を起しており、yパーセント超えるアプリケーション・インスタンスが障害を起している場合、このマシンと置き換えて使用できるマシンがフリー・プール内にある。これらの規則は互いに無関係であるか(disjoint)、マシンについて決定論的な答に到達するように明確な順序で適用される。XやYのようなパラメータは、アプリケーション/文脈依存であり、その他の文脈依存情報とともに、グローバル・ディシジョン・メーカ140のプランがリソース・マネージャ150によって新たに展開されるたびに、エージェントについて新しくされる。リモート・エージェントとアプリケーション・インスタンスとの間で発生するネットワーク・トラフィックを減少させるために、リモート・エージェントを使用しないでおく(すなわち、エージェントをインスタンスと配置する)ことができる。この場合、ローカル・エージェントは、アグレゲータ120がローカル・エージェントを信頼できるように、(あまり長い時間を費やすことなく、すなわち、タイムアウトすることなく)その障害決定を周期的に関連するアグレゲータ120に通知しなければならない。ローカル・エージェントがタイムアウトした場合、関連するアグレゲータは、マシン障害およびプロセス障害の発生を相応に仮定しなければならない。すべてのアグレゲータ120は、共通プロセスによって実施されるので、すべてのアグレゲータはただ1つの仮定に到達し、したがって、一貫性が維持される。ローカル・エージェントを利用しない場合、リモート・エージェントは、アグレゲータとの通信コストを削減するために、アグレゲータ120とともに配置することができる。
中枢的な機構が障害検出のためにpingを行う時間間隔は、ロード・モニタがスケジュールされる時間間隔から独立させることができる。アグレゲータ120は、最新の障害情報を取得して、それを負荷情報とともに他のモジュールへ送信しさえすればよい。
図7は、ローカル・エージェントによるマシン上での障害発見の手順を表したフローチャートである。図8には、同時に行われるアグレゲータの動作が示されており、その動作によって、エージェントの入力に基づき障害が判定される。図7では、ステップ710で、エージェントが、障害をテストするために、マシン上のアプリケーション・インスタンスに向けてpingを行う。次にステップ720で、アプリケーション・インスタンスからの応答が、先に論じた文脈依存規則に照らして、エージェントによって評価される。エージェントは、この評価の結果として、マシンが障害を起しているかどうか結論を下し、ステップ730で、エージェントはこの判定をアグレゲータに通知する。
図8は、アグレゲータによるマシン上の障害検出プロセスを表すフローチャートである。図8では、アグレゲータは同時に、マシン上の障害についての判定に関するエージェントからの周期的な通信を聴取する。ステップ740で、アグレゲータは、障害関連通知をエージェントから取得する(図7のステップ730に対応)。エージェントからの通知が遅延した場合、ステップ750で、アグレゲータは、エージェントによって報告されるマシンは障害を起しているという結論に分岐する(ステップ760)。
エージェントからの通知が遅延しなかった場合、アグレゲータは、通知の内容を調べて、マシンについてのエージェントの判定を見つける。ステップ770で、エージェントがマシン上で障害が起っていると判定した場合、アグレゲータは、マシンは障害を起しているという結論に分岐し(ステップ760)、それ以外の場合は、マシンは障害を起していないと結論する(ステップ780)。図8のステップは、マシン上のエージェントからの次の通知が予期されるときに、再び繰り返される。
ロード・ディストリビュータ
図9および図10は、上で説明したロード・ディストリビュータに関連するプロセスを表すフローチャートである。
リクエスト受信時(ステップ820):ロード・ディストリビュータは、ステップ860で受信リクエストをキューの末尾に追加する。
リクエスト処理:ロード・ディストリビュータは、ステップ812で、キューの先頭からリクエストRを取り出す。ロード・ディストリビュータは、リクエストRからそのリクエストが求めるリソースのクライアントCを特定する。次にロード・ディストリビュータは、リクエストを転送することのできる、当該クライアントのリソースのインスタンスを見つける。そのようなインスタンスは、レベル1・ロード・アグレゲータから受信した負荷情報(負荷率)から見て、作業負荷の最も軽いインスタンスである。これはステップ814で実行される。ステップ870でインスタンスに割り当てられた容量がすっかり消費されている(負荷率が1以上である)と判定された場合、ロード・ディストリビュータは、ステップ890で当該リクエストを削除する。容量が残っている場合、ロード・ディストリビュータは、ステップ891でリクエストをインスタンスに転送し、当該インスタンスに送信されたリクエストのカウントを1だけインクリメントする。ロード・ディストリビュータは、時間間隔dT(dTはTに比べて非常に短い)が経過した後、あるいはステップ891で当該インスタンスに各リクエストを転送した後、このカウントをレベル1・ロード・アグレゲータに送信する。これは実装レベルのパラメータであり、ロード・ディストリビュータ110の起動時に構成可能であるべきである。
リソース・マネージャからのメッセージ受信時(ステップ830):ステップ850でメッセージが、インスタンスがシャットダウンされていることを通知していた場合、ロード・ディストリビュータは、そのインスタンスへのリクエスト転送をすべて中止する。ステップ850でメッセージが、インスタンス内のクライアントへの割付け量が減少したことを通知していた場合、ロード・ディストリビュータは、直ちに新しい割付け量の確保を図る。新しいインスタンスが生成された場合、あるいはインスタンス内のクライアントへのア割付け量が増加した場合、ステップ850でリソース・マネージャからバリア・メッセージ−「切替えプラン」を受信するまで、新しい値はロード・ディストリビュータによって使用されない。新しいインスタンス・メッセージは、生成された新しいインスタンスについての情報、新しいインスタンス上に非0の容量を割付けられたクライアントについての情報、およびヒット率で表した対応する割付け量についての情報を含んでいる。ステップ850で「切替えプラン」メッセージを受信した後、どちらのテーブルにも新しい各クライアント用のカラムがないクライアントがいてもよい。同様に、RATのあるクライアントのカラムのすべてのエントリが0になった場合、RATおよびRCTのそのクライアントのカラムは削除される。
レベル1・ロード・アグレゲータからのメッセージ受信時:ステップ840でメッセージがインスタンスのクライアントについての負荷率を含んでいる場合、ロード・ディストリビュータは、リソース消費テーブル(RCT)内の値を更新する。メッセージが、インスタンスがダウンしていることを通知していた場合、ロード・ディストリビュータは、ステップ840でそのインスタンスへのリクエスト転送をすべて中止し、当該インスタンスをRATおよびRCTから削除する。
システム初期化
システムを初期化する時、システム管理コンポーネント(グローバル・ディシジョン・メーカ140、アグレゲータ120、ロード・モニタ130、リソース・マネージャ150など)を動作させるマシンとして指定されたマシンを起動し、事前定義されたスクリプトを実行する。これらのスクリプトは各システム管理コンポーネントをそれぞれ起動し初期化する。すべてのアプリケーションをインストールすることができる分散ファイル・システムが使用でき、すべてのマシンにファイル・システムの統一的ビューが提供される。
初期セットに含まれる顧客が、以下に説明する新しい顧客を追加するための手順に従って、サーバ・ファームに一つずつ追加される。
新しい顧客がサーバ・ファームに加入する場合、顧客アプリケーションのベンチマーク情報がまだ未取得であれば、その顧客はアプリケーションのベンチマーク・テストを行うための試験的な設定の下でホストされ、ベンチマーク情報はコンフィグレーション・リポジトリに追加される。次に、(仮想)サブファームがその顧客向けに構成され、予測負荷要求に応じて初期化される。これを受けて、グローバル・ディシジョン・メーカ140はリソースを割り当てることができる。フリー・プールだけでは顧客をサポートできない場合、顧客は拒絶される。グローバル・ディシジョン・メーカ140が割当てプランを計算すると、リソース・マネージャ150は、新しいサブファームをマシン上に生成することを含めて、そのプランを実施することができる。
コンピュータ・ハードウェアおよびソフトウェア
図11は、本明細書で説明した技法を実施するプロセスに含まれるステップを実行するのに使用することができるコンピュータ・システム900の概略図である。コンピュータ・システム900は、説明した技法の実行を支援するようにプログラムされたコンピュータ・ソフトウェアを実行する目的で提供される。このコンピュータ・ソフトウェアは、コンピュータ・システム900にインストールされた適切なオペレーティング・システムの下で動作する。
コンピュータ・ソフトウェアは、コンピュータ・システム900によって解釈可能な1組のプログラムされた論理命令を含み、これらの命令は、コンピュータ・システム900に指示を与えて、これらの命令によって指定される所定の機能を実行させる。コンピュータ・ソフトウェアは、どんな言語、コード、または表記を用いて記録された表現とすることもでき、この表現は、適合する情報処理システムに特定の機能を直接実行させる、あるいは別の言語、コード、または表記に変換した後で実行させるための1組の命令を含む。
コンピュータ・ソフトウェアは、適切なコンピュータ言語で記述されたステートメントを含むコンピュータ・プログラムによってプログラムされる。コンピュータ・プログラムは、コンパイラを用いて、オペレーティング・システムによる実行に適したバイナリ形式のコンピュータ・ソフトウェアに変換される。コンピュータ・ソフトウェアは、説明した技法のプロセスに含まれる特定のステップを実行する様々なソフトウェア・コンポーネントやコード手段が関与するような方式でプログラムされる。
コンピュータ・システム900のコンポーネントには、コンピュータ920、入力装置910、915、ビデオ・ディスプレイ990が含まれる。コンピュータ920は、プロセッサ940、メモリ・モジュール950、入出力(I/O)インタフェース960、965、ビデオ・インタフェース945、ストレージ装置955を含む。
プロセッサ940は、オペレーティング・システムとオペレーティング・システムの下で動作するコンピュータ・ソフトウェアとを実行する中央処理装置(CPU)である。メモリ・モジュール950は、ランダム・アクセス・メモリ(RAM)と読出し専用メモリ(ROM)とを含み、プロセッサ940の指揮下で使用される。
ビデオ・インタフェース945は、ビデオ・ディスプレイ990に接続され、ビデオ・ディスプレイ990のディスプレイにビデオ信号を提供する。コンピュータ920を操作するためのユーザ入力は、キーボード910とマウス915で構成される入力装置910、915から提供される。ストレージ装置955は、ディスク・ドライブ、またはその他の適切な不揮発性ストレージ媒体を含む。
コンピュータ920の各コンポーネントは、データ・バス、アドレス・バス、制御バスを含むバス930に接続され、これらのコンポーネントは、バス930を介して互いに通信を行うことができる。
コンピュータ・システム900は、インターネットに代表されるネットワーク980への通信チャネル985を使用して、入出力(I/O)インタフェース965経由で1つまたは複数の他の類似のコンピュータに接続することができる。
コンピュータ・ソフトウェア・プログラムは、コンピュータ・プログラム製品として提供することができ、可搬ストレージ媒体に記録することができる。この場合、コンピュータ・システム900は、ストレージ装置955から読み取ることによって、コンピュータ・ソフトウェア・プログラムにアクセスする。あるいは、コンピュータ920は、ネットワーク980を介して、コンピュータ・ソフトウェアに直接アクセスすることもできる。いずれの場合も、ユーザは、キーボード910およびマウス915を使用してコンピュータ・システム900と対話しながら、コンピュータ920上で動作するプログラムされたコンピュータ・ソフトウェアを操作する。
例示のためにコンピュータ・システム900について説明したが、他の構成またはタイプのコンピュータ・システムを同じようにうまく使用して、説明した技法を実施することができる。上記の説明は、説明した技法を実施するのに適した特定のタイプのコンピュータ・システムの一例にすぎない。
ASPホスティング・システムの様々な機能コンポーネントを示す概略図である。 図1のASPホスティング・システムのアーキテクチャを示す概略図である。 集められたデータ・フローが、グローバル・ディシジョン・メーカ・コンポーネントによる処理の前に、図1のシステムでいかに処理されるかを示す概略図である。 図1のシステムのレベル2a・アグレゲータに関するアルゴリズムを概略的に表すフローチャートである。 図1のシステムにおいて受信リクエストがいかに分配されるかを示す概略図である。 図1のシステムの異なる仮想部分に関するロード・ディストリビュータの概略図である。 エージェントに関する、図1のシステムの障害検出用アルゴリズムを概略的に示すフローチャートである。 アグレゲータに関する、図1のシステムの障害検出用アルゴリズムを概略的に示すフローチャートである。 図1のシステムのロード・ディストリビュータに関するアルゴリズムを概略的に表すフローチャートである。 図1のシステムのロード・ディストリビュータに関するアルゴリズムを概略的に表すフローチャートである。 図1のシステムを実施するのに使用可能な例示的なコンピュータ・システムの概略図である。

Claims (16)

  1. ネットワーク接続された複数のマシン上で一括して実行される複数のリソース・クラス・コンポーネントを含むアプリケーションへのアクセスを複数のクライアント・ユーザに提供する方法であって、前記ユーザは、アプリケーションサービスプロバイダによって運営されるネットワーク接続された複数のマシン上でホストされる1つ又は複数のアプリケーションにアクセスでき、
    前記方法は、
    (i)ユーザからのアプリケーションの使用を求めるリクエストを受信するステップと、
    (ii)各ユーザからの前記アプリケーションの使用を求める前記受信したリクエストを処理するために、前記ユーザ毎に、リソース・クラス・コンポーネントの複数のインスタンスの複数のマシン上の前記アプリケーションに提供するステップと、
    (iii)前記受信したリクエストの各々リソース・クラス・コンポーネントのインスタンスのうちで最も負荷が軽いインスタンス宛てに送るステップと、
    (iv)前記ユーザ毎に、前記アプリケーションの前記リソース・クラス・コンポーネントの前記インスタンスによって処理されたリクエストの数をモニタするステップと、
    (v)前記複数のネットワーク化されたマシンのいずれかに障害があるかどうかをある時間間隔ごとに判定するステップと、
    (vi)各リソース・クラス・コンポーネント毎にモニタされた前記リクエストの数に応じて且つマシンが障害を起こしていることに基づいて、複数のリソース・クラス・コンポーネントのインスタンスの数を増減させて、該増減された後のインスタンスから構成される異なるマシン・フラクションを特定のユーザに割り当てるステップと、
    を含む、前記方法。
  2. 前記提供するステップが、
    前記アプリケーションの使用を求めるリクエストを処理する、複数のマシン上の複数のリソース・クラスの複数のインスタンスを起動するステップと、
    前記アプリケーションの使用を求めるリクエストを処理する、複数のマシン上の各リソース・クラスの複数のインスタンスを終了するステップと
    をさらに含む、請求項1に記載の方法。
  3. ユーザからの前記アプリケーションの使用を求める前記リクエストが、適切なリソース・クラスの特定のインスタンスによる実行のためのキューに先入れ先出し方式で格納される、請求項1に記載の方法。
  4. 個々のユーザに対するサービス品質保証契約の記録を維持管理するステップをさらに含む、請求項1に記載の方法。
  5. 各リソース・クラス・コンポーネント毎にモニタされた前記リクエストの数に応じて、各リソース・クラス・コンポーネントのインスタンスの数を、前記ユーザ毎に増減させるステップをさらに含み、個々のユーザに対する前記サービス品質保証契約が少なくとも満たされる、請求項に記載の方法。
  6. 現在使用可能なリソースと、処理されるリクエストによって現在消費されているリソースとが、各ユーザ毎にモニタされ、
    (i)個々のユーザが現在使用可能なリソースの記録と、(ii)個々のユーザによって現在消費されているリソースの記録とを維持管理し、前記両方のリソースの記録を、各リソース・クラス・コンポーネントの複数のインスタンスの各々に関して維持管理するステップをさらに含む、請求項1〜のいずれか一項に記載の方法。
  7. 前記複数のリソース・クラス・コンポーネントが、ウェブ・サーバ・コンポーネント、コマース・サーバ・コンポーネント、及びデータベース・サーバ・コンポーネントを含む、請求項1に記載の方法。
  8. 前記複数のリソース・クラス・コンポーネントは、フロントエンド・コンポーネント、中間層コンポーネント、及びバックエンド・コンポーネントを含む、請求項1に記載の方法。
  9. ネットワーク接続された複数のマシン上で一括して実行される複数のリソース・クラス・コンポーネントを含むアプリケーションへのアクセスを複数のユーザに提供するためのシステムであって、前記ユーザは、アプリケーションサービスプロバイダによって運営されるネットワーク接続された複数のマシン上でホストされる1つ又は複数のアプリケーションにアクセスでき、
    前記システムは、
    (i)ユーザからのアプリケーションの使用を求めるリクエストを受信する手段と、
    (ii)各ユーザからの前記アプリケーションの使用を求める前記受信したリクエストを処理するために、前記ユーザ毎に、リソース・クラス・コンポーネントの複数のインスタンスの複数のマシン上の前記アプリケーションに提供する手段と、
    (iii)前記受信したリクエストの各々リソース・クラス・コンポーネントのインスタンスのうちで最も負荷が軽いインスタンス宛てに送る手段と、
    (iv)前記ユーザ毎に、前記アプリケーションの前記リソース・クラス・コンポーネントの前記インスタンスによって処理されたリクエストの数をモニタする手段と、
    (v)前記複数のネットワーク化されたマシンのいずれかに障害があるかどうかをある時間間隔ごとに判定する手段と、
    (vi)各リソース・クラス・コンポーネント毎にモニタされた前記リクエストの数に応じて且つマシンが障害を起こしていることに基づいて、複数のリソース・クラス・コンポーネントのインスタンスの数を増減させて、該増減された後のインスタンスから構成される異なるマシン・フラクションを特定のユーザに割り当てる手段と
    を含む、前記システム。
  10. 前記提供する手段が、
    前記アプリケーションの使用を求めるリクエストを処理する、複数のマシン上の複数のリソース・クラスの複数のインスタンスを起動する手段と、
    前記アプリケーションの使用を求めるリクエストを処理する、複数のマシン上の各リソース・クラスの複数のインスタンスを終了する手段と
    をさらに含む、請求項に記載のシステム。
  11. ユーザからの前記アプリケーションの使用を求める前記リクエストが、適切なリソース・クラスの特定のインスタンスによる実行のためのキューに先入れ先出し方式で格納される、請求項に記載のシステム。
  12. 個々のユーザに対するサービス品質保証契約の記録を維持管理する手段をさらに含む、請求項に記載のシステム。
  13. 各リソース・クラス・コンポーネント毎にモニタされた前記リクエストの数に応じて、各リソース・クラス・コンポーネントのインスタンスの数を、前記ユーザ毎に増減させるステップをさらに含み、個々のユーザに対する前記サービス品質保証契約が少なくとも満たされる、請求項12に記載のシステム。
  14. 前記モニタ手段が、各ユーザ毎に、現在使用可能なリソースと、処理されるリクエストによって現在消費されているリソースとをモニタし、
    (i)個々のユーザが現在使用可能なリソースの記録と、(ii)個々のユーザによって現在消費されているリソースの記録とを維持管理し、前記両方のリソースの記録を、各リソース・クラス・コンポーネントの複数のインスタンスの各々に関して維持管理する手段をさらに含む、請求項13のいずれか一項に記載のシステム。
  15. 前記複数のリソース・クラス・コンポーネントが、ウェブ・サーバ・コンポーネント、コマース・サーバ・コンポーネント、及びデータベース・サーバ・コンポーネントを含む、請求項に記載のシステム。
  16. 前記複数のリソース・クラス・コンポーネントは、フロントエンド・コンポーネント、中間層コンポーネント、及びバックエンド・コンポーネントを含む、請求項に記載のシステム。
JP2003519792A 2001-08-03 2002-03-21 ホストされるアプリケーションのためのサーバ・リソース管理 Expired - Fee Related JP4527976B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/921,868 US7174379B2 (en) 2001-08-03 2001-08-03 Managing server resources for hosted applications
PCT/GB2002/001368 WO2003014928A2 (en) 2001-08-03 2002-03-21 Managing server resources for hosted applications

Publications (2)

Publication Number Publication Date
JP2004538573A JP2004538573A (ja) 2004-12-24
JP4527976B2 true JP4527976B2 (ja) 2010-08-18

Family

ID=25446095

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003519792A Expired - Fee Related JP4527976B2 (ja) 2001-08-03 2002-03-21 ホストされるアプリケーションのためのサーバ・リソース管理

Country Status (7)

Country Link
US (1) US7174379B2 (ja)
EP (1) EP1412857B1 (ja)
JP (1) JP4527976B2 (ja)
KR (1) KR100570141B1 (ja)
AT (1) ATE366439T1 (ja)
DE (1) DE60221019T2 (ja)
WO (1) WO2003014928A2 (ja)

Families Citing this family (374)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9603582D0 (en) 1996-02-20 1996-04-17 Hewlett Packard Co Method of accessing service resource items that are for use in a telecommunications system
US9239763B2 (en) 2012-09-28 2016-01-19 Oracle International Corporation Container database
US6907395B1 (en) * 2000-10-24 2005-06-14 Microsoft Corporation System and method for designing a logical model of a distributed computer system and deploying physical resources according to the logical model
US7606898B1 (en) * 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
US7113900B1 (en) * 2000-10-24 2006-09-26 Microsoft Corporation System and method for logical modeling of distributed computer systems
US7257815B2 (en) 2001-09-05 2007-08-14 Microsoft Corporation Methods and system of managing concurrent access to multiple resources
US20030061262A1 (en) * 2001-09-25 2003-03-27 Hahn Stephen C. Method and apparatus for partitioning resources within a computer system
US7054934B2 (en) * 2001-10-26 2006-05-30 Hewlett-Packard Development Company, L.P. Tailorable optimization using model descriptions of services and servers in a computing environment
US7039705B2 (en) * 2001-10-26 2006-05-02 Hewlett-Packard Development Company, L.P. Representing capacities and demands in a layered computing environment using normalized values
US7035930B2 (en) * 2001-10-26 2006-04-25 Hewlett-Packard Development Company, L.P. Method and framework for generating an optimized deployment of software applications in a distributed computing environment using layered model descriptions of services and servers
US7328261B2 (en) * 2001-11-21 2008-02-05 Clearcube Technology, Inc. Distributed resource manager
US20030110250A1 (en) * 2001-11-26 2003-06-12 Schnitzer Jason K. Data Normalization
US7310673B2 (en) * 2001-12-21 2007-12-18 Hewlett-Packard Development Company, L.P. Network resource assignment system and method
US20030126135A1 (en) * 2001-12-28 2003-07-03 David Gaxiola Remote resource management of local devices
IL147560A0 (en) * 2002-01-10 2002-08-14 Sphera Technologies Ltd A method and system for hosting a plurality of dedicated servers
US7962644B1 (en) * 2002-03-18 2011-06-14 Oracle International Corporation Systems and methods for handling a plurality of communications
US7660731B2 (en) * 2002-04-06 2010-02-09 International Business Machines Corporation Method and apparatus for technology resource management
US7107327B2 (en) * 2002-04-26 2006-09-12 Sun Microsystems, Inc. Method and apparatus for determining a server configuration based on an execution profile of an application
US7143413B2 (en) * 2002-05-15 2006-11-28 Hewlett-Packard Development Company, L.P. Method and system for allocating system resources among applications using weights
US7072960B2 (en) * 2002-06-10 2006-07-04 Hewlett-Packard Development Company, L.P. Generating automated mappings of service demands to server capacities in a distributed computer system
US7290050B1 (en) * 2002-09-20 2007-10-30 Blue Coat Systems, Inc. Transparent load balancer for network connections
US7353538B2 (en) * 2002-11-08 2008-04-01 Federal Network Systems Llc Server resource management, analysis, and intrusion negation
US7376732B2 (en) * 2002-11-08 2008-05-20 Federal Network Systems, Llc Systems and methods for preventing intrusion at a web host
GB0302926D0 (en) * 2003-02-08 2003-03-12 Grex Games Ltd System architecture and engine for massively multi-user operation
US7890543B2 (en) 2003-03-06 2011-02-15 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7689676B2 (en) * 2003-03-06 2010-03-30 Microsoft Corporation Model-based policy application
US7072807B2 (en) * 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US8122106B2 (en) * 2003-03-06 2012-02-21 Microsoft Corporation Integrating design, deployment, and management phases for systems
JP4045991B2 (ja) * 2003-03-27 2008-02-13 株式会社日立製作所 ポリシールールの生成方法およびそれを用いたジョブ運用管理方法
US7437728B2 (en) * 2003-06-12 2008-10-14 Microsoft Corporation System and method for CPU bandwidth allocation
US7349958B2 (en) * 2003-06-25 2008-03-25 International Business Machines Corporation Method for improving performance in a computer storage system by regulating resource requests from clients
US7636917B2 (en) * 2003-06-30 2009-12-22 Microsoft Corporation Network load balancing with host status information
US7590736B2 (en) * 2003-06-30 2009-09-15 Microsoft Corporation Flexible network load balancing
US7613822B2 (en) * 2003-06-30 2009-11-03 Microsoft Corporation Network load balancing with session information
US7606929B2 (en) * 2003-06-30 2009-10-20 Microsoft Corporation Network load balancing with connection manipulation
US7437459B2 (en) * 2003-08-14 2008-10-14 Oracle International Corporation Calculation of service performance grades in a multi-node environment that hosts the services
US20050256971A1 (en) * 2003-08-14 2005-11-17 Oracle International Corporation Runtime load balancing of work across a clustered computing system using current service performance levels
CN100547583C (zh) * 2003-08-14 2009-10-07 甲骨文国际公司 数据库的自动和动态提供的方法
US7437460B2 (en) * 2003-08-14 2008-10-14 Oracle International Corporation Service placement for enforcing performance and availability levels in a multi-node system
US7747717B2 (en) * 2003-08-14 2010-06-29 Oracle International Corporation Fast application notification in a clustered computing system
US7664847B2 (en) * 2003-08-14 2010-02-16 Oracle International Corporation Managing workload by service
US7937493B2 (en) 2003-08-14 2011-05-03 Oracle International Corporation Connection pool use of runtime load balancing service performance advisories
US7441033B2 (en) * 2003-08-14 2008-10-21 Oracle International Corporation On demand node and server instance allocation and de-allocation
US7516221B2 (en) * 2003-08-14 2009-04-07 Oracle International Corporation Hierarchical management of the dynamic allocation of resources in a multi-node system
US20060064400A1 (en) * 2004-09-21 2006-03-23 Oracle International Corporation, A California Corporation Methods, systems and software for identifying and managing database work
US7953860B2 (en) * 2003-08-14 2011-05-31 Oracle International Corporation Fast reorganization of connections in response to an event in a clustered computing system
WO2005017783A2 (en) * 2003-08-14 2005-02-24 Oracle International Corporation Hierarchical management of the dynamic allocation of resourses in a multi-node system
US8365193B2 (en) * 2003-08-14 2013-01-29 Oracle International Corporation Recoverable asynchronous message driven processing in a multi-node system
US7552171B2 (en) * 2003-08-14 2009-06-23 Oracle International Corporation Incremental run-time session balancing in a multi-node system
US7873684B2 (en) 2003-08-14 2011-01-18 Oracle International Corporation Automatic and dynamic provisioning of databases
US8655755B2 (en) * 2003-10-22 2014-02-18 Scottrade, Inc. System and method for the automated brokerage of financial instruments
US7676560B2 (en) * 2003-10-24 2010-03-09 Microsoft Corporation Using URI's to identify multiple instances with a common schema
JP3993848B2 (ja) * 2003-10-24 2007-10-17 株式会社日立製作所 計算機装置及び計算機装置の制御方法
US7886055B1 (en) * 2005-04-28 2011-02-08 Hewlett-Packard Development Company, L.P. Allocating resources in a system having multiple tiers
US9021094B1 (en) 2005-04-28 2015-04-28 Hewlett-Packard Development Company, L.P. Allocation of resources for tiers of a multi-tiered system based on selecting items from respective sets
US7296273B2 (en) * 2003-12-04 2007-11-13 International Business Machines Corporation System, method and program tool to reset an application
US7640546B2 (en) * 2004-01-16 2009-12-29 Barclays Capital Inc. Method and system for identifying active devices on network
JP4367141B2 (ja) * 2004-01-23 2009-11-18 富士ゼロックス株式会社 指示記述内容変更装置及び指示記述内容変更プログラム
CA2463006A1 (en) * 2004-01-27 2005-07-27 Wrapped Apps Corporation On demand provisioning of web applications
US20050172291A1 (en) * 2004-01-30 2005-08-04 Rajarshi Das Method and apparatus for utility-based dynamic resource allocation in a distributed computing system
JP4568289B2 (ja) * 2004-01-30 2010-10-27 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピューティング・ユーティリティ・システムにおけるアービトレーションのための装置
US8311974B2 (en) 2004-02-20 2012-11-13 Oracle International Corporation Modularized extraction, transformation, and loading for a database
US8046763B1 (en) * 2004-02-20 2011-10-25 Oracle America, Inc. Regulation of resource requests to control rate of resource consumption
US8584129B1 (en) * 2004-02-20 2013-11-12 Oracle America, Inc. Dispenser determines responses to resource requests for a single respective one of consumable resource using resource management policy
US7778422B2 (en) 2004-02-27 2010-08-17 Microsoft Corporation Security associations for devices
US9268607B2 (en) 2004-03-13 2016-02-23 Adaptive Computing Enterprises, Inc. System and method of providing a self-optimizing reservation in space of compute resources
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
US7827557B2 (en) * 2004-03-24 2010-11-02 Hewlett-Packard Development Company, L.P. Method and apparatus for allocating resources to applications using a linearized objective function
US7865582B2 (en) * 2004-03-24 2011-01-04 Hewlett-Packard Development Company, L.P. System and method for assigning an application component to a computing resource
US8458691B2 (en) 2004-04-15 2013-06-04 International Business Machines Corporation System and method for dynamically building application environments in a computational grid
US20050259683A1 (en) * 2004-04-15 2005-11-24 International Business Machines Corporation Control service capacity
US20050246529A1 (en) 2004-04-30 2005-11-03 Microsoft Corporation Isolated persistent identity storage for authentication of computing devies
US20050251786A1 (en) * 2004-05-07 2005-11-10 International Business Machines Corporation System and method for dynamic software installation instructions
US8554806B2 (en) 2004-05-14 2013-10-08 Oracle International Corporation Cross platform transportable tablespaces
US20050283531A1 (en) * 2004-06-17 2005-12-22 International Business Machines Corporation Method and apparatus for combining resource properties and device operations using stateful Web services
US20060069774A1 (en) * 2004-06-17 2006-03-30 International Business Machine Corporation Method and apparatus for managing data center using Web services
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
DE102004032518A1 (de) * 2004-07-06 2006-01-26 Braun Gmbh Reinigungsvorrichtung für den Scherkopf eines Trockenrasierapparates
US7502824B2 (en) * 2004-08-12 2009-03-10 Oracle International Corporation Database shutdown with session migration
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
JP2006079495A (ja) * 2004-09-13 2006-03-23 Hitachi Ltd ストレージシステム及び論理区画の設定方法
US8181219B2 (en) 2004-10-01 2012-05-15 Microsoft Corporation Access authorization having embedded policies
US20060095435A1 (en) * 2004-10-22 2006-05-04 Bellsouth Intellectual Property Corporation Configuring and deploying portable application containers for improved utilization of server capacity
US7788671B2 (en) 2004-11-01 2010-08-31 International Business Machines Corporation On-demand application resource allocation through dynamic reconfiguration of application cluster size and placement
CA2586763C (en) 2004-11-08 2013-12-17 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
US7562382B2 (en) * 2004-12-16 2009-07-14 International Business Machines Corporation Specializing support for a federation relationship
US9606821B2 (en) 2004-12-17 2017-03-28 Intel Corporation Virtual environment manager for creating and managing virtual machine environments
US9489424B2 (en) * 2004-12-20 2016-11-08 Oracle International Corporation Cursor pre-fetching
US8316130B2 (en) 2004-12-22 2012-11-20 International Business Machines Corporation System, method and computer program product for provisioning of resources and service environments
US20060143617A1 (en) * 2004-12-29 2006-06-29 Knauerhase Robert C Method, apparatus and system for dynamic allocation of virtual platform resources
US7779418B2 (en) 2004-12-30 2010-08-17 Oracle International Corporation Publisher flow control and bounded guaranteed delivery for message queues
US7818386B2 (en) 2004-12-30 2010-10-19 Oracle International Corporation Repeatable message streams for message queues in distributed systems
US7925755B2 (en) * 2004-12-30 2011-04-12 International Business Machines Corporation Peer to peer resource negotiation and coordination to satisfy a service level objective
US20060149650A1 (en) * 2005-01-05 2006-07-06 Dilley James K Fundraiser system
US7555484B2 (en) * 2005-01-19 2009-06-30 Microsoft Corporation Load balancing based on cache content
US8826287B1 (en) * 2005-01-28 2014-09-02 Hewlett-Packard Development Company, L.P. System for adjusting computer resources allocated for executing an application using a control plug-in
US9176772B2 (en) * 2005-02-11 2015-11-03 Oracle International Corporation Suspending and resuming of sessions
US7379953B2 (en) * 2005-02-22 2008-05-27 International Business Machines Corporation Systems and methods for resource-adaptive workload management
US7739687B2 (en) * 2005-02-28 2010-06-15 International Business Machines Corporation Application of attribute-set policies to managed resources in a distributed computing system
US7657536B2 (en) * 2005-02-28 2010-02-02 International Business Machines Corporation Application of resource-dependent policies to managed resources in a distributed computing system
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
WO2006112981A2 (en) * 2005-03-16 2006-10-26 Cluster Resources, Inc. Automatic workload transfer to an on-demand center
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
JP5076279B2 (ja) * 2005-03-17 2012-11-21 富士通株式会社 It資産管理システム、it資産管理方法およびit資産管理プログラム
EP1872249B1 (en) 2005-04-07 2016-12-07 Adaptive Computing Enterprises, Inc. On-demand access to compute resources
US7797147B2 (en) 2005-04-15 2010-09-14 Microsoft Corporation Model-based system monitoring
US20060235664A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Model-based capacity planning
US7802144B2 (en) * 2005-04-15 2010-09-21 Microsoft Corporation Model-based system monitoring
US8489728B2 (en) 2005-04-15 2013-07-16 Microsoft Corporation Model-based system monitoring
US7908606B2 (en) * 2005-05-20 2011-03-15 Unisys Corporation Usage metering system
US7743001B1 (en) * 2005-06-21 2010-06-22 Amazon Technologies, Inc. Method and system for dynamic pricing of web services utilization
JP2007004595A (ja) * 2005-06-24 2007-01-11 Hitachi Ltd コンピュータ制御方法、コンピュータ、情報処理システム、及びプログラム
US8549513B2 (en) 2005-06-29 2013-10-01 Microsoft Corporation Model-based virtual system provisioning
US20070016393A1 (en) * 2005-06-29 2007-01-18 Microsoft Corporation Model-based propagation of attributes
JP4352028B2 (ja) * 2005-06-29 2009-10-28 富士通株式会社 運用ポリシー評価システムおよび運用ポリシー評価プログラム
US20070005320A1 (en) * 2005-06-29 2007-01-04 Microsoft Corporation Model-based configuration management
US20070011214A1 (en) * 2005-07-06 2007-01-11 Venkateswararao Jujjuri Oject level adaptive allocation technique
US7461274B2 (en) * 2005-08-23 2008-12-02 International Business Machines Corporation Method for maximizing server utilization in a resource constrained environment
ATE458220T1 (de) * 2005-09-12 2010-03-15 Siemens Ag Verfahren zur steuerung eines zugriffs auf ressourcen eines datenverarbeitungssystems und steuerungsprogramm
US7526409B2 (en) 2005-10-07 2009-04-28 Oracle International Corporation Automatic performance statistical comparison between two periods
US8196150B2 (en) 2005-10-07 2012-06-05 Oracle International Corporation Event locality using queue services
JP5077617B2 (ja) * 2005-10-27 2012-11-21 富士通株式会社 想定外需要検出システムおよび想定外需要検出プログラム
US7941309B2 (en) * 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
JP4129988B2 (ja) * 2005-11-10 2008-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーション リソースのプロビジョニング方法
US8355938B2 (en) 2006-01-05 2013-01-15 Wells Fargo Bank, N.A. Capacity management index system and method
US20070174460A1 (en) * 2006-01-26 2007-07-26 International Business Machines Corporation Method and system for on demand weighted proportional distribution of enterprise allocations
US7792944B2 (en) * 2006-03-31 2010-09-07 Amazon Technologies, Inc. Executing programs based on user-specified constraints
US7801128B2 (en) 2006-03-31 2010-09-21 Amazon Technologies, Inc. Managing communications between computing nodes
US8190682B2 (en) * 2006-03-31 2012-05-29 Amazon Technologies, Inc. Managing execution of programs by multiple computing systems
WO2007114643A1 (en) * 2006-04-06 2007-10-11 Samsung Electronics Co., Ltd Apparatus and method for managing resource in multiple screens environment
DE102006033863A1 (de) * 2006-07-21 2008-01-24 Siemens Ag Verschaltungsschnittstelle für flexibles Online/Offline-Deployment einer n-schichtigen Softwareapplikation
JP4751265B2 (ja) * 2006-08-01 2011-08-17 株式会社日立製作所 リソース管理システム及びその方法
US8116207B2 (en) * 2006-08-21 2012-02-14 Citrix Systems, Inc. Systems and methods for weighted monitoring of network services
US20080052397A1 (en) 2006-08-24 2008-02-28 Ramanathan Venkataraman Future locking of resources
US7761538B2 (en) * 2006-08-30 2010-07-20 Microsoft Corporation Dynamically configuring, allocating and deploying computing systems
US7660884B2 (en) * 2006-11-10 2010-02-09 International Business Machines Corporation Apparatus, system, and method for generating a resource utilization description for a parallel data processing system
US8909599B2 (en) 2006-11-16 2014-12-09 Oracle International Corporation Efficient migration of binary XML across databases
US9106606B1 (en) 2007-02-05 2015-08-11 F5 Networks, Inc. Method, intermediate device and computer program code for maintaining persistency
US9027025B2 (en) * 2007-04-17 2015-05-05 Oracle International Corporation Real-time database exception monitoring tool using instance eviction data
US20080288622A1 (en) * 2007-05-18 2008-11-20 Microsoft Corporation Managing Server Farms
US8239505B2 (en) * 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
CN101855858A (zh) * 2007-09-10 2010-10-06 韩国电子通信研究院 用于分配资源和接收数据的方法
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US8566439B2 (en) * 2007-10-01 2013-10-22 Ebay Inc Method and system for intelligent request refusal in response to a network deficiency detection
US20090125706A1 (en) * 2007-11-08 2009-05-14 Hoover Russell D Software Pipelining on a Network on Chip
US8281012B2 (en) * 2008-01-30 2012-10-02 International Business Machines Corporation Managing parallel data processing jobs in grid environments
US8539468B2 (en) * 2008-02-18 2013-09-17 International Business Machines Corporation System and methods for replacing software application classes using transparent object adapters
US8347307B2 (en) * 2008-03-12 2013-01-01 International Business Machines Corporation Method and system for cost avoidance in virtualized computing environments
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US8533293B1 (en) 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US8156243B2 (en) 2008-03-31 2012-04-10 Amazon Technologies, Inc. Request routing
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US7961610B1 (en) * 2008-04-03 2011-06-14 Clear Wireless Llc Method and system for overload control
US8332825B2 (en) * 2008-06-26 2012-12-11 Microsoft Corporation Dynamically monitoring application behavior
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US7925782B2 (en) 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components
US9912740B2 (en) 2008-06-30 2018-03-06 Amazon Technologies, Inc. Latency measurement in resource requests
US8433680B2 (en) * 2008-07-01 2013-04-30 Oracle International Corporation Capturing and restoring database session state
US8019873B2 (en) 2008-09-30 2011-09-13 Microsoft Corporation Mesh platform utility computing portal
US9875141B2 (en) * 2008-10-01 2018-01-23 Microsoft Technology Licensing, Llc Managing pools of dynamic resources
US7783752B2 (en) * 2008-10-15 2010-08-24 Microsoft Corporation Automated role based usage determination for software system
US9734466B2 (en) * 2008-11-11 2017-08-15 Sap Se Multi-tenancy engine
US8073940B1 (en) 2008-11-17 2011-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8065417B1 (en) 2008-11-17 2011-11-22 Amazon Technologies, Inc. Service provider registration by a content broker
US8060616B1 (en) 2008-11-17 2011-11-15 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
US8682842B2 (en) * 2008-12-09 2014-03-25 Yahoo! Inc. System and method for logging operations
US9128895B2 (en) * 2009-02-19 2015-09-08 Oracle International Corporation Intelligent flood control management
CN101820381B (zh) * 2009-02-27 2013-06-12 华为技术有限公司 一种业务路由的方法,系统和装置
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8521851B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. DNS query processing using resource identifiers specifying an application broker
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8261266B2 (en) * 2009-04-30 2012-09-04 Microsoft Corporation Deploying a virtual machine having a virtual hardware configuration matching an improved hardware profile with respect to execution of an application
US8762680B2 (en) 2009-05-19 2014-06-24 International Business Machines Corporation Scaling energy use in a virtualized environment
US8356193B2 (en) * 2009-05-19 2013-01-15 International Business Machines Corporation Scaling energy use in a virtualized environment
US8238538B2 (en) 2009-05-28 2012-08-07 Comcast Cable Communications, Llc Stateful home phone service
TW201112006A (en) * 2009-05-29 2011-04-01 Ibm Computer system, method and program product
US8549038B2 (en) 2009-06-15 2013-10-01 Oracle International Corporation Pluggable session context
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US20100318454A1 (en) * 2009-06-16 2010-12-16 Microsoft Corporation Function and Constraint Based Service Agreements
WO2010146761A1 (ja) * 2009-06-19 2010-12-23 日本電気株式会社 ネットワークサービス制御システム、ネットワークサービス制御方法および記憶媒体
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US8935702B2 (en) * 2009-09-04 2015-01-13 International Business Machines Corporation Resource optimization for parallel data integration
US8775125B1 (en) * 2009-09-10 2014-07-08 Jpmorgan Chase Bank, N.A. System and method for improved processing performance
WO2011032039A1 (en) * 2009-09-11 2011-03-17 O'brien John W System for dynamically allocating natural resources
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
US9122537B2 (en) * 2009-10-30 2015-09-01 Cisco Technology, Inc. Balancing server load according to availability of physical resources based on the detection of out-of-sequence packets
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US8700752B2 (en) * 2009-11-03 2014-04-15 International Business Machines Corporation Optimized efficient LPAR capacity consolidation
US9165086B2 (en) 2010-01-20 2015-10-20 Oracle International Corporation Hybrid binary XML storage model for efficient XML processing
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US8473959B2 (en) * 2010-02-22 2013-06-25 Virtustream, Inc. Methods and apparatus related to migration of customer resources to virtual resources within a data center environment
US9122538B2 (en) * 2010-02-22 2015-09-01 Virtustream, Inc. Methods and apparatus related to management of unit-based virtual resources within a data center environment
US9027017B2 (en) 2010-02-22 2015-05-05 Virtustream, Inc. Methods and apparatus for movement of virtual resources within a data center environment
US8671265B2 (en) * 2010-03-05 2014-03-11 Solidfire, Inc. Distributed data storage system providing de-duplication of data using block identifiers
US20110238857A1 (en) * 2010-03-29 2011-09-29 Amazon Technologies, Inc. Committed processing rates for shared resources
US9342801B2 (en) 2010-03-29 2016-05-17 Amazon Technologies, Inc. Managing committed processing rates for shared resources
WO2011123467A1 (en) 2010-03-29 2011-10-06 Amazon Technologies, Inc. Managing committed request rates for shared resources
US11348148B2 (en) * 2010-05-26 2022-05-31 Userzoom Technologies, Inc. Systems and methods for an intelligent sourcing engine for study participants
US8756272B1 (en) 2010-08-26 2014-06-17 Amazon Technologies, Inc. Processing encoded content
DE102010036292A1 (de) * 2010-08-27 2012-03-01 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum automatischen Bewerten einer Zulieferanlage
US8533103B1 (en) * 2010-09-14 2013-09-10 Amazon Technologies, Inc. Maintaining latency guarantees for shared resources
US8612330B1 (en) 2010-09-14 2013-12-17 Amazon Technologies, Inc. Managing bandwidth for shared resources
US8694400B1 (en) 2010-09-14 2014-04-08 Amazon Technologies, Inc. Managing operational throughput for shared resources
US8458530B2 (en) 2010-09-21 2013-06-04 Oracle International Corporation Continuous system health indicator for managing computer system alerts
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US8930513B1 (en) 2010-09-28 2015-01-06 Amazon Technologies, Inc. Latency measurement in resource requests
US8924528B1 (en) 2010-09-28 2014-12-30 Amazon Technologies, Inc. Latency measurement in resource requests
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US10097398B1 (en) 2010-09-28 2018-10-09 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
US8938526B1 (en) 2010-09-28 2015-01-20 Amazon Technologies, Inc. Request routing management based on network components
US8819283B2 (en) 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US8621477B2 (en) * 2010-10-29 2013-12-31 International Business Machines Corporation Real-time monitoring of job resource consumption and prediction of resource deficiency based on future availability
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US8626950B1 (en) 2010-12-03 2014-01-07 Amazon Technologies, Inc. Request routing processing
US9391949B1 (en) 2010-12-03 2016-07-12 Amazon Technologies, Inc. Request routing processing
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US8490092B2 (en) 2011-07-06 2013-07-16 Microsoft Corporation Combined live migration and storage migration using file shares and mirroring
WO2013029051A2 (en) 2011-08-25 2013-02-28 to fuVIRTUSTREAM, INC. Systems and methods of host-aware resource management involving cluster-based resource pools
US9619357B2 (en) * 2011-09-28 2017-04-11 International Business Machines Corporation Hybrid storage devices
US8644335B2 (en) * 2011-09-29 2014-02-04 Alcatel Lucent Access node for a communications network
US20130091065A1 (en) * 2011-10-10 2013-04-11 Sonicwall, Inc. Automatic spike licensing
US8880022B2 (en) * 2011-11-10 2014-11-04 Microsoft Corporation Providing per-application resource usage information
US9367354B1 (en) 2011-12-05 2016-06-14 Amazon Technologies, Inc. Queued workload service in a multi tenant environment
US9003021B2 (en) 2011-12-27 2015-04-07 Solidfire, Inc. Management of storage system access based on client performance and cluser health
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9223607B2 (en) * 2012-01-17 2015-12-29 Microsoft Technology Licensing, Llc System for replicating or migrating virtual machine operations log by throttling guest write iOS based on destination throughput
US8904009B1 (en) 2012-02-10 2014-12-02 Amazon Technologies, Inc. Dynamic content delivery
US10021179B1 (en) 2012-02-21 2018-07-10 Amazon Technologies, Inc. Local resource delivery network
US9083743B1 (en) 2012-03-21 2015-07-14 Amazon Technologies, Inc. Managing request routing information utilizing performance information
US11206579B1 (en) 2012-03-26 2021-12-21 Amazon Technologies, Inc. Dynamic scheduling for network data transfers
US9055067B1 (en) 2012-03-26 2015-06-09 Amazon Technologies, Inc. Flexible-location reservations and pricing for network-accessible resource capacity
US9760928B1 (en) 2012-03-26 2017-09-12 Amazon Technologies, Inc. Cloud resource marketplace for third-party capacity
US9985848B1 (en) 2012-03-27 2018-05-29 Amazon Technologies, Inc. Notification based pricing of excess cloud capacity
US9479382B1 (en) 2012-03-27 2016-10-25 Amazon Technologies, Inc. Execution plan generation and scheduling for network-accessible resources
US10223647B1 (en) 2012-03-27 2019-03-05 Amazon Technologies, Inc. Dynamic modification of interruptibility settings for network-accessible resources
US9240025B1 (en) 2012-03-27 2016-01-19 Amazon Technologies, Inc. Dynamic pricing of network-accessible resources for stateful applications
US9294236B1 (en) 2012-03-27 2016-03-22 Amazon Technologies, Inc. Automated cloud resource trading system
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US9118520B1 (en) * 2012-04-20 2015-08-25 Symantec Corporation Systems and methods for monitoring application resource usage on mobile computing systems
US8676622B1 (en) * 2012-05-01 2014-03-18 Amazon Technologies, Inc. Job resource planner for cloud computing environments
US10152449B1 (en) 2012-05-18 2018-12-11 Amazon Technologies, Inc. User-defined capacity reservation pools for network-accessible resources
US10686677B1 (en) 2012-05-18 2020-06-16 Amazon Technologies, Inc. Flexible capacity reservations for network-accessible resources
US9246986B1 (en) 2012-05-21 2016-01-26 Amazon Technologies, Inc. Instance selection ordering policies for network-accessible resources
US10555145B1 (en) * 2012-06-05 2020-02-04 Amazon Technologies, Inc. Learned configuration of modification policies for program execution capacity
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9306870B1 (en) 2012-06-28 2016-04-05 Amazon Technologies, Inc. Emulating circuit switching in cloud networking environments
US10846788B1 (en) 2012-06-28 2020-11-24 Amazon Technologies, Inc. Resource group traffic rate service
US9154589B1 (en) 2012-06-28 2015-10-06 Amazon Technologies, Inc. Bandwidth-optimized cloud resource placement service
US9600206B2 (en) 2012-08-01 2017-03-21 Microsoft Technology Licensing, Llc Request ordering support when switching virtual disk replication logs
US10754699B2 (en) * 2012-08-05 2020-08-25 International Business Machines Corporation Remote provisioning of virtual appliances for access to virtualized storage
US9525659B1 (en) 2012-09-04 2016-12-20 Amazon Technologies, Inc. Request routing utilizing point of presence load information
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US9135048B2 (en) 2012-09-20 2015-09-15 Amazon Technologies, Inc. Automated profiling of resource usage
JP6072072B2 (ja) * 2012-12-12 2017-02-01 株式会社東芝 クラウドシステム管理装置、クラウドシステム、再配置方法、及びプログラム
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US8984243B1 (en) 2013-02-22 2015-03-17 Amazon Technologies, Inc. Managing operational parameters for electronic resources
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
EP2816775B1 (en) * 2013-06-21 2018-03-28 Alcatel Lucent Scalable elastic cloud-based ims system and method
US9372757B2 (en) 2013-10-18 2016-06-21 Netapp, Inc. Incremental block level backup
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9377953B2 (en) 2014-04-23 2016-06-28 Netapp, Inc. Efficiency sets in a distributed system
US9372789B2 (en) 2014-05-30 2016-06-21 Netapp, Inc. Log-structured filed system with file branching
US10241886B2 (en) * 2014-06-04 2019-03-26 Sugarcrm Inc. Application performance perception meter
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US10896432B1 (en) * 2014-09-22 2021-01-19 Amazon Technologies, Inc. Bandwidth cost assignment for multi-tenant networks
US10530880B2 (en) 2014-10-31 2020-01-07 Netapp, Inc. Scalable multiple VLAN multi-tenant networking
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US10091096B1 (en) 2014-12-18 2018-10-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10033627B1 (en) 2014-12-18 2018-07-24 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
CN105791073B (zh) * 2014-12-23 2019-07-19 华为技术有限公司 一种虚拟化网络中业务部署的方法和装置
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US9887932B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9887931B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US10616179B1 (en) 2015-06-25 2020-04-07 Amazon Technologies, Inc. Selective routing of domain name system (DNS) requests
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US20170032300A1 (en) * 2015-07-31 2017-02-02 International Business Machines Corporation Dynamic selection of resources on which an action is performed
CN106452818B (zh) * 2015-08-13 2020-01-21 阿里巴巴集团控股有限公司 一种资源调度的方法和系统
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US9742795B1 (en) 2015-09-24 2017-08-22 Amazon Technologies, Inc. Mitigating network attacks
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
US9400609B1 (en) 2015-11-04 2016-07-26 Netapp, Inc. Data transformation during recycling
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10158726B2 (en) 2015-12-02 2018-12-18 International Business Machines Corporation Supporting high availability for orchestrated services
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US9613046B1 (en) 2015-12-14 2017-04-04 Netapp, Inc. Parallel optimized remote synchronization of active block storage
US10387387B2 (en) 2015-12-17 2019-08-20 Oracle International Corporation Enabling multi-tenant access to respective isolated data sets organized using different application schemas
US10289617B2 (en) 2015-12-17 2019-05-14 Oracle International Corporation Accessing on-premise and off-premise datastores that are organized using different application schemas
US10339198B2 (en) * 2015-12-18 2019-07-02 Bitly, Inc. Systems and methods for benchmarking online activity via encoded links
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US9537827B1 (en) 2015-12-21 2017-01-03 Netapp, Inc. Secure mode VLANs systems and methods
US10432491B2 (en) * 2016-03-22 2019-10-01 Intel Corporation Control device for estimation of power consumption and energy efficiency of application containers
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10460124B2 (en) * 2016-06-20 2019-10-29 Netapp, Inc. Per-volume tenant encryption and external key manager
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US10334026B2 (en) * 2016-08-08 2019-06-25 Bank Of America Corporation Resource assignment system
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10303894B2 (en) 2016-08-31 2019-05-28 Oracle International Corporation Fine-grained access control for data manipulation language (DML) operations on relational data
US10540217B2 (en) 2016-09-16 2020-01-21 Oracle International Corporation Message cache sizing
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10474653B2 (en) 2016-09-30 2019-11-12 Oracle International Corporation Flexible in-memory column store placement
US10469513B2 (en) 2016-10-05 2019-11-05 Amazon Technologies, Inc. Encrypted network addresses
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US10269456B2 (en) 2017-05-05 2019-04-23 Bank Of America Corporation System for identification of treatment and resource deployment based on treatment interaction
US10872321B2 (en) 2017-05-05 2020-12-22 Bank Of America Corporation Machine initiated user status update system
US10454941B2 (en) 2017-05-05 2019-10-22 Bank Of America Corporation Person-to-person network architecture for secure authorization and approval
US10437899B2 (en) 2017-05-05 2019-10-08 Bank Of America Corporation System for distributed server data management with multi-user access
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
US10034608B1 (en) 2017-08-14 2018-07-31 Bank Of America Corporation System for receiving transmissions from disparate node and triggering automatic portal action
US10541939B2 (en) * 2017-08-15 2020-01-21 Google Llc Systems and methods for provision of a guaranteed batch
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US10437647B2 (en) * 2017-09-26 2019-10-08 Verizon Patent And Licensing Inc. Cluster configuration with zero touch provisioning
US11556500B2 (en) 2017-09-29 2023-01-17 Oracle International Corporation Session templates
US10477544B2 (en) * 2017-12-19 2019-11-12 Raytheon Company System and method for sharing RF signal processing
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US11106551B1 (en) * 2018-04-30 2021-08-31 Amazon Technologies, Inc. Compute capacity reservations for disaster recovery scenarios
US10929190B2 (en) * 2018-08-01 2021-02-23 International Business Machines Corporation Heterogeneous resource reservation
US10579432B1 (en) * 2018-08-13 2020-03-03 Twitter, Inc. Load balancing deterministically-subsetted processing resources using fractional loads
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
CN110502338B (zh) * 2019-07-16 2023-04-11 蚂蚁金服(杭州)网络技术有限公司 一种性能扩容预测方法、装置、计算设备及存储介质
US11936739B2 (en) 2019-09-12 2024-03-19 Oracle International Corporation Automated reset of session state
JP2021197039A (ja) * 2020-06-17 2021-12-27 株式会社日立製作所 バースト可能インスタンス推奨装置、方法、及びプログラム。
US20220171667A1 (en) * 2020-11-30 2022-06-02 Amazon Technologies, Inc. Application reliability service
US11853782B2 (en) 2020-12-09 2023-12-26 Dell Products L.P. Method and system for composing systems using resource sets
US11698821B2 (en) 2020-12-09 2023-07-11 Dell Products L.P. Composable information handling systems in an open network using access control managers
US11928515B2 (en) 2020-12-09 2024-03-12 Dell Products L.P. System and method for managing resource allocations in composed systems
US11809911B2 (en) 2020-12-09 2023-11-07 Dell Products L.P. Resuming workload execution in composed information handling system
US11693703B2 (en) 2020-12-09 2023-07-04 Dell Products L.P. Monitoring resource utilization via intercepting bare metal communications between resources
US11704159B2 (en) 2020-12-09 2023-07-18 Dell Products L.P. System and method for unified infrastructure architecture
US11934875B2 (en) 2020-12-09 2024-03-19 Dell Products L.P. Method and system for maintaining composed systems
US11604595B2 (en) 2020-12-09 2023-03-14 Dell Products L.P. Data mirroring and data migration between storage volumes using system control processors
US11809912B2 (en) 2020-12-09 2023-11-07 Dell Products L.P. System and method for allocating resources to perform workloads
US11675625B2 (en) * 2020-12-09 2023-06-13 Dell Products L.P. Thin provisioning of resources using SCPS and a bidding system
US11675665B2 (en) 2020-12-09 2023-06-13 Dell Products L.P. System and method for backup generation using composed systems
US11687280B2 (en) 2021-01-28 2023-06-27 Dell Products L.P. Method and system for efficient servicing of storage access requests
US11675916B2 (en) 2021-01-28 2023-06-13 Dell Products L.P. Method and system for limiting data accessibility in composed systems
US11768612B2 (en) 2021-01-28 2023-09-26 Dell Products L.P. System and method for distributed deduplication in a composed system
US11797341B2 (en) 2021-01-28 2023-10-24 Dell Products L.P. System and method for performing remediation action during operation analysis
US11947697B2 (en) 2021-07-22 2024-04-02 Dell Products L.P. Method and system to place resources in a known state to be used in a composed information handling system
US11928506B2 (en) 2021-07-28 2024-03-12 Dell Products L.P. Managing composition service entities with complex networks
US11973824B2 (en) * 2021-09-23 2024-04-30 Shanghai Anviz Technology Co., Ltd. Method for data transmission of audio and video in end-to-end system
US11509598B1 (en) * 2021-11-19 2022-11-22 Microsoft Technology Licensing, Llc Dynamically re-allocating computing resources while maintaining network connection(s)
JP7418685B1 (ja) 2023-06-02 2024-01-22 株式会社ユーズウェア 飼料配合設計システム、飼料配合設計プログラム及び、飼料配合設計方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574914A (en) 1993-01-04 1996-11-12 Unisys Corporation Method and apparatus for performing system resource partitioning
JP3522820B2 (ja) * 1994-03-15 2004-04-26 株式会社東芝 分散処理システム
EP0694837A1 (en) 1994-07-25 1996-01-31 International Business Machines Corporation Dynamic workload balancing
US5790868A (en) * 1995-06-07 1998-08-04 Tandem Computers, Inc. Customer information control system and method with transaction serialization control functions in a loosely coupled parallel processing environment
JP3083476B2 (ja) * 1996-03-06 2000-09-04 松下電器産業株式会社 アプリケーションサーバシステム
US6182109B1 (en) * 1996-03-08 2001-01-30 International Business Machines Corporation Dynamic execution unit management for high performance user level network server system
US6240454B1 (en) 1996-09-09 2001-05-29 Avaya Technology Corp. Dynamic reconfiguration of network servers
US5949977A (en) 1996-10-08 1999-09-07 Aubeta Technology, Llc Method and apparatus for requesting and processing services from a plurality of nodes connected via common communication links
GB9705371D0 (en) * 1997-03-14 1997-04-30 British Telecomm Control of data transfer and distributed data processing
CA2246867A1 (en) * 1997-09-26 1999-03-26 Robert Joseph Thornberry Jr. Internet performance network
US6631425B1 (en) * 1997-10-28 2003-10-07 Microsoft Corporation Just-in-time activation and as-soon-as-possible deactivation or server application components
US6086618A (en) * 1998-01-26 2000-07-11 Microsoft Corporation Method and computer program product for estimating total resource usage requirements of a server application in a hypothetical user configuration
US6327622B1 (en) * 1998-09-03 2001-12-04 Sun Microsystems, Inc. Load balancing in a network environment
US6763519B1 (en) * 1999-05-05 2004-07-13 Sychron Inc. Multiprogrammed multiprocessor system with lobally controlled communication and signature controlled scheduling
US6665701B1 (en) * 1999-08-03 2003-12-16 Worldcom, Inc. Method and system for contention controlled data exchange in a distributed network-based resource allocation
US6779016B1 (en) 1999-08-23 2004-08-17 Terraspring, Inc. Extensible computing system
US6578068B1 (en) * 1999-08-31 2003-06-10 Accenture Llp Load balancer in environment services patterns
JP2001117887A (ja) 1999-10-14 2001-04-27 Nec Corp 分散型アプリケーションサーバシステム,サービス方法および記録媒体
US6976258B1 (en) 1999-11-30 2005-12-13 Ensim Corporation Providing quality of service guarantees to virtual hosts
DE60002656D1 (de) 2000-01-12 2003-06-18 Fileants Ag Verfahren und System zum Aufbauen einer online Dienstleistungs-Plattform und Rechnerprogrammprodukt
US6711607B1 (en) * 2000-02-04 2004-03-23 Ensim Corporation Dynamic scheduling of task streams in a multiple-resource system to ensure task stream quality of service
JP2001319153A (ja) 2000-05-02 2001-11-16 Fujitsu Ltd 操作単位課金システム
JP3666365B2 (ja) 2000-06-15 2005-06-29 日本電気株式会社 オンライン時間帯予約システムおよびオンライン時間帯予約方法
US6868539B1 (en) * 2000-06-28 2005-03-15 Microsoft Corp. System and method providing single application image
NL1015579C1 (nl) 2000-06-30 2002-01-02 Thales Nederland Bv Werkwijze voor het automatisch verdelen van programmataken over een verzameling processors.
JP4292693B2 (ja) 2000-07-07 2009-07-08 株式会社日立製作所 計算機資源分割装置および資源分割方法
US7596784B2 (en) * 2000-09-12 2009-09-29 Symantec Operating Corporation Method system and apparatus for providing pay-per-use distributed computing resources
US20020194324A1 (en) * 2001-04-26 2002-12-19 Aloke Guha System for global and local data resource management for service guarantees

Also Published As

Publication number Publication date
EP1412857B1 (en) 2007-07-04
US20030028642A1 (en) 2003-02-06
DE60221019D1 (de) 2007-08-16
ATE366439T1 (de) 2007-07-15
DE60221019T2 (de) 2008-03-06
KR20040019033A (ko) 2004-03-04
WO2003014928A3 (en) 2003-11-27
EP1412857A2 (en) 2004-04-28
US7174379B2 (en) 2007-02-06
WO2003014928A2 (en) 2003-02-20
JP2004538573A (ja) 2004-12-24
KR100570141B1 (ko) 2006-04-12

Similar Documents

Publication Publication Date Title
JP4527976B2 (ja) ホストされるアプリケーションのためのサーバ・リソース管理
Huedo et al. A framework for adaptive execution in grids
US7584281B2 (en) Method for allocating shared computing infrastructure for application server-based deployments
Garg et al. Adaptive workflow scheduling in grid computing based on dynamic resource availability
US7870568B2 (en) Adaptive shared computing infrastructure for application server-based deployments
Bi et al. Dynamic provisioning modeling for virtualized multi-tier applications in cloud data center
Appleby et al. Oceano-SLA based management of a computing utility
US9128775B2 (en) Optimized job scheduling and execution in a distributed computing grid
US7533170B2 (en) Coordinating the monitoring, management, and prediction of unintended changes within a grid environment
Almeida et al. Resource management in the autonomic service-oriented architecture
Chard et al. Cost-aware cloud provisioning
US20070204266A1 (en) Systems and methods for dynamically managing virtual machines
JP2008527514A (ja) グリッド・アクティビティのモニタリングおよび振り分けによる総合的グリッド環境管理を促進する方法、システム、およびコンピュータ・プログラム
Limam et al. Data replication strategy with satisfaction of availability, performance and tenant budget requirements
Marathe et al. Exploiting redundancy and application scalability for cost-effective, time-constrained execution of hpc applications on amazon ec2
Shi et al. QoS-awareness of microservices with excessive loads via inter-datacenter scheduling
Goiri et al. Introducing virtual execution environments for application lifecycle management and SLA-driven resource distribution within service providers
Pazel et al. Neptune: A dynamic resource allocation and planning system for a cluster computing utility
Bi et al. Dynamic fine-grained resource provisioning for heterogeneous applications in virtualized cloud data center
Melliar-Smith et al. Realize: Resource management for soft real-time distributed systems
Zedan et al. Load balancing based active monitoring load balancer in cloud computing
Abdullah et al. Cadram-cooperative agents dynamic resource allocation and monitoring in cloud computing
Peer Mohamed et al. An efficient framework to handle integrated VM workloads in heterogeneous cloud infrastructure
Kaushik Efficient resource management techniques in cloud computing environment
HoseinyFarahabady et al. Dynamic control of CPU cap allocations in stream processing and data-flow platforms

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060329

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060411

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060707

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061010

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20061010

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20061010

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20061010

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070323

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070619

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070619

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070725

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20071130

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20081219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100430

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20100602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100604

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees