JP2015503158A - データ・センターにおけるロール・インスタンス到達可能性 - Google Patents

データ・センターにおけるロール・インスタンス到達可能性 Download PDF

Info

Publication number
JP2015503158A
JP2015503158A JP2014544767A JP2014544767A JP2015503158A JP 2015503158 A JP2015503158 A JP 2015503158A JP 2014544767 A JP2014544767 A JP 2014544767A JP 2014544767 A JP2014544767 A JP 2014544767A JP 2015503158 A JP2015503158 A JP 2015503158A
Authority
JP
Japan
Prior art keywords
instance
endpoint
role
load balancing
application
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.)
Pending
Application number
JP2014544767A
Other languages
English (en)
Inventor
パテール,パルヴィーン・クマール
バンサル,ディーパク
サングバトラ,ムラリ・クリシュナ
ジャオ,ウエイ
ザン,シンヤン
スリヴァスタヴァ,ニシート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2015503158A publication Critical patent/JP2015503158A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

ホストする環境において実行されるアプリケーションのロール・インスタンスに対して、個々のロール・インスタンスの到達可能性と、負荷分散化とを同時に提供する。インスタンス・エンドポイントを、各ロール・インスタンスへ割り当てることができる。各インスタンス・エンドポイントは、IPアドレスとトランスポート・プロトコルと一意のポート番号との組み合わせを含み得る。更に、負荷分散化エンドポイントを、ロール・インスタンスのグループへ割り当てることができる。負荷分散化エンドポイントは、IPアドレスとトランスポート・プロトコルと前記一意のポート番号とは別の一意のポート番号との組み合わせを含み得る。アプリケーション・メッセージがデータ・センターへ発行されるとき、メッセージは、メッセージにより用いられるエンドポイントに従って送られる。インスタンス・エンドポイントに関して、メッセージは、負荷分散化無しで、インスタンス・エンドポイントに対応するロール・インスタンスへ送られる。負荷分散化エンドポイントに関して、メッセージは、負荷分散化を用いてロール・インスタンスのうちの何れかのものへ送られる。

Description

