《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 面向業(yè)務(wù)的敏捷界面定制構(gòu)件的設(shè)計(jì)
面向業(yè)務(wù)的敏捷界面定制構(gòu)件的設(shè)計(jì)
來(lái)源:微型機(jī)與應(yīng)用2012年第7期
王 剛1,,程建平2
(1.山東師范大學(xué) 信息科學(xué)與工程學(xué)院,,山東 濟(jì)南 250014,; 2.中創(chuàng)軟件工程股份有限公司,,山
摘要: 針對(duì)傳統(tǒng)表單定制的缺點(diǎn),,提出一種面向業(yè)務(wù)的敏捷界面定制構(gòu)件Xcom-Vtemplet,。介紹了傳統(tǒng)表單實(shí)現(xiàn)模式及所存在問(wèn)題,,闡述了Xcom-Vtemplet構(gòu)件的體系結(jié)構(gòu),、設(shè)計(jì),、開發(fā)接口、相關(guān)技術(shù)以及具體實(shí)現(xiàn)應(yīng)用,。實(shí)踐表明,,通過(guò)應(yīng)用Xcom-Vtemplet構(gòu)件實(shí)現(xiàn)了信息項(xiàng)及界面布局的可視化靈活定制;具有即時(shí)調(diào)整,、即時(shí)生效的快速應(yīng)用能力,;便于二次開發(fā)及業(yè)務(wù)產(chǎn)品創(chuàng)新敏捷化,節(jié)省了項(xiàng)目資源;同時(shí)也大大減少了表單維護(hù)的工作量,,降低了表單維護(hù)的難度,。
Abstract:
Key words :

摘  要: 針對(duì)傳統(tǒng)表單定制的缺點(diǎn),提出一種面向業(yè)務(wù)敏捷界面定制構(gòu)件Xcom-Vtemplet,。介紹了傳統(tǒng)表單實(shí)現(xiàn)模式及所存在問(wèn)題,,闡述了Xcom-Vtemplet構(gòu)件的體系結(jié)構(gòu)、設(shè)計(jì),、開發(fā)接口,、相關(guān)技術(shù)以及具體實(shí)現(xiàn)應(yīng)用。實(shí)踐表明,,通過(guò)應(yīng)用Xcom-Vtemplet構(gòu)件實(shí)現(xiàn)了信息項(xiàng)及界面布局的可視化靈活定制,;具有即時(shí)調(diào)整、即時(shí)生效的快速應(yīng)用能力,;便于二次開發(fā)及業(yè)務(wù)產(chǎn)品創(chuàng)新敏捷化,,節(jié)省了項(xiàng)目資源;同時(shí)也大大減少了表單維護(hù)的工作量,,降低了表單維護(hù)的難度,。
關(guān)鍵詞: 表單定制;面向業(yè)務(wù),;Xcom-Vtemplet,;靈活;敏捷

 隨著計(jì)算機(jī)的廣泛應(yīng)用和網(wǎng)絡(luò)技術(shù)的快速發(fā)展,,企業(yè)的運(yùn)營(yíng)和管理發(fā)生了重大的變革,,企事業(yè)單位都在逐步實(shí)施和普及信息化系統(tǒng)。信息化系統(tǒng)中的大量業(yè)務(wù)都需要通過(guò)表單的形式來(lái)實(shí)現(xiàn),,但是傳統(tǒng)的表單模式由于表單的樣式固定,、開發(fā)周期長(zhǎng),并不能適應(yīng)信息化系統(tǒng)中業(yè)務(wù)需求的經(jīng)常性變更,。為了讓表單能夠適應(yīng)企業(yè)業(yè)務(wù)的靈活性需求,,表單定制的概念應(yīng)運(yùn)而生[1-2]。
本文為了解決傳統(tǒng)表單定制存在的問(wèn)題,,提出一種面向業(yè)務(wù)的表單定制構(gòu)件,。可以有效地彌補(bǔ)傳統(tǒng)表單定制的缺點(diǎn),,方便軟件開發(fā)人員開發(fā)軟件,,節(jié)省大量的項(xiàng)目資源。
1 傳統(tǒng)表單定制
 表單是國(guó)際通用的商業(yè)語(yǔ)言,,是結(jié)構(gòu)化的信息載體,,是連接企業(yè)與客戶的重要紐帶,,表單幾乎扮演著企業(yè)形象代言人的角色,。因此,,在應(yīng)用系統(tǒng)中,表單的開發(fā)十分重要[3],。
 傳統(tǒng)表單定制出現(xiàn)至今發(fā)揮了很大的作用,,在一定程度上幫助了開發(fā)人員更好地開發(fā)軟件,縮短了開發(fā)時(shí)間,,節(jié)省了大量的人力,、財(cái)力。傳統(tǒng)表單實(shí)現(xiàn)模式如圖1所示,。

1.1 面臨問(wèn)題
 隨著信息技術(shù)的飛速發(fā)展,,企業(yè)對(duì)應(yīng)用系統(tǒng)的開發(fā)要求越來(lái)越高,而傳統(tǒng)表單定制存在著大量的問(wèn)題:(1)不支持靈活的業(yè)務(wù)定制,。表單基本上是針對(duì)某個(gè)具體應(yīng)用進(jìn)行開發(fā)的,,并且當(dāng)業(yè)務(wù)需求發(fā)生變更時(shí),客戶沒(méi)有能力或者很少有能力進(jìn)行變更,;(2)不支持業(yè)務(wù)創(chuàng)新,。傳統(tǒng)表單定制運(yùn)用比較單一,很難在業(yè)務(wù)上實(shí)現(xiàn)創(chuàng)新,;(3)界面風(fēng)格不統(tǒng)一,。由于開發(fā)人員在開發(fā)軟件項(xiàng)目的時(shí)候會(huì)使用不同的表單定制來(lái)實(shí)現(xiàn)大量的業(yè)務(wù)定制,造成了在同一個(gè)項(xiàng)目中有可能會(huì)出現(xiàn)各種各樣的界面風(fēng)格,;(4)開發(fā)復(fù)雜性高,。開發(fā)人員可能會(huì)運(yùn)用大量不同的表單定制,增大了其復(fù)雜性,;(5)重用性差,。很多表單定制都是針對(duì)某一項(xiàng)目甚至某一業(yè)務(wù)而開發(fā)的,因此有可能導(dǎo)致大量表單定制浪費(fèi),,無(wú)法進(jìn)行良好的開發(fā)再?gòu)?fù)用,,重用性比較差。
