白 潔,尚 偉,王元春,孔慶玲
(中國電子科技集團(tuán)公司第五十四研究所,河北石家莊050081)
工作流技術(shù)是近年來計算機(jī)應(yīng)用領(lǐng)域發(fā)展最為迅速的幾項(xiàng)新技術(shù)之一,可廣泛應(yīng)用于辦公自動化、文件管理、群件應(yīng)用和企業(yè)流程重組(BPR)等領(lǐng)域[1]。工作流管理系統(tǒng)是一個軟件系統(tǒng),它完成工作流的定義和管理,并按照在計算機(jī)中預(yù)先定義好的工作流邏輯推進(jìn)工作流實(shí)例的執(zhí)行[3]。SharePoint是微軟公司推出的一個企業(yè)協(xié)作應(yīng)用平臺,提供了企業(yè)級的網(wǎng)站管理、文檔管理、工作流管理、商業(yè)智能和企業(yè)級搜索等一系列強(qiáng)大的功能。使用SharePoint搭建工作流管理系統(tǒng)能夠提高企業(yè)運(yùn)營效率和運(yùn)作的靈活性和適應(yīng)性,充分發(fā)揮現(xiàn)有計算機(jī)網(wǎng)絡(luò)資源的作用,縮短企業(yè)業(yè)務(wù)運(yùn)營周期,改善企業(yè)內(nèi)(外)部流程。
以往企業(yè)采用紙張表單、手工傳遞的方式,逐級審批簽字,工作效率非常低下,且無法實(shí)現(xiàn)統(tǒng)計報表功能。而采用工作流管理系統(tǒng),使用者只需在電腦上填寫有關(guān)表單,即可按照定義好的流程自動執(zhí)行審批,下一級審批者將會收到相關(guān)資料,并可以根據(jù)需要修改、跟蹤、管理、查詢、統(tǒng)計和打印等,大大提高了效率,實(shí)現(xiàn)了知識管理,提升了企業(yè)的核心競爭力[2]。
工作流技術(shù)能合理、高效地支撐企業(yè)業(yè)務(wù)流程的運(yùn)轉(zhuǎn),實(shí)現(xiàn)業(yè)務(wù)流程電子化、信息化,并能將業(yè)務(wù)流程中的信息流轉(zhuǎn)與控制管理從手工填寫、傳遞紙介質(zhì)表單、文件的手工作業(yè)方式中解放出來。工作流管理系統(tǒng)可以幫助企業(yè)遵循一致的業(yè)務(wù)流程,并通過管理業(yè)務(wù)流程中涉及的任務(wù)和步驟來提高企業(yè)的工作效率和生產(chǎn)效能。
工作流管理系統(tǒng)業(yè)務(wù)流程如圖1所示。具體如下:
①創(chuàng)建業(yè)務(wù)過程描述,生成工作流定義。在定義中給出工作流所包含的所有任務(wù)、任務(wù)之間的執(zhí)行次序和數(shù)據(jù)依賴;
②工作流引擎根據(jù)工作流模型的定義和組織/角色數(shù)據(jù)生成單獨(dú)的工作流實(shí)例并加入工作流列表;
③工作流引擎或工作流列表處理器調(diào)用應(yīng)用程序并維護(hù)應(yīng)用數(shù)據(jù)。通過調(diào)用應(yīng)用程序,部分或完全自動的完成一個業(yè)務(wù)活動;
④在業(yè)務(wù)流程處理過程中,用戶持續(xù)通過用戶界面與系統(tǒng)交互。
圖1 工作流管理系統(tǒng)業(yè)務(wù)流程
SharePoint是一個服務(wù)器功能集成套件,提供全面的內(nèi)容管理和企業(yè)搜索來加速共享業(yè)務(wù)流程,可以應(yīng)用工作流來簡化批準(zhǔn)、審閱和存檔過程,從而提高企業(yè)的工作效率[3]。以下是使用SharePoint搭建工作流管理系統(tǒng)的主要優(yōu)勢:
①提供自帶的協(xié)作工作流模板來生成交互式協(xié)作應(yīng)用程序。這些應(yīng)用程序?qū)⒆詣影l(fā)送文檔以進(jìn)行審閱或批準(zhǔn)、向參與者發(fā)送電子郵件通知;
②管理文檔、記錄和web內(nèi)容。支持設(shè)定文檔的生命周期;
③用戶可以直接用瀏覽器填寫表單,不必再登錄單獨(dú)的系統(tǒng)專門來填寫表單。
綜上所述,SharePoint在簡化協(xié)作、內(nèi)容管理和實(shí)施業(yè)務(wù)流程等方面提供了強(qiáng)大的功能支持,適宜作為工作流管理系統(tǒng)的基礎(chǔ)框架。
基于SharePoint工作流管理系統(tǒng)設(shè)計方案如下:
①建立階段功能:使用Visual Studio開發(fā)的可視化工作流模板定義組件實(shí)現(xiàn)工作流過程和相關(guān)活動的定義和建模功能;
②運(yùn)行階段的控制功能:使用SharePoint工作流引擎構(gòu)建工作流模板管理服務(wù),使用SharePoint的運(yùn)行時引擎構(gòu)建的工作流實(shí)例管理服務(wù)結(jié)合消息路由中間件和接口服務(wù),實(shí)現(xiàn)在一定的運(yùn)行環(huán)境下,執(zhí)行工作流過程,并完成每個過程中活動的排序和調(diào)度功能;
③運(yùn)行階段人機(jī)交互功能:使用自定義Web網(wǎng)頁的應(yīng)用程序?qū)崿F(xiàn)各種活動執(zhí)行過程中用戶與IT應(yīng)用工具之間的交互[3]。
系統(tǒng)采用B/S(Browser/Server,瀏覽器/服務(wù)器)架構(gòu)。利用WWW瀏覽器技術(shù),結(jié)合瀏覽器的多種腳本語言,實(shí)現(xiàn)了原來需要復(fù)雜的專用軟件才能實(shí)現(xiàn)的強(qiáng)大功能。在該架構(gòu)中,除了數(shù)據(jù)庫服務(wù)器外,應(yīng)用程序以網(wǎng)頁的形式存放于Web服務(wù)器上,用戶運(yùn)行某個應(yīng)用程序時只需在客戶端上的瀏覽器中輸入相應(yīng)的網(wǎng)址,調(diào)用Web服務(wù)器上的應(yīng)用程序并對數(shù)據(jù)庫進(jìn)行操作完成相應(yīng)的數(shù)據(jù)處理工作,最后將結(jié)果通過瀏覽器顯示給用戶。系統(tǒng)的安裝、修改和維護(hù)完全可在服務(wù)器端解決,用戶在使用系統(tǒng)時僅需要瀏覽器即可運(yùn)行全部模塊,真正達(dá)到了零客戶端的功能。
工作流管理系統(tǒng)架構(gòu)如圖2所示,系統(tǒng)的具體結(jié)構(gòu)分為3層:表示層、Web服務(wù)器層和數(shù)據(jù)庫服務(wù)器層。表示層負(fù)責(zé)向用戶提供對外接口,將工作流實(shí)例與應(yīng)用程序關(guān)聯(lián),提供可視化的工作流模板定義組件,應(yīng)用程序形式為ASP.NET制作的頁面或腳本;Web服務(wù)器層負(fù)責(zé)利用工作流模板生成、監(jiān)控并管理工作流實(shí)例和系統(tǒng)端口,管理外部端口的消息事件,其中的工作流模板管理服務(wù)和工作流實(shí)例管理服務(wù)起到工作流引擎的作用;數(shù)據(jù)庫服務(wù)器層負(fù)責(zé)存儲業(yè)務(wù)數(shù)據(jù)和工作流模板。
圖2 工作流管理系統(tǒng)架構(gòu)
基于SharePoint的工作流管理系統(tǒng)的數(shù)據(jù)庫服務(wù)層采用微軟的SQL Server數(shù)據(jù)庫系統(tǒng)實(shí)現(xiàn),主要用于存儲系統(tǒng)業(yè)務(wù)數(shù)據(jù)和工作流模板。系統(tǒng)業(yè)務(wù)數(shù)據(jù)主要包括工作流管理系統(tǒng)運(yùn)行過程中用到的數(shù)據(jù)字典和過程數(shù)據(jù)。
系統(tǒng)的Web服務(wù)器層使用微軟的SharePoint搭建。本層提供工作流模板管理服務(wù)、工作流實(shí)例管理服務(wù)、消息路由服務(wù)、接口管理服務(wù)和接口掃描服務(wù),以實(shí)現(xiàn)系統(tǒng)接口控制、消息傳遞和工作流實(shí)例控制。
工作流模板管理服務(wù)負(fù)責(zé)對工作流模板進(jìn)行加載、執(zhí)行和卸載等處理,并利用模板生成工作流實(shí)例。工作流實(shí)例是企業(yè)業(yè)務(wù)流程活動的一個實(shí)例,也是工作流實(shí)例管理服務(wù)處理消息的基本對象。工作流實(shí)例管理服務(wù)把某一個工作流實(shí)例相關(guān)的事件、消息和規(guī)則關(guān)聯(lián)到相應(yīng)的應(yīng)用程序上。
接口掃描服務(wù)用于監(jiān)視端口的變化(如文件的上傳、修改,收到新的電子郵件等),然后通過消息路由將消息提交給工作流實(shí)例控制服務(wù)。接口管理服務(wù)用于管理系統(tǒng)的所有對外接口。
使用IE瀏覽器實(shí)現(xiàn)表示層與用戶的人機(jī)交互。在該層提供與工作流實(shí)例關(guān)聯(lián)的應(yīng)用程序和組件,同時也提供可視化的工作流模板定義組件,以彌補(bǔ)SharePoint自帶工作流模板的不足。所有服務(wù)和組件均可通過在瀏覽器輸入相應(yīng)的網(wǎng)址而實(shí)現(xiàn)。
雖然SharePoint提供了一些內(nèi)置的工作流模板,但這些內(nèi)置工作流模板僅能完成一些基本的業(yè)務(wù)流轉(zhuǎn)功能,不能滿足用戶的復(fù)雜業(yè)務(wù)需要。而使用SharePoint Designer創(chuàng)建自定義工作流模板的過程又過于復(fù)雜和繁瑣,對于沒有編程經(jīng)驗(yàn)的用戶來說過于困難。
針對這種情況,在設(shè)計時增加了一個可視化的工作流模板定義組件,該組件使用Visual Studio實(shí)現(xiàn),具有圖形化的用戶界面,將應(yīng)用程序和業(yè)務(wù)流程用圖形符號展現(xiàn)。一個工作流程包含一連串按業(yè)務(wù)邏輯連接的節(jié)點(diǎn),每個節(jié)點(diǎn)上綁定一個應(yīng)用程序,節(jié)點(diǎn)之間的連接上由用戶設(shè)定觸發(fā)或流轉(zhuǎn)條件。用戶觸發(fā)起始節(jié)點(diǎn)即啟動整個流程,根據(jù)預(yù)先設(shè)定的條件依次執(zhí)行被調(diào)用流程節(jié)點(diǎn)上綁定的應(yīng)用程序,以實(shí)現(xiàn)流程的功能目標(biāo)。
分析了工作流管理系統(tǒng)的結(jié)構(gòu)和應(yīng)用背景,提出了基于微軟公司的SharePoint的工作流管理系統(tǒng)設(shè)計方案。該系統(tǒng)結(jié)合Web Service技術(shù),便于系統(tǒng)升級與維護(hù);提供了可視化的工作流模板定義組件;具有完善的狀態(tài)監(jiān)視功能。與傳統(tǒng)工作流管理系統(tǒng)相比,該系統(tǒng)的可擴(kuò)展性和可維護(hù)性更好,工作流模板的制作更加友好、靈活。
[1]金飛騰,趙正德,張 東,等.基于 SharePoint的工作流引擎的實(shí)現(xiàn)[J].中國圖形圖像學(xué)報,2006,11(11):1552-1556.
[2]李一江.基于.Net的工作流引擎的設(shè)計與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2004.
[3]屠立剛,吳翠鳳.Microsoft Office SharePoint Server 2007管理大全[M].北京:電子工業(yè)出版社,2008.