[0001] 大規模なネットワーク化されたシステムは、ビジネスおよび演算の機能のためにアプリケーションを実行するためやデータを維持するための様々な設定で用いられる一般的なプラットフォームである。例えば、データ・センター(例えば、物理的クラウド計算インフラストラクチャー)などのようなホストを行う環境は、同時に複数の顧客に対して様々なサービス(例えば、ウェブ・アプリケーション、Eメール・サービス、サーチ・エンジン・サービスなど)を提供することができる。それらの大規模なネットワーク化されたシステムは、典型的に、データ・センターの全体にわたって分散された多数のリソースを含み、各リソースは、物理マシン、または物理ホストで実行される仮想マシンのように見える。データ・センターが複数のテナント(例えば、顧客アプリケーション)をホストするとき、それらのリソースは、同じデータ・センターから様々なテナントへ最適に割り当てられる。
[0002] 顧客のアプリケーションがデータ・センターにおいてインプリメントされるとき、そのアプリケーションは、そのアプリケーションのコードの複数の部分を含む1以上のロール(role)により提供され得る。各ロールは、典型的には、複数のロール・インスタンスを有することができ、メッセージをアプリケーション(例えば、外部アプリケーション)から様々なインスタンスへ配布するために、負荷分散化(load-balancing)が用いられる。そのようなインフラストラクチャー内では、顧客が、顧客のサービスへ割り当てられる物理マシン、仮想マシン、および/またはロール・インスタンスを増加または減少させることにより、顧客のサービスを透明にスケール・アウトすることを可能にすることが、望ましい。更に、顧客がインターネットなどのようなネットワークを介して特定のロール・インスタンスをアドレスすることを望み得る、という多くのシナリオがある。例は、リモート・デスクトップのデバッグ、インスタンス監視、タスク管理(例えば、特定のアプリケーションに対してのスティッキー・セッション(sticky session)の提供)、および異なるアプリケーション間でのテナント間通信を含む。
[0003] 負荷分散化(load-balanced)設定において共有アドレスを介してインスタンス到達可能性(instance reachability)を提供するための1つのアプローチは、負荷分散化アドレスを介してアプリケーション・メッセージを送り、次に、アプリケーション固有接続フォワーダー(application-specific connection forwarder)を書いてそのメッセージを適切なインスタンスへ送ることであろう。しかし、このアプローチは、非効率的であり、各アプリケーションのプロトコルに対して、カスタムのプロトコルのフォワーダーを書く必要がある。インスタンス到達可能性を提供するための別のアプローチは、各ロール・インスタンスに対して排他的IPアドレスを割り当てることであろう。しかし、その解決法は、大きいブロックのIPアドレスを必要とするので、良好なスケールを行えないであろう。更には、インスタンスの数が増加または減少するとアドレスが動的に変化するので、ファイアーウォールなどのようなインフラストラクチャーの設定を困難にする。
[0004] この概要は、以下の詳細な説明で更に説明する概念のうちの選択したものを、簡素化した形で紹介するために提供される。この概要は、特許請求の範囲に記載の主題事項の鍵となる特徴や本質的な特徴を特定することを意図しておらず、また、特許請求の範囲に記載の主題事項の範囲を決定する際の支援として用いることを意図していない。
[0005] 本発明の実施形態は、データ・センターにおけるロール・インスタンス到達可能性を、ロール・インスタンスへ一意のポート番号を割り当てることにより提供することに関連する。実施例に従うと、インスタンス・エンドポイントを、データ・センターにおいて実行されるアプリケーション内のロールに対するロール・インスタンスへ割り当てることができる。各インスタンス・エンドポイントは、IPアドレスと、トランスポート・プロトコルと、一意のポート番号との組み合わせを含むことができる。更に、同じ共有アドレス上の負荷分散化エンドポイントは、ロール・インスタンスのグループへ割り当てることができる。負荷分散化エンドポイントは、IPアドレスと、トランスポート・プロトコルと、前記一意のポート番号とは別の一意のポート番号との組み合わせを含む。負荷バランサーは、インスタンス・エンドポイントおよび負荷分散化エンドポイントを用いてプログラムすることができる。更に、インスタンス・エンドポイントおよび負荷分散化エンドポイントは、データ・センターにおいて実行されるサービス・アプリケーションへアクセスするアプリケーションに対して、公開することができる。従って、外部アプリケーションが、インスタンス・エンドポイントおよび負荷分散化エンドポイントを用いてデータ・センターに対するメッセージを発行するとき、負荷バランサーは、そのメッセージをロール・インスタンスへ適切に送ることができる。特に、メッセージがインスタンス・エンドポイントを含む場合、負荷分散化が行われずに、メッセージは、そのインスタンス・エンドポイントに対応するロール・インスタンスへ直接に送られ得る。メッセージが負荷分散化エンドポイントを含む場合、メッセージは、負荷分散化アルゴリズムに従って、ロール・インスタンスのうちの何れかのものへ送られ得る。
[0006] 本発明は、以下で添付の図面を参照して詳細に説明される。
図1は、本発明の実施形態を実装する際の使用に適した例示の計算環境のブロック図である。 図2は、本発明の実施形態を実装する際の使用に適した例示のクラウド計算プラットフォームを示すブロック図である。 図3は、本発明の実施形態に従った分散型計算環境を示すブロック図であり、この分散型計算環境において、アプリケーションは、負荷分散化又はまたは直接の何れかでデータ・センターにおけるロール・インスタンスへアクセスできる。 図4は、本発明の実施形態に従った、負荷分散化エンドポイントおよびインスタンス・エンドポイントを割り当て、メッセージをロール・インスタンスへ送るデータ・センターを示すブロック図である。 図5は、本発明の実施形態に従った、ロール・インスタンスへの直接的トラフィックおよび負荷分散化トラフィックを容易にするために、インスタンス・エンドポイントおよび負荷分散化エンドポイントが割り当てられたロール・インスタンスを用いるデータ・センターを構成する方法を示すフロー図である。 図6は、本発明の実施形態に従った、インスタンス・エンドポイントおよび負荷分散化エンドポイントを用いて負荷バランサーをブログラミングし、メッセージをロール・インスタンスへ送る方法を示すフロー図である。
[0013] ここで、本発明の主題事項は、法定的な要求に適合するように特定的に説明される。しかし、説明自体は、本特許の範囲を限定することを意図していない。むしろ、発明者は、別の現存する技術や将来の技術と関連して、この書類に記載のステップと似た別のステップやステップの組み合わせを含むように、特許請求の範囲に記載の主題事項が別の方法で実施でき得ることを企図している。
更に、ここでは「ステップ」や「ブロック」という用語を用いて、方法で用いられる様々なエレメントを暗示し得るが、これらの用語は、個々のステップの順序が明確に説明されていない限り、即ち、明確に説明されている場合を除いて、ここで開示される様々なステップ中やステップ間での何れかの特定の順序を意味するものと、解釈すべきではない。
[0014] 本発明の実施形態は、1つのIPアドレスを複数のエンドポイントに分けることにより、直接ロール・インスタンス到達可能性を提供することに関する。一般に、実施形態は、一意のポート番号をロール・インスタンスへ割り当てること、および各ロール・インスタンスを、特定のトランスポート・プロトコル(例えば、TCPやUDP)に対してのIPアドレスと一意のポート番号との組み合わせとしての一意のパブリック・エンドポイント(即ち、インスタンス・エンドポイント)として公開することに、関する。それらのインスタンス・エンドポイントは、同じセットのロール・インスタンスに対して、負荷分散化エンドポイントと同時に存在することができる。従って、実施形態は、一般的であり且つアプリケーション・プロトコル不明の様式で、ロール・インスタンス到達可能性シナリオを扱うことができる。このアプローチは、共有アドレスを介して、負荷分散化とインスタンスの到達可能性の相互の共存を可能にする。従って、実施形態は、データ・センターにおけるビジネスおよびエンジニアリングのスケーラビリティを維持する。
[0015] 本発明の実施形態に従うと、顧客は、サービス・モデルにおいてデータ・センターにより提供されるサービスのアスペクトを指定することができ、これは、公開され個々に到達可能なロール・インスタンスを含む。サービス・モデルにおいて顧客の仕様に基づいて、データ・センターは、顧客のビジネス・アプリケーションを実行するためにリソース(例えば、物理マシンや仮想マシン)を割り当て、また、ビジネス・アプリケーションの特定のロールに対してのロール・インスタンスのグループをリソースへ割り当てる。幾つかの実施形態では、データ・センターは、負荷分散化エンドポイントをロール・インスタンスのグループへ割り当てることができ、ロール・インスタンスにわたってのアプリケーション・メッセージの負荷分散化を可能にする。負荷分散化エンドポイントは、公開エンドポイントとすることができ、公開IPアドレスと、トランスポート・プロトコルと、ポート番号との組み合わせを含む。負荷分散化エンドポイントをロール・インスタンスのグループへ割り当てることに加えて、データ・センターはまた、インスタンス・エンドポイントを各ロール・インスタンスへ割り当てる。特に、データ・センターは、一意のポート番号を各ロール・インスタンスへ割り当てることができ、各ロール・インスタンスに対するインスタンス・エンドポイントが、公開IPアドレスと、トランスポート・プロトコルと、一意のポート番号との組み合わせを含むことができるようにする。負荷分散化エンドポイントとロール・インスタンスとが同じ公開IPアドレスを共有する場合、ロール・インスタンスに対する各ポート番号は、他のロール・インスタンスへ割り当てられた他のポート番号に対して独特であり、また、負荷分散化エンドポイントに対して割り当てられたポート番号に対して独特である。
[0016] データ・センターの負荷バランサーは、ロール・インスタンスのグループに対してのインスタンス・エンドポイントおよび負荷分散化エンドポイントを用いてプログラムされる。更に、負荷分散化エンドポイントおよびインスタンス・エンドポイントは、アプリケーション(例えば、外部アプリケーション、ホストされているアプリケーション、および/または他のアプリケーション)に対して公開される。従って、アプリケーションは、負荷分散化エンドポイントまたはインスタンス・エンドポイントを用いてデータ・センターへの接続を開始することができる。負荷バランサーが負荷分散化エンドポイントを介してメッセージを受け取ると、負荷バランサーは、負荷分散化アルゴリズムに従って、そのメッセージをロール・インスタンスの何れかのものへ送る。負荷バランサーがインスタンス・エンドポイントのうちの1つのものを介してメッセージを受け取ると、負荷バランサーは、そのメッセージを、そのインスタンス・エンドポイントに対応する特定のロール・インスタンスへ送る。
[0017] 従って、1つの構成では、本発明の実施形態は、コンピューター使用可能命令を格納する1以上のストレージ媒体に関し、コンピューター使用可能命令は、1以上の計算デバイスにより使用されたときに、1以上の計算デバイスに方法を行わせる。方法は、ホストする環境において複数のロール・インスタンスを提供することを含む。各ロール・インスタンスは、ホストする環境において実行される顧客アプリケーションに対してのコードを含む。方法は、複数のロール・インスタンスに対して複数のインスタンス・エンドポイントを割り当てることを含む。各インスタンス・エンドポイントは、第1IPアドレスと、第1トランスポート・プロトコルと、一意のポート番号との組み合わせを含み、ロール・インスタンスのうちの1つのものへマップする。方法は、アプリケーションに対してインスタンス・エンドポイントを公開することを更に含み、そのアプリケーションが、特定のロール・インスタンスへマップするインスタンス・エンドポイントを用いて、その特定のロール・インスタンスへアクセスすることを、可能にする。
[0018] 別の実施形態では、本発明の構成は、ホストする環境において、負荷バランサーが負荷分散化メッセージおよびインスタンス・メッセージをロール・インスタンスへ送る方法に関する。方法は、ホストする環境において実行されるサービス・アプリケーションのロールに対する複数のロール・インスタンスに対してのエンドポイント情報を受け取ることを含む。エンドポイント情報は、複数のロール・インスタンスに対しての複数のインスタンス・エンドポイントを識別する。各インスタンス・エンドポイントは、第1IPアドレスと、第1トランスポート・プロトコルと、一意のポート番号との組み合わせを含み、ロール・インスタンスのうちの1つのものへマップする。エンドポイント情報はまた、複数のロール・インスタンスに対しての負荷分散化エンドポイントを識別する。負荷分散化エンドポイントは、第2IPアドレスと、第2トランスポート・プロトコルと、前記一意のポート番号とは別の一意のポート番号との組み合わせを含む。方法はまた、アプリケーションから、複数のインスタンス・エンドポイントからの第1インスタンス・エンドポイントを含む第1メッセージを受け取ったときに、第1メッセージを、第1インスタンス・エンドポイントに対応する第1ロール・インスタンスへ送ることを含む。方法は更に、アプリケーションから、負荷分散化エンドポイントを含む第2リクエストを受け取ったときに、第2リクエストを、負荷分散化アルゴリズムに基づいて、ロール・インスタンスのうちの1つのものへ送ることを含む。
[0019] 本発明の更なる実施形態は、クラウド計算プラットフォームのためのシステムに関する。システムは、顧客アプリケーションのためのコードを提供する複数のロール・インスタンスを実行する複数の仮想マシンをホストする1以上の物理マシンを含む。システムはまた、テナント・マネージャーを含み、テナント・マネージャーは、一意のポート番号を各ロール・インスタンスへ割り当て、各ロール・インスタンスに対するインスタンス・エンドポイントを生成する。各インスタンス・エンドポイントは、IPアドレスと、トランスポート・プロトコルと、一意のポート番号のうちの1つのものとの組み合わせを含む。システムは更に、負荷分散化エンドポイントおよびインスタンス・エンドポイントを用いてプログラムされる負荷バランサーを含む。負荷バランサーは、アプリケーション・メッセージを、インスタンス・エンドポイントを用いて直接に対応するロール・インスタンスへ送るように、および負荷分散化アルゴリズムに基づいて、アプリケーション・メッセージを、負荷分散化エンドポイントを用いてロール・インスタンスへ送るように、構成される。
[0020] 本発明の実施形態の概観を説明したが、本発明の実施形態をインプリメントできる例示の動作環境は、下記で、本発明の様々な構成に対する一般的コンテキストを提供するために説明される。特に、最初に図1を参照すると、本発明の実施形態をインプリメントするための例示の動作環境が示されており、これは全体として計算デバイス100として示されている。計算デバイス100は、適切な計算環境の単なる一例であり、本発明の使用や機能の範囲に関しての限定を提案することを意図していない。計算デバイス100は、示したコンポーネントのうちの何れかやコンポーネントの組み合わせと関連する依存性や要求を有するものと、解釈すべきではない。
[0021] 本発明は、コンピューター・コードや機械使用可能命令の一般的なコンテキストで説明することができ、それらのコンピューター・コードや機械使用可能命令は、プログラム・モジュールなどのようなコンピューター実行可能命令を含み、それらはパーソナル・データ・アシスタントや他の手持ち型デバイスなどのようなコンピューターや他のデバイスで実行される。一般に、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含むプログラム・モジュールは、特定のタスクを行ったり特定の抽象データ型をインプリメントするコードを指す。本発明は、手持ち型デバイス、家電製品、汎用コンピューター、より専門的な計算デバイスなどを含む様々なシステム構成へ適用することができる。本発明はまた、分散型計算環境において実施することができ、分散型計算環境では、タスクは、通信ネットワークを通じてリンクされるリモート処理デバイスにより行われる。
[0022] 図1を参照すると、計算デバイス100はバス110を含み、バス110は、メモリ112、1以上のプロセッサー114、1以上のプレゼンテーション・コンポーネント116、入力/出力(I/O)ポート118、入力/出力コンポーネント120、および例示の電源122といったデバイスを直接的または間接的に結合する。バス110は、1以上のバス(アドレス・バス、データ・バス、またはそれらの組み合わせなど)を表し得る。図1の様々なブロックは、明瞭化を目的として線で示されているが、実際には、様々なコンポーネントの輪郭はそれほど明確ではなく、例えれば、線は、より正確には灰色で曖昧である。例えば、或る者は、ディスプレイなどのようなプレゼンテーション・コンポーネントをI/Oコンポーネントと考えるであろう。また、プロセッサーはメモリを有する。発明者は、そのようなことは技術の特質であると認識しており、繰り返しになるが、図1の図は、単に、本発明の1以上の実施形態と関連して使用できる例示の計算デバイスを示すものである。「ワークステーション」、「サーバー」、「ラップトップ」、「手持ち型デバイス」などのカテゴリの間での区別は行われていない。なぜなら、これらの全ては図1の範囲内にあると考えられ、「計算デバイス」と関連する。
[0023] 計算デバイス100は、典型的には、様々なコンピューター読取可能媒体を含む。コンピューター読取可能媒体は、計算デバイス100によりアクセスできる任意の使用可能な媒体とすることができ、揮発性および不揮発性の媒体と取り外し可能および取り外し不可能な媒体との双方を含む。限定ではなく例として、コンピューター読取可能媒体は、コンピューター・ストレージ媒体および通信媒体を含むことができる。コンピューター・ストレージ媒体は、揮発性および不揮発性、および取り外し可能および取り外し不可能の双方の媒体を含み、その媒体は、コンピューター読取可能命令、データ構造、プログラム・モジュール、または他のデータなどのような情報を記憶するための任意の方法および技術で実現される。コンピューター・ストレージ媒体は、RAM、ROM、EEPROM、フラッシュ・メモリ、または他のメモリ技術、CD−ROM、デジタル・バーサタイル・ディスク(「DVD」)、または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、または他の磁気記憶装置、または望まれる情報を記憶するために使用でき且つ計算デバイス100によりアクセスできる他の媒体を含むが、これらには限定されない。通信媒体は、典型的には、搬送波や他の転送機構などのような変調されたデータ信号において、コンピューター読取可能命令、データ構造、プログラム・モジュール、または他のデータを実現するものであり、任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、信号内において情報をエンコードするように、その信号の特性のうちの1以上の特性が設定または変更された信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続などのような有線媒体と、音響、RF、赤外線、および他のワイヤレス媒体などのようなワイヤレス媒体とを含む。上記のものの任意の組み合わせも、コンピューター読取可能媒体の範囲内に含まれるべきである。
[0024] メモリ112は、揮発性および/または不揮発性のメモリの形態のコンピューター・ストレージ媒体を含む。メモリは、取り外し可能、取り外し不可能、またはそれらの組み合わせとすることができる。例示のハードウェア・デバイスは、ソリッドステート・メモリ、ハード・ドライブ、光ディスク・デバイスなどを含む。計算デバイス100は、メモリ112やI/Oコンポーネント120などのような様々なエンティティからデータを読み出す1以上のプロセッサーを含む。プレゼンテーション・コンポーネント(1以上)116は、データのインジケーションをユーザーまたは他のデバイスへ呈示する。例示のプレゼンテーション・コンポーネントは、ディスプレイ・デバイス、スピーカー、プリント・コンポーネント、振動コンポーネントなどを含む。
[0025] I/Oポート118は、I/Oコンポーネント120を含む他のデバイスと計算デバイス100が論理的に結合されることを可能にするが、デバイスの幾つかはビルト・インであり得る。例示のコンポーネントは、マイクロフォン、ジョイスティック、ゲーム・パッド、サテライト・ディッシュ、スキャナー、プリンター、ワイヤレス・デバイスなどを含む。
[0026] 本発明の幾つかの実施形態は、テナント/サービス・モデルを用いてプラットフォーム・アズ・ア・サービス(PAAS)として動作するデータ・センター内でインプリメントすることができ、その場合において、顧客のアプリケーションはクラウド・サービス・インフラストラクチャーにおいて実行され、これは、顧客のアプリケーションを発展させるため及び実行するためのプラットフォームを提供する。データ・センターは多数の物理マシンを含むことができ、それらの物理マシン上で、仮想マシンを割り当てることができ、顧客アプリケーションが実行される。
[0027] 図2を参照すると、本発明の実施形態に従った例示のクラウド計算プラットフォーム200を示すブロック図が提供されている。図2に示すクラウド計算プラットフォーム200が単なる1つの適切な計算システム環境の例であり、本発明の実施形態の使用や機能の範囲に関する限定を提案することを意図しないことが、理解および認識されるであろう。例えば、クラウド計算プラットフォーム200は、公開クラウド、プライベート・クラウド、または専用クラウドとすることや、単に、個別の計算デバイスの集合とすることができる。クラウド計算プラットフォーム200は、ここで示す1つの何れかのコンポーネートや、コンポーネントの組み合わせと関連する依存性や必要性を有すると、解釈すべきではない。更に、図2の様々なブロックは、明瞭化を目的として線で示されているが、実際には、様々なコンポーネントの輪郭はそれほど明確ではなく、例えれば、線は、より正確には灰色で曖昧である。更に、任意の数の物理マシン、仮想マシン、データ・センター、ロール・インスタンス、またはそれらの組み合わせを用いて、本発明の実施形態の範囲内で望まれる機能を達成することができる。
[0028] クラウド計算プラットフォーム200は、特定のサービス・アプリケーションのロール・インスタンス214および216の動作をホストおよびサポートするように構成されるデータ・センター202を含む。ここで用いる「サービス・アプリケーション」というフレーズは、データ・センター202の上部で実行される、および/またはデータ・センター202内のストレージ場所へアクセスする、任意のソフトウェアまたはソフトウェアの一部を広く言及する。実施形態では、サービス・アプリケーションは、サービス・アプリケーションの論理部分を含む1以上のロールとしてインプリメントされる。各ロールは、コードの特定のセットを含むことができる。各ロールの複数のインスタンス(例えば、ロール・インスタンス214および216)は、データ・センター202で実行することができ、負荷分散化を用いて、ロール・インスタンスにわたってメッセージを分配することができる。所与のロールに対するロール・インスタンスは、同じコードを実行することができ、ロール・インスタンスは、互いによく似ており、交換可能である。
[0029] 一般に、仮想マシン210および212は、サービス・アプリケーションへ置かれる要求(例えば、処理負荷の量)および/または顧客のサービス・モデルにおいて顧客により指定されるサービス定義に基づいて、サービス・アプリケーションのロール・インスタンス214および216へ割り当てられる。ここで用いる「仮想マシン」というフレーズは、限定することを意図しておらず、処理ユニットにより実行されてロール・インスタンス214および216の機能の基礎となる任意のソフトウェア、アプリケーション、オペレーティング・システム、またはプログラムを言及し得る。更に、仮想マシン210および212は、処理能力、ストレージ場所、およびデータ・センター202内の他の資産を含むことができ、ロール・インスタンス214および216を適切にサポートする。
[0030] 動作において、仮想マシン210および212は、データ・センター202の物理リソース(例えば、第1計算デバイス204および第2計算デバイス206)内で動的に割り当てられ、ロール・インスタンス(例えば、ロール・インスタンス214および216)は、現在の処理負荷を満足させるように、割り当てられた仮想マシン210および212へ動的に配される。1つのインスタンスでは、ファブリック・コントローラー208は、仮想マシン210および212を自動的に割り当てることと、データ・センター202内でロール・インスタンス214および216を配することとの責務を負う。例として、ファブリック・コントローラー208は、どのように及びいつ、仮想マシン210および212を割り当てるか、およびそれらの上にロール・インスタンス214および216を配するか、についてのガイダンスを、サービス定義(例えば、サービス・アプリケーションを所有する顧客により指定される)に頼って提供することができる。
[0031] 上述のように、仮想マシン210および212は、第1計算デバイス204および第2計算デバイス206の中で動的に割り当てられることができる。本発明の実施形態に従うと、計算デバイス204および206は、任意の形態の計算デバイス、例えば、図1の計算デバイス100などを表し得る。計算デバイス204および206は、別の顧客により所有される他のサービス・アプリケーションのロール・インスタンスをサポートすることを含めての、データ・センター202の他のテナントをサポートするために作り出された他の仮想マシンを同時にホストしつつ、仮想マシン210および212の動作をホストおよびサポートすることができる。
[0032] 1つの構成では、ロール・インスタンス214および216は、クラウド計算プラットフォーム200のコンテキスト内で動作し、従って、仮想マシン210と212との間に動的に作られる通信を通じて内部で通信することができ、また、リモート・ネットワークのリソースへの物理ネットワーク・トポロジーを通じて外部と通信することができる。内部接続は、データ・センター202の物理リソースにわたって分散されている仮想マシン210と212とを、ネットワーク・クラウド(示さず)を介して相互接続することを含み得る。ネットワーク・クラウドは、それらのリソースを相互接続して、ロール・インスタンスが他のロール・インスタンスの場所を認識し得るようにして、それらの間での通信を確立する。更に、ネットワーク・クラウドは、この通信を、サービス・アプリケーションのロール・インスタンス214と216を接続するチャンネルを介して、確立することができる。
[0033] ここで図3へ進むと、アプリケーション302などのようなリモート・アプリケーションは、データ・センター304で実行されるサービス・アプリケーションにより提供されるサービスへ、ネットワーク306を介してアクセスすることができ、限定ではないが、ネットワーク306は、1以上のローカル・エリア・ネットワーク(LAN)および/またはワイド・エリア・ネットワーク(WAN)を含むことができる。そのようなネットワーク化環境は、オフィス、エンタープライズ−ワイド・コンピューター・ネットワーク、イントラネット、およびインターネットにおいて一般的である。図3に示すように、複数のロール・インスタンス(ロール・インスタンス310、ロール・インスタンス312、ロール・インスタンス314、およびロール・インスタンス316)は、データ・センター304で実行されるサービス・アプリケーションの特定のロールに対するコードを提供する。本発明の実施形態に従うと、アプリケーション302などのようなアプリケーションは、アプリケーションからのメッセージをロール・インスタンス310、312、314、316にわたって分配する負荷分散化を介してロール・インスタンス310、312、314、316へアクセスするか、またはロール・インスタンス310、312、314、316のうちの1つへ直接にアクセスする。
[0034] ロール・インスタンス310、312、314、316に対しての負荷分散化および直接ロール・インスタンス・アクセスの双方を提供するために、本発明の実施形態は、ロール・インスタンス310、312、314、316に対しての負荷分散化エンドポイントと、ロール・インスタンス310、312、314、316のそれぞれに対してのインスタンス・エンドポイントとの双方を用いる。特に、公開IPアドレスと、トランスポート・プロトコルと、一意のポート番号との組み合わせが、負荷分散化エンドポイントとしてロール・インスタンス310、312、314、316へ割り当てられる。従って、アプリケーション302などのようなアプリケーションからの、負荷分散化エンドポイントをターゲットとするメッセージは、様々なインスタンス・エンドポイントに対して、データ・センター304の負荷バランサー308により多重化される。例えば、http//customer.domain.name:80が、ロール・インスタンス310、312、314、316により提供されるロールに対する負荷分散化エンドポイントである場合、このURLへのメッセージは、負荷バランサー308により、使用可能なロール・インスタンス310、312、314、316の中で分配される。様々なロール・インスタンス310、312、314、316へのトラフィックを分散させるために、負荷バランサー308により任意の負荷分散化アルゴリズムを用いることができることを、理解すべきである。
[0035] 負荷分散化エンドポイントをロール・インスタンス310、312、314、316へ割り当てることに加えて、インスタンス・エンドポイントがロール・インスタンス310、312、314、316のそれぞれへ割り当てられる。各インスタンス・エンドポイントは、ロール・インスタンス310、312、314、316のうちの1つへマップされる公開IPアドレスと、トランスポート・プロトコルと、一意のポート番号との組み合わせを含む。例えば、IP:Port1を、ロール・インスタンス310に対するインスタンス・エンドポイントとして割り当てることができ、IP:Port2を、ロール・インスタンス312に対するインスタンス・エンドポイントとして割り当てることができ、IP:Port3を、ロール・インスタンス314に対するインスタンス・エンドポイントとして割り当てることができ、IP:Port4を、ロール・インスタンス316に対するインスタンス・エンドポイントとして割り当てることができる。負荷分散化エンドポイントに対して使用される同じ公開IPアドレスを、インスタンス・エンドポイントに対する公開IPアドレスとして用いることができる。例えば、幾つかの実施形態では、IPv4アドレスを用いることができる。インスタンス・エンドポイントを含むアプリケーション302からのメッセージは、負荷分散化せずに、そのインスタンス・エンドポイントに対応するロール・インスタンスへ送られる。例えば、アプリケーション302からのメッセージがIP:Port1を含む場合、そのメッセージは、ロール・インスタンス1へ直接に送られる。
[0036] 幾つかの実施形態では、同じロール・インスタンスは複数のインスタンス・エンドポイントを有し得る。そのような実施形態では、サービス・モデルは、各ロール・インスタンスに対して提供されるインスタンス・エンドポイントの数を指定することができる。次に、データ・センターは、アドレス、トランスポート・プロトコル、およびポートの組み合わせを、各ロールに対してのそれぞれの要求されたインスタンス・エンドポイントに対して割り当てる。
[0037] 負荷バランサー308は、ソフトウェア、ハードウェア、またはそれらの任意の組み合わせでインプリメントすることができる。実施形態では、負荷バランサー308は、負荷分散化エンドポイントとインスタンス・エンドポイントとの双方によりプログラムされる。これは、負荷分散化エンドポイントをロール・インスタンス310、312、314、316のグループへマッピングする情報と、各インスタンス・エンドポイントを対応するロール・インスタンスへマッピングする情報とを含み得る。従って、負荷バランサー308は、インスタンス・エンドポイントを用いて、直接ポートを介して、対応するロール・インスタンスへトラフィックを向けるため、および負荷分散化アルゴリズムに基づいてロール・インスタンス310、312、314、316のうちの1つへの負荷分散化エンドポイントを介してトラフィックを負荷分散するための、十分な情報を有する。
[0038] ここで図4を参照すると、本発明の実施形態に従った全体的システム400を示すブロック図が提供されており、これは、負荷分散化エンドポイントおよびインスタンス・エンドポイントを割り当て、メッセージをロール・インスタンスへ送るデータ・センター402を含む。最初に、顧客は、インスタンス・エンドポイントを、顧客が直接接続を有することを望む各ロールに対してのサービス定義の一部として定めることができる。サービス定義が検証され、サービス定義を含む対応するサービス・パッケージ404が生成され得る。
[0039] サービス定義は、本発明の様々な実施形態に従って多数の異なる様式で、インスタンス・エンドポイントおよびポートの割り当ての使用を指定することができる。例えば、幾つかの実施形態では、サービス定義は、単に顧客がロールに対してのインスタンス・エンドポイントを使用することを望むことを明示することができ、データ・センター402は、ロール・インスタンスへポートを割り当てることができる。幾つかの実施形態では、データ・センター402は、異なるポート割り当てスキーム(例えば、ランダム・ポート割り当て)を準備することができ、顧客は、サービス定義においてポート割り当てスキームを指定することを選ぶ場合または選ばない場合がある。更なる実施形態では、顧客は、インスタンス・エンドポイントに対してのポート番号の割り当てに使用するために、サービス定義においてポート範囲を指定することができる。例えば、サービス定義は、5000〜5099のポート範囲を指定することができ、ポート5000を一番目のロール・インスタンスへ割り当てることができ、ポート5099を百番目のロール・インスタンスへ割り当てることができる。
[0040] サービス定義を確立し、サービス・パッケージ404を生成した後、データ・センター402において、サービス・パッケージ404は、開発者ポータル406を介して又はSDK408を用いての何れかで、顧客のサブスクリプションに対して配置することができる。フロント・エンド410は、サービス定義を検証し、それを、配置するためにデータ・センターのファブリック412へ渡すことができる。
[0041] ファブリック412はテナント・マネージャー414を含み、それは、サービス定義に従って必要なリソースを割り当て、サービス定義に基づいてリポジトリー416に対しての目標状態を持続する。テナント・マネージャー414はまた、サービス定義に従ってポート割り当てを行って、ロール・インスタンスに対するインスタンス・エンドポイントを提供し、リポジトリー416に対しての目標状態を持続する。
[0042] データ・センター・マネージャー418は、負荷バランサー420をプログラムするために、インスタンス・エンドポイントを含む目標状態を用いる。更に、ファブリック412のワークフローを駆動するノード目標状態は、目標状態に対する駆動リソースを調整する(例えば、OS配置、ブートストラップするロールなど)。
[0043] ロール・インスタンス422がレディ状態になると、顧客アプリケーション424は、負荷バランサー420を介して個々のロール・インスタンスのそれぞれへ接続することができる。幾つかのインスタンスでは、アプリケーション422は、負荷分散化エンドポイントを用いるメッセージを発行することができる。そのようなインスタンスでは、負荷バランサー420は、負荷分散化アルゴリズムを用いて、メッセージをロール・インスタンス422のうちの1つへ送る。代替的に、アプリケーション424は、特定のロール・インスタンスへアクセスするために、特定のインスタンス・エンドポイント(即ち、特定のロール・インスタンスへマップされるIP:portの組み合わせ)を用いるメッセージを発行することができる。
[0044] 幾つかの実施形態では、アプリケーション424は、SDKを介してフロント・エンド410を呼び出し、アクセスされる特定のロール・インスタンスに対してのインスタンス・エンドポイントを決定することができる。フロント・エンド410は、テナント・マネージャー414を呼び出してこの情報を取り出し、それをアプリケーション424へ戻すことができる。負荷バランサー420が特定のインスタンス・エンドポイントを有するメッセージを受け取ると、負荷バランサー420は、負荷バランサー420内にプログラムされたインスタンス・エンドポイント情報に基づいて、メッセージを送られる正しいロール・インスタンスをロール・インスタンス422から識別することができる。例えば、実施形態において、負荷バランサー420は、公開インスタンス・エンドポイントを、データ・センター402内で、ロール・インスタンスに対してマッピングする直接IPへマップするマッピング情報を含むことができる。
[0045] ここで図5へ進むと、本発明の実施形態に従った、ロール・インスタンスへの直接トラフィックおよび負荷分散化トラフィックを容易にするためにインスタンス・エンドポイントおよび負荷分散化エンドポイントを割り当てられたロール・インスタンスを持つデータ・センターを構成するための方法500を示すフロー図が提供されている。最初に、ブロック502で示すように、サービス定義がデータ・センターにおいて顧客から受け取られる。サービス定義は、顧客のサービス・アプリケーションに関する様々な情報、例えば、必要とされるリソースおよびインスタンスを作成するためのロール・インスタンスなどを、明示し得る。更に、サービス定義は、データ・センターがサービス・アプリケーションのロールに対するロール・インスタンスへインスタンス・エンドポイントを割り当てることを、明示することができる。
[0046] ブロック504で示すように、データ・センターは、サービス定義に従ってデータ・センターのリソースを割り当てる。これは、データ・センター内の物理マシンに仮想マシンを割り当てること、およびロール・インスタンスを仮想マシンへ割り当てることを含み得る。更に、データ・センターは、ブロック506で示すように、サービス定義に従って、インスタンス・エンドポイントをロール・インスタンスへ割り当てる。これは、公開IPアドレスとトランスポート・プロトコルと一意のポート番号との組み合わせとしてインスタンス・エンドポイントを生成するために、一意のポート番号をロール・インスタンスへ割り当てることを含み得る。様々なポート割り当てスキームのうちの任意のものをデータ・センターで用いることができる。幾つかの実施形態では、顧客は、サービス定義において、データ・センターにより使用されるポート割り当てスキームを指定することができ、別の実施形態では、ポート割り当てスキームは、サービス定義において指定されないようにでき、データ・センターは、用いるスキームを選択することができる。
[0047] インスタンス・エンドポイントを各ロール・インスタンスへ割り当てることに加えて、データ・センターは、ブロック508で示すように、負荷分散化エンドポイントをロール・インスタンスのグループへ割り当てることができる。インスタンス・エンドポイントは、負荷分散化せずに外部アプリケーションが個々のロール・インスタンスへ直接にアクセスすることを可能にするが、負荷分散化エンドポイントは、ロール・インスタンスのグループにわたってのアプリケーション・メッセージの負荷分散化の分配を可能にする。
[0048] データ・センターの負荷バランサーは、ブロック510で示されるように、インスタンス・エンドポイントおよび負荷分散化エンドポイントに関する情報内でプログラムされる。更に、ブロック512で示すように、インスタンス・エンドポイントおよび負荷分散化エンドポイントは、アプリケーションに対して公開される。インスタンス・エンドポイントおよび負荷分散化エンドポイントは、多数の異なる様式でアプリケーションに対して公開することができる。幾つかの実施形態では、インスタンス・エンドポイントおよび負荷分散化エンドポイントは、APIを介して公開することができる。APIは、ロール・インスタンスをインスタンス・エンドポイントへマッピングするマッピング情報を提供することができる。従って、アプリケーションは、ロール・インスタンスへ直接にアクセスするため(インスタンス・エンドポイントを用いる)または負荷分散化を介して何れかのロール・インスタンスへアクセスするため(負荷分散化エンドポイントを用いる)に、インスタンス・エンドポイントまたは負荷分散化エンドポイントを用いて、メッセージを発行することができる。
[0049] 図6へ進むと、本発明の実施形態に従った、インスタンス・エンドポイントおよび負荷分散化エンドポイントを用いて負荷バランサーをプログラムするため、およびロール・インスタンスへメッセージを送るための方法600を示すフロー図が提供されている。最初に、ブロック602で示されるように、負荷バランサーをプログラムするために、顧客のサービス・アプリケーションの特定のロールに対応するロール・インスタンスのグループに対するエンドポイント情報が、負荷バランサーで受け取られる。エンドポイント情報は、ロール・インスタンスに対するインスタンス・エンドポイントを識別する。実施形態では、各インスタンス・エンドポイントは、IPアドレスとトランスポート・プロトコルと一意のポート番号との組み合わせを含むことができる。エンドポイント情報はまた、ロール・インスタンスにわたっての負荷分散化のための負荷分散化エンドポイントを含む。実施形態では、負荷分散化エンドポイントは、IPアドレスとトランスポート・プロトコルと前記一意のポート番号とは別の一意のポート番号との組み合わせを含むことができる。
[0050] ブロック604で示すように、負荷バランサーは、アプリケーションから、第1のインスタンス・エンドポイントを含む第1のメッセージを受け取る。負荷バランサーをプログラムするために用いられたエンドポイント情報に基づいて、負荷バランサーは、ブロック606で示すように、第1のインスタンス・エンドポイントに対応する第1のロール・インスタンスを識別する。更に、ブロック608で示すように、負荷バランサーは、第1のメッセージを第1のインスタンス・エンドポイントへ直接に送る。
[0051] 負荷バランサーはまた、ブロック610で示すように、アプリケーションから、負荷分散化エンドポイントを含む第2のメッセージを受け取る。負荷バランサーをプログラムするために用いられるエンドポイント情報に基づいて、負荷バランサーは、ブロック612で示すように、負荷分散化エンドポイントを認識し、特定のロール・インスタンスを選択するために負荷分散化アルゴリズムを用いる。次に、負荷バランサーは、ブロック614で示すように、第2のメッセージを、選択されたロール・インスタンスへ送る。
[0052] 理解され得るように、本発明の実施形態は、ロール・インスタンスへ一意のポート番号を割り当てることにより、負荷分散化と直接ロール・インスタンス・アクセスとの双方を用いて、データ・センターにおけるロール・インスタンス到達可能性を提供することを、提供する。本発明は、特定の実施形態と関連して説明したが、実施形態は、全ての点で、限定ではなく例示を意図している。代替の実施形態は、その範囲から離れずに、本発明と関連する当業者には明らかになるであろう。
[0053] 上記から、本発明が、明白であり且つシステムおよび方法に内在する他の利点と共に、上記の全ての目的および目標を達成するために、良好に適合するものであることが、分かるであろう。特定のフィーチャーおよびサブコンビネーションは実用性があり、他のフィーチャーおよびサブコンビネーションを参照せずに用いることができることが、理解されるであろう。これは、特許請求の範囲により考慮されており且つその範囲内にある。

