1、1模型驱动生成 WebApp 中的平台无关模型的建立摘要: 在互联网飞速发展的今天,一些技术应运而生,如HTML5,WEB2.0 技术。这些技术使得 Web App得以出现。Web App不需要下载安装,是一种生存于浏览器中的应用。虽然 Web App这种轻应用使用起来很方便,但开发过程中仍有大量的重复的工作与技术细节,而且轻型软件的开发应该着重具体功能的实现、用户的易用性和体验度的设计上。解决重复性工作就是将模型驱动架构(Model Driven Architecture, MDA)注入到 Web App开发中,将开发工作从以代码为核心转变为以模型为核心。本文借助了一个基于 MDA的 Web
2、 App开发框架 MDWAF( Model Driven Web App develop Framework)11,提出了MDWAF中的平台无关模型的建立过程的改进方法。 Abstract: In the rapid development of the Internet today, some technologies came into being, such as HTML5, WEB2.0 technologies. These technologies enable the emergence of Web App. Web App does not need to download
3、 and install, and is a kind of application in the browser. Although the use of Web App light application is very convenient, there are still a lot of duplication of work and technical details in the development. And the development of lightweight software should focus on the realization of specific
4、functions, the users ease of use and 2experience of the design. To solve the repetitive work is to inject the Model Driven Architecture(MDA) into the Web App development, and to change the development of the work from the code as the core to the model as the core. In this paper, a MDA based Web App
5、is used to develop a framework MDWAF (Model Driven App develop Framework). This paper presents an improved method of establishing a platform independent model in MDWAF. ?P 键词: 模型驱动架构;Web App;平台无关模型 Key words: model driven architecture;Web App;platform independent model 中图分类号:TP311 文献标识码:A 文章编号:1006-
6、4311(2017)06-0205-03 1 绪论 现如今移动端智能设备的使用率越来越高,且手机主流系统份额逐步拉近,这使得 App制造行业逐步兴起。App 又分 Native App和 Web App,其中 Native App就是下载后安装在系统中的应用,而 Web App是依赖浏览器生存的。Web App的优势就在于跨平台性好,可以减少开发成本;数据存储在云端,用户数据一致性好。使用模型驱动的原因就是 Web App本身结构简单,但是重复繁琐的工作比较多。模型驱动正好可以解决此问题。 本文所提出的方法就是将模型驱动的思想加入 Web App的开发当中,3主要阐述的是平台无关模型(PIM)
7、的建立环节。此前的使用模型驱动思想的软件开发工程中的 PIM建立使用的一般是类图和时序图结合的方法,但在移动端设备中,这种结合方法并不理想,本文就应用了类图和状态机图结合的方法,寻求了 PIM的定义和转换规则。 2 简述 MDWAF Model Driven Web App develop Framework(MDWAF)开发框架由三部分组成,如图 1所示。 第一部分,开发者使用的本地开发工具,使开发者通过 MDA实现 Web App的快速开发。 第二部分,云端服务支持。将 Web App存储在云端,可以实现 Web App的推送功能。 第三部分,运行于移动终端的 Web App引擎,为最终用
8、户提供 Web App运行环境的本地支持。 3 平台无关模型的建立 在 WDWAF架构下,在经过需求分析阶段后,开发人员需要建立平台无关模型(PIM) 。这就需要用到 UML中的状态机图和类图。因为 Web App是事件驱动的,所以我们需要状态机图来表示在运行工程中由于事件而产生的状态变迁,类图是用来详细描述每个状态的静态结构。首先来看一下需求模型的建立。 3.1 需求模型的建立 本文中的需求模型是通过 EMF技术实现的,需要使用元模型的概念Ecore和 XMI来实现模型的持久化。XMI 通过标准化的 XML文档格式和其4他模型定义了一个数据交换模式,通过样表的输入将模型转变为 XML文档,通
9、过 XSLT技术将 UML转换为 XML。需要通过元模型来看出类概念,关联概念,属性概念,操作概念,状态概念,变迁概念,动作概念和触发事件概念。图 2表示的就是在 MDWAF架构中 UML的模型如何转化的 XML的过程。 根据整体的转换概念可以从状态机图和类图模型中,抽取相关的定义来加以转换,这一部分将在 3.2中进行介绍。 3.2 平台无关模型的定义 在 Web App的开发过程中,我们可以依据 MVC的三层思想,基于HTML和 Javescript技术利用事件驱动的考虑 Control层的建立。依据MDWAF架构,文中提出了以下几条改进的定义。 定义 1:一个具体的页面可以定义成一个四元组
10、: SP = (Id, Models, Forms, Events) Id 用来标识一个网页页面; Models 当前状态对应的页面内涉及的数据模型; Forms 页面内部的页面布局和 UI; Events 软件是由事件驱动的,代表了在此页面中所有的能用操作触发的事件集合还有触发此事件的操作集合。 定义 2:Event 是个三元组: Ev = (Triggers, Description, Operations) Triggers 事件的触发者; Description 对此事件的具体描述,Descrition 与 Triggers可以一同作为对一个事件的具体标识; 5Operations 包
11、含了对这个特定事件所有的操作集合。 定义 3:Operation 是一个四元组: Op = (Id, Para, Result, Type, TagetPage) Id 用于标识当前的操作是唯一存在的,以保?C 操作的唯一性; Para 是此操作的输入参数列表,其中包括用户的输入操作和系统必要数据; Result 为具体的回传数据的参数列表; Type 是用来标识此操作的具体类型; TagetPage 是页面变迁的重要组成部分,不同的操作有不同的页面变迁,当前页面到目标页面的变迁可以用 SP-SPSP来表示。 通过以上的定义可以将文档结构写出:如图 3。 xmlns:wbmodel,xmlns
12、:wbforms 和 xmlns:wbevents 定义了数据、视图和事件的元模型。WADF 是 WDWAF架构中的数据文件部分,需要遵循上述定义。 3.3 需求模型到平台无关模型的转换 根据上述 MDWAF中需求模型的定义和文档结构可以提出如下的转换规则:在状态机图中每个除初始状态和结束状态的 State可以对应生成一个 Page,我们可以将规则表述为: 规则 1: For State in State Machine Diagram if(!IntialState & !FinalState) create Page 6Page.Id = Serialize() 状态机图中的变迁在 Web
13、 App中是有事件触发的,所以是由 Event表示出来的,我们可以将此规则表示如下: 规则 2: For Transation in State Machine Diagram Create Event where Page.Id = TransationStartId Event.Triggers = Transation.Event.Triggers Event.Description = Transation.Event.Description Event.Operation = Transation.Operation Operation 命名规则是根据每个变迁的初始状态和目标状态,来
14、对应描述一个 ScreenPage内的操作。映射规则如下所示: 规则 3: For Transation in State Machine Diagram Create Operation to ScreenPage.Operation where ScreenPage.Id = TransationStartId Operation.Id = Transation.Operation.Id Operation.Para = Transation.Operation.Para Operation.Result = Transation.Operation.Result Operation.Ty
15、pe = Transation.Operation.Type Operation.TagetPage = Transation.Operation.Type 在对状态机图进行转换的同时,我们需要对对应的类图进行转换,我们需要根据类名来对页面进行配对,将类图中的所有的组合部分转化7到 Models表情下的数据模型中,将类图中的属性分门别类地映射到Model中。规则如下: 规则 4: For Class in Class Diagram If(Class is single) Create Model to ScreenPage.Models where ScreenPage.Id = Class
16、.Name For Attribute in Class Create Attribute to Model Model.Attribute = Class.Attribute 通过以上的几个基本转换规则,可以将需求分析中建立的类图和状态机图模型转换为 PIM的描述文档 WADF。至此关于 PIM的转换就可以基本完成。 4 结论与未来展望 针对模型驱动开发模式中 Web App开发中的平台无关模型的建立工程,我们需要注意的技术细节还有很多,而且重复性的工作没有完全地摒除。本文中结合 WDWAF框架提出了基于 WDWAF框架的三个定义,并将定义与类图和状态机图结合,找出四条转换规则。 但是现在存
17、在的问题也很明显:首先是服务平台没有选定,下一步的首要工作是获得服务平?_的支持;其次是需要通过 XSLT样表生成 XML文件,但是生成工具并不完善,需要进一步编写;最后在解决以上两个问题后,将着手进行实例建模。 参考文献: 81Miller J M J.MDA Guide Version 1.0.1EB/OL.http:/ 2OMG. Object Management Group, 2010. (retrieved on 22.10.12) http:/www.omg.org/. 3Ashbacher C.The Object Constraint Language Second Edit
18、ion,Getting Your Models Ready for MDA,by Jos Warmer and Anneke KleppeJ. The Journal of Object Technology, 2003, 2(6):1-39. 4Pandey R.Object constraint language(OCL):past,present and futureJ.ACM SIGSOFT Software EngineeringNotes,2011,36(1):1-4. 5Grose T J, Doney G C, Brodsky S A. Mastering XMI: Java
19、Programming with XMI, XML and UML J.Computer Bulletin, 2003,45(2). 6Sanchez D,Batet M.Semantic similarity estimation in the biomedical domain: an ontology-based information-theoretic perspectiveJ.J Biomed Inform, 2011. 7蒋楠,丁祥武.基于模型驱动元数据管理策略的研究J.计算机应用与软件,2012(1):188-190. 8Maciel A, Sankaranarayanan G
20、,Halic T,et a1.Surgical model-view-controller simulation software framework for local and collaborative applicationsJ.Int J ComputAssist Radiol 9Surg,2011,6(4):457-471. 9於良伟,袁泉,霍剑青,等.基于 XML和 XSLT的模型驱动构架J.计算机工程,2010(6):49-51. 10薛振伟,吴志杰,杨德成.基于模型驱动架构的软件开发模式研究J.兵工自动化,2007(5):92-94. 11谢培基,余金山.面向 J2EE主流框架的 MDA模型转换研究J.微型机与应用,2012(17):11-14. 12Peng Xiao, Lv Qianxi, Wu Minghui, Peng Bin, Wang Shuoping.An MDA based modeling and implementation for web app LuoJ. Journal of Software, v 8, n 8, p 1881-1888, 2013.