论文部分内容阅读
随着云计算技术的不断发展,SaaS(Software as service)作为云计算的三种服务模式之一,正逐渐被人们关注和接受。SaaS凭借其按需租用、不需维护、便于扩展等优势改变了用户使用软件和软件厂商提供软件的传统模式,被认为是能够促进企业信息化建设的强有力武器,具有广阔的发展前景。 多租户技术(Multi-tenancy)是实现SaaS的核心技术之一,在多租户架构下,SaaS应用程序为租户提供集中的,基于网络访问的数据。但随之带来的问题是,数据作为租户最为重要的资产,如何设计一个灵活、可靠和安全的SaaS数据架构,一方面满足租户重要业务数据存储和保密性,另一方面又能满足租户的个性化定制需求,同时还能在较少的成本下,高效的管理和维护这个数据架构。 本文以实现第四级成熟度(―可伸缩、可配置、高性能)的SaaS系统为目标,结合多租户数据架构中―隔离性、可定制性、可扩展性和安全性需求,对多租户数据架构的中关键技术进行了研究,主要研究内容和创新成果包含以下四个方面: (1)提出了一种基于元数据的多租户共享存储模式 目前,SaaS应用的重要特征是允许租户自定义数据模式,之前的研究者先后提出了七种多租户数据存储模式,每种模式均有自身的特点和适用场景,但无法很好的在性能和可定制性上取得平衡。针对以上问题,本文提出的一种基于元数据的多租户共享存储模式,通过划分―共享表、―元数据表和―数据表,将租户共享数据和定制数据分开存储,一方面满足了租户的定制需求,实现对共享关系的属性扩展和数据对象的自定义,另一方面消除了空值的存储,提高了存储效率。同时,为了简化租户的定制流程,本文提出了一种基于本体的定制策略,通过构建本体模板,租户在模板的基础上检索和定制模板组件,提高了数据定制的效率和规范性。最后,针对租户在进行定制数据检索时,因依赖元数据而影响查询效率的问题,本文构建了查询优化树,减少了数据表间的连接项,并通过缓存存储查询结果,减少了数据库的IO次数,提升了检索效率。 (2)提出了一种多租户数据库的分布式索引机制 建立合适的索引对于提升数据库的性能非常重要,而传统索引机制在多租户共享数据库下已经失效,在大量并发访问的情况下,如果一个数据库的操作不能有效的利用索引,则必须面对一个庞大的数据表的扫描,这样会对整个数据库的综合性能造成极大的影响。本文分析了传统索引机制在多租户共享数据库下失效的原因,并构建了一种基于多租户共享数据库的分布式索引机制。研究并建立了的两级索引架构,使得不同租户的索引彼此能良好的隔离,又具有较高的检索效率。通过B+树存储全局索引,并采用一致性Hash算法将待索引的租户数据分布到相对应的存储节点上,进而通过MapReduce并行计算框架建立二级索引,有效的减少了索引建立的时间。研究了索引的更新及合并方法。最后通过实验论证了分布式索引机制下索引的创建和检索效率。 (3)提出了一种多租户数据库的混合扩展机制 随着SaaS应用租户数量的增加以及访问数量的不断增大,单节点的数据库无法满足日益增加的并发请求并逐步成为整个系统的瓶颈。本文提出了一种多租户数据库的混合切分模型,有别于传统的数据库切分,本文采用了混合垂直切分与水平切分的方法,实现了多租户数据库的自适应扩展。在垂直划分时基于层次聚类的思想,首先通过AUX矩阵并计算合并系数建立聚类树,再通过评价模型选取垂直最优切分。垂直切分达到最优后,通过一致性hash对租户id进行取模运算,转入水平切分。实验论证了混合切分模型的有效性,与传统的BVP方法相比较,在外部硬件资源充足的情况下,本文的方法能够选取最优的切分方法,使得增加的分布式事务最少,并具有较高的整体性能。 (4)提出了一种多租户数据库的安全模型 随着云计算的不断普及,安全问题的重要性呈逐步上升的趋势,已成为制约其发展的重要因素。本文提出了一种在云环境下多租户数据库的安全模型,首先论述了分布式环境中的身份认证方法,接着说明了多租户数据库基于数据节点和资源的自主访问控制以及基于BLP模型的强制访问控制策略,随后通过一种DBMS外部加密系统实现对多租户数据库隐私数据的加密和解密,最后提出了一种基于策略的推理控制模型,扫描逻辑SQL中的表和属性,通过策略进行查询转换,实现了对多租户数据库的推理控制。