APP下载

移动瘦客户端架构在企业中的应用研究

2016-03-21王鹏飞

计算机时代 2016年3期
关键词:移动应用

王鹏飞

摘 要: 研究了移动应用开发架构和基于JSON-REST的移动客户端平台,以及连接后台终端的相关Web服务应用程序接口。为了减少企业中移动平台应用开发成本,通过重用已有的桌面或基于Web的应用程序后台服务,实现移动瘦客户端服务架构,为开发多平台移动应用增强服务。在企业开发中,利用客户端的JQuery Ajax实现从REST应用程序接口中加载动态数据,而用JSON(JavaScript对象符号)实现数据格式的传输。

关键词: 移动应用; PhoneGap; 具象状态传输协议; JSON

中图分类号:TP302.1 文献标志码:A 文章编号:1006-8228(2016)03-27-04

Research and implementation of the application of mobile thin client architecture in enterprise

Wang Pengfei

(School of Economics and Management, Zhejiang Sci-Tech University, Hangzhou, Zhejiang 310018, China)

Abstract: This paper discusses about mobile application development architecture and JSON-REST Web API used by mobile client to connect backend. To reduce the development cost of mobile applications, by reusing the backend services of existing desktop or Web-based applications and enhancing some services for developing multiplatform mobile application, the mobile thin client-server architecture is realized. JQuery Ajax is used as client side scripting to load dynamic data from rest API while JSON is used as data-transferring format.

Key words: mobile application; PhoneGap; REST; JSON

0 引言

移动应用是多层次的应用,主要用于客户端/服务器架构的开发。目前开发现有桌面移动应用或Web应用程序通常面临诸多挑战:

⑴ 选择合适的体系结构;

⑵ 考虑应用程序开发过程、开发成本、整体性能和运行速度;

⑶ 考虑重用现有的Web服务并且集成移动客户端到应用层;

⑷ 设计移动客户端表现层;

⑸ 满足终端用户的需求及兼容性问题。

移动用户希望通过智能手机来访问数据,并获得网络上安全的服务,同时,在任务执行时可以监控资源,并将提示反馈到手机上。所以,手机的移动性、适用性,与Web应用程序有相同的功能等是关键。

1 移动应用开发平台概述

移动应用软件开发主要用于小型平板和特殊用途的移动设备开发。移动Web服务用于服务请求程序和服务供应商之间的通信。开发任何移动应用都可以选择三种架构中其中的一个:Native apps, Mobile Webapps和Hybridapps。它们每个结构都有各自的特点,选择合适的开发结构取决于需求和应用程序以及软件服务供应商。

1.1 Native App

目前市场上移动设备从低端手持到高端移动设备都有各自的操作系统,每种不同类型的操作系统如安卓、Symbian、IOS和微软等其编程语言不同。Android应用程序运行基于Android SDK和API,仅适用于Android设备,不支持任何其他操作系统。所有的本机应用程序从设备供应商处下载并安装在本机上。因此升级之前版本的应用程序也增加了复杂性。

1.2 Mobile WebApp

Mobile WebApp是运行在移动网络浏览器的Web应用程序,可以用于实现延长现有的独立应用程序的功能。相比Native App,WebApp更易维护,开发成本更低。移动客户端UI、表示层和后端应用层可以通过移动Web服务相互之间进行通信。移动应用程序不提供完全的类似摄像头和全球卫星定位(GPS)的设备访问功能。因此可广泛使用HTML5进行Web应用程序开发,以此提升服务和功能更新,而不会影响移动Web应用程序发送请求并通过HTTP进行通信和服务器执行,并将响应发送到移动浏览器上。

1.3 Hybrid WebApp

Hybrid WebApp可用于复杂的应用程序开发,是移动网络应用和本机应用混合开发模式的结合。它提供移动Web应用程序访问设备的功能,如摄像头,GPS,并支持跨平台和安装在应用程序上,但相比较以上两种结构,显得更复杂和难以维护。图1是三种移动APP技术比较[1]。

