跨平台手机移动中间件
2011-09-04林远
林 远
(浙江工业大学信息工程学院,浙江杭州310032)
0 引言
随着无线移动应用的推广和普及,移动终端也越来越呈现出多样化的趋势,不同厂家生产的终端型号各异,采用不同的操作系统,具备不同的显示能力和处理数据能力。为了摆脱操作系统和硬件环境的差异、实现一套代码不用修改就可以适应不同的平台,很多中间件厂商提出了跨平台的概念。目前,REXSEE公司提出的使用HTML5+JavaScript+CSS3来实现的移动中间件产品EMS已经开始投入市场[1]。本文提出了另一种使用中间件技术来实现软件在跨平台终端上的移动化应用的方法,实验设计的基于脚本引擎、客户端界面动态构建的跨平台手机移动中间件,能适应iPhone、Android、WinPhone、Symbian、Linux等主流系统平台。
1 整体设计思路
系统整个运行环境由:中间件模块和各个手机操作系统平台移动客户端组件组成:(1)中间件模块使用主要由JAVA程序和相应的xml脚本两个部分组分,程序启动后,服务器端加载预先编写的xml文件,解析xml文件,调用数据库驱动、爬虫模块获取变量数据,组装成Json字符串向手机客户端传送;(2)移动客户端组件在各个手机操作系统平台上各有一个,实现的功能都是:接收呈现数据块并调用解析模块,构建UI呈现数据,在终端上实现对业务系统的呈现和操作[2、3]。系统实现框图如图1所示。
2 系统运行实验
2.1 实验目标
实验目标是使用本中间件,实现业务系统的移动化部署。实验所使用的业务系统是某大学学生工作信息系统,业务系统启动后界面如图2所示。
2.2 实验过程
实验流程包括:运行中间件服务器、运行测试手机终端、手机终端向服务器发送数据请求、中间件服务器响应请求、中间件服务器抓取业务系统数据、组装数据返回手机终端。
图1 系统实现框图
图2 业务系统界面截图
2.2.1 运行中间件服务器
根据需要实现的业务功能、数据需求和UI构建方式编写xml脚本并存放在中间件服务器相应目录下,运行由java编写的中间件服务器端程序,服务器端加载预先编写的xml文件,面向对象的实体类xml文件内容进行解析,工具类生成呈现数据块向手机端发送。本系统采用jetty开源框架作为嵌入式WEB服务器向手机端提供可扩展的数据服务。
在作为开发环境的eclipse中运行中间件服务器,中间件服务器运行在Java虚拟机种,Java程序启动之后,控制台print出运行信息:
开启9999端口,作为服务端口,本端口可以根据需要设定。
中间件服务器顺利启动,开始运行工作。
2.2.2 终端运行
启动手机客户端,J2ME终端显示如图3所示,手机客户端可以由多个手机操作系统的组件组成,适应iPhone、Android、WinPhone、Symbian、Linux、JAVA等主流系统平台。每一个手机平台都有一个对应的移动组件,只要在该手机上运行移动组件,移动组件连接上相应的中间件服务器,就可以运行该中间件服务器移动化的业务系统。
图3 手机客户端界面截图
2.2.3 手机端发送数据请求
点击登陆,手机端就会发送一个http请求到中间件服务器,将表单中的用户名和密码作为request请求的参数,中间件服务器调用login的xml脚本,解析之后交由爬虫模块(登陆的功能使用爬虫方式完成请求)请求业务系统的数据,业务系统处理该业务(判断用户名密码是否正确),正确即保存登陆session,中间件返回success的json字符串到手机端。登陆的整个业务在手机上就完成了。
中间件模块发送URL http请求之后,可以有3种方式可以获取数据[4、5]:
(1)用爬虫爬取页面数据,存在tmp目录下的缓存中;
(2)JDBC读取业务系统数据库SQL;
(3)使用业务系统的WebService提供的API。
方式一可以完全不变动原系统的部署,但是能实现的业务有局限。
方式二可以重构系统业务,但是部署成本较高,xml脚本将承载较多业务。
方式三是最优的解决方案,不过只有较新的业务系统才有WebService支持,对较老系统不支持。
2.2.4 实验结果
在这个实验中完成了一个登陆业务的移动化演示,在业务系统、中间件服务器和手机端运行之后,由手机端发送请求触发整个过程,经过:手机终端向服务器发送数据请求、中间件服务器响应请求、中间件服务器抓取业务系统数据、组装数据返回手机终端,这4个步骤,业务移动化的实验目标顺利完成。
2.3 数据传输的格式
本实验中,移动终端获取的数据传输格式是Json,然后解析Json生成UI。选择Json是考虑到Json是一种轻量级的数据交换格式。易于机器解析和生成,便于有效控制手机数据流量。
另一种方式是采用xml格式传输数据,这种方式较之Json格式的数据冗余较大,但是便于人工阅读。在服务器端和手机端交互中还是Json格式优势较为明显。
第三种方式就是使用html5技术,html5技术的表现形式非常丰富,跨平台支持非常好,手机端组件开发成本也较低,但是截止到目前国际标准未完全发布,故只做系统设计,未完全实现[6、7]。
3 结束语
实验成功将原先的业务系统移动化,并使用预先设计的UI在终端上呈现出来,使用本系统只要编写与原业务系统相对应的xml脚本,并部署本系统,即可实现原业务系统的移动化,并能适应诸多的手机操作系统平台,大大降低了开发成本和实施周期。但是由于xml脚本表现形式不够丰富,导致系统目前只能移动化一些比较简单的应用。实验下一步可以尝试使用html5技术,通过html5技术的丰富的表现形式,系统将可以进一步实现一些复杂的应用。
[1] 李华飚.Java中间件技术及其应用开发[M].北京:中国水利水电出版社,2007:17-22.
[2] Anders Berglund,Scott Boag.XML Path Language(xPath)2.0[EB/OL].http://www.w3.org/TR/xPath20/,2005 - 11-01.
[3] Tamer M zsu,Patrick Valduriez.分布式数据库系统原理[M].北京:清华大学出版社,2002:57-64.
[4] 朱晓明,刘卫东.数据库连接中间件的研究[J].计算机工程与应用,2003,2(1):7-10.
[5] Fabio Arciniegas.XML 开发指南[M].北京:清华大学出版社,2002:22-26.
[6] 贾西诺斯基.盖江南译.Java,Xml和web服务宝典[M].北京:电子工业出版社,2002:79-85.
[7] 周英飚,许蔚.异构数据库体系结构[EB/01].http://www.tongji.edu.cn/yangdy/database/paperl.htm,2003 - 04-05.