《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動(dòng)態(tài) > VMSDT——一個(gè)設(shè)備無關(guān)的移動(dòng)電子商務(wù)開發(fā)平臺(tái)

VMSDT——一個(gè)設(shè)備無關(guān)的移動(dòng)電子商務(wù)開發(fā)平臺(tái)

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

摘要:隨著無線通信的快速發(fā)展,,基于web的移動(dòng)服務(wù)" title="移動(dòng)服務(wù)">移動(dòng)服務(wù)在未來會(huì)成為非常重要的移動(dòng)服務(wù)實(shí)現(xiàn)方式,。但是構(gòu)建基于web移動(dòng)服務(wù)要求解決設(shè)備語言多樣性問題,,同時(shí)保證能夠最大" title="最大">最大限度的利用現(xiàn)有資源,。基于這個(gè)目標(biāo),,我們設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)可視化的集成開發(fā)平臺(tái),,用于構(gòu)建設(shè)備無關(guān)的基于web的移動(dòng)電子商務(wù),。本文中,,首先簡單介紹了該平臺(tái)的構(gòu)架設(shè)計(jì),,然后重點(diǎn)介紹了該平臺(tái)的三個(gè)主要的模塊,數(shù)據(jù)邏輯編輯器" title="編輯器">編輯器,,頁面編輯器和轉(zhuǎn)換器的設(shè)計(jì)與實(shí)現(xiàn),。
關(guān)鍵字:設(shè)備無關(guān);移動(dòng)電子商務(wù),;WML
1 引言
近幾年來電子商務(wù)得到了極大的關(guān)注,,隨著無線通信的快速發(fā)展,手持設(shè)備" title="手持設(shè)備">手持設(shè)備用戶的持續(xù)激增,,無線技術(shù)與電子商務(wù)的結(jié)合,,即移動(dòng)電子商務(wù)得到了越來越多的關(guān)注。
目前移動(dòng)電子商務(wù)的實(shí)現(xiàn)主要基于以下三種方式:SMS,,Web和J2ME,,其中基于SMS的移動(dòng)服務(wù)占據(jù)了主導(dǎo)地位,而基于J2ME的服務(wù)則在快速發(fā)展之中,。但是我們認(rèn)為基于web的移動(dòng)服務(wù)在未來會(huì)成為非常重要的移動(dòng)服務(wù)實(shí)現(xiàn)方式,。首先,它能夠?yàn)槭殖衷O(shè)備用戶提供豐富的web資源,;其次,它允許開發(fā)者最大限度的利用現(xiàn)有資源;最后,,服務(wù)開發(fā)者仍然可以沿用已有的開發(fā)模式,。但是,構(gòu)造基于web的服務(wù)還存在一定的困難,。從技術(shù)的角度來分析,,主要體現(xiàn)在以下兩個(gè)方面:
(1) 設(shè)備多樣性
我們知道,目前的手持設(shè)備多種多樣,,從laptop到smart phone, 它們在計(jì)算能力,,顯示能力等方面具有很大差異。設(shè)備多樣性的存在為移動(dòng)商務(wù)系統(tǒng)的構(gòu)造帶來很大困難,,其中設(shè)備語言的多樣性所帶來的困難最為突出,。由于不同的設(shè)備,使用不同的設(shè)備語言,,服務(wù)實(shí)現(xiàn)的方式不同,。因此同一服務(wù),就需要進(jìn)行多次設(shè)計(jì),,多個(gè)實(shí)現(xiàn),,并維護(hù)多套代碼,造成服務(wù)的生產(chǎn)成本和維護(hù)代價(jià)不堪忍受,。
(2)?現(xiàn)有資源的充分利用
在構(gòu)建移動(dòng)服務(wù)時(shí),,服務(wù)提供商需要考慮新構(gòu)建的移動(dòng)服務(wù)與已有的電子商務(wù)服務(wù)之間的關(guān)系。充分利用已有的資源,,能夠極大的降低構(gòu)建成本,。從三層計(jì)算模型的角度來分析,我們只需重新開發(fā)其中的表現(xiàn)層,,而充分利用現(xiàn)有的業(yè)務(wù)層和數(shù)據(jù)層的資源,。

