首页 / 专利库 / 软件 / 书签 / 针对实时供应的动态更新流

针对实时供应的动态更新流

阅读:147发布:2020-05-11

专利汇可以提供针对实时供应的动态更新流专利检索,专利查询,专利分析的服务。并且在多租户服务处接收租户改变。根据租户来分割租户改变,并且利用个体的租户流处理器来建立个体的更新流。每个租户流处理器针对给定的租户来进行改变,直到完成了针对该租户的改变为止。,下面是针对实时供应的动态更新流专利的具体信息内容。

1.一种计算机系统,包括:
多个服务器实例,在多租户系统中,所述服务器实例对多个不同的租户进行服务,每个租户与不同的组织相对应并且具有对应的租户数据,所述多租户系统中的服务器实例将与每个租户相对应的租户数据同其他租户进行隔离;以及
通知流生成器,其包括将一组改变请求分割成每租户分段的改变分割组件,其中,所述通知流生成器被配置为:
从多个不同的进行请求的租户中的每个进行请求的租户接收所述一组改变请求,每个每租户分段对应于进行请求的租户中的特定一个进行请求的租户,并且每个每租户分段包括指示对与所述特定一个进行请求的租户相对应的租户数据的改变的一组改变请求,通过向所述多个服务器实例中的专用服务器实例发送与所述每租户分段相对应的书签,将所述专用服务器实例指定给每个进行请求的租户以处理相对应的一组租户改变请求,
建立并保持排他同步化流以与接收到所述书签的服务器实例进行通信,直到接收到所述书签的服务器实例已经执行了每租户分段中的全部改变请求,并且此后释放所述排他同步化流,
其中,每个服务器实例被配置为:
实施所述服务器实例的用量约束,
拉取并处理一个租户的一组改变请求,以及
将所述书签返回至所述改变分割组件,以指示所述服务器实例是空闲的以针对不同的租户而进行改变。
2.根据权利要求1所述的计算机系统,其中,所述多租户系统是基于的系统。
3.根据权利要求1所述的计算机系统,其中,所述通知流生成器包括:
未决改变存储,所述改变分割组件在所述未决改变存储中将所接收的改变请求分割成所述每租户分段并且存储所述每租户分段。
4.根据权利要求1所述的计算机系统,其中,所述专用服务器实例在拉取和进行改变请求时,以个体的服务器实例为基础来实施资源用量约束。
5.根据权利要求4所述的计算机系统,其中,针对从额外的进行请求的租户接收的每个额外组的改变请求,所述通知流生成器通知额外的服务器实例以处理额外组的改变请求。
6.根据权利要求5所述的计算机系统,其中,所述服务器实例中的每个服务器实例包括:
在分离的物理服务器上实现的服务器实例。
7.一种计算机系统,包括:
多租户系统,其对多个不同的租户进行服务,并且保持针对所述不同的租户中的每个租户的分离的、隔离的租户数据,所述多租户系统包括:
多个不同的服务器,其处理租户数据的租户改变;以及
通知流生成器,其包括将多组改变请求分割成每租户分段的改变分割组件,其中,所述通知流生成器被配置为:
从对应的进行请求的租户接收所述多组改变请求,每个每租户分段对应于进行请求的租户中的特定一个进行请求的租户,并且每个每租户分段包括指示对与所述特定一个进行请求的租户相对应的租户数据的改变的一组改变请求,
通过向所述多个不同的服务器中的一个服务器发送与所述每租户分段相对应的书签,将所述服务器指定给每个进行请求的租户,以处理对应的每租户分段中的租户改变,在所述通知流生成器将所述服务器指定为处理针对另一个租户的租户改变之前,所指定的服务器对针对向其指定了所述服务器的所述对应的租户的所述每租户分段中的全部租户改变进行处理,
建立并保持排他同步化流以与接收到所述书签的服务器进行通信,直到接收到所述书签的服务器已经执行了每租户分段中的全部改变,并且此后释放所述排他同步化流,其中,每个服务器被配置为:
实施所述服务器的用量约束,
拉取并处理一个租户的一组改变请求,以及
将所述书签返回至所述改变分割组件,以指示所述服务器是空闲的以针对不同的租户而进行改变。
8.根据权利要求7所述的计算机系统,其中,所述多个不同的服务器包括多个不同的服务器实例。
9.根据权利要求7所述的计算机系统,并且还包括:
存储所述多组租户改变的未决改变存储,其中,所述改变分割组件在所述未决改变存储中分割所述多组租户改变。
10.一种用于针对实时供应的动态更新流的方法,包括:
在多租户系统中从多个不同的进行请求的租户中的每个进行请求的租户接收一组改变请求,每组改变请求指示对与进行请求的租户相对应的租户数据的改变,每个租户对应于不同的组织并且具有相对应的租户数据,其中,与每个租户相对应的租户数据与其他租户隔离;
将所述一组改变请求分割成每租户分段;
通过向多个不同的服务器实例中的专用服务器实例发送对应于每租户分段的书签,向每个进行请求的租户分配所述专用服务器实例以处理相对应的一组租户改变请求;以及建立并保持排他同步化流以用于与接收到所述书签的服务器实例的通信,直到接收到所述书签的所述服务器实例已经执行了所述每租户分段中的全部改变,并且此后释放所述排他同步化流为止。

说明书全文

针对实时供应的动态更新流

背景技术

