CN104067261B - 向有多承租人能力的服务供应承租人的方法和系统 - Google Patents

向有多承租人能力的服务供应承租人的方法和系统 Download PDF

Info

Publication number
CN104067261B
CN104067261B CN201380006023.7A CN201380006023A CN104067261B CN 104067261 B CN104067261 B CN 104067261B CN 201380006023 A CN201380006023 A CN 201380006023A CN 104067261 B CN104067261 B CN 104067261B
Authority
CN
China
Prior art keywords
data center
service
tenant
supply
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201380006023.7A
Other languages
English (en)
Other versions
CN104067261A (zh
Inventor
潘迪塔拉德亚 N·D·P·斯里帕蒂
M·霍斯特曼
G·纳伽拉加
C·F·瓦斯特斯
D·沃滕代克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN104067261A publication Critical patent/CN104067261A/zh
Application granted granted Critical
Publication of CN104067261B publication Critical patent/CN104067261B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F9/5072Grid computing
    • 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/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17362Indirect interconnection networks hierarchical topologies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及用于在多承租体系结构中使用该体系结构中的单个供应主机和该体系结构中每一数据中心中的数据中心供应者来实现承租人供应系统的方法、系统和计算机程序产品。供应主机接收供应服务的承租人的用户请求,并将这样的请求路由到合适的数据中心供应者。多承租体系结构中的每一服务实现公共接口,借此相应的数据中心供应者可从部署在数据中心中的每一不同服务获取通用负载指示,由此便于选择在其上供应承租人的缩放单元。公共接口还使得服务能够通过向供应主机注册端点地址来向供应主机动态注册(即,在不重新部署承租人供应系统的情况下)为多承租服务。

Description

向有多承租人能力的服务供应承租人的方法和系统
技术领域
本申请涉及服务托管与供应。
背景
1.背景和相关技术
计算机系统及相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已转变了人们生活和工作的方式。现在,计算机系统通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排、帐目管理等)。最近,计算机系统彼此耦合并耦合到其他电子设备以形成计算机系统及其他电子设备可在其上传输电子数据的有线和无线计算机网络。因此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的计算环境中。
计算系统的云被越来越多地用来存储数据和托管服务。云是互连计算资源的网络,其中用于执行服务的实际硬件从服务中抽象出。在这样的云中,服务通常被配置成有多承租人能力。多承租人服务是服务于多个顾客(或承租人)的服务。在多承租人服务中,每一承租人的数据以及与服务的通信与其它承租人的数据和通信划分开。在这个意义上,对每一承租人看上去该承租人拥有该多承租人服务。
许多类型的服务被实现为多承租人服务,包括数据库服务、高速缓存服务、服务总线服务、复合应用、工作流服务等。本质上,许多顾客想要访问的任何服务可作为多承租人服务供应。
一个常见的多承租体系结构100在图1中描绘。在该常见体系结构中,供应主机101担当到多承租体系结构100的网关。供应主机101从想要在体系结构100内供应多承租服务的顾客接收请求。顾客请求可指定服务类型、服务的预测负载、和服务的所需地理位置等。
基于该信息,供应主机101确定要将顾客请求路由到哪个数据中心。例如, 数据中心102a可位于美国西南部,而数据中心102b可位于美国东部。如果顾客位于加州,且其对所请求的服务的使用的大部分将来自位于加州的客户计算机,则顾客请求可被路由到数据中心102a,因为它在地理上更靠近该顾客。
在多承租体系结构100中,每一数据中心包含缩放单元。例如,数据中心102a包括缩放单元103a-103n,而数据中心102b包括缩放单元104a-104n。一缩放单元托管一服务。数据中心一般包括各自托管同一服务的多组缩放单元。例如,数据中心可包括各自托管高速缓存的八个缩放单元、各自托管服务总线服务的四个缩放单元等等。
在本说明书中,缩放单元上的服务被称为服务实例(或服务的实例)以在其它缩放单元上的同一服务的其它实例之间进行区分。例如,如果缩放单元103a和103b均托管高速缓存服务,则每一高速缓存服务可被称为高速缓存服务实例。
这些缩放单元包括数据中心内的服务的逻辑分组。例如,数据中心102a中的缩放单元103a可包括多承租高速缓存的逻辑分组。每一缩放单元与其它缩放单元隔开(即,一个缩放单元可被部署或移除而不影响另一缩放单元)。
在多承租体系结构100中,每一缩放单元包括每缩放单元供应者。每一个每缩放单元供应者负责与供应主机101对接以接收为缩放单元所托管的服务供应承租人、以及在缩放单元内分配资源以供应承租人的请求。存在可只要向任何类型服务供应承租人就被执行的一组通用操作。例如,每当向服务供应承租人时,一个或多个DNS记录被创建。每缩放单元供应者负责执行这些操作。此外,存在对每一类型的服务特有的其它操作,当承租人被供应时每缩放单元供应者也执行这些操作。
因此,供应主机101必须与每一数据中心中的多个不同每缩放单元供应者通信,且每缩放单元供应者每当承租人被供应给缩放单元托管的服务时就必须执行多个操作。
除了基于地理位置供应承租人,承租人可基于负载平衡考虑来被供应。例如,一旦一数据中心被选择为特定服务托管承租人,该数据中心内的特定缩放单元可被选择。哪个缩放单元被选择可基于提供所需服务的数据中心中的每一缩放单元的相应负载。
在多承租体系结构100中,执行这一负载平衡需要供应主机101内的额外开销。具体地,因为供应主机101负有向特定缩放单元供应承租人的任务,供应主机101必须理解用于为多承租人服务的各个类型中的每一类型确定负载平衡的不同准则。例如,在高速缓存缩放单元之中确定各自的负载可要求评估与用于在服务总线服务缩放单元之中确定各自的负载的非常不同的准则。
发明内容
本发明涉及用于在多承租体系结构中使用该体系结构中的单个供应主机和该体系结构中每一数据中心中的数据中心供应者来实现承租人供应系统的方法、系统和计算机程序产品。供应主机接收供应服务的承租人的用户请求,并将这样的请求路由到合适的数据中心供应者。
多承租体系结构中的每一服务实现公共接口,借此相应的数据中心供应者可从部署在数据中心中的每一不同服务获取通用负载指示,由此便于选择在其上供应承租人的缩放单元。公共接口还使得服务能够通过向供应主机注册端点地址来向供应主机动态注册(即,在不重新部署承租人供应系统的情况下)为多承租服务。
在一个实施例中,在供应主机处接收到请求。请求是从用户接收的,并请求为在一地理位置处的该用户供应服务的承租人。供应主机选择该地理位置中的数据中心。供应主机向所选数据中心处的数据中心供应者发送供应请求。供应请求标识应向其供应承租人的服务的类型。
数据中心供应者确定该数据中心中的哪些缩放单元托管该服务。数据中心供应者向所确定的缩放单元的每一个上的服务实例发送请求,请求每一缩放单元上的负载。请求是经由多承租环境中的每一服务实现的公共接口来做出的。数据中心供应者基于每一缩放单元上的负载选择服务实例之一来托管该承租人。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的附加特征和优点将在以下描述中叙述,并且其一部分根据本描述 将是显而易见的,或者可通过对本发明的实践来获知。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的这些以及其它特征、优点和特征将根据以下描述和所附权利要求而变得更显而易见,或者可通过如此后阐述的对本发明的实践而获知。
附图说明
为了描述可获得本发明的上述和其他优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图仅描述本发明的典型实施例,从而不被认为是对其范围的限制,本发明将通过使用附图用附加特征和细节来描述和说明,在附图中:
图1示出了现有技术多承租体系结构;
图2示出了其中本发明的承租人供应系统可被实现的示例性多承租体系结构;
图3示出了示例性承租人供应请求;
图4示出了向服务供应承租人期间的示例性数据流;以及
图5示出了在多承租环境内向服务供应承租人的示例方法的流程图。
具体实施方式
本发明涉及用于在多承租体系结构中使用该体系结构中的单个供应主机和该体系结构中每一数据中心中的数据中心供应者来实现承租人供应系统的方法、系统和计算机程序产品。供应主机接收供应服务的承租人的用户请求,并将这样的请求路由到合适的数据中心供应者。
多承租体系结构中的每一服务实现公共接口,借此相应的数据中心供应者可从部署在数据中心中的每一不同服务获取通用负载指示,由此便于选择在其上供应承租人的缩放单元。公共接口还使得服务能够通过向供应主机注册端点地址来向供应主机动态注册(即,在不重新部署承租人供应系统的情况下)为多承租服务。
在一个实施例中,在供应主机处接收到请求。请求是从用户接收的,并请求为在一地理位置处的该用户供应服务的一承租人。供应主机选择该地理位置中的数据中心。供应主机向所选数据中心处的数据中心供应者发送供应请求。 供应请求标识应向其供应承租人的服务的类型。
数据中心供应者确定该数据中心中的哪些缩放单元托管该服务。数据中心供应者向所确定的缩放单元的每一个上的服务实例发送请求,请求每一缩放单元上的负载。请求是经由多承租环境中的每一服务实现的公共接口来做出的。数据中心供应者基于每一缩放单元上的负载选择服务实例之一来托管该承租人。
本发明的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如举例而言一个或多个处理器和系统存储器的计算机硬件,如以下更详细讨论的。本发明范围内的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是计算机存储介质(设备)。承载计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本发明的各实施例可包括至少两种明显不同种类的计算机可读介质:计算机存储介质(设备)和传输介质。
计算机存储介质(设备)包括RAM、ROM、EEPROM、CD-ROM、固态驱动器(SSD)(如基于RAM)、闪存、相变存储器(PCM)、其他类型的存储器、其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带或传输计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动传输到计算机存储介质(设备)(或反之亦然)。例如,通过网络或数据链接接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传输到计 算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质(设备)。因而,应当理解,计算机存储介质(设备)可被包括在还利用(甚至主要利用)传输介质的计算机系统组件中。
计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令例如可以是二进制代码、诸如汇编语言之类的中间格式指令或者甚至是源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。更具体而言,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
图2示出便于实现多承租环境的示例计算机体系结构200。参考图2,计算机体系结构200包括互连数据中心的云,包括数据中心210、220和230。每一数据中心通过网络彼此连接(或者是网络的一部分),网络诸如是局域网(“LAN”)、广域网(“WAN”)甚至是因特网。因此,所描绘的数据中心的每一个以及连接到数据中心的任何计算机系统都可以创建消息相关数据并通过网络交换消息相关数据(例如,网际协议(“IP”)数据报和利用IP数据报的其他更高层协议,诸如传输控制协议(“TCP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)等)。
在多承租环境200中,单个供应主机201被用于向多承租环境200的各个数据中心中的缩放单元供应承租人请求。类似地,单个项目存储202被用于存储服务和承租人信息。在图2中,供应主机201和项目存储202被示为数据中心210的一部分。
每一数据中心包括数据中心供应者和多个缩放单元。每一数据中心供应者负有向各个数据中心内的缩放单元上的服务供应承租人的任务。每一缩放单元包括隔离逻辑单元,用于托管特定类型的多承租人服务。例如,数据中心可包括用于托管高速缓存服务的承租人的五个缩放单元、用于托管服务总线服务的承租人的两个缩放单元、用于托管工作流服务的承租人的八个缩放单元等等。
例如,如图2中所示,数据中心210包括数据中心供应者211和缩放单元212a-212n;数据中心220包括数据中心供应者221和缩放单元222a-222n;而数据中心230包括数据中心供应者231和缩放单元232a-232n。数据中心供应者211、221和231中的每一个与供应主机201通信以在相应的数据中心内供应承租人。
多承租环境200使得服务能够通过实现公共接口并向供应主机201注册服务的端点地址来注册成作为多承租服务被托管。在多承租环境200中,服务(即,服务的实例)被部署到缩放单元。服务的每一实例具有唯一的端点地址。因此,每一缩放单元与它所托管的服务的实例的唯一端点地址相关联。
通过要求每一服务实现公共接口,供应主机201(和如下所述的数据中心供应者)可按照类似的方式与每一注册的服务通信。每一注册的端点地址可与关于与端点相关联的服务的类型、服务位于其中的数据中心以及托管该服务的缩放单元的标识符等信息一起被存储在项目存储202中。供应主机201在向服务供应承租人时使用这一信息。关于公共接口的附加细节在以下提供。
用户可向供应主机302提交对要为该用户供应的承租人的请求。这样的请求可指定服务的类型,并有可能指定将在其中供应承租人的所需数据中心的地理位置。例如,用户可向供应主机201提交请求,以供应美国西南部中的数据中心的高速缓存服务的承租人。供应主机201可在项目存储202中创建承租人记录以存储关于承租人的信息。
在接收到请求之后,供应主机201确定请求应被路由到哪个数据中心。如果请求指定地理位置,则这可通过选择该地理位置中的数据中心来完成。如果请求不指定地理位置,则供应主机201可基于各种准则,诸如将在以下进一步描述的负载平衡,来选择数据中心。
一旦数据中心被标识,供应主机201就访问项目存储202以确定所标识的 数据中心中的缩放单元所托管的服务的实例的所有端点地址。这些端点地址和对所请求的服务的类型的指示被发送给所选数据中心处的数据中心供应者。数据中心供应者然后处理其余步骤来供应承租人。
图3示出可由供应主机201传送给多承租环境200中的任何数据中心供应者的示例性请求300。请求300包括所请求的服务的类型的指示301以及在项目存储202中注册的、所选数据中心中的每一缩放单元上的服务的端点地址的列表302。请求300表示用户对供应高速服务的承租人的请求。如请求300所示,具有端点地址地址_a、地址_b和地址_c的三个缩放单元在所选数据中心内托管高速缓存服务。
例如,如果数据中心220被选择来托管承租人,则请求300的列表302可包括数据中心220中缩放单元正在托管的高速缓存服务的每一实例的端点地址。在这一情况中,数据中心供应者221将从供应主机201接收请求300。响应于接收请求300,数据中心供应者221向其端点地址被包括在列表302中的高速缓存服务的每一实例请求负载。
这些请求可经由公共接口做出。具体地,每一服务实现的公共接口可包括获取负载函数,数据中心供应者可调用该函数以请求托管服务的特定缩放单元上的负载。获取负载函数可返回通用负载指示(例如,范围在0-10上的数字)。因此,每一服务可通过提供通用指示开来响应于获取负载请求,由此简化了数据中心供应者所执行的负载平衡判断。具体地,数据中心供应者不需要理解因服务而异的负载指示,因为每一服务提供通用负载指示。
在一些实施例中,获取负载函数可返回数据中心供应者用来选择合适的服务实例的当前负载指示。或者,获取负载函数可返回预期负载指示(即,如果承租人由该服务供应情况下的预期负载)。在一些实施例中,当前和预期负载指示两者可被返回并被数据中心供应者用来选择服务实例。
一旦每一缩放单元提供了通用负载指示,数据中心供应者就可选择要托管承租人的合适的服务的实例。换言之,数据中心供应者可选择具有最低负载的缩放单元来托管承租人。例如,参考图2和3,如果缩放单元222a、222b和222n在数据中心220中托管高速缓存服务(且分别具有端点地址地址_a、地址_b和地址_c),则数据中心供应者221可在缩放单元222a上托管的高速缓存 服务的实例指示它具有最低负载的情况下选择缩放单元222a。
一旦服务的实例被选择来托管承租人,数据中心供应者就将服务实例的端点地址发送给项目存储202以便与指示在哪里托管承租人的承租人记录一起存储。使用与以上相同的示例,数据中心供应者221可向项目存储202发送正在缩放单元222a上托管的服务实例的端点地址。
另外,数据中心供应者调用所选服务实例所实现的公共接口的获取DNS条目函数。获取DNS条目函数返回需要作为承租人供应过程的一部分被创建的CNAME映射的列表。一旦数据中心供应者获取CNAME映射,数据中心供应者就在DNS中创建相应的CNAME映射。
此时,数据中心供应者调用所选服务实例所实现的公共接口的创建函数。创建函数使所选服务实例执行任何因服务而异的供应步骤(例如,在因服务而异的承租人表内创建条目)。一旦所选服务实例结束任何因服务而异的供应步骤,所选服务实例就通知数据中心供应者。数据中心供应者然后向供应主机201报告承租人供应的完成。供应主机201于是可相应地更新项目存储202,使得承租人记录指示该承租人活动。
除了获取负载函数、获取DNS条目函数和创建函数之外,公共接口还可包括数据中心供应者可请求从服务删除承租人的删除函数、数据中心供应者可禁用承租人(例如,使得服务停止响应于对该承租人的请求)的禁用函数、数据中心供应者可启用被禁用的承租人的启用函数、以及数据中心供应者可向服务通知用户请求对与承租人相关联的配额的改变的配额改变函数。
图4示出了上述供应过程的示例性数据流。图4包括数据中心210和数据中心220,数据中心2100包括供应主机201和项目存储202,数据中心220包括数据中心供应者221、缩放单元222a-222n和DNS 223。可采用多承租环境200中的任何其它数据中心来执行同一数据流。
图4的数据流假定已向供应主机201注册了所请求的请求的多个端点地址。如上所述,每当新的服务实例被部署在缩放单元上,就向供应主机201注册该服务实例的端点地址并将其存储在项目存储202中。
在步骤1,由供应主机201从用户接收到供应特定服务类型的承租人的请求。该请求可指定应供应承租人的地理位置。或者,如果没有指定地理位置, 则供应主机201可选择合适的数据中心。在任一情况中,数据中心220被选择。在步骤2,供应主机201在项目存储202中创建承租人记录。承租人记录可指示服务的类型和要在其中供应承租人的数据中心。
在步骤3,供应主机201访问项目存储202(例如,项目存储202中注册的端点地址表)以检索在数据中心220处部署的所请求的服务的每一实例的端点地址。在步骤4,供应主机201向数据中心220发送承租人供应请求。该请求包括所请求的服务的指示以及每一标识的端点地址的列表。
在步骤5,数据中心供应者221请求如由所接收的供应请求中的端点地址所标识的所请求的服务的每一实例的负载。负载通过调用任何类型的服务所实现的公共接口的函数来被请求。在图5中,负载请求被示为前往所描绘的缩放单元的每一个,由此表示数据中心220中的每一缩放单元托管相同的服务。然而,数据中心可以且通常包括托管不同类型的服务的缩放单元。
在步骤6,每一查询的服务的实例响应于负载请求返回通用指示符。例如,每一服务实例可返回范围上的数字,诸如从0到10。在步骤7,数据中心供应者221基于部署在缩放单元222a上的服务实例所返回的负载,选择缩放单元222a来托管承租人。例如,部署在缩放单元222a上的服务实例可报告指示其负载是托管所请求的服务的缩放单元中最低的最低通用指示符。
在步骤8,数据中心供应者221向供应主机201发送所选缩放单元222a上的服务实例的端点地址。供应主机201在项目存储202中的承租人记录中存储端点地址。
在步骤9,数据中心供应者221调用由数据中心222a上的服务实例实现的公共接口的获取DNS条目。在步骤10,缩放单元222a上的服务实例返回多个CNAME映射。在步骤11,数据中心供应者221根据所接收到的CNAME映射向DNS 223注册CNAME记录。
在步骤12,数据中心供应者221调用由数据中心222a上的服务实例实现的公共接口的创建函数。最后,在步骤13,数据中心供应者221向供应主机201报告缩放单元222a上承租人供应的完成,以允许供应主机201相应地更新项目存储202中的承租人记录。
项目存储202中的承租人记录可被用于跟踪承租人供应的状态。例如,当 承租人记录一开始在步骤2中被创建时,承租人记录可包括指示供应过程已被启动的启动状态。类似地,当承租人供应已被完成时,承租人记录可包括活动状态。供应主机201可使用承租人记录的状态来发起对供应承租人的新请求。例如,如果供应请求失败,则承租人记录的状态将指示这样的失败(例如,通过保持为启动预定的时间量,或通过被设置成指示之前供应请求的失败的另一状态)。在这样的场景中,供应主机201可发起新的供应请求。
图5示出了在多承租环境内供应服务承租人的示例方法500的流程图。方法500将参考图2和3描述。
方法500包括在供应主机处从用户接收请求的动作501。请求为地理位置处的用户供应服务的承租人。例如,供应主机201可从用户接收请求在位于美国西南部的数据中心中供应高速缓存服务的承租人的请求。
方法500包括由供应主机选择该地理位置中的数据中心的动作502。例如,如果数据中心220位于美国西南部,则供应主机201可选择数据中心220。
方法500包括由供应主机向所选数据中心处的数据中心供应者发送供应请求的动作503。供应请求标识应向其供应承租人的服务的类型。例如,供应主机201可向数据中心供应者221发送请求300。请求300标识高速缓存服务作为应向其供应承租人的服务的类型。
方法500包括由数据中心供应者确定数据中心中的哪个缩放单元托管该服务的动作504。例如,数据中心供应者221可访问请求300来确定哪些缩放单元托管高速缓存服务的实例。或者,数据中心供应者221可访问在数据中心220处本地存储的表或其它数据结构以确定数据中心220中的哪些缩放单元托管高速缓存服务。
方法500包括向所确定的缩放单元的每一个上的服务实例发送对每一缩放单元上的负载的请求的动作505。请求是经由多承租环境中的每一服务实现的公共接口来做出的。例如,数据中心供应者221可使用公共接口请求每一缩放单元222a-222n上的负载,这些缩放单元托管高速缓存服务。
方法500包括基于每一缩放单元上的负载选择服务实例之一来托管该承租人的动作506。例如,数据中心供应者221可选择缩放单元222a-222n中具有最低负载的一个,来在其上供应高速缓存服务的承租人。哪个缩放单元具有 最低负载的判断可基于实际当前负载或所预测的在该承租人在该缩放单元上供应的情况下的负载。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。