综上,NativeApp和WebApp有各自的优劣势。总结如下。

⑴ NativeAPP运行速度更快,更省带宽,支持离线操作,访问本地资源和去中心化。

⑵ NativeAPP偏交互,而WebApp偏浏览查询。且NativeAPP部署和学习成本低,跨平台和终端操作。例如机票查询和航班动态,主要采用NativeAPP开发,可以保证速度和稳定性,因为用户对执行效率要求更高。

⑶ 硬件访问偏NativeAPP,信息展示偏WebApp。例如手机各种传感器可以使用NativeAPP;而机场登机口导航、机场商家地图、服务以及酒店查询等功能,采用内嵌WebApp方式来实现。

⑷ 核心功能使用NativeAPP,辅助服务采用WebApp。HTML5在体验上接近NativeAPP,开发上具备更多的灵活性和跨平台性。

目前NativeAPP仍然是高端应用开发的首选。App除了能做Web能做的事即C/S+B/S两层架构外,还支持离线应用,WebKit或者HTML5引入了数据库机制允许离线操作,因此未来两者可能会进行融合,部署一起开发[2]。

2 面向企业应用的移动平台开发特点分析

2.1 移动瘦客户端架构

移动应用包括用户界面,表示层和业务层、数据层与移动Web服务层之间的通信。通常移动客户端是基于客户端和胖客户端的两种类型Web应用。瘦客户端体系结构比较容易实现,它可以集成后台服务,并支持后台服务集成的应用程序。同时胖客户端具有一些优势,因为胖客户端由安装在复杂移动设备上的一层或两层组成,难以维护。基于瘦客户端的Web主要有如下特点:

⑴ 表示层位于移动设备上,而业务层和数据层在服务器端;

⑵ 易于开发和维护;

⑶ 在服务器端进行安全设置,允许经授权的用户和域访问;

⑷ 发送请求到REST/ JSON API,应用程序将请求转发给Web服务并进行处理,同时将响应反馈到设备上;

⑸ 客户端脚本实现动态内容加载。

移动Web应用层如图2所示。

2.2 主流移动平台特点分析

Hybrid App兼具了Native App与Web App两者诸多优点。在开发层面主要以JS结合Native相互调用为主,实现了“一次开发,多处运行”的机制,成为真正适合跨平台的开发。经过众多开发者与成功案例证明Hybrid App兼具Native App的良好用户体验的优势,也兼具Web App使用HTML5跨平台开发的低成本优势。

Hybrid App开发,现阶段主流的平台包括PhoneGap,AppCan,appMobi,Titanium等,它们基于webkit开源内核,使用HTML5标准开发,适配机型简单,支持开发者自定义插件,并能很好的应用于商业、教育、娱乐等行业,成为移动开发者的首选开发平台。表1阐述了当前主流移动平台特点分析。

3 移动Web应用开发过程

SOAP、REST是广泛应用于网络通信的Web应用程序协议。大多数开发商开发的应用程序是基于Web服务的SOAP/XML,其目的主要是考虑安全性,但是他们不支持移动应用开发。而且本文阐述的实施移动应用开发是基于API的REST/JSON。图3是移动Web应用程序的传输过程。

Rest被广泛用于网络资源的访问。它是轻量级的,容易实现Get、Put、Post、Delete等操作,而且也容易进行调试,可以提高应用程序的性能。在图3中,REST API应用程序流是作为移动客户端和后台服务之间的接口。

具体实现过程是:客户端通过URL向应用层发送资源访问请求,服务器接收请求进行验证并反馈响应。用户通过Post和Put方法向服务器加载数据,同时使用资源过滤器来进行安全性检查。通过在服务器端设置域,来控制只允许访问数据资源。大多数应用程序都有类似跨站漏洞,脚本能克服大部分浏览器不支持不同域的调用。其被称之为交叉的原始域,是在服务器端添加域名来获得移动设备安全的响应,内容包含允许访问的请求类型信息[4]。

3.1 移动前台开发

JQuery移动框架可以用于多种途径,常被用作网站和移动应用的用户界面。易于开发并且可以运行在不同的操作系统上。它有如下优点:

⑴ 触摸优化,让用户轻松浏览;

⑵ 减少HTTP请求,加速性能,支持多页面访问;

⑶ 优化代码,提高效率;

⑷ 提供转换。

上面介绍的混合移动应用程序支持jQuery Mobile框架,它是一种类似于Phone Gap的移动应用,也是最常用的框架之一。

JQuery Ajax用于客户端脚本开发,移动客户端发送请求到后台服务,应用程序接口执行请求并响应。通过Java脚本来实现将数据加载到移动设备。对于移动设备,JQuery Ajax用于优化代码和运行DOM内容。Ajax调用动态加载数据,而不需要刷新页面。从而减少网络的HTTP请求,提高了性能。JQuery Ajax使用URL访问Web服务器和资源,以及有关响应格式所需的信息并支持交叉原始域。因此JQuery可以请求访问不同的数据格式,如XML,HTML,JSON等。

3.2 JSON数据交换

JSON作为数据交换格式发送移动客户端消息到后台服务,大多数企业应用比较复杂,需要频繁地访问应用层和数据层之间的数据。为了开发高性能的移动应用程序,速度被认为是用户获得快速访问的主要因素。由于数据能快速的在网络上进行编码和解码,所以手机客户端可以轻松的使用JSON应用程序接口。通过使用JSON数组,可以把数据作为有序集合和无序集合进行发送,而无序集为JSON对象。要通过网络发送数据,可以将数据转换成字节这个被称为序列化的过程,从字节转换为数据的过程被称为反序列化。它有如下特点[5]:

⑴ 相比XML,JSON是作为轻量级的数据交换格式;

⑵ 易于读写,减少网络负载和带宽;

⑶ 提供解析、编码和解码技术;

⑷ 最广泛的应用于移动设备。

4 结束语

本文阐述通过企业开发应用多平台的移动框架,允许用户进行安全方便的设备数据的访问。在移动瘦客户端架构开发中,讨论用于开发当前移动应用的平台体系和提高现有系统功能的方法。实现移动应用接口的扩展和Web应用程序功能服务的兼容性。相比于SOAP/XML开发模式,REST/JSON应用程序接口更适合当前的移动开发体系,因此成为未来企业移动瘦客户端平台开发的首选。

参考文献(References):

[1] 张颀寅,郑燕林.大学生移动学习需求调查与分析[J]. 软件导

刊(教育技术),2011.5:76-78

[2] 宋恩梅,袁琳.移动的书海:国内移动图书馆现状及发展趋势[J].

中国图书馆学报,2010.5:27-29

[3] 罗志平,苏锦钿,李荣华,张星明,肖哲.基于WAP 2.0的校园

门户设计与实现[J].计算机应用研究,2009.2:23-27

[4] 钱能,王华,赵志斌,蔡冬玲.基于3G移动应用开发人才培养

的课程体系构建与研究[J].计算机光盘软件与应用,2013.16:36-40

[5] Gengui Zhou,Mitsuo Gen.Genetic Algorithm Approach on

Multi-Criteria Minimum Spanning Tree Problem[J]. European Journal of Operational Research,1999.4(1):141-152

猜你喜欢

移动应用
T学校公共设施便捷报修平台的移动应用研究
云计算环境下的微课移动云平台设计
大数据时代下免费手机软件盈利模式探讨
基于APICloud的“校园健身达人”APP设计与实现
基于Android平台的教学应用系统研究
基于PhoneGap技术的跨平台移动应用开发探讨
智能手机移动应用交互框架研究
基于iOS的校园电子地图的研究与实现
移动天气系统UI设计
移动互联网在防汛工作中的应用