[0001] 计算机系统当前被广泛使用。一些计算机系统是本地计算机系统,而其他系统在远程服务器环境中使用。
[0002] 公司或另一个组织在计算机系统的本地(内部)实现与计算机系统的远程服务器实现(例如基于的实现)之间进行切换不是不常见的。作为示例,公司有时候在它们的电子邮件系统、它们的文档共享系统、或者它们的商业系统的本地实现与远程服务器实现之间进行切换。商业系统的一些示例包括:企业资源规划(ERP)系统、客户关系管理(CRM)系统、经营范围(LOB)系统等。这些仅仅是其中公司在本地的、内部的实现与远程服务器或基于云的实现之间进行切换的计算机系统的类型的一些示例。
[0003] 类似地,一些组织具有混合的实现。在这样的实现中,服务中的一些服务是由计算机系统的本地的、内部的组件执行的,而其他服务是在远程服务器或基于云的环境中执行的。在混合的系统中,组织将某些服务从内部实现周期性地迁移至基于云的实现而同时保持其他服务在内部不是不常见的。
[0004] 具有远程服务器或基于云的实现、或混合实现的一些公司是相对大型的。企业组织例如可以具有数千雇员。因此,它们的计算机系统的远程服务器或基于云的实现必须服务大量个体。对计算机系统进行的许多业务或改变涉及对大量用户账户或用户数据进行改变。
[0005] 作为示例,当企业组织想要将一些计算系统功能从内部实现迁移至基于云的实现时,这可能涉及对企业的计算机系统的许多不同的更新。作为具体的示例,如果企业正在迁移其电子邮件系统,则这可能涉及大量雇员账户的创建。账户创建通常以序列化的方式完成,这可能花费大量时间。另外,在进行大量改变的情况下,那些改变会消耗远程服务器或基于云的实现的大量处理和存储器开销以及带宽。
[0006] 许多基于云的或远程的服务器实现还是多租户系统。即,它们为多个不同的租户提供一定等级的服务,所述多个租户通常是多个不同的组织。当一个租户进行大量改变时,这可能负面地影响其他租户所体验的性能。
[0007] 以上讨论仅仅是针对一般的背景信息而提供的,而不旨在用来帮助确定所要求保护的主题的范围。发明内容
[0008] 在多租户服务处接收租户改变。根据租户来分割租户改变,并且利用个体的租户流处理器来建立个体的更新流。每个租户流处理器进行针对给定的租户来的改变,直到完成了针对该租户的改变为止。
[0009] 提供了该发明内容以用简化的形式引入在以下的具体实施方式中进一步描述的概念的选择。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用来帮助确定所要求保护的主题的范围。所要求保护的主题不限于解决了在背景技术中所提出的任何或所有缺点的实现。附图说明
[0010] 图1是基于云的多租户服务架构的一个示例的框图
[0011] 图2是更加详细地示出了通知流生成器的一个示例的框图。
[0012] 图3是图示了在图1中所示出的架构的操作的一个示例的流程图
[0013] 图4是图示了多租户云架构的一个示例中的不同等级的多租户的框图。
[0014] 图5-图7示出了移动设备的示例。
[0015] 图8是计算环境的一个示例的框图。

具体实施方式

