校园业务中混合模式移动应用软件架构的实现
2015-08-29高晶
高晶
摘要:近些年,随着移动互联网和移动终端的迅速发展,移动应用越来越受到人们的青睐,很多日常工作都可以通过移动应用来处理,移动应用成为基于计算机终端应用的有力补充,移动应用技术也成为当前计算机技术领域的研究热点。本文分析了当前移动应用的发展和开发模式,结合当前校园移动应用发展现状,构建了校园混合模式移动应用软件架构,力求通过使用该架构,探索出校园移动应用开发的新途径。
关键词:移动应用;混合模式;软件架构
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2015)15/16-0119-03
移动应用的发展和开发模式
2000年,中国移动互联网诞生,2010年已被业界普遍认为是移动互联网的元年。从2000到2010的十年时间里,中国移动互联网呈爆发式发展,使得在移动终端上使用各种互联网应用渐渐成为一种习惯。移动应用的发展激发了广大开发者进行移动应用创作的极大热情。目前,移动应用开发方式主要分为三种类型:原生开发模式、移动Web开发模式和混合开发模式。
原生开发模式使用移动终端操作系统所支持的程序语言来编写移动应用。目前市场上移动终端操作系统有很多种。因此,要使用原生开发模式开发出一款能够适用于各种操作系统的原生应用,开发者需要花费大量的时间和精力来进行平台间的移植工作,这就决定了采用原生开发模式进行移动应用开发具有周期长、开发门槛高、开发成本高、不跨平台等缺点。当然,原生开发模式也有优点,它可以访问移动终端的所有功能,速度更快、性能更高、用户体验更好,等等。
移动Web开发模式使用传统的Web开发技术进行开发,通过移动终端浏览器进行访问。较原生开发模式,它具有开发周期短、开发门槛低、开发成本低、跨平台等优点,但是移动Web应用是基于浏览器的,无法调用移动终端系统API来实现一些高级功能,用户体验差。
混合开发模式采用Web开发技术,通过中间件包装成各平台的应用程序,可以通过中间件的集成,调用大部分常用的移动终端系统API。因此,混合开发模式同时具有原生开发模式和移动Web开发模式的优点,即具有跨平台、开发门槛低、开发成本低等优点。
校园移动应用发展现状
目前国内各大高校基本完成了校园无线网的基础设施覆盖,为移动终端开展各项应用打开了方便之门。但就目前的情况看,校园的移动应用还存在一些问题,成熟的校园移动应用很少,部分校园移动应用是由学生团体自发组织进行研发,研发过程缺乏统一的规划和科学的工程性管理,可维护性比较差,难以实现可持续发展。要想使校园移动应用更好地、持久地服务于广大师生,就需要构建一个校园移动应用软件架构,学生通过简单的学习就可以进行校园移动应用的开发和维护工作,这样就可以保持移动应用的研发团体相对稳定,也可以保证校园移动应用的可持续发展。
校园混合模式移动应用软件架构的构建
混合开发模式具有开发门槛低、跨平台开发的优点,是今后移动应用开发的主流,也是进行校园移动应用开发的首选。但目前采用混合开发模式的校园移动应用较少,大部分应用仍处于摸索阶段,并没有形成成熟的技术体系。因此,在对基于HTML5的混合开发模式研究的基础上,我们构建了混合模式移动应用软件架构,并应用此架构进行校园移动应用的开发,力求通过使用该架构,探索出校园移动终端应用开发的新途径。
基于混合开发模式的混合移动应用软件架构分为服务器端业务逻辑处理和移动应用UI设计两个部分,如下图所示。
1.服务器端业务逻辑处理
服务器端业务逻辑的处理我们采用了MVC设计模式,在具体的处理上,采用了Spring MVC框架和MySql数据库。为了便于移动应用的数据显示,架构采用了JSON数据交换格式。通过配置Jackson类库,实现JSON的输入和输出,并在此基础上提供了WEBService接口,将处理后的数据转化为JSON格式。采用Spring MVC中的@ResponseBody将JSON数据传递给客户端。这里重点介绍Spring MVC配置、数据库操作和JSON传递的实现方法。
(1)SpringMVC配置
在Java Web项目中导入Spring的类库集,并按照如下内容的配置web.xml文件。
其中DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且与Spring IoC容器无缝集成。然后在spring-servlet.xml文件中配置数据库、注解、反射、国际化,并创建Controller、Service、Dao的相关基类,用于被未来MVC中使用的类来继承,通常情况下,基类中配置了日志处理,基本的增、删、改、查的方法,便于最大范围地实现多态。
(2)数据库操作
Spring MVC的Dao层和Service层是处理数据库操作和业务逻辑功能的部分。通过Dao层完成针对数据库系统的增、删、改、查,通过Service层进行业务判断。通过继承JdbcDaoSupport类定义Dao基类,再针对每一个数据结构定义自己的Dao类,这样便于数据独立性的处理,也可以为持久化奠定基础。
(3)JSON传递
Spring MVC支持JSON,一定要引用jackson-core-asl和jackson-mapper-asl的类库,并在Spring的配置文件中,增加如下配置。
public class JsonData {
public List
public JsonData(List
super();
this.legend = legendList;
}
}
在服务器端定义如下JSON数据类。
通过Controller类中的方法将数据JSON化。在Controller类中,定义@ResponseBody,直接将JsonData实例传递给客户端就完成了JSON数据向客户端推送。具体实现代码如下:
@RequestMapping("test.do")
@ResponseBody
public JsonData test() {
List
JsonData data=new JsonData(legend);
return data;
除上述关键点以外,考虑到服务器端向外提供接口的时候,有信息安全的要求,在客户端访问服务器端接口的时候需要通过HTTPS协议进行安全认证,并遵照软件架构的自身要求进行协议握手认证,这样就防止了校园关键信息的泄露和恶意攻击。
2.移动应用UI设计
我们的移动应用UI设计部分采用成熟的JS组件与原生API混合形式进行,当进行普通画面显示的时候,采用HTML、CSS3和JQuery Mobile技术,当需要设备端功能的时候,调用原生API。这里重点介绍获取并显示JSON数据、本地存储和移动应用界面效果的实现方法。
(1)获取并显示JSON数据
在移动应用端获取JSON数据,通常采用ajax方式,这样客户的体验感受会更好,配合Loading的显示,整个移动应用端非常流畅。JQUERY提供了非常完善的ajax方法。下面代码是在Id为show_div的div中显示JSON数据的实现方法。
$.ajax({
type: "post",
url: "test.do",
dataType: "json",
success: function (data) {
$("#show_div").val(data[0]. legend);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
(2)本地存储
为了保证用户在离线的情况下,可以查看本地已经下载完成的数据信息,如校园的新闻信息、课程信息等,需要将一些数据信息保存在本地,保证非实时在线的情况下应用是可用的。我们采用HTML5的存储方式,存储少量数据的时候,使用Local Storage来实现,如果存储的数据偏大,使用Web SQL Database来实现。通过HTML5操作Web SQL Database的openDatabase、transaction、executeSql三个基本方法,分别规定了数据库打开、事务处理、执行SQL语句的使用方式。我们定义了基本的客户端数据库结构以后,通过这些基本方法操作数据库将信息保存在本地。
(3)移动应用界面效果
通过JQUERY Mobile实现客户端的界面效果,主要是将一个应用中的多个Page实现出来,再经过各种效果的页面跳转,构成整个界面风格的主体。
Page是JQUERY Mobile的重要组成部分,由data-role="page"属性产生,每个Page由header、content和footer组成(不是必须的),配合JQUERY Mobile提供的标准控件,构成一系列常用的Page库,这个Page库就是移动应用的UI框架。当然作为后续扩展开发者,可以自定义Page来实现自己的应用界面。
将上述这些功能集成为一套功能集合,就形成了一个混合模式移动应用软件架构的雏形,在此基础之上,开发人员可以更多地关注业务本身,而不需要考虑底层的技术问题,这样既保证了应用的完善性,也将共通性功能进行了最大化的资源共享。
结语
混合模式移动应用软件架构的实现,有利于简化移动应用开发流程,有利于高校移动应用的发展,从而推进智慧校园建设和深化校园移动信息化建设,促进“互联网+”发展战略的实施。后续我们还会将架构的应用引入学生的兴趣社团,将校园移动应用开发的工作以项目的形式组织学生来完成,通过基于项目的实践教学,深化实践教学改革,促进卓越工程师培养计划的实施。
参考文献:
刘欢,张增修,晨辉.华东师范大学:混合开发移动应用[J].中国教育网络,2013(7):63-65.