Claims (13)

1.一种用于在多承租环境内供应服务的承租人的方法,所述多承租环境包括多个数据中心,每一数据中心具有各自托管一服务的多个缩放单元并且所述多个数据中心之一具有供应主机和项目存储,所述方法包括:
在所述供应主机处从用户接收请求,所述请求为地理位置处的所述用户供应服务的承租人;
由所述供应主机选择所述地理位置中的数据中心;
由所述供应主机向所选数据中心处的数据中心供应者发送供应请求,所述供应请求标识应向其供应所述承租人的服务的类型;
由数据中心供应者确定所述数据中心中的哪些缩放单元托管所述服务;
向所确定的缩放单元的每一个上的服务实例发送对每一缩放单元上的负载的请求,所述请求是经由所述多承租环境中每一服务所实现的公共接口做出的;
基于每一缩放单元上的所述负载选择所述服务实例之一来托管所述承租人;以及
向所述项目存储发送所选择的服务实例的端点地址以与承租人记录存储在一起来指示所述承租人被托管在哪里。
2.如权利要求1所述的方法,其特征在于,供应请求包括所述数据中心中的服务实例的端点地址的列表。
3.如权利要求2所述的方法,其特征在于,由所述数据中心供应者确定所述数据中心中的哪些缩放单元托管所述服务包括访问所述供应请求中的端点地址的列表。
4.如权利要求1所述的方法,其特征在于,所述公共接口使用通用指示符来表示负载,使得任何类型的每一服务使用所述通用指示符向所述数据中心供应者告知相应的缩放单元上的负载。
5.如权利要求4所述的方法,其特征在于,所述通用指示符包括范围上的数字。
6.如权利要求1所述的方法,其特征在于,基于每一缩放单元上的负载选 择服务实例之一来托管承租人包括选择具有最低负载的缩放单元上的服务实例。
7.如权利要求1所述的方法,其特征在于,还包括:
由所述数据中心供应者请求所选服务实例供应所述承租人,所述请求是经由所述公共接口做出的,使得所述数据中心供应者能使用同一公共接口请求在任何服务上供应承租人。
8.一种承租人供应系统,包括:
多个数据中心,每一数据中心包括:
数据中心供应者;以及
各自托管一服务的多个缩放单元,其中每一数据中心供应者经由公共接口与所述多个缩放单元中的每一个上的服务通信以供应所述服务的承租人,所述承租人的供应基于每一个缩放单元上的负载来选择;
其中所述数据中心之一还包括供应主机和项目存储,所述服务通过向所述供应主机提供每一服务的端点地址,向所述供应主机注册为多承租服务,
所述供应主机与所述数据中心供应者中的每一个通信以便在所述多个数据中心中的一个数据中心上路由供应承租人的请求,并且当所述供应主机接收在特定数据中心供应特定类型的服务的承租人的请求时,所述供应主机向所述特定数据中心中的数据中心供应者发送在所述特定数据中心内的缩放单元上托管的特定类型的每一服务的端点地址,并且
所述项目存储存储承租人记录来指示所述承租人被托管在所述多个数据中心中的哪一个数据中心之上。
9.如权利要求8所述的系统,其特征在于,所述公共接口包括获取负载函数,借此每一服务提供通用负载指示,且其中所述数据中心供应者对所述特定类型的每一服务调用所述获取负载函数以请求每一服务的负载。
10.如权利要求9所述的系统,其特征在于,所述通用负载指示包括范围上的数字。
11.如权利要求10所述的系统,其特征在于,所述数据中心供应者基于每一服务返回的负载选择所述服务之一来供应所述承租人。
12.如权利要求11所述的系统,其特征在于,所述服务是基于当前负 载以及所预测的、在向所述服务供应所述承租人的情况下的负载两者。
13.一种用于在多承租环境内供应服务的承租人的方法,所述多承租环境包括多个数据中心,每一数据中心具有各自托管一服务的多个缩放单元,所述方法包括:
在供应主机从用户接收请求,所述请求请求为地理位置处的所述用户供应服务的承租人;
由所述供应主机选择所述地理位置中的数据中心;
由所述供应主机标识所选数据中心中所托管的所请求的服务的服务实例的多个端点地址;
由所述供应主机向所选数据中心处的数据中心供应者发送供应请求,所述供应请求标识应向其供应所述承租人的服务的类型以及所标识的端点地址中的每一个;
由所述数据中心供应者向所述端点地址标识的每一服务实例发送对每一缩放单元上的负载的请求,所述请求是经由所述多承租环境中的每一服务实现的公共接口的获取负载函数做出的,所述获取负载函数返回通用负载指示;
基于每一缩放单元上的所述负载选择所述服务实例之一来托管所述承租人;以及
由所述数据中心供应者向所选服务实例发送请求,所述请求请求所选服务实例在所述服务上供应所述承租人,所述请求是经由所述公共接口的创建函数来做出的,借此所述数据中心供应者能请求在所述多承租环境内的任何类型的服务上供应承租人。
CN201380006023.7A 2012-01-19 2013-01-15 向有多承租人能力的服务供应承租人的方法和系统 Expired - Fee Related CN104067261B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/354,197 US9354940B2 (en) 2012-01-19 2012-01-19 Provisioning tenants to multi-tenant capable services
US13/354,197 2012-01-19
PCT/US2013/021504 WO2013109509A2 (en) 2012-01-19 2013-01-15 Provisioning tenants to multi-tenant capable services

