《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > VMSDT——一个设备无关的移动电子商务开发平台

VMSDT——一个设备无关的移动电子商务开发平台

2008-12-02
作者:刘英群,王克宏

摘要:随着无线通信的快速发展,基于web的移动服务" title="移动服务">移动服务在未来会成为非常重要的移动服务实现方式。但是构建基于web移动服务要求解决设备语言多样性问题,同时保证能够最大" title="最大">最大限度的利用现有资源。基于这个目标,我们设计并实现了一个可视化的集成开发平台,用于构建设备无关的基于web的移动电子商务。本文中,首先简单介绍了该平台的构架设计,然后重点介绍了该平台的三个主要的模块,数据逻辑编辑器" title="编辑器">编辑器,页面编辑器和转换器的设计与实现。
关键字:设备无关;移动电子商务;WML
1 引言
近几年来电子商务得到了极大的关注,随着无线通信的快速发展,手持设备" title="手持设备">手持设备用户的持续激增,无线技术与电子商务的结合,即移动电子商务得到了越来越多的关注。
目前移动电子商务的实现主要基于以下三种方式:SMS,Web和J2ME,其中基于SMS的移动服务占据了主导地位,而基于J2ME的服务则在快速发展之中。但是我们认为基于web的移动服务在未来会成为非常重要的移动服务实现方式。首先,它能够为手持设备用户提供丰富的web资源;其次,它允许开发者最大限度的利用现有资源;最后,服务开发者仍然可以沿用已有的开发模式。但是,构造基于web的服务还存在一定的困难。从技术的角度来分析,主要体现在以下两个方面:
(1) 设备多样性
我们知道,目前的手持设备多种多样,从laptop到smart phone, 它们在计算能力,显示能力等方面具有很大差异。设备多样性的存在为移动商务系统的构造带来很大困难,其中设备语言的多样性所带来的困难最为突出。由于不同的设备,使用不同的设备语言,服务实现的方式不同。因此同一服务,就需要进行多次设计,多个实现,并维护多套代码,造成服务的生产成本和维护代价不堪忍受。
(2) 现有资源的充分利用
在构建移动服务时,服务提供商需要考虑新构建的移动服务与已有的电子商务服务之间的关系。充分利用已有的资源,能够极大的降低构建成本。从三层计算模型的角度来分析,我们只需重新开发其中的表现层,而充分利用现有的业务层和数据层的资源。

基于上述分析,我们设计并开发了一个移动电子商务开发平台VMSDT。该平台提供一整套工具,能够帮助移动商务服务开发人员以可视化的方式简单快速的开发出支持多种设备语言的移动商务服务,并且能够充分利用现有的业务层处理逻辑。使用这个平台,能够最大限度的降低移动服务构建和维护代价,使服务提供者能够将服务的实现与具体的设备分开,提供设备无关的服务。
2 系统介绍
VMSDT是一个可视化的移动电子商务集成开发工具,该工具集页面设计,页面预览和代码生成等功能,帮助服务设计人员以可视化的方式简单快速的创建出完整的移动web应用。图1是VMSDT的系统架构图:

图1 VMSDT的系统架构图

其中IEE和转换器其中的两个核心部分。IEE是一个可视化的集成开发环境,能够帮助设计人员在不熟悉具体设备语言的条件下

可视化的方式完成M-Commerce服务开发。转换器用于结果文件生成,根据用户的设计,转换引擎调用底层包生成适用于客户端的动态和静态页面。底层包是一个底层软件包,提供一套API,供转换引擎调用。
    配置管理服务为IEE和转换器,提供最大限度的可配置和可扩展性" title="可扩展性">可扩展性。系统的可扩展性对于解决设备语言多样性问题极为关键。由于目前的设备语言标准还不统一,不同的厂家所生产的手持设备采用了不同的设备语言,比较常见的有WML,CHTML,HDML等等。另外,各种设备语言的版本也在不断升级之中。这就要求系统能够以较小的代价快速适应设备语言标准的变化,以保证所开发的服务能够支持新的设备。在本系统中,我们采用了基于XML的配置管理策略,保证当设备语言更新时,只需修改XML文件及少量编程即可升级整个系统。
    在下面的章节中,我们将就VMSDT的特色,来重点介绍其中的几个主要部分的设计与实现。