而客戶的要求是表單定制工具能夠具備以下功能:滿足業(yè)務(wù)定制,,適應(yīng)業(yè)務(wù)變化,;穩(wěn)定運(yùn)行,維護(hù)方便,;按時(shí)上線,,滿足顯性業(yè)務(wù)需求。
1.2 解決思路
 針對(duì)傳統(tǒng)表單定制所表現(xiàn)出來(lái)的問(wèn)題,,提出的解決思路是進(jìn)行業(yè)務(wù)化定制:通過(guò)界面即時(shí)配置進(jìn)行需求開發(fā),,解決從需求到設(shè)計(jì)的快速切換問(wèn)題,,提高以數(shù)據(jù)為中心的應(yīng)用系統(tǒng)設(shè)計(jì)的質(zhì)量和效率。業(yè)務(wù)化表單實(shí)現(xiàn)模式如圖2所示,。


 面向業(yè)務(wù)表單定制將重點(diǎn)放在了業(yè)務(wù)域,,并不像傳統(tǒng)表單定制那樣將大量的精力放在技術(shù)域。業(yè)務(wù)部門根據(jù)需求復(fù)用模板,、進(jìn)行繪制表單,、檢測(cè)表單、部署表單和發(fā)布,,技術(shù)部門則進(jìn)行技術(shù)組件的開發(fā),。面向業(yè)務(wù)的表單定制最突出的特點(diǎn)在于面向業(yè)務(wù)、能夠復(fù)用,,軟件開發(fā)人員可以復(fù)用此構(gòu)件,,實(shí)現(xiàn)開發(fā)界面的統(tǒng)一風(fēng)格,使表單使用靈活方便,,減少開發(fā)成本,。
