JP2016527623A - Distribution of creator systems among lease agent systems - Google Patents

Distribution of creator systems among lease agent systems Download PDF

Info

Publication number
JP2016527623A
JP2016527623A JP2016523859A JP2016523859A JP2016527623A JP 2016527623 A JP2016527623 A JP 2016527623A JP 2016523859 A JP2016523859 A JP 2016523859A JP 2016523859 A JP2016523859 A JP 2016523859A JP 2016527623 A JP2016527623 A JP 2016527623A
Authority
JP
Japan
Prior art keywords
producer
lease
systems
agent
lease agent
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.)
Granted
Application number
JP2016523859A
Other languages
Japanese (ja)
Other versions
JP6165978B2 (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,892 external-priority patent/US9350801B2/en
Priority claimed from US13/927,995 external-priority patent/US9780993B2/en
Priority claimed from US13/927,929 external-priority patent/US9369518B2/en
Priority claimed from US13/927,933 external-priority patent/US9843631B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2016527623A publication Critical patent/JP2016527623A/en
Application granted granted Critical
Publication of JP6165978B2 publication Critical patent/JP6165978B2/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

Abstract

複数の制作者システムを複数のリースエージェント間に分配するプロセス及びシステムを開示する。リースエージェントは、環境内の一組の使用可能な制作者システムを特定することができ、それらの制作者システムを複数のリースエージェントのそれぞれに分配することができる。次に、リースエージェントは、各リースエージェントに割り当てられた制作者システムを他のリースエージェントに通知することができる。使用可能な制作者システムの数が変わったときには、分配プロセスを繰り返して、リースエージェント間での制作者システムの割り当てのバランスを取り直すことができる。【選択図】図2Disclosed is a process and system for distributing multiple author systems among multiple lease agents. The lease agent can identify a set of available producer systems in the environment and distribute those publisher systems to each of a plurality of lease agents. Next, the lease agent can notify the other lease agents of the producer system assigned to each lease agent. When the number of available author systems changes, the distribution process can be repeated to rebalance the author system assignments among the lease agents. [Selection] Figure 2

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号の各出願に関するものであり、参照により本明細書にこれらの開示全体を援用する。
CROSS REFERENCE TO RELATED APPLICATIONS This application is filed in US application No. 13 / 927,892 entitled “PRODUCER” filed June 26, 2013; US Application No. 13 / 927,929, entitled “SYSTEM PARTIONING AMONG LEASING AGENT SYSTEMS”; US Application No. 13 / 927,933, entitled “PRODUCER SYSTEM SELECTION”, filed June 26, 2013; US Application No. 13/9 entitled “PRODUCER SYSTEM PARTITIONING AMONG LEASING AGENT SYSTEMS” It relates each application No. 7,995, incorporated the entire disclosures herein by reference.

多くの場合、コンピューティングリソース及びサービスは、複数のコンピューティングシステムによって提供される。これらのコンピューティングリソース及び/またはサービスは、複数の別のコンピューティングシステムによって消費され得る。多くの場合、いくつかのコンピューティングシステムは、同じリソースまたはサービスへのアクセスを提供する。リソースまたはサービスを提供する各コンピューティングシステムでは、通常、一定期間中にそのシステムが処理可能な要求の数が制限されている。   In many cases, computing resources and services are provided by multiple computing systems. These computing resources and / or services may be consumed by multiple separate computing systems. Often, several computing systems provide access to the same resources or services. Each computing system that provides a resource or service typically limits the number of requests that the system can handle during a period of time.

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

要求を行っているコンピュータシステムにサービスを提供しやすくするため、いくつかの企業は、集中型システムを利用し、それによってサービスまたはリソースを提供する各システムの使用率を追跡できるようにしている。集中型システムを用いることにより、サービスまたはリソースを提供するいくつかのコンピューティングシステム間で、各提供システムにかかる負荷のバランスを取ることができる。こうした集中型システムの1つとしては、ハードウェアロードバランサがある。ハードウェアロードバランサは、サービスまたはリソースを提供するコンピューティングシステム間に要求を分散するのに有用であり、それによって企業の各提供システムにわたって負荷のバランスを取ることができる。   In order to make it easier to provide services to requesting computer systems, some companies utilize a centralized system, thereby allowing the usage of each system that provides a service or resource to be tracked. By using a centralized system, the load on each providing system can be balanced among several computing systems that provide services or resources. One such centralized system is a hardware load balancer. A hardware load balancer is useful for distributing requests among computing systems that provide services or resources, thereby balancing the load across each provisioning system of an enterprise.

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

制作者システムによってホストされたサービスへのアクセスを消費者システムに提供するネットワーク環境の実施形態を示す図である。FIG. 2 illustrates an embodiment of a network environment that provides a consumer system with access to services hosted by a producer system. 制作者システムによってホストされたサービスへのアクセスを消費者システムに提供すると共に、制作者システムの健全性情報を1つ以上のリースエージェントに提供するネットワーク環境の実施形態を示す図である。FIG. 5 illustrates an embodiment of a network environment that provides consumer systems with access to services hosted by a producer system and provides health information for the producer system 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 the producer system. 制作者システムのサービスにアクセスするプロセスの実施形態を示す図である。FIG. 4 illustrates an embodiment of a process for accessing a service of a producer system. 制作者システムのリースを消費者システムに提供するプロセスの実施形態を示す図である。FIG. 6 illustrates an embodiment of a process for providing a producer system lease to a consumer system. 制作者システム更新プロセスの実施形態を示す図である。It is a figure which shows embodiment of a producer system update process. 一組の制作者システムを分配する分配プロセスの実施形態を示す図である。FIG. 4 illustrates an embodiment of a distribution process for distributing a set of author systems. 制作者システムの観点からの制作者システム登録プロセスの実施形態を示す図である。It is a figure which shows embodiment of the producer system registration process from a viewpoint of a producer system. リースエージェントの観点からの制作者システム登録プロセスの実施形態を示す図である。FIG. 7 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 redistribution process. ヒステリシスベースの制作者選択プロセスの実施形態を示す図である。FIG. 4 illustrates an embodiment of a hysteresis based producer selection process. 制作者システムによってホストされたサービスへのアクセスを消費者システムに提供するオーバーレイネットワーク環境の実施形態を示す図である。FIG. 3 illustrates an embodiment of an overlay 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 creator virtual machine service. 制作者仮想マシンのサービスへのアクセスを求める要求を処理するプロセスの実施形態を示す図である。FIG. 6 illustrates an embodiment of a process for processing a request for access to a service of 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 state management table that can be used to facilitate communication in an overlay network environment.

序論
ハードウェアロードバランサを使用することにより、サービスまたはリソースへのアクセスを提供するコンピューティングシステム(このシステムは制作者システムと称することができる)に対して、当該サービスまたはリソースへのアクセスを要求するコンピューティングシステム(このシステムは消費者システムと称することができる)からの要求により過度の負荷がかかるのを防ぐ助けとなることが可能であるが、ハードウェアロードバランサは、いくつかの欠点を生じる恐れがある。例えば、ハードウェアロードバランサは、単一障害点となる。つまり、ハードウェアロードバランサが故障した場合、もはや制作者システムにサービス要求を転送することができないため、関連する企業システムからのアクセスが不可能となる場合がある。さらに、ハードウェアロードバランサは、高価で難解な複数のハードウェアで構成されるため、ハードウェアロードバランサは、企業システムの負荷をバランスさせるための解決策として魅力的なものとはなり得ない。
Introduction Requesting access to a service or resource from a computing system that provides access to the service or resource by using a hardware load balancer (this system can be referred to as a producer system) While it is possible to help prevent overloading by demands from computing systems (which can be referred to as consumer systems), hardware load balancers create several drawbacks. There is a fear. For example, a hardware load balancer becomes a single point of failure. In other words, when a hardware load balancer fails, service requests can no longer be transferred to the producer system, and access from the associated enterprise system may become impossible. Furthermore, since the hardware load balancer is composed of a plurality of expensive and esoteric hardware, the hardware load balancer cannot be an attractive solution for balancing the load on the enterprise system.

ハードウェアロードバランサに関する課題の解決策の1つとしては、非集中型ロードバランサを使用することである。しかしながら、非集中型ロードバランサを用いることにより、ハードウェアロードバランサの使用に関するいくつかの問題が解決されるものの、非集中型ロードバランサは最適状態に及ばない傾向がある。なぜなら、非集中型ロードバランサは企業システムに対する全体的な視野を持たず、通常は、各ロードバランサが、消費者システム及び制作者システムの確定したサブセットにサービスを提供するように制限されているためである。   One solution to the problem with hardware load balancers is to use a decentralized load balancer. However, using a decentralized load balancer solves several problems associated with using a hardware load balancer, but decentralized load balancers tend to be suboptimal. Because decentralized load balancers do not have an overall view of enterprise systems and are usually limited to each load balancer serving a defined subset of consumer and producer systems. It is.

本開示は、一組のリースエージェントを利用して、複数の消費者システムからのサービス要求を複数の制作者システム間に割り当てるシステム及びプロセスの実施形態について説明する。リースエージェントは、多くの場合には、複数の制作者システムの全体を把握しつつ、制作者システムのサブセットへのアクセス、またはそれらのサブセットのリースを監視し、割り当てることができる。さらに、各サービス要求について、1つの消費者システムは、いくつかのリースエージェントと、さらに、ある場合には複数の制作者システムと対話することができる。一組のリースエージェントは、ある実施形態では融合ロードバランサとして機能することができるが、それは、各リースエージェントが制作者システムのサブセットについて負荷をバランスさせて、負荷のバランスを取るプロセスが、一組の分散ハードウェアベースのシステム間に分散され得るためである。   The present disclosure describes embodiments of systems and processes that utilize a set of lease agents to allocate service requests from multiple consumer systems among multiple publisher systems. In many cases, the leasing agent can monitor and assign access to, or leases of, a subset of the publisher systems while keeping track of the entire plurality of publisher systems. Further, for each service request, one consumer system can interact with several lease agents and, in some cases, multiple producer systems. A set of lease agents can function as an integrated load balancer in some embodiments, because each lease agent balances the load for a subset of the author system and the process of balancing the load is a set. This is because it can be distributed among multiple distributed hardware-based systems.

有利には、ある実施形態では、各制作者システムについての情報の少なくとも一部を各リースエージェントにて保持しつつ制作者システムをリースエージェント間に分配することにより、前述した欠点を伴うことなく、ハードウェアロードバランサと非集中型ロードバランサの双方の利点を得ることができる。さらに、ある実施形態では、特定のリースエージェント及び/または制作者システムに消費者システムを割り当てないことにより、孤立したサブシステムへと制作者システムを分割するシステムに比べて、複数の制作者システムのそれぞれによって処理される負荷を経時的によりバランスさせることができる。   Advantageously, in one embodiment, by distributing at least part of the information about each producer system at each lease agent while distributing the producer system among the lease agents, without the disadvantages described above, The advantages of both a hardware load balancer and a decentralized load balancer can be obtained. Further, in some embodiments, by not assigning a consumer system to a particular lease agent and / or producer system, multiple producer systems can be compared to systems that divide the producer system into isolated subsystems. The load handled by each can be more balanced over time.

ある場合には、制作者システム及び/または消費者システムに実装されるシステム及びアプリケーションは、リースエージェントと一体になって機能するように変更される。例えば、以下でさらに説明されるように、消費者システムは、制作者システムへのアクセスをリースし、制作者システムのステータス情報を保持するように変更されてもよい。   In some cases, the systems and applications implemented in the producer system and / or the consumer system are modified to work with the lease agent. For example, as described further below, the consumer system may be modified to lease access to the producer system and maintain the producer system status information.

いくつかの実施形態では、本開示のシステム及び方法を、消費者仮想マシン及び制作者仮想マシンをホスト可能な一組のコンピューティングホスト上に実装される1つ以上のオーバーレイネットワークと共に使用することができる。有利には、ある実施形態では、本開示のシステム及び方法は、消費者ホスト及び制作者ホストのネットワーク接続基盤に実装することができ、それにより、消費者仮想マシン及び/または制作者仮想マシンからの関与を必要とせずにリースプロセスを発生させることができる。   In some embodiments, the systems and methods of the present disclosure may be used with one or more overlay networks implemented on a set of computing hosts capable of hosting consumer virtual machines and producer virtual machines. it can. Advantageously, in certain embodiments, the systems and methods of the present disclosure can be implemented on a consumer host and producer host network connectivity infrastructure, thereby enabling consumer virtual machines and / or producer virtual machines to The lease process can be generated without the need for involvement.

本開示の実施形態をオーバーレイネットワーク内に実装すると、制作者システムをリースエージェント間に分配する代わりに、各オーバーレイネットワークに関連付けられた制作者仮想マシンがリースエージェント間に個別に分配され得る。さらに、消費者仮想マシンに制作者仮想マシンをリースする際には、リースエージェントは、当該リースを要求している消費者仮想マシンと同じオーバーレイネットワークに割り当てられた制作者仮想マシンを選択することができる。   When embodiments of the present disclosure are implemented in an overlay network, instead of distributing the publisher system among the lease agents, the publisher virtual machine associated with each overlay network can be individually distributed between the lease agents. In addition, when leasing a producer virtual machine to a consumer virtual machine, the lease agent may select a producer virtual machine assigned to the same overlay network as the consumer virtual machine requesting the lease. it can.

ネットワーク環境の概要
制作者システム106A〜Dによってホストされたサービスへのアクセスを消費者システム104A〜Cに提供するネットワーク環境100の実施形態を図1Aに示す。一般に、ネットワーク環境100は1つのデータセンターを表す。ただし、ある場合には、ネットワーク環境100のシステムは、複数のデータセンター間に分散される場合がある。
Network Environment Overview An embodiment of a network environment 100 that provides consumer systems 104A-C access to services hosted by the producer systems 106A-D is shown in FIG. 1A. In general, the network environment 100 represents one data center. However, in some cases, the system of the network environment 100 may be distributed among a plurality of data centers.

ネットワーク環境100は、複数の制作者システム106A〜D(本明細書においてこれらは、単数形で「制作者システム106(a producer system 106)」、または複数形で「制作者システム106(the producer systems 106)」と呼ばれることがある)、及び複数の消費者システム104A〜C(本明細書においてこれらは、単数形で「消費者システム104(a consumer system 104)」、または複数形で「消費者システム104(the consumer systems 104)」と呼ばれることがある)を含むことができる。なお、4つの制作者システム106及び3つの消費者システム104を図示しているが、ネットワーク環境100は、任意の数の制作者システム106及び消費者システム104を含むことができる。さらに、ネットワーク環境100は、1つ以上のデータセンターを表すものとして先に説明されたが、いくつかの実施形態では、消費者システム104の少なくとも一部は、データセンターから独立していてもよい。例えば、いくつかの実施形態では、ネットワーク環境100を特定のエンティティまたは組織と関連付けてもよい。このような実施形態では、消費者システム104の少なくとも一部は、ネットワーク環境100と通信可能なユーザまたは顧客のコンピューティングシステムを表し得るが、これらは、ネットワーク環境100に関連する残りのシステムの管理下ではなく、単独のまたは独立したエンティティの管理下にあってもよい。   The network environment 100 may include a plurality of producer systems 106A-D (herein these are singular “producer systems 106” or plurals “producer systems 106”). 106) ”, and a plurality of consumer systems 104A-C (herein these are referred to as“ a consumer system 104 ”in the singular form, or“ consumers in the plural form ”). System 104 (sometimes referred to as “the consumer systems 104”). Although four producer systems 106 and three consumer systems 104 are shown, the network environment 100 can include any number of producer systems 106 and consumer systems 104. Further, although the network environment 100 has been described above as representing one or more data centers, in some embodiments at least a portion of the consumer system 104 may be independent of the data center. . For example, in some embodiments, the network environment 100 may be associated with a particular entity or organization. In such an embodiment, at least a portion of the consumer system 104 may represent a user or customer computing system that can communicate with the network environment 100, which manages the remaining systems associated with the network environment 100. It may be under the control of a single or independent entity rather than under.

一般に、各制作者システム106は、サービス及び/またはコンピュータリソースを消費者システム104に提供することができる。ある場合には、各制作者システム106が、同じサービス及び/またはリソースを消費者システム104にそれぞれ提供できるようにしてもよい。他の場合には、制作者システム106の少なくとも一部が、他の制作者システム106とは異なるサービス及び/またはリソースを提供できるようにしてもよい。制作者システム106によって提供されるこれらのサービス及び/またはリソースは、任意の種類のサービス及び/またはコンピューティングリソースを含むことができる。例えば、これらのサービス及び/またはコンピュータリソースとしては、データストレージアクセス;外部ネットワークアクセス(例えば、インターネットへのアクセス);内部リソースアクセス(例えば、ネットワーク環境100と同じエンティティによって管理されているデータベースへのアクセス);カタログサービスへのアクセス;ディレクトリサービスへのアクセス;アプリケーションへのアクセス;(例えば、コマンドまたは要求の分散処理を行うための)処理サービスへのアクセス;ルーティングサービス(例えば、ネットワークルーティングサービス)などを挙げることができる。説明を簡単にするために、本開示のこれ以降では、本明細書において通常の意味を有する用語「サービス」に加えて、サービス、コンピュータリソース、または制作者システム106によってもしくはこれを経由して提供され得るその他のリソースを指すために用語「サービス」を用いるものとする。   In general, each producer system 106 can provide services and / or computer resources to the consumer system 104. In some cases, each producer system 106 may be able to provide the same services and / or resources to the consumer system 104, respectively. In other cases, at least a portion of the publisher system 106 may be able to provide different services and / or resources than other publisher systems 106. These services and / or resources provided by the publisher system 106 may include any type of service and / or computing resource. For example, these services and / or 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). ); Access to catalog services; access to directory services; access to applications; access to processing services (eg, for distributed processing of commands or requests); routing services (eg, network routing services), etc. Can be mentioned. For the sake of simplicity, the remainder of this disclosure will be provided by or via a service, computer resource, or producer system 106 in addition to the term “service” having its normal meaning herein. The term “service” shall be used to refer to other resources that may be made.

制作者システム106は、任意の種類のコンピューティングシステムを含むことができる。例えば、制作者システム106としては、クライアントシステム、サーバ(例えば、アプリケーションサーバ、ウェブサーバなど)、ラップトップ機、デスクトップ機、データベースシステム、バックアップシステム、ディレクトリシステム、重複排除システム、ストレージシステムなどを挙げることができる。同様に、消費者システム104は、任意の種類のコンピューティングシステムを含むことができる。例えば、消費者システム104としては、クライアントシステム、サーバ、ラップトップ機、デスクトップ機、タブレット、携帯電話、ゲーム機器、テレビなどを挙げることができる。いくつかの実施形態では、消費者システム104が制作者システムとして機能することもでき、逆に、制作者システムが消費者システム104として機能することもできる。例えば、ある消費者システム104は、制作者システム106(例えば、データベースシステムまたはストレージシステムとして機能する制作者システム)にアクセスしてデータを取得し得る。同じ消費者システム104は、例えば、別の消費者システム104にアプリケーションアクセスを提供することにより、制作者システムとしても機能し得る。ある場合には、消費者システム104及び制作者システム106を、それぞれクライアントシステム及びサーバシステムとみなすことができる。しかしながら、前述のように、消費者システム104及び制作者システム106はそのように限定されることはない。   The producer system 106 can include any type of computing system. For example, the creator system 106 includes a client system, a server (eg, an application server, a web server, etc.), a laptop machine, a desktop machine, a database system, a backup system, a directory system, a deduplication system, a storage system, and the like. Can do. Similarly, consumer system 104 can include any type of computing system. For example, the consumer system 104 can include a client system, a server, a laptop machine, a desktop machine, a tablet, a mobile phone, a game machine, a television, and the like. In some embodiments, the consumer system 104 can function as a producer system, and conversely, the producer system can function as the consumer system 104. For example, a consumer system 104 may access a producer system 106 (eg, a producer system that functions as a database system or a storage system) to obtain data. The same consumer system 104 can also function as a producer system, for example, by providing application access to another consumer system 104. In some cases, consumer system 104 and producer system 106 can be considered a client system and a server system, respectively. However, as described above, the consumer system 104 and the producer system 106 are not so limited.

制作者システム106によって提供されるサービスへのアクセスを消費者システム104が所望または要求する度に、消費者システム104は、1つ以上のリースエージェント102A〜102D(本明細書においてこれらは、単数形で「リースエージェント102(a leasing agent 102)」、または複数形で「リースエージェント102(the leasing agents 102)」と呼ばれることがある)にアクセスして、そのサービスを提供可能な制作者システム106へのアクセスを要求することができる。一般に、消費者システム104は、リースエージェント102のあるサブセットにアクセスすることにより、アクセス対象の制作者システム106の識別情報を取得してサービス要求を実行する。リースエージェント102のサブセットは、使用可能なリースエージェント102からランダムに選択することができ、使用可能なリースエージェント102のいくつかを含むことができる。例えば、制作者システム106へのアクセスを求める要求は、図1Aに示した使用可能な4つのリースエージェントのうちの3つに提供されてもよい。しかしながら、ある場合には、消費者システム104を特定のリースエージェント102に割り当ててもよい。さらに、ある場合には、消費者システム104は、制作者システム106へのアクセスを求める要求を、ネットワーク環境100内の1つのリースエージェント102または既存の各リースエージェント102に提供してもよい。   Each time consumer system 104 desires or requests access to services provided by producer system 106, consumer system 104 may include one or more lease agents 102A-102D (herein these are singular). To the creator system 106 that can access the “lease agent 102” or the plural “the lease agents 102” and provide the service. You can request access. In general, the consumer system 104 accesses a subset of the lease agent 102 to obtain identification information of the creator system 106 to be accessed and execute a service request. The subset of lease agents 102 can be randomly selected from the available lease agents 102 and can include some of the available lease agents 102. For example, requests for access to the producer system 106 may be provided to three of the four available lease agents shown 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 for access to producer system 106 to one lease agent 102 in network environment 100 or to each existing lease agent 102.

リースエージェント102、消費者システム104及び制作者システム106の間の通信の一実施例を図1Aに示す。図1Aから理解できるように、消費者システム104のそれぞれは、使用可能な4つのリースエージェント102のうちの3つと通信を行っている。破線矢印によって示すように、この通信には、例えば、制作者システム106によって提供されるサービスへのアクセスを求める要求及び/または制作者システム106へのアクセスを求める要求に関する制御情報などの制御情報が含まれていてもよい。さらに、制作者システム106のサブセットに消費者システム104を接続する実線矢印によって示すように、この通信には、消費者104によるサービス要求に対してサービスを提供する制作者システム106に関するデータが含まれていてもよい。加えて、リースエージェント102は、それら自体の間で通信することにより、例えば、リースエージェント102及び/または制作者システム106に関するステータス情報を提供してもよい。なお、図1Aのネットワーク環境100において例示された様々なシステム間の相互通信は、消費者システム104、制作者システム106及びリースエージェント102の間の通信の一実施例にすぎず、限定を意図するものではないことに留意すべきである。ネットワーク環境100の様々なシステム間の通信については、図3〜10に関して本明細書で説明されるプロセスとの関連でさらに詳しく説明する。   An example of communication between the lease agent 102, consumer system 104, and producer system 106 is shown in FIG. 1A. As can be seen from FIG. 1A, each consumer system 104 is in communication with three of the four available lease agents 102. As indicated by the dashed arrows, this communication includes control information such as, for example, a request for access to a service provided by the producer system 106 and / or control information relating to a request for access to the producer system 106. It may be included. Further, as indicated by the solid arrows connecting the consumer system 104 to a subset of the producer system 106, this communication includes data regarding the producer system 106 that provides services in response to a service request by the consumer 104. It may be. In addition, the lease agents 102 may provide status information regarding the lease agent 102 and / or the producer system 106, for example, by communicating between themselves. Note that the intercommunication between the various systems illustrated in 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 intended to be limiting. It should be noted that it is not a thing. Communication between various systems in the network environment 100 is described in further detail in connection with the processes described herein with respect to FIGS.

制作者システム106によってホストされたサービスへのアクセスを消費者システム104に提供すると共に、制作者システムの健全性情報を1つ以上のリースエージェント102に提供するネットワーク環境100の実施形態を図1Bに示す。図1Bに示すように、ある場合には、制作者システム106から消費者システム104へと、消費者システム104から制作者システム106へとの双方においてデータを提供することができる。つまり、ある場合には、データ通信を双方向とすることができる。   An embodiment of a network environment 100 that provides access to services hosted by the producer system 106 to the consumer system 104 and provides producer system health information to one or more lease agents 102 is shown in FIG. 1B. Show. As shown in FIG. 1B, in some cases, data can be provided both from the producer system 106 to the consumer system 104 and from the consumer system 104 to the producer system 106. That is, in some cases, data communication can be bidirectional.

さらに、制作者システム106は、健全性情報をリースエージェント102に提供することができ、それによってリースエージェント102は、どの制作者システム106が機能しているか、及び消費者システム104に割り当てるのに使用可能なリソースをどの制作者システム106が備えているかを追跡することができる。ある場合には、制作者システム106は、指定された時刻に健全性情報を提供してもよい。他の場合には、健全性情報を求めてリースエージェント102が制作者システム106に要求し、またはpingすることができる。多くの場合、制作者システム106A〜106Cによって示されるように、各制作者システム106は、1つのリースエージェント102に割り当てられる。しかしながら、いくつかの実施形態では、制作者システム106Dの場合と同様に、制作者システム106を複数のリースエージェント102に割り当ててもよい。   Further, the producer system 106 can provide health information to the lease agent 102 so that the lease agent 102 can be used to assign which producer system 106 is functional and to the consumer system 104. It is possible to keep track of which producer system 106 is equipped with possible resources. In some cases, the producer system 106 may provide health information at a specified time. In other cases, the lease agent 102 can request or ping the producer system 106 for health information. In many cases, each producer system 106 is assigned to one lease agent 102, as shown by the 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には、種々のデータチャネル及び制御チャネルを示しているが、ネットワーク環境100は、図1A及び1Bに示したデータチャネル及び制御チャネルのうちの一部または全てを実装することができる。従って、図1Bには消費者システム104とリースエージェント102との間のチャネルを示していないが、通常、消費者システム104とリースエージェント102との間には、図1Aに示したような制御チャネルが存在する。さらに、これらのチャネルの一部または全てを単方向とし、単方向では、一方のシステムがデータまたは制御情報を要求し、他方のシステムがデータまたは制御情報を提供し得る。あるいは、または加えて、これらのチャネルの一部または全てを双方向としてもよく、双方向では、通信中の2つのシステムがデータまたは制御情報の要求と提供の両方を行い得る。   1A and 1B illustrate various data and control channels, network environment 100 may implement some or all of the data and control channels shown in FIGS. 1A and 1B. . Thus, FIG. 1B does not show the channel between the consumer system 104 and the lease agent 102, but typically there is a control channel as shown in FIG. 1A between the consumer system 104 and the lease agent 102. Exists. In addition, some or all of these channels may be unidirectional, where one system may request data or control information and the other system may provide data or control information. Alternatively or in addition, some or all of these channels may be bidirectional, in which two communicating systems may both request and provide data or control information.

図2は、制作者システム106によってホストされたサービスへのアクセスを消費者システム104に提供するネットワーク環境100の実施形態の代替図である。図2に示すように、ネットワーク環境100の各システムは、ネットワーク202を介して相互に通信することができる。ネットワーク202は、任意の種類の有線ネットワークまたは無線ネットワーク及びそれらの組み合わせを含むことができる。例えば、ネットワーク202としては、ローカルエリアネットワーク(Local Area Network:LAN)、ワイドエリアネットワーク(Wide Area Network:WAN)、セルラーネットワーク、イーサネット(登録商標)ベースのネットワーク、WiFi(登録商標)ネットワーク、WiLAN(登録商標)ネットワークなどを挙げることができる。さらに、ある場合には、ネットワーク202はインターネットを含むことができる。   FIG. 2 is an alternative diagram 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 shown in FIG. 2, the systems in the network environment 100 can communicate with each other via a network 202. The network 202 can include any type of wired or wireless network and combinations thereof. For example, as the network 202, a local area network (Local Area Network: LAN), a wide area network (Wide Area Network: WAN), a cellular network, an Ethernet (registered trademark) -based network, a WiFi (registered trademark) network, a WiLAN ( Registered network). 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 shown in FIG. 2, each system described in FIG. 1A may include multiple subsystems. These subsystems can be implemented by hardware or software. For example, the consumer system 104 may include a lease requester 240, a 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 publisher 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 regardless of whether it explicitly requests access to the producer system 106.

1つ以上の制作者システム106の識別情報をリースリクエスタ240が一旦取得すると、接続モジュール244は、リースエージェント102によって特定された制作者システム106の一部または全てとの通信の確立を試みることができる。制作者システム106との接続が確立された後、リソースリクエスタ246は、消費者システム104が接続を正常に確立した制作者システム106にリソースまたはサービスを要求することができる。   Once the lease requester 240 obtains identification information for one or more publisher systems 106, the connection module 244 may attempt to establish communication with some or all of the publisher systems 106 identified by the lease agent 102. it can. After the connection with the producer system 106 is established, the resource requester 246 can request a resource or service from the producer system 106 with which the consumer system 104 has successfully established a connection.

ステータスモジュール242は、制作者システム106に関するステータス情報を取得することができる。次いで、この情報をリースエージェント102に提供することにより、リースエージェント102が、制作者システム106へのアクセスを求める消費者システム104からの要求に応答して、制作者システム106を容易に選択できるようにする。この情報は、リースエージェント102の対応するステータスモジュール228に提供され得る。ある場合には、ステータスモジュール242は、制作者システム106との接続の確立の成功または不成功に基づいてステータス情報を取得する。他の場合には、ステータス情報は、制作者システム106及び/または、制作者システム106の一部として含まれる、対応するステータスモジュール262にクエリを送ることによって取得される。このステータス情報は、制作者システム106との接続、及び/または制作者システム106によるサービスの提供に関する任意の情報を含んでもよい。例えば、ステータス情報は、消費者システム104と制作者システム106との間の通信の確立の成功または不成功に関する情報を含んでもよい。別の実施例として、ステータス情報は、所定期間中に制作者システム106にアクセスする消費者システム104の数を含んでもよい。さらなる実施例は、制作者システム106の応答性、制作者システム106の容量、制作者システムで使用可能なリソースなどに関する情報を含んでもよい。   The status module 242 can obtain status information regarding the producer system 106. This information is then provided to the lease agent 102 so that the lease agent 102 can easily select the producer system 106 in response to a request from the consumer system 104 seeking access to the producer system 106. To. This information may be provided to the corresponding status module 228 of the lease agent 102. In some cases, the status module 242 obtains status information based on the success or failure of establishing a connection with the producer system 106. In other cases, status information is obtained by sending a query to the producer system 106 and / or a corresponding status module 262 that is included as part of the publisher system 106. This status information may include any information related to the connection with the producer system 106 and / or the provision of services by the producer system 106. For example, the status information may include information regarding the success or failure of establishing communication between the consumer system 104 and the producer system 106. As another example, the status information may include the number of consumer systems 104 that access the producer system 106 during a predetermined period of time. Further examples may include information regarding the responsiveness of the publisher system 106, the capacity of the publisher system 106, the resources available in the publisher system, and the like.

