APP下载

移动终端用户界面框架的研究

2012-11-30王云泽李一哲

计算机工程与设计 2012年4期
关键词:用户界面服务器端文档

王云泽,李一哲,郭 琳

(1.昆明理工大学 津桥学院计算机科学及电子信息工程系,云南 昆明650106;2.昆明理工大学 冶金与能源工程学院,云南 昆明650093)

0 引 言

计算机发展初期,计算机主要用于科学计算,当时用户不关心界面方面的细节。随着计算机的发展和普及,人们对人机交互的要求越来越高。当前通用计算机的人机交互主要采用图形用户界面 (graphical user interface,GUI)。近年来,随着移动通讯高速发展,移动终端设备的利益丰富,移动应用软件开发需求日益增长,用户对界面的要求越来越高,更加凸显图形用户界面在移动通讯终端中的重要地位。从用户的观点来看,图形用户界面是系统的一个重要的评价指标,因为用户通过图形用户界面与系统进行交互。

移动终端设备与传统台式个人计算机存在较大差别,差别主要体现在人机交互以及设备处理能力等方面。移动终端虽然种类繁多,但从技术发展的角度讲,由于移动终端的便携性、位置的不固定性和计算能力的有限性等诸多因素的限制,因此对移动设备的用户界面要求就表现在较快速的用户界面响应以及相对简单的人机交互界面等。

鉴于移动设备通讯速度慢、通讯延迟情况明显等特点,桌面界面技术对移动终端的不适用性以及现有的移动界面技术的局限性,本文提出了一种新的适用于移动终端的基于可扩展标识语言的 (extensible markup language,XML)用户界面应用框架。

1 移动终端对用户界面的要求

出于对移动终端系统中资源受限性的考虑,移动终端的GUI平台有以下方面的要求[1]:

(1)可定制性:移动终端本身是一个嵌入式系统,根据目标市场的定位不同,商业化的需求不同,就会有不同的设计方案。有的系统需要完备的GUI以及高质量的图形支持,有的系统只要求部分的图形功能,因此,GUI必须具有模块化的设计。可定制是对智能移动终端系统GUI的基本要求。

(2)占用内存小:移动终端系统不像一般桌面系统有很大的硬盘和内存,一般只是小容量的内存系统,这就要求移动式图形用户界面系统不能像桌面图形用户界面系统那样占用庞大的内存。

(3)提供简单、方便的GUI用户程序开发接口:这个要求和桌面GUI的要求相似,要提供完善的图形接口进行应用程序开发。

(4)快捷的界面与易操作性:受到成本、能耗以及移动性的限制,移动终端往往计算能力较差,存储容量较小;显示屏幕小,分辨率低;接口欠缺,无法连接丰富的外围输入输出设备,因此移动终端界面应具有可用性、灵活性、可靠性、快捷性和易操作性。

2 现有移动终端技术及其局限性

2.1 WAP技术

1997年6月,PHONE COM与Nokia,Ericsson.Motorola合作建立了 WAP (wireless application protocol,无线通讯协议)论坛,目的就是为在移动通信中使用Internet制定统一的应用标准。WAP是在数字移动电话、因特网或其他个人数字助理机、计算机应用之间进行通讯的开放全球标准[2]。

WAP技术照搬了Internet上用浏览器浏览网页的模式,使用的是浏览器-服务器 (browser-server,B/S)方式,WAP手机只能作为一个显示终端,而不是一个计算终端,所有的计算发生在服务器端,计算结果要通过网络传送到手机端来显示,因此这种模式只适用于移动设备与服务器间简单交互,而对一些复杂的服务,则会出现响应速度低、不能对网络的带宽资源智能化利用等缺点[3]。这样就加大了服务器的工作量,响应速度和执行效率较低。

2.2 J2ME技术

J2ME专门为那些使用有限的电源、有限的网络连接以及有限图形用户界面能力的设备开发的,满足了消费电子和嵌入式设备开发的需要[4]。