Claims (10)

  1. コンピューター使用可能命令を格納する1以上のコンピューター・ストレージ媒体であって、前記コンピューター使用可能命令は、1以上の計算デバイスにより使用されたときに、前記1以上の計算デバイスに方法を行わせ、前記方法は、
    ホストする環境において複数のロール・インスタンスを提供するステップであって、各ロール・インスタンスは、前記ホストする環境において実行される顧客アプリケーションに対するコードを含む、ステップと、
    前記複数のロール・インスタンスに対しての複数のインスタンス・エンドポイントを割り当てるステップであって、各インスタンス・エンドポイントは、第1IPアドレスと、第1トランスポート・プロトコルと、一意のポート番号との組み合わせを含み、前記ロール・インスタンスのうちの1つへマップする、ステップと、
    前記インスタンス・エンドポイントをアプリケーションへ公開して、前記アプリケーションが、特定のロール・インスタンスへマップする1つのインスタンス・エンドポイントを用いて前記特定のロール・インスタンスへアクセスすることを可能とするステップと
    を含む、
    コンピューター・ストレージ媒体。
  2. 請求項1に記載の1以上のコンピューター・ストレージ媒体であって、前記方法は、
    前記複数のロール・インスタンスに対しての負荷分散化エンドポイントを割り当てるステップであって、前記負荷分散化エンドポイントは、第2IPアドレスと、第2トランスポート・プロトコルと、前記一意のポート番号とは別の一意のポート番号との組み合わせを含む、ステップと、
    前記負荷分散化エンドポイントを前記アプリケーションへ公開して、前記アプリケーションが、負荷分散化を介して前記ロール・インスタンスのうちの何れかのものへアクセスするために前記負荷分散化エンドポイントを用いることを可能にするステップと
    を更に含む、コンピューター・ストレージ媒体。
  3. 請求項2に記載の1以上のコンピューター・ストレージ媒体であって、前記第1IPアドレスと前記第2IPアドレスとは同じである、コンピューター・ストレージ媒体。
  4. 請求項2に記載の1以上のコンピューター・ストレージ媒体であって、前記方法は、前記インスタンス・エンドポイントおよび前記負荷分散化エンドポイントを用いて負荷バランサーをプログラムするステップを更に含む、コンピューター・ストレージ媒体。
  5. 請求項1に記載の1以上のコンピューター・ストレージ媒体であって、前記方法は、
    前記顧客アプリケーションに対するサービス定義を受け取るステップと、
    前記サービス定義を検証するステップと、
    前記サービス定義に従って、ホストする環境のリソースを割り当てるステップと
    を更に含む、コンピューター・ストレージ媒体。
  6. 請求項5に記載の1以上のコンピューター・ストレージ媒体であって、前記サービス定義は、ポート番号を前記ロール・インスタンスへ割り当てるために前記ホストする環境により用いられるポート割り当てスキームを指定する、コンピューター・ストレージ媒体。
  7. 請求項5に記載の1以上のコンピューター・ストレージ媒体であって、前記サービス定義は、ポート番号を前記ロール・インスタンスへ割り当てるためにポート範囲を指定する、コンピューター・ストレージ媒体。
  8. 請求項1に記載の1以上のコンピューター・ストレージ媒体であって、前記インスタンス・エンドは、APIにより前記アプリケーションへ公開され、前記APIは、ロール・インスタンスをインスタンス・エンドポイントへマップするマッピング情報を提供する、コンピューター・ストレージ媒体。
  9. ホストする環境において負荷分散化メッセージおよびインスタンス・メッセージをロール・インスタンスへ送るための、負荷バランサーのための方法であって、
    前記ホストする環境において実行されるサービス・アプリケーションのロールに対する複数のロール・インスタンスについてのエンドポイント情報を受け取るステップであって、前記エンドポイント情報は、前記複数のロール・インスタンスに対する複数のインスタンス・エンドポイントを識別し、各インスタンス・エンドポイントは、第1IPアドレスと、第1トランスポート・プロトコルと、一意のポート番号との組み合わせを含み、前記ロール・インスタンスのうちの1つへマップするものであり、前記エンドポイント情報はまた、前記複数のロール・インスタンスに対する負荷分散化エンドポイントを識別し、前記負荷分散化エンドポイントは、第2IPアドレスと、第2トランスポート・プロトコルと、前記一意のポート番号とは別の一意のポート番号との組み合わせを含む、ステップと、
    前記複数のインスタンス・エンドポイントからの第1インスタンス・エンドポイントを含む第1メッセージをアプリケーションから受け取るとき、前記第1メッセージを、前記第1インスタンス・エンドポイントに対応する第1ロール・インスタンスへ送るステップと、
    前記負荷分散化エンドポイントを含む第2リクエストを前記アプリケーションから受け取るとき、前記第2リクエストを、負荷分散化アルゴリズムに基づいて前記ロール・インスタンスのうちの1つへ送るステップと、
    を含む方法。
  10. クラウド計算プラットフォームのためのシステムであって、
    顧客アプリケーションに対するコードを提供する複数のロール・インスタンスを実行する複数の仮想マシンをホストする1以上の物理マシンと、
    各ロール・インスタンスに対してのインスタンス・エンドポイントを生成するために各ロール・インスタンスへ一意のポート番号を割り当てるテナント・マネージャーであって、各インスタンス・エンドポイントは、IPアドレスと、トランスポート・プロトコルと、前記一意のポート番号のうちの1つとの組み合わせを含む、テナント・マネージャーと、
    負荷分散化エンドポイントおよび前記インスタンス・エンドポイントを用いてプログラムされる負荷バランサーであって、インスタンス・エンドポイントを用いるアプリケーション・メッセージを、対応するロール・インスタンスへ直接に送るように、および前記負荷分散化エンドポイントを用いるアプリケーション・メッセージを、負荷分散化アルゴリズムに基づいてロール・インスタンスへ送るように構成される負荷バランサーと
    を含むシステム。