Publications (2)

Publication Number Publication Date
CN104067261A CN104067261A (zh) 2014-09-24
CN104067261B true CN104067261B (zh) 2017-10-13

Family

ID=48798332

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380006023.7A Expired - Fee Related CN104067261B (zh) 2012-01-19 2013-01-15 向有多承租人能力的服务供应承租人的方法和系统

Country Status (4)

Country Link
US (1) US9354940B2 (zh)
EP (1) EP2805250A4 (zh)
CN (1) CN104067261B (zh)
WO (1) WO2013109509A2 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2529475A (en) 2014-08-22 2016-02-24 Ibm Tenant allocation in multi-tenant software applications technical field
US10749956B2 (en) 2015-06-08 2020-08-18 Microsoft Technology Licensing, Llc Aggregated access to storage subsystem
CN112236988B (zh) * 2018-06-06 2022-05-31 华为云计算技术有限公司 云计算中用于控制多租户缓存服务的管理操作和共享内存空间的系统和方法
US10747580B2 (en) * 2018-08-17 2020-08-18 Vmware, Inc. Function as a service (FaaS) execution distributor
US11221837B2 (en) 2019-04-11 2022-01-11 Microsoft Technology Licensing, Llc Creating and deploying packages to devices in a fleet based on operations derived from a machine learning model
US11029936B2 (en) * 2019-04-11 2021-06-08 Microsoft Technology Licensing, Llc Deploying packages to devices in a fleet in stages
US11695559B2 (en) * 2019-09-30 2023-07-04 Salesforce, Inc. Nested tenancy that permits a hierarchy having a plurality of levels
CN113965579B (zh) * 2020-06-29 2023-03-24 华为云计算技术有限公司 一种云服务的资源发放方法及相关设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4230673B2 (ja) * 2001-02-22 2009-02-25 富士通株式会社 サービス管理装置
US8005979B2 (en) * 2002-10-28 2011-08-23 Oracle America, Inc. System and method for uniquely identifying processes and entities in clusters
US7701882B2 (en) * 2003-02-10 2010-04-20 Intercall, Inc. Systems and methods for collaborative communication
DE102004019693B4 (de) * 2004-04-20 2017-10-26 Volkswagen Ag Verfahren zum Herstellen eines gehärteten Blechprofils
US7644410B1 (en) * 2004-11-23 2010-01-05 Hewlett-Packard Development Company, L.P. Resource management for shared computing environment
US7600249B1 (en) 2005-07-13 2009-10-06 Blevins Garry D Systems and methods for service provisioning of multiple dwelling units
US20080239985A1 (en) 2007-03-30 2008-10-02 International Business Machines Corporation Method and apparatus for a services model based provisioning in a multitenant environment
US9053162B2 (en) 2007-04-26 2015-06-09 Microsoft Technology Licensing, Llc Multi-tenant hosted application system
DE102007050907A1 (de) * 2007-10-23 2009-04-30 Benteler Automobiltechnik Gmbh Verfahren zur Herstellung eines gehärteten Blechprofils
US8515833B2 (en) 2008-08-29 2013-08-20 8X8, Inc. Methods and systems for multilayer provisioning of networked contact centers
US9129052B2 (en) 2009-12-03 2015-09-08 International Business Machines Corporation Metering resource usage in a cloud computing environment
US9098320B2 (en) 2009-12-23 2015-08-04 Savvis Inc. Systems and methods for automatic provisioning of a user designed virtual private data center in a multi-tenant system
US8635367B2 (en) 2009-12-23 2014-01-21 Citrix Systems, Inc. Systems and methods for managing static proximity in multi-core GSLB appliance
US8631333B2 (en) 2010-06-07 2014-01-14 Microsoft Corporation Feature set differentiation by tenant and user
US20130067469A1 (en) * 2011-09-14 2013-03-14 Microsoft Corporation Load Balancing By Endpoints

