強志勇 馬健 袁梁



[摘? ? 要] 生產作為公司企業生產運營的重要環節,是每個公司企業都必須抓好的重要工作。生產抓的好與壞直接影響公司企業的效益。如何才能抓好生產呢?就拿油田企業采油廠來說,依托先進的信息化科學技術,以油田生產為主線,將生產環節各個方面有效數字化,以信息管理系統為載體深度融合生產業務,實現對生產主營業務延伸的資源,即“生產+”的管理數字化、簡單化、高效化,是為油田企業生產管理賦能、輔助生產決策的新型管理模式。文章是基于流行的.NET框架開發采油廠“生產+”信息管理系統的研究與初步實踐的討論。
[關鍵詞] 生產+;三層架構;智能油田;統一認證
0? ? ? 引? ? 言
隨著信息化技術引入油田的生產管理,管理模式從傳統人工采集指標參數分析轉變為電子化采集數據及圖表趨勢分析的可視化管理模式,油田生產已進入數字油田發展階段。信息化管理已成為數字油田生產的核心部分。一個高效、穩定的生產管理系統在提高企業的經濟效益,增強企業競爭力,提高科研、生產、經營、管理、決策的效率和水平[1]等方面可以起到決定性的作用。
本文討論的“生產+”信息管理系統從油田生產管理的各種會議交流的材料角度開始分析需求,并從生產管理主線業務延伸出多個分支進行設計。系統要實現多專業綜合交流材料數據采集,提供包括問題分析、預警、跟蹤落實等多項功能服務。作為生產例會管理的信息化輔助工具,其功能性需要適應生產管理的改革,用戶需求也是不斷變化的,對系統的安全性、穩定性、可維護性以及擴展性等都有較高的要求。為此本系統采用穩定性和擴展性好、安全性較高的ASP.NET三層架構設計,在實踐中取得了良好的應用效果。
1? ? ? ASP.NET三層架構簡述
1.1? ?三層架構的設計思想
三層架構設計思想可描述為:在軟件開發過程中,運用分層、分模塊的思想來設計軟件結構,將每一類型的操作固定在一個層(或模塊)中,也就是把同類型的操作作為單獨的類模塊抽象出來,供其他模塊重復調用[2]。這樣設計提高了軟件模塊的可重用性和擴展性。
1.2? ?ASP.NET的三層架構體系
ASP.NET三層架構體系分為三層,即表示層、業務邏輯層和數據層,每一層只負責完成本層內功能,各層之間都是透明的,因此更改某層都不需要重新編譯其他層,有效地實現了系統中各功能模塊的相對獨立,降低了各模塊間的耦合性,使系統具備靈活性、可擴展性和可維護性。ASP.NET三層體系結構如圖1所示。
(1)數據層:數據層是所有開發工作的基礎,負責完成數據的定義、維護、訪問與更新,同時管理并響應業務邏輯層的數據請求[3]。ASP.NET框架使用ADO.NET完成對數據庫的訪問,各種訪問功能被封裝為不同的類存放在對應的類庫中,可被任何基于.NET設計的應用程序調用。
(2)業務邏輯層:負責接收瀏覽器傳來的請求并將請求傳給數據層,同時將處理結果反饋給瀏覽器。業務邏輯層通過定義與數據層相對應的組件服務完成各種業務的處理,是整個系統的核心。根據應用系統的不同需求,它還可以分為不同模塊。
(3)表示層:表示層是系統的用戶界面展示部分,負責將用戶請求傳遞給業務邏輯層。表示層是由ASP.NET的Web Forms控件來實現。Web Forms是基于服務器端的動態頁面技術[4],可在服務器端根據客戶端請求和提交的信息,動態生成與客戶端瀏覽器類型無關的通用HTML頁面,也可根據客戶端瀏覽器類型生成特定的數據表現形式。
2? ? ? “生產+”信息管理系統架構
本系統初衷是針對采油廠日生產例會模式進行分析提煉業務需求,通過設計一套在線提交會議材料,實現信息共享方式的網上碰頭會交流平臺。經過試用有良好的應用效果,后根據各類業務需求并對其進行擴展延伸,成為涵蓋各類會議交流材料共享、問題預警、處置落實的綜合數據采集與數據分析平臺,該系統可以將單井、處理站、管輸線等生產設備設施產生的采集數據收集起來,將數據分類組合,并以文字、數據表格、圖形等方式即時呈現,提供問題預警、處置過程跟蹤落實功能,并實現對各類生產管理過程產生的數據進行整合、計算,為生產部門提供輔助決策分析功能。通過此軟件平臺,最終實現對生產過程各類數據趨勢動態監控和輔助生產決策管理。
依據生產業務部門的生產實際需求設計,本系統共包括20大業務模塊涉及的36大功能模塊,結構如圖2所示。
從結構圖可見,該系統包含日生產例會、生產情況錄入、開發工作會議、生產運行周例會、“5+1”工程匯報、旬度會議紀要、會議紀要管理、生產月度分析、動態分析、增產措施、注水工作管理、修井計劃、方案綜合管理、停關井管理、井口周邊情況、承包商違章登記、技術監督周報、成本分析月報、異常井信息和處理站動態管理二十大業務模塊。系統涉及的功能模塊包括:日生產例會簽到及日志查詢、生產情況匯報錄入、周重點工作、重點井生產情況、高產井生產情況、生產存在問題、修井工作管理、異常井查詢及處置、異常井變化對比、異常井統計查詢、沉沒比異常井查詢、轉輪及待修井查詢等。對于各個業務模塊,系統功能對應包含更為細節的操作功能。以異常井信息管理為例,針對生產中油井從工程角度分析不同區塊對應沉沒度范圍正常產液水平來篩選異常井的功能,每日從生產日報中根據設定好的算法自動分析并篩選異常井,并根據業務需求分不同業務部門落實處置措施的操作也有所不同,異常井分析包含了不同區塊、不同沉沒度范圍的異常診斷、軟件智能篩選異常井、轉輪井及待修井,給出篩選依據,進行異常天數預警,提示用戶維護應對措施,并跟蹤落實情況,對于超期處置的異常井根據考核指標措施及時制定措施有效率地考核生產單位工作質量等,對生產管理起到了很好的督促和指導作用。
整個管理系統除了上述業務功能模塊外還包含系統管理模塊。系統管理模塊實現用戶、權限、日志管理功能,確保平臺的安全、正常使用。同時各個錄入模塊也增加了對應數據表字段類型精度校驗功能,提供錄入校驗,提高了錄入準確率,同時也避免了人為原因產生的錯誤。
3? ? ? 系統設計與實現
3.1? ?系統三層架構設計
對于專業多樣、功能眾多的管理系統利用.NET的三層架構模式,通過服務的形式實現系統內部及外部的數據通信,對已實現的代碼進行復用來快速部署新的需求功能,以提高業務需求處理速度,同時降低開發及維護的成本,其中數據層包括與各種數據表數據的訪問控制。業務層包括了對各功能模塊的業務處理以及提供適當的服務,后端通過數據庫訪問DB類實現系統和數據庫的通信,前端通過Web Service與表示層交換數據。表示層通過各Web Forms并在ASP.NET統一安全控制下將用戶請求傳遞給業務邏輯層,并將處理結果反饋給用戶。
本系統基于.NET Framework 4.0,采用VS2010開發工具,以C#.NET為編程語言,數據庫采用Oracle10g,前臺展示采用Kendo UI、JQuery等框架,界面美觀、操作方便,利用Echart來成展示各種圖表(餅圖、柱狀圖、折線圖等)。系統輸出支持對常用Office系列文檔(Excel、Word、PPT)上傳及PDF文檔附件在線預覽以及按Excel模板數據導入。
3.2? ?數據層設計
數據層主要定義各業務表結構以及實現各種增、刪、改、查詢以及計算等操作。以異常井管理模塊功能為例,涉及的主要數據表有:ABNORMAL_PROCESSING_RESULTS (異常井實時數據表) 、AB_PRO_RE_LS (異常井歷史數據表)、APPLY_FOR_TABLE_NEW(異常井措施申請表)、EXCEPT_
WELL_STATICS_DAY(異常井統計表) 等,各表的主要字段及表之間關系見圖3。
為了提高對數據的處理速度,對某些數據表使用了視圖,例如解除異常井數據建立了對應的物化視圖OUT_ABNORMAL,適當利用視圖可以簡化重復性的操作,提高查詢效率。 同時,利用視圖查詢授權用戶的數據,提高數據的安全性。
3.3? ?業務邏輯層設計
業務邏輯層負責數據層和表示層之間的消息傳遞。在異常井管理的查詢處置模塊計算中,根據業務需求,抽象出的邏輯類主要有如下幾個:
(1)Dal.cs(數據庫操作類):專門用于連接數據庫、操作和調用數據庫的基本類。
(2)AbnormalProcResultBLL.cs:用于處理異常井篩選及展示功能的各種操作。
(3)AbProReLsBLL.cs:用于處理異常井歷史數據篩選及統計提取數據展示功能的各種操作。
(4)ApplyForTableNewBLL.cs:用于實現異常井措施申請管理需求功能的各種操作。
(5)YcjStaticsPrcBLL.cs:用于生成統計異常井信息結果及在前端展示數據的整合邏輯處理和數據求和計算功能。所有的數據都通過調用的Dal類實現,將業務邏輯封裝到Web Service之中,表示層調用該Web Service就可以實現相應的功能。
3.4? ?表示層設計
表示層主要利用ASP.NET的系統組件和第三方Kendo UI、JQuery框架組件,設計Web界面,實現用戶和系統的交互。操作用戶通過表示層提供的頁面輸入登錄信息,通過統一認證Web Service服務驗證登錄,通過后再調用系統Web Service權限服務可獲得系統授予的操作權限。然后表示層通過Web Forms與業務邏輯層的Web Service通信,在表示層中引入相應的Web Service就可實現有關業務處理。UI界面如圖4所示。
UI界面中圖形展示利用Echarts前端圖形框架來實現,主要是因為它在使用過程中簡單易操作、支持按需求打包、代碼開源。Echarts.js可以流暢地運行在 PC 和移動設備上,兼容當前絕大部分瀏覽器(IE8/9/10/11,Chrome,Firefox,Safari等),底層依賴輕量級的矢量圖形庫 ZRender,提供直觀,交互豐富,可高度個性化地定制數據可視化圖表,同時開發時間短、開發成本低。例如生產日報產量趨勢圖,如圖5所示。
4? ? ? 結? ? 語
本文論述了基于ASP.NET三層架構的采油廠“生產+”信息管理系統的設計開發與生產實踐中的應用,以異常井管理為例,描述了表示層、業務邏輯層和數據層的設計及實現方法。在表示層利用了ASP.NET的安全機制與系統頁面組件及第三方前端擴展框架,提升了系統的安全性、易用性和交互性;業務邏輯層封裝了各種業務操作類,使系統的穩定性、可擴展性和可移植性得到增強;數據層通過使用視圖,提高數據訪問操作效率和讀取數據安全性。綜上所述,基于.NET三層架構的采油廠“生產+”信息管理系統有良好的擴展性和安全性,該系統的應用實現對生產過程中各生產專業部門主線業務延伸的資源進行合理調配和整合,輔助生產決策,提升油田信息化管理水平,為智能油田建設開辟了新的方向。
主要參考文獻
[1]趙玉國.構建油田綜合業務信息平臺的研究與實現[J].信息技術與信息化,2006(4):104-106.
[2]范振鈞.基于ASP.NET的三層結構實現方法研究[J].計算機科學,2007(4):289-291.
[3]徐冬琳.基于.NET的三層Web應用開發研究[J].重慶科技學院學報:自然科學版,2007(4):78-80,88.
[4]Jeffrey Richter.Microsoft.NET框架程序設計[M].北京:機械工業出版社,2006.