本文摘自《移动通信》2013年5期。作者:陈桦 杜启宏 程刚 【摘 要】在分析了移动Web应用平台技术背景的基础上,着重分析了当前比较流行的三大移动Web开发框架和MVC框架模式,并介绍了几项新型的MVC模式,最后对移动智能终端Web应用平台开发技术遇到的困难进行了分析,对未来的技术发展趋势进行了展望。
【关键词】智能终端 移动Web应用平台 开发框架 MVC
中图分类号:TP311 文献标识码:A 文章编号:1006-1010(2013)-05-0023-04
1 前言
移动终端硬件技术在最近的几十年快速发展,如今已全面进入了智能终端时代。据悉,移动智能终端的出货量已在2011年超越了PC机。在这一形势下,以各个终端操作系统(Android、iOS、Windows Phone等)为基本的行业格局也趋于稳定。各产业巨头为智能终端本地应用开发提供了良好的环境支持,开发技术已十分成熟。
智能终端上的移动Web应用与传统本地原生应用的区别在于:移动Web应用的开发是基于Web技术的,即通过HTML(Hypertext Markup Language,超文本标记语言)、CSS(Cascading Style Sheet,级联样式表)、JavaScript在浏览器中进行在线或离线网页应用的开发;这个应用不依赖于本地操作系统API(Application Programming Interface,应用程序编程接口),但可以针对不同的平台进行优化,并通过一个URL进行访问。而一般的本地原生应用的平台依赖性高,直接与本地操作系统API相关联,应用的可移植性差,进而带来跨平台开发上的不便和困难;不过原生应用相比Web应用能实现更加复杂的功能,且实现效率高。
利用移动Web应用平台的目的在于实现跨多种终端平台的应用开发,降低开发门槛。正是因为这些优良的特性,移动Web应用被认为是移动互联网的发展趋势。本文在分析当前移动Web应用平台背景的基础上,着重研究当前移动Web应用开发的关键技术和方法。
2 移动Web应用平台技术背景
当前市场中操作系统划分为几大阵营,各个平台提供互不兼容的API和应用开发环境,且拥有和维护各自的应用商店,形成较为稳定的移动互联网生态系统。现有的本地应用及其开发技术都是针对固定平台,利用特定的开发语言和工具进行开发。由于各个操作系统间编程方式的不兼容、iOS的封闭及Android的严重碎片化[1],传统应用模式和开发工具直接导致了移植性差、开发周期长、开发门槛高的问题。为了满足移动互联网环境下的业务需要,跨平台开发成为移动智能终端的一项重要需求[2],而Web应用平台技术恰好成为实现这种需求的最优选择之一。
同时,智能终端软硬件的发展契合了移动云服务的技术需求,进一步刺激了云计算在移动互联网领域的业务扩展[3]。移动Web应用由于其平台无关和数据集中特性,成为云服务的一项支持技术和实现形式。国外的Mozilla及国内的阿里巴巴先后推出了云操作系统Firefox OS和阿里云OS,这种基于云框架的OS天然提供了对Web应用的支持,更是成为移动操作系统领域的一项革新。
移动Web应用采用的是B/S(浏览器/服务器)模式,并直接基于Webkit内核的浏览器,开发人员利用HTML、CSS和JavaScript实现类似网页站点的应用,这类应用的功能受网页开发语言限制,无法实现复杂的、针对特定平台的操作。然而利用JavaScript为各个系统所封装的API,移动Web应用同样可以在一定程度上利用针对本地平台的特定功能,甚至实现完全脱离引擎及离线运行。移动Web应用被编译打包后,在本地终端的通用Webkit引擎上解释执行,为用户提供网页UI(User Interface,用户界面),其调用资源往往位于远端服务器,其应用平台框架如图1所示。
Web应用功能受开发平台的限制,无法直接调用本地操作系统API。对此的一项解决方案是HTML5,这一规范已由W3C宣布正式定稿,但标准尚未完成。HTML5提供了一个跨平台的、平面化的网络应用解决方案,集成了强大的图形处理、离线数据存储及富媒体展现能力,成为移动Web应用开发技术的强大支撑。目前,各个浏览器已经支持HTML5。
3 移动Web应用平台开发技术
为了简化开发流程、提高开发效率,开发人员利用移动Web应用平台进行开发工作时,除了直接依赖基础的开发平台,还需要利用各种开发框架和库,并且借鉴各类成熟的PC终端Web框架模式、模式设计理论和模型测试技术。由于移动Web应用平台尚属于较新的技术,其主要技术突破点在于开发框架、框架模块以及建模测试技术。
3.1 开发框架
移动Web应用开发框架为开发人员提供了一系列的组件库,并提供JavaScript接口,使得开发人员能够方便快速地调用其组件,进行移动Web应用的UI设计及本地功能开发。目前常用的开发工具有四类:Sencha Touch、jQuery Mobile、PhoneGap和Titanium。由于Titanium被定位于原生应用程序的设计中(需要原生工具链支持),本文不作介绍。
(1)Sencha Touch
Sencha Touch的前身是Ajax框架ExtJS,并整合了jQTouch。该应用框架基于JavaScript,为开发人员提供了丰富的UI组件,并针对移动平台进行了优化,其细腻程度堪比原生应用。另外,Sencha Touch也是第一个基于HTML5的移动Web应用框架,并支持CSS3标准,全面兼容iOS和Android。
(2)jQuery Mobile
jQuery Mobile应用框架继承自jQuery,专用于移动智能终端平台,支持HTML5。它为移动Web应用开发提供了一个jQuery核心库、事件和插件系统以及UI框架。与Sencha Touch不同的是,它属于轻量级的开发框架,UI复杂度低,支持更多的平台,且开发门槛低。
(3)PhoneGap
PhoneGap主要任务是实现跨平台的本地开发,它是完全基于Web技术(HTML、CSS和JavaScript)的开源移动开发平台。其目的在于针对操作系统平台多元不兼容的情况,建立一个跨平台的移动应用开发工具,实现一次编写、多平台适用。PhoneGap在本地操作系统和移动Web UI间搭建一个移动中间件,针对不同的终端操作系统用JavaScript访问本地设备。它在实现跨平台访问能力(在线打包Web应用至各终端平台)的同时,提供各平台下的功能扩展机制,赋予移动Web应用更加强大的本地化功能。因其把移动Web应用进行打包实现本地化,这个技术可以认为是一种混合的移动应用开发技术。
这三种开发框架的关系如图2所示。其中Sencha Touch和jQuerty Mobile为用户提供了丰富的UI组件;PhoneGap则利用移动操作系统自带的浏览器组件WebView为打包的Web应用程序进行页面布局,使得移动Web应用程序能够像原生应用程序一样在本地操作系统中运行。PhoneGap依靠WebView与操作系统进行双向通信,实现应用与系统的解耦合。另外,PhoneGap使用JavaScript封装了本地API,使得移动Web应用能够平面地间接访问本地操作系统提供的功能接口,一定程度上克服了移动Web应用功能匮乏的缺陷。
3.2 框架模式
框架模式作为一种设计典范在Web应用开发中被广泛运用,这种方法可以被无缝地移植到移动Web应用的设计和开发中来。目前在移动Web应用开发中较流行的框架模式之一是MVC(Model-View-Controller,模型-视图-控制器),它将Web应用分为三类核心模块:模型、视图、控制器。视图采用HTML来实现业务的直接表示形式,模型负责实际的业务数据处理,控制器负责视图和模型间的业务交互和协调控制。MVC将这三者进行分离的好处是使得业务显示和业务处理解耦,多视图可以重用模型代码,实现Web应用的灵活开发。常见的MVC框架模式包括Struts、Spring等。
文献[4]提出的Struts2框架整合了Struts和WebWork,并使用WebWork的核心,进一步把应用划分为核心控制器、业务逻辑控制器、Stop器、结果类型和视图等几个核心部件。Struts2简化了Web应用的开发过程,提升了开发的效率,提高了代码的重用性。
文献[5]创新性地提出了一种B/S结构和C/S结构相结合的Web应用框架,将Web应用划分为三个层级:展现层、业务层、数据持久层。它利用Spring作为系统全局控制,应用于展现层和业务层逻辑中;数据持久层则用MyBatis框架实现。测试证明,这种混合应用框架在很大程度上提高了代码的复用性,Spring框架的全局控制降低了系统的复杂度。
4 移动Web应用面临的机遇与挑战
尽管移动Web应用平台在近几年得到了比较长足的发展,但由于平台的各项标准未定等原因,依然存在一些挑战[5]。首先是Web应用的功能匮乏,无法像原生应用一样充分利用移动设备的本地API和硬件功能。这一难题由于类似PhoneGap等中间件的出现有所改善,但经过JavaScript本地化功能扩展后的Web应用依然无法满足移动终端软硬件快速发展所带来的新需求。其次,移动Web应用对互联网的依赖性高,这一特性在当前的移动互联网技术条件下会严重影响用户感知。另外,完全标准化的跨平台开发、个性化Web定制的实现以及移动互联网应用安全性等问题依然在不同程度上制约着移动Web应用的发展。正是由于这些原因,移动Web应用(以及混合的应用)尚无法完全取代原生应用的地位。
尽管HTML5的标准化工作尚未完成,但它在移动互联网领域已经被初步运用。就目前而言,HTML5丰富的功能和强大的Web表现能力,使得它能够解决移动Web应用所面临的功能匮乏的窘境,使浏览器成为类操作系统的功能完善的平台。移动Web应用与HTML5的强强联手,必将为移动互联网带来一次全新的变革。另外,云计算技术的兴起势必会促进云应用市场的发展,而移动Web应用平台作为云计算的表现形式,必将顺着这股浪潮不断前进。
5 总结
智能终端软硬件技术的快速进步、移动互联网络的发展、云计算的兴起及移动终端跨平台开发的需求,共同促使了移动Web应用平台的出现。不同于本地原生应用,移动Web应用完全基于Web技术和浏览器,具有与终端操作系统无关的特征。Web应用平台开发技术包含开发框架和框架模式,开发框架为编程人员提供了复杂程度不同的UI组件、在线应用打包以及本地化功能扩展机制,在简化编程的同时,尽可能高效地利用本地终端平台资源;框架模式MVC为移动Web应用平台开发提供了一套设计典范,通过将应用划分为模型、视图、控制器三类子模块实现职责分离和代码重用。虽然移动Web应用功能受语言限制无法完全替代原生应用程序,且拥有依赖互联网和安全方面的问题,但是HTML5技术却为移动Web的未来指明了方向。
参考文献:
[1] 王跃. 我国移动智能终端操作系统平台发展研究[J]. 信息通信技术, 2012(4): 30-34.
[2] 陆钢,朱培军,李慧云,等. 智能终端跨平台应用开发技术研究[J]. 电信科学, 2012,28(5): 14-17.
[3] Dejan Kovachev, Cao Yiwei, Ralf Klamma. Mobile Multimedia Cloud Computing and the Web[A].Workshop on Multimedia on the Web[C]. Sept.2011.
[4] 邱晓荣. 基于MVC模式的Struts2框架在Web应用开发中的实现[J]. 黑龙江科技信息, 2012(18): 98.
[5] 徐雯,高建华. 基于Spring MVC及MyBatis的Web应用框架研究[J]. 微型电脑应用, 2012,28(7): 1-10.
[6] Florian Daniel, Muhammad Younas. Mobile Web and service applications: guest editors’introduction[J]. Service Oriented Computing and Applications, 2012,6(4): 337-339.★
|