《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > VMSDT——一個(gè)設(shè)備無(wú)關(guān)的移動(dòng)電子商務(wù)開(kāi)發(fā)平臺(tái)
VMSDT——一個(gè)設(shè)備無(wú)關(guān)的移動(dòng)電子商務(wù)開(kāi)發(fā)平臺(tái)
劉英群 王克宏
摘要: 用于構(gòu)建設(shè)備無(wú)關(guān)的基于Web的移動(dòng)電子商務(wù)的系統(tǒng)化集成開(kāi)發(fā)平臺(tái)。
Abstract:
Key words :

  摘  要: 用于構(gòu)建設(shè)備無(wú)關(guān)的基于Web的移動(dòng)電子商務(wù)的系統(tǒng)化集成開(kāi)發(fā)平臺(tái)。

  關(guān)鍵詞: 設(shè)備無(wú)關(guān)  移動(dòng)電子商務(wù)  無(wú)線標(biāo)記語(yǔ)言WML

 

  隨著無(wú)線通信的快速發(fā)展和手持設(shè)備用戶的持續(xù)激增,無(wú)線技術(shù)與電子商務(wù)的結(jié)合,即移動(dòng)電子商務(wù)得到了越來(lái)越多的關(guān)注。

  目前移動(dòng)電子商務(wù)的實(shí)現(xiàn)主要基于以下三種方式:SMS、Web和J2ME。其中基于SMS的移動(dòng)服務(wù)占據(jù)了主導(dǎo)地位,基于J2ME的服務(wù)則在快速發(fā)展之中。但是基于Web的移動(dòng)服務(wù)在未來(lái)會(huì)成為非常重要的移動(dòng)服務(wù)實(shí)現(xiàn)方式。首先,它能夠?yàn)槭殖衷O(shè)備用戶提供豐富的Web資源;其次,它允許開(kāi)發(fā)者最大限度地利用現(xiàn)有資源;最后,服務(wù)開(kāi)發(fā)者仍然可以沿用已有的開(kāi)發(fā)模式。然而,構(gòu)造基于Web的服務(wù)還存在一定的困難。從技術(shù)的角度來(lái)分析,主要體現(xiàn)在以下二個(gè)方面。

  (1)設(shè)備多樣性

  目前的手持設(shè)備多種多樣,從laptop到smart phone,它們?cè)谟?jì)算能力、顯示能力等方面具有很大差異。設(shè)備多樣性的存在為移動(dòng)商務(wù)系統(tǒng)的構(gòu)造帶來(lái)很大困難,其中設(shè)備語(yǔ)言的多樣性所帶來(lái)的困難最為突出。由于不同的設(shè)備使用不同的設(shè)備語(yǔ)言,其服務(wù)實(shí)現(xiàn)的方式不同,因此同一服務(wù)就需要進(jìn)行多次設(shè)計(jì)、多個(gè)實(shí)現(xiàn)并維護(hù)多套代碼。這樣將會(huì)造成服務(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ì)算模型的角度來(lái)分析,只需重新開(kāi)發(fā)其中的表現(xiàn)層,而充分利用現(xiàn)有的業(yè)務(wù)層和數(shù)據(jù)層的資源。

基于上述分析,這里設(shè)計(jì)并開(kāi)發(fā)了一個(gè)移動(dòng)電子商務(wù)開(kāi)發(fā)平臺(tái)VMSDT。該平臺(tái)提供一整套工具,能夠幫助移動(dòng)商務(wù)服務(wù)開(kāi)發(fā)人員以可視化的方式簡(jiǎn)單快速地開(kāi)發(fā)出支持多種設(shè)備語(yǔ)言的移動(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è)備分開(kāi),從而提供設(shè)備無(wú)關(guān)的服務(wù)。