基于上述分析,我們設(shè)計(jì)并開發(fā)了一個(gè)移動(dòng)電子商務(wù)開發(fā)平臺(tái)VMSDT,。該平臺(tái)提供一整套工具,,能夠幫助移動(dòng)商務(wù)服務(wù)開發(fā)人員以可視化的方式簡單快速的開發(fā)出支持多種設(shè)備語言的移動(dòng)商務(wù)服務(wù),并且能夠充分利用現(xiàn)有的業(yè)務(wù)層處理邏輯,。使用這個(gè)平臺(tái),,能夠最大限度的降低移動(dòng)服務(wù)構(gòu)建和維護(hù)代價(jià),使服務(wù)提供者能夠?qū)⒎?wù)的實(shí)現(xiàn)與具體的設(shè)備分開,,提供設(shè)備無關(guān)的服務(wù),。
2 系統(tǒng)介紹
VMSDT是一個(gè)可視化的移動(dòng)電子商務(wù)集成開發(fā)工具,該工具集頁面設(shè)計(jì),,頁面預(yù)覽和代碼生成等功能,,幫助服務(wù)設(shè)計(jì)人員以可視化的方式簡單快速的創(chuàng)建出完整的移動(dòng)web應(yīng)用,。圖1是VMSDT的系統(tǒng)架構(gòu)圖:

圖1 VMSDT的系統(tǒng)架構(gòu)圖

其中IEE和轉(zhuǎn)換器其中的兩個(gè)核心部分。IEE是一個(gè)可視化的集成開發(fā)環(huán)境,,能夠幫助設(shè)計(jì)人員在不熟悉具體設(shè)備語言的條件下

可視化的方式完成M-Commerce服務(wù)開發(fā),。轉(zhuǎn)換器用于結(jié)果文件生成,根據(jù)用戶的設(shè)計(jì),,轉(zhuǎn)換引擎調(diào)用底層包生成適用于客戶端的動(dòng)態(tài)和靜態(tài)頁面,。底層包是一個(gè)底層軟件包,提供一套API,,供轉(zhuǎn)換引擎調(diào)用,。
??? 配置管理服務(wù)為IEE和轉(zhuǎn)換器,提供最大限度的可配置和可擴(kuò)展性" title="可擴(kuò)展性">可擴(kuò)展性,。系統(tǒng)的可擴(kuò)展性對于解決設(shè)備語言多樣性問題極為關(guān)鍵,。由于目前的設(shè)備語言標(biāo)準(zhǔn)還不統(tǒng)一,不同的廠家所生產(chǎn)的手持設(shè)備采用了不同的設(shè)備語言,,比較常見的有WML,,CHTML,HDML等等,。另外,,各種設(shè)備語言的版本也在不斷升級之中。這就要求系統(tǒng)能夠以較小的代價(jià)快速適應(yīng)設(shè)備語言標(biāo)準(zhǔn)的變化,,以保證所開發(fā)的服務(wù)能夠支持新的設(shè)備,。在本系統(tǒng)中,我們采用了基于XML的配置管理策略,,保證當(dāng)設(shè)備語言更新時(shí),,只需修改XML文件及少量編程即可升級整個(gè)系統(tǒng)。
??? 在下面的章節(jié)中,,我們將就VMSDT的特色,,來重點(diǎn)介紹其中的幾個(gè)主要部分的設(shè)計(jì)與實(shí)現(xiàn)。
3 設(shè)計(jì)與實(shí)現(xiàn)
??? 本節(jié)中,,我們將重點(diǎn)介紹三個(gè)模塊的設(shè)計(jì)與實(shí)現(xiàn),。其中數(shù)據(jù)邏輯編輯器能夠?qū)σ延械臉I(yè)務(wù)邏輯建模,既保證了對已有資源的充分利用,,同時(shí)也使得通過VMSDT設(shè)計(jì)生成的應(yīng)用是完整應(yīng)用,。頁面編輯器支持頁面組件屬性的可配置,最大限度的提高了設(shè)計(jì)的靈活性和可擴(kuò)展性,。轉(zhuǎn)換器支持靜態(tài)頁面和動(dòng)態(tài)頁面的轉(zhuǎn)換,,拓展了系統(tǒng)的應(yīng)用范圍。
3.1 數(shù)據(jù)邏輯編輯器
從需求的角度來說,,用戶設(shè)計(jì)的頁面分為兩種,,一種是靜態(tài)頁面,,一種是動(dòng)態(tài)頁面。靜態(tài)頁面可以在設(shè)計(jì)時(shí)生成,,而動(dòng)態(tài)頁面則是在運(yùn)行時(shí)生成的,。本系統(tǒng)中同時(shí)支持兩種頁面的設(shè)計(jì)。一般來說,,動(dòng)態(tài)頁面所做的處理邏輯主要有以下兩種:
(1) 從數(shù)據(jù)源中獲取數(shù)據(jù),獲取到的數(shù)據(jù)用于構(gòu)造一個(gè)頁面,。
(2)?獲取用戶提交的數(shù)據(jù),,調(diào)用后端處理邏輯做進(jìn)一步處理,根據(jù)處理結(jié)果將頁面導(dǎo)航到不同的頁面上,。
實(shí)際上,,在三層架構(gòu)模型中,作為表現(xiàn)層的動(dòng)態(tài)頁面一般不會(huì)直接存取數(shù)據(jù),,而是通過業(yè)務(wù)邏輯層獲取或操作數(shù)據(jù),。為了支持動(dòng)態(tài)頁面的設(shè)計(jì),我們需要對業(yè)務(wù)邏輯層中的處理邏輯進(jìn)行建模,,稱為數(shù)據(jù)邏輯模型,。需要說明的是,數(shù)據(jù)邏輯編輯器并不支持業(yè)務(wù)邏輯的創(chuàng)建,,而只是對已創(chuàng)建的業(yè)務(wù)邏輯建模,。這樣做最大的好處在于可以充分利用已有的系統(tǒng),避免重復(fù)開發(fā),。
數(shù)據(jù)邏輯模型是對業(yè)務(wù)邏輯層中數(shù)據(jù)處理程序接口的描述,,所描述的內(nèi)容包括以下四個(gè)部分:

