模型驱动生成WebApp中的平台无关模型的建立

时间:2022-09-14 11:52:04

摘要: 在互联网飞速发展的今天,一些技术应运而生,如HTML5,WEB2.0技术。这些技术使得Web App得以出现。Web App不需要下载安装,是一种生存于浏览器中的应用。虽然Web App这种轻应用使用起来很方便,但开发过程中仍有大量的重复的工作与技术细节,而且轻型软件的开发应该着重具体功能的实现、用户的易用性和体验度的设计上。解决重复性工作就是将模型驱动架构(Model Driven Architecture, MDA)注入到Web App开发中,将开发工作从以代码为核心转变为以模型为核心。本文借助了一个基于MDA的Web 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 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 functions, the user's ease of use and experience 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 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-4311(2017)06-0205-03

1 绪论

现如今移动端智能设备的使用率越来越高,且手机主流系统份额逐步拉近,这使得App制造行业逐步兴起。App又分Native App和Web App,其中Native App就是下载后安装在系统中的应用,而Web App是依赖浏览器生存的。Web App的优势就在于跨平台性好,可以减少开发成本;数据存储在云端,用户数据一致性好。使用模型驱动的原因就是Web App本身结构简单,但是重复繁琐的工作比较多。模型驱动正好可以解决此问题。

本文所提出的方法就是将模型驱动的思想加入Web App的开发当中,主要阐述的是平台无关模型(PIM)的建立环节。此前的使用模型驱动思想的软件开发工程中的PIM建立使用的一般是类图和时序图结合的方法,但在移动端设备中,这种结合方法并不理想,本文就应用了类图和状态机图结合的方法,寻求了PIM的定义和转换规则。

2 简述MDWAF

Model Driven Web App develop Framework(MDWAF)开发框架由三部分组成,如图1所示。

第一部分,开发者使用的本地开发工具,使开发者通过MDA实现Web App的快速开发。

第二部分,云端服务支持。将Web App存储在云端,可以实现Web App的推送功能。

第三部分,运行于移动终端的Web App引擎,为最终用户提供Web App运行环境的本地支持。

3 平台无关模型的建立

在WDWAF架构下,在经过需求分析阶段后,开发人员需要建立平台无关模型(PIM)。这就需要用到UML中的状态机图和类图。因为Web App是事件驱动的,所以我们需要状态机图来表示在运行工程中由于事件而产生的状态变迁,类图是用来详细描述每个状态的静态结构。首先来看一下需求模型的建立。

3.1 需求模型的建立

本文中的需求模型是通过EMF技术实现的,需要使用元模型的概念Ecore和XMI来实现模型的持久化。XMI通过标准化的XML文档格式和其他模型定义了一个数据交换模式,通过样表的输入将模型转变为XML文档,通过XSLT技术将UML转换为XML。需要通过元模型来看出类概念,关联概念,属性概念,操作概念,状态概念,变迁概念,动作概念和触发事件概念。图2表示的就是在MDWAF架构中UML的模型如何转化的XML的过程。

根据整体的转换概念可以从状态机图和类图模型中,抽取相关的定义来加以转换,这一部分将在3.2中进行介绍。

3.2 平台无关模型的定义

在Web App的开发过程中,我们可以依据MVC的三层思想,基于HTML和Javescript技术利用事件驱动的考虑Control层的建立。依据MDWAF架构,文中提出了以下几条改进的定义。

定义1:一个具体的页面可以定义成一个四元组:

SP = (Id, Models, Forms, Events)

Id 用来标识一个网页页面;

Models当前状态对应的页面内涉及的数据模型;

Forms 页面内部的页面布局和UI;

Events 软件是由事件驱动的,代表了在此页面中所有的能用操作触发的事件集合还有触发此事件的操作集合。

定义2:Event是个三元组:

Ev = (Triggers, Description, Operations)

Triggers 事件的触发者;

Description 对此事件的具体描述,Descrition与Triggers可以一同作为对一个事件的具体标识;

Operations 包含了对这个特定事件所有的操作集合。

定义3:Operation是一个四元组:

Op = (Id, Para, Result, Type, TagetPage)

Id 用于标识当前的操作是唯一存在的,以保C操作的唯一性;

Para 是此操作的输入参数列表,其中包括用户的输入操作和系统必要数据;

Result 为具体的回传数据的参数列表;

Type 是用来标识此操作的具体类型;

TagetPage 是页面变迁的重要组成部分,不同的操作有不同的页面变迁,当前页面到目标页面的变迁可以用SP->SP∪SP’来表示。

通过以上的定义可以将文档结构写出:如图3。

xmlns:wbmodel,xmlns:wbforms 和xmlns:wbevents定义了数据、视图和事件的元模型。WADF是WDWAF架构中的数据文件部分,需要遵循上述定义。

3.3 需求模型到平台无关模型的转换

根据上述MDWAF中需求模型的定义和文档结构可以提出如下的转换规则:在状态机图中每个除初始状态和结束状态的State可以对应生成一个Page,我们可以将规则表述为:

规则1:

For State in State Machine Diagram

if(!IntialState && !FinalState)

create Page

Page.Id = Serialize()

状态机图中的变迁在Web 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命名规则是根据每个变迁的初始状态和目标状态,来对应描述一个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.Type = Transation.Operation.Type

Operation.TagetPage = Transation.Operation.Type

在对状态机图进行转换的同时,我们需要对对应的类图进行转换,我们需要根据类名来对页面进行配对,将类图中的所有的组合部分转化到Models表情下的数据模型中,将类图中的属性分门别类地映射到Model中。规则如下:

规则4:

For Class in Class Diagram

If(Class is single)

Create Model to ScreenPage.Models where ScreenPage.Id = Class.Name

For Attribute in Class

Create Attribute to Model

Model.Attribute = Class.Attribute

通过以上的几个基本转换规则,可以将需求分析中建立的类图和状态机图模型转换为PIM的描述文档WADF。至此关于PIM的转换就可以基本完成。

4 结论与未来展望

针对模型驱动开发模式中Web App开发中的平台无关模型的建立工程,我们需要注意的技术细节还有很多,而且重复性的工作没有完全地摒除。本文中结合WDWAF框架提出了基于WDWAF框架的三个定义,并将定义与类图和状态机图结合,找出四条转换规则。

但是现在存在的问题也很明显:首先是服务平台没有选定,下一步的首要工作是获得服务平_的支持;其次是需要通过XSLT样表生成XML文件,但是生成工具并不完善,需要进一步编写;最后在解决以上两个问题后,将着手进行实例建模。

参考文献:

[1]Miller J M J.MDA Guide Version 1.0.1[EB/OL].http:///mda.

[2]OMG. Object Management Group, 2010. (retrieved on 22.10.12) http:///>.

[3]Ashbacher C.The Object Constraint Language Second Edition,Getting Your Models Ready for MDA,by Jos Warmer and Anneke Kleppe[J]. The Journal of Object Technology, 2003, 2(6):1-39.

[4]Pandey R.Object constraint language(OCL):past,present and future[J].ACM SIGSOFT Software EngineeringNotes,2011,36(1):1-4.

[5]Grose T J, Doney G C, Brodsky S A. Mastering XMI: Java Programming with XMI, XML and UML [J].Computer Bulletin, 2003,45(2).

[6]Sanchez D,Batet M.Semantic similarity estimation in the biomedical domain:an ontology-based information-theoretic perspective[J].J Biomed Inform, 2011.

[7]蒋楠,丁祥武.基于模型驱动元数据管理策略的研究[J].计算机应用与软件,2012(1):188-190.

[8]Maciel A, Sankaranarayanan G,Halic T,et a1.Surgical model-view-controller simulation software framework for local and collaborative applications[J].Int J ComputAssist Radiol Surg,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.

[12]Peng Xiao,Lv Qianxi, Wu Minghui, Peng Bin, Wang Shuoping.An MDA based modeling and implementation for web app Luo[J]. Journal of Software, v 8, n 8, p 1881-1888, 2013.

上一篇:移动互联视阈下大学生思想政治教育实效性探究 下一篇:高中班主任班级管理工作现存的问题及策略