用户名: 密码: 验证码:
SaaS应用中多租户若干关键技术研究
详细信息    本馆镜像全文|  推荐本文 |  |   获取CNKI官网全文
摘要
软件即服务(SaaS)是一种打破传统软件销售模式的商业模式,具有Web交付和按需付费使用的特点。在这种模式下,软件供应商从软件租用者处获得持续的收入,作为交换,租用方不必再为软件的维护、版本的升级,硬件的购置等付费。正是由于这种SaaS模式的灵活性,可扩展性和成本效益,使得越来越多的企业采用该软件模式。随着SaaS应用的发展,多租户的概念伴随而至,多租户是SaaS应用的关键属性,即SaaS应用必须能够满足多个或多种租户的软件需求,这样SaaS供应商才能减少他们的软件开发成本,硬件购置成本,培训成本,升级和维护成本,从而以最少的基础设施成本获得最大的利润,同时,通过多租户的可定制特性,客户能够按需付费使用软件并降低租户的应用门槛和风险。虽然让应用程序支持多租户能够为软件供应商和用户都带来好处,但是要让一个应用程序支持多租户并不容易,软件供应商不仅要修改软件的架构以适应多租户,而且还要重新设计软件的数据存储结构以便支持多租户的数据存储,并考虑在多租户情况下,保障租户的安全性和隔离性。因此,本文结合国家973计划“一体化可信网络与普适服务体系基础研究——普适服务的基础理论、模型与关键技术”项目,国家自然科学基金“移动网络用户智能主动服务理论与关键技术研究”和“大粒度网络服务协同中行为适配机制与算法研究”,以及“高效可扩展云服务系统架构”项目,首先从多租户应用平台的架构可扩展性方面进行讨论,提出一种可扩展的、多ESB之间可交互的Web服务平台;在该平台的基础上,本文利用网络编码扩大网络容量的思想,进一步提出并实现多租户合理高效利用网络资源的模型,从而改善多租户应用的性能;最后,本文设计了多租户的数据存储模型,并对该模型进行空间效率和实验分析。论文中的主要工作描述如下:
     1)随着SOA架构的普及以及Web服务的迅速发展,企业服务总线ESB(Enterprise Service Bus)被越来越多的企业所使用。ESB是一个基于消息的,分布的集成架构的开放标准,是在SOA架构中实现服务间智能化集成与管理的中介。作为一个集成架构,ESB无法满足云计算环境下的架构可扩展性的要求,在本文所涉及的的实际应用中也显示出该架构无法支持大规模的数据交互,因此为了让本文所提供的ESB平台服务能够实现架构上的可扩展,并处理大规模的多租户的消息交互,本文提出了一种基于Web服务通知(WebService Notification)规范和基于消息队列云服务的分布式多ESB交互方法。在该方法中,多ESB之间的消息交换是关键问题,如果不能支持多ESB之间的交互,分布式的交互将不能实现。基于这个问题,本文提出了面向企业的多ESB通信架构,在Web服务通知规范和云队列模型的基础上,本文设计和实现了Web服务通知代理服务和订阅请求队列云服务来支持多ESB之间的实时通信。通过Web服务通知代理,多ESB之间可以进行实时交互;通过订阅请求云队列服务,ESB节点可以通过访问队列中的订阅消息,获得其他ESB节点的订阅请求。这两个服务使得本文的系统可以支持更多的租户,具有更好的可扩展性。
     2)在此平台基础上,本文进一步提出了一种基于主题驱动的组合服务运行方式,在该方式下,只要按照一定的主题订阅顺序就可以动态的运行服务组合,并且在运行过程中,服务只要通过主题的订阅或取消,就可以动态的加入和退出。在实际应用中,本文的方法显示了较好的业务执行效率。
     3)作为SaaS服务中的一个关键技术,多租户技术的目标是支持大量的客户,SaaS服务提供商如果希望尽可能的为尽可能多的客户提供服务,那么SaaS服务提供商就必须能够尽可能的接受和处理客户的请求,而随着云计算的发展,SaaS应用提供商不得不面临多租户海量的访问请求,面对大量的请求访问,尤其对于竞争资源的请求处理,例如数据库等,将是限制SaaS系统容量的关键因素。因此,本文利用网络编码扩大网络容量的思想,讨论了对瓶颈资源的请求进行复用处理的方法,提出了一种基于多租户的请求复用方法,以便扩大SaaS系统容量。在本文,主要讨论了请求复用中的两个关键问题:一是怎样请求复用,二是在得到复用请求的响应后,怎样从共享信息中分离出租户自身的信息。关于请求复用,对于不同的竞争资源存在不同复用策略。由于请求复用后,获得的数据信息将是包含多个租户的混合信息,因此本文利用租户ID、请求信息、响应信息进行租户间信息的组织,以便区分不同租户间的数据,并在系统获得经过编码的返回响应后,利用同或运算思想,对数据进行解码,以屏蔽不相关租户数据,将响应返回给请求租户。同时本文也给出了相关的请求复用、编码、解码算法,并通过实验证明显示了较好的改善系统容量的效果。
     4)本文研究了多租户的数据存储设计。目前,数据存储方式主要有键值对方式和基于元数据的方式。元数据驱动的数据管理方式在SaaS应用的定制管理中有着重要的作用,SaaS系统通过元数据表建立租户与定制的对应关系。在租户的定制过程中,相同的数据对象,可以被不同的租户定制,因此由于多租户的性质,容易导致定制对象大量的重复存储。另外,在目前的元数据存储模式中,依然存在过于依赖元数据的的问题,即进行数据查询时,需要不断的读取元数据信息来获得完整的实体信息,因此元数据表的访问效率也是在优化系统的执行效率时需要考虑的因素之一。基于此,本文讨论了在多租户存储环境下元数据的存储模式。本文将元数据分为基本元数据、扩展元数据以及租户自定义的元数据三类,并定义了基本元数据模板,这样,通过该模板可以提取出常用共享数据,从而将基本模板数据进行物化,以便提高元数据的访问效率以及应用程序的执行效率。同时,根据本文对元数据的定义分析,可以看到除租户自定义的元数据差异外,租户间的定制差异主要来自关于基本模板的定制差异,即不同租户对基本模板中的共享数据的重复定制,这种重复定制是造成数据冗余存储的主要原因。针对这种冗余现象,本文提出了租户差异存储方式,并给出了在该差异存储方式下的数据存储和访问方法以及算法描述。本文同时对差异存储方式进行了空间效率分析,给出了冗余减少的概率分析,以及实验分析。
