任偉建,王春蕾,霍鳳財
(東北石油大學 電氣信息工程學院,黑龍江 大慶 163318)
目前,油田問題井管理過程采用傳統的人工填報、紙質記錄方式,存在工作量大、效率低、實時性差和維護困難的問題。在審批過程中,部門協作要求高,信息量大且交換頻繁,工作計劃在不同部門之間人工傳遞,造成時間上不必要的損耗。隨著工作量的逐漸增加和管理模式的不斷細化,問題井管理方式急需改進,配備基于工作流技術的油田問題井管理系統已迫在眉睫。在全球范圍內,對工作流的技術研究以及相關的產品開發進入了更為繁榮的階段,更多更新的技術被集成進來,文件管理系統、數據庫、電子郵件、移動式計算、Internet服務等已被容納到工作流管理系統之中[1-2]。目前,工作流的發展趨勢是基于Web的部署、分布式的工作流處理、事務管理以及支持工作流建模的分析與仿真[3-4]。國內外現有很多公司致力于開發商業化的工作流系統,除了IBM的MQSeries WorkFlow, Action Technologies公司的Metro等專業平臺外,主要利用SUN的J2EE和Microsoft的.Net等通用平臺開發工作流應用[5-7]。筆者利用.Net平臺,設計了一種基于工作流技術結合多數據融合技術、動態數據加載技術的油田問題井管理系統。該系統立足現有的管理習慣和工作流程,將單井動、靜態設備信息引入到問題井作業數據庫,最終形成一套完整的動、靜態數據庫,實現問題井數據錄入、流程信息查詢、問題發生率統計和超限提醒功能。工作人員通過不同的訪問權限,進入相應的管理界面,完成問題井核實單的上報、審批等業務流程,能夠實時、直觀、高效地了解問題井的運行情況,切實提高工作效率和管理水平。
工作流是一類能夠完全或者部分自動執行的經營過程,它根據一系列過程規則,使文檔、信息或任務能夠在不同的執行者之間傳遞、執行[8]。工作流系統也稱為工作流管理系統,圖1給出了工作流管理聯盟提出的工作流管理系統參考模型,該模型定義了6個基本模塊、5個接口,給出了抽象的工作流管理系統的功能組成部件及工作流服務的核心[9-10],它借助于一個或多個工作流執行引擎,激活并解釋工作流的執行,并與外部的應用程序進行交互,完成工作流過程實例的創建、執行與管理。

圖1 工作流管理系統模型示意
工作流管理系統的實現原理: 通過分析、建模及系統定義,從企業業務流程中抽象出工作流模型,使用工作流定義的輔助工具編輯并建立工作流模型庫;生成模型實例后,交由工作流引擎解釋執行[11];工作流引擎按照建立階段的工作流程定義,調度完成任務所需要的數據和角色等資源,控制任務的開始、結束及其內部運行狀態,維護工作流中文檔和數據的流向,為工作流程提供運行環境[12]。圖2所示為工作流管理系統實現原理。
該系統采用工作流技術,開發環境為Windows Server 2003(sp4) + IIS6.0 +Oracle 11g。網頁框架、布局設計以及靜態網頁部分采用的開發工具為Microsoft公司的Visual Studio 2008,圖像處理使用Photo-shop軟件。
問題井管理系統分為三大功能模塊: 1) 流程管理模塊,根據工作人員的不同權限,實現問題井的上報、流轉和審批等業務流程;2) 狀態管理模塊,對完成審核的問題井進行數據錄入、流程信息查詢及問題發生率統計,將統計結果以GridView自定義報表和圖形顯示,為問題井管理提供數據支持;3) 系統管理,對處于審核狀態的問題井進行限期,超出審批時間則進行超限提醒,完成用戶添加和權限配置。系統功能架構如圖3所示。

圖3 系統功能架構示意
2.2.1流程管理模塊
1) 問題井上報。問題井上報模塊采用工作流引擎技術,用戶通過客戶端的流程初始化、獲取和結束等操作,將關于流程控制的請求發送到外部接口,判斷請求類型,調用相應的處理組件完成數據庫中與本次請求相關的讀寫和更改操作,并將結果返回。工作流引擎在執行過程中維護工作流的控制數據,通過工作流控制數據來辨別每個過程或活動實例的狀態,判斷流程下步到達的范圍,推動工作流過程的執行。工作流引擎流程如圖4所示。
2) 問題井審核。在問題井管理過程中,通過人工填報問題井核實單,逐級傳遞完成審核并下發工作計劃,造成大量人力、物力及工作時間的浪費,效率非常低下,本文采用工作流驅動技術實現問題井的審批流程。通過分析各個模塊工作流程,分析流程中的數據,得出工作流驅動的模型,其體系結構如圖5所示。工作流參考模型可以抽象地表示工作流管理系統的功能組成部件和接口,建立起互動操作的公共平臺[13-14]。由圖5可以看出,工作流管理系統主要由過程信息、組織信息和資源信息三部分組件構成。過程信息用來定義和描述工作流的過程邏輯,是整個工作流模型的基礎與核心;組織信息為組織結構建模,表述工作流模型中有關人員的視圖和內部層次關系;資源信息用來定義工作流運行過程中需要用到的數據。
流程管理根據工作人員的不同權限,顯示不同的界面,通過提取數據庫中的動、靜態數據,完成問題井核實單的上報,經由相關人員審批完成歸檔,并記錄相應流程節點的信息。