JP2014544767A 2011-11-28 2012-11-15 データ・センターにおけるロール・インスタンス到達可能性 Pending JP2015503158A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/305,105 US20130138813A1 (en) 2011-11-28 2011-11-28 Role instance reachability in data center
US13/305,105 2011-11-28
PCT/US2012/065377 WO2013081848A1 (en) 2011-11-28 2012-11-15 Role instance reachability in data center

Publications (1)

Publication Number Publication Date
JP2015503158A true JP2015503158A (ja) 2015-01-29

Family

ID=47857988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014544767A Pending JP2015503158A (ja) 2011-11-28 2012-11-15 データ・センターにおけるロール・インスタンス到達可能性

Country Status (6)

Country Link
US (1) US20130138813A1 (ja)
EP (1) EP2786251B1 (ja)
JP (1) JP2015503158A (ja)
KR (1) KR20140096084A (ja)
CN (1) CN102984254A (ja)
WO (1) WO2013081848A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105743808B (zh) 2014-12-08 2017-09-19 华为技术有限公司 一种适配QoS的方法和装置
CN104410712B (zh) * 2014-12-16 2018-09-11 国家电网公司 应用实例管理方法、用户访问请求处理方法及系统
WO2016176650A1 (en) * 2015-04-30 2016-11-03 Amazon Technologies, Inc. Managing load balancers associated with auto-scaling groups
CN104780106B (zh) * 2015-04-30 2018-05-08 新华三技术有限公司 多实例实现方法及装置
WO2017120500A1 (en) * 2016-01-07 2017-07-13 Vapor IO Inc. Data center management
US11269889B1 (en) * 2018-05-09 2022-03-08 Christopher James Aversano Graphical user interface driven programming development environment
CN110535964B (zh) * 2019-09-03 2021-12-14 北京首都在线科技股份有限公司 基于Paas连接器实现的数据处理方法及装置
KR20210127564A (ko) * 2020-04-14 2021-10-22 삼성전자주식회사 이동 통신 네트워크에서 동적이고 효율적인 로드 밸런싱을 위한 방법 및 장치
CN111930392B (zh) * 2020-07-09 2024-02-23 北京皮尔布莱尼软件有限公司 一种应用服务部署方法、计算设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06324978A (ja) * 1993-05-14 1994-11-25 Sumitomo Electric Ind Ltd サーバプログラムのポート番号の割当て方式
JP2006260177A (ja) * 2005-03-17 2006-09-28 Matsushita Electric Ind Co Ltd 通信システム、情報処理システム、接続サーバ、処理サーバ、情報処理装置、及び情報処理方法
JP2011028547A (ja) * 2009-07-27 2011-02-10 Ntt Data Corp 仮想マシン起動端末および仮想マシン起動プログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643287B1 (en) * 1999-11-24 2003-11-04 Pluris, Inc. Apparatus and method for forwarding encapsulated data packets on a network having multiple links between nodes
US6661799B1 (en) * 2000-09-13 2003-12-09 Alcatel Usa Sourcing, L.P. Method and apparatus for facilitating peer-to-peer application communication
US7333482B2 (en) * 2000-12-22 2008-02-19 Interactive People Unplugged Ab Route optimization technique for mobile IP
US20030074467A1 (en) * 2001-10-11 2003-04-17 Oblak Sasha Peter Load balancing system and method for data communication network
US8224985B2 (en) * 2005-10-04 2012-07-17 Sony Computer Entertainment Inc. Peer-to-peer communication traversing symmetric network address translators
US20050265252A1 (en) * 2004-05-27 2005-12-01 International Business Machines Corporation Enhancing ephemeral port allocation
CN100525202C (zh) * 2004-05-28 2009-08-05 中兴通讯股份有限公司 一种基于h.323协议的私网终端向网守注册的方法
CN1299476C (zh) * 2004-05-28 2007-02-07 中兴通讯股份有限公司 一种h.323代理服务器代理网络地址转换后的终端向网守注册的方法
US20070070996A1 (en) * 2005-09-26 2007-03-29 Oran David R Port hopping scheme for peer-to-peer connections
US20070276920A1 (en) * 2006-05-12 2007-11-29 Daniel Buchmann Consistency of routing rules in distributed system landscapes
US8336078B2 (en) * 2006-07-11 2012-12-18 Fmr Corp. Role-based access in a multi-customer computing environment
CN101127759B (zh) * 2006-08-15 2010-07-07 华为技术有限公司 一种无源光网络数据收发方法、装置及系统
US9300532B2 (en) * 2008-10-24 2016-03-29 Microsoft Technology Licensing, Llc Automating deployment of service applications by exposing hosting environment constraints
US7904508B2 (en) * 2008-10-24 2011-03-08 Microsoft Corporation Providing functionality to client services by implementing and binding contracts
US8392915B2 (en) * 2008-11-19 2013-03-05 Oracle International Corporation Efficient volume manager hot swapping
US7979551B2 (en) * 2009-02-04 2011-07-12 Microsoft Corporation Enhancing availability of remote applications
US8310950B2 (en) * 2009-12-28 2012-11-13 Oracle America, Inc. Self-configuring networking devices for providing services in a nework

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06324978A (ja) * 1993-05-14 1994-11-25 Sumitomo Electric Ind Ltd サーバプログラムのポート番号の割当て方式
JP2006260177A (ja) * 2005-03-17 2006-09-28 Matsushita Electric Ind Co Ltd 通信システム、情報処理システム、接続サーバ、処理サーバ、情報処理装置、及び情報処理方法
JP2011028547A (ja) * 2009-07-27 2011-02-10 Ntt Data Corp 仮想マシン起動端末および仮想マシン起動プログラム

