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