2008年第2期 计算机系统应用 基于S a a S模式公共服务平台多用户 数据结构的研究 The multi——tenant data architecture study based on the SaaS model for the public service platform 昌中作 徐悦戴钢 (北京交通大学计算机学院网络管理中心]00044) 摘要:本文在研究SaaS模式特点的基础上.首先提出了SaaS应用的体系架构,然后提出了基于SaaS模式的 企业公共服务平台的三个紧密相连的模型——多用户数据模型、元数据管理模型和安全服务模型。 关键词:SaaS多用户数据模型元数据数据扩展安全服务。 1 引言 维护由服务提供商负责管理,服务提供商以租赁的形 SaaS(Software as a service软件即服务)是一种 式向用户提供软件的在线使用。它能使用户在任何地 通过Intemet提供的新的软件使用模式,它消除了企业 方,只要能接入Internet,就能方便的使用软件来管理 购买、构建与维护基础设施和应用程序的需要,并通过 企业。 2 SaaS应用体系结构 首先,我们大致的介绍一下整个 saas应用的体系结构。saas的特点 (数据非本地)和性质(单一代码库,多 应用实例)决定了元数据管理服务和安 全服务既是客户的最大关注点,又是平 台架构考虑的重点。普通的B/S平台 架构不能确保客户数据的安全性,也不 能满足企业业务多样化的要求。为此 我们采取如下系统体系结构,如图1。 在此架构中,软件服务供应商在负 载均衡的服务器上为不同的客户提供 主机服务,在同一代码库上运行多个相 同的应用实例(同构实例),每个应用实 例服务于一定数量不同需求的客户,通 过授权和安全策略来确保不同的客户 图1 访问各自权限范围内的数据,以及区分 不同客户的数据。为了屏蔽服务层对 登录互联网的账号来使用软件。软件的开发、运营和 底层多个数据库的数据访问操作,我们采用面向对象 System Construction系统建设 7 维普资讯 http://www.cqvip.com
计算机系统应用 2008年第2期 的“数据源代理”机制,这样能大大的提高系统的性 库资源得到了最为充分的利用。 能。另外,系统采用可配置的元数据为不同的用户提 供个性化的服务。负载均衡的服务器群作为和用户交 互的统一接口,并且向下管理这些同构实例。同构实 例能够最大化不同用户问的资源共享,并且从最终用 户的角度来看,不会察觉到应用是与多个用户共享的。 用户使用软件的性能由服务水平协议SLA来监管。 企业用户登录之后,网络操作系统NOS根据负载 均衡的原则从实例群中分配一个同构实例为其服务, 并且把用户的目录服务结构和元数据配置信息写入该 实例的用户群信息表。同构实例和用户群信息表绑定 在一起,用于数据安全认证和资源授权。这种绑定能 够避免“受信任的数据连接”的资源权限验证瓶颈的 产生。关于受信任的数据连接将在5.3节中详细论 述。关于认证机制的详细讲解,请见5.1节。 图2 为了满足SQaS应用的需求——多用户、多应用实 3.2名称值对 例、服务可定制性、数据安全性以及信息共享性等特 由于不同的企业会有着各自独特的业务需求,而 点,本文将从数据的角度——多用户数据结构、元数据 固定的没有延伸性的默认数据模型是无法满足企业业 服务以及安全服务等三个方面,给出SQaS应用在数据 务的动态变化和增长的。为此,我们采用“名称值 访问层上的一些设计策略,希望能对整个SQaS公共服 对”¨ 模式来实现系统的数据模型的扩展,如图3所 务平台的设计与实现起到一些作用。 示。 客户在独立的表格中存储定制数据,包含定制数 3多用户数据模型 据的表格记录中包含了一个唯一的RecordID,这个 在SaaS应用中,在满足资源的共享性与多用户高 RecordlD与独立的扩展表格中的一行或者多行相匹 效性的同时,必须区分属于不同客户的数据。系统采 配。对于表格中的各行记录而言,都储存了一个名称 用“共享数据库,独立架构”方法来实现多用户数据模 值对。用户可以根据业务需求创建任意数量的名称值 型,并且采用“名称值对”模式来实现数据模型的扩 对。我们使用元数据来定义每个用户定制的列名和数 展,以满足用户数据的动态增长。 据类型,元数据表与扩展数据表通过ExtLabellD来进行 3.1共享数据库,独立架构 关联。 该数据模型的示意图如图2所示。 元数据表格存储关于每个用户定义的各个定制字 一定数量的不同的用户使用同一个的数据库,每 段的重要信息,其中包括TenantlD、ExtLabeliD、字段名 个用户都拥有自己的表集,形成用户各自专门的架构, 称和数据类型。当最终用户对主数据表记录进行扩展 如上图中的Tenant BJTU与Tenant NIAT。当客户最初 时,应用要做以下四件事情。第一,在原数据表中产生 成为此类服务的用户时,配置子系统会自动为该用户 一新行,填写要扩展列的列名和数据类型,以及Tenan— 创建离散的表集,并将其与用户自己的架构相关联。 tID值。第二,应用为记录创建唯一的RecordID值,此 客户可用SQL CRE scHEMA命令来创建方案,并授 RecordlD用来关联主数据表记录与延伸表。然后记录 权能够存取该方案的用户账号。离散表集创建后,用 本身在主数据表中要保存此RecordID值。第三,在延 户可根据需要添加或者修改列,甚至是表格。 伸表中创建一个包含以下信息的新的行” : 共享数据库,独立架构方法能够保证用户数据的 ・与主数据表记录相关联的RecordID; 高安全性,确保数据的逻辑隔离性,同时使得每个数据 ・与定制字段定义相关联的ExtLabeliD; 维普资讯 http://www.cqvip.com 2008年第2期 ・计算机系统应用 将要定制字段的值转换成字符串。 客户业务的动态变化和增长。 (4)存取控制 企业用户TID(Tenan ̄ID)负责创建多个最终用户 的账户ID,并建立相应的 0 第四,应用还要将ExlLabellD值和RecordID值填入 元数据新行中。 访问控制列表(ACL)来确 定每个用户能够存取使用 的资源和功能。 数 库农 ii i - - }≯ . .ll j 蔓。 Tenant BJ'I lj 企、lI,j}jJ ̄BJTU丰数攒农 - ID …… age sex RecordlD TenantID Extens 。善善 ZrWL BJ FU 5635 6382 ≤≥i ( Z John …… 24 ……25 male male 125 658 (5)树形域定制 为了使客户能够灵活 的根据需求进行软件配 置,将上述选项组织成层 级的配置域,形成一棵树 状配置管理域,如图5所 不O KLBiolnyb … ・・…・・ 2345 f mmemalael {e 96:3582 D R一 】 NI丁JAT 3Tlj 263968 28 效掘扩 农 Record/D Ex ̄nsion/D Value 325 1’R 5635 ^ ’ “BJ” “TT” 。-’ 1 28 275 301 、 69S9 2564 1235 ・‘2w” “10” “15” 每个配置域包含不同 的选项,以反应上述四个 图3 域的配置信息。每个客户 都拥有项级配置域,使他 们能够根据业务需求进行 上述方案使每个用户都能够根据需要创建尽可 能多的定制字段,以满足业务需求。当应用检索客户 记录时,会在延伸表中进行查找,选择与RecordlD相对 应的所有行,并为所用的每个定制字段返回一个值。 4元数据服务 为了满足企业业务需求的变化以及业务逻辑行为 的差异性,SaaS应用应该具有服务可定制性。这可以 通过元数据服务来实现的。元数据服务为客户提供了 服务定制和配置功能,以满足客户特定的需求。元数 据服务可以进行以下四个领域的配置更改,形成四个 层级的配置域,如图4。 (1)用户界面和风格 图4 变更配置,并能在顶级配置域下构建任意层级的一个 或者多个配置域。 用户可以自定义自己页面的风格,如改变图形、色 彩、字体等相关内容。 (2)工作流程和业务规则 5安全服务 5.1认证 不同企业的工作流程和业务规则会有所差别的。 客户可以根据实际需求情况自行配置应用的工作流 程,以满足自己的业务需求。 (3)数据模型的扩展 认证主要是用于实现用户登录时的安全验证,本 系统采用非集中认证模式 。其认证原理如图6所 示。 数据库数据模型的设计应该具有较好的扩展性, 我们采用“共享数据库,名称值对扩展”策略,以满足 在第二章中我们提到,SaaS供应商在创建一个新 System Construction系统建设 9 维普资讯 http://www.cqvip.com 计算机系统应用 2008年第2期 的应用之后,就授权客户管理员负责创建、管理和删除 的合理分-T- ̄D协作。在本系统中的资源和商务功能都 本地账户。在非集中认证系统中,为了使得SaaS服务 使用“角色”来进行管理。通过“角色”来实现数据资 器能够识别这些账户,我们采取的策略是:客户采用与 源的存取控制。角色与企业中的特定岗位功能进行映 其自己的本地目录服务证书相连的联合服务(Federa- 射。每个角色都被赋予一项或者更多“许可”・,分配到 tion Service)。当最终用户尝试访问应用时,联合服务 某个角色的用户就能根据相应的“业务规则”执行“行 将用户进行本地认证,并发布安全令牌,SOaS供应商 动”。如图7所示。 的认证系统将接受安全令牌,并允许用户接入应用。 在上图5.2中,购买应用的用户包含创建与提交 我们采用目前发展成熟的SsL(Secure Sockets Layer安 订单两项许可,审批应用的用户包含提交、批准与拒绝 全套接层协议层)技术来实现这种非集中认证模式。 订单三项许可。这两类用户的角色是不一样的,而且 元数据配胃域管理 访问控 列表 通过不同的业务规则来规 企业用声 功 范他们的业务行动。 资源与商务功能授权 蓁量 A囊CL蓁萋 ACL萋 SaaS应用内部负责对 角色进行管理,角色可包含 元数据配 域管理 单个用户的账户以及用户 拥访问控制列表 。 鬈 量 蓑 群组。不同用户账户和用 资源 商务功能授权 .户群组根据需要被分配到 不同的角色。根据用户所 访 访 无数据配胃域管理 分配到的角色,该用户可获 问 问 控 控 刻 访问控制列表帆 得一项或者多项许可,以执 制 制 列 列 踟资源与商务功能授权 行特定的操作活活动。这 袁 表 些活动通常直接与重要的 ACL ACL 商务功能或应用管理本身 映射。 图5 5.3受信任的数据连接 受信任的数据连接¨ 主要是,用于确保不同企业用户间的数据安全 与企业内部不同用户群问的数据安全,以防止 用户非法访问他人的数据或者未授权的数据。 在SaaS应用中,有两类不同的用户,即企业用 户TID(Tenant ID)和最终用户ID。我们要区分 这两类不同的用户。企业用户TID通过应用访 问自己数据存储区的数据,其数据存储区在逻 辑上通常与其他企业用户的数据相隔离。每个 企业用户TID为一个或多个最终用户ID的应用 存取授权,使最终用户ID能够在企业用户TID 图6 控制下,存取企业用户TID数据的某一部分。 目前,有两种方法经常用来确保安全存取 5.2授权 数据库中存储的数据,一是模拟Ⅲ,二是受信任的子系 授权主要是用于企业最终用户在系统资源的分配 统账户 ”。我们采取综合上述两种方法的方案来确保 和商务功能的权限方面的管理,以确保内部业务流程 数据的安全存取。该方案能够充分发挥数据库服务器 1 0系统建设System Comtrucfion 维普资讯 http://www.cqvip.com 2008年第2期 计算机系统应用 本机安全机制的作用,确保用户数据的逻辑隔离最大 化。其原理如图8所示。 三个模型是实现SaaS应用的核心关键技术,也是实现 的难点。当然,大型数据中心模型的建设,以及应用和 用户 角 业务规则 行动 或用户群 图7 数据在服务器群上扩展也是SaaS应用实施的难 点,在本文中未给出相应的探讨。最后,我们给出 一点建议,为了更好的管理企业业务和适应业务的 增长变化,可以在SaaS应用中融入BPM管理思想, 使得整个体系架构变的更加健壮。 图8 在该方案中,需要为每个企业用户TID建立数据 参爰 文献 库存取账户,并用ACL为每个企业用户账号授权,以使 1 Frederick Chong,Gianpaolo Carraro,Roger Wolter. 其能够访问被允许使用的数据库对象。如果最终用户 Multi—Tenant Data Architecture.Microsoft Corpora- 执行的操作直接或间接要求调用数据库,那么应用会 tion.June 2006. 采用与企业用户账号TID相关联的凭证、而不是与最 2 Frederick Chong,Gianpaolo Carraro.Architecture 终用户ID关联的凭证。数据库服务器不区别区分来 Strategies for Catching the Long Tail.Microsoft Corpo— 自相同企业用户TID的最终用户请求,而是直接允许 ration.April 2006. 这些最终用户访问该用户的数据。 3刘启原著,数据库与信息系统的安全,出版社:科 学出版社,2000一O1一O1. 6结论 4张敏、徐震、冯登国著,数据库安全一一一信息安 本文提出了基于SaaS模式企业公共服务平台的 全国家重点实验室信息安全丛书,科学出版社, 多用户数据体系架构,并从系统数据的角度,提出了多 2005—07—01. 用户数据模型、元数据管理模型和安全服务模型。这 System Construction系统建设1 1
因篇幅问题不能全部显示,请点此查看更多更全内容