任偉建,王春蕾,霍鳳財
(東北石油大學(xué) 電氣信息工程學(xué)院,黑龍江 大慶 163318)
目前,油田問題井管理過程采用傳統(tǒng)的人工填報、紙質(zhì)記錄方式,存在工作量大、效率低、實時性差和維護困難的問題。在審批過程中,部門協(xié)作要求高,信息量大且交換頻繁,工作計劃在不同部門之間人工傳遞,造成時間上不必要的損耗。隨著工作量的逐漸增加和管理模式的不斷細(xì)化,問題井管理方式急需改進(jìn),配備基于工作流技術(shù)的油田問題井管理系統(tǒng)已迫在眉睫。在全球范圍內(nèi),對工作流的技術(shù)研究以及相關(guān)的產(chǎn)品開發(fā)進(jìn)入了更為繁榮的階段,更多更新的技術(shù)被集成進(jìn)來,文件管理系統(tǒng)、數(shù)據(jù)庫、電子郵件、移動式計算、Internet服務(wù)等已被容納到工作流管理系統(tǒng)之中[1-2]。目前,工作流的發(fā)展趨勢是基于Web的部署、分布式的工作流處理、事務(wù)管理以及支持工作流建模的分析與仿真[3-4]。國內(nèi)外現(xiàn)有很多公司致力于開發(fā)商業(yè)化的工作流系統(tǒng),除了IBM的MQSeries WorkFlow, Action Technologies公司的Metro等專業(yè)平臺外,主要利用SUN的J2EE和Microsoft的.Net等通用平臺開發(fā)工作流應(yīng)用[5-7]。筆者利用.Net平臺,設(shè)計了一種基于工作流技術(shù)結(jié)合多數(shù)據(jù)融合技術(shù)、動態(tài)數(shù)據(jù)加載技術(shù)的油田問題井管理系統(tǒng)。該系統(tǒng)立足現(xiàn)有的管理習(xí)慣和工作流程,將單井動、靜態(tài)設(shè)備信息引入到問題井作業(yè)數(shù)據(jù)庫,最終形成一套完整的動、靜態(tài)數(shù)據(jù)庫,實現(xiàn)問題井?dāng)?shù)據(jù)錄入、流程信息查詢、問題發(fā)生率統(tǒng)計和超限提醒功能。工作人員通過不同的訪問權(quán)限,進(jìn)入相應(yīng)的管理界面,完成問題井核實單的上報、審批等業(yè)務(wù)流程,能夠?qū)崟r、直觀、高效地了解問題井的運行情況,切實提高工作效率和管理水平。
工作流是一類能夠完全或者部分自動執(zhí)行的經(jīng)營過程,它根據(jù)一系列過程規(guī)則,使文檔、信息或任務(wù)能夠在不同的執(zhí)行者之間傳遞、執(zhí)行[8]。工作流系統(tǒng)也稱為工作流管理系統(tǒng),圖1給出了工作流管理聯(lián)盟提出的工作流管理系統(tǒng)參考模型,該模型定義了6個基本模塊、5個接口,給出了抽象的工作流管理系統(tǒng)的功能組成部件及工作流服務(wù)的核心[9-10],它借助于一個或多個工作流執(zhí)行引擎,激活并解釋工作流的執(zhí)行,并與外部的應(yīng)用程序進(jìn)行交互,完成工作流過程實例的創(chuàng)建、執(zhí)行與管理。
圖1 工作流管理系統(tǒng)模型示意
工作流管理系統(tǒng)的實現(xiàn)原理: 通過分析、建模及系統(tǒng)定義,從企業(yè)業(yè)務(wù)流程中抽象出工作流模型,使用工作流定義的輔助工具編輯并建立工作流模型庫;生成模型實例后,交由工作流引擎解釋執(zhí)行[11];工作流引擎按照建立階段的工作流程定義,調(diào)度完成任務(wù)所需要的數(shù)據(jù)和角色等資源,控制任務(wù)的開始、結(jié)束及其內(nèi)部運行狀態(tài),維護工作流中文檔和數(shù)據(jù)的流向,為工作流程提供運行環(huán)境[12]。圖2所示為工作流管理系統(tǒng)實現(xiàn)原理。
該系統(tǒng)采用工作流技術(shù),開發(fā)環(huán)境為Windows Server 2003(sp4) + IIS6.0 +Oracle 11g。網(wǎng)頁框架、布局設(shè)計以及靜態(tài)網(wǎng)頁部分采用的開發(fā)工具為Microsoft公司的Visual Studio 2008,圖像處理使用Photo-shop軟件。
問題井管理系統(tǒng)分為三大功能模塊: 1) 流程管理模塊,根據(jù)工作人員的不同權(quán)限,實現(xiàn)問題井的上報、流轉(zhuǎn)和審批等業(yè)務(wù)流程;2) 狀態(tài)管理模塊,對完成審核的問題井進(jìn)行數(shù)據(jù)錄入、流程信息查詢及問題發(fā)生率統(tǒng)計,將統(tǒng)計結(jié)果以GridView自定義報表和圖形顯示,為問題井管理提供數(shù)據(jù)支持;3) 系統(tǒng)管理,對處于審核狀態(tài)的問題井進(jìn)行限期,超出審批時間則進(jìn)行超限提醒,完成用戶添加和權(quán)限配置。系統(tǒng)功能架構(gòu)如圖3所示。
圖3 系統(tǒng)功能架構(gòu)示意
2.2.1流程管理模塊
1) 問題井上報。問題井上報模塊采用工作流引擎技術(shù),用戶通過客戶端的流程初始化、獲取和結(jié)束等操作,將關(guān)于流程控制的請求發(fā)送到外部接口,判斷請求類型,調(diào)用相應(yīng)的處理組件完成數(shù)據(jù)庫中與本次請求相關(guān)的讀寫和更改操作,并將結(jié)果返回。工作流引擎在執(zhí)行過程中維護工作流的控制數(shù)據(jù),通過工作流控制數(shù)據(jù)來辨別每個過程或活動實例的狀態(tài),判斷流程下步到達(dá)的范圍,推動工作流過程的執(zhí)行。工作流引擎流程如圖4所示。
2) 問題井審核。在問題井管理過程中,通過人工填報問題井核實單,逐級傳遞完成審核并下發(fā)工作計劃,造成大量人力、物力及工作時間的浪費,效率非常低下,本文采用工作流驅(qū)動技術(shù)實現(xiàn)問題井的審批流程。通過分析各個模塊工作流程,分析流程中的數(shù)據(jù),得出工作流驅(qū)動的模型,其體系結(jié)構(gòu)如圖5所示。工作流參考模型可以抽象地表示工作流管理系統(tǒng)的功能組成部件和接口,建立起互動操作的公共平臺[13-14]。由圖5可以看出,工作流管理系統(tǒng)主要由過程信息、組織信息和資源信息三部分組件構(gòu)成。過程信息用來定義和描述工作流的過程邏輯,是整個工作流模型的基礎(chǔ)與核心;組織信息為組織結(jié)構(gòu)建模,表述工作流模型中有關(guān)人員的視圖和內(nèi)部層次關(guān)系;資源信息用來定義工作流運行過程中需要用到的數(shù)據(jù)。
流程管理根據(jù)工作人員的不同權(quán)限,顯示不同的界面,通過提取數(shù)據(jù)庫中的動、靜態(tài)數(shù)據(jù),完成問題井核實單的上報,經(jīng)由相關(guān)人員審批完成歸檔,并記錄相應(yīng)流程節(jié)點的信息。
圖4 工作流引擎流程示意
圖5 工作流驅(qū)動模型示意
2.2.2狀態(tài)管理模塊
1) 問題井?dāng)?shù)據(jù)錄入。問題井?dāng)?shù)據(jù)錄入采用ADO.NET技術(shù)讀取指定的XML文件,提取問題井基本信息顯示到數(shù)據(jù)頁面,并在頁面錄入新數(shù)據(jù)。通過ADO的Connection對象和ODBC與數(shù)據(jù)庫建立鏈接,執(zhí)行指定的SQL語句,利用XMLReaders 顯示對 XML 數(shù)據(jù)流的訪問,生成數(shù)據(jù)集。DOM將預(yù)先定義好的XSL文件中的樣式信息添加到XML數(shù)據(jù)中,使其變成可以在瀏覽器上顯示的樣式化數(shù)據(jù),完成數(shù)據(jù)交換[15]。ADO與XML數(shù)據(jù)交換模型如圖6所示。
圖6 ADO與XML數(shù)據(jù)交換模型示意
問題井?dāng)?shù)據(jù)錄入自動提取完成審批的問題井,工程技術(shù)人員通過選定問題井的井號,顯示問題井的基本信息,根據(jù)問題井的設(shè)計及完成情況,依次完成問題井的設(shè)計錄入、開工錄入、完工錄入,系統(tǒng)自動在數(shù)據(jù)庫中更新當(dāng)前節(jié)點處的用戶和錄入時間。
2) 流程信息查詢。流程信息查詢利用多數(shù)據(jù)融合技術(shù),設(shè)計了1個包括三個層次(數(shù)據(jù)、信息和決策)和兩個過程(抽象、歸類)的多數(shù)據(jù)源數(shù)據(jù)融合模型[16],如圖7所示。數(shù)據(jù)層包括單井動、靜態(tài)數(shù)據(jù)庫和作業(yè)數(shù)據(jù)庫等數(shù)據(jù)源,解決不同數(shù)據(jù)類型的格式歸并、關(guān)鍵字匹配等問題;信息層利用數(shù)據(jù)層的數(shù)據(jù)進(jìn)行模式匹配,是具體數(shù)據(jù)模式化過程;決策層是整個系統(tǒng)的高層,主要完成系統(tǒng)中的態(tài)勢評估和決策分析。這三個層次通過兩個過程銜接起來,數(shù)據(jù)層經(jīng)過抽象過程過渡到信息層,信息層的模型由歸類過程完成態(tài)勢評估和決策任務(wù)。
通過多數(shù)據(jù)融合模型,將單井動、靜態(tài)數(shù)據(jù)和作業(yè)數(shù)據(jù)進(jìn)行合成,完成問題井各項數(shù)據(jù)的引用和維護,并使設(shè)計所需數(shù)據(jù)以固定格式直接提取,通過水晶報表生成打印模板,根據(jù)用戶輸入的篩選條件過濾數(shù)據(jù)集中的數(shù)據(jù),填充報表模板并生成所需要的報表文件。通過對模板解析出的不同標(biāo)簽,執(zhí)行導(dǎo)出打印操作,便于查閱。問題井及施工情況管理界面如圖8所示。
圖7 多數(shù)據(jù)融合模型示意
圖8 問題井及施工情況管理界面示意
3) 問題井發(fā)生率統(tǒng)計。問題井發(fā)生率統(tǒng)計應(yīng)用復(fù)雜SQL語句技術(shù)和臨時表技術(shù),復(fù)雜SQL語句由基礎(chǔ)SQL語句復(fù)合嵌套、排列組合而成,對Oracle數(shù)據(jù)庫中的問題井發(fā)生情況進(jìn)行定制查詢,查詢結(jié)果緩存在數(shù)據(jù)庫臨時表中。臨時表技術(shù)用于下述情況: 多表鏈接查詢中數(shù)據(jù)表結(jié)構(gòu)復(fù)雜、內(nèi)容繁多;鏈接操作對數(shù)據(jù)量大的表頻繁訪問但范圍固定集中;訪問得到的結(jié)果集非常小[17-18]。臨時表避免了傳統(tǒng)數(shù)據(jù)鏈接中對源數(shù)據(jù)表的頻繁讀操作,將對大數(shù)據(jù)量表的訪問改為對臨時表的鏈接運算。作為數(shù)據(jù)處理的中間表,在會話結(jié)束后,臨時表中的數(shù)據(jù)被清空,從而減少系統(tǒng)開銷,提高大數(shù)據(jù)量的實時處理性能。
通過合并單元格,自定義多行多列的GridView不規(guī)則表頭,將查詢結(jié)果按照礦別、隊別、井別顯示在GridView控件中。首先清空并隱藏GridView默認(rèn)的表格頭行,創(chuàng)建字符串?dāng)?shù)組存放表頭單元格文本作為標(biāo)題,在標(biāo)題文本中插入換行符來形成多行標(biāo)題。其次在每個表頭單元格的屬性中設(shè)置Rowspan和Colspan的數(shù)值來合并對應(yīng)行和列中的單元格,以達(dá)到自定義Gridview不規(guī)則表頭顯示數(shù)據(jù)的目的。圖9所顯示的是問題井發(fā)生率統(tǒng)計界面。
4) 圖表可視化。圖表可視化采用ExtJS技術(shù),ExtJS是一種通過JavaScript動態(tài)創(chuàng)建頁面標(biāo)記元素的Ajax框架。ExtJS由一系列類庫組成, 在頁面成功加載ExtJS庫后,Ext.data.DataProxy獲取服務(wù)器端或本地的問題井相關(guān)數(shù)據(jù),數(shù)據(jù)讀取器格式化數(shù)據(jù)并將其解析為Ext.data.Record的數(shù)據(jù)集,存儲在Ext.data.Store中,通過調(diào)用 ExtJS 的類及圖表控件將問題井?dāng)?shù)據(jù)進(jìn)行可視化[19-20]。問題井統(tǒng)計表會隨同圖形、曲線發(fā)布,圖形、曲線隨著數(shù)據(jù)的變化而改變,用戶可以準(zhǔn)確、直觀地獲取生產(chǎn)數(shù)據(jù)信息,并根據(jù)數(shù)據(jù)變化趨勢做出相應(yīng)的分析和決策。
圖9 問題井發(fā)生率統(tǒng)計界面示意
2.2.3系統(tǒng)管理模塊
1) 系統(tǒng)超限提醒。為了避免工作人員疏忽影響問題井上報和審批進(jìn)程,超限提醒模塊利用流程監(jiān)控、業(yè)務(wù)提醒技術(shù),啟動在本地駐留的監(jiān)控程序,自動采集問題井進(jìn)度和數(shù)據(jù)庫操作信息,監(jiān)控和管理問題井的節(jié)點和狀態(tài)。當(dāng)數(shù)據(jù)庫中的內(nèi)容發(fā)生了申請、設(shè)計、審批、分發(fā)等操作時,工作流程處于相應(yīng)的節(jié)點,當(dāng)該節(jié)點的用戶登錄后,監(jiān)控程序自動更新問題井發(fā)生情況,對超過期限未上報、待審核的問題井形成預(yù)警通知,提醒用戶,并能監(jiān)控整個流程發(fā)生的變化,使各項工作流程順利推進(jìn)。
2) 用戶管理。該功能實現(xiàn)了人員維護和權(quán)限設(shè)定。人員維護完成人員信息,人員部門信息的錄入、刪除、修改等管理;權(quán)限設(shè)定用于分配和管理工作人員對流程中各個節(jié)點的權(quán)限,由于系統(tǒng)權(quán)限設(shè)置的不同,系統(tǒng)呈現(xiàn)給用戶的菜單及功能也不相同,根據(jù)工作流的特點,系統(tǒng)可以依據(jù)業(yè)務(wù)流程方向個性化定制用戶的權(quán)限,配置人員的職務(wù)信息和管理范圍,實現(xiàn)靈活的權(quán)限分配及資源授權(quán)原則,打破了傳統(tǒng)的固定分級模式,提高了流程靈活性和系統(tǒng)可適應(yīng)性。
筆者研發(fā)的油田問題井管理系統(tǒng),是在工作流管理系統(tǒng)模型上結(jié)合油田問題井管理需求開發(fā)的標(biāo)準(zhǔn)化系統(tǒng)。文中利用工作流驅(qū)動技術(shù),通過分析審批流程數(shù)據(jù),得出工作流驅(qū)動模型,實現(xiàn)問題井核實單上報和逐級審批;結(jié)合多數(shù)據(jù)融合技術(shù)以及ADO.NET技術(shù)實現(xiàn)問題井?dāng)?shù)據(jù)錄入、流程信息查詢、超限提醒和導(dǎo)出打印等功能,通過自定義多行多列的不規(guī)則GridView表頭實現(xiàn)問題發(fā)生率統(tǒng)計,利用ExtJS技術(shù)完成圖表可視化展示;系統(tǒng)管理可以個性化定制審批流程中的用戶權(quán)限,從而體現(xiàn)出流程的靈活性。該系統(tǒng)讓用戶直觀、方便、快捷地了解問題井的運行狀態(tài),為油田生產(chǎn)提供數(shù)據(jù)支持。通過使用該系統(tǒng)實現(xiàn)對問題井信息化、可視化、實時化管理,為問題井的高效管理提供了保障。
參考文獻(xiàn):
[1]龍軍一.基于自定義工作流的辦公自動化系統(tǒng)的設(shè)計與實現(xiàn)[D].華南理工大學(xué),2012.
[2]李濤,朱一凡,魏洪濤.基于.Net的工作流管理系統(tǒng)設(shè)計[J].計算機工程與設(shè)計,2005,26(10): 2798-2801.
[3]陳洪娜,祖旭,周峰.工作流技術(shù)研究發(fā)展?fàn)顩r、研究內(nèi)容及趨勢[J].重慶工學(xué)院學(xué)報,2006,20(02): 65-69.
[4]范玉順.工作流管理技術(shù)研究與產(chǎn)品現(xiàn)狀及發(fā)展趨勢[J].計算機集成制造系統(tǒng),2000,6(01): 1-7.
[5]胡華,宋荷慶,王回進(jìn).面向 Web 的工作流管理[J].計算機工程與設(shè)計,2002(04): 31-33.
[6]戴小平,周松.一種基于Web服務(wù)的工作流協(xié)作系統(tǒng)模型[J].工業(yè)控制計算機,2013(02): 79-81.
[7]張濤,戰(zhàn)洪飛,孫靜,等.基于Web的企業(yè)工作流管理系統(tǒng)的研究[J].計算機應(yīng)用研究,2002(05): 130-133.
[8]王志曉,呂林濤,門文耀.基于ASP.NET技術(shù)和工作流模型的網(wǎng)上審批系統(tǒng)[J].計算機工程,2004,30(01): 83-84.
[9]胡衛(wèi)軍,陳傳波.通用工作流管理模式的分折與研究[M].計算機工程與應(yīng)用,1999,7(03): 32-34.
[10]汪家常,徐昶,季小明.基于工作流的高校學(xué)費管理系統(tǒng)研究[J].計算機應(yīng)用與軟件,2012(06): 294-297.
[11]楊明順,韓周鵬,余婷.一種輕型工作流引擎的設(shè)計與實現(xiàn)[J].西安理工大學(xué)學(xué)報,2013(01): 20-26.
[12]范會聯(lián).基于自定義表單的工作流過程定義分析與設(shè)計[J].計算機應(yīng)用研究,2009(09): 3372-3374.
[13]楊雨圖,緱斌麗.基于工作流的技術(shù)文件審查系統(tǒng)設(shè)計與實現(xiàn)[J].制造業(yè)自動化,2011(33): 28-34.
[14]毛根生,毛波影,王丹亞.文檔管理系統(tǒng)中的工作流技術(shù)[J].浙江大學(xué)學(xué)報(工學(xué)版),2000,34(01): 60-64.
[15]梅中輝,經(jīng)亞枝..NET技術(shù)中的數(shù)據(jù)訪問技術(shù)——ADO.NET[J].微計算機信息,2003,19(01): 70-71.
[16]朱付保,徐顯景,霍曉齊.多源數(shù)據(jù)融合技術(shù)在后備干部管理系統(tǒng)中的應(yīng)用[J].微型電腦應(yīng)用,2014,30(01): 10-12.
[17]胡配祥,張成叔,陳良敏.SQL臨時表在科研管理系統(tǒng)數(shù)據(jù)處理中的應(yīng)用[J].洛陽理工學(xué)院學(xué)報(自然科學(xué)版),2011,21(02): 45-48.
[18]許寧.臨時表在數(shù)據(jù)庫中的應(yīng)用[J].沈陽化工學(xué)院學(xué)報,2009,20(03): 234-236.
[19]鞠鳳娟,吳志峰.EXT技術(shù)在Web界面設(shè)計與實現(xiàn)中的應(yīng)用研究[J].計算機與現(xiàn)代化,2008(11): 102-104.
[20]王曉燕,宋紹云.EXT的組件體系結(jié)構(gòu)研究[J].電腦知識與技術(shù),2011,7(09): 1999-2001.