蔣純輝
(湖南交通工程學(xué)院,湖南 衡陽 421009)
辦公事務(wù)涉及多個(gè)部門的文件處理、收發(fā)等內(nèi)容。日常辦公過程任務(wù)繁雜,無法使用固定的方式對(duì)其進(jìn)行約束。當(dāng)前辦公自動(dòng)化系統(tǒng)運(yùn)營過程中,存在系統(tǒng)解決問題的固定性,無法根據(jù)具體情況對(duì)系統(tǒng)進(jìn)行調(diào)整。導(dǎo)致軟件開發(fā)出現(xiàn)重復(fù)性工作,影響工作效率。動(dòng)態(tài)工作流也正是基于此出現(xiàn),繼承了原本工作流的工作特點(diǎn),并在此基礎(chǔ)上優(yōu)化。為了保證企業(yè)工作質(zhì)量,基于動(dòng)態(tài)工作流應(yīng)用在辦公系統(tǒng)中,保證對(duì)系統(tǒng)業(yè)務(wù)進(jìn)行優(yōu)化調(diào)整,提高辦公自動(dòng)化的靈活性,滿足現(xiàn)代化業(yè)務(wù)的實(shí)際需求。
元數(shù)據(jù)源于計(jì)算機(jī),于1960年被提出。元數(shù)據(jù)代表了資料描述方式,后期信息變?yōu)殡娮痈袷?其變動(dòng)性使得元數(shù)據(jù)再次受到關(guān)注?,F(xiàn)階段元數(shù)據(jù)代表了數(shù)據(jù)存儲(chǔ)形式,對(duì)于信息管理發(fā)揮著重要作用。元數(shù)據(jù)能夠存在于計(jì)算機(jī)系統(tǒng)中,對(duì)數(shù)據(jù)內(nèi)容、結(jié)構(gòu)進(jìn)行描述,還可以存在于數(shù)據(jù)內(nèi)部,與數(shù)據(jù)包裹在一起。元數(shù)據(jù)一旦從內(nèi)容中被提取,便與內(nèi)容分開,能夠單獨(dú)對(duì)其進(jìn)行操作,簡化了實(shí)際操作過程。元數(shù)據(jù)分為不同類型,需要根據(jù)實(shí)際情況進(jìn)行選用。辦公系統(tǒng)自動(dòng)化選擇的是結(jié)構(gòu)性元數(shù)據(jù),選擇的原因是借助元數(shù)據(jù)思想描述系統(tǒng),從而對(duì)辦公流程定義。利用元數(shù)據(jù)能夠根據(jù)流程實(shí)例化操作,從而對(duì)活動(dòng)進(jìn)行描述,保證根據(jù)流程定義,對(duì)業(yè)務(wù)功能進(jìn)行調(diào)整,減少系統(tǒng)重復(fù)性工作,保證工作效率。
1.2.1 Java技術(shù)
Java是程序語言,能夠簡化程序管理工作,但是僅適用小型設(shè)備運(yùn)行。運(yùn)行過程中,需要對(duì)出現(xiàn)的問題進(jìn)行檢查,消除錯(cuò)誤現(xiàn)象。Java能夠?qū)ψ止?jié)碼進(jìn)行解釋執(zhí)行,保證連接過程更加便捷。在不斷發(fā)展的環(huán)境下,Java能夠根據(jù)系統(tǒng)不斷優(yōu)化升級(jí)。
1.2.2 JavaBean技術(shù)
JavaBean作為單獨(dú)存在的軟件,能夠基于工具對(duì)其進(jìn)行可視化操作。JavaBean具備程序語言的優(yōu)點(diǎn),但是需要遵循協(xié)議,其自身的技術(shù)與Java語言有密切關(guān)系。JavaBean更像是黑盒,能夠與其他外部接口進(jìn)行連接,更像是構(gòu)成系統(tǒng)的組件。JavaBean的存在規(guī)定了Bean的特征,能夠支持其他屬性操作機(jī)制,并在設(shè)計(jì)過程中,進(jìn)行改變?;陂_發(fā)工具能夠?qū)ζ浣邮帐录M(jìn)行改善,因此,采用JavaBean進(jìn)行技術(shù)開發(fā),保證系統(tǒng)能夠有效檢測(cè)到工作狀態(tài)。
基于上述技術(shù)分析,本文明確了系統(tǒng)使用的具體技術(shù)。對(duì)于企業(yè)而言,對(duì)已有的辦公系統(tǒng)進(jìn)行設(shè)計(jì),需要基于動(dòng)態(tài)工作流對(duì)系統(tǒng)結(jié)構(gòu)進(jìn)行全面優(yōu)化。這樣設(shè)計(jì)影響較大,還會(huì)妨礙業(yè)務(wù)工作開展。為了避免資源過度浪費(fèi),保證系統(tǒng)結(jié)構(gòu)設(shè)計(jì)合理。在保證系統(tǒng)方案不變的基礎(chǔ)上,將動(dòng)態(tài)工作流技術(shù)引入系統(tǒng)。系統(tǒng)采用B/S結(jié)構(gòu),由局域網(wǎng)、維護(hù)管理與外網(wǎng)等結(jié)構(gòu)構(gòu)成[1],為局域網(wǎng)、外網(wǎng)等結(jié)構(gòu)配置局部交換機(jī),保證內(nèi)部通信基于交換機(jī)完成。內(nèi)部局域網(wǎng)能夠針對(duì)企業(yè)不同科室客戶端進(jìn)行分布,保證用戶通過端口進(jìn)行操作;服務(wù)網(wǎng)站為工作運(yùn)行提供服務(wù),保障數(shù)據(jù)運(yùn)行得到支撐,實(shí)現(xiàn)動(dòng)態(tài)工作流運(yùn)行。基于系統(tǒng)工作核心,改善以往的辦公管理方法,對(duì)各項(xiàng)流程重新定義,符合監(jiān)管系統(tǒng)運(yùn)行工作環(huán)境,并對(duì)環(huán)境情況作出調(diào)整;維護(hù)管理員對(duì)運(yùn)行網(wǎng)站服務(wù)器維護(hù),并監(jiān)護(hù)系統(tǒng)安全。擁有權(quán)限的管理員才能進(jìn)入,對(duì)流程定義進(jìn)行更改,滿足實(shí)際需求。
根據(jù)技術(shù)設(shè)計(jì)實(shí)際情況,結(jié)合設(shè)計(jì)標(biāo)準(zhǔn)對(duì)動(dòng)態(tài)工作流的功能分析。能夠知曉工作流運(yùn)行,依靠的是引擎定義與運(yùn)行數(shù)據(jù)庫。定義數(shù)據(jù)庫能夠根據(jù)工作動(dòng)態(tài)情況,對(duì)信息進(jìn)行存儲(chǔ);運(yùn)行數(shù)據(jù)則根據(jù)工作進(jìn)程,驅(qū)動(dòng)系統(tǒng)運(yùn)行產(chǎn)生的數(shù)據(jù)。兩者定義不同,前者屬于定義,后者屬于執(zhí)行,共同結(jié)合在一起,便于工作流運(yùn)行管理。
引擎作為保障方案運(yùn)行的核心,能夠?yàn)楣ぷ髁魈峁┝鞒潭x,保證進(jìn)程運(yùn)行環(huán)境安全。根據(jù)系統(tǒng)需求,將特定活動(dòng)運(yùn)送到執(zhí)行者處,實(shí)現(xiàn)辦公系統(tǒng)自動(dòng)化運(yùn)行過程。引擎定義包含了定義組件、控制組件等部件構(gòu)成。引擎定義能夠根據(jù)具體流程和規(guī)則管理系統(tǒng),對(duì)系統(tǒng)活動(dòng)負(fù)責(zé)?;顒?dòng)定義主要是根據(jù)辦公系統(tǒng)的各項(xiàng)業(yè)務(wù)流程,從而引導(dǎo)系統(tǒng)執(zhí)行任務(wù)。將實(shí)際業(yè)務(wù)流程轉(zhuǎn)化為工作流能夠識(shí)別的內(nèi)容,保障辦公系統(tǒng)工作執(zhí)行得到保障。規(guī)則定義能夠?qū)ο到y(tǒng)運(yùn)行期間,各項(xiàng)活動(dòng)流程進(jìn)行監(jiān)管,保證定義執(zhí)行的正確性。基于原本的管理進(jìn)行調(diào)整,實(shí)現(xiàn)對(duì)用戶的管理;流轉(zhuǎn)控制則是對(duì)系統(tǒng)每一個(gè)進(jìn)程運(yùn)行數(shù)據(jù)加以記錄,將流程轉(zhuǎn)化為工作活動(dòng)實(shí)例。根據(jù)組件對(duì)活動(dòng)狀態(tài)進(jìn)行判斷,為后續(xù)活動(dòng)設(shè)置狀態(tài),保證系統(tǒng)運(yùn)行的靈活性;動(dòng)態(tài)修改則是保證系統(tǒng)運(yùn)行環(huán)境安全,當(dāng)監(jiān)測(cè)到外部環(huán)境發(fā)生變化,會(huì)及時(shí)對(duì)現(xiàn)有工作流進(jìn)行調(diào)整。處理和修改的關(guān)鍵在于通過操作系統(tǒng)對(duì)進(jìn)程產(chǎn)生影響。用戶界面與網(wǎng)絡(luò)服務(wù)器,用戶界面能夠根據(jù)用戶登錄身份,給予不同的權(quán)限,為辦公自動(dòng)化業(yè)務(wù)提供支持。對(duì)此,為了保證數(shù)據(jù)庫的穩(wěn)定性,采用Oracle數(shù)據(jù)庫為工作流運(yùn)行提供支撐,利用Java,JavaBean技術(shù)進(jìn)行系統(tǒng)引擎開發(fā)。
動(dòng)態(tài)工作流引擎目的在于辦公系統(tǒng)自動(dòng)化,從而實(shí)現(xiàn)工作流定義與動(dòng)態(tài)執(zhí)行服務(wù),為系統(tǒng)運(yùn)行創(chuàng)建良好的運(yùn)行環(huán)境。利用運(yùn)行環(huán)境,保障引擎流程實(shí)例化,激活相關(guān)程序,對(duì)流程實(shí)行動(dòng)態(tài)管理。良好的系統(tǒng)運(yùn)行主要是依靠引擎來實(shí)現(xiàn)[2]。
動(dòng)態(tài)工作流中,關(guān)于角色定義與活動(dòng)定義的描述,如圖1所示。左側(cè)結(jié)構(gòu)代表角色定義;右側(cè)為活動(dòng)定義。其中description代表角色描述,right負(fù)責(zé)對(duì)權(quán)限進(jìn)行描述,并根據(jù)rejectname拒絕活動(dòng)執(zhí)行。
圖1 角色定義與活動(dòng)定義結(jié)構(gòu)描述
規(guī)則定義與流程定義如圖2所示,通過對(duì)前后活動(dòng)定義描述,從而對(duì)活動(dòng)表示的操作進(jìn)行刪除和修改。流程定義根據(jù)規(guī)則定義判定后,能夠根據(jù)id對(duì)流程定義進(jìn)行描述,組建活動(dòng)定義序列,對(duì)具體內(nèi)容和結(jié)構(gòu)進(jìn)行描述。
圖2 規(guī)則定義與流程定義結(jié)構(gòu)描述
3.2.1 引擎定義組件
引擎定義組件負(fù)責(zé)取讀系統(tǒng)活動(dòng),用戶對(duì)其定義時(shí),引擎組件負(fù)責(zé)與用戶對(duì)接,對(duì)用戶進(jìn)行判斷。組件根據(jù)用戶獲得新的活動(dòng)執(zhí)行角色,取讀定義數(shù)據(jù)庫中關(guān)于活動(dòng)的定義。為用戶建立規(guī)則,確定后存入數(shù)據(jù)庫規(guī)則定義。引擎定義組件將活動(dòng)序列轉(zhuǎn)化,根據(jù)活動(dòng)定義分析具體流程的角色信息,并進(jìn)行存儲(chǔ)。
3.2.2 流程解析組件
流程解析組件負(fù)責(zé)對(duì)流程定義解析,并將其拆分成多個(gè)單獨(dú)活動(dòng)。組件接收到解析請(qǐng)求時(shí),能夠根據(jù)流程定義解析出順序的活動(dòng)節(jié)點(diǎn),對(duì)節(jié)點(diǎn)進(jìn)行判斷。并根據(jù)活動(dòng)情況,對(duì)活動(dòng)進(jìn)行二層分解,直到全部的活動(dòng)節(jié)點(diǎn)都成為單個(gè)活動(dòng)。流程解析組件,能夠分解出完整的流程,也可以反過來分解流程,輸出結(jié)果為單個(gè)活動(dòng)序列。流程定義結(jié)構(gòu),通常是需要根據(jù)流程進(jìn)行,并由路由和活動(dòng)標(biāo)識(shí)構(gòu)成。當(dāng)前一環(huán)的活動(dòng)完成后,中間活動(dòng)任意完成一個(gè)后就可以轉(zhuǎn)入下一個(gè)環(huán)節(jié)。根據(jù)工作原理,進(jìn)行順序、并發(fā)、選擇的過程,采用循環(huán)路由,實(shí)現(xiàn)路由轉(zhuǎn)化。
3.2.3 流轉(zhuǎn)控制組件
流轉(zhuǎn)控制能夠控制路由流轉(zhuǎn),對(duì)活動(dòng)當(dāng)前狀態(tài)進(jìn)行判斷。用戶啟動(dòng)新進(jìn)程時(shí),能夠根據(jù)流程定義發(fā)送申請(qǐng),等待流程解析后獲得解析結(jié)果。將生成的新標(biāo)識(shí)分給進(jìn)程,組成新的活動(dòng)實(shí)例。由于每個(gè)活動(dòng)定義都是單獨(dú)存在,能夠在設(shè)定活動(dòng)后,連同進(jìn)程一起存儲(chǔ)于數(shù)據(jù)庫中,便于出現(xiàn)問題時(shí),對(duì)流程定義進(jìn)行動(dòng)態(tài)修改,完成控制過程。進(jìn)程開啟運(yùn)行后,普通用戶登錄,能夠根據(jù)組件分配對(duì)應(yīng)執(zhí)行活動(dòng)。根據(jù)活動(dòng)實(shí)際情況,確定返回還是繼續(xù)執(zhí)行工作。返回上一活動(dòng),流轉(zhuǎn)控制組件調(diào)出上一活動(dòng),并基于當(dāng)前進(jìn)程插入活動(dòng)實(shí)例,增加活動(dòng)節(jié)點(diǎn)。節(jié)點(diǎn)能夠增加進(jìn)程數(shù)量,不會(huì)對(duì)信息產(chǎn)生任何影響,還能保留每一步操作的具體信息。將下一活動(dòng)作為當(dāng)前活動(dòng),等待循環(huán)的過程,直到所有進(jìn)程都執(zhí)行結(jié)束。
3.2.4 動(dòng)態(tài)修改組件
動(dòng)態(tài)組件負(fù)責(zé)對(duì)工作各項(xiàng)流程進(jìn)行檢驗(yàn),根據(jù)實(shí)際運(yùn)行情況作出調(diào)整,是區(qū)別動(dòng)態(tài)工作流與工作流的關(guān)鍵。修改組件受到請(qǐng)求后,需要對(duì)修改進(jìn)行判斷,才能對(duì)工作流活動(dòng)進(jìn)行定義和優(yōu)化[3]。
(1)活動(dòng)修改。
活動(dòng)定義被修改后,內(nèi)容發(fā)生變化,但是不會(huì)影響活動(dòng)本身,流程定義始終不變,修改內(nèi)容會(huì)對(duì)進(jìn)程運(yùn)行產(chǎn)生影響。為了保障程序能夠正常運(yùn)行,需要對(duì)修改過程進(jìn)行優(yōu)化。根據(jù)對(duì)活動(dòng)實(shí)例的分析,明確活動(dòng)存在于哪一環(huán)節(jié)的進(jìn)程中。分析運(yùn)行進(jìn)程的情況,判斷進(jìn)程是否能夠被刪除和修改。允許修改的情況下,可以先對(duì)活動(dòng)定義關(guān)聯(lián)的進(jìn)程進(jìn)行保存,暫停進(jìn)程運(yùn)行后,對(duì)定義進(jìn)行修改,保證進(jìn)程同步更新,恢復(fù)進(jìn)程原狀態(tài)。
(2)流程修改。
流程修改主要從流程名稱等基本信息入手,修改的是動(dòng)態(tài)工作流運(yùn)行的關(guān)鍵。包含了流程內(nèi)容中單個(gè)活動(dòng)或者節(jié)點(diǎn),在節(jié)點(diǎn)運(yùn)行前,對(duì)其節(jié)點(diǎn)進(jìn)行調(diào)整,保證路由關(guān)系。刪除活動(dòng)或者增加活動(dòng),都需要得到規(guī)則定義的允許后進(jìn)行,并判定活動(dòng)插入刪除是否合法。對(duì)于不合規(guī)則的活動(dòng),嚴(yán)令禁止其操作。流程定義作為進(jìn)程的模板,一旦對(duì)進(jìn)程進(jìn)行修改后,就會(huì)產(chǎn)生新的運(yùn)行版本。進(jìn)程按照何種版本運(yùn)行,需要基于動(dòng)態(tài)工作流引擎給予指示。引擎根據(jù)修改定義分析所有進(jìn)程,選定修改活動(dòng)位置后,保留修改后以及修改位置前的進(jìn)程原有執(zhí)行命令。對(duì)于修改后的進(jìn)程,需要由用戶決定其與修改后流程的同步性,并通過引擎對(duì)進(jìn)程活動(dòng)進(jìn)行更新。
(3)進(jìn)程修改。
進(jìn)程代表系統(tǒng)實(shí)際業(yè)務(wù),對(duì)其修改也就是對(duì)業(yè)務(wù)流程信息進(jìn)行修改。在活動(dòng)實(shí)例前后增加、刪減實(shí)例,保證實(shí)例與路由之間的關(guān)系。為了保證進(jìn)程穩(wěn)定運(yùn)行,需要判斷進(jìn)程實(shí)際情況,根據(jù)流程完成情況采取操作。對(duì)于不合規(guī)則的操作,修改后也只是改變單個(gè)進(jìn)程,不會(huì)對(duì)流程和活動(dòng)定義產(chǎn)生影響。
動(dòng)態(tài)工作流引擎設(shè)計(jì),是保證辦公系統(tǒng)實(shí)現(xiàn)自動(dòng)化運(yùn)行的關(guān)鍵。針對(duì)傳統(tǒng)工作流存在的缺陷,通過對(duì)引擎進(jìn)行分析,提升工作流的適應(yīng)能力。動(dòng)態(tài)工作流引擎設(shè)計(jì)基于流程定義、監(jiān)管等功能為一體,應(yīng)用于企業(yè)辦公系統(tǒng)中,能夠?qū)崿F(xiàn)協(xié)同工作的目的。
在當(dāng)前企業(yè)運(yùn)行過程中,保證工作效率是促進(jìn)資源整合,實(shí)現(xiàn)可持續(xù)發(fā)展的重要手段。傳統(tǒng)管理方式不再適應(yīng)新時(shí)期工作需求,需要建立更加完善的工作制度與管理方式,完善辦公自動(dòng)化系統(tǒng),保障企業(yè)對(duì)業(yè)務(wù)的處理效率。
針對(duì)動(dòng)態(tài)工作流的應(yīng)用,本文從典型業(yè)務(wù)流程入手。通常企業(yè)辦公公文流轉(zhuǎn),需要通過引擎發(fā)動(dòng)流程,以提交作為起始流程,根據(jù)審核確定公文,明確文件返回還是繼續(xù)下一環(huán)節(jié)審核,由主管審核完成后,傳遞到辦公室歸檔打印。無需簽字的文件可以直接發(fā)送給領(lǐng)導(dǎo)審核,辦公室最后將全部的文件整理完成后,編號(hào)并打印,保存在檔案數(shù)據(jù)庫中。發(fā)文定義是根據(jù)活動(dòng)流程,結(jié)合審核、執(zhí)行等按鈕推動(dòng)活動(dòng)進(jìn)行。用戶登錄系統(tǒng)后,可以根據(jù)系統(tǒng)界面內(nèi)的權(quán)限,生成用戶申請(qǐng)的流程選項(xiàng),并對(duì)文件進(jìn)行處理,開啟下一環(huán)節(jié)的流程。用戶進(jìn)入執(zhí)行活動(dòng),交給上級(jí)領(lǐng)導(dǎo)審核,根據(jù)領(lǐng)導(dǎo)的審核判斷,進(jìn)行下一環(huán)節(jié)工作。運(yùn)行過程中,管理員能夠?qū)λ羞M(jìn)程進(jìn)行監(jiān)控。根據(jù)運(yùn)行情況,給予程序?qū)?yīng)指令,保證系統(tǒng)自動(dòng)化運(yùn)行。
使用動(dòng)態(tài)工作流在辦公系統(tǒng)中應(yīng)用,能夠滿足實(shí)際需求,并保障系統(tǒng)自動(dòng)化運(yùn)行。同時(shí)引擎的存在,能夠保證用戶根據(jù)動(dòng)態(tài)修改流程,保證各節(jié)點(diǎn)正常運(yùn)行,增加系統(tǒng)的適用性。動(dòng)態(tài)工作流改變以往系統(tǒng)固定運(yùn)行模式,提升系統(tǒng)的靈活性,根據(jù)引擎修改后的情況繼續(xù)運(yùn)行,符合自動(dòng)化設(shè)計(jì)需求,不會(huì)對(duì)工作造成任何影響。
綜上所述,工作流管理實(shí)現(xiàn)對(duì)結(jié)構(gòu)與非結(jié)構(gòu)流程的管理,在社會(huì)諸多行業(yè)中得到認(rèn)可和應(yīng)用。傳統(tǒng)工作流應(yīng)用缺乏靈活性,難以保障系統(tǒng)動(dòng)態(tài)變動(dòng)需求?;诂F(xiàn)有工作流進(jìn)行優(yōu)化,應(yīng)用動(dòng)態(tài)工作流于辦公管理系統(tǒng)中。本文通過分析傳統(tǒng)工作流技術(shù),基于辦公系統(tǒng)自動(dòng)化運(yùn)作,從動(dòng)態(tài)角度出發(fā),提出動(dòng)態(tài)工作流應(yīng)具備的功能,設(shè)計(jì)動(dòng)態(tài)工作引擎,滿足系統(tǒng)靈活性與適用性需求。