2 面向業(yè)務(wù)的敏捷界面定制構(gòu)件
 根據(jù)業(yè)務(wù)化表單的實(shí)現(xiàn)模式,本文提出了一種面向業(yè)務(wù)的敏捷界面定制構(gòu)件——Xcom-Vtemplet,。該構(gòu)件的核心設(shè)計(jì)理念是屏蔽繁復(fù)的技術(shù)細(xì)節(jié),,使開發(fā)者僅關(guān)注業(yè)務(wù)處理邏輯,實(shí)現(xiàn)快速構(gòu)建,。該構(gòu)件提供基于業(yè)務(wù)語(yǔ)言的靈活定制功能,;支持業(yè)務(wù)創(chuàng)新;開發(fā)頁(yè)面風(fēng)格統(tǒng)一,;降低了軟件開發(fā)難度,;提高重用性;所見(jiàn)即所得,,實(shí)現(xiàn)可視化,。
2.1 Xcom-Vtemplet構(gòu)件的體系結(jié)構(gòu)
 Xcom-Vtemplet構(gòu)件設(shè)計(jì)采用MDD模式,界面靈活動(dòng)態(tài)配置,,構(gòu)建敏捷界面,,能夠靈活應(yīng)對(duì)業(yè)務(wù)變化(隨時(shí)增加相應(yīng)信息項(xiàng))。其構(gòu)件體系結(jié)構(gòu)如圖3所示,。

 整個(gè)構(gòu)件內(nèi)部體系由元數(shù)據(jù)引擎,、表單運(yùn)行引擎和數(shù)據(jù)存儲(chǔ)引擎三部分構(gòu)成。元數(shù)據(jù)引擎滿足開發(fā)人員調(diào)用元數(shù)據(jù)對(duì)表單與業(yè)務(wù)對(duì)象進(jìn)行定義需要,;表單運(yùn)行引擎用來(lái)保證設(shè)計(jì)器所設(shè)計(jì)表單能正常,;數(shù)據(jù)存儲(chǔ)引擎用來(lái)保證設(shè)計(jì)的模板數(shù)據(jù)能進(jìn)行存儲(chǔ)。表單設(shè)計(jì)器通過(guò)服務(wù)管理接口與后臺(tái)交互,,可實(shí)現(xiàn)設(shè)計(jì)器的既有功能,。元數(shù)據(jù)庫(kù)存儲(chǔ)表單定義對(duì)象,、業(yè)務(wù)對(duì)象以及模板對(duì)象,供設(shè)計(jì)器通過(guò)元數(shù)據(jù)引擎使用,。設(shè)計(jì)器生成的XML代碼文件通過(guò)XML存儲(chǔ)適配器進(jìn)行存儲(chǔ),。
 Xcom-Vtemplet構(gòu)件基于Ajax技術(shù),使用戶能方便,、快捷,、可視化地對(duì)表單進(jìn)行設(shè)計(jì)。表單模板可由用戶通過(guò)可視化界面設(shè)計(jì),,該表單設(shè)計(jì)器提供各種控件,用戶可直接拖拽控件至設(shè)計(jì)域中,。將所有控件定義為一個(gè)對(duì)象列表,,用戶拖拽控件時(shí)在設(shè)計(jì)域中增加對(duì)應(yīng)的控件代碼。
2.2 Xcom-Vtemplet構(gòu)件的設(shè)計(jì)
?。?)定義表單模型
 表單模型是該構(gòu)件運(yùn)行的基礎(chǔ),,用來(lái)定義和描述表單的相關(guān)信息。其涵蓋表單相關(guān)的所有詳細(xì)信息,,這些構(gòu)成了表單模型的子模型,,主要包括:數(shù)據(jù)模型、頁(yè)面顯示控件模型,、頁(yè)面布局模型,、控件事件模型以及數(shù)據(jù)集模型。
 表單構(gòu)件操作這些模型,,以此為基礎(chǔ)設(shè)計(jì)構(gòu)建表單模板,、解析模板、傳輸并處理數(shù)據(jù),。模型設(shè)計(jì)的好壞影響表單構(gòu)件的運(yùn)行效率和易用性,,同時(shí)決定了開發(fā)表單構(gòu)件的難易程度。
?。?)設(shè)計(jì)表單模板
 表單模板是以表單模型為基礎(chǔ)的一個(gè)描述性的文件,,包含了一個(gè)表單的所有詳細(xì)信息。本表單定制構(gòu)件采用圖形化的所見(jiàn)即所得的方式,,使用拖拽的操作方式即可完成表單設(shè)計(jì),,并不需要手工編寫代碼,避免了手工編程的低效率,,同時(shí)降低了錯(cuò)誤率,。通過(guò)表單設(shè)計(jì)器代替手工編程完成的工作主要有兩大類:一類是需要使用拖拽的操作方式來(lái)完成,包括表單頁(yè)面顯示控件,、表單頁(yè)面顯示控件的布局以及表單的流程設(shè)計(jì),;另一類則是需要使用配置的方式來(lái)完成,,包括控件的屬性、控件的事件以及數(shù)據(jù)集[4],。
表單的設(shè)計(jì)是使用表單構(gòu)件進(jìn)行應(yīng)用開發(fā)的核心,,它決定了表單應(yīng)用進(jìn)行軟件開發(fā)和維護(hù)的工作量。好的表單設(shè)計(jì)器能達(dá)到事半功倍的作用,,而平庸的表單設(shè)計(jì)器則發(fā)揮不出應(yīng)有的作用,。
 (3)解析表單模板
 表單模板包含著表單的所有相關(guān)信息,,是表單應(yīng)用得以正常運(yùn)行的基礎(chǔ),。表單構(gòu)件根據(jù)表單模型自行定義表單模板的文件格式和內(nèi)容,要使表單應(yīng)用能夠正確運(yùn)行,,實(shí)現(xiàn)它具有的功能,,這就要求表單模板能夠正確有效地被解析,將表單模板的自定義語(yǔ)言轉(zhuǎn)換為能夠在應(yīng)用系統(tǒng)中正確運(yùn)行的有效宿主語(yǔ)言,。包括:解析表單頁(yè)面顯示控件,、控件的屬性、頁(yè)面顯示控件的布局,、頁(yè)面顯示控件上定義的事件以及數(shù)據(jù)集,。
 (4)輸出表單頁(yè)面
 表單頁(yè)面的內(nèi)容來(lái)自于表單模板,,表單頁(yè)面輸出的工作是在用戶請(qǐng)求表單時(shí)動(dòng)態(tài)完成,,即表單是動(dòng)態(tài)加載的。當(dāng)需要修改表單時(shí),,只需要使用表單設(shè)計(jì)器修改表單模板,,然后重新部署模板,并不需要手動(dòng)修改頁(yè)面的代碼,。在這種實(shí)現(xiàn)方式下,,頁(yè)面的代碼不會(huì)物理地存在應(yīng)用程序系統(tǒng)中。XML的讀取使用DOM技術(shù)實(shí)現(xiàn)[5],。輸出的表單頁(yè)面,,不僅僅包含表單的控件和表單的控件布局,同時(shí)還包含表單數(shù)據(jù)的模型,、表單控件的事件,、表單控件權(quán)限控制以及根據(jù)數(shù)據(jù)集的預(yù)填充數(shù)據(jù)。這些輸出的信息通過(guò)解析表單模板得到,。
2.3 Xcom-Vtemplet構(gòu)件的開發(fā)接口
 Xcom-Vtemplet構(gòu)件的開發(fā)接口如圖4所示,。圖中,bom為業(yè)務(wù)對(duì)象,,對(duì)各個(gè)元素進(jìn)行屬性配置,,實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ),,提高擴(kuò)展性;templet為模板對(duì)象,,對(duì)設(shè)計(jì)所調(diào)用的模板進(jìn)行屬性配置,,實(shí)現(xiàn)了靈活定制;bizService為遠(yuǎn)程調(diào)用,,保證構(gòu)件的穩(wěn)定運(yùn)行,。

 

 


 在設(shè)計(jì)器中,實(shí)現(xiàn)的界面為設(shè)計(jì)態(tài)中的界面,。為了方便用戶實(shí)現(xiàn)所見(jiàn)即所得的功能,,可以通過(guò)預(yù)覽界面進(jìn)行可視化。
2.4 Xcom-VTemplet構(gòu)件的功能及相關(guān)技術(shù)
2.4.1 功能

?。?)實(shí)現(xiàn)可視化靈活定制信息項(xiàng)及界面布局,,實(shí)現(xiàn)業(yè)務(wù)敏捷開發(fā)。
?。?)Vtemplet定制的模板具有即時(shí)調(diào)整、即時(shí)生效的快速應(yīng)用能力,。
?。?)簡(jiǎn)化傳統(tǒng)JSP頁(yè)面開發(fā),將模板的顯示和JSP頁(yè)面的交互進(jìn)行職責(zé)分離,,使頁(yè)面代碼更加簡(jiǎn)潔,。
 (4)便于二次開發(fā)及業(yè)務(wù)產(chǎn)品創(chuàng)新敏捷化以節(jié)省項(xiàng)目資源,。
2.4.2 相關(guān)技術(shù)
 Xcom-VTemplet構(gòu)件采用的Ajax技術(shù),,其中Dojo工具包在本構(gòu)件中運(yùn)用。Ajax(Asynchronous javascript and XML)是一種用于創(chuàng)建更好更快以及交互性更強(qiáng)的Web應(yīng)用程序的技術(shù),。Dojo(即Unified toolkit)是一個(gè)用JavaScript語(yǔ)言實(shí)現(xiàn)的開源DHTML工具包,。
 與傳統(tǒng)的Web應(yīng)用不同,Ajax采用的是一種異步交互的處理方式,,其處理過(guò)程如圖5所示[6],。

 Ajax相當(dāng)于在瀏覽器客戶端與服務(wù)器之間架設(shè)了一個(gè)橋梁、一個(gè)媒介,,在它的幫助下,,可以消除網(wǎng)絡(luò)交互過(guò)程中的處理—等待—處理—等待等缺陷。在處理過(guò)程中,,Web服務(wù)器響應(yīng)是將標(biāo)準(zhǔn)的且易于解析的XML格式的數(shù)據(jù)傳遞給Ajax,,然后再轉(zhuǎn)換成HTML頁(yè)面的格式,輔助CSS進(jìn)行顯示[6],。正是通過(guò)Ajax引擎,,服務(wù)器在返回?cái)?shù)據(jù)時(shí),,不需要更新整個(gè)網(wǎng)頁(yè),而只是更新網(wǎng)頁(yè)的一部分,,讓用戶感覺(jué)網(wǎng)頁(yè)的反應(yīng)更快,、更靈敏[7]。
Dojo體系主要由以下部分構(gòu)成:Base-dojo基礎(chǔ)核心,、Core-工具模塊,、Dijit-界面組件庫(kù)、DojoX-擴(kuò)展庫(kù),、Util-構(gòu)建和測(cè)試工具,。Dojo可以幫助開發(fā)人員開發(fā)大型的Ajax項(xiàng)目,并有助于構(gòu)建健壯的代碼,,節(jié)省開發(fā)時(shí)間,。Dojo很大程度上屏蔽了瀏覽器之間的差異性,因此不用擔(dān)心Web頁(yè)面是否在某些瀏覽器中可用,。利用Dojo提供的組件,,可以提升Web應(yīng)用程序的可用性和交互能力。
3 面向業(yè)務(wù)的敏捷界面定制構(gòu)件的應(yīng)用
 本構(gòu)件基于業(yè)務(wù)語(yǔ)言,,這為在各種構(gòu)件以及項(xiàng)目中復(fù)用奠定了基礎(chǔ),,使開發(fā)者僅需關(guān)注業(yè)務(wù)處理邏輯,就能夠?qū)崿F(xiàn)業(yè)務(wù)敏捷構(gòu)建,,項(xiàng)目開發(fā)人員可以方便快捷地將此構(gòu)件jar包安裝部署即可使用,。Xcom-Vtemplet構(gòu)件的應(yīng)用如圖6所示。
3.1 Xcom-Vtemplet構(gòu)件在構(gòu)件中的應(yīng)用
 Xcom-Vtemplet構(gòu)件成功運(yùn)用到了合同構(gòu)件,、押品構(gòu)件,、客戶構(gòu)件、物聯(lián)網(wǎng)構(gòu)件,、自定義查詢構(gòu)件中,。開發(fā)的構(gòu)件如果想要實(shí)現(xiàn)表單定制無(wú)需自開發(fā),開發(fā)人員復(fù)用Xcom-Vtemplet構(gòu)件,,即可通過(guò)業(yè)務(wù)對(duì)象管理對(duì)其調(diào)用,。Xcom-Vtemplet構(gòu)件內(nèi)的模板解析類通過(guò)與瀏覽器進(jìn)行數(shù)據(jù)交互可以生成頁(yè)面展示模板文件,同時(shí)頁(yè)面展示模板文件也可以通過(guò)模板解析類展現(xiàn)到瀏覽器中,。模板設(shè)計(jì)器可以將業(yè)務(wù)對(duì)象模板文件展現(xiàn)到瀏覽器中,,同時(shí)開發(fā)人員可將設(shè)計(jì)的可視化的界面生成業(yè)務(wù)對(duì)象模板文件?;跇I(yè)務(wù)語(yǔ)言的Xcom-Vtemplet構(gòu)件使軟件開發(fā)人員實(shí)現(xiàn)了方便,、快捷、可視化的表單定制。
3.2 Xcom-Vtemplet構(gòu)件在項(xiàng)目中的應(yīng)用
 Xcom-Vtemplet構(gòu)件已成功運(yùn)用到了交通銀行金融租賃,、光大銀行金融租賃,、廣發(fā)信貸系統(tǒng)等項(xiàng)目中。各個(gè)項(xiàng)目可直接通過(guò)業(yè)務(wù)對(duì)象管理復(fù)用Xcom-Vtemplet構(gòu)件,,也可以通過(guò)復(fù)用其他的構(gòu)件間接復(fù)用Xcom-Vtemplet構(gòu)件,。其實(shí)現(xiàn)過(guò)程與在構(gòu)件中的應(yīng)用類似。
 本文從實(shí)際需求出發(fā),,設(shè)計(jì)開發(fā)了面向業(yè)務(wù)的敏捷界面定制構(gòu)件,。通過(guò)表單設(shè)計(jì)器,用戶可以自行設(shè)計(jì)修改表單模板,,實(shí)現(xiàn)用戶對(duì)表單的頁(yè)面動(dòng)態(tài)靈活的配置,,靈活應(yīng)對(duì)業(yè)務(wù)變化,很好地滿足了用戶的需求,。面向業(yè)務(wù)的敏捷界面定制構(gòu)件可以滿足業(yè)務(wù)敏捷開發(fā)的市場(chǎng)競(jìng)爭(zhēng)要求,,把串行開發(fā)變?yōu)椴⑿虚_發(fā)。業(yè)務(wù)化定制有效減小了技術(shù)人員和業(yè)務(wù)人員之間的鴻溝,,不再過(guò)分依賴資源,,分離了技術(shù)工作和業(yè)務(wù)工作,降低了總體開發(fā)成本,。
參考文獻(xiàn)
[1] 楊俊杰.面向SaaS應(yīng)用的表單定制平臺(tái)的研究與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),,2011.
[2] 謝鑫軍,何志均.一種單一表單工作流系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)[J].計(jì)算機(jī)工程,,1998,24(9):53-55.
[3] 唐文忠,,莫偉棟.面向領(lǐng)域的模型驅(qū)動(dòng)智能表單系統(tǒng)的框架設(shè)計(jì)[J].北京航空航天大學(xué)學(xué)報(bào),,2007,33(9):1086-1089,,1126.
[4] 徐瑞軍.基于XForms的所見(jiàn)即所得的電子表單工具設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué),,2008.
[5] NAKHIMOVSKY A,MYERS T. Professional Java XML programming with servlets and JSP[M]. Birmingham: Peer Information Inc.,, 1999:201-284.
[6] 張桂元,,賈燕楓,姜波.征服Ajax—Web2.0快速入門與項(xiàng)目實(shí)踐(Java)[M].北京:人民郵電出版社,,2007:1-4.
[7] 張洪斌.Java程序員的AJAX技術(shù)開發(fā)[M].北京:機(jī)械工業(yè)出版社,,2007.

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