没有合适的资源?快使用搜索试试~ 我知道了~
可在www.sciencedirect.com在线获取ScienceDirectCAAITransactions on Intelligence Technology 1(2016)150e161http://www.journals.elsevier.com/caai-transactions-on-intelligence-technology/原创文章软件即服务中以租户为中心的子租户体系结构蔡伟德*,钟培德,陈亚利桑那州立大学计算机、信息学和决策系统工程学院,Tempe,AZ 85287,USA2016年10月13日在线发布摘要多租户架构(MTA)通常用于软件即服务(SaaS),其中心思想是可以使用存储在SaaS基础设施中的组件开发最近,MTA得到了扩展,允许租户应用程序拥有自己的子租户,其中租户应用程序的行为类似于SaaS基础设施。换句话说,MTA被扩展到STA(转租架构)。在STA中,每个租户应用程序不仅需要开发自己的功能,而且还需要准备一个基础设施,以允许其子租户开发定制的应用程序。本文将众包作为STA组件开发生命周期的核心。此外,为了发现足够合适的租户开发人员或组件来帮助构建和组合新组件,提出了动态和静态排名模型。此外,秩计算架构的租户和组件的数量变得巨大的情况下,提出了处理。最后,通过实验验证了排序模型和排序计算结构的有效性。Copyright© 2016 , 重 庆 理 工 大 学 . 由 Elsevier B.V. 制 作 和 托 管 。 这 是 一 篇 开 放 获 取 的 文 章 ,CC BY-NC-ND 许 可 证(http://creativecommons.org/licenses/by-nc-nd/4.0/)。关键词:SaaS; MTA; STA;租户;转租;众包;排名1. 介绍云平台通常有三个主要组件:软件即服务(SaaS)、平台即服务(PaaS)和云结构即服务(IaaS)。SaaS是部署在互联网上的软件[1],用户从SaaS提供商那里订购服务,并以“按需付费”的方式付费。在SaaS中,软件在云上进行维护和更新,并作为按需服务呈现给最终用户。SaaS的多租户架构(MTA)允许租户开发者使用基于存储在SaaS基础设施中的相同代码来开发应用。MTA通常与数据库集成,并通过组合存储在SaaS中或由租户开发人员提供的现有或新软件组件来支持租户应用程序自定义。然而,目前的MTA有以下局限性:* 通讯作者。电子邮件地址:wtsai@asu.edu(W.T. Tsai)、Peide.Zhong@asu.edu(P. Zhong)、Yinong. asu.edu(Y.陈)。同行评议由重庆理工大学负责。1) 虽然SaaS基础设施使用存储在基础设施中的服务和数据来支持租户应用,但是租户应用不允许其用户使用其自己的服务或数据来开发新应用。2) 租户应用难以与其他租户应用共享服务或数据。通常,SaaS平台提供安全机制来隔离租户应用程序,以便租户无法访问属于其他租户的数据。即使租户代码和数据存储在同一个数据库中,SaaS安全机制也会将租户与其他租户隔离开来。3) 大多数SaaS系统不支持租户自定义已由其他租户自定义的应用程序为了解决这些问题,Tsai在[2]中引入了STA(子租户架构),允许租户为子租户开发人员提供定制应用程序的服务。由于SaaS组件构建通常需要不同的技术,如前端UI和数据库,租户或子租户开发人员通常不擅长这些技术。因此,他们很难从头开始构建SaaS组件。因此,本文介绍了众包http://dx.doi.org/10.1016/j.trit.2016.08.0022468-2322/Copyright© 2016,重庆理工大学由爱思唯尔公司制作和主持这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。W.T. Tsai等人/CAAI Transactions on Intelligence Technology 1(2016)150e 161151利用公众智慧,将任务分配给擅长所需技术的特定专家。为了帮助找到合适的租户,我们在本文中开发了模型。本文的其余部分组织如下。第2节回顾了相关的SaaS模型和技术;第3节分析了以租户为中心的应用开发的生命周期;第4节介绍了组件和租户等级;第5节介绍了功能实现选择模型;第6节描述了快速应用构建过程。第7节介绍了演示秩模型的实验,第8节总结了本文。2. 相关工作2.1. SaaS中的MTA在目前的实践中,MTA通过以下方式实施:1) 与数据库集成:Weissman和Bobrowski在参考文献[3]中提出了一种基于数据库和元数据驱动的架构来实现MTA。在参考文献[3]中,重索引用于提高性能,运行时应用程序生成器用于动态构建应用程序以响应特定的用户请求。由于所有租户共享相同的数据库,因此使用了灵活的模式设计。Aulbach[4]开发了五种技术来实现SaaS的灵活模式。2) 中间件方法:在这种方法中,应用程序请求被发送到中间件,中间件将请求传递到中间件后面的数据库。由于所有数据库都在中间件之后,并且所有应用程序对数据库的请求都由中间件管理和指导,因此应用程序可以快速转换为MTA SaaS,而对原始应用程序的更改最少。Cai[5]描述了一种使现有Web应用程序支持MTA并在公共云中运行的透明方法。3) 面向服务的SaaS:这是一种通过SOA(面向服务的架构)实现MTA的方法[6]。SaaS领域知识从SaaS基础设施中分离出来,以方便不同的领域。EasySaaS[7]提出了一个开发框架,通过利用SOA和SaaS领域本体来简化SaaS开发。Azeez[8]提出了一种实现面向服务的MTA的体系结构,使用户能够在MTA面向服务的框架中运行他们的服务和其他SOA构件,并提供了一个构建MTA应用程序的环境。由于此MTA基于SOA,因此它可以利用中间件和SOA技术。4) 基于PaaS的方法:SaaS开发人员使用现有的PaaS,如GAE[9],Amazon EC2[10]或Microsoft Azure[11]来开发SaaS应用程序。在这种方法中,开发人员使用PaaS提供的MTA功能来开发SaaS应用程序,并且实现了的PaaS。Tsai[12]提出了一种基于PaaS的模型驱动方法来开发SaaS。5) 面向对象的方法:Workday[13]提出了一种面向对象的方法来开发和配置租户应用程序。此外[13],还对MTA模型进行了研究,特别是它解决了MTA的体系结构及其对定制,可扩展性和安全性的影响。2.2. 众包众包的目的是利用公众的智慧,让拥有领域知识的人群来完成特定的任务。Howe首先在一篇配套的博客文章中定义了“众包”一词[14]。Merriam-Webster[15]将众包定义为通过向一大群人,特别是在线社区,而不是传统的员工或供应商征求贡献来获得所需服务,想法或内容的实践。Kittur在[16]中研究了微任务市场收集用户测量的效用,并讨论了开发远程微用户评估任务的设计考虑因素。Peng在[17]中提供了当前众包技术的概述。2.3. 变化点变异点是变异发生的位置,变异是可供选择的备选方案。软件产品族引入可变性管理,通过处理可变性来处理这些差异。Kang[18]描述了一种发现不同软件系统之间共性的方法。Coplien[19]提出了如何通过识别产品系列中的共性和可变性来执行领域工程。Webber[20]描述了一种系统方法,用于提供可以通过变化点扩展的组件,该方法允许用户或应用工程师在预先指定的变化点扩展组件,以创建更灵活的组件集。Mietzner[21]提出了一个可变性描述符,并描述了将其转换为WS-EJB流程模型以指导定制。此外,Mietzner[22]解释了可变性建模技术如何支持SaaS提供商管理SaaS应用程序的可变性,并提出使用显式可变性模型来为单个SaaS租户进行定制。2.4. SaaS中的定制定制是一个重要的SaaS功能,因为租户可能有不同的业务逻辑和接口,但他们共享相同的代码库。Chong[23]提出了一个SaaS成熟度模型,将SaaS分为四个级别,包括ad-hoc/custom , customizable 或 configurable , multi-tenantefficient和scalable。Tsai将本体引入SaaS以帮助定制应用程序[24]。SaaS租户应用程序具有组件152W.T. Tsai等人/CAAI Transactions on Intelligence Technology 1(2016)150e 161从四个层次:GUI、工作流、服务和数据管理。对于每一层,都有一个本体来帮助租户定制SaaS应用程序。可变性建模和人工智能技术在软件产品线工程中得到了广泛的应用,SaaS提供商可以潜在地使用这些技术。SaaS定制不仅影响租户,而且还为SaaS供应商提供了新的要求,即特定于租户的配置可能成为一个问题,因为所有SaaS租户共享相同的代码库。因此,Sun[25]提出了一个方法框架,帮助SaaS供应商规划和评估他们的服务配置和定制能力和策略。Truyen[26]提出了一种面向上下文的编程模型来克服租户特定的变化,以便所有租户可以共享相同的代码库。服务组合是实现SaaS应用程序定制的另一种重要方法。通过服务组合,租户可以快速构建新的定制SaaS应用程序。Tsai[27,28]提出了一种依赖引导的以用户为中心的服务组合方法.3. 以租户为中心的应用程序开发的生命周期以租户为中心的应用程序开发的目的是帮助租户找到专家来开发具有领域知识需求的组件,并促进组件的创建和重用。应用程序开发一般分为六个步骤,如图1所示:需求、建模、实现、组装、部署和管理。1) 需求:它们是租户提出其业务目标的过程。有两种类型的要求:a) 特性要求:它们都是租户想要实现的必需特性。Fig. 1.应用程序开发生命周期。b) 正式需求:它们是开发人员可以实现的正式技术需求。2) 建模:它是将租户业务需求转换为业务流程和约束规范的过程。它可以包括以下子步骤:a) 验证功能需求:验证功能需求是否涵盖所有业务需求的过程。b) 发现当前组件:它是发现现有组件以实现功能需求的过程。c) 特征和性能需求建模:是对特征和性能需求进行仿真的过程.可以应用任何传统的模拟技术。3) 实现:是实现建模步骤提出的所有特性、功能、服务及其测试用例的过程。4) 组装:它是集成所有租户应用程序、功能、服务并执行集成测试的过程。5) 部署:它是创建托管环境并将组装的应用程序部署到不同服务器的过程。6) 监控管理:它是监控服务执行并维护组装中表达的操作环境和策略7) 众包:是租户将任务分配给具有领域知识的租户的过程。换句话说,租户不需要自己开发应用程序,而是将一些任务外包给专家。众包是所有七个步骤的中心。每个步骤中的所有任务都可以外包给同一SaaS环境中的租户租户可以通过多种方式发布他们的需求。方法之一是通过图2所示的利益共同体(COI)。COI由一个或多个领域中具有共同兴趣的租户组成,以利用群体的智能。因此,COI能够快速地以高质量完成与领域相关的任务。为了获得更好的质量,COI中的一些租户可以实现功能,而同一COI中的其他租户可以提出测试用例。此外,使用关键字来描述COI,以便STA可以在租户有任务时发现和推荐它们。4. 组件和租户等级通 常 情 况 下 , 租 户 提 出 所 需 的 技 术 , 如 ( Java 和Cassandra),并让STA系统发现合适的候选人。机器学习技术,如KNN[29,30]和神经网络[31,32],可用于发现候选人。然而,如果候选租户没有被排名,租户仍然难以选择候选租户。如果组件没有排名,租户也很难选择组件。因此,本会议提出一种方法来排序组件和排名。有两种类型的排名模型。W.T. Tsai等人/CAAI Transactions on Intelligence Technology 1(2016)150e 161153:¼¼图 3、可以看到:1) 租户1实现组件2并订阅组件5。2) 租户2实现组件5并订阅组件2。3) 第三个是第二个。在本文中,指称可以理解为STA中两个成分之间存在的依赖、延伸或其他关系。通过修改页面排名算法[33],租户,子租户和组件可以接收称为静态分数的分数。与页面排名模型相比,该静态排名模型具有以下特点:1) 关系图中有两种类型的节点,租户或子租户和组件,而页面图中只有一个页面。2) 有三种类型的链接,实现,订阅和引用。为了适应这些特性,在等式(1)中引入了简单的修改的页面排名模型。图二.利益共同体的例子。8>Rrc×PRs<>s2Br0 Ns4.1. 静态排序模型>Rua×PRvb×XRwg×XRx在STA中,租户、子租户和它们的组件基于它们的实现、订阅、v2Bu0NvNww2Bu00w2Bu00 0Nxð1Þ和参考关系。 一个例子如图所示。 3.图三.静态排名示例。等式(1)可以描述如下:1) r是组件; u是租户或子租户。2) Br表示与组件r具有引用关系的组件的集合。3) Bu0表示租户或子租户u具有实现关系的组件集;Bu00表示租户或子租户u具有订阅关系或组件u具有引用关系;Bu00表示租户或子租户u具有子租户关系的子租户或子子租户集合。4) Ns,Nv,Nw,Nx表示租户s,v,w和x实现的组件数量。5) a、b、g和c是影响每种类型重要性的权重因子。例如,如果a3和b1,则租户实现的重要性是租户订阅的三倍。考虑到没有关系的组件,本文假设这些组件与STA中的所有其他组件在引用关系中具有平等的机会。对于没有转租人或转租人的承租人和转租人,本文假设他们有同等的转租人154W.T. Tsai等人/CAAI Transactions on Intelligence Technology 1(2016)150e 1618>R 0rd×.c×XRs!E1-d×E1w2B00w2B000<>s2Br0>0X XuX1uð2Þ>:R0ud×@a×Rvb×Rwg×RxA1-d×E2与STA中的所有其他租户或子租户的关系。因此,可以将等式(1)修正为等式(2)。在等式(2)中,E1表示与其他组件没有引用关系的所有组件,并且E2表示没有子租户和子子租户的所有租户或子租户。E1和E2的所有元素都是1。参数d是表示组件与其他组件或租户没有引用关系,子租户没有子租户和子子租户的因子,可以设置在0和1之间。k和l分别是E1和E24.2. 动态排序模型有两种类型的等级:组件等级和租户等级。1) 组件等级:有两个优点因素,重要性(I) 和善度(G),来描述一个组件。2) 租户等级:与组件等级相同,使用重要性(I)和良好性(G)来描述租户。图4显示了如何计算组件的重要性和优良度。 从图 4、可以看到:1) 有两个租户实现并订阅组件1;一个组件与组件1具有引用关系;组件1与其他三个组件具有引用关系。2) Outdegree:给定组件与之有引用关系的组件数,这里用来衡量组件的重要性。3) 纯度:实现或订阅给定组件的租户的数量以及与给定组件具有引用关系的组件的数量,用于度量组件的良好性。图5示出了如何计算租户的重要性和良好性。从图5可以看出:1) 租户1有两个子租户;租户1实现并订阅一个组件;租户1是另一个租户的子租户。2) 入度:一个租户的转租数量,用来衡量租户的重要性。3) 出度:给定租户实现或订阅的组件的数量和/或给定租户的子租户的租户的数量,这里它用于度量租户的良好性。比较Figs。从图4和图5可以看出:1) 实现组件的好租户越多,组件就越重要;订阅组件或引用组件的好租户越多,组件就越好。2) 租户成为给定租户的子租户越重要,租户的好处就越多;租户订阅和实现的好组件越多,租户的好处就越多。正式计算等级如公式(3)所示,可以描述如下:见图4。组件等级示例。图五.租户等级示例。v2Bu0NvNwNxLNsKW.T. Tsai等人/CAAI Transactions on Intelligence Technology 1(2016)150e 161155XXXXXXXX8>CI¼n1/1CGi和CG¼ a*n1/1TIIb*M1/1我爱你*K1/1CIi>:TI¼li¼1TGi和TG<$a×ji¼1CGi×oi¼1CG0ig×pi¼1TGið3Þ在等式(3)的上半部分中,引入了组件的重要性和良好性分数。1) 用CI表示的组件的重要性得分由用CGi表示的与该组件具有引用关系的组件引入。2) 用CG表示的组件的优良性得分为分三部分介绍:a) 是由实现该组件的租户引入的租户b) 是由订阅组件的租户引入的租户c) CIi是由与分量具有参考关系的分量引入的分量C的优度分数。在等式(3)的下半部分中,引入了租户的重要性和良好性分数。1) 由T1表示的租户的重要性分数由租户或子租户引入,所述租户或子租户是由T1表示的给定租户的子租户。2) 介绍了用TG表示的租户本文分为三个部分:a) C11是由给定租户实现引入的组件的重要性分数。b) CI0 是组件的重要性分数,给定的租户订阅。c) 是由给定租户与其具有分租租户关系的租户引入的租户从等式(3),可以观察到以下目标。1) 通过选择一组组件和租户来实现。2) 租户和组件的重要性和良好性可以设置为非零常数。3) 获取租户和组件的重要性和良好性是一个迭代过程。换句话说,租户和组件在每次迭代中获得新的重要性和良好性值。4) 重要性根据当前优度权重计算,当前优度权重根据先前重要性权重计算。5) 可以证明租户和应用程序的重要性和良好性收敛[34]。基于等式(3),引入算法1,其执行一系列迭代,并且每个迭代由两个基本步骤组成:1) 组件重要性更新:更新每个组件的重要性得分,使其等于与该组件具有参考关系的组件的优良性得分之和。也就是说,通过参考具有高优良度分数的组件,组件被给予高重要性分数。我156W.T. Tsai等人/CAAI Transactions on Intelligence Technology 1(2016)150e 161n2) 组件良好度更新:更新每个组件的良好度分数,使其等于实现并订阅该组件的租户或与给定组件具有引用关系的组件的重要性分数之和。也就是说,通过由具有高重要性分数的租户实现和订阅或者由具有高重要性分数的组件引用,组件被给予高良好性分数。3) 租户重要性更新:将每个租户的重要性分数更新为等于给定租户具有子租户关系的租户的良好性分数的总和。也就是说,通过将租户转租给具有高良好度分数的租户,租户被给予高良好度分数。4) 租户良好度更新:更新每个租户的良好度分数,使其等于租户实现或订阅的组件和作为租户的子租户的10个蚂蚁的良好度分数之和.也就是说,通过实现或分划具有高重要性分数的许多组件或者通过作为给定租户的子租户的具有高重要性分数的租户,来给予租户高良好性分数。组件和租户的重要性得分和良好性得分使用算法1计算1) 从重要性得分和良好性得分均为1的每个组件开始。2) 对于每个组件,运行组件重要性更新;对于租户,运行租户重要性更新。3) 对于每个组件,运行组件良好性更新;对于每个租户,运行租户良好性更新.4) 通过将每个重要性分数除以所有重要性分数的平方和的平方根,并将每个良好性分数除以所有良好性分数的平方和的平方根,对值进行归一化。5) 从第二步开始重复,直到租户和组件重要性和良好性得分都有小的变化(由e4.3. 秩计算结构在租户和组件排名算法中,有两种类型的分数,静态分数和动态分数。然而,租户和组件的数量可能会变得巨大.因此,很难实时计算静态和动态分数。因此,引入了计算架构来计算图1所示的静态和动态分数。第 六章从图 6、可以观察到以下情况:1) 计算优度和重要度的过程分为两层:批量层和实时层。本文中的批处理层是指STA在一定时间后进行计算,并以批处理的方式进行计算实时层意味着STA在租户和组件需要更改其排名分数时进行计算。2) 基于批处理的计算可以计算大量的租户或组件,并获得准确的结果,因为它可能需要很长的时间才能完成计算。在这一层,静态排名模型。通过这一层后,所有租户和组件都有静态分数。由于租户和组件的数量可能会变得巨大,因此可以应用Hadoop[35]和Spark[36]等成熟的大数据框架来加速计算。3) 实时计算虽然计算速度快,但只能得到近似的结果。只有那些租户和组件需要更新其与实现或订阅组件并成为其他租户的子租户的租户有关系的分数。因此,在这种情况下,应用动态排序模型。应用动态排序模型的第一步是通过搜索STA数据库并获取租户和发生变化的组件来检索最相关的组件和租户。这个集合被称为根集合,可以通过获取前n个租户和组件来实现,其中n可以是巨大的。通过使用订阅、实现或引用根集中的那些组件和租户的所有租户和组件来增加根集,来生成基本集。中的租户和组件见图6。秩计算架构。W.T. Tsai等人/CAAI Transactions on Intelligence Technology 1(2016)150e 161157P¼P¼¼.X>¼X我G第五章)J1¼基本集和这些组件和租户之间的所有订阅、实现和引用形成子图。当租户和组件的数量巨大时,子图可能会变得很大和复杂。因此,在搜索租户和组件候选者以查找增强信息时,可以引入基于关键词的搜索引擎,例如solr[37]和弹性搜索[38]此外,图数据库(如neo4j[39])可用于保存基集的子图信息。在实时环境下,计算时间要求很短。因此,可以集成完善的实时大数据框架,如Apache Kafka[40]和Storm[41]。4) 批量计算可以获得所有租户和组件的静态分数。基于实时计算可以获得租户和组件发生变化的动态分数。为了整合静态分数和动态分数,应用等式(4)。在等式(4)中,a、b、g和x是使静态分数和动态分数可比较的权重,其可以被调整。4)一个租户可以为同一个组件实现多个功能。图7中示出了一个特征示例。在图7中,可以观察到以下情况:1) 一个组件可以被拆分为n个要素,X1;X22) 一个功能可以由多个租户实现。3) 一个租户可以同时实现多个功能。形式特征实现选择模型可以在等式(5)中示出。从等式(5),可以观察到以下:1) t* 表示SaaS应用程序。2) 该方程的目的是找到具有时间约束的最小费用解。3) i;j表示租户i是否可以实现第j个特征。4) xj表示第j个特征。.a×Rib×g×Cx×C,如果i是分量Pna×Rib×g×TIx×TG如果i是租户ð4Þ5. 特征实现选择模型在STA中,一个组件可以具有要实现的许多特征。由于一个特征可以由多个特征实现i 1第j个特征xj.n6)i;j; m意味着n个租户可以实现m个特征。j1n7)ti;j×txjt表示n个租户执行的总时间<部分m特征小于所需的时间。租户如果应用众包,则选择足够的租户来实现组件(t)的特征(X)变得重要。本文提出以下假设:8tωargmin<须遵守:>Pnmi¼1Xmnj¼1Xnti;j×c.x j!Xm Xn. Σ1) 特征是不能进一步分割的最小单位。2) 实现特征X需要时间T和成本C。3) 一个分量t * 可以被分割成n个特征。:i¼1ti;j ×xj¼1;1/1j1ti;j m和1/1j1ti;j ×t xj<不ð5Þ见图7。功能实现选择模型。SðiÞ¼ti;j×xj1表示只有一个租户可以实现158W.T. Tsai等人/CAAI Transactions on Intelligence Technology 1(2016)150e 161为了提供特征选择的解决方案,引入算法2。算法2的基本思想是穷尽所有可能的解,以最小的代价找到最优解。算法2可以描述如下:算法2是一个递归算法,它探索每一个可能的解决方案。● tω不选择第n个租户来实现第m个特征。因此,tω将从ft1;t2;...; tn-1g中选择最佳租户● tω为第m个特征选择第n个租户。tω将从ft1;t2;● 没有留下任何特征优化tω6. 快速应用程序构建过程本文继承了Tsai在[42,24,43]中提出的构建应用程序模板的方法。当租户或子租户构建应用程序模板时,这些模板的关键字可以通过弹性搜索[38]和solr[37]进行索引。通过将弹性搜索和Solr的相关性算法与4.2节中讨论的组件排名相结合,租户和子租户可以快速发现合适的应用程序模板。在选择应用模板之后,租户或子租户可以定制或扩展应用模板以成为应用或应用模板。构建的应用程序和应用程序模板可以发布,以便子租户可以订阅和重用。因此,快速构建应用程序的过程分为以下两个步骤:1) 租户和分租户通过基于关键字的搜索引擎发现适当的应用模板。2) 租户和子租户自定义或扩展选定的应用程序模板。此外,租户和子租户可以发布定制的应用程序或扩展的应用程序模板,以便其他子租户可以订阅或重用它们。7. 实验实验进行,并用于说明静态和动态模型。在静态模型中,实现、订阅、引用和子租户等关系对系统性能有不同的影响。在这个实验中,实现被认为具有最大的影响力,其权重被设置为3。转租者被认为具有第二大影响力,其权重设置为2。订阅和引用都被认为是相等的,并且它们的权重被设置为1。基于这些假设,图3可以被转换为具有表1所示的权重的连接图。表1带权的连通图。12345103001200000301000421000500000见图8。静态排名的结果。●W.T. Tsai等人/CAAI Transactions on Intelligence Technology 1(2016)150e 161159图第九章静态排名与动态排名更新。表2带权的子图。123456103001020000003010000400000050000006001010见图10。动态排名的结果。应用等式(2)中引入的静态模型,结果如图所示。八、从静态分数可以看出,租户1和租户2的静态分数都高于组件的静态分数。通过改变改变等式(2)中的a、b和g的权重,它将具有不同的静态分数。接下来,一个租户订阅了component3和component5。应用方程(2)引入的动态模型,根集如图9a所示。通过增广组件3和组件5之间的关系,找到了由租户1、租户6、组件2、组件3和组件5组成的基集.通过添加它们的关系,子图如图9b所示。为了遵循静态模型中的相同权重,具有权重的子图如表2所示。根据算法1,它们的重要性和良好性得分如图所示。 10.在图10中,租户1具有最高的重要性分数,因为租户1实现了组件1并订阅了组件5,其中根据假设,实现关系具有最高的权重。组件2具有最高的良好性分数,因为组件2由具有最高重要性分数的租户1实现并且由组件3引用结合静态和动态分数,最终分数如图11a所示。虽然静态得分、重要性得分和良好性得分在本实验中具有相同的权重,但是它们可以基于不同的要求而不同。最后,通过将tenant 6及其订阅添加回图fig:fi- nalRankExample中所示的整个图来形成最终图。其相应的最终静态得分如图所示。 11 b. 将最终得分与最终静态比较,图 11、可以观察到以下情况:1) 动态模型提升具有最多关系的租户或组件。2) 静态模型通过实现关系提升租户3) 对于其他租户或组件,动态模型和静态模型具有相似的分数。通过对实验结果的分析,动态模型和静态模型都达到了预期的效果,说明图中静态模型应用于批处理层,动态模型应用于实时层的秩计算架构工作良好。第六章160W.T. Tsai等人/CAAI Transactions on Intelligence Technology 1(2016)150e 161¼¼图十一岁最终评分与最终静态评分。8. 结论本文提出了一种以租户为中心的STA,以帮助租户快速,轻松地构建和发布定制的组件和数据。为了充分利用公众的智慧,众包被引入STA组件开发生命周期的核心。此外,还开发了静态和动态模型来对租户和组件进行排名。此外,提出了一种排序体系结构,以处理租户和组件数量变得巨大的情况。最后通过实验验证了静态模型、动态模型和秩计算结构的有效性。.结果表明,它们按预期工作。确认这项工作得到了富士通实验室的支持引用[1] Wikipedia,软件即服务。http://en.wikipedia.org/w/index.php? 标题Software_as_a_serviceoldid578705617。[2] W.T. Tsai,P. Zhong,软件即服务(saas)中的多租户和子租户架构,在:第八届IEEE面向服务的系统工程国际研讨会,SOSE2014,英国牛津,2014年4月7日和11日,2014年,第11页。 128和139。[3] C.D. Weissman,S. Bobrowski,Force.com多租户互联网应用程序开发平台的设计,在:SIGMOD会议,2009年,pp. 889和 896。[4] S. Aulbach , D. Jacobs , A. Kemper , M. Seibold , A comparisonofflexibleschemas for software as a service , in: Proceedings of the2009 ACMSIGMOD International Conference on Management ofData,ACM,2009,pp. 881和888。[5] H. 蔡 氏 N. Wang , M.J. Zhou , A transparent approach of enablingSaaSmulti-tenancy in the cloud , in : 2010 6th World Congress onServices(SERVICES-1),IEEE,2010,pp. 40和47。[6] Y. Chen,W.T. Tsai,面向服务的计算和Web软件集成,第五版,Kendall Hunt Publishing,2015.[7] W.T. Tsai,Y.黄角,澳-地Shao,EasySaaS:a SaaS developmentframework , in : 2011 IEEE International Conference on Service-orientedComputing and Applications(SOCA),IEEE,2011,pp.1e 4。[8]A. Azeez,S. 佩雷拉湾 加马吉河 Linton,P.D. 莉拉拉特纳 S. 维拉瓦拉纳, P. 弗里曼特尔, 多租户SOA用于云计算的中间件,在:2010年IEEE第三届云计算国际会议(CLOUD),IEEE,2010年,pp. 458和465。[9] Google,Google App Engine. https://developers.google.com/appengine/网站。[10] Amazon,EC2. http://aws.amazon.com/ec2/网站。[11] 微软Azure http://www.windowsazure.com/en-us/网站。[12] W.T. 蔡,W。李湾,澳-地Esmaeili,W.Wu,Model-driven tenantdevelopmentfor PaaS-based SaaS , 2012 IEEE 4th InternationalConferenceonCloudComputingTechnologyandScience(CloudCom),IEEE,2012,pp. 821和826。[13] Workday,Workday的技术战略。http://www.workday.com/landing_page/workday_technology_strategy_whitepaper.php。[14] J. 豪,《连线杂志》。 14(6)(2006)1e 4。[15] Merriam-Webster.com , Crowdsourcing - Definition and More ,August31,2012.[16] A.Kittur , E.H. 奇 湾 Suh , Crowdsourcinguserstudieswithmechanicalturk , in:Proceedings of the SIGCHI Conference onHuman Factors inComputing Systems , ACM , 2008 , pp.453 和456。[17] X. Peng,M.A.巴巴角Ebert,IEEE Softw. 31(2)(2014)30e 36.[18] K.C. Kang,S.G. Cohen,J.A. Hess,W. E. Novak,A.S.面向特征的领域分析(FODA)可行性研究.代表,技术合作司文件,1990年。[19] J. Coplien,D.Hoffman,D.Weiss,IEEE Softw. 15(6)(1998)37e45。[20] D.L. Webber,H. Gomaa,Sci. Comput.程序. 53(3)(2004)305e331。[21] R. Mietzner,F. Leymann,从可变性描述符生成SaaS应用程序的可定制化过程,在:IEEE服务计算国际会议,2008年。SCC '08,第2卷,IEEE,2008年,第 359和366。[22] R. Mietzner , A. Metzger , F. Leymann , K. Pohl , Variabilitymodeling tosupport customization and deployment of multi-tenant-awaresoftware asa service applications,in:Proceedings of the 2009 ICSEWorkshop onPrinciples of Engineering Service Oriented Systems ,IEEE ComputerSociety,2009,pp. 18E 25。[23] F. Chong,G.Carraro,Architecture Strategies for Catching the LongTail,MSDN Library,Microsoft Corporation,2006,pp. 9E 10。[24] W.T. Tsai,Q.邵,W. Li,Oic:基于本体的SaaS智能定制框架,2010年IEEE面向服务计算和应用国际会议(SOCA),IEEE,2010年,pp. 1e 8.[25] W.太阳,X. Zhang,Guo C.J.,Sun,H. Su,Software as a Service:Configuration and Customization Perspectives , in : Congress onServicesPart II,2008。服务-2. IEEE,IEEE,2008,pp. 18E 25。[26] E. Truyen,N. Cardozo,S. Walraven,J. Vallejos,E. 拜诺穆吉沙,S.Gunthe r , T.D 'Hondt , W. Joosen , Cont e xt-orientedprogrammingforcustomizable SaaS applications , in : Proceedings ofthe 27th AnnualACM Symposium on Applied Computing , ACM ,W.T. Tsai等人/CAAI Transactions on Intelligence Technology 1(2016)150e 1611612012,pp. 418和425。[27] W.T. Tsai,P. Zhong,X. Bai,J.Elston,IEEE Syst.J.8(3)(2014)889和899。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功