3 设计与实现
    本节中,我们将重点介绍三个模块的设计与实现。其中数据逻辑编辑器能够对已有的业务逻辑建模,既保证了对已有资源的充分利用,同时也使得通过VMSDT设计生成的应用是完整应用。页面编辑器支持页面组件属性的可配置,最大限度的提高了设计的灵活性和可扩展性。转换器支持静态页面和动态页面的转换,拓展了系统的应用范围。
3.1 数据逻辑编辑器
从需求的角度来说,用户设计的页面分为两种,一种是静态页面,一种是动态页面。静态页面可以在设计时生成,而动态页面则是在运行时生成的。本系统中同时支持两种页面的设计。一般来说,动态页面所做的处理逻辑主要有以下两种:
(1) 从数据源中获取数据,获取到的数据用于构造一个页面。
(2) 获取用户提交的数据,调用后端处理逻辑做进一步处理,根据处理结果将页面导航到不同的页面上。
实际上,在三层架构模型中,作为表现层的动态页面一般不会直接存取数据,而是通过业务逻辑层获取或操作数据。为了支持动态页面的设计,我们需要对业务逻辑层中的处理逻辑进行建模,称为数据逻辑模型。需要说明的是,数据逻辑编辑器并不支持业务逻辑的创建,而只是对已创建的业务逻辑建模。这样做最大的好处在于可以充分利用已有的系统,避免重复开发。
数据逻辑模型是对业务逻辑层中数据处理程序接口的描述,所描述的内容包括以下四个部分:

.基本描述:描述应用程序的类型,接口模式等等
.操作:描述接口的类及方法名
.输入:描述方法的输入参数,以及每个参数的数据类型
.输出:描述方法的输出结果及类型。
其中,输入输出的描述最为复杂,尤其当输入参数和输出结果的数据类型不是简单类型时。这时,还需要对涉及到的数据对象建模,构造DataBean。我们以下图为例做详细说明:

图2 第一种处理逻辑

 

    图2所示为上述第一种处理逻辑的典型处理模式,其中jsp需要获取该操作所输出的DataBean,并将bean中的内容显示在页面上。对于这个操作,数据逻辑模型不仅要描述Operation,还需要对DataBean的属性及类型进行描述。
3.2 页面编辑器
页面编辑器是一个树形结构编辑器,用于构造抽象页面。抽象页面与具体的设备语言规范无关,称之为设备无关的页面。这些抽象页面最终可以使用转换器转换成与某种设备相关的页面。在本系统中,每个页面由不同类型的Component组成。Component间构成树形逻辑结构,如下图所示:

 

图3  页的树形逻辑结构

 

    由图3可以看出,Component分为三类:
. Orgnization Component(OC)
OC是构成一个物理页的基本单位。包括PageComponent和ContainerComponent,其中PageComponent可以包含多个ContainerComponent。之所以采用这种Page-Container的两级结构,主要是为了适应手持设备屏幕较小的特点。在有些页面标记语言中也同样考虑到这个因素,如wml采用了Deck-Card两级结构,把一页内容分成多个Card来显示。这样每个Card的内容较少,便于手持设备用户浏览。每个OC包含多个Composite Component。
.Composit Component(CC)
CC是结构组件,主要包括两种:ParagraphComponent和FormComponent。CC可以包括多个Basic Component,且CC之间可以相互嵌套。
.Basic Component(BC)
BC是构成页面的基本单位,本系统中支持多种BC,如TextComponent,TableComponent,ChoiceComponent等等。
3.3 转换器
转换器是整个系统的核心模块,需要将页面编辑器中产生的抽象页面转换成符合某种规范的目标页面。本系统支持两种页面的转换,静态页面和动态页面。生成的结果文件包括静态的web页面,如WML,CHTML页面等等,动态的jsp页面,java代码等等。
目前,用于手持设备的web页面标记语言还没有统一的标准,使用较为广泛的有CHTML,WML等等。另外,不同的手持设备既使标记语言相同,版本也可能不同。因此,扩展性是转换器设计中需要考虑的最重要的问题。在设计过程中,我们提出了两种转换方案:
.xml+xslt,通过使用XSLT将资源文件转换成结果文件。
.API调用,设计一套底层包,转换引擎通过方法调用将抽象页面转换成结果文件。
第一种方法的优点是实现简单,可扩展性强。对于每种规范,我们只需建立一个XSLT文件。当规范的版本升级时,只需修改相应的XSLT文件即可。存在的缺点是无法用于动态页面的生成。第二种方法与第一种方法恰恰相反,能够用于动态页面的生成,但是可扩展性要差。因此,我们在实现时采用了第二种方法,并通过采用可配置管理策略来最大限度的提高可扩展性和可维护性。当规范升级或加入新的规范时,大量的工作放在配置文件修改上,需要增加的代码也不会影响已有的代码。转换引擎采用了一个两阶段转换算法:
(1) 第一阶段
首先将一个抽象组件树转换成一个concrete组件树。抽象组件树和Concrete组件树都是对象树,最大的不同在于Concrete组件树与某种规范相关,结构上与结果文件是一致的。举个例子,对于下面的一棵抽象组件树,转换成符合CHTML的concrete组件树是:

 

                                             图4  抽象组件树

    在图4中,抽象组件树上包括两个BC,LabelComponent和TableComponent。其中,TableComponent是一个两行三列的Row-Major的表格。由于CHTML规范中不支持表格,因此需要将表格中的内容用另一种组件来代替,在本例中采用了List组件。
