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