PaaS平台中面向多租户 SLA的可复用构件研究
第 1章绪论
研究背景及意义
随着云计算的兴起,软件的交付与使用模式正在发生着变化在云计
算环境下,企业无需购买软硬件、搭建机房、招聘系统维护人员,就可以
通过互联网使用软件系统,并享有软件的维护、升级等相关服务。企业只
需根据自己的需求向云服务提供商进行软硬件的租用即可。云服务提供商
根据企业的租用需求为企业分配具体的硬件设施及软件。
作为云服务的主要形式之一,平台即服务 PaaS,平台即服务提供完
整的应用构建、部署与运行支撑平台并以服务的形式提供给 ISV(独立软
件开发商)。ISV在 PaaS平台上部署自己的应用供租户使用。一般 PaaS
平台都会支撑大量应用的部署运行等,例如在开放的电子商务服务平台上
会存在物流、网店、支付平台等多种类型的应用。通常情况下,这些应用
会为用户提供某些类似功能,例如对于不同 ISV提供的在线网店应用、交
易市场应用等,都会有“商品搜索”功能,如果电子商务平台提供可复
用、可定制的商品搜索构件,则 ISV在构建在线网店应用时,可直接复用
此构件而无需自行开发,这将有效地提高应用的交付和发布效率。据我们
所知,当前大多数 PaaS平台并没有在平台支撑能力方面为 ISV提供可复
用基础应用构件服务,因此本文将致力于研究在平台中引入可复用构件服
务支撑能力,即基于 CaaS,构件即服务的 SaaS应用构建模式及其中的若
干关键问题。
基于构件的软件开发可以有效地提高软件开发的效率和软件开发的
周期,所以长期以来受到很多研究者的关注。虽然现在已有大量的在线构
件可供软件开发者使用,但是由于这些构件大都釆用了不同的描述机制,
给软件开发者的查询检索造成了很大的困难。在 PaaS平台上实现基于构
件的软件开发,我们可以对所有的构件进行统一的描述并为用户提供一个
可靠的查询机制,使得用户可以快速查找到自己需求的构件。
研究内容
针对上述研究背景及问题的分析,我们可以发现,在 PaaS平台上实
现基于构件的 SaaS应用构建有许多的问题需要解决。本文将根据这些问
题进行研究。
首先,在现有的 PaaS平台上并没有为 ISV提供可复用的构件机制,
所以我们需要研究如何在 PaaS平台中引入可复用的构件,可以使 ISV方
便的调用可复用的构件。
其次,在 PaaS平台中引入可复用的构件机制之后,由于 PaaS平台
中的构件数量会越来越多,所以我们需要对构件进行有效地存储和管理。
考虑到平台中会存在许多具有相似功能的构件,它们由不同的构件幵发商
所提供,我们将使用抽象构件模型对这些构件进行抽象概括,并根据抽象
构件模型对构件进行聚类存储。
最后,针对 SaaS应用“单实例,多租户”的特性,我们采用后期绑
定的方式来调用构件。由于不同的租户往往会与 SaaS应用提供商签订不
同的 SLA协议即对同一个应用租户有不同的 QoS需求,所以,我们需要研
究如何权衡不同的 QoS属性从而选出满足租户的构件进行绑定。
第 2章相关研究
为了解决软件危机问题,基于构件的软件开发越来越受到研究者的
关注。软件开发过程是十分漫长的,因此当用户提出软件需求后,若是从
头开始进行软件开发将会耗费大量的时间,而且会造成资源浪费。虽然不
同的软件在总体架构上存在区别,但是往往不同的软件之间会存在某些功
能的相似或相同。基于构件的软件开发思想就是通过复用这些相同的部分
从而达到减轻软件开发的工作,实现资源的有效重复利用。
基于构件的软件开发问题不仅可以提高软件的开发效率,而且可以
降低开发成本。因此基于构件的软件开发受到越来越多的关注。基于构件
的软件开发一般需要解决一下几个问题:1,如何描述构件。构件可以是
一个简单类也可以是一个 Web Service或其他形式。不同的构件开发商使
用不同的幵发规贝如何识别构件就成了首先需要解决的问题。2,在识别
构件之后,如何选取满足幵发需求的构件是需要解决的第二个问题。人工
搜索我们所需要的构件显然将要耗费大量的时间,所以我们需要一种有效
地检索方法可以从大量的构件中选出我们所需要的构件。3,在一个开放
式的环境中,往往会存在多个可以满足我们需求的构件,如何在这些满足
我们需求的构件选择一个合适的构件使用?
构件描述
针对基于构件的软件开发的第一个问题,我们需要找到合适的构件
描述方法来对构件进行描述。现在的构件描述方法一般可以分为基于刻面
的构件描述、基于本体的构件描述和基 WSDL于的构件描述。
基于刻面的构件描述方法
基于刻面的构件描述方法中,首先要做的是确定构件的刻面每个刻
面是对构件的不同侧面的描述。例如,刻面可以是构件的使用环境、操作
对象、功能、应用领域等。每个刻面又有一组术语组成,这些术语是对此
构件刻面的属性描述,例如,构件的功能是检索,那么此构件的一个刻面
为功能,刻面对应的术语描述为检索。因此用户可根据构件的刻面描述方
法很直接方便的找到构件。
基于刻面的描述方法主要有三个组成部分:即刻面分类的方法、构
件的刻面描述集合和刻面描述所使用的术语之间的关系即术语辞典。图
2-1展示了基于刻面的构件描述方法:
图一中方框表示构件的刻面,椭圆表示刻面所对应得术语。有上图
我们可以的出,构件具有刻面“Environment”,此刻面又可以分为刻面
“Hardware”和刻面“Software”。其中刻面“Hardware”所对应的刻面
描述术语为“PC”,即此构件的硬件运行环境是在 PC机上。基于刻面的
构件描述的好处是使得构件描述清晰明了,与简单的基于关键字的描述有
了较大提高,但是基于刻面的构件描述还存在着一些局限性,因为刻面的
限制使得构件描述不够灵活,基于刻面的描述没有同一的规范,不适应在
开放性平台上使用。在使用刻面对构件进行描述时还缺少必要的语义信息
从而使得构件的检索准确度不高。
构件检索方法
往往构件库中都会存在大量的构件,而且随着网络的开放,很多在
线可复用构件也可以使用,如 Web Service。手动搜索自己所需的构件显
然会耗费大量的人力物力,这不仅不能提高软件的开发效率还会大大降低
构件开发的速度。因此,一个有效地构件检索方法是基于构件的软件开发
的又一个问题。
构件检索方法是和构件的描述方法紧密相关的。不同的构件描述方
法对应着不同的构件检索方法。但是现在的构件检索方法都会使用到语义
匹配。传统的关键字匹配算法所得到的构件往往会存在很大的误差,因为
它无法识别不同术语之间的语义相似性。
基于刻面的构件检索方法可以看作是一种树匹配的过程。因为基于
刻面的构件描述是将构件分为多个刻面,刻面之间分为不同的层次,不同
的刻面由不同的术语描述,如图所示。因此,在基于刻面的构件检索方法
中,用户请求会根据不同的刻面进行划分,最后形成一个刻面请求树,然
后将构件的刻面描述树与用户的请求树进行匹配即可获得用户所需的构
件。
使用 WSDL对构件进行描述,就是对构件接口的一种描述。使用
WSDL文件来描述构件,构件的检索其实就是接口的匹配过程。接口一般
分为三个部分,即操作,输入输出。操作即构件所具有的功能,输入操作
时所需要的数据,输出为操作的结果。此时,用户只需提出自己对构件功
能及所涉及数据即可匹配到自己所需的构件。
根据现有的一些研究,在匹配过程中都会使用到语义。语义描述主
要体现在本体当中。文献提出了一种基于本体的多层刻面构件描述,不同
的刻面描述术语之间通过语义关系进行关联,从而可以由用户提出的某些
术语推导出暗含的术语。从而使得构件的检索更加的准确。文献提出现有
的一些本体不具有领域性,如 wordbet,只是从一般性出发描述术语之间
会存在的关系,而且它主要描述的是单个词语之间的语义关系。在不同的
构件中,开发人员可能会用到不同的术语表示方式,例如,复合词
“NumOfltem”。此时单纯的使用 wordnet并不能发现复合词所具有的含
义。因此,文献给出了一种领域本体。在此本体中,它会充分考虑所具有
的领域特性,它不仅仅关注术语之间所具有的一般性语义关系,还会考虑
在特定领域下所存在的领域关系,而且会对还描述了复合词之间所具有的
语义关系。
第 3章总体概述..........14
系统结构..........14
主要问题........16
本章小结.......18
第 4章基于语义的构件模型...........19
引言..........19
抽象构件模型..........19
第 5章基于 SLA的构件绑定.........27
引言..........27
构件后期绑定..........27
第 6章系统实现及验证
为了证明系统的可行性,我们进行了系统的模拟及验证。实验环境
为:Core2 Duo CPU,,2G内存,Windows XP操作系统,数据库
为 MySQL,开发工具为 Eclipse。
图 6-1给出了添加了构件层之后的整体 PaaS平台架构。这个架构是
基于 24的 PaaS平台架构的基础上完成的。我们的主要工作就是在此
PaaS平台上为 ISV提供可复用的构件来构建 SaaS应用。
第 7章总结与展望
总结
本文主要对如何在 PaaS平台上进行基于构件 SaaS的应用构建相关
问题进行研究。在 SaaS应用之间,可能会存在着一些相似的功能,如几
乎所有的在线商店都具有“商品搜索”的功能。如果可以在 PaaS平台上
为 SaaS应用开发商提供这些功能,那么 SaaS应用开发商便可以直接复用
这些功能而无需重新编写代码,这将大大提高 SaaS应用的幵发效率。基
于构件的软件开发就是为了能够对现有的一些构件实现重复利用。但是,
现在大部分的 SaaS平台并没有为 SaaS应用开发商提供可复用构件这一机
制。而且考虑到应用的“单实例,多租户“模式,不同的租户会与应用提
供商签订不同的 SLA协议,即不同的租户会对同一个 SaaS应用实例具有
不同的 QoS需求。通过调用具有不同 QoS属性值的构件可以分别组建出满
足不同租户 SLA的 SaaS应用。
在现有的 PaaS平台的基础上,本文提出了一种增强型的 PaaS平
台,即在原有的 PaaS平台上增加了一层构件层,由构件层负责构件的存
储和管理。为了能够实现 PaaS平台上面向租户 SLA的基于构件的 SaaS应
用构建,我们主要进行了一下工作:
1、首先提出了增加了构件层之后的 PaaS平台架构。构件层处于
SaaS应用与 PaaS平台之间。主要负责构件的管理。ICV通过构件层提交
构件,SaaS应用开发商通过构件层调用自己所需的构件。
2、提出了抽象构件模型。随着 ICV不断地向构件层中提交构件,构
件的数量越来越多。其中,有很多构件具有相似功能。为了能够有效地管
理这些构件,本文提出了抽象构件模型,抽象构件是对具有相似功能的实
体构件的抽象概括。通过抽象构件与实体构件之间的相似度,可以将具有
相似功能的构件进行聚类。从而方便以后 SaaS应用开发商查找构件。
3、提出了面向多租户 SLA的构件后期绑定处策略。由于不同的租户
往往会与 SaaS应用提供商签订不同的 SLA协议,本文选择在租户与应用
提供商签订 SLA协议之后再绑定具体的构件进行绑定。SaaS应用开发商
在构建 SaaS应用时,会在构件层中筛选出满足自己功能需求的候选构
件,在签订 SLA协议之后,根据租户的 QoS需求,从候选构件中选择一个
合适的构件绑定。
参考文献(略)