[0016] 图1是基于云的多租户服务架构100的一个示例的框图。架构100包括能够由多个不同的租户系统104-106来访问的基于云的多租户服务系统102。如在下文中参考图4更加详细地描述的,基于云的多租户服务系统102向使用租户系统104-106的租户提供某等级的多租户服务。所述租户说明性地是分离的组织,以使得由系统102提供的多租户服务在期望的等级处是每租户分离或隔离的。另外,如以下参考图4更加详细地描述的,可以在基础设施层、在应用平台层、或者在应用软件层等处提供多租户服务。因此,取决于由系统102所提供的多租户的特定层,与特定的客户端相对应的信息将在该层处是分离的并且被隔离,从而其不能由其他租户来访问。
[0017] 作为示例,如果系统102提供基础设施即服务(IaaS),则系统102的基础设备组件由租户104-106共享,但是租户信息以其他方式保持为分离的。如果系统102提供平台即服务(PaaS),则平台组件由租户104-106共享。如果系统102提供应用软件即服务(SaaS),则通用应用由系统102运行,以对租户104-106进行服务。在这些实现中的任何实现中,由于系统102提供某等级的多租户,因此与不同的租户104-106相对应的信息被保持为分离的。这在下文中关于图4更加详细地进行了描述。
[0018] 在图1中所示出的系统102的示例包括通知流生成器108、每租户处理系统110(其自身包括租户流处理器112-114)、租户等级的分离的资源116、在下文中关于图4更加详细地讨论的多种其他云实现组件124。在图1中所示出的示例中,租户等级的分离的资源包括租户数据118-120,其表示分别与每个租户系统104-106相对应的信息,该信息与其他租户保持分离并且不能由其他租户访问。
[0019] 租户系统104-106说明性地提供了对基于云的多租户服务系统102的改变。例如,租户系统104可以将其电子邮件服务从内部实现迁移至系统102中的基于云的实现。在该情况下,租户系统104提供将其整个电子邮件系统从内部版本迁移至系统102的改变。在另一个示例中,租户系统106可以已经获得了另一个组织并且因此可以需要将大量电子邮件账户添加至其系统102中的基于云的实现。在另一个示例中,可以已经重新组织了使用租户系统104的组织。因此,可能需要改变大量雇员记录以示出他们不再是人资源部的一部分,而现在是市场部的一部分。在这些示例或者宽泛的多种其他示例中的任何示例中,对租户的基于云的实现的改变在数量上可以是相对大的。然而,在一个示例中,系统102以将在服务其他租户时不影响系统102的性能的方式来处理这些改变。
[0020] 以下关于图2和图3提供了对进行租户更新时系统102的操作的更加详细的描述。现在将提供简要概述以加强理解。首先假设租户104-106中的一个租户向系统102提供针对租户改变的请求。所述租户改变指示对与进行请求的租户相对应的租户数据118-120的所请求的改变。通知流生成器108利用每租户处理系统110来创建每租户同步化流。在一个示例中,其将由租户104-106所接收的改变分组成每租户分段(segment)。接着,其将与给定的分段相对应的书签传递至租户流处理器112-114中的一个租户流处理器。租户流处理器
112-114说明性地是不同的服务器,或者至少是不同的服务器实例。接着,接收书签的租户流处理器保持与通知流生成器108的通信链路(同步化流),并且通过同步化流并且在需要的情况下使用书签来获得对应的租户数据,并且对对应的租户数据进行改变。同一租户流处理器112继续针对同一租户而进行改变,直到从通知流生成器108中清空(drain)了那些租户改变为止。接着,其指示通知流生成器108进行改变已经完成。如果,当租户流处理器正在针对给定的租户进行改变时,第二租户向通知流生成器108提供改变请求,则生成器108与系统110中的第二租户流处理器建立另一个同步化流。第二流处理器110继续针对第二租户进行改变,直到已经清空了那些改变为止。这针对请求了改变的每个不同的租户而继续,以使得每个租户具有与指定的服务器的其自己的处理流(或同步化流)以用于进行改变。服务器在服务器等级实施其自身的工作负载约束。以该方式,无论由任何给定的租户所请求的改变的数量是多少,都将不影响由其他租户所体验的系统102的性能。
[0021] 图2是通知流生成器108的一个示例的更加详细的框图。生成器108说明性地包括改变分割组件180、未决改变存储182,并且其也可以包括其他项目184。图2还示出了生成器108说明性地从租户104-106接收租户改变186,并且将改变186分割成分段188-190。每个分段188-190表示针对不同的租户104-106的改变。图2还示出了:一旦已经分割了租户改变
106,改变分割组件180就将与不同的分段188-190相对应的书签192-194发送至不同的租户流处理器112-114。租户流处理器112-114从存储182获得改变,并且接着对针对对应的租户的对应的租户数据118-120进行改变。租户流处理器112-114使用书签192-194来确保对应的分段188-190中的租户改变全部都进行了。因此,每个租户流处理器112-114都具有同步化流以用于排他地获得针对一个租户的一组改变,并且通过所述同步化流来仅仅接收针对该租户的改变,并且针对同一租户而进行全部改变直到从对应的分段中清空了针对该租户的全部改变为止。接着,其将书签返回至改变分割组件180以指示租户流处理器是空闲的以针对不同的租户而进行改变。
[0022] 图3是图示了在基于云的系统102中对租户数据进行租户改变186时,通知流生成器186和基于云的多租户服务系统102的操作的一个示例的流程图。改变分割组件180首先从一个或多个租户系统104-106中接收租户改变186。这由图4中的框200来指示。接着,组件180将改变186分割成不同的分段188-190。分段188-190说明性地是每租户分段,以使得每个分段188-190包含并且仅包含由同一租户所提交的租户改变中的全部租户改变。基于每租户而分割未决的改变由图3中的框202来指示。
[0023] 接着,改变分割组件180将租户流处理器112-114指定给分段中的每个分段,以使得同一处理器可以处理针对给定的租户的全部改变。在本文中所描述的示例中,每个租户流处理器112是分离的服务器、或者至少是服务器的分离的实例。因此,每个租户具有用于进行其所请求的改变的专用服务器或者服务器实例。
[0024] 在图3中所示出了示例中,改变分割组件180通过向每个租户流处理器发送与分段188-190相对应的书签192-194而将租户流处理器112-114指定给每个租户。对书签进行发送是由图4中的框204来指示的。应当注意的是,在两个或更多个租户是相对小的租户的情况下,它们可以连接至同一租户流处理器112-114。在该情况下,将在各个租户流处理器
112-114之间分配租户工作负荷,但是在租户与服务器(或者租户流处理器)之间可以不一定是一对一的对应关系。在租户流处理器之间分配租户是由图4中的框206来指示的。
[0025] 然而,如在上文中所描述的,在一个示例中,每个服务器实例存在一个租户流(租户流处理器通过其接收针对一个租户的租户改变并且针对该一个租户排他地进行租户改变)。这是由框208来指示的。保持所述流直到分段中的全部改变都进行了为止。
[0026] 可以以多种不同的方式来完成将需要进行的租户改变通知给租户流处理器。例如,如果所述改变与未决的改变存储182中的新的分段相对应,则组件180将与该新的分段相对应的新的书签发送至正等待进行改变的租户流处理器(例如,还没有指定给另一个租户或租户流的处理器)。这是由框210所指示的。当然,改变分割组件180也可以以其他方式将未决的改变通知给租户流处理器,并且这是由框212来指示的。
[0027] 一旦租户流处理器(例如,处理器112)已经被通知了将进行来自分段188-190中的一个分段(例如,分段188)的改变,租户流处理器就从对应的分段中拉取租户改变。这是由图4中的框214来指示的。在这样做时,租户流处理器112说明性地保持与通知流生成器108的连接,直到已经从分段188获取并进行了全部改变为止。这可以使用超文本传输协议(HTTP)长轮询来完成,或者通过使用另一个持续连接机制来完成。保持连接是由框216来指示的。租户流处理器112处理针对给定的租户的全部租户改变,直到从对应的分段中清空了改变、并且由租户流处理器112释放了书签为止。这是由图4中的框218来指示的。租户流处理器也可以以其他方式拉取改变并且进行改变,并且这是由框220来指示的。
[0028] 当租户流处理器从对应的分段拉取改变时,它们可以执行针对给定的租户的对应的租户数据的那些改变。这是由框222来指示的。因为每个租户流处理器与一个服务器实例相对应,因此实施对租户改变的带宽约束的是服务器实例本身。例如,服务器实例本身实施对CPU用量、存储器用量、带宽用量等的约束。由于每个租户104-106都具有用于进行改变的其自己的服务器实例,因此没有租户104-106能够超过由其对应的服务器实例(例如,其所指定的租户流处理器)所施加的用量约束。这是由图4中的框224来指定的。以该方式,没有特定的租户104-106能够压制(overwhelm)云实现的功能从而损害其他租户。由于租户流处理器(或服务器实例)没有同时尝试处理来自其他租户的改变(其一次排他地针对一个租户而处理改变),因此任何给定的租户104-106的工作负荷都不影响提供给基于云的实现的其他租户的性能。替代地,每个租户在性能方面都接收到相同的对待,这是因为每个租户都具有其自己的服务器实例(或者租户流处理器)以进行其改变。应当注意的是,租户流处理器也可以以其他方式来执行针对租户的改变,并且这是由框226来指示的。
[0029] 同样,显然支持扩展。通过添加新的机器或服务器实例,直接并且迅速地增加对租户进行服务的能力。可以将新的机器或服务器实例添加至可以用于处理改变的可用的流处理器。
[0030] 在进行了一组改变之后,每个租户流处理器112-114确定在对应的分段中是否存在针对该租户的任何更多的改变。这是由图4中的框228来指示的。如果存在,则处理返回至框214,其中,租户流处理器从对应的分段拉取这些改变,并且将这些改变提交(commit)至租户数据。
[0031] 然而,如果在框228处确定在对应的分段中不存在针对该租户的任何进一步的改变,则租户流处理器向通知流生成器108指示已经完成了其租户改变,并且等待用于提交针对相同或不同的租户的改变的另一个通知。在一个实施例中,租户流处理器112-114可以通过向通知流生成器108发布或返回书签来这样做。这是由图4的流程图中的框230来指示的。
[0032] 因此,可以看到的是通知流生成器108可以基于每租户而生成同步化流(或者租户流)。这提供了用于横向扩展板载(on-boarding)活动(例如,向基于云的系统增加新的用户)和其他活动的方式。系统可以扩展以满足大量租户的需要,这是因为系统仅仅受到可以处理分离的租户流的服务器或服务器实例的数量的限制。流可以由不同的服务器或服务器实例来独立地执行,因此可以调用额外的服务器或服务器实例。这允许针对不同的租户的板载活动跨不同的机器传播。
[0033] 通知流生成器108通过仅仅当租户具有改变时通知租户流处理器而使得系统能够动态地扩展。在任何给定的时间点处,与整组的租户相比,通常是一小组租户访问基于云的系统。这降低了整体延迟,这是因为每个租户流处理器在改变被接收到并且变得可用时对所述改变进行处理。同样,其提示自动扩展,这是因为任何新的服务器或服务器实例一旦上线,它们就可以由通知流生成器108使用来进行租户改变。这相当于大量个体的、每租户的数据管道,而不是在其中单个租户可能压制系统以使得其他租户体验降低的性能的一个粗管道。没有单个服务器或服务器实例充当瓶颈或故障点。另外,通知流生成器108通知租户流处理器112-114待进行的改变,而不枚举每个单个对象改变。替代地,其基于每租户而将改变分组成分段。这也改善了性能。
[0034] 本讨论已经提及了处理器和服务器。在一个实施例中,处理器和服务器包括具有相关联的存储器和定时电路(没有分别地示出)的计算机处理器。它们是其所属的系统或设备的功能部件,并且由这些系统或设备来激活,并且它们促进这些系统中的其他部件或项目的功能。
[0035] 同样,还讨论了多个用户界面显示。所述用户界面显示可以采用宽泛的多种不同的形式,并可以具有布置在其上的宽泛的多种不同的用户可致动输入机制。例如,用户可致动输入机制可以是文本框、勾选框、图标、链接、下拉菜单、搜索框等。它们还可以以宽泛的多种不同的方式来致动。例如,它们可以使用指向和点击设备(例如,轨迹球鼠标)来致动。它们可以使用硬件按键、开关、操纵杆或键盘、拇指开关或者拇指垫等来致动。它们还可以使用虚拟键盘或者其他虚拟致动器来致动。另外,在显示这些用户界面的屏幕是触摸感应屏幕的情况下,它们可以使用触摸手势来致动。同样,在显示它们的设备具有语音识别组件的情况下,它们可以使用语音命令来致动。
[0036] 还讨论了多个数据存储。应当注意的是,可以将它们中的每个数据存储分成多个数据存储。所有这些数据存储可以对访问这些数据存储的系统而言是本地的,所有这些数据存储可以是远程的,或者可以一些是本地的而其他的是远程的。在本文中构想所有这些配置。
[0037] 同样,附图示出了具有归属于每个框的功能的多个框。应当注意的是,可以使用更少的框因此由更少的组件来执行功能。此外,可以使用具有分布在更多组件之间的功能的更多的框。
[0038] 图4是示出了其中可以实现系统102的多租户云架构124(云124)的更加详细的实施例的框图。图4更加详细地示出了其他云实现组件122(在图1中所示出的)的一个示例。
[0039] 云计算提供了不需要末端用户了解传递服务的系统的物理位置或配置的计算、软件、数据访问、和存储服务。在各种实施例中,云计算使用合适的协议而通过诸如互联网之类的广域网来传递服务。例如,云计算提供者通过广域网传递应用并且可以通过网络浏览器或任何其他计算组件对它们进行访问。可以将架构100的软件或组件以及对应的数据存储在远程位置处的服务器上。可以在远程数据中心位置处对云计算环境中的计算资源进行整合,或者它们可以是分散的。云计算架构可以通过共享的数据中心来传递服务,即使它们对用户而言表现为单个访问点。因此,在本文中所描述的组件和功能可以使用云计算架构从远程位置处的服务提供者来提供。可替代地,它们可以从传统服务器来提供,或者它们可以直接安装在客户端设备上,或者以其他方式来提供。
[0040] 该描述旨在包括公共云计算和私有云计算两者。云计算(公共的和私有的两者)提供大体上资源的无缝集中化(pooling),而且降低了管理和配置底层硬件基础设施的需求。
[0041] 公共云是由供应者所管理的,并且通常支持多个客户使用同一基础设施。同样,与私有云相反,公共云可以使得末端用户免于对硬件进行管理。私有云可以由组织自行管理并且设施通常并不与其他组织共享。该组织仍然要在一定程度上维护硬件,例如安装和维修等。
[0042] 图4示出了系统102中的组件122,其说明性地包括虚拟化系统126、基础设施组件128、应用平台组件130、和应用软件组件132。基础设施组件128可以包括安全组件134、硬件/软件基础设施136、服务器138、负载平衡组件140、网络组件142,并且其也可以包括其他组件144。
[0043] 应用平台组件130可以包括执行运行时组件146、操作系统组件148、数据库组件150、网络服务器组件152,并且其也可以包括其他组件154。应用软件组件132说明性地包括用户接口组件156、应用工作流158、应用逻辑160、数据库系统162,并且其可以包括其他项目164。
[0044] 取决于由架构124所实现的多租户的等级,虚拟化系统126将把物理计算设备组件122电子地分隔成一个或多个虚拟设备。可以使用和管理这些设备中的每个设备以执行计算任务。
[0045] 多租户云计算架构124可以根据多个不同的模型而在多个不同的等级处提供服务。所述服务可以包括例如基础设施即服务(IaaS)、平台即服务(PaaS)、和软件即服务(SaaS)等。IaaS是最基础的,并且较高等级的模型中的每个模型(分别为PaaS和SaaS)是从较低等级的模型的细节中提取的。
[0046] 在IaaS中,提供了物理机或虚拟机、以及其他资源。监督组件(有时也被称为超级监督者)运行虚拟机。多个不同的超级监督者可以用于运行相对大数量的虚拟机,并且根据各个租户的需求来按比例缩放。IaaS模型还可以按需求供应额外的资源(例如,其他基础设施组件128)。为了使租户部署它们的应用,它们在云基础设施组件128上安装操作系统图像以及它们的应用软件。接着,租户负责维护操作系统和应用软件。
[0047] PaaS涉及云架构124提供应用平台组件130即服务。应用开发者可以在云平台组件130上开发并运行他们的软件,而不需要管理底层硬件和软件层。
[0048] SaaS涉及架构124提供对应用组件132中的应用软件和数据库的访问。云架构124管理基础设施组件128和运行应用的平台组件130。云124还安装并操作在应用组件132中的应用软件,并且租户对软件进行访问但不管理云基础设施组件128或应用在其中运行的平台组件130。在这样的实现中,虚拟化系统126在运行时提供多个虚拟机以满足改变的工作负荷。负载平衡器跨虚拟机来分配工作。该过程对于仅看到至应用的单个接入点的租户而言常常是透明的。
[0049] 在多租户环境中,任何机器都可以对部署租户系统104-106的多于一个的用户组织进行服务。然而,多租户可以应用于云架构的所有三个层(IaaS、PaaS、和SaaS)。精确的多租户的程度可以基于核心应用(或应用组件132)中有多少被设计为跨租户104-106共享。相对高程度的多租户允许数据库方案被共享,并且支持商业逻辑、工作流、和用户接口层的自定义。在相对低程度的多租户中,IaaS和PaaS组件128和130分别由具有专用于每个租户的专用虚拟化组件的应用组件132共享。
[0050] 已经关于供应软件即服务的基于云的多租户服务系统102进行了以上的讨论。因此,虚拟化系统126将提供分离的虚拟机以在应用软件层上为每个租户104-106提供它们自己的、安全的、和分离的虚拟计算环境。因此,每个租户104-106可以对它们自己的应用(例如,它们自己的电子邮件应用、文档管理系统、商业系统等)进行改变。当如在上文中关于图1-图3所描述的那样完成时,它们可以这样做而不会影响由其他租户所观察到的性能。
[0051] 还预期到的是,系统102的一些元件可以被设置在云中,而其他元件可以不被设置在云中。作为示例,数据库和数据储存器可以被设置在云124外部,并且通过云124来访问。在另一个示例中,其他组件可以位于云124外部。无论它们位于何处,它们都可以由租户系统104-106中的设备通过网络300(广域网或局域网)直接地访问,它们可以由服务托管在远程站点处,或者它们可以作为通过云的服务来提供或者由驻留在云中的连接服务来访问。
在本文中预期到这些架构中的所有架构。
[0052] 还应当注意的是,可以将架构100或其部分设置在宽泛的多种不同的设备上。这些设备中的一些设备包括:服务器、台式计算机、膝上型计算机、平板计算机、或其他移动设备,例如掌上计算机、蜂窝电话、智能电话、多媒体播放机、个人数字助理等。
[0053] 图5是其中可以部署本系统(或其部分)的、可以用作用户的或客户的手持设备16的手持或移动计算设备的一个示例的框图。图6-7是手持或移动设备的示例。
[0054] 图5提供了可以运行架构100或租户104-106的组件或者与系统100进行交互、或两者的客户端设备16的组件的总体框图。在设备16中,提供允许手持设备与其他计算设备进行通信的通信链路13,并且在某些实施例中,提供用于自动地接收信息(例如,通过扫描)的信道。通信链路13的示例包括红外端口、串行/USB端口、诸如以太网端口之类的有线网络端口、以及允许通过一个或多个通信协议进行通信的无线网络端口,其中所述一个或多个通信协议包括通用分组无线服务(GPRS)、LTE、HSPA、HSPA+和其他3G与4G无线协议、1Xrtt和短消息服务(其是用于提供至网络的蜂窝接入的无线服务)、以及提供至网络的本地无线连接的Wi-Fi协议和蓝牙协议。
[0055] 在其他实施例中,在连接至可移动安全数字(SD)卡接口15的SD卡上接收应用或系统。SD卡接口15和通信链路13沿着总线19与处理器17(其也可以实施在其他附图中所描述的处理器或服务器)进行通信,其中总线19也连接至存储器21和输入/输出(I/O)组件23、以及时钟25和定位系统27。
[0056] 在一个实施例中,提供I/O组件23以促进输入和输出操作。设备16的各种实施例的I/O组件23可以包括诸如按键、触摸传感器、多点触摸传感器、光学或视频传感器、语音传感器、触摸屏、接近度传感器、麦克、倾斜传感器、以及重力开关之类的输入组件和诸如显示设备、扬声器、和/或打印机端口之类的输出组件。也可以使用其他I/O组件23。
[0057] 时钟25说明性地包括输出时间和日期的实时时钟组件。还可以说明性地为处理器17提供定时功能。
[0058] 定位系统27说明性地包括输出设备16的当前地理位置的组件。这可以包括例如全球定位系统(GPS)接收机、LORAN系统、航位推算系统、蜂窝三测量系统、或其他定位系统。还可以包括例如生成期望的地图、导航路线、和其他地理功能的地图软件或者导航软件。
[0059] 存储器21存储操作系统29、网络设置31、应用33、应用配置设置35、数据存储37、通信驱动器39、以及通信配置设置41。存储器21可以包括所有类型的有形的易失性和非易失性计算机可读存储器设备。其还可以包括计算机存储介质(在下文中所描述的)。存储器21存储计算机可读指令,当由处理器17执行时,所述计算机可读指令使得该处理器根据这些指令来执行计算机实现的步骤或功能。类似地,设备16可以具有客户端商业系统24,其可以运行各种商业应用或者实施租户系统104-106的部分或全部。也可以由其他组件来激活处理器17以促进它们的功能。
[0060] 网络设置31的示例包括诸如代理信息、互联网连接信息、以及映射之类的事情。应用配置设置35包括针对具体的企业或用户来定制应用的设置。通信配置设置41提供用于与其他计算机进行通信的参数,并包括诸如GPRS参数、SMS参数、连接用户名和密码之类的项目。
[0061] 应用33可以是先前已经存储在设备16上的应用,或者在使用期间安装的应用,尽管这些应用也可以是操作系统29的一部分,或者托管在设备16外部。
[0062] 图6示出了在其中设备16是平板计算机600的一个实施例。在图6中,计算机600被示为具有用户界面显示屏602。屏幕602可以是触摸屏(因此可以使用来自用户的手指的触摸手势来与应用进行交互),或者是从笔或者触摸笔接收输入的支持笔的界面。其也可以使用屏上虚拟键盘。当然,也可以通过合适的附接机制(例如,无线链路或者USB端口)来附接至键盘或者其他用户输入设备。计算机600也可以说明性地接收语音输入。
[0063] 也可以使用设备16的额外的示例。它们可以包括功能电话、智能电话、或移动电话。电话可以包括用于拨打电话号码的一组键盘、能够显示包括应用图像、图标、网页、照片、和视频在内的图像的显示器、以及用于选择在显示器上所示出的项目的控制按钮51。电话包括用于接收诸如通用分组无线服务(GPRS)和1Xrtt之类的蜂窝电话信号以及短消息服务(SMS)信号的天线。在一些实施例中,电话还包括接受安全数字(SD)卡57的SD卡插槽55。
[0064] 移动设备也可以是个人数字助理(PDA)或多媒体播放器或平板计算设备、等等(在下文中成为PDA)。PDA包括感应屏,其感测当触摸笔(或者其他指向器,例如用户的手指)位于该屏幕上时该触摸笔的位置。这允许用户选择、突出显示和移动屏幕上的项目、以及画和写。PDA还包括多个用户输入键或者按钮,其允许用户滚动浏览在显示器上所显示的菜单选项或其他显示选项,并且允许用户在不接触显示器的情况下改变应用或者选择用户输入功能。尽管没有示出,但PDA可以包括内置天线和支持与其他计算机进行无线通信的红外发射机/接收机、以及支持至其他计算设备的硬件连接的连接端口。通常而言,这样的硬件连接是通过支架(cradle)来实现的,该支架通过串行或USB端口连接至其他计算机。因此,这些连接是非网络连接。
[0065] 图7示出了智能电话71。智能电话71具有显示图标或区(tile)或者其他用户输入机制75的触摸感应显示器73。用户可以使用机制75来运行应用、进行通话、执行数据传输操作等。通常而言,智能电话71构建在移动操作系统上,并且提供比特征电话更先进的计算能力和连通性。
[0066] 应当注意的是,其他形式的设备16是可能的。
[0067] 图8是其中可以部署架构100或其部分的计算环境的一个示例。参考图8,用于实现一些实施例的示例系统包括以计算机810为形式的通用计算设备。计算机810的组件可以包括但不限于:处理单元820(其可以包括在上文中所讨论的处理器或服务器)、系统存储器830、以及将包括系统存储器的各种系统组件耦合至处理单元820的系统总线821。系统总线
821可以是几种类型的总线结构中的任何一种,包括使用多种总线架构中的任何一种的存储器总线或存储器控制器、外围总线、以及本地总线。作为示例而非限制,这样的架构包括工业标准结构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准关联(VESA)本地总线、以及外围组件互连(PCI)总线(也被称为Mezzanine总线)。关于图1所描述的存储器和程序可以部署在图8的对应的部分中。
[0068] 计算机810通常包括宽泛的多种计算机可读介质。计算机可读介质可以是能够由计算机810来访问的任何可用的介质,并且包括易失性介质和非易失性介质两者、可移动介质和不可以移动介质两者。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质不同于并且不包括经调制的数据信号或载波。计算机存储介质包括硬件存储介质,所述硬件存储介质包括以用于存储信息(例如,计算机可读指令、数据结构、程序模块、或其他数据)的任何方法或技术来实现的易失性和非易失性的、可以移动和不可移动的介质。计算机存储介质包括但不限于:RAM、ROM、EEPROM、闪速存储器或其他存储器技术、CD-ROM、数字通用盘(DVD)或者其他光盘存储、盒式磁带、磁带、磁盘存储或其他磁存储设备、或者可以用于存储期望的信息并且可以由计算机810来访问的任何其他介质。通常而言,通信介质实施计算机可读指令、数据结构、程序模块、或传输机制中的其他数据,并且包括任何信息传递介质。术语“已调制的数据信号”是指这样的信号:具有使该信号的特性中的一个或多个以如将信息编码在信号中的方式来设置或改变的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、RF、红外、和其他无线介质之类的无线介质。上文中的任何组合也应当被包括在计算机可读介质的范围内。
[0069] 系统存储器830包括以易失性存储器和/或非易失性存储器为形式的计算机存储介质,例如只读存储器(ROM)831和随机存取存储器(RAM)832。通常将基本输入/输出系统833(BIOS)(其包含有助于例如在启动期间,在计算机810中的元件之间传输信息的基本例程)存储在ROM 831中。RAM 832通常包含可以由处理单元820立即访问和/或目前由处理单元820操作的数据和/或程序模块。作为示例而非限制,图8示出了操作系统834、应用程序
835、其他程序模块836、以及程序数据837。
[0070] 计算机810还可以包括其他可移动/不可移动易失性/非易失性计算机存储介质。仅仅作为示例,图8示出了从不可移动、非易失性磁介质中读取信息或者向其写入信息的硬盘驱动器841、用于从可移动、非易失性磁盘852中读取信息或者向其写入信息的磁盘驱动器851、以及用于从可移动、非易失性光盘856(例如,CD ROM或其他光学介质)中读取信息或者向其写入信息的光盘驱动器855。可以在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于:盒式磁带、闪速存储器卡、数字通用盘、数字视频磁带、固态RAM、固态ROM等。硬盘驱动器841通常通过不可移动存储器接口(例如,接口840)而连接至系统总线821,磁盘驱动器851和光盘驱动器855通常通过可移动存储器接口(例如,接口850)连接至系统总线821。
[0071] 可替代地或额外地,在本文中所描述的功能可以至少部分地由一个或多个硬件逻辑组件来执行。作为示例而非限制,可以使用的说明性类型的硬件逻辑组件包括:现场可编程阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。
[0072] 在上文中讨论并在图8中示出的驱动器及其相关联的计算机存储介质提供对计算机可读指令、数据结构、程序模块、和针对计算机810的其它数据的存储。例如,在图8中,硬盘驱动器841被示出为对操作系统844、应用程序845、其它程序模块846、以及程序数据847进行存储。应当注意的是,这些组件可以与操作系统834、应用程序835、其它程序模块836、以及程序数据837相同或不同。在这里,给操作系统844、应用程序845、其它程序模块846、以及程序数据847以不同的标号从而说明至少它们是不同的复本。
[0073] 用户可以通过诸如键盘862、麦克风863、以及指向设备861(例如,鼠标、轨迹球、或触摸板)之类的输入设备来向计算机810中输入命令和信息。其它输入设备(未示出)可以包括:操纵杆、游戏垫、碟式卫星天线、扫描仪等。这些和其它输入设备通常通过耦合至系统总线的用户输入接口860而连接至处理单元820,但也可以通过诸如并行端口、游戏端口、或通用串行总线(USB)之类的其它接口和总线结构而连接。可视显示器891或者其它类型的显示设备也经由诸如视频接口890之类的接口而连接至系统总线821。除了监视器之外,计算机还可以包括其它外围输出设备,例如扬声器897和打印机896,它们可以通过输出外围接口895而连接。
[0074] 使用至一个或多个远程计算机(例如,远程计算机880)的逻辑连接来在网络化环境下操作计算机810。远程计算机880可以是个人计算机、手持设备、服务器、路由器、网络PC、对等设备、或其它公共网络节点,并且通常包括在上文中相对于计算机810所描述的元件中的许多个或全部元件。在图8中所描绘的逻辑连接包括局域网(LAN)871和广域网(WAN)873,但也可以包括其它网络。这样的网络环境在办公室、企业范围的计算机网络、内联网、以及互联网中是常见的。
[0075] 当在LAN网络环境中使用时,将计算机810通过网络接口或者适配器870连接至LAN 871。当在WAN网络环境中使用时,计算机810通常包括调制解调器872、或者用于通过WAN 
873(例如,互联网)来建立通信的其它单元。可以将调制解调器872(其可以是内置的或者外置的)经由用户输入接口860或者其它合适的机制连接至系统总线821。在网络化环境中,可以将相对于计算机810或其一部分所描述的程序模块存储在远程存储器存储设备中。作为示例而非限制,图8将远程应用程序885示出为驻留在远程计算机880上。应当理解的是,所示出的网络连接是示例性的,并且也可以使用在计算机之间建立通信链路的其它方式。
[0076] 还应当注意的是,可以以不同的方式对在本文中所描述的不同的实施例进行组合。即,可以将一个或多个实施例的部分与一个或多个其它实施例的部分进行组合。在本文中构想所有这些组合。
[0077] 示例1是一种计算机系统,包括:
[0078] 多个服务器实例,在多租户系统中,所述服务器实例对多个不同的租户进行服务,每个租户与不同的组织相对应并且具有对应的租户数据,所述多租户系统中的服务器实例将与每个租户相对应的所述租户数据同其他租户进行隔离;以及
[0079] 通知流生成器,其从多个不同的进行请求的租户中的每个进行请求的租户接收一组改变请求,每组改变请求指示对与所述进行请求的租户相对应的所述租户数据的改变,所述通知流生成器针对从所述进行请求的租户接收的多组改变请求中的每组改变请求而通知不同的服务器实例,每个所通知的服务器实例保持与所述通知流生成器的连接,直到所述所通知的服务器已经执行了针对其进行了通知的所述组的改变请求中的全部改变,并且此后释放所述连接为止。
[0080] 示例2是任何或所有先前的示例的计算机系统,其中,所述多租户系统是基于云的系统。
[0081] 示例3是任何或所有先前的示例的计算机系统,其中,所述通知流生成器包括:
[0082] 改变分割组件,其将所述多组改变请求分割成每租户分段。
[0083] 示例4是任何或所有先前的示例的计算机系统,其中,所述通知流生成器包括:
[0084] 未决改变存储,所述改变分割组件在所述未决改变存储中将所述多组改变请求分割成所述每租户分段。
[0085] 示例5是任何或所有先前的示例的计算机系统,其中,所述所通知的服务器实例中的每个服务器实例保持与所述通知流生成器的所述连接,并且从给定的每租户分段中拉取与针对其通知了所述组的改变请求相对应的所述改变,直到已经从所述给定的每租户分段中拉取了全部改变为止。
[0086] 示例6是任何或所有先前的示例的计算机系统,其中,所述通知流生成器通过给所述给定的服务器实例提供与所述未决的改变存储中的每租户分段相对应的书签,来通知每个给定的服务器实例。
[0087] 示例7是任何或所有先前的示例的计算机系统,其中,所述给定的服务器实例在拉取和进行所述改变请求时,以个体的服务器实例为基础来实施资源用量约束。
[0088] 示例8是任何或所有先前的示例的计算机系统,其中,针对从额外的进行请求的租户接收的每个额外组的改变请求,所述通知流生成器通知额外的服务器实例以处理额外组的改变请求。
[0089] 示例9是任何或所有先前的示例的计算机系统,其中,所述服务器实例中的每个服务器实例包括:
[0090] 在分离的物理服务器上实现的服务器实例。
[0091] 示例10是一种计算机系统,包括:
[0092] 多租户系统,其对多个不同的租户进行服务,并且保持针对所述不同的租户中的每个租户的分离的、隔离的租户数据,所述多租户系统包括:
[0093] 多个不同的服务器,其处理租户数据的租户改变;以及
[0094] 通知流生成器,其从对应的、进行请求的租户接收多组租户改变,并且将所述多个不同的服务器中的一个服务器指定给每个进行请求的租户,以处理对应的组的租户改变,在所述通知流生成器将所述服务器指定为处理针对另一个租户的租户改变之前,所述服务器对针对向其指定了所述服务器的所述对应的租户的所述组的租户改变中的全部租户改变进行处理。
[0095] 示例11是任何或所有先前的示例的计算机系统,其中,所述多个不同的服务器包括多个不同的服务器实例。
[0096] 示例12是任何或所有先前的示例的计算机系统,其中,所述通知流生成器包括:
[0097] 改变分割组件,其将所述多组租户改变分割成分段,每个分段与一个进行请求的租户相对应。
[0098] 示例13是任何或所有先前的示例的计算机系统,其中,被指定给所述进行请求的租户的所述服务器从与所述进行请求的租户相对应的所述分段拉取所述租户改变,并且进行对与所述进行请求的租户相对应的所述租户数据的所述租户改变,并且当已经对与所述进行请求的租户相对应的所述租户数据进行了来自所述分段的全部租户改变时通知所述通知流生成器。
[0099] 示例14是任何或所有先前的示例的计算机系统,并且还包括:
[0100] 未决改变存储,其存储所述多组租户改变。
[0101] 示例15是任何或所有先前的示例的计算机系统,其中,所述改变分割组件在所述未决改变存储中分割所述多组租户改变。
[0102] 示例16是任何或所有先前的示例的计算机系统,其中,所述多租户系统是在云计算架构中实现的。
[0103] 示例17是一种方法,包括:
[0104] 从第一租户接收第一组租户改变,所述第一组租户改变指示对与多租户系统中的所述第一租户相对应的第一租户数据的所请求的改变;
[0105] 从第二租户接收第二组租户改变,所述第二组租户改变指示对与多租户系统中的所述第二租户相对应的第二租户数据的所请求的改变;
[0106] 建立第一排他同步化流以用于所述第一组租户改变到所述多租户系统中的第一服务器的通信,直到所述第一服务器进行了所述第一组租户改变中的全部所请求的改变为止,所述排他同步化流排除了传送除所述第一组租户改变以外的其他组的租户改变的同步化流;以及
[0107] 建立第二排他同步化流以用于所述第二组租户改变到所述多租户系统中的第二服务器的通信,直到所述第二服务器进行了所述第二组租户改变中的全部所请求的改变为止,所述第二排他同步化流排除了传送除所述第二组租户改变以外的其他组的租户改变的同步化流。
[0108] 示例18是任何或所有先前的示例的方法,并且还包括:
[0109] 利用通知流生成器将所述第一组租户改变存储在未决改变数据存储中的第一分段中,所述第一分段包含仅仅针对所述第一租户的租户改变;以及
[0110] 利用通知流生成器将所述第二组租户改变存储在未决改变数据存储中的第二分段中,所述第二分段包含仅仅针对所述第二租户的租户改变。
[0111] 示例19是任何或所有先前的示例的方法,其中,建立所述第一排他同步化流包括:
[0112] 保持所述第一服务器与所述通知流生成器之间的第一连接,直到所述第一服务器进行了由所述第一组租户改变所指示的、从所述第一租户接收的全部所请求的改变,并且此后从所述第一连接释放所述第一服务器,从而所述第一服务器可以被通知关于针对其他租户的额外的组的租户改变为止。
[0113] 示例20是任何或所有先前的示例的方法,其中,建立所述第二排他同步化流包括:
[0114] 保持所述第二服务器与所述通知流生成器之间的第二连接,直到所述第二服务器进行了由所述第二组租户改变所指示的、从所述第二租户接收的全部所请求的改变,并且此后从所述第二连接释放所述第二服务器,从而所述第二服务器可以被通知关于针对其他租户的额外的组的租户改变为止。
[0115] 尽管已经用特定于结构特征和/或方法行为的语言描述了本主题,但应当理解的是,在所附权利要求中所定义的主题非必须限于在上文中所描述的具体的特征或行为。相反,在上文中所描述的具体的特征或行为是作为实现所述权利要求的示例形式而公开的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