首页> 中国专利> 可扩展和可编程多承租人服务体系结构

可扩展和可编程多承租人服务体系结构

摘要

提供了用于主存多个组织的可扩展、多承租人软件即服务商业应用程序平台。组织服务由被组装在可伸缩组中的、具有专用数据存储的虚拟或物理服务器来提供。可伸缩组的组件之间的分布式交互可以允许可扩展性和可靠性,同时向客户机提供组织服务的位置的改变以供客户机继续无缝地访问服务。还可以将用于访问与其它组织隔离开的每一组织的数据和应用程序的可定制且动态API以及可插入第三方认证服务集成到该平台中。

著录项

  • 公开/公告号CN101657804A

    专利类型发明专利

  • 公开/公告日2010-02-24

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN200880011804.4

  • 申请日2008-04-01

  • 分类号G06F15/16(20060101);G06F15/173(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人顾嘉运;钱静芳

  • 地址 美国华盛顿州

  • 入库时间 2023-12-17 23:31:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-08-19

    专利权的转移 IPC(主分类):G06F15/16 变更前: 变更后: 登记生效日:20150727 申请日:20080401

    专利申请权、专利权的转移

  • 2015-07-08

    授权

    授权

  • 2010-04-28

    实质审查的生效 IPC(主分类):G06F15/16 申请日:20080401

    实质审查的生效

  • 2010-02-24

    公开

    公开

说明书

背景

商业工作致力于快速地响应顾客需求、使产品更快地到达市场、增加总体 盈利、以及持续地在竞争中胜出。灵活性,即应对这些常见的市场挑战的能力, 依赖于固定商业应用程序技术平台。为达成商业灵活性,需要为应用程序集成 设计的多面的、智能的软件。

商业应用程序平台通常是单承租人的,意味着它们可以仅为单个组织主存 应用程序且所有平台资源仅专用于此组织。这种平台通常由客户主存并被安装 和部署于他们的公司房屋内。用于部署和维护这种平台的成本可能是高昂的且 投资回报并非最佳。

另一方面,设计和管理多承租人系统有它自己的挑战。在实际多承租人系 统中,每一客户机可以具有不同的用于连接到它们的组织的方案。此外,每一 客户机可以连接到多个组织,从而使得对这种系统的管理从安全、流量管理、 可靠性、以及可扩展性方面而言变为非常复杂的任务。

概述

提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的 一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不 旨在用于帮助确定所要求保护的主题的范围。

各实施例针对提供一种用于从单个平台服务多个组织的可扩展、多承租人 软件即服务(software-as-a-service)模型。根据各实施例的一种平台可以包括 用于提供与该平台主存的组织服务的位置和配置相关联的客户机信息的发现 服务。随即使客户机能够访问该组织服务,该组织服务可被主存在可伸缩群集 中。位置改变可被提供给客户机以便客户机对所请求的服务进行不中断访问。

通过阅读以下详细描述并查阅相关联的附图,这些和其他特征和优点将是 显而易见的。可以理解,前述一般描述和以下详细描述均仅是说明性的,且不 限制所要求保护的各方面。

附图简述

图1示出示例单承租人服务模型;

图2示出示例多承租人服务模型;

图3示出根据各实施例的可扩展多承租人服务体系结构;

图4示出多承租人服务的组织服务部分的示例组件;

图5是示出在操作期间客户机与多承租人服务的组件之间的交互的动作 图;

图6是其中可以实现各实施例的示例联网环境;

图7是其中可以实现各实施例的示例计算操作环境的框图;以及

图8示出向客户机提供可扩展多承租人服务的过程的逻辑流程图。

详细描述

如以上简要描述的,可以使用发现服务和可伸缩服务器群集来提供可扩展 多承租人商业应用程序平台。在以下详细描述中,参考了构成其一部分并作为 说明示出了各具体实施例或示例的附图。可组合这些方面,可利用其他方面并 且可以做出结构上的改变而不背离本发明的范围。由此,以下详细描述并不旨 在限制,本发明的范围由所附权利要求及其等效方案所定义。

虽然在结合在个人计算机上的操作系统上运行的应用程序执行的程序模 块的一般上下文环境中描述了各实施例,但是本领域的技术人员会认识到各方 面也可以结合其他程序模块实现。

一般而言,程序模块包括执行特定任务或实现特定的抽象数据类型的例 程、程序、组件、数据结构和其它类型的结构。而且,如本领域的技术人员理 解的,各实施例可以用其他计算机系统配置来实践,包括手持式设备、多处理 器系统、基于微处理器或可编程消费者电子设备、小型机、大型机等等。各实 施例还能在其中任务由通过通信网络链接的远程处理设备来执行的分布式计 算环境中实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存 储设备中。

各实施例可被实现为计算机过程(方法)、计算系统、或者如计算机程序 产品或计算机可读介质等制品。计算机程序产品可以是计算机系统可读并编码 了用于执行计算机进程的指令的计算机程序的计算机存储介质。计算机程序产 品也可以是计算系统可读并编码了用于执行计算机进程的指令的计算机程序 的载波上的传播信号。

参考图1,示出了示例单承租人服务模型的图示100。如前所述,用于典 型商业应用程序平台的可编程性体系结构是单承租人的且适用于内部部署的 主存的应用程序。

在这样的典型单承租人平台中,客户机102通过网络104访问与由web 服务106主存的单个承租人相关联的数据和商业应用程序。尽管网络104可以 是因特网,它一般是内联网类型的网络组合。因为单承租人是由服务主存的, 所以认证、安全、以及其它预备操作可以由该服务本身执行而不是使用第三方 服务。该服务的位置通常不改变,但冗余和某些负载平衡操作可能涉及对多个 服务器和/或服务器群集的使用。

因此,在单承租人系统中的操作是相对简单且直接的。然而,在当今的商 业世界中,许多组织优选将它们的商业应用程序平台外包给可以提供高效的、 具有成本效益的、以及可靠的服务的实体。为了流线化其商业模型并高效地利 用其资源,这些实体可优选为多个组织主存服务。此外,某些客户机可以与多 个组织相关联,在这种情况下客户机通过单个联系点访问所有组织将是有意义 的。

图2示出示例多承租人服务模型200。在多承租人服务中,商业应用程序 平台为多个组织主存服务。任何数量的客户机202可以为访问与一个或多个组 织相关联的数据和应用程序而通过网络204调用web服务206,web服务206 在这种情况下较可能是因特网或不同网络的组合。

web服务206可以执行管理服务并将客户机引导到组织专用web服务208。 此外,web服务206可以执行认证、安全检查、以及可任选地使用第三方服务 的类似的预备服务。组织专用web服务208可以包括可伸缩群集,在那里可以 出于负载平衡和其它原因而移动个体组织的操作。web服务206可以监视这些 改变并相应地重定向该调用客户机,使得改变对该客户机透明。

客户机可以是瘦或胖客户机,其中在瘦客户机的情况下附加服务可任选地 由第三方应用程序来提供。不同客户机可以使用不同方案来访问不同服务。服 务中的某一些还可以共享这些方案。

图2中的体系结构——就此方面而言还有图1——是用于示出软件即服务 平台的概览的。为简明起见仅示出必要组件。在实践中,这些系统包括更多具 有特定任务以及通信方法的组件。以下提供根据各实施例的此类平台的更详细 讨论。

图3示出根据各实施例的可扩展多承租人服务体系结构300。根据各实施 例的软件即服务商业应用程序平台320可以在不同站点中实现并且能够在每一 站点中主存多个组织的数据和应用程序。平台320的每一站点安装可以是高度 可伸缩的,从而允许服务的高性能和高可用性。这些站点可被主存在因特网或 内联网中。

根据某些实施例,服务可以使用可任选的可信第三方认证服务来认证每一 组织(例如,权证服务312)的用户(客户机302)。对于因特网或内联网模 式还可使用独立插件认证服务。根据其它实施例,对每一组织的数据和操作的 访问可以基于安全角色和特权以及组织成员资格来限制。

根据某些实现,每一组织的数据和应用程序可以与其它的隔离,并通过一 组专用API来访问。这些API可以使开发者能通过因特网远程地访问并修改商 业数据以及定义/调用/修改商业过程和逻辑。这些API可以是自动生成且动态 的,以便无论何时在平台中添加或移除新的组织,这些API都可以自动调整。 这些API还可以是可定制的,从而允许将自定义对象和操作与其它组织分开地 添加到每一组织。

发现服务322提供认证和组织发现服务,从而使客户机302能够登入到平 台320并发现他/她是其成员的所有组织。发现服务322可以提供关于每一组织 的详细配置数据,该详细配置数据包括组织在平台内用于直接访问的位置以及 其它配置信息。配置信息可被存储在配置存储324中并从中检索。用户(客户 机)可以是主存在站点中的一个或多个组织的成员。发现服务322可以按多种 认证模式操作。每一认证模式可以具有其自己的专用端点,从而使客户机能够 指定应该使用哪种认证。

根据另外一些实施例,每一API端点可以供应多个组织。对API的每一 调用可以标识旨在到达的目标组织。发现服务322可以使用配置存储324来检 索组织配置数据。可以允许管理员来访问并维护配置存储324。

组织数据和操作可被置于在平台320的服务群集330内可用的多个可伸缩 组中(服务位置1、2等)。出于负载平衡的目的,组织的位置可以改变并在 可伸缩组之间移动。可扩展多承租人服务模型在它甚至可以在移动之后定位目 标组织的意义上是动态的。每一服务位置(332、334……)可以包括一个或多 个提供服务的虚拟或物理服务器。

图4示出多承租人服务的组织服务部分的示例组件。如上所述,可伸缩服 务器群集430在可扩展多承租人软件即服务平台的核心处。根据某一些实施例, 服务器群集430可以包括一组虚拟或物理web服务器431,它们接收客户机请 求、处理同步请求、且管理对组织数据库433的访问。web服务器431中的一 特定服务器可通过随机选择、根据预定义算法(例如,负载平衡算法)等等来 分配给客户机。组织数据库433可以包括由平台供应的每一组织(或承租人) 的物理或虚拟数据存储。例如,金融服务系统可以包括对应于参与金融组织(银 行等)中的每一个的、存储帐户信息、帐户访问信息等等的单独的数据库。关 于个别数据库、其配置、任何冗余等的信息可被存储在图3的配置存储324中。

根据其它实施例,定位器服务(未示出)可以提供关于web服务器可以 使用哪一(些)数据库的信息。web服务433还可以将异步服务请求置于将由 异步服务器435结合组织数据库433来处理的队列中。当客户机请求来到该队 列时,可以联系异步服务器435中的一个来处理该请求。异步服务器与各个组 织数据库之间的关系可以是分布式关系,其中每一服务器可以与数据库中的任 何一个一起工作。异步服务器与组织数据库之间的此分布式交互可以提供通过 允许数据库在一个服务器失败时连接到另一可用服务器来从异步处理机器的 故障中自动恢复的能力。

由于同步和异步工作的独立分布以及服务器与数据库之间的交互,所以服 务器群集430的任何部分都是可伸缩的。因此,可以提供服务器(和/或数据库) 的多个实例来解决增加的工作负载、附加组织、数据容量等等。

图5是示出在操作期间客户机与多承租人服务的组件之间的交互的动作 图。动作图500中的交互示出使用具体步骤的示例操作。根据各实施例的多承 租人平台中的交互可以包括与更少步骤或更多步骤的不同交换、以及不同的交 互次序。

根据该示例操作,客户机504通过向发现服务506请求站点策略来启动调 用。发现服务以站点策略来响应,站点策略可以标识可任选的权证服务(例如, 用于认证)。如果使用了可任选的第三方权证服务502,则客户机504可以向 该权证服务502发送权证请求,且在该客户机用于访问所请求的组织(承租人) 的凭证被确认的情况下接收服务权证。

客户机504随后将站点权证请求和来自权证服务502的服务权证一起提交 给发现服务506。发现服务506以站点权证来响应。客户机504随后可以向提 交所请求组织的列表,发现服务506以所请求组织的位置的列表和其它配置信 息(方案等等)来响应该列表提交。随后,客户机504可以使用由发现服务506 所提供的位置和配置信息来通过组织服务508访问目标组织。如前所述,组织 服务的位置可以由于缩放、负载平衡等改变。发现服务506可以用改变的位置 信息来更新客户机,使得客户机的对组织服务的访问可以无缝地继续。

出于说明的目的,图3到图5中所述的可伸缩多承租人系统和操作是示例 性的。用于可扩展多承租人服务的系统可以使用更多或更少的组件和操作使用 此处所描述的原理来实现。

图6是其中可以实现各实施例的示例联网环境。可扩展多承租人服务系统 可以用分布式方式在多个物理和虚拟的客户机和服务器上实现。它们还可以在 非群集系统或利用通过一个或多个网络(例如,网络610)通信的多个节点的 群集系统中实现。

这种系统可以包括服务器、客户机、因特网服务提供者、以及通信介质的 任何拓扑结构。同样,系统可以具有静态或动态拓扑结构。术语“客户机”可 以表示客户机应用程序或客户机设备。尽管实现可扩展多承租人服务的联网系 统可以涉及更多组件,但相关组件仍然结合此图来讨论。

对访问的请求可以来自于联网多承租人系统中使用单独客户机设备602 -606或应用程序服务器608的承租人。这一系统还可以在一个或多个服务器 (例如,服务器612、614)中实现并由客户机设备(或应用程序)访问。诸如 web服务器612等一个或多个web服务器(物理或虚拟)可以接收请求并将它 们定向到合适的资源。资源可以包括具有同步和异步服务器的可伸缩服务器群 集、组织数据库、以及其它组件。

组织数据库可以在诸如数据存储618等单个数据存储中实施,或分布在多 个数据存储中。可使用专用数据库服务器(例如,数据库服务器616)来协调 一个或多个此类数据存储中的数据检索和存储。

网络610可以包括诸如企业网络等安全网络、诸如无线开放网络等非安全 网络、或因特网。网络610提供此处描述的节点之间的通信。作为示例而非局 限,网络610可以包括诸如有线网络或直接线连接等有线介质,以及诸如声学、 RF、红外线和其它无线介质等无线介质。

可以利用计算设备、应用程序、数据资源、数据分布系统的许多其它配置 来实现可扩展多承租人服务平台。此外,图6中所讨论的联网环境仅用于说明 目的。各实施例不限于示例应用程序、模块、或过程。

图7及相关联的讨论旨在提供对适于在其中实现各实施例的计算环境的 简要概括描述。参考图7,示出了诸如计算设备700等示例计算操作环境的框 图。在一基本配置中,计算设备700可以是提供与可扩展多承租人服务相关联 的管理服务的服务器,并通常包括至少一个处理单元702和系统存储器704。 计算设备700还可包括协作执行程序的多个处理单元。取决于计算设备的确切 配置和类型,系统存储器704可以是易失性的(诸如RAM)、非易失性的(诸 如ROM、闪存等)或是两者的某种组合。系统存储器704通常包括适于控制 联网的个人计算机的运作的操作系统705,诸如来自华盛顿州雷德蒙市的微软 公司的WINDOWS操作系统。系统存储器704还可以包括诸如程序模块706、 web服务722、web服务722内的发现服务724、以及可任选定位器服务726 等一个或多个软件应用程序。

web服务722可以是单独的应用程序或是向与计算设备700相关联的客户 机应用程序提供数据和处理服务的主存的多承租人服务平台的整合模块。发现 服务724可以向请求访问与各个组织(承租人)服务相关联的位置和配置信息 客户机提供这些信息。如前所述,可任选定位器服务726可以提供与确定服务 的目的和为web服务器以及异步处理服务器使用哪些数据库相关联的服务。该 基本配置在图7中由虚线708内的组件示出。

计算设备700可具有附加的特征或功能。例如,计算设备700还可包括附 加的数据存储设备(可移动和/或不可移动),诸如例如磁盘、光盘或磁带。这 些其它存储在图7中由可移动存储709和不可移动存储710示出。计算机存储 介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据 等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。 系统存储器704、可移动存储709和不可移动存储710都是计算机存储介质的 示例。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其 它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、 磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算设 备700访问的任何其它介质。任何这样的计算机存储介质都可以是设备700的 一部分。计算设备700还可具有诸如键盘、鼠标、笔、语音输入设备、触摸输 入设备等输入设备712。还可包括诸如显示器、扬声器、打印机等输出设备714。 这些设备在本领域中公知且无需在此处详细讨论。

计算设备700还可以包含允许该设备诸如在分布式计算环境中,例如在内 联网或互联网中通过无线网络与其它计算设备718通信的通信连接716。其它 计算设备718可以包括执行与位置服务或其它服务相关联的应用程序的服务 器。通信连接716是通信介质的一个示例。通信介质通常由诸如载波或其它传 输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数 据来体现,并包括任何信息传递介质。术语“已调制数据信号”指的是其一个 或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限 制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸 如声学、RF、红外线和其它无线介质。如此处所使用的术语计算机可读介质包 括存储介质和通信介质两者。

所要求保护的主题还包括各方法。这些方法可以用任何数量的方式,包括 本文中所描述的结构来实现。一种此类方式是通过本文中描述的类型的设备的 机器操作。

另一可任选方式是结合一个或多个人类操作者执行该方法的各个操作中 的某一些来执行该方法的一个或多个操作。这些人类操作者无需彼此同在一 处,但是其每一个可以仅与执行程序的一部分的机器同在一处。

图8示出向客户机提供可扩展多承租人服务的过程800的逻辑流程图。过 程800可被实现为软件即服务商业应用程序平台的一部分。

过程800开始于操作802,在那里从客户机接收对访问一个或多个组织的 请求以及客户机凭证。如前所述,多承租人主存服务的客户机通常与各承租人 的组织相关联,每一承租人在该系统内具有专用数据库。在接收请求之前,该 客户机可任选地使用第三方认证服务。处理从操作802前进至判定操作804。

在判定操作804,作出客户机是否被认证的判定。该判定还可以包括所请 求的组织是否由多承租人服务平台所主存的检查。如果客户机被认证,则该过 程前进至操作806。否则,处理移动至调用过程以进行进一步动作。

在操作806,确定所请求的组织服务的位置。处理从操作806移动到操作 808,在那里向客户机提供组织服务的位置以供访问。还可以将附加配置信息 与该位置信息一起提供。在操作808之后,处理移动至判定操作810。

在判定操作810,作出组织服务的位置是否由于伸缩、负载平衡等改变的 判定。如果确定了该位置的改变,则处理移动至操作812。否则,处理移动至 调用过程以进行进一步动作。

在操作812,向客户机提供组织服务的位置的改变,使得客户机对该服务 的访问可以无缝地继续。在操作812之后,处理移动至调用过程以进行进一步 动作。

包括在过程800内的各操作仅出于说明目的。向客户机提供可扩展多承租 人服务可以使用此处所述的各原理通过具有更少或更多步骤的相似过程、以及 不同的操作次序来实现。

以上说明、示例和数据提供了对各实施例成分的制造和使用的全面描述。 尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附 权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体功能 部件和动作是作为实现权利要求和各实施例的示例形式而公开的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号