図2に示すように、制作者システム106は、登録モジュール260及びステータスモジュール262を含んでもよい。前述したように、ステータスモジュール262は、制作者システム106に関するステータス情報を、制作者システム106に関するステータス情報を要求する消費者システム104に提供し得る。さらに、ある場合には、ステータスモジュール262は、自発的にまたはリースエージェント102からの要求に応答して、リースエージェント102にステータス情報を提供してもよい。   As shown in FIG. 2, the author system 106 may include a registration module 260 and a status module 262. As described above, the status module 262 may provide status information about the producer system 106 to the consumer system 104 that requests status information about the producer system 106. Further, in some cases, status module 262 may provide status information to lease agent 102 either voluntarily or in response to a request from lease agent 102.

登録モジュール260は、制作者システム106をリースエージェント102に登録するように構成されている。ある実施形態では、登録モジュール260は、制作者システム106が最初に起動したときに初期化ルーチンの一部として制作者システム106を自動的に登録してもよい。他の実施形態では、登録モジュール260は、ユーザまたはアプリケーションからのコマンドに応答して制作者システム106を登録してもよい。ある場合には、登録モジュール260は、制作者システム106に割り当てられたリースエージェントがもはや使用できないと制作者システム106が判定したときに制作者システム106を再登録してもよい。   The registration module 260 is configured to register the producer system 106 with the lease agent 102. In some embodiments, the registration module 260 may automatically register the producer system 106 as part of an initialization routine when the publisher 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, the registration module 260 may re-register the producer system 106 when the producer system 106 determines that the lease agent assigned to the producer system 106 is no longer available.

前述したように、リースエージェント102は、ステータスモジュール228を含んでもよい。ステータスモジュール228は、消費者システム104と制作者システム106の一方または両方から、制作者システム106のステータスに関してステータス情報を受信することができる。加えて、ステータスモジュール228は、制作者システム106に関連するステータス情報を別のリースエージェント102に提供してもよい。さらに、ある場合には、ステータスモジュール228は、ステータス情報を他のリースエージェント102に要求することによって他のリースエージェント102の健全性チェックを実行してもよい。例えば、ステータスモジュール228は、健全性チェックを求める要求がリースエージェント102によって応答されたかどうかに基づき、リースエージェント102がもはや使用できないかどうかを判定してもよい。ある場合には、ステータスモジュール228は、ステータス情報を制作者システム106に要求することによって制作者システム106の健全性チェックを実行してもよい。   As previously described, the lease agent 102 may include a status module 228. The status module 228 can receive status information regarding the status of the producer system 106 from one or both of the consumer system 104 and the producer system 106. In addition, the status module 228 may provide status information associated with the producer system 106 to another lease agent 102. Further, in some cases, status module 228 may perform a health check of other lease agents 102 by requesting 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 request for a sanity check has been answered by lease agent 102. In some cases, the status module 228 may perform a sanity check of the producer system 106 by requesting status information from the producer system 106.

ステータスモジュール228に加えて、リースエージェント102は、制作者リポジトリ220、分配システム222、リースシステム224及び登録モジュール226を含むことができる。制作者リポジトリ220は、制作者システム106に関する情報を記憶するための任意の種類のデータベース、リポジトリまたはストレージを含むことができる。例えば、制作者リポジトリ220は、制作者システム106に関連するステータス情報、制作者システム106の識別情報、及びリースエージェント102間での制作者システム106の割り当てまたは分配に関する情報を含むことができる。いくつかの実施形態では、制作者リポジトリ220に記憶された情報の一部または全ては、制作者リポジトリ220の代わりにまたはそれに加えて、エージェントリポジトリ206に記憶されてもよい。   In addition to the status module 228, the lease agent 102 can include a producer repository 220, a distribution system 222, a lease system 224 and a registration module 226. The publisher repository 220 can include any type of database, repository, or storage for storing information about the publisher system 106. For example, the publisher repository 220 may include status information associated with the publisher system 106, producer system 106 identification information, and information regarding the assignment or distribution of the publisher system 106 among the lease agents 102. In some embodiments, some or all of the information stored in the publisher repository 220 may be stored in the agent repository 206 instead of or in addition to the publisher repository 220.

分配システム222は、使用可能な制作者システム106をネットワーク環境100のリースエージェント102間に分配可能な任意のシステムを含むことができる。一般に、分配システム222は、使用可能な制作者システム106を重複しないサブセットまたは不均等なサブセットに分割し、次いで、1つのサブセットを各リースエージェント102に割り当てる。従って、4つのリースエージェント102がある場合、制作者システム106を4つのサブセットに分割し、1つのサブセットを各リースエージェント102に関連付けるようにしてもよい。しかしながら、ある場合には、これらのサブセットが重複する場合がある。このような場合、制作者システム106を複数のリースエージェント102に割り当て、または関連付けるようにしてもよい。リースエージェント102間に制作者システム106を分配するプロセスは、ネットワーク環境100が最初に初期化されたときに発生し得る。加えて、このプロセスは、周期的に再発生し得る。例えば、制作者システム106を分配するプロセスは、使用可能な制作者システム106の追加によるかそれとも削除によるかを問わず、使用可能な制作者システム106の数が変わる度に、または使用可能な制作者システム106の閾変化があったときに発生し得る。   Distribution system 222 may include any system that can distribute available producer system 106 among leasing agents 102 in network environment 100. In general, distribution system 222 divides available author system 106 into non-overlapping or non-overlapping subsets, and then assigns one subset to each lease agent 102. Thus, if there are four lease agents 102, the producer system 106 may be divided into four subsets and one subset associated with each lease agent 102. However, in some cases, these subsets may overlap. In such a case, the producer system 106 may be assigned to or associated with a plurality of lease agents 102. The process of distributing the producer system 106 among the lease agents 102 may occur when the network environment 100 is first initialized. In addition, this process can reoccur periodically. For example, the process of distributing the publisher system 106 may be performed each time the number of available publisher systems 106 changes, or the productions that can be used, whether by adding or removing available publisher systems 106. This can occur when there is a threshold change of the person system 106.

制作者システム106へのアクセスを消費者システム104がリースエージェント102に要求する度に、リースシステム224は、例えば、制作者システム106に関連するステータス情報、制作者システム106の位置(例えば、地理的位置、データセンター、サーバラックなど)、及び消費者システム104がアクセスを求めているリソースへのアクセスを制作者システム106が有するかどうかなどのいくつかの要因に基づき、制作者システム106を特定して消費者システム104にリースすることができる。一旦リースシステム224が制作者システムを特定すると、リースシステム224は、要求を行っている消費者システム104に制作者システム106の識別情報を提供することができる。さらに、ある場合には、リースシステム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, status information associated with the producer system 106, the location of the producer system 106 (eg, geographical location). Location), data center, server rack, etc.) and identifying the producer system 106 based on several factors such as whether the producer system 106 has access to the resources that the consumer system 104 is seeking access to. Can be leased to the consumer system 104. Once the lease system 224 identifies the producer system, the lease system 224 can provide the producer system 106 identification information to the requesting consumer system 104. Further, in some cases, the lease system 224 may provide the consumer system 104 with a lease time that the consumer system 104 is authorized to access the producer system 106. Alternatively or in addition, the leasing system 224 may provide the consumer system 104 with other amounts or metrics of consumable resources. For example, consumable resources can be calculation cycles, money, disk storage capacity, connection requests, and the like.

登録モジュール226は、制作者システム106の登録モジュール260に対応するものとして機能してもよい。リースエージェント102に登録することを求める要求を制作者システム106から受信すると、リースエージェント102の登録モジュール260は、制作者システム106がリースエージェント102に割り当てられているかどうかを判定し得る。割り当てられている場合、登録モジュール226は、制作者システム106を登録することができ、これは、制作者システム106の可用性ステータスならびに制作者システム106に関連するステータス情報を、例えば、制作者リポジトリ220に記憶することを含み得る。他方、制作者システム106がリースエージェント102に割り当てられていないと登録モジュール226が判定した場合、登録モジュール226は、制作者システム106に割り当てられている別のリースエージェント102を特定することができ、制作者システム106に割り当てられているリースエージェント102の識別情報を制作者システム106に通知することができる。   The registration module 226 may function as corresponding to the registration module 260 of the 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 publisher system 106, which provides the availability status of the publisher system 106 as well as status information associated with the publisher system 106, eg, the publisher repository 220. Remembering. On the other hand, if the registration module 226 determines that the producer system 106 is not assigned to the lease agent 102, the registration module 226 can identify another lease agent 102 assigned to the producer system 106; The identification information of the lease agent 102 assigned to the producer system 106 can be notified 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を使用することにより、リースエージェント102によって制作者システム106が特定されて消費者システム104によるアクセスが可能となった後に、制作者システム106がどこに位置しているかを判定してもよい。エージェントリポジトリ206の使用における別の実施例として、ある場合には、例えば、制作者システム106が最初に起動した時に制作者システム106がエージェントリポジトリにアクセスして、アクセス対象のリースエージェント102の識別情報を判定してもよい。   In certain embodiments, the network environment 100 may include an agent repository 206 and / or a distribution system 204. Agent repository 206 may include information regarding lease agent 102 and / or producer system 106 included in 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 author system 106 in the network environment 100. Using this information, the lease agent 102 can determine how the producer system 106 is to be distributed. In some cases, the consumer system 104 uses the agent repository 206 so that after the producer system 106 is identified by the lease agent 102 and accessible by the consumer system 104, the producer system 106 You may determine where it is located. As another example of using the agent repository 206, in some cases, for example, when the producer system 106 is first started, the producer system 106 accesses the agent repository to identify the lease agent 102 to be accessed. May be determined.

いくつかの実施形態では、リースエージェント102間に制作者システム106を分配するプロセスを分配システム204が実行してもよい。このような実施形態では、リースエージェント102自体には分配システム222が含まれなくてもよい。   In some embodiments, the distribution system 204 may perform the process of distributing the producer system 106 between the lease agents 102. In such an embodiment, the lease agent 102 itself may not include the distribution system 222.

いくつかの実施形態では、例示した図2のシステムに含まれるモジュールの少なくとも一部を、これらのシステムによって提供されるアプリケーション及び/またはリソースに統合してもよい。例えば、制作者システム106のステータスモジュール262を、制作者システム106によって提供されるアプリケーション及び/またはリソースに統合してもよい。同様に、消費者システム104によってホストされるアプリケーションまたはサービスにステータスモジュール242を統合してもよい。   In some embodiments, at least some of the modules included in the illustrated system of FIG. 2 may be integrated into applications and / or resources provided by these systems. For example, the status module 262 of the publisher system 106 may be integrated into the applications and / or resources provided by the publisher system 106. Similarly, status module 242 may be integrated into an application or service hosted by consumer system 104.

制作者システムのサービスにアクセスするプロセスの実施例
制作者システム106のサービスにアクセスするプロセス300の実施形態を図3に示す。プロセス300は、制作者システム106にアクセスするためのリースまたは一時的許可をリースエージェント102から得ることによって制作者システム106のサービスまたはコンピュータリソースにアクセス可能な任意のシステムによって実装することができる。例えば、プロセス300は、全部または一部において、いくつか例を挙げると、消費者システム104、リースリクエスタ240、接続モジュール244、リソースリクエスタ246及びステータスモジュール242によって実装することができる。全部または一部において、任意の数のシステムを用いてプロセス300を実装することができるが、説明を簡単にするため、特定のシステムを参照してプロセス300の各部を説明する。
Example Process for Accessing Publisher System Services An embodiment of a process 300 for accessing the services of the publisher system 106 is shown in FIG. Process 300 may be implemented by any system that can access the services or computer resources of producer system 106 by obtaining a lease or temporary permission from lease agent 102 to access producer system 106. For example, the process 300 may be implemented in whole or in part by the consumer system 104, the lease requester 240, the connection module 244, the resource requester 246, and the status module 242 to name a few examples. Although any number of systems may be used to implement process 300, in whole or in part, for ease of explanation, 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. Here, for example, the lease requester 240 generates a lease request for access to the creator system 106. In some cases, the lease request may include identification information of a computer resource or service that a user of consumer system 104 or an application on consumer system 104 desires access. In other cases, the lease request comprises a request for access to the producer system 106 without specifying the services of the producer system 106 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にリース要求を提供することは、消費者システム104が以前に対話していた1つ以上の制作者システム106に関連するステータス情報をリースエージェント102に提供することを含むことができる。   At block 304, the lease requester 240 provides a lease request to a subset of the lease agents 102 included in the network environment 100. In some cases, lease requester 240 may provide the 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 be set using the identification information of the lease agent 102 at initialization or startup, or at other times during operation of the consumer system 104, respectively. For example, a user (eg, an administrator) may provide the consumer system 104 with identification information for the lease agent 102. The identification information of the lease agent 102 identifies 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. Other information that may be used for the purpose may be included. In some embodiments, providing the lease request to the lease agent 102 provides the lease agent 102 with status information related to one or more producer systems 106 with which the consumer system 104 has previously interacted. Can be included.

ブロック306では、消費者システム104は、制作者システム106の識別情報を、ブロック304にてリース要求が提供されたリースエージェント102の各サブセットから受信する。ある場合には、消費者システム104は、制作者システム106の識別情報を、リースエージェント102のサブセットの一部から受信する。例えば、消費者システム104は、リースエージェント102の1つのサブセット、2つのサブセットまたは全サブセットから制作者システム106の識別情報を受信してもよい。消費者システム104がどの制作者システム106の識別情報も受信しなかった場合、プロセス300を終了させてもよく、ブロック302及び/または304に関連する動作を繰り返してもよく、かつ/またはユーザ(例えば、管理者)に警告を発してもよい。ある場合には、制作者システム106の識別情報を受信することは、消費者システム104が制作者システム106にアクセスすること、または制作者システム106へのアクセスをリースすることを許可されている時間を受信することを含む。リースエージェント102のサブセットに含まれる各リースエージェント102は、1つの制作者システム106の識別情報を提供することができる。しかしながら、ある場合には、リースエージェントのサブセットに含まれる各リースエージェント102は、複数の制作者システム106の識別情報を提供してもよい。リースエージェント102の識別情報と同様に、制作者システム106の識別情報は、消費者システム104に応じた制作者システム106を特定する、または制作者システム106へのアクセス方法を提供する任意の情報を含むことができる。例えば、制作者システム106の識別情報としては、名前、アドレス(例えば、IPアドレス)、または、例えばエージェントリポジトリ206に記憶されているテーブルもしくはデータ構造内で制作者システム106を検索するために使用可能な識別子を挙げることができる。   At block 306, the consumer system 104 receives the identification information of the producer system 106 from each subset of the lease agent 102 to which the lease request was provided at block 304. In some cases, the consumer system 104 receives identification information for the producer system 106 from a portion of the subset of lease agents 102. For example, consumer system 104 may receive producer system 106 identification information from one subset, two subsets, or all subsets of lease agent 102. If the consumer system 104 has not received any producer system 106 identification information, the process 300 may be terminated, the actions associated with blocks 302 and / or 304 may be repeated, and / or the user ( For example, a warning may be issued to the administrator. In some cases, receiving the identification information of the producer system 106 is the time that the consumer system 104 is allowed to access the producer system 106 or lease access to the producer system 106. Receiving. Each lease agent 102 included in the subset of lease agents 102 can provide identification information for one producer system 106. However, in some cases, each lease agent 102 included in a subset of lease agents may provide identification information for multiple producer systems 106. Similar to the identification information of the lease agent 102, the identification information of the producer system 106 is any information that identifies the producer system 106 according to the consumer system 104 or provides a method for accessing the producer system 106. Can be included. For example, the identification information of the producer system 106 can be used to search the producer system 106 within a name, address (eg, IP address), or a table or data structure stored in the agent repository 206, for example. Specific identifiers.

ある場合には、ブロック306は、リースエージェント102の各サブセットによって特定された制作者システム106のステータス情報を受信することを含んでもよい。このステータス情報を使用して、どの制作者システム106にアクセスすべきかを消費者システム104が決定するのに役立ててもよい。ある場合には、ステータス情報は、リースエージェント102が制作者システム106と通信することによって取得されてもよい。あるいは、または加えて、ステータス情報は、以前に制作者システム106と通信した消費者システム104から取得されてもよい。受信したステータス情報には、リースエージェント102に使用可能な独立した一組のステータス情報、またはリースエージェント102に使用可能なステータス情報の一部が含まれてもよい。ある場合には、受信したステータス情報は、リースエージェント102に使用可能なステータス情報と重複していても重複していなくてもよい。   In some cases, block 306 may include receiving producer system 106 status information identified by each subset of lease agents 102. This status information may be used to help the consumer system 104 determine which producer system 106 to access. In some cases, status information may be obtained by the lease agent 102 communicating with the producer system 106. Alternatively or in addition, status information may be obtained from a consumer system 104 that has previously communicated with the producer system 106. The received status information may include an independent set of status information available to the lease agent 102 or a portion of status information available to the lease agent 102. In some cases, the received status information may or may not overlap with status information available to the lease agent 102.

接続モジュール244は、ブロック308にて、ブロック306で特定された各制作者システム106との接続の開始を試みる。ある場合には、接続モジュール244は、ブロック306で特定された制作者システム106のサブセットとの接続の開始を試みてもよい。接続の開始を試みることは、制作者システム106との通信チャネルを開くことを試みる任意のプロセスを含むことができる。例えば、接続の開始を試みることとしては、接続要求パケットを制作者システム106に送信することを挙げることができる。一般に、接続モジュール244は、制作者システム106の識別情報を消費者システム104が受信した時に制作者システム106との接続の確立を試みてもよい。例えば、各リースエージェント102は、消費者システム104から異なる距離に配置され得るか、あるいは異なる負荷を有し得るため、複数のリースエージェント102から消費者システム104が同時に応答を受信することはほとんどあり得ない。そのため、接続モジュール244が、複数の制作者システム106との接続の開始を同時に試みることはほとんどあり得ない。むしろ、制作者システム106との接続を開始する試みは、それらのずれがわずかな程度に収まっている場合でも、時間をずらして行われる場合がある。しかしながら、いくつかの実施形態では、接続モジュール244が、複数の制作者システム106との接続の開始を同時に試みる場合がある。例えば、ある場合には、消費者モジュール104は、リースエージェント102の各サブセットが応答するまで待機してもよく、またはある状況では、複数のリースエージェント102から同時に応答を受信してもよい。   The connection module 244 attempts to initiate a connection with each producer system 106 identified at block 306 at block 308. In some cases, connection module 244 may attempt to initiate a connection with a subset of author 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 start 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 identification information of the producer system 106. For example, each lease agent 102 may be located at a different distance from the consumer system 104, or may have a different load, so that the consumer system 104 rarely receives responses from multiple lease agents 102 at the same time. I don't get it. Therefore, the connection module 244 can hardly attempt to start connection with a plurality of producer systems 106 at the same time. Rather, attempts to initiate a connection with the producer system 106 may be made at different times, even if the deviations are only marginal. However, in some embodiments, the connection module 244 may attempt to initiate connections with multiple publisher systems 106 simultaneously. For example, in some cases, the consumer module 104 may wait until each subset of lease agents 102 responds, or in some circumstances may receive responses from multiple lease agents 102 simultaneously.

ブロック310では、リソースリクエスタ246は、接続モジュール244が接続を正常に確立した最初の制作者システム106に対し、サービスまたはコンピュータリソースにアクセスするまたはサービスまたはコンピュータリソースへのアクセスを要求する。ある場合には、制作者システム106との接続を正常に確立することは、確認応答(acknowledge:「ack」)パケットなどを制作者システム106から受信することを含むことができる。ブロック308に関して上述したのと同様の理由により、各制作者システム106との接続は、時間をずらして確立される場合がある。しかしながら、接続モジュール244が、同時にまたはほぼ同時に、2つ以上の制作者システム106との接続を実際に正常に確立した場合、リソースリクエスタ246は、サービスへのアクセスを要求するための制作者システム106をランダムに選択することができる。あるいは、リソースリクエスタ246は、選択アルゴリズムを使用して、どの制作者システム106にサービスを要求すべきかを決定することができる。選択アルゴリズムとしては、例えば、ラウンドロビン、最低使用頻度(LRU)またはその他の種類の選択アルゴリズムを挙げることができるが、これらに限定されることはない。いくつかの実施形態では、消費者システム104は、通信接続または通信チャネルが確立されている制作者システム106の一部または全てにサービスへのアクセスを要求してもよい。ある場合には、サービスは同じ種類であってもよい。他の場合には、消費者システム104は、異なるサービスへのアクセスを各制作者システム106に要求してもよい。   In block 310, the resource requester 246 requests or requests access to the service or computer resource from the first author system 106 for which the connection module 244 has successfully established a connection. In some cases, successfully establishing a connection with the producer system 106 can include receiving an acknowledgment (“ack”) packet or the like from the producer system 106. For reasons similar to those described above with respect to block 308, connections with each producer system 106 may be established at different times. However, if the connection module 244 actually or successfully establishes a connection with more than one publisher system 106 at the same time, the resource requester 246 may request the publisher system 106 to request access to the service. Can be selected at random. Alternatively, the resource requester 246 can use a selection algorithm to determine which publisher system 106 should request the service. Selection algorithms can include, but are not limited to, round robin, least frequently used (LRU), or other types of selection algorithms, for example. In some embodiments, the consumer system 104 may request access to the service from some or all of the producer systems 106 with which a communication connection or channel has been established. In some cases, the services may be of the same type. In other cases, the consumer system 104 may require each producer system 106 to access different services.

さらに、特定時点での消費者システム104の要求よりも多くの制作者システムとの接続が正常に確立された場合、消費者システム104は、1つ以上の別の制作者システム106に対するリースを放棄してもよい。あるいは、消費者システム104は、別の制作者システム106のリースをリースプール内に保持してもよく、別の制作者システム106に対する接続を維持してもよい。このような場合、別の制作者システム106のリース期間中のある時に、消費者システム104が別のサービスへのアクセスを要求した場合、消費者システム104は、リースプール内にリースが保持されていた別の制作者システム106のうちの1つの制作者システム106のサービスを利用することができる。   Further, if more connections with more producer systems are established than requested by the consumer system 104 at a particular point in time, the consumer system 104 abandons the lease for one or more other producer systems 106. May be. Alternatively, the consumer system 104 may keep a lease for another producer system 106 in the lease pool and maintain a connection to another producer system 106. In such a case, if the consumer system 104 requests access to another service at some time during the lease period of another producer system 106, the consumer system 104 holds the lease in the lease pool. The service of one producer system 106 among other producer systems 106 can be used.

ブロック312では、ステータスモジュール242は、最初に接続された制作者システム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 initially connected author system 106. In some cases, the status module 242 may receive status metadata from each producer system 106 for which the connection module 244 has successfully established a communication channel. Further, the status module 242 may obtain status metadata from the producer system 106 for which the connection module 244 has failed to establish a communication channel. For example, the fact that the connection module 244 failed to establish a communication channel with a particular publisher system 106 may be included as status metadata associated with that publisher system 106. The status metadata is not limited and can be used by the creator system 106, information regarding establishment of a connection with the creator system 106, information regarding maintaining a connection with the creator system 106, information regarding the responsiveness of the creator system 106, and the like. Information about various services can be included. For example, the status metadata includes the time when the connection with the creator system 106 has elapsed, the latency when connecting with the creator system 106, the processing resources available in the creator system 106 (for example, due to packet loss) There may be the number of times a request needs to be retransmitted to the publisher system 106 and other types of data that can be associated with the status of the publisher system 106.

いくつかの実施形態では、ブロック310の前にブロック312を実行してもよい。このような場合、ステータスモジュール242は、接続済みの各制作者システム106からステータス情報を受信してもよい。このような場合、消費者システム104は、受信したステータス情報に基づき、制作者システム106を選択してサービスにアクセスすることができる。   In some embodiments, block 312 may be performed before block 310. In such a case, the status module 242 may receive status information from each connected producer system 106. In such a case, the consumer system 104 can access the service by selecting the producer system 106 based on the received status information.

判定ブロック314では、消費者システム104は、例えば、リソースリクエスタ246を用いて、別のサービスへのアクセスが望まれているかどうかを判定する。このような他のサービスは、異なるサービスであってもよく、または同じ種類のサービスであってもよい。例えば、ある場合には、あるサービスは、ネットワークアプリケーションへのアクセスに関するものであってもよく、別のサービスは、ネットワークリソース(例えば、ウェブページなどのネットワークページによってホストされた画像または映像)のダウンロードに関するものであってもよい。あるいは、両方のサービスを使用してネットワークリソースをダウンロードするようにしてもよい。例えば、ユーザは、2つのネットワークページから2つのネットワークページまたは2つのリソースをダウンロードしてもよい。そのような場合、接続モジュール244は、特定された制作者システム106との接続をブロック308で開始する。ある場合には、接続モジュール244は、消費者システム244に関連付けられたリースプール内で特定された制作者システム106との接続を開始する。リースプールは、リソースへのアクセスを提供するために消費者システム104に現在リースされている制作者システム106の識別情報を含むことができる。ある場合には、リースプールは、消費者システム104にリースされているものの、消費者システム104が現在アクセスしていない制作者システム106を含む。リースプールにリースが1つも含まれていない場合、消費者システム104は、例えば、リースリクエスタ240を使用してプロセス300を再度実行してもよい。いくつかの実施形態では、判定ブロック314は任意である。例えば、消費者システム104にリースされる制作者システム106がない場合、ブロック302から開始してプロセス300を繰り返してもよい。   At decision block 314, the consumer system 104 determines, for example, using a resource requester 246, whether access to another service is desired. Such other services may be different services or the same type of services. For example, in some cases, one service may relate to access to network applications, and another service may download network resources (eg, images or videos hosted by a network page such as a web page). It may be related. Alternatively, network resources may be downloaded using both services. For example, a user may download two network pages or two resources from two network pages. In such a case, the connection module 244 initiates a connection with the identified author system 106 at block 308. In some cases, the connection module 244 initiates a connection with the producer system 106 identified in the lease spool 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 to provide 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 contain any leases, the consumer system 104 may perform the process 300 again using, for example, the lease requester 240. In some embodiments, the decision block 314 is optional. For example, if there is no producer system 106 leased to the consumer system 104, the process 300 may be repeated starting at block 302.

いくつかの実施形態では、プロセス300を使用して、制作者システム106に対する以前のリースを更新することができる。このような場合、ブロック302で生成されたリース要求は、以前に消費者システム104がアクセスした制作者システム106の識別情報を含むことができる。さらに、リース要求は、その要求が更新要求であるとの指示を含むことができる。次いで、消費者システム104に応じた制作者システム106を元々特定したリースエージェント102に対し、更新リース要求を提供することができる。制作者システム106が、依然として使用可能であり、かつ/または消費者システム104にサービスを提供する能力を持っているとリースエージェント102が判断したと仮定すると、リースエージェント102は、ブロック306の一部として、更新要求を承認したことを示すことができ、更新リースのための時間を消費者システム104に提供することができる。1つ以上の別の制作者システム106に関するリースを消費者システム104がリースプール内に保持しており、かつ別の制作者システム106のサービスを消費者システム104が利用せずに別の制作者システム106のリース期間の期限が切れた場合、消費者システム104は、別の制作者システム106に対応したリースエージェント102にリース更新要求を送信せずにそのリースを終わらせることができる。   In some embodiments, process 300 may be used to renew previous leases for publisher system 106. In such a case, the lease request generated at block 302 may include identification information of the producer system 106 that was previously accessed by the consumer system 104. 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 originally identified the producer system 106 corresponding 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 provide services to the consumer system 104, the lease agent 102 is a part of block 306. Can indicate that the renewal request has been approved, and provide the consumer system 104 with time for a renewal lease. The consumer system 104 holds a lease for one or more other producer systems 106 in the lease pool, and the other producer system 106 services are not used by the consumer system 104 and another producer If the lease period of the system 106 expires, the consumer system 104 can terminate the lease without sending a lease renewal request to the lease agent 102 corresponding to another producer system 106.

ある場合には、リースの更新を要求するプロセスは、現在のリースの期限が切れた時に発生し得る。他の場合には、消費者システム104は、例えば、リソースリクエスタ246を用いて、1つ以上の制作者システム106のサービスへのアクセスを求める現在のサービス要求が、リース時間の期限が切れるまでに完了しない確率を判定してもよい。その確率が更新閾値を満たしている場合、消費者システム104は、現在のリースの期限が切れる前のある時点にて制作者システム106のリースの更新を要求し、それによってリースの期限切れによってサービスが停止することを抑制または回避するようにしてもよい。   In some cases, the process of requesting a lease renewal can occur when the current lease expires. In other cases, the consumer system 104 may use a resource requester 246, for example, before a current service request seeking access to the services of one or more publisher systems 106 expires the lease time. The probability of not completing may be determined. If the probability meets the renewal threshold, the consumer system 104 requests a renewal of the producer system 106 lease at some point before the current lease expires, thereby causing the service to expire upon lease expiration. You may make it suppress or avoid stopping.

ある実施形態では、制作者システム106へのアクセスをリースすることは、制作者システム106及び/またはリースエージェント102のうちの1つ以上に関連する組織またはエンティティへの支払いを行うことを含んでもよい。例えば、ペイフォーアクセス(pay−for−access)サービスの一部として制作者システム106を利用できるようにしてもよい。あるいは、制作者システム106へのアクセスをリースすることには、何らの支払いも必要としなくてよい。このような実施形態では、リースは、制作者システム106へのアクセスの一時性に関係するものであり、ファイナンスリースではない。   In certain embodiments, leasing access to publisher system 106 may include paying an organization or entity associated with one or more of publisher system 106 and / or lease agent 102. . For example, the creator system 106 may be used as part of a pay-for-access service. Alternatively, leasing access to the producer system 106 may not require any payment. In such embodiments, the lease relates to the temporary nature of access to the producer system 106 and is not a finance lease.

制作者システムのリースを消費者システムに提供するプロセスの実施例
制作者システム106のリースを消費者システム104に提供するプロセス400の実施形態を図4に示す。プロセス400は、制作者システム106の識別情報を消費者システム104に提供可能な任意のシステムによって実装することができる。さらに、プロセス400は、制作者システム106へのアクセスを消費者システム104にリース可能な任意のシステムによって実装することができる。例えば、プロセス400は、全部または一部において、いくつか例を挙げると、リースエージェント102、リースシステム224及びステータスモジュール228によって実装することができる。全部または一部において、任意の数のシステムを用いてプロセス400を実装することができるが、説明を簡単にするため、特定のシステムを参照してプロセス400の各部を説明する。
Example Process for Providing a Producer System Leasing to a Consumer System An embodiment of a process 400 for providing a maker system 106 lease to a consumer system 104 is shown in FIG. Process 400 may be implemented by any system that can provide the identification information of producer system 106 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 examples. Although process 400 may be implemented using any number of systems, in whole or in part, for ease of explanation, 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. Here, for example, the lease system 224 of the lease agent 102 receives a request for a lease of access to the producer system 106 from the consumer system 104. In some cases, the request may include identification of a particular service or computing resource of the producer system 106 that the consumer system 104 is seeking access to. As explained in the previous section, in some cases, the lease request may include a request to renew the current lease by the consumer 104 of the producer system 106.

ブロック404では、ステータスモジュール228は、1つ以上の制作者システム106のステータスメタデータを消費者システム104から受信し得る。このように受信したステータスメタデータには、消費者システム104が、1つ以上の制作者システム106との通信、または1つ以上の制作者システムのサービスへのアクセスを以前に試みたことに関連するデータが含まれてもよい。例えば、受信したステータスメタデータには、レイテンシ情報、消費者システム104による制作者システム106への要求の応答性に関するデータ、またはブロック312に関して先に説明したその他の情報が含まれてもよい。さらに、受信したステータスメタデータには、消費者システム104が制作者システム106から受信したデータ、及び/または制作者システム106との対話に基づいて消費者システム104が生成したデータステータスメタデータが含まれてもよい。いくつかの実施形態では、ブロック404は任意であってよい。例えば、要求が、消費者システム104から受信した最初の要求である場合には、消費者システム104は、リースエージェント102に提供する何らのステータスメタデータも持っていなくてよい。   At block 404, the status module 228 may receive status metadata for one or more publisher systems 106 from the consumer system 104. The status metadata received in this manner relates to a previous attempt by the consumer system 104 to communicate with one or more publisher systems 106 or to access one or more publisher system services. Data may be included. For example, the received status metadata may include latency information, data regarding the responsiveness of requests from the consumer system 104 to the producer system 106, or other information described above with respect to block 312. Further, the received status metadata includes data received by the consumer system 104 from the producer system 106 and / or data status metadata generated by the consumer system 104 based on interaction with the producer system 106. May be. 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 status metadata to provide to lease agent 102.

ブロック406では、ステータスモジュール228は、ブロック404で受信したステータスメタデータに基づいて制作者システムステータス情報を更新する。ある場合には、制作者システムステータス情報を更新することは、制作者リポジトリ220内の制作者システム106に関連するエントリを更新することを含んでもよい。いくつかの実施形態では、ブロック406は任意であってよい。   At block 406, the status module 228 updates the producer system status information based on the status metadata received at block 404. In some cases, updating the publisher system status information may include updating an entry associated with the publisher system 106 in the publisher 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の一部または全てであり得る)に提供してもよい。任意の種類のデータ転送プロセス、データ複製プロセス及び/またはデータ同期プロセスをネットワーク環境100内に実装することにより、リースエージェント102間でステータスメタデータを共有するようにしてもよい。例えば、フラッドフィルアルゴリズム(flood fill algorithm)またはプリム法(Prim’s algorithm)を使用して、リースエージェント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 status module 228 provides at least a portion of the status metadata received at block 404 to the second lease agent. For example, the lease agent 102 performing the process 400 may determine that some of the status metadata is for the producer system 106 assigned to a different lease agent 102. In such a case, the lease agent 102 may provide status information to the lease agent 102 assigned to the producer system 106. In other cases, the lease agent 102 may send status metadata to all lease agents 102 with which the lease agent 102 is communicating (these are some or all of the lease agents 102 belonging to the network environment 100). May be provided). Any type of data transfer process, data replication process, and / or data synchronization process may be implemented in the network environment 100 to share status metadata between the lease agents 102. For example, the data may be shared between the lease agents 102 using a flood fill algorithm or a prim's algorithm. Another system and method that can be used herein to share data between lease agents 102 is US application Ser. No. 12 / 980,133, filed Dec. 28, 2010, entitled “DATA REPLICATION FRAMEWORK”; US Application No. 12 / 980,153 entitled “DATA REPLICATION FRAMEWORK” filed on December 28, 2010; US Application No. 12 / 980,193 entitled “DATA REPLICATION FRAMEWORK” filed on December 28, 2010; And US application Ser. No. 12 / 980,258, entitled “DATA REPLICATION FRAMEWORK”, filed Dec. 28, 2010. Each of these above applications is incorporated herein by reference in its entirety.

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