(1) 第二阶段
将Concrete节点树转换成结果文件,这需要将对象树转换成tag格式的字符串,并写入到文件中。每个Concrete组件的属性都是可配置的,在配置文件中设置了Concrete组件和tag间的映射关系。另外,每个Concrete组件都可以根据版本号获得一个最优的转换器,将Concrete组件树转换成符合该版本的目标文件。
4 总结与展望
在本文的以上章节中,我们介绍了VMSDT的架构及主要的几个功能模块。为了保证设备无关性和应用完整性,我们引入了抽象页面和数据逻辑编辑器。此外,为了提高系统的可扩展性和可维护性,我们采用了基于XML的配置管理策略。
但是目前的VMSDT版本还存在一些缺陷,如只能支持简单的页面设计,无法支持复杂的动态页面的设计,支持的规范仅限于WML,HDML和CHTML三种,在以后的工作中,我们将做进一步改进。

参考文献
[1] F. Muller-Veerse, Mobile commerce report, Durlacher Corpo-ration, London, http://www.durlacher.com/downloads/mcomreport.pdf
[2] U. Varshney, Mobile commerce: Applications and technologies, Atu-torial,in: ACM International Conference on Mobile Computing and Networking (MobiCom) (July 2001) (slides available from the author).
[3] Wireless Markup Language (WML), WapForum , http://www.wapforum.org/
[4] T. Kamada, Compact HTML for Small Information Appliances, W3CNote 09-Feb-1998, http://www.w3.org/TR/1998/NOTE-compactHTML-19980209/.
[5] Handheld Device Markup Language, http://www.w3.org/TR/NOTE-Submission-HDML-spec.html
[6] Harmonia, Inc. User Interface Markup Language (UIML) Draft Specification.
[7] M. Abrams, and C. Phanouriou, UIML: An XML Language for Building Device-Independent User Interfaces, XML?99,Philadelphia, December 1999, http://www.harmonia.com/resources/xml99Final.pdf
[8] Johan Plomp, Robbie Schaefer, Wolfgang Mueller, “Comparing Transcoding Tools for Use with a Generic User
Interface Format
[9] Robbie Schaefer, Andreas Dangberg, Wolfgang Mueller, A GenericLanguage for the Transcoding of HTML Pages, C-LAB Report 31/2001,Paderborn, Germany, February 2001. (In German)
[10] Steffen G?bel, Sven Buchholz, Thomas Ziegert, Alexander Schill, “device Independent Representation of Web-based Dialogs andContents
[11] Microsoft. Mobile Web Development: Comparing the Mobile InternetToolkit to XSLT, March 2002. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmitt%a/html/mmitvxslt.asp.
[12] Y. Ivory and Marti A. Hearst. Automated Usability Evaluation of Web Interfaces. In CHI 2002 Conference,  Workshop on Automatically Evaluating the Usability of Web Sites, Minneapolis, MN, February 2002. http://www.usabilityfirst.com/auto-evaluation/paper_Ivory_Hearst.html.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。