Also Published As

Publication number Publication date
WO2013081848A1 (en) 2013-06-06
KR20140096084A (ko) 2014-08-04
EP2786251A1 (en) 2014-10-08
EP2786251B1 (en) 2017-08-23
EP2786251A4 (en) 2015-05-20
US20130138813A1 (en) 2013-05-30
CN102984254A (zh) 2013-03-20

Similar Documents

Publication Publication Date Title
JP2015503158A (ja) データ・センターにおけるロール・インスタンス到達可能性
JP6403800B2 (ja) エンタープライズ・ベース・ネットワーク及びマルチテナント・ネットワーク間でのアプリケーションの移行
CN108780410B (zh) 计算系统中的容器的网络虚拟化
US9948600B2 (en) Client-driven load balancing of dynamic IP address allocation
US10541925B2 (en) Non-DSR distributed load balancer with virtualized VIPS and source proxy on load balanced connection
US11928514B2 (en) Systems and methods providing serverless DNS integration
JP7113840B2 (ja) 計算ノード管理プロトコルのためのシステムおよび方法
US11032202B2 (en) Load balancing in data hosting systems
US11710206B2 (en) Session coordination for auto-scaled virtualized graphics processing
KR20210025118A (ko) 어드레스 마이그레이션 서비스
WO2013097484A1 (zh) 虚拟机集群的负载均衡方法、服务器及系统
CN108933829A (zh) 一种负载均衡方法及装置
JP2011512578A (ja) 管理可能かつ効率的拡大展開用アプリケ−ション記述システム及び方法
CN113094182B (zh) 一种服务的负载均衡处理方法、装置及云端服务器
US10237235B1 (en) System for network address translation
US11416306B1 (en) Placement to optimize heterogeneous physical host utilization
El Karadawy et al. An empirical analysis on load balancing and service broker techniques using cloud analyst simulator
TW201426553A (zh) 虛擬機管理系統及方法
US8972604B1 (en) Network address retention and assignment
CN109067573B (zh) 一种流量调度方法及装置
Alsaffar et al. An architecture of thin client-edge computing collaboration for data distribution and resource allocation in cloud.
US11546219B1 (en) User-defined virtual regions in a cloud provider network
US11108735B2 (en) Mapping subnets in different virtual networks using private address space
JP2019506095A (ja) オーケストレーションされた計算環境又はソフトウェアで定義された計算環境におけるネットワークに対する委任/委任解除
KR101529163B1 (ko) 복수의 사용자 계정들을 갖는 클라이언트에 대한 가상 데스크톱 서비스의 청약 시스템 및 청약 처리 방법

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150528

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170517

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180209