J2ME技术采用了客户-服务器模式 (client-server,C/S)模式。虽然C/S模式可以克服一些B/S模式固有的缺点,但是对于界面应用系统还不是很适用。J2ME技术中,客户端用户界面设计过程中,所有用户界面都是在客户端程序中事先设计好的,比如程序启动后进入界面A,在界面A进行操作后,进入下一界面B,用户界面的内容和界面之间的访问顺序是固定的。这不利于实现系统用户界面的定制和功能定制。一旦客户端程序编码完成,而新的系统用户希望实现不同的界面和功能时,就必须对原客户端程序进行重新设计。这样增加了开发难度,并且可定制性较差。

3 SyncML技术与Sync4j

SyncML (synchronization markup language)是一种行业通用的移动数据同步协议。SyncML使得在不同的设备上 (掌上电脑、移动电话、自动计算机和桌面PC)同步网络数据成为可能,用户可以通过手持设备和移动电话阅读电子邮件并可以对已读的信息进行更新、修改和维护[5]。

在SyncML协议的模型中,通常有两种角色:客户端和服务器。客户端发送同步消息 (内有同步命令,数据和源信息)给服务器,服务器响应,同步处理后将改动返回给客户端。

SyncML客户端:含有客户端代理,一般首先发送改动请求给服务器。同时必须能接受服务器端响应。在有些情况下,例如其他的客户端发起了同步后,此时服务器也会首先发起同步。

SyncML服务器:当收到客户端的同步请求后负责处理同步分析,内有同步引擎,服务端代理。根据协议的实现要求,也能首先发起同步。

Sync4j是一个开放源代码工程,它是使用Java语言建立的一个基于客户端和服务器的SyncML协议的应用框架。Sync4j是一个同步引擎,它包括一系列的数据传输和数据操作的工具,隐藏了数据鉴定、安全认证和设备配置等一些复杂的操作,使它可以更加便捷的交换数据。另外,它还可以在实体之间传输经优化的数据[6-7]。

Sync4j Java API J2ME有两个主要的模块组成:Data Synchronization(数据同步)和Device Management(设备管理)。它们的层次结构如图1所示,Device Management层 (设备管理)负责设备和应用程序的配置和管理,Data Synchronization层 (数据同步)负责SyncML协议和数据同步过程。

图1 Sync4j Java API体系结构

Host Application可以通过两个模块访问同步服务器[7]:当同步执行时可以通过Sync Manager访问;当读取、操作和改写配置信息时可以通过Device Manager访问。Sync Source是Host Application中的一个模块,它是一组被Sync Manager调用的用来与数据源结合的返回函数。

4 移动终端用户界面应用框架设计

鉴于上述移动终端对图形用户界面的总体要求以及现有移动终端界面技术的局限性,本文提出了一种新的基于XML的移动终端用户界面应用框架。该框架由服务器和移动终端两部分构成,如图2所示。服务器端存储了界面定义和数据定义的XML文档、服务器端的应用数据以及Sync4j的服务器端。移动终端存储了移动应用、从服务器端下载得到的界面定义和数据定义的XML文档、移动终端的应用数据和Sync4j客户端。其中移动应用包含4个功能:XML解析、界面绘制、数据绑定和界面动作定义。

图2 系统架构

程序运行时,界面定义和数据定义的XML文档由服务器下载到移动终端进行存储,下载完成之后断开服务器与移动终端的网络连接,进行移动终端的相关操作。在移动终端对界面定义XML文档进行解析操作。当界面定义文档解析完成之后进行界面元素初始化,并将解析出的界面元素一一绘制到移动终端进行显示;同时还要将数据定义XML文档进行解析,根据该文档结构以及标签的属性自动生成移动终端和服务器的数据库表结构,并将解析出的标签属性值分别根据移动终端和服务器的数据结构添加到各自的数据库中,这样既完成了移动终端和服务器端的数据持久化存储,又可以保证服务器和移动终端表结构和数据的一致性。