圖4 工作流引擎流程示意

圖5 工作流驅動模型示意
2.2.2狀態管理模塊
1) 問題井數據錄入。問題井數據錄入采用ADO.NET技術讀取指定的XML文件,提取問題井基本信息顯示到數據頁面,并在頁面錄入新數據。通過ADO的Connection對象和ODBC與數據庫建立鏈接,執行指定的SQL語句,利用XMLReaders 顯示對 XML 數據流的訪問,生成數據集。DOM將預先定義好的XSL文件中的樣式信息添加到XML數據中,使其變成可以在瀏覽器上顯示的樣式化數據,完成數據交換[15]。ADO與XML數據交換模型如圖6所示。

圖6 ADO與XML數據交換模型示意
問題井數據錄入自動提取完成審批的問題井,工程技術人員通過選定問題井的井號,顯示問題井的基本信息,根據問題井的設計及完成情況,依次完成問題井的設計錄入、開工錄入、完工錄入,系統自動在數據庫中更新當前節點處的用戶和錄入時間。
2) 流程信息查詢。流程信息查詢利用多數據融合技術,設計了1個包括三個層次(數據、信息和決策)和兩個過程(抽象、歸類)的多數據源數據融合模型[16],如圖7所示。數據層包括單井動、靜態數據庫和作業數據庫等數據源,解決不同數據類型的格式歸并、關鍵字匹配等問題;信息層利用數據層的數據進行模式匹配,是具體數據模式化過程;決策層是整個系統的高層,主要完成系統中的態勢評估和決策分析。這三個層次通過兩個過程銜接起來,數據層經過抽象過程過渡到信息層,信息層的模型由歸類過程完成態勢評估和決策任務。
通過多數據融合模型,將單井動、靜態數據和作業數據進行合成,完成問題井各項數據的引用和維護,并使設計所需數據以固定格式直接提取,通過水晶報表生成打印模板,根據用戶輸入的篩選條件過濾數據集中的數據,填充報表模板并生成所需要的報表文件。通過對模板解析出的不同標簽,執行導出打印操作,便于查閱。問題井及施工情況管理界面如圖8所示。

圖7 多數據融合模型示意

圖8 問題井及施工情況管理界面示意
3) 問題井發生率統計。問題井發生率統計應用復雜SQL語句技術和臨時表技術,復雜SQL語句由基礎SQL語句復合嵌套、排列組合而成,對Oracle數據庫中的問題井發生情況進行定制查詢,查詢結果緩存在數據庫臨時表中。臨時表技術用于下述情況: 多表鏈接查詢中數據表結構復雜、內容繁多;鏈接操作對數據量大的表頻繁訪問但范圍固定集中;訪問得到的結果集非常小[17-18]。臨時表避免了傳統數據鏈接中對源數據表的頻繁讀操作,將對大數據量表的訪問改為對臨時表的鏈接運算。作為數據處理的中間表,在會話結束后,臨時表中的數據被清空,從而減少系統開銷,提高大數據量的實時處理性能。
通過合并單元格,自定義多行多列的GridView不規則表頭,將查詢結果按照礦別、隊別、井別顯示在GridView控件中。首先清空并隱藏GridView默認的表格頭行,創建字符串數組存放表頭單元格文本作為標題,在標題文本中插入換行符來形成多行標題。其次在每個表頭單元格的屬性中設置Rowspan和Colspan的數值來合并對應行和列中的單元格,以達到自定義Gridview不規則表頭顯示數據的目的。圖9所顯示的是問題井發生率統計界面。
4) 圖表可視化。圖表可視化采用ExtJS技術,ExtJS是一種通過JavaScript動態創建頁面標記元素的Ajax框架。ExtJS由一系列類庫組成, 在頁面成功加載ExtJS庫后,Ext.data.DataProxy獲取服務器端或本地的問題井相關數據,數據讀取器格式化數據并將其解析為Ext.data.Record的數據集,存儲在Ext.data.Store中,通過調用 ExtJS 的類及圖表控件將問題井數據進行可視化[19-20]。問題井統計表會隨同圖形、曲線發布,圖形、曲線隨著數據的變化而改變,用戶可以準確、直觀地獲取生產數據信息,并根據數據變化趨勢做出相應的分析和決策。

