李永燕 張風民 楊云國
(上海鐵大電信設備有限公司,200331,上?!蔚谝蛔髡?工程師)
隨著城市軌道交通的網(wǎng)絡化發(fā)展,站點迅速增多,運營公司與車站,以及車站與車站之間的聯(lián)系日益頻繁,急需建立一套快速、有效、安全的電子公文系統(tǒng)。基于B/S(瀏覽器/服務器)結(jié)構(gòu)的、可定制工作流程的電子公文系統(tǒng),適用于任何需要電子公文系統(tǒng)的行業(yè),能夠有效地解決城市軌道交通行業(yè)所面臨的問題。
電子公文是“以數(shù)字形式存儲于磁帶、磁盤、光盤等載體,依賴計算機系統(tǒng)閱讀、處理并可在通信網(wǎng)絡上傳輸?shù)墓摹?。電子公文應具有真實性、可靠性、完整性、可用性。使用電子公文系統(tǒng)可以完成公文的擬稿、核稿、簽發(fā)、簽收、批示等工作,可實現(xiàn)無紙化公文流轉(zhuǎn)、異地辦公,能極大地提高日常管理工作的質(zhì)量和效率,同時又便于存儲、查詢和歸類。
電子公文最重要的功能就是確保信息完整、可靠地流轉(zhuǎn)。公文流轉(zhuǎn)過程通常有兩種實現(xiàn)方法:①通過編程來固化流程邏輯。采用這種方法不需要借助于專業(yè)的軟件就能實現(xiàn);其缺點是:當工作流程發(fā)生變化時,需要修改程序、編譯和重新部署系統(tǒng),用戶難以自己完成這項工作。②使用工作流軟件建立流程模型。其流程的驅(qū)動由工作流完成,當工作流程發(fā)生變化時,只需要修改流程描述文件就可完成。該方式克服了用程序控制流程的復雜性,但是工作流軟件復雜,對使用者的專業(yè)技術(shù)要求高,同樣需要程序員才能完成。
工作流是一類能夠完全或者部分自動執(zhí)行的過程,它根據(jù)一系列過程規(guī)則、文檔、信息或任務,能夠在不同的執(zhí)行者之間進行傳遞與執(zhí)行。使用工作流可以改進和優(yōu)化業(yè)務流程,提高業(yè)務工作效率;并具有更好的業(yè)務過程控制,提高服務質(zhì)量,提高業(yè)務流程的柔性。
目前的工作流產(chǎn)品有很多種,既有商業(yè)版本的又有開源組織支持的免費軟件。本系統(tǒng)采用Jboss組織支持的開源軟件jBPM(Java Business Process Management)。jBPM是一個支持復雜企業(yè)級應用、可擴展的工作流管理系統(tǒng),支持直觀的XML(可擴展標記語言)來表示商業(yè)流程圖的術(shù)語。比如,任務、異步通信的等待狀態(tài)、定時器、自動操作等。將這些操作組合在一起,jBPM就有了強大的和易擴展的控制流程機制。對于企業(yè)應用來說,jBPM對運行環(huán)境的依賴性較小,既可作為Java庫來使用,也可用在吞吐量極為關(guān)鍵的J2EE集群應用服務器環(huán)境中。jBPM可以同任何關(guān)系型數(shù)據(jù)庫配置,可以部署在任何應用服務器上。jBPM提供了開發(fā)流程、發(fā)布流程、執(zhí)行流程、管理角色任務、協(xié)調(diào)Web Service等功能。
電子公文的軟件結(jié)構(gòu)一般可分為C/S(客戶機/服務器)和B/S(瀏覽器/服務器)兩種結(jié)構(gòu)。二者相比,B/S結(jié)構(gòu)在數(shù)據(jù)的安全性、一致性、實時性、溯源性,以及服務響應及時性、網(wǎng)絡應用限制、投入成本、硬件投資保護等方面,都有比較大的優(yōu)勢。另外,電子公文系統(tǒng)一般與辦公網(wǎng)同時使用,而辦公網(wǎng)基本上都使用B/S結(jié)構(gòu),所以本系統(tǒng)選用B/S結(jié)構(gòu)。
jBPM本身沒有提供可視化軟件編寫流程,但由于jBPM采用XML描述流程,所以可以使用文本編輯器來編寫XML程序。這對用戶的要求非常高,需要用戶掌握jBPM的語法及流程發(fā)布方法,普通用戶自己不能完成。電子公文系統(tǒng)是基于 B/S架構(gòu)的網(wǎng)頁程序,可以在網(wǎng)頁上以所見即所得的方式編寫流程,對用戶屏蔽XML的復雜性。
要實現(xiàn)流程的可視化編寫,必須提供描述流程的各種基本元素。這些元素應該以直觀的方式繪制,也就是自定義的圖形。瀏覽器只支持用HTML(超文本標記語言)描述的對象,而這些對象與工作流的要求相去甚遠,所以必須使用其它技術(shù)來繪制圖形。目前在網(wǎng)頁上繪制流程有3種可行的方法,它們分別是ActiveX控件、Java Applet及基于 XML的 VML(Vector Markup Language,矢量可標記)語言。
ActiveX控件是一個開放的集成平臺,為開發(fā)人員、用戶和Web生產(chǎn)商提供了一個快速而簡便的在Internet和Intranet創(chuàng)建程序集成和內(nèi)容的方法。使用ActiveX編寫工作流控件,可以做到界面美觀、功能強大;缺點是ActiveX控件需要在客戶端安裝程序,需要降低瀏覽器的安全設置,存在安全隱患。
Applet是用Java語言編寫的程序組件,可以在任何支持Java程序的瀏覽器中運行。其優(yōu)點是功能操作方便;缺點是客戶端需要下載并安裝Java Runtime Environment(JRE)和工作流 Applet,并且不同的JRE版本容易出現(xiàn)沖突,運行速度較慢,與網(wǎng)頁界面風格不統(tǒng)一。
VML是由微軟公司開發(fā)的XML詞表,表示方法簡單,易于擴展;支持廣泛的矢量圖形特征,基于相連接的直線和曲線描述路徑。在VM L中,shape和group是兩個基本的元素。這兩個元素定義了VML的全部結(jié)構(gòu)。shape描述一個矢量圖形元素,而group用來將這些圖形結(jié)合起來,這樣它們就可以作為一個整體進行處理。VM L對客戶端要求很低,IE5.0以上版本都可以支持,不需要安裝任何插件,運行速度非常快。
根據(jù)上述分析,決定在本系統(tǒng)中選用VM L繪制流程。用VML繪制流程的圖示例見圖1。實現(xiàn)方法如下。
(1)定義圖形庫。根據(jù)電子公文需要的節(jié)點類型和連接線,選擇不同形狀的圖形,定義不同類型的圖形的顏色。
(2)定義不同類型的節(jié)點的鼠標事件,實現(xiàn)圖形拖曳及設定任務的屬性等功能。
(3)對用戶繪制的流程進行合理性檢查,不合理的要提示用戶修改。
(4)使用jPDL(Java工作流定義語言)描述圖形之間的關(guān)系,并提交到應用服務器。
(5)服務器端在接收到客戶端的jPDL后,經(jīng)過解析、分解結(jié)點、轉(zhuǎn)換格式、更新數(shù)據(jù)庫等幾個步驟,即可將流程發(fā)布成功。
在圖1的流程圖示例中,圓形標識(序號1)是整個流程的開始結(jié)點,橢圓形標識(序號8)是流程的結(jié)束結(jié)點,見圖1所示。
圖1 用VML繪制流程的圖示例
電子公文功能模型圖見圖2。圖中詳細描述了電子公文和工作流之間的數(shù)據(jù)交換過程。工作流引擎是整個系統(tǒng)的核心。過程定義工具繪制的流程經(jīng)過引擎的處理,轉(zhuǎn)化為工作流能識別的格式,達到驅(qū)動流程流轉(zhuǎn)的目的。jBPM工作流可以使用各種關(guān)系型數(shù)據(jù)庫存儲數(shù)據(jù),業(yè)務上的表單數(shù)據(jù)也可以交由jBPM存儲,減少開發(fā)的工作量。系統(tǒng)的超級管理員可以為不同的用戶賦予不同的角色來控制權(quán)限,保護數(shù)據(jù)的安全。公文中的各種待辦任務可以通過手機短信或即時通信(IM)軟件通知用戶,這樣用戶無需登錄系統(tǒng)即可知道需要做的工作。
圖2 電子公文功能模型圖
(1)采用Web界面、面向?qū)ο蟮恼Z言以及模塊化的程序設計,操作簡單方便。
(2)采用表示層、邏輯層和數(shù)據(jù)層3層結(jié)構(gòu)模型,系統(tǒng)結(jié)構(gòu)清晰、分工明確,有利于后期的維護和升級。
(3)采用圖形化的流程設計器,可以實現(xiàn)流程的靈活定制修改,可以定制節(jié)點不同用戶的權(quán)限,而無需修改源程序。設計器簡單、直觀,可以形象地描述出流程的走向,自動與程序邏輯建立關(guān)聯(lián)。
(4)系統(tǒng)運行無需第三方插件支持,使得整套系統(tǒng)易于部署、遷移,對客戶機也無特殊要求。
可定制流程的電子公文系統(tǒng),能夠適應內(nèi)部組織架構(gòu)的變動和臨時調(diào)整。電子公文系統(tǒng)的應用,有助于城市軌道交通運營公司提高日常工作效率,對城市軌道交通運營公司的管理創(chuàng)新工作能夠起到更大的支持作用。
[1]GB/T 19667.1—2005基于XM L的電子公文格式規(guī)范[S].