界面绘制时需要将数据从移动终端数据库中读取出来,与要绘制的界面元素进行相应的数据绑定,即将移动终端数据库中的数据值映射到界面定义的相应界面组件中,从而使用户与移动终端可以进行各种交互操作。当程序运行过程中用户对界面数据进行了修改或重新赋值后,则将这些修改后的数据重新写回到移动终端的数据库中。最后利用Sync4j同步引擎实现移动终端和服务器的数据同步。

5 移动终端数据持久化存储

在移动设备中对数据持久化保存使用的是记录管理系统 (record management system,RMS),它可以对数据进行存储、读取、排序和查询等操作[8]。

它是一种持久存储机制,在手机中有一个用于存储对象状态的固定空间。RMS是一个文本格式的数据库系统,提供记录存储和记录。记录存储是一个包含了记录集的文件,等同于数据库中的表,而记录存储中的每个条目称为记录,是一个字节数组[9]。

系统的数据定义XML文档存储在服务器端,当程序运行时通过网络从服务器端下载到移动终端进行解析后,将解析的结果按照元素的层次结构自动生成移动终端的数据库表结构并进行移动终端数据的持久化存储。

进行数据绑定操作时可以从记录管理系统中读取相应的数据,当程序运行时对数据进行了修改操作后还要将数据写回到记录管理系统中。由于移动终端数据的持久化存储,无论网络连接与否,都可以在移动终端对数据进行操作,实现了数据的离线浏览及操作。

6 用户界面动态绘制

移动终端用户界面应用框架实现了界面元素动态绘制以及用户界面的定制。界面定义和数据定义的XML文档设计完成之后存储在服务器端。当程序运行时通过网络将界面定义和数据定义的XML文档下载到移动终端进行解析,界面XML的解析与界面元素的绘制同步进行。在绘制界面的同时还需将界面元素与之相对应的数据进行绑定,这些数据从移动终端的记录管理系统中读取出并赋值给界面元素组件,然后一并呈现到移动设备进行显示。

6.1 界面定义的 XML描述[10-11]

6.2 数据定义的XML描述

Record标签中包含了多个属性,其中id属性表示记录的序号,其余的如 “address”和 “quantity”属性对应记录的字段名,而属性值对应字段值。

6.3 数据绑定的实现

在进行界面XML文档解析过程中,遇到界面元素的“value”属性时将属性值读取出来,根据属性值的结果定位到对应的记录和此记录的相应字段,从移动终端的数据库中提取出对应的字段值即可。例如,在界面中有如下定义:

<TextField name="请输入订货数量"value="[record1.quantity]"/>

当解析到TextField标签时,依次读取其name属性和value属性,当读到value属性时,读取属性值为[record1.quantity],[]标识其值为一个变量。首先读出record1,这时根据数据定义中的每个 “Record”标签的“id”属性找到对应的记录,例如record1→id=1,定位到“id”属性值为1的记录,我们暂且称第一条记录;接着读取出 []中的quantity,代表需要找到此记录的 “quantity”属性,这时定位到第一条记录的 “quantity”属性,然后从移动终端的数据库中取出 “quantity”属性的值为 “1230”,赋给TextField标签的value属性,即value=1230。其过程如图3所示。

图3 数据绑定

由于数据绑定对XML文档细节进行了抽象,因此可以减少内存开销。数据绑定方法不用遍历XML文档结构以获取数据,访问程序内的数据速度较快。一些特殊的数据输入后可以被转换成内部表示而不用保留文本形式。从XML文档解析到绑定不需要复杂的实现手法,但却提供了更加简单和灵活的解决方案。

7 依据数据定义自动生成表结构

我们熟知的数据库创建方法均是由用户事先根据自己的需求进行数据库表的结构及内容的定义,定义完成后将数据填写到对应的字段中即可。

本文提出了根据数据定义XML文档自动生成移动终端和服务器端的数据库表结构。由于两端表结构都来源于数据定义,因此这两端的数据库表结构可以自动的保持一致。此外,如果对数据定义的结构和内容进行了修改,移动终端和服务器端的数据库结构及对应数据同时进行相应的修改,从而能够有效提高移动应用的软件开发效率与质量[12-13]。

