没有合适的资源?快使用搜索试试~ 我知道了~
可在www.sciencedirect.com在线获取ScienceDirectFutureComputing and Informatics Journal 1(2016)27e34http://www.journals.elsevier.com/future-computing-and-informatics-journal/用于SaaS中数据迁移的云互操作性代理(CIB)Hassan Alia,Ramadan Moawadb,*,Amira Ahmed Farouk Hosniaa埃及开罗阿拉伯科学技术海运学院计算信息技术学院计算机科学研究生系b埃及开罗埃及未来大学计算机与信息学院计算机科学系接收日期:2016年6月16日;修订日期:2017年2月16日;接受日期:2017年3月12日2017年3月16日在线发布摘要云计算正变得越来越流行。信息技术市场领导者,例如,微软、谷歌和亚马逊正在广泛转向基于云的解决方案。然而,在云供应商提供的云实现中存在隔离。有限的互操作性可能会导致一个用户依附于单个云提供商;因此,将应用程序或数据从一个云提供商迁移到另一个云提供商可能需要大量工作和/或全周期重新开发,以符合新提供商的标准和实现。从一个云供应商转移到另一个云供应商的能力将是朝着推进云计算互操作性和增加客户信任迈出的一步。这项研究提出了一个云代理解决方案,以填补不同的软件即服务提供商之间的互操作性差距。在一个真实的企业应用程序数据集上实现并测试了所提出的云代理。根据指定的映射模型,迁移过程已经完成,并且工作正常© 2016埃及未来大学计算机与信息技术学院由爱思唯尔公司制作和主持这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。关键词:云计算;互操作性; SaaS代理1. 介绍现代云计算技术的设计没有考虑互操作性[1]。为了促进云计算的互操作性,以前的工作[2]建议每个云系统都由 其 组 件 描 述 , 包 括 资 源 , 服 务 和 应 用 程 序 接 口(API)。此外,应该使用被广泛接受的标准化API来规范通信、资源和服务管理.然而,这种模式并不现实,而且很难实现,因为公司认为差异化是一种竞争优势。因此,另一种方法* 通讯作者。电子邮件地址:hassanali83@gmail.com(H. Ali),ramdan.mowad@fue. edu.eg(R. Moawad)、amirahosni@link.net(A.A.F.Hosni)。同行审查,由埃及未来大学计算机和信息技术系负责。[2]云计算是一种应用。云代理被用作一种中介技术,以支持不具备相互交互能力的不同云系统之间的交互。这种技术可以减少修改当前云系统的需要。找到与互操作性相关的问题的解决方案可以促进云计算,因为这将增加客户对云的信任并解决供应商锁定问题。根据“云计算用例讨论组,云计算用例V.4”,云计算互操作性有两个方面,即技术(语法)和语义。技术互操作性是指代码能够同时与多个云供应商协作的能力。它包括接口规范、交互服务、集成、表示和交换等方面。“欧洲公共服务的欧洲互操作性框架(EIF)“将语义互操作性描述为组织理解来自外部的信息的能力http://dx.doi.org/10.1016/j.fcij.2017.03.0012314-7288/© 2016埃及未来大学计算机与信息技术学院由爱思唯尔公司制作和主持这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。28H. Ali等/Future Computing and Informatics Journal 1(2016)27e 34来源与原始作者意图相同。在本文中,我们介绍了一个云互操作性代理(CIB)在软件即服务(SaaS)的水平,试图弥合不同的SaaS提供商之间的语义互操作性的差距,服务于相同的业务需求,但仍然缺乏互操作性的前景,由于不遵循相同的数据模型。尽管填补互操作性差距的想法并不新鲜,但大多数努力都解决了其在IaaS层的挑战。例如,RESERVOIR模型旨在创建一个服务模型,用于在按需基础上透明地提供和管理资源和服务。RESERVOIR模型旨在使IaaS供应商能够动态地进行互操作,以创建可以被视为无限IT资源池的内容[1]。在参考文献[3]中,作者使用代理的概念来优化通过多个云系统的虚拟基础设施部署,而不管物理基础设施的部署和管理。本文介绍的新思想是在SaaS层中应用代理概念。本文的其余部分组织如下。第2节提供了对现有云计算互操作性工作的调查。第3节介绍了建议的云代理方法。第4节介绍了云代理的实现。第5节总结了本文,并讨论了未来的工作。2. 相关工作一些研究已经解决了云计算互操作性的挑战。有些人引入了中介机制,而另一些人则建议任何云提供商都可以采用的标准,以便与其他人进行无缝交互。研究工作概述如下。2.1. 信息系统互操作性扩展层次(LISI)模型[4]LISI成熟度模型的扩展版本由国防部(DoD)C4ISR架构工作组提出[4]。他们认为,最初的LISI模型的前两个层次是任何打算与云相关的企业必须具备的。他们还假设这些企业具有足够的安全成熟度,可以达到原始模型中的第三个级别,然后再添加另外三个级别。新的扩展模型提出了以下五个级别的云到云互操作性:级别1:基于域的互操作性。此级别提供了一个集成环境,该环境具有以下特征:广域网(WAN)、数据和数据库在彼此分离或隔离的应用程序之间共享。此外,云服务仅限于单个云供应商。第2级:基于业务的互操作性。此级别提供了一个通用环境,该环境具有WAN、共享数据、共享应用程序以及跨域共享信息的能力。云服务可用于不同云系统之间的高级协作第3级:可移植性和互操作性。此级别提供了不同的云环境,其中云工件(如虚拟机)可以在停机状态下在多个提供商之间移动。安全性、隐私策略和服务级别协议(SLA)的实施基于提供商之间的通用协议。级别4:安全互操作性。此级别提供了不同的云环境,其中策略和流程可以使用标准协议与不同供应商的等效物透明地自动交互,并具有所有供应商批准的统一安全模型。第5级:移动互操作性。此级别提供了不同的云环境,其中云构件可以在运行状态下在多个供应商之间移动。数据和应用程序是相互关联的。前三个级别是可以实现的,可以通过使用互操作性代理、虚拟机(VM)、互操作性格式(例如开放虚拟化格式(OVF)或参考文献[5]中提到的扩展版本)来实现。标准协议、正式的信任关系、新的创新技术以及企业的文化转型,以获得对共享基础设施和/或应用程序的认可,这些都是支持第四和第五级别的必要条件2.2. 美国国家标准与技术研究院(NIST)NIST是一个与企业合作创建和应用技术标准和测量的组织。它为云计算互操作性开发了以下五个用例,涉及云消费者和供应商之间的交互方式:在云提供商之间复制数据对象:这涉及将数据对象从一个云提供商系统复制到另一个云提供商系统。向IaaS云的动态操作调度:这涉及到基于客户端确定的一组规则,在最有效的可用云上调用操作。这些规则在运行时进行评估。从数据中心到云的云爆发:这涉及动态分配或取消分配云计算处理能力或存储资源,以维护公司数据中心托管流程所需的服务级别协议。迁移基于队列的应用程序:这涉及到将现有队列及其消息从一个云提供商迁移到另一个云提供商。将(完全停止的)虚拟机从一个云提供商迁移到另一个云提供商:这涉及将完全停止的虚拟机从一个云提供商无缝迁移到另一个云提供商。我们的工作分别涉及在不同SaaS提供商之间迁移数据实体和工作流的第一个和第四个用例。●●●●●●●●●●H. Ali等/Future Computing and Informatics Journal 1(2016)27e 34292.3. 对象管理组(OMG)OMG致力于为许多行业创建集成各种技术的标准。它为云供应商和消费者举行了一次会议,以商定一组云计算用例,这些用例比NIST开发的用例更通用。与我们的工作最接近的用例是“Changing Cloud Vendors“用 例 ,尤其是第一个sce- nario,因为它涉及从一个供应商到另一个供应商的更改。场景1:变更SaaS供应商:此场景涉及从一个SaaS供应商变更为另一个。源应用程序和目标应用程序服务于相同的业务域(例如,客户关系管理(CRM)、企业资源规划(ERP)或结构化或非结构化数据)。与一个供应商创建的数据和文档可以导入到第二个供应商的应用程序。“不同的应用程序类型有时需要标准API。我们需要知道,这些要求并不专门针对单个云应用程序,例如,用于将文档从Zoho SDK迁移到Google SDK的标准与用于将文档从Microsoft Office迁移到OpenOffice的标准相同。2.4. 标准在云计算互操作性中的作用本文探讨了标准化将有利于互操作性的云计算领域,以及其他领域[6]。作者从其他标准中提取了四个关于消费者与电子提供商交互的用例。关于数据迁移的第三个问题涉及云计算互操作性。“作者提到,要移动的数据必须从源SaaS提供商提取并上传到目的地。他还引用了一些支持数据移动目标的现有标准,例如云数据管理接口(CNET),简单对象访问协议(SOAP)和代表性状态传输(REST)API。我们提出了一个CIB,作为一个中间件层,其主要功能是将数据从一个SaaS提供商移动到另一个。要从源提取的数据被规范化以匹配目的地数据结构,然后上传到目的地。这项工作的主要目标是测试从一个云供应商到另一个云供应商的数据迁移过程的适用性,并测试其结果。3. SaaS CIB方法本研究旨在在SaaS层中创建一个CIB,作为填补互操作性差距的中介任何SaaS提供商之间提供相同的业务需求或域。许多研究工作已经解决了代理的想法,但在SaaS层中实现和测试媒体机制是一个新颖的想法。此外,本研究的重点是开发一个通用的云互操作性经纪方法,可以实现不同的数据迁移和移动过程中的SaaS层。图1示出了CIB在SaaS层中的位置,并且更一般地,与云计算部署模型IaaS、SaaS和平台即服务(PaaS)相关。CIB充当SaaS层中托管的不同类型的应用程序之间的中介,这些应用程序服务于相同的业务需求。CIB使用每个SaaS提供商公开的标准API来提取数据,然后将其转换为可以提供给其他SaaS提供商的形式。我们将数据分为两个主要类别,即主数据和交易数据,如下所示:主数据:指业务应用中的核心对象,如供应商、客户、产品、员工和资产。事务数据:反映应用对象状态变化的应用事务。这些数据是在业务流程的上下文中创建的,它们引用主数据并反映其中的更改。主数据和事务数据之间的关系类似于父子关系。与销售、采购、活动和取消相关的交易数据引用主数据,主数据是业务的主要对象拟议的方法包括以下五个步骤:3.1. 元数据的收集和分析我们需要确定数据表及其属性。此外,我们需要知道它们的含义。每个属性必须通过名称、数据类型、关系、约束和默认值来标识。图1.一、CIB位于云计算层的SaaS层内30H. Ali等/Future Computing and Informatics Journal 1(2016)27e 343.2. 开发映射模型映射模型的核心功能是在每个实体与其要映射到的SaaS应用程序上的等价物之间创建关系。这是通过决定记录的外观、包含哪些属性、它们的大小和数据类型以及允许哪些值来实现的。这个步骤还应该包括源实体和目标实体属性之间的映射。这通常是这个过程中最重要也是最困难的一步3.3. 解决方案设计完成映射过程后,必须将解决方案设计创建为可实施以实现数据迁移目标的软件解决方案。3.4. 执行将以前的解决方案设计实现为抽象每个SaaS提供商的API并执行数据迁移的软件。3.5. 测试解决方案这一步是最具挑战性的。它需要迭代工作和手动检查,以确保数据移动的完整性和准确性。一个简单的流程图介绍了这种方法显示在图。 二、4. CIB实施(案例研究)该案例研究是所提出的方法在两个著名的SaaS提供商,即Microsoft(MS)Dynamics CRM 2015和SugarCRM上的应用。然而,这种方法可以用于其他SaaS提供商,例如,SAP ERP和Oracle电子商务套件ERP应用程序。CRM是一种使用一个或多个接触点来管理公司与客户、供应商或潜在客户的互动的方法[7]。它通常涉及使用技术来组织,自动化和同步销售,营销,客户服务和技术支持。这些是必须包含在任何CRM应用程序中的主要模块或组件。在所有CRM模块中共享的常用主数据实体包括以下实体:帐户、联系人、销售线索、系统用户、产品和合同。交易实体可能包括机会、活动、团队、日历、报价、订单、发票、文档、电子邮件、知识库文章和服务预约。这些实体的名称可能因应用程序或服务提供者而异,但它们必须以某种形式存在,并且某些附加实体也可能专门为某个提供者而存在。这种情况下的解决方案是,如果目标应用程序上不存在自定义实体,则使用自定义实体来应用映射。采用方法:图二. SaaS CIB方法步骤。4.1. 收集和分析元数据每个实体都被描述并映射到其等效的业务单元。业务单位和数据实体之间的关系可以是一对一或一对多;例如,MS Dynamics CRM 2015中的业务单位Contact映射到ContactBase、ContactList、ContactLeads、ContactOrders和ContactQuotes数据实体。然后,在数据类型、允许值、约束、默认值和依赖关系的上下文中描述每个业务实体。表1中描述了实体数据映射的示例。4.2. 开发属性映射模型两个SaaS提供者之间的示例实体的属性和数据类型的映射如表1所示。我们还必须注意,其他实体的映射表或模型将以相同的方式执行,但属性的名称和数据类型将不同。因此,我们不需要在本文中显示其他表格。4.3. 解决方案设计1) 设计注意事项和亮点:在继续设计细节之前,有必要强调一些H. Ali等/Future Computing and Informatics Journal 1(2016)27e 3431表1Microsoft SugarCRM SaaS提供程序之间ContactBase实体的某些属性的映射表Microsoft(MS)Dynamics CRM联系人库实体MS数据类型SugarCRM联系人实体SugarCRM数据类型ContactId标识符Id标识符CustomerTypeCode Int CustomerTypeCode(自定义属性锁定)Int已删除的ContactMethodCode Int已删除的ContactMethodCode(自定义属性锁定)Int LeadSourceCode Int lead_source字符串ShippingMethodCode Int ShippingMethodCode(自定义属性锁定)int称呼字符串称呼字符串JobTitle String标题字符串FirstName String first_name StringNickName String昵称自定义属性MiddleName字符串MiddleName自定义属性串串Last_Name String Last_Name String后缀字符串后缀字符串日期日期描述字符串描述字符串GenderCode int Gender String年度收入金额年度收入自定义属性钱WebSiteUrl String portal_name StringEMailAddress1 String Email 1 StringEMailAddress2 String Email 2 StringDoNotPhone位DoNotPhone(自定义属性)布尔值CreatedBy唯一标识符created_by唯一标识符ModifiedOn Date Modified_date日期ModifiedBy唯一标识符Modified_By唯一标识符Telephone1 String phone_home String电话2 String phone_other StringTelephone3 String phone_work String传真字符串phone_fax字符串TransactionCurrencyId验证标识符货币自定义属性(锁定)Uniqueidentifier关于以经纪人形式提出a) 标准的选择:代理以XMLWeb服务的形式使用两个SaaS提供者的可用API。它使用SOAP消息格式通过这些服务与应用程序交换消息。b) 技术决策和变通方法:在项目实施过程中,必须制定一些技术决策和变通方法,以确保工作得以执行。比如说,当使用SugarCRM接口创建帐户记录时,仅使用强制属性(姓名、电话和网站)。除了create_account函数中的属性外,我们不能添加额外的属性。这导致了一个技术决策,即使用这些基本属性创建记录,然后将其ID(唯一标识记录的主键)保存到本地创建的然后,这个ID用于用剩余的实体属性更新创建的记录。在SugarCRM中没有创建或管理工作流的功能。通过使用直接在数据库表中创建记录的函数来直接创建工作流、操作和触发器,已经克服了这个问题。最后,类不是强类型的,结果是错误键入的实体或属性名称直到运行时才被验证。使用Microsoft API时并非如此。c) 用户交互:CIB为每个提供者提供了一组单独的类,用于处理其主要功能以及与此实体一起工作所需的任何其他功能。对于某些实体,有一些额外的属性在其他应用程序上没有等价物。这些属性的类型从简单的数据类型到复杂的表。这个问题可以通过在相反的应用程序上创建自定义字段来解决。在MS Dynamics CRM中,我们可以使用API 通 过 代 码 创 建 这 些 自 定 义 字 段 , 但 在SugarCRM中,此功能无法通过API使用。用户需要通过应用程序自己的图形用户界面(GUI)手动创建它们。CIB可以做的是警告用户缺少属性以及需要创建它们。2) 设计步骤:a) 连接处理:到提供者API的连接是通过一个类处理的,这个类在主接口中引用,包含所有实体包装类的公共行为每个类都必须实现该接口。32H. Ali等/Future Computing and Informatics Journal 1(2016)27e 34b) 实体处理类:每个实体通过两个类包装,一个用于业务逻辑,另一个用于数据属性。数据属性类旨在将实体与相应SaaS提供者中的命名差异隔离开来,并且调用者函数负责根据源和目的地传递合适的属性。例如,CIB“UserData“类中的fax属性在SugarCRM SaaS Provider“Users“实体中具有名称phone_fax,在Microsoft CRM Provider中具有名称address1_fax。一个典型的实体类图的例子如图所示。 3.c) 数据移动过程:数据的移动通过三个主要的数据挖掘步骤:提取,转换和加载(ETL)。提取:这是从源应用程序提取数据的步骤。转换:此步骤可以包含任何数据准备,以匹配目标应用程序可接受的格式。例如,在Dynamics CRM中显示实体被禁用的字段是布尔值(包含true或false),而在SugarCRM中它是字符串值(Active或Inactive);因此,转换过程可能会为每个具有禁用或删除标志的实体包括此步骤。加载:这是将数据上传到目标应用程序的过程。实际上,这是一个两步的过程,因为我们首先移动基本数据(不引用其他数据的日期),然后需要另一个步骤来建立推荐信该步骤包括使用本地创建的数据库,该数据库将父记录的主键属性的新值与源提供者中的原始值一起存储在目的地提供者中。在移动过程完成之后,使用一个函数来更新使用其新值引用该主键的外键,从而将实体之间的关系迁移到目的地提供者,以保证相关实体的一致性。此外,当目标是Sug- arCRM时,需要另一个可选步骤,因为创建函数仅限于强制属性,在这种情况下,更新引用函数包含另一个步骤来填充其余数据以及设置引用或使用单独的函数。4.4. 执行我们的代理的先前设计的实现是在Microsoft VisualStudio 2012集成开发环境中用C#编程语言编写的。4.5. 测试解决方案我们使用的样本客户关系管理数据的空调和电视显示器的制造和销售公司约一万条记录的不同的应用程序模块。在我们项目的这个阶段中,主要的测试标准是从源到目的地的数据移动过程的完整性,图3. 用户实体处理类类图。●●●H. Ali等/Future Computing and Informatics Journal 1(2016)27e 3433图四、MS Dynamics CRM 2015 SaaS提供商中的联系人列表图五、使用CIB移动后SugarCRM SaaS提供商中的联系人列表这些数据在移动后的正确性。图图4和图5显示了源(MSDynamics CRM 2015 SaaS提供商)中的联系人实体列表,以 及 他 们 使 用 我 们 的 代 理 将 该 数 据 复 制 到 目 的 地(SugarCRM SaaS提供商)。如图所示,数据已成功地从源复制到目的地,并根据这些实体的映射模型正确映射。5. 结论和今后的工作在这项研究中,本文的方法是在云计算的SaaS层的CIB开发。然后在案例研究中实施该方法,以评估并初步测试两个SaaS提供商的代理,作为应用程序概念的证明。获得了预期的结果,这意味着34H. Ali等/Future Computing and Informatics Journal 1(2016)27e 34将数据从一个提供商映射和迁移到另一个提供商,反之亦然,以克服云计算范例的SaaS层中的供应商锁定问题是可能的,并且可以使用所提出的CIB来实现。今后的工作将包括以下内容:为SaaS提供商提供创建API的方法和指导方针,以实现互操作性目标,并实现更多用例以展示所建议方法的灵活性。为用户界面提供实体属性的初始映射,用户可以修改该映射,然后根据该映射应用数据移动。使用不同的评估标准对数据移动过程进行更多的分析。评估经纪人在不同方面,如性能,准确性,时间.引用[1] RochwergerB,Breitgand D,Levy E,Galis A,Nagin K,LlorenteIM,等. 开放式联合云计算的RESERVOIR模型和架构。IBM J ResDev2009;53(4):535e 45.[2] [10]杨文,李文,李文.云计算互操作性:现状。在:云计算技术和科学(CloudCom),雅典,希腊。IEEE; 2011 年11月29日至12月1日。第752页和第7页。 IEEE第三届国际会议。[3] 托德松约翰,蒙特罗鲁本S,Moreno-VozmedianoLlorenteRafael,Llorente云代理机制,用于跨多个提供商优化虚拟机的放置。Future Gener CompSy 2012;28(2):358e 67.[4] 道威尔·斯科特,巴雷托·阿尔伯特,迈克尔·布雷特,成文德。云到云的互操作性。在:系统工程系统,阿尔伯克基,新墨西哥州,美国。IEEE;2011年6月27日和30日。第258和63页。2011年第六届系统工程系统国际会议论文集。[5] 放 大 图 片 作 者 : Mark E , Ranabahu Ajith , Engehausen Roy ,Anderson Laura C. 走向与云无关的中间件。在:面向对象编程系统语言和应用程序(OOPSLA 2009),奥兰多,佛罗里达州,美国。ACM; 2009年。第619和26页。第24届ACM SIGPLAN会议论文集。[6] 乔治亚州刘易斯标准在云计算互操作性中的作用。In:Systemsciences(OHSS),Wailea,Maui,Hawaii,USA. IEEE; 7e 10 Jan.2013年。第1652和61页。第46届夏威夷国际系统科学会议。[7] 刘春年,王永龙,潘勤。中国CRM技术与产业链的构建与发展。在:智能计算和信息科学。柏林,德国:施普林格柏林海德堡;2011年。p. 118E 23。●●●●
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功