550 likes | 1.37k Views
SaaS 模式 下多租户关键技术 研究. 报告人:薛肖 刘 腾飞 2013 年 4 月 25 日 iiec.cqu.edu.cn. Contents. SaaS 简介. 多租户技术介绍. 多租户数据库技术. 多租户个性化配置技术. 基于 OSGI 的个性化配置研究. SECloud. SECloud 是一款高度集成化、灵活可扩展的软件应用生命周期管理云平台,以 SaaS ( Software as a Service ) 模式 为 IT 企业提供一套完整的集成一体化软件应用生命周期管理工具,实现其业务流程、人和信息的高度整合。. 需求管理. …. 项目管理.
E N D
SaaS模式下多租户关键技术研究 报告人:薛肖 刘腾飞 2013年4月25日 iiec.cqu.edu.cn
Contents SaaS简介 多租户技术介绍 多租户数据库技术 多租户个性化配置技术 基于OSGI的个性化配置研究
SECloud SECloud是一款高度集成化、灵活可扩展的软件应用生命周期管理云平台,以SaaS(Software as a Service)模式为IT企业提供一套完整的集成一体化软件应用生命周期管理工具,实现其业务流程、人和信息的高度整合。 需求管理 … 项目管理 软件应用生命周期 统一集成管理平台 问题跟踪 质量管理 测试管理
Why SaaS ? SaaS 自建服务器 软件部署、维护 中小企业软件开发信息化管理的实施难度大、周期长 实施过程复杂 成本高
SaaS发展 iiec.cqu.edu.cn 2010s 1980s 1990s 2000s 软件产品定制 ASP(Application Service Provider) 软件部署为托管服务,通过因特网存取。软件所有权属于供应商,供应商来负责基础设施和软件维护升级工作,客户按一定的付费周期来租赁供应商的服务。 软件托管服务ASP • 提供软硬件环境的服务化; • 当客户数量很大时,供应商需要支出昂贵的软硬件开发维护成本; • 由于当时互联网技术的限制,使得ASP的发展受到了一定的局限。 软件即服务SaaS
SaaS简介 SaaS:软件即服务(Software as a Service)是通过互联网以服务形式交付和使用软件的业务模式。 软件 软件 软件 软件 企业N 企业1 企业2 企业2 企业1 企业N Internet 硬件 硬件 硬件 硬件 软件许可证 维护 维护 维护 维护 Internet 软件许可证 供应商 传统模式 Internet 供应商 SaaS模式 软件许可证 … …
SaaS优势 iiec.cqu.edu.cn 从服务供应商角度 从最终用户角度 • 拿来即用,随处可用 • 无需维护 • 按需租用,按需付费 • 成本降低 • 节省销售和售后维护的成本; • 便捷低成本的服务模式,吸引了大量在传统模式下负担不起的客户,带来新的市场机会; • 通过长尾效应和规模经济来获取收益。
SaaS成功案例 iiec.cqu.edu.cn 全球SaaS业务的开拓者,他推出的以CRM为核心的SaaS服务曾连续三年保持50%的快速增长。 Google运用saas模式向传统软件行业发起挑战,依托其庞大的用户群,推出了一系列的在线办公软件,其中包括电子邮件、即时通讯、日历、字处理和电子表格等。 SAP凭借其在ERP领域的全球领先优势,充分利用SaaS模式的优势,面向中小企业用户推出了BusinessByDesign产品,来提供完全整合的、灵活且易用的SaaS模式的企业管理软件。 国内也已经有许多成功的案例,如以用友、金蝶、金算盘、八百客、阿里软件等为代表从事SaaS的软件厂商。
SaaS成熟度模型 LevelI:定制开发 Level II: 可配置 Level IV: 可配置 多租户 Level III: 可配置 多租户 高性能
多租户介绍 什么是多租户? 多租户技术(multi-tenancy technology)或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间数据的隔离性。 多租户与多用户、虚拟化的区别? 如何实现从单租户到多租户?
优 缺 经济高效; 易于更新和开发; 管理方便。 复杂性; 不够安全。 多租户介绍 100客户 1客户 1客户 1客户 1server 1server 1server 10server Database Database Database Database 传统模式 与 多租户模式对比图
多租户介绍 • 三种多租户技术的主要问题: • 数据库存储模式 • 租户个性化配置 • 伸缩性
数据库存储模式 • 多租户数据库架构设计的三种方式: • 独立数据库模式 • 共享数据库、不同架构模式 • 共享数据库、共享架构模式
独立数据库模式 独立的数据库方式是指,每个租户单独用一个独立的数据库来存储他们的业务数据,即每个租户都是独立的数据库系统。 租户1 租户2 租户3 DB DB DB 实例 基础设施
共享数据库、不同架构模式 共享数据库、不同模式是指所有租户共同使用一个数据库,但每个租户拥有各自不同的逻辑模式表集合,每个租户的数据存储在自己专属的数据表中,即不同的租户使用相同的数据库不同的数据表。 租户3 租户2 租户1 表1 表1 表1 DB 实例 基础设施
共享数据库、共享架构模式 共享数据库、共享模式是指所有租户共享同一个数据库,同一个数据表结构,多租户的数据存储在同一数据表中。 租户3 租户2 租户1 表 DB 实例 基础设施
共享数据库、共享架构模式 • 共享数据库、共享架构模式的实现方法: • 通用模式映射技术 • 基本布局 • 私有表布局 • 扩展表布局 • 透明表布局 • 宽表布局 • XML布局 • 键值对方式 • 基于元数据驱动方式
通用模式映射技术 基本布局: 实施多租户的最基本技术是为每个表添加租户ID列(Tenant),并且租户之间共享表。 私有表布局: 给每个租户独自的私有表。
扩展表技术 扩展表布局: 以上两种布局的结合,关闭扩展分割成独立的表,多个租户可以使用相同的扩展,扩展表同基表一样有一个Tenant列。
透明表技术 透明表布局: 一个Pivot Table是另一种通用的结构,其中在一个逻辑源表中每个行的每个字段都有它自己的行。
宽表技术 宽表布局: 主要通过一个通用表来存放所有自定义信息,里面有租户栏位和许许多多统一的数据栏位。每一行中的数据栏位都会以一个Key一个Value形式存放所有自定义数据。
XML技术 XML布局: 通常由一个通用表和一个XML扩展表组成。通过XML标记来存储租户的扩展信息。不过数据库要支持XML,如IBM的DB2数据库。
键值对方式 其主要思想是把租户共享数据放在基本表中,租户的个性化数据存放在扩展表中。键值对存储方式可以简单有效地组织各租户的数据,支持租户数据模型任意扩展。
基于元数据方式 Metadata table: 是存储用户定制的对象和对象所包含的字段的结构信息,不保存具体的数据; Data table: 存储那些用户定制的对象和对象所包含的字段的数据; Pivot table: 数据透视表,存储特殊数据, 比如用于检索,相关性,唯一性等。
研究方向 基本思路: 采用添加租户ID的方法实现SECloud数据库的多租户特性 利用拦截器技术过滤SQL语句,实现数据库与业务逻辑互联 通过后几种方法,进一步提高数据的可扩展性
多租户个性化配置 • 定制开发模式(软件购买/ASP) • 用户可以根据自己的需求向软件供应商定制产品,供应商会开发出专属于该用户的系统。 • SaaS多租户模式 • 一个应用实例同时供多个租户使用。但不同租户的需求是存在差异性的,如功能、业务流程的需求不同,还有些个性化需求,如属性扩展、界面显示方式等。因此,多租户应用必须具有一种可以满足租户个性化配置所需的能力。
多租户个性化配置 命题:可配置性是SaaS多租户应用的必要条件。 • 反证法: • 假设:没有“可配置性”,依然可以实现SaaS多租户。 • 所有租户租赁的应用具有相同的界面、功能、业务流程; • 所有租户租赁了应用的所有功能,为所有功能付费。 • 然而实际情况是: • 租户的需求在界面展示、业务流程、功能需求等方面存在差异性; • SaaS最大特点是“按需使用,按需付费”,而租户却要为不需要的冗余功能买单。 • 如此一来,非但没有满足租户的需求,还增加了费用,不满足SaaS特征的。 • 所以,假设不成立。 • 结论:可配置性是SaaS多租户应用的必要条件。
多租户个性化配置 UI 可配置:改变用户界面,如页面布局、配色、事件响应等,使得系统的用户体验和界面风格符合企业文化。 功能可配置:在系统的所有功能中,选择自己需要的功能,这些功能的组合形成租户自己的系统。 流程可配置:配置系统的行为,根据业务需求来配置事件的先后顺序,使系统满足租户的业务处理流程。 数据可配置:每个租户对对象属性的需求是不同的,如用户信息,A租户需要name,psw,tel三个属性,而B租户还需要address, e-mail。因此通过添加字段或表格,设置字段类型等来配置租户的扩展性需求。
相关研究 • Salesforce • Apex语言是在Salesforce.com平台上执行的一种强类型编程语言。Apex被用作添加应用程序的业务逻辑(Business Logic),开发数据库触发器,它可以实现小到添加一个字段,大到扩展一个应用的扩展。APEX先写的程序可以发布WebService,并通过SOAP访问。 • Visualforce是一个提供开发用户定制UI的框架,包括类似HTML的 标记语言。可以创建wizard,定义业务流程等。
相关研究 • 数据库技术 • 在数据库中存储配置对象,并用数据库表来管理依赖和关联。过多的数据表和复杂的表间关系,降低系统性能,也不利于维护。
相关研究 • SOA技术 • SOA是一种面向服务的体系架构,服务之间通过简单、精确定义接口进行通讯。其粗粒度、松耦合服务特性使其在SaaS应用中得到应用。常用的技术有WebService,BPEL等,多用来解决SaaS中业务流程的配置。 • SOA用WSDL文件来定义服务,服务是静态的。因此SOA不能动态的管理服务,对服务运行时的动态部署也支持不够。
相关研究 • 基于业务规则 • 定义系统的服务,服务的关联、依赖和约束,编写业务规则,通过规则引擎的加载来生成业务流程。该方法的优点是灵活性很高,但是要编写复杂的业务规则,反而加重了租户的负担。
存在的问题 在对SaaS服务的管理、动态化部署上存在缺陷,对约束和依赖也缺少统一管理; 配置方法过于复杂,租户的配置工作量过大、难度也偏高; 缺少SaaS应用相关公认的标准,包括设计上、性能上等,缺乏验证机制。
基于OSGI的SaaS个性化配置研究 • OSGi(Open Service Gateway Initiative)是面向Java的动态模型,是一种轻量级、松耦合、面向服务的应用程序开发框架,可用它来创建动态化、模块化的Java应用。 • 主要特点:热插拔、模块化、动态扩展、稳定、高效。
OSGI原理 OSGI运行机制
OSGI原理 Bundle的互通信机制
OSGI对SaaS应用的支持 • 生命周期管理:动态的管理和部署SaaS服务; • 模块化:实现SaaS松耦合的设计,提供可配置组件; • 依赖管理:bundle良好的依赖关系管理和互通信功能,解决SaaS配置组建之间的约束关系; • 扩展性:热插拔、动态加载可以实现SaaS应用功能级别的定制扩展。
基于OSGI的SaaS个性化配置研究 • 功能性配置:将应用模块抽象成Bundle,并注册成服务,通过定制服务来实现功能配置。 • 业务流程配置:业务模块封装为OSGI服务,通过Bundle之间的依赖关系来设置约束条件,点击式向导的配置。 • UI配置:基于配置模板,配置文件来管理配置数据,由专门的UI Bundle来管理和加载配置参数。
研究计划 iiec.cqu.edu.cn • 深入研究OSGI规范,将其更好的应用到SaaS; • 提出基于OSGI的SaaS个性化配置解决方法。
实验对象- SECloud iiec.cqu.edu.cn 租户3 租户2 租户1 租户1 租户2 租户3 配置管理层 配置管理层 配置性 功能配置 功能 UI 流程 SECloud SECloud SECloud SECloud VM VM VM 多租户 共享数据库 共享架构 Database Database Database Database Level 2 Level 3
参考文献 iiec.cqu.edu.cn [1] Stefan Aulbach , Dean Jacobs .A Comparison of Flexible Schemas for Software as a Service,SIGMOD’09, 2009. [2] Frederiek Chong & GianPaoloCarraro. Architecture Strategies for Catching the LongTail.MicrosoftCorp.2006. [3] Stefan Aulbach, TorstenGrust, Dean Jacobs, et al, Multi-Tenant Databases for Software as a Service: Schema-Mapping Techniques. SIGMOD’08, 2008. [4] Craig D Weissman, Steve Bobrowski, The Design of the Force.com Multitenant Internet Application Development Platform, SIGMOD 2009. [5] Nitu, MCSI .Configurability in SaaS (Software as a Service) Applications, ISEC’09, 2009. [6] Craig D Weissman , Steve Bobrowski .The Design of the Force.comMultitenant Internet Application Development Platform.SIGMOD’09,2009. [7]叶伟,赵进,叶军等,互联网时代的软件革命——SaaS架构设计,北京:电 子工业出版社,2009. [8]管永明.多租户软件中动态个性化配置与定制技术研究.山东:山东大学,2009. [9]陈伟.面向 SaaS应用的软件定制技术研究.上海交通大学,2011. [10]赵宇晴, SaaS流程可配置模型的研究与实现,计算机应用与软件.2011.
Thank You ! iiec.cqu.edu.cn