JP6200080B2 - Managing client access to multiple computing systems - Google Patents

Managing client access to multiple computing systems Download PDF

Info

Publication number
JP6200080B2
JP6200080B2 JP2016521906A JP2016521906A JP6200080B2 JP 6200080 B2 JP6200080 B2 JP 6200080B2 JP 2016521906 A JP2016521906 A JP 2016521906A JP 2016521906 A JP2016521906 A JP 2016521906A JP 6200080 B2 JP6200080 B2 JP 6200080B2
Authority
JP
Japan
Prior art keywords
producer
lease
consumer
systems
producer system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016521906A
Other languages
Japanese (ja)
Other versions
JP2016526723A (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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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
Priority claimed from US13/927,929 external-priority patent/US9369518B2/en
Priority claimed from US13/927,933 external-priority patent/US9843631B2/en
Priority claimed from US13/927,892 external-priority patent/US9350801B2/en
Priority claimed from US13/927,995 external-priority patent/US9780993B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2016526723A publication Critical patent/JP2016526723A/en
Application granted granted Critical
Publication of JP6200080B2 publication Critical patent/JP6200080B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • 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/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms

Description

関連出願
本出願は、以下の出願、即ち、2013年6月26日出願の「MANAGING CLIENT ACCESS TO A PLURALITY OF COMPUTING SYSTEMS」という名称の米国特許出願第13/927,892号と、2013年6月26日出願の「PRODUCER SYSTEM PARTITIONING AMONG LEASING AGENT SYSTEMS」という名称の米国特許出願第13/927,929号と、2013年6月26日出願の、「PRODUCER SYSTEM SELECTION」という名称の米国特許出願第13/927,933号と、2013年6月26日出願の、「PRODUCER SYSTEM PARTITIONING AMONG LEASING AGENT SYSTEMS」という名称の米国特許出願第13/927,995号とに関連し、これらの特許の開示は、その全体が参照により本明細書に組み入れられる。
RELATED APPLICATIONS This application includes the following applications: US Patent Application No. 13 / 927,892 entitled “MANAGING CLIENT ACCESS TO A PLULARITY OF COMPUTING SYSTEMS” filed June 26, 2013, June 2013 US Patent Application No. 13 / 927,929 entitled “PRODUCER SYSTEM PARTIONING AMONG LEASING AGENT SYSTEMS” filed on the 26th, and US Patent Application No. 13 entitled “PRODUCER SYSTEM SELECTION” filed on June 26, 2013 No./927,933 and “PRODUCER SYSTEM PARTITIONING AMONG LEASING AGENT SY” filed on June 26, 2013. Related to the U.S. patent application Ser. No. 13 / 927,995, entitled TEMS ", the disclosures of these patents are entirely incorporated herein by reference.

多くの場合、計算リソース及びサービスが、いくつかのコンピューティングシステムによって提供される。これらの計算リソース及び/又はサービスは、いくつかの更なるコンピューティングシステムによって消費され得る。多くの場合、いくつかのコンピューティングシステムが、同じリソース又はサービスへのアクセスを提供することになる。リソース又はサービスを提供するコンピューティングシステムの各々は、典型的には、システムが一定期間中に処理することができる要求の数が制限される。   In many cases, computing resources and services are provided by several computing systems. These computational resources and / or services can be consumed by several additional computing systems. In many cases, several computing systems will provide access to the same resources or services. Each computing system that provides a resource or service is typically limited in the number of requests that the system can process during a period of time.

米国特許公開第2013/0073703号US Patent Publication No. 2013/0073703

要求しているコンピュータシステムへのサービスをプロビジョニングするのを助けるために、一部の企業は、サービス又はリソースを提供する各システムの使用を追跡することができる集中システムを利用する。集中システムを使用することによって、プロビジョニングシステムの各々に掛かる負荷を、サービス又はリソースを提供するいくつかのコンピューティングシステム間で分散することができる。1つのそのような集中システムが、ハードウェア負荷分散装置である。ハードウェア負荷分散装置は、サービス又はリソースを提供するコンピューティングシステム間で要求を分配するのを助けることができ、それにより、負荷が、企業のプロビジョニングシステム全体にわたって分散される。   To help provision services to requesting computer systems, some companies utilize a centralized system that can track the use of each system that provides services or resources. By using a centralized system, the load on each of the provisioning systems can be distributed among several computing systems that provide services or resources. One such centralized system is a hardware load balancer. A hardware load balancer can help distribute requests among computing systems that provide services or resources so that the load is distributed throughout the enterprise provisioning system.

図面を通して、参照する要素間の対応を示すために参照番号を再使用する。図面は、本明細書で説明する本発明の実施形態を例示するために提示され、本発明の範囲を制限するためではない。   Throughout the drawings, reference numbers are reused to indicate correspondence between referenced elements. The drawings are presented to illustrate the embodiments of the invention described herein and are not intended to limit the scope of the invention.

プロデューサシステムによってホスティングされたサービスへのアクセスをコンシューマシステムに提供するネットワーク環境の実施形態を例示する図である。FIG. 3 illustrates an embodiment of a network environment that provides a consumer system with access to services hosted by a producer system. プロデューサシステムによってホスティングされたサービスへのアクセスをコンシューマシステムに提供し、かつ、プロデューサシステム健康情報を1つ以上のリースエージェントに提供するネットワーク環境の実施形態を例示する図である。FIG. 6 illustrates an embodiment of a network environment that provides a consumer system with access to services hosted by a producer system and provides producer system health information to one or more lease agents. プロデューサシステムによってホスティングされたサービスへのアクセスをコンシューマシステムに提供するネットワーク環境の実施形態の代替図である。FIG. 6 is an alternative diagram of an embodiment of a network environment that provides a consumer system with access to services hosted by a producer system. プロデューサシステムでのサービスにアクセスするプロセスの実施形態を例示する図である。FIG. 6 illustrates an embodiment of a process for accessing a service at a producer system. プロデューサシステムのリースをコンシューマシステムに提供するプロセスの実施形態を例示する図である。FIG. 6 illustrates an embodiment of a process for providing a producer system lease to a consumer system. プロデューサシステム更新プロセスの実施形態を例示する図である。FIG. 6 illustrates an embodiment of a producer system update process. 1組のプロデューサシステムを分割する分割プロセスの実施形態を例示する図である。FIG. 4 illustrates an embodiment of a splitting process that splits a set of producer systems. プロデューサシステムの観点からのプロデューサシステム登録プロセスの実施形態を例示する図である。FIG. 6 illustrates an embodiment of a producer system registration process from a producer system perspective. リースエージェントの観点からのプロデューサシステム登録プロセスの実施形態を例示する図である。FIG. 6 illustrates an embodiment of a producer system registration process from the perspective of a lease agent. リースエージェント再分割プロセスの実施形態を例示する図である。FIG. 6 illustrates an embodiment of a lease agent subdivision process. ヒステリシスに基づくプロデューサ選択プロセスの実施形態を例示する図である。FIG. 6 illustrates an embodiment of a producer selection process based on hysteresis. ロデューサシステムによってホスティングされたサービスへのアクセスをコンシューマシステムに提供するオーバーレイネットワーク環境の実施形態を例示する図である。FIG. 3 illustrates an embodiment of an overlay network environment that provides a consumer system with access to services hosted by a reducer system. プロデューサ仮想マシンでのサービスにアクセスするプロセスの実施形態を例示する図である。FIG. 6 illustrates an embodiment of a process for accessing a service at a producer virtual machine. プロデューサ仮想マシンでのサービスにアクセスする要求を処理するプロセスの実施形態を例示する図である。FIG. 6 illustrates an embodiment of a process for processing a request to access a service on a producer virtual machine. プロデューサ仮想マシンへのアクセスをリースするプロセスの実施形態を例示する図である。FIG. 6 illustrates an embodiment of a process for leasing access to a producer virtual machine. オーバーレイネットワーク環境における通信を促進するために使用することができる現状管理テーブルの実施例を例示する図である。FIG. 6 illustrates an example of a current state management table that can be used to facilitate communication in an overlay network environment.


ハードウェア負荷分散装置は、プロデューサシステムと呼ぶことができる、サービス又はリソースへのアクセスを提供するコンピューティングシステムが、コンシューマシステムと呼ぶことができる、サービス又はリソースへのアクセスを要求するコンピューティングシステムからの要求で過負荷になるのを防止する一助になるために使用することができるが、ハードウェア負荷分散装置は、いくつかの欠点を有し得る。例えば、ハードウェア負荷分散装置は、単一障害点をもたらす。換言すると、ハードウェア負荷分散装置が誤動作した場合、関連の企業システムが、サービス要求をプロデューサシステムにもはや転送することができないのでアクセス不可能になり得る。更に、ハードウェア負荷分散装置は、費用のかかる不透明なハードウェアであり得、企業システムを負荷分散するための魅力のないソリューションとなる。
A hardware load balancer can be referred to as a producer system, a computing system that provides access to a service or resource, and a computing system that requires access to a service or resource that can be referred to as a consumer system Although it can be used to help prevent overloading with requests from hardware, a hardware load balancer can have several drawbacks. For example, a hardware load balancer provides a single point of failure. In other words, if a hardware load balancer malfunctions, the associated enterprise system may become inaccessible because it can no longer forward service requests to the producer system. In addition, hardware load balancers can be costly and opaque hardware, making them an unattractive solution for load balancing enterprise systems.

ハードウェア負荷分散装置に関連した問題の1つのソリューションは、分散化された負荷分散装置を使用することである。しかしながら、分散化された負荷分散装置は、ハードウェア負荷分散装置の使用に関連したいくつかの問題に対応することになるが、分散化された負荷分散装置は、最適状態に及ばない傾向があり、分散化された負荷分散装置は、企業システムの大域的視点を有しておらず、各負荷分散装置は、典型的にはコンシューマ及びプロデューサシステムの定義されたサブセットに対応することに限定されるからである。   One solution to the problem associated with hardware load balancers is to use a distributed load balancer. However, a distributed load balancer will address some of the problems associated with using a hardware load balancer, but a distributed load balancer tends to be less than optimal. Decentralized load balancers do not have a global view of enterprise systems, and each load balancer is typically limited to supporting a defined subset of consumer and producer systems Because.

本開示では、1組のリースエージェントを利用して複数のコンシューマシステムからのサービス要求を複数のプロデューサシステム間で割り当てるシステム及びプロセスの実施形態を説明する。リースエージェントは、ほとんどの場合、複数のプロデューサシステム全体を認識しながら、プロデューサシステムのサブセットへのアクセス又はリースをモニタ及び割り当てることができる。更に、各サービス要求については、単一のコンシューマシステムが、いくつかのリースエージェント、場合によっては、複数のプロデューサシステムとやりとりすることができる。この1組のリースエージェントは、ある特定の実施形態において、負荷分散のプロセスを1組の分離されたハードウェアベースのシステム間で分散することができ、各リースエージェントは、プロデューサシステムのサブセットについて負荷分散を行うという点においてアマルガム負荷分散装置の役目をすることができる。   This disclosure describes an embodiment of a system and process that uses a set of lease agents to allocate service requests from multiple consumer systems among multiple producer systems. Lease agents can monitor and allocate access or leases to a subset of producer systems, most often while recognizing multiple producer systems as a whole. Further, for each service request, a single consumer system can interact with several lease agents, and possibly multiple producer systems. This set of lease agents, in certain embodiments, can distribute the load balancing process among a set of isolated hardware-based systems, each lease agent providing a load for a subset of producer systems. It can serve as an amalgam load distribution device in terms of dispersion.

有利なことに、ある特定の実施形態において、少なくとも各プロデューサシステムに関する情報のサブセットを各リースエージェントにて維持しながらプロデューサシステムをリースエージェント間で分割することによって、ハードウェア負荷分散装置及び分散化された負荷分散装置の利点を前述の欠点なしで達成することができる。更に、ある特定の実施形態において、コンシューマシステムを特定のリースエージェント及び/又はプロデューサシステムに割り当てないことによって、複数のプロデューサシステムの各々によって処理される負荷は、プロデューサシステムを隔離されたサブシステムに分離するシステムと比較して経時的により分散された状態とすることができる。   Advantageously, in certain embodiments, the hardware load balancer and distributed are divided by dividing the producer system among the lease agents while maintaining at least a subset of information about each producer system at each lease agent. The advantages of the load balancer can be achieved without the aforementioned drawbacks. Further, in certain embodiments, by not assigning a consumer system to a particular lease agent and / or producer system, the load handled by each of the multiple producer systems isolates the producer system to an isolated subsystem. Compared to a system that does this, it can be more dispersed over time.

場合によっては、プロデューサシステム及び/又はコンシューマシステム上に実装されるシステム及びアプリケーションは、リースエージェントと共に機能するように改変される。例えば、以下で更に説明するように、コンシューマシステムは、プロデューサシステムへのアクセスをリースし、かつ、プロデューサシステムの現状情報を維持するように改変され得る。   In some cases, systems and applications implemented on producer and / or consumer systems are modified to work with lease agents. For example, as described further below, the consumer system can be modified to lease access to the producer system and maintain the current status information of the producer system.

いくつかの実施形態において、本開示のシステム及び方法は、コンシューマ仮想マシン及びプロデューサ仮想マシンをホスティングすることができる1組のコンピューティングホストの上で実装される1つ以上のオーバーレイネットワークと共に使用することができる。有利なことに、ある特定の実施形態において、本開示のシステム及び方法は、コンシューマホスト及びプロデューサホストのネットワーキングインフラストラクチャ内で実行することができ、その結果、リースプロセスをコンシューマ及び/又はプロデューサ仮想マシンからの関与なしに行うことができる。   In some embodiments, the systems and methods of the present disclosure are used with one or more overlay networks implemented on a set of computing hosts that can host consumer virtual machines and producer virtual machines. Can do. Advantageously, in certain embodiments, the systems and methods of the present disclosure can be performed within the networking infrastructure of consumer hosts and producer hosts, so that the leasing process is performed by the consumer and / or producer virtual machine. Can be done without any involvement.

本開示の実施形態がオーバーレイネットワークにおいて実施されるとき、プロデューサシステムをリースエージェント間で分割する代わりに、各オーバーレイネットワークに関連したプロデューサ仮想マシンをリースエージェント間で別々に分割することができる。更に、コンシューマ仮想マシンにプロデューサ仮想マシンをリースするとき、リースエージェントは、リースが要求されているコンシューマ仮想マシンと同じオーバーレイネットワークに割り当てられたプロデューサ仮想マシンを選択することができる。   When embodiments of the present disclosure are implemented in an overlay network, the producer virtual machine associated with each overlay network can be split separately between lease agents instead of splitting the producer system between lease agents. Further, when leasing a producer virtual machine to a consumer virtual machine, the lease agent can select a producer virtual machine that is assigned to the same overlay network as the consumer virtual machine that is being leased.

ネットワーク環境概要
図1Aは、プロデューサシステム106A〜Dによってホスティングされたサービスへのアクセスをコンシューマシステム104A〜Cに提供するネットワーク環境100の実施形態を例示する。一般的に、ネットワーク環境100は、単一のデータセンタを表す。しかしながら、場合によっては、ネットワーク環境100のシステムは、複数のデータセンタ間で分散され得る。
Network Environment Overview FIG. 1A illustrates an embodiment of a network environment 100 that provides consumer systems 104A-C access to services hosted by producer systems 106A-D. In general, the network environment 100 represents a single data center. However, in some cases, the system of network environment 100 may be distributed among multiple data centers.

ネットワーク環境100は、(「プロデューサシステム106」として本明細書において単数形で参照され得るか、又は、「プロデューサシステム106類」として複数形とすることができる)いくつかのプロデューサシステム106A〜Dと、(「コンシューマシステム104」として本明細書において単数形で参照され得るか、又は、「コンシューマシステム類104」として複数形とすることができる)コンシューマシステム104A〜Cを含むことができる。4つのプロデューサシステム106及び3つのコンシューマシステム104が例示されているが、ネットワーク環境100は、任意の数のプロデューサシステム106及びコンシューマシステム104を含むことができる。更に、ネットワーク環境100は、1つ以上のデータセンタを表すと上で記載したが、いくつかの実施形態において、少なくとも、コンシューマシステム104のいくつかはデータセンタから独立し得る。例えば、いくつかの実施形態において、ネットワーク環境100は、特定の事業体又は組織に関連し得る。そのような実施形態において、コンシューマシステム104の少なくとも一部は、ネットワーク環境100と通信することができるが、ネットワーク環境100に関連したシステムの残りではなく個々の又は別個の事業体の制御下であり得るユーザ又は顧客コンピューティングシステムを表し得る。   The network environment 100 may include a number of producer systems 106A-D (which may be referred to herein as “producer system 106” in the singular or may be pluralized as “producer systems 106”). , Consumer systems 104A-C (which may be referred to herein as "consumer systems 104" in the singular or may be pluralized as "consumer systems 104"). Although four producer systems 106 and three consumer systems 104 are illustrated, the network environment 100 may include any number of producer systems 106 and consumer systems 104. Further, although network environment 100 has been described above as representing one or more data centers, in some embodiments, at least some of consumer systems 104 may be independent of the data centers. For example, in some embodiments, the network environment 100 may be associated with a particular business entity or organization. In such embodiments, at least a portion of the consumer system 104 can communicate with the network environment 100, but is under the control of individual or separate entities rather than the rest of the system associated with the network environment 100. May represent a user or customer computing system to obtain.

一般的に、プロデューサシステム106の各々は、サービス及び/又はコンピュータリソースをコンシューマシステム104に提供することができる。場合によっては、プロデューサシステム106は、各々、同じサービス及び/又はリソースをコンシューマシステム104に提供することができ得る。他の場合において、プロデューサシステム106の少なくとも一部は、プロデューサシステム106の他と異なるサービス及び/又はリソースを提供することができ得る。プロデューサシステム106によって提供されるこれらのサービス及び/又はリソースとしては、任意の形式のサービス及び/又は計算リソースを挙げることができる。例えば、サービス及びコンピュータリソースとしては、データストレージアクセス、外部ネットワークアクセス(例えば、インターネットへのアクセス)、内部リソースアクセス(例えば、ネットワーク環境100と同じ事業体によって管理されるデータベースへのアクセス)、カタログサービスへのアクセス、ディレクトリサービスへのアクセス、アプリケーションへのアクセス、(例えば、コマンド又は要求の分散処理に関する)情報処理サービスへのアクセス、ルーティングサービス(例えば、ネットワークルーティングサービス)などを挙げることができる。論じる内容を簡素化するために、本開示のこれ以降では、本明細書で普通の意味を有する「サービス」という用語に加えて、プロデューサシステム106により又は該システムを介して提供され得るサービス、コンピュータリソース、又は、任意の他のリソースを指すために「サービス」という用語を使用することとする。   In general, each producer system 106 may provide services and / or computer resources to the consumer system 104. In some cases, producer systems 106 may each be able to provide the same services and / or resources to consumer system 104. In other cases, at least a portion of the producer system 106 may be able to provide different services and / or resources than the others of the producer system 106. These services and / or resources provided by the producer system 106 may include any type of service and / or computational resource. For example, services and computer resources include data storage access, external network access (eg, access to the Internet), internal resource access (eg, access to a database managed by the same entity as the network environment 100), catalog service Access to a directory service, access to an application, access to an information processing service (eg, relating to distributed processing of commands or requests), a routing service (eg, network routing service), and the like. To simplify the content discussed, in the remainder of this disclosure, in addition to the term “service” having its ordinary meaning herein, a service, computer that may be provided by or via the producer system 106 We will use the term “service” to refer to a resource, or any other resource.

プロデューサシステム106としては、任意の形式のコンピューティングシステムを挙げることができる。例えば、プロデューサシステム106としては、クライアントシステム、サーバ(例えば、アプリケーションサーバ、ウェブサーバ、など)、ラップトップ、デスクトップ、データベースシステム、バックアップシステム、ディレクトリシステム、重複排除システム、ストレージシステムなどを挙げることができる。同様に、コンシューマシステム104としては、任意の形式のコンピューティングシステムを挙げることができる。例えば、コンシューマシステム104としては、クライアントシステム、サーバ、ラップトップ、デスクトップ、タブレット、携帯電話、ゲーム機、テレビなどを挙げることができる。いくつかの実施形態において、コンシューマシステム104は、また、プロデューサシステムの役目をすることができ、逆もまた同じである。例えば、1つのコンシューマシステム104は、データを取得するためにプロデューサシステム106(例えば、データベースシステム、又は、ストレージシステムの役目をするプロデューサシステム)にアクセスすることができる。例えば、同じコンシューマシステム104は、また、別のコンシューマシステム104へのアプリケーションアクセスを提供することによってプロデューサシステムの役目をし得る。場合によっては、コンシューマシステム104及びプロデューサシステム106は、それぞれ、クライアント及びサーバシステムと考えることができる。しかしながら、先に論じたように、コンシューマシステム104及びプロデューサシステム106は、そのようなものと限定されるものではない。   The producer system 106 can include any form of computing system. For example, the producer system 106 can include a client system, server (eg, application server, web server, etc.), laptop, desktop, database system, backup system, directory system, deduplication system, storage system, and the like. . Similarly, the consumer system 104 can include any form of computing system. For example, the consumer system 104 can include a client system, a server, a laptop, a desktop, a tablet, a mobile phone, a game machine, a television, and the like. In some embodiments, the consumer system 104 can also serve as a producer system and vice versa. For example, one consumer system 104 can access a producer system 106 (eg, a database system or a producer system acting as a storage system) to obtain data. For example, the same consumer system 104 may also act as a producer system by providing application access to another consumer system 104. In some cases, consumer system 104 and producer system 106 may be considered a client and server system, respectively. However, as discussed above, consumer system 104 and producer system 106 are not limited to such.

コンシューマシステム104がプロデューサシステム106によって提供されるサービスへのアクセスを望むか又は必要とするたびに、コンシューマシステム104は、(「リースエージェント102」として本明細書において単数形で参照され得るか、又は、「リースエージェント類102」として複数形とすることができる)1つ以上のリースエージェント102A〜102Dにアクセスして、サービスを提供することができるプロデューサシステム106へのアクセスを要求することができる。一般的に、コンシューマシステム104は、サービス要求を遂行するためにアクセスするべきプロデューサシステム106の識別情報を取得するためにリースエージェント102の何らかのサブセットにアクセスする。リースエージェント102のサブセットは、利用可能なリースエージェント102からランダムに選択することができ、利用可能なリースエージェント102のいくつかを含む。例えば、プロデューサシステム106にアクセスする要求は、図1Aに例示する4つの利用可能なリースエージェントのうちの3つに提供され得る。しかしながら、場合によっては、コンシューマシステム104は、特定のリースエージェント102に割り当てられ得る。更に、場合によっては、コンシューマシステム104は、プロデューサシステム106にアクセスする要求を単一のリースエージェント102、又は、ネットワーク環境100内の各既存のリースエージェント102に提供し得る。   Each time consumer system 104 desires or needs access to the services provided by producer system 106, consumer system 104 may be referred to in the singular form as “lease agent 102” or One or more lease agents 102A-102D (which may be pluralized as "lease agents 102") can be requested to access a producer system 106 that can provide services. In general, the consumer system 104 accesses some subset of the lease agent 102 to obtain the identity of the producer system 106 that it should access in order to fulfill the service request. The subset of lease agents 102 can be randomly selected from the available lease agents 102 and includes some of the available lease agents 102. For example, requests to access producer system 106 may be provided to three of the four available lease agents illustrated in FIG. 1A. However, in some cases, consumer system 104 may be assigned to a particular lease agent 102. Further, in some cases, consumer system 104 may provide a request to access producer system 106 to a single lease agent 102 or to each existing lease agent 102 in network environment 100.

図1Aは、リースエージェント102、コンシューマシステム104、プロデューサシステム106間の通信の一実施例を例示する。図1Aでわかるように、コンシューマシステム104の各々は、4つの利用可能なリースエージェント102のうちの3つと通信する。破線の矢印によって示すように、この通信は、例えば、プロデューサシステム106によって提供されるサービスにアクセスする要求及び/又はプロデューサシステム106にアクセスする要求に関係する制御情報を含む制御情報を含み得る。更に、コンシューマシステム104をプロデューサシステム106のサブセットに接続する実線矢印によって示すように、通信は、コンシューマ104によるサービス要求に対応するプロデューサシステム106に関係するデータを含むことができる。更に、リースエージェント102は、リースエージェント102間で通信して、例えば、リースエージェント102及び/又はプロデューサシステム106に関係する現状情報を提供し得る。図1Aのネットワーク環境100の様々なシステムの間の例示する相互通信は、コンシューマシステム104と、プロデューサシステム106と、リースエージェント102との間の通信の一実施例にすぎず、制限的であることを意図したものではないことに注意されたい。ネットワーク環境100の様々なシステム間の通信を、図3〜10に関して本明細書で説明するプロセスに関して更に詳細に説明する。   FIG. 1A illustrates one embodiment of communication between the lease agent 102, the consumer system 104, and the producer system 106. As can be seen in FIG. 1A, each consumer system 104 communicates with three of the four available lease agents 102. As indicated by the dashed arrows, this communication may include control information including, for example, requests to access services provided by the producer system 106 and / or control information related to requests to access the producer system 106. Further, as indicated by the solid arrows connecting consumer system 104 to a subset of producer system 106, the communication may include data related to producer system 106 that corresponds to a service request by consumer 104. Further, the lease agents 102 may communicate between the lease agents 102 to provide current status information relating to, for example, the lease agents 102 and / or the producer system 106. The illustrated intercommunication between the various systems of the network environment 100 of FIG. 1A is only one example of communication between the consumer system 104, the producer system 106, and the lease agent 102 and is restrictive. Note that this is not intended. Communication between various systems in the network environment 100 is described in further detail with respect to the processes described herein with respect to FIGS.

図1Bは、プロデューサシステム106によってホスティングされるサービスへのアクセスをコンシューマシステム104に提供し、かつ、プロデューサシステム健康情報を1つ以上のリースエージェント102に提供するネットワーク環境100の実施形態を例示する。図1Bに例示するように、場合によっては、データをプロデューサシステム106からコンシューマシステム104に、及び、コンシューマシステム104からプロデューサシステム106双方に提供することができる。換言すると、場合によっては、データ通信は、双方向性であり得る。   FIG. 1B illustrates an embodiment of a network environment 100 that provides a consumer system 104 with access to services hosted by the producer system 106 and provides producer system health information to one or more lease agents 102. As illustrated in FIG. 1B, in some cases, data may be provided from producer system 106 to consumer system 104 and from consumer system 104 to producer system 106. In other words, in some cases, data communication may be bidirectional.

更に、プロデューサシステム106は、健康情報をリースエージェント102に提供することができ、その結果、リースエージェント102が、どのプロデューサシステム106が機能しているか、及び、どのプロデューサシステム106がコンシューマシステム104に割り当てるために利用可能なリソースを有するか追跡することができる。場合によっては、プロデューサシステム106は、予定された時間にて健康情報を提供することができる。他の場合において、リースエージェント102は、プロデューサシステム106に健康情報を要求するか、又は、健康情報がないかプロデューサシステム106にpingを送ることができる。多くの場合、各プロデューサシステム106は、プロデューサシステム106A〜106Cによって例示するように、単一のリースエージェント102に割り当てられる。しかしながら、いくつかの実施形態において、プロデューサシステム106は、プロデューサシステム106Dの場合のように、複数のリースエージェント102に割り当てられ得る。   In addition, the producer system 106 can provide health information to the lease agent 102 so that the lease agent 102 assigns which producer system 106 is functioning and which producer system 106 is assigned to the consumer system 104. You can keep track of whether you have available resources. In some cases, the producer system 106 can provide health information at a scheduled time. In other cases, the leasing agent 102 can request health information from the producer system 106 or send a ping to the producer system 106 for health information. Often, each producer system 106 is assigned to a single lease agent 102, as illustrated by producer systems 106A-106C. However, in some embodiments, the producer system 106 may be assigned to multiple lease agents 102, as in the case of the producer system 106D.

図1A及び1Bは異なるデータチャネル及び制御チャネルを例示するが、図1A及び1Bに例示するデータチャネル及び制御チャネルの一部又は全部を実施することがネットワーク環境100可能である。したがって、図1Bはコンシューマシステム104とリースエージェント102との間のチャネルを例示しないが、典型的には、制御チャネルが、図1Aに例示するようなコンシューマシステム104とリースエージェント102との間に存在する。更に、チャネルの一部又は全部は、一方向性であり得、一方のシステムがデータ又は制御情報を要求し、他方のシステムがデータ又は制御情報を提供する。あるいは又は更に、チャネルの一部又は全部は、双方向性であり得、通信中の2つのシステムが、データ又は制御情報を要求し、かつ、データ又は制御情報を提供し得る。   Although FIGS. 1A and 1B illustrate different data and control channels, it is possible for the network environment 100 to implement some or all of the data and control channels illustrated in FIGS. 1A and 1B. Thus, FIG. 1B does not illustrate the channel between the consumer system 104 and the lease agent 102, but typically a control channel exists between the consumer system 104 and the lease agent 102 as illustrated in FIG. 1A. To do. Further, some or all of the channels can be unidirectional, with one system requesting data or control information and the other system providing data or control information. Alternatively or additionally, some or all of the channels may be bidirectional, and the two systems in communication may request data or control information and provide data or control information.

図2は、プロデューサシステム106によってホスティングされたサービスへのアクセスをコンシューマシステム104に提供するネットワーク環境100の実施形態の代替図を例示する。図2に例示するように、ネットワーク環境100のシステムの各々は、ネットワーク202を介して互いと通信することができる。ネットワーク202は、任意の形式の有線ネットワーク又は無線ネットワーク及びその組み合わせを含むことができる。例えば、ネットワーク202としては、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、セルラーネットワーク、イサーネットベースのネットワーク、WiFiネットワーク、WiLANネットワークなどを挙げることができる。更に、場合によっては、ネットワーク202としては、インターネットを挙げることができる。   FIG. 2 illustrates an alternative view of an embodiment of a network environment 100 that provides a consumer system 104 with access to services hosted by the producer system 106. As illustrated in FIG. 2, each of the systems in the network environment 100 can communicate with each other via the network 202. The network 202 can include any type of wired or wireless network and combinations thereof. For example, the network 202 can include a local area network (LAN), a wide area network (WAN), a cellular network, an Ethernet-based network, a WiFi network, a WiLAN network, and the like. Further, in some cases, the network 202 can include the Internet.

図2に例示するように、図1Aで説明したシステムの各々は、ハードウェア又はソフトウェアにおいて実装され得るいくつかのサブシステムを含み得る。例えば、コンシューマシステム104は、リースリクエスタ240と、現状モジュール242と、接続モジュール244と、リソースリクエスタ246とを含み得る。リースリクエスタ240は、1つ以上のプロデューサシステム106のリースを1つ以上のリースエージェント102に要求するように構成され得る。場合によっては、リースリクエスタ240は、特定的にプロデューサシステム106へのアクセスを要求し得る。他の場合において、リースリクエスタ240は、プロデューサシステム106へのアクセスを明示的に要求することを伴い、又は伴わずに、サービスへのアクセスを要求し得る。   As illustrated in FIG. 2, each of the systems described in FIG. 1A may include several subsystems that may be implemented in hardware or software. For example, the consumer system 104 may include a lease requester 240, a current status module 242, a connection module 244, and a resource requester 246. Lease requester 240 may be configured to request one or more lease agents 102 for a lease for one or more producer systems 106. In some cases, lease requester 240 may specifically request access to producer system 106. In other cases, the lease requester 240 may request access to the service with or without explicitly requesting access to the producer system 106.

リースリクエスタ240が1つ以上のプロデューサシステム106の識別情報を取得すると、接続モジュール244は、リースエージェント102によって識別されたプロデューサシステム106の一部又は全部との通信を確立しようとすることができる。プロデューサシステム106との接続が確立された後、リソースリクエスタ246は、リソース又はサービスを、コンシューマシステム104が接続を失敗せずに確立したプロデューサシステム106に要求することができる。   Once the lease requester 240 obtains identification information for one or more producer systems 106, the connection module 244 may attempt to establish communication with some or all of the producer systems 106 identified by the lease agent 102. After the connection with the producer system 106 is established, the resource requester 246 can request resources or services from the producer system 106 that the consumer system 104 has established without failing the connection.

現状モジュール242は、プロデューサシステム106に関係する現状情報を取得することができる。この情報は、その後、プロデューサシステム106へのアクセスに備えてコンシューマシステム104からの要求に応答してプロデューサシステムへのアクセスに備えてリースエージェント102を促進するためにリースエージェントに提供することができる。この情報は、リースエージェント102の対応する現状モジュール228に供給され得る。場合によっては、現状モジュール242は、プロデューサシステム106との接続の確立の成功又は失敗に基づいて現状情報を取得する。他の場合において、現状情報は、プロデューサシステム106及び/又はプロデューサシステム106の一部として含まれる対応する現状モジュール262に問い合わせることによって取得される。現状情報は、プロデューサシステム106との接続及び/又はプロデューサシステム106によるサービスのプロビジョニングに関する任意の情報を含み得る。例えば、現状情報は、コンシューマシステム104とプロデューサシステム106との間の通信の確立の成功又は失敗に関係する情報を含み得る。別の実施例として、現状情報は、所与の期間中にプロデューサシステム106にアクセスするコンシューマシステム104の数を含み得る。更なる実施例としては、プロデューサシステム106の応答性、プロデューサシステム106の能力、プロデューサシステムなどにて利用可能であるリソースに関係する情報を挙げることができる。   The current status module 242 can obtain current status information related to the producer system 106. This information can then be provided to the lease agent to facilitate the lease agent 102 for access to the producer system in response to a request from the consumer system 104 for access to the producer system 106. This information may be provided to the corresponding current status module 228 of the lease agent 102. In some cases, status module 242 obtains status information based on the success or failure of establishing a connection with producer system 106. In other cases, the current status information is obtained by querying the producer system 106 and / or the corresponding current status module 262 included as part of the producer system 106. The current status information may include any information regarding connection with the producer system 106 and / or provisioning of services by the producer system 106. For example, the current status information may include information related to the success or failure of establishing communication between the consumer system 104 and the producer system 106. As another example, the current status information may include the number of consumer systems 104 accessing the producer system 106 during a given period. Further examples can include information related to resources available at the producer system 106, the responsiveness of the producer system 106, the capabilities of the producer system 106, the producer system, and the like.

図2に例示するように、プロデューサシステム106は、登録モジュール260と、現状モジュール262とを含み得る。先述のように、現状モジュール262は、プロデューサシステム106に関係する現状情報をプロデューサシステム106に関係する現状情報を要求するコンシューマシステム104に提供し得る。更に、場合によっては、現状モジュール262は、独自に、又は、リースエージェント102からの要求に応答して現状情報をリースエージェント102に提供し得る。   As illustrated in FIG. 2, the producer system 106 may include a registration module 260 and a status module 262. As described above, the current status module 262 may provide current status information related to the producer system 106 to the consumer system 104 that requests current status information related to the producer system 106. Further, in some cases, status module 262 may provide status information to lease agent 102 either independently or in response to a request from lease agent 102.

登録モジュール260は、プロデューサシステム106をリースエージェント102に登録するように構成される。ある特定の実施形態において、登録モジュール260は、プロデューサシステム106が最初に起動されたときに、プロデューサシステム106を初期化ルーチンの一部として自動的に登録し得る。他の実施形態において、登録モジュール260は、ユーザ又はアプリケーションからのコマンドに応答してプロデューサシステム106を登録し得る。場合によっては、登録モジュール260は、プロデューサシステム106が割り当てられたリースエージェントがもはや利用可能ではないと判定したときにプロデューサシステム106を再登録し得る。   Registration module 260 is configured to register producer system 106 with lease agent 102. In certain embodiments, the registration module 260 may automatically register the producer system 106 as part of an initialization routine when the producer system 106 is first started. In other embodiments, the registration module 260 may register the producer system 106 in response to commands from a user or application. In some cases, registration module 260 may re-register producer system 106 when producer system 106 determines that the assigned lease agent is no longer available.

先述のように、リースエージェント102は、また、現状モジュール228を含み得る。現状228モジュールは、プロデューサシステム106の現状に関して、コンシューマシステム104及びプロデューサシステム106の一方又は両方から現状情報を受信することができる。更に、現状モジュール228は、プロデューサシステム106に関連した現状情報を別のリースエージェント102に提供し得る。更に、場合によっては、現状モジュール228は、現状情報を他のリースエージェント102に要求することによって、他のリースエージェント102の健康チェックを実行し得る。例えば、現状モジュール228は、健康チェック要求がリースエージェント102によって答えられるかどうかに基づいて、リースエージェント102がもはや利用可能ではないかどうか判定し得る。場合によっては、現状モジュール228は、現状情報をプロデューサシステム106に要求することによってプロデューサシステム106の健康チェックを実行することができる。   As previously described, the lease agent 102 may also include a status module 228. The current status 228 module can receive current status information from one or both of the consumer system 104 and the producer system 106 regarding the current status of the producer system 106. Further, the status module 228 may provide status information associated with the producer system 106 to another lease agent 102. Further, in some cases, the current status module 228 may perform health checks on other lease agents 102 by requesting current status information from other lease agents 102. For example, status module 228 may determine whether lease agent 102 is no longer available based on whether a health check request is answered by lease agent 102. In some cases, status module 228 can perform a health check of producer system 106 by requesting status information from producer system 106.

現状モジュール228に加えて、リースエージェント102は、プロデューサリポジトリ220と、分割システム222と、リースシステム224と、登録モジュール226とを含むことができる。プロデューサリポジトリ220は、プロデューサシステム106に関係する情報を記憶する任意の形式のデータベース、リポジトリ、又は記憶装置を含むことができる。例えば、プロデューサリポジトリ220は、プロデューサシステム106に関連した現状情報と、プロデューサシステム106の識別情報と、リースエージェント102間のプロデューサシステム106の割当て又はパーティションに関係する情報とを含むことができる。いくつかの実施形態において、プロデューサリポジトリ220にて記憶された情報の一部又は全部は、プロデューサリポジトリ220の代わりに、又は、プロデューサリポジトリ220に加えてエージェントリポジトリ206にて記憶され得る。   In addition to the current status module 228, the lease agent 102 can include a producer repository 220, a split system 222, a lease system 224, and a registration module 226. The producer repository 220 can include any form of database, repository, or storage device that stores information related to the producer system 106. For example, the producer repository 220 may include current status information associated with the producer system 106, identification information of the producer system 106, and information related to the allocation or partition of the producer system 106 between the lease agents 102. In some embodiments, some or all of the information stored in the producer repository 220 may be stored in the agent repository 206 instead of or in addition to the producer repository 220.

分割システム222は、利用可能なプロデューサシステム106をネットワーク環境100のリースエージェント102間で分割することができる任意のシステムを含むことができる。一般的に、分割システム222は、利用可能なプロデューサシステム106を利用可能なプロデューサシステム106を重なり合わないか又は非等価のサブセットに分割して、その後、1つのサブセットを各リースエージェント102に割り当てる。したがって、4つのリースエージェント102がある場合、プロデューサシステム106は、1つのサブセットは、各リースエージェント102に関連する4つのサブセットに分割され得る。しかしながら、場合によっては、サブセットは重なり合い得る。そのような場合、プロデューサシステム106は、複数のリースエージェント102に割り当てられ得るか、又は、複数のリースエージェント102と関連づけられ得る。リースエージェント102間でプロデューサシステム106を分割するプロセスは、ネットワーク環境100が最初に初期化されるときに発生し得る。更に、プロセスは、定期的に再発生し得る。例えば、プロデューサシステム106を分割するプロセスは、利用可能なプロデューサシステム106の追加を介してであるか、削除を介してであるかどうかにかかわらず、利用可能なプロデューサシステム106の数の変化があるたびに、又は、利用可能なプロデューサシステム106における閾値変化があるときに発生し得る。   The partitioning system 222 can include any system that can partition the available producer system 106 among the lease agents 102 of the network environment 100. In general, the splitting system 222 divides the available producer system 106 into non-overlapping or non-equivalent subsets, and then assigns one subset to each lease agent 102. Thus, if there are four lease agents 102, producer system 106 may divide one subset into four subsets associated with each lease agent 102. However, in some cases, the subsets can overlap. In such cases, producer system 106 may be assigned to multiple lease agents 102 or may be associated with multiple lease agents 102. The process of dividing the producer system 106 among the lease agents 102 can occur when the network environment 100 is first initialized. Furthermore, the process can be regenerated periodically. For example, there is a change in the number of available producer systems 106, whether the process of dividing the producer system 106 is through the addition or removal of available producer systems 106. It can occur every time or when there is a threshold change in the available producer system 106.

コンシューマシステム104がプロデューサシステム106へのアクセスをリースエージェント102に要求するたびに、リースシステム224は、例えば、プロデューサシステム106の場所(プロデューサシステム106(例えば、地理学上の場所、データセンタ、サーバラック、など)に関連した現状情報、及び、プロデューサシステム106がコンシューマシステム104がアクセスに求めているリソースにアクセスできるかどうかを含むいくつかの要素に基づいてコンシューマシステム104にリースするべきプロデューサシステム106を識別することができる。リースシステム224がプロデューサシステムを識別すると、リースシステム224は、プロデューサシステム106の識別情報を要求しているコンシューマシステム104に提供することができる。更に、場合によっては、リースシステム224は、コンシューマシステム104がプロデューサシステム106にアクセスするように許可されるリース時間をコンシューマシステム104に提供し得る。あるいは又は更に、リースシステム224は、多量の何らかの他の消費可能なリソース又はメトリックをコンシューマシステム104に提供し得る。例えば、消費可能なリソースは、計算サイクル、金、ディスク記憶装置、接続要求などである可能性がある。   Each time the consumer system 104 requests the lease agent 102 to access the producer system 106, the lease system 224 may, for example, include the producer system 106 location (producer system 106 (eg, geographic location, data center, server rack). , Etc.) and the producer system 106 to lease to the consumer system 104 based on several factors including whether the producer system 106 has access to the resources that the consumer system 104 is seeking access to Once the lease system 224 has identified the producer system, the lease system 224 can request that the consumer system requesting the producer system 106 identification information. 104. In addition, in some cases, the lease system 224 may provide the consumer system 104 with a lease time that allows the consumer system 104 to access the producer system 106. Alternatively, or additionally The system 224 may provide a large amount of some other consumable resource or metric to the consumer system 104. For example, the consumable resource may be a calculation cycle, money, disk storage, a connection request, etc. .

登録モジュール226は、プロデューサシステム106の登録モジュール260の相手側の役目をし得る。リースエージェント102に登録する要求をプロデューサシステム106から受け取ると、リースエージェント102の登録モジュール260は、プロデューサシステム106がリースエージェント102に割り当てられているかどうか判定し得る。割り当てられている場合、登録モジュール226は、プロデューサシステム106を登録することができ、これは、プロデューサシステム106の利用可能性現状、ならびに、例えば、プロデューサリポジトリ220でのプロデューサシステム106に関連した現状情報を記憶することを含み得る。他方、登録モジュール226が、プロデューサシステム106がリースエージェント102に割り当てられていないと判定した場合、登録モジュール226は、プロデューサシステム106に割り当てられている別のリースエージェント102を識別することができ、かつ、プロデューサシステム106に割り当てられるリースエージェント102の識別情報をプロデューサシステム106に知らせることができる。   Registration module 226 may serve as a counterpart to registration module 260 of producer system 106. Upon receiving a request from the producer system 106 to register with the lease agent 102, the registration module 260 of the lease agent 102 may determine whether the producer system 106 is assigned to the lease agent 102. If assigned, the registration module 226 can register the producer system 106, which is the availability status of the producer system 106, as well as current status information associated with the producer system 106, eg, in the producer repository 220. Can be stored. On the other hand, if registration module 226 determines that producer system 106 is not assigned to lease agent 102, registration module 226 can identify another lease agent 102 assigned to producer system 106, and The producer system 106 can be informed of the identification information of the lease agent 102 assigned to the producer system 106.

ある特定の実施形態において、ネットワーク環境100は、エージェントリポジトリ206及び/又は分割システム204を含み得る。エージェントリポジトリ206は、ネットワーク環境100内に含まれたリースエージェント102及び/又はプロデューサシステム106に関する情報を含み得る。エージェントリポジトリ206内に記憶された情報は、リースエージェント102、コンシューマシステム104、及びプロデューサシステム106のうちの1つ以上によって使用され得る。例えば、場合によっては、リースエージェント102は、エージェントリポジトリ206を使用して、ネットワーク環境100のプロデューサシステム106の数及び/又は識別情報を判定し得る。この情報を使用して、リースエージェント102は、プロデューサシステム106を分割する方法を判定することができる。場合によっては、コンシューマシステム104は、エージェントリポジトリ206を使用して、コンシューマシステム104によるアクセスのためにプロデューサシステム106がリースエージェント102によって識別された後にどこにプロデューサシステム106が位置するか判定し得る。エージェントリポジトリ206を使用することの別の実施例として、場合によっては、プロデューサシステム106はエージェントリポジトリにアクセスして、例えば、プロデューサシステム106が最初に起動されると、アクセスするべきリースエージェント102の識別情報を判定し得る。   In certain embodiments, the network environment 100 may include an agent repository 206 and / or a split system 204. Agent repository 206 may include information regarding lease agent 102 and / or producer system 106 included within network environment 100. Information stored in agent repository 206 may be used by one or more of lease agent 102, consumer system 104, and producer system 106. For example, in some cases, the lease agent 102 may use the agent repository 206 to determine the number and / or identification information of the producer system 106 in the network environment 100. Using this information, the lease agent 102 can determine how to partition the producer system 106. In some cases, consumer system 104 may use agent repository 206 to determine where producer system 106 is located after producer system 106 has been identified by lease agent 102 for access by consumer system 104. As another example of using the agent repository 206, in some cases, the producer system 106 accesses the agent repository, eg, identifying the lease agent 102 to access when the producer system 106 is first started. Information can be determined.

いくつかの実施形態において、分割システム204は、リースエージェント102間でプロデューサシステム106を分割するプロセスを実行し得る。そのような実施形態において、リースエージェント102は、それ自体分割システム222を含まない場合がある。   In some embodiments, the splitting system 204 may perform a process of splitting the producer system 106 among the lease agents 102. In such an embodiment, the lease agent 102 may not include the split system 222 itself.

いくつかの実施形態において、図2の例示するシステムに含まれるモジュールのうちの少なくとも一部は、システムによって提供されるアプリケーション及び/又はリソースと一体化され得る。例えば、プロデューサシステム106の現状モジュール262は、プロデューサシステム106によって提供されるアプリケーション及び/又はリソースと一体化され得る。同様に、現状モジュール242は、コンシューマシステム104によってホスティングされるアプリケーション又はサービスと一体化され得る。   In some embodiments, at least some of the modules included in the exemplary system of FIG. 2 may be integrated with applications and / or resources provided by the system. For example, the current state module 262 of the producer system 106 may be integrated with applications and / or resources provided by the producer system 106. Similarly, the current state module 242 can be integrated with applications or services hosted by the consumer system 104.

プロデューサシステムにおけるサービスにアクセするための例示的なプロセス
図3は、プロデューサシステム106でのサービスにアクセスするプロセス300の実施形態を例示する。プロセス300は、リースエージェント102からプロデューサシステム106にアクセスするリース又は一時的な認可を取得することによって、プロデューサシステム106でのサービス又はコンピュータリソースにアクセスすることができる任意のシステムによって実施することができる。例えば、プロセス300は、全体的に又は部分的に、少し例を挙げれば、コンシューマシステム104、リースリクエスタ240、接続モジュール244、リソースリクエスタ246、及び現状モジュール242によって実施することができる。任意の数のシステムが、全体的に又は部分的にプロセス300を実行することができるが、論じる内容を簡素化するために、プロセス300の各部を特定のシステムを参照して説明する。
Exemplary Process for Accessing Services at a Producer System FIG. 3 illustrates an embodiment of a process 300 for accessing services at a producer system 106. Process 300 may be implemented by any system that can access services or computer resources at producer system 106 by obtaining a lease or temporary authorization to access producer system 106 from lease agent 102. . For example, process 300 may be implemented in whole or in part by consumer system 104, lease requester 240, connection module 244, resource requester 246, and status module 242 to name a few. Although any number of systems may perform process 300 in whole or in part, to simplify the discussion, each part of process 300 will be described with reference to a particular system.

プロセス300は、ブロック302にて始まり、例えば、リースリクエスタ240は、プロデューサシステム106へのアクセスのリース要求を生成する。場合によっては、リース要求は、コンシューマシステム104上のコンシューマシステム104又はアプリケーションのユーザがアクセスすることを望むコンピュータリソース又はサービスの識別情報を含み得る。他の場合において、リース要求は、コンシューマシステム104によりアクセスされるべきプロデューサシステム106でのサービスを指定することなくプロデューサシステム106にアクセスする要求を含む。   Process 300 begins at block 302, for example, lease requester 240 generates a lease request for access to producer system 106. In some cases, the lease request may include identification information of a computer resource or service that the consumer system 104 or application user on the consumer system 104 desires to access. In other cases, the lease request includes a request to access the producer system 106 without specifying a service at the producer system 106 that is to be accessed by the consumer system 104.

ブロック304にて、リースリクエスタ240は、リース要求をネットワーク環境100内に含まれたリースエージェント102のサブセットに提供する。場合によっては、リースリクエスタ240は、リース要求を一部又は全部の利用可能なリースエージェント102に提供し得る。リースリクエスタ240は、ネットワーク環境100の各リースエージェント102の識別情報を含み得るエージェントリポジトリ206にアクセスすることによって利用可能なリースエージェント102を識別し得る。他の場合において、コンシューマシステム104は、各々、初期化又は起動で、又は、コンシューマシステム104の動作中の任意の他の時間にて、リースエージェント102の識別情報で構成し得る。例えば、ユーザ(例えば、管理者)は、リースエージェント102の識別情報をコンシューマシステム104に提供し得る。リースエージェント102の識別は、リースエージェント102の名前、リースエージェント102のアドレス(例えば、インターネットプロトコル(IP)アドレス又は他のネットワークアドレス),及び/又は、ネットワーク環境100内のリースエージェント102を識別するために使用することができる任意の他の情報を含むことができる。いくつかの実施形態において、リースエージェント102にリース要求を提供することは、リースエージェント102に、コンシューマシステム104が以前にやりとりしている1つ以上のプロデューサシステム106に関連した現状情報を提供することを含むことができる。   At block 304, lease requester 240 provides the lease request to a subset of lease agents 102 included in network environment 100. In some cases, lease requester 240 may provide a lease request to some or all available lease agents 102. The lease requester 240 may identify available lease agents 102 by accessing an agent repository 206 that may include identification information for each lease agent 102 in the network environment 100. In other cases, the consumer system 104 may each be configured with the identification information of the lease agent 102 at initialization or startup, or at any other time during operation of the consumer system 104. For example, a user (eg, an administrator) may provide lease system 102 identification information to consumer system 104. The identification of the lease agent 102 is for identifying the name of the lease agent 102, the address of the lease agent 102 (eg, an Internet Protocol (IP) address or other network address), and / or the lease agent 102 in the network environment 100. Can include any other information that can be used. In some embodiments, providing the lease request to the lease agent 102 provides the lease agent 102 with current status information related to one or more producer systems 106 with which the consumer system 104 has previously communicated. Can be included.

ブロック306にて、コンシューマシステム104は、プロデューサシステム106の識別表示をブロック304にてリース要求を提供されたリースエージェント102のサブセットの各々から受信する。場合によっては、コンシューマシステム104は、プロデューサシステム106の識別表示をリースエージェント102のサブセットの一部から受信する。例えば、コンシューマシステム104は、プロデューサシステム106の識別表示を1つか、2つのリースエージェント102、又は、リースエージェント102のサブセット全体から受信し得る。コンシューマシステム104がいずれのプロデューサシステム106の識別情報も受信しない場合、プロセス300は終了し得、ブロック302及び/又は304に関連した動作が繰り返され得、及び/又は、ユーザ(例えば、管理者)に警告が発せられ得る。場合によっては、プロデューサシステム106の識別表示を受信することは、コンシューマシステム104がプロデューサシステム106にアクセスするか、又は、プロデューサシステム106へのアクセスをリースするように許可される時間の長さを受信することを含む。リースエージェント102のサブセットの各リースエージェント102は、単一のプロデューサシステム106の識別情報を提供することができる。しかしながら、場合によっては、リースエージェントのサブセットのリースエージェント102の各々は、複数のプロデューサシステム106の識別情報を提供し得る。リースエージェント102の識別情報の場合と同様に、プロデューサシステム106の識別情報は、コンシューマシステム104に対してプロデューサシステム106を識別するか、又は、プロデューサシステム106にアクセスする方法を提供する任意の情報を含むことができる。例えば、プロデューサシステム106の識別情報は、例えば、エージェントリポジトリ206にて記憶されるテーブル又はデータ構造においてプロデューサシステム106の場所を特定するために使用することができる名前、アドレス(例えば、IPアドレス)、又は識別子を含むことができる。   At block 306, the consumer system 104 receives an identification of the producer system 106 from each of the subsets of lease agents 102 that were provided a lease request at block 304. In some cases, consumer system 104 receives an indication of producer system 106 from a subset of lease agent 102. For example, consumer system 104 may receive an identification of producer system 106 from one or two lease agents 102, or an entire subset of lease agents 102. If the consumer system 104 does not receive any producer system 106 identification information, the process 300 may end, the operations associated with blocks 302 and / or 304 may be repeated, and / or a user (eg, an administrator). A warning can be issued. In some cases, receiving the identification of producer system 106 receives the length of time that consumer system 104 is allowed to access producer system 106 or lease access to producer system 106. Including doing. Each lease agent 102 in the subset of lease agents 102 can provide identification information for a single producer system 106. However, in some cases, each lease agent 102 in the subset of lease agents may provide identification information for multiple producer systems 106. As with the lease agent 102 identification information, the producer system 106 identification information may be any information that identifies the producer system 106 to the consumer system 104 or provides a way to access the producer system 106. Can be included. For example, the identification information of the producer system 106 may be, for example, a name, address (eg, IP address) that can be used to identify the location of the producer system 106 in a table or data structure stored in the agent repository 206. Or an identifier can be included.

場合によっては、ブロック306は、リースエージェント102のサブセットの各々によって識別されたプロデューサシステム106について現状情報を受信することを含み得る。この現状情報は、コンシューマシステム104がどのプロデューサシステム106にアクセスするべきかを判定する一助になるように使用され得る。場合によっては、現状情報は、プロデューサシステム106と通信するリースエージェント102によって取得され得る。あるいは又は更に、現状情報は、以前プロデューサシステム106と通信したコンシューマシステム104から取得され得る。受信された現状情報は、リースエージェント102が利用可能な現状情報の独立したセット又はサブセットを含み得る。場合によっては、受信された現状情報は、リースエージェント102が利用可能な現状情報と交差する場合もあれば、交差しない場合もある。   In some cases, block 306 may include receiving current status information for the producer system 106 identified by each of the subsets of lease agents 102. This current status information can be used to help determine which producer system 106 the consumer system 104 should access. In some cases, current status information may be obtained by a lease agent 102 that communicates with the producer system 106. Alternatively or additionally, current status information may be obtained from the consumer system 104 that previously communicated with the producer system 106. The received current status information may include an independent set or subset of current status information available to the lease agent 102. In some cases, the received current status information may or may not intersect with current status information available to the lease agent 102.

接続モジュール244は、ブロック308にて、ブロック306にて識別されたプロデューサシステム106の各々との接続を開始しようとする。場合によっては、接続モジュール244は、ブロック306にて識別されたプロデューサシステム106のサブセットとの接続を開始しようとし得る。接続を開始しようとすることは、プロデューサシステム106との通信チャネルを開成しようとする任意のプロセスを含むことができる。例えば、接続を開始しようとすることは、接続要求パケットをプロデューサシステム106に送ることを含むことができる。一般的に、接続モジュール244は、コンシューマシステム104がプロデューサシステム106の識別情報を受信したときにプロデューサシステム106との接続を確立しようとし得る。例えば、リースエージェント102はコンシューマシステム104と異なる距離に位置し得るか、又は、異なる負荷を有し得るためにコンシューマシステム104が複数のリースエージェント102から同時に応答を受信する場合はめったにないので、接続モジュール244は、複数のプロデューサシステム106との接続を同時に開始する場合はめったにない。その代わりに、プロデューサシステム106との接続を開始する試みは、小さい度合いであっても、ずらして行われ得る。しかしながら、いくつかの実施形態において、接続モジュール244は、同時に複数のプロデューサシステム106との接続を開始しようとし得る。例えば、場合によっては、コンシューマモジュール104は、リースエージェント102のサブセットの各々が応答するまで待つ場合があるか、又は、状況によっては、応答は、複数のリースエージェント102から同時に受信され得る。   The connection module 244 attempts to initiate a connection with each of the producer systems 106 identified at block 306 at block 308. In some cases, connection module 244 may attempt to initiate a connection with a subset of producer system 106 identified at block 306. Attempting to initiate a connection can include any process that attempts to open a communication channel with the producer system 106. For example, attempting to initiate a connection can include sending a connection request packet to the producer system 106. In general, the connection module 244 may attempt to establish a connection with the producer system 106 when the consumer system 104 receives the producer system 106 identification information. For example, the lease agent 102 may be located at a different distance from the consumer system 104, or may have different loads, so it is rare if the consumer system 104 receives responses from multiple lease agents 102 at the same time. Module 244 rarely initiates connections with multiple producer systems 106 simultaneously. Instead, attempts to initiate a connection with the producer system 106 may be staggered, even to a small degree. However, in some embodiments, the connection module 244 may attempt to initiate connections with multiple producer systems 106 at the same time. For example, in some cases, consumer module 104 may wait until each of a subset of lease agents 102 responds, or in some circumstances responses may be received from multiple lease agents 102 simultaneously.

ブロック310にて、リソースリクエスタ246は、接続モジュール244が失敗せずに接続を確立する 第1のプロデューサシステム106のサービス又はコンピュータリソースにアクセスするか、又は、該にサービス又はコンピュータリソースへのアクセスを要求する。場合によっては、プロデューサシステム106との接続を失敗せずに確立することは、確認応答(「ack」)パケットなどをプロデューサシステム106から受信することを含むことができる。ブロック308に関して先述のような類似した理由で、プロデューサシステム106との接続は、ずらして確立され得る。しかしながら、接続モジュール244が同時に又は実質的に同時にて1つ超のプロデューサシステム106との接続を確かに失敗せずに確立する場合において、リソースリクエスタ246は、サービスへのアクセスを要求するべきプロデューサシステム106をランダムに選択することができる。あるいは、リソースリクエスタ246は、選択アルゴリズムを使用してどのプロデューサシステム106にサービスを要求するべきか判定することができる。選択アルゴリズムは、制限されず、例えば、ラウンドロビン、最小時間未参照(LRU)、又は、任意の他の形式の選択アルゴリズムを含むことができる。いくつかの実施形態において、コンシューマシステム104は、コミュニケーション接続又は通信チャネルが確立されたプロデューサシステム106の一部又は全部のサービスへのアクセスを要求し得る。場合によっては、サービスは、同じ形式であり得る。他の場合において、コンシューマシステム104は、各プロデューサシステム106の異なるサービスへのアクセスを要求し得る。   At block 310, the resource requester 246 accesses the service or computer resource of the first producer system 106 that establishes the connection without failure, or the access to the service or computer resource. Request. In some cases, establishing the connection with the producer system 106 without failure may include receiving an acknowledgment (“ack”) packet or the like from the producer system 106. For similar reasons as described above with respect to block 308, the connection with the producer system 106 may be staggered. However, in cases where the connection module 244 establishes a connection with more than one producer system 106 at the same time or substantially at the same time, the resource requester 246 may request the producer system to request access to the service. 106 can be selected at random. Alternatively, resource requester 246 can use a selection algorithm to determine which producer system 106 should request the service. The selection algorithm is not limited and can include, for example, round robin, least time unreferenced (LRU), or any other type of selection algorithm. In some embodiments, the consumer system 104 may request access to some or all services of the producer system 106 with which a communication connection or channel has been established. In some cases, the services may be in the same format. In other cases, consumer system 104 may request access to different services of each producer system 106.

更に、コンシューマシステム104が特定の時点にて要求するより多くのプロデューサシステムで接続が失敗せずに確立される場合において、コンシューマシステム104は、1つ以上の更なるプロデューサシステム106へのリースを放棄し得る。あるいは、コンシューマシステム104は、更なるプロデューサシステム106へのリースをリースプールに維持して、更なるプロデューサシステム106との接続を維持し得る。そのような場合、更なるプロデューサシステム106とのリース期間中に何らかの時間にてコンシューマシステム104が更なるサービスへのアクセスを必要とする場合、コンシューマシステム104は、リースがリースプール内に維持された更なるプロデューサシステム106の1つのサービスを利用することができる。   Further, if the connection is established without failure with more producer systems that the consumer system 104 requires at a particular point in time, the consumer system 104 abandons the lease to one or more additional producer systems 106. Can do. Alternatively, the consumer system 104 may maintain a lease to a further producer system 106 on a lease pool to maintain a connection with the further producer system 106. In such a case, if the consumer system 104 needs access to additional services at some time during the lease period with the additional producer system 106, the consumer system 104 has maintained the lease in the lease pool. One service of the further producer system 106 can be used.

ブロック312にて、現状モジュール242は、現状メタデータを第1の接続されたプロデューサシステム106から受信する。場合によっては、現状モジュール242は、現状メタデータを、接続モジュール244が失敗せずに通信チャネルを確立する各プロデューサシステム106から受信し得る。更に、現状モジュール242は、現状メタデータを、接続モジュール244が通信チャネルを確立することができなかったプロデューサシステム106から取得し得る。例えば、接続モジュール244が特定のプロデューサシステム106で通信チャネルを確立することができなかったという事実が、プロデューサシステム106に関連した現状メタデータとして含まれ得る。現状メタデータは、制限されず、プロデューサシステム106との接続を確立することに関係する情報、プロデューサシステム106との接続を維持することに関係する情報、プロデューサシステム106の応答性に関係する情報、及び、プロデューサシステム106にて利用可能であるサービスに関係する情報を挙げることができる。例えば、現状メタデータとしては、プロデューサシステム106に接続する際に経過した時間量、プロデューサシステム106との接続における待ち時間、プロデューサシステム106での利用可能な処理リソース、要求が(例えば、失われたパケットのために)プロデューサシステム106に再送されなければならない回数、及び、プロデューサシステム106の現状と関連づけることができる任意の他の形式のデータを挙げることができる。   At block 312, the status module 242 receives status metadata from the first connected producer system 106. In some cases, the current status module 242 may receive current status metadata from each producer system 106 that establishes a communication channel without the connection module 244 failing. Further, the current status module 242 may obtain current status metadata from the producer system 106 that the connection module 244 was unable to establish a communication channel. For example, the fact that the connection module 244 was unable to establish a communication channel with a particular producer system 106 may be included as current metadata associated with the producer system 106. The current metadata is not limited and includes information relating to establishing a connection with the producer system 106, information relating to maintaining a connection with the producer system 106, information relating to the responsiveness of the producer system 106, In addition, information related to services available in the producer system 106 can be cited. For example, the current metadata includes the amount of time that has elapsed when connecting to the producer system 106, the waiting time for connecting to the producer system 106, the processing resources available in the producer system 106, and requests (eg, lost There may be the number of times (for packets) that must be retransmitted to the producer system 106 and any other type of data that can be associated with the current state of the producer system 106.

いくつかの実施形態において、ブロック312は、ブロック310の前に実行され得る。そのような場合、現状モジュール242は、現状情報を各々の接続されたプロデューサシステム106から受信し得る。そのような場合のコンシューマシステム104は、受信された現状情報に基づいてサービスにアクセスするべきプロデューサシステム106を選択することができる。   In some embodiments, block 312 may be performed before block 310. In such a case, current status module 242 may receive current status information from each connected producer system 106. The consumer system 104 in such a case can select the producer system 106 that should access the service based on the received current status information.

決定ブロック314にて、例えば、リソースリクエスタ246を使用するコンシューマシステム104は、別のサービスへのアクセスが望まれるかどうか判定する。この他のサービスは、異なるサービスである場合があれば、又は、同じ形式のサービスである場合がある。例えば、場合によっては、1つのサービスは、ネットワークアプリケーションにアクセスするためのものであり得、別のサービスは、ダウンロードネットワークリソース(例えば、ウェブページなど、ネットワークページによってホスティングされた画像又は映像)のためのものであり得る。あるいは、両方のサービスが、ネットワークリソースをダウンロードするのに使用され得る。例えば、ユーザは、2つのネットワークページ又はリソースを2つのネットワークページからダウンロードし得る。そうである場合、接続モジュール244は、ブロック308にて識別されたプロデューサシステム106との接続を開始する。場合によっては、接続モジュール244は、コンシューマシステム244に関連したリースプールにおいて識別されたプロデューサシステム106との接続を開始する。リースプールは、リソースへのアクセスを提供するコンシューマシステム104に目下リースされているプロデューサシステム106の識別情報を含むことができる。場合によっては、リースプールは、コンシューマシステム104にリースされているが、コンシューマシステム104が目下アクセスしていないプロデューサシステム106を含む。リースプールが一切のリースを含まない場合、コンシューマシステム104は、例えば、リースリクエスタ240を使用して再びプロセス300を実行し得る。いくつかの実施形態において、決定ブロック314は、随意的である。例えば、プロデューサシステム106がコンシューマシステム104にリースされない場合、プロセス300は、ブロック302で始まって繰り返され得る。   At decision block 314, for example, the consumer system 104 using the resource requester 246 determines whether access to another service is desired. The other service may be a different service or may be the same type of service. For example, in some cases, one service may be for accessing a network application, and another service is for download network resources (eg, images or videos hosted by a network page, such as a web page). Can be. Alternatively, both services can be used to download network resources. For example, a user may download two network pages or resources from two network pages. If so, the connection module 244 initiates a connection with the producer system 106 identified at block 308. In some cases, the connection module 244 initiates a connection with the producer system 106 identified in the lease pool associated with the consumer system 244. The lease pool may include identification information for the producer system 106 that is currently leased to the consumer system 104 that provides access to the resource. In some cases, the lease pool includes a producer system 106 that is leased to the consumer system 104 but is not currently accessed by the consumer system 104. If the lease pool does not include any leases, consumer system 104 may perform process 300 again using, for example, lease requester 240. In some embodiments, the decision block 314 is optional. For example, if the producer system 106 is not leased to the consumer system 104, the process 300 may be repeated starting at block 302.

いくつかの実施形態において、プロセス300は、プロデューサシステム106に以前のリースを更新するのに使用することができる。そのような場合、ブロック302にて生成されたリース要求は、コンシューマシステム104が以前にアクセスしたプロデューサシステム106の識別情報を含むことができる。更に、リース要求は、要求が更新要求であるという表示を含むことができる。更新リース要求は、その後、コンシューマシステム104に対してプロデューサシステム106を最初に識別したリースエージェント102に提供することができる。リースエージェント102が、プロデューサシステム106がまだ利用可能であり及び/又はコンシューマシステム104にサービスを提供する能力を有すると判定すると想定して、リースエージェント102は、更新要求が承認されたことを表示することができ、かつ、ブロック306の一部としてコンシューマシステム104への更新リースの時間の長さを提供することができる。コンシューマシステム104が1つ以上の更なるプロデューサシステム106とのリースをリースプールにおいて維持し、リース期間が、コンシューマシステム104が更なるプロデューサシステム106でのサービスを利用することなく、更なるプロデューサシステム106について過ぎてしまう場合、コンシューマシステム104は、リースが、更なるプロデューサシステムに対応するリース更新要求106をリースエージェント102に送ることなく無効となることを可能にすることができる。   In some embodiments, process 300 can be used to renew a previous lease with producer system 106. In such a case, the lease request generated at block 302 may include identification information of the producer system 106 that the consumer system 104 has previously accessed. In addition, the lease request can include an indication that the request is an update request. The renewal lease request can then be provided to the lease agent 102 that initially identified the producer system 106 to the consumer system 104. Assuming that the lease agent 102 determines that the producer system 106 is still available and / or has the ability to service the consumer system 104, the lease agent 102 indicates that the renewal request has been approved. And a length of time for the renewal lease to the consumer system 104 can be provided as part of the block 306. The consumer system 104 maintains a lease with one or more additional producer systems 106 in the lease pool, and the lease period does not require the consumer system 104 to use the services at the additional producer system 106, so that the additional producer system 106. If so, the consumer system 104 may allow the lease to be invalidated without sending the lease renewal request 106 corresponding to the further producer system to the lease agent 102.

場合によっては、リース更新を要求するプロセスは、既存のリースの満了時に発生し得る。他の場合において、例えば、リソースリクエスタ246を使用するコンシューマシステム104は、1つ以上のプロデューサシステム106でのサービスにアクセスする既存のサービス要求がリース時間が満了する前に完了されない確率を判定し得る。確率が更新閾値を満たす場合、コンシューマシステム104は、既存のリースの満了前の何らかの時点にてプロデューサシステム106のリースの再開を要求し得、その結果、リース満了に起因するサービス停止が低減又は防止される。   In some cases, the process of requesting a lease renewal can occur at the expiration of an existing lease. In other cases, for example, consumer system 104 using resource requester 246 may determine the probability that an existing service request to access a service at one or more producer systems 106 will not be completed before the lease time expires. . If the probability meets the renewal threshold, the consumer system 104 may request that the producer system 106 resume the lease at some point prior to the expiration of the existing lease, thereby reducing or preventing service outages due to lease expiration. Is done.

ある特定の実施形態において、プロデューサシステム106へのリースアクセスは、プロデューサシステム106及び/又はリースエージェント102の1つ以上に関連した組織又は事業体への支払いを行うことを含み得る。例えば、プロデューサシステム106は、アクセス有料サービスの一部として提供され得る。あるいは、プロデューサシステム106へのリースアクセスは、いかなる種類の支払いも必要しない場合がある。そのような実施形態において、リースは、プロデューサシステムへのアクセスの一時的な性質106を指し、金融リースを指すのではない。   In certain embodiments, lease access to producer system 106 may include making payments to an organization or entity associated with one or more of producer system 106 and / or lease agent 102. For example, the producer system 106 may be provided as part of an access fee service. Alternatively, lease access to the producer system 106 may not require any type of payment. In such an embodiment, a lease refers to the temporary nature 106 of access to the producer system and not a financial lease.

プロデューサシステムのリースをコンシューマシステムに提供する例示的なプロセス
図4は、プロデューサシステム106のリースをコンシューマシステム104に提供するプロセス400の実施形態を例示する。プロセス400は、プロデューサシステム106の識別情報をコンシューマシステム104に提供することができる任意のシステムによって実施することができる。更に、プロセス400は、プロデューサシステム106へのアクセスをコンシューマシステム104にリースすることができる任意のシステムによって実施することができる。例えば、プロセス400は、全体的に又は部分的に、少し例を挙げれば、リースエージェント102、リースシステム224、及び現状モジュール228によって実施することができる。任意の数のシステムが全体的に又は部分的にプロセス400を実施することができるが、論じる内容を簡素化するために、プロセス400の各部を特定のシステムを参照して説明する。
Exemplary Process for Providing a Producer System Leasing to a Consumer System FIG. 4 illustrates an embodiment of a process 400 for providing a producer system 106 lease to a consumer system 104. Process 400 may be implemented by any system capable of providing producer system 106 identification information to consumer system 104. Further, process 400 may be implemented by any system that can lease access to producer system 106 to consumer system 104. For example, process 400 may be implemented in whole or in part by lease agent 102, lease system 224, and status module 228, to name a few. Although any number of systems may implement process 400 in whole or in part, to simplify the discussion, each part of process 400 will be described with reference to a particular system.

プロセス400は、ブロック402にて始まり、例えば、リースエージェント102のリースシステム224は、プロデューサシステム106へのアクセスをリースする要求をコンシューマシステム104から受信する。いくつかの実例において、要求は、コンシューマシステム104がプロデューサシステム106にてアクセスすることを求めている特定のサービス又は計算リソースの識別情報を含み得る。前の節で説明したように、場合によっては、リース要求は、プロデューサシステム106のコンシューマ104による既存のリースを更新する要求を含むことができる。   Process 400 begins at block 402, for example, lease system 224 of lease agent 102 receives a request from consumer system 104 to lease access to producer system 106. In some instances, the request may include identification information for a particular service or computing resource that consumer system 104 is seeking to access at producer system 106. As described in the previous section, in some cases, the lease request may include a request to renew an existing lease by the consumer 104 of the producer system 106.

ブロック404にて、現状モジュール228は、1つ以上のプロデューサシステム106の現状メタデータをコンシューマシステム104から受信し得る。この受信された現状メタデータは、1つ以上のプロデューサシステム106のサービスと通信するか、又は、該サービスにアクセスするコンシューマシステムの104の以前の試みに関連したデータを含み得る。例えば、受信された現状メタデータは、待ち時間情報、プロデューサシステム106に対するコンシューマシステム104による要求の応答性に関係するデータ、又は、ブロック312に関して先述した任意の他の情報を含み得る。更に、受信された現状メタデータは、プロデューサシステム106から受信されたデータ、及び/又は、コンシューマシステム104がプロデューサシステム106とのやりとりに基づいて生成したデータ現状メタデータを含み得る。いくつかの実施形態において、ブロック404は、随意的であり得る。例えば、要求がコンシューマシステム104から受信された第1の要求である場合、コンシューマシステム104は、リースエージェント102に提供するべき一切の現状メタデータを有し得ない。   At block 404, status module 228 may receive status metadata for one or more producer systems 106 from consumer system 104. This received current metadata may include data associated with a previous attempt by the consumer system 104 to communicate with or access one or more producer system 106 services. For example, the received current metadata may include latency information, data related to the responsiveness of the request by the consumer system 104 to the producer system 106, or any other information previously described with respect to block 312. Further, the received current metadata may include data received from the producer system 106 and / or data current metadata generated by the consumer system 104 based on interaction with the producer system 106. In some embodiments, block 404 may be optional. For example, if the request is the first request received from consumer system 104, consumer system 104 may not have any current metadata to provide to lease agent 102.

ブロック406にて、現状モジュール228は、ブロック404にて受信された現状メタデータに基づいてプロデューサシステム現状情報を更新する。場合によっては、プロデューサシステム現状情報を更新することは、プロデューサリポジトリ220内のプロデューサシステム106に関連したエントリを更新することを含み得る。いくつかの実施形態において、ブロック406は、随意的であり得る。   At block 406, the current status module 228 updates the producer system current status information based on the current status metadata received at block 404. In some cases, updating the producer system status information may include updating an entry associated with the producer system 106 in the producer repository 220. In some embodiments, block 406 may be optional.

更に、ブロック408にて、現状モジュール228は、ブロック404にて受信された現状メタデータの少なくとも一部を第2のリースエージェントに提供する。例えば、プロセス400を実行するリースエージェント102は、現状メタデータの一部は異なるリースエージェント102に割り当てられたプロデューサシステム106のものであると判定し得る。そのような場合、リースエージェント102は、現状情報をプロデューサシステム106に割り当てられているリースエージェント102に提供し得る。他の場合において、リースエージェント102は、現状メタデータをリースエージェント102が通信する全てのリースエージェント102に提供し得、該全てのリースエージェントは、ネットワーク環境100のリースエージェント102の一部又は全部であり得る。任意の形式のデータ送信、再現及び/又は同期プロセスは、現状メタデータをリースエージェント102間で共有するためにネットワーク環境100において実施され得る。例えば、フラッドフィルアルゴリズム、又は、Primアルゴリズムが、データをリースエージェント102間で共有するために使用され得る。本明細書で使用され得る、データをリースエージェント102間で共有する更なるシステム及び方法が、2010年12月28日出願の、「DATA REPLICATION FRAMEWORK」という名称の米国特許出願第12/980,133号と、2010年12月28日出願の、「DATA REPLICATION FRAMEWORK」という名称の米国特許出願第12/980,153号と、2010年12月28日出願の、「DATA REPLICATION FRAMEWORK」という名称の米国特許出願第12/980,193号と、2010年12月28日出願の、「DATA REPLICATION FRAMEWORK」という名称の米国特許出願第12/980,258号とで説明されている。これらの上述の出願の各々は、本明細書よりそれらの全体が組み入れられる。   Further, at block 408, the current status module 228 provides at least a portion of the current status metadata received at block 404 to the second lease agent. For example, the lease agent 102 executing the process 400 may determine that some of the current metadata is that of the producer system 106 assigned to a different lease agent 102. In such a case, the lease agent 102 may provide current status information to the lease agent 102 assigned to the producer system 106. In other cases, the lease agent 102 may provide current metadata to all lease agents 102 with which the lease agent 102 communicates, such that all lease agents are part or all of the lease agents 102 in the network environment 100. possible. Any form of data transmission, reproduction and / or synchronization process may be implemented in the network environment 100 to share current metadata between the lease agents 102. For example, a flood fill algorithm or a Prim algorithm may be used to share data between lease agents 102. A further system and method for sharing data between lease agents 102 that may be used herein is described in US patent application Ser. No. 12 / 980,133, filed Dec. 28, 2010, entitled “DATA REPLICATION FRAMEWORK”. US Patent Application No. 12 / 980,153 entitled “DATA REPLICATION FRAMEWORK” filed on Dec. 28, 2010 and United States of America, filed on Dec. 28, 2010, named “DATA REPLICATION FRAMEWORK”. No. 12 / 980,193 and US patent application Ser. No. 12 / 980,258, filed Dec. 28, 2010, entitled “DATA REPLICATION FRAMEWORK”. Each of these aforementioned applications is incorporated in their entirety from this specification.

いくつかの実施形態において、ブロック408は、随意的である。例えば、いくつかの実施形態において、コンシューマシステム104のみが、ブロック402にて要求を受信したリースエージェント102に割り当てられるプロデューサシステム106の現状メタデータをリースエージェント102に提供する。   In some embodiments, block 408 is optional. For example, in some embodiments, only the consumer system 104 provides the lease agent 102 with current metadata of the producer system 106 that is assigned to the lease agent 102 that received the request at block 402.

ブロック410にて、リースシステム224は、リースエージェント102に配分されたか又は割り当てられた各プロデューサシステム106に関連したプロデューサ現状情報に基づいてプロデューサシステムを選択する。場合によっては、プロデューサ現状情報は、コンシューマシステム104によって提供された情報(例えば、ブロック404にて受信された現状メタデータ)に基づく。他の場合において、プロデューサ現状情報は、プロデューサシステム106と通信するリースエージェント102によって取得された情報に基づき得る。例えば、リースエージェント102は、リースエージェント102に割り当てられた各プロデューサシステム106の健康又は現状チェックを実行し得る。これらの健康チェックとしては、プロデューサシステム106の疎通を確認すること、リソース利用可能性の更新をプロデューサシステム106に要求すること、又は、プロデューサシステム106の現状に関係する情報を取得する任意の他のプロセスを挙げることができる。更に、プロデューサ現状情報は、他のリースエージェント102から受信された情報に基づき得る。   At block 410, the lease system 224 selects a producer system based on producer status information associated with each producer system 106 allocated or assigned to the lease agent 102. In some cases, the producer current state information is based on information provided by consumer system 104 (eg, current state metadata received at block 404). In other cases, the producer status information may be based on information obtained by the lease agent 102 in communication with the producer system 106. For example, the lease agent 102 may perform a health or status check of each producer system 106 assigned to the lease agent 102. These health checks may include confirming communication of the producer system 106, requesting the producer system 106 to update resource availability, or any other information that obtains information relating to the current state of the producer system 106. List the processes. In addition, producer status information may be based on information received from other lease agents 102.

ある特定の実施形態において、プロデューサシステム106を選択することは、少なくとも部分的に、異なるプロデューサシステム106に関連した重みに基づき得る。これらの重みは、プロデューサ現状情報に基づいて生成され得る。例えば、プロデューサシステム106がコンシューマシステム104と通信するときに低い待ち時間及び低いエラー率を有することを示すプロデューサ現状情報は、プロデューサシステム106は、より高く重み付けされ、結果的にブロック410にて選択される可能性がより高いことになり得る。逆に、コンシューマシステム104との接続を中断することが多いプロデューサシステム106は、より低く重み付けされ、結果的にブロック410にて選択される可能性がより少なくあり得る。   In certain embodiments, selecting a producer system 106 may be based at least in part on weights associated with different producer systems 106. These weights can be generated based on producer status information. For example, producer status information indicating that producer system 106 has a low latency and a low error rate when communicating with consumer system 104 causes producer system 106 to be weighted higher and consequently selected at block 410. Can be more likely. Conversely, a producer system 106 that often breaks the connection with the consumer system 104 may be less weighted and consequently less likely to be selected at block 410.

場合によっては、プロデューサシステム106の選択は、コンシューマシステム104に関してプロデューサシステム106の場所など、任意の数の更なる要素に基づき得る。場所情報としては、例えば、プロデューサシステム106がコンシューマシステム104と同じデータセンタ、又は、同じサーバラック内に位置するかどうかを挙げることができる。プロデューサシステム106を選択することは、場合によっては、コンシューマシステム104によって要求されたサービスに基づき得る。更に他の場合において、プロデューサシステム106の選択は、コンシューマシステム104によって要求された及び/又は以前に割り当てられたリース時間の量に部分的に基づき得る。場合によっては、リースシステム224は、最少負荷のプロデューサシステム106を選択し得る。他の場合において、リースシステム224は、プロデューサシステム106を閾値未満の負荷を有する1組のプロデューサシステム106から選択し得る。いくつかの実施形態において、選択したプロデューサシステム106の負荷は、コンシューマシステム104が選択されたプロデューサシステム106との接続を確立したか否かを問わず、選択時において増加したと判定される。有利なことに、ある特定の実施形態において、プロデューサシステムとの確立したコンシューマ接続に関係なく、選択されたプロデューサシステム106について増大した負荷を記録することによって、同じプロデューサシステム106が期間内の閾値回数よりも多く選択される確率は低減されるが、それは、プロデューサシステム106の実際の負荷は低くあり得るが、コンシューマシステム104との今後の接続の予測された負荷が、プロデューサシステムを選択する際に考慮されるからである。   In some cases, the selection of producer system 106 may be based on any number of additional factors, such as the location of producer system 106 with respect to consumer system 104. The location information can include, for example, whether the producer system 106 is located in the same data center as the consumer system 104 or in the same server rack. Selecting the producer system 106 may be based on the service requested by the consumer system 104 in some cases. In yet other cases, the selection of the producer system 106 may be based in part on the amount of lease time requested and / or previously allocated by the consumer system 104. In some cases, leasing system 224 may select the least loaded producer system 106. In other cases, the leasing system 224 may select the producer system 106 from a set of producer systems 106 that have a load below a threshold. In some embodiments, the load on the selected producer system 106 is determined to have increased at the time of selection, regardless of whether the consumer system 104 has established a connection with the selected producer system 106. Advantageously, in certain embodiments, the same producer system 106 can threshold the number of times in the time period by recording increased load for the selected producer system 106 regardless of the established consumer connection with the producer system. The probability that more will be selected is reduced, although the actual load on the producer system 106 may be low, but the predicted load of future connections with the consumer system 104 is in selecting the producer system. It is because it is considered.

場合によっては、ブロック410にて、プロデューサシステム106を選択することは、1つ以上の負荷メトリック(例えば、接続、プロセッサ利用など)に関して最も低い負荷を有するプロデューサシステム106を選択することを含み得る。あるいは、プロデューサシステム106を選択することは、閾値負荷を下回る負荷を有する1組のプロデューサシステム106の1つであるプロデューサシステム106を選択することを含み得る。負荷閾値を下回る負荷を有する1組のプロデューサシステム106間からのプロデューサシステム106の選択は、ランダム、疑似ランダム、又は、選択アルゴリズム(例えば、最小時間未参照、中央値負荷など)に基づき得る。有利なことに、いくつかの実施形態において、最低負荷を有するプロデューサシステム106を常に選択する代わりに、プロデューサシステム106を1組のプロデューサシステム106から選択することによって、負荷のゆらぎの確率及び/又は発生は低減される。更に、ネットワーク環境100を通過する、ネットワーク環境100の残りの部分と比較して高い負荷に関連するシステムのサブセットの発生など、負荷バブル(load bubble)、又は、負荷ホットスポット(load hotspot)の発生が低減される。   In some cases, selecting the producer system 106 at block 410 may include selecting the producer system 106 having the lowest load with respect to one or more load metrics (eg, connection, processor utilization, etc.). Alternatively, selecting the producer system 106 may include selecting the producer system 106 that is one of a set of producer systems 106 having a load below a threshold load. Selection of a producer system 106 among a set of producer systems 106 having a load below a load threshold may be based on random, pseudo-random, or selection algorithms (eg, minimum time unreferenced, median load, etc.). Advantageously, in some embodiments, instead of always selecting the producer system 106 with the lowest load, by selecting the producer system 106 from a set of producer systems 106, the probability of load fluctuations and / or Occurrence is reduced. In addition, a load bubble or load hotspot occurs, such as the occurrence of a subset of the system that passes through the network environment 100 and is associated with a high load compared to the rest of the network environment 100. Is reduced.

ブロック412にて、リースシステム224は、ブロック410にて選択されたプロデューサシステム106についてリース情報をコンシューマシステム104に提供する。このリース情報としては、プロデューサシステム106の識別情報、及び、場合によっては、コンシューマシステム104がプロデューサシステム106にアクセスするように許可されるリース時間の量を挙げることができる。先述のように、プロデューサシステム106の識別情報は、ネットワークアドレスなど、プロデューサシステム106の場所を特定してアクセスするのを容易にすることができる任意の情報を含むことができる。いくつかの実施形態において、プロデューサシステム106の識別情報を提供することは、プロデューサシステム106と通信するのを容易にするために証明書又は公開鍵を提供することを含むことができる。   At block 412, the lease system 224 provides lease information to the consumer system 104 for the producer system 106 selected at block 410. This lease information can include the identification information of the producer system 106 and, in some cases, the amount of lease time that the consumer system 104 is allowed to access the producer system 106. As noted above, the producer system 106 identification information can include any information that can facilitate locating and accessing the producer system 106, such as a network address. In some embodiments, providing the identification information of the producer system 106 can include providing a certificate or public key to facilitate communication with the producer system 106.

先に示したように、場合によっては、プロセス400は、リース更新要求に使用することができる。そのような場合、ブロック410は、コンシューマシステム104がリース更新を要求したプロデューサシステム106がリースにまだ利用可能かどうか判定することを含むことができる。プロデューサシステム106がリースにまだ利用可能であるかどうか判定することは、プロデューサシステム106がコンシューマシステム104に対応し続けるリソース容量を有するかどうか判定することを含むことができる。更に、プロデューサシステム106がリースにまだ利用可能であるかどうか判定することは、プロデューサシステム106に関連したプロデューサ現状情報の1つ以上のメトリックが利用可能性閾値を満たすかどうか判定することを含むことができる。例えば、判定はプロデューサシステム106に関連した誤り率が閾値誤り率を下回るかどうかチェックすることを含むことができる。プロデューサシステム106がリース更新に利用可能である場合、リースエージェント102は、プロデューサシステム106の更新されたリースをコンシューマシステム104に送ることができる。リースエージェント102がプロデューサシステム106がリース更新に利用可能ではないと判定した場合、リースエージェント102は、その旨を報告し、及び/又は、代替プロデューサシステム106のリース情報を提供することができる。   As indicated above, in some cases, the process 400 can be used for lease renewal requests. In such a case, block 410 may include determining whether the producer system 106 for which the consumer system 104 requested a lease renewal is still available for lease. Determining whether the producer system 106 is still available for lease may include determining whether the producer system 106 has a resource capacity that continues to correspond to the consumer system 104. Further, determining whether the producer system 106 is still available for lease includes determining whether one or more metrics of the producer status information associated with the producer system 106 meet an availability threshold. Can do. For example, the determination can include checking whether the error rate associated with the producer system 106 is below a threshold error rate. If producer system 106 is available for lease renewal, lease agent 102 can send the updated lease of producer system 106 to consumer system 104. If the lease agent 102 determines that the producer system 106 is not available for lease renewal, the lease agent 102 can report to that effect and / or provide lease information for the alternative producer system 106.

例示的なプロデューサシステム更新処理
図5は、プロデューサシステム更新プロセス500の実施形態を例示する。プロセス500は、プロデューサシステム106の利用可能性を更新することができ、かつ、プロデューサシステム106をリースエージェント102間で再分割することができる任意のシステムによって実施することができる。例えば、プロセス500は、全体的に又は部分的に、少し例を挙げれば、リースエージェント102、分割システム222、分割システム204、登録モジュール226、及び現状モジュール228によって実施することができる。任意の数のシステムが、全体的に又は部分的に、プロセス500を実行することができるが、論じる内容を簡素化するために、プロセス500の部分を特定のシステムを特定のシステムを参照して説明する。
Exemplary Producer System Update Process FIG. 5 illustrates an embodiment of a producer system update process 500. Process 500 may be implemented by any system that can update the availability of producer system 106 and that can subdivide producer system 106 among lease agents 102. For example, process 500 may be implemented in whole or in part by lease agent 102, split system 222, split system 204, registration module 226, and status module 228, to name a few. Any number of systems may perform the process 500, in whole or in part, but to simplify the discussion, the portions of the process 500 are referred to a particular system and a particular system. explain.

プロセス500は、決定ブロック502にて始まり、例えば、リースエージェント102の現状モジュール228は、現状更新がプロデューサシステム106から受信されたかどうか判定する。現状更新は、プロデューサシステム106にリースエージェント102によって送られた要求に応答してリースエージェント102により予期され得る。あるいは、現状モジュール228は、各プロデューサシステム106に関連した更新スケジュールのために現状更新を予期し得る。例えば、場合によっては、各プロデューサシステム106は、現状更新を自動的に疎通確認するか、又は、1時間毎に又は日別に現状更新を割り当てられたリースエージェント102に提供するように構成され得る。現状更新が受信された場合、プロセス500は、決定ブロック502に戻って、次の現状更新を待つ。更に、現状モジュール228は、プロデューサリポジトリ220及び/又はエージェントリポジトリ206にてプロデューサシステム106に関連したプロデューサ現状情報を更新し得る。   The process 500 begins at decision block 502, for example, the status module 228 of the lease agent 102 determines whether a status update has been received from the producer system 106. A current update may be anticipated by the lease agent 102 in response to a request sent by the lease agent 102 to the producer system 106. Alternatively, the current status module 228 can anticipate current status updates for an update schedule associated with each producer system 106. For example, in some cases, each producer system 106 may be configured to automatically communicate current updates or provide current updates to assigned lease agents 102 hourly or daily. If a status update is received, the process 500 returns to decision block 502 and waits for the next status update. Further, the current status module 228 may update the producer current status information associated with the producer system 106 in the producer repository 220 and / or the agent repository 206.

それに反して、現状更新が決定事項ブロック502にて受信されない場合、現状モジュール228は、ブロック504にてプロデューサシステム106の利用不可能を示すためにプロデューサシステム106の現状を更新する。プロデューサシステム106の現状を更新することは、プロデューサシステム106が、コンシューマシステム104にリースされる上で利用可能ではないという表示をプロデューサリポジトリ220及び/又はエージェントリポジトリ206に記憶することを含むことができる。場合によっては、現状更新が決定ブロック502にて受信されるときにさえ、現状モジュール228は、プロデューサシステム106が利用可能ではないことを示すためにブロック504にてプロデューサシステムの現状を更新し得る。例えば、受信された現状情報がプロデューサシステム106は誤動作しているか、閾値速度にて要求に対応しているか、又は、閾値誤り率を超えたエラーを生成していることを示す場合、現状モジュール228は、プロデューサシステム106がもはや利用可能ではないことを示すためにプロデューサリポジトリ220及び/又はエージェントリポジトリ206を更新し得る。いくつかの実施形態において、プロデューサシステム106のプロデューサ状態情報をその利用可能性の喪失を示すために更新することは、プロデューサシステム106がもはや利用可能ではないと管理者に警告ことを含み得る。プロデューサシステム106現状情報の更新を図10に関して更に詳細に説明する。   On the other hand, if a current status update is not received at decision block 502, current status module 228 updates the current status of producer system 106 to indicate that producer system 106 is unavailable at block 504. Updating the current status of the producer system 106 may include storing an indication in the producer repository 220 and / or the agent repository 206 that the producer system 106 is leased to the consumer system 104 and is not available. . In some cases, even when a current status update is received at decision block 502, current status module 228 may update the current status of the producer system at block 504 to indicate that producer system 106 is not available. For example, if the current status information received indicates that the producer system 106 is malfunctioning, responding to a request at a threshold speed, or generating an error that exceeds a threshold error rate, the current status module 228. May update the producer repository 220 and / or the agent repository 206 to indicate that the producer system 106 is no longer available. In some embodiments, updating the producer status information of the producer system 106 to indicate its loss of availability may include alerting the administrator that the producer system 106 is no longer available. The update of the producer system 106 current information is described in more detail with respect to FIG.

決定ブロック506にて、分割システム222は、プロデューサシステム106の閾値量が利用不可能になったかどうかを判定する。否定の場合、プロセス500は、決定ブロック502に戻って、次の現状更新を待つ。分割システム222が決定ブロック506にてプロデューサシステム106の閾値量が利用不可能になったと判定した場合、分割システム222は、ブロック508にてプロデューサ再分割プロセスを実行する。このプロデューサシステム再分割プロセスを図6に関して以下で更に詳細に説明する。いくつかの実施形態において、決定事項ブロック506及びブロック508の一方又は両方は、分割システム204によって実行される。   At decision block 506, partitioning system 222 determines whether the threshold amount of producer system 106 has become unavailable. If not, process 500 returns to decision block 502 and waits for the next status update. If split system 222 determines at decision block 506 that the threshold amount of producer system 106 has become unavailable, split system 222 performs a producer sub-partition process at block 508. This producer system subdivision process is described in more detail below with respect to FIG. In some embodiments, one or both of decision block 506 and block 508 is performed by partitioning system 204.

例示的な分割プロセス
図6は、1組のプロデューサシステム106を分割する分割プロセス600の実施形態を例示する。プロセス600は、利用可能なプロデューサシステム106の数の変化を追跡することができ、かつ、プロデューサシステム106をリースエージェント102間で再分割することができる任意のシステムによって実施することができる。例えば、プロセス600は、全体的に又は部分的に、少し例を挙げれば、リースエージェント102、分割システム222、分割システム204、登録モジュール226、及び現状モジュール228によって実施することができる。任意の数のシステムが、全体的に又は部分的に、プロセス600を実施することができるが、論じる内容を簡素化するために、プロセス600の部分を特定のシステムを特定のシステムを参照して説明する。
Exemplary Split Process FIG. 6 illustrates an embodiment of a split process 600 that splits a set of producer systems 106. Process 600 can be implemented by any system that can track changes in the number of available producer systems 106 and that can subdivide producer systems 106 among lease agents 102. For example, process 600 may be implemented in whole or in part by lease agent 102, split system 222, split system 204, registration module 226, and status module 228, to name a few. Any number of systems may implement process 600, in whole or in part, but to simplify the discussion, parts of process 600 are referred to a particular system and a particular system. explain.

プロセス600は、ブロック602にて始まり、例えば、現状モジュール228は利用可能なプロデューサシステム106の差分を追跡する。場合によっては、現状モジュール228は、利用可能なプロデューサシステム106の数の絶対変化を追跡する。あるいは又は更に、現状モジュール228は、利用可能なプロデューサシステム106の数の変化率を追跡する。利用可能なプロデューサシステム106の差分又は変化は、新しいプロデューサシステム106の追加、又は、プロデューサシステム106の利用可能性の損失に基づくことができる。いくつかの実施形態において、プロセス500はプロデューサシステム106の利用可能性の喪失を識別するために使用され得る。更に、利用可能なプロデューサシステム106の判定は、プロデューサシステム106の喪失又は追加を示すユーザ更新に基づき得る。更に、プロデューサシステム106の追加は、プロデューサシステム106による登録試行に基づいて追跡され得る。場合によっては、プロデューサシステム106の利用可能性は、コンシューマシステム104によって提供された情報に基づいて判定され得る。更に、利用可能なプロデューサの差分又は変化は、実際の数の観点から、又は、プロデューサシステム106の利用可能性の百分率変化の観点から追跡され得る。   Process 600 begins at block 602, for example, status module 228 tracks available producer system 106 differences. In some cases, status module 228 tracks absolute changes in the number of available producer systems 106. Alternatively or additionally, status module 228 tracks the rate of change in the number of available producer systems 106. Differences or changes in the available producer system 106 may be based on the addition of a new producer system 106 or a loss of availability of the producer system 106. In some embodiments, process 500 may be used to identify a loss of availability of producer system 106. Further, the determination of the available producer system 106 may be based on user updates that indicate the loss or addition of the producer system 106. Further, the addition of producer system 106 may be tracked based on registration attempts by producer system 106. In some cases, the availability of producer system 106 may be determined based on information provided by consumer system 104. Further, available producer differences or changes may be tracked in terms of actual numbers or in terms of percentage changes in availability of the producer system 106.

いくつかの実施形態において、プロデューサシステム106及び/又は利用可能なプロデューサシステム106の差分は、各リースエージェント102によって追跡される。あるいは、各リースエージェント102は、リースエージェント102に割り当てられる利用可能なプロデューサシステムを追跡する。更に又はあるいは、利用可能なプロデューサシステム106のカウント及び/又は差分は、分割システム204など、独立したシステムによって追跡される。   In some embodiments, differences between producer system 106 and / or available producer system 106 are tracked by each lease agent 102. Alternatively, each lease agent 102 tracks available producer systems assigned to the lease agent 102. Additionally or alternatively, available producer system 106 counts and / or differences are tracked by an independent system, such as splitting system 204.

決定ブロック604にて、分割システム222は、利用可能なプロデューサシステム106の差分が閾値を満たすかどうか判定する。この差分は、絶対値とすることができる。換言すると、プロデューサシステム106の追加又は差し引きが追跡され得る。ある特定の実施形態において、プロデューサシステム106の追加及差し引きは、各々に関連した別個の閾値で独立して追跡され得る。したがって、場合によっては、たとえ利用可能なプロデューサシステムの全変化がゼロであるか、又は、組み合わせ閾値を満たさないとしても、一方又は両方閾値が満たされ得る。場合によっては、差分は、百分率変化及び/又は変化率を表すことができる。そのような場合、閾値は、百分率閾値及び/又は変化率閾値であり得る。   At decision block 604, the partitioning system 222 determines whether the available producer system 106 differences meet a threshold. This difference can be an absolute value. In other words, the addition or deduction of the producer system 106 can be tracked. In certain embodiments, producer system 106 additions and subtractions may be independently tracked with separate thresholds associated with each. Thus, in some cases, one or both thresholds can be met even though the total change in available producer system is zero or does not meet the combined threshold. In some cases, the difference may represent a percentage change and / or a rate of change. In such cases, the threshold may be a percentage threshold and / or a rate of change threshold.

差分が閾値を満たさない場合、又は、差分ののうちのどれも対応する閾値を満たさない場合、現状モジュール228は、ブロック602にて、利用可能なプロデューサシステム106又は利用可能なプロデューサシステム106の変化を追跡し続ける。それに反して、差分が閾値を満たすか、又は、差分が対応する閾値を満たす場合、分割システム222は、プロセス600を実行するリースエージェント102がブロック606にてプロデューサシステム106の分割又は再分割プロセスを開始していると他のリースエージェント102に通知する。有利なことに、ある特定の実施形態において、プロセス600を実行するリースエージェント102が分割プロセスを開始していると他のリースエージェント102に通知することによって、プロセス600が、複数のリースエージェント102に同時に分割プロセスを実行させることを回避するが、該実行されることは、例えば、プロデューサシステム106のカウンティング及び分割における競合条件のために非最適結果を引き起こし得る。いくつかの実施形態において、ブロック606は、随意的であり得る。例えば、いくつかの実施形態において、リースエージェント102とは別個である分割システム204は、分割又は再分割プロセスを実行し得る。   If the difference does not meet the threshold, or if any of the differences do not meet the corresponding threshold, then the current state module 228 changes the available producer system 106 or the available producer system 106 at block 602. Keep track. On the other hand, if the difference meets the threshold, or if the difference meets the corresponding threshold, the splitting system 222 causes the lease agent 102 executing the process 600 to perform the splitting or subdividing process of the producer system 106 at block 606. When it has started, it notifies other lease agents 102. Advantageously, in certain embodiments, the process 600 notifies multiple lease agents 102 by notifying other lease agents 102 that the lease agent 102 executing the process 600 has begun a split process. While avoiding having the split process run at the same time, doing so may cause non-optimal results due to race conditions in the counting and splitting of the producer system 106, for example. In some embodiments, block 606 may be optional. For example, in some embodiments, a splitting system 204 that is separate from the lease agent 102 may perform a splitting or subdividing process.

ブロック608にて、分割システム222は、利用可能なプロデューサシステム106の識別情報を取得する。分割システム222は、プロデューサリポジトリ220にアクセスすることによって及び/又はエージェントリポジトリ206にアクセスすることによって利用可能なプロデューサシステム106の識別情報を取得し得る。場合によっては、分割システム222は、他のリースエージェント102に連絡することによって、利用可能なプロデューサシステム106の識別情報を取得し得る。   At block 608, the partitioning system 222 obtains identification information for the available producer system 106. The splitting system 222 may obtain the identification information of the producer system 106 that is available by accessing the producer repository 220 and / or by accessing the agent repository 206. In some cases, splitting system 222 may obtain identification information for available producer system 106 by contacting other lease agents 102.

ブロック610にて、分割システム222は、利用可能なプロデューサシステム106をリースエージェント102間で分割する。分割システム222は、任意の種類の分割アルゴリズムを使用してプロデューサシステム106を分割することができる。一般的に、リースエージェント102間のプロデューサシステム106のパーティションは、リースエージェント102に割り当てることができる、重なり合わないか又は非等価な組のプロデューサシステム106を生成する。しかしながら、場合によっては、分割は重なり合い得る。更に、場合によっては、サブセットは、不均衡であり得る。換言すれば、いくつかのリースエージェント102は、他のリースエージェント102より多いプロデューサシステム106を割り当てられ得る。サブセットが不均衡である場合において、特定のリースエージェント102に割り当てられるプロデューサシステム106の数又は百分率は、少なくとも部分的に、リースエージェント102に割り当てられるリースエージェント102及び/又はプロデューサシステム106が処理することができる要求の数に基づき得る。例えば、第1のリースエージェント102が、第1のリースエージェントは他のプロデューサシステム106よりも多くのコンシューマシステム104要求を取り扱うことができるプロデューサシステム106を割り当てられた場合には、別のリースエージェント102よりも少ないプロデューサシステムを割り当てられ得る。   At block 610, split system 222 splits available producer system 106 between lease agents 102. The partitioning system 222 can partition the producer system 106 using any type of partitioning algorithm. In general, the partition of the producer system 106 between the lease agents 102 creates a non-overlapping or non-equivalent set of producer systems 106 that can be assigned to the lease agent 102. However, in some cases, the splits can overlap. Further, in some cases, the subset may be unbalanced. In other words, some lease agents 102 may be assigned more producer systems 106 than other lease agents 102. If the subset is imbalanced, the number or percentage of producer systems 106 assigned to a particular lease agent 102 is at least partially processed by the lease agent 102 and / or producer system 106 assigned to the lease agent 102. Based on the number of requests that can be made. For example, if a first lease agent 102 is assigned a producer system 106 that allows the first lease agent to handle more consumer system 104 requests than other producer systems 106, another lease agent 102. Fewer producer systems can be assigned.

更に、いくつかのプロデューサシステム106が他のプロデューサシステムと異なるサービスを提供することができる実施形態において、プロデューサシステム106は、各リースエージェントが特定のサービスを提供することができるプロデューサシステムを割り当てられるように分割され得る。あるいは、特定のサービスを提供することができるプロデューサシステム106は、リースエージェント102の選択サブセット間で分割され得る。   Further, in embodiments where some producer systems 106 can provide different services than other producer systems, the producer systems 106 can be assigned a producer system that allows each lease agent to provide a particular service. Can be divided. Alternatively, a producer system 106 that can provide a particular service can be divided between selected subsets of lease agents 102.

ブロック612にて、プロセス600を実行しているリースエージェント102の分割システム222は、ネットワーク環境100内の他のリースエージェント102の各々を更新し、プロデューサシステム106の識別情報は、ブロック610の完了時にリースエージェント102の各々に割り当てられる。いくつかの実施形態において、ブロック612は、プロセス600を実行するリースエージェント102を、リースエージェント102自体に割り当てられるプロデューサシステム106の識別情報で更新することを含むことができる。プロデューサシステム106の識別情報でリースエージェント102を更新することは、プロデューサリポジトリ220でのテーブル又はデータベースを更新することを含み得る。場合によっては、リースエージェント102がプロセス600を実行しているので、ブロック612は、リースエージェント102に対して随意的であり、ネットワーク環境100内に含まれる他のリースエージェント102に対してのみ実行される。   At block 612, the split system 222 of the lease agent 102 executing the process 600 updates each of the other lease agents 102 in the network environment 100, and the producer system 106 identification information is displayed upon completion of block 610. Assigned to each lease agent 102. In some embodiments, block 612 may include updating the lease agent 102 performing the process 600 with the identity of the producer system 106 assigned to the lease agent 102 itself. Updating the lease agent 102 with the identification information of the producer system 106 may include updating a table or database in the producer repository 220. In some cases, since lease agent 102 is performing process 600, block 612 is optional for lease agent 102 and is performed only for other lease agents 102 included within network environment 100. The

いくつかの実施形態において、プロセス600を使用して、プロデューサシステム106の初期分割をリースエージェント102間で行うことができる。例えば、ネットワーク環境100が最初に構成されるとき、利用可能なプロデューサシステム106の差分は、利用可能なプロデューサシステム106が起動されるときに決定ブロック604の閾値を満たす可能性が高い。あるいは又は更に、ユーザが、ネットワーク環境100が最初に構成されるあるときか、又は、任意の他の時間にて分割プロセスを手作業で起動し得る。   In some embodiments, process 600 may be used to perform an initial partition of producer system 106 between lease agents 102. For example, when the network environment 100 is initially configured, the difference of available producer systems 106 is likely to meet the threshold of decision block 604 when the available producer system 106 is activated. Alternatively or additionally, the user may manually initiate the split process when the network environment 100 is first configured, or at any other time.

プロセス600は、プロデューサシステム106をリースエージェント102間で分割すると説明した。しかしながら、プロセス600は、そのようなものとして制限されるものではない。場合によっては、プロセス600を使用して、リースエージェント102間でプロデューサシステム106にアクセスするための、コンシューマシステム104に提供することができるリースを分割することができる。例えば、リースエージェント102又は分割システム222は、1組の利用可能なプロデューサシステムを識別して、その組の利用可能なプロデューサシステムの各プロデューサシステムに利用可能ないくつかのリースを判定することができる。プロセス600を実行しているリースエージェント102は、利用可能なリースにおいて変更された閾値を検出する最初のリースエージェント102であり得るか、又は、リース分割を実行するように指定されたリースエージェント102であり得る。リースエージェント102は、(例えば、プロデューサシステム106の登録中に)各プロデューサシステム106から受信された現状情報に基づいて利用可能なリースの数を識別し得る。あるいは又は更に、利用可能なリースの数は、形式のプロデューサシステム106、又は、プロデューサシステム106又はユーザ(例えば、管理者)から受信された構成情報に基づいて判定され得る。   Process 600 has been described as partitioning producer system 106 among lease agents 102. However, process 600 is not limited as such. In some cases, process 600 may be used to split a lease that may be provided to consumer system 104 for accessing producer system 106 between lease agents 102. For example, the lease agent 102 or split system 222 can identify a set of available producer systems and determine the number of leases available to each producer system of the set of available producer systems. . The lease agent 102 performing the process 600 may be the first lease agent 102 that detects a changed threshold in available leases, or is a lease agent 102 designated to perform lease splitting. possible. The lease agent 102 may identify the number of available leases based on current status information received from each producer system 106 (eg, during registration of the producer system 106). Alternatively or additionally, the number of available leases may be determined based on the type of producer system 106 or configuration information received from the producer system 106 or a user (eg, an administrator).

リースエージェント102は、複数のリースエージェント102の各リースエージェント102に各プロデューサシステム106に利用可能な数のリースに属するリースのサブセットを割り当てることによって、各プロデューサシステム106に利用可能な数のリースを複数のリースエージェント102間で分割し得る。リースの数は、リースエージェント102間で等しく又は実質的に等しく分割され得る。場合によっては、リースエージェント102の少なくともいくつかは、リースの数がリースエージェント102の数の倍数ではないことによって1つ多いか又は1つ少ないリースを割り当てられ得る。更に、場合によっては、リースは、例えば、いくつかのリースエージェント102及び/又はいくつかのプロデューサシステム106間の構成上の違いため等しく分割されない場合がある。場合によっては、各リースエージェント102は、重なり合わない組のリースを割り当てられる。あるいは、リースの少なくともいくつかは、複数のリースエージェント102に割り当てられ得る。いくつかの実施形態において、プロデューサシステム106に対するリースが分割されることになる複数のリースエージェント102は、リースエージェント102のサブセットであり得る。例えば、場合によっては、リースエージェント102のサブセットは、プロデューサシステム106のサブセットに割り当てられ得る。   The lease agent 102 assigns a number of leases available to each producer system 106 by assigning each lease agent 102 of the plurality of lease agents 102 a subset of leases belonging to the number of leases available to each producer system 106. Can be divided among the leasing agents 102. The number of leases may be equally or substantially equally divided among the lease agents 102. In some cases, at least some of the lease agents 102 may be assigned one more or one less lease because the number of leases is not a multiple of the number of lease agents 102. Further, in some cases, leases may not be equally divided due to, for example, configuration differences between some lease agents 102 and / or some producer systems 106. In some cases, each lease agent 102 is assigned a non-overlapping set of leases. Alternatively, at least some of the leases can be assigned to multiple lease agents 102. In some embodiments, the plurality of lease agents 102 whose leases to the producer system 106 will be split may be a subset of the lease agents 102. For example, in some cases, a subset of lease agents 102 may be assigned to a subset of producer system 106.

いくつかリースを分割した後に、又は、分割している間に、プロセス600を実行しているリースエージェント102は、複数のリースエージェント102の各リースエージェント102について、リースエージェント102にリースエージェント102に割り当てられるリースのサブセットを提供し得る。リースをリースエージェント102の各々に提供することは、各リースエージェント102に割り当てられた各プロデューサシステム106のリースの数をリースエージェント102の各々に提供することを含み得る。あるいは又は更に、リースをリースエージェント102の各々に提供することは、各々の割り当てられたリースの識別情報をリースエージェント102に提供することを含み得る。更に、リースを提供することは、プロデューサシステム106と通信し及び/又はプロデューサシステム106のリースを利用する接続情報を提供することを含み得る。   After splitting some leases or while splitting, the lease agent 102 performing the process 600 assigns the lease agent 102 to the lease agent 102 for each lease agent 102 of the plurality of lease agents 102 May provide a subset of leases to be provided. Providing a lease to each of the lease agents 102 may include providing each of the lease agents 102 with a number of leases for each producer system 106 assigned to each lease agent 102. Alternatively or additionally, providing a lease to each of the lease agents 102 may include providing the lease agent 102 with identification information for each assigned lease. Further, providing a lease may include communicating connection with the producer system 106 and / or providing connection information utilizing the producer system 106 lease.

有利なことに、いくつかの実施形態において、各プロデューサシステム106に利用可能ないくつかのリースを複数のリースエージェント102間で分割することは、複数のリースエージェント102間での作業負荷の分散を可能にする。場合によっては、プロセス600を実行しているリースエージェント102が、該リースエージェントがプロセス600を実行しているときにそれ自身にそれ自体に割り当てられるリースのサブセットを提供することは不必要である。しかしながら、場合によっては、リースエージェント102は、リースをそれ自体に提供し得る。例えば、分割を実行するリースエージェント102のサブシステム(例えば、分割システム222)とリースエージェント102に割り当てられるリースを受信し及び/又は追跡するサブシステムが異なる場合において、プロセス600を実行するリースエージェント102は、割り当てられたリースの識別情報をそれ自体に提供し得る。   Advantageously, in some embodiments, dividing the number of leases available to each producer system 106 among the plurality of lease agents 102 can reduce the workload distribution among the plurality of lease agents 102. to enable. In some cases, it is unnecessary for the lease agent 102 executing the process 600 to provide a subset of leases that are assigned to itself when the lease agent is executing the process 600. However, in some cases, lease agent 102 may provide a lease to itself. For example, the lease agent 102 that performs the process 600 when the subsystem of the lease agent 102 that performs the split (eg, the split system 222) and the subsystem that receives and / or tracks leases assigned to the lease agent 102 are different. May provide the identification information of the assigned lease to itself.

場合によっては、プロセス600を使用して、プロデューサシステム106及びプロデューサシステム106の各々に関連したリースの両方をリースエージェント102間で分割することができる。   In some cases, process 600 may be used to split both producer system 106 and the lease associated with each of producer system 106 between lease agents 102.

例示的なプロデューサシステム登録プロセス
図7は、プロデューサシステム106の観点からのプロデューサシステム登録プロセス700の実施形態を例示する。プロセス700は、プロデューサシステム106をリースエージェント102に登録することができる任意のシステムによって実施することができる。例えば、プロセス700は、全体的に又は部分的に、少し例を挙げれば、プロデューサシステム106、登録モジュール260、及び現状モジュール262によって実施することができる。任意の数のシステムが、全体的に又は部分的に、プロセス700を実施することができるが、論じる内容を簡素化するために、プロセス700の部分を特定のシステムを特定のシステムを参照して説明する。
Exemplary Producer System Registration Process FIG. 7 illustrates an embodiment of a producer system registration process 700 from the producer system 106 perspective. Process 700 may be implemented by any system that can register producer system 106 with lease agent 102. For example, process 700 may be implemented in whole or in part by producer system 106, registration module 260, and status module 262, to name a few. Any number of systems may implement process 700, in whole or in part, but to simplify the discussion, parts of process 700 may be referred to a particular system and a particular system. explain.

プロセス700は、プロデューサシステム106が最初に起動又は初期化されるか、又は、例えば、非アクティブ状態、又はシステム再開の期間の後に再起動又は再初期化されるたびに発生し得る。場合によっては、プロセス700は、プロデューサシステム106が割り当てられたリースエージェント102がもはや利用可能ではないと判定するたびに発生又は再発生し得る。割り当てられたリースエージェント102がもはや利用可能ではないという判定は、例えば、エージェントリポジトリ206から取得されたか、ユーザから受信された情報、又は、図5に関して説明した現状更新など、現状更新を提供する後にプロデューサシステム106がACKが割り当てられたリースエージェント102から受信されていない場合に基づき得る。   Process 700 may occur each time producer system 106 is first started or initialized, or restarted or reinitialized after, for example, an inactive state or period of system restart. In some cases, process 700 may occur or reoccur each time producer system 106 determines that assigned lease agent 102 is no longer available. The determination that the assigned lease agent 102 is no longer available is after providing a current update, for example, information obtained from the agent repository 206 or received from a user, or the current update described with respect to FIG. This may be based on the case where the producer system 106 has not received an ACK from the assigned lease agent 102.

プロセス700は、ブロック702にて始まり、例えば、登録モジュール260は、1組のリースエージェント102の識別情報に、例えば、エージェントリポジトリ206からアクセスする。場合によっては、プロデューサシステム106は、1組のリースエージェント102の識別情報に内部記憶装置からアクセスし得る。例えば、プロデューサシステム106は、1組のリースエージェント102の識別情報で予め構成され得る。他の場合において、ユーザが、アクセスするべきリースエージェント102を指定し得る。   Process 700 begins at block 702, where, for example, registration module 260 accesses a set of lease agent 102 identification information, eg, from agent repository 206. In some cases, the producer system 106 may access the identification information for the set of lease agents 102 from internal storage. For example, the producer system 106 may be preconfigured with identification information for a set of lease agents 102. In other cases, the user may specify the lease agent 102 to access.

ブロック704にて、登録モジュール260は、リースエージェント102をブロック702にて識別された1組のリースエージェント102から選択する。登録モジュール260は、ランダムに、又は、ラウンドロビン又は最長時間未使用方法など、任意の他の選択方法を使用することによってリースエージェント102を選択し得る。1組のリースエージェント102がソートされる場合において、登録モジュール260は、ソートされた組における第1のリースエージェント102を選択し得る。ある特定の実施形態において、ブロック704は、随意的であり得る。例えば、ブロック704は、ユーザがリースエージェント102を指定する場合には不必要である。   At block 704, registration module 260 selects lease agent 102 from the set of lease agents 102 identified at block 702. Registration module 260 may select lease agent 102 randomly or by using any other selection method, such as round robin or least recently used method. When a set of lease agents 102 is sorted, registration module 260 may select the first lease agent 102 in the sorted set. In certain embodiments, block 704 may be optional. For example, block 704 is unnecessary if the user specifies the lease agent 102.

ブロック706にて、登録モジュール260は、ブロック704にて選択されたリースエージェント102との接続を開始するか又は開始しようとする。場合によっては、リースエージェント102との接続を開始しようとすることは、リースエージェント102に登録する試行を含む。   At block 706, registration module 260 initiates or attempts to initiate a connection with lease agent 102 selected at block 704. In some cases, attempting to initiate a connection with lease agent 102 includes an attempt to register with lease agent 102.

ブロック708にて、登録モジュール260は、接続応答をリースエージェント102から受信する。登録モジュール260は、決定ブロック710にて、接続応答がプロデューサシステム106の登録を確認するか、又は、第2のリースエージェント102の識別情報を示すかどうか判定する。登録モジュール260が決定ブロック710にて接続応答はプロデューサシステム106の登録を確認すると判定した場合、現状モジュール262は、ブロック712にて、プロデューサシステム106に関係する状態情報をリースエージェント102に提供する。この状態情報は、プロデューサシステム106に関連した1つ以上のメトリックの状態又は現状に関連した任意の情報を含むことができる。例えば、状態情報は、1つ以上の計算リソース(例えば、メモリ、プロセッサ、ネットワーク帯域幅、アプリケーションなど)の利用可能性、サービス要求がプロデューサシステムにより処理されることになるコンシューマシステム104の数、及びプロデューサシステム106の状態に関連した任意の他の情報を含むことができる。   At block 708, registration module 260 receives a connection response from lease agent 102. The registration module 260 determines at decision block 710 whether the connection response confirms registration of the producer system 106 or indicates identification information of the second lease agent 102. If the registration module 260 determines that the connection response confirms registration of the producer system 106 at decision block 710, the current state module 262 provides status information related to the producer system 106 to the lease agent 102 at block 712. This status information may include any information related to the status or current status of one or more metrics associated with the producer system 106. For example, the status information may include the availability of one or more computational resources (eg, memory, processor, network bandwidth, applications, etc.), the number of consumer systems 104 that a service request will be processed by the producer system, and Any other information related to the state of the producer system 106 can be included.

ブロック712に関連したプロセスは、登録モジュール260が、接続応答がプロデューサシステム106の登録を確認すると判定すると発生し得る。あるいは又は更に、ブロック712に関連したプロセスは、何らかのその後の時間にて発生し得る。更に、いくつかの実施形態において、ブロック712に関連したプロセスは、連続的に、間欠的に発生し得るか、又は、プロデューサシステムの106の現状の更新に対するリースエージェント102からの要求に応答して発生し得る。他の実施形態において、ブロック712に関連したプロセスは、プロデューサシステム106の状態又は現状の閾値変化があるたびに発生し得る。例えば、ブロック712に関連したプロセスは、プロデューサシステム106の処理リソースの利用可能性が閾値レベルに落ちたときに発生し得る。   The process associated with block 712 may occur when the registration module 260 determines that the connection response confirms registration of the producer system 106. Alternatively or additionally, the process associated with block 712 may occur at some later time. Further, in some embodiments, the process associated with block 712 may occur continuously, intermittently, or in response to a request from the lease agent 102 for the current update of the producer system 106. Can occur. In other embodiments, the process associated with block 712 may occur whenever there is a change in the state or current threshold of the producer system 106. For example, the process associated with block 712 may occur when the availability of processing resources of the producer system 106 falls to a threshold level.

登録モジュール260が決定ブロック710にてブロック708にて受信された接続応答が第2のリースエージェントの識別表示を含むと判定した場合、登録モジュール260はブロック714にて第2のリースエージェントとの接続を開始する。プロセス800に関して説明するように、第2のリースエージェントは、プロデューサシステム106に関連していると判定された第1のリースエージェント(例えば、ブロック704にて識別されるリースエージェント)を含み得る。   If registration module 260 determines at decision block 710 that the connection response received at block 708 includes an indication of the second lease agent, registration module 260 connects to the second lease agent at block 714. To start. As described with respect to process 800, the second lease agent may include a first lease agent determined to be associated with producer system 106 (eg, the lease agent identified at block 704).

ブロック716にて、現状モジュール262は、状態情報を第2のリースエージェントに提供する。ある特定の実施形態において、ブロック716は、ブロック712に関して先述の実施形態のうちの1つ以上を含み得る。ある特定の実施形態において、ブロック708にて受信された接続応答は、プロデューサシステム106による登録が更なるリースエージェントを識別することなく成功したか否かを示す。そのような場合、プロデューサシステム106の登録が成功しなかった場合、プロデューサシステム106は、ブロック702にて識別された1組のリースエージェントの別のリースエージェントを登録するか又は該別のリースエージェントとの接続を開始しようとし得、かつ、その代わりに、リースエージェント102がプロデューサシステム106の登録を確認するまでブロック704、706、708及び710を繰り返し得る。   At block 716, status module 262 provides status information to the second lease agent. In certain embodiments, block 716 may include one or more of the previous embodiments with respect to block 712. In certain embodiments, the connection response received at block 708 indicates whether registration by the producer system 106 was successful without identifying additional lease agents. In such a case, if registration of the producer system 106 is not successful, the producer system 106 may register another lease agent of the set of lease agents identified at block 702 or with the other lease agent. And, alternatively, blocks 704, 706, 708 and 710 may be repeated until the lease agent 102 confirms registration of the producer system 106.

いくつかの実施形態において、決定ブロック710にて識別された第2のリースエージェントは、ランダムに選択され、及び/又は、プロデューサシステム106に必ずしも関連づけられるわけではない。そのような場合、ブロック714は、ブロック708及び710に関して、但し、第2のリースエージェントに関して1つ以上の実施形態を実行することを含むことができる。換言すると、ループをブロック714からブロック708まで形成することができる。そのような場合、決定ブロック710は、第2のリースエージェントから接続応答が第3のリースエージェントを識別した場合、プロデューサシステム106の登録を確認する代わりに第3のリースエージェントを識別し得る。このループは、プロデューサシステム106が失敗せずにリースエージェント102に登録されるまで連続的に繰り返され得る。あるいは、ループは、閾値回数で実行され得る。プロデューサシステム106が失敗せずに登録されことなく閾値が満たされる場合、警告が生成され得る。例えば、管理者は、プロデューサシステム106がリースエージェント102に登録することができなかったことを(例えば、電子メール又はポップアップアラートを介して)通知され得る。想定外のシステム故障など、場合によっては、プロデューサシステム106は、1組のリースエージェント102に登録するか、又は、該リースエージェントとの登録を更新することができない場合がある。そのような場合、コンシューマシステム104は、プロデューサシステム106にアクセスしようとするために接続情報又はリースのキャッシュにアクセスし得る。有利なことに、ある特定の実施形態において、期限切れであり得るキャッシュ情報を使用することによって、リソースアクセスのための休止時間が、場合によっては低減又は排除され得る。   In some embodiments, the second lease agent identified at decision block 710 is not randomly selected and / or necessarily associated with the producer system 106. In such cases, block 714 can include performing one or more embodiments with respect to blocks 708 and 710, but with respect to the second lease agent. In other words, a loop can be formed from block 714 to block 708. In such a case, decision block 710 may identify the third lease agent instead of confirming the registration of producer system 106 if the connection response from the second lease agent identifies the third lease agent. This loop may be repeated continuously until the producer system 106 registers with the lease agent 102 without failure. Alternatively, the loop can be executed a threshold number of times. An alert may be generated if the threshold is met without the producer system 106 registering without fail. For example, the administrator may be notified (eg, via email or pop-up alert) that the producer system 106 could not register with the lease agent 102. In some cases, such as an unexpected system failure, the producer system 106 may not be able to register with the set of lease agents 102 or renew the registration with the lease agent. In such cases, consumer system 104 may access connection information or a lease cache to attempt to access producer system 106. Advantageously, in certain embodiments, by using cache information that may be expired, pause times for resource access may be reduced or eliminated in some cases.

例示的なプロデューサシステム登録プロセス
図8は、リースエージェント102の観点からのプロデューサシステム登録プロセス800の実施形態を例示する。プロセス800は、プロデューサシステム106をリースエージェント102に登録することができる任意のシステムによって実施することができる。例えば、プロセス800は、全体的に又は部分的に、少し例を挙げれば、リースエージェント102、登録モジュール226、及び現状モジュール228によって実施することができる。任意の数のシステムが、全部、一部を問わず、プロセス800をすることができるが、論じる内容を簡素化するために、プロセス800の部分を特定のシステムを特定のシステムを参照して説明する。
Exemplary Producer System Registration Process FIG. 8 illustrates an embodiment of a producer system registration process 800 from the perspective of the lease agent 102. Process 800 may be implemented by any system that can register producer system 106 with lease agent 102. For example, process 800 may be implemented in whole or in part by lease agent 102, registration module 226, and status module 228, to name a few. Any number of systems, all or in part, can perform process 800, but to simplify the discussion, parts of process 800 are described with reference to a particular system. To do.

プロセス800は、ブロック802にて始まり、例えば、登録モジュール226は、登録要求をプロデューサシステム106から受信する。いくつかの実施形態において、登録要求は、プロデューサシステム106に関連した証明書又は暗号化キーを含むことができる。登録モジュール226は、決定ブロック804にて、プロデューサシステム106がリースエージェント102に割り当てられているかどうか判定する。プロデューサシステム106がリースエージェント102に割り当てられているかどうか判定することは、プロデューサリポジトリ220及び/又はエージェントリポジトリ206にアクセスして、プロデューサシステム106がリースエージェント102に割り当てられているかどうか判定することを含むことができる。更に、場合によっては、プロデューサシステム106がリースエージェント102に割り当てられているかどうかについて判定することは、例えば、プロデューサシステム106に関連した受信された識別子、証明書、又は暗号化キーに基づいてプロデューサシステム106の識別情報を変えることを含むことができる。   Process 800 begins at block 802, for example, registration module 226 receives a registration request from producer system 106. In some embodiments, the registration request can include a certificate or encryption key associated with the producer system 106. Registration module 226 determines at decision block 804 whether producer system 106 is assigned to lease agent 102. Determining whether the producer system 106 is assigned to the lease agent 102 includes accessing the producer repository 220 and / or the agent repository 206 to determine whether the producer system 106 is assigned to the lease agent 102. be able to. Further, in some cases, determining whether the producer system 106 is assigned to the lease agent 102 may be based on a received identifier, certificate, or encryption key associated with the producer system 106, for example. Changing the identification information of 106 may be included.

登録モジュール226が、プロデューサシステム106がリースエージェント102に割り当てられていると判定した場合、登録モジュール226は、ブロック806にてプロデューサシステム106の登録を確認する。プロデューサシステム106の登録を確認することは、プロデューサシステム106がリースエージェント102に登録されていることをプロデューサシステム106に知らせることを含むことができる。更に、場合によっては、ブロック806はプロデューサシステム106が利用可能であり、かつ、リースエージェント102に登録したことを示すためにプロデューサリポジトリ220及び/又はエージェントリポジトリ206を更新することを含むことができる。更に、いくつかの実施形態において、ブロック806は、プロデューサシステム106に、リースエージェント102に関連し及び/又はプロデューサシステム106に割り当てられた証明書及び/又は暗号化キーへのアクセスを提供することを含むことができる。この証明書及び/又は暗号化キーは、プロデューサシステム106とリースエージェント102との間の更なる通信に使用することができる。更に、証明書及び/又は暗号化キーは、プロデューサシステム106の識別情報を確認するために、又は、2つのシステム間で通信されたデータをセキュア化するためになど、プロデューサシステム106とコンシューマシステム104との間の通信に使用することができる。   If registration module 226 determines that producer system 106 is assigned to lease agent 102, registration module 226 verifies registration of producer system 106 at block 806. Confirming registration of the producer system 106 may include notifying the producer system 106 that the producer system 106 is registered with the lease agent 102. Further, in some cases, block 806 may include updating the producer repository 220 and / or agent repository 206 to indicate that the producer system 106 is available and registered with the lease agent 102. Further, in some embodiments, block 806 provides the producer system 106 with access to a certificate and / or encryption key associated with the lease agent 102 and / or assigned to the producer system 106. Can be included. This certificate and / or encryption key can be used for further communication between the producer system 106 and the lease agent 102. In addition, the certificate and / or encryption key can be used to verify the identity of the producer system 106, or to secure data communicated between the two systems, such as the producer system 106 and the consumer system 104. It can be used for communication with.

ブロック808にて、現状モジュール228は、状態情報をプロデューサシステム106から受信する。この状態情報は、ブロック712の状態情報に関して説明した実施形態の一部又は全部を含むことができる。現状モジュール228は、ブロック810にて、ブロック808にて受信された状態情報に少なくとも部分的に基づいてプロデューサシステム106のプロデューサ現状情報を更新することができる。プロデューサ現状情報を更新することは、プロデューサシステム106の現状を反映するためにプロデューサリポジトリ220及び/又はエージェントリポジトリ206にてエントリ又は1つ以上のメトリックを更新することを含むことができる。   At block 808, current status module 228 receives status information from producer system 106. This state information may include some or all of the embodiments described with respect to the state information in block 712. The status module 228 may update the producer status information of the producer system 106 at block 810 based at least in part on the status information received at block 808. Updating the producer status information may include updating an entry or one or more metrics in the producer repository 220 and / or agent repository 206 to reflect the current status of the producer system 106.

登録モジュール226が決定ブロック804にてプロデューサシステム106がリースエージェント102に割り当てられていないと判定した場合、登録モジュール226は、ブロック812にて、プロデューサシステム106が割り当てられている別のリースエージェントを識別する。ブロック814にて、登録モジュール226はプロデューサシステム106に、プロデューサシステム106が割り当てられているリースエージェント102の識別情報を提供することができ、プロデューサシステム106が、ブロック812にて識別されたリースエージェント102に連絡することができるようにする。ある特定の実施形態において、ブロック812及びブロック814は、随意的であり得る。例えば、場合によっては、登録モジュール226は、プロデューサシステム106に、プロデューサシステム106がリースエージェント102に関連づけられておらず、したがって、ブロック802にて受信された登録要求は、プロデューサシステム106にプロデューサシステム106が割り当てられている代替リースエージェント102を知らせることなく不成功だったことを知らされ得る。   If registration module 226 determines at decision block 804 that producer system 106 is not assigned to lease agent 102, registration module 226 identifies another lease agent to which producer system 106 is assigned at block 812. To do. At block 814, the registration module 226 can provide the producer system 106 with identification information for the lease agent 102 to which the producer system 106 is assigned, and the producer system 106 has identified the lease agent 102 identified at block 812. To be able to contact. In certain embodiments, block 812 and block 814 may be optional. For example, in some cases, the registration module 226 may not be associated with the producer system 106 and the producer system 106 may be associated with the lease agent 102, so that a registration request received at block 802 may be sent to the producer system 106. Can be informed of the failure without notifying the alternate lease agent 102 to which it is assigned.

リースエージェント再分割プロセス
図9は、リースエージェント再分割プロセス900の実施形態を例示する。プロセス900は、リースエージェント102に割り当てられた1組のプロデューサシステム106を再割り当てることができる任意のシステムによって実施することができる。例えば、プロセス900は、全体的に又は部分的に、少し例を挙げれば、リースエージェント102、分割システム222、及び分割システム204によって実施することができる。任意の数のシステムが、全部、一部を問わず、プロセス900を実施することができるが、論じる内容を簡素化するために、プロセス900の部分を特定のシステムを特定のシステムを参照して説明する。
Lease Agent Subdivision Process FIG. 9 illustrates an embodiment of the lease agent subdivision process 900. Process 900 may be implemented by any system that can reassign a set of producer systems 106 assigned to lease agent 102. For example, process 900 may be implemented in whole or in part by lease agent 102, split system 222, and split system 204, to name a few. Any number of systems, whether in whole or in part, can implement process 900, but to simplify the discussion, parts of process 900 are referred to a particular system and a particular system. explain.

プロセス900は、ブロック902にて始まり、例えば、第1のリースエージェント102に関連した分割システム222は、別の、つまり、第2のリースエージェント102がもはや利用可能ではないという表示を受信する。例えば、第2のリースエージェント102がもはや利用可能ではないという表示は、ピング又は現状チェックに基づいて判定され得る。他の場合において、分割システム222はメッセージが第2のリースエージェント102によって確認応答されてないときにリースエージェント102がもはや利用可能ではないと判定し得る。更に他の実施形態において、ユーザは、第2のリースエージェントがもはや利用可能ではないと指定し得る。いくつかの例において、プロセス900は分割システム204によって実行され得る。   Process 900 begins at block 902, for example, the splitting system 222 associated with the first lease agent 102 receives an indication that another, that is, the second lease agent 102 is no longer available. For example, an indication that the second lease agent 102 is no longer available may be determined based on a ping or status check. In other cases, splitting system 222 may determine that lease agent 102 is no longer available when the message is not acknowledged by second lease agent 102. In yet other embodiments, the user may specify that the second lease agent is no longer available. In some examples, process 900 may be performed by partitioning system 204.

ブロック904にて、分割システム222は、もはや利用可能ではないリースエージェント102に割り当てられたプロデューサシステム106を識別する。プロデューサシステム106は、プロデューサリポジトリ220及び/又はエージェントリポジトリ206にアクセスすることによって識別され得る。ブロック906にて、分割システム222は、ブロック904にて識別されたプロデューサシステム106を残りのリースエージェント102間で分割する。場合によっては、ブロック906は、分割プロセスが発生していることを残りのリースエージェント102に知らせることを含み得、その結果、ブロック610に関して先述のように、複数のリースエージェントが識別されたプロデューサシステム106を同時に分割するのが防止される。   At block 904, the splitting system 222 identifies the producer system 106 assigned to the lease agent 102 that is no longer available. Producer system 106 may be identified by accessing producer repository 220 and / or agent repository 206. At block 906, the split system 222 splits the producer system 106 identified at block 904 among the remaining lease agents 102. In some cases, block 906 may include informing the remaining lease agents 102 that a splitting process is occurring so that multiple lease agents are identified as described above with respect to block 610. Dividing 106 simultaneously is prevented.

いくつかの実施形態において、ブロック906は、もはや利用可能ではないリースエージェント102に割り当てられたものだけではなく、全ての利用可能なプロデューサシステム106を再分割することを含み得る。そのような実施形態において、ブロック904は、全ての利用可能なプロデューサシステム106を識別することを含み得る。先述のように、プロデューサシステム106の分割は、重なり合う、重なり合いなし、等価、非等価であり得、及び/又は、プロデューサの種類に基づき得る。したがって、いくつかの実施形態において、ブロック906は、ブロック610に関して先述の実施形態の一部又は全てを含み得る。更に、場合によっては、第2のリースエージェント102に割り当てられたプロデューサシステム106の分割は、第2のリースエージェント102の形式に少なくとも部分的基づき得る。例えば、第2のリースエージェントが、102がもっぱらストレージサービスを提供するプロデューサシステム106を割り当てられた場合、第2のリースエージェント102に割り当てられたプロデューサシステム106は、また、もっぱら、やはりストレージサービス又はリソースを提供するプロデューサシステム106に割り当てられるリースエージェント102のサブセット間で再分割され得る。   In some embodiments, block 906 may include subdividing all available producer systems 106, not just those assigned to lease agents 102 that are no longer available. In such an embodiment, block 904 may include identifying all available producer systems 106. As described above, the division of the producer system 106 may be overlapping, non-overlapping, equivalent, non-equivalent, and / or based on the type of producer. Accordingly, in some embodiments, block 906 may include some or all of the previous embodiments with respect to block 610. Further, in some cases, the division of the producer system 106 assigned to the second lease agent 102 may be based at least in part on the type of the second lease agent 102. For example, if a second lease agent is assigned a producer system 106 for which 102 is exclusively providing storage services, the producer system 106 assigned to the second lease agent 102 is also exclusively for storage services or resources. Can be subdivided among the subset of lease agents 102 assigned to the producer system 106 that provides

ブロック908にて、分割システム222は、まだ利用可能であるリースエージェント102の各々に新たに割り当てられたプロデューサシステム106の識別情報で残りのリースエージェント102を更新する。   At block 908, partitioning system 222 updates the remaining lease agents 102 with the identification information of the producer system 106 newly assigned to each of the lease agents 102 that are still available.

いくつかの実施形態において、プロセス900は、リースエージェント102の追加又はリースエージェント102の置換えに使用され得る。そのような場合、ブロック904では、ブロック906での分割に向けてすべての利用可能なプロデューサシステム106を識別し得る。場合によっては、利用可能なプロデューサシステム106は、過去の期間にて利用可能であった同じプロデューサシステム106であり得る。他の場合において、一組のプロデューサシステム106は、プロデューサシステム106の喪失、又は、プロデューサシステム106の追加のために変った可能性がある。リースエージェント102の1対1の置き換えがある場合において、新しいリースエージェントは、その置換え対象であるリースエージェントのプロデューサシステム106を割り当てられ得る。そのような場合、ブロック906は、随意的であり得、ブロック908は、他のリースエージェントに、新しいリースエージェントがここでリースエージェントのプロデューサシステム106を割り当てられていることを知らせることを含み得る。   In some embodiments, process 900 may be used to add lease agent 102 or replace lease agent 102. In such a case, at block 904, all available producer systems 106 may be identified for partitioning at block 906. In some cases, the available producer system 106 may be the same producer system 106 that was available in the past period. In other cases, the set of producer systems 106 may have changed due to the loss of the producer system 106 or the addition of the producer system 106. In the case of a one-to-one replacement of the lease agent 102, the new lease agent may be assigned the producer system 106 of the lease agent that it is replacing. In such a case, block 906 may be optional and block 908 may include informing other lease agents that a new lease agent is now assigned the producer system 106 of the lease agent.

例示的なヒステリシスベースに基づくプロデューサ選択プロセス
図10は、ヒステリシスに基づくプロデューサ選択プロセス1000の実施形態を例示する。プロセス1000は、ブロック410の一部としてのプロデューサシステム106の選択など、プロデューサシステムの選択を修正するようにプロデューサシステム106に関連した選択重みを修正することができる任意のシステムによって実施することができる。例えば、プロセス1000は、全体的に又は部分的に、少し例を挙げれば、リースエージェント102、現状モジュール228、及びリースシステム224によって実施することができる。任意の数のシステムが、全部、一部を問わず、プロセス1000を実施することができるが、論じる内容を簡素化するために、プロセス1000の部分を特定のシステムを特定のシステムを参照して説明する。
Exemplary Hysteresis Base Based Producer Selection Process FIG. 10 illustrates an embodiment of a hysteresis based producer selection process 1000. Process 1000 can be performed by any system that can modify the selection weight associated with producer system 106 to modify the selection of the producer system 106, such as the selection of producer system 106 as part of block 410. . For example, the process 1000 may be implemented in whole or in part by the lease agent 102, the current state module 228, and the lease system 224, to name a few. Any number of systems, whether in whole or in part, can implement process 1000, but to simplify the discussion, parts of process 1000 are referred to a particular system and a particular system. explain.

プロセス1000は、ブロック1002にて始まり、例えば、現状モジュール228は、プロデューサシステム106に関連した現状メタデータをコンシューマシステム104から受信する。この現状メタデータは、コンシューマシステム104にプロデューサシステム106によって提供された情報、並びに、コンシューマシステム104がプロデューサシステム106とのやりとりに基づいて判定した情報を含み得る。例えば、現状メタデータは、プロデューサシステム106の応答時間に関係する情報、プロデューサシステム106が所与の時間にて対応するコンシューマシステム104の量、プロデューサシステム106が期間にわたって平均で対応するコンシューマシステム104の量などを含み得る。いくつかの実施形態において、ブロック1002は、ブロック404に関して先述した実施形態の一部又は全てを含むことができる。   Process 1000 begins at block 1002, for example, status module 228 receives status metadata associated with producer system 106 from consumer system 104. This current metadata may include information provided to the consumer system 104 by the producer system 106 as well as information determined by the consumer system 104 based on interactions with the producer system 106. For example, the current metadata includes information related to the response time of the producer system 106, the amount of the consumer system 104 that the producer system 106 corresponds to at a given time, and the consumer system 104 that the producer system 106 corresponds to on average over time. May include amounts and the like. In some embodiments, block 1002 can include some or all of the embodiments described above with respect to block 404.

更に、場合によっては、現状モジュール228は、コンシューマシステム104がリースエージェント102と通信した最終時以降コンシューマシステム104が通信した1組のプロデューサシステム106に関連した現状メタデータを受信し得る。現状メタデータは、プロデューサシステム106への更新されたアクセスに対する更新要求の一部としてコンシューマシステム104から受信され得る。他の場合において、現状メタデータは、新しいリース要求の一部としてコンシューマシステム104から受信され得る。   Further, in some cases, status module 228 may receive status metadata associated with a set of producer systems 106 with which consumer system 104 has communicated since the last time consumer system 104 communicated with lease agent 102. The current metadata can be received from the consumer system 104 as part of an update request for updated access to the producer system 106. In other cases, the current metadata may be received from the consumer system 104 as part of a new lease request.

ブロック1004にて、現状モジュール228は、ブロック1002にて受信された対応する現状メタデータに基づいてプロデューサシステム106 1つ以上のプロデューサ現状情報を更新する。あるいは又は更に、現状モジュール228は、受信された現状メタデータの少なくともいくつかが別のリースシステム102に関連したプロデューサシステム106に関すると判定し得、したがって、現状情報を、プロデューサシステム106に割り当てられたリースエージェント102に提供し得る。場合によっては、ブロック1002及び1004に関連したプロセスは、コンシューマシステム104は、リースエージェント102に、リースエージェント102がいくつかのプロデューサシステム106の各々に割り当てられるか否かを問わず、いくつかのプロデューサシステム106の各々とのコンシューマシステムの104の相互作用に関する情報を提供するという点において一種の「ゴシップアルゴリズム」の役目をすることができる。換言すると、リースエージェント102は、別のリースエージェント102に割り当てられているプロデューサシステム106に関する「ゴシップ」を取得し得る。リースエージェント102は、その後、「ゴシップ」をプロデューサシステム106に割り当てられているリースエージェント102に広めることができる。有利なことに、ある特定の実施形態において、この「ゴシップアルゴリズム」を使用することによって、リースエージェント102は、現状メタデータをスケジュールされた現状更新と次の現状更新の間にプロデューサシステム106から取得することができる。現状メタデータをコンシューマシステム104並びにプロデューサシステム106から取得することによって、リースのためのプロデューサシステム106の選択は、「ゴシップアルゴリズム」を使用しないシステムと比較して更に最適化することができる。「ゴシップ」又はサービスを提供するコンピューティングシステムを選択するためのフィードバック情報を取得するシステム及び方法の更なる実施形態が、2009年8月20日出願の、「DECENTRALIZED REQUEST ROUTING」という名称の、米国特許出願第12/544,517号で説明されており、この特許は、その全体が参照によって本明細書に組み入れられる。いくつかの実施形態において、ブロック1002は、ブロック406及び/又はブロック408に関して先述した実施形態の一部又は全てを含むことができる。   At block 1004, status module 228 updates the producer system 106 one or more producer status information based on the corresponding status metadata received at block 1002. Alternatively or additionally, the status module 228 may determine that at least some of the received status metadata is related to a producer system 106 associated with another leasing system 102, and thus status information has been assigned to the producer system 106. The lease agent 102 may be provided. In some cases, the processes associated with blocks 1002 and 1004 may cause the consumer system 104 to send to the lease agent 102 several producers regardless of whether the lease agent 102 is assigned to each of several producer systems 106. It can act as a kind of “gossip algorithm” in that it provides information about the interaction of the consumer system 104 with each of the systems 106. In other words, a lease agent 102 may obtain a “gossip” for a producer system 106 that is assigned to another lease agent 102. The lease agent 102 can then spread the “gossip” to the lease agent 102 assigned to the producer system 106. Advantageously, in certain embodiments, by using this “gossip algorithm”, the lease agent 102 obtains the current metadata from the producer system 106 between the scheduled current update and the next current update. can do. By obtaining the current metadata from the consumer system 104 as well as the producer system 106, the choice of the producer system 106 for leasing can be further optimized compared to a system that does not use a “gossip algorithm”. A further embodiment of a system and method for obtaining feedback information for selecting a “gossip” or computing system to provide a service is disclosed in US, filed Aug. 20, 2009, entitled “DECENTRALIZED REQUEST ROUTING”. No. 12 / 544,517, which is hereby incorporated by reference in its entirety. In some embodiments, block 1002 can include some or all of the embodiments described above with respect to block 406 and / or block 408.

決定ブロック1006にて、現状モジュール228は、更新されたプロデューサ現状情報がプロデューサシステム106に関連した負荷メトリックの変化を示すかどうか判定する。負荷メトリックは、モニタリングに選択されたプロデューサシステム106の任意の特性を含むことができる。この負荷メトリックは、プロデューサシステム106によって処理することができる負荷に関することができる。場合によっては、負荷メトリックは、プロデューサシステムの健康に関係する任意のメトリックを含むことができる。負荷メトリックのいくつかの非限定的な実施例としては、エラー率、メモリ利用率、コンシューマシステムとの接続のカウントなどを挙げることができる。決定ブロック1006にて、更新されたプロデューサ現状情報が負荷メトリックの変化を示さない場合、プロセス1000は、ブロック1002に戻って、コンシューマシステム104からの新しい現状メタデータを待つ。   At decision block 1006, the current status module 228 determines whether the updated producer current status information indicates a change in load metrics associated with the producer system 106. The load metric can include any characteristic of the producer system 106 selected for monitoring. This load metric can relate to the load that can be handled by the producer system 106. In some cases, the load metric can include any metric related to the health of the producer system. Some non-limiting examples of load metrics can include error rate, memory utilization, count of connections with consumer systems, and the like. If at decision block 1006 the updated producer status information does not indicate a change in load metric, process 1000 returns to block 1002 to wait for new status metadata from consumer system 104.

いくつかの実施形態において、決定ブロック1006は、あるいは又は更にプロデューサシステム106に関連した1つ以上の他のメトリックに関連した値の変化があるかどうか判定することを伴い得る。例えば、現状モジュール228は更新されたプロデューサ現状情報がプロデューサシステム106による応答時間の変更、又は、プロデューサシステム106による利用可能なリソースの変更を示すかどうか判定し得る。場合によっては、決定ブロック1006は、プロデューサシステム106の更新された負荷メトリック測定結果をネットワーク環境100内のプロデューサシステム106の、又は、リースエージェント102に割り当てられたプロデューサシステムの平均負荷メトリック測定結果と比較することを含み得る。   In some embodiments, the decision block 1006 may involve determining whether there is a change in value associated with one or more other metrics associated with the producer system 106. For example, the status module 228 may determine whether the updated producer status information indicates a change in response time by the producer system 106 or a change in available resources by the producer system 106. In some cases, decision block 1006 compares the updated load metric measurement result of producer system 106 with the average load metric measurement result of the producer system 106 in the network environment 100 or the producer system assigned to lease agent 102. Can include.

更新されたプロデューサ現状情報がプロデューサシステム106の負荷メトリックの変化があることを示す場合、現状モジュール228は、ブロック1008にて、変化のある負荷メトリック測定に少なくとも部分的に基づいてプロデューサシステム106に関連した選択重みを修正する。選択重みを修正することは、誤り率の変化が誤り率増大、又は、誤り率減少を示すかどうかに基づいて選択重みを増減することを含むことができる。いくつかの実施形態において、プロデューサシステム106は、選択重みに関連づけられない。そのような実施形態において、決定ブロック1006にて検出された負荷メトリック又は他の追跡されたメトリックの変化が対応する閾値を満たすか又は超える場合、現状モジュール228は、プロデューサシステムを誤動作中又は利用不可能と識別し得る。そのような場合、管理者などのユーザが、負荷メトリックがもはや利用不可能又は誤動作中とのプロデューサシステム106の識別に関連した閾値に到達した場合に警告され得る。更に、場合によっては、ユーザは、負荷メトリック又は選択重みがプロデューサシステム106の利用可能性に関係なく閾値を変える場合に警告され得る。   If the updated producer status information indicates that there is a change in the load metric of the producer system 106, the status module 228 is associated with the producer system 106 based at least in part on the changed load metric measurement at block 1008. Correct the selected weight. Modifying the selection weight can include increasing or decreasing the selection weight based on whether a change in the error rate indicates an increase in the error rate or a decrease in the error rate. In some embodiments, the producer system 106 is not associated with a selection weight. In such embodiments, if the change in load metric or other tracked metric detected at decision block 1006 meets or exceeds a corresponding threshold, current module 228 may malfunction the producer system or not use it. Can be identified as possible. In such a case, a user, such as an administrator, may be alerted if a threshold associated with identifying the producer system 106 that the load metric is no longer available or malfunctioning. Further, in some cases, the user may be warned if the load metric or selection weight changes the threshold regardless of the availability of the producer system 106.

ある特定の実施形態において、プロデューサシステム106に関連した選択重みは、先述したプロセス400に関連したブロック410の一部として利用可能なプロデューサシステム106をコンシューマシステムへのリースに選択するのを容易にするために使用され得る。選択重み及び/又はプロデューサシステム106の利用可能性の現状は、プロデューサリポジトリ220及び/又はエージェントリポジトリ206にて記憶され得る。   In certain embodiments, the selection weight associated with the producer system 106 facilitates selecting the producer system 106 available as part of the block 410 associated with the process 400 described above for lease to the consumer system. Can be used for. The current status of selection weights and / or availability of the producer system 106 may be stored in the producer repository 220 and / or the agent repository 206.

オーバーレイネットワーク環境概要
図11は、プロデューサシステムによってホスティングされたサービスへのアクセスをコンシューマシステムに提供するオーバレイネットワーク環境1100の実施形態を例示する。オーバーレイネットワーク環境1100は、1つ以上のオーバーレイネットワーク又は仮想ネットワークを1つ以上の組織又は事業体に提供することができる任意の種類のシステムを含むことができる。これらのオーバーレイネットワークは、物理又は非仮想ネットワークを形成し得るコンピューティングハードウェアによって実施され得る。本開示と共に使用され得るオーバレイ又は仮想ネットワークのいくつかの実施例が、2010年6月30日出願の米国特許出願第12/827,268号(現在米国特許第8,296,459号)で説明されており、この特許の全体が引用により本明細書に組み入れられる。
Overlay Network Environment Overview FIG. 11 illustrates an embodiment of an overlay network environment 1100 that provides consumer systems with access to services hosted by a producer system. Overlay network environment 1100 can include any type of system that can provide one or more overlay networks or virtual networks to one or more organizations or entities. These overlay networks can be implemented by computing hardware that can form physical or non-virtual networks. Some examples of overlay or virtual networks that can be used with this disclosure are described in US patent application Ser. No. 12 / 827,268 filed Jun. 30, 2010 (currently US Pat. No. 8,296,459). The entirety of this patent is hereby incorporated by reference.

オーバーレイネットワーク環境1100は、リースエージェント102、コンシューマホスト1104、及びプロデューサホスト1106を含み、それらの各々はネットワーク202を介して互いと通信し得る。リースエージェント102の各々は、図2に関して例示及び説明したサブシステムの一部又は全部を含み得る。したがって、例えば、リースエージェント102は、プロデューサリポジトリ220と、分割システム222と、リースシステム224と、登録モジュール226と、現状モジュール228とを含み得る。リースエージェント102のこれらのサブシステムの各々は、図2に関して先述したのと同じ機能性を含むことができるが、場合によっては、これらのサブシステムは、修正されたか、又は更なる能力を含み得る。例えば、コンシューマシステム104及びプロデューサシステム106に関係する現状情報を受信することに加えて又はその代わりに、現状モジュール228は、コンシューマホスト1104、プロデューサホスト1106、コンシューマ仮想マシン1142、及びプロデューサ仮想マシン1162のうちの1つ以上に関係する現状情報を受信することができる。同様に、プロデューサリポジトリ220は、コンシューマホスト1104、プロデューサホスト1106、コンシューマ仮想マシン1142、及びプロデューサ仮想マシン1162のうちの1つ以上に関係する情報を含むことができる。   Overlay network environment 1100 includes lease agent 102, consumer host 1104, and producer host 1106, each of which can communicate with each other over network 202. Each lease agent 102 may include some or all of the subsystems illustrated and described with respect to FIG. Thus, for example, the lease agent 102 may include a producer repository 220, a split system 222, a lease system 224, a registration module 226, and a status module 228. Each of these subsystems of lease agent 102 may include the same functionality as described above with respect to FIG. 2, but in some cases, these subsystems may have been modified or include additional capabilities. . For example, in addition to or instead of receiving current status information related to the consumer system 104 and the producer system 106, the current status module 228 includes the consumer host 1104, the producer host 1106, the consumer virtual machine 1142, and the producer virtual machine 1162. Current status information related to one or more of them can be received. Similarly, producer repository 220 may include information related to one or more of consumer host 1104, producer host 1106, consumer virtual machine 1142, and producer virtual machine 1162.

場合によっては、分割システム222は、プロデューサ仮想マシン1162をオーバーレイネットワーク環境1100のリースエージェント102間で分割するために使用することができる。更に、特定のオーバーレイネットワークに関連したプロデューサ仮想マシン1162は、他のオーバーレイネットワークに関連したプロデューサ仮想マシン1162から独立して分割することができる。したがって、例えば、プロデューサ仮想マシンB’は、プロデューサ仮想マシンB’’から独立してリースエージェント102に対して分割され得る。場合によっては、利用可能なリースエージェント102のサブセットが、特定のオーバーレイネットワークに関連づけられ得る。そのような場合、特定のオーバーレイネットワークに関連したプロデューサ仮想マシン1162及びコンシューマ仮想マシン1142は、利用可能なリースエージェント102のサブセットに通信を限定し得る。   In some cases, the splitting system 222 can be used to split the producer virtual machine 1162 among the lease agents 102 of the overlay network environment 1100. Further, a producer virtual machine 1162 associated with a particular overlay network can be partitioned independently of producer virtual machines 1162 associated with other overlay networks. Thus, for example, the producer virtual machine B ′ can be split to the lease agent 102 independently of the producer virtual machine B ″. In some cases, a subset of available lease agents 102 may be associated with a particular overlay network. In such cases, the producer virtual machine 1162 and consumer virtual machine 1142 associated with a particular overlay network may limit communication to a subset of available lease agents 102.

更に、リースシステム224は、プロデューサ仮想マシン1162及びコンシューマ仮想マシン1142が関連するオーバーレイネットワークに基づいてコンシューマ仮想マシン1142にリースするべきプロデューサ仮想マシン1162を選択し得る。場合によっては、オーバーレイネットワークに基づいてプロデューサ仮想マシン1162を選択することは、コンシューマシステム104に最小するべきプロデューサシステム106を選択することに関して先述の要素に追加され得る。更に、登録モジュール226は、プロデューサ仮想マシン1162をリースエージェント102に登録するために使用することができる。   Further, the leasing system 224 may select the producer virtual machine 1162 to lease to the consumer virtual machine 1142 based on the overlay network with which the producer virtual machine 1162 and the consumer virtual machine 1142 are associated. In some cases, selecting the producer virtual machine 1162 based on the overlay network may be added to the elements described above with respect to selecting the producer system 106 to be minimized to the consumer system 104. Further, the registration module 226 can be used to register the producer virtual machine 1162 with the lease agent 102.

単一のコンシューマホスト1104のみを図11に例示するが、オーバーレイネットワーク環境は、複数のコンシューマホスト1104を含むことができる。コンシューマホスト1104の各々は、いくつかのコンシューマ仮想マシン1142を含み得る。コンシューマ仮想マシン1142のいくつかは、コンシューマホスト1104によってホスティングされた他のコンシューマ仮想マシン1142と異なるオーバーレイネットワークに関連し得る。例えば、コンシューマホスト1104は、異なるオーバーレイネットワークに各々関連した2つのコンシューマ仮想マシン1142を含む。コンシューマ仮想マシンA’は、プロデューサ仮想マシンB’も含み得る第1のオーバーレイネットワークに関連し得、コンシューマ仮想マシンA’’は、プロデューサ仮想マシンB’’も含み得る第2のオーバーレイネットワークに関連し得る。   Although only a single consumer host 1104 is illustrated in FIG. 11, an overlay network environment may include multiple consumer hosts 1104. Each consumer host 1104 may include a number of consumer virtual machines 1142. Some of the consumer virtual machines 1142 may be associated with a different overlay network than other consumer virtual machines 1142 hosted by the consumer host 1104. For example, consumer host 1104 includes two consumer virtual machines 1142, each associated with a different overlay network. Consumer virtual machine A ′ may be associated with a first overlay network that may also include a producer virtual machine B ′, and consumer virtual machine A ″ may be associated with a second overlay network that may also include a producer virtual machine B ″. obtain.

コンシューマ仮想マシン1142に加えて、コンシューマホスト1104は、オーバーレイネットワークプロキシ1114と、リースリクエスタ1130と、仮想マシンマッピングリポジトリ1150と、現状モジュール1132とを含み得る。オーバーレイネットワークプロキシ1114は、コンシューマ仮想マシン1142からのサービス要求を処理することができ、かつ、プロデューサ仮想マシン1162をホスティングしているプロデューサホスト1106に処理のサービス要求を提供することができる任意のシステムを含むことができる。いくつかの実施形態において、コンシューマ仮想マシン1142から受信されたサービス要求は、コンシューマ仮想マシン1142がそれサービス要求を処理することができると信じるプロデューサ仮想マシン1162又は存在しないシステムに関連した仮想アドレスを含み得る。仮想アドレスと共にサービス要求を受信すると、オーバーレイネットワークプロキシ1114は、サービス要求を提供したコンシューマ仮想マシン1142と同じオーバーレイネットワークにおいてサービス要求を処理するプロデューサ仮想マシン1162を識別することができる。オーバーレイネットワークプロキシ1114は、その後、仮想アドレスを識別されたプロデューサ仮想マシン1162のアドレスと入れ替えることができる。以下で更に詳細に説明するように、プロデューサ仮想マシン1162は、サービス要求を提供したコンシューマ仮想マシン1142に関連したリースされたプロデューサ仮想マシン1162のプールから識別され得る。更に、オーバーレイネットワークプロキシ1114は、識別されたプロデューサ仮想マシン1162をホスティングするプロデューサホスト1106を識別し、かつ、コンシューマホスト1104を識別するヘッダ又は外側ヘッダでサービス要求をラッピング又はカプセル化することができる。   In addition to the consumer virtual machine 1142, the consumer host 1104 can include an overlay network proxy 1114, a lease requester 1130, a virtual machine mapping repository 1150, and a current state module 1132. The overlay network proxy 1114 can process any service request from the consumer virtual machine 1142 and can provide any service request for processing to the producer host 1106 hosting the producer virtual machine 1162. Can be included. In some embodiments, a service request received from a consumer virtual machine 1142 includes a virtual address associated with a producer virtual machine 1162 or a non-existent system that the consumer virtual machine 1142 believes can service the service request. obtain. Upon receiving a service request with a virtual address, overlay network proxy 1114 can identify a producer virtual machine 1162 that processes the service request in the same overlay network as the consumer virtual machine 1142 that provided the service request. The overlay network proxy 1114 can then replace the virtual address with the address of the identified producer virtual machine 1162. As described in more detail below, producer virtual machine 1162 may be identified from a pool of leased producer virtual machines 1162 associated with the consumer virtual machine 1142 that provided the service request. Further, the overlay network proxy 1114 can identify the producer host 1106 hosting the identified producer virtual machine 1162 and wrap or encapsulate the service request with a header or outer header that identifies the consumer host 1104.

仮想マシンマッピングリポジトリ1150は、コンシューマ仮想マシン1142のためにリースされるプロデューサ仮想マシン1162のプールを記憶することができる。更に、仮想マシンマッピングリポジトリ1150は、プロデューサ仮想マシン1162をホスティングする対応するプロデューサホスト1106の識別情報を記憶することができる。プロデューサ仮想マシン1162及びプロデューサホスト1106の識別情報を記憶することは、プロデューサ仮想マシン1162及びプロデューサホスト1106にアクセスするアドレス指定情報を記憶することを含むことができる。   Virtual machine mapping repository 1150 may store a pool of producer virtual machines 1162 that are leased for consumer virtual machines 1142. Further, the virtual machine mapping repository 1150 can store identification information of the corresponding producer host 1106 that hosts the producer virtual machine 1162. Storing the identification information of the producer virtual machine 1162 and the producer host 1106 can include storing addressing information for accessing the producer virtual machine 1162 and the producer host 1106.

コンシューマ仮想マシン1142のためにリースを取得するために、コンシューマホスト1104は、コンシューマホスト1104によってホスティングされたコンシューマ仮想マシン1142のためにリース要求を生成することができるリースリクエスタ1118を含むことができる。リースリクエスタ1118は、プロデューサ仮想マシン1162のリースが要求されている特定のオーバーレイネットワーク及び/又は特定のコンシューマ仮想マシン1142を識別することができる。   To obtain a lease for the consumer virtual machine 1142, the consumer host 1104 can include a lease requester 1118 that can generate a lease request for the consumer virtual machine 1142 hosted by the consumer host 1104. The lease requester 1118 can identify a particular overlay network and / or a particular consumer virtual machine 1142 from which a producer virtual machine 1162 is being leased.

現状モジュール1132は、現状モジュール242に関して上述の実施形態の一部又は全てを含むことができる。更に、現状モジュール1132はプロデューサ仮想マシン1162及びプロデューサホスト1106との通信に基づいてプロデューサ仮想マシン1162及び/又はプロデューサホスト1106の現状情報を提供することができる。   The current state module 1132 may include some or all of the above-described embodiments with respect to the current state module 242. Further, the current status module 1132 can provide current status information for the producer virtual machine 1162 and / or the producer host 1106 based on communication with the producer virtual machine 1162 and the producer host 1106.

コンシューマホスト1104の場合と同様に、オーバーレイネットワーク環境1100は、各々が1つ以上のオーバーレイネットワークに関連した1つ以上のプロデューサ仮想マシン1162を含むことができる任意の数のプロデューサホスト1106を含むことができる。更に、プロデューサホスト1106の各々は、オーバーレイネットワークプロキシ1116と、仮想マシンマッピングリポジトリ1152と、現状モジュール1134とを含むことができる。   As with the consumer host 1104, the overlay network environment 1100 may include any number of producer hosts 1106 that can each include one or more producer virtual machines 1162 associated with one or more overlay networks. it can. In addition, each producer host 1106 can include an overlay network proxy 1116, a virtual machine mapping repository 1152, and a status module 1134.

オーバーレイネットワークプロキシ1114と同様に、オーバーレイネットワークプロキシ1116は、コンシューマホスト1104から受信されたサービス要求を処理し、かつ、受信されたサービス要求に対する応答を処理する任意のシステムを含むことができる。サービス要求を受信すると、オーバーレイネットワークプロキシ1116は、サービス要求のヘッダ内に含まれる情報に基づいてサービス要求を処理するプロデューサ仮想マシン1162を判定することができる。更に、場合によっては、サービス要求はサービス要求を処理するためにプロデューサ仮想マシン1162を識別するのを容易にするために使用され得る特定のオーバーレイネットワークを識別し得る。   Similar to overlay network proxy 1114, overlay network proxy 1116 may include any system that processes service requests received from consumer host 1104 and processes responses to received service requests. Upon receiving the service request, the overlay network proxy 1116 can determine the producer virtual machine 1162 that processes the service request based on information included in the header of the service request. Further, in some cases, the service request may identify a particular overlay network that may be used to facilitate identifying the producer virtual machine 1162 to process the service request.

仮想マシンマッピングリポジトリ1152は、どのプロデューサ仮想マシン1162がどのオーバーレイネットワークに関連しているかを識別する情報を記憶することができる。更に、仮想マシンマッピングリポジトリ1152は、どのコンシューマホスト1104が特定のコンシューマ仮想マシン1142をホスティングするか識別するのを容易にする情報を記憶することができる。この情報は、サービス要求に対する応答を提供するコンシューマホスト1104を判定するために使用することができる。   The virtual machine mapping repository 1152 can store information identifying which producer virtual machine 1162 is associated with which overlay network. Further, the virtual machine mapping repository 1152 can store information that facilitates identifying which consumer host 1104 is hosting a particular consumer virtual machine 1142. This information can be used to determine the consumer host 1104 that provides the response to the service request.

現状モジュール1132の場合と同様に、現状モジュール1134は現状モジュール262に関して先述の実施形態の1つ以上を含むことができる。更に、現状モジュール1134はプロデューサ仮想マシン1162に関係する現状情報をリースエージェント102に提供することができる。   As with the current module 1132, the current module 1134 can include one or more of the previous embodiments with respect to the current module 262. Further, the current status module 1134 can provide current status information related to the producer virtual machine 1162 to the lease agent 102.

コンシューマホスト1104及びプロデューサホスト1106の破線によって示すように、本明細書で開示するプロセスを可能にする下層システムは、コンシューマ(例えば、クライアント)及びプロデューサ(例えば、サーバ又はサービスプロバイダ)のうちの1つ以上のオーバーレイネットワークを形成する仮想マシンから分離することができる。場合によっては、下層システム(例えば、オーバーレイネットワークプロキシ1114及び1116)は、コンシューマホスト1104及びプロデューサホスト1106のネットワーキングインフラストラクチャの一部として実施することができる。有利なことに、ある特定の実施形態において、下層システムを仮想マシンから分離することによって、リース構造は、オーバーレイネットワークに影響を与えることなく実施、維持、及び修正することができる。   As indicated by the dashed lines of the consumer host 1104 and the producer host 1106, the underlying system that enables the process disclosed herein is one of a consumer (eg, a client) and a producer (eg, a server or service provider). It can be separated from the virtual machine forming the above overlay network. In some cases, underlying systems (eg, overlay network proxies 1114 and 1116) may be implemented as part of the networking infrastructure of consumer host 1104 and producer host 1106. Advantageously, in certain embodiments, by separating the underlying system from the virtual machine, the lease structure can be implemented, maintained, and modified without affecting the overlay network.

いくつかの実施形態において、コンシューマホスト104は、コンシューマ仮想マシン1142及びプロデューサ仮想マシン1162の両方をホスティングすることができる。更に、場合によっては、プロデューサホスト1106は、コンシューマ仮想マシン1142及びプロデューサ仮想マシン1162の両方をホスティングすることができる。更に、コンシューマ仮想マシン1142及びプロデューサ仮想マシン1162は、仮想マシンとして説明したが、そのようなものとして限定されるものではない。いくつかの実施形態において、オーバーレイネットワークは、コンシューマホスト1104及びプロデューサホスト1106の一部であるか、又は、コンシューマホスト1104及びプロデューサホスト1106によって実行されるハードウェアリソース及び/又はソフトウェアリソースを割り当てられ得る。これらのリソースは、オーバーレイネットワークの一部としてプロデューサシステム及びコンシューマシステムを実行するために仮想マシンの内に配置された使用され得る。   In some embodiments, the consumer host 104 can host both a consumer virtual machine 1142 and a producer virtual machine 1162. Further, in some cases, the producer host 1106 can host both a consumer virtual machine 1142 and a producer virtual machine 1162. Furthermore, although the consumer virtual machine 1142 and the producer virtual machine 1162 have been described as virtual machines, they are not limited to such. In some embodiments, the overlay network may be part of the consumer host 1104 and producer host 1106, or may be allocated hardware and / or software resources executed by the consumer host 1104 and producer host 1106. . These resources can be used placed within the virtual machine to run producer and consumer systems as part of the overlay network.

場合によっては、ネットワーク環境100に関して先述のプロセスのうちの1つ以上は、オーバーレイネットワーク環境1100に関して実行され得るか、又は、実行されるために修正され得る。したがって、例えば、プロセス900は、オーバーレイネットワーク環境1100においてリースエージェントを再分割するために実行され得る。第2の実施例として、プロセス700及び800は、オーバーレイネットワーク環境1100においてプロデューサ仮想マシン1162をリースエージェント102に登録するために実行することができる。   In some cases, one or more of the processes described above with respect to network environment 100 may be performed with respect to overlay network environment 1100 or modified to be performed. Thus, for example, process 900 can be performed to subdivide lease agents in overlay network environment 1100. As a second example, processes 700 and 800 may be performed to register producer virtual machine 1162 with lease agent 102 in overlay network environment 1100.

プロデューサ仮想マシンのサービスにアクセスする例示的なプロセス
図12は、プロデューサ仮想マシンでのサービスにアクセスするプロセス1200の実施形態を例示する。プロセス1200は、プロデューサ仮想マシンによって提供されるサービスにアクセスするコンシューマ仮想マシンからの要求を処理することができる任意のシステムによって実行することができる。例えば、プロセス1200は、全体的に又は部分的に、少し例を挙げれば、コンシューマホスト1104、リースエージェント102、オーバーレイネットワークプロキシ1114、及びリースリクエスタ1118によって実施することができる。任意の数のシステムが、全部、一部を問わず、プロセス1200を実施することができるが、論じる内容を簡素化するために、プロセス1200の部分を特定のシステムを特定のシステムを参照して説明する。
Exemplary Process for Accessing Producer Virtual Machine Services FIG. 12 illustrates an embodiment of a process 1200 for accessing services on a producer virtual machine. Process 1200 may be performed by any system capable of processing requests from consumer virtual machines that access services provided by the producer virtual machine. For example, process 1200 may be implemented in whole or in part by consumer host 1104, lease agent 102, overlay network proxy 1114, and lease requester 1118, to name a few. Any number of systems, whether in whole or in part, can implement process 1200, but to simplify the discussion, parts of process 1200 are referred to a particular system and a particular system. explain.

場合によっては、プロセス1200はコンシューマ仮想マシンがプロデューサシステムによって提供されるサービスにアクセスすることを可能にするために使用され得る。同様に、いくつかの実施形態において、プロセス1200は、コンシューマシステムがプロデューサ仮想マシンによって提供されるサービスにアクセスすることを可能にするために使用され得る。しかしながら、論じる内容を簡素化するために、プロセス1200を、プロデューサ仮想マシンのサービスにアクセスしようとするコンシューマ仮想マシンに関して説明する。   In some cases, process 1200 may be used to allow a consumer virtual machine to access services provided by a producer system. Similarly, in some embodiments, process 1200 may be used to allow a consumer system to access services provided by a producer virtual machine. However, to simplify the discussion, the process 1200 will be described with respect to a consumer virtual machine attempting to access a producer virtual machine service.

プロセス1200は、ブロック1202にて始まり、例えば、コンシューマホスト1104(例えば、コンシューマホストA)のオーバーレイネットワークプロキシ1114は、プロデューサでのサービスにアクセスする要求をコンシューマ仮想マシン1142(例えば、コンシューマ仮想マシンA’)から受信する。あるいは又は更に、ブロック1202にて受信された要求は、プロデューサに提供されるデータパケットであり得る。例えば、データパケットは、サービスに関連して使用されるか、又は、コンシューマ仮想マシンが既にアクセスを確立されているプロデューサでのサービスの使用を容易にするデータであり得る。いくつかの実施形態において、要求は、要求又はパケットがコンシューマ仮想マシン1142に関連したアドレスAから仮想アドレスXにアドレス指定されることを示すヘッダを有するパケットを含み得る。例えば、受信されたパケットは、以下の通り、即ち、データがΑ'からXに送られていることを示す{A’,X,データ}であり得る。パケットのデータフィールドは、要求、及び/又は、プロデューサ仮想マシン1162にて要求又は動作を実行するのを容易にするデータを含み得る。ある特定の実施形態において、コンシューマ仮想マシン1142は、アドレスXが仮想アドレスであることを認識しておらず、その代わりに、アドレスXは物理プロデューサシステムを指すと考える場合がある。更に、先述のように、いくつかの実施形態において、オーバーレイネットワークは、コンシューマ仮想マシン以外の、又は、コンシューマ仮想マシンに加えてコンシューマシステムを含み得る。そのような実施形態において、ブロック1202は、コンシューマホスト1104の上で実施されるか、又は、コンシューマホスト1104によってホスティングされた、プロデューサでのサービスにアクセスする要求をコンシューマシステムから受信することを含み得る。同様に、プロデューサホストは、コンシューマシステムにサービスを提供するように構成され得るプロデューサ仮想マシン以外の、又は、該プロデューサ仮想マシンに加えてプロデューサシステムを含み得る。   The process 1200 begins at block 1202, for example, the overlay network proxy 1114 of the consumer host 1104 (eg, consumer host A) requests a request to access the service at the producer consumer 1142 (eg, consumer virtual machine A ′). ) Alternatively or additionally, the request received at block 1202 may be a data packet provided to the producer. For example, a data packet may be data that is used in connection with a service or that facilitates the use of a service with a producer to which a consumer virtual machine has already established access. In some embodiments, the request may include a packet having a header indicating that the request or packet is addressed from address A associated with consumer virtual machine 1142 to virtual address X. For example, the received packet may be as follows: {A ′, X, data} indicating that data is being sent from Α ′ to X. The data field of the packet may include the request and / or data that facilitates performing the request or action at the producer virtual machine 1162. In certain embodiments, consumer virtual machine 1142 may not be aware that address X is a virtual address, but instead may consider address X to refer to a physical producer system. Further, as described above, in some embodiments, the overlay network may include consumer systems other than or in addition to consumer virtual machines. In such an embodiment, block 1202 may include receiving from a consumer system a request to access a service at a producer implemented on or hosted by consumer host 1104. . Similarly, a producer host may include a producer system other than or in addition to a producer virtual machine that may be configured to provide services to a consumer system.

決定ブロック1204にて、オーバーレイネットワークプロキシ1114は、コンシューマ仮想マシン1142に関連した未使用プロデューサ仮想マシンリースがあるかどうか判定する。コンシューマ仮想マシン1142に関連した未使用プロデューサ仮想マシンリースがあるかどうか判定することは、仮想マシンマッピングリポジトリ1150にアクセスして、コンシューマ仮想マシン1142に関連したリースプールがあるかどうか判定することを含み得る。更に、場合によっては、決定ブロック1204は、リースプールがコンシューマ仮想マシン1142に関連したプロデューサ仮想マシンについて未使用リースを含むかどうか判定することを含み得る。   At decision block 1204, overlay network proxy 1114 determines whether there is an unused producer virtual machine lease associated with consumer virtual machine 1142. Determining whether there is an unused producer virtual machine lease associated with the consumer virtual machine 1142 includes accessing the virtual machine mapping repository 1150 to determine whether there is a lease pool associated with the consumer virtual machine 1142. obtain. Further, in some cases, decision block 1204 may include determining whether the lease pool includes an unused lease for the producer virtual machine associated with consumer virtual machine 1142.

オーバーレイネットワークプロキシ1114が決定ブロック1204にてコンシューマ仮想マシン1142に関連した未使用プロデューサ仮想マシンリリース(machine release)がないと判定した場合、リースリクエスタ1130は、ブロック1206にてプロデューサ仮想マシンにアクセスするために複数のリースを取得する。1つ以上のプロデューサ仮想マシンにアクセスするために1つ以上のリースを取得するプロセスの実施例を以下で図14に関して更に詳細に説明する。   If the overlay network proxy 1114 determines at decision block 1204 that there is no unused producer virtual machine release associated with the consumer virtual machine 1142, the lease requester 1130 accesses the producer virtual machine at block 1206. Acquire multiple leases. An example of a process for obtaining one or more leases to access one or more producer virtual machines is described in further detail below with respect to FIG.

ブロック1208にて、オーバーレイネットワークプロキシ1114は、ブロック1206にて取得されたリースされたプロデューサ仮想マシン1162との接続を確立しようとする。場合によっては、ブロック1208は、オーバーレイネットワークプロキシ1114が失敗せずに接続を確立する各々のリースされたプロデューサ仮想マシンに関連したリース情報を記憶することを含むことができる。   At block 1208, overlay network proxy 1114 attempts to establish a connection with the leased producer virtual machine 1162 obtained at block 1206. In some cases, block 1208 may include storing lease information associated with each leased producer virtual machine with which the overlay network proxy 1114 establishes a connection without failure.

オーバーレイネットワークプロキシ1114が、ブロック1208にて、リースされたプロデューサ仮想マシンとの接続を確立した後、又は、オーバーレイネットワークプロキシ1114が決定ブロック1204にてコンシューマ仮想マシン1142に関連した未使用プロデューサ仮想マシンリリースがあると判定した場合、プロセス1200は、ブロック1210に進む。ブロック1210にて、オーバーレイネットワークプロキシ1114は、コンシューマ仮想マシン1142によって要求されたサービスにアクセスするリースされたプロデューサ仮想マシン1162を選択する。プロデューサ仮想マシン1162は、ラウンドロビン又は最小時間未参照など任意の種類の選択アルゴリズムを使用して選択され得る。他の場合において、プロデューサ仮想マシン1162は、接続がプロデューサ仮想マシン1162と確立された順番に基づいて選択され得る。更に他の場合において、プロデューサ仮想マシン1162は、ランダムに選択され、及び/又は、あのブロック1202受信されたサービス要求に基づいて選択され得る。あるいは、場合によっては、オーバーレイネットワークプロキシ1114は、仮想マシンマッピングリポジトリ1150にアクセスして、プロデューサ仮想マシン1142を選択するのを容易にし得る。例えば、オーバーレイネットワークプロキシ1114は、リースプールにアクセスし得、リースプールは、仮想マシンマッピングリポジトリ1150にて記憶された、利用可能なプロデューサ仮想マシン1162を識別するテーブルとして記憶され得る。   An unused producer virtual machine release associated with the consumer virtual machine 1142 after the overlay network proxy 1114 establishes a connection with the leased producer virtual machine at block 1208 or the overlay network proxy 1114 determines at decision block 1204 If it is determined that there is, process 1200 proceeds to block 1210. At block 1210, overlay network proxy 1114 selects a leased producer virtual machine 1162 that accesses the service requested by consumer virtual machine 1142. Producer virtual machine 1162 may be selected using any type of selection algorithm, such as round robin or minimum time unreferenced. In other cases, the producer virtual machine 1162 may be selected based on the order in which connections were established with the producer virtual machine 1162. In yet other cases, the producer virtual machine 1162 may be selected randomly and / or based on that block 1202 received service request. Alternatively, in some cases, overlay network proxy 1114 may facilitate accessing virtual machine mapping repository 1150 to select producer virtual machine 1142. For example, the overlay network proxy 1114 may access the lease pool, which may be stored as a table identifying the available producer virtual machines 1162 stored in the virtual machine mapping repository 1150.

場合によっては、オーバーレイネットワークプロキシ1114は、閾値を下回る負荷を有するリースされたプロデューサ仮想マシン1162を選択し得る。そのような場合、オーバーレイネットワークプロキシ1114は、プロデューサからランダムに閾値を下回る負荷を有する仮想マシン1162を選択し得る。この負荷は、プロデューサ仮想マシン1162の利用に関係する任意の測定可能なメトリックを指し得る。例えば、負荷は、プロセッサ負荷、ネットワーク接続負荷、プロデューサ仮想マシン1162とのいくつかコンシューマ接続、接続における最低待ち時間、プロデューサ仮想マシン1162のパフォーマンスの目安などを指し得る。   In some cases, overlay network proxy 1114 may select a leased producer virtual machine 1162 that has a load below a threshold. In such a case, the overlay network proxy 1114 may select a virtual machine 1162 having a load that is randomly below the threshold from the producer. This load may refer to any measurable metric related to utilization of the producer virtual machine 1162. For example, the load may refer to processor load, network connection load, some consumer connection with the producer virtual machine 1162, minimum latency in connection, a measure of the performance of the producer virtual machine 1162, and so on.

更に、場合によっては、各リースは、経費に関連し得る。例えば、コンシューマ又はコンシューマに関連した事業体は、秒単位の使用について、メガ単位の通信又は処理されたデータのバイトについて、又は、計算サイクル時間単位のプロデューサ仮想マシン1162について課金され得る。そのような場合、オーバーレイネットワークプロキシ1114は、利用可能なリースされたプロデューサ仮想マシン1162の経費に基づいてリースされたプロデューサ仮想マシン1162を選択し得る。   Further, in some cases, each lease may be associated with an expense. For example, a consumer or an entity associated with a consumer may be charged for usage in seconds, for communications in mega or bytes of processed data, or for producer virtual machine 1162 in compute cycle time. In such a case, overlay network proxy 1114 may select leased producer virtual machine 1162 based on the cost of available leased producer virtual machine 1162.

ブロック1212にて、オーバーレイネットワークプロキシ1114は、要求ヘッダ(例えば、内側ヘッダ)内に含まれるプロデューサのアドレス(例えば、仮想アドレスX)をブロック1210にて選択されたリースされたプロデューサ仮想マシン1162のアドレスと入れ替える。したがって、例えば、ブロック1202にて受信されたパケットは、この時点で、以下の通り、即ち、{A’,B’,データ}であり得る。いくつかの実施形態において、ブロック1212は、随意的であり得る。例えば、いくつかの実施形態において、各々のリースされたプロデューサ仮想マシン1162は、ポートに関連し得る。したがって、仮想アドレスXをリースされたプロデューサ仮想マシン1162のアドレスと入れ替える代わりに、パケットは、リースされたプロデューサ仮想マシン1162に関連したポートを介してホスティングプロデューサに通信され得る。第2の実施例として、パケットは、プロデューサホストに通信され得、プロデューサホストは、例えば、仮想アドレスXに基づいてパケットを受信するリースされたプロデューサ仮想マシン1162を判定し得る。   At block 1212, overlay network proxy 1114 selects the address of the leased producer virtual machine 1162 selected at block 1210 with the producer's address (eg, virtual address X) included in the request header (eg, inner header). And replace. Thus, for example, the packet received at block 1202 can now be as follows: {A ', B', data}. In some embodiments, block 1212 may be optional. For example, in some embodiments, each leased producer virtual machine 1162 may be associated with a port. Thus, instead of replacing virtual address X with the address of leased producer virtual machine 1162, the packet can be communicated to the hosting producer via the port associated with leased producer virtual machine 1162. As a second example, the packet may be communicated to a producer host, which may determine a leased producer virtual machine 1162 that receives the packet based on virtual address X, for example.

ブロック1214にて、オーバーレイネットワークプロキシ1114は、リースされたプロデューサ仮想マシンに関連したプロデューサホスト1106を識別する。プロデューサホスト1106は、仮想マシンマッピングリポジトリ1150にて記憶された状態テーブルにアクセスすることによって識別され得る。   At block 1214, the overlay network proxy 1114 identifies the producer host 1106 associated with the leased producer virtual machine. The producer host 1106 can be identified by accessing a state table stored in the virtual machine mapping repository 1150.

オーバーレイネットワークプロキシ1114は、ブロック1216にて、ブロック1214にて識別されたプロデューサホスト1106及びコンシューマ仮想マシン1142に関連したコンシューマホスト1104を識別する外側ヘッダで要求をカプセル化する。したがって、例えば、パケットは、この時点で以下の通り、即ち、{A,B{A’,B’,データ}}であり、これは、パケットがコンシューマホストAからプロデューサホストBに送られていることを示す。あるいは、場合によっては、プロデューサホスト1106及びコンシューマホスト1104の識別情報が、ブロック1202にて受信された要求と共に含まれ得るか、又は、該要求の要求ヘッダに追加され得、パケットは、以下の通り、即ち{A,B,A’,B’,データ}であり得、これは、パケットがコンシューマホストAからプロデューサホストBに送られていることを示す。そのような場合、ブロック1216に関連したプロセスが完了した後、要求は、内側ヘッダ及び外側ヘッダを含む2つのヘッダの代わりに単一のヘッダを含む。いくつかの実施形態において、ブロック1216は、ブロック1202にて要求を提供したコンシューマ仮想マシン1142及びブロック1210にて識別されたプロデューサ仮想マシン1162に関連したオーバーレイネットワークの識別情報を含み得る。したがって、例えば、パケットは、要求は、’’、つまり、第2のオーバーレイネットワークではなくて、‘、つまり、第1のオーバーレイネットワークに関連することを示し、以下の通り、即ち、{A,B,‘,A’,B’,データ}であり得、これは、パケットがコンシューマホストAからプロデューサホストBに送られており、かつ、サービス要求は、コンシューマ仮想マシンから‘オーバーレイネットワーク内に含まれたプロデューサ仮想マシンへであることを示す。有利なことに、いくつかの実施形態において、サービス要求及びサービス要求に対する応答とともにオーバーレイネットワークの識別情報を含むことによって、アドレスは、異なるオーバーレイネットワーク間で再利用され得る。しかしながら、各仮想マシン及び各システムが固有のアドレスに関連している場合において、オーバーレイネットワークの識別情報を提供することは、随意的であり得る。   Overlay network proxy 1114 encapsulates the request at block 1216 with an outer header identifying the producer host 1106 and consumer host 1104 associated with consumer virtual machine 1142 identified at block 1214. Thus, for example, the packet is now as follows: {A, B {A ′, B ′, data}}, which is the packet being sent from consumer host A to producer host B It shows that. Alternatively, in some cases, identification information of the producer host 1106 and consumer host 1104 can be included with the request received at block 1202 or can be added to the request header of the request, and the packet is as follows: , Ie, {A, B, A ′, B ′, data}, which indicates that a packet is being sent from consumer host A to producer host B. In such a case, after the process associated with block 1216 is complete, the request includes a single header instead of two headers including an inner header and an outer header. In some embodiments, block 1216 may include identification information for the overlay network associated with the consumer virtual machine 1142 that provided the request at block 1202 and the producer virtual machine 1162 identified at block 1210. Thus, for example, the packet indicates that the request is related to the first overlay network, i.e., not the second overlay network, as follows: {A, B , ', A', B ', data}, where a packet is being sent from consumer host A to producer host B, and the service request is included in the overlay network from the consumer virtual machine. Producer to show virtual machine. Advantageously, in some embodiments, the address can be reused between different overlay networks by including the overlay network identification along with the service request and response to the service request. However, in the case where each virtual machine and each system is associated with a unique address, it may be optional to provide overlay network identification information.

いくつかの実施形態において、オーバーレイネットワークプロキシ1114は、仮想マシンマッピングリポジトリ1150にて記憶された状態管理テーブルからプロデューサ仮想マシンにアクセスすることにアドレス情報を判定することができる。この状態管理テーブルは、ブロック1210にて選択されたリースされたプロデューサ仮想マシン1162にアクセスする接続情報を含むことができる。更に、状態管理テーブルは、プロデューサ仮想マシンアドレスへの仮想アドレスのマッピングを含むことができる。更に、状態管理テーブルは、それぞれのプロデューサホストへのプロデューサ仮想マシン1162のマッピングを含むことができる。仮想アドレスをプロデューサ仮想マシンにマッピングするそのような状態管理テーブルの実施例を図15に例示する。   In some embodiments, the overlay network proxy 1114 can determine address information for accessing the producer virtual machine from a state management table stored in the virtual machine mapping repository 1150. This state management table may include connection information for accessing the leased producer virtual machine 1162 selected at block 1210. In addition, the state management table may include a mapping of virtual addresses to producer virtual machine addresses. In addition, the state management table may include a mapping of the producer virtual machine 1162 to the respective producer host. An example of such a state management table that maps virtual addresses to producer virtual machines is illustrated in FIG.

ブロック1218にて、オーバーレイネットワークプロキシ1114は、要求をブロック1214にて識別されたプロデューサホストに提供する。この要求は、ネットワーク202を介してプロデューサホスト1106に提供され得る。   At block 1218, overlay network proxy 1114 provides the request to the producer host identified at block 1214. This request may be provided to producer host 1106 via network 202.

プロデューサ仮想マシンでのサービスにアクセスする要求を処理する例示的なプロセス
図13は、プロデューサ仮想マシンでのサービスにアクセスする要求を処理するプロセス1300の実施形態を例示する。プロセス1300は、コンシューマホストから受信された、プロデューサ仮想マシンでのサービスにアクセスする要求を処理することができる任意のシステムによって実施することができる。例えば、プロセス1300は、全体的に又は部分的に、少し例を挙げれば、プロデューサホスト1106、オーバーレイネットワークプロキシ1116、及びプロデューサ仮想マシン1162によって実施することができる。任意の数のシステムが、全部、一部を問わず、プロセス1300を実施することができるが、論じる内容を簡素化するために、プロセス1300の部分を特定のシステムを特定のシステムを参照して説明する。
Exemplary Process for Processing Requests to Access Services on a Producer Virtual Machine FIG. 13 illustrates an embodiment of a process 1300 for processing requests to access services on a producer virtual machine. Process 1300 may be implemented by any system that can process a request received from a consumer host to access a service on a producer virtual machine. For example, process 1300 may be implemented in whole or in part by producer host 1106, overlay network proxy 1116, and producer virtual machine 1162, to name a few. Any number of systems, whether in whole or in part, can implement process 1300, but to simplify what is discussed, parts of process 1300 are referred to specific systems and specific systems. explain.

場合によっては、プロセス1300は、プロデューサ仮想マシンがコンシューマシステムによって要求されたサービスを提供することを可能にするために使用され得る。同様に、いくつかの実施形態において、プロセス1300は、プロデューサシステムがコンシューマ仮想マシンによって要求されたサービスを提供することを可能にするために使用され得る。しかしながら、論じる内容を簡素化するために、プロセス1300を、コンシューマ仮想マシンによって要求されたサービスへのアクセスを提供するプロデューサ仮想マシンに関して説明する。   In some cases, process 1300 may be used to allow a producer virtual machine to provide a service requested by a consumer system. Similarly, in some embodiments, process 1300 may be used to allow a producer system to provide a service requested by a consumer virtual machine. However, to simplify the discussion, the process 1300 will be described with respect to a producer virtual machine that provides access to the service requested by the consumer virtual machine.

プロセス1300は、ブロック1302にて始まり、例えば、プロデューサホスト1106(例えば、プロデューサホストB)のオーバーレイネットワークプロキシ1116は、要求をコンシューマホスト1104から受信する。要求は、形式化され得、例えば、以下の通り、即ち、{A,B,‘,A’,B’,データ}であり得、これは、パケットがコンシューマホストAから受信されて、プロデューサホストBを対象としており、かつ、サービス要求は、コンシューマ仮想マシンから’オーバーレイネットワーク内に含まれたプロデューサ仮想マシンへであることを示す。多くの場合、受信された要求は、プロデューサホスト1106によって郵送されたプロデューサ仮想マシン1162によってホスティングされたサービスにアクセスする要求である。しかしながら、場合によっては、受信された要求は、その代わりに、アクセスがコンシューマホスト1104によってホスティングされたコンシューマ仮想マシン1142によって既に確立されたサービスを実行するのを容易にするデータをプロデューサ仮想マシン1162に提供するように構成されたデータパケットであり得る。   Process 1300 begins at block 1302, for example, overlay network proxy 1116 of producer host 1106 (eg, producer host B) receives a request from consumer host 1104. The request can be formalized, for example, as follows: {A, B, ', A', B ', data}, where a packet is received from consumer host A and the producer host Target B and indicate that the service request is from the consumer virtual machine to the producer virtual machine contained within the overlay network. In many cases, the received request is a request to access a service hosted by producer virtual machine 1162 mailed by producer host 1106. However, in some cases, the received request may instead provide data to producer virtual machine 1162 that facilitates access to services already established by consumer virtual machine 1142 hosted by consumer host 1104. It may be a data packet configured to provide.

ブロック1304にて、オーバーレイネットワークプロキシ1116は、要求を受信するプロデューサ仮想マシン1162(例えば、プロデューサ仮想マシンB’)を判定する。いくつかの実施形態において、ブロック1304は、外側ヘッダをブロック1302にて受信された要求からカプセル化解除することを含み得る。そのような場合、パケットは、以下の通り、即ち、{A’,B’,データ}であり得、これは、パケットがコンシューマ仮想マシンA’から受信されており、かつ、プロデューサ仮想マシンB’を対象としていることを示す。そのような場合、オーバーレイネットワークプロキシ1116は、内側ヘッダにアクセスしてプロデューサ仮想マシン1162を識別し得る。あるいは又は更に、オーバーレイネットワークプロキシ1116は、外側ヘッダにアクセスすることによって要求を受信するプロデューサ仮想マシン1162を識別し得る。   At block 1304, the overlay network proxy 1116 determines a producer virtual machine 1162 (eg, producer virtual machine B ') that receives the request. In some embodiments, block 1304 may include deencapsulating the outer header from the request received at block 1302. In such a case, the packet may be as follows: {A ′, B ′, data}, because the packet has been received from consumer virtual machine A ′, and producer virtual machine B ′. Indicates that it is targeted. In such cases, the overlay network proxy 1116 may access the inner header to identify the producer virtual machine 1162. Alternatively or additionally, the overlay network proxy 1116 may identify the producer virtual machine 1162 that receives the request by accessing the outer header.

場合によっては、オーバーレイネットワークプロキシ1116は、外側ヘッダがない要求をブロック1304にて識別されたプロデューサ仮想マシン1162に提供する。したがって、パケットは、以下の通り、即ち、{A’,B’,データ}であり得る。しかしながら、他の場合において、要求は、受信された要求と共に含まれる場合には外側ヘッダ付きであることを含め、コンシューマホスト1104から受信されたように提供され得る。したがって、パケットは、ブロック1302にて受信されたよう(例えば、{A,B,‘,A’,B’,データ})であり得る。   In some cases, overlay network proxy 1116 provides the request without the outer header to producer virtual machine 1162 identified at block 1304. Thus, the packet can be as follows: {A ', B', data}. However, in other cases, the request may be provided as received from the consumer host 1104, including with an outer header if included with the received request. Thus, the packet may be as received at block 1302 (eg, {A, B, ', A', B ', data}).

ブロック1308にて、オーバーレイネットワークプロキシ1116は、ブロック1302にて受信された要求を生成させたコンシューマ仮想マシン1142にアドレス指定された応答をプロデューサ仮想マシン1162から受信する。いくつかの実施形態において、応答は、異なるコンシューマ仮想マシンにアドレス指定され得る。例えば、コンシューマ仮想マシンからの要求は、ファイルをプロデューサ仮想マシンから別のコンシューマ仮想マシンに転送する要求であり得る。このパケットは、ブロック1202にて受信されたパケットと類似のものであり得、以下の通り、即ち、{B’,A’,データ}であり得、これは、プロデューサ仮想マシンB’がデータ(例えば、サービス要求に対する応答)をコンシューマ仮想マシンA’に送っていることを示す。ブロック1310において、オーバーレイネットワークプロキシ1116は、コンシューマ仮想マシン1142に関連したコンシューマホスト1104を識別する。コンシューマホスト1104は、仮想マシンマッピングリポジトリ1152にてマッピングテーブルにアクセスすることによって識別され得る。このマッピングテーブルは、コンシューマ仮想マシン1142をホスティングするコンシューマホスト1104にコンシューマ仮想マシン1142をマッピングし得る。典型的には、各コンシューマホスト1104は、複数のコンシューマ仮想マシン1142をホスティングし得る。しかしながら、いくつかの場合1つ以上のコンシューマホスト1104は、単一のコンシューマ仮想マシン1142をホスティングし得る。   At block 1308, overlay network proxy 1116 receives from producer virtual machine 1162 a response addressed to consumer virtual machine 1142 that caused the request received at block 1302 to be generated. In some embodiments, the response may be addressed to a different consumer virtual machine. For example, a request from a consumer virtual machine can be a request to transfer a file from a producer virtual machine to another consumer virtual machine. This packet may be similar to the packet received at block 1202 and may be as follows: {B ′, A ′, data}, where producer virtual machine B ′ has data ( For example, it indicates that a response to the service request is being sent to the consumer virtual machine A ′. At block 1310, overlay network proxy 1116 identifies the consumer host 1104 associated with consumer virtual machine 1142. The consumer host 1104 can be identified by accessing the mapping table at the virtual machine mapping repository 1152. This mapping table may map the consumer virtual machine 1142 to the consumer host 1104 that hosts the consumer virtual machine 1142. Each consumer host 1104 may typically host multiple consumer virtual machines 1142. However, in some cases, one or more consumer hosts 1104 may host a single consumer virtual machine 1142.

オーバーレイネットワークプロキシ1116は、ブロック1312にて、コンシューマホスト1104及びプロデューサ仮想マシン1162に関連したプロデューサホスト1106を識別する外側ヘッダで応答をカプセル化する。したがって、パケットは、以下の通り、即ち、{B,A{Β’,A’,データ}}であり得る。ブロック1216に関して説明したように、場合によっては、コンシューマホスト1104及びプロデューサホスト1106の識別情報は、ブロック1308にて受信された応答の既存のヘッダと共に含まれるか、又は、該ヘッダに追加され得る。したがって、パケットは、以下の通り、即ち、{B,A,B’,A’,データ}であり得る。同様に、ブロック1216に関して説明したように、外側ヘッダ、又は、1つのヘッダのみが存在する場合には応答のヘッダは、プロデューサ仮想マシン1162及びコンシューマ仮想マシン1142に関連したオーバーレイネットワークの識別情報を含み得る。したがって、パケットは、以下の通り、即ち、{B,A,‘,B’,A’,データ}であり得る。   Overlay network proxy 1116 encapsulates the response with an outer header that identifies producer host 1106 associated with consumer host 1104 and producer virtual machine 1162 at block 1312. Thus, the packet may be as follows: {B, A {Β ', A', data}}. As described with respect to block 1216, in some cases, identification information of the consumer host 1104 and producer host 1106 may be included with or added to the existing header of the response received at block 1308. Thus, the packet may be as follows: {B, A, B ', A', data}. Similarly, as described with respect to block 1216, the outer header, or the header of the response if only one header is present, includes the overlay network identification information associated with the producer virtual machine 1162 and consumer virtual machine 1142. obtain. Thus, the packet may be as follows: {B, A, ', B', A ', data}.

プロデューサホスト1106は、ブロック1314にてコンシューマホスト1104に対する応答を提供する。いくつかの実施形態において、プロデューサホスト1106は、ネットワーク202を介して応答を提供し得る。   Producer host 1106 provides a response to consumer host 1104 at block 1314. In some embodiments, producer host 1106 may provide a response over network 202.

いくつかの実施形態において、コンシューマホスト1104は、プロセス1300又は類似のプロセスを実行して、ブロック1308にて受信された応答を対応するコンシューマ仮想マシン1142に提供し得る。更に、場合によっては、コンシューマホスト1104のオーバーレイネットワークプロキシ1114は、コンシューマ仮想マシン1142によって提供された初期要求を作成するために使用された仮想アドレス(例えば、仮想アドレスX)を識別し得る。この識別された仮想アドレスを使用して、オーバーレイネットワークプロキシ1114は、プロデューサ仮想マシン1162を識別する受信された応答内のアドレスをコンシューマ仮想マシン1142によって提供された初期要求を作成するために使用された仮想アドレスと入れ替え得る。したがって、例えば、パケットがコンシューマ仮想マシンA’に提供される前に、パケットは、以下の通り、即ち、{X,A’,データ}に再構築され得、これは、応答は、パケット内に含まれたデータを実際に生成した可能性があるプロデューサ仮想マシンB’からではなくシステムXから受信されたことを示す。   In some embodiments, the consumer host 1104 may execute a process 1300 or similar process to provide the response received at block 1308 to the corresponding consumer virtual machine 1142. Further, in some cases, the overlay network proxy 1114 of the consumer host 1104 may identify the virtual address (eg, virtual address X) that was used to create the initial request provided by the consumer virtual machine 1142. Using this identified virtual address, overlay network proxy 1114 was used to create the initial request provided by consumer virtual machine 1142 with the address in the received response identifying producer virtual machine 1162. Can be replaced with a virtual address. Thus, for example, before the packet is provided to the consumer virtual machine A ′, the packet can be reconstructed as follows: {X, A ′, data}, which means that the response is in the packet Indicates that it was received from system X rather than from producer virtual machine B ′ that may have actually generated the included data.

プロデューサ仮想マシンへのアクセスをリースする例示的なプロセス
図14は、プロデューサ仮想マシンへのアクセスをリースするプロセス1400の実施形態を例示する。プロセス1400は、プロデューサ仮想マシン1162(例えば、プロデューサ仮想マシンB’)にアクセスするリースを取得することができる任意のシステムによって実施することができる。例えば、プロセス1400は、全体的に又は部分的に、少し例を挙げれば、コンシューマホスト1104リースリクエスタ1130、リースエージェント102、オーバーレイネットワークプロキシ1114、及びリースシステム224によって実行することができる。任意の数のシステムが、全部、一部を問わず、プロセス1400を実施することができるが、論じる内容を簡素化するために、プロセス1400の部分を特定のシステムを特定のシステムを参照して説明する。
Exemplary Process for Leasing Access to a Producer Virtual Machine FIG. 14 illustrates an embodiment of a process 1400 for leasing access to a producer virtual machine. Process 1400 may be implemented by any system that can obtain a lease to access producer virtual machine 1162 (eg, producer virtual machine B ′). For example, process 1400 may be performed in whole or in part by consumer host 1104 lease requester 1130, lease agent 102, overlay network proxy 1114, and lease system 224, to name a few. Any number of systems, whether in whole or in part, can implement process 1400, but to simplify the discussion, parts of process 1400 are referred to a particular system and a particular system. explain.

プロセス1400は、ブロック1402にて始まり、例えば、リースリクエスタ1130は、オーバーレイネットワークに関連したコンシューマ仮想マシン1142のためにプロデューサ仮想マシン1162へのリースを取得する要求を生成する。ブロック1402に関連したプロセスは、コンシューマ仮想マシン1142の初期化時に発生し得る。あるいは又は更に、ブロック1402は、(例えば、プロセス1200に関連した決定ブロック1204にて判定され得るように)コンシューマ仮想マシン1142に関連した未使用プロデューサ仮想マシンリースがないという判定に応答して発生し得る。   Process 1400 begins at block 1402, for example, lease requester 1130 generates a request to obtain a lease to producer virtual machine 1162 for consumer virtual machine 1142 associated with the overlay network. The process associated with block 1402 may occur when the consumer virtual machine 1142 is initialized. Alternatively or additionally, block 1402 occurs in response to determining that there is no unused producer virtual machine lease associated with consumer virtual machine 1142 (eg, as determined at decision block 1204 associated with process 1200). obtain.

ブロック1404にて、リースリクエスタ1130は、要求を複数のリースエージェント102に提供する。いくつかの実施形態において、複数のリースエージェント102は、オーバーレイネットワーク環境1100内に含まれるリースエージェント102のサブセットを含み得る。更に、場合によっては、要求は、単一のリースエージェント102に提供され得る。   At block 1404, the lease requester 1130 provides the request to the plurality of lease agents 102. In some embodiments, the plurality of lease agents 102 may include a subset of lease agents 102 included within the overlay network environment 1100. Further, in some cases, the request may be provided to a single lease agent 102.

ブロック1406にて、リースリクエスタ1130は、複数のリースエージェント102の各々から、要求がブロック1402にて生成されたコンシューマ仮想マシン1142と同じオーバーレイネットワークに関連したプロデューサ仮想マシン1162の識別情報を受信する。典型的には、複数のリースエージェント102の各々は、単一のプロデューサ仮想マシン1162の識別情報を提供する。しかしながら、場合によっては、リースエージェント102のうちの1つ以上は、複数のプロデューサ仮想マシン1162の識別情報を提供し得る。更に、リースエージェント102がゼロプロデューサ仮想マシン1162の識別情報を提供することが可能である。例えば、特定のリースエージェント102に関連した各プロデューサ仮想マシン1162が閾値利用率を超えて利用される場合、リースエージェント102は、プロデューサ仮想マシン1162の識別情報を提供しない場合がある。そのような場合、リースエージェント102は、リースエージェント102に関連した各プロデューサ仮想マシン1162が閾値利用率を超えて利用されることを管理者などユーザに警告し得る。   At block 1406, the lease requester 1130 receives from each of the plurality of lease agents 102 identification information for the producer virtual machine 1162 associated with the same overlay network as the consumer virtual machine 1142 for which the request was generated at block 1402. Typically, each of the plurality of lease agents 102 provides identification information for a single producer virtual machine 1162. However, in some cases, one or more of the lease agents 102 may provide identification information for multiple producer virtual machines 1162. Further, the lease agent 102 can provide identification information for the zero producer virtual machine 1162. For example, if each producer virtual machine 1162 associated with a particular lease agent 102 is utilized beyond a threshold utilization rate, the lease agent 102 may not provide producer virtual machine 1162 identification information. In such a case, the lease agent 102 may alert a user, such as an administrator, that each producer virtual machine 1162 associated with the lease agent 102 will be used beyond a threshold utilization.

いくつかの実施形態において、プロデューサ仮想マシン1162の識別情報を受信することに加えて、プロデューサ仮想マシン1162をリースすることに関連したリース情報は、ブロック1406にて受信され得る。このリース情報は、プロデューサ仮想マシン1162にアクセスするアドレス、プロデューサ仮想マシン1162をホスティングするプロデューサホスト1106の識別情報及び/又はアドレス、及び/又は、プロデューサ仮想マシン1162のリースのためにコンシューマ仮想マシン1142に割り当てられた消耗可能なリソースの量に関する消耗可能なリソースの識別情報を含み得る。この消耗可能なリソースは、プロデューサ仮想マシン1162のリース期間を測定する任意の種類のリソースを含み得る。例えば、消耗可能なリソースは、期間、いくつかの動作、プロデューサ仮想マシン1162によって処理され及び/又はプロデューサ仮想マシン1162から受信されるデータの量、又は、コンシューマ仮想マシン1142によるプロデューサ仮想マシン1162の利用を測定する任意の他のメトリックを含み得る。   In some embodiments, in addition to receiving identification information for the producer virtual machine 1162, lease information associated with leasing the producer virtual machine 1162 may be received at block 1406. This lease information includes the address to access the producer virtual machine 1162, the identification information and / or address of the producer host 1106 that hosts the producer virtual machine 1162, and / or the consumer virtual machine 1142 for lease of the producer virtual machine 1162. Consumable resource identification information regarding the amount of allocated consumable resources may be included. This consumable resource may include any type of resource that measures the lease period of the producer virtual machine 1162. For example, the consumable resource can be a duration, some operation, the amount of data processed by and / or received from producer virtual machine 1162, or use of producer virtual machine 1162 by consumer virtual machine 1142. Any other metric that measures can be included.

ブロック1408にて、オーバーレイネットワークプロキシ1114は、コンシューマ仮想マシン1142のために、ブロック1406にて識別されたプロデューサ仮想マシン1162の各々にアクセスしようとする。いくつかの実施形態において、ブロック1408は、プロデューサ仮想マシン1162の各々との接続を確立しようとすることを含むことができる。他の実施形態において、ブロック1408はプロデューサ仮想マシン1162との確立された接続で通信しようとすることを含むことができる。ブロック1410にて、オーバーレイネットワークプロキシ1114は、リースプールに、各確立した接続に関係する接続情報を記憶する。この接続情報は、接続を識別する情報及びサービスにアクセスするために接続を使用する方法を含み得る。例えば、接続情報は、プロデューサ仮想マシン1162をホスティングするプロデューサホスト1106の識別情報のための消耗可能なリソースの識別情報など、ブロック1406の一部として受信された情報のいずれも含み得る。いくつかの実施形態において、リースプール及び/又は接続情報は、仮想マシンマッピングリポジトリ1150にて記憶され得る。   At block 1408, overlay network proxy 1114 attempts to access each of the producer virtual machines 1162 identified at block 1406 for consumer virtual machines 1142. In some embodiments, block 1408 can include attempting to establish a connection with each of the producer virtual machines 1162. In other embodiments, block 1408 can include attempting to communicate with the established connection with producer virtual machine 1162. At block 1410, the overlay network proxy 1114 stores connection information relating to each established connection in a lease pool. This connection information may include information identifying the connection and how to use the connection to access the service. For example, the connection information may include any of the information received as part of block 1406, such as the consumable resource identification information for the identification information of the producer host 1106 that hosts the producer virtual machine 1162. In some embodiments, lease pool and / or connection information may be stored in the virtual machine mapping repository 1150.

プロセス300と同様に、いくつかの実施形態において、プロセス1400は、プロデューサ仮想マシン1162のリースを更新するために使用され得る。そのような実施形態において、ブロック1402は、プロデューサ仮想マシンの既存の又は以前に既存のリースを更新する要求を生成することを含み得る。更新要求は、既存のプロデューサ仮想マシンリースの識別情報を含み得る。更に、ブロック1406は、更新要求が許可されたかどうかの表示、及び、場合によっては、消耗可能なリソースの更なる付与に関係するリース情報(例えば、リース時間又はプロセッサ使用)を受信することを含み得る。   Similar to process 300, in some embodiments, process 1400 may be used to renew the producer virtual machine 1162 lease. In such an embodiment, block 1402 may include generating a request to renew an existing or previously existing lease of the producer virtual machine. The renewal request may include identification information of an existing producer virtual machine lease. Further, block 1406 includes receiving an indication of whether the update request has been granted and, in some cases, lease information (eg, lease time or processor usage) related to further grants of consumable resources. obtain.

状態管理テーブルの実施例
図15は、オーバーレイネットワーク環境1100における通信を促進するために使用することができる状態管理テーブル1500の1つの非限定的な実施例を例示する。状態管理テーブル1500は、コンシューマ仮想マシン1142とプロデューサ仮想マシン1162の間の通信を容易にするいくつかの情報を含むことができる。例えば、状態管理テーブル1500はソースオーバーレイアドレス1502、ソースオーバーレイポート1504、仮想アドレス1506、及び宛先オーバーレイアドレス1508の列を含み得る。状態管理テーブル1500中のテーブル見出し(例えば、ソースオーバーレイアドレス1502)のいくつかによって示すように、アドレスは、インターネットプロトコル(IP)アドレスであり得る。しかしながら、アドレスは、そのようなものとして制限されず、かつ、他の形を取るか、又は、他のプロトコルに従い得る。
Example State Management Table FIG. 15 illustrates one non-limiting example of a state management table 1500 that can be used to facilitate communication in the overlay network environment 1100. The state management table 1500 can include some information that facilitates communication between the consumer virtual machine 1142 and the producer virtual machine 1162. For example, the state management table 1500 may include columns of a source overlay address 1502, a source overlay port 1504, a virtual address 1506, and a destination overlay address 1508. As indicated by some of the table headings (eg, source overlay address 1502) in state management table 1500, the address may be an Internet Protocol (IP) address. However, the address is not limited as such and may take other forms or follow other protocols.

図15の実施例において、状態管理テーブル1500の例示する部分は、コンシューマ仮想マシンA’に関連する。仮想アドレス1506列に示すように、コンシューマ仮想マシンA’は、複数の仮想アドレスX及びYを使用し得る。更に、各仮想アドレスは、複数のプロデューサ仮想マシンに関連した複数の宛先オーバーレイアドレスに関連し得る。例えば、仮想アドレスYは、アドレスK’を有するプロデューサ仮想マシン及びアドレスM’を有するプロデューサ仮想マシンに関連し得る。複数の宛先アドレスが仮想アドレスにマッピングされ得るので、オーバーレイネットワークプロキシ1114は、また、ソースオーバーレイポート1504列に示すように、データパケットを正しい宛先に導くポートを識別し得る。したがって、サービス要求をプロデューサ仮想マシンK’に送るために、オーバーレイネットワークプロキシ1114は、仮想アドレスYをK’のアドレスと置換してポートP1を使用することになる。同様に、サービス要求をプロデューサ仮想マシンM’に送るために、オーバーレイネットワークプロキシ1114は、仮想アドレスYをM’のアドレスと置換して、ポートP2を使用することになる。   In the example of FIG. 15, the illustrated portion of the state management table 1500 is associated with the consumer virtual machine A '. As shown in the virtual address 1506 column, the consumer virtual machine A 'may use multiple virtual addresses X and Y. Further, each virtual address may be associated with a plurality of destination overlay addresses associated with a plurality of producer virtual machines. For example, virtual address Y may be associated with a producer virtual machine having address K 'and a producer virtual machine having address M'. Since multiple destination addresses may be mapped to virtual addresses, overlay network proxy 1114 may also identify the port that directs the data packet to the correct destination, as shown in the source overlay port 1504 column. Therefore, to send a service request to the producer virtual machine K ', the overlay network proxy 1114 will use port P1 replacing the virtual address Y with the address of K'. Similarly, to send a service request to producer virtual machine M ', overlay network proxy 1114 will use port P2 replacing virtual address Y with the address of M'.

多くの場合、オーバーレイネットワークは、解放型システム相互接続(OSI)モデルのレイヤ3及び/又はレイヤ4を使用して実施され得る。典型的には、レイヤ3及び/又はレイヤ4を使用して実施されるオーバーレイネットワークについては、ネットワーキングインフラストラクチャは、ネットワーク全体にわたって通信しているアプリケーションに気付かない。これは、負荷バランシングをより難しくする可能性があり、それは、どれくらいのデータがコンシューマ仮想マシンとプロデューサ仮想マシンとの間で送信されることになるか推測的に予測することがより難しいからである。   In many cases, the overlay network may be implemented using Layer 3 and / or Layer 4 of the Open Systems Interconnection (OSI) model. Typically, for overlay networks implemented using Layer 3 and / or Layer 4, the networking infrastructure is unaware of applications communicating across the network. This can make load balancing more difficult because it is more difficult to speculatively predict how much data will be sent between the consumer virtual machine and the producer virtual machine. .

1つの解決法は、少なくとも部分的に、OSIモデルのレイヤ7を使用して実施されるプロトコルを認識する負荷分散システムを作成することである。そのようなシステムにおいて、オーバーレイネットワークプロキシ1114は、いくつかの実施形態において、コンシューマ仮想マシン1142により送信されているパケットを調べて、コンシューマ仮想マシン1142がアクセスしようとしているサービスの種類、又は、サービス要求に関連したプロトコルの種類、及び、サービス要求が同じ又は異なる種類の単一のサービス又は複数のサービス向けであるかどうかを判定することができる。したがって、例えば、オーバーレイネットワークプロキシ1114がコンシューマ仮想マシンはHTTP要求を使用してウェブサイトへのアクセスを要求していると判定し、各HTTP要求が異なるウェブページ又はウェブページの異なる特徴に対するものである場合、オーバーレイネットワークプロキシ1114は、コンシューマ仮想マシン1142が、要求が異なるシステムにより処理されていることに認識せずに、処理に向けて異なる要求を異なるプロデューサ仮想マシン1162に送信することができる。したがって、場合によっては、単一の接続が、1組の接続で逆多重化され得る。オーバーレイネットワークプロキシ1114は、一連の要求を複数のプロデューサ仮想マシン1162に分割して、要求が処理される効率又は速度を増大させ得る。更に、オーバーレイネットワークプロキシ1114が、コンシューマ仮想マシン1142が多くの負荷をプロデューサ仮想マシン1162に発生させていると判定した場合、オーバーレイネットワークプロキシ1114は、要求及び/又は分割要求を処理しているプロデューサ仮想マシン1162を複数のプロデューサ仮想マシン1162間で交換することができる。プロデューサ仮想マシン1162を交換することは、場合によっては、要求識別子をサービス要求と関連づけることによって達成することができる。例えば、図15の要求識別子1510列に例示するように、要求識別子I1を有するパケットは、プロデューサ仮想マシンB’のアドレスと交換される仮想アドレスXを有することができる。同様に、要求識別子12を有するパケットは、プロデューサ仮想マシンD’のアドレスと交換される仮想アドレスXを有することができる。   One solution is to create a load balancing system that at least partially recognizes protocols implemented using Layer 7 of the OSI model. In such a system, the overlay network proxy 1114, in some embodiments, examines the packets being sent by the consumer virtual machine 1142 to determine the type of service or service request that the consumer virtual machine 1142 is trying to access. And the type of protocol associated with the service request and whether the service request is for a single service or multiple services of the same or different types. Thus, for example, the overlay network proxy 1114 determines that the consumer virtual machine is requesting access to a website using HTTP requests, and each HTTP request is for a different web page or a different feature of a web page. If so, the overlay network proxy 1114 can send different requests to different producer virtual machines 1162 for processing without the consumer virtual machine 1142 being aware that the request is being processed by a different system. Thus, in some cases, a single connection can be demultiplexed with a set of connections. Overlay network proxy 1114 may divide a series of requests into multiple producer virtual machines 1162 to increase the efficiency or speed at which the requests are processed. Further, if the overlay network proxy 1114 determines that the consumer virtual machine 1142 is generating a lot of load on the producer virtual machine 1162, the overlay network proxy 1114 is responsible for the producer virtual processing request and / or split request. Machine 1162 can be exchanged between multiple producer virtual machines 1162. Replacing the producer virtual machine 1162 can be accomplished in some cases by associating a request identifier with a service request. For example, as illustrated in the request identifier 1510 column of FIG. 15, the packet having the request identifier I1 may have a virtual address X that is exchanged with the address of the producer virtual machine B '. Similarly, a packet with a request identifier 12 can have a virtual address X that is exchanged with the address of the producer virtual machine D '.

本開示の実施形態は、以下の条項に照らして説明することができる。
条項1
プロデューサシステムへのアクセスをリースしてプロデューサシステムによってホスティングされたサービスへのアクセスをリースする方法であって、
1つ以上のプロセッサを含むコンシューマシステムによって
複数のプロデューサシステムの1つのサービスにアクセスするリース要求を生成することと、
リース要求を複数のリースエージェントに提供することと、
プロデューサシステムの1つ以上の識別情報を個々のリースエージェントから受信することと、
複数のリースエージェントによって識別されたプロデューサシステムの少なくともいくつかとの接続を開始しようとすることと、
プロデューサシステムの少なくともいくつかの第1のプロデューサシステムとの接続を失敗せずに確立することに応答して、第1のプロデューサシステムによって提供されたサービスにアクセスすることと、を含む方法。
条項2
プロデューサシステムの1つ以上の識別情報を個々のリースエージェントから受信することは、異なるプロデューサシステムの識別情報を複数のリースエージェントのうちの少なくとも2つのリースエージェントから受信することを含む、条項1に記載の方法。
条項3
複数のリースエージェントの個々のリースエージェントのうちの少なくともいくつかは、プロデューサシステムの非等価組に関連する、条項1〜条項2に記載の方法。
条項4
プロデューサシステムの1つ以上の識別情報を個々のリースエージェントから受信することは、識別されたプロデューサシステムのうちの少なくともいくつかの消耗可能なリソースを受信することを含む、条項1〜条項3に記載の方法。
条項5
消耗可能なリソースは、リース時間、1組の計算サイクル、識別されたプロデューサシステム又はディスク記憶装置の使用に関連した財務予算を含むことができ、リース時間は、コンシューマシステムがプロデューサシステムでのサービスにアクセスすることを許可される一定期間を含む、条項4に記載の方法。
条項6
リース閾値を満たす第1のプロデューサシステムの消耗可能なリソースから残る消耗可能なリソースの量に応答して、この方法は、
消耗可能なリソースが満了する前には第1のプロデューサでのサービスにアクセスする既存のサービス要求が完了されないことになる確率を判定することと、
確率が更新閾値を満たすと判定することに応答して、第1のプロデューサシステムでのサービスにアクセスする更新リース要求を生成することと、
更新リース要求を、第1のプロデューサシステムの識別情報を提供した複数のリースエージェントのリースエージェントに提供することを更に含む、条項5に記載の方法。
条項7
更新リース要求をリースエージェントに提供することに応答して、この方法は、第1のプロデューサシステムの消耗可能なリソースの更新量を受信することを更に含む、条項6に記載の方法。
条項8
更新リース要求をリースエージェントに提供することに応答して、この方法は、新しいプロデューサシステムの消耗可能なリソースの新しい量を受信することを更に含み、新しいプロデューサシステムは、第1のプロデューサシステムと異なる、条項6〜条項7に記載の方法。
条項9
プロデューサシステムの少なくともいくつかの第1のプロデューサシステムとの接続を失敗せずに確立することに応答して、この方法は、メタデータを第1のプロデューサシステムから取得することを更に含み、メタデータの少なくとも一部は、第1のプロデューサシステムに関係する現状情報を含む、条項1〜条項8に記載の方法。
条項10
メタデータの少なくとも一部を、第1のプロデューサシステムの識別情報を提供した複数のリースエージェントのリースエージェントに提供することを更に含む、条項9に記載の方法。
条項11
メタデータの少なくとも一部を複数のリースエージェントに提供することを更に含む、条項9〜10の記載の方法、
条項12
プロデューサシステムのうちの少なくともいくつかの第2のプロデューサシステムとの接続を失敗せずに確立することに応答して、第2のプロデューサシステムでの第2のサービスにアクセスする、条項1〜条項11に記載の方法。
条項13
サービス及び第2のサービスは、同じサービスである、条項12に記載の方法。
条項14
サービスを使用してアクセスされるデータ及び第2のサービスを用いてアクセスされるデータは異なる、条項12〜条項13に記載の方法。
条項15
プロデューサシステムへのアクセスをリースしてプロデューサシステムによってホスティングされたサービスへのアクセスを取得するシステムであって、
1つ以上のプロセッサを含むコンシューマシステム
を含み、コンシューマシステムは、
プロデューサシステムのサービスにアクセスするリース要求を生成し、
リース要求を複数のリースエージェントに提供し、
プロデューサシステムの識別情報を複数のリースエージェントのうちの少なくともいくつかから受信するように構成されたリースリクエスタを更に含み、
コンシューマシステムは、複数のリースエージェントによって識別されたプロデューサシステムのうちの少なくともいくつかとの接続を開始しようとするように構成された接続モジュールを更に含み、
コンシューマシステムは、接続モジュールが第1のプロデューサシステムとの接続を失敗せずに確立することに応答してプロデューサシステムのうちの少なくともいくつかの第1のプロデューサシステムでのサービスにアクセスするように構成されたリソースリクエスタを更に含む、システム。
条項16
リースリクエスタは、更に、識別されたプロデューサシステムのうちの少なくともいくつかのリース時間を受信するように構成され、リース時間は、コンシューマシステムがプロデューサシステムでのサービスにアクセスするように許可される一定期間を含む、条項15に記載のシステム。
条項17
接続モジュールは、更に、第1のプロデューサシステムに関連したリース時間を第1のプロデューサシステムに提供するように構成される、条項16に記載のシステム。
条項18
リソースリクエスタは、更に、リース時間がリース閾値を満たす第1のプロデューサシステムについてリース時間から残る時間の量に応答して満了する前には第1のプロデューサでのサービスにアクセスする既存のサービス要求が完了されないことになる確率を判定するように構成され、
リースリクエスタは、更に、
確率が更新閾値を満たすと判定することに応答して、第1のプロデューサシステムでのサービスにアクセスする更新リース要求を生成し、
リース要求を、第1のプロデューサシステムの識別情報を提供した複数のリースエージェントのリースエージェントに提供するように構成される、条項16〜条項17に記載のシステム。
条項19
少なくとも一部が第1のプロデューサシステムに関係する現状情報を含むメタデータを第1のプロデューサシステムから取得し、
現状情報の少なくとも一部を、第1のプロデューサシステムの識別情報を提供した複数のリースエージェントのリースエージェントに提供するように構成された現状モジュールを更に含む、条項15〜条項18に記載のシステム、
条項20
プロデューサシステムへのアクセスをリースしてプロデューサシステムによってホスティングされたサービスへのアクセスを取得するシステムであって、
コンピュータハードウェアを含むコンピュータシステムにおいて実施される、第1のリースシステムを含む第1のリースエージェント、
を含み、第1のリースシステムは
いくつかのプロデューサシステムによって提供されたサービスへのアクセスをリースする第1の要求をコンシューマシステムから受信し、
第1の複数のプロデューサシステムの個々のプロデューサシステムに関連したプロデューサ現状情報に少なくとも部分的に基づいて第1の複数のプロデューサシステムの第1のプロデューサシステムを識別するように構成され、第1の複数のプロデューサシステムは、いくつかのプロデューサシステムの第1のサブセットを含み、
第1のプロデューサシステムを識別することに応答して、第1のプロデューサシステムの識別情報をコンシューマシステムに提供するように構成され、
このシステムは、更に

第2のリースシステムを含む第2のリースエージェント、
を含み、
第2のリースエージェントは、
サービスへのアクセスをリースする第2の要求をコンシューマシステムから受信し、
第2の複数のプロデューサシステムの個々のプロデューサシステムに関連したプロデューサ現状情報に少なくとも部分的に基づいて第2の複数のプロデューサシステムの第2のプロデューサシステムを識別するように構成され、第2の複数のプロデューサシステムは、いくつかのプロデューサシステムの第2のサブセットを含み、いくつかのプロデューサシステムの第2のサブセットは、いくつかのプロデューサシステムの第1のサブセットと同一ではなく
第2のリースエージェントは、更に
第2のプロデューサシステムを識別することに応答して、第2のプロデューサシステムの識別情報をコンシューマシステムに提供し、その結果、コンシューマシステムが、少なくとも第1のプロデューサシステム及び第2のプロデューサシステムからのサービスへのアクセスを要求することを可能にするように構成され、プロデューサシステムの識別表示は、少なくとも第1のリースエージェントと第2のリースエージェント間で分散される分散プロセスであるようになっている、システム。
条項21
第1のリースシステムは、更に、第1のリース時間をコンシューマシステムに提供するように構成され、第1のリース時間は、コンシューマシステムが第1のプロデューサシステムにアクセスするように許可される一定期間を含み、第2のリースシステムは、更に、第2のリース時間をコンシューマシステムに提供するように構成され、第2のリース時間は、コンシューマシステムが第2のプロデューサシステムにアクセスするように許可される一定期間を含む、条項20に記載のシステム。
条項22
第1のリースエージェントは、第1の現状モジュールを更に含み、第1の現状モジュールは、
第1のプロデューサシステムの第1の更新された現状情報を受信し、
第1の更新された現状情報に少なくとも部分的に基づいて第1のプロデューサシステムのプロデューサ現状情報を更新するように構成され、
第2のリースエージェントは、第2の現状モジュールを更に含み、第2の現状モジュールは、
第2のプロデューサシステムの第2の更新された現状情報を受信し、
第2の更新された現状情報に少なくとも部分的に基づいて第2のプロデューサシステムのプロデューサ現状情報を更新するように構成される、条項20〜条項21に記載のシステム。
条項23
第1の更新された現状情報及び第2の更新された現状情報は、コンシューマシステムから受信される、条項22に記載のシステム。
条項24
第1の更新された現状情報は、第1のプロデューサシステムから受信され、第2の更新された現状情報は、第2のプロデューサシステムから受信される、条項22に記載のシステム。
条項25
第1のリースエージェントは、
第1のプロデューサシステムの更なるリース時間を取得する第1のリース更新要求をコンシューマシステムから受信し、
第1のプロデューサシステムのプロデューサ現状情報に少なくとも部分的に基づいて第1のリース更新要求を容認するべきかどうか判定し、
第1のリース更新要求を容認することを判定することに応答して、第1のプロデューサシステムの第1のリース更新時間をコンシューマシステムに提供するように更に構成される、条項20〜条項24に記載のシステム。
条項26
第1のリース更新要求を容認しないことを判定することに応答して、第1のリースエージェントは、
第1の複数のプロデューサシステムの各プロデューサシステムに関連したプロデューサ現状情報に少なくとも部分的に基づいて第1の複数のプロデューサシステムの第3のプロデューサシステムを識別し、
第3のプロデューサシステムを識別することに応答して、第3のプロデューサシステムの識別情報をコンシューマシステムに提供するように更に構成される、条項25に記載のシステム。
条項27
プロデューサシステムを複数のリースエージェントシステム間で分割する方法であって、
1つ以上のプロセッサを含む第1のリースエージェントシステムによって第1の期間にて利用可能であるプロデューサシステムの第1の組を判定することと、
第1の期間の前に発生する第2の期間にて利用可能であるプロデューサシステムの第2の組を識別することと、
プロデューサシステムの第1の組とプロデューサシステムの第2の組のとの数の違いを計算することと、
違いが閾値を満たすかどうか判定することと、
違いが閾値を満たすと判定することに応答して、
プロデューサシステムの第1の組の異なるサブセットを個々のリースエージェントシステムに割り当てることによってプロデューサシステムの第1の組を複数のリースエージェントシステム間で分割することと、
第1のリースエージェントシステム以外の複数のリースエージェントシステムの個々のリースエージェントシステムについて、プロデューサシステムの第1の組と異なるプロデューサシステムがサービスを異なるコンシューマシステムに提供することを可能にするためにプロデューサシステムの第1の組からリースエージェントシステムに割り当てられたプロデューサシステムのサブセットの識別情報を個々のリースエージェントシステムに提供すること、
を含み、それにより
複数のリースエージェントシステム間のプロデューサシステムの第1の組の分割は、異なるコンシューマシステムの間でプロデューサシステムの第1の組によって提供されたサービスの割り当ての分散を可能にするようになっている、方法。
条項28
複数のリースエージェントシステムの1組のリースエージェントシステムに、第1のリースエージェントシステムがプロデューサシステムの第1の組を分割していると通知して、1組のリースエージェントシステムに、第1のリースエージェントシステムがプロデューサシステムの第1の組を分割する間にプロデューサシステムの第1の組を分割しようとすることを控えされることを更に含む、条項27に記載の方法。
条項29
第2の組の利用可能なプロデューサシステム及び第2の期間は、第1のリースエージェントシステムが非アクティブの期間の後に起動されたときに違いが閾値を満たすことを確保する値を含む、条項27〜条項28に記載の方法。
条項30
プロデューサシステムの第1の組は、第1の期間にて利用可能であるプロデューサシステムの総数を含み、プロデューサシステムの第2の組は、第2の期間にて利用可能であるプロデューサシステムの総数を含む、条項27〜条項29に記載の方法。
条項31
複数のリースエージェントシステムの少なくとも1つは、第3の期間にて利用可能ではないという表示を受信することと、
第3の期間にて利用可能であるプロデューサシステムの第3の組を識別することと、
第3の期間にて利用可能である1組のリースエージェントシステムを識別することと、
プロデューサシステムの第3の組を第3の期間にて利用可能である1組のリースエージェントシステム間で分割することと、
第3の期間にて利用可能である1組のリースエージェントシステムの個々のリースエージェントシステムについて、プロデューサシステムの第3の組のプロデューサシステムのサブセットの識別情報をリースエージェントシステムに提供することとを更に含み、プロデューサシステムのサブセットは、プロデューサシステムの第2の組の上記の分割に少なくとも部分的に基づいて判定される、条項27〜条項30に記載の方法。
条項32
プロデューサシステムの第3の組及びプロデューサシステムの第1の組は、同じシステムである、条項31に記載の方法。
条項33
第1の期間にて利用可能であるプロデューサシステムの第1の組を複数のリースエージェントシステム間で分割することは、プロデューサシステムの第1の組をプロデューサシステムの重なり合わないサブセットに分割することを含む、条項27〜条項32に記載の方法。
条項34
第1のリースエージェントシステムに割り当てられたプロデューサシステムの第1のサブセットのプロデューサシステムがもはや利用可能ではないと判定することと、
利用可能なプロデューサシステムのカウントを更新してプロデューサシステムがもはや利用可能ではないことを反映することとを更に含み、第1の期間にて利用可能であるプロデューサシステムの第1の組を判定することは、利用可能なプロデューサシステムのカウントに少なくとも部分的に基づく、条項27〜条項33に記載の方法。
条項35
プロデューサシステムがもはや利用可能ではないと判定することは、プロデューサシステムが無応答であるという通知をコンシューマシステムから受信することを含む、条項34に記載の方法。
条項36
プロデューサシステムがもはや利用可能ではないと判定することは、プロデューサシステムが第1のリースエージェントシステムによって提供される現状要求に無応答であると判定することを含む、条項34〜条項35に記載の方法。
条項37
第1のリースエージェントシステムに登録する要求をプロデューサシステムから受信することと、
プロデューサシステムが第1のリースエージェントシステムに割り当てられたプロデューサシステムのサブセット内に含まれるかどうか判定することと、
プロデューサシステムが第1のリースエージェントシステムに割り当てられたプロデューサシステムのサブセット内に含まれると判定することに応答して、第1のリースエージェントシステムにてプロデューサシステムを登録することを更に含む、条項27〜条項36に記載の方法。
条項38
プロデューサシステムが第1のリースエージェントシステムに割り当てられたプロデューサシステムのサブセット内に含まれていないと判定することに応答して、この方法は、
プロデューサシステムに割り当てられた複数のリースエージェントシステムの第2のリースエージェントシステムを識別することと、
第2のリースエージェントシステムの識別情報をプロデューサシステムに提供することとを更に含む、条項37に記載の方法。
条項39
異なるコンシューマシステムのコンシューマシステムは、そのうちに異なる期間にて複数のプロデューサシステムの異なるプロデューサシステムにアクセスする、条項27〜条項38に記載の方法。
条項40
プロデューサシステムを複数のリースエージェントシステム間で分割するシステムであって、
第1のリースエージェントを含む複数のリースエージェント、
を含み、複数のリースエージェントの個々のリースエージェントは、1つ以上のプロセッサを含み、第1のリースエージェントは、第1の期間での1組の利用可能なプロデューサシステムと第2の期間での1組の利用可能なプロデューサシステムの違いが閾値を満たすかどうか判定するように構成された分割システムを更に含み、
分割システムは、違いが閾値を満たすと判定することに応答して、
異なるユーザーシステムにより複数のプロデューサシステムへのアクセスを複数のプロデューサシステム間でほぼ均一に分散させようするために複数のリースエージェントに含まれるいくつかのリースエージェントのカウントに基づいて1組のプロデューサシステムをプロデューサシステムの複数のサブセットに分割し、
複数のリースエージェントの個々のリースエージェントについて、リースエージェントにプロデューサシステムのサブセットの1つに含まれたプロデューサシステムの識別情報を提供するように更に構成される、システム。
条項41
プロデューサシステムのサブセットの数は、複数のリースエージェントに含まれたリースエージェントの数のカウントに対応する、条項40に記載のシステム。
条項42
分割システムは、更に、プロデューサシステムのサブセットと異なるプロデューサシステムのサブセット内に含まれるプロデューサシステムの識別情報を個々のリースエージェントに提供するように構成される、条項40〜条項41に記載のシステム。
条項43
分割システムは、更に、第1のリースエージェントの分割システムが1組のプロデューサシステムを分割していると第1のリースエージェントに含まれない複数のリースエージェントの1つ以上のリースエージェントに警告するように構成される、条項40〜条項42に記載のシステム。
条項44
複数のリースエージェントの第2のリースエージェントが1組のプロデューサシステムを分割しているという警告を受信することに応答して、第1のリースエージェントの分割システムは、更に、1組のプロデューサシステムを分割することを控えるように構成される、条項40〜条項43に記載のシステム。
条項45
第1のリースエージェントは、
第1のリースエージェントに登録する要求をプロデューサシステムから受信し、
プロデューサシステムが第1のリースエージェントに割り当てられたプロデューサシステムのサブセット内に含まれるかどうか判定し、
プロデューサシステムが第1のリースエージェントに割り当てられたプロデューサシステムのサブセット内に含まれると判定することに応答して、第1のリースエージェントシステムにてプロデューサシステムを登録し、
プロデューサシステムが第1のリースエージェントに割り当てられたプロデューサシステムのサブセット内に含まれていないと判定することに応答して、プロデューサシステムに割り当てられた複数のリースエージェントの第2のリースエージェントを識別して、第2のリースエージェントの識別情報をプロデューサシステムに提供するように構成された現状モジュールを更に含む、条項40〜条項44に記載のシステム。
条項46
リースを複数のリースエージェントシステム間で分割する方法であって、
1つ以上のプロセッサを含む第1のリースエージェントシステムによって1組の利用可能なプロデューサシステムを識別することと、
1組の利用可能なプロデューサシステムの個々のプロデューサシステムに利用可能ないくつかのリースを判定することと、
個々のプロデューサシステムに利用可能ないくつかのリースのサブセットを複数のリースエージェントシステムの個々のリースエージェントシステムに割り当てることによって複数のリースエージェントシステム間で個々のプロデューサシステムに利用可能ないくつかのリースを分割することと、
複数のリースエージェントシステムの個々のリースエージェントシステムについて、リースエージェントシステムに割り当てられたリースのサブセットをリースエージェントシステムに提供することと、
を含み、それによって
複数のリースエージェントシステム間の個々のプロデューサシステムに利用可能ないくつかのリースの分割は、複数のリースエージェントシステム間の作業負荷の分散を可能にするようになっている、方法。
条項47
個々のリースエージェントシステムは、リースの重なり合わないサブセットを割り当てられる、条項46に記載の方法。
条項48
リースのサブセットをリースエージェントシステムに提供することは、リースエージェントシステムに割り当てられたリースのサブセットを第1のリースエージェントシステムに提供することを除外する、条項46〜条項47に記載の方法。
条項49
リースエージェントシステムに割り当てられたリースのサブセットをリースエージェントシステムに提供することは、複数のプロデューサシステムの個々のプロデューサシステムについてリースエージェントシステムに割り当てられたいくつかのリースをリースエージェントシステムに提供することを含む、条項46〜条項48に記載の方法。
条項50
リースエージェントシステムに割り当てられたリースのサブセットをリースエージェントシステムに提供することは、リースエージェントシステムに割り当てられた個々のリースの識別子をリースエージェントシステムに提供することを含む、条項46〜条項49に記載の方法。
条項51
個々のプロデューサシステムに利用可能ないくつかのリースを複数のリースエージェントシステム間で分割することは、個々のプロデューサシステムに利用可能ないくつかのリースを複数のリースエージェントシステムの間で実質的に等しく分割することを含む、条項46〜条項50に記載の方法。
条項52
複数のリースエージェントシステムは、1組のリースエージェントシステムのサブセットを含む、条項46〜条項51に記載の方法。
条項53
複数のリースエージェントシステムは、第1のリースエージェントシステムを含む、条項52に記載の方法。
条項54
1組の利用可能なプロデューサシステムは、利用可能なプロデューサシステムのサブセットを含む、条項46〜条項53に記載の方法。
条項55
個々のプロデューサシステムに利用可能ないくつかのリースを複数のリースエージェントシステム間で分割する上記のことは、第1の期間にて1組の利用可能なプロデューサシステム間で利用可能なリース総計数が第2の期間と比較して閾値数変化することに応答して発生する、条項46〜条項54に記載の方法。
条項56
サービスへのアクセスを提供するために複数のプロデューサシステムからプロデューサシステムを選択する方法であって、
1つ以上のプロセッサを含む第1のリースエージェントシステムによって複数のプロデューサシステムの現状情報を受信すること、
を含み、複数のプロデューサシステムの個々のプロデューサシステムは、選択重みを伴い、
現状情報の少なくともいくつかは、少なくとも1つのコンシューマシステムによる少なくとも1つのプロデューサシステムの現状の判定を反映し、
この方法は、更に、
受信された現状情報に少なくとも部分的に基づいて複数のプロデューサシステムについて、コンシューマシステムとやりとりすることに対する複数のプロデューサシステムの性能に関係する1組のメトリックを含むプロデューサ現状情報を修正することと、
1組のメトリックの第1のメトリックに少なくとも部分的に基づいて複数のプロデューサシステムに関連した選択重みを修正することと、
複数のプロデューサシステムの1つへのアクセスをリースする要求をコンシューマシステムから受信することと、
複数のプロデューサシステムの1つへのアクセスをリースする要求を受信することに応答して、
コンシューマシステムに対応するために複数のプロデューサシステムの個々のプロデューサシステムに関連した対応する選択重みに少なくとも部分的に基づいて複数のプロデューサシステムのプロデューサシステムを選択することと、
選択されたプロデューサシステムの識別情報を複数のプロデューサシステムの1つへのアクセスをリースする要求を提供したコンシューマシステムに提供することと、
選択されたプロデューサシステムに関連したプロデューサ現状情報をコンシューマシステムに提供することと、
を含み、プロデューサ現状情報の少なくともいくつかは、第2のコンシューマシステムから取得される、方法。
条項57
複数のプロデューサシステムは、プロデューサシステムのサブセットを含む、条項56に記載の方法。
条項58
複数のプロデューサシステムに関連した選択重みを修正することは、プロデューサシステムを選択する上記のことが特定のプロデューサシステムを選択する確率を変える、条項56〜条項57に記載の方法。
条項59
現状情報は、少なくとも1つのコンシューマシステムから受信される、条項56〜条項58に記載の方法。
条項60
少なくとも1つのコンシューマシステムは、複数のプロデューサシステムの1つへのアクセスをリースする要求を提供したコンシューマシステムを含む、条項59に記載の方法。
条項61
現状情報は、複数のプロデューサシステムから受信される、条項56〜条項60に記載の方法。
条項62
現状情報は、第2のリースエージェントシステムから受信される、条項56〜条項60に記載の方法。
条項63
複数のプロデューサシステムの第1のプロデューサシステムについて、対応する修正された選択重みが除去閾値を満たすかどうか判定することと、
除去閾値を満たす修正された選択重みに応答して、第1のプロデューサシステムの識別情報利用可能なプロデューサシステムのリストからを除去することとを更に含み、利用可能なプロデューサシステムのリストは、選択に利用可能である複数のプロデューサシステムのプロデューサシステムに対応する利用可能なプロデューサシステムの識別情報を含む、条項56〜条項63に記載の方法。
条項64
複数のプロデューサシステムからプロデューサシステムを選択する上記のことは、プロデューサシステムを利用可能なプロデューサシステムのリストから選択することを含む、条項63に記載の方法。
条項65
利用可能なプロデューサシステムのリストから除去されたプロデューサシステムのカウントを追跡することと、
低減閾値を満たすカウントに応答して、利用可能なプロデューサシステムを複数のリースエージェントシステム間で再分割することとを更に含み、複数のリースエージェントシステムは、第1のリースエージェントシステムを含む、条項63〜条項64に記載の方法。
条項66
除去閾値は、複数のプロデューサシステムの第1のメトリックの平均値に基づく、条項63に記載の方法。
条項67
コンシューマシステムに提供されるプロデューサ現状情報は、第1のリースエージェントシステムが利用可能なプロデューサ現状情報の独立した組を含み、プロデューサ現状情報の独立した組は、コンシューマシステムが、他のリースされたプロデューサシステムと比較してより利用されないプロデューサシステムを複数のリースされたプロデューサシステムから選択することを可能にする、条項56〜条項66に記載の方法。
条項68
複数のプロデューサシステムのプロデューサシステムを選択することは、プロデューサシステムの第2の組より低い負荷を有するプロデューサシステムの第1の組の1つを選択することを更に含む、条項56〜条項67に記載の方法。
条項69
選択されたプロデューサシステムは、最低負荷に関連せず、その結果、負荷揺動の発生頻度が低減される、条項68に記載の方法。
条項70
サービスへのアクセスを提供するために複数のプロデューサシステムのプロデューサシステムを選択するシステムであって、
現状モジュール及びリースシステムを実行するように構成された1つ以上のプロセッサを含む、複数のリースエージェントの第1のリースエージェント、
を含み、
現状モジュールは、
個々のプロデューサシステムが選択重みに関連する複数のプロデューサシステムの第1のプロデューサシステムの現状情報を受信し、
受信された現状情報に少なくとも部分的に基づいて第1のプロデューサシステムに関連した選択重みを修正するように構成され、
リースエージェントは、
複数のプロデューサシステムの1つにアクセスする要求を受信し、
要求に対応するために複数のプロデューサシステムの個々のプロデューサシステムに関連した対応する選択重みに少なくとも部分的に基づいて、第1のプロデューサシステムを含め、複数のプロデューサシステムのプロデューサシステムを選択するように構成される、システム。
条項71
現状情報は、リースシステムによって第1のリースエージェントにて受信され、リースシステムは、更に、現状情報を現状モジュールに提供するように構成される、条項70に記載のシステム。
条項72
現状モジュールは、
第1のプロデューサシステムが第1のリースエージェントに割り当てられているかどうか判定するように更に構成され。
第1のプロデューサが第1のリースエージェントに割り当てられていないと判定することに応答して、現状モジュールは、
第1のプロデューサに割り当てられた第2のリースエージェントを識別し、
受信された現状情報を第2のリースエージェントに提供するように更に構成される、条項70〜条項71に記載のシステム。
条項73
現状モジュールは、
修正された選択重みが除去閾値を満たすかどうかを判定し、
除去閾値を満たす修正された選択重みに応答して第1のプロデューサシステムを複数のプロデューサシステムから関係を断つように更に構成される、条項70〜条項72に記載のシステム。
条項74
第1のリースエージェントは、複数のプロデューサシステムから関係が絶たれたプロデューサシステムの数が低減閾値を満たすこと応答して複数のプロデューサシステムを複数のリースエージェント間で再分割するように構成された分割システムを更に含む、条項73に記載されたシステム。
条項75
リースシステムは、更に、プロデューサシステムの識別情報を、複数のプロデューサシステムの1つにアクセスする要求を提供したコンシューマシステムに提供するように構成される、条項70〜条項74に記載のシステム。
条項76
選択されたプロデューサシステムは、第1のプロデューサシステムを含む、条項70〜条項75に記載のシステム。
条項77
1つ以上のプロセッサにおいて実行されたとき、コンピューティングシステムに少なくともサービスへのアクセスを提供するプロデューサシステムを複数のプロデューサシステムから選択するように指示するコンピュータで実行可能な指示を含む固定物理コンピュータストレージであって、アクセスは、少なくとも
個々のプロデューサシステムが選択重みに関連し、プロデューサシステムのいくつかのサブセットに分割される複数のプロデューサシステムの第1のプロデューサシステムの現状情報を第1のリースエージェントにて受信することに応答して、第1のプロデューサがプロデューサシステムの、第1のリースエージェントに関連する第1のサブセットの要素であるかどうか判定し、
第1のプロデューサシステムがプロデューサシステムの第1のサブセットの要素であると判定することに応答して、第1のプロデューサシステムに関連した選択重みを修正し、
プロデューサシステムにアクセスする要求を受信することに応答して、要求のプロバイダに対応するためにプロデューサシステムのサブセットのプロデューサシステムに関連した選択重みに少なくとも部分的に基づいてプロデューサシステムの第1のサブセットの第2のプロデューサシステムを選択することによって提供される、固定物理コンピュータストレージ。
条項78
第2のプロデューサシステム及び第1のプロデューサシステムは同じである、条項77に記載の固定物理コンピュータストレージ。
条項79
第1のプロデューサシステムがプロデューサシステムの第1のサブセットの要素ではないと判定することに応答して、この方法は、
第1のプロデューサシステムを含むプロデューサシステムの第2のサブセットを識別することと、
プロデューサシステムの第2のサブセットに関連した第2のリースエージェントを識別することと、
現状情報を第2のリースエージェントに提供することとを更に含む、条項77〜条項78に記載の固定物理コンピュータストレージ。
条項80
オーバーレイネットワークにおいてプロデューサ仮想マシンによって提供されたサービスにアクセスする方法であって、
1つ以上のプロセッサを含むコンシューマシステムホストによって、コンシューマシステムホストは、1つ以上のコンシューマ仮想マシンをホスティングするように構成され、コンシューマ仮想マシンのうちの少なくとも1つは、第1のオーバーレイネットワークに関連し、
プロデューサシステムでのサービスにアクセスする要求をコンシューマシステムホストによってホスティングされたコンシューマ仮想マシンから受信すること
を含み、要求は、内側ヘッダを含み、内側ヘッダは、コンシューマ仮想マシン及びターゲット仮想アドレスに関連したコンシューマ仮想マシンアドレスを含み、
この方法は、更に
コンシューマ仮想マシンに関連した、コンシューマ仮想マシンのためにリースされた1組のリースされたプロデューサ仮想マシンを含むリースプールにアクセスすることと
リースプールからサービスにアクセスするべきリースされたプロデューサ仮想マシンをリースプールから選択することと、
内側ヘッダ内のターゲット仮想アドレスをリースされたプロデューサ仮想マシンに関連したプロデューサ仮想マシンアドレスと入れ替えることと、
リースされたプロデューサ仮想マシンに関連したプロデューサシステムホストを識別することと、
を含み、プロデューサシステムホストは、1つ以上のプロデューサ仮想マシンをホスティングするように構成され、プロデューサ仮想マシンの少なくとも1つは、第1のオーバーレイネットワークに関連し、
この方法は、更に
要求をプロデューサシステムホストに関連したプロデューサシステムホストアドレスとコンシューマシステムホストに関連したコンシューマシステムホストアドレスとを含む外側ヘッダでカプセル化することと、
要求を、ネットワークを介してプロデューサシステムホストに提供し、それによってプロデューサシステムホストが要求を処理することを可能にすることとを含む方法。
条項81
リースされたプロデューサ仮想マシンを選択することは、
リースプールが少なくとも1つの利用可能なリースされたプロデューサ仮想マシンを含むかどうか判定することと、
リースプールが少なくとも1つの利用可能なリースされたプロデューサ仮想マシンを含むと判定することに応答して、利用可能なリースされたプロデューサ仮想マシンの1つを選択して、選択中の利用可能なリースされたプロデューサ仮想マシンをリースプールから除去することとを含む、条項80に記載の方法。
条項82
リースプールが利用可能なリースされたプロデューサ仮想マシンを含まないと判定することに応答して、この方法は、
コンシューマ仮想マシンのために、第1のオーバーレイネットワーク内に含まれた1組のプロデューサ仮想マシンのリースを取得することと、
1組のリースされたプロデューサ仮想マシンの個々のプロデューサ仮想マシンとの接続を開始することと、
個々の失敗せずに確立された接続について、対応するプロデューサ仮想マシンをリースプールに追加することとを更に含み、リースされたプロデューサ仮想マシンを選択することは、リースプールに追加されたプロデューサ仮想マシンの1つを選択して選択されたプロデューサ仮想マシンをリースプールから除去することを更に含む、条項81に記載の方法。
条項83
1組のプロデューサ仮想マシンのリースを取得することは、
コンシューマ仮想マシンについて第1のオーバーレイネットワークにおいて含まれたプロデューサ仮想マシンへのリースを取得する要求を生成することと、
プロデューサ仮想マシンへのリースを取得する要求を1組のリースエージェントに提供することと、
1組のリースエージェント内のリースエージェントのうちの少なくともいくつかについて、プロデューサ仮想マシンのリース情報を受信することによってプロデューサ仮想マシンとの接続を開始することを可能にすることを含む、条項82に記載の方法。
条項84
1組のリースエージェントは、ネットワーク内のリースエージェントのサブセットを含む、条項83に記載の方法。
条項85
サービス要求に対する応答をプロデューサシステムホストから受信することと、
応答の外側ヘッダを除去することによってサービス応答をカプセル化解除して、応答の内側ヘッダへのアクセスを取得することと、
応答の内側ヘッダに基づいてコンシューマシステムホストによってホスティングされたコンシューマ仮想マシンの1つレシピエントコンシューマ仮想マシンを判定することと、
カプセル化解除されたサービス応答をレシピエントコンシューマ仮想マシンに提供することとを更に含む、条項80〜条項84に記載の方法。
条項86
レシピエントコンシューマ仮想マシン及びコンシューマ仮想マシンは同じである、条項85に記載の方法。
条項87
応答の内側ヘッダに基づいて、応答に関連したソースプロデューサ仮想マシンに関連したソース仮想アドレスを識別することと、
ソースプロデューサ仮想マシンに関連した内側ヘッダ内に含まれたアドレスをソース仮想アドレスと置換することとを更に含む、条項85〜条項86に記載の方法。
条項88
ソースプロデューサ仮想マシンは、選択されたリースされたプロデューサ仮想マシンに対応し、ソース仮想アドレスは、ターゲット仮想アドレスに対応し、レシピエントコンシューマ仮想マシンは、コンシューマ仮想マシンに対応する、条項87に記載の方法。
条項89
コンシューマ仮想マシンの少なくとも1つは、第2のオーバーレイネットワークに関連する、条項80〜条項88に記載の方法。
条項90
プロデューサ仮想マシンの少なくとも1つは、第2のオーバーレイネットワークに関連する、条項80〜条項89に記載の方法。
条項91
サービスにアクセスする第2の要求を受信することと、
リースされたプロデューサ仮想マシンの負荷が負荷閾値を満たすかどうか判定することと、
リースされたプロデューサ仮想マシンの負荷が負荷閾値を満たすと判定することに応答して
サービスにアクセスするべき第2のリースされたプロデューサ仮想マシンをリースプールから選択することと、
第2の要求を第2のリースされたプロデューサ仮想マシンをホスティングする第2のプロデューサシステムホストに提供することと。を更に含む、条項80〜条項90に記載の方法。
条項92
リースされたプロデューサ仮想マシンの負荷が負荷閾値を満たすと判定することに応答して、この方法は、リースされたプロデューサ仮想マシンへの接続を終了させることを更に含む、条項91に記載の方法。
条項93
オーバーレイネットワークにおいてプロデューサ仮想マシンによって提供されたサービスにアクセスするシステムであって、
1つ以上のプロセッサを含むコンシューマシステム
を含み、コンシューマシステムホストは、1つ以上のコンシューマをホスティングするように構成され、コンシューマシステムホストは、
プロデューサシステムホストへのプロデューサのマッピングを記憶するように構成されたマッピングリポジトリと、
プロデューサでのサービスにアクセスする要求をコンシューマシステムホストによってホスティングされたコンシューマから受信し、
コンシューマのためにリースされる、サービスにアクセスするべきリースされたプロデューサを選択し、
リースされたプロデューサに関連した、1つ以上のプロデューサをホスティングするように構成されるプロデューサシステムホストを識別し、
要求をプロデューサシステムホストに送信するように構成されたオーバーレイネットワークプロキシとを含む、システム。
条項94
マッピングリポジトリは、更に、コンシューマに関連したリースプールを記憶するように構成され、リースプールは、コンシューマのためにリースされた1組のリースされたプロデューサを含み、オーバーレイネットワークプロキシは、更に、
リースプールが少なくとも1つの利用可能なリースされたプロデューサを含むかどうか判定し、
リースプールが少なくとも1つの利用可能なリースされたプロデューサを含むと判定することに応答して、サービスにアクセスするべきリースされたプロデューサを利用可能なリースされたプロデューサから選択するように構成される、条項93に記載されたシステム。
条項95
リースプールが少なくとも1つの利用可能なリースされたプロデューサを含まないと判定することに応答して、オーバーレイネットワークプロキシは、更に、
コンシューマについてプロデューサへのリースを取得する要求を生成し、
プロデューサへのリースを取得する要求を1組のリースエージェントに提供し、
1組のリースエージェント内のリースエージェントの少なくともいくつかについて、プロデューサのリース情報を受信するように構成される、条項94に記載されたシステム。
条項96
マッピングリポジトリは、更に、リース情報をコンシューマに関連したリースプールに記憶するように構成される、条項95に記載されたシステム。
条項97
オーバーレイネットワークプロキシは、更に、
要求に対する応答をプロデューサホストシステムから受信し、
応答の内側ヘッダに基づいてコンシューマを含むレシピエントコンシューマを判定し、
応答をコンシューマに提供するように構成される、条項93〜条項95に記載のシステム。
条項98
オーバーレイネットワークプロキシは、更に、
リースされたプロデューサに関連したソース仮想アドレスを識別し、
コンシューマに対する応答を提供する前に、リースされたプロデューサに関連した内側ヘッダ内に含まれたアドレスをソース仮想アドレスと置換するように構成される、条項97に記載されたシステム。
条項99
オーバーレイネットワークプロキシは、更に、要求を、プロデューサシステムホスト及びコンシューマシステムホストに関連したコンシューマシステムホストアドレスに関連したプロデューサシステムホストアドレスを含む外側ヘッダでカプセル化するように構成される、条項93〜条項97に記載のシステム。
条項100
1つ以上のプロセッサにおいて実行されたとき、コンピューティングシステムにオーバーレイネットワークにおいてプロデューサ仮想マシンによって提供されたサービスにアクセスするように指示する、コンピュータで実行可能な指示を含む固定物理コンピュータストレージであって、
サービスは、少なくとも
ターゲット仮想アドレスを含む、プロデューサでのサービスにアクセスする要求をコンシューマシステムホストによってホスティングされたコンシューマ仮想マシンから受信し、
コンシューマ仮想マシンに関連した、コンシューマ仮想マシンのためにリースされるプロデューサ仮想マシンの接続情報を含むリースプールから、サービスにアクセスするべきリースされたプロデューサ仮想マシンを選択し、
要求のヘッダ内のターゲット仮想アドレスをリースされたプロデューサ仮想マシンに関連したプロデューサ仮想マシンアドレスと入れ替え、
リースされたプロデューサ仮想マシンに関連したプロデューサシステムホストを判定し、
プロデューサシステムホストに送られるべき要求をリースされたプロデューサ仮想マシンに提供させることによってリースプロデューサ仮想マシンがサービスにアクセスするために要求を処理することを可能にすることによってアクセスされる、固定物理コンピュータストレージ。
条項101
リースされたプロデューサ仮想マシンをコンシューマ仮想マシンに関連したリースプールから選択することは、
リースプールがコンシューマ仮想マシンによって目下使用されていない少なくとも1つのリースされたプロデューサ仮想マシンの接続情報を含むかどうか判定することを含み、
リースプールがコンシューマ仮想マシンによって目下使用されてない少なくとも1つのリースされたプロデューサ仮想マシンを含まないと判定することに応答して、コンピュータで実行可能な指示は、コンピューティングシステムに
オーバーレイネットワーク内に含まれた1組のプロデューサ仮想マシンのリースをコンシューマ仮想マシンのために取得し、
1組のリースされたプロデューサ仮想マシンの個々のプロデューサ仮想マシンとの接続を開始し、
失敗せずに確立した接続について、対応するプロデューサ仮想マシンの接続情報をリースプールに追加するように指示することを更に含む、条項100に記載の固定物理コンピュータストレージ。
条項102
リースされたプロデューサ仮想マシンをコンシューマ仮想マシンに関連したリースプールから選択することは、接続情報がリースプールに追加されたプロデューサ仮想マシンの1つを選択することを更に含む、条項101に記載の固定物理コンピュータストレージ。
Embodiments of the present disclosure can be described in the light of the following clauses.
Article 1
A method of leasing access to a producer system and leasing access to a service hosted by the producer system,
By a consumer system containing one or more processors
Generating a lease request to access one service of multiple producer systems;
Providing a lease request to multiple lease agents;
Receiving one or more identification information of a producer system from an individual lease agent;
Attempting to initiate a connection with at least some of the producer systems identified by multiple lease agents;
Accessing a service provided by the first producer system in response to establishing without failure the connection of the producer system with at least some of the first producer systems.
Article 2
Receiving one or more identification information of a producer system from an individual lease agent includes receiving identification information of a different producer system from at least two lease agents of the plurality of lease agents. the method of.
Article 3
The method of clause 1-2, wherein at least some of the individual lease agents of the plurality of lease agents are associated with a non-equivalent set of producer systems.
Article 4
Receiving one or more identification information of a producer system from an individual lease agent includes receiving at least some consumable resources of the identified producer system. the method of.
Article 5
Consumable resources can include lease times, a set of calculation cycles, financial budgets associated with the use of identified producer systems or disk storage, and lease times can be consumed by a consumer system to service a producer system. 5. The method of clause 4, comprising a certain period of time permitted to access.
Article 6
In response to the amount of consumable resources remaining from the consumable resources of the first producer system that meet the lease threshold, the method includes:
Determining the probability that an existing service request to access a service at the first producer will not be completed before the consumable resource expires;
In response to determining that the probability satisfies the renewal threshold, generating an renewal lease request to access a service at the first producer system;
6. The method of clause 5, further comprising providing the renewed lease request to a plurality of lease agents that provided the identification information of the first producer system.
Article 7
7. The method of clause 6, wherein in response to providing the renewal lease request to the lease agent, the method further comprises receiving an update amount of the consumable resource of the first producer system.
Article 8
In response to providing the renewal lease request to the lease agent, the method further includes receiving a new amount of consumable resources of the new producer system, the new producer system being different from the first producer system. The method according to clause 6 to clause 7.
Article 9
Responsive to establishing without failure the connection of the producer system with at least some of the first producer systems, the method further comprises obtaining metadata from the first producer system, 9. The method of clauses 1-8, wherein at least a portion of the includes current status information relating to the first producer system.
Article 10
10. The method of clause 9, further comprising providing at least a portion of the metadata to a lease agent of a plurality of lease agents that provided identification information for the first producer system.
Article 11
The method of clauses 9-10, further comprising providing at least a portion of the metadata to a plurality of lease agents;
Article 12
Clause 1 to Clause 11 accessing a second service in the second producer system in response to establishing without failure a connection with at least some second producer system of the producer systems. The method described in 1.
Article 13
13. The method of clause 12, wherein the service and the second service are the same service.
Article 14
14. The method of clauses 12-13, wherein data accessed using the service and data accessed using the second service are different.
Article 15
A system that leases access to a producer system to obtain access to a service hosted by the producer system,
Consumer system that includes one or more processors
The consumer system includes
Generate a lease request to access the producer system service,
Providing lease requests to multiple lease agents;
A lease requester configured to receive the producer system identification information from at least some of the plurality of lease agents;
The consumer system further includes a connection module configured to attempt to initiate a connection with at least some of the producer systems identified by the plurality of lease agents,
The consumer system is configured to access services on at least some of the first producer systems in response to the connection module establishing without failure the connection with the first producer system. The system further comprising a resource requestor.
Article 16
The lease requester is further configured to receive a lease time for at least some of the identified producer systems, the lease time being a period of time that the consumer system is allowed to access services at the producer system. 16. The system of clause 15, comprising:
Article 17
The system of clause 16, wherein the connection module is further configured to provide a lease time associated with the first producer system to the first producer system.
Article 18
The resource requester also has an existing service request to access the service at the first producer before the lease time expires in response to the amount of time remaining from the lease time for the first producer system that meets the lease threshold. Configured to determine the probability of not being completed,
Lease Requester
In response to determining that the probability satisfies the renewal threshold, generate an renewal lease request to access the service at the first producer system;
18. The system of clauses 16-17, wherein the system is configured to provide a lease request to a lease agent of a plurality of lease agents that provided identification information for the first producer system.
Article 19
Obtaining metadata from the first producer system, including at least a portion of current information relating to the first producer system;
19. The system of clauses 15-18, further comprising a current status module configured to provide at least a portion of the current status information to lease agents of a plurality of lease agents that provided identification information of the first producer system.
Article 20
A system that leases access to a producer system to obtain access to a service hosted by the producer system,
A first lease agent comprising a first lease system implemented in a computer system comprising computer hardware;
The first leasing system includes
Receiving a first request from a consumer system that leases access to a service provided by some producer system;
A first plurality of producer systems configured to identify a first producer system of the first plurality of producer systems based at least in part on producer status information associated with individual producer systems of the first plurality of producer systems; The producer system includes a first subset of several producer systems,
Responsive to identifying the first producer system, configured to provide identification information of the first producer system to the consumer system;
This system further
:
A second leasing agent including a second leasing system;
Including
The second lease agent
Receiving a second request from the consumer system to lease access to the service;
A second plurality of producer systems configured to identify a second producer system of the second plurality of producer systems based at least in part on producer status information associated with individual producer systems of the second plurality of producer systems; The producer system includes a second subset of some producer systems, and the second subset of some producer systems is not the same as the first subset of some producer systems
The second lease agent
Responsive to identifying the second producer system, providing identification information of the second producer system to the consumer system so that the consumer system is at least from the first producer system and the second producer system. Configured to allow requesting access to a service, the producer system identification is at least a distributed process distributed between the first lease agent and the second lease agent. ,system.
Article 21
The first leasing system is further configured to provide a first lease time to the consumer system, the first lease time being a period of time that the consumer system is allowed to access the first producer system. And the second lease system is further configured to provide a second lease time to the consumer system, the second lease time being allowed for the consumer system to access the second producer system. 21. The system of clause 20, including a certain period of time.
Article 22
The first lease agent further includes a first current module, wherein the first current module is:
Receiving the first updated status information of the first producer system;
Configured to update the producer status information of the first producer system based at least in part on the first updated status information;
The second lease agent further includes a second current status module, wherein the second current status module includes:
Receiving second updated status information of the second producer system;
22. The system of clauses 20-21, configured to update the producer status information of the second producer system based at least in part on the second updated status information.
Article 23
23. The system of clause 22, wherein the first updated current status information and the second updated current status information are received from a consumer system.
Article 24
23. The system of clause 22, wherein the first updated current status information is received from the first producer system and the second updated current status information is received from the second producer system.
Article 25
The first lease agent is
Receiving a first lease renewal request from the consumer system to obtain further lease time of the first producer system;
Determining whether to accept the first lease renewal request based at least in part on the producer status information of the first producer system;
In clauses 20-24, further configured to provide a first lease renewal time of the first producer system to the consumer system in response to determining to accept the first lease renewal request The described system.
Article 26
In response to determining not to accept the first lease renewal request, the first lease agent
Identifying a third producer system of the first plurality of producer systems based at least in part on producer status information associated with each producer system of the first plurality of producer systems;
26. The system of clause 25, further configured to provide identification information of the third producer system to the consumer system in response to identifying the third producer system.
Article 27
A method of dividing a producer system among a plurality of lease agent systems,
Determining a first set of producer systems that are available in a first time period by a first lease agent system that includes one or more processors;
Identifying a second set of producer systems that are available in a second period that occurs before the first period;
Calculating the number difference between the first set of producer systems and the second set of producer systems;
Determining whether the difference meets a threshold;
In response to determining that the difference meets the threshold,
Partitioning the first set of producer systems among a plurality of lease agent systems by assigning different subsets of the first set of producer systems to individual lease agent systems;
For individual lease agent systems of a plurality of lease agent systems other than the first lease agent system, the producer system to allow a producer system different from the first set of producer systems to provide services to different consumer systems Providing each lease agent system with identification information of a subset of the producer systems assigned to the lease agent system from the first set of
And thereby
The division of the first set of producer systems among a plurality of lease agent systems is adapted to allow distribution of the allocation of services provided by the first set of producer systems among different consumer systems. Method.
Article 28
Informing a set of lease agent systems to a set of lease agent systems that the first lease agent system is dividing the first set of producer systems, 28. The method of clause 27, further comprising refraining from attempting to split the first set of producer systems while the agent system splits the first set of producer systems.
Article 29
Clause 27, wherein the second set of available producer systems and the second period includes a value that ensures that the difference meets a threshold when the first lease agent system is activated after a period of inactivity. -Method according to clause 28.
Article 30
The first set of producer systems includes the total number of producer systems that are available in the first period, and the second set of producer systems is the total number of producer systems that are available in the second period. 30. A method according to clause 27 to clause 29, comprising:
Article 31
At least one of the plurality of lease agent systems receives an indication that it is not available in the third period;
Identifying a third set of producer systems that are available in a third period;
Identifying a set of lease agent systems available in the third period;
Splitting a third set of producer systems between a set of lease agent systems available in a third period;
Providing the lease agent system with identification information of a subset of the third set of producer systems of the producer system for the individual lease agent systems of the set of lease agent systems that are available in the third time period. 31. The method of clauses 27-30, wherein the subset of producer systems is determined based at least in part on the above division of the second set of producer systems.
Article 32
32. The method of clause 31, wherein the third set of producer systems and the first set of producer systems are the same system.
Article 33
Dividing the first set of producer systems that are available in the first time period among the plurality of lease agent systems includes dividing the first set of producer systems into non-overlapping subsets of the producer systems. A method according to clause 27 to clause 32, comprising:
Article 34
Determining that the producer systems of the first subset of producer systems assigned to the first lease agent system are no longer available;
Updating a count of available producer systems to reflect that the producer system is no longer available, and determining a first set of producer systems that are available in the first time period 34. The method of clause 27 to clause 33, based at least in part on a count of available producer systems.
Article 35
35. The method of clause 34, wherein determining that the producer system is no longer available includes receiving a notification from the consumer system that the producer system is unresponsive.
Article 36
36. The method of clauses 34-35, wherein determining that the producer system is no longer available includes determining that the producer system is unresponsive to a current request provided by the first lease agent system. .
Article 37
Receiving a request from the producer system to register with the first lease agent system;
Determining whether the producer system is included in the subset of producer systems assigned to the first lease agent system;
Clause 27, further comprising registering the producer system at the first lease agent system in response to determining that the producer system is included in the subset of producer systems assigned to the first lease agent system. -Method according to clause 36.
Article 38
In response to determining that the producer system is not included in the subset of producer systems assigned to the first lease agent system, the method includes:
Identifying a second lease agent system of a plurality of lease agent systems assigned to the producer system;
38. The method of clause 37, further comprising providing identification information of the second lease agent system to the producer system.
Article 39
39. The method of clauses 27-38, wherein consumer systems of different consumer systems access different producer systems of the plurality of producer systems at different times over time.
Article 40
A system that divides a producer system among multiple lease agent systems,
A plurality of lease agents including a first lease agent;
And each lease agent of the plurality of lease agents includes one or more processors, wherein the first lease agent is a set of available producer systems in the first period and in the second period. Further comprising a splitting system configured to determine whether a difference in the set of available producer systems meets a threshold;
In response to determining that the difference meets the threshold, the split system
A set of producer systems based on the counts of several lease agents contained in multiple lease agents in order to distribute access to the multiple producer systems by the different user systems almost evenly among the multiple producer systems. Split into multiple subsets of the producer system,
A system further configured to provide, for an individual lease agent of a plurality of lease agents, the identity of the producer system included in one of the producer system subsets to the lease agent.
Article 41
41. The system of clause 40, wherein the number of producer system subsets corresponds to a count of the number of lease agents included in the plurality of lease agents.
Article 42
42. The system of clauses 40-41, wherein the splitting system is further configured to provide individual lease agents with identification information for a producer system included in a subset of the producer system that is different from the subset of the producer system.
Article 43
The split system further warns one or more lease agents of a plurality of lease agents not included in the first lease agent when the split system of the first lease agent splits the set of producer systems. 43. The system according to clause 40 to clause 42, configured as follows.
Article 44
In response to receiving a warning that the second lease agent of the plurality of lease agents is splitting the set of producer systems, the split system of the first lease agent further sets the set of producer systems. 44. The system of clauses 40-43, configured to refrain from splitting.
Article 45
The first lease agent is
Receiving a request from the producer system to register with the first lease agent;
Determining whether the producer system is included in the subset of producer systems assigned to the first lease agent;
Responsive to determining that the producer system is included in the subset of producer systems assigned to the first lease agent, registering the producer system with the first lease agent system;
In response to determining that the producer system is not included in the subset of producer systems assigned to the first lease agent, the second lease agent of the plurality of lease agents assigned to the producer system is identified. 45. The system of clauses 40-44, further comprising a status module configured to provide identification information of the second lease agent to the producer system.
Article 46
A method of splitting a lease among multiple lease agent systems,
Identifying a set of available producer systems by a first lease agent system that includes one or more processors;
Determining a number of leases available to individual producer systems of a set of available producer systems;
Assign several leases available to individual producer systems among multiple lease agent systems by assigning a subset of the leases available to individual producer systems to individual lease agent systems of multiple lease agent systems Splitting,
Providing the lease agent system with a subset of leases assigned to the lease agent system for individual lease agent systems of the plurality of lease agent systems;
And thereby
A method, wherein the division of several leases available to individual producer systems among multiple lease agent systems is adapted to allow for the distribution of workload among multiple lease agent systems.
Article 47
47. The method of clause 46, wherein individual lease agent systems are assigned non-overlapping subsets of leases.
Article 48
48. The method of clauses 46-47, wherein providing the lease subset to the lease agent system excludes providing the first lease agent system with the lease subset assigned to the lease agent system.
Article 49
Providing a lease agent system with a subset of leases assigned to a lease agent system provides the lease agent system with several leases assigned to the lease agent system for individual producer systems of multiple producer systems. 49. The method of clauses 46-48, comprising.
Article 50
50. Providing the lease agent system with a subset of leases assigned to the lease agent system includes providing the lease agent system with an identifier of an individual lease assigned to the lease agent system. the method of.
Article 51
Splitting several leases available for an individual producer system among multiple lease agent systems means that several leases available for an individual producer system are substantially equal between multiple lease agent systems. 51. A method according to clause 46 to clause 50, comprising dividing.
Article 52
52. The method of clause 46 to clause 51, wherein the plurality of lease agent systems includes a subset of a set of lease agent systems.
Article 53
53. The method of clause 52, wherein the plurality of lease agent systems includes a first lease agent system.
Article 54
54. The method of clauses 46-53, wherein the set of available producer systems includes a subset of available producer systems.
Article 55
The above splitting several leases available for individual producer systems among multiple lease agent systems means that the total number of leases available between a set of available producer systems in the first period is 55. The method of clause 46 to clause 54, wherein the method occurs in response to changing the threshold number compared to the second period.
Article 56
A method of selecting a producer system from a plurality of producer systems to provide access to a service, comprising:
Receiving status information of a plurality of producer systems by a first lease agent system including one or more processors;
Individual producer systems of multiple producer systems with a selection weight,
At least some of the current status information reflects a determination of the current status of at least one producer system by at least one consumer system;
This method further includes
Modifying the producer status information including a set of metrics related to the performance of the plurality of producer systems for interacting with the consumer system for the plurality of producer systems based at least in part on the received status information;
Modifying selection weights associated with a plurality of producer systems based at least in part on a first metric of a set of metrics;
Receiving a request from a consumer system to lease access to one of a plurality of producer systems;
In response to receiving a request to lease access to one of the multiple producer systems,
Selecting a producer system of the multiple producer systems based at least in part on a corresponding selection weight associated with an individual producer system of the multiple producer systems to accommodate the consumer system;
Providing identification information of the selected producer system to the consumer system that provided the request to lease access to one of the plurality of producer systems;
Providing producer systems with producer status information related to the selected producer system;
And at least some of the producer status information is obtained from a second consumer system.
Article 57
57. The method of clause 56, wherein the plurality of producer systems includes a subset of the producer systems.
Article 58
58. The method of clauses 56-57, wherein modifying selection weights associated with multiple producer systems changes the probability that the above selecting a producer system selects a particular producer system.
Article 59
59. The method of clauses 56-58, wherein the current status information is received from at least one consumer system.
Article 60
60. The method of clause 59, wherein the at least one consumer system includes a consumer system that provided a request to lease access to one of the plurality of producer systems.
Article 61
61. The method of clauses 56-60, wherein current status information is received from a plurality of producer systems.
Article 62
61. The method of clauses 56-60, wherein the current status information is received from a second lease agent system.
Article 63
Determining whether a corresponding modified selection weight satisfies a removal threshold for a first producer system of the plurality of producer systems;
In response to the modified selection weight satisfying the removal threshold, removing the first producer system identity from the list of available producer systems, wherein the list of available producer systems is selected 64. The method of clause 56 to clause 63, comprising identifying information for an available producer system corresponding to a producer system of a plurality of producer systems that is available.
Article 64
64. The method of clause 63, wherein selecting a producer system from a plurality of producer systems includes selecting a producer system from a list of available producer systems.
Article 65
Tracking the count of producer systems removed from the list of available producer systems;
Clause 63, further comprising subdividing the available producer system among the plurality of lease agent systems in response to a count that satisfies the reduction threshold, wherein the plurality of lease agent systems includes a first lease agent system. -Method according to clause 64.
Article 66
64. The method of clause 63, wherein the removal threshold is based on an average value of a first metric of a plurality of producer systems.
Article 67
The producer status information provided to the consumer system includes an independent set of producer status information available to the first lease agent system, and the independent set of producer status information indicates that the consumer system has another leased producer. 67. The method of clauses 56-66 that allows a producer system that is less utilized compared to the system to be selected from a plurality of leased producer systems.
Article 68
Clause 56 to Clause 67, wherein selecting a producer system of the plurality of producer systems further comprises selecting one of the first set of producer systems having a lower load than the second set of producer systems. the method of.
Article 69
69. The method of clause 68, wherein the selected producer system is not associated with a minimum load and, as a result, the frequency of load fluctuations is reduced.
Article 70
A system for selecting a producer system of multiple producer systems to provide access to a service,
A first lease agent of a plurality of lease agents, comprising a current module and one or more processors configured to execute the lease system;
Including
The current module is
Each producer system receives current status information of a first producer system of a plurality of producer systems related to the selection weight;
Configured to modify a selection weight associated with the first producer system based at least in part on the received current status information;
The leasing agent
Receive a request to access one of multiple producer systems;
Selecting a producer system of a plurality of producer systems, including the first producer system, based at least in part on a corresponding selection weight associated with an individual producer system of the plurality of producer systems to accommodate the request Configured system.
Article 71
71. The system of clause 70, wherein the current status information is received at the first lease agent by the lease system, the lease system further configured to provide the current status information to the current status module.
Article 72
The current module is
Further configured to determine whether the first producer system is assigned to the first lease agent.
In response to determining that the first producer is not assigned to the first lease agent, the current module is
Identifying a second lease agent assigned to the first producer;
72. The system of clauses 70-71, further configured to provide received status information to a second lease agent.
Article 73
The current module is
Determine whether the modified selection weight meets the removal threshold;
73. The system of clauses 70-72, further configured to disconnect the first producer system from the plurality of producer systems in response to the modified selection weight that meets the removal threshold.
Article 74
The first lease agent is configured to subdivide the plurality of producer systems among the plurality of lease agents in response to the number of producer systems disconnected from the plurality of producer systems meeting a reduction threshold. The system of clause 73, further comprising a system.
Article 75
75. The system of clauses 70-74, wherein the leasing system is further configured to provide the producer system identification information to the consumer system that provided the request to access one of the plurality of producer systems.
Article 76
76. The system of clauses 70-75, wherein the selected producer system includes a first producer system.
Article 77
A fixed physical computer storage that includes computer-executable instructions that, when executed on one or more processors, direct a computing system to select from among a plurality of producer systems that provide at least access to a service. And access is at least
In response to receiving at the first lease agent the current information of the first producer system of the plurality of producer systems, wherein the individual producer systems are associated with the selection weights and are divided into several subsets of the producer systems. Determining whether the first producer is an element of the first subset of the producer system associated with the first lease agent;
Responsive to determining that the first producer system is an element of the first subset of the producer system, modifying the selection weight associated with the first producer system;
In response to receiving the request to access the producer system, the first subset of the producer system based at least in part on a selection weight associated with the producer system of the producer system subset to accommodate the provider of the request Fixed physical computer storage provided by selecting a second producer system.
Article 78
78. Fixed physical computer storage according to clause 77, wherein the second producer system and the first producer system are the same.
Article 79
In response to determining that the first producer system is not an element of the first subset of the producer system, the method includes:
Identifying a second subset of the producer system including the first producer system;
Identifying a second lease agent associated with the second subset of the producer system;
79. The fixed physical computer storage of clauses 77-78, further comprising providing current status information to a second lease agent.
Article 80
A method of accessing a service provided by a producer virtual machine in an overlay network, comprising:
A consumer system host including one or more processors configures the consumer system host to host one or more consumer virtual machines, at least one of the consumer virtual machines being associated with the first overlay network And
Receiving requests to access services on the producer system from a consumer virtual machine hosted by the consumer system host
The request includes an inner header, the inner header includes a consumer virtual machine address associated with the consumer virtual machine and the target virtual address;
This method further
Accessing a spool that is associated with the consumer virtual machine and that includes a set of leased producer virtual machines leased for the consumer virtual machine;
Selecting a leased producer virtual machine from the lease pool to access the service from the pool;
Replacing the target virtual address in the inner header with the producer virtual machine address associated with the leased producer virtual machine;
Identifying the producer system host associated with the leased producer virtual machine;
And the producer system host is configured to host one or more producer virtual machines, at least one of the producer virtual machines is associated with the first overlay network;
This method further
Encapsulating the request with an outer header that includes a producer system host address associated with the producer system host and a consumer system host address associated with the consumer system host;
Providing a request over a network to a producer system host, thereby enabling the producer system host to process the request.
Article 81
Choosing a leased producer virtual machine
Determining whether the lease pool includes at least one available leased producer virtual machine;
Responsive to determining that the lease pool includes at least one available leased producer virtual machine, selecting one of the available leased producer virtual machines to select the available lease in the selection 81. The method of clause 80, comprising removing the created producer virtual machine from the lease pool.
Article 82
In response to determining that the lease pool does not contain an available leased producer virtual machine, the method includes:
Obtaining a lease for a set of producer virtual machines included in a first overlay network for a consumer virtual machine;
Initiating a connection of a set of leased producer virtual machines with individual producer virtual machines;
Adding a corresponding producer virtual machine to the lease pool for each connection established without failure, and selecting the leased producer virtual machine is added to the lease pool. 82. The method of clause 81, further comprising: selecting one of the selected virtual machine from the lease pool.
Article 83
Obtaining a lease for a set of producer virtual machines
Generating a request to obtain a lease to the producer virtual machine included in the first overlay network for the consumer virtual machine;
Providing a set of lease agents with a request to obtain a lease to the producer virtual machine;
83. The clause 82, comprising enabling at least some of the lease agents in the set of lease agents to initiate a connection with the producer virtual machine by receiving the producer virtual machine lease information. the method of.
Article 84
84. The method of clause 83, wherein the set of lease agents includes a subset of lease agents in the network.
Article 85
Receiving a response to the service request from the producer system host;
De-encapsulating the service response by removing the outer header of the response to gain access to the inner header of the response;
Determining one recipient consumer virtual machine of the consumer virtual machines hosted by the consumer system host based on the inner header of the response;
85. The method of clauses 80-84, further comprising providing an unencapsulated service response to the recipient consumer virtual machine.
Article 86
86. The method of clause 85, wherein the recipient consumer virtual machine and the consumer virtual machine are the same.
Article 87
Identifying the source virtual address associated with the source producer virtual machine associated with the response based on the inner header of the response;
90. The method of clauses 85-86, further comprising replacing an address contained in an inner header associated with the source producer virtual machine with a source virtual address.
Article 88
90. The source producer virtual machine corresponds to the selected leased producer virtual machine, the source virtual address corresponds to the target virtual address, and the recipient consumer virtual machine corresponds to the consumer virtual machine. Method.
Article 89
90. The method of clauses 80-88, wherein at least one of the consumer virtual machines is associated with a second overlay network.
Article 90
90. The method of clauses 80-89, wherein at least one of the producer virtual machines is associated with a second overlay network.
Article 91
Receiving a second request to access the service;
Determining whether the load of the leased producer virtual machine meets the load threshold;
In response to determining that the load of the leased producer virtual machine meets the load threshold
Selecting a second leased producer virtual machine from the lease pool to access the service;
Providing a second request to a second producer system host hosting a second leased producer virtual machine; The method according to clause 80 to clause 90, further comprising:
Article 92
92. The method of clause 91, wherein in response to determining that the load of the leased producer virtual machine meets a load threshold, the method further includes terminating the connection to the leased producer virtual machine.
Article 93
A system for accessing a service provided by a producer virtual machine in an overlay network,
Consumer system that includes one or more processors
And the consumer system host is configured to host one or more consumers, the consumer system host
A mapping repository configured to store producer mappings to producer system hosts;
Receives a request to access the service at the producer from a consumer hosted by the consumer system host,
Select leased producers that are leased on behalf of consumers to access the service,
Identify a producer system host configured to host one or more producers associated with the leased producer;
A system comprising an overlay network proxy configured to send a request to a producer system host.
Article 94
The mapping repository is further configured to store a leasepool associated with the consumer, the leasepool includes a set of leased producers leased for the consumer, and the overlay network proxy further includes:
Determine if the lease pool includes at least one available leased producer;
Responsive to determining that the lease pool includes at least one available leased producer, configured to select a leased producer to access the service from the available leased producers; The system described in clause 93.
Article 95
In response to determining that the lease pool does not include at least one available leased producer, the overlay network proxy further includes:
Generate a request for the consumer to get a lease to the producer,
Providing a set of lease agents with a request to obtain a lease to the producer;
95. The system of clause 94, configured to receive producer lease information for at least some of the lease agents in a set of lease agents.
Article 96
96. The system of clause 95, wherein the mapping repository is further configured to store lease information in a lease pool associated with the consumer.
Article 97
The overlay network proxy
Receive a response to the request from the producer host system,
Determine the recipient consumer, including the consumer, based on the inner header of the response,
96. The system of clauses 93-95, configured to provide a response to a consumer.
Article 98
The overlay network proxy
Identify the source virtual address associated with the leased producer,
98. The system of clause 97 configured to replace an address contained in an inner header associated with a leased producer with a source virtual address before providing a response to the consumer.
Article 99
The overlay network proxy is further configured to encapsulate the request with an outer header that includes a producer system host address associated with a producer system host and a consumer system host address associated with the consumer system host. The system described in.
Article 100
Fixed physical computer storage that includes computer-executable instructions that, when executed on one or more processors, direct a computing system to access services provided by a producer virtual machine in an overlay network,
Service is at least
Receives a request from the consumer virtual machine hosted by the consumer system host to access the service at the producer, including the target virtual address,
Select the leased producer virtual machine to access the service from the lease pool that contains the connection information of the producer virtual machine leased for the consumer virtual machine that is associated with the consumer virtual machine,
Replace the target virtual address in the header of the request with the producer virtual machine address associated with the leased producer virtual machine;
Determine the producer system host associated with the leased producer virtual machine,
Fixed physical computer storage accessed by allowing leased producer virtual machines to process requests to access services by providing leased producer virtual machines with requests to be sent to the producer system host .
Article 101
Selecting the leased producer virtual machine from the lease pool associated with the consumer virtual machine
Determining whether the lease pool includes connection information for at least one leased producer virtual machine that is not currently being used by the consumer virtual machine;
In response to determining that the lease pool does not include at least one leased producer virtual machine that is not currently being used by the consumer virtual machine, a computer executable instruction is provided to the computing system.
Obtain a lease for a set of producer virtual machines contained within the overlay network for the consumer virtual machine,
Initiates a connection of a set of leased producer virtual machines with individual producer virtual machines;
101. The fixed physical computer storage of clause 100, further comprising directing the connection information of the corresponding producer virtual machine to be added to the lease pool for connections established without failure.
Article 102
102. The fixed clause of clause 101, wherein selecting the leased producer virtual machine from the lease pool associated with the consumer virtual machine further comprises selecting one of the producer virtual machines whose connection information has been added to the lease pool. Physical computer storage.

用語
いくつかのコンピューティングシステムを、本開示を通じて説明した。これらのシステムの説明は、本開示の教示、又は、適用可能性を制限することを意図していない。例えば、本明細書で説明するユーザーシステムとしては、一般的に、少し例を挙げれば、デスクトップ、ラップトップ、テレビゲームプラットホーム、テレビセットトップボックス、テレビ(例えば、インターネットTV)、電子制御電気製品、及び無線モバイル機器(例えば、スマートフォン、PDA、タブレットなど)などの任意のコンピューティングデバイスを挙げることができる。更に、本明細書で説明するユーザーシステムは、異なる種類の装置であるか、異なるアプリケーションを含むか、又は、その他の方法で異なる方法で構成されることが可能である。更に、本明細書で説明するユーザーシステムは、任意の形式のオペレーティングシステム(「OS」)を含むことができる。例えば、本明細書で説明するモバイルコンピューティングシステム、Android(登録商標)OS、ウィンドウズ(登録商標)OS、Mac(登録商標)OS、Linux(登録商標)、又は、UNIX(登録商標)ベースのOSなどを実行することができる。
Terminology Several computing systems have been described throughout this disclosure. These system descriptions are not intended to limit the teaching or applicability of the present disclosure. For example, the user systems described herein generally include desktops, laptops, video game platforms, television set-top boxes, televisions (eg, Internet TV), electronic control appliances, to name a few. And any computing device such as a wireless mobile device (eg, smart phone, PDA, tablet, etc.). Further, the user systems described herein can be different types of devices, include different applications, or otherwise configured in different ways. Further, the user systems described herein can include any type of operating system (“OS”). For example, a mobile computing system, an Android (registered trademark) OS, a Windows (registered trademark) OS, a Mac (registered trademark) OS, a Linux (registered trademark), or a UNIX (registered trademark) based OS described herein. Etc. can be executed.

更に、例示するシステムの様々な構成要素の処理は、複数のマシン、ネットワーク、及び他の計算リソースにわたって分散させることができる。更に、システムの2つ以上の構成要素をより少数の構成要素に結合することができる。例えば、リースエージェント102の一部として例示する様々なシステムは、複数のコンピューティングシステムにわたって分散させるか、又は、単一のコンピューティングシステムへと組み合わせることができる。更に、例示するシステムの様々な構成要素は、専用コンピュータハードウェアシステムにおいてではなく、むしろ1つ以上の仮想マシンにおいて実施することができる。同様に、図示するデータリポジトリは、例えば、ストレージエリアネットワーク、又は、他の分散型ストレージシステムを含め、物理及び/又は論理データストレージを表すことができる。更に、いくつかの実施形態において、図示する構成要素間の接続は、ハードウェア間の実際の接続ではなく、むしろデータフローの可能なパスを表す。可能な接続のいくつかの実施例を図示するが、図示する構成要素のサブセットのいずれも、様々な実行例ではコンポーネントの任意の他のサブセットと通信することができる。   Further, the processing of the various components of the illustrated system can be distributed across multiple machines, networks, and other computing resources. In addition, two or more components of the system can be combined into fewer components. For example, the various systems illustrated as part of the lease agent 102 can be distributed across multiple computing systems or combined into a single computing system. Further, the various components of the illustrated system can be implemented in one or more virtual machines rather than in a dedicated computer hardware system. Similarly, the illustrated data repository can represent physical and / or logical data storage, including, for example, a storage area network or other distributed storage system. Further, in some embodiments, the connections between the illustrated components are not actual connections between hardware, but rather represent possible paths of data flow. Although several examples of possible connections are illustrated, any of the illustrated subsets of components can communicate with any other subset of components in various implementations.

実施形態によっては、本明細書で説明するアルゴリズム、方法、又は、プロセスのある特定の動作、イベント、又は、機能は、異なる順序で実行することができ、追加、統合、又は、全くまとめて省略することができる(例えば、全ての説明する行為又はイベントが、アルゴリズムの実践に必要であるというわけではない)。更に、ある特定の実施形態では、動作又はイベントは、順次によりもむしろ、例えば、マルチスレッド型処理、割込み処理、又は、複数のプロセッサ、又は、プロセッサコアを介して、又は、他の並列のアーキテクチャ上で同時に実行することができる。   Depending on the embodiment, certain operations, events, or functions of the algorithms, methods, or processes described herein may be performed in a different order and may be added, integrated, or omitted collectively. (E.g., not all described acts or events are necessary for the practice of the algorithm). Further, in certain embodiments, operations or events may be, for example, multi-threaded processing, interrupt processing, or multiple processors, processor cores, or other parallel architectures, rather than sequentially. Can be run simultaneously on.

様々な例示するシステムの各々は、本明細書で説明する様々な機能を実行するようにプログラム及び構成されるコンピューティングシステムとして実現され得る。コンピューティングシステムは、説明する機能を実行するためにネットワークで通信及び相互運用する複数の異なったコンピュータ又はコンピューティングデバイス(例えば、物理サーバ、ワークステーション、ストレージアレイなど)を含み得る。各々のそのようなコンピューティングデバイスは、典型的には、メモリ又は他の固定コンピュータ可読記憶媒体内に記憶されたプログラム命令又はモジュールを実行するプロセッサ(又は、マルチプロセッサ)を含む。本明細書で開示する様々な機能は、そのようなプログラム命令において具現され得るが、開示する機能の一部又は全部は、代替的にコンピュータシステムの特定用途向け回路(例えば、ASIC又はFPGA)において実現され得る。コンピューティングシステムが複数のコンピューティングデバイスを含む場合、これらのデバイスは、同じ位置に配置され得るが同じ位置に配置される必要はない。開示する方法及びタスクの結果は、ソリッド状態メモリーチップ及び/又は磁気ディスクなど物理記憶装置を異なる状態に変換することによって持続的に記憶され得る。説明する各プロセスは、関連したサーバコードでプログラムされる1つ以上の物理サーバなど、1つ以上のコンピューティングデバイスによって実現され得る。   Each of the various exemplary systems may be implemented as a computing system that is programmed and configured to perform the various functions described herein. A computing system may include a plurality of different computers or computing devices (eg, physical servers, workstations, storage arrays, etc.) that communicate and interoperate over a network to perform the functions described. Each such computing device typically includes a processor (or multiprocessor) that executes program instructions or modules stored in memory or other fixed computer-readable storage medium. Various functions disclosed herein may be embodied in such program instructions, but some or all of the disclosed functions may alternatively be in a computer system application specific circuit (eg, ASIC or FPGA). Can be realized. If a computing system includes multiple computing devices, these devices may be located at the same location but need not be located at the same location. The results of the disclosed methods and tasks can be stored persistently by converting physical storage devices such as solid state memory chips and / or magnetic disks to different states. Each described process may be implemented by one or more computing devices, such as one or more physical servers programmed with associated server code.

とりわけ、「〜することができる」、「〜ことがあり得る」、「〜得る」、「例えば」など、本明細書で使用する条件付き言語は、特記がない限り、又は、使用時に前後関係において別段の理解の仕方がない限り、ある特定の実施形態が、特定特徴部、要素及び/又は段階を含むが、他の実施形態は含まないことを伝達することを一般的に意図する。したがって、そのような条件付き言語は、一般的に、特徴部、要素及び/又は状態がいかなる点においても1つ以上の実施形態に必要とされること、又は、1つ以上の実施形態が、著者入力又はプロンプト表示の有無を問わず、これらの特徴部、要素及び/又は状態が任意のある特定の実施形態においては含まれるか又は実行されるべきであるか否かを判断するための論理を必ず含むことを意味することを意図したものではない。「を備える」、「を含む」、「を有する」などの用語は、同義であり、かつ、制限なしに包括的に使用されており、更なる要素、特徴部、行為、作業などを除外するものではない。また、「又は」という用語は、使用するときには、例えば、要素のリストを関連づけるために、「又は」という用語は、リスト内の要素の1つ、一部、又は、全てを意味するように、包括的な意味で(かつ、排他的な意味ではなく)使用している。冠詞「a」及び「an」は、特記がない限り、「1つ以上の」か、又は、「少なくとも1つ」を意味すると解釈するべきである。   In particular, the conditional languages used herein, such as “can be”, “can be”, “get”, “for example”, etc., are contextual unless otherwise stated or in use. Unless specifically understood otherwise, it is generally intended to convey that certain embodiments include certain features, elements and / or steps, but not other embodiments. Accordingly, such conditional languages generally require that features, elements and / or states be required for one or more embodiments in any respect, or for one or more embodiments, Logic for determining whether these features, elements and / or states should be included or executed in any particular embodiment, with or without author input or prompting It is not intended to mean including. Terms such as “comprising”, “including”, “having”, etc. are synonymous and are used comprehensively without limitation, excluding further elements, features, acts, operations, etc. It is not a thing. Also, the term “or” when used, for example, to relate a list of elements, the term “or” means one, some, or all of the elements in the list, Used in a comprehensive sense (and not in an exclusive sense). The articles “a” and “an” should be interpreted to mean “one or more” or “at least one” unless otherwise specified.

「X、Y及びZのうちの少なくとも1つ」という表現などの連結表現は、特記がない限り、その他の方法で、項目、項などがX、Y、又はZであり得ることを伝えるために一般に使用されるように文脈と共に理解される。したがって、そのような連結表現は、一般的に、ある特定の実施形態がXのうちの少なくとも1つ、Yのうちの少なくとも1つ、及びZのうちの少なくとも1つが各々存在することを必要とすることを意味すると意図されてはいない。   Concatenated expressions, such as the expression “at least one of X, Y, and Z”, unless otherwise specified, to convey that an item, term, etc. can be X, Y, or Z in other ways To be understood with context as commonly used. Thus, such linked representations generally require that certain embodiments each have at least one of X, at least one of Y, and at least one of Z each present. It is not intended to mean to do.

上記の詳細な説明では、様々な実施形態に適用されるように新規の特徴を図示、説明及び指摘したが、例示する装置又はアルゴリズムの形態又は詳細における様々な省略、置換、及び変更を本開示の精神から逸脱することなく行なうことができることが理解されるであろう。したがって、前述の説明におけるいかなるものも、任意の特定の特徴、特性、ステップ、モジュール、又は、ブロックが必要又は不可欠であることを意味するとは意図されていない。認識されるように、本明細書で説明するプロセスは、一部の特徴部を他とは別々には使用又は実践することができるように、本明細書で定める特徴及び利点の全てを提供するわけではない形態で実施することができる。本発明の範囲は、前述の説明ではなく特許請求項の範囲により定義される。特許請求項の範囲の意味及び均等性の範囲に該当する全ての変更は、本発明の範囲内に包含されるものとする。
While the foregoing detailed description has illustrated, described, and pointed out novel features as applied to various embodiments, various omissions, substitutions, and changes in the form or detail of exemplary devices or algorithms are disclosed herein. It will be understood that this can be done without departing from the spirit of. Thus, nothing in the foregoing description is intended to imply that any particular feature, characteristic, step, module, or block is necessary or essential. As will be appreciated, the process described herein provides all of the features and advantages defined herein so that some features can be used or practiced separately from others. It can be implemented in a non-native form. The scope of the invention is defined by the appended claims rather than the foregoing description. All changes that fall within the meaning and range of equivalency of the claims are to be embraced within the scope of the invention.

Claims (14)

プロデューサシステムへのアクセスをリースして前記プロデューサシステムによってホスティングされたサービスへのアクセスを取得するためのシステムであって、
1つ以上のプロセッサを含むコンシューマシステム
を備え、
前記コンシューマシステムは、
プロデューサシステムのサービスにアクセスするリース要求を生成し、
前記リース要求を複数のリースエージェントに提供し、
前記プロデューサシステムの識別情報を前記複数のリースエージェントのうちの少なくともいくつかから受信し、
前記コンシューマシステムが前記プロデューサシステムでの前記サービスにアクセスするように許可される一定期間を含むリース時間を前記プロデューサシステムから受信するように構成されたリースリクエスタを更に含み、
前記コンシューマシステムは、前記複数のリースエージェントによって識別された前記プロデューサシステムの接続を開始しようとするように構成された接続モジュールを更に含み、
前記コンシューマシステムは、前記接続モジュールが前記プロデューサシステムとの接続を失敗せずに確立することに応答して前記プロデューサシステムでの前記サービスにアクセスするように構成されたリソースリクエスタを更に含む、システム。
A system for leasing access to a producer system to obtain access to a service hosted by the producer system,
Comprising a consumer system including one or more processors;
The consumer system is
Generate a lease request to access the producer system service,
Providing the lease request to a plurality of lease agents;
Receiving identification information of the producer system from at least some of the plurality of lease agents ;
A lease requester configured to receive from the producer system a lease time that includes a period of time that the consumer system is allowed to access the service at the producer system ;
The consumer system further comprises a connection module configured to attempt to initiate a connection with the producer system identified by the plurality of lease agents,
The consumer system further includes a configuration resource requestor as the connection module to access the service in the response producer system to establish without failure the connection between the producer system, system.
前記接続モジュールは、更に、前記プロデューサシステムに関連した前記リース時間を前記プロデューサシステムに提供するように構成される、請求項1に記載のシステム。 The connection module is further configured to provide the lease time associated with said producer system to the producer system, system of claim 1. 前記リソースリクエスタは、更に、前記リース時間がリース閾値を満たす前記プロデューサシステムについて前記リース時間から残る時間の量に応答して満了する前には前記プロデューサシステムでの前記サービスにアクセスする既存のサービス要求が完了されないことになる確率を算出するように構成され、
前記リースリクエスタは、更に、
前記確率が更新閾値を満たすと算出することに応答において前記プロデューサシステムでの前記サービスにアクセスする更新リース要求を生成し、
前記更新リース要求を、前記プロデューサシステムの前記識別情報を提供した前記複数のリースエージェントの前記リースエージェントに提供するように構成される、請求項2に記載のシステム。
The resource requester further includes an existing service request to access the service at the producer system before the lease time expires in response to the amount of time remaining from the lease time for the producer system that meets a lease threshold. Is configured to calculate the probability that will not be completed,
The lease requester further comprises:
Generating an update lease request to access the service at the producer system in response to calculating that the probability satisfies an update threshold;
The system of claim 2, configured to provide the renewed lease request to the lease agent of the plurality of lease agents that provided the identification information of the producer system.
少なくともメタデータの一部が前記プロデューサシステムに関係する現状情報を含み、前記メタデータを前記プロデューサシステムから取得し
前記現状情報の少なくとも一部を、前記第1のプロデューサシステムの前記識別情報を提供した前記複数のリースエージェントの前記リースエージェントに提供するように構成された現状モジュールを更に備える、請求項1に記載のシステム。
Look including the current state information of at least a portion of the metadata relating to the producer system, at least part of the obtained the current state information of the meta data from the producer system, providing the identification information of the first producer system The system of claim 1, further comprising a status module configured to provide to the lease agent of the plurality of lease agents.
プロデューサシステムへのアクセスをリースして前記プロデューサシステムによってホスティングされたサービスへのアクセスを取得する方法であって、
1つ以上のプロセッサを含むコンシューマシステムによって
複数のプロデューサシステムの1つのサービスにアクセスするリース要求を生成することと、
前記リース要求を複数のリースエージェントに提供することと、
前記プロデューサシステムのうちの1つ以上の識別情報を個々のリースエージェントから受信することと、
前記プロデューサシステムのうちの少なくともいくつかのリース時間であって、前記コンシューマシステムが前記プロデューサシステムでの前記サービスにアクセスするように許可される一定期間を含むリース時間を受信することと、
前記複数のリースエージェントによって識別された前記プロデューサシステムのうちの少なくともいくつかとの接続を開始しようとすることと、
前記プロデューサシステムのうちの少なくともいくつかの第1のプロデューサシステムとの接続を失敗せずに確立することに応答して、前記第1のプロデューサシステムによって提供された前記サービスにアクセスすることと、
を含む方法。
A method of leasing access to a producer system to obtain access to a service hosted by the producer system, comprising:
Generating a lease request to access one service of a plurality of producer systems by a consumer system including one or more processors;
Providing the lease request to a plurality of lease agents;
Receiving identification information from one or more lease agents of one or more of the producer systems;
Receiving a lease time of at least some of the producer systems, the lease time comprising a period of time that the consumer system is allowed to access the service at the producer system;
Attempting to initiate a connection with at least some of the producer systems identified by the plurality of lease agents;
Accessing the service provided by the first producer system in response to establishing without failure a connection with a first producer system of at least some of the producer systems;
Including methods.
前記プロデューサシステムのうちの1つ以上の前記識別情報を個々のリースエージェントから受信することは、前記識別されたプロデューサシステムのうちの少なくともいくつかの消耗可能なリソースを受信することを含み、
前記消耗可能なリソースは、(i)前記コンシューマシステムが前記識別されたプロデューサシステムのうちの少なくともいくつかでの前記サービスにアクセスする権限を与えられる一定期間、(ii)1組の計算サイクル、(iii)前記識別されたプロデューサシステムのうちの少なくともいくつかの使用に関する財務予算、又は(iv)ディスク記憶装置、を含み、
前記第1のプロデューサシステムの前記消耗可能なリソースからの残る消耗可能なリソースの量がリース閾値を満たすことに応答して、前記方法は、
前記消耗可能なリソースが満了する前には前記第1のプロデューサでの前記サービスにアクセスする既存のサービス要求が完了されないことになる確率を算出することと、
前記確率が更新閾値を満たすと算出することに応答して、前記第1のプロデューサシステムでの前記サービスにアクセスする更新リース要求を生成することと、
前記更新リース要求を、前記第1のプロデューサシステムの前記識別情報を提供した前記複数のリースエージェントの前記リースエージェントに提供すること
を更に含み、
前記更新リース要求を前記リースエージェントに提供することに応答して、前記方法は、前記第1のプロデューサシステムの前記消耗可能なリソースの更新量を受信するか、又は、新しいプロデューサシステムの消耗可能なリソースの新しい量を受信することを更に含み、前記新しいプロデューサシステムは、前記第1のプロデューサシステムと異なる、請求項5に記載の方法。
Receiving the identification information of one or more of the producer systems from an individual lease agent comprises receiving at least some consumable resources of the identified producer systems;
The consumable resources are: (i) a period of time that the consumer system is authorized to access the service on at least some of the identified producer systems ; (ii) a set of computation cycles ; iii) a financial budget for use of at least some of the identified producer systems , or (iv) disk storage,
In response to the amount of consumable resources remaining from the consumable resources of the first producer system meeting a lease threshold, the method comprises:
Calculating a probability that an existing service request to access the service at the first producer will not be completed before the consumable resource expires;
Responsive to calculating that the probability satisfies an update threshold, generating an update lease request to access the service at the first producer system;
Further comprising providing the renewed lease request to the lease agents of the plurality of lease agents that provided the identification information of the first producer system;
In response to providing the renewal lease request to the lease agent, the method receives an update amount of the consumable resource of the first producer system or a consumable of a new producer system. 6. The method of claim 5 , further comprising receiving a new amount of resources, wherein the new producer system is different from the first producer system.
前記プロデューサシステムの前記少なくともいくつかの前記第1のプロデューサシステムとの前記接続を失敗せずに確立することに応答して、前記方法は、
メタデータを前記第1のプロデューサシステムから取得することを更に含み、前記メタデータのうちの少なくとも一部は、前記第1のプロデューサシステムに関係する現状情報を含み、
前記方法は、
前記現状情報の少なくとも一部を、前記第1のプロデューサシステムの前記識別情報を提供した前記複数のリースエージェントの前記リースエージェントに提供することを更に含む、請求項5に記載の方法。
In response to establishing the connection of the producer system with the at least some of the first producer systems without failure, the method comprises:
Further including obtaining metadata from the first producer system, wherein at least a portion of the metadata includes current status information related to the first producer system;
The method
6. The method of claim 5 , further comprising providing at least a portion of the current status information to the lease agent of the plurality of lease agents that provided the identification information of the first producer system.
前記プロデューサシステムの前記少なくともいくつかの第2のプロデューサシステムとの接続を失敗せずに確立することに応答して、前記第2のプロデューサシステムでの第2のサービスにアクセスすること、請求項5に記載の方法。 In response to establishing without failure the connection between the at least some of the second producer system of the producer system, access to the second service in the second producer system, according to claim 5 The method described in 1. プロデューサシステムへのアクセスをリースして前記プロデューサシステムによってホスティングされたサービスへのアクセスを提供するシステムであって、
コンピュータハードウェアを含むコンピュータシステムにおいて実施される、第1のリースシステムを含む第1のリースエージェント、
を備え、
前記第1のリースシステムは、
いくつかのプロデューサシステムによって提供されるサービスへのアクセスをリースする第1の要求をコンシューマシステムから受信し、
前記第1の複数のプロデューサシステムの個々のプロデューサシステムに関連したプロデューサ現状情報に少なくとも部分的に基づいて、前記いくつかのプロデューサシステムの第1のサブセットを含む第1の複数のプロデューサシステムの第1のプロデューサシステムを識別し、
前記第1のプロデューサシステムを識別することに応答して、前記第1のプロデューサシステムの識別情報を前記コンシューマシステムに提供するように構成され、
前記システムは、更に
第2のリースシステムを含む第2のリースエージェントを備え、前記第2のリースシステムは、
前記サービスへのアクセスをリースする第2の要求を前記コンシューマシステムから受信し、
前記第2の複数のプロデューサシステムの前記個々のプロデューサシステムに関連したプロデューサ現状情報に少なくとも部分的に基づいて第2の複数のプロデューサシステムの第2のプロデューサシステムを識別するように構成され、前記第2の複数のプロデューサシステムは、前記いくつかのプロデューサシステムの第2のサブセットを含み、前記いくつかのプロデューサシステムの前記第2のサブセットは、前記いくつかのプロデューサシステムの前記第1のサブセットと同一ではなく
前記第2のリースシステムは、更に
前記第2のプロデューサシステムを識別することに応答して、前記第2のプロデューサシステムの識別情報を前記コンシューマシステムに提供し、その結果、前記コンシューマシステムが、少なくとも前記第1のプロデューサシステム及び前記第2のプロデューサシステムからの前記サービスへのアクセスを要求することを可能にするように構成され、それにより前記第1のプロデューサシステムと前記第2のプロデューサシステムとを識別することは、少なくとも前記第1のリースエージェントと前記第2のリースエージェント間で分散される分散プロセスであるようになっている、システム。
A system that leases access to a producer system to provide access to services hosted by the producer system,
A first lease agent comprising a first lease system implemented in a computer system comprising computer hardware;
With
The first leasing system includes:
Receiving a first request from a consumer system to lease access to a service provided by some producer system;
A first of the first plurality of producer systems comprising a first subset of the several producer systems based at least in part on producer status information associated with individual producer systems of the first plurality of producer systems; Identify the producer system
Responsive to identifying the first producer system, configured to provide identification information of the first producer system to the consumer system;
The system further comprises a second lease agent that includes a second lease system, the second lease system comprising:
Receiving a second request from the consumer system to lease access to the service;
Configured to identify a second producer system of the second plurality of producer systems based at least in part on producer status information associated with the individual producer systems of the second plurality of producer systems; A plurality of producer systems comprising a second subset of the several producer systems, wherein the second subset of the several producer systems is identical to the first subset of the several producer systems The second lease system further provides identification information of the second producer system to the consumer system in response to identifying the second producer system, so that the consumer system At least the first It is configured to allow the requesting access to B inducer system and the service from the second producer system, thereby identifying the said first producer system and the second producer system Is a distributed process distributed at least between the first lease agent and the second lease agent.
前記第1のリースシステムは、更に、第1のリース時間情報を前記コンシューマシステムに与えるように構成され、前記第1のリース時間情報は、前記コンシューマシステムが前記第1のプロデューサシステムにアクセスするように許可される一定期間を意味し、前記第2のリースシステムは、更に、第2のリース時間情報を前記コンシューマシステムに与えるように構成され、前記第2のリース時間情報は、前記コンシューマシステムが前記第2のプロデューサシステムにアクセスするように許可される一定期間を意味する請求項9に記載のシステム。 Wherein the first lease system is further configured to first lease time information to provide to the consumer system, the first lease time information, so that the consumer system to access the first producer system It means a period of time allowed for, the second lease system is further configured second lease time information to provide to the consumer system, the second lease time information, the consumer system The system of claim 9 , meaning a period of time that is allowed to access the second producer system. 前記第1のリースエージェントは、第1の現状モジュールを更に含み、前記第1の現状モジュールは、
前記第1のプロデューサシステムの第1の更新された現状情報を受信し、
前記第1の更新された現状情報に少なくとも部分的に基づいて前記第1のプロデューサシステムの前記プロデューサ現状情報を更新するように構成され、
前記第2のリースエージェントは、第2の現状モジュールを更に含み、前記第2の現状モジュールは、
前記第2のプロデューサシステムの第2の更新された現状情報を受信し、
前記第2の更新された現状情報に少なくとも部分的に基づいて前記第2のプロデューサシステムの前記プロデューサ現状情報を更新するように構成される、請求項9に記載のシステム。
The first lease agent further includes a first status module, and the first status module includes:
Receiving first updated status information of the first producer system;
Configured to update the producer current status information of the first producer system based at least in part on the first updated current status information;
The second lease agent further includes a second current status module, and the second current status module includes:
Receiving second updated status information of the second producer system;
The system of claim 9 , wherein the system is configured to update the producer status information of the second producer system based at least in part on the second updated status information.
前記第1の更新された現状情報及び前記第2の更新された現状情報は、前記コンシューマシステムから受信される、請求項11に記載のシステム。 The system of claim 11 , wherein the first updated current status information and the second updated current status information are received from the consumer system. 前記第1の更新された現状情報は、前記第1のプロデューサシステムから受信され、前記第2の更新された現状情報は、前記第2のプロデューサシステムから受信される、請求項11に記載のシステム。 12. The system of claim 11 , wherein the first updated current state information is received from the first producer system and the second updated current state information is received from the second producer system. . 前記第1のリースエージェントは、更に、
前記第1のプロデューサシステムの更なるリース時間を取得する第1のリース更新要求を前記コンシューマシステムから受信し、
前記第1のプロデューサシステムのプロデューサ現状情報に少なくとも部分的に基づいて前記第1のリース更新要求を容認するべきかどうか判定し、
前記第1のリース更新要求を容認することを判定することに応答して、前記第1のプロデューサシステムの第1のリース更新時間を前記コンシューマシステムに提供するように構成され、
前記第1のリース更新要求を容認しないことを判定することに応答して、前記第1のリースエージェントは、更に、
前記第1の複数のプロデューサシステムの各プロデューサシステムに関連したプロデューサ現状情報に少なくとも部分的に基づいて第1の複数のプロデューサシステムの第3のプロデューサシステムを識別し、
前記第3のプロデューサシステムを識別することに応答して、前記第3のプロデューサシステムの識別情報を前記コンシューマシステムに提供するように構成される、請求項9に記載のシステム。
The first lease agent further includes:
Receiving a first lease renewal request from the consumer system to obtain a further lease time of the first producer system;
Determining whether to accept the first lease renewal request based at least in part on producer status information of the first producer system;
Responsive to determining to accept the first lease renewal request, configured to provide the consumer system with a first lease renewal time of the first producer system;
In response to determining not to accept the first lease renewal request, the first lease agent further comprises:
Identifying a third producer system of the first plurality of producer systems based at least in part on producer status information associated with each producer system of the first plurality of producer systems;
The system of claim 9 , wherein the system is configured to provide identification information of the third producer system to the consumer system in response to identifying the third producer system.
JP2016521906A 2013-06-26 2014-06-24 Managing client access to multiple computing systems Active JP6200080B2 (en)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US13/927,892 2013-06-26
US13/927,995 2013-06-26
US13/927,929 US9369518B2 (en) 2013-06-26 2013-06-26 Producer system partitioning among leasing agent systems
US13/927,929 2013-06-26
US13/927,933 2013-06-26
US13/927,933 US9843631B2 (en) 2013-06-26 2013-06-26 Producer system selection
US13/927,892 US9350801B2 (en) 2013-06-26 2013-06-26 Managing client access to a plurality of computing systems
US13/927,995 US9780993B2 (en) 2013-06-26 2013-06-26 Producer computing system leasing on behalf of consumer computing system
PCT/US2014/043941 WO2014210054A2 (en) 2013-06-26 2014-06-24 Managing client access to a plurality of computing systems

Publications (2)

Publication Number Publication Date
JP2016526723A JP2016526723A (en) 2016-09-05
JP6200080B2 true JP6200080B2 (en) 2017-09-20

Family

ID=51212983

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2016521906A Active JP6200080B2 (en) 2013-06-26 2014-06-24 Managing client access to multiple computing systems
JP2016523859A Active JP6165978B2 (en) 2013-06-26 2014-06-24 Distribution of creator systems among lease agent systems
JP2016523862A Active JP6243528B2 (en) 2013-06-26 2014-06-24 Distribution of creator systems among lease agent systems

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2016523859A Active JP6165978B2 (en) 2013-06-26 2014-06-24 Distribution of creator systems among lease agent systems
JP2016523862A Active JP6243528B2 (en) 2013-06-26 2014-06-24 Distribution of creator systems among lease agent systems

Country Status (5)

Country Link
EP (3) EP3014537A2 (en)
JP (3) JP6200080B2 (en)
CN (3) CN105612539B (en)
CA (3) CA2916261C (en)
WO (3) WO2014210053A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592064B2 (en) 2013-09-17 2020-03-17 Amazon Technologies, Inc. Approaches for three-dimensional object display used in content navigation

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9843631B2 (en) 2013-06-26 2017-12-12 Amazon Technologies, Inc. Producer system selection
US9780993B2 (en) 2013-06-26 2017-10-03 Amazon Technologies, Inc. Producer computing system leasing on behalf of consumer computing system
US9369518B2 (en) 2013-06-26 2016-06-14 Amazon Technologies, Inc. Producer system partitioning among leasing agent systems
US9350801B2 (en) 2013-06-26 2016-05-24 Amazon Technologies, Inc. Managing client access to a plurality of computing systems
WO2019100366A1 (en) * 2017-11-27 2019-05-31 Beijing Didi Infinity Technology And Development Co., Ltd. Systems and methods for distributing on-demand service requests
US20230071047A1 (en) * 2021-09-08 2023-03-09 Microstrategy Incorporated Systems and methods for virtual machine resource distribution
WO2024069846A1 (en) * 2022-09-29 2024-04-04 楽天モバイル株式会社 Dynamic change of resource allocation for virtual network function

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9508283D0 (en) * 1995-02-07 1995-06-14 British Telecomm Information services provision and management
US6965974B1 (en) * 1997-11-14 2005-11-15 Agere Systems Inc. Dynamic partitioning of memory banks among multiple agents
JP3711866B2 (en) * 2000-04-10 2005-11-02 日本電気株式会社 Framework having plug and play function and reconfiguration method thereof
JP2006235837A (en) * 2005-02-23 2006-09-07 Nec Corp Load balancing system, load balancer management server, switching method for load balancer and program
US8145760B2 (en) * 2006-07-24 2012-03-27 Northwestern University Methods and systems for automatic inference and adaptation of virtualized computing environments
US8635349B2 (en) * 2007-02-20 2014-01-21 Oracle America, Inc. Method and system for managing computing resources using an electronic broker agent
US9106540B2 (en) * 2009-03-30 2015-08-11 Amazon Technologies, Inc. Providing logical networking functionality for managed computer networks
US8615764B2 (en) * 2010-03-31 2013-12-24 International Business Machines Corporation Dynamic system scheduling
US8364819B2 (en) * 2010-05-28 2013-01-29 Red Hat, Inc. Systems and methods for cross-vendor mapping service in cloud networks
JP2012234236A (en) * 2011-04-28 2012-11-29 Hitachi Ltd Load distribution system
US9137304B2 (en) * 2011-05-25 2015-09-15 Alcatel Lucent Method and apparatus for achieving data security in a distributed cloud computing environment
US8958298B2 (en) * 2011-08-17 2015-02-17 Nicira, Inc. Centralized logical L3 routing
CN102955456A (en) * 2011-08-26 2013-03-06 北京安翔动力科技有限公司 Bus communication based small unmanned aerial vehicle control system
CN103049245B (en) * 2012-10-25 2015-12-02 浪潮电子信息产业股份有限公司 A kind of software performance optimization method based on central processor CPU multi-core platform
CN103870580A (en) * 2014-03-24 2014-06-18 深圳市众鸿科技股份有限公司 Objected-based dynamic-attribute cloud management platform and system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592064B2 (en) 2013-09-17 2020-03-17 Amazon Technologies, Inc. Approaches for three-dimensional object display used in content navigation

Also Published As

Publication number Publication date
JP2016527623A (en) 2016-09-08
JP2016526723A (en) 2016-09-05
WO2014210054A3 (en) 2015-02-26
JP6243528B2 (en) 2017-12-06
CA2916265A1 (en) 2014-12-31
CA2916258A1 (en) 2014-12-31
EP3014441A2 (en) 2016-05-04
CN105612539B (en) 2020-05-05
CN105593820B (en) 2019-04-19
WO2014210054A2 (en) 2014-12-31
WO2014210058A2 (en) 2014-12-31
CN105612539A (en) 2016-05-25
CA2916261C (en) 2018-04-10
JP6165978B2 (en) 2017-07-19
CA2916265C (en) 2018-04-10
WO2014210053A2 (en) 2014-12-31
CN105593820A (en) 2016-05-18
CN105556472B (en) 2019-07-26
WO2014210053A3 (en) 2015-02-26
CA2916258C (en) 2019-01-29
EP3014442A2 (en) 2016-05-04
EP3014537A2 (en) 2016-05-04
WO2014210058A3 (en) 2015-02-26
CA2916261A1 (en) 2014-12-31
JP2016527780A (en) 2016-09-08
CN105556472A (en) 2016-05-04

Similar Documents

Publication Publication Date Title
JP6200080B2 (en) Managing client access to multiple computing systems
US9350801B2 (en) Managing client access to a plurality of computing systems
US11128698B2 (en) Producer system registration
US9369518B2 (en) Producer system partitioning among leasing agent systems
US9350682B1 (en) Compute instance migrations across availability zones of a provider network
US9317334B2 (en) Multilevel multipath widely distributed computational node scenarios
US11070634B2 (en) Highly available private cloud service
US10924542B2 (en) Content delivery system
US9780993B2 (en) Producer computing system leasing on behalf of consumer computing system
US9819626B1 (en) Placement-dependent communication channels in distributed systems
JP6631710B2 (en) Virtualization management program, virtualization management device, and virtualization management method
US20180152370A1 (en) Dynamic Cloning Of Application Infrastructures
Stack et al. Self-healing in a decentralised cloud management system
US10860347B1 (en) Virtual machine with multiple content processes
US9270530B1 (en) Managing imaging of multiple computing devices
US11153391B2 (en) Connecting application instances to client devices
US20220413987A1 (en) System and method for accelerator-centric workload placement
US20220414577A1 (en) System and method for performance-centric workload placement in a hybrid cloud environment

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170427

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170807

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170824

R150 Certificate of patent or registration of utility model

Ref document number: 6200080

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250