圖9 問題井發生率統計界面示意
2.2.3系統管理模塊
1) 系統超限提醒。為了避免工作人員疏忽影響問題井上報和審批進程,超限提醒模塊利用流程監控、業務提醒技術,啟動在本地駐留的監控程序,自動采集問題井進度和數據庫操作信息,監控和管理問題井的節點和狀態。當數據庫中的內容發生了申請、設計、審批、分發等操作時,工作流程處于相應的節點,當該節點的用戶登錄后,監控程序自動更新問題井發生情況,對超過期限未上報、待審核的問題井形成預警通知,提醒用戶,并能監控整個流程發生的變化,使各項工作流程順利推進。
2) 用戶管理。該功能實現了人員維護和權限設定。人員維護完成人員信息,人員部門信息的錄入、刪除、修改等管理;權限設定用于分配和管理工作人員對流程中各個節點的權限,由于系統權限設置的不同,系統呈現給用戶的菜單及功能也不相同,根據工作流的特點,系統可以依據業務流程方向個性化定制用戶的權限,配置人員的職務信息和管理范圍,實現靈活的權限分配及資源授權原則,打破了傳統的固定分級模式,提高了流程靈活性和系統可適應性。
筆者研發的油田問題井管理系統,是在工作流管理系統模型上結合油田問題井管理需求開發的標準化系統。文中利用工作流驅動技術,通過分析審批流程數據,得出工作流驅動模型,實現問題井核實單上報和逐級審批;結合多數據融合技術以及ADO.NET技術實現問題井數據錄入、流程信息查詢、超限提醒和導出打印等功能,通過自定義多行多列的不規則GridView表頭實現問題發生率統計,利用ExtJS技術完成圖表可視化展示;系統管理可以個性化定制審批流程中的用戶權限,從而體現出流程的靈活性。該系統讓用戶直觀、方便、快捷地了解問題井的運行狀態,為油田生產提供數據支持。通過使用該系統實現對問題井信息化、可視化、實時化管理,為問題井的高效管理提供了保障。
參考文獻:
[1]龍軍一.基于自定義工作流的辦公自動化系統的設計與實現[D].華南理工大學,2012.
[2]李濤,朱一凡,魏洪濤.基于.Net的工作流管理系統設計[J].計算機工程與設計,2005,26(10): 2798-2801.
[3]陳洪娜,祖旭,周峰.工作流技術研究發展狀況、研究內容及趨勢[J].重慶工學院學報,2006,20(02): 65-69.
[4]范玉順.工作流管理技術研究與產品現狀及發展趨勢[J].計算機集成制造系統,2000,6(01): 1-7.
[5]胡華,宋荷慶,王回進.面向 Web 的工作流管理[J].計算機工程與設計,2002(04): 31-33.
[6]戴小平,周松.一種基于Web服務的工作流協作系統模型[J].工業控制計算機,2013(02): 79-81.
[7]張濤,戰洪飛,孫靜,等.基于Web的企業工作流管理系統的研究[J].計算機應用研究,2002(05): 130-133.
[8]王志曉,呂林濤,門文耀.基于ASP.NET技術和工作流模型的網上審批系統[J].計算機工程,2004,30(01): 83-84.
[9]胡衛軍,陳傳波.通用工作流管理模式的分折與研究[M].計算機工程與應用,1999,7(03): 32-34.
[10]汪家常,徐昶,季小明.基于工作流的高校學費管理系統研究[J].計算機應用與軟件,2012(06): 294-297.
[11]楊明順,韓周鵬,余婷.一種輕型工作流引擎的設計與實現[J].西安理工大學學報,2013(01): 20-26.
[12]范會聯.基于自定義表單的工作流過程定義分析與設計[J].計算機應用研究,2009(09): 3372-3374.
[13]楊雨圖,緱斌麗.基于工作流的技術文件審查系統設計與實現[J].制造業自動化,2011(33): 28-34.
[14]毛根生,毛波影,王丹亞.文檔管理系統中的工作流技術[J].浙江大學學報(工學版),2000,34(01): 60-64.
[15]梅中輝,經亞枝..NET技術中的數據訪問技術——ADO.NET[J].微計算機信息,2003,19(01): 70-71.
[16]朱付保,徐顯景,霍曉齊.多源數據融合技術在后備干部管理系統中的應用[J].微型電腦應用,2014,30(01): 10-12.
[17]胡配祥,張成叔,陳良敏.SQL臨時表在科研管理系統數據處理中的應用[J].洛陽理工學院學報(自然科學版),2011,21(02): 45-48.
[18]許寧.臨時表在數據庫中的應用[J].沈陽化工學院學報,2009,20(03): 234-236.
[19]鞠鳳娟,吳志峰.EXT技術在Web界面設計與實現中的應用研究[J].計算機與現代化,2008(11): 102-104.
[20]王曉燕,宋紹云.EXT的組件體系結構研究[J].電腦知識與技術,2011,7(09): 1999-2001.