.基本描述:描述應(yīng)用程序的類型,接口模式等等
.操作:描述接口的類及方法名
.輸入:描述方法的輸入?yún)?shù),,以及每個(gè)參數(shù)的數(shù)據(jù)類型
.輸出:描述方法的輸出結(jié)果及類型,。
其中,輸入輸出的描述最為復(fù)雜,,尤其當(dāng)輸入?yún)?shù)和輸出結(jié)果的數(shù)據(jù)類型不是簡單類型時(shí),。這時(shí),還需要對涉及到的數(shù)據(jù)對象建模,,構(gòu)造DataBean,。我們以下圖為例做詳細(xì)說明:

圖2 第一種處理邏輯

?

??? 圖2所示為上述第一種處理邏輯的典型處理模式,其中jsp需要獲取該操作所輸出的DataBean,,并將bean中的內(nèi)容顯示在頁面上,。對于這個(gè)操作,數(shù)據(jù)邏輯模型不僅要描述Operation,,還需要對DataBean的屬性及類型進(jìn)行描述,。
3.2 頁面編輯器
頁面編輯器是一個(gè)樹形結(jié)構(gòu)編輯器,,用于構(gòu)造抽象頁面。抽象頁面與具體的設(shè)備語言規(guī)范無關(guān),,稱之為設(shè)備無關(guān)的頁面,。這些抽象頁面最終可以使用轉(zhuǎn)換器轉(zhuǎn)換成與某種設(shè)備相關(guān)的頁面。在本系統(tǒng)中,,每個(gè)頁面由不同類型的Component組成,。Component間構(gòu)成樹形邏輯結(jié)構(gòu),如下圖所示:

?

圖3 ?頁的樹形邏輯結(jié)構(gòu)

?