Also Published As

Publication number Publication date
EP2805250A4 (en) 2016-05-11
US9354940B2 (en) 2016-05-31
EP2805250A2 (en) 2014-11-26
WO2013109509A2 (en) 2013-07-25
US20130191842A1 (en) 2013-07-25
CN104067261A (zh) 2014-09-24
WO2013109509A3 (en) 2013-10-17

Similar Documents

Publication Publication Date Title
CN104067261B (zh) 向有多承租人能力的服务供应承租人的方法和系统
CN105283838B (zh) 云计算环境中的分布式锁管理
JP5898240B2 (ja) ヘテロジニアスな環境においてセッションを提供するための方法およびシステム
JP5984818B2 (ja) ビークルとリモートアプリケーションサーバとの間で通信する方法及びシステム
US10715479B2 (en) Connection redistribution in load-balanced systems
CN105122772B (zh) 一种通过头部交换服务器状态和客户端信息的方法及设备
CN101461190B (zh) 管理计算节点间的通信
US7610404B2 (en) Application network communication method and apparatus
CN103986741B (zh) 云数据系统、云数据中心及其资源管理方法
CN107925681A (zh) 用于分布式软件定义网络分组核心系统中的负载平衡的系统和方法
CN104583955A (zh) 用于编配计算环境中的ip授权与解除授权的方法和设备
CN104584484A (zh) 提供基于策略的数据中心网络自动化的系统和方法
US8321590B2 (en) Application network communication
CN113014611B (zh) 一种负载均衡方法及相关设备
CN112532758B (zh) 一种网络边缘计算系统的创建方法、装置及介质
CN105554176B (zh) 发送报文的方法、装置和通信系统
KR20140010960A (ko) 다수의 소프트웨어 애플리케이션이 연계된 세션을 제공하는 방법 및 시스템
CN109525684A (zh) 报文转发方法和装置
CN109474713A (zh) 报文转发方法和装置
CN105530226A (zh) 内容分发网络系统及其接入控制方法和系统
CN106027356A (zh) 一种隧道标识的转换方法及装置
CN107046503A (zh) 一种报文传输方法、系统及其装置
US20240098089A1 (en) Metadata customization for virtual private label clouds
CN112994915A (zh) 一种sd-wan业务编排方法、系统、设备和存储介质
CN208656807U (zh) 一种用于分店访问总部的系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150729

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150729

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171013

Termination date: 20200115