1 系統(tǒng)介紹

  VMSDT是一個(gè)可視化的移動(dòng)電子商務(wù)集成開(kāi)發(fā)工具。該工具集頁(yè)面設(shè)計(jì)、頁(yè)面預(yù)覽和代碼生成等功能為一體,幫助服務(wù)設(shè)計(jì)人員以可視化的方式簡(jiǎn)單、快速地創(chuàng)建出完整的移動(dòng)Web應(yīng)用。圖1是VMSDT的系統(tǒng)架構(gòu)圖。

 

  系統(tǒng)中的IEE和轉(zhuǎn)換器是二個(gè)核心部分。IEE是一個(gè)可視化的集成開(kāi)發(fā)環(huán)境,能夠幫助設(shè)計(jì)人員在不熟悉具體設(shè)備語(yǔ)言的條件下以可視化的方式完成M-Commerce服務(wù)開(kāi)發(fā)。轉(zhuǎn)換器用于結(jié)果文件生成,根據(jù)用戶的設(shè)計(jì),轉(zhuǎn)換引擎調(diào)用底層包生成適用于不同客戶端的動(dòng)態(tài)和靜態(tài)頁(yè)面。底層包是一個(gè)底層軟件包,提供一套API,供轉(zhuǎn)換引擎調(diào)用。

  配置管理服務(wù)為IEE和轉(zhuǎn)換器,可提供最大限度的可配置和可擴(kuò)展性。系統(tǒng)的可擴(kuò)展性對(duì)于解決設(shè)備語(yǔ)言多樣性問(wèn)題極為關(guān)鍵。目前不同的廠家所生產(chǎn)的手持設(shè)備采用了不同的設(shè)備語(yǔ)言,比較常見(jiàn)的有WML、CHTML、HDML等;另外,各種設(shè)備語(yǔ)言的版本也在不斷升級(jí)之中。這就要求系統(tǒng)能夠以較小的代價(jià)快速適應(yīng)設(shè)備語(yǔ)言標(biāo)準(zhǔn)的變化,以保證所開(kāi)發(fā)的服務(wù)能夠支持新的設(shè)備。本系統(tǒng)采用了基于XML的配置管理策略,保證了當(dāng)設(shè)備語(yǔ)言更新時(shí),只需修改XML文件及少量程序即可升級(jí)整個(gè)系統(tǒng)。

  下面將結(jié)合VMSDT的特色重點(diǎn)介紹其中幾個(gè)主要部分的設(shè)計(jì)與實(shí)現(xiàn)。

2 設(shè)計(jì)與實(shí)現(xiàn)

  這里將重點(diǎn)介紹三個(gè)模塊的設(shè)計(jì)與實(shí)現(xiàn)。其中數(shù)據(jù)邏輯編輯器能夠?qū)σ延械臉I(yè)務(wù)邏輯建模,既保證了對(duì)已有資源的充分利用,也使得通過(guò)VMSDT設(shè)計(jì)生成的應(yīng)用是完整應(yīng)用;頁(yè)面編輯器支持頁(yè)面組件屬性的可配置性,最大限度地提高了設(shè)計(jì)的靈活性和可擴(kuò)展性;轉(zhuǎn)換器支持靜態(tài)頁(yè)面和動(dòng)態(tài)頁(yè)面的轉(zhuǎn)換,拓展了系統(tǒng)的應(yīng)用范圍。

2.1 數(shù)據(jù)邏輯編輯器

  從需求的角度來(lái)說(shuō),用戶設(shè)計(jì)的頁(yè)面可分為靜態(tài)頁(yè)面和動(dòng)態(tài)頁(yè)面二種。靜態(tài)頁(yè)面在設(shè)計(jì)時(shí)生成,動(dòng)態(tài)頁(yè)面在運(yùn)行時(shí)生成。本系統(tǒng)同時(shí)支持二種頁(yè)面的設(shè)計(jì)。通常,動(dòng)態(tài)頁(yè)面所做的處理邏輯主要有以下二種:

  (1)從數(shù)據(jù)源中獲取數(shù)據(jù),獲取的數(shù)據(jù)用于構(gòu)造一個(gè)頁(yè)面。

  (2)獲取用戶提交的數(shù)據(jù),調(diào)用后端處理邏輯做進(jìn)一步處理,根據(jù)處理結(jié)果將頁(yè)面導(dǎo)航到不同的頁(yè)面上。

  實(shí)際上,在三層架構(gòu)模型中,作為表現(xiàn)層的動(dòng)態(tài)頁(yè)面一般不會(huì)直接存取數(shù)據(jù),而是通過(guò)業(yè)務(wù)邏輯層獲取或操作數(shù)據(jù)。為了支持動(dòng)態(tài)頁(yè)面的設(shè)計(jì),需要對(duì)業(yè)務(wù)邏輯層中的處理邏輯進(jìn)行建模,稱為數(shù)據(jù)邏輯模型。需要說(shuō)明的是,數(shù)據(jù)邏輯編輯器并不支持業(yè)務(wù)邏輯的創(chuàng)建,而只是對(duì)已創(chuàng)建的業(yè)務(wù)邏輯建模。這樣做最大的好處在于可以充分利用已有的系統(tǒng),避免重復(fù)開(kāi)發(fā)。

