没有合适的资源?快使用搜索试试~ 我知道了~
⃝⃝可在www.sciencedirect.com上在线获取ScienceDirectSoftwareX 5(2016)190原始软件出版物www.elsevier.com/locate/softxLyo代码生成器:基于模型的代码生成器,用于开发符合OSLC的工具接口杰德·胡里瑞典斯德哥尔摩皇家理工学院机械设计系接收日期:2016年1月9日;接收日期:2016年4月6日;接受日期:2016年8月4日摘要为了促进新出现的OSLC(Open Services for EASP.Collaboration)工具互操作标准的发展,开发了一个开源代码生成器,该代码生成器允许对符合OSLC的工具接口进行规范,并且可以从该代码生成几乎完整的接口Java代码。该软件采用基于模型的开发方法来实现工具互操作性,目的是为工具界面的完整开发周期提供建模支持该软件面向OSLC开发人员以及互操作性研究社区,具有经过验证的功能,可扩展以支持其相应的需求。c2016作者。由Elsevier B.V.发布。这是CC BY许可下的开放获取文章(http://creativecommons. org/licenses/在/4。0/)。关键词:OSLC;工具集成;工具接口建模;工具接口代码生成代码元数据当前代码版本请参阅git存储库下的代码git:git.eclipse.org/gitroot/lyo/org.eclipse.lyo.core.git指向此代码版本使用的代码/存储库的永久链接git://git.eclipse. org/gitroot/lyo/org. eclipse. lyo. core. gitEclipse公共许可证(EPL-1.0)代码版本控制系统使用Git软件代码语言使用Acceleo [1],它生成Java代码。编译要求、操作环境依赖性请参见https://wiki.eclipse.org/Lyo/AdaptorCodeGeneratorWorkshop/EclipseSetup,详细说明除了上面提到的“当前可执行软件”的Acceleo通过Eclipse插件“EMF Facet SDK”或“EMF - Eclipse ModelingFramework SDK”中的一个可用的适当EMF编辑器如果可用,链接到开发人员文档/手册https://wiki.eclipse.org/Lyo/AdaptorCodeGeneratorWorkshop[二]《中国日报》使用源代码时可使用的其他说明问题支持电子邮件jad@kth.se电子邮件地址:jad@kth.se。http://dx.doi.org/10.1016/j.softx.2016.08.0042352-7110/c2016作者。由Elsevier B.V.发布。这是CC BY许可下的开放获取文章(http://creativecommons. org/licenses/by/4. 0/)。··J. El-khoury / SoftwareX 5(2016)190191软件元数据当前软件版本1.0.0此版本可执行文件的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-16-00007注意:URL是Eclipse更新站点;可以通过Eclipse IDE从该站点下载软件法律软件许可证Eclipse公共许可证(EPL-1.0)计算平台/操作系统Linux、OS X和Microsoft Windows(原则上,所有能够运行Eclipse的平台平台)安装要求依赖关系请参见https://wiki.eclipse.org/Lyo/AdaptorCodeGeneratorWorkshop/EclipseSetup了解详细信息指令Lyo Code Generator可以在Eclipse Kepler和Luna上运行至少需要以下内容Java JDK(至少需要版本7)面向Java EE开发人员的Eclipse IDE(https://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/lunasr2)如果可用,用户手册链接-如果正式出版,请在参考列表中引用该出版物https://wiki.eclipse.org/Lyo/AdaptorCodeGeneratorWorkshop[2]的文件。这些说明指导用户完成从设置Eclipse环境到创建初始Eclipse项目,再到生成代码和运行适配器的整套步骤。问题支持电子邮件Jad@kth.se1. 介绍OASIS OSLC(Open Services for ComputingCollaboration)[3]是一个新兴的、有前途的软件工具互操作性开放标准,允许它们彼此共享数据。该标准基于Linked Data初始化[4]并遵循REST架构模式。通过采用Internet的体系结构-以及作为一个相对较新的标准,充分的技术支持是其在行业内广泛采用的关键因素,通过降低学习的门槛以及实现符合OSLC的工具。这一点尤其重要,因为该标准不仅针对软件工具和平台供应商(他们可能有动力投资于此类集成技术)。OSLC还为开发组织(软件工具的传统最终用户)提供了定制其开发环境的能力,以实现最佳的工具交互,满足其特定需求[5]。因此,技术支持必须向后一类利益攸关方提供,因为对他们来说,工具开发不一定是核心业务和/或能力。从研究的角度来看,许多过去[6虽然研究工作的一部分是特别集中在工具的互操作性在其核心的一个更大的研究部分是在需要的OSLC功能,以研究集成工具和过程的附加值例如,在iFEST [7]研究项目中,其主要目标是开发一个用于建立工具链的集成框架,该项目的七个工作包中只有一个致力于框架的开发。其余的工作包作为最终框架的利益相关者,重点是优化系统开发过程的特定阶段和各自的工具。类似地,在正在进行的EMC 2 [10]项目中,一项任务(164人月)预计将致力于集成框架,其余任务(总计394人月)将在此基础上提供额外的服务和实施。在这方面,为了产生最大的研究影响,核心互操作性研究应强调开发辅助工具、方法和准则,以便缩小标准化机构与更广泛的研究界和使用开发工具和程序的开发组织之间的差距。本文介绍的开源软件旨在(1) 这是通过基于模型的代码生成器来实现的,该代码生成器允许对OSLC接口(由特定工具对外公开的数据和服务)进行图形建模,并且可以从该代码生成器生成几乎完整的OSLC兼容接口。由于忠于OSLC标准,这些模型提供了标准的高级抽象,同时确保详细的接口实现仍然符合它。该软件作为Eclipse Lyo开源项目的一部分发布[12]。2. 问题和背景根据我们在以前的研究项目中的经验,从事工具互操作性的开发人员和研究人员在尝试采用OSLC标准时通常会面临以下挑战:集成需求获取--这需要识别、制定集成需求并确定其优先级。这项任务特别具有挑战性,因为集成需求而且在···192J. El-khoury / SoftwareX 5(2016)190==启发过程的利益相关者需要能够脱离他们目前的实践状态和局限性;以及了解新标准在技术上可能实现的目标。实现-实现符合OSLC的工具需要掌握许多其他技术,如RESTful Web服务和RDF标准系列。然而,来自其他领域的研究人员和开发人员可能不一定具有这种专业知识,这导致采用该标准的起点更高。确认-新标准可能包含模糊和/或不完整的表述,导致标准的错误解释(或至少是不同的解释)。最初很少有例子和指导方针可以帮助消除这种混乱。例如,在OSLC中的资源形状的定义中,oslc:representation和oslc:valueType属性之间的区别没有很好地阐明,并且误用可能导致这两个属性的无效组合这可能最终导致开发出不兼容的工具这对于互操作性标准来说是特别有问题的,因为它也会导致看似可互操作的工具变得不可互操作。总而言之,在工具或工具链的整个开发周期中都需要开发支持。此外,这样的支持应该足够抽象OSLC标准(及其技术栈),使其可用于更广泛的研究社区和开发组织。为此,Lyo [12]是一个开源Eclipse项目,旨在帮助社区采用OSLC规范并构建符合OSLC的工具。该项目由开源组件组成,例如(1)OSLC 4J软件开发工具包(SDK),其中包含在Java中实现OSLC提供程序和客户端所需的组件;(2)测试套件,将根据规范测试OSLC实现,以及(3)一组可用于集成和测试的参考实现。Lyo项目部分解决了前面讨论的挑战,本文的贡献旨在建立和加强Lyo项目。另一个相关的工作是来自Ecore元模型的特定于域的OSLC规范的开源生成器[13]。此解决方案侧重于实现的代码生成,并不试图为更完整的开发过程提供更广泛的视角支持。此外,它似乎不再被积极开发,也不是基于OSLC4J SDK构建的。3. 软件框架3.1. 软件构架图1说明了我们为应对上述挑战而作出贡献的总体方法。我们在现有的Lyo OSLC4J SDK的基础上进行构建和加强,进一步巩固其成功。虽然OSLC4J的目标是适配器实现的实现阶段,但我们的目标是用基于模型的开发方法对其进行补充,图1.一、当前贡献的分层方法,基于Lyo OSLC4J SDK构建,并允许未来的扩展(虚线组件)。它允许人们在更高的抽象级别上工作,使用模型来指定适配器设计,而不需要处理OSLC标准的所有技术细节(如关联数据、RDF等)。然后可以使用代码生成器将规范模型合成为运行的实现。将在这一级增加其他基于模型的组成部分,例如正在进行的关于测试套件生成的工作。该软件由以下组件组成:适配器元模型-根据OSLC标准定义任何工具接口的模型Lyo代码生成器-基于EMF元模型的实例生成OSLC适配器适配器元模型允许OSLC适配器功能的图形化和直观的规范。它被设计为忠于OSLC标准,并且-与当前基于文本的OSLC规范的方法相比-这种改变可以更好地执行关于如何定义规范的它是基于EMF Ecore框架构建的[14]。Lyo代码生成器作为一个Eclipse项目运行,并作为插件依赖项的最小集合。它基于Acceleo [1],实现了OMGMOF模型到文本语言(MTL)标准[15]。代码生成器的设计是将OSLC元模型的实例作为输入,并生成OSLC4J兼容的Java代码。一旦生成,Java代码就不依赖于代码生成器或输入EMF模型。生成的代码可以进一步开发- 与任何OSLC 4J适配器一样-没有与发生器的进一步连接。此外,可以修改适配器模型并重新生成其代码,而不会丢失在各代之间手动引入适配器的任何代码。这促进了适配器的渐进式开发,其中可以逐步开发规范和实现。图2示出了工具适配器的典型架构,以及它与它所连接的工具的关系。正如下一节中进一步详细介绍的那样,代码生成器可以生成完整适配器接口所需的大部分访问源工具内部数据的代码但是,对于特定的工具技术(例如SQL数据库或基于EMF的工具),可以自动生成越来越多的手动代码。虽然这种逻辑可以集成到代码生成器中,但我们设想可以在我们当前的通用····J. El-khoury / SoftwareX 5(2016)190193图二.典型的工具架构,带有OSLC适配器。生成器,以便提供这样的附加功能(图1中的顶级虚线组件)。例如,在Crystal EU研究项目中,为基于EMF的工具生成元模型实例的模型生成器允许自动生成完整的适配器[16]。3.2. 软件功能如文档[2]中进一步详细说明的那样,使用Lyo代码生成器开发OSLC4J适配器的过程包括以下步骤:1. 设置OSLC 4J项目-手动创建一个空的Eclipse项目,该项目被配置为开发任何OSLC 4J适配器。2. 模型OSLC 4J适配器-通过图形化实例化适配器Meta模型指定所需的适配器功能3. 适配器模型-使用提供的验证机制,以确保所有必需的模型属性都按预期定义,然后才可以生成代码。4. 生成适配器代码--使用提供的生成机制为运行中的OSLC 4J适配器服务器生成几乎所有必需的Java代码。5. 完整的适配器实现-手动实现访问源工具内部数据所需的代码6. 运行适配器-适配器现在可以运行了。在生成时,适配器几乎是完整的,并且可以读取运行,并且不需要修改,也不需要用许多额外的手动代码来补充。只需要实现一组与源工具通信以访问其内部数据的方法(图2中的虚线箭头)。这种通信被简化为一组简单的方法,以(a)获得(b)创建(c)搜索和(d)查询每个服务的资源。这个手动代码被打包到一个类中,并生成了所需方法的框架。但是,开发人员的任务仍然是手动编码这些方法。以下功能是基于适配器规范模型生成的:资源-Java类,表示与适配器相关的每个OSLC资源。这些类包括适当的OSLC注释、属性和getter/setter-正如OSLC 4J SDK所期望的那样。服务-对应于模型中定义的资源服务的JAX-RS类,以及服务提供者和服务提供者目录的类。(OSLC核心资源)。每个JAX-RS类都包含与Query Capabilities、Creation Factories、Dialogs相对应的必要方法,以及与资源交互的CRUD方法(如适配器模型实例XML代码中所定义的)。除了支持预期的RDF/XML表示之外,JAX-RS类还包含响应HTML请求的方法,这些方法对于调试很有价值。HTML请求通过可定制的JSP模板处理,这些模板提供表示资源、查询结果和对话框的HTML页面。Web服务器-所有必要的类和配置,以运行作为Jetty Web服务器的适配器。此外,生成的代码包含许多占位符,这些占位符允许开发人员手动插入额外的Java代码,从而根据需要定制默认功能。例如,生成的JSP模板为资源提供了一个基本的HTML表示,它很可能需要定制以匹配所连接工具的外观。类似地,JAX-RS类方法可能需要在指定Web服务的默认处理之前或之后执行一些额外的业务逻辑。为此,开发人员可以安全地在Java和/或JSP文件中的“//Start of usercode”和“//End of user code”之间的区域中添加手动代码。生成器确保此类手动代码在后续生成后保持完整这允许适配器模型及其结果代码的增量开发4. 执行情况和实证结果Lyo代码生成器已被许多合作伙伴在不同的研究项目在[16]中,EastADL和Autosar建模工具的适配器是通过分别公开261和834个资源的服务自动生成的。在这两种工具中,模型实体形成了一个复杂的多继承层次结构,需要将其映射到一个有效的Java实现。因此,OSLC适配器的手动开发被认为是禁止的,需要自动化适配器开发的能力。此外,针对一般基于EMF的工具,开发了一个额外的组件-EMF 4 OSLC-以补充Lyo代码生成器的两个(2) 自动生成必要的代码以访问和操作后端工具中的数据。这导致了适配器的完整生成-正如前面在3.1节中所描述的,因此验证了我们图1的分层方法。类似地,在正在进行的ASSUME [11]项目中,····194J. El-khoury / SoftwareX 5(2016)190\\\组件EMF4SQL预计EMF4OSLC和EMF4SQL之间可以获得大量代码重用,同时确保两个组件都构建在Lyo代码生成器作为EMC2项目[10]的一部分,Lyo代码生成器在[17]中用于研究协调工具链中的活动和通知的编排机制。此外,一些商业工具供应商利用该生成器协助开发其工具的适配器,使其余的合作伙伴能够很容易地获得这些适配器。在[18]中,对采用OSLC的最小化方法在生产工程领域进行数据集成进行了调查。对于来自生产领域的研究人员刀具适配器的快速原型制作。最后,为了进一步激发研究中对生成器的需求(不一定是对所提出软件的验证)-生成器的早期版本(尚未基于OSLC 4J)在[19]中通过提出并将轻量级集成模型链接到工具适配器元模型进行了扩展。5. 说明性实例缺陷跟踪系统Bugzilla [20]的工作适配器可以在公共Git存 储 库 http://git.md.kth.se:8080/scm/git/se.kth.md.iee.pub 子文件夹“src BugzillaAdaptor”下找到。EMF适配器模型实例可以在“AdaptorModel AdaptorInterface.xmi”下找到。适配器涵盖了代码生成器的所有方面,定义了一个服务提供者目录,其中包含Bugzilla中每个产品的一组服务提供者。每个服务提供者依次包含查询功能、创建工厂、创建对话框 和 选 择 对 话 框 的 服 务 。 这 些 服 务 管 理BugzillaChangeRequest资源,它是OSLC变更管理规范[21]中ChangeRequest资源的扩展。代码生成器的主要功能以及建模、生成和实现OSLC适配器所需步骤的概述在[22]中演示。该演示没有详细说明使用代码生成器的确切说明,而是在[2]中进行了文本维护6. 结论在本文中,我们提出了一种基于模型的工具开发方法,该方法试图降低工业开发人员和互操作性研究社区采用OSLC标准的门槛。自其发布以来,开源软件已被用于虽然前者使我们能够验证我们的贡献的实际可用性和有效性,后者展示了软件的研究潜力。为了覆盖更多的开发工具生命周期,该软件目前正在扩展,以支持自动生成测试套件,可以根据OSLC规范验证任何实现的适配器。还正在开发其他组件,以支持使用特定技术(特别是SQL数据库和EMF)的工具的接口的完整代码生成。引用[1] Eclipse Acceleo; 2016,April. [联机]。网址:https://www. eclipse.org/acceleo/.[2] Eclipse Lyo代码生成器; 2016年4月。[联机]。可用:http://wiki。eclipse. org/Lyo/AdaptorCodeGeneratorWorkshop。[3] OASIS OSLC; 2016 ,April. [联机]。网址:http://www. Oasis-oslc。org/.[4] Berners-Lee T.关联数据设计问题; 2016年4月。[联机]。网址:http://www. w3。org/DesignIssues/LinkedData. HTML.[5] [10]杨文辉,李文辉,李文辉. 嵌入式系统的系统性和成本效益工具集成-iFEST方法,见:ARTEMIS春季活动的ARTEMIS技术会议;2012年。[6] CESAR-安全相关嵌入式系统的成本效益方法和流程-Artemis项目;2016年4月。[联机]。网址:http://www. cesarproject. 欧盟/。[7] iFEST-嵌入式系统工具的工业框架-Artemis项目; 2016年4月。[联机]。网址:http://www. 阿耳忒弥斯-伊夫斯。欧盟/。[8] 嵌入式系统的基于组合模型的分析和测试-Artemis项目; 2016年4月。[联机]。网址:http://www. mbat-artemis。首页/.[9] CRYSTAL-CriticalSystemEngineeringAcceleration-anArtemisproject; 2016,April.[联机]。网址:http://www. 水晶阿耳忒弥斯。欧盟/。[10] EMC 2-用于动态和可变实时环境中混合关键性应用的嵌入式多核系统-Artemis项目; 2016年4月。[联机]。网址:http://www. artemis-emc 2. 欧盟/。[11] ASSUME-负担得起的安全安全移动演进-ITEA 3项目; 2016年4月。[联机]。可用:https://itea 3. org/project/assume. HTML.[12] Eclipse Lyo; 2016 ,April. [ 联机] 。网址:https://www. eclipse.org/lyo/.[13] Koneksys OSLC发生器; 2016年4月。[联机]。可用:https://github.com/axelreichwein/SysML2OSLCResourceTools/tree/master/SysMLProfileToOSLCResourceTools.[14] Eclipse EMF; 2016 年 4 月 。 [ 联 机 ] 。 可 用 : https : //eclipse.org/modeling/emf/.[15] MOF模型到文本转换语言(MOFM 2 T),1.0,OMG标准,文件号:formal/2008-01-16; 2008。[16] 放大图片作者:J.支持链接数据方法,以保持丰富EMF模型之间的一致性。在:建模基础和应用:第12届欧洲会议,ECMFA 2016,第101页。36比47[17] 我的天啊高级设计工具集成到绘图仪中。[硕士论文]M é lardalen Un iversity;2014.[18] [10]杨文,王文.使用将数据与生产工程中的互操作性信息标准相关联。在:第48届CIRP制造系统会议-CIRP CMS; 2015,p. 502-507[19] 放大图片作者:Zhang W,Moller-Pedersen B.轻量级工具集成方法-从工具集成模型到OSLC集成服务。在:软件工程和应用国际会议,ICSOFT'12; 2012年,pp. 13-24[20] Bugzilla; 2016,April.[联机]。网址:https://www. 虫子org/.[21] OSLC变更管理规范v2.0版,2010年; 2016年4月。[联机]。可提供的:http://open-services. net/bin/view/Main/CmSpecificationV2.[22] Eclipse Lyo代码生成器演示; 2016年4月。[联机]。网址:https://www. YouTube. com/手表?v=nEImxc6K5U。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- 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
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功