数据库表的创建及其存储结构是根据数据定义XML文档元素的层次结构和解析内容所确定的。如有以下的数据定义的描述:

在此XML文档中Record标签的属性映射为关系数据库表的列,分别为id、address、company、contact、quantity和schedule,行则用于指示一条完整的数据记录,即记录的数目映射为关系数据库表的行,假设有3条记录,数据库表结构如图4所示。通过解析得到的各属性值插入到图4标识的表对应的字段中,既完成了自动创建数据库表结构又对数据进行了持久化存储。数据库表创建过程如图5所示。

图4 服务器端关系数据库表结构

图5 自动生成关系数据库表的流程

8 移动终端和服务器数据同步

系统运行过程中对移动终端的数据进行了修改,需将修改后的数据存储到移动终端数据库中,当用户发起同步请求后,就可以将移动终端修改的数据与服务器的数据进行同步复制。反之亦然。

只有用户要求同步时才将移动终端与服务器建立连接,而且必须等到同步完成后才能断开连接。另外系统只是将移动终端数据库中自从上次数据同步以后发生的更新操作复制到服务器的数据库中,从而使得两个数据库中的数据保持一致,即只对变化的数据进行同步操作。数据同步执行时要做的主要工作[14]:

(1)同步初始化:同步引擎准备开始一个新的同步会话,在同步开始前对移动终端和服务器进行正确配置,使它们之间可以相互通信。服务器接收到移动终端的同步请求后,对这个请求进行分析后返回移动终端一个或接受或拒绝的信息。

(2)客户端修改检测:在这里有两种可能性:执行快同步时,Sync Manager在已经注册的Sync Sources中只返回上次同步改变的记录;而执行慢同步时,Sync Manager要返回数据存储中所有的记录[15]。由于本系统只同步修改了的数据,因此执行的是快同步操作。

(3)SyncML与服务器同步:在这个阶段通过SyncML协议保证交换数据库修改信息的正确执行。

(4)服务器修改执行:在这个阶段服务器的修改信息必须应用到移动终端数据存储。

服务器和移动终端的数据同步过程如图6所示。

9 实验结果

9.1 界面动态绘制的运行结果

图6 数据同步过程

选择 “输入数据”选项,进入数据输入界面,如图7所示,公司名称、公司地址和公司负责人等均采用了数值绑定技术,这些值均取自移动终端的记录管理系统。

图7 界面动态绘制

9.2 数据同步运行结果

用户在订单数量框中输入数值之后,选择 “保存数据”,这时数据在移动终端进行持久化存储;选择菜单选项中的 “同步”,建立移动终端和服务器的连接,从而可以进行数据同步操作。数据同步发起及同步结果如图8所示。

图8 数据同步

10 结束语

本文构建的移动终端用户界面应用框架能够很好地适应移动设备的特性。运行时界面的动态绘制满足了用户界面的灵活性与可定制性;由于使用了界面元素与相应数据的绑定技术,因此不用遍历XML文档结构以获取数据,减少了内存开销,提高了执行速度;移动终端数据持久化存储可以在网络断开的情况下进行数据的操作,不仅可以进行数据的离线浏览,而且减轻了服务器的工作量;移动终端和服务器数据库表结构的自动生成,确保了两端数据库表结构的一致性,从而能够有效提高移动应用软件开发效率与质量;利用Sync4j同步引擎实现了移动终端和服务器的数据同步,并且只同步变化的数据,可以有效地节省资源、提高速度。

[1]WEI Janhua.The research of software flat and data synchronization of intelligent mobile endpoint[D].Chengdu:University of Electronic Science and Technology of China,2005:23-25(in Chinese).[魏建华.智能移动终端软件平台及其数据同步的研究 [D].成都:电子科技大学,2005:23-25.]

[2]LIU Bin,DING Xuan,PANG Hui.Empolder induction of J2ME mobile telephone [M].Beijing:Posts &Telecom Press,2006:3-4 (in Chinese).[刘斌,丁璇,庞晖.J2ME手机开发入门 [M].北京:人民邮电出版社,2006:3-4.]