數(shù)據(jù)邏輯模型是對(duì)業(yè)務(wù)邏輯層中數(shù)據(jù)處理程序接口的描述,所描述的內(nèi)容包括以下4個(gè)部分:

  (1)基本描述:描述應(yīng)用程序的類型、接口模式等。

  (2)操作:描述接口的類及方法名。

  (3)輸入:描述方法的輸入?yún)?shù)及每個(gè)參數(shù)的數(shù)據(jù)類型。

    (4)輸出:描述方法的輸出結(jié)果及類型。

  其中,輸入輸出的描述最為復(fù)雜,尤其當(dāng)輸入?yún)?shù)和輸出結(jié)果的數(shù)據(jù)類型不是簡(jiǎn)單類型時(shí)。這時(shí),還需要對(duì)涉及到的數(shù)據(jù)對(duì)象建模,構(gòu)造DataBean。這里以圖2為例做詳細(xì)說(shuō)明。

  圖2所示為上述第一種處理邏輯的典型處理模式,其中JSP需要獲取該操作所輸出的DataBean,并將Bean中的內(nèi)容顯示在頁(yè)面上。對(duì)于這個(gè)操作,數(shù)據(jù)邏輯模型不僅要描述Operation,還需要對(duì)DataBean的屬性及類型進(jìn)行描述。

 

2.2 頁(yè)面編輯器

  頁(yè)面編輯器是一個(gè)樹(shù)形結(jié)構(gòu)編輯器,用于構(gòu)造抽象頁(yè)面。抽象頁(yè)面與具體的設(shè)備語(yǔ)言規(guī)范無(wú)關(guān),稱之為設(shè)備無(wú)關(guān)的頁(yè)面。這些抽象頁(yè)面最終可以使用轉(zhuǎn)換器轉(zhuǎn)換成與某種設(shè)備相關(guān)的頁(yè)面。在本系統(tǒng)中,每個(gè)頁(yè)面由不同類型的Component組成。Component間構(gòu)成樹(shù)形邏輯結(jié)構(gòu),如圖3所示。

  由圖3可以看出,Component分為3類:

  (1)Orgnization Component(OC)。OC是構(gòu)成一個(gè)物理頁(yè)的基本單位。包括PageComponent和ContainerComponent,其中PageComponent可以包含多個(gè)ContainerComponent。之所以采用這種Page-Container的二級(jí)結(jié)構(gòu),主要是為了適應(yīng)手持設(shè)備屏幕較小的特點(diǎn)。在有些頁(yè)面標(biāo)記語(yǔ)言中也同樣考慮到這個(gè)因素,如無(wú)線標(biāo)記語(yǔ)言WML采用了Deck-Card二級(jí)結(jié)構(gòu),把一頁(yè)內(nèi)容分成多個(gè)Card來(lái)顯示。這樣每個(gè)Card的內(nèi)容較少,便于手持設(shè)備用戶瀏覽。每個(gè)OC包含多個(gè)Composite Component。

  (2)Composit Component(CC)。CC是結(jié)構(gòu)組件,主要包括2種:ParagraphComponent和FormComponent。CC可以包括多個(gè)Basic Component,且CC之間可以相互嵌套。

  (3)Basic Component(BC)。BC是構(gòu)成頁(yè)面的基本單位。本系統(tǒng)支持多種BC,如TextComponent、TableComponent、ChoiceComponent等。

