(管理科学与工程专业论文)基于SaaS的MultiTenant应用的可配置性研究.pdf_第1页
(管理科学与工程专业论文)基于SaaS的MultiTenant应用的可配置性研究.pdf_第2页
(管理科学与工程专业论文)基于SaaS的MultiTenant应用的可配置性研究.pdf_第3页
(管理科学与工程专业论文)基于SaaS的MultiTenant应用的可配置性研究.pdf_第4页
(管理科学与工程专业论文)基于SaaS的MultiTenant应用的可配置性研究.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中文摘要 摘要 现今互联网的飞速发展促进了信息技术的广泛应用,s a a s ( s o f t w a r ea sas e r v i c e 软件即服务) 应用模式伴随着网络平台的拓宽和便捷应运而生,而其核心应用就 在于实现m u l t i t e n a n t ( 多租户) 。s a a s 模式下的m u l t i t e n a n t 应用告别了以往的 软件定制开发模式,它让众多企业用户通过网络租用同一套系统用例。这不仅使 应用系统软件变得高效、便捷,更重要的是它能够大大降低租户的软件开发成本、 硬件购置成本、培训成本以及系统的升级和维护成本等,这就在无形之中缓解了 企业的成本压力,让企业更专心于自身业务的发展。然而,面对众多的来自不同 行业领域和不同企业的租户来说,软件服务运营商如何“一次开发多人受益 、让 一套系统来满足众多租户的个性化的需求、保证租户同时在线使用,这些都成为 开发s a a s 应用模式的重中之重。因此,这就需要解决s a a s 模式下m u l t i t e n a n t 应用的个性化的配置问题。 本文以实际的租户个性化配置应用模块开发为基础,针对m u l t i t e n a n t 应用 的租户个性化需求问题,主要从三个方面进行研究和阐述:首先,针对租户数据 的使用特点,本文阐述了利用数据结构的扩展和关联来满足租户数据的个性化配 置需求,并设计采用了分布式数据库h b a s e 来缓解目前集中式数据库面对海量数 据存储时的压力,而对于租户的保密性数据则进行了加密的设计;然后,对于系 统功能方面,本文利用细分功能单元和功能组合将应用系统的功能进行合理规划 和组合来满足不同租户对于系统功能的个性化需求;最后,针对租户操作界面的 个性化需求,采用元数据的理念将配置过程以参数的形式进行统一的管理。 关键词:s a a s ;m ui ti - t e n a n t ;个性化配置 英文摘要 a b s t r a c t n o w a d a y s ,t h er a p i dd e v e l o p m e n to fi n t e r n e tb i n g sa ni n f o r m a t i o nt e c h n o l o g y u p g r a d e t h es a a s ( s o f t w a r ea sas e r v i c es o f t w a r ea sas e r v i c e ) a p p l i c a t i o nm o d e l c o m e si n t ob e i n ga l o n gw i t ht h ee x p a n s i o na n dc o n v e n i e n to ft h en e t w o r kp l a t f o r m ,a n d i t sc o r el i e si nm u l t i t e n a n t ( m u l t i - t e n a n t ) a p p l i c a t i o n m u l t i t e n a n ta p p l i c a t i o nu n d e r t h es a a sm o d e lm a k e ss o f t w a r ea p p l i c a t i o n se f f i c i e n ta n dc o n v e n i e n t ,m o r ei m p o r t a n t l y , t e n a n t sc a ng r e a t l yr e d u c et h e i rs o f t w a r ed e v e l o p m e n tc o s t s ,h a r d w a r ea c q u i s i t i o nc o s t s , t r a i n i n gc o s t s ,a n du p g r a d ea n dm a i n t e n a n c ec o s t sb yu s i n gt h ea p p l i c a t i o ns y s t e m , w h i c hv i r t u a l l ye a s e db u s i n e s sc o s tp r e s s u r e sa n dm a k e sm o r ef o c u sc a nb ep u to n b u s i n e s sd e v e l o p m e n t h o w e v e r , w h e nt h e yf a c e sw i t han u m b e ro fd i f f e r e n ti n d u s t r i e s a n dd i f f e r e n tb u s i n e s st e n a n t s ,i ti sp r i o r i t yf o r t h es o f t w a r es e r v i c eo p e r a t o r st oh a v e ” m o r et h a no n eb e n e f i t sf r o mt h eo n l yo n ed e v e l o p i n g ”,t om e e tt h ei n d i v i d u a ln e e d so f m a n yt e n a n t sa n db e i n go n l i n ea tt h es a m et i m e s o ,w eh a v et os o l v et h ep e r s o n a l i z e d c o n f i g u r a t i o ni s s u e so fm u l t i - t e n a n ta p p l i c a t i o nu n d e rt h es a a sf r a m e w o r km o d e t h i sp a p e re l a b o r a t e s t h ep e r s o n a l i z e dn e e d so ft e n a n t sf o rm u l t i t e n a n t a p p l i c a t i o n sm a i n l yf r o m t h r e ea s p e c t sa n d i tb a s e so nap r a c t i c a la p p l i c a t i o nm o d u l e d e v e l o p m e n t :f i r s t ,f o ru s e rd a t a , i tu s e st h ee x p a n s i o na n dt h ec o n n e c t i o no fd a t a s t r u c t u r et om e e tu s e r s p e r s o n a l i z e dc o n f i g u r a t i o n ,a n da l s od e s i g n sah b a s ed i s t r i b u t e d d a t a b a s et oe a s et h ep r e s s u r ew h e nt h em a s sd a t as t o r a g ei nt h ec e n t r a l i z e dd a t a b a s e i t p r o p o s e sae n c r y p t i o nd e s i g nt om a k eu s e r s c o n f i d e n t i a ld a t as a f e ;s e c o n d ,i tu s e s s u b - f u n c t i o n a lu n i t sa n df u n c t i o n a lc o m b i n a t i o nt og i v et h ea p p l i c a t i o ns y s t e mag o o d p l a na n dc o m b i n a t i o nt om e e tt h et e n a n t sf o rt h e i r i n d i v i d u a ln e e d so fs y s t e mf u n c t i o n s ; f i n a l l y , f o rt h ep e r s o n a l i z e di n t e r f a c ei t u s e st h ec o n c e p to fm e t a - d a t at om a n a g e c o n f i g u r e dp o i n t sa b s t r a c t e da st h ef o r mo fp a r a m e t e r s k e yw o r d s :s a a s ;m u l t i - t e n a n t :p e r s o n a l i z e dc o n f i g u r a t i o n 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果, 撰写成硕士学位论文竺基壬曼丝墨的m 坠! 鱼:! 曼堕型廛旦的亘配置:陛硒究:。除论 文中已经注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均已在 文中以明确方式标明。本论文中不包含任何未加明确注明的其他个人或集体已经 公开发表或未公开发表的成果。本声明的法律责任由本人承担。 学位论文作者签名:象匕建 学位论文版权使用授权书 本学位论文作者及指导教师完全了解大连海事大学有关保留、使用研究生学 位论文的规定,即:大连海事大学有权保留并向国家有关部门或机构送交学位论 文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将本 学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫 描等复制手段保存和汇编学位论文。同意将本学位论文收录到中国优秀博硕士 学位论文全文数据库( 中国学术期刊( 光盘版) 电子杂志社) 、中国学位论 文全文数据库( 中国科学技术信息研究所) 等数据库中,并以电子出版物形式 出版发行和提供信息服务。保密的论文在解密后遵守此规定。 本学位论文属于:保密口在年解密后适用本授权书。 不保密回:请在以上方框内打“ ) 1 论文作者签名。垂岜超导师签名2 一f 琴缸叶文 日期:矽,。年钿f i e f 基于s a a s 的m u l t i - t e n a n t 应用的可配置性研究 第1 章绪论 1 1 研究背景及意义 现今我们已经全面进入了互联网的高速信息时代,从政府办事机关、企业运营机构 到个人网络信息交互,无处不都在分享着互联网时代所带来的便捷与高效。s a a s 模式就 在这样一个互联网信息时代下应运而生,能最优化地整合资源,为企业运营机构的管理 经营活动提供便捷的服务。s a a s 的简称始于2 0 0 1 年2 月s e a 的白皮书“战略背景:软 件即服务 ,它由a s p ( t h ea p p l i c a t i o ns e r v i c ep r o v i d e r 应用服务提供商) 继承发展而来, 它告别了以往的定制开发所带来的软硬件昂贵的开发维护成本和较长的开发时间,s a a s 模式使得一次开发多次应用成为现实。s a a s 模式借助于互联网平台,将软件由商品定义 转变为服务化的定义。服务提供商开发软件应用系统,并将其统一部署在自己的后台服 务器上,不同的企业用户根据自己的不同需求通过互联网向服务提供商定制软件应用服 务,按照使用的功能和时间长短或者使用次数等方式来进行付费,而服务提供商也通过 互联网向付费用户进行定制化的服务。企业用户管理企业经营活动不再需要花费高昂的 软件开发费用,也不再需要购买软件,而是直接向服务提供商租用基于互联网网络的软 件应用服务;由于应用软件应用服务系统是部署在服务提供商的服务器上,因此应用系 统的软硬也是由服务提供商进行维护的,这又为企业用户省去了定期维护的成本。 对于企业用户来说,这种“拿来即用”的新型软件应用模式的诱惑力极大,用户无 须在自己的电脑和服务器上安装部署应用软件,对于s a a s 软件的维护和升级问题都是 由服务提供商来承担的,客户无须花费精力。“按需使用使得客户只为使用到的功能 付费,没必要为其他使用不到的功能浪费成本。s a a s 软件的运行环境是借助通用的网络 浏览器平台,因而只要有了网络就能接受软件服务进行办公处理业务,无处不在的网络 接口使得s a a s 软件“随处可用”。客户的各种业务数据都是通过互联网存储在服务提供 商的数据库服务器上的,这种虚拟的数据存储使得租户的业务数据受到计算机病毒的威 胁和感染的机会大大减少,从而保证了客户数据的安全性。 s a a s 软件服务的优势日趋显现,越来越多的企业客户就都会开始使用这种既省钱又 省时省力的模式来经营和管理自己的公司。一套特定功能的软件应用系统,很多企业客 绪论 户都会用到,而不同租户使用服务提供商提供的同一个用例就形成了m u l t i t e n a n t ( 多 租户) 的使用模式。租户的数据可能存储在一个单独的数据库中也能是不同的数据库, 但他们使用的却是同一个用例系统软件。这种一次开发、次实施部署对于开发服务商 来说也节省了相当大的成本而且更加便于管理。m u l t i t e n a n t 应用结构是核心意义上的 s a a s 架构,它的应用有效地降低了s a a s 架构的运行维护和硬件购置的成本,能够最大 化地发挥s a a s 所带来的规模效应。 作为一个大型成熟的s a a s 下的m u l t i - t e n a n t 应用系统来说,庞大的客户群又带来了 个性化需求的问题,不同的企业租户会根据自己企业内部的管理模式和流程提出不同的 系统功能、数据、流程以及界面等个性化的需求。以服务为目的的s a a s 架构模式必须 满足这些多样化的个性需求,要满足这些来自不同租户的个性化需求就需要这个共享的 用例具有个性化的可配置性,这其中包括了后台数据的可配置性、应用功能的可配置性、 业务处理流程的可配置性、操作界面的可配置性等方面。而如何满足这些个性化的可配 置要求以及如何让众多租户同时在线使用而不出现数据以及功能方面的紊乱,让租户有 较高的满意度,都是s a a s 框架下m u l t i t e n a n t 应用需要解决的核心问题。 s a a s 软件模式是以互联网为平台为众多租户提供在线软件服务,简而言之,不同的 用户同时在线使用自己租用的、部署在同一个服务提供商那里的软件应用用例而彼此互 不干扰,这就形成了m u l t i t e n a n t 应用模式。租户仅仅是通过互联网平台就可以操作使 用“属于自己的 软件应用系统,而事实上是很多租户同时在线使用这套软件系统的, s a a s 软件服务提供商使用一套软件用例,为众多租户提供服务,而租户完全感觉不到其 它租户的存在,就感觉是自己在使用这套软件一样。这种租用服务以使用次数或者使用 时间的长短来进行付费,而软硬件的升级和维护也都是由提供服务的软件服务商来负责 的,这就为租户降低了大量的成本和时间。众多的租户带来了s a a s 的规模效应,那么 如何解决不同租户的个性化需求问题,如何进行数据隔离以保证用户的数据安全,可配 置的应用模式将为这些问题提供解决方案。 1 2 国内外研究现状 互联网的大范围应用普及使得借助于这一网络平台媒介的s a a s 模式得以迅速发展, 基于s a a s 的m u l t i - t e n a n t 应用的可配置性研究 技术也日趋先进。本文将对国内外几大软件服务提供商就s a a s 软件研发应用方面的现 状进行介绍。 s a l e s f o r c e c o r n s a l e s f o r c e 公司创办于1 9 9 9 年,专门从事在线软件研发和销售。目前s a t e s f o r e e 公司的在线c r m ( c u s t o m e rr e l a t i o n s h i pm a n a g e m e n t 客户关系管理) 应用软件已经被 众多企业和用户广泛使用,这就无疑确立了其在线软件市场的霸主地位,现在的 s a l e s f o r c e 公司已经完全转化为一个s a a s 软件租用服务提供商。在线软件是一种长期产 品,s a l e s f o r c e 公司不断进行产品升级使得这种服务化的商品软件日趋完善,越来越多 的全球企业使用者都从中受益。每次升级在线软件对客户都有一种新鲜感,而这种升级 却不会花费客户很高的费用。在线软件服务给s a l e s f o r c e 公司带来了巨大的利润和成功。 2 0 0 6 年s a l e s f o r e e 公司推出a p e x ,成为世界首个云计算程序语言。a p e x 平台提供了 n a t i v e ( 单一型) 、c o m p o s i t e ( 混合型) 、c l i e n t ( 客户机型) 三种应用程序,更强大的 可扩展性和集成性使得s a a s 软件m u l t i t e n a n t 应用的个性化配置更加灵活。据相关资料 显示,“截止2 0 0 8 年,s a l e s f o r c e 公司已经连续三年保持着5 0 的迅猛增长速度,2 0 0 8 年的收入超过l o 亿美元,总市值高达6 0 亿美金 。“开放与标准化刀成为s a l e s f o r e e 公 司目前的战略重点,这无疑将巩固其在s a a s 行业的领先地位。 g o o g l e 公司 作为s a a s 行业的先锋,g o o g l e 公司将搜索业务作为其核心,积极拓展个性化搜 索、在线办公套件( 包括即时通讯、g m a i l 、电子表格、字处理等) ,这积累了大量的用 户群一g o o g l e 先后开放了他的搜索引擎和g o o g l e 地理信息的a p i ,这使得大量的第三 方开发机构加入到了g o o g l e 的s a a s 开发当中。“g o o g l ea p pe n g i n e 是g o o g l e 公司 于2 0 0 8 年发布的在线软件开发平台,它向第三方开发人员提供了一个在线软件的集成 开发环境和运行环境,从此软件开发自身就实现了s a a s 化。g o o g l e 公司于2 0 0 8 年发布 的a n d r o i d 智能手机就是一款s a a s 软件开发和运行平台产品。g o o g l e 公司的g f s ( g o o g l ef i l es y s t e m ) 是一种基于l i n u x 的专有分布式文件系统,它的应用也为s a a s 的大文件分布式存储提供了可靠的数据存储解决方案。g o o g l e 公司以其各种先进的s a a s 技术和庞大的互联网资源,必将成为全球s a a s 行业发展中的中坚力量。 绪论 其他国内软件公司 阿里软件公司( a l i s o f t ) 属阿里巴巴集团旗下,a e p 平台就是阿里软件打造的阿里 软件互联平台,它是第一个实现接入、运行、推广、销售、计量、支付和维护等一体化 的运营平台,通过这个平台,许多软件厂商和个人都可以进入s a a s 软件开发当中来。 阿里软件在这个a e p 平台中开发了中小企业在线财务软件、外贸管理软件和网络营销 软件等几个示范性的软件应用系统。目前阿里软件已经相继开放了b 2 b 、淘宝、支付宝 和阿里妈妈等电子商务资源的a p i 接口,这些o p e na p i 接e l ,支持r e s t 和w e b s e r v i c e 等多种调用形式。在未来,阿里软件还将陆续o p e nd a t a ( 开放数据) 和o p e nu i ( 开放 集成界面) ,支持多方应用集成和规模定制,最大化满足客户个性化需求。这些示范使 得阿里软件迅速成为中国s a a s 软件产业的龙头企业。 此外,用友软件和金蝶软件各自的s a a s 软件门户伟库网( w e c o o t o m ) 和友商网 ( y o u s h a n g c o r n ) 的推出,都暗示着软件的s a a s 化潮流势不可挡。 1 3 本文主要研究内容和基本架构 一个m u l t i t e n a n t 应用系统的哪些方面需要进行对租户的个性化可配置管理呢? 从 数据库层面看,需要进行用户数据的可配置;从表现层来看,需要进行操作界面的可配 置;而从w e b 逻辑层来看,则需要进行系统功能方面的可配置。本文将从用户数据、 系统功能、操作界面等方面来进行m u l t i - t e n a n t 应用的个性化可配置性分析与研究并实 现m u l t i t e n a n t 模式的e r p 系统中的对租户个性化配置管理模块,通过这个模块来对配 置进行统一的后台管理。 本文章的结构如下: 第二章在第一章绪论的基础上重点研究如何实现用户数据层面的个性化配置; 第三章重点研究利用细分功能单元和组合功能来实现系统功能的个性化配置; 第四章重点研究操作界面的个性化配置,利用了元数据的思想,将配置以参数化的 形式进行统一的管理: 第五章给出了对于用户保密性数据进行加密的解决方案; 最后对全文进行总结和本论文研究技术的发展趋势和前景。 基于s a a s 的m u l t i - t e n a n t 应用的可配置性研究 第2 章用户数据的个性化配置 本系统模块进行可配置之前需要对租户的管理进行统一的规划,因此我们可以在需 要隔离的业务表中都加上t e n a n t i d 字段来从根本上保证租户之间数据的安全隔离,如图 2 1 所示即为租户的客户管理类图。 图2 1 租尸管理类图 f i g 2 1t e n a n tm a n a g e m e n tc l a s sd i a g r a m 对租户有了统一的管理之后,本着以“数据为中心”的思想,就需要考虑如何安排 租户数据的物理结构。数据的个性化配置可以从数据库和数据结构两方面来进行研究。 2 1 数据库的扩展 2 1 1 数据库的隔离与共享 目前的定制开发所采用的数据库方案是独立数据库形式,即一个应用实例部署在一 个数据库中,没有使用权限的用户是无法进入的,如图2 2 所示。如果为不同的租户都 用户数据的个性化配置 提供独立的数据库,那就需要昂贵的硬件购置成本和独立维护费用,这种数据库实施方 案并没有充分发挥s a a s 模式带来的规模效应。 ki j a t a d a s ea , 、 t e n a n ta 心a t a b a s e 够 t e n a n tb 图2 2 独立数据库模式 f i g 2 2s t a n d a l o n ed a t a b a s em o d e l 为了降低成本,可以考虑让租户共享一个或者多个数据库。但是每个租户拥有各自 不同的数据结构,这样某种程度上提供了一定程度的逻辑数据隔离,而且每个数据库都 可以支持更多数量的租户,成本比独立数据库模式会节省很多。如图2 3 所示。 图2 3 共享数据库独立数据结构模式 f i g 2 3s h a r ed a t a b a s e s t a n d a l o n ed a t a b a s em o d e l s a a s 软件模式就是让共享最大化来实现资源合理配置。如果租户不仅共享数据库, 而且也共享同一种数据结构,这种数据库方案将共享实现了最大化,如图2 4 所示,这 种模式可以使用h t t p s 协议,以s s l ( s e c u r i t ys o c k e tl a y e r ) 交换数据来增强通信安全, 对用户数据采用d e s 算法进行加密来保证数据的安全隔离性。 图2 4 共享数据库和数据结构 f i g 2 4s h a r ed a t a b a s ea n dd a t as t r u c t u r e 基于s a a s 的m u l t i - t e n a n t 应用的可配置性研究 无论是哪种数据库模式都有其各自优势,对于银行、证券等对数据隔离程度要求非 常高的金融性企业可以选择独立数据库模式,他们强大的资金支持完全可以负担独立数 据库带来的购置和维护费用。而对于一般的中小企业来说,选择共享模式可以减轻这些 方面的负担。具体选择哪种方式需要用户根据自身经济实力和对系统运行效率及安全的 综合考虑。本系统模块采用第三种共享数据库及数据结构模式来最大化降低开发成本。 2 1 2h b a s e 分布式数据库 当用户越来越多时,需要存储的数据也越来越庞大,对数据库的处理能力的要求也 越来越高,当一套在线软件的用户达到一定程度时,单个p c 服务器上的数据库系统处 理业务数据时可能会十分吃力,造成用户的效率低下。为解决这个问题,我们放弃目前 的集中式数据库存储方式,改用分布式数据库存储。 i - i b a s e 是a a p c h e 的一个结构化数据的分布式存储系统,它的系统架构如图2 5 所示。 图 2 5 h b a s e 系统结构 f i g 2 5h b a s es y s t e ma r c h i t e c t u r e 由于i - l _ b a s e 是基于文件的,因此要增大每个进程打开的文件句柄数,具体方案代 码如下( 本系统模块使用j a v a 程序开发) : i m p o r tj a v a i o i o e x c e p t i o n ; i m p o r to r g a p a c h e h a d o o p h b a s e c l i e n t h t a b l e ; i m p o r to r g a p a c h e h a d o o p h b a s e c l i e n t s c a n n e r ; 用户数据的个性化配置 i m p o r to r g a p a c h e h a d o o p h b a s e i o b a t c h u p d a t e ; i m p o ao r g a p a c h e h a d o o p h b a s e i o c e l l ; i m p o r to r g a p a c h e h a d o o p h b a s e i o r o w r e s u l t ; p u b l i cc l a s sm y c l i e n t p u b l i cs t a t i cv o i dm a i n ( s t r i n ga r g s ) t h r o w si o e x e e p t i o n h b a s e c o n f i g u r a t i o ne o n f i g u r a t i o n = n e wh b a s e c o n f i g u t a t i o n o ; h t a b l et a b l e = n e wh t a b l e ( c o n f i g u r a t i o n , ”g o o d s ”) ; b a t c h u p d a t eb a t c h u p d a t e = n e wb a t c h u p d a t e ( g o o d s ”) ; b a t c h u p d a t e p u t ( ”m y c o l u m n f a r n i l y :c o l u m n q u a l i f i e r l ”, e o l u m n q u a l i f i e r lv a l u e ! ”g e t b y t e s o ) ; b a t c h u p d a t e d e l e t e ( m y c o l u m n f a m i l y :c e l l l w a n t d e l e t e d ”) ; t a b l e c o m m i t ( b a t c h u p d a t e ) ; c e l lc e l l = t a b l e g e t ( ”m y r o w ,”m y c o l u m n f a m i l y :c o l u m n q u a l i f i e r l ”) ; s t r i n gv a l u e s t r = n e ws t r i n g ( c e l l g e t v a l u e 0 ) ; s c a n n e rs c a n n e r = t a l e g e t s c a n n e r ( n e ws t r i n g 1 ”m y c o l u m n f a m i l y :c o l u m n q u a l i f i e r l ”) ) ; r o w r e s u l tr o w r e s u l t = s c a n n e r n e x t o ; w h i l e ( r o w r e s u l t ! = n u l l ) s y s t e m o u t p r i n t l n ( ”f o u n dr o w : + n e ws t r i n g ( r o w r e s u l t g e t r o w 0 ) + w i t h v a l u e : + r o w r e s u l t g e t ( ”m y c :o l u m n f a m i l y :c o l u m n q u a l i f i e r l g e t b y t e s 0 ) ) ; r o w r e s u t l = 8 c a n n e r n e x t 0 ; f o r ( r o w r e s u l tr e s u l t :s c a n n e r ) s y s t e m o u t p r i n t l n ( ”f o u n dr o w :”+ n e ws t r i n g ( r e s u t l g e t r o w 0 ) + ”w i t hv a l u e :”+ r e s u l t g e t ( ”m y c i o l u m n f a m i l y :c o l u m n q u a l i f i e r l g e t b y t e s 0 ) ) ; s c a n n e r c l o s e ( ) ; 8 基t - s a a s 的m u l t i - t e n a n t 应用的可配置陛研究 2 2 数据结构的扩展 数据结构是系统设计中最为重要的一个环节,而m u l t i t e n a n t 应用的数据可配置性 的重点就是如何扩展数据结构。 2 2 1 定制追加字段 这是一种最传统的数据结构实现方案。当租户对数据的需求有变化时,就在数据表 上增加相应的字段。例如库存模块部分的货物信息表g o o d s ,如表2 1 所示。租户0 0 0 1 需要追加单个货物的重量( s i n g l e ) 和货物来源地( f r o m ) ,租户0 0 0 2 需要追加货物的 出库时间( d a t e f r o m ) 。这种数据延伸的方式是最简单的,只要租户有字段需求的变化, 直接在原表中进行相应字段的更改扩展就可以。如果数据库是租户独享的,那么追加字 段方式可以接受,并不会影响其它租户。但对于s a a s 下的m u l t i t e n a n t 应用来说,若允 许每个租户都增加自定义的字段,大量的冗余数据就会严重破坏表结构,从而影响到其 它租户的使用效率。 表2 1 定制追加字段 t a b 2 1c u s t o ma d df i e l d n ot e n a n t i dn a l t l e s i n g l e f r o md a t e f r o m 10 0 0 1 卡车 8 上海 20 0 0 l 轿车 2 北京 30 0 0 2 钢铁 2 0 1 0 1 1 40 0 0 2 粗材 2 0 1 0 2 - 2 2 2 2 预先分配字段 预分配字段就是在表中预先扩展分配一定数量的字段,当租户需要扩展字段时,就 可以使用这些预先分配的字段。如表2 2 所示,预先在表中保留整型字段p r e i n t ,字符 串型字段p r e s t r ,日期型字段p r e d a t e ,当租户有字段追加要求的时候就可以调用这 些预留字段。但问题也随之而来,预分配的字段对当前租户代表什么含义,同一个预分 用户数据的个性化配置 配的字段对不同租户又代表什么含义,如果表中只预分配1 个整型字段,而租户0 0 0 1 需要两个整型字段怎么办? 如果预分配字段设计太多就会造成数据库的膨胀,同时也可 能造成大量无意义的字段,形成存储空间的浪费。 表2 2 预分配字段 t a b 2 2p r e a l l o c a t e df i e l d n ot e n a n t i dn a m ep r e i n tp r e s 仃p r e d a t e l0 0 0 l 卡车 8 上海 2o 0 0 1 轿车 2 北京 3o 0 0 2 钢铁 2 0 l o 1 1 4o 0 0 2 粗材 2 0 1 0 2 2 2 2 3 扩展关联表 扩展关联表就是增设一个表来存放需要扩展的字段,同时增设一个存放扩展数据的 数据表,这样三表关联就可以达到满足不同租户的不同扩展需求的目的。具体扩展关联 结构关系如图2 6 所示。 一 n 0 +t r o t 默i 电哇n e , 。0 藤蛇务数韬表 黝 0 0 0 l 一辫獭磁嬲獭 # 7 绷 2 ,0 l 轿车w 系列 一 3 ,0 0 0 2钢锭p , 扩燧数攒袭 4 p 0 0 0 2穗术树矿 - 一 融l d i飘b l e n p a i i xc o n 趣l v a l r m o , o 。 , 鲶鳓矿和嬲彰 b 7 。 l o l jl? 妒r 孓。霭 觏孵j 秽聪彰l ;么篪么滋。够2藤黝 一 1 0 0 g o o d s o 2 矿1 0 l2 一 i l 扩展孕段表 1 0 0 4 矿g 扣1 0 2 北京, c o 蛹g i m1) u m t i i xh b k c o n t e 越矿 1 啊 一 l 0 0 5 一 g o o d 3 p1 0 3 2 0 1 0 :i - 黼喇 0 0 0 : 缓麴黟 铴唾燃! 蚴 一 1 0 0 6 ; g o o d , 鲜 和 1 0 3如1 0 2 1 0 2 0 0 0 i g o o d s + f r o m ,s , , 口 , 1 0 3 0 0 0 2 酗o d s *n 吐枷秽 d a l e , oo ,o一一 。 图2 6 扩展关联表结构图 f i g 2 6s t r u c t u r eo fe x t e m i b l ea s s o c i a t i v et a b l e 在扩展字段表中所配置的扩展数据与原业务数据表中的字段t e n a n t i d 是相对应的; 基于s a a s 的m u l t i - t e n a n t 应用的可配置性研究 扩展数据表中的d a t a l d 与原业务数据表中的主键n o 字段是相对应的;扩展字段表中 的c o n f i g l d 与扩展数据表中配置扩展项是相对应的。例如,租户0 0 0 1 针对g o o d s 数据 定义了两个扩展数据1 0 1 ( i n t 型的s i n g l e u n i t 字段) 和1 0 2 ( s t r 型的f r o m 字段) ,与租 户0 0 0 1 的原业务数据行1 对应的就会有两条扩展数据1 0 0 1 ( s i n g l e u n i t :8 ) 和1 0 0 2 ( f r o m :上海) 。 扩展关联表用一种很灵活的方式解决了租户的自定义扩展字段。租户每增加一种自 定义字段就会在扩展字段表中增加一条扩展记录,同时,与原业务数据表对应的行业会 增加一条扩展数据到扩展数据表中。这样不会造成数据库空间的浪费,也会很好的满足 租户的数据扩展需求。因而本系统模块的数据结构就采用这种灵活的扩展方式来对租户 的数据进行个性化需求的存储管理。 2 2 4h d f s 分布式文件存储 目前的数据库在存储超过1 t b ( 1 0 2 4 g b ) 以上数据文件时,一般会采用 d a s n a s s a n 架构,现今的系统都需要对用户的操作日志进行记录,而且都需要保存 一年以上。另外,对于一些用户的特殊要求的超大视频文件或者搜索引擎文件以及日志 压缩包等都容易对数据存储空间造成压力甚至崩溃。 图2 7h d f s 架构 f i g 2 7 h d f ss t r u c t s 用户数据的个性化配置 为了缓解这种压力,本文将采用大文件分布式文件存储策略。h d f s ( h a d o o p d i s t r i b u t e df i l es y s t e m ) ,它是a p a c h e 基金的h a d o o p ( 包含两类技术:分布式文件存储 系统h d f s 和m a p r e d u c e 分布式计算) 的核心分布式文件系统。如图2 7 为h d f s 架构 图。 h d f s 文件由序列块组成( 瑚) f s 通常定义的块大小是6 4 m ,一个h d f s 文件最多 可以被切分成1 2 8 m b 个块,这也就保证了h d f s 能够对大文件实施存储) ,其中每一个 序列块都有多个副本,而每一个副本存放在集群中的不同计算机得不同数据节点上。 m a p r e d u c e 通过把应用分割成很多小序列块的工作单元来使每一个工作单元能够处理 它可以访问的副本,同时把数据处理结果汇集起来,核心配置代码如下: 1 9 2 1 6 8 1 1 ln a m e n o d e 1 9 2 1 6 8 1 1 2d a t a n o d e l 1 9 2 1 6 8 1 1 3d a t a n o d e 2 】9 2 1 6 8 】1 4d a t a n o d e 3 文件。 ( 1 ) 配置集群模式 m k d i r h o m e a d m i n h a d o o p i n s t a l l e d c l u s t e r - c o n f 在c l u s t e r - c o n f 目录下创建m a s t e r s 、s l a v e s 、h a d o o p s i t e x m l 、h a d o o p e l i v s h 四个 m a s t e r s 文件 n a m e n o d e # m a s t e r n a m eo ft h em a c h i n e s l a v e s 文件 d a t a n o d e l d a t a n o d e 2 d a t a n o d e 3 h a d o o p s i t e x m l 基于s a a s 的m u l t i - t e n a n t 应用的可配置性研究 h a d o o p t m p d i r h o m e a d m i n h a d o o p - i n s t a l l e d f i l e s y s t e m f s d e f a u l t n a m e h d f s :n a m e n o d e :5 4 3l0 m a p r e d j o b t r a c k e r h d f s :n a m e n o d e :5 4 31l d f s r e p l i c a t i o n 3 m a p r e d c h i l d j a v a o p t s x m x 512 m h a d o o p e r l v s h 文件 e x p o r tj a v a h o m e = u s r l i b j 2 s d k l 5 - s u n e x p o r th a d o o p _ n a m e n o d e _ o p t s = - d c o m s u n m a n a g e m e n t j m x r e m o t e $ h a d o o p n a m e n o d eo p t s ” 1 3 用户数据的个性化配置 e x p o r t h a d o o p _ s e c o n d a r y n a m e n o d e _ o p t s = ”一d c o m s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论