[3]HAO Yulong,LI Xiangqian.The mobile application empolder for J2ME [M].Beijing:Higher Education Press,Beijing Jiaotong University Press,2006:13-14 (in Chinese). [郝玉龙,李向前.J2ME移动应用开发 [M].北京:高等教育出版社,北京交通大学出版社,2006:13-14.]

[4]HU Xuhuai,YANG Zhihe,LI Huan.The programe design for J2ME mobile equipment[M].Beijing:Tsinghua University Press,2005:9-10 (in Chinese).[胡虚怀,杨志和,李焕.J2ME移动设备程序设计 [M].北京:清华大学出版社,2005:9-10.]

[5]LIU Jin,GUAN Yong.Analysis of mobile data synchronization protocol SyncML [J].Computer Engineering and Design,2008,29 (9):2166-2168 (in Chinese). [刘瑾,关永.移动数据同步SyncML分析 [J].计算机工程与设计,2008,29(9):2166-2168.]

[6]Sync4j Java API J2ME developers guide[EB/OL].http://www.sync4j.org,2008.

[7]Sync4j mobile application server [Z].

[8]SyncML Sync Protocal(version 1.1)[S].

[9]KONG Lingdong,KONG Lifang.An analysis and implementation of persisten storage technology based on J2ME [J].Journal of Yancheng Institute of Technology (Natural Science),2006,19 (3):8-12 (in Chinese). [孔令东,孔莉芳.基于J2ME持久存储技术的分析与实现 [J].盐城工学院学报 (自然科学版),2006,19 (3):8-12.]

[10]BrttD,Mclaugblin,Justin Edelson.Java&XML [M].Nanjing:Southease University Press,2007:83-96 (in Chinese).[BrttD,Mclaugblin,Justin Edelson.Java&XML[M].南京:东南大学出版社,2007:83-96.]

[11]ZHANG Peng,WU Gang.Graphical user interfaces base on XML [EB/OL].http://www2.ccw.com.cn/06/0633/b/0633b12_3.html,2006(in Chinese).[张鹏,吴刚.基于 XML的图 形 用 户 界 面 [EB/OL].http://www2.ccw.com.cn/06/0633/b/0633b12_3.html,2006.]

[12]ZHANG Zongping,SUN Shixin.Research and implementation of mobile data synchronization[J].Journal of Chengdu University of Information Technology,2006,21 (1):91-95 (in Chinese).[张宗平,孙世新.移动数据同步研究与实现 [J].成都信息工程学院学报,2006,21 (1):91-95.]

[13]SHEN Minxu,HUA Hu,JI Yonghua,et al.Implementation of data synchronization for distributed heterogeneous database[J].Computer Engineering and Application,2005,18(2):184-186 (in Chinese). [沈敏许,华虎,季永华,等.基于XML的分布式异构数据库数据同步系统的研究 [J].计算机工程与应用,2005,18 (2):184-186.]

[14]YAO Lu,YANG Haitao,WANG Zhenghua,et al.Datasync-capacity adaptation handling based on SyncML protocol[J].Computer Engineering,2009,35 (5):68-71 (in Chinese).[姚路,杨海涛,王正华,等.基于SyncML协议的数据同步能力适应处理 [J].计算机工程,2009,35 (5):68-71.]

[15]David Buchmann.SyncML (synchronization markup language)and its Java implementation sync4j[D].Switzerland:Informatics University of Fribourg,2006:3-7.

猜你喜欢

用户界面服务器端文档
浅谈Matlab与Word文档的应用接口
有人一声不吭向你扔了个文档
基于CiteSpace的国外用户界面体验图谱量化分析
Linux环境下基于Socket的数据传输软件设计
物联网用户界面如何工作
浅析异步通信层的架构在ASP.NET 程序中的应用
UI用户界面色彩设计研究
基于Qt的安全即时通讯软件服务器端设计
基于RI码计算的Word复制文档鉴别
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat