没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记248(2009)161-171www.elsevier.com/locate/entcsDinner:软件组合的自动适配器Jos'eAntonioMart'ın1ErnestoPimentel2西班牙马拉加大学摘要企业系统严重依赖于组合软件,如软件组件或Web服务。该软件的组成允许软件的可重用性,更高的生产力和降低成本。然而,这些组件是黑盒,它们的接口之间的不兼容性阻止了它们的直接重用。有几种专注于软件适配的方法能够解决签名和行为级别的不兼容性,但这些方法需要抽象的规范来指定如何解决不兼容性。这些规格的生成是一个开放的问题,规格通常是手工制作的,这迫使设计师理解其中的微妙之处的组成部分。在本文中,我们提出了Dinphase,一个自动生成规格的工具,给出了以抽象形式编写的组件行为描述。DINESTRUCTURE补充了上述方法,并允许组合软件的自动适应关键词:软件适配,适配器规范,互操作性。1引言软件组件和Web服务3广泛用于企业系统,以实现软件的可重用性,提高生产力并降低成本。然而,该软件的组成并不是一件容易的事情,因为系统组件通常是在不同的环境中设计的,因此它们存在需要调整的不兼容性。 大多数情况下,组件不能重用,因为它们 因为它们之间的交互会导致错误的执行,即不匹配。 在实践中,不兼容性可能是由不对应的消息名称(组件在相同的消息名称上交互)引起的,或者当不遵守消息的顺序时,如果一个组件中的消息1电子邮件:jamartin@lcc.uma.es2电子邮件:pimentel@lcc.uma.es3在接下来,我们使用组件作为涵盖软件组件和服务的通用术语,即,在系统中组成的软件实体1571-0661 © 2009 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2009.07.066162J.A. Martín,E.Pimentel/理论计算机科学电子笔记248(2009)161在消息的参数之间没有对应项或不匹配项。这些不兼容性导致整个系统进入死锁状态。Bracciali等人 [4]开发了一种形式化的方法来自动从组件接口中派生适配器,其中包括它们的语法和行为描述。这些适配器能够通过拦截组件之间的通信来解决不兼容问题。然而,这种方法需要抽象的适配器规范,这些规范包含组件动作之间的映射,当适配器应用这些对应时,所有组件都正确协作并最终处于最终状态。这些规范的设计是一项容易出错的手动任务,要求设计人员充分了解所有组件的细节。在这项工作中,我们提出了DINE4,一个用于自动生成行为适配器规范的工具(克服在符号和行为层面上的不兼容性的DINDIOR接受以抽象形式编写的组件的行为接口作为输入[1],并返回适配器规范,描述如何解决(签名和行为)不匹配。这些规范被其他提案[7,11]用于生成最终适配器。在下面的部分(第2节)中,我们将给出一个例子来说明DINESTO是如何工作的。在第3节中,我们将解释我们的工具的参数以及获得的几个结果我们将在第4中对相关工作进行评论。最后,我们将在第5中介绍未来的工作和一些结论。2激励的例子在图1中,我们展示了两个不兼容的组件。 排放(!)和receptions(?)的参数放在括号中左侧的组件(图1(a))是一个简单的FTP客户端,它使用其凭据(登录!(用户名,密码)),并可以请求文件(下载!(文件名))或可用文件列表(列表!())。客户端接收其请求的回复(文件?(数据)和结果?(film),分别)和它结束。 清单1包含客户机5的抽象描述。另一方面,服务器(图1(b))需要身份验证,但与客户端不同,此身份验证被分为两个消息:user?(用户名)和通行证?(密码)。服务器根据请求支持telnet和FTP会话(telnet?()和ftpServer?()),但只要适配器请求FTP服务,我们就可以忽略telnet功能,这是客户端所期望的行为。服务器在每条消息中显示名称不匹配,但它对文件和列表请求有类似的操作(getFile?(文件名)和ls?()),以及他们的响应(resultFile!(数据)和文件!(film))。还有两件事需要注意:(i)当下载结束时, 服 务 器 会 发 出 退 出 通 知(end!(ii ) 服 务 器 具 有 动 作(结果!(echo))与客户端的结果同名。(film),但这些行动有不同的论点,4可用http://sourceforge.net/projects/dinapter。5由于篇幅限制,省略了对服务器的抽象描述。J.A. Martín,E.Pimentel/理论计算机科学电子笔记248(2009)161163(a) 客户的行为。(二)服务器行为。语义图1.组件的行为图2. 图1中的组件具有多个规格的DINEQUITY输出。有几种可能的适配器规范可以克服示例中组件之间的不匹配(图2中显示了一些)。每164J.A. Martín,E.Pimentel/理论计算机科学电子笔记248(2009)161−−−−清单1客户机的抽象XML描述。<?xml version=><!声明:partnerLinks,variables,.><调用操作=<联系我们<调用 操作=“下载” inputVariable=<接收操作=序列><其他> 工艺流程>规格中的线是由菱形分隔的组件的发射和接收之间的映射()。非正式地说,6,符合规范的适配器必须在接收到另一端的动作时执行其映射一端的动作特别是,图2中的规范编号3有三个映射。第三个映射负责认证过程,其中服务器端的两个接收必须对应于客户端的单个发射 一旦身份验证完成,只要客户端需要FTP会话,其他两个映射就开始发送ftpServer?()到服务器,他们继续匹配列表!()并下载!(文件名)请求及其各自的答复。应该注意的是,结束!()服务器发送的消息包含在第一个映射的末尾,因此它将被适配器接收和丢弃(不转发给客户端)。其余规格与前一规格相同。 它们是等价的,因为它们只是组合,其中映射在它们不改变适配器行为的地方被分割,例如,匹配列表是一样的!()请求及其应答在同一映射(第三规范的第二映射)中,以便在请求的一个映射和应答的另一个映射(第一规范的第三和第五映射)中匹配它们,因为这些操作[6]参见[4],以获得规范的正式描述以及如何使用它们来生成最终适配器。J.A. Martín,E.Pimentel/理论计算机科学电子笔记248(2009)161165在组件行为中是顺序的,因此映射将一个接一个地被触发。这些规格中的任何一个,都是DINDIOR的输出,都用作输入 在[4]中描述的方法,以自动获得最终适配器。3第纳尔DINDIOR接受以抽象形式编写的两个组件的行为描述作为输入,并返回一组适配器规范。在内部,该工具使用A* 算法和专家系统的组合。 A* 算法和专家系统规则使用的解析函数表示用于生成适配器规范的适配策略DINESTING要求组件的参数先前已经匹配(即, 相同的名字)。 中具有相同数据类型和语义的参数 一个组件在另一个组件中必须具有相同的名称。这一要求可以通过用参数的数据集的抽象替换参数名来实现。DINESTO将根据组件的参数、类型(发射/接收)及其在图形中的位置,做出最佳的选择来匹配组件的动作。当Dineclare启动时,它加载组件的行为描述,并可选地显示它们的行为图(图1)。专家系统遍历生成部分规范的组件行为,它计算这些规范的启发式,并将它们交给A* 算法,该算法决定哪些部分规范必须继续。启发式函数(在[10]中描述)在生成的规范之间强加了一个顺序,首先放置那些最能克服组件之间不兼容性的规范。因此,它具有双重目的,因为它引导生成过程(缓解部分规范的爆炸),并且它首先返回最符合启发式函数和专家系统规则所表达的要求的规范。最终,它会找到一个或多个(如果有几个具有相同启发式值)通过专家系统测试的有效规范,并返回它们(图2)。根据要求,该工具可以放弃找到的解决方案,并执行另一次搜索迭代以找到不同的规范。表1包含了从Dineclave运行几个示例中收集的一些数据。列如下:第一个(L)是示例中循环的存在,而Pi和If是组件中事件驱动条件(PICKs)和常规条件行为(IF)的数量。客户端和服务器中的动作数量分别为Cli和Ser。下一列(M)是生成的指定线(或映射)的数量,T是搜索树的数量(条件需要几个搜索树),S是生成的指定的数量,ET和ES是搜索树的数量和在达到解决方案之前探索的指定。U是解决方案的数量,尽管是无死锁的,但适应事件驱动条件的分支,其中从适应中没有获得有用的结果,例如,166J.A. Martín,E.Pimentel/理论计算机科学电子笔记248(2009)161例如LPi 如果CLISerM不ETSESU索尔斯e00110342111311001VOD-3205652111203202e006215434199823802e010209776111914301e021√11654523161206101e007012745501818010009e012√226631744820614220(1)e004b731512104683237315504e018d√21596618345366189212e002√1136481495341221524e01633778731011668136501表1一些结果来自于DINESTIVE。一个只连接和断开而不进行任何计算的客户端。这是因为启发式函数和专家系统认为连接和断开连接比处理否则会发现的不兼容性更好。最后,索尔斯是找到的有效解的个数。某些解可以相互等价,因为它们将一些指定线合并为一条线(参见图2的示例)。从该表可以看出,与我们的工具的复杂性最相关的因素是改变执行流程(IF和 循 环 ) 的 局 部 决 策 点 的 数 量 这 些 决 策 点 对 性 能 的 影 响 比 动 作 的 数 量(Cli+Ser)更大。此外,如果适配策略不适合问题(或组件具有不可解决的不兼容性),则可能产生如示例e002、e012和e018d中的无用(U)结果然而,如果我们执行示例e012中的流程的另一次迭代,它将返回一个有效的解决方案。另一个有趣的观点是A* 算法所扮演的相关角色,潜在的启发式函数,即使存在状态爆炸,组件足够复杂,在找到合适的适配器规范之前,它只需要探索大约一半的生成规范DINDERNET已成功地纳入ITACA(集成的自动合成和适应)。这种集成使DINESTO能够接受更多的输入格式(Microsoft工作流和符号转换系统)。此外,工具ACIDE(图3,也包括在ITACA中)提供了一个图形,7e004b是第2节中给出的示例。J.A. Martín,E.Pimentel/理论计算机科学电子笔记248(2009)161167图3.ACIDE和DINESTO之间的集成。cal接口,可以帮助开发人员设计自己的规范或审查,修改和接受由DINESTO生成的规范。ITACA中的另一个工具,称为Compositor[11],接受Dinphon返回的指定作为输入,并以正确的顺序应用映射来生成最终适配器的协议。ITACA内部的集成增强了DINESTO,为它提供了更多关于组件之间相似性的信息。 另一个使用WordNet::Similarity的工具(Sim)提供了对适应操作背后的语义的比较[14]。将此语义信息包含在DINDENT中,增强了名称不匹配情况的匹配,通过考虑潜在的 语义,它减少了找到正确规范所需的搜索步骤的数量。例如,图4显示了示例e021的一部分。这个例子包括一个医疗服务(图4(b)),病人要求与医生(P) 或专家(S)。在另一侧(图4(a)),客户端组件出现姓名不匹配,它请求医生(D)或儿科医生(E)。每一个人都有自己的故事,每一个人都有自己的故事,每一个人都有自己的故事。忽略操作的名称,分支的四 P和ES; DP和EP; DS和ES; DS和E P)。然而,通过对WordNet的查询,Dinner识别出168J.A. Martín,E.Pimentel/理论计算机科学电子笔记248(2009)161(a) 客户的行为。(二)医疗服务行为。图4.使用WordNet::Similarity的语义信息自适应。4相关工作软件自适应是一个非常有前途的主题,它已成功应用于不同的实现平台,如Windows [6]或Windows工作流基金会[9]。一些建议[5,7,16]已经集中在签名和行为适应。然而,所有这些方法都需要手动指定适配器,当组件协议复杂时,这可能很棘手。我们的解决方案通过从组件的口头描述生成适配器规范来补充这些建议,这使得适配过程完全自动化。Moser等人。 [12]开发了一个基于ActiveData的平台(VieDAME),用于监控和服务自适应数据库进程。他们动态地更换服务的QoS基础上,在一个非侵入性的方式使用面向方面的编程明。 他们使用变压器进行服务适应,但这些变压器必须手动设计。他们的工作可以通过我们的工具自动生成这些变压器来补充。关于自适应规范的自动生成,Schmidt和Reuss- ner [15]重点关注两个组件访问或被第三个组件访问的同步。他们引入了一种基于同步乘积计算的算法来解决丢失消息的不兼容性,但他们的方法无法克服签名不匹配和行为不兼容性,如丢失消息或消息拆分/合并。Autili等人 [3]提出了一种方法,J.A. Martín,E.Pimentel/理论计算机科学电子笔记248(2009)161169适配器的自动合成,将组件的行为描述和必须在系统中强制执行的交互规范作为输入。然后,他们的工具(Synthesis)生成只显示指定交互的组合代码,并删除那些导致死锁的代码。与[15]类似,合成不能克服名称不匹配,并且无法解决某些行为不兼容性,例如消息拆分/合并。此外,他们的工具依赖于对组合目标的高级描述,因此没有这样的描述就无法工作。现在让我们来提一下解决Web服务自适应的两个相关工作[6,13在第一个中,Brogi和Popescu [6]概述了一种自动生成适配器的方法,该适配器能够解决可重构进程之间的行为不匹配。在他们的适应方法中,他们使用YAWL工作流作为中间语言。一旦生成了适配器工作流,他们就使用锁分析技术来检查是否生成了完整的适配器或仅生成了部分适配器(某些交互场景无法解决)。它们解决了消息重新排序的不兼容性,但它们的方法在签名不匹配时失败。此外,即使我们也将我们的方法应用于Java服务,我们的方法也能够处理可以从抽象Java中提取的组件/服务的抽象描述,但由于它与ITACA的集成,它也接受其他语言和平台,如Symbolic TransitionSystems和Windows Work Java。Motahari Nezhad等人 [13]提出了一个 模式 匹配工具 称为COMA++[2],用于帮助开发人员根据服务WSDL签名调整现有Web服务的新版本。DINDERNET与他们的工作有一些相似之处(我们的工具使用的启发式算法与他们的证据起着类似的作用),他们引入了一些关于死锁处理的有趣想法。然而,尽管他们能够生成一个收集所有协议不匹配的不匹配树,解决不是自动的。5结束语在这项工作中,我们提出了一个自动生成适配器规范的工具,它克服了签名和行为不匹配。生成的规范成功地解决了丢失的消息,并且能够根据其参数合并和拆分消息。在文献[4,8,16]中有几个作品使用这些规范来自动构建行为适配器。传统上,这些规范是手动编写的,它们要求设计人员充分了解所涉及组件的细节。我们的工具通过自动生成这些规范来补充以前的工作。DINCITY实现了很大的通用性,因为与其他工具不同,它不需要任何额外的信息(如本体,用例或序列图)来指导指定过程,除了组件的行为,这是自动从抽象的抽象,微软工作流程或符号转换系统中提取的。此外,DINESTO不仅可以用于适应两个组件,170J.A. Martín,E.Pimentel/理论计算机科学电子笔记248(2009)161此外,它还支持服务的可替换性,在新服务和要替换的服务的补充行为信息搜索算法和专家系统的结合可以快速解决简单的不匹配问题,但是,不兼容性越大,都在寻找其他方法来克服它们这使得我们的工具可以处理不同程度的不兼容性,但当不兼容性无法补救时,它会浪费太多时间。 一个解决方案是补充我们的工具,一种算法来自动识别这些不可补救的不兼容性,或者一种算法来将组件行为切割成更小的可适应的片段。DINESTAL使用启发式函数处理行为和语法不匹配,因此它仍然可能被欺骗性组件误导,其中行为,参数和操作名称将生成过程引导到无死锁但无效的指定。然而,我们目前正在努力包括线性TEM- poral逻辑(LTL)的专家系统中的公式。 通过这种方式,Dinquiry将为我们提供使用定制的专家系统规则和LTL属性进一步细化规范的选项。确认该项目由西班牙科学和教育部(项目TIN 2008 -05932)和安达卢西亚委员会(项目P06-TIC-02250)提供部分引用[1] 阿尔维斯,A.,A. Arkin,S. 如kar y,C. 巴雷托湾 Bl och、F. Cur bera,M. Ford,Y. Goland,A. 你好,N. 卡尔萨角凯文河Khalaf,D. 科尼希先生Marin,V. 我也是SThatte,D. vanderRijn,P. Yendluri和A.Yui,editors,Web Services Business Process Execution Language Version 2.0,OASIS Standard,IBM Corporation,Microsoft Corporation,SAP AG,IBM Systems(2007),可通过http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html。[2] Aumueller,D.,H. Do,S. Massmann和E. Rahm,Schema and Ontology Matching withCOMA++,in:Proc. of SIGMOD906-908[3] Autili,M.,P. Inverardi,A.Navarra和M.Tivoli,综合:自动组装正确和分布式基于代理的系统的工具,在:Proc. of ICSE784-787.[4] Bracciali,A.,A. Brogi和C. Canal,A Formal Approach to Component Adaptation,The Journal ofSystems Software74(2005),pp. 45比54[5] Brogi,A.,C. Canal和E. Pimentel,On the Semantics of Software Adaptation,Science of ComputerProgramming61(2006),pp. 136-151。[6] Brogi , A. 和 R.Popescu , Automated Generation of EQUIPMENT Adapters , in : Proc. 2006 年 ,LNCS第4294(2006)号来文,第4294(2006)页。27比39[7] 运河角,P. Poizat和G.Salaun,软件组合中的同步行为失配,在:Proc. of FMOODS63比77[8] 运河角,Poizat和G. Salaun,行为失配组件的基于模型的自适应,IEEE Trans.on Softw。Eng.34(2008),pp. 546-563.[9] Cubo,J. 、G. Salaun角Canal,E. Pimentel和P. Poizat,AM odel Bas edApp roachtotheVerificationandAdaptation of WF/.NET Components,in:Proc of FACS'07,ENTCS 215,2008,pp. 39[10] 我的天,J。 和E. Pime n tel,AdaptationCont ract s的持续基因关系,在:P roc. FOCLASA'08 ,ENTC S , 出 现 。J.A. Martín,E.Pimentel/理论计算机科学电子笔记248(2009)161171[11] Mateescu河, P. Poizat和G. Salauün,AdaptationofServi ceP rocolusingP rocessAlgebraandOn-the-FlyReduction Techniques,in:Proc. of ICSOC'08,LNCS 5364(2008),pp. 84比99[12] Moser,O.,F. Rosenberg和S. Dustdar,Non-Intrusive Monitoring and Service Adaptation for WS-GPRS,in:Proc. of WWW815-824[13] Motahari Nezhad,H. R.,B. Benatallah,A. Martens,F. Curbera和F. Casati,Semi-AutomatedAdaptation of Service Interactions,in:Proc. of WWW993-1002[14] 佩德森,T.,S. Patwardhan和J. Michelizzi,Word-Net::Similarity - Measuring the Relatednessof Concepts,in:Proc. of Intelligent Systems Demonstrations,held in AAAI(2004),pp. 267-270。[15] Schmidt,H.和R. Reussner,Generating Adapters for Concurrent Component ProtocolSynchronisation,in:Proc. FMOODS '02(2002),pp. 213-229[16] Yellin,D.和R. Strom,协议规范和组件适配器,ACM传输程序。19(1997),pp. 292-333。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功