The development of IaaS technology in cloud computing has brought a large number of cloud clients including the PaaS and SaaS providers. To the IaaS providers there is no doubt that software as a service (SaaS) is a more general infrastructure technology. This convenient software delivery and payment for cloud computing is becoming a new platform for enterprises and PC. Due to the flexibility, scalability, and cost-effectiveness of the SaaS model, it has been increasingly adopted by many enterprise software systems. Multi-tenant technology is the key attribute of SaaS applications. That is, SaaS applications must be able to support multi-tenant so SaaS vendors can reduce their software development costs, hardware acquisition costs, training costs, and upgrade and maintenance costs with minimal infrastructure costs to get the most profit. At the same time, it would allow customers to pay for SaaS application on demand with a lower application threshold and risk. But to have a software support multi-tenant is not easy. It needs not only to make the appropriate changes to its software architecture but also to provide a special design for its database structure to insure security and isolation. Therefore, with the combination of973project "The Research on the Basis of Trusted Network and Pervasive services--Research on Theory, Model and Key Technology for Pervasive Service", the National Natural Science Foundation "Research on Intelligent Active Service Theory and Key Technology for Mobile Internet Users", and "Behavior Adaptation Mechanisms and Algorithms for Large-grained Network Services Collaborative ", and "Afficient and Scalable Cloud Services System Architecture" project, our research work is mainly about scalability architecture for multi-tenant application, data storage, improvement of application performance. The paper's main work is concentrated in the following areas:
     1) With the popularity of the SOA architecture and the rapid development of Web services, more and more enterprises are using the ESB platform. The ESB is a message-based distributed integration architecture but is not a multi-ESB architecture. Its framework is not suitable for cloud computing environment. It also shows that it cannot support large-scale data interaction in practical applications. So, in order to make our ESB platform services have scalable architecture to support more tenants and handle large-scale multi-tenant message interaction, we propose a multiple ESBs communication method based on WS-Notification specification and cloud queue model. This method for exchanging data among multiple ESBs has a key problem. If the exchange can't be supported, distributed interaction would not be implemented among multiple ESBs. To solve this problem, we designed and implemented a Web Service notification broker and Subscribe Request Queue cloud service that supports real-time communication among multiple ESBs. Through theoretical analysis and practical application, these two services allow our system to support more tenants with better scalability.
     2) On the basis of this platform, we further propose a mechanism of topic-based publication and subscription to run a subscription-driven service. In our framework, composition services deployed on multi-ESB or different business processes can be executed if they subscribe to the appropriate topic by a certain order. Meanwhile, if a service wants to quit a business process, it only needs to cancel the topic subscription, and if they want to join, they can subscribe. In short, services can join or leave processes dynamically at run-time. In this way, our experiment demonstrates better efficiency of business execution.
     3) As a key technology in the SaaS service, multi-tenant technology aims to support a large number of customers, and SaaS service providers also hope to provide assistance. SaaS service providers must be able to accept and deal with customer requests as much as possible. With the development of cloud computing, SaaS application providers have to face a flood of access requests of multi-tenant, and a large number of access requests, especially for the competition resources such as databases, etc., will be a key factor in limiting the SaaS system capacity. We use the idea of network coding to discuss the request and response of bottleneck resources in our multiplexing processing method. A multiplexing method based on multi-tenant's request is used to expand the SaaS system capacity. In this paper, we primarily focus on two key issues:First, how to share requests and responses, second, how to separate your response from a shared reply. For request multiplexing, different sharing strategies are used for different competing resources. About reply sharing, we use tenants'ID, request information, and response information for the organization of information between the tenants in order to distinguish the data among different tenants. After the system encoding of the returned response, we use OR operator to decode the data in order to shield the data of unrelated tenants and return the response to the tenant. Furthermore, we give a related request multiplexing description, encoding algorithm description, and decoding algorithm description. In conclusion, our experiment shows a better effect on system capacity.
     4) We studied the design of multi-tenant data storage mode. At present, there are two storage models based on the shared schema:key-value method and metadata-driven approach. The data storage mode mainly includes key-value method and metadata-driven approach. Metadata-driven approach to data management plays an important role in the management of multi-tenant SaaS application customization. SaaS system establishes the correspondence between tenants and custom by the metadata tables. But in the customization process of the tenants, we can see that different tenants can customize the same object. For the metadata storage, due to the nature of the multi-tenant, it can result in a large number of custom objects duplicated storage. In addition, in the current data storage mode, which is still overly dependent on metadata, you need to constantly read the metadata information to find complete business data. So, the efficiency of metadata table is also one of the factors of system efficiency. Based on this, we discussed data storage mode in the environment of multi-tenant. We divided metadata into basic metadata, extended metadata, and tenants'metadata. We defined a basic metadata template, and then used the template to extract a common shared data. Thus, the basic template data can be materialized in order to improve access efficiency of meta-data and application.
     According to our definition of metadata classification, we can see that, except for the differences caused by tenants metadata, the differences of customization among tenants mainly come from the basic template customization and the non-difference data cause data redundancy stored. For this redundancy phenomenon, we propose a metadata-based multi-tenants differences data storage mode and provide data storage and access approach. Algorithms descriptions are given based on the difference in storage. According to our space efficiency analysis, we can see that in the case of the large amounts of data, our method reduces redundancy with a considerable effect.
引文
[1]KLEINROCK L. A Vision for the Internet[J]. ST Journal of Research 2(1),2005.PP:4-5.
    [2]BUYYA R, YEO C, VENUGOPAL, et al. Cloud Computing and Emerging IT Platforms:Vision, Hype, and Reality for Delivering Computing as the 5th Utility[J]. Future Generation Computer Systems 25(6),2009.PP:599-616.
    [3]BUYYA R, RANJAN R, CALHEIROS R N. InterCloud:Utility-Oriented Federation of Cloud Computing Environments for Scaling of Application Services, ICA3PP 2010,2010. PP:13-31.
    [4]ARMBRUST M, FOX A, GRIFFITH R, et al. Above the Clouds:A Berkeley View of Cloud Computing[J]. University of California at Berkley, USA Technical Rep UCB/EECS-2009-28,2009.
    [5]CUSUMANO M. Cloud Computing and SaaS as New Computing Platforms[J]. Communications of the Acm,2010,53(4).PP:27-29.
    [6]WU L, GARG S K, BUYYA R. SLA-based Resource Allocation for Software as a Service Provider (SaaS) in Cloud,11th IEEEACM International Symposium on Cluster, Cloud and Grid Computing, 2011. PP:195-204.
    [7]AULBACH S, SEIBOLD M, JACOBS D, et al. Extensibility and Data Sharing in Evolving Multi-Tenant Databases, Ieee 27th International Conference on Data Engineering,2011. PP:99-110.
    [8]WEISSMAN C D, BOBROWSKI S. The Design of the force.com Multitenant Internet Application Development Platform, SIGMOD,2009.
    [9]SHI Y, LUAN S, LI Q, et al. A Multi-Tenant Oriented Business Process Customization System, 2009 International Conference on New Trends in Information and Service Science,2009. PP: 319-324.
    [10]MIETZNER R, METZGER A, LEYMANN F, et al. Variability Modeling to Support Customization and Deployment of Multi-Tenant-Aware Software as a Service Applications, Pesos: 2009 Icse Workshop on Principles of Engineering Service Oriented Systems,2009. PP:18-25.
    [11]CHENG X, SHI Y, LI Q. A Multi-tenant Oriented Performance Monitoring, Detecting and Scheduling Architecture Based on SLA, Jcpc:2009 Joint Conference on Pervasive Computing, 2009. PP:599-604.
    [12]WANG Z H, GUO C J, GAO B, et al. A Study and Performance Evaluation of the Multi-Tenant Data Tier Design Patterns for Service Oriented Computing, Proceedings of the Icebe 2008:Ieee International Conference on E-Business Engineering,2008. PP:94-101.
    [13]林海略,韩燕波.多租户应用的性能管理关键问题研究[J].计算机学报,2010,33(10).PP:1881-1895.
    [14]FREDERICK C, GIANPAOLO C. Architecture strategies for catching the long tail[EB/OL] http://msdn2.microsoft.com/zhcn/architecture/aa479069.aspx.
    [15]孔兰菊,李庆忠,史玉良,et al.面向SaaS应用基于键值对模式的多租户索引研究[J].计算机学报,2010,33(12).PP:2240-2247.
    [16]ZHANG S, WANG X. Configuration of Multi-Tenant Applications, Advanced Research on Information Science, Automation and Material System, Pts 1-6,2011. PP:1182-1185.
    [17]OASIS. Business process execution language(bpel) v2.0[EB/OL] http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.pdf.
    [18]MENGE F. Enterprise Service Bus, Free and Open Source Software Conference 2007,2007.
    [19]Apache ServiceMix. [EB/OL] http://servicemix.apache.org/home.html.
    [20]Mulesoft. [EB/OL] http://www.mulesoft.com/mule-esb-open-source-esb.
    [21]KNORR E. Software as a Service:The Next Big Thing[EB/OL] http://www.infoworld.com/article/06/03/20/76103_12FEsaas_l.html.
    [22]Summit Strategy Report:The Future of Software as Service-And the Partners ISVs will Need to Get There (2004)[R].
    [23]SUN W, ZHANG K, CHEN S-K, et al. Software as a Service:An Integration Perspective[J]. LNCS, 2007,4749.PP:558-569.
    [24]MIETZNER R, LEYMANN F, UNGER T. Horizontal and vertical combination of multi-tenancy patterns in service-oriented applications[J]. Enterprise Information Systems,2011,5(1).PP:59-77.
    [25]GUO C J, SUN W, HUANG Y, et al. A framework for native multi-tenancy application development and management,9th IEEE International Conference on E-Commerce Technology/4th IEEE International Conference on Enterprise Computing, E-Commerce and E-Services,2007. PP:551-558.
    [26]SATHYAN J, SHENOY K. Realizing Unified Service Experience with SaaS on SOA,3rd International Conference on Communication Systems Software and Middleware and Workshops,(COMSWARE 2008),2008. PP:327-332
    [27]TAO L. Shifting paradigms with the application service provider model[J]. Computer,2001, 34(10).PP:32-39.
    [28]GRUND, M.SEHAPRANOW, M.KRUEGER, et al. Shared Table Access Pattern Analysis for Multi-Tenant APPlieations, Advance Management of Information for Globalized Enterprises,2008. PP:1-5.
    [29]WELL S, POLLACK K, A.BRANDT S, et al. Dynamic Metadata Management for Petabyte-Scale File Systems,2004 ACM/IEEE Conference on SuPercomputing(SC'04),2004. PP:4-4.
    [30]孔兰菊.SaaS应用交付平台中多租户云数据管理关键技术研究[D].City:山东大学,2011.
    [31]AULBAEH S, GRUST T, JACOBS D, et al. Multi-tenant databases for software as a serviee:sehema-mapPing teehniques, SIGMOD 2008,2008. PP:1195-1206.
    [32]G.CAMPBELL D, KAKIVAYA G, ELLIS N. Extreme Scale with Full SQL Language Support in Mierosoft SQL Azure, SIGMOD'10, June,2010.
    [33]CHONG F, CARRARO G. Multi-Tenant Data Architecture, [EB/OL] http://msdn.mlerosoft.com/en-us/library/aa479O86.aspx.
    [34]孔兰菊,李庆忠,史玉良,et a1.面向SaaS应用基于键值对模式的多租户索引研究[J].计算机学报,2010,(12).PP:2239-2247.
    [35]DECANDIA G. Dynamo:Amazon's highly available key-value store SOSP,2007.
    [36]AGRAWAL R, SOMANI A, XU Y. Storage and Querying of E-CommerceData[J]. VLDB, 2001.PP:149-158.
    [37]CHU E, BECKMANN J, NAUGHTON J. The Case for a Wide-Table Approach to Manage SParse Relational Data Sets, SIGMOD,2007. PP:821-832.
    [38]L.BECKMANN J, HALVERSON A, KRISHNAMURTHY R, et al. Extending RDBMSs To Support Sparse Datasets Using an Interpreted Attribute Storage Format, The 22nd International Conference onData Engineering ICDE'06 2006. PP:58-58.
    [39]唐圣潘,周肆清,丁长松.基于SAAS模式的共享模型的数据扩展技术研究[J].计算机技术与发展,2011,(08).PP:63-66+70.
    [40]MIETZNER R. Using Variability Descriptors to Describe Customizable SaaS Application Templates[R]. City:Institute of Architecture of Application Systems (IAAS),2008.
    [41]FRANCLIN.S.FOPING, IOANNIS.M.DOKAS, FEEHAN J, et al. A New Hybrid Schema-Sharing Technique for Multitenant Applications, Proeeedings of ICDIM 2009:International Conference on Digital Informatlon Management,2009. PP:211-216.
    [42]Introduetion to the APex Platform.[EB/OL] http://openapex.org/index.php.
    [43]栾帅.规则驱动的SaaS流程定制及验证技术研究[D]City:山东大学,2010.
    [44]HALINA K, SOURCE P M. SLA negotiation system design based on business rules, SCC2008, 2008. PP:609-612.
    [45]LIN H, SUN K, ZHAO S, et al. Feedback-Control-based Performance Regulation for Multi-Tenant Applications,15th International Conference on Parallel and Distributed Systems,2009. PP: 134-141.
    [46]LI X H, LIU T C, LI Y, et al. SPIN:Service Performance Isolation Infrastructure in Multi-tenancy Environment, Service-Oriented Computing-Icsoc 2008, Proceedings,2008. PP:649-663.
    [47]程旭.基于SLA的SaaS应用性能管理机制研究[D]City:山东大学,2010.
    [48]林海略,韩燕波.多租户应用的性能管理关键问题研究[J].计算机学报,2010,(10).PP:1881-1895.
    [49]KOZIOLEK H. The SPOSAD Architectural Style for Multi-tenant Software Applications,2011 9th Working Ieee/Ifip Conference on Software Architecture,2011. PP:320-327.
    [50]TAYLOR R N, MEDVIDOVIC N, DASHOFY E M. Software Architecture:Foundations, Theory, and Practice [J]. Wiley,2009.
    [51]THOMAS K, THAO N, LINH L. A software as a service with multi-tenaney support for an electronic contract management application, SCC2008,2008. PP:179-186.
    [52]GHEMAWAT S, GOBIOFF H, LEUNG S-T. The google file system[EB/OL] http://labs.google.eom/papers/gfs-sosp20O3.pdf.
    [53]MENGE F. Enterprise Service Bus, Free and Open Source Software Conference 2007,2007. PP.
    [54]IBM websphere[EB/OL] http://www-01.ibm.com/software/integration/wbimessagebroker/features/index.html?S_CMP=wbi messagebrokerfeaturestrk&S_CMP=wspace.
    [55]Apusic ESB [EB/OL] http://www.jxkingdee.com/fangan/showarticle.asp?articleid=784.
    [56]RES Infomatic Service Bus [EB/OL] http://www.realesoft.com/infomatic/ServiceBus/.
    [57]COMMITTEE O T. Web Services base notification 1.3 [EB/OL] http://docs.oasis-open.org/wsn/wsn-ws_base_notification-1.3-spec-os.pdf.
    [58]COMMITTEE O T. Web Services topic 1.3[EB/OL] http://docs.oasis-open.org/wsn/wsn-ws_topics_notification-1.3-spec-os.pdf.
    [59]COMMITTEE O T. Web Services brokered notification 1.3[EB/OL] http://docs.oasis-open.org/wsn/wsn-ws_brokered_notification-1.3-spec-os.pdf.
    [60]Apache Pubscribe project home[EB/OL] http://ws.apache.org/pubscribe.
    [61]pyGridWare project homepage[EB/OL] http://dsd.lbl.gov/gtg/projects/pyGridWare.
    [62]GT4 tutorial[EB/OL] http://gdp.globus.org/gt4-tutorial/multiplehtml/index.html.
    [63]HUANG Y, SLOMINSKI A, HERATH C, et al. Ws-messenger:A Web services-based messaging system for service-oriented grid computing, the 6th Ieee Intenational Symposium on Cluster Computing and the Grid (CCGrid06),2006. PP:167-175.
    [64]Eventing specification[EB/OL] http://www.w3.org/submission/Ws-Eventing.
    [65]Amazon SQS[EB/OL] http://aws.amazon.com/sqs/.
    [66]Windows Azure Cloud Service[EB/OL] http://www.microsoft.com/windowsazure/windowsazure/.
    [67]KIRSCHNICK J, CALERO J M A, WILCOCK L, et al. Toward an Architecture for the Automated Provisioning of Cloud Services, IEEE Communications Magazine, December 2010.
    [68]ZHANG Y, WANG Z, GAO B, et al. An Effective Heuristic for On-line Tenant Placement Problem in SaaS,2010 IEEE International Conference on Web Services,2010.
    [69]AHLSWEDE R, CAI N, LI S R, et al. Network information flow[J]. IEEE Transactions on Information Theory, July 2000.
    [70]FRAGOULI C, BOUDEC J L, WIDMER J. Network Coding:An Instant Prime[J]. ACM SIGCOMM Computer Communication Review, January 2006,36(1).PP:63-68.

© 2004-2018 中国地质图书馆版权所有 京ICP备05064691号 京公网安备11010802017129号

地址:北京市海淀区学院路29号 邮编:100083

电话:办公室:(+86 10)66554848;文献借阅、咨询服务、科技查新:66554700