ブロック410では、リースシステム224は、リースエージェント102に割り振られた、または割り当てられた各制作者システム106に関連する制作者ステータス情報に基づいて制作者システムを選択する。ある場合には、制作者ステータス情報は、消費者システム104によって提供された情報(例えば、ブロック404で受信したステータスメタデータ)に基づくものである。他の場合には、制作者ステータス情報は、リースエージェント102が制作者システム106と通信を行うことによって取得された情報に基づくものであってもよい。例えば、リースエージェント102は、リースエージェント102に割り当てられた各制作者システム106の健全性チェックまたはステータスチェックを実行してもよい。これらの健全性チェックとしては、制作者システム106にpingすること、リソースの可用性に関する更新を制作者システム106に要求すること、または制作者システム106のステータスに関する情報を取得するその他のプロセスを挙げることができる。さらに、制作者ステータス情報は、他のリースエージェント102から受信した情報に基づくものであってもよい。   At block 410, the lease system 224 selects a producer system based on the producer status information associated with each producer system 106 assigned to or assigned to the lease agent 102. In some cases, producer status information is based on information provided by consumer system 104 (eg, status metadata received at block 404). In other cases, the producer status information may be based on information obtained by the lease agent 102 communicating with the producer system 106. For example, the lease agent 102 may perform a sanity check or status check of each producer system 106 assigned to the lease agent 102. These sanity checks include pinging the publisher system 106, requesting the publisher system 106 for updates regarding resource availability, or other processes that obtain information about the status of the publisher system 106. Can do. Further, the producer status information may be based on information received from another lease agent 102.

ある実施形態では、制作者システム106を選択することは、少なくとも部分的には、それぞれの制作者システム106に関連付けられた重みに基づくものであってもよい。これらの重みは、制作者ステータス情報に基づいて生成されてもよい。例えば、消費者システム104と通信するときに制作者システム106のレイテンシが低く、かつ誤り率が低いことを制作者ステータス情報が示している場合、その制作者システム106については、重みをより大きくすることにより、ブロック410で選択されやすくなるようにしてもよい。逆に、消費者システム104との接続を切断することが多い制作者システム106については、重みをより小さくすることにより、ブロック410で選択されにくくしてもよい。   In some embodiments, selecting the publisher system 106 may be based at least in part on the weight associated with each publisher system 106. These weights may be generated based on the producer status information. For example, when the producer status information indicates that the latency of the producer system 106 is low and the error rate is low when communicating with the consumer system 104, the weight is increased for the producer system 106. Thus, the block 410 may be easily selected. Conversely, a producer system 106 that often disconnects from the consumer system 104 may be less selected at block 410 by making the weights smaller.

ある場合には、制作者システム106の選択は、消費者システム104に対する制作者システム106の位置といった、いくつもの別の要因に基づくものであってもよい。この位置情報としては、例えば、制作者システム106が消費者システム104と同じデータセンターまたは同じサーバラックに配置されているかどうかを挙げることができる。制作者システム106を選択することは、ある場合には、消費者システム104によって要求されたサービスに基づくものであってもよい。さらに他の場合には、制作者システム106の選択は、消費者システム104によって要求された、かつ/または消費者システム104に以前に割り振られたリース時間の長さに部分的に基づくものであってもよい。ある場合には、リースシステム224は、負荷が最も低い制作者システム106を選択してもよい。他の場合には、リースシステム224は、閾値に満たない負荷を有する一組の制作者システム106から制作者システム106を選択してもよい。いくつかの実施形態では、選択された制作者システム106との通信を消費者システム104が確立したかどうかに関わらず、選択された制作者システム106の負荷が選択直後に増加したことを判定する。有利には、ある実施形態では、制作者システムとの接続を消費者が確立したことに関係なく、選択された制作者システム106に対して負荷の増加を記録することにより、同じ制作者システム106が一定期間内で閾回数よりも多く選択される確率が低下する。なぜなら、制作者システム106の実負荷が低くあり得るものの、制作者システムを選択する際に、消費者システム104との今後の接続における予想負荷が考慮されるためである。   In some cases, the selection of the producer system 106 may be based on a number of other factors, such as the location of the producer system 106 relative to the consumer system 104. This location information can include, for example, whether the producer system 106 is located in the same data center or the same server rack as the consumer system 104. Selecting the producer system 106 may in some cases be based on the service requested by the consumer system 104. In yet other cases, the producer system 106 selection may be based in part on the length of lease time requested by the consumer system 104 and / or previously allocated to the consumer system 104. May be. In some cases, the lease system 224 may select the producer system 106 with the lowest load. In other cases, the leasing system 224 may select the producer system 106 from a set of producer systems 106 that have a load that does not meet the threshold. In some embodiments, regardless of whether the consumer system 104 has established communication with the selected producer system 106, it determines that the load on the selected producer system 106 has increased immediately after selection. . Advantageously, in one embodiment, the same publisher system 106 is recorded by recording an increase in load for the selected publisher system 106 regardless of the consumer establishing a connection with the publisher system. Is more likely to be selected than the threshold count within a certain period. This is because although the actual load of the producer system 106 may be low, the expected load in the future connection with the consumer system 104 is taken into consideration when selecting the producer system.

ある場合には、ブロック410で制作者システム106を選択することは、1つ以上の負荷測定基準(例えば、接続、プロセッサ利用状況など)に対して負荷が最も低い制作者システム106を選択することを含んでもよい。あるいは、制作者システム106を選択することは、閾負荷に満たない負荷を有する一組の制作者システム106に含まれる制作者システム106を選択することを含んでもよい。負荷閾値に満たない負荷を有する一組の制作者システム106の中から制作者システム106を選択することは、ランダムで行ってもよく、擬似ランダムで行ってもよく、または選択アルゴリズム(例えば、最低使用頻度、中央値負荷(median load))に基づいて行ってもよい。有利には、いくつかの実施形態では、負荷が最も低い制作者システム106を常に選択する代わりに、一組の制作者システム106から制作者システム106を選択することにより、負荷変動の確率及び/または発生が抑制される。さらに、ネットワーク環境100の他の部分に比べて高負荷に関与する一部のシステムが生じるなどの、ネットワーク環境100を伝わる負荷のバブル(load bubble)、または負荷のホットスポットが発生しにくくなる。   In some cases, selecting the producer system 106 at block 410 selects the producer system 106 that has the lowest load for one or more load metrics (eg, connection, processor usage, etc.). May be included. Alternatively, selecting a publisher system 106 may include selecting a publisher system 106 included in a set of publisher systems 106 that has a load that is less than a threshold load. Selecting the author system 106 from a set of author systems 106 having a load that does not meet the load threshold may be random, pseudo-random, or a selection algorithm (e.g., at least It may be based on usage frequency, median load). 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 publisher systems 106, the probability of load variation and / or Or the occurrence is suppressed. Furthermore, a load bubble or a load hotspot that is transmitted through the network environment 100, such as a part of a system that is involved in a high load, is less likely to occur than other parts of the network environment 100.

ブロック412では、リースシステム224は、ブロック410で選択された制作者システム106のリース情報を消費者システム104に提供する。このリース情報は、制作者システム106の識別情報、及びある場合には、消費者システム104が制作者システム106にアクセスすることが許可されているリース時間の長さを含むことができる。前述したように、制作者システム106の識別情報は、ネットワークアドレスなどの、制作者システム106の検索及びこれへのアクセスを容易にすることができる任意の情報を含むことができる。いくつかの実施形態では、制作者システム106の識別情報を提供することは、認証鍵または公開鍵を提供して制作者システム106との通信を促進することを含むことができる。   At block 412, the leasing system 224 provides the consumer system 104 with leasing information for the producer system 106 selected at block 410. This lease information may include identification information of the producer system 106 and, in some cases, the length of lease time that the consumer system 104 is allowed to access the producer system 106. As described above, the publisher system 106 identification information can include any information that can facilitate searching and access to the publisher system 106, such as a network address. In some embodiments, providing identification information of the publisher system 106 can include providing an authentication key or a public key to facilitate communication with the publisher system 106.

先に示したように、ある場合には、リース更新要求のためにプロセス400を使用することができる。このような場合、ブロック410は、消費者システム104がリースの更新を要求した制作者システム106が、依然としてリースに使用可能であるかどうかを判定することを含むことができる。制作者システム106が依然としてリースに使用可能であるかどうかを判定することは、消費者システム104にサービスを提供し続けるためのリソース容量を制作者システム106が備えているかどうかを判定することを含むことができる。さらに、制作者システム106が依然としてリースに使用可能であるかどうかを判定することは、制作者システム106に関連する制作者ステータス情報についての1つ以上の測定基準が可用性閾値を満たしているかどうかを判定することを含むことができる。例えば、この判定としては、制作者システム106に関連する誤り率が閾誤り率を下回っているかどうかを確認することを挙げることができる。制作者システム106がリース更新に使用可能である場合、リースエージェント102は、制作者システム106の更新済みのリースを消費者システム104に送信することができる。制作者システム106がリース更新に使用できないとリースエージェント102が判定した場合、リースエージェント102は、そのように報告することができ、かつ/または、代わりとなる制作者システム106のリース情報を提供することができる。   As indicated above, in some cases, process 400 may 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 has requested a lease renewal is still available for lease. Determining whether the producer system 106 is still available for lease includes determining whether the producer system 106 has the resource capacity to continue serving the consumer system 104. be able to. Further, determining whether the publisher system 106 is still available for lease determines whether one or more metrics for the producer status information associated with the publisher system 106 meet an availability threshold. Determining. For example, this determination may include checking whether the error rate associated with the producer system 106 is below a threshold error rate. If the producer system 106 is available for lease renewal, the lease agent 102 can send the updated lease of the producer system 106 to the 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 so and / or provide lease information for an alternative producer system 106. be able to.

制作者システム更新プロセスの実施例
制作者システム更新プロセス500の実施形態を図5に示す。プロセス500は、制作者システム106の可用性を更新することができ、制作者システム106をリースエージェント102間に再分配することができる任意のシステムによって実装することができる。例えば、プロセス500は、全部または一部において、いくつか例を挙げると、リースエージェント102、分配システム222、分配システム204、登録モジュール226及びステータスモジュール228によって実装することができる。全部または一部において、任意の数のシステムを用いてプロセス500を実装することができるが、説明を簡単にするため、特定のシステムを参照してプロセス500の各部を説明する。
Example of Producer System Update Process An embodiment of the producer system update process 500 is shown in FIG. Process 500 can be implemented by any system that can update the availability of producer system 106 and that can redistribute producer system 106 among lease agents 102. For example, process 500 may be implemented in whole or in part by lease agent 102, distribution system 222, distribution system 204, registration module 226, and status module 228, to name a few examples. Although any number of systems may be used to implement process 500, in whole or in part, for ease of explanation, portions of process 500 will be described with reference to a particular system.

プロセス500は、判定ブロック502で開始される。ここで、例えば、リースエージェント102のステータスモジュール228は、ステータスの更新を制作者システム106から受信したかどうかを判定する。ステータスの更新は、リースエージェント102によって制作者システム106に送信された要求に応答して、リースエージェント102によって予測され得る。あるいは、ステータスモジュール228は、各制作者システム106に関連する更新スケジュールによってステータスの更新を予測してもよい。例えば、ある場合には、各制作者システム106は、時間単位で、または1日単位で、割り当てられたリースエージェント102に対して自動的にpingし、またはステータスの更新を提供するように構成され得る。ステータスの更新を受信した場合、プロセス500は、判定ブロック502に戻って次のステータスの更新を待つ。さらに、ステータスモジュール228は、制作者システム106に関連する制作者ステータス情報を制作者リポジトリ220及び/またはエージェントリポジトリ206にて更新してもよい。   Process 500 begins at decision block 502. Here, for example, the status module 228 of the lease agent 102 determines whether a status update has been received from the producer system 106. Status updates may be predicted by the lease agent 102 in response to a request sent by the lease agent 102 to the producer system 106. Alternatively, the status module 228 may predict status updates according to an update schedule associated with each producer system 106. For example, in some cases, each producer system 106 is configured to automatically ping or provide status updates to assigned lease agents 102 on an hourly or daily basis. obtain. If a status update is received, process 500 returns to decision block 502 and waits for the next status update. Further, the status module 228 may update publisher status information associated with the publisher system 106 in the publisher repository 220 and / or the agent repository 206.

これに対して、ステータスの更新を判定ブロック502で受信しなかった場合、ステータスモジュール228は、ブロック504にて、制作者システム106のステータスを更新して制作者システム106が使用できないことを示す。制作者システム106のステータスを更新することは、消費者システム104にリースするのに制作者システム106が使用できないとの指示を制作者リポジトリ220及び/またはエージェントリポジトリ206内に記憶することを含むことができる。ある場合には、判定ブロック502でステータスの更新を受信した場合でも、ステータスモジュール228は、ブロック504で制作者システムのステータスを更新して、制作者システム106が使用できないことを示してもよい。例えば、制作者システム106が機能不良であること、要求に対して閾速度でサービスを提供していること、または閾誤り率を超える誤りを生成していることを、受信したステータス情報が示している場合、ステータスモジュール228は、制作者リポジトリ220及び/またはエージェントリポジトリ206を更新して、制作者システム106がもはや使用できないことを示してもよい。いくつかの実施形態では、制作者システム106の制作者ステータス情報を更新してその可用性の喪失を示すことは、制作者システム106がもはや使用できないことを管理者に警告することを含んでもよい。制作者システム106のステータス情報を更新することについては、図10に関してさらに詳しく説明する。   In contrast, if a status update has not been received at decision block 502, the status module 228 updates the status of the producer system 106 at block 504 to indicate that the publisher system 106 is not usable. Updating the status of the publisher system 106 includes storing an indication in the publisher repository 220 and / or agent repository 206 that the publisher system 106 cannot be used to lease to the consumer system 104. Can do. In some cases, even if a status update is received at decision block 502, the status module 228 may update the status of the producer system at block 504 to indicate that the publisher system 106 is unavailable. For example, the received status information indicates that the producer system 106 is malfunctioning, is serving a request at a threshold rate, or is generating an error that exceeds a threshold error rate. If so, status module 228 may update publisher repository 220 and / or agent repository 206 to indicate that publisher system 106 is no longer available. In some embodiments, updating the publisher status information of the publisher system 106 to indicate its loss of availability may include alerting the administrator that the publisher system 106 is no longer available. Updating the status information of the producer system 106 will be described in more detail with respect to FIG.

判定ブロック506では、分配システム222は、制作者システム106の閾数が使用不能になったかどうかを判定する。制作者システム106の閾数が使用不能になっていない場合、プロセス500は、判定ブロック502に戻って次のステータスの更新を待つ。制作者システム106の閾数が使用不能になったと分配システム222が判定ブロック506で判定した場合、分配システム222は、ブロック508で制作者再分配プロセスを実行する。この制作者システム再分配プロセスについては、図6に関して以下でさらに詳しく説明する。いくつかの実施形態では、判定ブロック506とブロック508の一方または両方を分配システム204によって実行する。   At decision block 506, the distribution system 222 determines whether the threshold number of the author system 106 has become unavailable. If the threshold number of the author system 106 is not disabled, the process 500 returns to decision block 502 to wait for the next status update. If the distribution system 222 determines at decision block 506 that the threshold number of the publisher system 106 has become unavailable, the distribution system 222 performs a publisher redistribution process at block 508. This producer system redistribution process is described in more detail below with respect to FIG. In some embodiments, one or both of decision block 506 and block 508 are performed by distribution system 204.

分配プロセスの実施例
一組の制作者システム106を分配する分配プロセス600の実施形態を図6に示す。プロセス600は、使用可能な制作者システム106の数の変化を追跡することができ、制作者システム106をリースエージェント102間に再分配することができる任意のシステムによって実装することができる。例えば、プロセス600は、全部または一部において、いくつか例を挙げると、リースエージェント102、分配システム222、分配システム204、登録モジュール226及びステータスモジュール228によって実装することができる。全部または一部において、任意の数のシステムを用いてプロセス600を実装することができるが、説明を簡単にするため、特定のシステムを参照してプロセス600の各部を説明する。
Example Distribution Process An embodiment of a distribution process 600 that distributes a set of publisher systems 106 is shown in FIG. Process 600 can track changes in the number of available publisher systems 106 and can be implemented by any system that can redistribute publisher systems 106 among lease agents 102. For example, process 600 may be implemented in whole or in part by lease agent 102, distribution system 222, distribution system 204, registration module 226, and status module 228, to name a few examples. The process 600 may be implemented using any number of systems, in whole or in part, but for ease of explanation, each part of the process 600 will be described with reference to a particular system.

プロセス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. Here, for example, the status module 228 tracks available producer system 106 differences. In some cases, the status module 228 tracks absolute changes in the number of available publisher systems 106. Alternatively or additionally, the status module 228 tracks the rate of change of the number of available publisher systems 106. The differences or changes in the available publisher system 106 may be based on the newly added publisher system 106 or the loss of availability of the publisher system 106. In some embodiments, process 500 may be used to determine that the availability of publisher system 106 has been lost. Further, determining which producer system 106 can be used may be based on user updates that direct the reduction or addition of the producer system 106. Further, the addition of the producer system 106 may be tracked based on the publisher system 106 attempting to register. In some cases, the availability of the producer system 106 may be determined based on information provided by the consumer system 104. Further, available publisher differences or changes may be tracked by actual numbers, or may be tracked by the rate of change in the availability of the publisher system 106.

いくつかの実施形態では、制作者システム106、及び/または使用可能な制作者システム106の差分は、各リースエージェント102によって追跡される。あるいは、各リースエージェント102は、リースエージェント102に割り当てられている使用可能な制作者システムを追跡する。加えて、またはあるいは、使用可能な制作者システム106の数及び/または差分は、分配システム204などの独立したシステムによって追跡される。   In some embodiments, differences between the producer system 106 and / or the available producer system 106 are tracked by each lease agent 102. Alternatively, each lease agent 102 tracks the available producer systems assigned to the lease agent 102. In addition or alternatively, the number and / or differences of available author systems 106 are tracked by an independent system, such as distribution system 204.

判定ブロック604では、分配システム222は、使用可能な制作者システム106の差分が閾値を満たしているかどうかを判定する。この差分は、絶対値とすることができる。つまり、制作者システム106を加えることまたは減じることが追跡され得る。ある実施形態では、制作者システム106を加減することは、それぞれに関連する個別の閾値とは無関係に追跡されてもよい。従って、ある場合には、使用可能な制作者システムの全変化分が、ゼロである、または合算した閾値を満たさない場合でも、1つまたは両方の閾値が満たされ得る。ある場合には、差分は、変化率及び/または変化速度を表すことができる。このような場合、閾値は、百分率の閾値及び/または変化速度の閾値であってよい。   At decision block 604, the distribution system 222 determines whether the available producer system 106 differences meet a threshold. This difference can be an absolute value. That is, adding or subtracting the producer system 106 can be tracked. In some embodiments, adjusting the author system 106 may be tracked independently of the individual thresholds associated with each. Thus, in some cases, one or both thresholds may be met even if the total change in available author system is zero or does not meet the combined threshold. In some cases, the difference can represent a rate of change and / or a rate of change. In such a case, the threshold may be a percentage threshold and / or a rate of change threshold.

差分が閾値を満たしていない場合、または対応する閾値をどの差分も満たしていない場合、ステータスモジュール228は、ブロック602にて、使用可能な制作者システム106、または使用可能な制作者システム106の変化分を追跡し続ける。これに対し、差分が閾値を満たしている場合、または対応する閾値を差分が満たしている場合、分配システム222は、ブロック606にて、プロセス600を実行しているリースエージェント102が制作者システム106の分配プロセスまたは再分配プロセスを開始することを他のリースエージェント102に通知する。有利には、ある実施形態では、プロセス600を実行しているリースエージェント102が分配プロセスを開始することを他のリースエージェント102に通知することにより、プロセス600は、複数のリースエージェント102に対して分配プロセスを同時に実行させることを避けるようにする。というのも、このように同時に実行させることにより、例えば、制作者システム106を計数及び分配する際に競合状態が生じることによって最適な結果が得られない可能性があるからである。いくつかの実施形態では、ブロック606は任意であってよい。例えば、いくつかの実施形態では、リースエージェント102とは別の分配システム204が、分配プロセスまたは再分配プロセスを実行してもよい。   If the difference does not meet the threshold, or if no corresponding difference is met for the corresponding threshold, the status module 228, at block 602, changes the available publisher system 106 or available publisher system 106. Keep track of minutes. In contrast, if the difference meets the threshold, or if the difference meets the corresponding threshold, the distribution system 222, at block 606, determines that the lease agent 102 executing the process 600 is the producer system 106. Notify other lease agents 102 to start their distribution or redistribution process. Advantageously, in some embodiments, the process 600 may notify multiple lease agents 102 by notifying other lease agents 102 that the lease agent 102 executing the process 600 will begin the distribution process. Avoid running the distribution process at the same time. This is because, when executed simultaneously in this way, for example, there may be a race condition when counting and distributing the producer system 106, so that an optimum result may not be obtained. In some embodiments, block 606 may be optional. For example, in some embodiments, a distribution system 204 separate from the lease agent 102 may perform the distribution process or the redistribution process.

ブロック608では、分配システム222は、使用可能な制作者システム106の識別情報を取得する。分配システム222は、使用可能な制作者システム106の識別情報を、制作者リポジトリ220にアクセスすることによって、かつ/またはエージェントリポジトリ206にアクセスすることによって取得してもよい。ある場合には、分配システム222は、他のリースエージェント102と交信することにより、使用可能な制作者システム106の識別情報を取得してもよい。   At block 608, the distribution system 222 obtains identification information of the available producer system 106. Distribution system 222 may obtain identification information of available publisher system 106 by accessing publisher repository 220 and / or by accessing agent repository 206. In some cases, distribution system 222 may obtain identification information for available producer system 106 by communicating with other lease agents 102.

ブロック610では、分配システム222は、使用可能な制作者システム106をリースエージェント102間に分配する。分配システム222は、任意の種類の分配アルゴリズムを使用して制作者システム106を分配することができる。一般に、リースエージェント102間に制作者システム106を分配することにより、重複しない、または不均等な複数組の制作者システム106を生成して、それらをリースエージェント102に割り当てることができる。しかしながら、ある場合には、この分配が重複する場合がある。さらに、ある場合には、これらのサブセットのバランスを取ることができない場合がある。つまり、あるリースエージェント102に対し、他のリースエージェント102よりも多くの制作者システム106が割り当てられる場合がある。これらのサブセットのバランスが取れていない場合、特定のリースエージェント102に割り当てられた制作者システム106の数または割合は、少なくとも部分的には、リースエージェント102及び/またはそのリースエージェント102に割り当てられた制作者システム106が処理できる要求の数に基づいている場合がある。例えば、第1のリースエージェント102が、他の制作者システム106よりも多数の消費者システム104の要求を処理可能な制作者システム106に割り当てられている場合、この第1のリースエージェントには、別のリースエージェント102よりも少ない制作者システムを割り当ててもよい。   At block 610, distribution system 222 distributes available producer system 106 among lease agents 102. The distribution system 222 can distribute the author system 106 using any type of distribution algorithm. In general, by distributing the producer systems 106 among the lease agents 102, multiple sets of non-overlapping or unequal publisher systems 106 can be generated and assigned to the lease agents 102. However, in some cases this distribution may overlap. Furthermore, in some cases, these subsets may not be balanced. That is, there may be a case where more producer systems 106 are assigned to a certain lease agent 102 than to other lease agents 102. If these subsets are not balanced, the number or percentage of producer systems 106 assigned to a particular lease agent 102 has been assigned, at least in part, to lease agent 102 and / or its lease agent 102. It may be based on the number of requests that the producer system 106 can handle. For example, if the first lease agent 102 is assigned to a producer system 106 that can handle more consumer system 104 requests than other producer systems 106, the first lease agent may include: You may assign fewer producer systems than another lease agent 102.

さらに、ある制作者システム106が、他の制作者システムとは異なるサービスを提供できる実施形態では、特定のサービスを提供可能な制作者システムに各リースエージェントが割り当てられるように、制作者システム106を分配してもよい。あるいは、特定のサービスを提供可能な制作者システム106を、選択サブセットのリースエージェント102間に分配してもよい。   Further, in an embodiment where one producer system 106 can provide a different service than other producer systems, the producer system 106 can be configured such that each lease agent is assigned to a producer system that can provide a particular service. You may distribute. Alternatively, producer systems 106 that can provide a particular service may be distributed among the selected subset of lease agents 102.

ブロック612では、プロセス600を実行しているリースエージェント102の分配システム222は、ブロック610の完了時に、各リースエージェント102に割り当てられた制作者システム106の識別情報を用いてネットワーク環境100内の他の各リースエージェント102を更新する。いくつかの実施形態では、ブロック612は、プロセス600を実行しているリースエージェント102を、これ自体に割り当てられた制作者システム106の識別情報を用いて更新することを含むことができる。制作者システム106の識別情報を用いてリースエージェント102を更新することは、制作者リポジトリ220のテーブルまたはデータベースを更新することを含んでもよい。ある場合には、リースエージェント102がプロセス600を実行していることから、ブロック612は、このリースエージェント102については任意であり、ネットワーク環境100に含まれる他のリースエージェント102に対してのみ実行される。   At block 612, the distribution system 222 of the lease agent 102 that is executing the process 600 uses the identification information of the producer system 106 assigned to each lease agent 102 upon completion of the block 610 to transfer other information in the network environment 100. Each lease agent 102 is updated. 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 it. 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 this lease agent 102 and is performed only for other lease agents 102 included in network environment 100. The

いくつかの実施形態では、プロセス600を使用して、制作者システム106をリースエージェント102間に最初に分配することができる。例えば、ネットワーク環境100を最初に設定するときには、使用可能な制作者システム106を起動させるため、使用可能な制作者システム106の差分によって判定ブロック604の閾値が満たされやすい。あるいは、または加えて、ユーザは、ネットワーク環境100を最初にまたはそれ以外の時に設定する際に分配プロセスを手動で起動してもよい。   In some embodiments, the process 600 may be used to initially distribute the producer system 106 among the lease agents 102. For example, when the network environment 100 is set for the first time, the usable producer system 106 is activated, so that the threshold value of the determination block 604 is easily satisfied by the difference of the usable producer system 106. Alternatively or in addition, the user may manually activate the distribution process when setting up the network environment 100 for the first time or otherwise.

制作者システム106をリースエージェント102間に分配するものとしてプロセス600を説明してきた。しかしながら、プロセス600は、そのように限定されることはない。ある場合には、プロセス600を使用して、制作者システム106にアクセスするために消費者システム104に提供可能な各リースをリースエージェント102間に分配してもよい。例えば、リースエージェント102または分配システム222は、一組の使用可能な制作者システムを特定し、この一組の使用可能な制作者システムを構成する各制作者システムに使用可能な複数のリースを決定する。プロセス600を実行するリースエージェント102は、使用可能なリースにおいて変化した閾値を検出する第1のリースエージェント102であってよく、またはリースの分配を実行するように指定されたリースエージェント102であってよい。リースエージェント102は、(例えば、制作者システム106の登録中に)各制作者システム106から受信したステータス情報に基づいて使用可能な複数のリースを特定してもよい。あるいは、または加えて、使用可能な複数のリースは、制作者システム106の種類に基づいて、または制作者システム106もしくはユーザ(例えば、管理者)から受信した設定情報に基づいて決定されてもよい。   Process 600 has been described as distributing producer system 106 among lease agents 102. However, process 600 is not so limited. In some cases, process 600 may be used to distribute between each lease agent 102 each lease that can be provided to consumer system 104 to access producer system 106. For example, the lease agent 102 or the distribution system 222 identifies a set of available publisher systems and determines a plurality of leases that can be used for each publisher system that makes up the set of available publisher systems. To do. The lease agent 102 that performs the process 600 may be a first lease agent 102 that detects a changed threshold in available leases, or a lease agent 102 that is designated to perform lease distribution. Good. The lease agent 102 may identify a plurality of available leases based on status information received from each producer system 106 (eg, during registration of the producer system 106). Alternatively or additionally, the plurality of available leases may be determined based on the type of publisher system 106 or based on 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 can be used for each producer system 106 by allocating a subset of leases included in a plurality of leases available to each producer system 106 to each lease agent 102 included in the plurality of lease agents 102. Multiple leases may be distributed among the plurality of lease agents 102. The plurality of leases may be distributed equally or nearly evenly among the lease agents 102. In some cases, since the number of leases is not a multiple of the number of lease agents 102, at least some of the lease agents 102 may be assigned with one more lease or one less. Further, in some cases, the lease may not be divided equally. This is because, for example, settings differ between a certain lease agent 102 and / or a certain producer system 106. In some cases, each lease agent 102 is assigned a set of non-overlapping leases. Alternatively, at least some of the leases may be assigned to a plurality of lease agents 102. In some embodiments, the plurality of lease agents 102 that are distributed to the leases of the producer system 106 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 or during the distribution of the plurality of leases, the lease agent 102 performing the process 600 gives each lease agent 102 of the plurality of lease agents 102 a subset of leases assigned to the lease agent 102. The lease agent 102 may be provided. Providing a lease to each lease agent 102 may include providing a plurality of leases to each lease agent 102 from each producer system 106 assigned to each lease agent 102. Alternatively or additionally, providing a lease to each lease agent 102 may include providing the lease agent 102 with identification information for each assigned lease. Further, providing a lease may include providing connection information for communicating with the producer system 106 and / or for utilizing the lease of the producer system 106.

