摘 要: 針對傳統(tǒng)表單定制的缺點,提出一種面向業(yè)務的敏捷界面定制構件Xcom-Vtemplet。介紹了傳統(tǒng)表單實現(xiàn)模式及所存在問題,闡述了Xcom-Vtemplet構件的體系結構、設計、開發(fā)接口、相關技術以及具體實現(xiàn)應用。實踐表明,通過應用Xcom-Vtemplet構件實現(xiàn)了信息項及界面布局的可視化靈活定制;具有即時調(diào)整、即時生效的快速應用能力;便于二次開發(fā)及業(yè)務產(chǎn)品創(chuàng)新敏捷化,節(jié)省了項目資源;同時也大大減少了表單維護的工作量,降低了表單維護的難度。
關鍵詞: 表單定制;面向業(yè)務;Xcom-Vtemplet;靈活;敏捷
隨著計算機的廣泛應用和網(wǎng)絡技術的快速發(fā)展,企業(yè)的運營和管理發(fā)生了重大的變革,企事業(yè)單位都在逐步實施和普及信息化系統(tǒng)。信息化系統(tǒng)中的大量業(yè)務都需要通過表單的形式來實現(xiàn),但是傳統(tǒng)的表單模式由于表單的樣式固定、開發(fā)周期長,并不能適應信息化系統(tǒng)中業(yè)務需求的經(jīng)常性變更。為了讓表單能夠適應企業(yè)業(yè)務的靈活性需求,表單定制的概念應運而生[1-2]。
本文為了解決傳統(tǒng)表單定制存在的問題,提出一種面向業(yè)務的表單定制構件??梢杂行У貜浹a傳統(tǒng)表單定制的缺點,方便軟件開發(fā)人員開發(fā)軟件,節(jié)省大量的項目資源。
1 傳統(tǒng)表單定制
表單是國際通用的商業(yè)語言,是結構化的信息載體,是連接企業(yè)與客戶的重要紐帶,表單幾乎扮演著企業(yè)形象代言人的角色。因此,在應用系統(tǒng)中,表單的開發(fā)十分重要[3]。
傳統(tǒng)表單定制出現(xiàn)至今發(fā)揮了很大的作用,在一定程度上幫助了開發(fā)人員更好地開發(fā)軟件,縮短了開發(fā)時間,節(jié)省了大量的人力、財力。傳統(tǒng)表單實現(xiàn)模式如圖1所示。
1.1 面臨問題
隨著信息技術的飛速發(fā)展,企業(yè)對應用系統(tǒng)的開發(fā)要求越來越高,而傳統(tǒng)表單定制存在著大量的問題:(1)不支持靈活的業(yè)務定制。表單基本上是針對某個具體應用進行開發(fā)的,并且當業(yè)務需求發(fā)生變更時,客戶沒有能力或者很少有能力進行變更;(2)不支持業(yè)務創(chuàng)新。傳統(tǒng)表單定制運用比較單一,很難在業(yè)務上實現(xiàn)創(chuàng)新;(3)界面風格不統(tǒng)一。由于開發(fā)人員在開發(fā)軟件項目的時候會使用不同的表單定制來實現(xiàn)大量的業(yè)務定制,造成了在同一個項目中有可能會出現(xiàn)各種各樣的界面風格;(4)開發(fā)復雜性高。開發(fā)人員可能會運用大量不同的表單定制,增大了其復雜性;(5)重用性差。很多表單定制都是針對某一項目甚至某一業(yè)務而開發(fā)的,因此有可能導致大量表單定制浪費,無法進行良好的開發(fā)再復用,重用性比較差。
而客戶的要求是表單定制工具能夠具備以下功能:滿足業(yè)務定制,適應業(yè)務變化;穩(wěn)定運行,維護方便;按時上線,滿足顯性業(yè)務需求。
1.2 解決思路
針對傳統(tǒng)表單定制所表現(xiàn)出來的問題,提出的解決思路是進行業(yè)務化定制:通過界面即時配置進行需求開發(fā),解決從需求到設計的快速切換問題,提高以數(shù)據(jù)為中心的應用系統(tǒng)設計的質(zhì)量和效率。業(yè)務化表單實現(xiàn)模式如圖2所示。
面向業(yè)務表單定制將重點放在了業(yè)務域,并不像傳統(tǒng)表單定制那樣將大量的精力放在技術域。業(yè)務部門根據(jù)需求復用模板、進行繪制表單、檢測表單、部署表單和發(fā)布,技術部門則進行技術組件的開發(fā)。面向業(yè)務的表單定制最突出的特點在于面向業(yè)務、能夠復用,軟件開發(fā)人員可以復用此構件,實現(xiàn)開發(fā)界面的統(tǒng)一風格,使表單使用靈活方便,減少開發(fā)成本。
2 面向業(yè)務的敏捷界面定制構件
根據(jù)業(yè)務化表單的實現(xiàn)模式,本文提出了一種面向業(yè)務的敏捷界面定制構件——Xcom-Vtemplet。該構件的核心設計理念是屏蔽繁復的技術細節(jié),使開發(fā)者僅關注業(yè)務處理邏輯,實現(xiàn)快速構建。該構件提供基于業(yè)務語言的靈活定制功能;支持業(yè)務創(chuàng)新;開發(fā)頁面風格統(tǒng)一;降低了軟件開發(fā)難度;提高重用性;所見即所得,實現(xiàn)可視化。
2.1 Xcom-Vtemplet構件的體系結構
Xcom-Vtemplet構件設計采用MDD模式,界面靈活動態(tài)配置,構建敏捷界面,能夠靈活應對業(yè)務變化(隨時增加相應信息項)。其構件體系結構如圖3所示。
整個構件內(nèi)部體系由元數(shù)據(jù)引擎、表單運行引擎和數(shù)據(jù)存儲引擎三部分構成。元數(shù)據(jù)引擎滿足開發(fā)人員調(diào)用元數(shù)據(jù)對表單與業(yè)務對象進行定義需要;表單運行引擎用來保證設計器所設計表單能正常;數(shù)據(jù)存儲引擎用來保證設計的模板數(shù)據(jù)能進行存儲。表單設計器通過服務管理接口與后臺交互,可實現(xiàn)設計器的既有功能。元數(shù)據(jù)庫存儲表單定義對象、業(yè)務對象以及模板對象,供設計器通過元數(shù)據(jù)引擎使用。設計器生成的XML代碼文件通過XML存儲適配器進行存儲。
Xcom-Vtemplet構件基于Ajax技術,使用戶能方便、快捷、可視化地對表單進行設計。表單模板可由用戶通過可視化界面設計,該表單設計器提供各種控件,用戶可直接拖拽控件至設計域中。將所有控件定義為一個對象列表,用戶拖拽控件時在設計域中增加對應的控件代碼。
2.2 Xcom-Vtemplet構件的設計
?。?)定義表單模型
表單模型是該構件運行的基礎,用來定義和描述表單的相關信息。其涵蓋表單相關的所有詳細信息,這些構成了表單模型的子模型,主要包括:數(shù)據(jù)模型、頁面顯示控件模型、頁面布局模型、控件事件模型以及數(shù)據(jù)集模型。
表單構件操作這些模型,以此為基礎設計構建表單模板、解析模板、傳輸并處理數(shù)據(jù)。模型設計的好壞影響表單構件的運行效率和易用性,同時決定了開發(fā)表單構件的難易程度。
?。?)設計表單模板
表單模板是以表單模型為基礎的一個描述性的文件,包含了一個表單的所有詳細信息。本表單定制構件采用圖形化的所見即所得的方式,使用拖拽的操作方式即可完成表單設計,并不需要手工編寫代碼,避免了手工編程的低效率,同時降低了錯誤率。通過表單設計器代替手工編程完成的工作主要有兩大類:一類是需要使用拖拽的操作方式來完成,包括表單頁面顯示控件、表單頁面顯示控件的布局以及表單的流程設計;另一類則是需要使用配置的方式來完成,包括控件的屬性、控件的事件以及數(shù)據(jù)集[4]。
表單的設計是使用表單構件進行應用開發(fā)的核心,它決定了表單應用進行軟件開發(fā)和維護的工作量。好的表單設計器能達到事半功倍的作用,而平庸的表單設計器則發(fā)揮不出應有的作用。
?。?)解析表單模板
表單模板包含著表單的所有相關信息,是表單應用得以正常運行的基礎。表單構件根據(jù)表單模型自行定義表單模板的文件格式和內(nèi)容,要使表單應用能夠正確運行,實現(xiàn)它具有的功能,這就要求表單模板能夠正確有效地被解析,將表單模板的自定義語言轉換為能夠在應用系統(tǒng)中正確運行的有效宿主語言。包括:解析表單頁面顯示控件、控件的屬性、頁面顯示控件的布局、頁面顯示控件上定義的事件以及數(shù)據(jù)集。
?。?)輸出表單頁面
表單頁面的內(nèi)容來自于表單模板,表單頁面輸出的工作是在用戶請求表單時動態(tài)完成,即表單是動態(tài)加載的。當需要修改表單時,只需要使用表單設計器修改表單模板,然后重新部署模板,并不需要手動修改頁面的代碼。在這種實現(xiàn)方式下,頁面的代碼不會物理地存在應用程序系統(tǒng)中。XML的讀取使用DOM技術實現(xiàn)[5]。輸出的表單頁面,不僅僅包含表單的控件和表單的控件布局,同時還包含表單數(shù)據(jù)的模型、表單控件的事件、表單控件權限控制以及根據(jù)數(shù)據(jù)集的預填充數(shù)據(jù)。這些輸出的信息通過解析表單模板得到。
2.3 Xcom-Vtemplet構件的開發(fā)接口
Xcom-Vtemplet構件的開發(fā)接口如圖4所示。圖中,bom為業(yè)務對象,對各個元素進行屬性配置,實現(xiàn)數(shù)據(jù)的存儲,提高擴展性;templet為模板對象,對設計所調(diào)用的模板進行屬性配置,實現(xiàn)了靈活定制;bizService為遠程調(diào)用,保證構件的穩(wěn)定運行。
在設計器中,實現(xiàn)的界面為設計態(tài)中的界面。為了方便用戶實現(xiàn)所見即所得的功能,可以通過預覽界面進行可視化。
2.4 Xcom-VTemplet構件的功能及相關技術
2.4.1 功能
?。?)實現(xiàn)可視化靈活定制信息項及界面布局,實現(xiàn)業(yè)務敏捷開發(fā)。
?。?)Vtemplet定制的模板具有即時調(diào)整、即時生效的快速應用能力。
(3)簡化傳統(tǒng)JSP頁面開發(fā),將模板的顯示和JSP頁面的交互進行職責分離,使頁面代碼更加簡潔。
?。?)便于二次開發(fā)及業(yè)務產(chǎn)品創(chuàng)新敏捷化以節(jié)省項目資源。
2.4.2 相關技術
Xcom-VTemplet構件采用的Ajax技術,其中Dojo工具包在本構件中運用。Ajax(Asynchronous javascript and XML)是一種用于創(chuàng)建更好更快以及交互性更強的Web應用程序的技術。Dojo(即Unified toolkit)是一個用JavaScript語言實現(xiàn)的開源DHTML工具包。
與傳統(tǒng)的Web應用不同,Ajax采用的是一種異步交互的處理方式,其處理過程如圖5所示[6]。
Ajax相當于在瀏覽器客戶端與服務器之間架設了一個橋梁、一個媒介,在它的幫助下,可以消除網(wǎng)絡交互過程中的處理—等待—處理—等待等缺陷。在處理過程中,Web服務器響應是將標準的且易于解析的XML格式的數(shù)據(jù)傳遞給Ajax,然后再轉換成HTML頁面的格式,輔助CSS進行顯示[6]。正是通過Ajax引擎,服務器在返回數(shù)據(jù)時,不需要更新整個網(wǎng)頁,而只是更新網(wǎng)頁的一部分,讓用戶感覺網(wǎng)頁的反應更快、更靈敏[7]。
Dojo體系主要由以下部分構成:Base-dojo基礎核心、Core-工具模塊、Dijit-界面組件庫、DojoX-擴展庫、Util-構建和測試工具。Dojo可以幫助開發(fā)人員開發(fā)大型的Ajax項目,并有助于構建健壯的代碼,節(jié)省開發(fā)時間。Dojo很大程度上屏蔽了瀏覽器之間的差異性,因此不用擔心Web頁面是否在某些瀏覽器中可用。利用Dojo提供的組件,可以提升Web應用程序的可用性和交互能力。
3 面向業(yè)務的敏捷界面定制構件的應用
本構件基于業(yè)務語言,這為在各種構件以及項目中復用奠定了基礎,使開發(fā)者僅需關注業(yè)務處理邏輯,就能夠實現(xiàn)業(yè)務敏捷構建,項目開發(fā)人員可以方便快捷地將此構件jar包安裝部署即可使用。Xcom-Vtemplet構件的應用如圖6所示。
3.1 Xcom-Vtemplet構件在構件中的應用
Xcom-Vtemplet構件成功運用到了合同構件、押品構件、客戶構件、物聯(lián)網(wǎng)構件、自定義查詢構件中。開發(fā)的構件如果想要實現(xiàn)表單定制無需自開發(fā),開發(fā)人員復用Xcom-Vtemplet構件,即可通過業(yè)務對象管理對其調(diào)用。Xcom-Vtemplet構件內(nèi)的模板解析類通過與瀏覽器進行數(shù)據(jù)交互可以生成頁面展示模板文件,同時頁面展示模板文件也可以通過模板解析類展現(xiàn)到瀏覽器中。模板設計器可以將業(yè)務對象模板文件展現(xiàn)到瀏覽器中,同時開發(fā)人員可將設計的可視化的界面生成業(yè)務對象模板文件。基于業(yè)務語言的Xcom-Vtemplet構件使軟件開發(fā)人員實現(xiàn)了方便、快捷、可視化的表單定制。
3.2 Xcom-Vtemplet構件在項目中的應用
Xcom-Vtemplet構件已成功運用到了交通銀行金融租賃、光大銀行金融租賃、廣發(fā)信貸系統(tǒng)等項目中。各個項目可直接通過業(yè)務對象管理復用Xcom-Vtemplet構件,也可以通過復用其他的構件間接復用Xcom-Vtemplet構件。其實現(xiàn)過程與在構件中的應用類似。
本文從實際需求出發(fā),設計開發(fā)了面向業(yè)務的敏捷界面定制構件。通過表單設計器,用戶可以自行設計修改表單模板,實現(xiàn)用戶對表單的頁面動態(tài)靈活的配置,靈活應對業(yè)務變化,很好地滿足了用戶的需求。面向業(yè)務的敏捷界面定制構件可以滿足業(yè)務敏捷開發(fā)的市場競爭要求,把串行開發(fā)變?yōu)椴⑿虚_發(fā)。業(yè)務化定制有效減小了技術人員和業(yè)務人員之間的鴻溝,不再過分依賴資源,分離了技術工作和業(yè)務工作,降低了總體開發(fā)成本。
參考文獻
[1] 楊俊杰.面向SaaS應用的表單定制平臺的研究與實現(xiàn)[D].北京:北京郵電大學,2011.
[2] 謝鑫軍,何志均.一種單一表單工作流系統(tǒng)的設計和實現(xiàn)[J].計算機工程,1998,24(9):53-55.
[3] 唐文忠,莫偉棟.面向領域的模型驅動智能表單系統(tǒng)的框架設計[J].北京航空航天大學學報,2007,33(9):1086-1089,1126.
[4] 徐瑞軍.基于XForms的所見即所得的電子表單工具設計與實現(xiàn)[D].北京:北京交通大學,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快速入門與項目實踐(Java)[M].北京:人民郵電出版社,2007:1-4.
[7] 張洪斌.Java程序員的AJAX技術開發(fā)[M].北京:機械工業(yè)出版社,2007.