2.3 轉(zhuǎn)換器

  轉(zhuǎn)換器是整個(gè)系統(tǒng)的核心模塊,需要將頁(yè)面編輯器中產(chǎn)生的抽象頁(yè)面轉(zhuǎn)換成符合某種規(guī)范的目標(biāo)頁(yè)面。本系統(tǒng)支持靜態(tài)頁(yè)面和動(dòng)態(tài)頁(yè)面的轉(zhuǎn)換。生成的結(jié)果文件包括靜態(tài)Web頁(yè)面(如WML、CHTML頁(yè)面等)和動(dòng)態(tài)JSP頁(yè)面(如Java代碼等)。

  目前,用于手持設(shè)備的Web頁(yè)面標(biāo)記語(yǔ)言還沒(méi)有統(tǒng)一的標(biāo)準(zhǔn),使用較為廣泛的有CHTML、WML等。另外,不同的手持設(shè)備即使標(biāo)記語(yǔ)言相同,版本也可能不同。因此,擴(kuò)展性是轉(zhuǎn)換器設(shè)計(jì)中需要考慮的最重要的問(wèn)題。在設(shè)計(jì)過(guò)程中,提出了二種轉(zhuǎn)換方案:

  (1)xml+xslt。通過(guò)使用XSLT將資源文件轉(zhuǎn)換成結(jié)果文件。

  (2)API調(diào)用。設(shè)計(jì)一套底層包,轉(zhuǎn)換引擎通過(guò)方法調(diào)用將抽象頁(yè)面轉(zhuǎn)換成結(jié)果文件。

  第一種方法的優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,可擴(kuò)展性強(qiáng)。對(duì)于每種規(guī)范,只需建立一個(gè)XSLT文件。當(dāng)規(guī)范的版本升級(jí)時(shí),只需修改相應(yīng)的XSLT文件即可。存在的缺點(diǎn)是無(wú)法用于動(dòng)態(tài)頁(yè)面的生成。第二種方法與第一種方法恰恰相反,它能夠用于動(dòng)態(tài)頁(yè)面的生成,但是可擴(kuò)展性要差。因此,本系統(tǒng)在實(shí)現(xiàn)時(shí)采用了第二種方法,并通過(guò)采用可配置管理策略來(lái)最大限度地提高可擴(kuò)展性和可維護(hù)性。當(dāng)規(guī)范升級(jí)或加入新的規(guī)范時(shí),大量的工作放在配置文件修改上,需要增加的代碼也不會(huì)影響已有的代碼。轉(zhuǎn)換引擎采用了一個(gè)二階段轉(zhuǎn)換算法。

  (1)第一階段。首先將一個(gè)抽象組件樹(shù)轉(zhuǎn)換成一個(gè)Concrete組件樹(shù)。抽象組件樹(shù)和Concrete組件樹(shù)都是對(duì)象樹(shù),最大的不同在于Concrete組件樹(shù)與某種規(guī)范相關(guān),結(jié)構(gòu)上與結(jié)果文件是一致的。圖4所示為一棵抽象組件樹(shù)轉(zhuǎn)換成符合CHTML的Concrete組件樹(shù)的實(shí)例。

 

  在圖4中,抽象組件樹(shù)上包括2個(gè)BC:LabelComponent和TableComponent。其中,TableComponent是一個(gè)二行三列的Row-Major表格。由于CHTML規(guī)范中不支持表格,因此需要將表格中的內(nèi)容用另一種組件來(lái)代替。本例采用了List組件。

  (2)第二階段。將Concrete節(jié)點(diǎn)樹(shù)轉(zhuǎn)換成結(jié)果文件,這需要將對(duì)象樹(shù)轉(zhuǎn)換成tag格式的字符串,并寫(xiě)入到文件中。每個(gè)Concrete組件的屬性都是可配置的,在配置文件中設(shè)置了Concrete組件和tag間的映射關(guān)系。另外,每個(gè)Concrete組件都可以根據(jù)版本號(hào)獲得一個(gè)最優(yōu)的轉(zhuǎn)換器,將Concrete組件樹(shù)轉(zhuǎn)換成符合該版本的目標(biāo)文件。

3  總  結(jié)

  本文介紹了VMSDT的架構(gòu)及幾個(gè)主要功能模塊。為了保證設(shè)備無(wú)關(guān)性和應(yīng)用完整性,引入了抽象頁(yè)面和數(shù)據(jù)邏輯編輯器。此外,為了提高系統(tǒng)的可擴(kuò)展性和可維護(hù)性,還采用了基于XML的配置管理策略。

  但是目前的VMSDT版本還存在一些缺陷。如只能支持簡(jiǎn)單的頁(yè)面設(shè)計(jì)、無(wú)法支持復(fù)雜的動(dòng)態(tài)頁(yè)面的設(shè)計(jì),支持的規(guī)范僅限于WML、HDML和CHTML。在以后的工作中,這些都有待進(jìn)一步改進(jìn)。

 

參考文獻(xiàn)

1  Varshney U.Mobile commerce:Applications and technologies.Atu-torial,In:ACM International Conference on Mobile Computing and Networking(MobiCom),2001

2  WAP Forum.Wireless Markup Language Specification Version 2.0.http://www.wapforum.org/tech/documents/

WAP-238-WML-20010626-p.pdf.

3  Kamada T.Compact HTML for Small Information Appliances.http://www.w3.org/TR/1998/NOTE-compact-

HTML-19980209/.

4  Abrams M,Phanouriou C.UIML:An XML Language for Building Device-Independent User Interfaces.

http://www.harmonia.com/resources/xml99Final.pdf.

5  Microsoft.Mobile Web Development:Comparing the Mobile InternetToolkit to XSLT.http://msdn.microsoft.

com/library/default.asp?url=/library/en-us/dnmitt%a/html/mmitvxslt.asp.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。