摘 要: 針對(duì)傳統(tǒng)表單定制的缺點(diǎn),提出一種面向業(yè)務(wù)的敏捷界面定制構(gòu)件Xcom-Vtemplet。介紹了傳統(tǒng)表單實(shí)現(xiàn)模式及所存在問題,闡述了Xcom-Vtemplet構(gòu)件的體系結(jié)構(gòu)、設(shè)計(jì)、開發(fā)接口、相關(guān)技術(shù)以及具體實(shí)現(xiàn)應(yīng)用。實(shí)踐表明,通過應(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)營和管理發(fā)生了重大的變革,企事業(yè)單位都在逐步實(shí)施和普及信息化系統(tǒng)。信息化系統(tǒng)中的大量業(yè)務(wù)都需要通過表單的形式來實(shí)現(xiàn),但是傳統(tǒng)的表單模式由于表單的樣式固定、開發(fā)周期長,并不能適應(yīng)信息化系統(tǒng)中業(yè)務(wù)需求的經(jīng)常性變更。為了讓表單能夠適應(yīng)企業(yè)業(yè)務(wù)的靈活性需求,表單定制的概念應(yīng)運(yùn)而生[1-2]。
本文為了解決傳統(tǒng)表單定制存在的問題,提出一種面向業(yè)務(wù)的表單定制構(gòu)件??梢杂行У貜浹a(bǔ)傳統(tǒng)表單定制的缺點(diǎn),方便軟件開發(fā)人員開發(fā)軟件,節(jié)省大量的項(xiàng)目資源。
1 傳統(tǒng)表單定制
表單是國際通用的商業(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 面臨問題
隨著信息技術(shù)的飛速發(fā)展,企業(yè)對(duì)應(yīng)用系統(tǒng)的開發(fā)要求越來越高,而傳統(tǒng)表單定制存在著大量的問題:(1)不支持靈活的業(yè)務(wù)定制。表單基本上是針對(duì)某個(gè)具體應(yīng)用進(jìn)行開發(fā)的,并且當(dāng)業(yè)務(wù)需求發(fā)生變更時(shí),客戶沒有能力或者很少有能力進(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ì)使用不同的表單定制來實(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),無法進(jìn)行良好的開發(fā)再復(fù)用,重用性比較差。
而客戶的要求是表單定制工具能夠具備以下功能:滿足業(yè)務(wù)定制,適應(yīng)業(yè)務(wù)變化;穩(wěn)定運(yùn)行,維護(hù)方便;按時(shí)上線,滿足顯性業(yè)務(wù)需求。
1.2 解決思路
針對(duì)傳統(tǒng)表單定制所表現(xiàn)出來的問題,提出的解決思路是進(jìn)行業(yè)務(wù)化定制:通過界面即時(shí)配置進(jìn)行需求開發(fā),解決從需求到設(shè)計(jì)的快速切換問題,提高以數(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è)務(wù)創(chuàng)新;開發(fā)頁面風(fēng)格統(tǒng)一;降低了軟件開發(fā)難度;提高重用性;所見即所得,實(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)行引擎用來保證設(shè)計(jì)器所設(shè)計(jì)表單能正常;數(shù)據(jù)存儲(chǔ)引擎用來保證設(shè)計(jì)的模板數(shù)據(jù)能進(jìn)行存儲(chǔ)。表單設(shè)計(jì)器通過服務(wù)管理接口與后臺(tái)交互,可實(shí)現(xiàn)設(shè)計(jì)器的既有功能。元數(shù)據(jù)庫存儲(chǔ)表單定義對(duì)象、業(yè)務(wù)對(duì)象以及模板對(duì)象,供設(shè)計(jì)器通過元數(shù)據(jù)引擎使用。設(shè)計(jì)器生成的XML代碼文件通過XML存儲(chǔ)適配器進(jìn)行存儲(chǔ)。
Xcom-Vtemplet構(gòu)件基于Ajax技術(shù),使用戶能方便、快捷、可視化地對(duì)表單進(jìn)行設(shè)計(jì)。表單模板可由用戶通過可視化界面設(shè)計(jì),該表單設(shè)計(jì)器提供各種控件,用戶可直接拖拽控件至設(shè)計(jì)域中。將所有控件定義為一個(gè)對(duì)象列表,用戶拖拽控件時(shí)在設(shè)計(jì)域中增加對(duì)應(yīng)的控件代碼。
2.2 Xcom-Vtemplet構(gòu)件的設(shè)計(jì)
(1)定義表單模型
表單模型是該構(gòu)件運(yùn)行的基礎(chǔ),用來定義和描述表單的相關(guān)信息。其涵蓋表單相關(guān)的所有詳細(xì)信息,這些構(gòu)成了表單模型的子模型,主要包括:數(shù)據(jù)模型、頁面顯示控件模型、頁面布局模型、控件事件模型以及數(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)件采用圖形化的所見即所得的方式,使用拖拽的操作方式即可完成表單設(shè)計(jì),并不需要手工編寫代碼,避免了手工編程的低效率,同時(shí)降低了錯(cuò)誤率。通過表單設(shè)計(jì)器代替手工編程完成的工作主要有兩大類:一類是需要使用拖拽的操作方式來完成,包括表單頁面顯示控件、表單頁面顯示控件的布局以及表單的流程設(shè)計(jì);另一類則是需要使用配置的方式來完成,包括控件的屬性、控件的事件以及數(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)有的作用。
?。?)解析表單模板
表單模板包含著表單的所有相關(guān)信息,是表單應(yīng)用得以正常運(yùn)行的基礎(chǔ)。表單構(gòu)件根據(jù)表單模型自行定義表單模板的文件格式和內(nèi)容,要使表單應(yīng)用能夠正確運(yùn)行,實(shí)現(xiàn)它具有的功能,這就要求表單模板能夠正確有效地被解析,將表單模板的自定義語言轉(zhuǎn)換為能夠在應(yīng)用系統(tǒng)中正確運(yùn)行的有效宿主語言。包括:解析表單頁面顯示控件、控件的屬性、頁面顯示控件的布局、頁面顯示控件上定義的事件以及數(shù)據(jù)集。
(4)輸出表單頁面
表單頁面的內(nèi)容來自于表單模板,表單頁面輸出的工作是在用戶請(qǐng)求表單時(shí)動(dòng)態(tài)完成,即表單是動(dòng)態(tài)加載的。當(dāng)需要修改表單時(shí),只需要使用表單設(shè)計(jì)器修改表單模板,然后重新部署模板,并不需要手動(dòng)修改頁面的代碼。在這種實(shí)現(xiàn)方式下,頁面的代碼不會(huì)物理地存在應(yīng)用程序系統(tǒng)中。XML的讀取使用DOM技術(shù)實(shí)現(xiàn)[5]。輸出的表單頁面,不僅僅包含表單的控件和表單的控件布局,同時(shí)還包含表單數(shù)據(jù)的模型、表單控件的事件、表單控件權(quán)限控制以及根據(jù)數(shù)據(jù)集的預(yù)填充數(shù)據(jù)。這些輸出的信息通過解析表單模板得到。
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)所見即所得的功能,可以通過預(yù)覽界面進(jìn)行可視化。
2.4 Xcom-VTemplet構(gòu)件的功能及相關(guān)技術(shù)
2.4.1 功能
(1)實(shí)現(xiàn)可視化靈活定制信息項(xiàng)及界面布局,實(shí)現(xiàn)業(yè)務(wù)敏捷開發(fā)。
?。?)Vtemplet定制的模板具有即時(shí)調(diào)整、即時(shí)生效的快速應(yīng)用能力。
(3)簡化傳統(tǒng)JSP頁面開發(fā),將模板的顯示和JSP頁面的交互進(jìn)行職責(zé)分離,使頁面代碼更加簡潔。
(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語言實(shí)現(xiàn)的開源DHTML工具包。
與傳統(tǒng)的Web應(yīng)用不同,Ajax采用的是一種異步交互的處理方式,其處理過程如圖5所示[6]。
Ajax相當(dāng)于在瀏覽器客戶端與服務(wù)器之間架設(shè)了一個(gè)橋梁、一個(gè)媒介,在它的幫助下,可以消除網(wǎng)絡(luò)交互過程中的處理—等待—處理—等待等缺陷。在處理過程中,Web服務(wù)器響應(yīng)是將標(biāo)準(zhǔn)的且易于解析的XML格式的數(shù)據(jù)傳遞給Ajax,然后再轉(zhuǎn)換成HTML頁面的格式,輔助CSS進(jìn)行顯示[6]。正是通過Ajax引擎,服務(wù)器在返回?cái)?shù)據(jù)時(shí),不需要更新整個(gè)網(wǎng)頁,而只是更新網(wǎng)頁的一部分,讓用戶感覺網(wǎng)頁的反應(yīng)更快、更靈敏[7]。
Dojo體系主要由以下部分構(gòu)成:Base-dojo基礎(chǔ)核心、Core-工具模塊、Dijit-界面組件庫、DojoX-擴(kuò)展庫、Util-構(gòu)建和測(cè)試工具。Dojo可以幫助開發(fā)人員開發(fā)大型的Ajax項(xiàng)目,并有助于構(gòu)建健壯的代碼,節(jié)省開發(fā)時(shí)間。Dojo很大程度上屏蔽了瀏覽器之間的差異性,因此不用擔(dān)心Web頁面是否在某些瀏覽器中可用。利用Dojo提供的組件,可以提升Web應(yīng)用程序的可用性和交互能力。
3 面向業(yè)務(wù)的敏捷界面定制構(gòu)件的應(yīng)用
本構(gòu)件基于業(yè)務(wù)語言,這為在各種構(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)表單定制無需自開發(fā),開發(fā)人員復(fù)用Xcom-Vtemplet構(gòu)件,即可通過業(yè)務(wù)對(duì)象管理對(duì)其調(diào)用。Xcom-Vtemplet構(gòu)件內(nèi)的模板解析類通過與瀏覽器進(jìn)行數(shù)據(jù)交互可以生成頁面展示模板文件,同時(shí)頁面展示模板文件也可以通過模板解析類展現(xiàn)到瀏覽器中。模板設(shè)計(jì)器可以將業(yè)務(wù)對(duì)象模板文件展現(xiàn)到瀏覽器中,同時(shí)開發(fā)人員可將設(shè)計(jì)的可視化的界面生成業(yè)務(wù)對(duì)象模板文件?;跇I(yè)務(wù)語言的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)目可直接通過業(yè)務(wù)對(duì)象管理復(fù)用Xcom-Vtemplet構(gòu)件,也可以通過復(fù)用其他的構(gòu)件間接復(fù)用Xcom-Vtemplet構(gòu)件。其實(shí)現(xiàn)過程與在構(gòu)件中的應(yīng)用類似。
本文從實(shí)際需求出發(fā),設(shè)計(jì)開發(fā)了面向業(yè)務(wù)的敏捷界面定制構(gòu)件。通過表單設(shè)計(jì)器,用戶可以自行設(shè)計(jì)修改表單模板,實(shí)現(xiàn)用戶對(duì)表單的頁面動(dòng)態(tài)靈活的配置,靈活應(yīng)對(duì)業(yè)務(wù)變化,很好地滿足了用戶的需求。面向業(yè)務(wù)的敏捷界面定制構(gòu)件可以滿足業(yè)務(wù)敏捷開發(fā)的市場(chǎng)競(jìng)爭要求,把串行開發(fā)變?yōu)椴⑿虚_發(fā)。業(yè)務(wù)化定制有效減小了技術(shù)人員和業(yè)務(wù)人員之間的鴻溝,不再過分依賴資源,分離了技術(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的所見即所得的電子表單工具設(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.