2. 西南电子设备研究所 成都 610036
2. Southwest Institute of Electronic Equipment Chengdu 610036
随着云计算技术[1-2]的发展,软件即服务(SaaS)[3-4]作为云计算的典型代表,取得了广泛的应用。然而,在SaaS的建设中,数据存储的安全及管理问题一定程度上影响了SaaS的应用,使得SaaS始终难以走过“最后一公里”。一个典型的表现就是企业私有数据的存储问题,即把涉及企业敏感或私有数据托管给第三方平台进行虚拟存储,一直是企业用户难以接受的事情。除此之外,与之相关的分布式的数据存储与管理、基于网络的数据访问等机制,都是SaaS平台建设中面临的巨大挑战。
为解决数据的存储、管理与访问等问题,国内外学者做了大量的研究工作。文献[5]提出了海量数据的分布式协同处理机制,文献[6-7]提出了多租户模式下的数据存储、迁移及虚拟化访问等策略,文献[8]则从数据安全的角度,开展了数据隐私保护机制的研究工作。上述研究均是基于SaaS服务平台,从运行效率、安全等方面开展的对平台的优化,未从根本上解决SaaS用户的数据物理托管安全及相应的分布式数据访问等问题。
本文在传统SaaS平台的基础上,提出了基于开放架构的SaaS服务平台数据管理技术。在开放架构下,企业用户既作为平台的使用者又可作为平台的建设者,企业的数据可根据实际需要存储于企业本地或SaaS平台提供的虚拟存储空间。可有效地解决平台建设中用户数据的存储与管理问题,同时,通过对传统LRU缓存算法进行改进,提出了LRU- RSIZE算法,对提高开放架构下SaaS的平台的数据访问进行了优化,对增强系统网络环境下的应用体验,具有重要意义。
1 系统应用架构根据实体及业务的不同,系统分为平台端与企业端两类,其中平台基于网络对外提供存储、计算等服务,企业端则利用平台提供的服务开展企业相关业务,与传统SaaS不同的是,本文系统采用开放架构,即企业既作为系统的使用者使用平台的相关服务,又可作为建设者开发相应的服务,并选择将服务及其数据存储于平台端或企业内部。系统分为应用层、网络层与平台层,其应用架构如图 1所示。
1) 存储层:包括SaaS平台的存储以及企业用户的存储阵列两部分,其中平台存储以虚拟的方式为企业租户提供存储空间,企业通过互联网络实现对虚拟存储的访问,企业存储阵列物理上位于企业内部,为企业私有。对于需存储的对象,从可公开性分类,可分为企业私有数据和企业共性应用数据;从动态性分类,可分为静态数据和动态数据;从数据的大小分类,则可按照数据所需的存储空间进行分级。对于数据的存储,由于在本文架构中,企业用户同时也作为平台的建设者,可以根据实际需要,将数据分类存储于平台或企业内部。
2) 网络层:包括互联网与企业网两类,企业内部的用户通过企业局域网络互联,企业则通过Internet与SaaS服务平台互联。
3) 应用层:平台端提供的服务主要包括平台管理服务、共性平台服务以及企业应用服务三类,其中平台管理服务实现平台自身的管理,共性平台服务为有平台提供的构件部署、发布、虚拟等服务,企业应用服务则为企业部署于平台的各类应用服务;企业端的服务及应用则为企业根据自身需要,部署于企业内部的服务及相应应用。
2 数据管理建模对开放SaaS平台下数据访问机制进行抽象,可形成以下几种访问模式:
1) 企业数据及服务均部署于SaaS平台,企业用户通过网络访问;
2) 企业数据存储于SaaS平台,应用及服务部署于企业用户内部;
3) 企业数据存储与企业内部,企业服务部署于SaaS平台;
4) 企业数据及服务均部署于企业内部,平台仅提供基础管理服务及与多企业间的交互服务。
对于不同的企业应用,存在几种模式共存的情况,而在模式2、3均面临应用与数据分离的情况,本文主要针对这两种情况进行讨论。对这两种模式进一步抽象,则演化成网络化境下对应用程序数据进行缓存优化的问题,综合考虑访问访问数据特性、网络带宽、缓存等因素,定义如下。
定义 1 数据,用三元组标识,Di=(Si, Gi, Ti)。其中Di表示第i个数据对象,Si为Di的唯一标识,Gi为数据Di的大小,Ti为数据Di的最近访问时间。
定义 2 带宽,用常量N表示,设企业的带宽保持稳定。
定义 3 缓存,用变量Cf表示。有两种计量策略,一种是缓存大小恒定情况下,计算不同缓存策略的性能指标,另一种是计算不同缓存策略缓存大小的需求指标。
目前,对于缓存的处理策略,典型的有LRU(以最久未访问作为替换对象)、LFU(以访问频率最低作为替换对象)、SIZE(以访问代价最大作为替换对象)以及相应的组合及改进算法[9-10],文献[11-12]基于分布式网络环境,开展了多级缓存、中心网络缓存等方面的替换策略研究,其本质仍然是对缓存策略与网络环境的综合应用,在具体实现方面,目前采用较多的为LRU算法。本文在SaaS应用环境下,从增强用户体验的角度,对LRU算法进行扩展,优先保留SIZE较大的对象可以增强用户的应用体验,本文在传统LRU及SIZE策略的,提出LRU-RSIZE交换算法(LRU reverse size),其评价因子计算为:
$ {K_i} = {\delta _i}\frac{{{B_i}}}{N} $ | (1) |
式中,Ki为“命中率-代价”因子,作为访问效率的综合评价;δi为命中率统计;Bi为累计命中的访问数据大小与总访问数据量的比值,即在LRU替换的基础上,加入对象的访问代价作为计算权值。式(1)可有效地增强开放SAAS平台下的用户应用体验。
3 LRU-RSIZE算法描述与仿真分析 3.1 算法描述/*LRU-RSIZE算法伪代码*/
输入:
1) 随机生成的访问对象全集All-Set
2) 随机生成的对象访问顺序Seq
3) 栈形式的缓存列表Stack
输出:
1) 以Ki为评价因子的访问命中率-代价统计
2) 算法对缓存空间的需求,即CⅠ、CⅡ的值
Begin
While(i < N) //N为循环访问次数
{
随机生成访问对象Ai;
If(Ai)in Stack //判断是否命中
更新Ai最近访问标志;
else
{
if (Stack is not full) //如果栈尚未装满
用Ai更新栈顶;
else
{
以Ti作为第一因子,选出栈底元素Di;
if(Di.Size > ε)//ε为对象大小阈值
//本文算法对ε取对象大小平均值
以Ti为因子在Stack中重新选择替换对象,直至选到满足Di.Size < ε的对象;
//在实际应用中,该步骤加入随机因子,
//避免出现栈中数据全部为大对象的情况;
以Ai替换栈顶;
}
以式(1)统计评价因子;
统计Stack空间大小;
}
}
End
3.2 算法特性分析LRU算法为提高对象访问的命中率,采用优先置换最近未访问对象的策略,对最近未使用的对象进行替换,未考虑重新获取被替换对象的网络代价。LRU-RSIZE在考虑对象最近访问时间的同时,综合考虑被替换对象的大小(网络带宽一定的情况下,即为重新获取该对象的网络代价),并通过加入随机值的方式,避免出现大对象永远不会被替换的情况。LRU-RSIZE算法的主要适用环境为“具有一定本地缓存空间的网络应用访问”,对于开放SaaS平台而言,LRU-RSIZE的典型使用场景为企业应用与服务分离的情况,即服务部署于远端平台而数据存储于企业本地或者数据存储于远端平台而应用服务部署于企业本地。
3.3 仿真结果分析通过VC与Matlab对LRU-RSIZE算法与传统LRU算法进行仿真,在全集M个对象、缓存N个对象的情况下,随机生成X次页面访问动作的条件下,得到对比曲线图像,其中M取值200,N取值100,X取值5 000(示例,仿真分析表明在云计算环境下,同比增大M、N、X的取值,并未影响相对趋势)。由仿真结果可得。
1) LRU-RSIZE的“命中率-代价”优于传统LRU的“命中率-代价”。从图 2可知,仿真开始阶段由于缓存栈尚未装满,两种算法的“命中率-代价”均比较低,在第1 000次仿真后,“命中率-代价”逐步稳定,与LRU相比,LRU-RSIZE的“命中率-代价”稳定提升。
2) 因栈的大小按照固定对象的数目设定,从图 3可以看出,在空间使用方面,LRU-RSIZE所用的空间比LRU也有所增加,两者的比例差距与图 2中“命中率-代价”的比例差距相当。
3) 网络时延与应用分析。从以上分析可以看出,采用LRU-RSIZE算法的同时,通过按照一定比例增大系统缓存空间可以获得比LRU更好的“命中率-代价”评估。进一步对比LRU算法与LRU-RSIZE算法的网络时延,如图 4所示。与LRU-RSIZE算法相比,LRU算法的网络时延呈相对增大的趋势。在存储代价不断降低的今天,存储容量已不再是网络应用的瓶颈。在用户网络带宽一定的情况下,开放的SaaS架构及相应的LRU-RSIZE缓存置换算法为解决SaaS的用户体验问题提供了一种新的解决思路,即“在考虑LRU的同时,优先替换较大的对象,减少用户对大对象的网络延时,增强用户的应用体验”。
LRU-RSIZE算法以本地空间为代价,有效地增强了开放SaaS服务平台的用户应用体验,结合在SaaS数据管理体系架构,在平台的实际建设中,还可通过以下措施对数据管理进一步优化:
1) 建立专用的大文件服务器,实现对大块数据的专门存储;
2) 建立私有数据存储服务器,并通过数据的容灾备份机制,实现企业数据的安全存储;
3) 加强平台及企业用户的容灾备份及安全建设,进一步增强数据的可靠性与安全性。
另外,建立本地最小运行服务及数据存储子集,开展数据“断网-联网”情况下的数据同步研究,也是开放SaaS平台建设需进一步开展的重要工作。
[1] |
Wikipedia Cloud computing[EB/OL]. [2012-09-12]. http:// en.wikipedia. org/wiki/Cloud_computing.
|
[2] |
李伯虎, 张霖, 任磊, 等. 云计算典型特征、关键技术与应用[J].
计算机集成制造系统, 2012, 18(7): 1345–1356.
LI Bo-hu, ZHANG Lin, REN Lei, et al. Typical characteristics, technologies and applications of manufacturing[J]. Computer Integrated Manufacturing Systems, 2012, 18(7): 1345–1356. |
[3] |
KWOK J, NGUYEN T, LAM L. A software as a service with multi-tenancy support for an electronic contract management application[C]//2008 IEEE International Conference on Service Computing. Honolulu, HI, USA: IEEE, 2008.
|
[4] |
曹帅, 王淑营, 孙林夫. 面向产业链协同SaaS平台的业务流程定制技术[J].
计算机应用, 2013, 33(5): 1450–1455.
CAO Shuai, WANG Shu-ying, SUN Lin-fu. Workflow customization technology for collaborative saas platform of industrial chains[J]. Journal of Computer Applications, 2013, 33(5): 1450–1455. |
[5] |
戴炳荣, 宋俊典, 钱俊玲. 云计算环境下海量分布式数据处理协同机制的研究[J].
计算机应用与软件, 2013, 30(1): 107–110.
DAI Bing-rong, SONG Jun-dian, QIAN Jun-ling. Research on cooperation mechanism for mass distributed data processing in cloud computing environment[J]. Computer Applications and Software, 2013, 30(1): 107–110. |
[6] |
李保栋, 孔兰菊, 陆春生, 等. SaaS交付平台多租户数据管理模型研究[J]. 小型微型计算机系统, 2012, 33(12): 2658-2663.
LI Bao-dong, KONG Lan-ju, LU Chun-sheng, et al. Research on muti-tenancy data management model for SaaS delivery platform[J]. 2012, 33(12): 2658-2663. http://www.cqvip.com/QK/95659X/201212/44123504.html |
[7] |
孔兰菊, 李庆忠, 李晓娜. 一种SaaS交付平台的多租户数据迁移策略[J].
计算机应用与软件, 2011, 28(11): 52–56.
KONG Lan-ju, LI Qin-zhong, LI Xiao-na. A multi-tenancy data migration policy for saas delivery platform[J]. Computer Applications and Software, 2011, 28(11): 52–56. DOI:10.3969/j.issn.1000-386X.2011.11.013 |
[8] |
张坤, 李庆忠, 史玉良. 面向SaaS应用的数据组合隐私保护机制研究[J].
计算机学报, 2010, 33(11): 2044–2054.
ZHANG Kun, LI Qin-zhong, SHI Yu-liang. Research on data combination privacy preservation mechanism for SaaS[J]. Chinese Journal of Computers, 2010, 33(11): 2044–2054. |
[9] |
汤小丹, 梁红兵.
计算机操作系统[M]. 西安: 西安电子科技大学出版社, 2007.
TANG Xiao-dan, LIANG Hong-bing. Computer operation system[M]. Xi'an: Xi Dian University Publisher, 2007. |
[10] |
YOO Y S, LEE H, RYU Y, et al.
Page replacement algorithms for nand flash memory storage[M]. Berlin: Springer, 2007.
|
[11] |
SMITHA I K, REDDY A. Identifying long-term high-band-width at a router[C]//Proceedings of the 8th International Conference on High Performance Computing. Hyderabad, India: Springer, 2001: 361-371.
|
[12] |
CHAI Wei-koong, HE Di-liang, IOANNIS P, et al. Cache"Less for More" in information-centric networks[C]// Proceedings of the 11th International IFIP TC 6 Conference on Networking. Prague, Gzech: Springer, 2012: 27-40.
|