本站小編為你精心準(zhǔn)備了企業(yè)信息微型流系統(tǒng)設(shè)計(jì)參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
中小企業(yè)作為最大的企業(yè)群體,在企業(yè)信息化建設(shè)方面存在迫切需求的同時(shí),也對(duì)信息化解決方案提出了獨(dú)特的要求。一方面中小企業(yè)希望系統(tǒng)能靈活易用,支持快速部署。另一方面又希望信息化服務(wù)的價(jià)格比較低廉,而且大量傳統(tǒng)中小企業(yè)對(duì)軟件的高額開發(fā)和維護(hù)成本缺少足夠的認(rèn)識(shí),這樣在信息化解決方案中盡可能地使用一些輕量級(jí)的解決方案。
我們?cè)陂L(zhǎng)期的中小企業(yè)信息化實(shí)踐中,逐漸采用了一套微型的工作流系統(tǒng),在開發(fā)和部署輕量級(jí)的前提下,為中小企業(yè)的信息化保留了足夠的靈活性和可用性。微型工作流系統(tǒng)同樣提供了比較完整的工作流體系結(jié)構(gòu),主要包括:數(shù)據(jù)存儲(chǔ),流程引擎,表單生成器,可視化流程設(shè)計(jì)器。
一、數(shù)據(jù)存儲(chǔ)設(shè)計(jì)
工作流系統(tǒng)的數(shù)據(jù)存儲(chǔ)設(shè)計(jì)主要考慮流程數(shù)據(jù)存取模型,即如何組織流程模板中定義的數(shù)據(jù),如何存取流程數(shù)據(jù)。設(shè)計(jì)的另外一個(gè)方面是設(shè)計(jì)工作流系統(tǒng)本身運(yùn)行所需要的其他數(shù)據(jù)。
1.數(shù)據(jù)存儲(chǔ)設(shè)計(jì)概述
數(shù)據(jù)存儲(chǔ)設(shè)計(jì)中對(duì)工作流系統(tǒng)必不可少的數(shù)據(jù)表分為三個(gè)部分:
(1)組織機(jī)構(gòu)表
(2)流程系統(tǒng)支撐表
流程注冊(cè)表:存放目前系統(tǒng)中部署的流程及其信息;
流程任務(wù)表:存放系統(tǒng)中所有的流程任務(wù);
通知信息表:存放系統(tǒng)郵件,系統(tǒng)通知等;
流程角色表:存放所有流程中的角色;
角色用戶映射表:存放角色映射的具體用戶。
(3)流程數(shù)據(jù)表
流程數(shù)據(jù)表:流程數(shù)據(jù)表用來(lái)存放已部署流程的流程數(shù)據(jù);
簽批數(shù)據(jù)表:存放所有流程簽批數(shù)據(jù)。
2.流程數(shù)據(jù)存取模型
流程支持的數(shù)據(jù)類型很多,為了增加系統(tǒng)的靈活性,系統(tǒng)通過(guò)配置文件來(lái)決定數(shù)據(jù)類型在流程數(shù)據(jù)庫(kù)創(chuàng)建時(shí)使用的數(shù)據(jù)字段類型。這個(gè)特性還可以規(guī)避數(shù)據(jù)庫(kù)類型對(duì)系統(tǒng)的限制,在部署不同數(shù)據(jù)庫(kù)時(shí)可以修改該配置文件來(lái)映射到該數(shù)據(jù)庫(kù)的自動(dòng)類型定義。比如使用Oracle數(shù)據(jù)庫(kù)時(shí)可以如下定義:
text=varchar2(500)
list=varchar2(32)
其中等式左邊是模板中使用的數(shù)據(jù)類型,右邊是創(chuàng)建流程數(shù)據(jù)表時(shí)使用的數(shù)據(jù)庫(kù)字段類型。
二、模板系統(tǒng)
模板是表達(dá)流程的載體,其表達(dá)能力,擴(kuò)充能力和可讀性在微型工作流應(yīng)用中顯得非常重要。我們采用XML標(biāo)注語(yǔ)言作為模板描述語(yǔ)言。XML目前在數(shù)據(jù)交換,配置文件等應(yīng)用方面應(yīng)用非常廣泛,幾乎所有的開發(fā)平臺(tái)都很好的支持XML,同時(shí)XML作為標(biāo)注語(yǔ)言非常易于擴(kuò)充,方便編輯和部署。模板系統(tǒng)包括兩個(gè)大的方面:流轉(zhuǎn)關(guān)系和數(shù)據(jù)描述。
為了方便說(shuō)明,下面是截取的模板的DTD片段:
流程模板中定義如下關(guān)系:順序,并行,條件分支,跳轉(zhuǎn)。
Sequence:定義順序關(guān)系。
Parallel:定義并行關(guān)系。
If:定義條件分支。
任務(wù)包括兩種:task元素定義人工執(zhí)行任務(wù),agent元素定義各種自動(dòng)執(zhí)行的任務(wù),而且可以通過(guò)agent元素?cái)U(kuò)展流程中的各種個(gè)性化需求。比如目前最常用的一些功能都可以通過(guò)定義不同的agent元素,引入到工作流定義中:操作外部業(yè)務(wù)數(shù)據(jù),Email發(fā)送,短信提醒,文件操作等。
三、流程引擎
引擎作為系統(tǒng)運(yùn)轉(zhuǎn)的核心,我們可以將引擎系統(tǒng)分為如下三個(gè)主要部分:模板加載器,流程管理器,流程驅(qū)動(dòng)器。
1.模板加載器
模板加載器的功能是分析模板文件,將模板配置的流程變?yōu)閮?nèi)部模型存儲(chǔ)在流程管理器中。由于流程支持流轉(zhuǎn)方式的嵌套,比如并行流作為順序流的一個(gè)環(huán)節(jié),而條件分支流又作為并行流的一個(gè)環(huán)節(jié)。引擎內(nèi)部使用樹結(jié)構(gòu)作為流程內(nèi)部的存儲(chǔ)實(shí)體,下面是一個(gè)內(nèi)部存儲(chǔ)結(jié)構(gòu)的示意圖:
圖流程內(nèi)部存儲(chǔ)結(jié)構(gòu)(Inter-StructureOfWorkflowTemplate)
從圖中可以看出,該存儲(chǔ)結(jié)構(gòu)是一種遞歸的形式,所以模板的解析算法也采用了遞歸的方法。
2.流程管理器
流程管理器主要完成已配置流程的內(nèi)部模型維護(hù)和管理。系統(tǒng)啟動(dòng)時(shí)會(huì)有一個(gè)加載所有已配置模板的過(guò)程,在該過(guò)程中模板加載器會(huì)將所有的模板進(jìn)行解析和轉(zhuǎn)換,將轉(zhuǎn)換完成的內(nèi)部模型注冊(cè)到流程管理器中,流程管理器保證和維護(hù)了流程模板的最新版本在內(nèi)存中的映像。
3.流程驅(qū)動(dòng)器
流程驅(qū)動(dòng)器的主要功能是按照流程內(nèi)部模型驅(qū)動(dòng)流程實(shí)例流轉(zhuǎn)。通過(guò)上述的內(nèi)部模型存儲(chǔ)結(jié)構(gòu)可以看出,流程內(nèi)部模型是一個(gè)樹狀結(jié)構(gòu),所有的葉節(jié)點(diǎn)是可執(zhí)行環(huán)節(jié),非葉節(jié)點(diǎn)是邏輯控制的容器類節(jié)點(diǎn)。
流程驅(qū)動(dòng)器也采用單體模式設(shè)計(jì),所有操作都是線程安全的。
四、表單生成器
表單生成器解決工作任務(wù)執(zhí)行時(shí)如何創(chuàng)建給用戶的工作表單的問(wèn)題,主要包含兩個(gè)大的方面:表單布局和表單數(shù)據(jù)操作。表單布局是小型工作流系統(tǒng)和大型工作流系統(tǒng)的重要區(qū)別之一。本系統(tǒng)的表單布局和大型工作流系統(tǒng)有如下重要區(qū)別:
1.用戶不能自定義表單布局,僅僅能在模板中通過(guò)Style屬性控制控件樣式;
2.用戶不能添加自定義的圖形,圖標(biāo)等內(nèi)容;
3.用戶在流程部署后不能調(diào)整數(shù)據(jù)的順序。
五、可視化流程設(shè)計(jì)器
本系統(tǒng)也提供了一個(gè)可視化的流程設(shè)計(jì)器。流程設(shè)計(jì)器為模板提供了一個(gè)圖形化的編輯功能。雖然直接編輯模板是最方便快捷的方式,不過(guò)對(duì)用戶的計(jì)算機(jī)水平有較高的要求,在一般的中小企業(yè)中沒(méi)有專門的IT人員,所以需要提供一個(gè)可視化的流程設(shè)計(jì)器來(lái)簡(jiǎn)化模板的配置工作。
六、結(jié)束語(yǔ)
本文討論了在中小企業(yè)的應(yīng)用中可用的一種工作流系統(tǒng)設(shè)計(jì)。實(shí)踐中我們采用.net平臺(tái)完成了整個(gè)系統(tǒng)的開發(fā),采用技術(shù)完成了表單生成器。整個(gè)系統(tǒng)的開發(fā)規(guī)模為10個(gè)人月,在實(shí)踐中取得了很好的效果,下面是實(shí)踐中的具體情況:
1.企業(yè)規(guī)模:600人
2.部署流程規(guī)模:40個(gè)
3.流程平均部署時(shí)間:3天
4.日均處理流程數(shù):>120個(gè)
5.日均處理任務(wù)數(shù):>1000個(gè)
用戶通過(guò)部署工作流系統(tǒng)大大縮短了流程的部署時(shí)間,同時(shí)大大降低了開發(fā)和擁有成本。