馬亞鋒
(寶雞職業(yè)技術(shù)學(xué)院 陜西 寶雞 721013)
在信息化社會(huì)飛速發(fā)展的今天,電子文件已經(jīng)廣泛、深入的滲透和影響著人類(lèi)社會(huì)生活的各個(gè)方面,成為現(xiàn)代社會(huì)信息資源的主要組成部分。在不久的將來(lái),電子文件將成為政府、企事業(yè)信息資源的主要承載體和表現(xiàn)形式。電子文檔管理系統(tǒng)正是在這樣的背景下產(chǎn)生的。利用電子文檔管理系統(tǒng)可以很輕松的實(shí)現(xiàn)電子文檔的查看、檢索、借閱、收藏、審批等諸多功能,切實(shí)解決了企業(yè)在電子文檔管理過(guò)程中所出現(xiàn)的很多難題[1]。
但是,在電子文檔管理系統(tǒng)中,電子文檔的借閱環(huán)節(jié)一直是程序設(shè)計(jì)的難點(diǎn)。究其原因,主要是因?yàn)殡娮游臋n在借閱過(guò)程中需要經(jīng)過(guò)多個(gè)領(lǐng)導(dǎo)審批環(huán)節(jié),而這些環(huán)節(jié)需要多個(gè)復(fù)雜的程序跳轉(zhuǎn)指令來(lái)完成,在程序設(shè)計(jì)中非常繁瑣,同時(shí)在系統(tǒng)使用過(guò)程中,如果沒(méi)有專(zhuān)業(yè)人員進(jìn)行系統(tǒng)的維護(hù)和管理,也很難正常使用。
工作流最早是在生產(chǎn)和辦公領(lǐng)域中針對(duì)日常生活工作中固定有序的活動(dòng)提出的一個(gè)概念,主要就是為了將一個(gè)工作分解成多個(gè)任務(wù)和角色,依據(jù)特定的規(guī)則來(lái)執(zhí)行,針對(duì)這些任務(wù)對(duì)其進(jìn)行監(jiān)控,從而能夠達(dá)到提高工作效率、有效合理的管理業(yè)務(wù)等目的。而工作流引擎就是在工作流系統(tǒng)中為其提供各種不同信息的傳遞、角色分工等解決方案。它可以根據(jù)實(shí)際的流程開(kāi)發(fā)出穩(wěn)定的、模塊化結(jié)構(gòu)化的程序邏輯,并根據(jù)實(shí)際情況做出相應(yīng)的變化[2]。
工作流技術(shù)的引入,使得原本比較復(fù)雜的程序設(shè)計(jì)轉(zhuǎn)變?yōu)榱鞒坦芾砗涂刂?,盡管工作流模塊需要單獨(dú)創(chuàng)建,但是完成后的系統(tǒng)無(wú)論在日常的使用還是在系統(tǒng)的管理和維護(hù)方面都大大的降低了成本,只需要普通的職員就可以輕松的完成系統(tǒng)的管理,在應(yīng)用方面也非常的靈活。
在電子文檔管理系統(tǒng)中,一般存在多個(gè)用戶(hù),他們的權(quán)限各不相同。例如普通用戶(hù)可以實(shí)現(xiàn)檔案的檢索、查詢(xún)、收藏、借閱等功能;部門(mén)級(jí)領(lǐng)導(dǎo)可以進(jìn)行檔案的審核并簽署審核意見(jiàn),查看已審核、待審核以及歷史檔案和實(shí)時(shí)檔案,對(duì)檔案進(jìn)行相應(yīng)的密級(jí)選擇;中心領(lǐng)導(dǎo)可以實(shí)現(xiàn)所有檔案、審核流程查看等所有的功能,全面了解當(dāng)前公司檔案管理現(xiàn)狀,統(tǒng)籌規(guī)劃。圖1是一個(gè)假定的檔案借閱流程,根據(jù)圖1我們可以看出各用戶(hù)之間的關(guān)系,當(dāng)普通用戶(hù)發(fā)起檔案借閱時(shí),就需要領(lǐng)導(dǎo)的審批。
在這個(gè)例子中可以看出,針對(duì)普通的職員,需要能夠隨時(shí)隨地的進(jìn)行檔案的瀏覽、查看、借閱等操作,而領(lǐng)導(dǎo)層則需要實(shí)時(shí)的掌握檔案借閱的借閱情況以及能夠及時(shí)的進(jìn)行檔案的審批工作。同時(shí),針對(duì)不同的企業(yè)、不同的流程,需要一個(gè)專(zhuān)門(mén)的流程管理程序,對(duì)流程進(jìn)行增加、刪除、管理等操作。
圖1 檔案借閱流程圖Fig.1 Flow chart of archives library
針對(duì)軟件的需求分析可以看出,在整個(gè)借閱環(huán)節(jié)需要兩個(gè)部分,即不同用戶(hù)實(shí)時(shí)的瀏覽、借閱、審批等功能部分和流程增減、管理等功能部分。針對(duì)用戶(hù)功能部分由于用戶(hù)需要隨時(shí)隨地的進(jìn)行操作,因此采用B/S模式最為合適,將界面設(shè)計(jì)為網(wǎng)頁(yè)的形式,用戶(hù)隨時(shí)登陸到網(wǎng)頁(yè)中,根據(jù)自身的權(quán)限進(jìn)行相關(guān)的操作;針對(duì)流程管理維護(hù)部分,由于可能涉及到企業(yè)機(jī)密,可以采用C/S模式來(lái)完成,由專(zhuān)門(mén)人員登錄到企業(yè)內(nèi)部網(wǎng)中,對(duì)流程進(jìn)行相關(guān)的管理操作。
流程應(yīng)用端完成的是不同用戶(hù)實(shí)時(shí)借閱、瀏覽、審批等功能部分。在這個(gè)部分設(shè)計(jì)中,采用B/S架構(gòu)非常適合。B/S即瀏覽器/服務(wù)器模式,將用戶(hù)瀏覽界面設(shè)計(jì)為網(wǎng)頁(yè)形式,用戶(hù)可以通過(guò)互聯(lián)網(wǎng)(Internet)隨時(shí)隨地的對(duì)本單位的各類(lèi)檔案進(jìn)行瀏覽、查詢(xún)、審批等操作,大大增強(qiáng)了軟件的靈活性和實(shí)用性,滿(mǎn)足了用戶(hù)的需求。
在這里可以采用JSP+Servlet+Tomcat+Hibernate+Oracle來(lái)實(shí)現(xiàn)[3]。
JSP(全稱(chēng) JavaServer?Pages)是由 Sun Microsystems公司參與共同創(chuàng)建的一種可響應(yīng)客戶(hù)端請(qǐng)求,動(dòng)態(tài)生成HTML、XML或其他格式文檔的Web網(wǎng)頁(yè)的技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)主要采用的就是Java語(yǔ)言來(lái)實(shí)現(xiàn)腳本的編輯。采用JSP開(kāi)發(fā)的Web應(yīng)用既能夠在Linux下運(yùn)行,也能夠在其他的操作系統(tǒng)中運(yùn)行,非常靈活。
Servlet(Server Applet),全稱(chēng) Java Servlet,是采用 Java 語(yǔ)言編寫(xiě)的服務(wù)器端程序。它主要的功能就在于能夠進(jìn)行交互式的瀏覽和數(shù)據(jù)的修改,能夠動(dòng)態(tài)的生成Web頁(yè)內(nèi)容,一般來(lái)說(shuō),Servlet主要用來(lái)擴(kuò)展基于HTTP協(xié)議的Web服務(wù)器。
Hibernate是一種基于JDBC的主流持久化框架,是Java語(yǔ)言下的對(duì)象關(guān)系映射解決方案。它用來(lái)把對(duì)象映射到基于SQL的關(guān)系模型結(jié)構(gòu)中去,為面向?qū)ο蟮念I(lǐng)域模型到關(guān)系型數(shù)據(jù)庫(kù)的映射提供了一個(gè)方便應(yīng)用的框架,它也是JBOSS所擁有的一個(gè)JAVA開(kāi)發(fā)中最為廣泛應(yīng)用的數(shù)據(jù)持久層框架。它的出現(xiàn)將大量的從事數(shù)據(jù)持久層相關(guān)編程工作的軟件解放了出來(lái),它不僅負(fù)責(zé)JAVA類(lèi)和數(shù)據(jù)類(lèi)型到數(shù)據(jù)庫(kù)表和SQL數(shù)據(jù)類(lèi)型的映射,還提供了面向?qū)ο蟮臄?shù)據(jù)檢索查詢(xún)機(jī)制。
流程應(yīng)用端[4]實(shí)際上就是根據(jù)客戶(hù)的需求制作一個(gè)能夠供不同用戶(hù)權(quán)限登陸的網(wǎng)站,企業(yè)應(yīng)該擁有一臺(tái)自己的服務(wù)器,將企業(yè)的文化、理念等展現(xiàn)出來(lái),同時(shí)不同權(quán)限的內(nèi)部員工登陸之后,可以看到企業(yè)內(nèi)部的檔案,同時(shí)對(duì)其進(jìn)行相應(yīng)權(quán)限的操作。根據(jù)圖1可以看出,這里出現(xiàn)了普通用戶(hù)和領(lǐng)導(dǎo)用戶(hù),可以根據(jù)不同用戶(hù)權(quán)限設(shè)計(jì)響應(yīng)的頁(yè)面,它們的功能可以用圖2表示。
圖2 用戶(hù)權(quán)限說(shuō)明Fig.2 User permission explanation
流程管理端[5]是借閱環(huán)節(jié)的核心部分,整個(gè)過(guò)程中所有的功能最終都落腳在這個(gè)部分,流程管理端主要實(shí)現(xiàn)流程的創(chuàng)建、刪除、修改、數(shù)據(jù)庫(kù)的設(shè)置、各項(xiàng)流程的查看統(tǒng)計(jì)等功能,在實(shí)際設(shè)計(jì)過(guò)程中,為了方便管理可以將所有的這些功能都集成到一個(gè)環(huán)境下,同時(shí)由于這部分內(nèi)容涉及到企業(yè)單位的機(jī)密,為了確保企業(yè)信息的安全,可以采用C/S架構(gòu)進(jìn)行開(kāi)發(fā)。C/S即客戶(hù)機(jī)/服務(wù)器模式,管理員可以通過(guò)企業(yè)內(nèi)部網(wǎng)絡(luò)進(jìn)入到企業(yè)的服務(wù)器,對(duì)流程進(jìn)行相應(yīng)的管理,避免了Internet上未知的風(fēng)險(xiǎn)。
具體的實(shí)現(xiàn)時(shí)可以選擇目前比較流行的JBPM開(kāi)源工作流引擎來(lái)完成系統(tǒng)的開(kāi)發(fā)。JBPM模型采用的是UML Activity Diagram語(yǔ)義,開(kāi)發(fā)人員理解起來(lái)比較容易,其次,JBPM提供了可擴(kuò)展的Event-Action機(jī)制、條件表達(dá)機(jī)制和Task分配機(jī)制,很好的實(shí)現(xiàn)了活動(dòng)的擴(kuò)展處理、條件解析腳本計(jì)算以及處理復(fù)雜的人工活動(dòng)。還有一個(gè)值得一提的就是JBPM借助Hibernate,很容易支持多種數(shù)據(jù)庫(kù)?;诨顒?dòng)圖的建模模型以及FSM和PetriNet思想,使得JBPM的內(nèi)核和根基都比較扎實(shí)。
可以將流程管理端劃分為兩個(gè)功能模塊,即流程模板模塊和流程管理模塊。流程模板主要實(shí)現(xiàn)流程的編輯和管理功能,而流程管理主要實(shí)現(xiàn)各流程的查看統(tǒng)計(jì)等功能,還可以包含用戶(hù)權(quán)限管理和數(shù)據(jù)庫(kù)管理等。
2.2.1 流程模版模塊的設(shè)計(jì)
流程模版[6]是整個(gè)工作流系統(tǒng)的核心部分,主要實(shí)現(xiàn)流程模版的編輯、管理以及流程圖的繪制等功能。圖3給出了一種可能的流程模版功能框架。
圖3 流程模版框架Fig.3 Process template framework
在這一部分中,主要是針對(duì)流程圖進(jìn)行相關(guān)的管理和修改。在新建流程模版中,應(yīng)該提供一個(gè)比較簡(jiǎn)單易用的流程圖繪制界面,讓用戶(hù)繪制起來(lái)比較輕松,可以通過(guò)java設(shè)計(jì)出一個(gè)簡(jiǎn)易的流程繪制界面,使用戶(hù)可以很直觀(guān)的利用給出的流程圖繪制工具進(jìn)行流程圖的繪制,繪制出的流程圖經(jīng)過(guò)相應(yīng)的程序設(shè)計(jì)就可以直接應(yīng)用到系統(tǒng)中,這樣,用戶(hù)在使用過(guò)程中也會(huì)非常的方便,在后期進(jìn)行應(yīng)用過(guò)程中,軟件提供商也不會(huì)因此而需要額外的增加售后的成本。
我覺(jué)得這里還應(yīng)該增加流程模版的導(dǎo)入導(dǎo)出功能。有了流程的導(dǎo)入功能,軟件提供商可以在自己的官方網(wǎng)站上上傳一些常用的流程模版供用戶(hù)下載,這樣即使不會(huì)使用該系統(tǒng)的人員也可以輕松地下載已有的模版,然后將其進(jìn)行簡(jiǎn)單的修改即可使用,既方便了客戶(hù)也提升了軟件擴(kuò)展性能;導(dǎo)出功能也為軟件在進(jìn)行二次安裝或者因意外發(fā)生進(jìn)行數(shù)據(jù)恢復(fù)時(shí)提供了方便。
最為重要的就是流程模版的編輯功能。隨著企業(yè)的不斷運(yùn)行,人事編制及各種制度的也在不斷修訂和完善,在這個(gè)過(guò)程中流程模版不可能是一塵不變的,因此適時(shí)的對(duì)流程模版進(jìn)行調(diào)整、修改也是一項(xiàng)必不可少的工作,基于此流程模版的編輯功能應(yīng)該做的更好一點(diǎn),可以提供客戶(hù)對(duì)現(xiàn)有流程模版的查看和修改功能,在這個(gè)環(huán)節(jié)中流程模版最好以流程圖的形式展現(xiàn)出來(lái),這樣就可以非常方便的讓用戶(hù)自己進(jìn)行流程的編輯和修改工作。
2.2.2 流程管理模塊的設(shè)計(jì)
流程管理模塊相對(duì)比較簡(jiǎn)單,主要實(shí)現(xiàn)流程的統(tǒng)計(jì)、刷新、查看等功能。
查看功能是流程管理模塊的主要任務(wù),可以查看代辦的和已辦的檔案,包括檔案的申請(qǐng)、審核過(guò)程以及對(duì)應(yīng)的流程。再設(shè)計(jì)過(guò)程中,可以按照任務(wù)名稱(chēng)、發(fā)起人、處理的意見(jiàn)、密級(jí)等進(jìn)行查看,比較直觀(guān)的就是列舉成條目的形式,使用戶(hù)一目了然。當(dāng)然,在這個(gè)過(guò)程中,應(yīng)該提供一個(gè)篩選的機(jī)制,不然查找的過(guò)程就會(huì)非常繁瑣而且緩慢。
當(dāng)然,流程的統(tǒng)計(jì)以及刷新功能也是一個(gè)必不可少的環(huán)節(jié)。雖然這部分實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單,但是還是應(yīng)該有的。
隨著計(jì)算機(jī)技術(shù)的普及和Internet網(wǎng)絡(luò)的流行,各機(jī)關(guān)企事業(yè)單位已普遍推進(jìn)辦公自動(dòng)化管理系統(tǒng)建設(shè),由此涌現(xiàn)出大量的電子文檔,企業(yè)電子檔案管理系統(tǒng)是實(shí)現(xiàn)電子文件資料的接收、管理和利用,提供基于權(quán)限的電子文件檢索/瀏覽、借閱和歸還、信息發(fā)布等多種電子文件資源的綜合利用形式。能夠降低辦公費(fèi)用,增加企業(yè)管理透明度,極大的減輕文管人員的作業(yè)負(fù)擔(dān)。相信在不久的將來(lái),電子檔案管理系統(tǒng)會(huì)深入各企事業(yè)單位,成為企業(yè)辦公必備的軟件之一。
[1]薛旭洋.淺談JBPM技術(shù)在工作流系統(tǒng)的應(yīng)用[J].計(jì)算機(jī)光盤(pán)軟件與應(yīng)用,2011(21):17.XUE Xu-yang.Introduction to JBPM technology in the application of workflow system[J].Computer CD software and application,2011(21):17.
[2]趙玉嬌,趙偉.基于JBPM的工作流系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2011(16):3797-3798.ZHAO Yu-jiao,ZHAO Wei.Based on the JBPM workflow system design and implementation[J].Computer Knowledge and Technology,2011(16):3797-3798.
[3]顧文軒,王瓊,徐汀榮.基于JBPM的工作流管理系統(tǒng)的研究與設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(5):104-106.GU Wen-xuan,WANG Qiong,XU Ting-rong.Based on the JBPM workflow management system research and design[J].Computer Applications and Software,2009,26(5):104-106.
[4]任勝云,王少華.基于JBPM工作流引擎的檔案管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].山東電大學(xué)報(bào),2009(4):23-25.REN Sheng-yun,WANG Shao-hua.Based on the JBPM workflow engine file management system design and implementation[J].Journal of Shandong TV university,2009,(4):23-25.
[5]石遠(yuǎn)夏,許青林.基于jBPM的業(yè)務(wù)流程管理研究[J].現(xiàn)代計(jì)算機(jī),2009(11):92-94.SHI Yuan-xia,XU Qing-lin.Business process management research based on jBPM[J].Modern Computer,2009 (11):92-94.
[6]凌正俊.基于JBPM與JPDL的工作流管理系統(tǒng)的研究與設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(8):50-53.LING Zheng-jun.research and design of workflow management system Based on the JBPM[J].Computer Technology and Development,2011,21(8):50-53.