王留洋
[摘 要] 本文根據(jù)現(xiàn)代化辦公的要求,通過(guò)對(duì)OA系統(tǒng)中工作流的分析,提出一個(gè)基于工作流的OA系統(tǒng)模型,在.NET環(huán)境下,利用工作流技術(shù)和Web服務(wù)技術(shù)實(shí)現(xiàn)了OA系統(tǒng)的開(kāi)發(fā)。
[關(guān)鍵詞] OA; 工作流; B/S模式; .NET
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2009 . 20 . 027
[中圖分類號(hào)]F270.7[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1673-0194(2009)20-0071-03
1 引 言
隨著淮安經(jīng)濟(jì)的發(fā)展和城市建設(shè)步伐的不斷加快及城市規(guī)模的日益擴(kuò)大,自來(lái)水公司的管理工作日趨復(fù)雜,但隨著信息技術(shù)的發(fā)展,使得提供公共服務(wù)的自來(lái)水公司的全面信息化變?yōu)榱爽F(xiàn)實(shí)。在這種情況下,自來(lái)水公司迫切需要將自來(lái)水公司所有業(yè)務(wù)及服務(wù)進(jìn)行整合,建立一個(gè)涵蓋綜合事務(wù)(包括公司網(wǎng)站、設(shè)備管理、公司日常辦公OA等)、調(diào)度(壓力流量采集監(jiān)控、水廠生產(chǎn)控制系統(tǒng)、泵站管理監(jiān)測(cè))、管網(wǎng)GIS、營(yíng)業(yè)收費(fèi)(包括遠(yuǎn)程抄表、司銀聯(lián)網(wǎng)等)、用戶報(bào)裝、熱線服務(wù)(包括短信平臺(tái))等統(tǒng)一的綜合辦公平臺(tái),建立統(tǒng)一的底層數(shù)據(jù)中心,管理多源、多尺度、多專題數(shù)據(jù),從根本上解決各套系統(tǒng)獨(dú)自運(yùn)作、信息不通、數(shù)據(jù)無(wú)法共享或共享不徹底的問(wèn)題,使自來(lái)水公司運(yùn)用現(xiàn)代信息與通訊技術(shù),將管理與服務(wù)通過(guò)信息化平臺(tái)集成,實(shí)現(xiàn)真正管理及服務(wù)的科學(xué)化,并為行政審批提供依據(jù),提供“一站式”辦公。
2 系統(tǒng)的需求分析
事務(wù)性功能模塊應(yīng)具備模塊組建管理、用戶與授權(quán)管理、單點(diǎn)用戶認(rèn)證管理、協(xié)作組建管理等功能。在信息授權(quán)的基礎(chǔ)上,各類信息以一種直觀易用的、可定制的、基于瀏覽器的人機(jī)交互界面呈現(xiàn)。
淮安市自來(lái)水公司綜合辦公平臺(tái)事務(wù)性功能即日常公文行政管理應(yīng)用等,能夠在完成日常公文處理的基礎(chǔ)上,結(jié)合公司日常行政工作,實(shí)現(xiàn)公司各部門員工可以充分共享數(shù)據(jù),按照個(gè)人授予的權(quán)限通過(guò)網(wǎng)絡(luò)完成自己的日常辦公以及對(duì)相應(yīng)行政數(shù)據(jù)的查詢、統(tǒng)計(jì)和分析,并進(jìn)行協(xié)同辦公文檔處理,為各部門領(lǐng)導(dǎo)和員工及時(shí)處理工作和及時(shí)了解公司各項(xiàng)動(dòng)態(tài)提供即時(shí)全面的網(wǎng)絡(luò)服務(wù)。
事務(wù)性功能模塊內(nèi)嵌入用戶管理、目錄管理、身份認(rèn)證、數(shù)據(jù)庫(kù)、應(yīng)用服務(wù)器等模塊,也可根據(jù)需要,將這些功能加載于多種外部系統(tǒng),如目錄服務(wù)、大型數(shù)據(jù)庫(kù)、第三方應(yīng)用服務(wù)器等,建立穩(wěn)定可靠的信息平臺(tái),保證系統(tǒng)的可擴(kuò)展性。
淮安市自來(lái)水公司綜合辦公平臺(tái)中,通過(guò)事務(wù)性功能模塊組織、展現(xiàn)各種結(jié)構(gòu)化、非結(jié)構(gòu)化的信息內(nèi)容和相關(guān)的Web應(yīng)用頁(yè)面,為最終用戶提供了統(tǒng)一的信息訪問(wèn)渠道。
3 系統(tǒng)的功能設(shè)計(jì)
淮安市自來(lái)水公司綜合辦公平臺(tái)實(shí)現(xiàn)的功能應(yīng)包括事務(wù)性功能模塊、業(yè)務(wù)性功能模塊、平臺(tái)數(shù)據(jù)整合維護(hù)功能模塊等,整體結(jié)構(gòu)如圖1所示。
4 系統(tǒng)的實(shí)現(xiàn)
系統(tǒng)采用B/S模式,由瀏覽器和服務(wù)器組成,數(shù)據(jù)和程序放在服務(wù)器端,服務(wù)器可以有多層結(jié)構(gòu),服務(wù)器負(fù)責(zé)與數(shù)據(jù)庫(kù)的交換工作,并將結(jié)果發(fā)送給各終端。前端的瀏覽器不用維護(hù),用戶只需瀏覽器即可使用該系統(tǒng)。其優(yōu)點(diǎn)是采用標(biāo)準(zhǔn)Internet技術(shù),技術(shù)人員只要開(kāi)發(fā)和維護(hù)服務(wù)器端應(yīng)用程序,無(wú)須考慮客戶端程序,大大降低了軟件維護(hù)開(kāi)銷,而且非常適合信息的查詢和組織,界面簡(jiǎn)單且易于與Internet上的其他系統(tǒng)集成。
本系統(tǒng)選擇.NET作為工作流開(kāi)發(fā)工具。在.NET工作流中,進(jìn)程通過(guò)WorkflowRuntime創(chuàng)建和維護(hù)WorkflowInstance。除此而外,WorkflowRuntime可以創(chuàng)建自定義的服務(wù)和本地服務(wù)(為工作流處理對(duì)象設(shè)計(jì)服務(wù)),可以控制存中加載和卸載工作流(配合SQLWorkflow Persistence Service就可以實(shí)現(xiàn)工作流的持久化)等等。
4.1 .NET工作流組件模型
.NET工作流組件模型見(jiàn)圖2。服務(wù)由Addservice()加載入WorkflowRuntime中,而與WorkflowInstance實(shí)例無(wú)關(guān)。WorkflowInstance在創(chuàng)建后,自動(dòng)流動(dòng)觸發(fā)Activity。在Activity中觸發(fā)Service中的事件,轉(zhuǎn)而由WorkflowRuntime將事件轉(zhuǎn)化為接口上的事件調(diào)用(EventHandle)。 一個(gè)必須添加到工作流運(yùn)行時(shí)引擎才能啟用本地服務(wù)通信的服務(wù)。若要正確地化和注冊(cè)這些服務(wù),必需將本地服務(wù)添加到ExternalDataExchangeService中。此WorkflowRuntime, WorkflowInstance, ExternalDataExchangeService和本地服務(wù)的關(guān)系是:WorkflowRuntime承載WorkflowInstance,ExternalDataExchangeService被添加到WorkflowRuntime,本地服務(wù)被添加到ExternalDataExchangeService中以實(shí)現(xiàn)對(duì)于譬如 WorkflowPersistenceService的初始化。
本地服務(wù)必須實(shí)現(xiàn)使用 ExternalDataExchangeAttribute 進(jìn)行修飾的接口。本地服務(wù)需要定義方法和事件(需要實(shí)現(xiàn)ExternalDataEventArgs)供CallExternalMethodActivity和HandleExternalEventActivity使用。前者用于工作流實(shí)例從外部接收信息,后者用于處理由本地服務(wù)引發(fā)的事件的工作流通信活動(dòng)。WorkflowRuntime會(huì)將本地服務(wù)上的方法調(diào)用轉(zhuǎn)化為WorkflowInstance上的Event觸發(fā)。
4.2 工作流創(chuàng)建
把一個(gè)業(yè)務(wù)邏輯抽象成一個(gè)工作流。首先我們要在業(yè)務(wù)流程圖中識(shí)別出工作流的環(huán)節(jié)。如圖2所示,顯然,我們共有多個(gè)環(huán)節(jié),同時(shí)包含一個(gè)分支及一個(gè)合并。
建立好環(huán)節(jié)以后,必須在每個(gè)環(huán)節(jié)中添加一些動(dòng)作以便于工作流運(yùn)轉(zhuǎn)。每個(gè)動(dòng)作有唯一的無(wú)條件結(jié)果,條件結(jié)果由管理用戶有選擇地來(lái)實(shí)現(xiàn)。
接下來(lái)要并行地執(zhí)行自來(lái)水公司業(yè)務(wù)分析、財(cái)務(wù)管理和網(wǎng)絡(luò)辦公,這里是放置分支的最理想地點(diǎn)。
status="Underway" owner="Risk Analyst" step="2"/> status="Underway" owner="Financial Officer" step="3"/>
status="Underway" owner="Web Office Automation" step="3"/>