有利には、いくつかの実施形態では、各制作者システム106に使用可能な複数のリースを複数のリースエージェント102間に分配することにより、複数のリースエージェント102間で作業負荷のバランスを取ることが可能となる。ある場合には、プロセス600を実行するリースエージェント102は、プロセス600を実行しているときには、リースエージェント102に割り当てられたリースのサブセットをそれ自体に提供する必要がない。しかしながら、ある場合には、リースエージェント102がそれ自体にリースを提供してもよい。例えば、リースエージェント102の、分配を実行するサブシステム(例えば、分配システム222)と、リースエージェント102に割り当てられたリースを受信及び/または追跡するサブシステムとが異なる場合、プロセス600を実行するリースエージェント102は、それ自体に対し、リースエージェント102に割り当てられたリースの識別情報を提供してもよい。   Advantageously, in some embodiments, balancing the workload among the plurality of lease agents 102 by distributing the multiple leases available to each producer system 106 among the plurality of lease agents 102. Is possible. In some cases, the lease agent 102 performing process 600 need not provide itself with a subset of leases assigned to lease agent 102 when performing process 600. However, in some cases, lease agent 102 may provide a lease to itself. For example, if the lease agent 102 subsystem that performs the distribution (eg, distribution system 222) and the subsystem that receives and / or tracks the lease assigned to the lease agent 102 are different, the lease that performs the process 600 Agent 102 may provide to itself the identification information of the lease assigned to lease agent 102.

ある場合には、プロセス600を使用して、制作者システム106と各制作者システム106に関連するリースとの両方をリースエージェント102間に分配することができる。   In some cases, process 600 may be used to distribute both producer system 106 and the lease associated with each producer system 106 among lease agents 102.

制作者システム登録プロセスの実施例
制作者システム106の観点からの制作者システム登録プロセス700の実施形態を図7に示す。プロセス700は、制作者システム106をリースエージェント102に登録可能な任意のシステムによって実装することができる。例えば、プロセス700は、全部または一部において、いくつか例を挙げると、制作者システム106、登録モジュール260及びステータスモジュール262によって実装することができる。全部または一部において、任意の数のシステムを用いてプロセス700を実装することができるが、説明を簡単にするため、特定のシステムを参照してプロセス700の各部を説明する。
Example of Producer System Registration Process An embodiment of a producer system registration process 700 from the perspective of the producer system 106 is shown in FIG. 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 examples. Although process 700 may be implemented using any number of systems, in whole or in part, for ease of explanation, portions of process 700 will be described with reference to a particular system.

プロセス700は、制作者システム106が最初に起動もしくは初期化される度に、または、例えば、非活動期間の後もしくはシステムの再開後に再起動もしくは再初期化される度に発生し得る。ある場合には、プロセス700は、制作者システム106が、それ自体に割り当てられたリースエージェント102がもはや使用できないことを判定する度に発生または再度発生してもよい。例えば、割り当てられたリースエージェント102がもはや使用できないことを判定することは、ユーザから受け取った、もしくはエージェントリポジトリ206から取得した情報に基づいてもよく、または、図5に関して説明したステータスの更新などのステータスの更新を制作者システム106が提供した後に、割り当てられたリースエージェント102からACKが受信されていないかに基づいてもよい。   Process 700 may occur each time author system 106 is first started or initialized, or whenever it is restarted or reinitialized, for example, after an inactivity period or after a system restart. In some cases, process 700 may occur or reoccur each time producer system 106 determines that lease agent 102 assigned to itself is no longer available. For example, determining that the assigned lease agent 102 is no longer available may be based on information received from the user or obtained from the agent repository 206, or such as status updates described with respect to FIG. It may be based on whether an ACK has been received from the assigned lease agent 102 after the producer system 106 has provided a status update.

プロセス700は、ブロック702で開始される。ここで、例えば、登録モジュール260は、例えば、エージェントリポジトリ206に含まれる一組のリースエージェント102の識別情報にアクセスする。ある場合には、制作者システム106は、内部記憶装置に含まれる一組のリースエージェント102の識別情報にアクセスしてもよい。例えば、制作者システム106は、一組のリースエージェント102の識別情報を用いて予め設定されていてもよい。他の場合には、アクセス対象のリースエージェント102をユーザが指定してもよい。   Process 700 begins at block 702. Here, for example, the registration module 260 accesses the identification information of the set of lease agents 102 included in the agent repository 206, for example. In some cases, producer system 106 may access identification information for a set of lease agents 102 included in the internal storage. For example, the producer system 106 may be set in advance using the identification information of the set of lease agents 102. In other cases, the user may specify the lease agent 102 to be accessed.

ブロック704では、登録モジュール260は、ブロック702で特定された一組のリースエージェント102からリースエージェント102を選択する。登録モジュール260は、ランダムに、またはラウンドロビン法もしくは最低使用頻度法などのその他の選択方法を用いることにより、リースエージェント102を選択してもよい。一組のリースエージェント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. The registration module 260 may select the lease agent 102 randomly or by using other selection methods such as a round robin method or a least recently used method. If the set of lease agents 102 has been sorted, the registration module 260 may select the first lease agent 102 from the sorted set. In some embodiments, block 704 may be optional. For example, block 704 is not necessary 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 communication with lease agent 102 includes attempting to register with lease agent 102.

ブロック708では、登録モジュール260は、リースエージェント102から接続応答を受信する。登録モジュール260は、判定ブロック710にて、この接続応答が、制作者システム106の登録を承認しているか、それとも第2のリースエージェント102の識別情報を示しているかを判定する。接続応答が制作者システム106の登録を承認していると登録モジュール260が判定ブロック710で判定した場合、ステータスモジュール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 approves registration of the producer system 106 or indicates identification information of the second lease agent 102. If the registration module 260 determines at decision block 710 that the connection response has approved the registration of the producer system 106, the status module 262 provides status information regarding the producer system 106 to the lease agent 102 at block 712. To do. This state information may include any information relating to the state or status of one or more metrics associated with the author system 106. For example, status information may include the availability of one or more computing resources (eg, memory, processor, network bandwidth, applications, etc.), the number of consumer systems 104 where service requests are being processed by the producer system, and production Other information related to the state of the operator system 106 may be mentioned.

ブロック712に関連するプロセスは、接続応答が制作者システム106の登録を承認したと登録モジュール260が判定したときに発生し得る。あるいは、または加えて、ブロック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 has approved the registration of the producer system 106. Alternatively, or in addition, 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 that seeks to update the status of the producer system 106. May occur. In other embodiments, the process associated with block 712 may occur whenever a threshold change occurs in the state or status of the author system 106. For example, the process associated with block 712 may occur when the availability of processing resources of the author system 106 has dropped to a threshold level.

ブロック708で受信した接続応答に第2のリースエージェントの識別情報が含まれていると登録モジュール260が判定ブロック710で判定した場合、登録モジュール260は、ブロック714で第2のリースエージェントとの接続を開始する。プロセス800に関して説明するように、第2のリースエージェントには、第1のリースエージェント(例えば、ブロック704で特定されたリースエージェント)が制作者システム106との関連付けを決定したリースエージェントが含まれてもよい。   If the registration module 260 determines at decision block 710 that the connection response received at block 708 includes identification information for the second lease agent, the 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 includes a lease agent that the first lease agent (eg, the lease agent identified at block 704) has determined an association with the producer system 106. Also good.

ブロック716では、ステータスモジュール262は、第2のリースエージェントに状態情報を提供する。ある実施形態では、ブロック716は、ブロック712に関して先に説明した実施形態の1つ以上を含んでもよい。ある実施形態では、ブロック708で受信した接続応答は、制作者システム106による登録が、追加のリースエージェントを特定することなく成功したか否かを示す。その際、制作者システム106の登録が成功しなかった場合には、制作者システム106は、ブロック702で特定された一組のリースエージェントに含まれる別のリースエージェントの登録、もしくはそのリースエージェントとの接続の開始を試みてもよく、またはその代わりに、リースエージェント102が制作者システム106の登録を承認するまでブロック704、706、708及び710を繰り返してもよい。   At block 716, the status module 262 provides state information to the second lease agent. In certain embodiments, block 716 may include one or more of the embodiments described above with respect to block 712. In some embodiments, the connection response received at block 708 indicates whether registration by the producer system 106 was successful without identifying additional lease agents. At that time, if the registration of the producer system 106 is not successful, the producer system 106 may register another lease agent included in the set of lease agents identified in block 702 or the lease agent. May attempt to initiate the connection, or alternatively, blocks 704, 706, 708 and 710 may be repeated until the lease agent 102 approves the registration of the producer system 106.

いくつかの実施形態では、判定ブロック710で特定された第2のリースエージェントは、ランダムに選択され、かつ/または必ずしも制作者システム106に関連付けられるとは限らない。そのような場合、ブロック714は、第2のリースエージェントに関係させずに、ブロック708及び710に関して上述した1つ以上の実施形態を実行することを含むことができる。つまり、ブロック714からブロック708にループを形成することができる。その際、第2のリースエージェントからの接続応答により、制作者システム106の登録の承認ではなく第3のリースエージェントが特定された場合には、判定ブロック710は、第3のリースエージェントを特定してもよい。このループは、制作者システム106がリースエージェント102に正常に登録されるまで連続的に繰り返されてもよい。あるいは、このループは、閾回数実行されてもよい。制作者システム106が正常に登録されずに閾値が満たされた場合には、警告を生成してもよい。例えば、リースエージェント102への登録に制作者システム106が失敗したことを(例えば、電子メールまたはポップアップ警告によって)管理者に通知してもよい。予期せぬシステム故障などがあった場合には、制作者システム106は、一組のリースエージェント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 a case, block 714 can include performing one or more embodiments described above with respect to blocks 708 and 710 without involving the second lease agent. That is, a loop can be formed from block 714 to block 708. At this time, if the connection response from the second lease agent identifies the third lease agent rather than authorizing the creator system 106, the decision block 710 identifies the third lease agent. May be. This loop may be repeated continuously until the producer system 106 is successfully registered with the lease agent 102. Alternatively, this loop may be executed a threshold number of times. If the producer system 106 is not registered normally and the threshold is satisfied, a warning may be generated. For example, the administrator may be notified (e.g., via email or pop-up alert) that the producer system 106 has failed to register with the lease agent 102. In the event of an unexpected system failure or the like, the producer system 106 may not be able to register with the set of lease agents 102 or renew their registration. In that case, the consumer system 104 may attempt to access the producer system 106 by accessing the connection information or lease cache. Advantageously, in some embodiments, by using cache information that can expire, downtime in accessing a resource can be reduced or eliminated in some cases.

制作者システム登録プロセスの実施例
リースエージェント102の観点からの制作者システム登録プロセス800の実施形態を図8に示す。プロセス800は、制作者システム106をリースエージェント102にて登録可能な任意のシステムによって実装することができる。例えば、プロセス800は、全部または一部において、いくつか例を挙げると、リースエージェント102、登録モジュール226及びステータスモジュール228によって実装することができる。全部または一部において、任意の数のシステムを用いてプロセス800を実装することができるが、説明を簡単にするため、特定のシステムを参照してプロセス800の各部を説明する。
Example Producer System Registration Process An embodiment of a producer system registration process 800 from the perspective of the lease agent 102 is shown in FIG. 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 examples. Although any number of systems may be used to implement process 800, in whole or in part, for ease of explanation, each part of process 800 will be described with reference to a particular system.

プロセス800は、ブロック802で開始される。ここで、例えば、登録モジュール226は、制作者システム106から登録要求を受信する。いくつかの実施形態では、この登録要求は、制作者システム106に関連付けられた認証鍵または暗号鍵を含むことができる。登録モジュール226は、制作者システム106がリースエージェント102に割り当てられているかどうかを判定ブロック804で判定する。制作者システム106がリースエージェント102に割り当てられているかどうかの判定は、制作者リポジトリ220及び/またはエージェントリポジトリ206にアクセスして、制作者システム106がリースエージェント102に割り当てられているかどうかを判定することを含むことができる。さらに、ある場合には、制作者システム106がリースエージェント102に割り当てられているかどうかを判定することは、例えば、制作者システム106に関連付けられた受信した識別子、認証鍵または暗号鍵に基づき、制作者システム106の識別情報を変更することを含むことができる。   Process 800 begins at block 802. Here, for example, the registration module 226 receives a registration request from the producer system 106. In some embodiments, the registration request can include an authentication key 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 publisher system 106 is assigned to the lease agent 102 can access the producer repository 220 and / or the agent repository 206 to determine whether the publisher system 106 is assigned to the lease agent 102. Can be included. Further, in some cases, determining whether the producer system 106 is assigned to the lease agent 102 can be based on, for example, the received identifier, authentication key, or encryption key associated with the producer system 106. Changing the identification information of the operator system 106 may be included.

制作者システム106がリースエージェント102に割り当てられていることを登録モジュール226が判定した場合、登録モジュール226は、制作者システム106の登録をブロック806で承認する。制作者システム106の登録を承認することは、制作者システム106がリースエージェント102に登録されていることを制作者システム106に通知することを含むことができる。さらに、ある場合には、ブロック806は、制作者リポジトリ220及び/またはエージェントリポジトリ206を更新することにより、制作者システム106が使用可能であること、及びリースエージェント102に登録されたことを示すことを含むことができる。さらに、いくつかの実施形態では、ブロック806は、リースエージェント102に関連付けられ、かつ/または制作者システム106に割り当てられた認証鍵及び/または暗号鍵へのアクセスを制作者システム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 approves registration of producer system 106 at block 806. Approving the registration of the producer system 106 can include notifying the producer system 106 that the producer system 106 is registered with the lease agent 102. Further, in some cases, block 806 indicates that the publisher system 106 is available and registered with the lease agent 102 by updating the publisher repository 220 and / or agent repository 206. Can be included. Further, in some embodiments, block 806 provides the producer system 106 with access to an authentication key and / or encryption key associated with the lease agent 102 and / or assigned to the producer system 106. Can be included. This authentication key and / or encryption key can be used to facilitate further communication between the producer system 106 and the lease agent 102. Further, the authentication key and / or the encryption key is consumed with the creator system 106 in order to verify the identification information of the producer system 106 or to guarantee data to be communicated between these two systems. It can be used for communication with an operator system 104.

ブロック808では、ステータスモジュール228は、制作者システム106から状態情報を受信する。この状態情報は、ブロック712の状態情報に関して上述した実施形態のうちの一部または全てを含むことができる。ステータスモジュール228は、ブロック810にて、ブロック808で受信した状態情報に少なくとも部分的に基づき、制作者システム106の制作者ステータス情報を更新することができる。制作者ステータス情報を更新することは、制作者リポジトリ220及び/またはエージェントリポジトリ206のエントリ、または1つ以上の測定基準を更新して制作者システム106のステータスを反映することを含むことができる。   At block 808, the status module 228 receives status information from the author system 106. This state information may include some or all of the embodiments described above with respect to the state information of block 712. The status module 228 can update the author status information of the author system 106 at block 810 based at least in part on the status information received at block 808. Updating publisher status information may include updating entries in publisher repository 220 and / or agent repository 206, or one or more metrics to reflect the status of publisher system 106.

制作者システム106がリースエージェント102に割り当てられていないことを登録モジュール226が判定ブロック804で判定した場合、登録モジュール226は、ブロック812にて、制作者システム106が割り当てられている別のリースエージェントを特定する。ブロック814では、登録モジュール226は、制作者システム106が割り当てられているリースエージェント102の識別情報を制作者システム106に提供することができ、それによって制作者システム106は、ブロック812で特定されたリースエージェント102と交信することが可能となる。ある実施形態では、ブロック812及びブロック814を任意とすることができる。例えば、ある場合には、登録モジュール226は、制作者システム106がリースエージェント102に関連付けられていないこと、及び従って、制作者システム106が割り当てられている代わりのリースエージェント102を制作者システム106に通知することなく、ブロック802で受信した登録要求が失敗に終わったことを制作者システム106に通知してもよい。   If the registration module 226 determines at decision block 804 that the producer system 106 has not been assigned to the lease agent 102, the registration module 226 determines at block 812 that another lease agent to which the producer system 106 has been assigned. Is identified. At block 814, the registration module 226 can provide identification information of the lease agent 102 to which the producer system 106 is assigned to the producer system 106, whereby the producer system 106 is identified at block 812. It becomes possible to communicate with the lease agent 102. In some embodiments, block 812 and block 814 may be optional. For example, in some cases, the registration module 226 may inform the producer system 106 that the producer system 106 is not associated with the lease agent 102 and, therefore, an alternate lease agent 102 to which the producer system 106 is assigned. Without notification, the producer system 106 may be notified that the registration request received at block 802 has failed.

リースエージェント再分配プロセス
リースエージェント再分配プロセス900の実施形態を図9に示す。プロセス900は、リースエージェント102に割り当てられた一組の制作者システム106を再度割り当てることができる任意のシステムによって実装することができる。例えば、プロセス900は、全部または一部において、いくつか例を挙げると、リースエージェント102、分配システム222及び分配システム204によって実装することができる。全部または一部において、任意の数のシステムを用いてプロセス900を実装することができるが、説明を簡単にするため、特定のシステムを参照してプロセス900の各部を説明する。
Lease Agent Redistribution Process An embodiment of the lease agent redistribution process 900 is shown in FIG. 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, distribution system 222, and distribution system 204, to name a few examples. Although any number of systems may be used to implement process 900, in whole or in part, for ease of explanation, each part of process 900 will be described with reference to a particular system.

プロセス900は、ブロック902で開始される。ここで、例えば、第1のリースエージェント102に関連する分配システム222は、別の、または第2のリースエージェント102がもはや使用できないとの指示を受信する。第2のリースエージェント102がもはや使用できないと指示することは、例えば、pingまたはステータスチェックに基づいて決定されてもよい。他の場合には、分配システム222は、第2のリースエージェント102によってメッセージが承認されなかったときに、リースエージェント102がもはや使用できないと判定してもよい。さらに他の実施形態では、第2のリースエージェントがもはや使用できないことをユーザが指定してもよい。ある事例では、プロセス900は、分配システム204によって実行されてもよい。   Process 900 begins at block 902. Here, for example, the distribution system 222 associated with the first lease agent 102 receives an indication that another or second lease agent 102 is no longer available. Indicating that the second lease agent 102 is no longer available may be determined based on, for example, a ping or status check. In other cases, the distribution system 222 may determine that the lease agent 102 is no longer available when the message is not approved by the second lease agent 102. In yet other embodiments, the user may specify that the second lease agent is no longer available. In certain instances, process 900 may be performed by distribution system 204.

ブロック904では、分配システム222は、もはや使用できないリースエージェント102に割り当てられている制作者システム106を特定する。この制作者システム106は、制作者リポジトリ220及び/またはエージェントリポジトリ206にアクセスすることによって特定されてもよい。ブロック906では、分配システム222は、ブロック904で特定された制作者システム106を残りのリースエージェント102間に分配する。ある場合には、ブロック906は、分配プロセスが発生していることを残りのリースエージェント102に通知することを含んでもよく、それにより、ブロック610に関して先に説明したように、複数のリースエージェントが、特定された制作者システム106を同時に分配することを避けるようにする。   At block 904, the distribution system 222 identifies the producer system 106 that is assigned to the lease agent 102 that is no longer available. This publisher system 106 may be identified by accessing the publisher repository 220 and / or the agent repository 206. At block 906, the distribution system 222 distributes the producer system 106 identified at block 904 among the remaining lease agents 102. In some cases, block 906 may include notifying the remaining lease agents 102 that a distribution process is occurring so that, as described above with respect to block 610, multiple lease agents may be present. Avoid distributing the specified author system 106 simultaneously.

いくつかの実施形態では、ブロック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 redistributing 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 publisher systems 106. As described above, the distribution of the producer system 106 may be duplicated, non-overlapping, equally, unequal, and / or based on the type of producer. Accordingly, in some embodiments, block 906 may include some or all of the embodiments described above with respect to block 610. Further, in some cases, distributing the producer system 106 that was 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, when the producer system 106 that provides the storage service or storage resource is exclusively assigned to the second lease agent 102, the producer system 106 assigned to the second lease agent 102 is stored in the storage system. Redistribution may also be made among a subset of lease agents 102 that are also assigned exclusively to producer systems 106 that provide service or storage resources.

ブロック908では、分配システム222は、依然として使用可能な各リースエージェント102に新たに割り当てられた制作者システム106の識別情報を用いて、残りのリースエージェント102を更新する。   At block 908, the distribution system 222 updates the remaining lease agents 102 with the producer system 106 identification information newly assigned to each lease agent 102 that is still available.

いくつかの実施形態では、プロセス900を使用して、リースエージェント102の追加またはリースエージェント102の置き換えを行うようにしてもよい。そのような場合、ブロック904は、全ての使用可能な制作者システム106を特定してブロック906で分配するようにしてもよい。ある場合には、使用可能な制作者システム106は、以前の時間に使用可能であった制作者システム106と同じであってもよい。他の場合には、一組の制作者システム106は、制作者システム106の削減または制作者システム106の追加によって変わった可能性がある。リースエージェント102を一対一で置き換える場合には、新しいリースエージェントを、これが置き換えるリースエージェントの制作者システム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, block 904 may identify all available author systems 106 and distribute them at block 906. In some cases, the available author system 106 may be the same as the author system 106 that was available at the previous time. In other cases, the set of publisher systems 106 may have changed due to the reduction of the publisher system 106 or the addition of the publisher system 106. When replacing the lease agent 102 on a one-to-one basis, a new lease agent may be assigned to the producer system 106 of the lease agent that it replaces. In such a case, block 906 may be optional and block 908 may include notifying other lease agents that the new lease agent is currently assigned the former lease agent producer system 106. Good.

ヒステリシスベースの制作者選択プロセスの実施例
ヒステリシスベースの制作者選択プロセス1000の実施形態を図10に示す。プロセス1000は、制作者システム106に関連付けられた選択重みを変更して、ブロック410の一部である制作者システム106の選択などの、制作者システムの選択を変更可能とする任意のシステムによって実装することができる。例えば、プロセス1000は、全部または一部において、いくつか例を挙げると、リースエージェント102、ステータスモジュール228及びリースシステム224によって実装することができる。全部または一部において、任意の数のシステムを用いてプロセス1000を実装することができるが、説明を簡単にするため、特定のシステムを参照してプロセス1000の各部を説明する。
Example of a Hysteresis-Based Publisher Selection Process An embodiment of a hysteresis-based publisher selection process 1000 is shown in FIG. Process 1000 is implemented by any system that can change the selection weight associated with publisher system 106 to change the selection of the publisher system, such as the selection of publisher system 106 that is part of block 410. can do. For example, process 1000 may be implemented in whole or in part by lease agent 102, status module 228, and lease system 224, to name a few examples. Although any number of systems may be used to implement process 1000, in whole or in part, for ease of explanation, each part of process 1000 will be described with reference to a particular system.

プロセス1000は、ブロック1002で開始される。ここで、例えば、ステータスモジュール228は、制作者システム106に関連するステータスメタデータを消費者システム104から受信する。このステータスメタデータは、消費者システム104が制作者システム106との対話に基づいて決定した情報に加えて、制作者システム106によって消費者システム104に提供された情報を含んでもよい。例えば、ステータスメタデータには、制作者システム106の応答時間、制作者システム106が所定時刻にサービスを提供している消費者システム104の数、制作者システム106が一定時間に平均してサービスを提供する消費者システム104の数などに関する情報が含まれてもよい。いくつかの実施形態では、ブロック1002は、ブロック404に関して上述した実施形態の一部または全てを含むことができる。   Process 1000 begins at block 1002. Here, for example, the status module 228 receives status metadata associated with the producer system 106 from the consumer system 104. This status metadata may include information provided by the producer system 106 to the consumer system 104 in addition to information determined by the consumer system 104 based on interaction with the producer system 106. For example, status metadata includes the response time of the producer system 106, the number of consumer systems 104 that the creator system 106 provides services at a predetermined time, and the creator system 106 that averages the service over a certain period of time. Information regarding the number of consumer systems 104 to be provided may be included. In some embodiments, block 1002 can include some or all of the embodiments described above with respect to block 404.

さらに、ある場合には、ステータスモジュール228は、消費者システム104がリースエージェント102と最後に通信してから消費者システム104が通信した一組の制作者システム106に関連するステータスメタデータを受信してもよい。ステータスメタデータは、制作者システム106への更新されたアクセスを求める消費者システム104からの更新要求の一部として受信されてもよい。他の場合には、ステータスメタデータは、消費者システム104からの新たなリース要求の一部として受信されてもよい。   Further, in some cases, status module 228 receives status metadata associated with a set of producer systems 106 with which consumer system 104 has communicated since consumer system 104 last communicated with lease agent 102. May be. Status metadata may be received as part of an update request from the consumer system 104 that seeks updated access to the producer system 106. In other cases, status metadata may be received as part of a new lease request from consumer system 104.

ブロック1004では、ステータスモジュール228は、ブロック1002で受信した対応するステータスメタデータに基づき、1つ以上の制作者システム106の制作者ステータス情報を更新する。あるいは、または加えて、ステータスモジュール228は、受信したステータスメタデータの少なくとも一部が、別のリースシステム102に関連付けられた制作者システム106のためのものであると判定してもよく、従って、このステータス情報を、その制作者システム106に割り当てられているリースエージェント102に提供してもよい。ある場合には、ブロック1002及び1004に関連するプロセスは、ある種の「ゴシップアルゴリズム」として機能することができるが、それは、リースエージェント102が複数の制作者システム106のそれぞれに割り当てられているかどうかに関わらず、消費者システム104といくつかの制作者システム106のそれぞれとの対話についての情報を消費者システム104がリースエージェント102に提供しているためである。つまり、リースエージェント102は、別のリースエージェント102に割り当てられている制作者システム106についての「ゴシップ」を取得してもよい。次いで、リースエージェント102は、その制作者システム106に割り当てられているリースエージェント102に「ゴシップ」を広げることができる。有利には、ある実施形態では、この「ゴシップアルゴリズム」を用いることにより、リースエージェント102は、指定されたステータスの更新の合間に制作者システム106からステータスメタデータを取得することができる。制作者システム106に加えて消費者システム104からステータスメタデータを取得することにより、「ゴシップアルゴリズム」を使用しないシステムに比べて、リースすべき制作者システム106の選択を一層最適化することができる。「ゴシップ」、すなわちフィードバック情報を取得することにより、コンピューティングシステムを選択してサービスを提供できるようにするシステム及び方法の別の実施形態は、2009年8月20日出願の「DECENTRALIZED REQUEST ROUTING」と題する米国出願第12/544,517号に記載されており、参照により本明細書に本出願全体を援用する。いくつかの実施形態では、ブロック1002は、ブロック406及び/またはブロック408に関して上述した実施形態の一部または全てを含むことができる。   At block 1004, the status module 228 updates the author status information of one or more publisher systems 106 based on the corresponding status metadata received at block 1002. Alternatively or additionally, status module 228 may determine that at least a portion of the received status metadata is for a producer system 106 associated with another leasing system 102, and thus This status information may be provided to the lease agent 102 assigned to the producer system 106. In some cases, the process associated with blocks 1002 and 1004 can function as a kind of “gossip algorithm”, which determines whether lease agent 102 is assigned to each of a plurality of producer systems 106. Regardless, the consumer system 104 provides the lease agent 102 with information about the interaction between the consumer system 104 and each of several producer systems 106. That is, the lease agent 102 may acquire a “gossip” for the producer system 106 assigned to another lease agent 102. The lease agent 102 can then extend the “gossip” to the lease agent 102 assigned to that producer system 106. Advantageously, in one embodiment, using this “gossip algorithm”, the lease agent 102 can obtain status metadata from the producer system 106 between specified status updates. By obtaining status metadata from the consumer system 104 in addition to the producer system 106, the selection of the producer system 106 to be leased can be further optimized compared to a system that does not use the “gossip algorithm”. . Another embodiment of a system and method that allows “gossip”, ie, obtaining a feedback information, to select a computing system to provide services is described in “DECENTRALIZED REQUEST ROUTING” filed Aug. 20, 2009. No. 12 / 544,517, which is incorporated herein 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 status module 228 determines whether the updated producer 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 may include any metric regarding the health of the producer system. Some non-limiting examples of load metrics include error rate, memory utilization, number 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 metrics, process 1000 returns to block 1002 to await 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 alternatively or additionally includes determining whether there is a change in a value associated with one or more other metrics associated with the author system 106. But you can. For example, the status module 228 may determine whether the updated publisher status information indicates a change in response time by the publisher system 106 or a change in available resources by the publisher system 106. In some cases, the decision block 1006 may use the updated load metric measurements of the producer system 106 for each publisher system 106 in the network environment 100 or each producer system assigned to the lease agent 102. Comparing with the measured value of the average load metric may also be included.

更新済みの制作者ステータス情報が、制作者システム106の負荷測定基準に変化があったことを示している場合、ステータスモジュール228は、ブロック1008にて、変化のあった負荷測定基準の計測値に少なくとも部分的に基づき、その制作者システム106に関連付けられた選択重みを変更する。選択重みを変更することは、誤り率の変化が、誤り率の上昇を示しているか、それとも誤り率の低下を示しているかに基づいて選択重みを増加または減少させることを含むことができる。いくつかの実施形態では、制作者システム106を選択重みに関連付けない。このような実施形態では、判定ブロック1006で検出された負荷測定基準、または追跡対象の他の測定基準の変化が、対応する閾値を満たした、または超えた場合、ステータスモジュール228は、その制作者システムが機能不良または使用不能であると判定してもよい。その際、制作者システム106がもはや機能不良または使用不能であると判定することに関わる閾値に負荷測定基準が到達した場合、管理者などのユーザに警告を発してもよい。さらに、ある場合には、制作者システム106の可用性に関係なく、負荷測定基準または選択重みによって閾値が変化した場合、ユーザに警告を発してもよい。   If the updated author status information indicates that the load metric of the author system 106 has changed, the status module 228 may change the measured value of the changed load metric at block 1008. Based at least in part, the selection weight associated with the publisher system 106 is changed. Changing the selection weight can include increasing or decreasing the selection weight based on whether the change in error rate indicates an increase in the error rate or a decrease in the error rate. In some embodiments, publisher system 106 is not associated with selection weights. In such an embodiment, if the load metric detected at decision block 1006, or other metric changes to be tracked, meet or exceed a corresponding threshold, the status module 228 may indicate that the author It may be determined that the system is malfunctioning or unusable. At that time, if the load metric reaches a threshold related to determining that the producer system 106 is no longer malfunctioning or unusable, a warning may be issued to a user, such as an administrator. Further, in some cases, a warning may be issued to the user if the threshold changes due to load metrics or selection weights, regardless of the availability of the producer system 106.

ある実施形態では、制作者システム106に関連付けられた選択重みを使用することにより、先に説明したプロセス400に関連するブロック410の一部として消費者システムにリースすべき使用可能な制作者システム106を選択することが容易となり得る。制作者システム106の選択重み及び/または可用性ステータスは、制作者リポジトリ220及び/またはエージェントリポジトリ206に記憶されてもよい。   In one embodiment, the available producer system 106 that should be leased to the consumer system as part of block 410 associated with the process 400 described above by using selection weights associated with the producer system 106. Can be easily selected. The selection weight and / or availability status of the publisher system 106 may be stored in the publisher repository 220 and / or the agent repository 206.

オーバーレイネットワーク環境の概要
制作者システムによってホストされたサービスへのアクセスを消費者システムに提供するオーバーレイネットワーク環境1100の実施形態を図11に示す。オーバーレイネットワーク環境1100は、1つ以上のオーバーレイネットワーク、または仮想ネットワークを1つ以上の組織またはエンティティに提供することができる任意の種類のシステムを含むことができる。これらのオーバーレイネットワークは、物理ネットワークまたは非仮想ネットワークを形成し得るコンピューティングハードウェア上に実装され得る。本開示と共に使用可能なオーバーレイネットワークまたは仮想ネットワークのいくつかの実施例については、2010年6月30日に出願された米国出願第12/827,268号(現在は米国特許第8,296,459号)に記載されており、参照により本明細書にその開示全体を援用する。
Overview of Overlay Network Environment An embodiment of an overlay network environment 1100 that provides consumer systems with access to services hosted by the producer system is shown in FIG. Overlay network environment 1100 can include one or more overlay networks, or any type of system that can provide a virtual network to one or more organizations or entities. These overlay networks may be implemented on computing hardware that may form a physical network or a non-virtual network. For some examples of overlay or virtual networks that can be used with this disclosure, see US application Ser. No. 12 / 827,268, filed Jun. 30, 2010 (currently US Pat. No. 8,296,459). No.), the entire disclosure of which is incorporated herein 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 via network 202. Each lease agent 102 may include some or all of the subsystems shown and described with respect to FIG. Thus, for example, the lease agent 102 may include a producer repository 220, a distribution system 222, a lease system 224, a registration module 226, and a status module 228. Each of these subsystems comprising the lease agent 102 may have the same functionality as described above with respect to FIG. 2, but in some cases, modifications or additions to the functionality of these subsystems may be made. You may go. For example, in addition to or instead of receiving status information regarding the consumer system 104 and the producer system 106, the status module 228 may include a consumer host 1104, a producer host 1106, a consumer virtual machine 1142, and a producer. Status information regarding one or more of the virtual machines 1162 can be received. Similarly, the producer repository 220 may include information regarding one or more of the consumer host 1104, the producer host 1106, the consumer virtual machine 1142, and the producer virtual machine 1162.

ある場合には、分配システム222を使用して、オーバーレイネットワーク環境1100のリースエージェント102間に制作者仮想マシン1162を分配することができる。さらに、特定のオーバーレイネットワークに関連付けられた制作者仮想マシン1162を、他のオーバーレイネットワークに関連付けられた制作者仮想マシン1162とは無関係に分配することができる。従って、例えば、制作者仮想マシンB”とは無関係に、制作者仮想マシンB’をリースエージェント102に分配してもよい。ある場合には、使用可能なリースエージェント102のサブセットを、特定のオーバーレイネットワークに関連付けてもよい。そのような場合、この特定のオーバーレイネットワークに関連付けられた制作者仮想マシン1162及び消費者仮想マシン1142は、使用可能なリースエージェント102のサブセットへの通信を制限してもよい。   In some cases, the distribution system 222 can be used to distribute the producer virtual machine 1162 between the lease agents 102 of the overlay network environment 1100. Further, publisher virtual machines 1162 associated with a particular overlay network can be distributed independently of publisher virtual machines 1162 associated with other overlay networks. Thus, for example, the producer virtual machine B ′ may be distributed to the lease agents 102 independently of the producer virtual machine B ″. In some cases, a subset of the available lease agents 102 may be assigned a particular overlay In such a case, the producer virtual machine 1162 and consumer virtual machine 1142 associated with this particular overlay network may restrict communication to a subset of available lease agents 102. Good.

さらに、リースシステム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 in addition to the factors described above with respect to selecting the producer system 106 to lease to the consumer system 104. Furthermore, the creator virtual machine 1162 can be registered with the lease agent 102 using the registration module 226.

図11には1つの消費者ホスト1104のみを示すが、オーバーレイネットワーク環境は、複数の消費者ホスト1104を含むことができる。各消費者ホスト1104は、複数の消費者仮想マシン1142を含んでもよい。消費者仮想マシン1142の一部を、消費者ホスト1104によってホストされた他の消費者仮想マシン1142とは異なるオーバーレイネットワークに関連付けてもよい。例えば、消費者ホスト1104は、異なるオーバーレイネットワークにそれぞれ関連付けられた2つの消費者仮想マシン1142を含む。消費者仮想マシンA’を、制作者仮想マシンB’も含み得る第1のオーバーレイネットワークに関連付けてもよく、消費者仮想マシンA”を、制作者仮想マシンB”も含み得る第2のオーバーレイネットワークに関連付けてもよい。   Although only one consumer host 1104 is shown in FIG. 11, the overlay network environment can include multiple consumer hosts 1104. Each consumer host 1104 may include a plurality of consumer virtual machines 1142. A portion of the consumer virtual machine 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 also include a producer virtual machine B ″. You may associate with.

消費者仮想マシン1142に加えて、消費者ホスト1104は、オーバーレイネットワークプロキシ1114、リースリクエスタ1130、仮想マシンマッピングリポジトリ1150及びステータスモジュール1132を含んでもよい。オーバーレイネットワークプロキシ1114は、消費者仮想マシン1142からのサービス要求を処理することができ、制作者仮想マシン1162をホストしている制作者ホスト1106に対して処理すべきサービス要求を提供することができる任意のシステムを含むことができる。いくつかの実施形態では、消費者仮想マシン1142から受信したサービス要求は、制作者仮想マシン1162、または消費者仮想マシン1142の信頼によってそのサービス要求を処理可能な非存在システムに関連付けられた仮想アドレスを含んでもよい。仮想アドレスを伴うサービス要求を受信すると、オーバーレイネットワークプロキシ1114は、そのサービス要求を処理する制作者仮想マシン1162を、当該サービス要求を提供した消費者仮想マシン1142と同じオーバーレイネットワーク内で特定することができる。次いで、オーバーレイネットワークプロキシ1114は、その仮想アドレスを、特定された制作者仮想マシン1162のアドレスに置き換えることができる。以下でより詳しく説明するように、制作者仮想マシン1162を、サービス要求を提供した消費者仮想マシン1142に関連付けられたリース用制作者仮想マシン1162のプールから特定してもよい。さらに、オーバーレイネットワークプロキシ1114は、特定された制作者仮想マシン1162をホストする制作者ホスト1106と消費者ホスト1104とを特定するヘッダまたは外部ヘッダを用いて、サービス要求をラップまたはカプセル化することができる。   In addition to the consumer virtual machine 1142, the consumer host 1104 may include an overlay network proxy 1114, a lease requester 1130, a virtual machine mapping repository 1150, and a status module 1132. The overlay network proxy 1114 can process service requests from the consumer virtual machine 1142 and can provide service requests to be processed to the producer host 1106 hosting the producer virtual machine 1162. Any system can be included. In some embodiments, the service request received from the consumer virtual machine 1142 is a virtual address associated with the producer virtual machine 1162 or a non-existent system that can process the service request with the trust of the consumer virtual machine 1142. May be included. Upon receiving a service request with a virtual address, the overlay network proxy 1114 may 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. it can. 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, the producer virtual machine 1162 may be identified from a pool of lease producer virtual machines 1162 associated with the consumer virtual machine 1142 that provided the service request. Further, the overlay network proxy 1114 may wrap or encapsulate the service request with a header or external header that identifies the producer host 1106 and the consumer host 1104 that host the identified publisher virtual machine 1162. it can.

仮想マシンマッピングリポジトリ1150は、消費者仮想マシン1142の代わりに、リース対象の制作者仮想マシン1162のプールを記憶することができる。さらに、仮想マシンマッピングリポジトリ1150は、制作者仮想マシン1162をホストする、対応する制作者ホスト1106の識別情報を記憶することができる。制作者仮想マシン1162及び制作者ホスト1106の識別情報を記憶することは、制作者仮想マシン1162及び制作者ホスト1106にアクセスするためのアドレス指定情報を記憶することを含むことができる。   The virtual machine mapping repository 1150 can store a pool of producer virtual machines 1162 to be leased instead of 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 on behalf of the consumer virtual machine 1142, the consumer host 1104 can include a lease requester 1118 that can generate a lease request on behalf of the consumer virtual machine 1142 hosted by the consumer host 1104. it can. The lease requester 1118 may identify a particular overlay virtual machine and / or a particular consumer virtual machine 1142 that is requesting a lease for the producer virtual machine 1162.

ステータスモジュール1132は、ステータスモジュール242に関して上述した実施形態の一部または全てを含むことができる。さらに、ステータスモジュール1132は、制作者仮想マシン1162と制作者ホスト1106との通信に基づき、制作者仮想マシン1162及び/または制作者ホスト1106のステータス情報を提供することができる。   The status module 1132 can include some or all of the embodiments described above with respect to the status module 242. Further, the status module 1132 can provide status information of the producer virtual machine 1162 and / or the producer host 1106 based on communication between the producer virtual machine 1162 and the producer host 1106.

消費者ホスト1104と同様に、オーバーレイネットワーク環境1100は、任意の数の制作者ホスト1106を含むことができ、これらのそれぞれは、1つ以上のオーバーレイネットワークに関連付けられた1つ以上の制作者仮想マシン1162を含むことができる。さらに、各制作者ホスト1106は、オーバーレイネットワークプロキシ1116、仮想マシンマッピングリポジトリ1152及びステータスモジュール1134を含むことができる。   Similar to the consumer host 1104, the overlay network environment 1100 can include any number of publisher hosts 1106, each of which has one or more publisher virtuals associated with one or more overlay networks. A machine 1162 can be included. In addition, each publisher 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 can include any system that processes service requests received from consumer host 1104 and processes to respond to received service requests. Upon receiving the service request, the overlay network proxy 1116 can determine the creator virtual machine 1162 that will process the service request based on the information included in the header of the service request. Further, in some cases, a specific overlay network may be identified by the service request, and this overlay network may be used to easily identify the producer virtual machine 1162 that will process the service request.

仮想マシンマッピングリポジトリ1152は、どの制作者仮想マシン1162がどのオーバーレイネットワークに関連付けられているかを特定する情報を記憶することができる。さらに、仮想マシンマッピングリポジトリ1152は、どの消費者ホスト1104が特定の消費者仮想マシン1142をホストしているかを容易に特定するための情報を記憶することができる。この情報を使用して、サービス要求に対する応答を提供する消費者ホスト1104を決定することができる。   The virtual machine mapping repository 1152 can store information identifying which author virtual machine 1162 is associated with which overlay network. Further, the virtual machine mapping repository 1152 can store information for easily 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に提供することができる。   Similar to status module 1132, status module 1134 can include one or more of the embodiments described above with respect to status module 262. Further, the status module 1134 can provide status information regarding the creator virtual machine 1162 to the lease agent 102.

消費者ホスト1104及び制作者ホスト1106における点線によって示すように、本明細書に開示されたプロセスを可能とする下層システムは、消費者(例えばクライアント)及び制作者(例えばサーバまたはサービス提供者)からなる1つ以上のオーバーレイネットワークを形成する仮想マシンから分離することができる。ある場合には、下層システム(例えば、オーバーレイネットワークプロキシ1114及び1116)は、消費者ホスト1104及び制作者ホスト1106のネットワーク接続基盤の一部として実装することができる。有利には、ある実施形態では、下層システムを仮想マシンから分離することにより、オーバーレイネットワークに影響を与えずにリース構造の実装、保守及び変更を行うことができる。   As indicated by the dotted lines in consumer host 1104 and producer host 1106, the underlying system that enables the processes disclosed herein is from consumers (eg, clients) and producers (eg, servers or service providers). Can be separated from the virtual machines forming one or more overlay networks. In some cases, underlying systems (eg, overlay network proxies 1114 and 1116) may be implemented as part of the consumer host 1104 and producer host 1106 network connectivity infrastructure. Advantageously, in some embodiments, the underlying system can be separated from the virtual machine so that the lease structure can be implemented, maintained and modified without affecting the overlay network.

いくつかの実施形態では、消費者ホスト104は、消費者仮想マシン1142と制作者仮想マシン1162の両方をホストすることができる。さらに、いくつかの実施形態では、制作者ホスト1106は、消費者仮想マシン1142と制作者仮想マシン1162の両方をホストすることができる。さらに、消費者仮想マシン1142及び制作者仮想マシン1162を仮想マシンとして説明してきたが、これらはそのように限定されることはない。いくつかの実施形態では、オーバーレイネットワークは、消費者ホスト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 embodiments, producer host 1106 can host both consumer virtual machine 1142 and producer virtual machine 1162. Furthermore, although consumer virtual machine 1142 and producer virtual machine 1162 have been described as virtual machines, they are not so limited. In some embodiments, the overlay network may be part of the consumer host 1104 and the producer host 1106, or may be allocated hardware and / or software resources executed by them. Using these resources instead of virtual machines, producer systems and consumer systems may be implemented as part of an overlay network.

ある場合には、オーバーレイネットワーク環境1100に対して実行されるように、ネットワーク環境100に関して先に説明したプロセスの1つ以上を実行または変更してもよい。従って、例えば、プロセス900を実行して、オーバーレイネットワーク環境1100内のリースエージェントを再分配してもよい。第2の実施例として、プロセス700及び800を実行して、オーバーレイネットワーク環境1100内のリースエージェント102に制作者仮想マシン1162を登録することができる。   In some cases, one or more of the processes described above with respect to network environment 100 may be performed or modified to be performed on overlay network environment 1100. Thus, for example, process 900 may be performed to redistribute lease agents within 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.

制作者仮想マシンのサービスにアクセスするプロセスの実施例
制作者仮想マシンのサービスにアクセスするプロセス1200の実施形態を図12に示す。プロセス1200は、制作者仮想マシンによって提供されるサービスにアクセスする消費者仮想マシンからの要求を処理可能な任意のシステムによって実行することができる。例えば、プロセス1200は、全部または一部において、いくつか例を挙げると、消費者ホスト1104、リースエージェント102、オーバーレイネットワークプロキシ1114及びリースリクエスタ1118によって実装することができる。全部または一部において、任意の数のシステムを用いてプロセス1200を実装することができるが、説明を簡単にするため、特定のシステムを参照してプロセス1200の各部を説明する。
Example Process for Accessing a Publisher Virtual Machine Service An embodiment of a process 1200 for accessing a publisher virtual machine service is shown in FIG. Process 1200 may be performed by any system capable of processing a request from a consumer virtual machine that accesses a service 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. Although process 1200 may be implemented using any number of systems, in whole or in part, for ease of explanation, each part of process 1200 will be described with reference to a particular system.

ある場合には、プロセス1200を使用することにより、消費者仮想マシンが、制作者システムによって提供されるサービスにアクセスすることができるようにしてもよい。同様に、いくつかの実施形態では、プロセス1200を使用することにより、消費者システムが、制作者仮想マシンによって提供されるサービスにアクセスすることができるようにしてもよい。しかしながら、説明を簡単にするために、制作者仮想マシンのサービスへのアクセスを試みる消費者仮想マシンに関してプロセス1200を説明する。   In some cases, process 1200 may be used to allow a consumer virtual machine to access services provided by the 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, for ease of explanation, the process 1200 will be described with respect to a consumer virtual machine attempting to access the services of the producer virtual machine.

プロセス1200は、ブロック1202で開始される。ここで、例えば、消費者ホスト1104(例えば、消費者ホストA)のオーバーレイネットワークプロキシ1114は、消費者仮想マシン1142(例えば、消費者仮想マシンA’)から、制作者のサービスへのアクセスを求める要求を受信する。あるいは、または加えて、ブロック1202で受信した要求は、制作者に提供されるデータパケットであってもよい。例えば、このデータパケットは、サービスと組み合わせて、あるいは消費者仮想マシンが既にアクセスを確立した制作者のサービスを利用しやすくするために使用されるデータであってよい。いくつかの実施形態では、上記要求がヘッダ付きのパケットを含み、このヘッダにより、当該要求またはパケットが、消費者仮想マシン1142に関連付けられたアドレスAから仮想アドレスXに向けたものであることを示すようにしてもよい。例えば、受信パケットは{A’、X、データ}のようになり得るが、これは、A’からXにデータが送信されていることを示す。パケットのデータフィールドは、要求または操作を制作者仮想マシン1162にて容易に実行するための要求及び/またはデータを含んでもよい。ある実施形態では、消費者仮想マシン1142は、アドレスXが仮想アドレスであることを認識していなくてもよいが、その代わりに、アドレスXが物理的な制作者システムを指していると信頼してもよい。さらに、先に述べたように、いくつかの実施形態では、オーバーレイネットワークは、消費者仮想マシン以外に、またはそれに加えて消費者システムを含んでもよい。このような実施形態では、ブロック1202は、制作者のサービスへのアクセスを求める要求を、消費者ホスト1104上に実装され、またはそれによってホストされた消費者システムから受信することを含んでもよい。同様に、制作者ホストは、消費者システムにサービスを提供するように構成され得る制作者仮想マシン以外に、またはそれに加えて制作者システムを含んでもよい。   Process 1200 begins at block 1202. Here, for example, the overlay network proxy 1114 of the consumer host 1104 (eg, consumer host A) seeks access to the producer's service from the consumer virtual machine 1142 (eg, consumer virtual machine A ′). Receive a request. Alternatively or in addition, the request received at block 1202 may be a data packet provided to the producer. For example, the data packet may be data used in combination with a service or to make it easier for a consumer virtual machine to use the services of a producer that has already established access. In some embodiments, the request includes a packet with a header that indicates that the request or packet is from address A associated with consumer virtual machine 1142 to virtual address X. You may make it show. For example, the received packet may be {A ', X, data}, which indicates that data is being transmitted from A' to X. The data field of the packet may include a request and / or data for facilitating the request or operation at the producer virtual machine 1162. In one embodiment, consumer virtual machine 1142 may not be aware that address X is a virtual address, but instead trusts that address X refers to a physical producer system. May be. Further, as mentioned 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 a request for access to the producer's service from a consumer system implemented on or hosted by consumer host 1104. Similarly, a producer host may include a producer system in addition to 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 is to access the virtual machine mapping repository 1150 so that the lease pool associated with the consumer virtual machine 1142 is It may include determining whether there is. Further, in some cases, decision block 1204 may include determining whether an unused producer virtual machine lease associated with consumer virtual machine 1142 is included in the lease pool.

オーバーレイネットワークプロキシ1114が、判定ブロック1204にて、消費者仮想マシン1142に関連付けられた未使用の制作者仮想マシン用リースがないことを判定した場合、リースリクエスタ1130は、制作者仮想マシンにアクセスするための複数のリースをブロック1206で取得する。1つ以上の制作者仮想マシンにアクセスするための1つ以上のリースを取得するプロセスの実施例については、図14に関して以下でより詳しく説明する。   If overlay network proxy 1114 determines at decision block 1204 that there are no unused producer virtual machine leases associated with consumer virtual machine 1142, lease requester 1130 accesses the producer virtual machine. A plurality of leases are obtained at block 1206. An example of a process for obtaining one or more leases for accessing one or more producer virtual machines is described in more detail below with respect to FIG.

ブロック1208では、オーバーレイネットワークプロキシ1114は、ブロック1206で取得したリース用制作者仮想マシン1162との接続の確立を試みる。ある場合には、ブロック1208は、オーバーレイネットワークプロキシ1114が接続を正常に確立した各リース用制作者仮想マシンに関連付けられたリース情報を記憶することを含むことができる。   At block 1208, the overlay network proxy 1114 attempts to establish a connection with the lease producer virtual machine 1162 obtained at block 1206. In some cases, block 1208 can include storing lease information associated with each lease producer virtual machine with which overlay network proxy 1114 has successfully established a connection.

リース用制作者仮想マシンとの接続をオーバーレイネットワークプロキシ1114がブロック1208で確立した後、または、消費者仮想マシン1142に関連付けられた未使用の制作者仮想マシン用リースがあることをオーバーレイネットワークプロキシ1114が判定ブロック1204で判定した場合、プロセス1200はブロック1210に進む。ブロック1210では、オーバーレイネットワークプロキシ1114は、消費者仮想マシン1142によって要求されたサービスにアクセスするためのリース用制作者仮想マシン1162を選択する。制作者仮想マシン1162は、ラウンドロビンまたは最低使用頻度などの任意の種類の選択アルゴリズムを用いて選択されてもよい。他の場合には、制作者仮想マシン1162は、制作者仮想マシン1162と接続を確立した順序に基づいて選択されてもよい。さらに他の場合には、制作者仮想マシン1162は、ランダムに選択されてもよく、かつ/またはブロック1202で受信したサービス要求に基づいて選択されてもよい。あるいは、ある場合には、オーバーレイネットワークプロキシ1114は、制作者仮想マシン1142の選択を容易にするために仮想マシンマッピングリポジトリ1150にアクセスしてもよい。例えば、オーバーレイネットワークプロキシ1114は、リースプールにアクセスしてもよい。このリースプールは、使用可能な制作者仮想マシン1162を特定するテーブルとして記憶され得るものであり、仮想マシンマッピングリポジトリ1150に記憶されている。   Overlay network proxy 1114 indicates that there is an unused producer virtual machine lease associated with consumer virtual machine 1142 after overlay network proxy 1114 establishes a connection with lease producer virtual machine at block 1208. If the determination is at decision block 1204, process 1200 proceeds to block 1210. At block 1210, overlay network proxy 1114 selects lease producer virtual machine 1162 for access to the service requested by consumer virtual machine 1142. The publisher virtual machine 1162 may be selected using any type of selection algorithm, such as round robin or least frequently used. In other cases, the publisher virtual machine 1162 may be selected based on the order in which the publisher virtual machine 1162 has established a connection. In yet other cases, the producer virtual machine 1162 may be selected randomly and / or based on the service request received at block 1202. Alternatively, in some cases, overlay network proxy 1114 may access virtual machine mapping repository 1150 to facilitate selection of producer virtual machine 1142. For example, the overlay network proxy 1114 may access the lease pool. This lease pool can be stored as a table for identifying the available producer virtual machine 1162, and is stored in the virtual machine mapping repository 1150.

ある場合には、オーバーレイネットワークプロキシ1114は、負荷が閾値を下回っているリース用制作者仮想マシン1162を選択してもよい。その際、オーバーレイネットワークプロキシ1114は、負荷が閾値を下回っている制作者仮想マシン1162からランダムに選択してもよい。この負荷は、制作者仮想マシン1162の利用状況に関する任意の計測可能な測定基準を表してもよい。例えば、上記負荷は、プロセッサの負荷、ネットワーク接続の負荷、制作者仮想マシン1162との消費者接続数、接続時の最低レイテンシ、制作者仮想マシン1162の効率の度合いなどを表してもよい。   In some cases, the overlay network proxy 1114 may select the lease producer virtual machine 1162 whose load is below the threshold. At that time, the overlay network proxy 1114 may select at random from the creator virtual machine 1162 whose load is below the threshold. This load may represent any measurable metric regarding the usage status of the creator virtual machine 1162. For example, the load may represent a processor load, a network connection load, the number of consumer connections with the creator virtual machine 1162, the minimum latency at the time of connection, the degree of efficiency of the creator virtual machine 1162, and the like.

さらに、ある場合には、各リースを費用に関連付けてもよい。例えば、消費者、または消費者に関連するエンティティに対し、利用した秒単位で、通信もしくは処理されたデータのメガバイト単位で、または制作者仮想マシン1162の計算サイクル単位で請求してもよい。その際、オーバーレイネットワークプロキシ1114は、使用可能なリース用制作者仮想マシン1162の費用に基づいてリース用制作者仮想マシン1162を選択してもよい。   Further, in some cases, each lease may be associated with a cost. For example, a consumer, or an entity associated with the consumer, may be charged in seconds used, in megabytes of data communicated or processed, or in the calculation cycle of the producer virtual machine 1162. In doing so, the overlay network proxy 1114 may select the lease producer virtual machine 1162 based on the cost of the available lease 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 replaces the producer's address (eg, virtual address X) included in the request header (eg, internal header) with the address of the lease producer virtual machine 1162 selected at block 1210. replace. Thus, for example, the packet received at block 1202 can now be {A ', B', data}. In some embodiments, block 1212 may be optional. For example, in some embodiments, each lease producer virtual machine 1162 may be associated with a port. Therefore, instead of replacing the virtual address X with the address of the lease creator virtual machine 1162, the packet may be transmitted to the producer in the host via the port associated with the lease creator virtual machine 1162. . As a second embodiment, the packet may be transmitted to the producer host, and the producer host may determine the lease producer virtual machine 1162 that receives the packet based on the 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 lease producer virtual machine. The publisher host 1106 may 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つのヘッダの代わりに1つのヘッダが含まれる。いくつかの実施形態では、ブロック1216は、ブロック1202で要求を提供した消費者仮想マシン1142とブロック1210で特定された制作者仮想マシン1162とに関連付けられたオーバーレイネットワークの識別情報を含んでもよい。従って、例えば、パケットは、{A、B、‘、A’、B’、データ}のように、”のオーバーレイネットワークまたは第2のオーバーレイネットワークではなく‘のオーバーレイネットワークまたは第1のオーバーレイネットワークに要求が関連付けられていることを示してもよい。これは、当該パケットが消費者ホストAから制作者ホストBに送信されていることを示すと共に、そのサービス要求が、消費者仮想マシンから、‘のオーバーレイネットワークに含まれる制作者仮想マシンへのものであることを示す。有利には、いくつかの実施形態では、オーバーレイネットワークの識別情報をサービス要求及びサービス要求に対する応答に含めることにより、異なるオーバーレイネットワーク間でアドレスが再度使用され得る。しかしながら、各仮想マシン及び各システムが固有のアドレスに関連付けられている場合、オーバーレイネットワークの識別情報を提供することは任意であってよい。   Overlay network proxy 1114 encapsulates the request with an outer header at block 1216. In this outer header, the producer host 1106 identified in block 1214 and the consumer host 1104 associated with the consumer virtual machine 1142 are identified. Thus, for example, a packet could be {A, B {A ', B', data}} here. This indicates that the packet is transmitted from the consumer host A to the producer host B. Alternatively, in some cases, the identification information of producer host 1106 and consumer host 1104 may be included in or added to the request header of the request received at block 1202, whereby the packet is {A, B, A ′, B ′, data}. This indicates that the packet is transmitted from the consumer host A to the producer host B. In such a case, after the process associated with block 1216 is complete, the request includes one header instead of two headers consisting of 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, a packet is requested from the 'overlay network or the first overlay network rather than the' overlay network or the second overlay network, such as {A, B, ', A', B ', data}. May indicate that the packet is being sent from consumer host A to producer host B, and the service request is Indicating that it is for the producer virtual machine included in the overlay network, advantageously, in some embodiments, the overlay network identification information is included in the service request and the response to the service request to provide a different overlay network. Between addresses can be used again, but , If each virtual machine and each system is associated with a unique address, to provide the identity of the overlay network may be arbitrary.

いくつかの実施形態では、オーバーレイネットワークプロキシ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 lease producer virtual machine 1162 selected at block 1210. Further, the state management table can include a mapping from virtual addresses to addresses of the producer virtual machine. Further, the state management table may include a mapping from the producer virtual machine 1162 to each producer host. FIG. 15 shows an example of such a state management table that performs mapping from a virtual address to a creator virtual machine.

ブロック1218では、オーバーレイネットワークプロキシ1114は、ブロック1214で特定された制作者ホストに要求を提供する。この要求は、ネットワーク202を介して制作者ホスト1106に提供されてもよい。   At block 1218, overlay network proxy 1114 provides the request to the publisher host identified at block 1214. This request may be provided to the producer host 1106 via the network 202.

制作者仮想マシンのサービスへのアクセスを求める要求を処理するプロセスの実施例
制作者仮想マシンのサービスへのアクセスを求める要求を処理するプロセス1300の実施形態を図13に示す。プロセス1300は、消費者ホストから受信した、制作者仮想マシンのサービスへのアクセスを求める要求を処理可能な任意のシステムによって実装することができる。例えば、プロセス1300は、全部または一部において、いくつか例を挙げると、制作者ホスト1106、オーバーレイネットワークプロキシ1116及び制作者仮想マシン1162によって実装することができる。全部または一部において、任意の数のシステムを用いてプロセス1300を実装することができるが、説明を簡単にするため、特定のシステムを参照してプロセス1300の各部を説明する。
Example Process for Processing a Request for Access to a Publisher Virtual Machine Service An embodiment of a process 1300 for processing a request for access to a service of a producer virtual machine is shown in FIG. Process 1300 may be implemented by any system capable of processing a request received from a consumer host for access to a service of a producer virtual machine. For example, process 1300 may be implemented in whole or in part by publisher host 1106, overlay network proxy 1116, and publisher virtual machine 1162, to name a few examples. Although any number of systems, in whole or in part, may be used to implement process 1300, for ease of explanation, each part of process 1300 will be described with reference to a particular system.

ある場合には、プロセス1300を使用することにより、制作者仮想マシンが、消費者システムによって要求されたサービスを提供することができるようにしてもよい。同様に、いくつかの実施形態では、プロセス1300を使用することにより、制作者システムが、消費者仮想マシンによって要求されたサービスを提供することができるようにしてもよい。しかしながら、説明を簡単にするために、消費者仮想マシンによって要求されたサービスへのアクセスを提供する制作者仮想マシンに関してプロセス1300を説明する。   In some cases, the process 1300 may be used to allow the producer virtual machine to provide the service requested by the consumer system. Similarly, in some embodiments, the process 1300 may be used to allow the producer system to provide the services requested by the consumer virtual machine. However, for ease of explanation, the process 1300 will be described with respect to a producer virtual machine that provides access to the services requested by the consumer virtual machine.

プロセス1300は、ブロック1302で開始される。ここで、例えば、制作者ホスト1106(例えば、制作者ホストB)のオーバーレイネットワークプロキシ1116は、消費者ホスト1104から要求を受信する。この要求は、例えば、{A、B、‘、A’、B’、データ}のような形を取り得るが、これは、当該パケットが、消費者ホストAから受信されており、かつ制作者ホストBに向けられたものであること、及びそのサービス要求が、消費者仮想マシンから‘のオーバーレイネットワークに含まれる制作者仮想マシンへのものであることを示す。多くの場合、受信した要求は、制作者ホスト1106によってホストされた制作者仮想マシン1162によってホストされているサービスへのアクセスを求める要求である。しかしながら、ある場合には、受信した要求は、その代わりに、制作者仮想マシン1162にデータを提供することにより、消費者ホスト1104によってホストされた消費者仮想マシン1142によってアクセスが既に確立されているサービスを容易に実行するように構成されたデータパケットであってもよい。   Process 1300 begins at block 1302. Here, for example, the overlay network proxy 1116 of the producer host 1106 (eg, producer host B) receives the request from the consumer host 1104. This request may take the form of {A, B, ', A', B ', data}, for example, because the packet has been received from consumer host A and the producer Indicates that the request is for Host B and that the service request is from the consumer virtual machine to the producer virtual machine included in the overlay network. In many cases, the received request is a request for access to a service hosted by the producer virtual machine 1162 hosted by the producer host 1106. However, in some cases, the received request is instead established by the consumer virtual machine 1142 hosted by the consumer host 1104 by providing data to the producer virtual machine 1162 instead. It may be a data packet configured to easily perform a service.

ブロック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 decapsulating the outer header from the request received at block 1302. In such a case, the packet may look like {A ′, B ′, data}, because the packet has been received from consumer virtual machine A ′ and producer virtual machine B ′. Indicates that it was directed to. In such a case, the overlay network proxy 1116 may access the inner header to identify the producer virtual machine 1162. Alternatively or in addition, 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, the overlay network proxy 1116 provides a request without an outer header to the producer virtual machine 1162 identified at block 1304. Thus, the packet can be {A ', B', data}. However, in other cases, the request may be sent as received from the consumer host 1104, including the external header if it is included in 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は、1つの消費者仮想マシン1142をホストしてもよい。   At block 1308, overlay network proxy 1116 receives a response from producer virtual machine 1162 that is directed to consumer virtual machine 1142 that generated the request received at block 1302. In some embodiments, this response may be directed to a different consumer virtual machine. For example, a request from a consumer virtual machine may 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 {B ', A', data}. This indicates that the producer virtual machine B 'is transmitting data (for example, a response to the service request) to the consumer virtual machine A'. At block 1310, overlay network proxy 1116 identifies the consumer host 1104 associated with consumer virtual machine 1142. Consumer host 1104 may be identified by accessing a mapping table in virtual machine mapping repository 1152. In this mapping table, the consumer virtual machine 1142 may be mapped to the consumer host 1104 that hosts the consumer virtual machine 1142. Typically, each consumer host 1104 may host a plurality of consumer virtual machines 1142. However, in some cases, one or more consumer hosts 1104 may host one consumer virtual machine 1142.

オーバーレイネットワークプロキシ1116は、ブロック1312にて、消費者ホスト1104、及び制作者仮想マシン1162に関連付けられた制作者ホスト1106を特定する外部ヘッダを用いて上記応答をカプセル化する。従って、パケットは、{B、A{B’、A’、データ}}のようになり得る。ブロック1216に関して説明したように、ある場合には、消費者ホスト1104及び制作者ホスト1106の識別情報を、ブロック1308で受信した応答の既存のヘッダに含め、またはそれに追加してもよい。従って、パケットは、{B、A、B’、A’、データ}のようになり得る。同様に、ブロック1216に関して説明したように、1つのヘッダのみが存在する場合、外部ヘッダ、すなわち応答のヘッダには、制作者仮想マシン1162と消費者仮想マシン1142とに関連付けられたオーバーレイネットワークの識別情報が含まれてもよい。従って、パケットは、{B、A、‘、B’、A’、データ}のようになり得る。   Overlay network proxy 1116 encapsulates the response at block 1312 with an external header that identifies consumer host 1104 and publisher host 1106 associated with publisher virtual machine 1162. Thus, the packet can be {B, A {B ', 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 in or added to the existing header of the response received at block 1308. Thus, the packet may be {B, A, B ', A', data}. Similarly, as described with respect to block 1216, if only one header is present, the outer header, ie, the response header, identifies the overlay network associated with the producer virtual machine 1162 and the consumer virtual machine 1142. Information may be included. Thus, the packet can be {B, A, ', B', A ', data}.

制作者ホスト1106は、ブロック1314で消費者ホスト1104に上記応答を提供する。いくつかの実施形態では、制作者ホスト1106は、ネットワーク202を介して上記応答を提供してもよい。   The producer host 1106 provides the response to the consumer host 1104 at block 1314. In some embodiments, publisher host 1106 may provide the response over network 202.

いくつかの実施形態では、消費者ホスト1104は、プロセス1300または類似のプロセスを実行して、ブロック1308で受信した応答を、対応する消費者仮想マシン1142に提供してもよい。さらに、ある場合には、消費者ホスト1104のオーバーレイネットワークプロキシ1114は、消費者仮想マシン1142によって提供された最初の要求を作成するのに使用された仮想アドレス(例えば、仮想アドレスX)を識別してもよい。このように識別された仮想アドレスを用いて、オーバーレイネットワークプロキシ1114は、制作者仮想マシン1162を特定する受信応答内のアドレスを、消費者仮想マシン1142によって提供された最初の要求を作成するのに使用された仮想アドレスに置き換えてもよい。従って、例えば、消費者仮想マシンA’にパケットを送る前に、当該パケットは{X、A’、データ}のように再構成され得るが、これは、パケットに含まれるデータを実際に生成した可能性がある制作者仮想マシンB’からではなく、システムXから応答を受信したことを示す。   In some embodiments, consumer host 1104 may execute process 1300 or a 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 identifies the virtual address (eg, virtual address X) that was used to create the initial request provided by the consumer virtual machine 1142. May be. Using the virtual address thus identified, the overlay network proxy 1114 uses the address in the incoming response that identifies the producer virtual machine 1162 to create the initial request provided by the consumer virtual machine 1142. It may be replaced with the used virtual address. Thus, for example, before sending a packet to the consumer virtual machine A ′, the packet can be reconstructed as {X, A ′, data}, which actually generated the data contained in the packet. Indicates that a response has been received from system X, not from the potential producer virtual machine B ′.

制作者仮想マシンへのアクセスをリースするプロセスの実施例
制作者仮想マシンへのアクセスをリースするプロセス1400の実施形態を図14に示す。プロセス1400は、制作者仮想マシン1162(例えば、制作者仮想マシンB’)にアクセスするためのリースを取得可能な任意のシステムによって実装することができる。例えば、プロセス1400は、全部または一部において、いくつか例を挙げると、消費者ホスト1104、リースリクエスタ1130、リースエージェント102、オーバーレイネットワークプロキシ1114及びリースシステム224によって実装することができる。全部または一部において、任意の数のシステムを用いてプロセス1400を実装することができるが、説明を簡単にするため、特定のシステムを参照してプロセス1400の各部を説明する。
Example Process for Leasing Access to a Publisher Virtual Machine An embodiment of a process 1400 for leasing access to a publisher virtual machine is shown in FIG. 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 implemented 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 examples. Although process 1400 may be implemented using any number of systems, in whole or in part, for ease of explanation, portions of process 1400 will be described with reference to a particular system.

プロセス1400は、ブロック1402で開始される。ここで、例えば、リースリクエスタ1130は、オーバーレイネットワークに関連付けられた消費者仮想マシン1142に代わり、制作者仮想マシン1162のリースを取得することを求める要求を生成する。ブロック1402に関連するプロセスは、消費者仮想マシン1142の初期化時に発生し得る。あるいは、または加えて、ブロック1402は、(例えば、プロセス1200に関連する判定ブロック1204で判定され得るように)消費者仮想マシン1142に関連付けられた未使用の制作者仮想マシンのリースがないと判定したことに応答して発生してもよい。   Process 1400 begins at block 1402. Here, for example, the lease requester 1130 generates a request to obtain a lease for the producer virtual machine 1162 on behalf of the 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 in addition, block 1402 determines 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). It may occur in response to that.

ブロック1404では、リースリクエスタ1130は、複数のリースエージェント102に要求を提供する。いくつかの実施形態では、複数のリースエージェント102は、オーバーレイネットワーク環境1100に含まれるリースエージェント102のサブセットを含んでもよい。さらに、ある場合には、1つのリースエージェント102に要求を提供してもよい。   At block 1404, the lease requester 1130 provides requests 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 in the overlay network environment 1100. Further, in some cases, a request may be provided to one lease agent 102.

ブロック1406では、リースリクエスタ1130は、複数のリースエージェント102のそれぞれから、ブロック1402で要求が生成された消費者仮想マシン1142と同じオーバーレイネットワークに関連付けられた制作者仮想マシン1162の識別情報を受信する。通常、複数のリースエージェント102のそれぞれは、1つの制作者仮想マシン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 of 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. . Normally, each of the plurality of lease agents 102 provides identification information of one creator 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 may not provide identification information of the creator virtual machine 1162 at all. For example, if each producer virtual machine 1162 associated with a specific lease agent 102 is used in excess of a threshold utilization rate, the lease agent 102 may not provide the identification information of the producer virtual machine 1162. . In such a case, the lease agent 102 may issue a warning to a user such as an administrator that each producer virtual machine 1162 associated with the lease agent 102 is being used above the threshold usage rate. .

いくつかの実施形態では、制作者仮想マシン1162の識別情報を受信することに加えて、制作者仮想マシン1162のリースに関連するリース情報をブロック1406で受信してもよい。このリース情報には、制作者仮想マシン1162にアクセスするためのアドレス、制作者仮想マシン1162をホストする制作者ホスト1106の識別情報及び/もしくはアドレス、並びに/または制作者仮想マシン1162のリース用に消費者仮想マシン1142に割り振られた消費可能リソース量に対する消費可能リソースの識別情報が含まれてもよい。この消費可能リソースは、制作者仮想マシン1162のリース期間を測定するための任意の種類のリソースを含んでもよい。例えば、消費可能リソースは、時間、一連の操作、制作者仮想マシン1162によって処理される、かつ/もしくは制作者仮想マシン1162から受信されるデータ量、または消費者仮想マシン1142による制作者仮想マシン1162の利用状況を測定するためのその他の測定基準を含んでもよい。   In some embodiments, in addition to receiving the identification information of the producer virtual machine 1162, lease information related to the lease of the producer virtual machine 1162 may be received at block 1406. The lease information includes an address for accessing the creator virtual machine 1162, identification information and / or address of the producer host 1106 that hosts the creator virtual machine 1162, and / or lease for the creator virtual machine 1162. Consumable resource identification information for the consumable resource amount allocated to the consumer virtual machine 1142 may be included. This consumable resource may include any type of resource for measuring the lease period of the producer virtual machine 1162. For example, consumable resources can include time, a sequence of operations, the amount of data processed by and / or received from the publisher virtual machine 1162, or the producer virtual machine 1162 by the consumer virtual machine 1142. Other metrics may be included for measuring usage.

ブロック1408では、オーバーレイネットワークプロキシ1114は、消費者仮想マシン1142に代わり、ブロック1406で特定された各制作者仮想マシン1162へのアクセスを試みる。いくつかの実施形態では、ブロック1408は、各制作者仮想マシン1162との接続の確立を試みることを含むことができる。他の実施形態では、ブロック1408は、制作者仮想マシン1162との確立した接続を通して通信を試みることを含むことができる。ブロック1410では、オーバーレイネットワークプロキシ1114は、確立された各接続に関する接続情報をリースプール内に記憶する。この接続情報には、接続を特定するための情報、及びその接続を使用してサービスにアクセスする方法が含まれてもよい。例えば、この接続情報には、制作者仮想マシン1162をホストする制作者ホスト1106の識別情報の消費可能リソースの識別情報などの、ブロック1406の一部として受信した任意の情報が含まれてもよい。いくつかの実施形態では、リースプール及び/または接続情報は、仮想マシンマッピングリポジトリ1150に記憶されてもよい。   At block 1408, the overlay network proxy 1114 attempts to access each producer virtual machine 1162 identified at block 1406 on behalf of the consumer virtual machine 1142. In some embodiments, block 1408 can include attempting to establish a connection with each publisher virtual machine 1162. In other embodiments, block 1408 can include attempting to communicate through an established connection with the producer virtual machine 1162. In block 1410, the overlay network proxy 1114 stores connection information for each established connection in the lease pool. The connection information may include information for identifying the connection and a method for accessing the service using the connection. For example, this connection information may include any information received as part of block 1406, such as identification information of consumable resources in the identification information of the producer host 1106 that hosts the producer virtual machine 1162. . In some embodiments, the lease pool and / or connection information may be stored in the virtual machine mapping repository 1150.

プロセス300と同様に、いくつかの実施形態では、制作者仮想マシン1162のリースを更新するのにプロセス1400を使用してもよい。このような実施形態では、ブロック1402は、制作者仮想マシンの、現在の、または以前に存在したリースを更新することを求める要求を生成することを含んでもよい。この更新要求は、現在の制作者仮想マシン用リースの識別情報を含んでもよい。さらに、ブロック1406は、更新要求が承認されたかどうかの指示を受信すること、及び、ある場合には、消費可能リソース(例えば、リース時間やプロセッサ使用率)の追加付与に関するリース情報を含んでもよい。   Similar to process 300, in some embodiments, process 1400 may be used to renew the lease for publisher virtual machine 1162. In such an embodiment, block 1402 may include generating a request to renew the current or previously existing lease of the producer virtual machine. This update request may include the current creator virtual machine lease identification information. Further, block 1406 may include lease information regarding receiving an indication of whether the update request has been approved and, in some cases, additional grants of consumable resources (eg, lease time or processor utilization). .

状態管理テーブルの実施例
オーバーレイネットワーク環境1100内の通信を促進するために使用可能な状態管理テーブル1500の非限定的な1つの実施例を図15に示す。状態管理テーブル1500は、消費者仮想マシン1142と制作者仮想マシン1162との間の通信を促進する複数の情報を含むことかできる。例えば、状態管理テーブル1500は、送信元オーバーレイアドレス1502、送信元オーバーレイポート1504、仮想アドレス1506及び送信先オーバーレイアドレス1508のカラムを含んでもよい。テーブル見出しの一部(例えば、送信元オーバーレイアドレス1502)によって示すように、状態管理テーブル1500では、アドレスはインターネットプロトコル(IP)アドレスであってよい。しかしながら、これらのアドレスは、そのように限定されず、他の形式をとってもよく、または他のプロトコルに従ってもよい。
Example State Management Table One non-limiting example of a state management table 1500 that can be used to facilitate communication within the overlay network environment 1100 is shown in FIG. The state management table 1500 may include a plurality of 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. In the state management table 1500, the address may be an internet protocol (IP) address, as indicated by a portion of the table header (eg, source overlay address 1502). However, these addresses are not so limited and may take other forms or follow other protocols.

図15の実施例では、状態管理テーブル1500の図示された各部は、消費者仮想マシンA’に関連付けられている。仮想アドレス1506のカラムに示すように、消費者仮想マシンA’は、複数の仮想アドレス、すなわちXとYを使用してもよい。さらに、各仮想アドレスを、複数の制作者仮想マシンに関連付けられた複数の送信先オーバーレイアドレスに関連付けてもよい。例えば、仮想アドレスYを、アドレスK’の制作者仮想マシンとアドレスM’の制作者仮想マシンとに関連付けてもよい。複数の送信先アドレスが1つの仮想アドレスにマッピングされ得るため、オーバーレイネットワークプロキシ1114は、データパケットを正しい送信先に導くため、送信元オーバーレイポート1504のカラムに示すように、ポートを特定してもよい。従って、サービス要求を制作者仮想マシンK’に送信するために、オーバーレイネットワークプロキシ1114は、仮想アドレスYをK’のアドレスに置き換えると共にポートP1を使用する。同様に、サービス要求を制作者仮想マシンM’に送信するために、オーバーレイネットワークプロキシ1114は、仮想アドレスYをM’のアドレスに置き換えると共にポートP2を使用する。   In the example of FIG. 15, the illustrated portions of the state management table 1500 are associated with a consumer virtual machine A ′. As shown in the column of virtual address 1506, consumer virtual machine A 'may use multiple virtual addresses, namely X and Y. Further, each virtual address may be associated with a plurality of destination overlay addresses associated with a plurality of creator virtual machines. For example, the virtual address Y may be associated with the producer virtual machine at address K ′ and the producer virtual machine at address M ′. Since multiple destination addresses can be mapped to a single virtual address, the overlay network proxy 1114 may identify a port as shown in the source overlay port 1504 column to direct the data packet to the correct destination. Good. Thus, to send a service request to the producer virtual machine K ', the overlay network proxy 1114 replaces the virtual address Y with the address of K' and uses the port P1. Similarly, to send a service request to the producer virtual machine M ', the overlay network proxy 1114 replaces the virtual address Y with the address of M' and uses port P2.

多くの場合、オーバーレイネットワークは、開放型システム間相互接続(Open System Interconnection:OSI)モデルのレイヤー3及び/またはレイヤー4を用いて実装され得る。通常、レイヤー3及び/またはレイヤー4を用いて実装されたオーバーレイネットワークを用いると、ネットワーク接続基盤は、当該ネットワークを介して通信を行っている各アプリケーションを認識していない。これにより、消費者仮想マシンと制作者仮想マシンとの間でどのくらいのデータが伝送されるかを先験的に予測することがより難しくなるため、負荷のバランスを取ることがより困難になる可能性がある。   In many cases, an overlay network may be implemented using Layer 3 and / or Layer 4 of the Open System Interconnection (OSI) model. Normally, when an overlay network implemented using layer 3 and / or layer 4 is used, the network connection infrastructure does not recognize each application communicating via the network. This makes it more difficult to balance the load because it becomes more difficult to predict a priori how much data will be transmitted between the consumer virtual machine and the producer virtual machine. There is sex.

1つの解決策としては、少なくとも部分的には、OSIモデルのレイヤー7を用いて実装される、プロトコルを意識した(protocol aware)負荷バランスシステムを作成することである。こうしたシステムでは、オーバーレイネットワークプロキシ1114は、いくつかの実施形態では、消費者仮想マシン1142によって伝送されているパケットを検査することにより、消費者仮想マシン1142がアクセスを試みているサービスの種類またはそのサービス要求に関連するプロトコルの種類、及びそのサービス要求が1つのサービスを求めるものか、それとも同一種類または異なる種類の複数のサービスを求めるものかを判別することができる。従って、例えば、消費者仮想マシンがHTTP要求を用いてウェブサイトへのアクセスを要求しており、かつ各HTTP要求が、種々のウェブページ、または1つのウェブページの種々の機能を求めるためのものであるとオーバーレイネットワークプロキシ1114が判断した場合、オーバーレイネットワークプロキシ1114は、それらの異なる要求を別々の制作者仮想マシン1162に送信して処理を行わせることにより、それらの要求が別々のシステムによって処理されていることを消費者仮想マシン1142に意識させないようにすることができる。従って、ある場合には、単一の接続が一連の接続にわたって多重分離され得る。オーバーレイネットワークプロキシ1114は、一連の要求を複数の制作者仮想マシン1162に分割することにより、効率またはその要求の処理速度を増加させてもよい。さらに、消費者仮想マシン1142が制作者仮想マシン1162に大量の負荷をかけているとオーバーレイネットワークプロキシ1114が判断した場合、オーバーレイネットワークプロキシ1114は、要求を処理している制作者仮想マシン1162を入れ替えることができ、かつ/または複数の制作者仮想マシン1162間に要求を分割することができる。制作者仮想マシン1162を入れ替えることは、ある場合には、要求識別子をサービス要求に関連付けることによって実現可能である。例えば、図15の要求識別子1510のカラムに示すように、要求識別子がI1のパケットは、制作者仮想マシンB’のアドレスと入れ替えられる仮想アドレスXを有することができる。同様に、要求識別子がI2のパケットは、制作者仮想マシンD’のアドレスと入れ替えられる仮想アドレスXを有することができる。   One solution is to create a protocol aware load balancing system that is implemented, at least in part, using layer 7 of the OSI model. In such a system, the overlay network proxy 1114, in some embodiments, examines the packets being transmitted by the consumer virtual machine 1142, thereby allowing the consumer virtual machine 1142 to attempt to access the type of service or its service. It is possible to determine the type of protocol associated with the service request and whether the service request requires one service or multiple services of the same type or different types. Thus, for example, a consumer virtual machine is requesting access to a website using HTTP requests, and each HTTP request is for various web pages or various functions of a web page. The overlay network proxy 1114 determines that the requests are processed by different systems by sending those different requests to different publisher virtual machines 1162 for processing. It is possible to prevent the consumer virtual machine 1142 from being aware of this. Thus, in some cases, a single connection can be demultiplexed over a series of connections. The overlay network proxy 1114 may increase the efficiency or processing speed of the request by dividing the series of requests into multiple publisher virtual machines 1162. Further, if the overlay network proxy 1114 determines that the consumer virtual machine 1142 is placing a large load on the producer virtual machine 1162, the overlay network proxy 1114 replaces the producer virtual machine 1162 that is processing the request. And / or the request can be divided among multiple author virtual machines 1162. Replacing the producer virtual machine 1162 can be accomplished in some cases by associating the request identifier with the service request. For example, as shown in the column of the request identifier 1510 in FIG. 15, the packet with the request identifier I1 can have a virtual address X that is replaced with the address of the producer virtual machine B '. Similarly, a packet with a request identifier of I2 can have a virtual address X that is replaced 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:当該消費可能リソースは、リース時間、一連のコンピュータサイクル、当該特定された制作者システムの利用に関わる金銭的予算、またはディスク記憶容量を含むことが可能であり、当該リース時間は、当該消費者システムが当該制作者システムの当該サービスにアクセスすることを許可されている時間を含む、項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のサブセットが当該複数の制作者システムの当該第1のサブセットと同一ではない第2の複数の制作者システムの各制作者システムに関連する制作者ステータス情報に少なくとも部分的に基づき、当該第2の複数の制作者システムから第2の制作者システムを特定し、
当該第2の制作者システムを特定したことに応答して、当該第2の制作者システムの識別情報を当該消費者システムに提供し、それによって当該消費者システムが、少なくとも当該第1の制作者システム及び当該第2の制作者システムに当該サービスへのアクセスを要求できるようにすることにより、制作者システムの当該特定を、少なくとも当該第1のリースエージェントと当該第2のリースエージェントとの間に分散させた分散プロセスとするように構成された、
第2のリースシステムを含む第2のリースエージェントと、
を含むシステム。
項21:当該第1のリースシステムは、当該消費者システムに第1のリース時間を提供するようにさらに構成されており、当該第1のリース時間は、当該消費者システムが当該第1の制作者システムにアクセスすることを許可されている時間を含み、当該第2のリースシステムは、当該消費者システムに第2のリース時間を提供するようにさらに構成されており、当該第2のリース時間は、当該消費者システムが当該第2の制作者システムにアクセスすることを許可されている時間を含む、項20に記載のシステム。
項22:当該第1のリースエージェントは、
当該第1の制作者システムの第1の更新済みステータス情報を受信し、
当該第1の更新済みステータス情報に少なくとも部分的に基づき、当該第1の制作者システムの当該制作者ステータス情報を更新するように構成された第1のステータスモジュールをさらに含み、
当該第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の一組の制作者システムの分配を試みないようにすることをさらに含む、項27に記載の方法。
項29:当該第2の一組の使用可能な制作者システム及び当該第2の時間は、非活動期間の後に当該第1のリースエージェントシステムを起動させるときに当該差分が当該閾値を確実に満たす値を含む、項27〜項28に記載の方法。
項30:当該第1の一組の制作者システムは、当該第1の時間に使用可能な全数の制作者システムを含み、当該第2の一組の制作者システムは、当該第2の時間に使用可能な全数の制作者システムを含む、項27〜項29に記載の方法。
項31:当該複数のリースエージェントシステムの少なくとも1つが第3の時間に使用できないとの指示を受信すること、
当該第3の時間に使用可能な第3の一組の制作者システムを特定すること、
当該第3の時間に使用可能な一組のリースエージェントシステムを特定すること、
当該第3の一組の制作者システムを、当該第3の時間に使用可能な当該一組のリースエージェントシステム間に分配すること、及び
当該第3の時間に使用可能な当該一組のリースエージェントシステムの各リースエージェントシステムに対し、当該第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の時間での一組の使用可能な制作者システムと第2の時間での当該一組の使用可能な制作者システムとの差分が閾値を満たしているかどうかを判定するように構成された分配システムをさらに含む複数のリースエージェントと、
当該分配システムであって、当該差分が当該閾値を満たしていると判定したことに応答して、
当該複数のリースエージェントに含まれる2つ以上のリースエージェントの数に基づき、当該一組の制作者システムを複数の制作者システムのサブセットに分割して、種々のユーザシステムによる当該複数の制作者システムへのアクセスを当該複数の制作者システム間にほぼ均等に分散させるように試み、
当該複数のリースエージェントの各リースエージェントに対し、当該複数の制作者システムのサブセットのうちの1つのサブセットに含まれる制作者システムの識別情報を当該リースエージェントに提供するようにさらに構成されている当該分配システムと、
を含むシステム。
項41:制作者システムのサブセットの数は、当該複数のリースエージェントに含まれる当該2つ以上のリースエージェントの数に対応する、項40に記載のシステム。
項42:当該分配システムは、当該複数の制作者システムのサブセットとは異なる制作者システムのサブセットに含まれる当該制作者システムの識別情報を各リースエージェントに提供するようにさらに構成されている、項40〜項41に記載のシステム。
項43:当該分配システムは、当該第1のリースエージェントを含まない、当該複数のリースエージェントのうちの1つ以上のリースエージェントに対し、当該第1のリースエージェントの当該分配システムが当該1組の制作者システムを分配しているとの警告を発するようにさらに構成されている、項40〜項42に記載のシステム。
項44:当該複数のリースエージェントに含まれる第2のリースエージェントが当該一組の制作者システムを分配しているとの警告を受信したことに応答して、当該第1のリースエージェントの当該分配システムは、当該一組の制作者システムの分配を行わないようにさらに構成されている、項40〜項43に記載のシステム。
項45:当該第1のリースエージェントは、
当該第1のリースエージェントに登録することを求める要求を制作者システムから受信し、
当該第1のリースエージェントに割り当てられた当該制作者システムのサブセットに当該制作者システムが含まれているかどうかを判定し、
当該第1のリースエージェントに割り当てられた当該制作者システムのサブセットに当該制作者システムが含まれていると判定したことに応答して、当該制作者システムを当該第1のリースエージェントに登録し、
当該第1のリースエージェントに割り当てられた当該制作者システムのサブセットに当該制作者システムが含まれていないと判定したことに応答して、当該制作者システムに割り当てられた当該複数のリースエージェントに含まれる第2のリースエージェントを特定し、当該第2のリースエージェントの識別情報を当該制作者システムに提供するように構成された登録モジュールをさらに含む、項40〜項44に記載のシステム。
項46:複数のリースエージェントシステム間でのリースの分配方法であって、
1つ以上のプロセッサを含む第1のリースエージェントシステムにより、
一組の使用可能な制作者システムを特定すること、
当該一組の使用可能な制作者システムの各制作者システムに使用可能な複数のリースを決定すること、
複数のリースエージェントシステムに含まれる各リースエージェントシステムに、各制作者システムに使用可能な当該複数のリースに含まれるリースのサブセットを割り当てることにより、各制作者システムに使用可能な当該複数のリースを当該複数のリースエージェントシステム間に分配すること、及び
当該複数のリースエージェントシステムの各リースエージェントシステムに対し、当該リースエージェントシステムに割り当てられた当該リースのサブセットを当該リースエージェントシステムに提供することにより、各制作者システムに使用可能な当該複数のリースを当該複数のリースエージェントシステム間に当該分配することが、当該複数のリースエージェントシステム間で作業負荷のバランスを取ることを可能にすること、
を含む方法。
項47:各リースエージェントシステムに重複しないリースのサブセットが割り当てられている、項46に記載の方法。
項48:当該リースのサブセットを当該リースエージェントシステムに提供することは、当該リースエージェントシステムに割り当てられた当該リースのサブセットを当該第1のリースエージェントシステムに提供することを除く、項46〜項47に記載の方法。
項49:当該リースエージェントシステムに割り当てられた当該リースのサブセットを当該リースエージェントシステムに提供することは、当該複数の制作者システムの各制作者システム用に当該リースエージェントシステムに割り当てられた当該複数のリースを、当該リースエージェントシステムに提供することを含む、項46〜項48に記載の方法。
項50:当該リースエージェントシステムに割り当てられた当該リースのサブセットを当該リースエージェントシステムに提供することは、当該リースエージェントシステムに割り当てられた各リースの識別子を当該リースエージェントシステムに提供することを含む、項46〜項49に記載の方法。
項51:各制作者システムに使用可能な当該複数のリースを当該複数のリースエージェントシステム間に分配することは、各制作者システムに使用可能な当該複数のリースを当該複数のリースエージェントシステム間に実質的に均等に分配することを含む、項46〜項50に記載の方法。
項52:当該複数のリースエージェントシステムは、一組のリースエージェントシステムのサブセットを含む、項46〜項51に記載の方法。
項53:当該複数のリースエージェントシステムは、当該第1のリースエージェントシステムを含む、項52に記載の方法。
項54:当該一組の使用可能な制作者システムは、使用可能な制作者システムのサブセットを含む、項46〜項53に記載の方法。
項55:各制作者システムに使用可能な当該複数のリースを当該複数のリースエージェントシステム間に当該分配することは、第2の時間に比べて閾値を変えた第1の時間における当該一組の使用可能な制作者システム間で使用可能な全リース数に応答して発生する、項46〜項54に記載の方法。
項56:サービスへのアクセスを提供する複数の制作者システムからの制作者システムの選択方法であって、
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つにアクセスすることを求める要求を受信し、
当該要求に対してサービスを提供する当該複数の制作者システムの各制作者システムに関連付けられた対応する選択重みに少なくとも部分的に基づき、当該第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の制作者システムに関連付けられた当該選択重みを変更すること、及び
制作者システムへのアクセスを求める要求を受信したことに応答して、当該要求の提供者にサービスを提供する当該制作者システムのサブセットに含まれる当該制作者システムに関連付けられた当該選択重みに少なくとも部分的に基づき、当該第1の制作者システムのサブセットから第2の制作者システムを選択すること、
により、サービスへのアクセスを提供する当該複数の制作者システムから制作者システムを選択するようにコンピューティングシステムに命令するコンピュータ実行可能な命令を含む、非一時的な物理的コンピュータ記憶装置。
項78:当該第2の制作者システムと当該第1の制作者システムとが同一である、項77に記載の非一時的な物理的コンピュータ記憶装置。
項79:当該第1の制作者システムが当該第1の制作者システムのサブセットのメンバーではないと判定したことに応答して、当該方法が、
当該第1の制作者システムを含む第2の制作者システムのサブセットを特定すること、
当該第2の制作者システムのサブセットに関連付けられた第2のリースエージェントを特定すること、及び
当該ステータス情報を当該第2のリースエージェントに提供すること、をさらに含む、項77〜項78に記載の非一時的な物理的コンピュータ記憶装置。
項80:オーバーレイネットワーク内の制作者仮想マシンによって提供されるサービスへのアクセス方法であって、
1つ以上の消費者仮想マシンをホストするように構成された、1つ以上のプロセッサを含む消費者システムホストであって、当該消費者仮想マシンの少なくとも1つが第1のオーバーレイネットワークに関連付けられている消費者システムホストにより、
制作者システムのサービスへのアクセスを求める要求を当該消費者システムホストによってホストされた消費者仮想マシンから受信することであって、当該要求は、当該消費者仮想マシンに関連付けられた消費者仮想マシンアドレス、及び宛先仮想アドレスを含む内部ヘッダを含む、受信すること、
当該消費者仮想マシンに関連付けられたリースプールであって、当該消費者仮想マシンのためにリースされる一組のリース用制作者仮想マシンを含むリースプールにアクセスすること、
当該サービスにアクセスするためのリース用制作者仮想マシンを当該リースプールから選択すること、
当該内部ヘッダの当該宛先仮想アドレスを、当該リース用制作者仮想マシンに関連付けられた制作者仮想マシンアドレスに置き換えること、
当該リース用制作者仮想マシンに関連付けられた制作者システムホストであって、1つ以上の制作者仮想マシンをホストするように構成され、当該制作者仮想マシンの少なくとも1つが、当該第1のオーバーレイネットワークに関連付けられた制作者システムホストを特定すること、
当該制作者システムホストに関連付けられた制作者システムホストアドレス及び当該消費者システムホストに関連付けられた消費者システムホストアドレスを含む外部ヘッダを用いて当該要求をカプセル化すること、並びに
ネットワークを介して当該制作者システムホストに当該要求を提供することにより、当該制作者システムホストが当該要求を処理することを可能にすること、
を含む方法。
項81:当該リース用制作者仮想マシンを選択することは、
少なくとも1つの使用可能なリース用制作者仮想マシンが当該リースプールに含まれているどうかを判定すること、及び
少なくとも1つの使用可能なリース用制作者仮想マシンが当該リースプールに含まれていると判定したことに応答して、当該使用可能なリース用制作者仮想マシンの1つを選択し、当該選択された使用可能なリース用制作者仮想マシンを当該リースプールから削除することを含む、項80に記載の方法。
項82:使用可能なリース用制作者仮想マシンが当該リースプールに含まれていないと判定したことに応答して、当該方法が、
当該消費者仮想マシンに代わり、当該第1のオーバーレイネットワークに含まれる一組の制作者仮想マシンのリースを取得すること、
当該一組のリース用制作者仮想マシンに含まれる各制作者仮想マシンとの接続を開始すること、及び
正常に確立された各接続について、対応する当該制作者仮想マシンを当該リースプールに追加すること、をさらに含み、
当該リース用制作者仮想マシンを選択することは、当該リースプールに追加された当該制作者仮想マシンの1つを選択し、当該選択された制作者仮想マシンを当該リースプールから削除すること、をさらに含む、項81に記載の方法。
項83:当該一組の制作者仮想マシンのリースを取得することは、
当該第1のオーバーレイネットワークに含まれる制作者仮想マシンのリースを取得することを求める要求を当該消費者仮想マシンの代わりに生成すること、
制作者仮想マシンの当該リースを取得することを求める当該要求を一組のリースエージェントに提供すること、及び
当該一組のリースエージェントに含まれる当該リースエージェントの少なくとも一部に対し、制作者仮想マシンのリース情報を受信することによって当該制作者仮想マシンとの接続を開始することを可能にすることを含む、項82に記載の方法。
項84:当該一組のリースエージェントは、当該ネットワーク内のリースエージェントのサブセットを含む、項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つの使用可能なリース用制作者が当該リースプールに含まれていると判定したことに応答して、当該サービスにアクセスするための当該リース用制作者を当該使用可能なリース用制作者から選択するようにさらに構成されている、項93に記載のシステム。
項95:少なくとも1つの使用可能なリース用制作者が当該リースプールに含まれていないと判定したことに応答して、当該オーバーレイネットワークプロキシは、
制作者のリースを取得することを求める要求を当該消費者に代わって生成し、
当該制作者のリースを取得することを求める当該要求を一組のリースエージェントに提供し、
当該一組のリースエージェントに含まれる当該リースエージェントの少なくとも一部のために、制作者のリース情報を受信するようにさらに構成されている、項94に記載のシステム。
項96:当該マッピングリポジトリは、当該消費者に関連付けられた当該リースプール内に当該リース情報を記憶するようにさらに構成されている、項95に記載のシステム。
項97:当該オーバーレイネットワークプロキシは、
当該要求に対する当該制作者ホストシステムからの応答を受信し、
当該応答の内部ヘッダに基づいて当該消費者を含む受信先消費者を決定し、
当該消費者に当該応答を提供するようにさらに構成されている、項93〜項95に記載のシステム。
項98:当該オーバーレイネットワークプロキシは、
当該リース用制作者に関連付けられた送信元仮想アドレスを特定し、
当該消費者に当該応答を提供する前に、当該リース用制作者に関連付けられた当該内部ヘッダに含まれるアドレスを当該送信元仮想アドレスに置き換えるようにさらに構成されている、項97に記載のシステム。
項99:当該オーバーレイネットワークプロキシは、当該制作者システムホストに関連付けられた制作者システムホストアドレス及び当該消費者システムホストに関連付けられた消費者システムホストアドレスを含む外部ヘッダを用いて当該要求をカプセル化するようにさらに構成されている、項93〜項97に記載のシステム。
項100:非一時的な物理的コンピュータ記憶装置であって、1つ以上のプロセッサによって実行されると、少なくとも、
宛先仮想アドレスを含み、制作者システムのサービスへのアクセスを求める要求を、消費者システムホストによってホストされた消費者仮想マシンから受信したことに応答して、当該消費者仮想マシンに関連付けられたリースプールであって、当該消費者仮想マシンのためにリースされる制作者仮想マシンに対する接続情報を含むリースプールから、当該サービスにアクセスするためのリース用制作者仮想マシンを選択すること、
当該要求のヘッダ内の当該宛先仮想アドレスを、当該リース用制作者仮想マシンに関連付けられた制作者仮想マシンアドレスに置き換えること、
当該リース用制作者仮想マシンに関連付けられた制作者システムホストを決定すること、及び
当該制作者システムホストに送信すべき当該要求を当該リース用制作者仮想マシンに提供することにより、当該リース用制作者仮想マシンが、当該サービスへのアクセスを求める当該要求を処理することを可能にすること、
により、オーバーレイネットワーク内の制作者仮想マシンによって提供されるサービスにアクセスするようにコンピューティングシステムに命令するコンピュータ実行可能な命令を含む、非一時的な物理的コンピュータ記憶装置。
項101:当該消費者仮想マシンに関連付けられた当該リースプールから当該リース用制作者仮想マシンを選択することは、
当該消費者仮想マシンによって現在使用されていない少なくとも1つのリース用制作者仮想マシンに対する接続情報が当該リースプールに含まれているどうかを判定すること、並びに
当該消費者仮想マシンによって現在使用されていない少なくとも1つのリース用制作者仮想マシンが当該リースプールに含まれていないと判定したことに応答して、当該コンピュータ実行可能な命令が、
当該消費者仮想マシンに代わり、オーバーレイネットワークに含まれる一組の制作者仮想マシンのリースを取得すること、
当該一組のリース用制作者仮想マシンに含まれる各制作者仮想マシンとの接続を開始すること、及び
正常に確立された各接続について、対応する当該制作者仮想マシンに対する接続情報を当該リースプールに追加することを当該コンピューティングシステムに命令すること、をさらに含む、項100に記載の非一時的な物理的コンピュータ記憶装置。
項102:当該消費者仮想マシンに関連付けられた当該リースプールから当該リース用制作者仮想マシンを選択することは、当該リースプールに接続情報が追加された当該制作者仮想マシンの1つを選択することをさらに含む、項101に記載の非一時的な物理的コンピュータ記憶装置。
Embodiments of the present disclosure can be described in light of the following sections.
Item 1: A method of leasing access to a creator system for obtaining access to a service hosted by the creator system,
With a consumer system that includes one or more processors,
Generating a lease request for access to the services of one of the publisher systems,
Providing the lease request to a plurality of lease agents;
Receiving one or more identification information of the producer system from each lease agent;
Attempting to initiate a connection with at least a portion of the producer system identified by the plurality of lease agents; and
Accessing the service provided by the first producer system in response to successfully establishing a connection with the first producer system included in at least a portion of the publisher system;
Including methods.
Item 2: Receiving one or more pieces of identification information of the producer system from each lease agent means receiving identification information of different producer systems from at least two lease agents of the plurality of lease agents. Item 2. The method according to Item 1.
Item 3: The method according to Item 1 or 2, wherein at least a part of each of the plurality of lease agents is associated with an unequal set of producer systems.
Item 4: Receiving one or more of the identification information of the producer system from each lease agent includes receiving at least some consumable resources of the identified producer system. Item 4. The method according to Item 3.
Item 5: The consumable resource may include lease time, a series of computer cycles, monetary budget for use of the identified producer system, or disk storage capacity, Item 5. The method of Item 4, comprising a time during which the consumer system is allowed to access the service of the producer system.
Item 6: Depending on the amount of consumable resources remaining from the consumable resources of the first producer system that satisfies the lease threshold, the method
Determining the probability that a current service request for access to the service of the first producer will not be completed before the consumable resource expires;
In response to determining that the probability satisfies the renewal threshold, generating a renewal lease request for access to the service of the first producer system; and
Item 6. The method according to Item 5, further comprising: providing the renewed lease request to the lease agent included in the plurality of lease agents that provided the identification information of the first producer system.
Item 7: In response to providing the renewal lease request to the lease agent, the method further includes receiving an update amount of the consumable resource of the first producer system. The method described.
Item 8: In response to providing the renewal lease request to the lease agent, the method receives a new amount of consumable resources of a new producer system that is different from the first producer system. The method according to Item 6 to 7, further comprising:
Item 9: In response to the successful establishment of the connection with the first producer system included in at least a part of the producer system, the method receives metadata from the first producer system. Item 9. The method according to Item 1 to Item 8, further comprising obtaining, wherein at least part of the metadata includes status information regarding the first producer system.
Item 10: The method according to Item 9, further comprising providing at least a part of the metadata to the lease agent included in the plurality of lease agents that provided the identification information of the first producer system. Method.
Item 11: The method according to Item 9 to Item 10, further comprising providing at least a part of the metadata to the plurality of lease agents.
Item 12: In response to the successful establishment of the connection with the second producer system included in at least a part of the creator system, the second service of the second producer system is accessed. Item 12. The method according to Item 1.
Item 13: The method according to Item 12, wherein the service and the second service are the same service.
Item 14: The method according to Items 12 to 13, wherein data accessed using the service is different from data accessed using the second service.
Item 15: A system that leases access to a producer system to gain access to a service hosted by the producer system,
A consumer system comprising one or more processors,
Generate a lease request for access to the services of the producer system,
Providing the lease request to multiple lease agents;
A consumer system further comprising a lease requester configured to receive producer system identification information from at least some of the plurality of lease agents;
Including
The consumer system further includes a connection module configured to attempt to initiate a connection with at least a portion of the producer system identified by the plurality of lease agents;
In response to the connection module having successfully established a connection with the first producer system belonging to at least a part of the producer system, the consumer system provides the service of the first producer system. The system further comprising a resource requester configured to access the.
Item 16: The lease requester is further configured to receive a lease time of at least a part of the identified producer system, the lease time being determined by the consumer system for the service of the producer system. Item 16. The system according to Item 15, which includes a time during which access is permitted.
Item 17: The system according to item 16, wherein the connection module is further configured to provide the first producer system with the lease time associated with the first producer system.
Item 18: The resource requester requests the first creator to access the service in response to the remaining time from the lease time of the first producer system satisfying the lease threshold. Further configured to determine the probability that a current service request will not be completed before the lease time expires;
The lease requester
In response to determining that the probability satisfies the renewal threshold, generate a renewal lease request for access to the service of the first producer system,
Item 16. The item 16 to item 17, further configured to provide the renewal lease request to the lease agent included in the plurality of lease agents that provided the identification information of the first producer system. system.
Item 19: Metadata, wherein at least part of the metadata includes metadata including status information regarding the first producer system from the first producer system,
Item 15-, further comprising a status module configured to provide at least a part of the status information to the lease agents included in the plurality of lease agents that provided the identification information of the first producer system. Item 19. The system according to Item 18.
Item 20: 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 and implemented by a computer system including computer hardware, the first lease system comprising:
Receiving a first request from a consumer system seeking to lease access to a service provided by a plurality of producer systems;
From the first plurality of publisher systems based at least in part on the publisher status information associated with each publisher system of the first plurality of publisher systems including a first subset of the plurality of publisher systems. Identify the first producer system,
A first lease agent configured to provide the consumer system with identification information of the first producer system in response to identifying the first producer system;
Receiving from the consumer system a second request to lease access to the service;
A second plurality of producer systems including a second subset of the plurality of producer systems, wherein the second subset of the plurality of producer systems is the first subset of the plurality of producer systems; Identifying a second producer system from the second plurality of producer systems based at least in part on the producer status information associated with each producer system of the second plurality of producer systems that are not identical to ,
In response to identifying the second producer system, the second producer system identification information is provided to the consumer system so that the consumer system is at least the first producer. By enabling the system and the second producer system to request access to the service, the identification of the producer system is determined at least between the first lease agent and the second lease agent. Configured to be a distributed distributed process,
A second lease agent including a second lease system;
Including system.
Item 21: The first lease system is further configured to provide a first lease time to the consumer system, and the first lease time is determined by the consumer system by the first production system. The second lease system is further configured to provide the consumer system with a second lease time, the second lease time being permitted to access the consumer system Item 21. The system of Item 20, wherein the consumer system includes a time during which the consumer system is allowed to access the second producer system.
Item 22: The first lease agent is
Receiving first updated status information of the first producer system;
A first status module 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 is
Receiving second updated status information of the second author system;
Item 20 to Item 21 further comprising a second status module configured to update the producer status information of the second producer system based at least in part on the second updated status information. The system described in.
Item 23: The system according to Item 22, wherein the first updated status information and the second updated status information are received from the consumer system.
Item 24: The system according to Item 22, wherein the first updated status information is received from the first producer system, and the second updated status information is received from the second producer system. .
Item 25: The first lease agent is
Receiving from the consumer system a first lease renewal request to obtain additional lease time for the first producer system;
Determining whether to approve the first lease renewal request based at least in part on the producer status information of the first producer system;
Paragraph 20 further configured to provide the consumer system with a first lease renewal time of the first producer system in response to determining to approve the first lease renewal request. 25. The system according to Item 24.
Item 26: In response to deciding not to approve the first lease renewal request, the first lease agent
Identifying a third producer system from the first plurality of producer systems based at least in part on the 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.
Item 27: A method of distributing a producer system among a plurality of lease agent systems,
With a first lease agent system that includes one or more processors,
Determining a first set of author systems available at a first time;
Identifying a second set of producer systems that can be used at a second time that occurred prior to the first time;
Calculating a difference in number between the first set of producer systems and the second set of producer systems;
Determining whether the difference meets a threshold; and
In response to determining that the difference meets the threshold,
Distributing the first set of producer systems among a plurality of lease agent systems by assigning each lease agent system a separate subset of the first set of producer systems; and
For each lease agent system of the plurality of lease agent systems other than the first lease agent system, the creator system assigned to the lease agent system included in the first set of producer systems. Providing a subset of identification information to each of the lease agent systems so that the various producer systems included in the first set of producer systems can provide services to the various consumer systems; Distributing the first set of producer systems among the plurality of lease agent systems provides the services provided by the first set of producer systems to the various consumer systems. Making it possible to balance when allocating,
Including methods.
Item 28: Notifying a set of lease agent systems included in the plurality of lease agent systems that the first lease agent system distributes the first set of producer systems The first lease agent system distributes the first set of producer systems while the set of lease agent systems does not attempt to distribute the first set of producer systems. Item 28. The method according to Item 27, further comprising:
Item 29: The second set of usable creator systems and the second time ensure that the difference meets the threshold when the first lease agent system is activated after an inactivity period Item 29. The method according to Item 27, wherein the method includes a value.
Item 30: The first set of producer systems includes the total number of producer systems that can be used at the first time, and the second set of producer systems at the second time. Item 30. The method according to Item 27 to Item 29, which includes the total number of producer systems that can be used.
Item 31: receiving an indication that at least one of the plurality of lease agent systems cannot be used at the third time;
Identifying a third set of author systems available at that third time;
Identifying a set of lease agent systems available at the third time;
Distributing the third set of producer systems among the set of lease agent systems available at the third time; and
For each lease agent system of the set of lease agent systems available at the third time, a subset of the producer systems included in the third set of producer systems, the second set 31. The method of paragraphs 27-30, further comprising: providing the lease agent system with identification information for a subset of the author system determined based at least in part on the distribution of the set of author systems. .
Item 32: The method according to Item 31, wherein the third set of producer systems and the first set of producer systems are the same system.
Item 33: Distributing the first set of producer systems that can be used at the first time among the plurality of lease agent systems does not duplicate the first set of producer systems. Item 33. The method according to Item 27 to Item 32, including dividing into a subset of a person system.
Item 34: Determining that a producer system included in a subset of the first producer system assigned to the first lease agent system is no longer usable.
And updating the number of available publisher systems to reflect that the publisher system is no longer available, the first set of publisher systems available at the first time. The determination is based at least in part on the number of available authoring systems,
Item 34. The method according to Item 27 to Item 33, further comprising:
Item 35: The method according to Item 34, wherein determining that the publisher system is no longer usable includes receiving a notification from the consumer system that the publisher system is not responding.
Item 36: Determining that the publisher system is no longer usable includes determining that the publisher system does not respond to the status request provided by the first lease agent system. 36. The method according to item 35.
Item 37: receiving a request from the producer system to register with the first lease agent system;
Determining whether the producer system is included in a subset of the producer system assigned to the first lease agent system; and
In response to determining that the creator system is included in the subset of the creator system assigned to the first lease agent system, the creator system is registered with the first lease agent system. The method according to Item 27 to Item 36, further comprising:
Item 38: In response to determining that the creator system is not included in the subset of the creator system assigned to the first lease agent system, the method includes:
Identifying a second lease agent system from the plurality of lease agent systems assigned to the producer system; and
38. The method of paragraph 37, further comprising: providing identification information of the second lease agent system to the producer system.
Item 39: The method according to Item 27 to Item 38, wherein a consumer system included in the various consumer systems accesses different producer systems included in the plurality of producer systems at different times.
Item 40: A system for distributing a producer system among a plurality of lease agents,
A plurality of lease agents including a first lease agent, wherein each lease agent included in the plurality of lease agents includes one or more processors, and the first lease agent A plurality of distribution systems configured to determine whether a difference between the set of available publisher systems and the set of available publisher systems at a second time meets a threshold; With a lease agent,
In response to determining that the difference satisfies the threshold in the distribution system,
Based on the number of two or more lease agents included in the plurality of lease agents, the set of creator systems is divided into subsets of the plurality of creator systems, and the plurality of producer systems by various user systems. Try to distribute access to the app across the publisher systems almost evenly,
The lease agent of the plurality of lease agents is further configured to provide the lease agent with identification information of a producer system included in one of the subsets of the plurality of producer systems. A distribution system;
Including system.
Item 41: The system according to Item 40, wherein the number of creator system subsets corresponds to the number of the two or more lease agents included in the plurality of lease agents.
Item 42: The distribution system is further configured to provide each lease agent with identification information of the creator system included in a subset of the creator system different from the subset of the plurality of producer systems. 40. The system according to Item 40 to Item 41.
Item 43: The distribution system of the first lease agent does not include the first lease agent, and the distribution system of the first lease agent does not include the first lease agent. 43. The system of clauses 40-42, further configured to issue a warning that the producer system is being distributed.
Item 44: The distribution of the first lease agent in response to receiving a warning that the second lease agent included in the plurality of lease agents is distributing the set of producer systems. 44. The system according to Item 40 to Item 43, wherein the system is further configured not to distribute the set of producer systems.
Item 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 a subset of the producer system assigned to the first lease agent;
In response to determining that the producer system is included in the subset of the producer system assigned to the first lease agent, register the producer system with the first lease agent;
Included in the plurality of lease agents assigned to the creator system in response to determining that the creator system is not included in the subset of the creator system assigned to the first lease agent 45. The system of clauses 40-44, further comprising a registration module configured to identify a second lease agent to be identified and to provide identification information of the second lease agent to the producer system.
Item 46: A method of distributing leases among a plurality of lease agent systems,
With a first lease agent system that includes one or more processors,
Identify a set of available author systems,
Determining multiple leases available to each producer system of the set of available producer systems;
By assigning each lease agent system included in multiple lease agent systems a subset of leases included in the multiple leases available to each producer system, the multiple leases available to each producer system Distributing among the plurality of lease agent systems; and
For each lease agent system of the plurality of lease agent systems, providing the lease agent system with a subset of the leases assigned to the lease agent system, thereby providing the plurality of leases available to each producer system. Allowing the distribution among the plurality of lease agent systems to balance the workload among the plurality of lease agent systems;
Including methods.
Item 47: The method according to Item 46, wherein a non-overlapping subset of leases is assigned to each lease agent system.
Item 48: Providing the subset of leases to the lease agent system excludes providing the lease subset assigned to the lease agent system to the first lease agent system. The method described in 1.
Item 49: Providing the lease agent system with a subset of the lease assigned to the lease agent system means that the plurality of assignees assigned to the lease agent system for each producer system of the plurality of producer systems. 49. The method of clauses 46-48, comprising providing a lease to the lease agent system.
Item 50: Providing the lease agent system with a subset of the lease assigned to the lease agent system includes providing the lease agent system with an identifier for each lease assigned to the lease agent system. Item 46. The method according to Item 46 to Item 49.
Item 51: Distributing the plurality of leases usable for each producer system among the plurality of lease agent systems means that the plurality of leases usable for each producer system is distributed among the plurality of lease agent systems. Item 51. The method according to Item 46 to Item 50, comprising substantially evenly distributing.
Item 52: The method according to Item 46 to Item 51, wherein the plurality of lease agent systems includes a subset of a set of lease agent systems.
Item 53: The method according to Item 52, wherein the plurality of lease agent systems includes the first lease agent system.
Item 54: The method according to Item 46 through Item 53, wherein the set of usable producer systems includes a subset of the available producer systems.
Item 55: The distribution of the plurality of leases that can be used for each creator system among the plurality of lease agent systems is that the set at the first time with the threshold changed compared to the second time. 55. The method of clauses 46 through 54, which occurs in response to the total number of leases available between available producer systems.
Item 56: A method of selecting a producer system from a plurality of producer systems that provide access to a service,
With a first lease agent system that includes one or more processors,
Receiving status information of a plurality of producer systems, each producer system of the plurality of producer systems being associated with a selection weight, at least a portion of the status information being at least one consumer Reflects the determination of the status of at least one publisher system by the system,
Changing the producer status information of the plurality of producer systems based at least in part on the received status information, wherein the changed producer status information is related to the interaction with the consumer system. Including a set of metrics on the performance of multiple author systems,
Changing the selection weight associated with the plurality of publisher systems based at least in part on a first metric included in the set of metrics;
Receiving from the consumer system a request to lease access to one of the plurality of producer systems; and
In response to receiving the request to lease access to one of the plurality of publisher systems,
Selecting a producer system from the plurality of producer systems based at least in part on a corresponding selection weight associated with each producer system of the plurality of producer systems providing service to 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; and
Providing the consumer system with the producer status information related to the selected producer system, wherein at least part of the producer status information is acquired from the second consumer system. To do,
Including methods.
Item 57: The method according to Item 56, wherein the plurality of producer systems include a subset of the producer systems.
Item 58: The change of the selection weight associated with the plurality of producer systems changes the probability that a specific producer system is selected by the selection of the producer system. the method of.
Item 59: The method according to Item 56 to Item 58, wherein the status information is received from at least one consumer system.
Item 60: The method of Item 59, wherein the at least one consumer system includes the consumer system that provided the request to lease access to one of the plurality of producer systems.
Item 61: The method according to Item 56 to Item 60, wherein the status information is received from the plurality of producer systems.
Item 62: The method according to Item 56 to Item 60, wherein the status information is received from the second lease agent system.
Item 63: Determining whether or not the corresponding selection weight after change satisfies the deletion threshold for the first producer system included in the plurality of producer systems;
In response to the selection weight after the change satisfying the deletion threshold, a list of the creator systems that can be used, and the creator systems included in the plurality of creator systems that can be used for selection. 64. The method according to any one of paragraphs 56 to 63, further comprising deleting the identification information of the first producer system from the list of available producer systems including the identification information of the corresponding available producer system.
Item 64: The method according to Item 63, wherein selecting the creator system from the plurality of producer systems includes selecting the creator system from the list of available creator systems.
Item 65: tracking the number of publisher systems deleted from the list of available publisher systems; and
In response to the number satisfying the reduction threshold, the available producer system is re-connected between a plurality of lease agent systems, including the first lease agent system. 65. The method according to item 63 to item 64, further comprising distributing.
Item 66: The method according to Item 63, wherein the deletion threshold is based on an average value of the first metrics of the plurality of creator systems.
Item 67: The producer status information provided to the consumer system includes an independent set of producer status information usable for the first lease agent system, and the independent set of producer statuses. The information enables the consumer system to select a producer system that is less used from a plurality of lease producer systems than other lease producer systems. 66. The method according to 66.
Item 68: Selecting the producer system included in the plurality of producer systems is one of the first set of producer systems that has a lower load than the second set of producer systems. 68. The method according to Item 56 to Item 67, further comprising selecting
Item 69: The method according to Item 68, wherein the selected producer system is not associated with a minimum load, thereby reducing a frequency of occurrence of load fluctuations.
Item 70: A system for selecting a producer system from a plurality of producer systems that provide access to a service,
A first lease agent of a plurality of lease agents, the first lease agent comprising a status module and one or more processors configured to implement a lease system;
The status module
A plurality of producer systems, each producer system included in the plurality of producer systems receiving status information of a first producer system among the plurality of producer systems associated with the selection weight. ,
Configured to change the selection weight associated with the first producer system based at least in part on the received status information;
The leasing system
Receive a request to access one of the author systems,
The plurality of producer systems including the first producer system based at least in part on a corresponding selection weight associated with each producer system of the plurality of producer systems providing a service in response to the request Configured to select the producer system from the
system.
Item 71: The status information is received at the first lease agent by the lease system, and the lease system is further configured to provide the status information to the status module. System.
Item 72: The status 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 status module
Identify the second lease agent assigned to the first producer,
72. A system according to clauses 70-71, further configured to provide the received status information to the second lease agent.
Item 73: The status module is
Determine whether the changed selection weight satisfies the deletion threshold,
Item 70 to Item 72 are further configured to separate the first producer system from the plurality of producer systems in response to the changed selection weight satisfying the deletion threshold. The system described in.
Item 74: In response to the separation of several producer systems from the plurality of producer systems that satisfy the reduction threshold, the first lease agent determines that the plurality of producer systems 74. The system of clause 73, further comprising a distribution system configured to redistribute between lease agents.
Item 75: 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. Item 75. The system according to Item 70.
Item 76: The system according to Item 70 to Item 75, wherein the selected producer system includes the first producer system.
Item 77: A non-transitory physical computer storage device that, when executed by one or more processors, at least
In response to receiving status information of the first producer system of the plurality of producer systems at the first lease agent, the first producer is a subset of the first producer system. Determining whether each member system included in the plurality of creator systems is a member of a subset of the first producer system associated with the first lease agent. Determining that the plurality of publisher systems are divided into a subset of a number of publisher systems associated with the weights;
Responsive to determining that the first producer system is a member of a subset of the first producer system, changing the selection weight associated with the first producer system; and
In response to receiving a request for access to a publisher system, at least the selection weight associated with the publisher system included in the subset of the publisher system that provides a service to the provider of the request Based in part on selecting a second author system from a subset of the first author system;
A non-transitory physical computer storage device that includes computer-executable instructions that instruct the computing system to select a publisher system from the plurality of publisher systems that provide access to the service.
Item 78: The non-transitory physical computer storage device according to Item 77, wherein the second producer system and the first producer system are the same.
Item 79: In response to determining that the first producer system is not a member of a subset of the first producer system, the method includes:
Identifying a subset of a second author system that includes the first author system;
Identifying a second lease agent associated with the second subset of author systems; and
Item 79. The non-transitory physical computer storage device according to Item 77 to Item 78, further comprising: providing the status information to the second lease agent.
Item 80: A method of accessing a service provided by a creator virtual machine in an overlay network,
A consumer system host including one or more processors configured to host one or more consumer virtual machines, wherein at least one of the consumer virtual machines is associated with a first overlay network. Depending on the consumer system host
Receiving a request for access to a service of a producer system from a consumer virtual machine hosted by the consumer system host, wherein the request is a consumer virtual machine associated with the consumer virtual machine; Receiving, including an internal header including an address and a destination virtual address;
Accessing a lease pool associated with the consumer virtual machine, the set including a set of lease producer virtual machines leased for the consumer virtual machine;
Selecting a lease creator virtual machine from the lease pool to access the service;
Replacing the destination virtual address in the internal header with the producer virtual machine address associated with the lease producer virtual machine;
A producer system host associated with the lease producer virtual machine, configured to host one or more producer virtual machines, wherein at least one of the producer virtual machines includes the first overlay Identify the producer system host associated with the network,
Encapsulating the request with an external header including a producer system host address associated with the producer system host and a consumer system host address associated with the consumer system host; and
Enabling the producer system host to process the request by providing the request to the producer system host over the network;
Including methods.
Item 81: Selecting the lease creator virtual machine
Determining whether at least one available lease producer virtual machine is included in the lease pool; and
In response to determining that at least one available lease producer virtual machine is included in the lease pool, select one of the available lease producer virtual machines and select the selected 81. The method according to Item 80, further comprising deleting the available lease creator virtual machine from the lease pool.
Item 82: In response to determining that an available lease producer virtual machine is not included in the lease pool, the method includes:
Obtaining a lease for a set of producer virtual machines included in the first overlay network on behalf of the consumer virtual machines;
Initiating a connection with each producer virtual machine included in the set of lease producer virtual machines; and
Adding for each successfully established connection the corresponding producer virtual machine to the lease pool;
Selecting the lease producer virtual machine selects one of the producer virtual machines added to the lease pool, and deletes the selected producer virtual machine from the lease pool. 84. The method according to Item 81, further comprising:
Item 83: Obtaining a lease for the set of producer virtual machines
Generating a request on behalf of the consumer virtual machine to obtain a lease for the producer virtual machine included in the first overlay network;
Providing the set of lease agents with the request to obtain the lease for the producer virtual machine; and
Including enabling at least some of the lease agents included in the set of lease agents to initiate a connection with the creator virtual machine by receiving lease information of the creator virtual machine. 83. The method according to Item 82.
Item 84: The method according to Item 83, wherein the set of lease agents includes a subset of lease agents in the network.
Item 85: receiving a response from the producer system host to the service request;
Decapsulating the service response by removing the outer header of the response and accessing the inner header of the response;
Determining a destination consumer virtual machine that is one of the consumer virtual machines hosted by the consumer system host based on the internal header of the response; and
85. The method of clauses 80-84, further comprising providing the unencapsulated service response to the recipient consumer virtual machine.
Item 86: The method according to Item 85, wherein the recipient consumer virtual machine and the consumer virtual machine are the same.
Item 87: identifying a source virtual address associated with the source producer virtual machine associated with the response based on the internal header of the response; and
Item 87. The method according to Item 85 to Item 86, further comprising: replacing an address included in the internal header associated with the transmission source creator virtual machine with the transmission source virtual address.
Item 88: The source producer virtual machine corresponds to the selected lease producer virtual machine, the source virtual address corresponds to the destination virtual address, and the destination consumer virtual machine 90. The method according to clause 87, corresponding to the consumer virtual machine.
Item 89: The method of any one of Items 80-88, wherein at least one of the consumer virtual machines is associated with a second overlay network.
Item 90: The method of any one of Items 80-89, wherein at least one of the producer virtual machines is associated with a second overlay network.
Item 91: receiving a second request for access to the service;
Determining whether the load on the lease producer virtual machine meets a load threshold; and
In response to determining that the load on the lease creator virtual machine meets the load threshold,
Selecting from the lease pool a second lease creator virtual machine to access the service; and
95. The method of clauses 80-90, further comprising providing the second request to a second producer system host that hosts the second lease producer virtual machine.
Item 92: In response to determining that the load of the lease creator virtual machine satisfies the load threshold, the method further terminates the connection with the lease creator virtual machine. 92. The method according to Item 91.
Item 93: A system for accessing a service provided by a producer in an overlay network,
A consumer system host including one or more processors and configured to host one or more consumers,
A mapping repository configured to store mappings from authors to publisher system hosts, and
An overlay network proxy,
Receiving a request from the consumer hosted by the consumer system host for access to the producer's services;
Select the leasing producer to access the service, leased for the consumer,
Access the mapping repository to identify a producer system host associated with the lease producer and configured to host one or more producers;
A consumer system host including an overlay network proxy configured to send the request to the producer system host;
Including system.
Item 94: The mapping repository is further configured to store a lease pool that is associated with the consumer and includes a set of lease producers that are leased for the consumer. And
The overlay network proxy
Determine whether at least one available lease producer is included in the lease pool;
In response to determining that at least one available lease producer is included in the lease pool, from the available lease producer, the lease producer to access the service. 94. The system of clause 93, further configured to select.
Item 95: In response to determining that at least one available lease producer is not included in the lease pool, the overlay network proxy
Generate a request on behalf of the consumer to obtain the producer's lease,
Providing such a request to the set of leasing agents to obtain the creator's lease,
95. The system of clause 94, further configured to receive producer lease information for at least some of the lease agents included in the set of lease agents.
Item 96: The system of Item 95, wherein the mapping repository is further configured to store the lease information in the lease pool associated with the consumer.
Item 97: The overlay network proxy is
Receiving a response from the producer host system to the request,
Determine the recipient consumer, including the consumer, based on the internal header of the response,
96. The system of clauses 93-95, further configured to provide the response to the consumer.
Item 98: The overlay network proxy is
Identify the source virtual address associated with the lease producer,
98. The system of clause 97, further configured to replace an address contained in the internal header associated with the lease producer with the source virtual address before providing the response to the consumer. .
Item 99: The overlay network proxy encapsulates the request using an external header including a producer system host address associated with the publisher system host and a consumer system host address associated with the consumer system host. 98. The system of clause 93 through clause 97, further configured to:
Item 100: A non-transitory physical computer storage device that, when executed by one or more processors, at least
A lease associated with the consumer virtual machine in response to receiving a request from the consumer virtual machine hosted by the consumer system host that includes a destination virtual address and seeking access to the services of the producer system Selecting a producer virtual machine for lease to access the service from a pool that is pool and includes connection information for the producer virtual machine leased for the consumer virtual machine;
Replacing the destination virtual address in the request header with the producer virtual machine address associated with the lease producer virtual machine;
Determining a producer system host associated with the lease producer virtual machine; and
Providing the lease producer virtual machine with the request to be sent to the producer system host enables the lease producer virtual machine to process the request for access to the service To do,
A non-transitory physical computer storage device that includes computer-executable instructions that instruct a computing system to access services provided by a producer virtual machine in an overlay network.
Item 101: Selecting the lease producer virtual machine from the lease pool associated with the consumer virtual machine
Determining whether the lease pool contains connection information for at least one lease producer virtual machine not currently in use by the consumer virtual machine; and
In response to determining that at least one lease producer virtual machine not currently in use by the consumer virtual machine is not included in the lease pool, the computer-executable instructions are:
Obtain a lease for a set of producer virtual machines included in the overlay network on behalf of the consumer virtual machine;
Initiating a connection with each producer virtual machine included in the set of lease producer virtual machines; and
101. The non-transitory of clause 100, further comprising: instructing the computing system to add connection information for the corresponding creator virtual machine to the lease pool for each successfully established connection. Physical computer storage device.
Item 102: Selecting the lease producer virtual machine from the lease pool associated with the consumer virtual machine selects one of the producer virtual machines with connection information added to the lease pool 102. The non-transitory physical computer storage device according to Item 101.

用語
本開示全体を通じて、いくつかのコンピューティングシステムについて説明してきた。これらのシステムに関する記述は、本開示の教示または適用性を限定することを意図するものではない。例えば、本明細書で説明されたユーザシステムとしては、一般に、いくつか例を挙げると、デスクトップ機、ラップトップ機、ビデオゲームプラットフォーム、テレビ用セットトップボックス、テレビ(例えば、インターネットTV)、コンピュータ化された機器、及び無線モバイル端末(例えば、スマートフォン、PDA、タブレットなど)などの任意の1つ以上のコンピューティング装置を挙げることができる。さらに、本明細書で説明されたユーザシステムは、異なるアプリケーションを含む、あるいは異なるように構成される各種の装置とすることが可能である。加えて、本明細書で説明されたユーザシステムは、任意の種類のオペレーティングシステム(operating system:OS)を含むことができる。例えば、本明細書で説明されたモバイルコンピューティングシステムは、Android(登録商標)OS、Windows(登録商標)OS、Mac(登録商標)OS、Linux(登録商標)またはUnix(登録商標)ベースのOSなどを実装することができる。
Terminology Throughout this disclosure, several computing systems have been described. The statements regarding these systems are not intended to limit the teaching or applicability of the present disclosure. For example, the user systems described herein generally include desktop machines, laptop machines, video game platforms, television set-top boxes, televisions (eg, Internet TV), computerized to name a few examples. And any one or more computing devices such as wireless devices (eg, smart phones, PDAs, tablets, etc.). Further, the user system described herein may be various devices that include or are configured to be different. In addition, the user systems described herein can include any type of operating system (OS). For example, the mobile computing system described herein includes an Android® OS, a Windows® OS, a Mac® OS, a Linux®, or a Unix® based OS. Etc. can be implemented.

さらに、例示したシステムの様々な構成要素の処理を、複数のマシン、ネットワーク及び他のコンピューティングリソースにわたって分散させることができる。加えて、システムの2つ以上の構成要素を、より少ない構成要素に統合することができる。例えば、リースエージェント102の一部として例示された様々なシステムを、複数のコンピューティングシステムにわたって分散させることができ、または、1つのコンピューティングシステムに統合することができる。さらに、例示したシステムの様々な構成要素を、専用のコンピュータハードウェア内ではなく、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 integrated into fewer components. For example, the various systems illustrated as part of the lease agent 102 can be distributed across multiple computing systems or can be integrated 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 dedicated computer hardware. Similarly, the illustrated data repository can represent physical and / or logical data storage devices, such as, for example, a storage area network or other distributed storage system. Further, in some embodiments, the connections between the illustrated components represent possible data flow paths rather than actual connections between hardware. Although several examples of possible connections have been shown, any of the illustrated subsets of components can communicate with any other subset of components in various implementations.

実施形態に応じて、本明細書で説明された任意のアルゴリズム、方法またはプロセスのある行為、イベントまたは機能を、異なる順序で実行することができ、追加、併合または完全に省略することができる(例えば、説明した行為またはイベントの全てが、アルゴリズムを実施するために必要となるわけではない)。さらに、ある実施形態では、行為またはイベントを、例えば、マルチスレッド処理、割り込み処理、もしくは複数のプロセッサもしくはプロセッサコアによって、または他の並列アーキテクチャ上で、シーケンシャルではなく同時に実行することができる。   Depending on the embodiment, certain acts, events or functions of any algorithm, method or process described herein may be performed in a different order and may be added, merged or omitted entirely ( For example, not all the acts or events described are required to implement the algorithm). Further, in certain embodiments, actions or events may be performed simultaneously, rather than sequentially, by, for example, multithreaded processing, interrupt processing, or multiple processors or processor cores, or on other parallel architectures.

例示した様々なシステムのそれぞれは、本明細書で説明された様々な機能を実行するようにプログラムされ、またはそれらの機能を実行するように構成されたコンピューティングシステムとして実装されてもよい。このコンピューティングシステムは、説明された機能を実行するためにネットワークを介して通信及び連携する複数の別個のコンピュータまたはコンピューティング装置(例えば、物理サーバ、ワークステーション、記憶装置アレイなど)を含んでもよい。このような各コンピューティング装置は、通常、メモリまたは他の非一時的コンピュータ可読記憶媒体に記憶されたプログラム命令またはモジュールを実行するプロセッサ(または複数のプロセッサ)を含む。本明細書に開示された様々な機能は、かかるプログラム命令を用いて具現化され得るが、開示された機能の一部または全ては、その代わりに、コンピュータシステムの特定用途向け回路(例えば、ASICまたはFPGA)に実装されてもよい。コンピューティングシステムが複数のコンピューティング装置を含む場合、これらの装置は、同じ場所に配置してもよいが、必ずしもそのようにする必要はない。開示された方法及びタスクの結果は、ソリッドステートメモリチップ及び/または磁気ディスクなどの物理的記憶装置を異なる状態に変換することによって永続的に記憶され得る。説明された各プロセスは、関連するサーバコードを用いてプログラムされた1つ以上の物理サーバなどの、1つ以上のコンピューティング装置によって実装されてもよい。   Each of the various illustrated systems may be programmed to perform the various functions described herein, or may be implemented as a computing system configured to perform those functions. The computing system may include a plurality of separate computers or computing devices (eg, physical servers, workstations, storage device arrays, etc.) that communicate and collaborate over a network to perform the functions described. . Each such computing device typically includes a processor (or processors) that executes program instructions or modules stored in memory or other non-transitory computer readable storage media. Although the various functions disclosed herein may be implemented using such program instructions, some or all of the disclosed functions will instead be implemented in an application specific circuit (e.g., ASIC) of a computer system. Alternatively, it may be implemented in an FPGA). If a computing system includes multiple computing devices, these devices may be co-located, but need not be so. 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.

本明細書で使用される条件付きの文言、とりわけ、「できる(can)」、「する場合がある(might)」、「し得る(may)」、「例えば(e.g.)」などは、別段の定めのない限り、または、使用された文脈で解釈されない限り、一般に、ある特徴、要素及び/または状態を、ある実施形態では含むが、他の実施形態では含まないことを伝えるように意図されるものである。従って、このような条件付きの文言は、一般に、特徴、要素及び/または状態が1つ以上の実施形態に全て必要であることを示すように意図されるものでもなく、これらの特徴、要素及び/または状態が含まれているかどうか、または、任意の特定の実施形態において実行されるものであるかどうかを、著者の指摘もしくは示唆の有無に関わらず、決定する論理を1つ以上の実施形態が必ず含むことを示すように意図されるものでもない。用語「備える(comprising)」「含む(including)」「有する(having)」などは同義語であり、包括的に、制限されない様式で使用され、追加の要素、特徴、行為、操作などを除外しない。また、用語「または(or)」は、包括的な意味で使用される(すなわち、排他的な意味では使用されない)。従って、例えば、リストにある要素を接続するのに使用されるとき、用語「または(or)」は、そのリスト内の要素の1つ、一部または全てを意味する。加えて、冠詞「a」及び「an」は、特に指示がない限り、「1つ以上」または「少なくとも1つ」を意味するように解釈されるべきである。   Conditional language used herein, among others, “can”, “might”, “may”, “eg (eg)”, etc. Unless otherwise specified or construed in the context in which it is used, generally convey that certain features, elements and / or conditions are included in one embodiment but not in other embodiments. Is intended. Accordingly, such conditional language is generally not intended to indicate that all features, elements, and / or states are required for one or more embodiments, but these features, elements and One or more embodiments with logic to determine whether a state is included, or whether it is implemented in any particular embodiment, with or without the author's indication or suggestion Is not intended to indicate that is necessarily included. The terms “comprising”, “including”, “having” and the like are synonymous and are used in a comprehensive and unrestricted manner and do not exclude additional elements, features, acts, operations, etc. . Also, the term “or” is used in an inclusive sense (ie, not in an exclusive sense). Thus, for example, when used to connect elements in a list, the term “or” means one, some or all of the elements in the list. In addition, the articles “a” and “an” should be interpreted to mean “one or more” or “at least one” unless otherwise indicated.

語句「X、Y及びZのうちの少なくとも1つ」などの接続語は、別段の定めのない限り、一般に、項目、用語などがX、YまたはZのいずれかであり得ることを伝えるために、使用される文脈で通常は解釈される。従って、かかる接続語は、一般に、ある実施形態が、X、Y及びZのそれぞれが存在するために、Xの少なくとも1つ、Yの少なくとも1つ及びZの少なくとも1つを必要とすることを示すように意図されるものではない。   Conjunctions such as the phrase “at least one of X, Y, and Z” generally indicate that an item, term, etc. can be any of X, Y, or Z unless otherwise specified. Usually interpreted in the context in which it is used. Thus, such conjunctions generally indicate that certain embodiments require at least one of X, at least one of Y, and at least one of Z in order for each of X, Y, and Z to be present. It is not intended to be shown.

上記の詳細な説明では、様々な実施形態に適用される新規な特徴を図示し、説明し、指摘してきたが、本開示の思想から逸脱することなく、例示した装置またはアルゴリズムの形態及び詳細において様々な省略、置換及び変更をなすことができることが理解されよう。従って、前述の説明においては、いずれかの特定の特徴、特性、ステップ、モジュールまたはブロックが必要または不可欠であることを示すことは何ら意図されていない。理解されるであろうが、本明細書で説明されたプロセスは、ある特徴を他の特徴とは別に使用または実施できるため、本明細書に記載された特徴及び利点の全てを提供しない形態内で具現化することができる。保護の範囲は、前述の説明によってではなく、添付された特許請求の範囲によって定められる。特許請求の範囲の意味及び均等範囲に属する全ての変更は、それらの範囲内に包含される。
While the foregoing detailed description has illustrated, described, and pointed out novel features that apply to various embodiments, without departing from the spirit of the present disclosure, in the form and details of an illustrated apparatus or algorithm It will be understood that various omissions, substitutions and changes may be made. Accordingly, the foregoing description is not intended to indicate that any particular feature, characteristic, step, module, or block is necessary or essential. As will be appreciated, the processes described herein can be used or implemented separately from other features, and thus in a form that does not provide all of the features and advantages described herein. Can be realized. The scope of protection is defined not by the foregoing description, but by the appended claims. All changes that come within the meaning and range of equivalency of the claims are to be embraced within their scope.

Claims (15)

複数のリースエージェント間に制作者システムを分配するシステムであって、
第1のリースエージェントを含む複数のリースエージェントであって、前記複数のリースエージェントに含まれる各リースエージェントが1つ以上のプロセッサを含み、前記第1のリースエージェントが、第1の時間での一組の使用可能な制作者システムと第2の時間での前記一組の使用可能な制作者システムとの差分が閾値を満たしているかどうかを判定するように構成された分配システムをさらに含む複数のリースエージェントと、
前記分配システムであって、前記差分が前記閾値を満たしていると判定したことに応答して、
前記複数のリースエージェントに含まれる2つ以上のリースエージェントの数に基づき、前記一組の制作者システムを複数の制作者システムのサブセットに分割して、種々のユーザシステムによる前記複数の制作者システムへのアクセスを前記複数の制作者システム間にほぼ均等に分散させるように試み、
前記複数のリースエージェントの各リースエージェントに対し、前記複数の制作者システムのサブセットのうちの1つのサブセットに含まれる制作者システムの識別情報を前記リースエージェントに提供するようにさらに構成されている前記分配システムと、
を含むシステム。
A system for distributing a producer system among a plurality of lease agents,
A plurality of lease agents including a first lease agent, wherein each lease agent included in the plurality of lease agents includes one or more processors; A plurality of distribution systems configured to determine whether a difference between a set of available publisher systems and the set of available publisher systems at a second time meets a threshold; With a lease agent,
In response to determining that the difference satisfies the threshold,
Based on the number of two or more lease agents included in the plurality of lease agents, the set of producer systems is divided into subsets of a plurality of producer systems, and the plurality of producer systems by various user systems Attempts to distribute access to the app across the author systems approximately evenly,
Further configured to provide each lease agent of the plurality of lease agents with identification information of a producer system included in one of the subsets of the plurality of producer systems to the lease agent. A distribution system;
Including system.
前記分配システムは、前記複数の制作者システムのサブセットに含まれる別の制作者システムのサブセットに含まれる前記制作者システムの識別情報を各リースエージェントに提供するようにさらに構成されている、請求項1に記載のシステム。   The distribution system is further configured to provide each lease agent with identification information of the publisher system included in a subset of another publisher system included in the subset of the plurality of publisher systems. The system according to 1. 前記分配システムは、前記第1のリースエージェントを含まない、前記複数のリースエージェントの1つ以上のリースエージェントに対し、前記第1のリースエージェントの前記分配システムが前記1組の制作者システムを分配しているとの警告を発するようにさらに構成されている、請求項1に記載のシステム。   The distribution system does not include the first lease agent, and the distribution system of the first lease agent distributes the set of creator systems to one or more lease agents of the plurality of lease agents. The system of claim 1, further configured to issue a warning that 前記複数のリースエージェントに含まれる第2のリースエージェントが前記一組の制作者システムを分配しているとの警告を受信したことに応答して、前記第1のリースエージェントの前記分配システムは、前記一組の制作者システムの分配を行わないようにさらに構成されている、請求項1に記載のシステム。   In response to receiving a warning that a second lease agent included in the plurality of lease agents is distributing the set of producer systems, the distribution system of the first lease agent includes: The system of claim 1, further configured to not distribute the set of producer systems. 前記第1のリースエージェントは、
前記第1のリースエージェントに登録することを求める要求を制作者システムから受信し、
前記第1のリースエージェントに割り当てられた制作者システムのサブセットに前記制作者システムが含まれているかどうかを判定し、
前記第1のリースエージェントに割り当てられた前記制作者システムのサブセットに前記制作者システムが含まれていると判定したことに応答して、前記制作者システムを前記第1のリースエージェントに登録し、
前記第1のリースエージェントに割り当てられた前記制作者システムのサブセットに前記制作者システムが含まれていないと判定したことに応答して、前記制作者システムに割り当てられた前記複数のリースエージェントに含まれる第2のリースエージェントを特定し、前記第2のリースエージェントの識別情報を前記制作者システムに提供するように構成された登録モジュールをさらに含む、請求項1に記載のシステム。
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 a subset of the producer systems assigned to the first lease agent;
Responsive to determining that the producer system is included in a subset of the producer system assigned to the first lease agent, registering the producer system with the first lease agent;
Included in the plurality of lease agents assigned to the producer system in response to determining that the producer system is not included in a subset of the producer system assigned to the first lease agent The system of claim 1, further comprising a registration module configured to identify a second lease agent to be identified and to provide identification information of the second lease agent to the producer system.
複数のリースエージェントシステム間での制作者システムの分配方法であって、
1つ以上のプロセッサを含む第1のリースエージェントシステムにより、
第1の時間に使用可能な第1の一組の制作者システムを決定すること、
前記第1の時間よりも前に生じた第2の時間に使用可能な第2の一組の制作者システムを特定すること、
前記第1の一組の制作者システムと前記第2の一組の制作者システムとの数の差分を算出すること、
前記差分が閾値を満たしているかどうかを判定すること、並びに
前記差分が前記閾値を満たしていると判定したことに応答して、
前記第1の一組の制作者システムの別々のサブセットを各リースエージェントシステムに割り当てることにより、前記第1の一組の制作者システムを複数のリースエージェントシステム間に分配すること、及び
前記第1のリースエージェントシステム以外の前記複数のリースエージェントシステムの各リースエージェントシステムに対し、前記第1の一組の制作者システムに含まれる、前記リースエージェントシステムに割り当てられた前記制作者システムのサブセットの識別情報を前記各リースエージェントシステムに提供して、前記第1の一組の制作者システムに含まれる種々の制作者システムが種々の消費者システムにサービスを提供できるようにすることにより、前記第1の一組の制作者システムを前記複数のリースエージェントシステム間に前記分配することが、前記第1の一組の制作者システムによって提供される前記サービスを前記種々の消費者システム間に割り振る際のバランスを取ることを可能にすること、
を含む方法。
A method for distributing a producer system among a plurality of lease agent systems,
With a first lease agent system that includes one or more processors,
Determining a first set of author systems available at a first time;
Identifying a second set of producer systems that can be used at a second time that occurred prior to the first time;
Calculating a difference in number between the first set of producer systems and the second set of producer systems;
In response to determining whether the difference meets a threshold, and in response to determining that the difference meets the threshold,
Distributing the first set of producer systems among a plurality of lease agent systems by assigning a separate subset of the first set of producer systems to each lease agent system; and Identifying a subset of the producer systems assigned to the lease agent system included in the first set of producer systems for each of the plurality of lease agent systems other than the lease agent system Providing information to each of the lease agent systems so that the various producer systems included in the first set of producer systems can provide services to the various consumer systems. A set of producer systems is connected to the plurality of lease agent systems. Allowing the distribution among systems to balance the service provided by the first set of producer systems when allocating among the various consumer systems;
Including methods.
前記複数のリースエージェントシステムの少なくとも1つが第3の時間に使用できないとの指示を受信すること、
前記第3の時間に使用可能な第3の一組の制作者システムを特定すること、
前記第3の時間に使用可能な一組のリースエージェントシステムを特定すること、
前記第3の一組の制作者システムを、前記第3の時間に使用可能な前記一組のリースエージェントシステム間に分配すること、
前記第3の時間に使用可能な前記一組のリースエージェントシステムの各リースエージェントシステムに対し、前記第3の一組の制作者システムに含まれる制作者システムのサブセットであって、前記第2の一組の制作者システムの前記分配に少なくとも部分的に基づいて決定された制作者システムのサブセットの識別情報を前記リースエージェントシステムに提供することをさらに含む、請求項6に記載の方法。
Receiving an indication that at least one of the plurality of lease agent systems is unavailable at a third time;
Identifying a third set of author systems available at the third time;
Identifying a set of lease agent systems available at the third time;
Distributing the third set of producer systems among the set of lease agent systems available at the third time;
For each lease agent system of the set of lease agent systems available at the third time, a subset of the producer systems included in the third set of producer systems, the second set The method of claim 6, further comprising: providing the lease agent system with identification information for a subset of the producer system determined based at least in part on the distribution of a set of producer systems.
前記第1の時間に使用可能な前記第1の一組の制作者システムを前記複数のリースエージェントシステム間に分配することは、前記第1の一組の制作者システムを重複しない制作者システムのサブセットに分割することを含む、請求項6に記載の方法。   Distributing the first set of producer systems that can be used at the first time among the plurality of lease agent systems is a way for the producer systems that do not overlap the first set of producer systems. The method of claim 6, comprising dividing into subsets. 前記第1のリースエージェントシステムに割り当てられた第1の制作者システムのサブセットに含まれる制作者システムがもはや使用できないと判定すること、及び
使用可能な制作者システムの数を更新して前記制作者システムがもはや使用できないことを反映することであって、前記第1の時間に使用可能な前記第1の一組の制作者システムを決定することが、使用可能な制作者システムの前記数に少なくとも部分的に基づいていること、
をさらに含み、
前記制作者システムがもはや使用できないと判定することは、前記制作者システムが応答しないとの通知を消費者システムから受信すること、または前記第1のリースエージェントシステムによって提供されたステータス要求に対して前記制作者システムが応答しないと判定することの一方を含む、請求項6に記載の方法。
Determining that a producer system included in a subset of the first producer system assigned to the first lease agent system is no longer usable, and updating the number of available producer systems Reflecting that the system is no longer available, and determining the first set of publisher systems available at the first time is at least in the number of available publisher systems Based in part,
Further including
Determining that the producer system is no longer usable is receiving a notification from the consumer system that the producer system is not responding, or in response to a status request provided by the first lease agent system. The method of claim 6, comprising one of determining that the producer system does not respond.
前記第1のリースエージェントシステムに登録することを求める要求を制作者システムから受信すること、
前記第1のリースエージェントシステムに割り当てられた前記制作者システムのサブセットに前記制作者システムが含まれているかどうかを判定すること、
前記第1のリースエージェントシステムに割り当てられた前記制作者システムのサブセットに前記制作者システムが含まれていると判定したことに応答して、前記制作者システムを前記第1のリースエージェントシステムに登録すること、
前記第1のリースエージェントシステムに割り当てられた前記制作者システムのサブセットに前記制作者システムが含まれていないと判定したことに応答して、前記方法が、
前記制作者システムに割り当てられた前記複数のリースエージェントシステムから第2のリースエージェントシステムを特定すること、及び
前記第2のリースエージェントシステムの識別情報を前記制作者システムに提供すること、
をさらに含む、請求項6に記載の方法。
Receiving a request from the producer system to register with the first lease agent system;
Determining whether the producer system is included in a subset of the producer system assigned to the first lease agent system;
Responsive to determining that the producer system is included in a subset of the producer system assigned to the first lease agent system, registering the producer system with the first lease agent system To do,
In response to determining that the producer system is not included in the subset of the producer systems assigned to the first lease agent system, the method includes:
Identifying a second lease agent system from the plurality of lease agent systems assigned to the producer system, and providing identification information of the second lease agent system to the producer system;
The method of claim 6, further comprising:
複数のリースエージェントシステム間でのリースの分配方法であって、
1つ以上のプロセッサを含む第1のリースエージェントシステムにより、
一組の使用可能な制作者システムを特定すること、
前記一組の使用可能な制作者システムの各制作者システムに使用可能な複数のリースを決定すること、
複数のリースエージェントシステムに含まれる各リースエージェントシステムに、各制作者システムに使用可能な前記複数のリースに含まれるリースのサブセットを割り当てることにより、各制作者システムに使用可能な前記複数のリースを前記複数のリースエージェントシステム間に分配すること、及び
前記複数のリースエージェントシステムの各リースエージェントシステムに対し、前記リースエージェントシステムに割り当てられた前記リースのサブセットを前記リースエージェントシステムに提供することにより、各制作者システムに使用可能な前記複数のリースを前記複数のリースエージェントシステム間に前記分配することが、前記複数のリースエージェントシステム間で作業負荷のバランスを取ることを可能にすること、
を含む方法。
A method of distributing leases among a plurality of lease agent systems,
With a first lease agent system that includes one or more processors,
Identify a set of available author systems,
Determining a plurality of leases available to each producer system of the set of available producer systems;
By assigning each lease agent system included in a plurality of lease agent systems a subset of leases included in the plurality of leases usable in each producer system, the plurality of leases usable in each producer system are assigned. Distributing among the plurality of lease agent systems and providing the lease agent system with a subset of the leases assigned to the lease agent system for each lease agent system of the plurality of lease agent systems, Distributing the plurality of leases available to each producer system among the plurality of lease agent systems enables balancing of the workload among the plurality of lease agent systems;
Including methods.
各リースエージェントシステムに、重複しないリースのサブセットが割り当てられている、請求項11に記載の方法。   The method of claim 11, wherein each lease agent system is assigned a non-overlapping subset of leases. 前記リースのサブセットを前記リースエージェントシステムに提供することは、前記リースエージェントシステムに割り当てられた前記リースのサブセットを前記第1のリースエージェントシステムに提供することを除く、請求項11に記載の方法。   12. The method of claim 11, wherein providing the lease subset to the lease agent system comprises providing the lease subset assigned to the lease agent system to the first lease agent system. 前記リースエージェントシステムに割り当てられた前記リースのサブセットを前記リースエージェントシステムに提供することは、(1)前記複数の制作者システムの各制作者システム用に前記リースエージェントシステムに割り当てられた前記複数のリースを前記リースエージェントシステムに提供すること、または(2)前記リースエージェントシステムに割り当てられた各リースの識別子を前記リースエージェントシステムに提供することの一方を含む、請求項11に記載の方法。   Providing the lease agent system with a subset of the leases assigned to the lease agent system includes: (1) the plurality of assigned to the lease agent system for each producer system of the plurality of producer systems; The method of claim 11, comprising one of providing a lease to the lease agent system or (2) providing an identifier for each lease assigned to the lease agent system to the lease agent system. 各制作者システムに使用可能な前記複数のリースを前記複数のリースエージェントシステム間に分配することは、各制作者システムに使用可能な前記複数のリースを前記複数のリースエージェントシステム間に実質的に均等に分配することを含む、請求項11に記載の方法。
Distributing the plurality of leases usable for each producer system among the plurality of lease agent systems substantially distributes the plurality of leases usable for each producer system between the plurality of lease agent systems. The method of claim 11, comprising dispensing evenly.
JP2016523859A 2013-06-26 2014-06-24 Distribution of creator systems among lease agent systems Active JP6165978B2 (en)

Applications Claiming Priority (9)

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

Publications (2)

Publication Number Publication Date
JP2016527623A true JP2016527623A (en) 2016-09-08
JP6165978B2 JP6165978B2 (en) 2017-07-19

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
JP2016523862A Active JP6243528B2 (en) 2013-06-26 2014-06-24 Distribution of creator systems among lease agent systems
JP2016523859A Active JP6165978B2 (en) 2013-06-26 2014-06-24 Distribution of creator systems among lease agent systems

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2016521906A Active JP6200080B2 (en) 2013-06-26 2014-06-24 Managing client access to multiple computing 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) EP3014441A2 (en)
JP (3) JP6200080B2 (en)
CN (3) CN105556472B (en)
CA (3) CA2916258C (en)
WO (3) WO2014210053A2 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9350801B2 (en) 2013-06-26 2016-05-24 Amazon Technologies, Inc. Managing client access to a plurality of computing systems
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
US9843631B2 (en) 2013-06-26 2017-12-12 Amazon Technologies, Inc. Producer system selection
US10592064B2 (en) 2013-09-17 2020-03-17 Amazon Technologies, Inc. Approaches for three-dimensional object display used in content navigation
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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10513325A (en) * 1995-02-07 1998-12-15 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー Information service provision and management
JP2004334896A (en) * 2000-04-10 2004-11-25 Nec Corp Framework having plug-and-play function and its reconstruction method
JP2006235837A (en) * 2005-02-23 2006-09-07 Nec Corp Load balancing system, load balancer management server, switching method for load balancer and program
JP2012234236A (en) * 2011-04-28 2012-11-29 Hitachi Ltd Load distribution system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6965974B1 (en) * 1997-11-14 2005-11-15 Agere Systems Inc. Dynamic partitioning of memory banks among multiple agents
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
US9137304B2 (en) * 2011-05-25 2015-09-15 Alcatel Lucent Method and apparatus for achieving data security in a distributed cloud computing environment
EP2745208B1 (en) * 2011-08-17 2018-11-28 Nicira, Inc. Distributed 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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10513325A (en) * 1995-02-07 1998-12-15 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー Information service provision and management
JP2004334896A (en) * 2000-04-10 2004-11-25 Nec Corp Framework having plug-and-play function and its reconstruction method
JP2006235837A (en) * 2005-02-23 2006-09-07 Nec Corp Load balancing system, load balancer management server, switching method for load balancer and program
JP2012234236A (en) * 2011-04-28 2012-11-29 Hitachi Ltd Load distribution system

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6243528B2 (en) Distribution of creator systems among lease agent systems
US10044550B2 (en) Secure cloud management agent
US9350801B2 (en) Managing client access to a plurality of computing systems
US11128698B2 (en) Producer system registration
US9350682B1 (en) Compute instance migrations across availability zones of a provider network
US9369518B2 (en) Producer system partitioning among leasing agent systems
US10924542B2 (en) Content delivery system
US9830235B1 (en) Cooperative fault tolerance and load balancing
US9780993B2 (en) Producer computing system leasing on behalf of consumer computing system
KR20140142745A (en) Policy-based scaling of network resources
US8543680B2 (en) Migrating device management between object managers
US10484262B2 (en) Dynamic cloning of application infrastructures
US10481963B1 (en) Load-balancing for achieving transaction fault tolerance
US11153391B2 (en) Connecting application instances to client devices

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170404

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170621

R150 Certificate of patent or registration of utility model

Ref document number: 6165978

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