
隨著我國經(jīng)濟(jì)的市場化和國際化,通過重構(gòu)、兼并而形成的集團(tuán)已經(jīng)成為提高競爭力的主要手段。同時(shí),集團(tuán)信息化程度日益提高,造就了許多版本和廠家的信息軟件系統(tǒng)和數(shù)據(jù)系統(tǒng)。此外集團(tuán)的項(xiàng)目資金監(jiān)管已經(jīng)成為集團(tuán)管理行為中的一個(gè)重要部分。面對龐大的、異構(gòu)的財(cái)務(wù)和信息系統(tǒng),要實(shí)現(xiàn)項(xiàng)目資金的統(tǒng)一、實(shí)時(shí)地監(jiān)管是一個(gè)巨大的挑戰(zhàn)。在集團(tuán)項(xiàng)目資金監(jiān)管系統(tǒng)中,存在跨INTERNET或INTRANET的多個(gè)并發(fā)信息,這些信息按照一定的策略,從各個(gè)被監(jiān)管的子系統(tǒng)逐級(jí)流動(dòng)。信息在流動(dòng)過程中具有明顯的時(shí)序特性和并發(fā)特性,因此可以采用并發(fā)工作流技術(shù)來實(shí)現(xiàn)集團(tuán)項(xiàng)目資金的監(jiān)管,但目前有關(guān)集團(tuán)項(xiàng)目資金數(shù)據(jù)監(jiān)管的研究不多見。本文利用異構(gòu)數(shù)據(jù)表示機(jī)制、工作流理論,針對分布在INTERNET和INTRANET上的項(xiàng)目資金信息,研究集團(tuán)的項(xiàng)目資金監(jiān)管系統(tǒng)的實(shí)現(xiàn)方法,對提高集團(tuán)的生產(chǎn)效率。降低企業(yè)成本有著現(xiàn)實(shí)意義。
一、基于并發(fā)工作流的開發(fā)模式
(一)傳統(tǒng)的開發(fā)技術(shù)模式 即通過需求分析、總體設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、模塊設(shè)計(jì)、測試等常規(guī)步驟,這樣獲得的系統(tǒng)具有很大的局限性,如并發(fā)控制問題將和應(yīng)用程序密切相關(guān)。
(二)并發(fā)數(shù)據(jù)流的模式 采用并發(fā)工作流為主控結(jié)構(gòu)、采用傳統(tǒng)模塊技術(shù)為數(shù)據(jù)流的功能擴(kuò)展,這樣所有功能都是架落在并發(fā)數(shù)據(jù)流上,這種結(jié)構(gòu)具有很好的并發(fā)控制特性和良好的可擴(kuò)展性。其開發(fā)過程如下:首先,設(shè)計(jì)并發(fā)工作流,構(gòu)建工作流定義工具,利用關(guān)系數(shù)據(jù)庫存儲(chǔ)工作流;其次,開發(fā)工作流節(jié)點(diǎn)功能,根據(jù)項(xiàng)目資金監(jiān)管的需要,對工作流上的節(jié)點(diǎn)功能進(jìn)行開發(fā),構(gòu)成節(jié)點(diǎn)功能庫;這些功能主要以動(dòng)態(tài)頁面、JAVA script等形式出現(xiàn),并發(fā)布在WEB上,以供工作流驅(qū)動(dòng);最后,構(gòu)建工作流數(shù)據(jù)模型,每個(gè)工作流動(dòng)態(tài)對應(yīng)若干個(gè)具體的工作流值。研究對工作流值的存儲(chǔ)問題、工作流值和工作流節(jié)點(diǎn)功能的動(dòng)態(tài)捆綁問題等,整個(gè)系統(tǒng)的開發(fā)過程如圖1所示。
(三)工作流節(jié)點(diǎn)上的角色劃分 對于工作流上的用戶,根據(jù)其職能劃分角色,每個(gè)角色作用在不同的工作流節(jié)點(diǎn)上。并可實(shí)施不同的工作流節(jié)點(diǎn)功能。在專項(xiàng)基金跟蹤系統(tǒng)上,角色可以分為:項(xiàng)目負(fù)責(zé)人、子公司、專家、集團(tuán)主管等,通過角色權(quán)限劃分的方法使其工作在工作流的不同節(jié)點(diǎn)上。同時(shí),角色也可以是自動(dòng)程序系統(tǒng),如項(xiàng)目監(jiān)管Agent等。開發(fā)結(jié)構(gòu)采用B/S結(jié)構(gòu),工作流信息、工作流值數(shù)據(jù)模型信息都存放在數(shù)據(jù)庫服務(wù)器上。工作流節(jié)點(diǎn)功能集存放在業(yè)務(wù)邏輯服務(wù)器上。用戶通過瀏覽器和INTERNET訪問業(yè)務(wù)邏輯服務(wù)器,業(yè)務(wù)邏輯服務(wù)器根據(jù)其角色以及所處工作流的階段返回相應(yīng)的頁面和邏輯功能,供用戶使用。系統(tǒng)配置結(jié)構(gòu)圖如圖2所示。圖中虛線為網(wǎng)絡(luò)物理訪問結(jié)構(gòu),實(shí)線為邏輯結(jié)構(gòu)。
二、工作流概況
(一)工作流定義 一是工作流節(jié)點(diǎn)。工作流節(jié)點(diǎn)結(jié)構(gòu)如下:工作流節(jié)點(diǎn)(工作流號(hào)碼WFN,工作流類型WFNT,工作流節(jié)點(diǎn)編號(hào)NODEN,工作流節(jié)點(diǎn)名稱NODENM,上游節(jié)點(diǎn)集合UPSET,上游節(jié)點(diǎn)同步類型SYST,下游節(jié)點(diǎn)集合DOWNSET,下游節(jié)點(diǎn)并發(fā)類型PT,節(jié)點(diǎn)時(shí)間段TS,節(jié)點(diǎn)功能集合FUCSET,節(jié)點(diǎn)功能掩碼集FUCMASKSET)。其中,工作流號(hào)碼WFN為該工作節(jié)點(diǎn)所處的工作流編號(hào),工作流號(hào)是工作流生存的唯一標(biāo)志;工作流類型WFNT為所處工作流的類型,具體取值為:線性、無回路層次型、圖型;工作流節(jié)點(diǎn)編號(hào)NODEN,為一個(gè)基本節(jié)點(diǎn)的唯一標(biāo)志符,是構(gòu)成工作流的基本單位;工作流節(jié)點(diǎn)名稱NODENM。為節(jié)點(diǎn)的語義描述;上游節(jié)點(diǎn)集合UPSET載該工作流節(jié)點(diǎn)的上游相鄰節(jié)點(diǎn)的集合,通常上游鄰節(jié)點(diǎn)可以為1個(gè)或?yàn)槎鄠€(gè);上游節(jié)點(diǎn)同步類型SYST如果上游鄰近節(jié)點(diǎn)為多個(gè),那么SYST=1表示只有所有上游節(jié)點(diǎn)的輸出信息都到來后,本功能節(jié)點(diǎn)方可工作;當(dāng)SYST=0表示無須同步;下游節(jié)點(diǎn)集合DOWNSET為指向下游節(jié)點(diǎn)的工作流節(jié)點(diǎn)集合;下游節(jié)點(diǎn)并發(fā)類型PT表示下游節(jié)點(diǎn)對其信息要求的緊迫程度,是一個(gè)令牌值,其值越大緊迫度越高;節(jié)點(diǎn)時(shí)間段TS定義本工作流節(jié)點(diǎn)的最大持續(xù)時(shí)間段,從上游傳來的信息必須在TS內(nèi)完成,否則將視為無效的處理;節(jié)點(diǎn)功能集合FUCSET定義該工作流節(jié)點(diǎn)的所具備的功能集合,在本文中是指一組URL頁面集;節(jié)點(diǎn)功能掩碼集FUCMASKSET通過掩碼來定義功能的執(zhí)行次序和有效性。二是工作流框架作流框架是二元組WFF(WFNS,V),其中WFNS為工作流節(jié)點(diǎn)的集合,V為以WFNS中的節(jié)點(diǎn)為端點(diǎn)的有向邊的集合。三是工作流的創(chuàng)建。已知已經(jīng)構(gòu)建了角色集合RS,并賦予RS中每個(gè)元素一個(gè)功能集合,同時(shí)為每個(gè)功能開發(fā)業(yè)務(wù)邏輯和工作流數(shù)據(jù)模型。構(gòu)建工作流的步驟如下:(1)對應(yīng)用的主要模塊功能進(jìn)行分析、抽象,得到功能模塊集合MS;(2)對MS中的每個(gè)元素E構(gòu)建工作流節(jié)點(diǎn):{對E的每個(gè)功能和業(yè)務(wù)邏輯建立映射,形成該工作流節(jié)點(diǎn)的FUCSET;填寫節(jié)點(diǎn)時(shí)間段Ts、節(jié)點(diǎn)功能集合FUCSET、節(jié)點(diǎn)功能掩碼集FUCMASKSET};(3)通過(2)獲得工作流節(jié)點(diǎn)集合WNFS;(4)構(gòu)建工作流初始節(jié)點(diǎn)集合S0和最終節(jié)點(diǎn)集合SF;置WNFS=WNFS-SO-SF;(5)備份SO和SF;置TMP=WNFS SF;(6)當(dāng)TMP不為空時(shí),做:{對s0中的所有元素,按照業(yè)務(wù)語義,從TMP中構(gòu)造其下游節(jié)點(diǎn)集DOWNSET;置下游節(jié)點(diǎn)并發(fā)類型PT,節(jié)點(diǎn)時(shí)間段TS;并置SO=SO DOWNSET,TMP=TMP-DOWNSET};(7)恢復(fù)SO,置TMP=WNFS SO;(8)當(dāng)TMP不為空時(shí),做:{對SF中的所有元索,按照業(yè)務(wù)語義,從TMP中構(gòu)造其上游節(jié)點(diǎn)集UPWNSET置上游節(jié)點(diǎn)同步類型SYST;并置SF=SF DOWNSET,TMP=TMP-DOWNSET};(9)恢復(fù)SF;(10)從SO出發(fā),對工作流上的所有工作節(jié)點(diǎn),做:{填寫工作流號(hào)碼WFN,工作流類型WFNT,工作流節(jié)點(diǎn)編號(hào)NODEN,工作流節(jié)點(diǎn)名稱NODENM},(11)工作流構(gòu)造結(jié)束。
隨著我國經(jīng)濟(jì)的市場化和國際化,通過重構(gòu)、兼并而形成的集團(tuán)已經(jīng)成為提高競爭力的主要手段。同時(shí),集團(tuán)信息化程度日益提高,造就了許多版本和廠家的信息軟件系統(tǒng)和數(shù)據(jù)系統(tǒng)。此外集團(tuán)的項(xiàng)目資金監(jiān)管已經(jīng)成為集團(tuán)管理行為中的一個(gè)重要部分。面對龐大的、異構(gòu)的財(cái)務(wù)和信息系統(tǒng),要實(shí)現(xiàn)項(xiàng)目資金的統(tǒng)一、實(shí)時(shí)地監(jiān)管是一個(gè)巨大的挑戰(zhàn)。在集團(tuán)項(xiàng)目資金監(jiān)管系統(tǒng)中,存在跨INTERNET或INTRANET的多個(gè)并發(fā)信息,這些信息按照一定的策略,從各個(gè)被監(jiān)管的子系統(tǒng)逐級(jí)流動(dòng)。信息在流動(dòng)過程中具有明顯的時(shí)序特性和并發(fā)特性,因此可以采用并發(fā)工作流技術(shù)來實(shí)現(xiàn)集團(tuán)項(xiàng)目資金的監(jiān)管,但目前有關(guān)集團(tuán)項(xiàng)目資金數(shù)據(jù)監(jiān)管的研究不多見。本文利用異構(gòu)數(shù)據(jù)表示機(jī)制、工作流理論,針對分布在INTERNET和INTRANET上的項(xiàng)目資金信息,研究集團(tuán)的項(xiàng)目資金監(jiān)管系統(tǒng)的實(shí)現(xiàn)方法,對提高集團(tuán)的生產(chǎn)效率。降低企業(yè)成本有著現(xiàn)實(shí)意義。
一、基于并發(fā)工作流的開發(fā)模式
(一)傳統(tǒng)的開發(fā)技術(shù)模式 即通過需求分析、總體設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、模塊設(shè)計(jì)、測試等常規(guī)步驟,這樣獲得的系統(tǒng)具有很大的局限性,如并發(fā)控制問題將和應(yīng)用程序密切相關(guān)。
(二)并發(fā)數(shù)據(jù)流的模式 采用并發(fā)工作流為主控結(jié)構(gòu)、采用傳統(tǒng)模塊技術(shù)為數(shù)據(jù)流的功能擴(kuò)展,這樣所有功能都是架落在并發(fā)數(shù)據(jù)流上,這種結(jié)構(gòu)具有很好的并發(fā)控制特性和良好的可擴(kuò)展性。其開發(fā)過程如下:首先,設(shè)計(jì)并發(fā)工作流,構(gòu)建工作流定義工具,利用關(guān)系數(shù)據(jù)庫存儲(chǔ)工作流;其次,開發(fā)工作流節(jié)點(diǎn)功能,根據(jù)項(xiàng)目資金監(jiān)管的需要,對工作流上的節(jié)點(diǎn)功能進(jìn)行開發(fā),構(gòu)成節(jié)點(diǎn)功能庫;這些功能主要以動(dòng)態(tài)頁面、JAVA script等形式出現(xiàn),并發(fā)布在WEB上,以供工作流驅(qū)動(dòng);最后,構(gòu)建工作流數(shù)據(jù)模型,每個(gè)工作流動(dòng)態(tài)對應(yīng)若干個(gè)具體的工作流值。研究對工作流值的存儲(chǔ)問題、工作流值和工作流節(jié)點(diǎn)功能的動(dòng)態(tài)捆綁問題等,整個(gè)系統(tǒng)的開發(fā)過程如圖1所示。
(三)工作流節(jié)點(diǎn)上的角色劃分 對于工作流上的用戶,根據(jù)其職能劃分角色,每個(gè)角色作用在不同的工作流節(jié)點(diǎn)上。并可實(shí)施不同的工作流節(jié)點(diǎn)功能。在專項(xiàng)基金跟蹤系統(tǒng)上,角色可以分為:項(xiàng)目負(fù)責(zé)人、子公司、專家、集團(tuán)主管等,通過角色權(quán)限劃分的方法使其工作在工作流的不同節(jié)點(diǎn)上。同時(shí),角色也可以是自動(dòng)程序系統(tǒng),如項(xiàng)目監(jiān)管Agent等。開發(fā)結(jié)構(gòu)采用B/S結(jié)構(gòu),工作流信息、工作流值數(shù)據(jù)模型信息都存放在數(shù)據(jù)庫服務(wù)器上。工作流節(jié)點(diǎn)功能集存放在業(yè)務(wù)邏輯服務(wù)器上。用戶通過瀏覽器和INTERNET訪問業(yè)務(wù)邏輯服務(wù)器,業(yè)務(wù)邏輯服務(wù)器根據(jù)其角色以及所處工作流的階段返回相應(yīng)的頁面和邏輯功能,供用戶使用。系統(tǒng)配置結(jié)構(gòu)圖如圖2所示。圖中虛線為網(wǎng)絡(luò)物理訪問結(jié)構(gòu),實(shí)線為邏輯結(jié)構(gòu)。
二、工作流概況
(一)工作流定義 一是工作流節(jié)點(diǎn)。工作流節(jié)點(diǎn)結(jié)構(gòu)如下:工作流節(jié)點(diǎn)(工作流號(hào)碼WFN,工作流類型WFNT,工作流節(jié)點(diǎn)編號(hào)NODEN,工作流節(jié)點(diǎn)名稱NODENM,上游節(jié)點(diǎn)集合UPSET,上游節(jié)點(diǎn)同步類型SYST,下游節(jié)點(diǎn)集合DOWNSET,下游節(jié)點(diǎn)并發(fā)類型PT,節(jié)點(diǎn)時(shí)間段TS,節(jié)點(diǎn)功能集合FUCSET,節(jié)點(diǎn)功能掩碼集FUCMASKSET)。其中,工作流號(hào)碼WFN為該工作節(jié)點(diǎn)所處的工作流編號(hào),工作流號(hào)是工作流生存的唯一標(biāo)志;工作流類型WFNT為所處工作流的類型,具體取值為:線性、無回路層次型、圖型;工作流節(jié)點(diǎn)編號(hào)NODEN,為一個(gè)基本節(jié)點(diǎn)的唯一標(biāo)志符,是構(gòu)成工作流的基本單位;工作流節(jié)點(diǎn)名稱NODENM。為節(jié)點(diǎn)的語義描述;上游節(jié)點(diǎn)集合UPSET載該工作流節(jié)點(diǎn)的上游相鄰節(jié)點(diǎn)的集合,通常上游鄰節(jié)點(diǎn)可以為1個(gè)或?yàn)槎鄠€(gè);上游節(jié)點(diǎn)同步類型SYST如果上游鄰近節(jié)點(diǎn)為多個(gè),那么SYST=1表示只有所有上游節(jié)點(diǎn)的輸出信息都到來后,本功能節(jié)點(diǎn)方可工作;當(dāng)SYST=0表示無須同步;下游節(jié)點(diǎn)集合DOWNSET為指向下游節(jié)點(diǎn)的工作流節(jié)點(diǎn)集合;下游節(jié)點(diǎn)并發(fā)類型PT表示下游節(jié)點(diǎn)對其信息要求的緊迫程度,是一個(gè)令牌值,其值越大緊迫度越高;節(jié)點(diǎn)時(shí)間段TS定義本工作流節(jié)點(diǎn)的最大持續(xù)時(shí)間段,從上游傳來的信息必須在TS內(nèi)完成,否則將視為無效的處理;節(jié)點(diǎn)功能集合FUCSET定義該工作流節(jié)點(diǎn)的所具備的功能集合,在本文中是指一組URL頁面集;節(jié)點(diǎn)功能掩碼集FUCMASKSET通過掩碼來定義功能的執(zhí)行次序和有效性。二是工作流框架作流框架是二元組WFF(WFNS,V),其中WFNS為工作流節(jié)點(diǎn)的集合,V為以WFNS中的節(jié)點(diǎn)為端點(diǎn)的有向邊的集合。三是工作流的創(chuàng)建。已知已經(jīng)構(gòu)建了角色集合RS,并賦予RS中每個(gè)元素一個(gè)功能集合,同時(shí)為每個(gè)功能開發(fā)業(yè)務(wù)邏輯和工作流數(shù)據(jù)模型。構(gòu)建工作流的步驟如下:(1)對應(yīng)用的主要模塊功能進(jìn)行分析、抽象,得到功能模塊集合MS;(2)對MS中的每個(gè)元素E構(gòu)建工作流節(jié)點(diǎn):{對E的每個(gè)功能和業(yè)務(wù)邏輯建立映射,形成該工作流節(jié)點(diǎn)的FUCSET;填寫節(jié)點(diǎn)時(shí)間段Ts、節(jié)點(diǎn)功能集合FUCSET、節(jié)點(diǎn)功能掩碼集FUCMASKSET};(3)通過(2)獲得工作流節(jié)點(diǎn)集合WNFS;(4)構(gòu)建工作流初始節(jié)點(diǎn)集合S0和最終節(jié)點(diǎn)集合SF;置WNFS=WNFS-SO-SF;(5)備份SO和SF;置TMP=WNFS SF;(6)當(dāng)TMP不為空時(shí),做:{對s0中的所有元素,按照業(yè)務(wù)語義,從TMP中構(gòu)造其下游節(jié)點(diǎn)集DOWNSET;置下游節(jié)點(diǎn)并發(fā)類型PT,節(jié)點(diǎn)時(shí)間段TS;并置SO=SO DOWNSET,TMP=TMP-DOWNSET};(7)恢復(fù)SO,置TMP=WNFS SO;(8)當(dāng)TMP不為空時(shí),做:{對SF中的所有元索,按照業(yè)務(wù)語義,從TMP中構(gòu)造其上游節(jié)點(diǎn)集UPWNSET置上游節(jié)點(diǎn)同步類型SYST;并置SF=SF DOWNSET,TMP=TMP-DOWNSET};(9)恢復(fù)SF;(10)從SO出發(fā),對工作流上的所有工作節(jié)點(diǎn),做:{填寫工作流號(hào)碼WFN,工作流類型WFNT,工作流節(jié)點(diǎn)編號(hào)NODEN,工作流節(jié)點(diǎn)名稱NODENM},(11)工作流構(gòu)造結(jié)束。