??? 由圖3可以看出,,Component分為三類:
.?Orgnization Component(OC)
OC是構(gòu)成一個(gè)物理頁的基本單位,。包括PageComponent和ContainerComponent,其中PageComponent可以包含多個(gè)ContainerComponent,。之所以采用這種Page-Container的兩級結(jié)構(gòu),,主要是為了適應(yīng)手持設(shè)備屏幕較小的特點(diǎn)。在有些頁面標(biāo)記語言中也同樣考慮到這個(gè)因素,,如wml采用了Deck-Card兩級結(jié)構(gòu),,把一頁內(nèi)容分成多個(gè)Card來顯示。這樣每個(gè)Card的內(nèi)容較少,,便于手持設(shè)備用戶瀏覽,。每個(gè)OC包含多個(gè)Composite Component。
.Composit Component(CC)
CC是結(jié)構(gòu)組件,,主要包括兩種:ParagraphComponent和FormComponent,。CC可以包括多個(gè)Basic Component,且CC之間可以相互嵌套,。
.Basic Component(BC)
BC是構(gòu)成頁面的基本單位,,本系統(tǒng)中支持多種BC,如TextComponent,,TableComponent,,ChoiceComponent等等。
3.3 轉(zhuǎn)換器
轉(zhuǎn)換器是整個(gè)系統(tǒng)的核心模塊,,需要將頁面編輯器中產(chǎn)生的抽象頁面轉(zhuǎn)換成符合某種規(guī)范的目標(biāo)頁面,。本系統(tǒng)支持兩種頁面的轉(zhuǎn)換,靜態(tài)頁面和動(dòng)態(tài)頁面,。生成的結(jié)果文件包括靜態(tài)的web頁面,,如WML,CHTML頁面等等,,動(dòng)態(tài)的jsp頁面,,java代碼等等。
目前,,用于手持設(shè)備的web頁面標(biāo)記語言還沒有統(tǒng)一的標(biāo)準(zhǔn),,使用較為廣泛的有CHTML,,WML等等。另外,,不同的手持設(shè)備既使標(biāo)記語言相同,,版本也可能不同。因此,,擴(kuò)展性是轉(zhuǎn)換器設(shè)計(jì)中需要考慮的最重要的問題,。在設(shè)計(jì)過程中,我們提出了兩種轉(zhuǎn)換方案:
.xml+xslt,,通過使用XSLT將資源文件轉(zhuǎn)換成結(jié)果文件,。
.API調(diào)用,設(shè)計(jì)一套底層包,,轉(zhuǎn)換引擎通過方法調(diào)用將抽象頁面轉(zhuǎn)換成結(jié)果文件。
第一種方法的優(yōu)點(diǎn)是實(shí)現(xiàn)簡單,,可擴(kuò)展性強(qiáng),。對于每種規(guī)范,我們只需建立一個(gè)XSLT文件,。當(dāng)規(guī)范的版本升級時(shí),,只需修改相應(yīng)的XSLT文件即可。存在的缺點(diǎn)是無法用于動(dòng)態(tài)頁面的生成,。第二種方法與第一種方法恰恰相反,,能夠用于動(dòng)態(tài)頁面的生成,但是可擴(kuò)展性要差,。因此,,我們在實(shí)現(xiàn)時(shí)采用了第二種方法,并通過采用可配置管理策略來最大限度的提高可擴(kuò)展性和可維護(hù)性,。當(dāng)規(guī)范升級或加入新的規(guī)范時(shí),,大量的工作放在配置文件修改上,需要增加的代碼也不會(huì)影響已有的代碼,。轉(zhuǎn)換引擎采用了一個(gè)兩階段轉(zhuǎn)換算法:
(1)?第一階段
首先將一個(gè)抽象組件樹轉(zhuǎn)換成一個(gè)concrete組件樹,。抽象組件樹和Concrete組件樹都是對象樹,最大的不同在于Concrete組件樹與某種規(guī)范相關(guān),,結(jié)構(gòu)上與結(jié)果文件是一致的,。舉個(gè)例子,對于下面的一棵抽象組件樹,,轉(zhuǎn)換成符合CHTML的concrete組件樹是:

?

???????????????????????????????????????????? 圖4? 抽象組件樹

??? 在圖4中,,抽象組件樹上包括兩個(gè)BC,LabelComponent和TableComponent,。其中,,TableComponent是一個(gè)兩行三列的Row-Major的表格,。由于CHTML規(guī)范中不支持表格,因此需要將表格中的內(nèi)容用另一種組件來代替,,在本例中采用了List組件,。
(1) 第二階段
將Concrete節(jié)點(diǎn)樹轉(zhuǎn)換成結(jié)果文件,這需要將對象樹轉(zhuǎn)換成tag格式的字符串,,并寫入到文件中,。每個(gè)Concrete組件的屬性都是可配置的,在配置文件中設(shè)置了Concrete組件和tag間的映射關(guān)系,。另外,,每個(gè)Concrete組件都可以根據(jù)版本號獲得一個(gè)最優(yōu)的轉(zhuǎn)換器,將Concrete組件樹轉(zhuǎn)換成符合該版本的目標(biāo)文件,。
4 總結(jié)與展望
在本文的以上章節(jié)中,,我們介紹了VMSDT的架構(gòu)及主要的幾個(gè)功能模塊。為了保證設(shè)備無關(guān)性和應(yīng)用完整性,,我們引入了抽象頁面和數(shù)據(jù)邏輯編輯器,。此外,為了提高系統(tǒng)的可擴(kuò)展性和可維護(hù)性,,我們采用了基于XML的配置管理策略,。
但是目前的VMSDT版本還存在一些缺陷,如只能支持簡單的頁面設(shè)計(jì),,無法支持復(fù)雜的動(dòng)態(tài)頁面的設(shè)計(jì),,支持的規(guī)范僅限于WML,HDML和CHTML三種,,在以后的工作中,,我們將做進(jìn)一步改進(jìn)。

參考文獻(xiàn)
[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.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:[email protected],。