CN105612539A - 在租赁代理系统当中的生产者系统划分 - Google Patents
在租赁代理系统当中的生产者系统划分 Download PDFInfo
- Publication number
- CN105612539A CN105612539A CN201480045521.7A CN201480045521A CN105612539A CN 105612539 A CN105612539 A CN 105612539A CN 201480045521 A CN201480045521 A CN 201480045521A CN 105612539 A CN105612539 A CN 105612539A
- Authority
- CN
- China
- Prior art keywords
- producer
- lease
- virtual machine
- consumer
- agency
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1014—Server selection for load balancing based on the content of a request
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Entrepreneurship & Innovation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Marketing (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Software Systems (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Tourism & Hospitality (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Game Theory and Decision Science (AREA)
- Educational Administration (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
公开了用于代表在覆盖网络中的消费者虚拟机租赁生产者虚拟机的过程和系统。消费者虚拟机的消费者主机可与一组租赁代理通信以得到能够给消费者虚拟机提供对服务的访问的多个生产者虚拟机的身份。当消费者虚拟机试图与生产者系统通信时,消费者主机可识别托管目标生产者虚拟机的生产者主机并将服务请求重定向到生产者主机。
Description
相关申请
本申请涉及下面的申请:2013年6月26日提交的且标题为“MANAGINGCLIENTACCESSTOAPLURALITYOFCOMPUTINGSYSTEMS”的美国申请号13/927,892;2013年6月26日提交的且标题为“PRODUCERSYSTEMPARTITIONINGAMONGLEASINGAGENTSYSTEMS”的美国申请号13/927,929;2013年6月26日提交的且标题为“PRODUCERSYSTEMSELECTION”的美国申请号13/927,933;以及2013年6月26日提交的且标题为“PRODUCERSYSTEMPARTITIONINGAMONGLEASINGAGENTSYSTEMS”的美国申请号13/927,995,这些申请的公开特此通过引用被全部并入本文。
背景
计算资源和服务常常由多个计算系统提供。这些计算资源和/或服务可由多个额外的计算系统消费。在很多情况下,几个计算系统将提供对相同的资源或服务的访问。提供资源或服务的每个计算系统一般在系统可在一段时间内处理的请求的数量上是有限的。
为了帮助向请求的计算机系统提供服务,一些企业利用可跟踪提供服务或资源的每个系统的使用的集中式系统。通过使用集中式系统,在每个提供系统上的负荷可在提供服务或资源的几个计算系统当中平衡。一个这样的集中式系统是硬件负荷平衡器。硬件负荷平衡器可帮助在提供服务或资源的计算系统当中分配请求,从而在企业的提供系统当中使负荷平衡。
附图简述
在全部附图中,参考数字重新用于指示在所标注的元件之间的相应性。附图被提供以示出本文所述的发明的实施方案而不是限制其范围。
图1A示出用于给消费者系统提供对由生产者系统托管的服务的访问的网络环境的实施方案。
图1B示出用于给消费者系统提供对由生产者系统托管的服务的访问并用于向一个或多个租赁代理提供生产者系统健康信息的网络环境的实施方案。
图2示出用于给消费者系统提供对由生产者系统托管的服务的访问的网络环境的实施方案的可选视图。
图3示出用于访问在生产者系统处的服务的过程的实施方案。
图4示出用于给消费者系统提供生产者系统的租赁的过程的实施方案。
图5示出生产者系统更新过程的实施方案。
图6示出用于划分一组生产者系统的划分过程的实施方案。
图7示出从生产者系统的角度看的生产者系统注册过程的实施方案。
图8示出从租赁代理的角度看的生产者系统注册过程的实施方案。
图9示出租赁代理重新划分过程的实施方案。
图10示出基于滞后的生产者选择过程的实施方案。
图11示出用于给消费者系统提供对由生产者系统托管的服务的访问的覆盖网络环境的实施方案。
图12示出用于访问在生产者虚拟机处的服务的过程的实施方案。
图13示出用于处理访问在生产者虚拟机处的服务的请求的过程的实施方案。
图14示出用于租赁对生产者虚拟机的访问的过程的实施方案。
图15示出可用于便于在覆盖网络环境中的通信的状态管理表的例子。
详细描述
介绍
虽然硬件负荷平衡器可用于帮助防止提供对服务或资源的访问的计算系统(其可被称为生产者系统)变得负担过多来自请求对服务或资源的访问的计算系统(其可被称为消费者系统)的请求,硬件负荷平衡器可能遭受很多缺点。例如,硬件负荷平衡器提供单个故障点。换句话说,如果硬件负荷平衡器发生故障,则相关企业系统可变成不可访问的,因为服务请求可不再被转发到生产者系统。此外,硬件负荷平衡器可以是昂贵的不透明的硬件零件,其使它们成为使企业系统负荷平衡的无吸引力的解决方案。
对与硬件负荷平衡器相关的问题的一个解决方案是使用分散负荷平衡器。然而,虽然分散负荷平衡器将处理与使用硬件负荷平衡器相关的多个问题,但是分散负荷平衡器往往是次优的,因为它们没有企业系统的全局视图,且每个负荷平衡器一般限于服务于消费者和生产者系统的规定子集。
本公开描述了利用一组租赁代理来在多个生产者系统当中分配来自多个消费者系统的服务请求的系统和过程的实施方案。租赁代理可监控并分配对生产者系统的子集的访问或租赁,同时在大部分情况下知道整个多个生产者系统。此外,对于每个服务请求,单个消费者系统可与几个租赁代理和在一些情况下多个生产者系统交互作用。这组租赁代理可在某些实施方案中用作汞齐负荷平衡器,因为负荷平衡的过程可分布在一组基于分布式硬件的系统当中,每个租赁代理执行生产者系统的子集的负荷平衡。
有利地,在某些实施方案中,通过在租赁代理当中划分生产者系统同时在每个租赁代理处维持关于每个生产者系统的信息的至少子集,硬件负荷平衡器和分散负荷平衡器的优点可被实现而没有前面提到的缺点。此外,在某些实施方案中,通过不将消费者系统分配到特定的租赁代理和/或生产者系统,与将生产者系统分成隔离子系统的系统比较,由多个生产者系统中的每个处理的负荷可以随着时间的过去更平衡。
在一些情况下,在生产者系统和/或消费者系统上实现的系统和应用被修改以对租赁代理起作用。例如,如将在下面进一步描述的,消费者系统可被修改以租赁对生产者系统的访问并维持生产者系统的状态信息。
在一些实施方案中,本公开的系统和方法可与在一组计算主机之上实现的一个或多个覆盖网络一起使用,计算主机可托管消费者虚拟机和生产者虚拟机。有利地,在某些实施方案中,本公开的系统和方法可在消费者主机和生产者主机的联网基础设施中实现,从而使租赁过程能够出现而不没有来自消费者和/或生产者虚拟机的干涉。
当本公开的实施方案在覆盖网络中实现时,不是在租赁代理当中划分生产者系统,与每个覆盖网络相关的生产者虚拟机可在租赁代理当中被单独地划分。此外,当向消费者虚拟机租赁生产者虚拟机时,租赁代理可选择被分配到与消费者虚拟机(对其的租赁被请求)相同的覆盖网络的生产者虚拟机。
网络环境概述
图1A示出用于给消费者系统104A-C提供对由生产者系统106A-D托管的服务的访问的网络环境100的实施方案。通常,网络环境100代表单个数据中心。然而在一些情况下,网络环境100的系统可分布在多个数据中心当中。
网络环境100可包括多个生产者系统106A-D(其可在本文单数地被称为“一个生产者系统106”或复数地被称为“生产者系统106”)和消费者系统104A-C(其可在本文单数地被称为“一个消费者系统104”或复数地被称为“消费者系统104”)。虽然示出四个生产者系统106和三个消费者系统104,但是网络环境100可包括任何数量的生产者系统106和消费者系统104。此外,虽然网络环境100在前面被描述为代表一个或多个数据中心,但是在一些实施方案中,至少一些消费者系统104可独立于数据中心。例如,在一些实施方案中,网络环境100可与特定的实体或组织相关。在这样的实施方案中,至少一些消费者系统104可代表可与网络环境100通信的用户或消费者计算系统,但其可以在单独或分开的实体而不是与网络环境100相关的系统的其余部分的控制下。
通常,每个生产者系统106能够向消费者系统104提供服务和/或计算机资源。在一些情况下,生产者系统106可每个能够向消费者系统104提供相同的服务和/或资源。在其它情况下,至少一些生产者系统106可能能够提供与其它生产者系统106不同的服务和/或资源。由生产者系统106提供的这些服务和/或资源可包括任何类型的服务和/或计算资源。例如,服务和/或计算机资源可包括:数据存储访问;外部网络访问(例如对互联网的访问);内部资源访问(例如对由与网络环境100相同的实体管理的数据库的访问);对编录服务的访问;对目录服务的访问;对应用的访问;对处理服务(例如命令或请求的分布式处理)的访问;路由服务(例如网络路由服务)等。为了简化讨论,除了具有在本文的普通含义的术语“服务”以外,本公开的其余部分还将使用术语“服务”来指服务、计算机资源或可由或经由生产者系统106提供的任何其它资源。
生产者系统106可包括任何类型的计算系统。例如生产者系统106可包括客户端系统、服务器(例如应用服务器、web服务器等)、膝上型计算机、桌上型计算机、数据库系统、备份系统、目录系统、两分系统、存储系统等。类似地,消费者系统104可包括任何类型的计算系统。例如消费者系统104可包括客户端系统、服务器、膝上型计算机、桌上型计算机、平板计算机、移动电话、游戏设备、电视机等。在一些实施方案中,消费者系统104也可用作生产者系统,反之亦然。例如,一个消费者系统104可访问生产者系统106以得到数据(例如用作数据库系统或存储系统的生产者系统)。相同的消费者系统104也可通过例如提供对另一消费者系统104的应用访问来用作生产者系统。在一些情况下,消费者系统104和生产者系统106可分别被考虑为客户端和服务器系统。然而,如上面讨论的,消费者系统104和生产者系统106并不如上所述被限制。
每当消费者系统104期望或需要对由生产者系统106提供的服务的访问时,消费者系统104可访问一个或多个租赁代理102A-102D(其可在本文单数地被称为“一个租赁代理102”或复数地被称为“租赁代理102”)以请求对能够提供服务的生产者系统106的访问。通常,消费者系统104访问租赁代理102的某个子集以得到要访问的生产者系统106的身份以履行服务请求。租赁代理102的子集可随机地选自可用租赁代理102并包括几个可用租赁代理102。例如,访问生产者系统106的请求可被提供到在图1A中示出的四个可用租赁代理中的三个。然而,在一些情况下,消费者系统104可被分配到特定的租赁代理102。此外,在一些情况下,消费者系统104可向单个租赁代理102或向网络环境100中的每个现有租赁代理102提供访问生产者系统106的请求。
图1A示出在租赁代理102、消费者系统104和生产者系统106之间的通信的一个例子。如可在图1A中看到的,每个消费者系统104与四个可用租赁代理102中的三个通信。如由虚线箭头指示的,这个通信可包括控制信息,包括例如与访问由生产者系统106提供的服务的请求和/或访问生产者系统106的请求有关的控制信息。此外,如由将消费者系统104连接到生产者系统106的子集的实线箭头指示的,通信可包括与生产者系统106提供消费者104的服务请求有关的数据。此外,租赁代理102可在它们本身当中通信以提供例如与租赁代理102和/或生产者系统106有关的状态信息。应注意,在图1A的网络环境100的各种系统之间的所示互通信仅仅是在消费者系统104、生产者系统106和租赁代理102之间的通信的一个例子,且并没有被规定为限制性的。关于在本文关于图3-10所述的过程更详细描述在网络环境100的各种系统之间的通信。
图1B示出用于给消费者系统104提供对由生产者系统106托管的服务的访问并用于向一个或多个租赁代理102提供生产者系统健康信息的网络环境100的实施方案。如图1B所示,在一些情况下,可将数据从生产者系统106提供到消费者系统104并从消费者系统104提供到生产者系统106。换句话说,在一些情况下,数据通信可以是双向的。
此外,生产者系统106可向租赁代理102提供健康信息,从而使租赁代理102能够跟踪哪些生产者系统106正运行以及哪些生产者系统106具有可用于分配到消费者系统104的资源。在一些情况下,生产者系统106可在所安排的时间提供健康信息。在其它情况下,租赁代理102可请求或ping生产者系统106以得到健康信息。每个生产者系统106常常被分配单个租赁代理102,如由生产者系统106A-106C所示的。然而,在一些实施方案中,生产者系统106可被分配到多个租赁代理102,如对生产者系统106D情况就是这样。
虽然图1A和1B示出不同的数据和控制信道,但是网络环境100可能实现图1A和1B所示的一些或所有数据和控制信道。因此,虽然图1B没有示出在消费者系统104和租赁代理102之间的信道,但是一般,控制信道存在于消费者系统104和租赁代理102之间,如在图1A中所示的。此外,一些或所有信道可以是单向的,其中一个系统请求数据或控制信息,而另一系统提供数据或控制信息。可选地或此外,一些或所有信道可以是双向的,其中在通信中的两个系统都可请求并提供数据或控制信息。
图2示出用于给消费者系统104提供对由生产者系统106托管的服务的访问的网络环境100的实施方案的可选视图。如图2所示,网络环境100的每个系统可经由网络202彼此通信。网络202可包括任何类型的有线或无线网络或其组合。例如,网络202可包括局域网(LAN)、广域网(WAN)、蜂窝网络、基于以太网的网络、WiFi网络、WiLAN网络等。此外,在一些情况下,网络202可包括互联网。
如图2所示,在图1A中描述的每个系统可包括多个子系统,其可在硬件或软件中实现。例如,消费者系统104可包括租赁请求器240、状态模块242、连接模块244和资源请求器246。租赁请求器240可配置成从一个或多个租赁代理102请求一个或多个生产者系统106的租赁。在一些情况下,租赁请求器240可特别请求对生产者系统106的访问。在其它情况中,租赁请求器240可在有或没有明确请求对生产者系统106的访问的情况下请求对服务的访问。
一旦租赁请求器240得到一个或多个生产者系统106的身份,连接模块244就可试图建立与由租赁代理102识别的一些或所有生产者系统106的通信。在与生产者系统106的连接被建立之后,资源请求器246可从生产者系统106请求资源或服务,消费者系统104成功地建立了与生产者系统106的连接。
状态模块242可得到与生产者系统106有关的状态信息。该信息可接着被提供到租赁代理102以便于租赁代理102响应于来自消费者系统104的、访问生产者系统106的请求来选择生产者系统106。这个信息可被提供到租赁代理102的相应的状态模块228。在一些情况下,状态模块242基于在建立与生产者系统106的连接时的成功或成功的缺乏来得到状态信息。在其它情况下,通过查询生产者系统106和/或被包括为生产者系统106的部分的相应状态模块262来得到状态信息。状态信息可包括关于与生产者系统106的连接和/或由生产者系统106提供服务的任何信息。例如,状态信息可包括关于在建立消费者系统104和生产者系统106之间的通信时的成功或其缺乏的信息。作为另一例子,状态信息可包括在给定时间段期间访问生产者系统106的消费者系统104的数量。另外的例子可包括与生产者系统106的响应性、生产者系统106的容量、在生产者系统处可用的资源等有关的信息。
如图2所示,生产者系统106可包括注册模块260和状态模块262。如前面描述的,状态模块262可向请求与生产者系统106有关的状态信息的消费者系统104提供与生产者系统106有关的状态信息。此外,在一些情况下,状态模块262可由于自己本身或响应于来自租赁代理102的请求而向租赁代理102提供状态信息。
注册模块260配置成向租赁代理102注册生产者系统106。在某些实施方案中,当生产者系统106第一次被激活时,注册模块260可自动注册生产者系统106作为初始化例程的部分。在其它实施方案中,注册模块260可响应于来自用户或应用的命令来注册生产者系统106。在一些情况下,当生产者系统106确定它的所分配的租赁代理不再可用时,注册模块260可注册生产者系统106。
如前面所述的,租赁代理102还可包括状态模块228。状态模块228可从消费者系统104和生产者系统106中的一个或两个接收关于生产者系统106的状态的状态信息。此外,状态模块228可向另一租赁代理102提供与生产者系统106相关的状态信息。此外,在一些情况下,状态模块228可通过请求来自其它租赁代理102的状态信息来执行其它租赁代理102的健康检查。例如,状态模块228可基于健康检查请求是否被租赁代理102回答来确定租赁代理102是否不再是可用的。在一些情况下,状态模块228可通过请求来自生产者系统106的状态信息来执行生产者系统106的健康检查。
除了状态模块228以外,租赁代理102还可包括生产者存储库220、划分系统222、租赁系统224和注册模块226。生产者存储库220可包括用于存储与生产者系统106有关的信息的任何类型的数据库、存储库或存储器。例如,生产者存储库220可包括与生产者系统106相关的状态信息、生产者系统106的身份和与在租赁代理102当中生产者系统106的分配或划分有关的信息。在一些实施方案中,代替或除了生产者存储库220以外,存储在生产者存储库220处的一些或所有信息还可存储在代理存储库206处。
划分系统222可包括可在网络环境100的租赁代理102当中划分可用生产者系统106的任何系统。通常,划分系统222将可用生产者系统106划分成非重叠或非等效子集,并接着将一个子集分配到每个租赁代理102。因此,如果有四个租赁代理102,则生产者系统106可分成四个子集,一个子集与每个租赁代理102相关。然而在一些情况下,子集可以是重叠的。在这样的情况下,生产者系统106可被分配多个租赁代理102或与多个租赁代理102相关。当网络环境100被第一次初始化时,在租赁代理102当中划分生产者系统106的过程可出现。此外,该过程可周期性地重新出现。例如,每当有在可用生产者系统106的数量上的变化时或当有在可用生产者系统106中的阈值变化时,划分生产者系统106的过程可出现,而不管通过添加还是删除可用生产者系统106。
每当消费者系统104从租赁代理102请求对生产者系统106的访问时,租赁系统224可基于多个因素(包括例如与生产者系统106相关的状态信息、生产者系统106的位置(例如地理位置、数据中心、服务器机架等)和生产者系统106是否访问消费者系统104正寻求访问的资源)来识别生产者系统106以租赁给消费者系统104。一旦租赁系统224识别出生产者系统,租赁系统224就可给请求的消费者系统104提供生产者系统106的身份。此外在一些情况下,租赁系统224可给消费者系统104提供消费者系统104被授权访问生产者系统106的租赁时间。可选地或此外,租赁系统224可给消费者系统104提供一些其它可消费资源或度量的量。例如,可消费资源可以是计算循环、货币、磁盘存储、连接请求等。
注册模块226可用作生产者系统106的注册模块260的配对物。当从生产者系统106接收到向租赁代理102注册的请求时,租赁代理102的注册模块260可确定生产者系统106是否被分配到租赁代理102。如果是这样,则注册模块226可注册生产者系统106,其可包括存储生产者系统106的可用性状态以及与在例如生产者存储库220处的生产者系统106相关的状态信息。如果另一方面,注册模块226确定生产者系统106未分配到租赁代理102,则注册模块226可识别被分配到生产者系统106的另一租赁代理102,并可向生产者系统106通知被分配到生产者系统106的租赁代理102的身份。
在某些实施方案中,网络环境100可包括代理存储库206和/或划分系统204。代理存储库206可包括关于或被包括在网络环境100中的租赁代理102和/生产者系统106的信息。存储在代理存储库206中的信息可由租赁代理102、消费者系统104和生产者系统106中的一个或多个使用。例如,在一些情况下,租赁代理102可使用代理存储库206来确定网络环境100的生产者系统106的数量和/或身份。使用这个信息,租赁代理102可确定如何划分生产者系统106。在一些情况下,消费者系统104可使用代理存储库206来确定生产者系统106在它由租赁代理102识别出用于由消费者系统104访问之后位于哪里。作为使用代理存储库206的另一例子,在一些情况下,生产者系统106可访问代理存储库以当例如生产者系统106第一次被激活时确定要访问的租赁代理102的身份。
在一些实施方案中,划分系统204可执行用于在租赁代理102当中划分生产者系统106的过程。在这样的实施方案中,租赁代理102可以不包括它们自己的划分系统222。
在一些实施方案中,包括在图2的所示系统中的至少一些模块可与由系统提供的应用和/或资源集成。例如,生产者系统106的状态模块262可与由生产者系统106提供的应用和/或资源集成。类似地,状态模块242可与由消费者系统104托管的应用或服务集成。
用于访问在生产者系统处的服务的示例过程
图3示出用于访问在生产者系统106处的服务的过程300的实施方案。过程300可由可通过从租赁代理102得到访问生产者系统106的租赁或临时授权来访问在生产者系统106处的服务或计算机资源的任何系统实现。例如,过程300全部或部分地可由消费者系统104、租赁请求器240、连接模块244、资源请求器246和状态模块242(仅举几个例子)实现。虽然任何数量的系统全部或部分地可实现过程300,但是为了简化讨论,过程300的部分将参考特定的系统被描述。
过程300在块302开始,在块302,例如租赁请求器240产生对访问生产者系统106的租赁请求。在一些情况下,租赁请求可包括消费者系统104的用户或在消费者系统104上的应用希望访问的计算机资源或服务的身份。在其它情况下,租赁请求包括访问生产者系统106的请求,而不规定在生产者系统106处将由消费者系统104访问的服务。
在块304,租赁请求器240向被包括在网络环境100中的租赁代理102的子集提供租赁请求。在一些情况下,租赁请求器240可向一些或所有可用租赁代理102提供租赁请求。租赁请求器240可通过访问代理存储库206来识别可用租赁代理102,代理存储库206可包括网络环境100的每个租赁代理102的身份。在其它情况下,当初始化或激活时或在消费者系统104的操作期间的任何其它时间,消费者系统104可每个配置有租赁代理102的身份。例如,用户(例如管理员)可给消费者系统104提供租赁代理102的身份。租赁代理102的标识可包括租赁代理102的名称、租赁代理102的地址(例如互联网协议(IP)地址或其它网络地址)和/或可用于识别在网络环境100内的租赁代理102的任何其它信息。在一些实施方案中,向租赁代理102提供租赁请求可包括给租赁代理102提供与一个或多个生产者系统106相关的状态信息,消费者系统104以前与生产者系统106交互作用。
在块306,消费者系统104从在块304被提供租赁请求的租赁代理102的每个子集接收生产者系统106的标识。在一些情况下,消费者系统104从租赁代理102的一些子集接收生产者系统106的标识。例如,消费者系统104可从租赁代理102的一个、两个或整个子集接收生产者系统106的标识。在消费者系统104不接收任何生产者系统106的身份的情况下,过程300可结束,与块302和/或304相关的操作可重复,和/或用户例如管理员可被警告。在一些情况下,接收生产者系统106的标识包括接收消费者系统104被授权访问生产者系统106或租赁对生产者系统106的访问的时间长度。来自租赁代理102的子集的每个租赁代理102可提供单个生产者系统106的身份。然而在一些情况下,来自租赁代理的子集的每个租赁代理102可提供多个生产者系统106的身份。如同租赁代理102的身份一样,生产者系统106的身份可包括对消费者系统104识别生产者系统106或提供访问生产者系统106的方法的任何信息。例如,生产者系统106的身份可包括可用于在例如存储在代理存储库206处的表或数据结构中找出生产者系统106的名称、地址(例如IP地址)或标识符。
在一些情况下,块306可包括接收由租赁代理102的每个子集识别的生产者系统106的状态信息。这个状态信息可用于帮助消费者系统104确定要访问哪个生产者系统106。在一些情况下,状态信息可由与生产者系统106通信的租赁代理102得到。可选地或此外,可从以前与生产者系统106通信的消费者系统104得到状态信息。所接收的状态信息可包括租赁代理102可得到的状态信息的单独集合或子集。在一些情况下,所接收的状态信息可以或可以不与租赁代理102可得到的状态信息交叉。
连接模块244在块308试图发起与在块306识别的每个生产者系统106的连接。在一些情况下,连接模块244可试图发起与在块306识别的生产者系统106的子集的连接。试图发起连接可包括用于试图打开与生产者系统106的通信信道的任何过程。例如,试图发起连接可包括将连接请求分组发送到生产者系统106。通常,当消费者系统104接收到生产者系统106的身份时,连接模块244可试图建立与生产者系统106的连接。因为消费者系统104可能很少从多个租赁代理102同时接收到响应,因为例如租赁代理102可位于离消费者系统104不同的距离处或可具有不同的负荷,连接模块244可能很少试图同时发起与多个生产者系统106的连接。替代地,发起与生产者系统106的连接的企图可交错,即使在非常小的程度上。然而,在一些实施方案中,连接模块244可试图同时发起与多个生产者系统106的连接。例如,在一些情况下,消费者模块104可等待,直到租赁代理102的每个子集做出响应为止,或在一些情况下,响应可同时从多个租赁代理102被接收到。
在块310,资源请求器246从第一生产者系统106访问或请求对服务或计算机资源的访问,连接模块244成功地建立与第一生产者系统106的连接。在一些情况下,成功地建立与生产者系统106的连接可包括从生产者系统106接收确认(“ack”)分组等。由于如上面关于块308所述的类似原因,与生产者系统106的连接可以用交错的方式被建立。然而,在连接模块244同时或在实质上相同的时间成功地建立与多于一个生产者系统106的连接的情况下,资源请求器246可随机地选择生产者系统106,从该生产者系统106请求对服务的访问。可选地,资源请求器246可使用选择算法来确定从哪个生产者系统106请求服务。选择算法没有被限制,并可包括例如循环法、最近最少使用(LRU)或任何其它类型的选择算法。在一些实施方案中,消费者系统104可从一些或所有生产者系统106请求对服务的访问,与生产者系统106的通信连接或通信信道被建立。在一些情况下,服务可具有相同的类型。在其它情况下,消费者系统104可从每个生产者系统106请求对不同服务的访问。
此外,在与需要在特定时间点的消费者系统104相比与更多的生产者系统的连接被成功地建立的情况中,消费者系统104可将租赁让与一个或多个额外的生产者系统106。可选地,消费者系统104可将对额外生产者系统106的租赁维持在租赁池中,并可维持到额外生产者系统106的连接。在这样的情况下,如果在与额外生产者系统106的租赁期期间的某个时间消费者系统104需要对额外服务的访问,则消费者系统104可利用额外生产者系统106之一的服务,额外生产者系统106的租赁被维持在租赁池中。
在块312,状态模块242从第一所连接的生产者系统106接收状态元数据。在一些情况下,状态模块242可从每个生产者系统106接收状态元数据,连接模块244成功地建立与生产者系统106的通信信道。此外,状态模块242可从生产者系统106得到状态元数据,连接模块244未能建立与该生产者系统106的通信信道。例如,连接模块244未能建立与特定生产者系统106的通信信道的事实可被包括为与生产者系统106相关的状态元数据。状态元数据没有被限制,并可包括与建立与生产者系统106的连接有关的信息、与维持与生产者系统106的连接有关的信息、与生产者系统106的响应性有关的信息和与在生产者系统106处可用的服务有关的信息。例如,状态元数据可包括在连接到生产者系统106时消逝的时间量、在到生产者系统106的连接中的时延、在生产者系统106处的可用处理资源、请求必须被重新发送到生产者系统106(例如由于失去的分组)的次数和可与生产者系统106的状态相关的任何其它类型的数据。
在一些实施方案中,可在块310之前执行块312。在这样的情况下,状态模块242可从每个所连接的生产者系统106接收状态信息。消费者系统104在这样的情况下可基于所接收的状态信息选择生产者系统106以访问服务。
在决策块314,使用例如资源请求器246的消费者系统104确定对另一服务的访问是否是期望的。这个另一服务可以是不同的服务,或它可以是相同类型的服务。例如在一些情况下,一个服务可以是用于访问网络应用,而另一服务可以是用于下载网络资源(例如由网络页面例如网页托管的图像或视频)。可选地,这两个服务都可用于下载网络资源。例如,用户可下载两个网络页面或从两个网络页面下载资源。如果是这样,连接模块244在块308发起与所识别的生产者系统106的连接。在一些情况下,连接模块244发起与生产者系统106的连接,生产者系统106在与消费者系统244相关的租赁池中被识别。租赁池可包括当前被租赁给消费者系统104用于提供对资源的访问的生产者系统106的身份。在一些情况下,租赁池包括被租赁给消费者系统104的生产者系统106,但消费者系统104当前不访问生产者系统106。如果租赁池不包括任何租赁,则消费者系统104可使用例如租赁请求器240来再次执行过程300。在一些实施方案中,决策块314是可选的。例如,如果没有生产者系统106被租赁给消费者系统104,则过程300可以以块302开始重复。
在一些实施方案中,过程300可用于将以前的租赁更新到生产者系统106。在这样的情况下,在块302产生的租赁请求可包括消费者系统104以前访问的生产者系统106的身份。此外,租赁请求可包括请求是更新请求的指示。更新租赁请求可接着被提供到最初对消费者系统104识别生产者系统106的租赁代理102。假设租赁代理102确定生产者系统106仍然是可用的和/或具有用于向消费者系统104提供服务的容量,则租赁代理102可指示更新请求被批准并可向消费者系统104提供更新租赁的时间长度作为块306的部分。在消费者系统104将与一个或多个额外的生产者系统106的租赁维持在租赁池中且租赁期对额外的生产者系统106流逝而消费者系统104不利用在额外的生产者系统106处的服务的情况下,消费者系统104可允许租赁流逝而不将租赁更新请求发送到对应于额外的生产者系统106的租赁代理102。
在一些情况下,请求租赁更新的过程可在现有租赁到期时出现。在其它情况下,使用例如资源请求器246的消费者系统104可确定对访问在一个或多个生产者系统106处的服务的现有服务请求在租赁时间到期之前将完不成的概率。如果该概率满足更新阈值,则消费者系统104可在现有租赁到期之前的某个时间点请求生产者系统106的租赁的更新,从而减少或防止由于租赁到期而引起的服务中断。
在某些实施方案中,租赁对生产者系统106的访问可包括向与一个或多个生产者系统106和/或租赁代理102相关的组织或实体提供支付。例如,生产者系统106可变得可用作为支付访问服务的部分。可选地,租赁对生产者系统106的访问可能不需要任何类型的支付。在这样的实施方案中,租赁指对生产者系统106的访问的临时性质而不是财务租赁。
用于给消费者系统提供生产者系统的租赁的示例过程
图4示出用于给消费者系统104提供生产者系统106的租赁的过程400的实施方案。过程400可由可给消费者系统104提供生产者系统106的身份的任何系统实现。此外,过程400可由可向消费者系统104租赁对生产者系统106的访问的任何系统实现。例如,过程400可全部或部分地由租赁代理102、租赁系统224和状态模块228(仅举几个例子)实现。虽然任何数量的系统全部或部分地可实现过程400,但是为了简化讨论,过程400的部分将参考特定的系统被描述。
过程400在块402开始,在块402,例如租赁代理102的租赁系统224从消费者系统104接收租赁对生产者系统106的访问的请求。在一些实例中,请求可包括消费者系统104寻求在生产者系统106处访问的特定服务或计算资源的身份。如在前面的章节中所述的,在一些情况下,租赁请求可包括由生产者系统106的消费者104更新现有租赁的请求。
在块404,状态模块228可从消费者系统104接收一个或多个生产者系统106的状态元数据。此所接收的状态元数据可包括与消费者系统104以前试图与一个或多个生产者系统106通信或访问来自一个或多个生产者系统106的服务相关的数据。例如,所接收的状态元数据可包括时延信息、与由消费者系统104对生产者系统106的请求的响应性有关的数据或以前关于块312所述的任何其它信息。此外,所接收的状态元数据可包括消费者系统104从生产者系统106接收的数据和/或消费者系统104基于它与生产者系统106的交互作用而产生的数据状态元数据。在一些实施方案中,块404可以是可选的。例如,如果请求是从消费者系统104接收的第一请求,则消费者系统104可以没有要提供到租赁代理102的任何状态元数据。
在块406,状态模块228基于在块404接收的状态元数据更新生产者系统状态信息。在一些情况下,更新生产者系统状态信息可包括更新与在生产者存储库220中的生产者系统106相关的条目。在一些实施方案中,块406可以是可选的。
此外在块408,状态模块228向第二租赁代理提供在块404接收的至少一些状态元数据。例如,执行过程400的租赁代理102可确定一些状态元数据是针对分配到不同的租赁代理102的生产者系统106。在这样的情况下,租赁代理102可向分配到生产者系统106的租赁代理102提供状态信息。在其它情况下,租赁代理102可向所有租赁代理102(租赁代理102与所有租赁代理102通信)提供状态元数据,租赁代理102可以是网络环境100的一些或所有租赁代理102。任何类型的数据传输、复制和/或同步过程可在网络环境100内实现以在租赁代理102当中共享状态元数据。例如,泛洪填充算法(floodfillalgorithm)或普林算法可用于在租赁代理102当中共享数据。在下面的申请中描述了可在本文用于在租赁代理102当中共享数据的额外系统和方法:2010年12月28日提交的且标题为“DATAREPLICATIONFRAMEWORK”的美国申请号12/980,133;2010年12月28日提交的且标题为“DATAREPLICATIONFRAMEWORK”的美国申请号12/980,153;2010年12月28日提交的且标题为“DATAREPLICATIONFRAMEWORK”的美国申请号12/980,193;以及2010年12月28日提交的且标题为“DATAREPLICATIONFRAMEWORK”的美国申请号12/980,258。这些前面提到的申请中的每个特此通过引用被全部并入。
在一些实施方案中,块408是可选的。例如,在一些实施方案中,消费者系统104只针对分配到租赁代理102的生产者系统106向租赁代理102提供状态元数据,租赁代理102在块402接收请求。
在块410,租赁系统224基于与被分派或分配到租赁代理102的每个生产者系统106相关的生产者状态信息来选择生产者系统。在一些情况下,生产者状态信息基于由消费者系统104提供的信息(例如在块404接收的状态元数据)。在其它情况下,生产者状态信息可基于由与生产者系统106通信的租赁代理102得到的信息。例如,租赁代理102可执行被分配到租赁代理102的每个生产者系统106的健康或状态检查。这些健康检查可包括ping生产者系统106,请求来自生产者系统106的资源可用性的更新或用于得到与生产者系统106的状态有关的信息的任何其它过程。此外,生产者状态信息可基于从其它租赁代理102接收的信息。
在某些实施方案中,选择生产者系统106可至少部分地基于与不同的生产者系统106相关的权重。这些权重可基于生产者状态信息来产生。例如,指示当与消费者系统104通信时生产者系统106具有低时延和低误差率的生产者状态信息可导致生产者系统106被加权得更高且因此更可能在块410处被选择。相反,常常丢掉到消费者系统104的连接的生产者系统106可被加权得更低且因此更不可能在块410处被选择。
在一些情况下,生产者系统106的选择可基于任何数量的额外因素,例如与消费者系统104有关的生产者系统106的位置。位置信息可包括例如生产者系统106是否位于与消费者系统104相同的数据中心或相同的服务器机架中。选择生产者系统106在一些情况下可基于由消费者系统104请求的服务。在又一些情况下,生产者系统106的选择可部分地基于由消费者系统104请求和/或以前被分配到消费者系统104的租赁时间的数量。在一些情况下,租赁系统224可选择至少被装入的生产者系统106。在其它情况下,租赁系统224可从一组生产者系统106选择具有低于阈值的负荷的生产者系统106。在一些实施方案中,在选择时选定生产者系统106的负荷被确定为增加,而不考虑消费者系统104是否建立与选定生产者系统106的连接。有利地,在一些实施方案中,通过记录选定生产者系统106的增加的负荷而不考虑到生产者系统的所建立的消费者连接,同一生产者系统106在一段时间期间被选择多于阈值次数的概率减小了,因为虽然生产者系统106的实际负荷可能低,但是到消费者系统104的未来连接的预期负荷在选择生产者系统时被考虑。
在一些情况下,在块410选择生产者系统106可包括选择具有相对于一个或多个负荷度量(例如连接、处理器利用等)的最低负荷的生产者系统106。可选地,选择生产者系统106可包括选择在具有低于阈值负荷的负荷的一组生产者系统106当中的一个生产者系统106。从具有低于负荷阈值的负荷的这组生产者系统106当中选择生产者系统106可以是随机的、伪随机的或基于选择算法(例如最近最少使用、中间负荷等)。有利地,在一些实施方案中,通过从一组生产者系统106选择一个生产者系统106而不是总是选择具有最低负荷的生产者系统106,负荷摆动的概率和/或出现减小。此外,负荷气泡或负荷热点的出现,例如与比网络环境100的其余部分相比与高负荷相关的系统的子集的出现,穿过网络环境100行进减少了。
在块412,租赁系统224为在块410选择的生产者系统106向消费者系统104提供租赁信息。这个租赁信息可包括生产者系统106的身份和在一些情况下消费者系统104被授权访问生产者系统106的租赁时间的数量。如前面所述的,生产者系统106的身份可包括可便于定位并访问生产者系统106的任何信息,例如网络地址。在一些实施方案中,提供生产者系统106的身份可包括提供证书或公钥来便于与生产者系统106通信。
如前面指示的,在一些情况下,过程400可用于租赁更新请求。在这样的情况下,块410可包括确定生产者系统106(消费者系统104请求对生产者系统106的租赁更新)是否仍然可用于租赁。确定生产者系统106是否仍然可用于租赁可包括确定生产者系统106是否具有继续服务于消费者系统104的资源容量。此外,确定生产者系统106是否仍然可用于租赁可包括确定与生产者系统106相关的生产者状态信息的一个或多个度量是否满足可用阈值。例如,确定可包括检查与生产者系统106相关的出错率是否低于阈值出错率。如果生产者系统106可用于租赁更新,则租赁代理102可以给消费者系统104发送生产者系统106的更新租赁。如果租赁代理102确定生产者系统106不可用于租赁更新,则租赁代理102可同样报告和/或提供可选生产者系统106的租赁信息。
示例生产者系统更新过程
图5示出生产者系统更新过程500的实施方案。过程500可由可更新生产者系统106的可用性并可在租赁代理102当中重新划分生产者系统106的任何系统实现。例如,过程500全部或部分地可由租赁代理102、划分系统222、划分系统204、注册模块226和状态模块228(仅举几个例子)实现。虽然任何数量的系统全部或部分地可实现过程500,但是为了简化讨论,过程500的部分将参考特定的系统被描述。
过程500在决策块502开始,在块502,例如租赁代理102的状态模块228确定状态更新是否从生产者系统106被接收到。状态更新可响应于由租赁代理102发送到生产者系统106的请求而由租赁代理102预期。可选地,由于与每个生产者系统106相关的更新调度,状态模块228可预期状态更新。例如在一些情况下,每个生产者系统106可配置成在每小时或每日基础上自动向所分配的租赁代理102ping或提供状态更新。如果状态更新被接收到,则过程500返回到决策块502以等待下一状态更新。此外,状态模块228可更新与在生产存储库220和/或代理存储库206处的生产者系统106相关的生产者状态信息。
另一方面,如果状态更新没有在决策块502被接收到,则状态模块228在块504更新生产者系统106的状态以指示生产者系统106的不可用性。更新生产者系统106的状态可包括将生产者系统106不可用于被租赁给消费者系统104的指示存储在生产者存储库220和/或代理存储库206中。在一些情况下,即使状态更新在决策块502被接收到,状态模块228也可在块504更新生产者系统的状态以指示生产者系统106不是可用的。例如,如果所接收的状态信息指示生产者系统106发生故障、以阈值速率服务于请求或超过阈值出错率产生错误,则状态模块228可更新生产者存储库220和/或代理存储库206以指示生产者系统106不再是可用的。在一些实施方案中,更新生产者系统106的生产者状态信息以指示它的可用性的损失可包括警告管理员生产者系统106不再是可用的。下面关于图10更详细地描述更新生产者系统106的状态信息。
在决策块506,划分系统222确定阈值数量的生产者系统106是否变得不可用。如果不,则过程500返回到决策块502以等待下一状态更新。如果划分系统222在决策块506确定阈值数量的生产者系统106变得不可用,则划分系统222在块508执行生产者重新划分过程。下面关于图6更详细描述这个生产者系统重新划分过程。在一些实施方案中,决策块506和块508中的一个或两个由划分系统204执行。
示例划分过程
图6示出用于划分一组生产者系统106的划分过程600的实施方案。过程600可由可跟踪在可用生产者系统106的数量中的变化并可在租赁代理102当中重新划分生产者系统106的任何系统实现。例如,过程600全部或部分地可由租赁代理102、划分系统222、划分系统204、注册模块226和状态模块228(仅举几个例子)实现。虽然任何数量的系统全部或部分地可实现过程600,但是为了简化讨论,过程600的部分将参考特定的系统被描述。
过程600在块602开始,在块602,例如状态模块228跟踪可用生产者系统106的delta。在一些情况下,状态模块228跟踪可用生产者系统106的数量的绝对变化。可选地或此外,状态模块228跟踪可用生产者系统106的数量的变化率。可用生产者系统106中的delta或变化可基于新生产者系统106的添加或在生产者系统106的可用性中的损失。在一些实施方案中,过程500可用于识别在生产者系统106的可用性中的损失。此外,可用生产者系统106的确定可基于指示生产者系统106的失去或添加的用户更新。而且,可基于生产者系统106的注册尝试来跟踪生产者系统106的添加。在一些情况下,可基于由消费者系统104提供的信息来确定生产者系统106的可用性。此外,可按照实际数量或按照在生产者系统106的可用性中的百分比变化来跟踪可用生产者的delta或变化。
在一些实施方案中,生产者系统106和/或可用生产者系统106的delta可由每个租赁代理102跟踪。可选地,每个租赁代理102跟踪被分配到租赁代理102的可用生产者系统。此外或可选地,可用生产者系统106的计数和/或delta由独立系统例如划分系统204跟踪。
在决策块604,划分系统222确定可用生产者系统106的delta是否满足阈值。这个delta可以是绝对值。换句话说,生产者系统106的添加或减少可被跟踪。在某些实施方案中,生产者系统106的添加和减少可独立地被跟踪,单独的阈值与每个相关。因此在一些情况下,一个或两个阈值可被满足,即使可用生产者系统的总变化为零或不满足组合阈值。在一些情况下,delta可表示百分比变化和/变化率。在这样的情况下,阈值可以是百分比阈值和/或变化率阈值。
如果delta不满足阈值,或如果没有一个delta满足相应的阈值,则状态模块228在块602继续跟踪可用生产者系统106或在可用生产者系统106中的变化。另一方面,如果delta满足阈值或delta满足相应的阈值,则划分系统222向其它租赁代理102通知执行过程600的租赁代理102在块606正发起生产者系统106的划分或重新划分过程。有利地,在某些实施方案中,通过向其它租赁代理102通知执行过程600的租赁代理102正发起划分过程,过程600避免使多个租赁代理102同时执行划分过程,这可例如由于在生产者系统106的计数和划分中的竞争条件而引起非最佳结果。在一些实施方案中,块606可以是可选的。例如在一些实施方案中,与租赁代理102分离的划分系统204可执行划分或重新划分过程。
在块608,划分系统222得到可用生产者系统106的身份。划分系统222可通过访问生产者存储库220和/或通过访问代理存储库206来得到可用生产者系统106的身份。在一些情况下,划分系统222可通过联系其它租赁代理102来得到可用生产者系统106的身份。
在块610,划分系统222在租赁代理102当中划分可用生产者系统106。划分系统222可使用任何类型的划分算法来划分生产者系统106。通常,在租赁代理102当中生产者系统106的划分产生可被分配到租赁代理102的非重叠或非等效组的生产者系统106。然而在一些情况下,划分可以是重叠的。此外,在一些情况下,子集可以是不平衡的。换句话说,一些租赁代理102可以比其它租赁代理102被分配更多的生产者系统106。在子集是不平衡的情况下,被分配到特定的租赁代理102的生产者系统106的数量或百分比可至少部分地基于租赁代理102和/或被分配到租赁代理102的生产者系统106可处理的请求的数量。例如,第一租赁代理102可比另一租赁代理102被分配更少的生产者系统,如果第一租赁代理被分配能够比其它生产者系统106处理消费者系统104的更大数量的请求的生产者系统106。
此外,在一些生产者系统106可提供与其它生产者系统不同的服务的实施方案中,生产者系统106可被划分,使得每个租赁代理被分配可提供特定的服务的生产者系统。可选地,可提供特定的服务的生产者系统106可在租赁代理102的选定子集当中被划分。
在块612,当块610完成时,执行过程600的租赁代理102的划分系统222用被分配到每个租赁代理102的生产者系统106的身份更新在网络环境100中的其它租赁代理102中的每个。在一些实施方案中,块612可包括用被分配到执行过程600的租赁代理102的生产者系统106的身份更新执行过程600的租赁代理102。用生产者系统106的身份更新租赁代理102可包括更新在生产者存储库220处的表或数据库。在一些情况下,因为租赁代理102执行过程600,所以块612相对于租赁代理102是可选的且只相对于被包括在网络环境100中的其它租赁代理102而被执行。
在一些实施方案中,过程600可用于提供在租赁代理102当中的生产者系统106的初始划分。例如,当网络环境100第一次被配置时,在可用生产者系统106被激活时,可用生产者系统106的delta可能满足决策块604的阈值。可选地或此外,用户可在网络环境100第一次被配置时或在任何其它时间手动激活划分过程。
过程600被描述为在租赁代理102当中划分生产者系统106。然而,过程600并不被以这种方式被限制。在一些情况下,过程600可用于划分可提供到消费者系统104用于访问在租赁代理102当中的生产者系统106的租赁。例如,租赁代理102或划分系统222可识别一组可用生产者系统并确定这组可用生产者系统的每个生产者系统可用的多个租赁。执行过程600的租赁代理102可以是第一租赁代理102以检测在可用租赁中改变的阈值或可以是被指定来执行租赁划分的租赁代理102。租赁代理102可基于从每个生产者系统106(例如在生产者系统106的注册期间)接收的状态信息来识别多个可用租赁。可选地或此外,可基于生产者系统106的类型或基于从生产者系统106或用户(例如管理员)接收的配置信息来确定可用租赁的数量。
租赁代理102可通过给来自多个租赁代理102的每个租赁代理102分配来自每个生产者系统106可采用的多个租赁的租赁子集来划分在多个租赁代理102当中的每个生产者系统106可采用的多个租赁。多个租赁可相等或实质上相等地在租赁代理102当中被划分。在一些情况下,由于租赁的数量不是租赁代理102的数量的倍数,至少一些租赁代理102可被分配多一个或少一个租赁。此外,在一些情况下,租赁可以不被相等地划分,由于例如在一些租赁代理102和/或一些生产者系统106当中的配置差异。在一些情况下,每个租赁代理102被分配非重叠的一组租赁。可选地,至少一些租赁可被分配到多个租赁代理102。在一些实施方案中,将租赁划分到生产者系统106的多个租赁代理102可以是租赁代理102的子集。例如在一些情况下,租赁代理102的子集可被分配到生产者系统106的子集。
在划分多个租赁之后或时,对于多个租赁代理102的每个租赁代理102,执行过程600的租赁代理102可给租赁代理102提供被分配到租赁代理102的租赁的子集。向每个租赁代理102提供租赁可包括将多个租赁从被分配到每个租赁代理102的每个生产者系统106提供到每个租赁代理102。可选地或此外,向每个租赁代理102提供租赁可包括向租赁代理102提供每个所分配的租赁的身份。此外,提供租赁可包括提供用于与生产者系统106通信和/或用于利用生产者系统106的租赁的连接信息。
有利地,在一些实施方案中,划分在多个租赁代理102当中的每个生产者系统106可采用的多个租赁实现在多个租赁代理102当中的工作负荷的平衡。在一些情况下,执行过程600的租赁代理102本身不必提供被分配到本身的租赁的子集,因为它正执行过程600。然而,在一些情况下,租赁代理102可以给本身提供租赁。例如,在执行划分的租赁代理102的子系统(划分系统222)和接收和/或跟踪被分配到租赁代理102的租赁的子系统不同的情况下,执行过程600的租赁代理102可给本身提供它的所分配的租赁的身份。
在一些情况下,过程600可用于划分生产者系统106和与在租赁代理102当中的每个生产者系统106相关的租赁。
示例生产者系统注册过程
图7示出从生产者系统106的角度看的生产者系统注册过程700的实施方案。过程700可由可向租赁代理102注册生产者系统106的任何系统实现。例如,过程700全部或部分地可由生产者系统106、注册模块260和状态模块262(仅举几个例子)实现。虽然任何数量的系统全部或部分地可实现过程700,但是为了简化讨论,过程700的部分将参考特定的系统被描述。
每当生产者系统106在不活动的时期或系统重新启动之后第一次被激活或初始化或去激活或重新初始化时,过程700可出现。在一些情况下,每当生产者系统106确定它的所分配的租赁代理102不再可用时,过程700可出现或重新出现。所分配的租赁代理102不再是可用的确定可例如基于从用户接收、从代理存储库206得到的信息,或如果在生产者系统106提供状态更新例如关于图5所述的状态更新之后ACK没有从所分配的租赁代理102接收到。
过程700在块702开始,在块702,例如注册模块260访问来自例如代理存储库206的一组租赁代理102的身份。在一些情况下,生产者系统106可从内部存储器访问这组租赁代理102的身份。例如,生产者系统106可被预先配置有一组租赁代理102的身份。在其它情况下,用户可指定要访问的租赁代理102。
在块704,注册模块260从在块702识别的这组租赁代理102选择一个租赁代理102。注册模块260可随机地或通过使用任何其它选择方法例如循环法或最近最少使用方法来选择租赁代理102。在这组租赁代理102被分类的情况下,注册模块260可选择在所分类的组中的第一租赁代理102。在某些实施方案中,块704可以是可选的。例如,块704在用户指定租赁代理102的情况下是不需要的。
在块706,注册模块260发起或试图发起与在块704选择的租赁代理102的连接。在一些情况下,试图发起与租赁代理102的连接包括向租赁代理102注册的企图。
在块708,注册模块260从租赁代理102接收连接响应。注册模块260在决策块710确定连接响应是否确认生产者系统106的注册或指示第二租赁代理102的身份。如果注册模块260在决策块710确定连接响应确认生产者系统106的注册,则状态模块262在块712向租赁代理102提供与生产者系统106有关的状态信息。这个状态信息可包括与一个或多个度量的状态或状况相关的任何信息,一个或多个度量与生产者系统106相关。例如,状态信息可包括一个或多个计算资源(例如存储器、处理器、网络带宽、应用等)的可用性、消费者系统104(其服务请求由生产者系统处理)的数量和与生产者系统106的状态相关的任何其它信息。
当注册模块260确定连接响应确认生产者系统106的注册时,与块712相关的过程可出现。可选地或此外,与块712相关的过程可在某个稍后的时间出现。此外在一些实施方案中,与块712相关的过程可在连续基础上、在间歇基础上出现,或可响应于来自租赁代理102的对生产者系统106的状态的更新的请求而出现。在其它实施方案中,每当在生产者系统106的状态或状况中有阈值变化时,与块712相关的过程可出现。例如,当生产者系统106的处理资源的可用性下降到阈值水平时,与块712相关的过程可出现。
如果注册模块260在决策块710确定在块708接收的连接响应包括第二租赁代理的标识,则注册模块260在块714发起与第二租赁代理的连接。如将关于过程800所述的,第二租赁代理可包括第一租赁代理(例如在块704识别的租赁代理)被确定为与生产者系统106相关的租赁代理。
在块716,状态模块262向第二租赁代理提供状态信息。在某些实施方案中,块716可包括前面关于块712所述的一个或多个实施方案。在某些实施方案中,在块708接收的连接响应指示生产者系统106的注册是否是成功的而不识别任何额外的租赁代理。在这样的情况下,如果生产者系统106的注册不是成功的,则生产者系统106可试图注册或发起与来自在块702识别的这组租赁代理的另一租赁代理的连接,并替代地可重复块704、706、708和710,直到租赁代理102确认生产者系统106的注册为止。
在一些实施方案中,在决策块710识别的第二租赁代理被随机地选择和/或不一定与生产者系统106相关。在这样的情况下,块714可包括执行上面关于块708和710所述的但与第二租赁代理有关的一个或多个实施方案。换句话说,可形成从块714到块708的循环。在这样的情况下,决策块710可识别第三租赁代理,如果来自第二租赁代理的连接响应识别出第三租赁代理而不是确认生产者系统106的注册。这个循环可连续地重复,直到生产者系统106向租赁代理102成功地注册为止。可选地,循环可被执行阈值次数。如果阈值被满足而生产者系统106没有成功地被注册,则警告可产生。例如,可通知(例如经由电子邮件或弹出警告)管理员生产者系统106未能向租赁代理102注册。在一些情况下,例如未预期的系统故障,生产者系统106可能未能向一组租赁代理102注册或更新它们的注册。在这样的情况下,消费者系统104可访问连接信息或租赁的高速缓存器,以试图访问生产者系统106。有利地,在某些实施方案中,通过使用可能到期的高速缓存器信息,资源访问的故障时间可在一些情况下被减少或消除。
示例生产者系统注册过程
图8示出从租赁代理102的角度看的生产者系统注册过程800的实施方案。过程800可由可在租赁代理102注册生产者系统106的任何系统实现。例如,过程800全部或部分地可由租赁代理102、注册模块226和状态模块228(仅举几个例子)实现。虽然任何数量的系统全部或部分地可实现过程800,但是为了简化讨论,过程800的部分将参考特定的系统被描述。
过程800在块802开始,在块802,注册模块226从生产者系统106接收注册请求。在一些实施方案中,注册请求可包括与生产者系统106相关的证书或加密密钥。注册模块226在决策块804确定生产者系统106是否被分配到租赁代理102。确定生产者系统106是否被分配到租赁代理102可包括访问生产者存储库220和/或代理存储库206以确定生产者系统106是否被分配到租赁代理102。此外,在一些情况下,确定生产者系统106是否被分配到租赁代理102可包括例如基于与生产者系统106相关的所接收的标识符、证书或加密密钥来改变生产者系统106的身份。
如果注册模块226确定生产者系统106被分配到租赁代理102,则注册模块226在块806确认生产者系统106的注册。确认生产者系统106的注册可包括通知生产者系统106它向租赁代理102注册。此外,在一些情况下,块806可包括更新生产者存储库220和/或代理存储库206以指示生产者系统106是可用的并向租赁代理102注册。此外,在一些实施方案中,块806可包括给生产者系统106提供对与租赁代理102相关和/或被分配到生产者系统106的证书或加密密钥的访问。这个证书和/或加密密钥可用于在生产者系统106和租赁代理102之间的另外的通信。而且,证书和/或加密密钥可用于在生产者系统106和消费者系统104之间的通信,例如以验证生产者系统106的身份或保护在这两个系统之间传递的数据。
在块808,状态模块228从生产者系统106接收状态信息。这个状态信息可包括上面关于块712的状态信息所述的一些或所有实施方案。状态模块228在块810可至少部分地基于在块808接收的状态信息来更新生产者系统106的生产者状态信息。更新生产者状态信息可包括更新条目或在生产者存储库220和/或代理存储库206处的一个或多个度量以反映生产者系统106的状态。
如果注册模块226在决策块804确定生产者系统106没有被分配到租赁代理102,则注册模块226在块812识别生产者系统106被分配的另一租赁代理。在块814,注册模块226可向生产者系统106提供生产者系统106被分配到的租赁代理102的身份,使生产者系统106能够联系在块812识别的租赁代理102。在某些实施方案中,块812和块814可以是可选的。例如在一些情况下,注册模块226可通知生产者系统106它不与租赁代理102相关,以及因此在块802接收的注册请求是不成功的,而不向生产者系统106通知生产者系统106被分配到的可选租赁代理102。
租赁代理重新划分过程
图9示出租赁代理重新划分过程900的实施方案。过程900可由可重新分配被分配到租赁代理102的一组生产者系统106的任何系统实现。例如,过程900全部或部分地可由租赁代理102、划分系统222和划分系统204(仅举几个例子)实现。虽然任何数量的系统全部或部分地可实现过程900,但是为了简化讨论,过程900的部分将参考特定的系统被描述。
过程900在块902开始,其中例如与第一租赁代理102相关的划分系统222接收另一或第二租赁代理102不再是可用的指示。可基于例如ping或状态检查来确定第二租赁代理102不再是可用的指示。在其它情况下,当消息不被第二租赁代理102确认时,划分系统222可确定租赁代理102不再是可用的。在又一些其它实施方案中,用户可指定第二租赁代理不再是可用的。在一些实例中,过程900可由划分系统204执行。
在块904,划分系统222识别被分配到不再可用的租赁代理102的生产者系统106。可通过访问生产者存储库220和/或代理存储库206来识别生产者系统106。在块906,划分系统222在其余租赁代理102当中划分在块904识别的生产者系统106。在一些情况下,块906可包括通知其余租赁代理102划分过程正出现,从而防止多个租赁代理同时如前面关于块610所述划分所识别的生产者系统106。
在一些实施方案中,块906可包括重新划分所有可用的生产者系统106而不仅仅是被分配到不再可用的租赁代理102的那些生产者系统106。在这样的实施方案中,块904可包括识别所有可用的生产者系统106。如前所述,生产者系统106的划分可以是重叠的、非重叠的、等效的、非等效的和/或可基于生产者类型。因此在一些实施方案中,块906可包括前面关于块610所述的一些或所有实施方案。此外,在一些情况下,被分配到第二租赁代理102的生产者系统106的划分可至少部分地基于第二租赁代理102的类型。例如,如果第二租赁代理102被排他地分配提供存储服务的生产者系统106,则被分配到第二租赁代理102的生产者系统106可在也排他地被分配提供存储服务或资源的生产者系统106的租赁代理102的子集当中被重新划分。
在块908,划分系统222用最新分配到仍然可用的每个租赁代理102的生产者系统106的身份来更新其余租赁代理102。
在一些实施方案中,过程900可用于租赁代理102的添加或租赁代理102的代替。在这样的情况下,块904可识别用于在块906划分的所有可用生产者系统106。在一些情况下,可用生产者系统106可以是在较早的时间段可用的相同的生产者系统106。在其它情况下,这组生产者系统106可由于生产者系统106的失去或生产者系统106的添加而改变。在存在租赁代理102的一对一代替的情况下,新租赁代理可被分配它正取代的租赁代理的生产者系统106。在这样的情况下,块906可以是可选的,且块908可包括向其它租赁代理通知新租赁代理现在被分配老租赁代理的生产者系统106。
示例基于滞后的生产者选择过程
图10示出基于滞后的生产者选择过程1000的实施方案。过程1000可由可修改与生产者系统106相关的选择权重以便修改生产者系统的选择例如生产者系统106的选择作为块410的部分的任何系统实现。例如,过程1000全部或部分地可由租赁代理102、状态模块228和租赁系统224(仅举几个例子)实现。虽然任何数量的系统全部或部分地可实现过程1000,但是为了简化讨论,过程1000的部分将参考特定的系统被描述。
过程1000在块1002开始,其中例如状态模块228从消费者系统104接收与生产者系统106相关的状态元数据。这个状态元数据可包括由生产者系统106提供到消费者系统104的信息以及消费者系统104基于它与生产者系统106的交互作用而确定的信息。例如,状态元数据可包括与生产者系统106的响应时间有关的信息、生产者系统106在给定时间服务于的消费者系统104的数量、生产者系统106在一段时间内平均服务于的消费者系统104的数量等。在一些实施方案中,块1002可包括上面关于块404所述的一些或所有实施方案。
此外,在一些情况下,状态模块228可自从消费者系统104最后一次与租赁代理102通信以来接收与一组生产者系统106相关的状态元数据,消费者系统104与该组生产者系统106通信。状态元数据可作为更新请求的部分从消费者系统104被接收,用于对生产者系统106的已更新访问。在其它情况下,状态元数据可作为新租赁请求的部分从消费者系统104被接收。
在块1004,状态模块228基于在块1002接收的相应状态元数据来更新一个或多个生产者系统106的生产者状态信息。可选地或此外,状态模块228可确定至少一些所接收的状态元数据是针对与另一租赁系统102相关的生产者系统106,且因此可向被分配到生产者系统106的租赁代理102提供状态信息。在一些情况下,与块1002和1004相关的过程可用作一类“闲聊算法”,因为消费者系统104给租赁代理102提供关于消费者系统104与多个生产者系统106中的每个的交互作用的信息,而不考虑租赁代理102是否被分配到多个生产者系统106中的每个。换句话说,租赁代理102可得到关于被分配到另一租赁代理102的生产者系统106的“闲聊”。租赁代理102可接着将“闲聊”扩展到被分配到生产者系统106的租赁代理102。有利地,在某些实施方案中,通过使用此“闲聊算法”,租赁代理102可从生产者系统106得到在所安排的状态更新之间的状态元数据。通过从消费者系统104以及生产者系统106得到状态元数据,与不使用“闲聊算法”的系统比较,用于租赁的生产者系统106的选择可进一步被优化。在2009年8月20日提交的且标题为“DECENTRALIZEDREQUESTROUTING”的美国申请号12/544,517中描述了用于得到用于选择计算系统以提供服务的“闲聊”或反馈信息的系统和方法的额外实施方案,该申请特此通过引用被全部并入。在一些实施方案中,块1002可包括上面关于块406和/或块408描述的一些或所有实施方案。
在决策块1006,状态模块228确定更新的生产者状态信息是否指示在与生产者系统106相关的负荷度量中的变化。负荷度量可包括被选择用于监控的生产者系统106的任何特征。这个负荷度量可与可由生产者系统106处理的负荷有关。在一些情况下,负荷度量可包括与生产者系统的健康有关的任何度量。负荷度量的一些非限制性例子可包括出错率、存储器利用率、与消费者系统的连接的计数等。如果更新的生产者状态信息在决策块1006不指示在负荷度量中的变化,则过程1000返回到块1002以等待来自消费者系统104的新状态元数据。
在一些实施方案中,决策块1006可以可选地或此外涉及确定是否有与一个或多个其它度量相关的值的变化,生产者系统106与一个或多个其它度量相关。例如,状态模块228可确定更新的生产者状态信息是否指示通过生产者系统106的响应时间的变化或通过生产者系统106的可用资源的变化。在一些情况下,决策块1006可包括比较生产者系统106的更新的负荷度量测量与在网络环境100中的生产者系统106或被分配到租赁代理102的生产者系统的平均负荷度量测量。
如果更新的生产者状态信息指示有在生产者系统106的负荷度量中的变化,则状态模块228在块1008至少部分地基于所改变的负荷度量测量来修改与生产者系统106相关的选择权重。修改选择权重可包括基于出错率的变化是否指示增加的出错率或降低的出错率来增加或减小选择权重。在一些实施方案中,生产者系统106不与选择权重相关。在这样的实施方案中,如果在决策块1006检测的负荷度量或其它被跟踪的度量的变化满足或超过相应的阈值,则状态模块228可将生产者系统识别为发生故障或不可用的。在这样的情况下,如果负荷度量达到与将生产者系统106识别为不再可用或发生故障相关的阈值,则可警告用户例如管理员。此外,在一些情况下,如果负荷度量或选择权重改变阈值数量而不考虑生产者系统106的可用性,则可警告用户。
在某些实施方案中,与生产者系统106相关的选择权重可用于便于选择可用生产者系统106以租赁给消费者系统作为与前面所述的过程400相关的块410的部分。生产者系统106的选择权重和/或可用性状态可存储在生产者存储库220和/或代理存储库206处。
覆盖网络环境概述
图11示出用于给消费者系统提供对由生产者系统托管的服务的访问的覆盖网络环境1100的实施方案。覆盖网络环境1100可包括可向一个或多个组织或实体提供一个或多个覆盖网络或虚拟网络的任何类型的系统。这些覆盖网络可在可形成物理或非虚拟网络的计算硬件上实现。在2010年6月30日提交的美国申请号12/827,268(现在是美国专利8,296,459)中描述了可与本公开一起使用的覆盖或虚拟网络的一些例子,该申请的公开特此通过引用被全部并入。
覆盖网络环境1100包括租赁代理102、消费者主机1104和生产者主机1106,其中每个可经由网络202彼此通信。每个租赁代理102可包括关于图2所示和所述的一些或所有子系统。因此例如租赁代理102可包括生产者存储库220、划分系统222、租赁系统224、注册模块226和状态模块228。虽然租赁代理102的这些子系统中的每个可包括与以前关于图2所述的相同的功能,但是在一些情况下这些子系统可包括已修改的或额外的能力。例如,除了或代替接收与消费者系统104和生产者系统106有关的状态信息,状态模块228可接收与消费者主机1104、生产者主机1106、消费者虚拟机1142和生产者虚拟机1162中的一个或多个有关的状态信息。类似地,生产者存储库220可包括与消费者主机1104、生产者主机1106、消费者虚拟机1142和生产者虚拟机1162中的一个或多个有关的信息。
在一些情况下,划分系统222可用于在覆盖网络环境1100的租赁代理102当中划分生产者虚拟机1162。此外,与特定的覆盖网络相关的生产者虚拟机1162可独立于与其它覆盖网络相关的生产者虚拟机1162而被划分。因此,例如生产者虚拟机B’可独立于生产者虚拟机B”被划分到租赁代理102。在一些情况下,可用租赁代理102的子集可与特定的覆盖网络相关。在这样的情况下,与特定的覆盖网络相关的生产者虚拟机1162和消费者虚拟机1142可将通信限制到可用租赁代理102的子集。
此外,租赁系统224可基于覆盖网络来选择生产者虚拟机1162以租赁给消费者虚拟机1142,生产者虚拟机1162和消费者虚拟机1142与该覆盖网络相关。在一些情况下,基于覆盖网络选择生产者虚拟机1162可此外与以前关于选择生产者系统106以租赁给消费者系统104所述的因素有关。而且,注册模块226可用于向租赁代理102注册生产者虚拟机1162。
虽然在图11中只示出单个消费者主机1104,但是覆盖网络环境可包括多个消费者主机1104。每个消费者主机1104可包括多个消费者虚拟机1142。一些消费者虚拟机1142可与和消费者主机1104所托管的其它消费者虚拟机1142不同的覆盖网络相关。例如,消费者主机1104包括两个消费者虚拟机1142,每个与不同的覆盖网络相关。消费者虚拟机A’可与也可包括生产者虚拟机B’的第一覆盖网络相关,以及消费者虚拟机A”可与也可包括生产者虚拟机B”的第二覆盖网络相关。
除了消费者虚拟机1142以外,消费者主机1104可包括覆盖网络代理1114、租赁请求器1130、虚拟机映射存储库1150和状态模块1132。覆盖网络代理1114可包括可处理来自消费者虚拟机1142的服务请求并可向托管生产者虚拟机1162的生产者主机1106提供用于处理的服务请求的任何系统。在一些实施方案中,从消费者虚拟机1142接收的服务请求可包括与生产者虚拟机1162或消费者虚拟机1142相信可处理它的服务请求的不存在的系统相关的虚拟地址。当接收到具有虚拟地址的服务请求时,覆盖网络代理1114可识别用于在与提供服务请求的消费者虚拟机1142相同的覆盖网络中处理服务请求的生产者虚拟机1162。覆盖网络代理1114可接着用所识别的生产者虚拟机1162的地址代替虚拟地址。如在下面更详细描述的,可从与提供服务请求的消费者虚拟机1142相关的所租赁的生产者虚拟机1162的池识别生产者虚拟机1162。此外,覆盖网络代理1114可以用识别托管所识别的生产者虚拟机1162的生产者主机1106并识别消费者主机1104的标头或外部标头来包装或封装服务请求。
虚拟机映射存储库1150可存储代表消费者虚拟机1142租赁的生产者虚拟机1162的池。此外,虚拟机映射存储库1150可存储托管生产者虚拟机1162的相应生产者主机1106的身份。存储生产者虚拟机1162和生产者主机1106的身份可包括存储用于访问生产者虚拟机1162和生产者主机1106的寻址信息。
为了代表消费者虚拟机1142得到租赁,消费者主机1104可包括可代表由消费者主机1104托管的消费者虚拟机1142产生租赁请求的租赁请求器1118。租赁请求器1118可识别特定的覆盖网络和/或特定的消费者虚拟机1142,对于其,生产者虚拟机1162的租赁被请求。
状态模块1132可包括上面关于状态模块242描述的一些或所有实施方案。此外,状态模块1132可基于与生产者虚拟机1162和生产者主机1106的通信来提供生产者虚拟机1162和/或生产者主机1106的状态信息。
如同消费者主机1104一样,覆盖网络环境1100可包括任何数量的生产者主机1106,其中每个可包括与一个或多个覆盖网络相关的一个或多个生产者虚拟机1162。此外,每个生产者主机1106可包括覆盖网络代理1116、虚拟机映射存储库1152和状态模块1134。
类似于覆盖网络代理1114,覆盖网络代理1116可包括用于处理从消费者主机1104接收的服务请求并用于处理对所接收的服务请求的响应的任何系统。当接收到服务请求时,覆盖网络代理1116可基于包括在服务请求的标头中的信息来确定生产者虚拟机1162以处理服务请求。此外,在一些情况下,服务请求可识别特定的覆盖网络,其可用于便于识别生产者虚拟机1162以处理服务请求。
虚拟机映射存储库1152可存储识别哪些生产者虚拟机1162与哪些覆盖网络相关的信息。此外,虚拟机映射存储库1152可存储便于识别哪些消费者主机1104托管特定的消费者虚拟机1142的信息。这个信息可用于确定消费者主机1104以提供对服务请求的响应。
如同状态模块1132一样,状态模块1134可包括前面关于状态模块262所述的一个或多个实施方案。此外,状态模块1134可向租赁代理102提供与生产者虚拟机1162有关的状态信息。
如由消费者主机1104和生产者主机1106的虚线所指示的,实现本文公开的过程的基本系统可与形成消费者(例如客户端)和生产者(例如服务器或服务提供者)的一个或多个覆盖网络的虚拟机分离。在一些情况下,基本系统(例如覆盖网络代理1114和1116)可被实现为消费者主机1104和生产者主机1106的联网基础设施的部分。有利地,在某些实施方案中,通过分离基本系统与虚拟机,租赁结构可被实现、维持和修改,而不影响覆盖网络。
在一些实施方案中,消费者主机104可托管消费者虚拟机1142和生产者虚拟机1162。此外,在一些情况下,生产者主机1106可托管消费者虚拟机1142和生产者虚拟机1162。而且,虽然消费者虚拟机1142和生产者虚拟机1162被描述为虚拟机,但是它们并不被如上所述限制。在一些实施方案中,覆盖网络可被分配硬件资源和/或软件资源,其作为消费者主机1104和生产者主机1106的部分或由消费者主机1104和生产者主机1106执行。这些资源可代替虚拟机使用来将生产者系统和消费者系统实现为覆盖网络的部分。
在一些情况下,前面关于网络环境100所述的一个或多个过程可被执行或被修改以关于覆盖网络环境1100执行。因此,例如,过程900可被执行以重新划分在覆盖网络环境1100中的租赁代理。作为第二例子,过程700和800可被执行以向在覆盖网络环境1100中的租赁代理102注册生产者虚拟机1162。
用于访问生产者虚拟机的服务的示例过程
图12示出用于访问在生产者虚拟机处的服务的过程1200的实施方案。过程1200可由可处理来自消费者虚拟机的请求以访问由生产者虚拟机提供的服务的任何系统实现。例如,过程1200全部或部分地可由消费者主机1104、租赁代理102、覆盖网络代理1114和租赁请求器1118(仅举几个例子)实现。虽然任何数量的系统全部或部分地可实现过程1200,但是为了简化讨论,过程1200的部分将参考特定的系统被描述。
在一些情况下,过程1200可用于使消费者虚拟机能够访问由生产者系统提供的服务。类似地,在一些实施方案中,过程1200可用于使消费者系统能够访问由生产者虚拟机提供的服务。然而,为了简化讨论,将关于消费者虚拟机试图访问生产者虚拟机的服务来描述过程1200。
过程1200在块1202开始,在块1202,例如消费者主机1104(例如消费者主机A)的覆盖网络代理1114从消费者虚拟机1142(例如消费者虚拟机A’)接收访问在生产者处的服务的请求。可选地或此外,在块1202接收的请求可以是被提供到生产者的数据分组。例如,数据分组可以是结合服务来使用的或用于便于在生产者处的服务的使用的数据,消费者虚拟机已经建立了对该服务的访问。在一些实施方案中,请求可包括具有指示请求或分组从与消费者虚拟机1142相关的地址A被寻址到虚拟地址X的标头的分组。例如,所接收的分组可如下:{A’,X,数据},指示数据从A’发送到X。分组的数据字段可包括便于在生产者虚拟机1162处执行请求或操作的请求和/或数据。在某些实施方案中,消费者虚拟机1142可以不知道地址X是虚拟地址,但可以替代地认为地址X指物理生产者系统。而且,如前面提到的,在一些实施方案中,覆盖网络可包括不同于或除了消费者虚拟机以外的消费者系统。在这样的实施方案中,块1202可包括从在消费者主机1104上实现或由消费者主机1104托管的消费者系统接收访问在生产者处的服务的请求。类似地,生产者主机可包括不同于或除了可配置成向消费者系统提供服务的生产者虚拟机以外的生产者系统。
在决策块1204,覆盖网络代理1114确定是否有与消费者虚拟机1142相关的任何未使用的生产者虚拟机租赁。确定是否有与消费者虚拟机1142相关的任何未使用的生产者虚拟机租赁可包括访问虚拟机映射存储库1150以确定是否有与消费者虚拟机1142相关的租赁池。此外,在一些情况下,决策块1204可包括确定租赁池是否包括与消费者虚拟机1142相关的生产者虚拟机的任何未使用的租赁。
如果覆盖网络代理1114在决策块1204确定没有与消费者虚拟机1142相关的任何未使用的生产者虚拟机租赁,则租赁请求器1130在块1206得到多个租赁以访问生产者虚拟机。下面关于图14更详细描述了用于得到一个或多个租赁以访问一个或多个生产者虚拟机的过程的例子。
在块1208,覆盖网络代理1114试图建立与在块1206得到的所租赁的生产者虚拟机1162的连接。在一些情况下,块1208可包括存储与每个租赁的生产者虚拟机相关的租赁信息,覆盖网络代理1114针对生产者虚拟机成功地建立连接。
在覆盖网络代理1114在块1208建立与租赁的生产者虚拟机的连接之后,或如果覆盖网络代理1114在决策块1204确定有与消费者虚拟机1142相关的未使用的生产者虚拟机租赁,则过程1200继续进行到块1210。在块1210,覆盖网络代理1114选择所租赁的生产者虚拟机1162,从其访问由消费者虚拟机1142请求的服务。可使用任何类型的选择算法例如循环法或最近最少使用来选择生产者虚拟机1162。在其它情况下,可基于与生产者虚拟机1162的连接被建立的顺序来选择生产者虚拟机1162。在又一些其它情况下,可随机选择和/或基于在块1202接收的服务请求来选择生产者虚拟机1162。可选地,在一些情况下,覆盖网络代理1114可访问虚拟机映射存储库1150以便于选择生产者虚拟机1142。例如,覆盖网络代理1114可访问租赁池,其可被存储为识别可用生产者虚拟机1162的表、存储在虚拟机映射存储库1150处。
在一些情况下,覆盖网络代理1114可选择具有低于阈值的负荷的所租赁的生产者虚拟机1162。在这样的情况下,覆盖网络代理1114可从具有低于阈值的负荷的生产者虚拟机1162随机地选择。这个负荷可以指与生产者虚拟机1162的利用率有关的任何可测量的度量。例如,负荷可以指处理器负荷、网络连接负荷、与生产者虚拟机1162的消费者连接的数量、在连接中的最低时延、生产者虚拟机1162的性能的测量等。
此外,在一些情况下,每个租赁可与成本相关。例如,可以对每秒使用、对所传递或处理的数据的每兆字节或对生产者虚拟机1162的每个计算循环对消费者或与消费者相关的实体收费。在这样的情况下,覆盖网络代理1114可基于可用的所租赁的生产者虚拟机1162的成本来选择所租赁的生产者虚拟机1162。
在块1212,覆盖网络代理1114用在块1210选择的所租赁的生产者虚拟机1162的地址代替包括在请求标头(例如内部标头)中的生产者的地址(例如虚拟地址X)。因此例如,在块1202接收的分组现在可如下:{A’,B’,数据}。在一些实施方案中,块1212可以是可选的。例如,在一些实施方案中,每个所租赁的生产者虚拟机1162可与端口相关。因此,不是用所租赁的生产者虚拟机1162的地址代替虚拟地址X,分组可经由与所租赁的生产者虚拟机1162相关的端口被传递到托管生产者。作为第二例子,分组可被传递到生产者主机,且生产者主机可基于例如虚拟地址X来确定所租赁的生产者虚拟机1162以接收到分组。
在块1214,覆盖网络代理1114识别与所租赁的生产者虚拟机相关的生产者主机1106。可通过访问存储在虚拟机映射存储库1150处的状态表来识别生产者主机1106。
覆盖网络代理1114在块1216用识别在块1214识别出生产者主机1106和与消费者虚拟机1142相关的消费者主机1104的外部标头来封装请求。因此例如,分组现在可如下:{A,B{A’,B’,数据}},指示分组从消费者主机A发送到生产者主机B。可选地,在一些情况下,生产者主机1106和消费者主机1104的身份可与在块1202接收的请求的请求标头包括在一起或被添加到该请求标头,且分组可以如下:{A,B,A’,B’,数据},指示分组从消费者主机A被发送到生产者主机B。在这样的情况下,在与块1216相关的过程完成之后,请求包括单个标头而不是两个标头(其包括内部标头和外部标头)。在一些实施方案中,块1216可包括与在块1202提供请求的消费者虚拟机1142和在块1210识别的生产者虚拟机1162相关的覆盖网络的身份。因此例如分组可指示请求与'或第一覆盖网络相关,与"或第二覆盖网络相对,如下:{A,B,‘,A’,B’,数据},指示分组从消费者主机A发送到生产者主机B,以及服务请求从消费者虚拟机发送到被包括在'覆盖网络中的生产者虚拟机。有利地,在一些实施方案中,通过将覆盖网络的身份与服务请求包括在一起并对服务请求做出响应,地址可在不同的覆盖网络当中被重新使用。然而,在每个虚拟机和每个系统与唯一地址相关的情况下,提供覆盖网络的身份可以是可选的。
在一些实施方案中,覆盖网络代理1114可确定用于从存储在虚拟机映射存储库1150处的状态管理表访问生产者虚拟机的地址信息。这个状态管理表可包括用于访问在块1210选择的所租赁的生产者虚拟机1162的连接信息。此外,状态管理表可包括虚拟地址到生产者虚拟机地址的映射。此外,状态管理表可包括生产者虚拟机1162到它们的相应生产者主机的映射。在图15中示出将虚拟地址映射到生产者虚拟机的这样的状态管理表的例子。
在块1218,覆盖网络代理1114向在块1214识别的生产者主机提供请求。这个请求可经由网络202被提供到生产者主机1106。
用于处理访问在生产者虚拟机处的服务的请求的示例过程
图13示出用于处理访问在生产者虚拟机处的服务的请求的过程1300的实施方案。过程1300可由可处理从消费者主机接收的访问在生产者虚拟机处的服务的请求的任何系统执行。例如,过程1300全部或部分地可由生产者主机1106、覆盖网络代理1116和生产者虚拟机1162(仅举几个例子)实现。虽然任何数量的系统全部或部分地可实现过程1300,但是为了简化讨论,过程1300的部分将参考特定的系统被描述。
在一些情况下,过程1300可用于使生产者虚拟机能够提供由消费者系统请求的服务。类似地,在一些实施方案中,过程1300可用于使生产者系统能够提供由消费者虚拟机请求的服务。然而,为了简化讨论,将关于提供对由消费者虚拟机请求的服务的访问的生产者虚拟机描述过程1300。
过程1300在块1302开始,在块1302,例如生产者主机1106(例如生产者主机B)的覆盖网络代理1116从消费者主机1104接收请求。该请求可例如被格式化如下:{A,B,‘,A’,B’,数据},指示分组从消费者主机A被接收并用于生产者主机B,以及服务请求是从消费者虚拟机到被包括在'覆盖网络中的生产者虚拟机。在很多情况下,所接收的请求是访问由生产者虚拟机1162托管的服务的请求,生产者虚拟机1162由生产者主机1106托管。然而,在一些情况下,所接收的请求可替代地是配置成向生产者虚拟机1162提供数据以便于执行服务的数据分组,对该服务的访问已经由消费者主机1104所托管的消费者虚拟机1142建立。
在块1304,覆盖网络代理1116确定生产者虚拟机1162(例如生产者虚拟机B’)来接收请求。在一些实施方案中,块1304可包括将来自在块1302接收的请求的外部标头解封装。在这样的情况下,分组可以如下:{A’,B’,数据},指示分组从消费者虚拟机A’接收并用于生产者虚拟机B’。在这样的情况下,覆盖网络代理1116可访问内部标头以识别生产者虚拟机1162。可选地或此外,覆盖网络代理1116可识别生产者虚拟机1162以通过访问外部标头来接收请求。
在一些情况下,覆盖网络代理1116向在块1304识别的生产者虚拟机1162提供没有外部标头的请求。因此,分组可如下:{A’,B’,数据}。然而在其它情况下,请求可被提供为从消费者主机1104接收,包括具有外部标头,如果与所接收的请求包括在一起。因此,分组可如在块1302接收的(例如{A,B,‘,A’,B’,数据})。
在块1308,覆盖网络代理1116从被寻址到消费者虚拟机1142的生产者虚拟机1162接收响应,其使在块1302接收的请求被产生。在一些实施方案中,响应可被寻址到不同的消费者虚拟机。例如,来自消费者虚拟机的请求可以是将文件从生产者虚拟机传输到另一消费者虚拟机的请求。这个分组可类似于在块1202接收的分组并可如下:{B’,A’,数据},指示生产者虚拟机B’正(例如响应于服务请求)将数据发送到消费者虚拟机A’。在块1310,覆盖网络代理1116识别与消费者虚拟机1142相关的消费者主机1104。可通过访问在虚拟机映射存储库1152处的映射表来识别消费者主机1104。这个映射表可将消费者虚拟机1142映射到托管消费者虚拟机1142的消费者主机1104。一般,每个消费者主机1104可托管多个消费者虚拟机1142。然而,在一些情况下,一个或多个消费者主机1104可托管单个消费者虚拟机1142。
覆盖网络代理1116在块1312用识别消费者主机1104和与生产者虚拟机1162相关的生产者主机1106的外部标头封装响应。因此,分组可如下:{B,A{B’,A’,数据}}。如关于块1216描述的,在一些情况下,消费者主机1104和生产者主机1106的身份可与在块1308接收的响应的现有标头包括在一起或添加到现有标头。因此,分组可如下:{B,A,B’,A’,数据}。类似地,如关于块1216所述的,响应的外部标头或标头(如果只有一个标头存在)可包括与生产者虚拟机1162和消费者虚拟机1142相关的覆盖网络的身份。因此,分组可如下:{B,A,‘,B’,A’,数据}。
生产者主机1106在块1314向消费者主机1104提供响应。在一些实施方案中,生产者主机1106可经由网络202提供响应。
在一些实施方案中,消费者主机1104可执行过程1300或类似的过程以向相应的消费者虚拟机1142提供在块1308接收的响应。此外在一些情况下,消费者主机1104的覆盖网络代理1114可识别用于创建由消费者虚拟机1142提供的初始请求的虚拟地址(例如虚拟地址X)。使用这个识别出的虚拟地址,覆盖网络代理1114可以用用于创建由消费者虚拟机1142提供的初始请求的虚拟地址代替在识别生产者虚拟机1162的所接收的响应中的地址。因此例如在分组被提供到消费者虚拟机A’之后,分组可如下再形成:{X,A’,数据},指示响应从系统X而不是从生产者虚拟机B’被接收,其可实际上产生包括在分组中的数据。
用于租赁对生产者虚拟机的访问的示例过程
图14示出用于租赁对生产者虚拟机的访问的过程1400的实施方案。过程1400可由可得到访问生产者虚拟机1162(例如生产者虚拟机B’)的租赁的任何系统实现。例如,过程1400全部或部分地可由消费者主机1104、租赁请求器1130、租赁代理102、覆盖网络代理1114和租赁系统224(仅举几个例子)实现。虽然任何数量的系统全部或部分地可实现过程1400,但是为了简化讨论,过程1400的部分将参考特定的系统被描述。
过程1400在块1402开始,在块1402,例如租赁请求1130为与覆盖网络相关的消费者虚拟机1142产生得到对生产者虚拟机1162的租赁的请求。在消费者虚拟机1142初始化时,与块1402相关的过程可出现。可选地或此外,块1402可响应于没有与消费者虚拟机1142相关的未使用的生产者虚拟机租赁的确定而出现(例如,如可在与过程1200相关的决策块1204所确定的)。
在块1404,租赁请求器1130向多个租赁代理102提供请求。在一些实施方案中,多个租赁代理102可包括被包括在覆盖网络环境1100中的租赁代理102的子集。此外,在一些情况下,请求可被提供到单个租赁代理102。
在块1406,租赁请求器1130从多个租赁代理102中的每个接收与和消费者虚拟机1142相同的覆盖网络相关的生产者虚拟机1162的身份,对于消费者虚拟机1142,请求在块1402产生。一般,多个租赁代理102中的每个提供单个生产者虚拟机1162的身份。然而在一些情况下,一个或多个租赁代理102可提供多个生产者虚拟机1162的身份。此外,租赁代理102可能提供零生产者虚拟机1162的身份。例如,如果与特定的租赁代理102相关的每个生产者虚拟机1162超过阈值利用率被利用,则租赁代理102可以不提供生产者虚拟机1162的身份。在这样的情况下,租赁代理102可向用户例如管理员警告与租赁代理102相关的每个生产者虚拟机1162在阈值利用率之上被利用。
在一些实施方案中,除了接收生产者虚拟机1162的身份以外,还可在块1406接收与租赁生产者虚拟机1162相关的租赁信息。这个租赁信息可包括用于访问生产者虚拟机1162的地址、托管生产者虚拟机1162的生产者主机1106的身份和/或地址、和/或被分配到消费者虚拟机1142用于生产者虚拟机1162的租赁的一定数量的可消费资源的可消费资源的身份。这个可消费资源可包括用于测量生产者虚拟机1162的租赁期的任何类型的资源。例如,可消费资源可包括一段时间、多个操作、由生产者虚拟机1162处理和/或从生产者虚拟机1162接收的数据的数量或用于测量消费者虚拟机1142对生产者虚拟机1162的利用的任何其它度量。
在块1408,覆盖网络代理1114试图代表消费者虚拟机1142访问在块1406识别的每个生产者虚拟机1162。在一些实施方案中,块1408可包括试图建立与每个生产者虚拟机1162的连接。在其它实施方案中,块1408可包括试图通过与生产者虚拟机1162的所建立的连接来进行通信。在块1410,覆盖网络代理1114在租赁池中存储与每个所建立的连接有关的连接信息。这个连接信息可包括用于识别连接和如何使用连接以访问服务的信息。例如,连接信息可包括作为块1406的部分被接收的任何信息,例如托管生产者虚拟机1162的生产者主机1106的身份的可消费资源的身份。在一些实施方案中,租赁池和/或连接信息可存储在虚拟机映射存储库1150处。
类似于过程300,在一些实施方案中,过程1400可用于更新生产者虚拟机1162的租赁。在这样的实施方案中,块1402可包括产生更新生产者虚拟机的现有的或以前存在的租赁的请求。更新请求可包括现有生产者虚拟机租赁的身份。此外,块1406可包括接收更新请求是否被准予的指示,和在一些情况下,与可消费资源的额外准予有关的租赁信息(例如租赁时间或处理器使用)。
状态管理表的例子
图15示出可用于便于在覆盖网络环境1100中通信的状态管理表1500的一个非限制性例子。状态管理表1500可包括便于在消费者虚拟机1142和生产者虚拟机1162之间通信的多条信息。例如,状态管理表1500可包括源覆盖地址1502、源覆盖端口1504、虚拟地址1506和目的地覆盖地址1508的列。如由在状态管理表1500中的一些表标题(例如源覆盖地址1502)指示的,地址可以是互联网协议(IP)地址。然而,地址并不如上所述被限制且可采取其它形式或遵循其它协议。
在图15的例子中,状态管理表1500的所示部分与消费者虚拟机A’相关。如在虚拟地址1506的列中所示的,消费者虚拟机A’可使用多个虚拟地址X和Y。此外,每个虚拟地址可与多个目的地覆盖地址相关,目的地覆盖地址与多个生产者虚拟机相关。例如,虚拟地址Y可与具有地址K’的生产者虚拟机和具有地址M’的生产者虚拟机相关。因为多个目的地地址可被映射到虚拟地址,所以覆盖网络代理1114也可识别端口,如在源覆盖端口1504的列中所指示的以将数据分组引导到正确的目的地。因此,为了将服务请求发送到生产者虚拟机K’,覆盖网络代理1114将用K’的地址代替虚拟地址Y并使用端口P1。类似地,为了将服务请求发送到生产者虚拟机M’,覆盖网络代理1114将用M’的地址代替虚拟地址Y并使用端口P2。
在很多情况下,可使用开放系统互连(OSI)模型的第3层和/或第4层来实现覆盖网络。一般,在使用第3层和/或第4层实现覆盖网络的情况下,联网基础设施不知道在整个网络当中通信的应用。这可使负荷平衡是更有挑战性的,因为先验地预料多少数据将在消费者虚拟机和生产者虚拟机之间被传输更难。
一个解决方案是创建至少部分地使用OSI模型的第7层实现的协议感知负荷平衡系统。在这样的系统中,覆盖网络代理1114可在一些实施方案中检查由消费者虚拟机1142传输的分组以确定消费者虚拟机1142试图访问的服务的类型或与服务请求相关的协议类型以及服务请求是否用于相同或不同类型的单个服务或多个服务。因此例如,如果覆盖网络代理1114确定消费者虚拟机正请求对使用HTTP请求的网站的访问,且每个HTTP请求针对不同的网页或网页的不同特征,则覆盖网络代理1114可将不同的请求发送到不同的生产者虚拟机1162用于处理而消费者虚拟机1142不知道请求由不同的系统处理。因此在一些情况下,单个连接可在一组连接之上被多路分解。覆盖网络代理1114可将一系列请求分离到多个生产者虚拟机1162以增加请求被处理的效率或速率。此外,如果覆盖网络代理1114确定消费者虚拟机1142在生产者虚拟机1162上产生很多负荷,则覆盖网络代理1114可交换生产者虚拟机1162,其处理请求和/或在多个生产者虚拟机1162当中分离请求。交换生产者虚拟机1162可在一些情况下通过使请求标识符与服务请求相关来实现。例如,如在图15的请求标识符1510的列中所示的,具有请求标识符l1的分组可具有与生产者虚拟机B’的地址交换的虚拟地址X。同样,具有请求标识符l2的分组可具有与生产者虚拟机D’的地址交换的虚拟地址X。
可鉴于下面的条款来描述本公开的实施方案:
条款1:一种租赁对生产者系统的访问以得到对由生产者系统托管的服务的访问的方法,方法包括:
通过包括一个或多个处理器的消费者系统:
产生租赁请求以访问多个生产者系统之一的服务;
向多个租赁代理提供租赁请求;
从单独的租赁代理接收一个或多个生产者系统的身份;
试图发起与由多个租赁代理识别的至少一些生产者系统的连接;以及
响应于成功地建立与来自至少一些生产者系统的第一生产者系统的连接,访问由第一生产者系统提供的服务。
条款2:条款1的方法,其中从单独的租赁代理接收一个或多个生产者系统的身份包括从多个租赁代理的至少两个租赁代理接收不同生产者系统的身份。
条款3:条款1到2的方法,其中多个租赁代理的至少一些单独的租赁代理与非等效的一组生产者系统相关。
条款4:条款1到3的方法,其中从单独的租赁代理接收一个或多个生产者系统的身份包括接收至少一些所识别的生产者系统的可消费资源。
条款5:条款4的方法,其中可消费资源可包括租赁时间、一组计算循环、与所识别的生产者系统的使用相关的金钱预算或磁盘存储,以及其中租赁时间包括消费者系统被授权访问在生产者系统处的服务的一段时间。
条款6:条款5的方法,其中响应于从满足租赁阈值的第一生产者系统的可消费资源剩余的一定数量的可消费资源,方法还包括:
确定对访问在第一生产者处的服务的现有服务请求将不在可消费资源到期之前完成的概率;
响应于确定概率满足更新阈值,产生更新租赁请求以访问在第一生产者系统处的服务;以及
提供更新租赁请求到来自提供第一生产者系统的身份的多个租赁代理的租赁代理。
条款7:条款6的方法,其中响应于向租赁代理提供更新租赁请求,方法还包括接收第一生产者系统的更新数量的可消费资源。
条款8:条款6到7的方法,其中响应于向租赁代理提供更新租赁请求,方法还包括接收新生产者系统的新数量的可消费资源,新生产者系统不同于第一生产者系统。
条款9:条款1到8的方法,其中响应于成功地建立与来自至少一些生产者系统的第一生产者系统的连接,方法还包括从第一生产者系统得到元数据,其中至少一些元数据包括与第一生产者系统有关的状态信息。
条款10:条款9的方法,其还包括提供至少一些元数据至来自提供第一生产者系统的身份的多个租赁代理的租赁代理。
条款11:条款9到10的方法,其还包括向多个租赁代理提供至少一些元数据。
条款12:条款1到11的方法,其中响应于成功地建立与来自至少一些生产者系统的第二生产者系统的连接,访问在第二生产者系统处的第二服务。
条款13:条款12的方法,其中服务和第二服务是相同的服务。
条款14:条款12到13的方法,其中使用服务访问的数据和使用第二服务访问的数据不同。
条款15:一种租赁对生产者系统的访问以得到对由生产者系统托管的服务的访问的系统,系统包括:
消费者系统,其包括一个或多个处理器,消费者系统还包括租赁请求器,其配置成:
产生租赁请求以访问生产者系统的服务;
向多个租赁代理提供租赁请求;以及
从多个租赁代理中的至少一些接收生产者系统的身份;
消费者系统还包括连接模块,其配置成试图发起与由多个租赁代理识别的至少一些生产者系统的连接;以及
消费者系统还包括资源请求器,其配置成响应于连接模块成功地建立与第一生产者系统的连接而访问在至少一些生产者系统的第一生产者系统处的服务。
条款16:条款15的系统,其中租赁请求器还配置成接收至少一些所识别的生产者系统的租赁时间,租赁时间包括消费者系统被授权访问在生产者系统处的服务的一段时间。
条款17:条款16的系统,其中连接模块还配置成向第一生产者系统提供与第一生产者系统相关的租赁时间。
条款18:条款16到17的系统,其中:
资源请求器还配置成响应于从满足租赁阈值的第一生产者系统的租赁时间剩余的一定量的租赁时间而确定对访问在第一生产者处的服务的现有服务请求将不在租赁时间到期之前完成的概率;以及
租赁请求器还配置成:
响应于确定概率满足更新阈值而产生更新租赁请求以访问在第一生产者系统处的服务;以及
提供更新租赁请求到来自提供第一生产者系统的身份的多个租赁代理的租赁代理。
条款19:条款15到18的系统,其还包括状态模块,其配置成:
从第一生产者系统得到元数据,其中至少一些元数据包括与第一生产者系统有关的状态信息;以及
提供至少一些状态信息到来自提供第一生产者系统的身份的多个租赁代理的租赁代理。
条款20:一种租赁对生产者系统的访问以提供对由生产者系统托管的服务的访问的系统,系统包括:
第一租赁代理,其包括第一租赁系统,第一租赁代理在包括计算机硬件的计算机系统中实现,第一租赁系统配置成:
从消费者系统接收第一请求以租赁对服务的访问,服务由多个生产者系统提供;
至少部分地基于与第一多个生产者系统的单独生产者系统相关的生产者状态信息来识别来自第一多个生产者系统的第一生产者系统,其中第一多个生产者系统包括多个生产者系统的第一子集;以及
响应于识别出第一生产者系统,向消费者系统提供第一生产者系统的身份;以及
第二租赁代理,其包括第二租赁系统,第二租赁系统配置成:
从消费者系统接收第二请求以租赁对服务的访问;
至少部分地基于与第二多个生产者系统的单独生产者系统相关的生产者状态信息来识别来自第二多个生产者系统的第二生产者系统,其中第二多个生产者系统包括多个生产者系统的第二子集,多个生产者系统的第二子集与多个生产者系统的第一子集不相同;以及
响应于识别出第二生产者系统,向消费者系统提供第二生产者系统的身份,从而使消费者系统能够从至少第一生产者系统和第二生产者系统请求对服务的访问,由此,生产者系统的识别是分布在至少第一租赁代理和第二租赁代理之间的分布式过程。
条款21:条款20的系统,其中第一租赁系统还配置成向消费者系统提供第一租赁时间,第一租赁时间包括消费者系统被授权访问第一生产者系统的一段时间,以及其中第二租赁系统还配置成向消费者系统提供第二租赁时间,第二租赁时间包括消费者系统被授权访问第二生产者系统的一段时间。
条款22:条款20到21的系统,其中:
第一租赁代理还包括第一状态模块,第一状态模块配置成:
接收第一生产者系统的第一已更新状态信息;以及
至少部分地基于第一已更新状态信息来更新第一生产者系统的生产者状态信息;以及
第二租赁代理还包括第二状态模块,第二状态模块配置成:
接收第二生产者系统的第二已更新状态信息;以及
至少部分地基于第二已更新状态信息来更新第二生产者系统的生产者状态信息。
条款23:条款22的系统,其中第一已更新状态信息和第二已更新状态信息从消费者系统被接收。
条款24:条款22的系统,其中第一已更新状态信息从第一生产者系统被接收,而第二已更新状态信息从第二生产者系统被接收。
条款25:条款20到24的系统,其中第一租赁代理还配置成:
从消费者系统接收第一租赁更新请求以得到第一生产者系统的额外租赁时间;
至少部分地基于第一生产者系统的生产者状态信息来确定是否准予第一租赁更新请求;以及
响应于确定准予第一租赁更新请求,给消费者系统提供第一生产者系统的第一租赁更新时间。
条款26:条款25的系统,其中响应于确定不准予第一租赁更新请求,第一租赁代理还配置成:
至少部分地基于与第一多个生产者系统的每个生产者系统相关的生产者状态信息来识别来自第一多个生产者系统的第三生产者系统;以及
响应于识别出第三生产者系统,向消费者系统提供第三生产者系统的身份。
条款27:一种用于在多个租赁代理系统当中划分生产者系统的方法,方法包括:
通过包括一个或多个处理器的第一租赁代理系统:
确定在第一时间段可用的第一组生产者系统;
识别在第二时间段可用的第二组生产者系统,其中第二时间段在第一时间段之前出现;
计算在第一组生产者系统和第二组生产者系统之间的数量上的差异;
确定差异是否满足阈值;以及
响应于确定差异满足阈值:
通过向单独的租赁代理系统分配第一组生产者系统的不同子集来在多个租赁代理系统当中划分第一组生产者系统;以及
对于除了第一租赁代理系统以外的多个租赁代理系统的单独租赁代理系统,给单独租赁代理系统提供从第一组生产者系统分配到租赁代理系统的生产者系统的子集的身份以使来自第一组生产者系统的不同生产者系统能够向不同的消费者系统提供服务,由此,在多个租赁代理系统当中的第一组生产者系统的划分实现在不同消费者系统当中由第一组生产者系统提供的服务的分配的平衡。
条款28:条款27的方法,其还包括向来自多个租赁代理系统的一组租赁代理系统通知第一租赁代理系统正划分第一组生产者系统,使这组租赁代理系统抑制试图划分第一组生产者系统,同时第一租赁代理系统正划分第一组生产者系统。
条款29:条款27到28的方法,其中第二组可用生产者系统和第二时间段包括当第一租赁代理系统在非激活时期之后被激活时确保差异满足阈值的值。
条款30:条款27到29的方法,其中第一组生产者系统包括在第一时间段可用的生产者系统的总数,以及其中第二组生产者系统包括在第二时间段可用的生产者系统的总数。
条款31:条款27到30的方法,其还包括:
接收多个租赁代理系统中的至少一个在第三时间段不可用的指示;
识别在第三时间段可用的第三组生产者系统;
识别在第三时间段可用的一组租赁代理系统;
在第三时间段可用的这组租赁代理系统当中划分第三组生产者系统;以及
对于在第三时间段可用的这组租赁代理系统中的单独租赁代理系统,给租赁代理系统提供来自第三组生产者系统的生产者系统的子集的身份,生产者系统的子集至少部分地基于第二组生产者系统的所述划分而被确定。
条款32:条款31的方法,其中第三组生产者系统和第一组生产者系统是相同的系统。
条款33:条款27到32的方法,其中在多个租赁代理系统当中划分在第一时间段可用的第一组生产者系统包括将第一组生产者系统划分成生产者系统的非重叠子集。
条款34:条款27到33的方法,其还包括:
确定来自被分配到第一租赁代理系统的生产者系统的第一子集的生产者系统不再是可用的;以及
更新可用生产者系统的计数以反映生产者系统不再是可用的,其中确定在第一时间段可用的第一组生产者系统至少部分地基于可用生产者系统的计数。
条款35:条款34的方法,其中确定生产者系统不再是可用的包括从消费者系统接收生产者系统是无反应的通知。
条款36:条款34到35的方法,其中确定生产者系统不再是可用的包括确定生产者系统对由第一租赁代理系统提供的状态请求无反应。
条款37:条款27到36的方法,其还包括:
从生产者系统接收向第一租赁代理系统注册的请求;
确定生产者系统是否被包括在被分配到第一租赁代理系统的生产者系统的子集中;以及
响应于确定生产者系统被包括在被分配到第一租赁代理系统的生产者系统的子集中,在第一租赁代理系统处注册生产者系统。
条款38:条款37的方法,其中响应于确定生产者系统未被包括在被分配到第一租赁代理系统的生产者系统的子集中,方法还包括:
识别来自被分配到生产者系统的多个租赁代理系统的第二租赁代理系统;以及
给生产者系统提供第二租赁代理系统的身份。
条款39:条款27到38的方法,其中来自不同消费者系统的消费者系统在不同的时间段访问来自多个生产者系统的不同生产者系统。
条款40:一种用于在多个租赁代理当中划分生产者系统的系统,系统包括:
多个租赁代理,其包括第一租赁代理,其中来自多个租赁代理的单独租赁代理包括一个或多个处理器,第一租赁代理还包括配置成确定在第一时间段的一组可用生产者系统和在第二时间段的这组可用生产者系统之间的差异是否满足阈值的划分系统;以及
划分系统,其还配置成响应于确定差异满足阈值来:
基于被包括在多个租赁代理中的租赁代理的数量的计数来将这组生产者系统划分成生产者系统的多个子集以试图使由不同的用户系统对多个生产者系统的访问大致均匀地分布在多个生产者系统当中;以及
对于多个租赁代理的单独租赁代理,向租赁代理提供被包括在生产者系统的子集之一中的生产者系统的身份。
条款41:条款40的系统,其中生产者系统的多个子集对应于被包括在多个租赁代理中的租赁代理的数量的计数。
条款42:条款40到41的系统,划分系统还配置成给单独的租赁代理提供被包括在来自生产者系统的子集的生产者系统的不同子集中的生产者系统的身份。
条款43:条款40到42的系统,其中划分系统还配置成向多个租赁代理中的一个或多个租赁代理,不包括第一租赁代理,警告第一租赁代理的划分系统正划分这组生产者系统。
条款44:条款40到43的系统,其中响应于接收到来自多个租赁代理的第二租赁代理正划分这组生产者系统的警告,第一租赁代理的划分系统还配置成抑制划分这组生产者系统。
条款45:条款40到44的系统,其中第一租赁代理还包括注册模块,其配置成:
从生产者系统接收向第一租赁代理注册的请求;
确定生产者系统是否被包括在被分配到第一租赁代理的生产者系统的子集中;
响应于确定生产者系统被包括在被分配到第一租赁代理的生产者系统的子集中,在第一租赁代理处注册生产者系统;以及
响应于确定生产者系统未包括在被分配到第一租赁代理的生产者系统的子集中,识别来自被分配到生产者系统的多个租赁代理的第二租赁代理,并给生产者系统提供第二租赁代理的身份。
条款46:一种用于在多个租赁代理系统当中划分租赁的方法,方法包括:
通过包括一个或多个处理器的第一租赁代理系统:
识别一组可用生产者系统;
确定对这组可用生产者系统的单独生产者系统可用的多个租赁;
通过给来自多个租赁代理系统的单独租赁代理系统分配来自对单独生产者系统可用的多个租赁的租赁的子集来在多个租赁代理系统当中划分对单独生产者系统可用的多个租赁;以及
对于多个租赁代理系统的单独租赁代理系统,给租赁代理系统提供被分配到租赁代理系统的租赁的子集,由此,在多个租赁代理系统当中对单独生产者系统可用的多个租赁的划分实现在多个租赁代理系统当中的工作负荷的平衡。
条款47:条款46的方法,其中单独租赁代理系统被分配租赁的非重叠子集。
条款48:条款46到47的方法,其中给租赁代理系统提供租赁的子集不包括给第一租赁代理系统提供被分配到租赁代理系统的租赁的子集。
条款49:条款46到48的方法,其中给租赁代理系统提供被分配到租赁代理系统的租赁的子集包括给租赁代理系统提供针对多个生产者系统的单独生产者系统被分配到租赁代理系统的多个租赁。
条款50:条款46到49的方法,其中给租赁代理系统提供被分配到租赁代理系统的租赁的子集包括给租赁代理系统提供被分配到租赁代理系统的单独租赁的标识符。
条款51:条款46到50的方法,其中在多个租赁代理系统当中划分对单独生产者系统可用的多个租赁包括在多个租赁代理系统当中实质上相等地划分对单独生产者系统可用的多个租赁。
条款52:条款46到51的方法,其中多个租赁代理系统包括一组租赁代理系统的子集。
条款53:条款52的方法,其中多个租赁代理系统包括第一租赁代理系统。
条款54:条款46到53的方法,其中这组可用生产者系统包括可用生产者系统的子集。
条款55:条款46到54的方法,其中所述在多个租赁代理系统当中划分对单独生产者系统可用的多个租赁响应于在这组可用生产者系统当中可用的总租赁的数量在第一时间段与第二时间段比较改变阈值量而出现。
条款56:一种用于从多个生产者系统选择生产者系统以提供对服务的访问的方法,方法包括:
通过包括一个或多个处理器的第一租赁代理系统:
接收多个生产者系统的状态信息,其中多个生产者系统的单独生产者系统与选择权重相关,以及其中至少一些状态信息反映由至少一个消费者系统对至少一个生产者系统的状态的确定;
至少部分地基于所接收的状态信息来修改多个生产者系统的生产者状态信息,所修改的生产者状态信息包括关于与消费者系统交互作用与多个生产者系统的性能的一组度量;
至少部分地基于来自这组度量的第一度量来修改与多个生产者系统相关的选择权重;
从消费者系统接收请求以租赁对多个生产者系统之一的访问;以及
响应于接收到租赁对多个生产者系统之一的访问的请求:
至少部分地基于与多个生产者系统中的单独生产者系统相关的相应选择权重来从多个生产者系统选择生产者系统以服务于消费者系统;
向提供租赁对多个生产者系统之一的访问的请求的消费者系统提供所选择的生产者系统的身份;以及
向消费者系统提供与所选择的生产者系统相关的生产者状态信息,其中至少一些生产者状态信息从第二消费者系统得到。
条款57:条款56的方法,其中多个生产者系统包括生产者系统的子集。
条款58:条款56到57的方法,其中修改与多个生产者系统相关的选择权重警告所述选择生产者系统选择特定的生产者系统的概率。
条款59:条款56到58的方法,其中状态信息从至少一个消费者系统接收。
条款60:条款59的方法,其中至少一个消费者系统包括提供租赁对多个生产者系统之一的访问的请求的消费者系统。
条款61:条款56到60的方法,其中状态信息从多个生产者系统接收到。
条款62:条款56到60的方法,其中状态信息从第二租赁代理系统接收到。
条款63:条款56到63的方法,其还包括:
对于来自多个生产者系统的第一生产者系统确定相应的已修改选择权重是否满足移除阈值;以及
响应于已修改选择权重是否满足移除阈值,从可用生产者系统的列表移除第一生产者系统的身份,可用生产者系统的列表包括对应于来自可用于选择的多个生产者系统的生产者系统的可用生产者系统的身份。
条款64:条款63的方法,其中所述从多个生产者系统选择生产者系统包括从可用生产者系统的列表选择生产者系统。
条款65:条款63到64的方法,其还包括:
跟踪从可用生产者系统的列表移除的生产者系统的计数;以及
响应于计数满足减小阈值,在多个租赁代理系统当中重新划分可用生产者系统,多个租赁代理系统包括第一租赁代理系统。
条款66:条款63的方法,其中移除阈值基于多个生产者系统的第一度量的平均值。
条款67:条款56到66的方法,其中被提供到消费者系统的生产者状态信息包括第一租赁代理系统可采用的独立的一组生产者状态信息,以及其中独立的这组生产者状态信息使消费者系统能够从多个所租赁的生产者系统选择与其它所租赁的生产者系统比较更少利用的生产者系统。
条款68:条款56到67的方法,其中从多个生产者系统选择生产者系统还包括选择具有比第二组生产者系统更低的负荷的第一组生产者系统之一。
条款69:条款68的方法,其中所选择的生产者系统不与最低负荷相关,从而减小负荷振荡的出现的频率。
条款70:一种用于从多个生产者系统选择生产者系统以提供对服务的访问的系统,系统包括:
多个租赁代理的第一租赁代理,第一租赁代理包括配置成实现状态模块和租赁系统的一个或多个处理器;
状态模块配置成:
接收多个生产者系统的第一生产者系统的状态信息,来自多个生产者系统的单独生产者系统与选择权重相关;以及
至少部分地基于所接收的状态信息来修改与第一生产者系统相关的选择权重;以及租赁系统配置成:
接收访问多个生产者系统之一的请求;以及
至少部分地基于与多个生产者系统的单独生产者系统相关的相应选择权重来从多个生产者系统选择生产者系统,包括第一生产者系统,以服务于请求。
条款71:条款70的系统,其中状态信息在第一租赁代理处由租赁系统接收,以及其中租赁系统还配置成向状态模块提供状态信息。
条款72:条款70到71的系统,其中状态模块还配置成:
确定第一生产者系统是否被分配到第一租赁代理;以及
响应于确定第一生产者未被分配到第一租赁代理,状态模块还配置成:
识别被分配到第一生产者的第二租赁代理;以及
向第二租赁代理提供所接收的状态信息。
条款73:条款70到72的系统,其中状态模块还配置成:
确定所修改的选择权重是否满足移除阈值;以及
响应于所修改的选择权重满足移除阈值而使第一生产者系统与多个生产者系统无关联。
条款74:条款73的系统,其中第一租赁代理还包括划分系统,其配置成响应于多个生产者系统与满足减小阈值的多个生产者系统无关而在多个租赁代理当中重新划分多个生产者系统。
条款75:条款70到74的系统,其中租赁系统还配置成向提供对访问多个生产者系统之一的请求的消费者系统提供生产者系统的身份。
条款76:条款70到75的系统,其中所选择的生产者系统包括第一生产者系统。
条款77:一种包括计算机可执行指令的非临时物理计算机存储器,可执行指令当在一个或多个处理器中实现时引导计算系统从多个生产者系统选择生产者系统以通过至少下列操作来提供对服务的访问:
响应于在第一租赁代理处针对多个生产者系统的第一生产者系统接收到状态信息,确定第一生产者是否是生产者系统的第一子集的成员,生产者系统的第一子集与第一租赁代理相关,其中来自多个生产者系统的单独生产者系统与选择权重相关,多个生产者系统划分成生产者系统的多个子集;
响应于确定第一生产者系统是生产者系统的第一子集的成员,修改与第一生产者系统相关的选择权重;以及
响应于接收到访问生产者系统的请求,至少部分地基于与来自生产者系统的子集的生产者系统相关的选择权重来从生产者系统的第一子集选择第二生产者系统以服务于请求的提供者。
条款78:条款77的非临时物理计算机存储器,其中第二生产者系统和第一生产者系统是相同的。
条款79:条款77到78的非临时物理计算机存储器,其中响应于确定第一生产者系统不是生产者系统的第一子集的成员,该方法还包括:
识别包括第一生产者系统的生产者系统的第二子集;
识别与生产者系统的第二子集相关的第二租赁代理;以及
向第二租赁代理提供状态信息。
条款80:一种访问由在覆盖网络中的生产者虚拟机提供的服务的方法,该方法包括:
通过包括一个或多个处理器的消费者系统主机,消费者系统主机配置成托管一个或多个消费者虚拟机,其中至少一个消费者虚拟机与第一覆盖网络相关;
从消费者虚拟机接收访问在生产者系统处的服务的请求,消费者虚拟机由消费者系统主机托管,其中请求包括内部标头,内部标头包括与消费者虚拟机相关的消费者虚拟机地址和目标虚拟地址;
访问与消费者虚拟机相关的租赁池,租赁池包括代表消费者虚拟机租赁的一组所租赁的生产者虚拟机;
从租赁池选择所租赁的生产者虚拟机,从其访问服务;
用与所租赁的生产者虚拟机相关的生产者虚拟机地址代替在内部标头中的目标虚拟地址;
识别与所租赁的生产者虚拟机相关的生产者系统主机,生产者系统主机配置成托管一个或多个生产者虚拟机,其中至少一个生产者虚拟机与第一覆盖网络相关;
用包括与生产者系统主机相关的生产者系统主机地址和与消费者系统主机相关的消费者系统主机地址的外部标头封装请求;以及
经由网络向生产者系统主机提供请求,从而使生产者系统主机能够处理请求。
条款81:条款80的方法,其中选择所租赁的生产者虚拟机包括:
确定租赁池是否包括至少一个可用的所租赁的生产者虚拟机;以及
响应于确定租赁池包括至少一个可用的所租赁的生产者虚拟机,选择可用的所租赁的生产者虚拟机之一并从租赁池移除选择的可用的所租赁的生产者虚拟机。
条款82:条款81的方法,其中响应于确定租赁池不包括可用的所租赁的生产者虚拟机,该方法还包括:
代表消费者虚拟机得到对包括在第一覆盖网络中的一组生产者虚拟机的租赁;
发起与来自这组所租赁的生产者虚拟机的单独生产者虚拟机的连接;以及
对于单独成功建立的连接,将相应的生产者虚拟机添加到租赁池,
其中选择所租赁的生产者虚拟机还包括选择被添加到租赁池的生产者虚拟机之一以及从租赁池移除所选择的生产者虚拟机。
条款83:条款82的方法,其中得到对这组生产者虚拟机的租赁包括:
针对消费者虚拟机产生得到被包括在第一覆盖网络中的生产者虚拟机的租赁的请求;
向一组租赁代理提供该请求以得到生产者虚拟机的租赁;以及
对于在这组租赁代理中的至少一些租赁代理,接收生产者虚拟机的租赁信息,从而使与生产者虚拟机的连接能够被发起。
条款84:条款83的方法,其中这组租赁代理包括在网络中的租赁代理的子集。
条款85:条款80到84的方法,其还包括:
从生产者系统主机接收对服务请求的响应;
通过移除响应的外部标头来解除封装服务响应以得到对响应的内部标头的访问;
基于响应的内部标头来确定接收者消费者虚拟机,接收者消费者虚拟机是由消费者系统主机托管的消费者虚拟机之一;以及
向接收者消费者虚拟机提供解除封装的服务响应。
条款86:条款85的方法,其中接收者消费者虚拟机和消费者虚拟机是相同的。
条款87:条款85到86的方法,其还包括:
基于响应的内部标头识别与源生产者虚拟机相关的源虚拟地址,源生产者虚拟机与响应相关;以及
用源虚拟机地址代替包括在内部标头中的与源生产者虚拟机相关的地址。
条款88:条款87的方法,其中源生产者虚拟机对应于选定所租赁的生产者虚拟机,源虚拟地址对应于目标虚拟地址,以及接收者消费者虚拟机对应于消费者虚拟机。
条款89:条款80到88的方法,其中至少一个消费者虚拟机与第二覆盖网络相关。
条款90:条款80到89的方法,其中至少一个生产者虚拟机与第二覆盖网络相关。
条款91:条款80到90的方法,其还包括:
接收第二请求以访问服务;
确定所租赁的生产者虚拟机的负荷是否满足负荷阈值;以及
响应于确定所租赁的生产者虚拟机的负荷满足负荷阈值:
从租赁池选择第二所租赁的生产者虚拟机,从其访问服务;以及
向托管第二所租赁的生产者虚拟机的第二生产者系统主机提供第二请求。
条款92:条款91的方法,其中响应于确定所租赁的生产者虚拟机的负荷满足负荷阈值,该方法还包括终止到所租赁的生产者虚拟机的连接。
条款93:一种用于访问由在覆盖网络中的生产者提供的服务的系统,该系统包括:
消费者系统主机,其包括一个或多个处理器,消费者系统主机配置成托管一个或多个消费者,消费者系统主机包括:
映射存储库,其配置成存储生产者到生产者系统主机的映射;以及
覆盖网络代理,其配置成:
从由消费者系统主机托管的消费者接收访问在生产者处的服务的请求;
选择所租赁的生产者,从其访问服务,所租赁的生产者代表消费者被租赁;
访问映射存储库以识别与所租赁的生产者相关的生产者系统主机,生产者系统主机配置成托管一个或多个生产者;以及
将请求发送到生产者系统主机。
条款94:条款93的系统,其中:
映射存储库还配置成存储与消费者相关的租赁池,租赁池包括代表消费者租赁的一组所租赁的生产者;以及
覆盖网络代理还配置成:
确定租赁池是否包括至少一个可用的所租赁的生产者;以及
响应于确定租赁池包括至少一个可用的所租赁的生产者而从可用的所租赁的生产者选择所租赁的生产者,从其访问服务。
条款95:条款94的系统,其中响应于确定租赁池不包括至少一个可用的所租赁的生产者,覆盖网络代理还配置成:
为消费者产生得到对生产者的租赁的请求;
向一组租赁代理提供该请求以得到对生产者的租赁;以及
对于在这组租赁代理中的至少一些租赁代理,接收生产者的租赁信息。
条款96:条款95的系统,其中映射存储库还配置成将租赁信息存储在与消费者相关的租赁池中。
条款97:条款93到95的系统,其中覆盖网络代理还配置成:
从生产者主机系统接收对请求的响应;
基于响应的内部标头来确定接收者消费者,接收者消费者包括消费者;以及
向消费者提供响应。
条款98:条款97的系统,其中覆盖网络代理还配置成:
识别与所租赁的生产者相关的源虚拟地址;以及
在向消费者提供响应之前用源虚拟地址代替包括在内部标头中的与所租赁的生产者相关的地址。
条款99:条款93到97的系统,其中覆盖网络代理还配置成用包括与生产者系统主机相关的生产者系统主机地址和与消费者系统主机相关的消费者系统主机地址的外部标头封装请求。
条款100:一种包括计算机可执行指令的非临时物理计算机存储器,可执行指令在一个或多个处理器中执行时指示计算系统通过至少下列操作来访问由在覆盖网络中的生产者虚拟机提供的服务:
响应于从由消费者系统主机托管的消费者虚拟机接收访问在生产者系统处的服务的请求,该请求包括目标虚拟地址,从与消费者虚拟机相关的租赁池选择所租赁的生产者虚拟机,从其访问服务,租赁池包括代表消费者虚拟机租赁的生产者虚拟机的连接信息;
用与所租赁的生产者虚拟机相关的生产者虚拟机地址代替在请求的标头中的目标虚拟地址;
确定与所租赁的生产者虚拟机相关的生产者系统主机;以及
使请求被发送到生产者系统以提供到所租赁的生产者虚拟机,从而使租赁生产者虚拟机能够处理访问服务的请求。
条款101:条款100的非临时物理计算机存储器,其中从与消费者虚拟机相关的租赁池选择所租赁的生产者虚拟机包括:
确定租赁池是否包括当前不由消费者虚拟机使用的至少一个所租赁的生产者虚拟机的连接信息;以及
响应于确定租赁池不包括当前不由消费者虚拟机使用的至少一个所租赁的生产者虚拟机,计算机可执行指令还包括指示计算系统:
代表消费者虚拟机得到对被包括在覆盖网络中的一组生产者虚拟机的租赁;
发起与来自这组所租赁的生产者虚拟机的单独生产者虚拟机的连接;以及
对于成功建立的连接,将相应的生产者虚拟机的连接信息添加到租赁池。
条款102:条款101的非临时物理计算机存储器,其中从与消费者虚拟机相关的租赁池选择所租赁的生产者虚拟机还包括选择生产者虚拟机之一,其连接信息被添加到租赁池。
术语
在整个这个公开中描述了多个计算系统。这些系统的描述并不意欲限制本公开的教导或可应用性。例如,本文所述的用户系统可通常包括任何计算设备,例如桌上型计算机、膝上型计算机、视频游戏平台、电视机顶盒、电视机(例如互联网TV)、计算机化电器和无线移动设备(例如智能电话、PDA、平板计算机等),仅举几个例子。此外,本文所述的用户系统可能是不同类型的设备,以包括不同的应用或否则被不同地配置。此外,本文所述的用户系统可包括任何类型的操作系统(“OS”)。例如,本文所述的移动计算系统可实现AndroidTMOS、基于Linux或Unix的OS等。
此外,所示系统的各种部件的处理可分布在多个机器、网络和其它计算资源当中。此外,系统的两个或多个组件可组合成较少的组件。例如,被示为租赁代理102的部分的各种系统可分布在多个计算系统当中或组合成单个计算系统。此外,所示系统的各种部件可在一个或多个虚拟机中而不是在专用计算机硬件系统中实现。同样,所示数据存储库可代表物理和/或逻辑数据存储器,包括例如存储区域网络或其它分布式存储系统。而且,在一些实施方案中,在所示部件之间的连接代表数据流的可能路径,而不是在硬件之间的实际连接。虽然示出可能连接的一些例子,但是在各种实现中,所示部件的任何子集可与部件的任何其它子集通信。
根据实施方案,本文所述的任何算法、方法或过程的某些行动、事件或功能可以按不同的顺序执行,可被添加、合并或一起省略(例如不是所有所述行动或事件都对算法的实施是必要的)。而且,在某些实施方案中,行动或事件可以例如通过多线程处理、中断处理或多个处理器或处理器核心或在其它并行体系结构上同时而不是连续地被执行。
每个各种所示系统可被实现为被编程或配置成执行本文所述的各种功能的计算系统。计算系统可包括通过网络进行通信和相互操作以执行所述功能的多个不同的计算机或计算设备(例如物理服务器、工作站、存储阵列等)。每个这样的计算设备一般包括执行存储在存储器或其它非临时计算机可读存储介质中的程序指令或模块的处理器(或多个处理器)。本文公开的各种功能可体现在这样的程序指令中,虽然一些或所有所公开的功能可以可选地在计算机系统的专用电路(例如ASIC或FPGA)中实现。在计算系统包括多个计算设备的场合,这些设备可以但不需要是位于同一地点的。可通过将物理存储设备例如固态存储器芯片和/或磁盘转换成不同的状态来持久地存储所公开的方法和任务的结果。所述的每个过程可由一个或多个计算设备例如使用相关服务器代码来编程的一个或多个物理服务器实现。
本文使用的条件语言例如尤其是“可以(can)”、“可以(might)”、“可以(may)”、“例如”,除非另外特别规定或在如所使用的上下文内另外理解的,通常意欲传达某些实施方案包括,而其它实施方案不包括,某些特质、元件和/或状态。因此,这样的条件语言通常并不意欲暗示特征、元件和/或状态以任何方式对一个或多个实施方案是需要的或一个或多个实施方案必须包括用于在有或没有用户输入或提示的情况下决定这些特征、元件和/或状态是否被包括或将在任何特定的实施方案中被执行的逻辑。术语“包括(comprising)”、“包括(including)”、“具有”等是同义的且包括以开放方式被包括使用,且并不排除额外的元件、特征、行动、操作等。此外,术语“或”在其包括包括的意义上(而不是在其排他的意义上)被使用,使得当例如用于连接元件的列表时,术语“或”意指在列表中的一个、一些或所有元件。此外,冠词“a”或“an”应被解释为意指“一个或多个”或“至少一个”,除非另有规定。
除非另外特别规定,连接语言例如短语“X、Y和Z中的至少一个”否则被理解为如通常用于传达项目、项等可以是X、Y或Z的上下文。因此,这样的连接语言通常并不意欲暗示某些实施方案需要至少一个X、至少一个Y和至少一个Z来使每个存在。
虽然上面的详细描述被示出、描述并指出如应用于各种实施方案的新颖特征,但是将理解,可做出在所示设备或算法的形式和细节上的各种省略、替代和变化而不偏离本公开的精神。因此,在前述描述中没有什么意欲暗示任何特定的特征、特性、步骤、模块或块是必要的或不可缺少的。如将认识到的,本文所述的过程可体现在不提供在本文阐述的所有特征和益处的形式内,因为一些特征可与其它特征分开地被使用或实践。保护范围由所附权利要求而不是由前述描述限定。出现在权利要求的等效形式的意义和范围内的所有变化应被包括在它们的范围内。
Claims (15)
1.一种用于访问由在覆盖网络中的生产者提供的服务的系统,所述系统包括:
消费者系统主机,其包括一个或多个处理器,所述消费者系统主机配置成托管一个或多个消费者,所述消费者系统主机包括:
映射存储库,其配置成存储生产者到生产者系统主机的映射;以及
覆盖网络代理,其配置成:
从由所述消费者系统主机托管的消费者接收访问在生产者处的服务的请求;
选择所租赁的生产者,从所述所租赁的生产者访问所述服务,所述所租赁的生产者代表所述消费者被租赁;
访问所述映射存储库以识别与所述所租赁的生产者相关的生产者系统主机,所述生产者系统主机配置成托管一个或多个生产者;以及
将所述请求发送到所述生产者系统主机。
2.如权利要求1所述的系统,其中:
所述映射存储库还配置成存储与所述消费者相关的租赁池,所述租赁池包括代表所述消费者租赁的一组所租赁的生产者;以及
所述覆盖网络代理还配置成:
确定所述租赁池是否包括至少一个可用的所租赁的生产者;以及
响应于确定所述租赁池包括至少一个可用的所租赁的生产者而从所述可用的所租赁的生产者选择所述所租赁的生产者,从所述所租赁的生产者访问所述服务;以及
响应于确定所述租赁池不包括至少一个可用的所租赁的生产者,所述覆盖网络代理还配置成:
为所述消费者产生得到对生产者的租赁的请求;
向一组租赁代理提供所述请求以得到对生产者的所述租赁;以及
对于在所述组租赁代理中的所述租赁代理中的至少一些,接收生产者的租赁信息。
3.如权利要求2所述的系统,其中所述映射存储库还配置成将所述租赁信息存储在与所述消费者相关的所述租赁池中。
4.如权利要求1所述的系统,其中所述覆盖网络代理还配置成:
从所述生产者主机系统接收对所述请求的响应;
基于所述响应的内部标头来确定接收者消费者,所述接收者消费者包括所述消费者;
向所述消费者提供所述响应;
识别与所述所租赁的生产者相关的源虚拟地址;以及
在向所述消费者提供所述响应之前,用所述源虚拟地址代替包括在所述内部标头中的与所述所租赁的生产者相关的地址。
5.如权利要求1所述的系统,其中所述覆盖网络代理还配置成用包括与所述生产者系统主机相关的生产者系统主机地址和与所述消费者系统主机相关的消费者系统主机地址的外部标头封装所述请求。
6.一种包括计算机可执行指令的非临时物理计算机存储器,所述计算机可执行指令在一个或多个处理器中执行时指示计算系统通过至少下列操作来访问由在覆盖网络中的生产者虚拟机提供的服务:
响应于从由消费者系统主机托管的消费者虚拟机接收访问在生产者系统处的服务的请求,所述请求包括目标虚拟地址,从与所述消费者虚拟机相关的租赁池选择所租赁的生产者虚拟机,从所述所租赁的生产者虚拟机访问所述服务,所述租赁池包括代表所述消费者虚拟机租赁的生产者虚拟机的连接信息;
用与所述所租赁的生产者虚拟机相关的生产者虚拟机地址代替在所述请求的标头中的所述目标虚拟地址;
确定与所述所租赁的生产者虚拟机相关的生产者系统主机;以及
使所述请求被发送到所述生产者系统主机以提供到所述所租赁的生产者虚拟机,从而使所述租赁生产者虚拟机能够处理访问所述服务的所述请求。
7.如权利要求6所述的非临时物理计算机存储器,其中从与所述消费者虚拟机相关的所述租赁池选择所述所租赁的生产者虚拟机包括:
确定所述租赁池是否包括当前不由所述消费者虚拟机使用的至少一个所租赁的生产者虚拟机的连接信息;以及
响应于确定所述租赁池不包括当前不由所述消费者虚拟机使用的至少一个所租赁的生产者虚拟机,所述计算机可执行指令还包括指示所述计算系统:
代表所述消费者虚拟机得到对被包括在覆盖网络中的一组生产者虚拟机的租赁;
发起与来自所述组所租赁的生产者虚拟机的单独生产者虚拟机的连接;以及
对于成功建立的连接,将相应的生产者虚拟机的连接信息添加到所述租赁池。
8.一种访问由在覆盖网络中的生产者虚拟机提供的服务的方法,所述方法包括:
通过包括一个或多个处理器的消费者系统主机,所述消费者系统主机配置成托管一个或多个消费者虚拟机,其中所述消费者虚拟机中的至少一个与第一覆盖网络相关:
从消费者虚拟机接收访问在生产者系统处的服务的请求,所述消费者虚拟机由所述消费者系统主机托管,其中所述请求包括内部标头,所述内部标头包括与所述消费者虚拟机相关的消费者虚拟机地址和目标虚拟地址;
访问与所述消费者虚拟机相关的租赁池,所述租赁池包括代表所述消费者虚拟机租赁的一组所租赁的生产者虚拟机;
从所述租赁池选择所租赁的生产者虚拟机,从所述所租赁的生产者虚拟机访问所述服务;
用与所述所租赁的生产者虚拟机相关的生产者虚拟机地址代替在所述内部标头中的所述目标虚拟地址;
识别与所述所租赁的生产者虚拟机相关的生产者系统主机,所述生产者系统主机配置成托管一个或多个生产者虚拟机,其中所述生产者虚拟机中的至少一个与所述第一覆盖网络相关;
用包括与所述生产者系统主机相关的生产者系统主机地址和与所述消费者系统主机相关的消费者系统主机地址的外部标头封装所述请求;以及
经由网络向所述生产者系统主机提供所述请求,从而使所述生产者系统主机能够处理所述请求。
9.如权利要求8所述的方法,其中选择所述所租赁的生产者虚拟机包括:
确定所述租赁池是否包括至少一个可用的所租赁的生产者虚拟机;
响应于确定所述租赁池包括至少一个可用的所租赁的生产者虚拟机,选择所述可用的所租赁的生产者虚拟机之一并从所述租赁池移除所述选择的可用的所租赁的生产者虚拟机;
响应于确定所述租赁池不包括可用的所租赁的生产者虚拟机,所述方法还包括:
代表所述消费者虚拟机得到对包括在所述第一覆盖网络中的一组生产者虚拟机的租赁;
发起与来自所述组所租赁的生产者虚拟机的单独生产者虚拟机的连接;以及
对于单独成功建立的连接,将相应的生产者虚拟机添加到所述租赁池,
其中选择所述所租赁的生产者虚拟机还包括选择被添加到所述租赁池的所述生产者虚拟机之一以及从所述租赁池移除所述所选择的生产者虚拟机,以及
其中得到对所述组生产者虚拟机的租赁包括:
为所述消费者虚拟机产生得到被包括在所述第一覆盖网络中的生产者虚拟机的租赁的请求;
向一组租赁代理提供所述请求以得到对生产者虚拟机的所述租赁;以及
对于在所述组租赁代理中的所述租赁代理中的至少一些,接收生产者虚拟机的租赁信息,从而使与所述生产者虚拟机的连接能够被发起。
10.如权利要求8所述的方法,其还包括:
从所述生产者系统主机接收对服务请求的响应;
通过移除所述响应的外部标头来解除封装所述服务响应以得到对所述响应的内部标头的访问;
基于所述响应的所述内部标头来确定接收者消费者虚拟机,所述接收者消费者虚拟机是由所述消费者系统主机托管的所述消费者虚拟机之一;
向所述接收者消费者虚拟机提供所述解除封装的服务响应;
基于所述响应的所述内部标头识别与源生产者虚拟机相关的源虚拟地址,所述源生产者虚拟机与所述响应相关;以及
用所述源虚拟机地址代替包括在所述内部标头中的与所述源生产者虚拟机相关的地址。
11.如权利要求10所述的方法,其中所述源生产者虚拟机对应于所述选定所租赁的生产者虚拟机,所述源虚拟地址对应于所述目标虚拟地址,以及所述接收者消费者虚拟机对应于所述消费者虚拟机。
12.如权利要求8所述的方法,其中所述消费者虚拟机中的至少一个与第二覆盖网络相关。
13.如权利要求8所述的方法,其中所述生产者虚拟机中的至少一个与第二覆盖网络相关。
14.如权利要求8所述的方法,其还包括:
接收第二请求以访问所述服务;
确定所述所租赁的生产者虚拟机的负荷是否满足负荷阈值;以及
响应于确定所述所租赁的生产者虚拟机的所述负荷满足所述负荷阈值:
从所述租赁池选择第二所租赁的生产者虚拟机,从所述第二所租赁的生产者虚拟机访问所述服务;以及
向托管所述第二所租赁的生产者虚拟机的第二生产者系统主机提供所述第二请求。
15.如权利要求14所述的方法,其中响应于确定所述所租赁的生产者虚拟机的所述负荷满足所述负荷阈值,所述方法还包括终止到所述所租赁的生产者虚拟机的连接。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/927,929 | 2013-06-26 | ||
US13/927,892 US9350801B2 (en) | 2013-06-26 | 2013-06-26 | Managing client access to a plurality of computing systems |
US13/927,929 US9369518B2 (en) | 2013-06-26 | 2013-06-26 | Producer system partitioning among leasing agent systems |
US13/927,892 | 2013-06-26 | ||
US13/927,933 US9843631B2 (en) | 2013-06-26 | 2013-06-26 | Producer system selection |
US13/927,933 | 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,995 | 2013-06-26 | ||
PCT/US2014/043946 WO2014210058A2 (en) | 2013-06-26 | 2014-06-24 | Producer system partitioning among leasing agent systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105612539A true CN105612539A (zh) | 2016-05-25 |
CN105612539B CN105612539B (zh) | 2020-05-05 |
Family
ID=51212983
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480045484.XA Active CN105593820B (zh) | 2013-06-26 | 2014-06-24 | 在租赁代理系统当中的生产者系统划分 |
CN201480036547.5A Active CN105556472B (zh) | 2013-06-26 | 2014-06-24 | 管理对多个计算系统的客户端访问 |
CN201480045521.7A Active CN105612539B (zh) | 2013-06-26 | 2014-06-24 | 在租赁代理系统当中的生产者系统划分 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480045484.XA Active CN105593820B (zh) | 2013-06-26 | 2014-06-24 | 在租赁代理系统当中的生产者系统划分 |
CN201480036547.5A Active CN105556472B (zh) | 2013-06-26 | 2014-06-24 | 管理对多个计算系统的客户端访问 |
Country Status (5)
Country | Link |
---|---|
EP (3) | EP3014441A2 (zh) |
JP (3) | JP6243528B2 (zh) |
CN (3) | CN105593820B (zh) |
CA (3) | CA2916265C (zh) |
WO (3) | WO2014210053A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9780993B2 (en) | 2013-06-26 | 2017-10-03 | Amazon Technologies, Inc. | Producer computing system leasing on behalf of consumer computing system |
US9350801B2 (en) | 2013-06-26 | 2016-05-24 | Amazon Technologies, Inc. | Managing client access to a plurality of computing systems |
US9843631B2 (en) | 2013-06-26 | 2017-12-12 | Amazon Technologies, Inc. | Producer system selection |
US9369518B2 (en) | 2013-06-26 | 2016-06-14 | Amazon Technologies, Inc. | Producer system partitioning among leasing agent systems |
US10592064B2 (en) | 2013-09-17 | 2020-03-17 | Amazon Technologies, Inc. | Approaches for three-dimensional object display used in content navigation |
US20230071047A1 (en) * | 2021-09-08 | 2023-03-09 | Microstrategy Incorporated | Systems and methods for virtual machine resource distribution |
WO2024069846A1 (ja) * | 2022-09-29 | 2024-04-04 | 楽天モバイル株式会社 | 仮想化ネットワーク機能のためのリソース割り当ての動的な変更 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110296022A1 (en) * | 2010-05-28 | 2011-12-01 | James Michael Ferris | Systems and methods for cross-vendor mapping service in cloud networks |
CN102955456A (zh) * | 2011-08-26 | 2013-03-06 | 北京安翔动力科技有限公司 | 一种基于总线通讯的小型无人飞行器控制系统 |
CN103049245A (zh) * | 2012-10-25 | 2013-04-17 | 浪潮电子信息产业股份有限公司 | 一种基于cpu多核平台的软件性能优化方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9508283D0 (en) * | 1995-02-07 | 1995-06-14 | British Telecomm | Information services provision and management |
US6965974B1 (en) * | 1997-11-14 | 2005-11-15 | Agere Systems Inc. | Dynamic partitioning of memory banks among multiple agents |
JP3711866B2 (ja) * | 2000-04-10 | 2005-11-02 | 日本電気株式会社 | プラグアンドプレイ機能を有するフレームワークおよびその再構成方法 |
JP2006235837A (ja) * | 2005-02-23 | 2006-09-07 | Nec Corp | 負荷分散システム、負荷分散装置管理サーバ、負荷分散装置の切り替え方法及びプログラム |
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 |
JP2012234236A (ja) * | 2011-04-28 | 2012-11-29 | Hitachi Ltd | 負荷分散システム |
US9137304B2 (en) * | 2011-05-25 | 2015-09-15 | Alcatel Lucent | Method and apparatus for achieving data security in a distributed cloud computing environment |
US9369426B2 (en) * | 2011-08-17 | 2016-06-14 | Nicira, Inc. | Distributed logical L3 routing |
CN103870580A (zh) * | 2014-03-24 | 2014-06-18 | 深圳市众鸿科技股份有限公司 | 一种基于对象的动态属性云管理平台及系统 |
-
2014
- 2014-06-24 EP EP14742044.2A patent/EP3014441A2/en not_active Ceased
- 2014-06-24 JP JP2016523862A patent/JP6243528B2/ja active Active
- 2014-06-24 EP EP14742046.7A patent/EP3014537A2/en not_active Ceased
- 2014-06-24 JP JP2016523859A patent/JP6165978B2/ja active Active
- 2014-06-24 CA CA2916265A patent/CA2916265C/en active Active
- 2014-06-24 WO PCT/US2014/043939 patent/WO2014210053A2/en active Application Filing
- 2014-06-24 JP JP2016521906A patent/JP6200080B2/ja active Active
- 2014-06-24 CA CA2916261A patent/CA2916261C/en active Active
- 2014-06-24 CN CN201480045484.XA patent/CN105593820B/zh active Active
- 2014-06-24 CN CN201480036547.5A patent/CN105556472B/zh active Active
- 2014-06-24 CN CN201480045521.7A patent/CN105612539B/zh active Active
- 2014-06-24 EP EP14742045.9A patent/EP3014442A2/en not_active Ceased
- 2014-06-24 WO PCT/US2014/043941 patent/WO2014210054A2/en active Application Filing
- 2014-06-24 CA CA2916258A patent/CA2916258C/en active Active
- 2014-06-24 WO PCT/US2014/043946 patent/WO2014210058A2/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110296022A1 (en) * | 2010-05-28 | 2011-12-01 | James Michael Ferris | Systems and methods for cross-vendor mapping service in cloud networks |
CN102955456A (zh) * | 2011-08-26 | 2013-03-06 | 北京安翔动力科技有限公司 | 一种基于总线通讯的小型无人飞行器控制系统 |
CN103049245A (zh) * | 2012-10-25 | 2013-04-17 | 浪潮电子信息产业股份有限公司 | 一种基于cpu多核平台的软件性能优化方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
CN111386542A (zh) * | 2017-11-27 | 2020-07-07 | 北京嘀嘀无限科技发展有限公司 | 用于分配按需服务请求的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CA2916258A1 (en) | 2014-12-31 |
JP2016526723A (ja) | 2016-09-05 |
CA2916258C (en) | 2019-01-29 |
JP6200080B2 (ja) | 2017-09-20 |
CN105612539B (zh) | 2020-05-05 |
CA2916261A1 (en) | 2014-12-31 |
CN105593820A (zh) | 2016-05-18 |
CN105556472B (zh) | 2019-07-26 |
WO2014210054A2 (en) | 2014-12-31 |
WO2014210054A3 (en) | 2015-02-26 |
WO2014210053A2 (en) | 2014-12-31 |
JP6165978B2 (ja) | 2017-07-19 |
JP6243528B2 (ja) | 2017-12-06 |
EP3014537A2 (en) | 2016-05-04 |
JP2016527623A (ja) | 2016-09-08 |
JP2016527780A (ja) | 2016-09-08 |
CA2916265A1 (en) | 2014-12-31 |
WO2014210058A2 (en) | 2014-12-31 |
CA2916265C (en) | 2018-04-10 |
CA2916261C (en) | 2018-04-10 |
WO2014210058A3 (en) | 2015-02-26 |
WO2014210053A3 (en) | 2015-02-26 |
EP3014442A2 (en) | 2016-05-04 |
EP3014441A2 (en) | 2016-05-04 |
CN105556472A (zh) | 2016-05-04 |
CN105593820B (zh) | 2019-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105612539A (zh) | 在租赁代理系统当中的生产者系统划分 | |
JP7304118B2 (ja) | 自己監視ブロックチェーンのための安全な合意に基づくエンドースメント | |
US11108856B2 (en) | Methods and apparatus for performing distributed computing using blockchain | |
US10970757B2 (en) | Organizing data in a virtual computing infrastructure | |
CN104011701A (zh) | 内容传送网络 | |
JP2021520539A (ja) | ブロックチェーンを管理するためのコンピューティング・システム、方法、およびコンピュータ・プログラム | |
CN103516777A (zh) | 用于在云计算机环境中进行供应的方法和系统 | |
CN107079060A (zh) | 用于运营商级nat优化的系统和方法 | |
JP2008533564A (ja) | データ管理のための方法および装置 | |
WO2015167713A1 (en) | System and method for supporting a bypass-domain model and a proxy model and updating service information for across-domain messaging in a transactional middleware machine environment | |
CN101128827A (zh) | 用于交换网络中分布式数据管理的方法和装置 | |
Fuerst et al. | Virtual network embedding with collocation: Benefits and limitations of pre-clustering | |
CN114143090B (zh) | 基于网络安全架构的防火墙部署方法、装置、设备及介质 | |
CN107770170A (zh) | 一种数据共享平台系统 | |
US20200183586A1 (en) | Apparatus and method for maintaining data on block-based distributed data storage system | |
KR20220147613A (ko) | 멀티-테넌트 서버리스 환경들을 위한 멀티-레벨 캐시-메시-시스템 | |
Guo et al. | Improving transaction succeed ratio in payment channel networks via enhanced node connectivity and balanced channel capacity | |
US20220360646A1 (en) | Apparatus and method to perform synchronization services in a switch | |
Kumar et al. | Blockchain-Based Efficient Resource Allocation and Minimum Energy Utilization in Cloud Computing Using SMO | |
CN116976543A (zh) | 一种基于区块链技术的电力数据管理平台系统及设计方法 | |
Dharmadhikari et al. | SDAC-SECURE DATA STORAGE AND POSITION BASED ACCESS CONTROL IN CLOUD USING KEY SHARING SYSTEM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |