共享可定制多租户数据的存储器中高速缓存的制作方法

文档序号:6476794阅读:145来源:国知局
专利名称:共享可定制多租户数据的存储器中高速缓存的制作方法
共享可定制多租户数据的存储器中髙速缓存
北旦冃豕
顾客关系管理解决(CRM)解决方案提供了从通过购买和售后的首次接触中创建并维护顾客的清晰景像所需的工具和能力。对于复杂的组织,CRM系统可以提供用于帮助改进销售和巿场营销组织定标新顾客、管理市场营销活动以及激励销售活动的方式的特征和能力。CRM系统可以包括由组织内部或外部的用户单独地或以共享的方式使用的许多组件、硬件和软件。
由此,典型的CRM系统主存多个组织("租户")。可以允许每一个租户通过添加/删除/修改实体、属性、关系、表单、视图、代码级可扩展性插件等来定制其CRM系统。为了分隔由不同租户实现的定制,定制可以被分成存在于一个数据库或多个数据库中的单独的表格。不管数据划分,可能期望在运行时共享尽可能多的非定制、但可定制的信息以最小化存储器需求并提高性能。
概述
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
各实施例涉及高速缓存共享可定制数据以便优化多租户数据共享环境中的存储器和性能。将指示租户数据的定制状态的属性存储在高速缓存中以使得系统能够在高速缓存所请求的数据的同时将数据从单独的租户数据存储提供给租户,并且在所请求的数据已经被高速缓存的情况下不必访问单独的数据存储。可以为多个租户存储"系统级"或非定制数据的单个副本以便节省每一次取出操作中的存储器和系统资源。
通过阅读以下详细描述并査阅相关联的附图,这些和其他特征和优点将是显而易见的。可以理解,前述一般描述和以下详细描述均仅是说明性的,且不限制所要求保护的各方面。
附图简述

图1示出了示例CRM系统体系结构;
图2示出了用于共享可定制多租户数据高速缓存模型的示例属性表;
图3示出了在实现共享可定制多租户数据高速缓存的系统中的租户请求处理
的各示例情形;
图4是其中可以实现各实施例的示例联网环境; 图5是其中可以实现各实施例的示例计算操作环境的框图; 图6示出了用于共享可定制多租户数据高速缓存的过程的逻辑流程图;以及 图7示出了图6的共享可定制多租户数据高速缓存的过程的一部分的逻辑流程图。
详细描述
如以上所简要描述的,允许存储器中的被存储在多个表且甚至是多个数据库 中的共享非定制但可定制数据具有跟踪单个表格中的什么数据已经被定制的能力。 在以下详细描述中,参考了构成其一部分并作为说明示出了各具体实施例或示例的 附图。可组合这些方面,可利用其他方面并且可以做出结构上的改变而不背离本发 明的范围。由此,以下详细描述并不旨在限制,本发明的范围由所附权利要求及其 等效方案所定义。
虽然在结合在个人计算机上的操作系统上运行的应用程序执行的程序模块的 一般上下文环境中描述了各实施例,但是本领域的技术人员会认识到各方面也可以 结合其他程序模块实现。
一般而言,程序模块包括执行特定任务或实现特定的抽象数据类型的例程、 程序、组件、数据结构和其它类型的结构。而且,如本领域的技术人员理解的,各 实施例可以用其他计算机系统配置来实践,包括手持式设备、多处理器系统、基于 微处理器或可编程消费者电子设备、小型机、大型机等等。各实施例还能在分布式 计算环境中实现,其中任务由通过通信网络链接的远程处理设备完成。在分布式计 算环境中,程序模块可以位于本地和远程存储器存储设备中。
各实施例可实现为计算机过程(方法)、计算系统、或者制造品,如计算机 程序产品或计算机可读介质。计算机程序产品可以是计算机系统可读并编码用于执 行计算机进程的指令的计算机程序的计算机存储介质。计算机程序产品也可以是计 算系统可读并编码用于执行计算机进程的指令的计算机程序的载波上的传播信号。
参考图l,使出了 CRM系统100的示例体系结构。CRM系统100可以用CRM体系结构"栈"内的四个物理层来实现。这些层包括用于向用户呈现数据和用户界
面的表示层(例如,基于web的表示)以及用于与诸如电子邮件应用程序、时间 安排应用程序、日历制定应用程序等应用程序交互的应用层104。这些层还包括操 作业务或域逻辑的CRM平台116以及用于管理与数据库服务器114的交互的数据 访问层108。
可组合这些层中的一个和多个或者每一层都可包括诸如数据管理层和数据存 储层等存在于用于数据访问的单独的进程空间中的单独的子层。目录服务器112 可以提供用于标识产品内的安全主体、角色和组的目录服务。应用服务器116可以 提供诸如上述辅助服务。
图2示出了用于共享可定制多租户数据高速缓存模型的示例性属性表200。 CRM系统中的每一种类型的可定制数据(例如,实体、属性或关系)都具有其自 已的特性,并且因此被存储在其自已的表(例如,实体表、属性表或关系表)中。 在多租户CRM系统中,每一个租户可具有其自已的对应于每一种类型的可定制数 据的表格。例如,每一个租户都可具有实体表、属性表和关系表。
根据各实施例,CRM系统还可以提供可定制数据("系统"或"非定制"数 据)的初始集合,该初始集合是CRM系统中每一个租户在安装和配置后可从其开 始的集合。因为频繁访问定制数据,所以可以按高效的方式来为每一个组织将该定 制数据高速缓存在存储器中。这些数据中的大多数都可跨许多租户而保持不变。因 此,各实施例提供了用于共享数据同时维护由特定租户定制的数据的专用副本的方 法。
在CRM系统中,存储器中高速缓存可应用于 *元数据定制(实体、属性、关系等); *用户界面定制(表单、视图等);
*软件开发工具包(SDK)定制(SDK请求/响应等);以及 *代码级定制(可扩展性插件等)
根据某些实施例,共享且可定制的多租户数据可以通过跟踪数据行的"定制 级别"来处理。该信息确定行是共享行、来自于顾客的新的行、已经被定制的共享 行、还是已经被删除的共享行。然后然后使用该信息来确定哪些信息可以共享哪些 信息不可共享。图2中的表200示出了该"定制级别"概念。
表200包括第一列中的属性标识符221、第二列中的属性名称222、第三列中 的数据长度223。实体标识符224和两个属性,即可为空字段225和自定义字段226在后面各列中。最后一列包括定制级别属性227的列表。"定制级别"O意味着"系 统"(系统级数据),l意味着"自定义"(数据对于特定租户是新的或者是对系 统数据的修改),而2意味着"已删除"。
在示例表200中,名称为"收入"的属性已经被删除(原始版本由行231指 示,已更新版本由行232列出),名称为"名称"的属性己经被定制(原始版本由 行233指示,已更新版本由行234列出),而名称为"新字段"的属性已经由租户 创建(如行235中所列出的)。"定制级别"为0的数据是还未被定制的数据并且 由此可跨租户"共享"。
当CRM系统需要从高存缓存中取出可定制数据的一部分时,该高速缓存首先 确定该数据部分是否已经从对应于特定租户的数据库中取出。如果该数据先前没有 被取出过,则高速缓存取出该数据部分。高速缓存然后査看所取出的数据部分的"定 制级别"。如果"定制级别"为0,则高速缓存检查以确定该系统数据是否已经在 该高速缓存中并且如果否,则将该系统数据添加到高速缓存。该高速缓存然后插入 "系统标记",其向高速缓存指示如果该租户再次请求该数据,则该高速缓存应改 为从高速缓存存储中取出该系统数据。如果该数据片段的"定制级别"为1,则高 速缓存将该数据插入对应于特定租户的高速缓存存储中。如果该数据部分的"定制 级别"为2,则不将该数据添加到高速缓存。相反,添加"删除标记",其向高速 缓存指示如果该租户再次请求该数据片段,则高速缓存应该返回该数据不存在的通 知。
图3示出了在实现共享可定制多租户数据高速缓存的系统中客户机请求处理 的各示例性情形。表370的示例性情形结合示例共享数据高速缓存系统300来示出。
根据各实施例的操作开始于在CRM系统中从与租户相关联的客户机342接收 对数据的请求(354)。客户机可以是通过客户机设备或应用程序来访问系统的CRM 系统的任何用户(内部或外部)。如先前所提到的,每一个租户都可以与可定制共 享数据相关联,该数据的一部分可以是非定制的(系统级)而另一部分由该特定租 户定制。另外,可以在该系统中删除对应于租户的数据部分。该CRM系统可以包 括对应于每一个租户的单独的数据库,诸如对应于租户A的数据库(A) 346、对 应于租户B的数据库(B) 348以及对应于租户C的数据库(C) 350。该CRM系 统还可包括单个数据库,其各部分被分配给各个租户。
当在CRM系统高速缓存344处接收到请求时,高速缓存344确定所请求的数 据是否先前已经从对应于作出请求的租户的数据库中取出,并且如果是,则所请求的数据的定制级别属性是什么。高速缓存344通过检査高速缓存存储362来确定该 数据是否已被取出(如附图标记360所示)。
如果该数据先前还没有被取出过,则高速缓存344访问相关数据库并取出该 数据或确定该数据不再存在于该数据库中(例如,通信356、 358)。如果该数据 先前已被取出,并且作为对应于该租户的"系统标记"属性来被存储在高速缓存中, 则该租户需要系统级数据(非定制),于是高速缓存将从高速缓存存储中取出系统 级(非定制)数据并且将其提供给作出请求的租户。如果数据是首次被取出并且该 数据的定制级别指示对于该租户数据是系统级(非定制)数据,则高速缓存344 将向高速缓存存储362添加该系统级数据,只要该数据尚未被存储在那里。另外, 在高速缓存存储362中插入对应于该租户的"系统标记"属性。"系统标记"属性 使得高速缓存能够向请求该特定数据的任何客户机提供系统级(非定制)的数据, 而不必为每一个租户存储该数据的多个副本。如果数据已被定制,则高速缓存直接 为该租户存储该自定义数据,由此使得高速缓存能够识别定制的数据并且将其提供 给作出请求的租户。此外,如果所请求的数据不再存在于租户数据库中,则可将"删 除标记"插入高速缓存存储中以便向将来作出请求的客户机指示对于该租户该数据 不存在,而不必首先检查租户数据库。
此外,可以使得系统能够识别和分配特定类型的定制的属性(在多个租户使 用相同类型的定制的情况下)。然后,高速缓存可以将每一个定制的数据的一个副 本存储在其本地存储中,并且基于定制类型属性来将其提供给作出请求的租户。
现在参考表370的个示例情形,根据第一行中的第一种情形,租户A请求键 为1的数据。高速缓存344访问高速缓存存储(362)并发现对于该租户在该高速 缓存中不存在对应于该键为1的项的条目。由此,高速缓存344访问(356)数据 库(A) 346、取出该数据、通知该数据的定制级别为1 (已定制),并且将该数据 直接存储在对应于作出请求的租户的高速缓存存储362中,并且然后将所取出的数 据提供给作出请求的租户A。
根据第二行中的第二种情形,租户A请求键为2的另一数据部分。该数据先 前已经被取出并且在高速缓存存储362中发现,然而,该高速缓存中的数据对于该 租户是"系统标记"。由此,高速缓存从高速缓存存储中取出该系统(非定制)数 据并将其返回给租户A,而不必从数据库(A) 346中取出该数据。
根据第三行中的第三种情形,租户A请求键为3的另一数据部分。该数据先 前已经从数据库(A) 346中删除,并且该删除指示使用"删除标记"属性来存储在高速缓存存储362中。由此,高速缓存344向租户A提供所请求的数据不再存 在的通知,而不必检查数据库(A) 346。
根据第四行中的第四种情形,租户B请求键为3的数据。该数据还未被租户 B取出过,因此高速缓存344访问(358)数据库(B) 348,取出该数据并将其存 储在高速缓存存储362中,因为它看到在数据库(B) 348中该数据的定制级别为 1,并且因此租户B已定制该数据,并且然后将其提供给作出请求的租户B。
根据第五行中的第五种情形,租户C请求键为2的数据。租户C以前请求过 该数据并且高速缓存已从数据库(C) 350中取出该数据、通知定制级别为0 (对 于系统数据)并且插入对应于该项目的系统标记。非定制数据先前已经为租户A 取出过并且在高速缓存存储362中发现。因为该数据是系统级数据,所以该数据由 所有租户共享,并且因为高速缓存存储具有对于租户C的对应于键为2的数据的 "系统标记",所以可以将由租户A取出的系统数据提供给租户C,而不必从数 据库(C) 350中取出该数据。
图3中的共享定制数据高速缓存系统和各情形出于说明目的而是示例性的。 用于高速缓存共享定制数据的系统可使用运用此处所描述的原理的更多或更少的 组件来实现。高速缓存可定制数据并将其提供给租户的其他情形在如此处所描述的 系统中也是可能的。
图4是其中可实现各实施例的示例联连网环境。CRM系统/应用程序和对共享 可定制数据的高速缓存可以在单个计算设备上本地地实现或者可以在多个物理和 虚拟客户机和服务器上以分布式方式实现。它们也可以在非集群系统或采用通过一 个或多个网络(例如,网络490)来进行通信的多个节点的集群系统中实现。
这一系统可以包括服务器、客户机、因特网服务供应商和通信介质的任何拓 扑结构。同样,该系统可以具有静态的或动态拓扑结构。术语"客户机"可以指客 户机应用程序或客户机设备。虽然实现对共享可定制数据的高速缓存的联网系统可 涉及多得多的组件,但是结合该附图讨论相关组件。
与CRM系统相关联的应用程序可以在各单独客户机设备481-483中实现或者 可以在服务器492中执行并且可以从客户机设备(或应用程序)中的任何一个访问。 类似地,与CRM系统相关联的共享可定制数据高速缓存服务可以在客户机设备中 的一个,更典型地在一个或多个服务器(例如,服务器492)中本地地执行并且由 客户机设备(或应用程序)访问。
与在CRM系统中高速缓存共享可定制数据相关联的数据存储可被包含在诸如数据存储496等单个数据存储中或者分布在与各单独客户机设备、服务器等相关 联的多个数据存储上。可使用专用数据库服务器(例如,数据库服务器494)来协 调这些数据存储中的一个或多个中的数据取出和存储。
网络490可包括诸如企业网络等安全网络以及诸如无线开放式网络或因特网 等非安全网络。网络490提供此处所描述的节点之间的通信。作为示例而非限制, 网络490可以包括包括诸如有线网络或直接线连接等有线介质,以及诸如声学、 RF、红外线和其它无线介质等无线介质。
可以采用计算设备、应用程序、数据源、数据分发系统的许多其他配置来实 现高速缓存共享可定制多租户数据。此外,图4中所讨论的联网环境仅仅出于说明 目的。各实施例不限于这些示例应用程序、模块或过程。
图5及相关联的讨论旨在提供对其中可实现各实施例的合适的计算环境的简 要概括描述。参考图5,示出了诸如计算设备500的示例计算操作环境的框图。在 基本配置中,计算设备500可以是结合CRM服务来提供共享可定制数据高速缓存 的服务器或客户机设备,并且通常包括至少一个处理单元502和系统存储器504。 计算设备500还可包括在执行程序中合作的多个处理单元。取决于计算设备的确切 配置和类型,系统存储器504可以是易失性的(诸如RAM)、非易失性的(诸如 ROM、闪存等)或是两者的某种组合。系统存储器504通常包括适于控制联网的 个人计算机的运作的操作系统505,诸如来自华盛顿州雷德蒙市的微软公司的 WINDOWS⑧操作系统。系统存储器504还可包括诸如程序模块506、 CRM应用程 序522和高速缓存模块524等一个或多个软件应用程序。
CRM应用程序522可以是向与计算设备500相关联的客户机应用程序提供顾 客关系管理服务的CRM服务的单独的应用程序或集成模块。高速缓存模块524可 以提供与如上所述的确定所请求的数据的定制级别属性、高速缓存所取出的数据以 及将所请求的数据或关于数据的通知提供给CRM应用程序相关联的服务。该基本 配置在图5中由虚线508内的那些组件示出。
计算设备500可具有附加特征或功能。例如,计算设备500还可包括附加数 据存储设备(可移动和/或不可移动),诸如例如,磁盘、光盘或带等。这些附加 存储在图5中由可移动存储509和不可移动存储510示出。计算机存储介质可包括 以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方 法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器504、可 移动存储509和不可移动存储510都是计算机存储介质的示例。计算机存储介质包括,但不限于,RAM、 ROM、 EEPROM、闪存或其它存储器技术、CD-ROM、数 字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储 设备、或能用于存储所需信息且可以由计算设备500访问的任何其它介质。任何这 样的计算机存储介质都可以是设备500的一部分。计算设备500还可具有诸如键盘、 鼠标、笔、语音输入设备、触摸输入设备等输入设备512。还可包括诸如显示器、 扬声器、打印机等输出设备514。这些设备在本领域中公知且无需在此处详细讨论。
计算设备500还可包含可允许该这杯诸如通过例如内联网或因特网等分布式 计算环境中的无线网络来与其他计算设备518进行通信的通信连接516。其他计算 设备518可以包括执行与数据访问和目录服务相关联的应用程序的服务器。通信连 接516是通信介质的一个示例。通信介质通常由诸如载波或其它传输机制等已调制 数据信号中的计算机可读指令、数据结构、程序模块或其它数据来体现,并包括任 何信息传递介质。术语"已调制数据信号"指的是其一个或多个特征以在信号中 编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介质, 诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其它无线 介质。如此处所使用的术语计算机可读介质包括存储介质和通信介质两者。
所要求保护的主题还包括各种方法。这些方法可以按包括本说明书中所描述 的结构在内的多种方式来实现。一种这样的方式是通过本说明书中所描述的类型的 设备的机器操作。
另一种可任选的方式是使得这些方法的各单独操作中的一个和多个能够结合 执行某些操作的一个或多个人类操作员来执行。这些人类操作员无需彼此位于同
处,但是每一个人类操作员都可能只具有执行一部分程序的机器。
图6示出了共享可定制多租户数据高速缓存的过程的逻辑流程图。过程600 可以被实现为CRM服务的一部分。
过程600开始于操作602,在那里由CRM系统的高速缓存来接收指示来自租 户的对数据的请求的数据键和租户ID,。处理从操作602前进到判定操作604。
在判定操作604,确定与所请求的数据相关联的项目是否在高速缓存中。该项 可以包括定义所请求的数据的该数据的属性列表,或者该项目可以是"系统标记" 或"删除标记",其指示对于该租户该项目已被取出但是或者等价于已经在该高速 缓存中的共享系统版本或者对于该租户该数据已被删除。如果高速缓存中不存在该 项目,则处理前进到图7中过程700的操作720。
如果在判定操作604处在高速缓存中发现该项目,则处理前进到操作606,在那里从高速缓存存储中取出该项目。处理从操作606移至判定操作608。
在判定操作608,确定所高速缓存的项目是否是"系统标记"。如果是,则处
理前进到操作610,在那里从高速缓存存储中取出项目所指示的系统数据。处理从
操作610移至操作612,在那里将系统数据提供给作出请求的租户。在操作612之
后,处理移至调用过程以便采取进一步的动作。
如果判定操作608处的判定是否定的,则处理前进到判定操作614,在那里确
定项目是否是"删除标记"。如果是,则处理前进到操作616,在那里向作出请求
的租户提供指示不存在的数据的通知。在操作616之后,处理移至调用过程以便采
取进一步的动作。
如果在判定操作614处的判定是否定的,则该判定指示从高速缓存存储中取 出的数据表示具有给定ID的租户专用的定制。处理前进到操作618,在那里将所 取出的数据提供给作出请求的租户。在操作618之后,处理移至调用过程以便采取 进一步的动作。
图7示出了作为图6的共享可定制多租户数据高速缓存的过程的一部分的过 程700的逻辑流程图。
过程700开始于过程600的判定操作604处的否定判定之后的操作720。在操 作720,从与作出请求的租户相关联的数据库中取出所请求的数据。处理从操作720 前进到判定操作722。
在判定操作722,确定所请求的数据的定制级别是否为指示系统级非定制数据 的0。如果定制级别为0,则处理前进判定点724。
在判定点724,高速缓存确定该高速缓存存储是否已包含对于具有给定键的项 目的系统(非定制)数据的副本。如果该系统数据尚未存在于该高速缓存存储中, 则处理前进到操作725。
在操作725,将对于该租户所取出的数据作为系统(非定制)数据插入高速缓 存存储中,其中对于将来需要该系统(非定制)数据的这个或其他租户可以取出该 数据。处理从操作725前进到726。
如果在判定操作724处的确定是肯定的,则该判定意味着对应于给定键的系 统(非定制)数据已经存在于高速缓存存储中。处理前进到操作726。在操作726, 将对应于所取出的数据或作出请求的租户的"系统标记"插入高速缓存存储中。处 理从操作726移至操作728。
在操作728,将系统数据提供给作出请求的租户。在操作728之后,处理移至调用过程以便采取进一步的动作。
如果在判定操作722处的判定是否定的,则处理前进到判定操作730,在那里 确定所请求的数据的定制级别是否为指示不存在的数据的2。如果定制级别为2, 则处理前进到操作736。
在操作736,将对应于所取出的数据和作出请求的租户的"系统标记"插入高 速缓存存储中,该"系统标记"指示该数据已经从租户数据库中删除。处理从操作 736移至操作738。
在操作738,向作出请求的租户提供数据不再存在的通知。在操作738之后, 处理移至调用过程以变采取进一步的动作。
如果在判定操作730处的判定是否定的,则处理前进到操作732,在那里将具 有给定键和租户ID的数据插入高速缓存存储中,因为知道该数据是对于作出请求 的租户是自定义的数据。处理从操作732前进到操作734。
在操作734,将所取出的定制数据提供给作出请求的租户。在操作734之后, 处理移至调用过程以便采取进一步的动作。
过程600和700中所包括的操作是出于说明目的的。高速缓存共享可定制多 租户数据可以由具有更少或更多的步骤以及按使用此处所描述的原理的不同操作 顺序的类似过程来实现。
以上说明、示例和数据提供了对各实施例成分的制造和使用的全面描述。尽 管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利 要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体功能部件和动 作是作为实现权利要求和各实施例的示例形式而公开的。
1权利要求
1.一种至少部分地在计算设备中执行的用于处理多租户环境中的可定制数据的方法,所述方法包括从租户接收对数据的请求(602);确定与所请求的数据相关联的条目是否被存储在高速缓存存储中(604);如果所述条目已被存储并且是删除标记,则将不存在的数据的通知提供给作出请求的租户(616);如果所述条目已被存储并且是系统标记,则从所述高速缓存存储中取出所请求的数据并且将所述数据提供给所述作出请求的租户(610,612);以及如果所述条目已被存储并且是为所述租户定制的所请求的数据,则将定制的所请求的数据提供给所述作出请求的租户(618)。
2. 如权利要求1所述的方法,其特征在于,还包括如果没有与所请求的数据相关联的条目被存储在所述高速缓存存储中,贝U: 确定所述数据是否存在于与所述租户相关联的数据存储中;如果所述数据不存在于与所述租户相关联的数据存储中,则将"删除标 记"条目存储在所述高速缓存存储中并且将所述不存在的数据的通知提供给所述作出请求的租户(736、 738);如果所述数据存在于与所述租户相关联的数据存储中并且是对应于所述 租户的定制的数据,则将所述定制的数据存储在所述高速缓存存储中并且将 所述定制的数据提供给所述作出请求的租户(732, 734);以及如果所述数据存在于与所述租户相关联的数据存储存中并且是系统级数 据,则将系统标记和所述系统级数据存储在所述高速缓存存储中并且将所述 定制的数据提供给任何作出请求的租户(726、 728)。
3. 如权利要求2所述的方法,其特征在于,所取出的系统级数据的仅一个副 本被存储在所述高速缓存存储(344)中以便提供给任何作出请求的租户。
4. 如权利要求l所述的方法,其特征在于,所述定制的数据基于与所述请求 相关联数据键和租户标识符来提供给所述作出请求的租户(370)。
5. 如权利要求l所述的方法,其特征在于,由租户定制的数据仅可以由该租 户访问(370)。
6. 如权利要求l所述的方法,其特征在于,还包括允许租户访问由另 一租户定制的数据。
7. 如权利要求1所述的方法,其特征在于,所述可定制数据(200)包括以下的组中的至少一个元数据、用户界面表单、用户界面视图、可扩展性插件以及 通信参数。
8. 如权利要求l所述的方法,其特征在于,所述数据的定制状态被存储为定 制级别属性(227)。
9. 一种用于处理多租户商业应用程序环境中的可定制数据的系统,包括高速缓存存储器(344);耦合到所述存储器的处理器(502),其中所述处理器被配置成执行程序模块,包括-高速缓存存储(524),其被配置成确定与所请求的记录相关联的条目是否被存储在所述高速缓存存储器中;响应于确定所述条目已被存储并且是删除标记来将不存在的记录的 通知提供给作出请求的租户。响应于确定所述条目已被存储并且是系统标记来从所述高速缓存存 储器中取出所请求的记录并且提供给所述作出请求的租户,其中对任何作出 请求的租户,所述记录的单个副本被存储在所述高速缓存存储器中;以及响应于确定所述条目己被存储并且是为所述租户定制的所请求的记 录来将定制的所请求的记录提供给所述作出请求的租户。
10. 如权利要求9所述的方法,其特征在于,所述高速缓存模块(524)还被 配置成-响应于确定所述高速缓存存储器中不存在与所述记录相关联的条目,确定所 述记录是否存在于与所述租户相关联的数据存储中;响应于确定与所述租户相关联的数据存储中不存在所述记录,将"删除标记" 条目存储在所述高速缓存存储器中,并且将不存在的记录的通知提供给所述作出请 求的租户。响应于确定所述记录存在于与所述租户相关联的数据存储中并且是对应于所 述租户的定制的记录,将所述定制的记录存储在所述高速缓存存储器中并且将所述 定制的记录提供给所述作出请求的租户;以及响应于确定所述记录存在于与所述租户相关联的数据存储中并且是系统级记录,将系统标记和所述系统级记录存储在所述高速缓存存储中并且将所述定制的记 录提供给任何作出请求的租户。
11. 如权利要求10所述的系统,其特征在于,所述高速缓存模块(524)还被配置成将指示所取出的记录的定制状态的定制级别属性存储在所述高速缓存存储器 中作为与所述记录相关联的条目的一部分。
12. 如权利要求10所述的系统,其特征在于,所述定制级别属性(227)被 存储在与所请求的记录相关联的属性表中。
13. 如权利要求9所述的系统,其特征在于,所述处理器(502)还被配置成 执行与顾客关系管理(CRM)系统相关联的商业应用程序模块(522)以便与所述 作出请求的租户进行通信。
14. 如权利要求9所述的系统,其特征在于,与所述作出请求的租户相关联 的数据存储(346, 348, 350)是分配给单个租户的单独数据库和分配给多个租户 的数据库的一部分中的--个。
15. 如权利要求9所述的系统,其特征在于,所述高速缓存模块(524)还被 配置成基于记录标识符和每一个租户的租户标识符来使得租户能够准许与其它租 户共享定制的记录。
16. 如权利要求9所述的系统,其特征在于,所述高速缓存模块(524)还被 配置成基于以下各项中的至少一个来更新所述高速缓存存储器中的与所请求的数 据相关联的条目时间段的期满、租户请求、以及来自与所述租户相关联的数据库 的改变的通知。
17. —种其上存储有指令的计算机可读存储介质,所述指令用于处理多租户 商业应用环境中的可定制数据,所述指令包括响应于接收到来自租户的对数据的请求来确定与所请求的数据相关联的条目 是否被存储在高速缓存存储中(602);如果所述条目已被存储并且是删除标记,则将不存在的数据的通知提供给作 出请求的租户(616);如果所述条目已被存储并且是系统标记,则使得所请求的数据对多个作出请 求的租户可用而无需对于每一个请求都从租户数据存储中取出所述数据(610, 612);以及如果所述条目己被存储并且是为所述租户定制的所请求的数据,则使得定制的数据仅对所述作出请求的租户可用(618)。
18. 如权利要求17所述的计算机可读存储介质,其特征在于,所述指令还包括如果没有与所请求的数据相关联的条目被存储在所述高速缓存存储中并且所请求的数据可从与所述租户相关联的数据存储中获取,贝'h从与所述租户相关联的数据存储中取出所述数据(720); 确定所取出的数据的定制级别(722, 730);如果所述数据是定制的,则仅向所述作出请求的租户提供所述定制的数 据(732、 734);以及如果所述数据是非定制的,则使得非定制数据对任何作出请求的租户可 用,其中所述非定制数据的仅一个副本被存储在所述高速缓存存储中(726, 728)。
19. 如权利要求18所述的计算机可读存储介质,其特征在于,所述指令还包 括将指示所取出的数据的非定制状态的系统标记存储在所述高速缓存存储中(725)。
20. 如权利要求17所述的计算机可读存储介质,其特征在于,所述租户(342) 包括参与CRM系统的组织和组织的成员中的一个。
全文摘要
在具有共享可定制数据的多租户数据共享环境中,属性被分配给所请求的数据并且连同该所请求的数据一起存储在高速缓存存储中。对于被指定为系统数据的非定制数据,一个副本被存储在高速缓存存储中以供多个租户使用,从而允许为每一个数据请求/取出操作优化存储器和性能。可将“删除标记”属性分配给高速缓存存储中的不存在的数据以便允许通知作出请求的租户,而无需在每一次接收到对该不存在的数据的请求时访问租户数据存储。
文档编号G06Q10/06GK101652787SQ200880010778
公开日2010年2月17日 申请日期2008年3月15日 优先权日2007年3月30日
发明者A·萨姆廷, E·刘易斯, J·格雷瓦尔, M·J·奥特, M·维加雅拉加万 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1