摘 要: 采用MVC模式設(shè)計(jì)并開(kāi)發(fā)了水驅(qū)油田開(kāi)發(fā)分析系統(tǒng),。經(jīng)實(shí)踐證明,,該系統(tǒng)能滿(mǎn)足油田管理人員、現(xiàn)場(chǎng)施工作業(yè)人員的要求,,可為其提供及時(shí)有效的信息,。
關(guān)鍵詞: MVC模式;油田開(kāi)發(fā),;動(dòng)態(tài)分析系統(tǒng)
油田開(kāi)發(fā)動(dòng)態(tài)分析在整個(gè)油田開(kāi)發(fā)生產(chǎn)過(guò)程中具有重要的地位,,是保證科學(xué)高效地開(kāi)發(fā)油田、保持油田高產(chǎn)穩(wěn)產(chǎn),、提高油田最終采收率的基礎(chǔ),。油田開(kāi)發(fā)分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)可以幫助地質(zhì)工作者應(yīng)用靜動(dòng)結(jié)合的方法,分析認(rèn)識(shí)油藏開(kāi)發(fā)水驅(qū)規(guī)律,、科學(xué)總結(jié)歷史經(jīng)驗(yàn),、高效率研究開(kāi)發(fā)生產(chǎn)現(xiàn)狀及動(dòng)態(tài)變化特征、科學(xué)評(píng)價(jià)開(kāi)發(fā)效果,,為開(kāi)發(fā)決策提供準(zhǔn)確分析信息支持,,從而實(shí)現(xiàn)油田開(kāi)發(fā)生產(chǎn)良性循環(huán)。
1 系統(tǒng)分析
本文是針對(duì)安塞油田開(kāi)發(fā)的分析系統(tǒng),,其功能模塊如圖1所示,。系統(tǒng)的主要功能包括:數(shù)據(jù)采集、數(shù)據(jù)查詢(xún),、報(bào)表生成,、單井分析、井組分析,、區(qū)塊分析和系統(tǒng)管理,。
數(shù)據(jù)采集模塊包括:開(kāi)發(fā)靜態(tài)和動(dòng)態(tài)數(shù)據(jù)、動(dòng)態(tài)監(jiān)測(cè),、分析化驗(yàn),、井下作業(yè)、儲(chǔ)量,、方案規(guī)劃,、采油管理、油氣集輸,、成果等數(shù)據(jù)的采集,。
數(shù)據(jù)查詢(xún)模塊包括:?jiǎn)尉o態(tài)數(shù)據(jù)、單井動(dòng)態(tài)日數(shù)據(jù)查詢(xún),、單井動(dòng)態(tài)月數(shù)據(jù)查詢(xún),、單井動(dòng)態(tài)年數(shù)據(jù)查詢(xún);井組動(dòng)態(tài)日數(shù)據(jù)查詢(xún),、井組動(dòng)態(tài)月數(shù)據(jù)查詢(xún),、井組動(dòng)態(tài)年數(shù)據(jù)查詢(xún);區(qū)塊動(dòng)態(tài)日數(shù)據(jù),、區(qū)塊動(dòng)態(tài)月數(shù)據(jù)查詢(xún),、區(qū)塊動(dòng)態(tài)年數(shù)據(jù)查詢(xún)[1]。
報(bào)表生成模塊包括:油田開(kāi)發(fā)綜合數(shù)據(jù)表,、油田產(chǎn)量構(gòu)成數(shù)據(jù)表,。
單井分析模塊包括:?jiǎn)尉艣r[2]、動(dòng)態(tài)數(shù)據(jù)表,、鉆井?dāng)?shù)據(jù),、小層數(shù)據(jù),、射孔數(shù)據(jù)、壓裂數(shù)據(jù),、修井?dāng)?shù)據(jù),、測(cè)壓數(shù)據(jù)、產(chǎn)出剖面,、吸水剖面,、注水指示曲線、日動(dòng)態(tài),、月動(dòng)態(tài)進(jìn)行分析與查詢(xún),。
井組分析模塊包括:井組概況、曲線分析[3],、開(kāi)發(fā)現(xiàn)狀分析,、小層連通進(jìn)行分析[2]。
單元分析模塊包括:?jiǎn)卧艣r,、綜合曲線分析,、油水構(gòu)成分析[4]、開(kāi)采現(xiàn)狀分析,、措施效果分析[5],、產(chǎn)量變化分析、等值圖分析[6]等,。
系統(tǒng)管理模塊包括:用戶(hù)權(quán)限,、日志、報(bào)表系統(tǒng)定制,、參數(shù),、密碼維護(hù)等的管理。
2 系統(tǒng)設(shè)計(jì)
2.1 MVC模式
MVC模式(Mode-View-Controller)把應(yīng)用程序分為模型,、視圖和控制三層,。模型是應(yīng)用程序使用對(duì)象的完整表示;視圖是用戶(hù)交互的界面,;控制器用于處理用戶(hù)和應(yīng)用程序的交互操作,。采用MVC模式具有如下優(yōu)點(diǎn):(1)顯示與業(yè)務(wù)分離,易于程序維護(hù)[4],;(2)模型可移植性好,,一個(gè)模型在運(yùn)行時(shí)可以建立和使用多個(gè)視圖[4];(3)有利于軟件工程化管理,。
本系統(tǒng)的MVC(模型/視圖/控制)模式在表示層實(shí)現(xiàn),,如圖2所示。
2.2 系統(tǒng)架構(gòu)設(shè)計(jì)
安塞油田開(kāi)發(fā)分析系統(tǒng)的設(shè)計(jì)本著靈活、可擴(kuò)展,、開(kāi)放,、安全的基本原則,系統(tǒng)的組織結(jié)構(gòu)采用B/S架構(gòu),,設(shè)計(jì)模型遵循MVC模式,。整體體系采用分層模式設(shè)計(jì),以提高系統(tǒng)的靈活性,。如圖2所示,,系統(tǒng)在整個(gè)結(jié)構(gòu)上分為三層,,三層之間相互獨(dú)立,,層與層之間通過(guò)接口通信。表示層的設(shè)計(jì)基于MVC模式,,依據(jù)業(yè)務(wù)邏輯層,,展現(xiàn)系統(tǒng)功能、提供用戶(hù)的交互界面和業(yè)務(wù)邏輯控制,。業(yè)務(wù)邏輯層提供系統(tǒng)的基本業(yè)務(wù)邏輯管理和擴(kuò)展業(yè)務(wù)邏輯管理,。基本業(yè)務(wù)邏輯提供最基礎(chǔ)和核心的系統(tǒng)信息,,包括界面組成的信息,、界面的數(shù)據(jù)信息、界面的元數(shù)據(jù)信息,。擴(kuò)展業(yè)務(wù)邏輯提供相關(guān)業(yè)務(wù)領(lǐng)域的邏輯,,包括報(bào)表、分析等,。數(shù)據(jù)訪問(wèn)引擎提供了統(tǒng)一的數(shù)據(jù)模型,,為上層訪問(wèn)數(shù)據(jù)提供一致的接口,在驅(qū)動(dòng)引擎方面,,提供了可擴(kuò)展接口,,以滿(mǎn)足不同需要。此層提供了兩個(gè)層次的服務(wù):用戶(hù)數(shù)據(jù)訪問(wèn)服務(wù)和系統(tǒng)管理數(shù)據(jù)(元數(shù)據(jù))訪問(wèn)服務(wù),。
2.3 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
系統(tǒng)使用Oracle數(shù)據(jù)庫(kù),,系統(tǒng)涉及的數(shù)據(jù)表包括開(kāi)發(fā)靜態(tài)和動(dòng)態(tài)數(shù)據(jù)、動(dòng)態(tài)監(jiān)測(cè)數(shù)據(jù),、分析化驗(yàn)數(shù)據(jù),、井下作業(yè)數(shù)據(jù)、方案規(guī)劃數(shù)據(jù),、采油管理數(shù)據(jù),、油氣集輸數(shù)據(jù)、儲(chǔ)量數(shù)據(jù)、成果數(shù)據(jù)等共計(jì)179張表,。數(shù)據(jù)庫(kù)表分類(lèi)統(tǒng)計(jì)如表1所示,。
系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)引入中間數(shù)據(jù)庫(kù)。油田開(kāi)發(fā)生產(chǎn)過(guò)程中所產(chǎn)生的數(shù)據(jù)(包括靜態(tài)數(shù)據(jù),、動(dòng)態(tài)數(shù)據(jù),、測(cè)試數(shù)據(jù)等)通過(guò)導(dǎo)入或手工錄入的方式加載到開(kāi)發(fā)分析系統(tǒng)數(shù)據(jù)庫(kù)。為了提高系統(tǒng)查詢(xún)性能,,系統(tǒng)引入了中間數(shù)據(jù)庫(kù),。中間數(shù)據(jù)庫(kù)的數(shù)據(jù)是面向分析和業(yè)務(wù)領(lǐng)域的數(shù)據(jù),它是通過(guò)對(duì)基礎(chǔ)數(shù)據(jù)在后臺(tái)進(jìn)行匯總得來(lái)的數(shù)據(jù),。油田開(kāi)發(fā)分析過(guò)程中所使用的數(shù)據(jù)可直接從中間數(shù)據(jù)庫(kù)提取,,無(wú)需從基礎(chǔ)數(shù)據(jù)庫(kù)計(jì)算得到,從而提高了系統(tǒng)的查詢(xún)速度,。
系統(tǒng)引入元數(shù)據(jù)模型對(duì)數(shù)據(jù)字典進(jìn)行管理,,以增加系統(tǒng)設(shè)計(jì)的靈活性。
2.4 系統(tǒng)接口設(shè)計(jì)
系統(tǒng)整體設(shè)計(jì)為框架系統(tǒng),,由系統(tǒng)組織與控制層整合每個(gè)層面,,每個(gè)層面都有自己的擴(kuò)展機(jī)制,以滿(mǎn)足系統(tǒng)未來(lái)不同側(cè)面的需求,。數(shù)據(jù)引擎層提供了各種不同驅(qū)動(dòng)類(lèi)型的擴(kuò)展,;業(yè)務(wù)層提供了不同業(yè)務(wù)領(lǐng)域的業(yè)務(wù)邏輯擴(kuò)展;表示層提供了不同業(yè)務(wù)領(lǐng)域的界面擴(kuò)展,。其目的是使核心層(系統(tǒng)框架層)與業(yè)務(wù)層隔離,,保證系統(tǒng)良好的伸縮性。系統(tǒng)從整體到部分,,處處都體現(xiàn)了這種核心設(shè)計(jì)理念,。每一個(gè)層面的主要功能如下:
(1)IlayOut接口:表示層接口,,負(fù)責(zé)提供核心控制器,,將界面調(diào)用信息轉(zhuǎn)發(fā)到業(yè)務(wù)邏輯層及其他層來(lái)處理;控制器將業(yè)務(wù)邏輯層數(shù)據(jù)顯示在界面上,;對(duì)系統(tǒng)界面提供管理和服務(wù),,為每一個(gè)組件(界面組件)注冊(cè)相應(yīng)的系統(tǒng)服務(wù),使組件能得到正確的服務(wù),,為組件實(shí)例化提供數(shù)據(jù),。表示層設(shè)計(jì)使用MVC設(shè)計(jì)模式將數(shù)據(jù)和邏輯強(qiáng)制分離,以便于程序的維護(hù),。
?。?)IServer接口:系統(tǒng)業(yè)務(wù)邏輯基礎(chǔ)層接口,,此接口提供了注冊(cè)服務(wù),獲取服務(wù)的基本功能,。其他擴(kuò)展服務(wù)需要注冊(cè)到系統(tǒng)中來(lái),,由系統(tǒng)統(tǒng)一管理,為上層提供服務(wù),。此外,,IServer接口還包含了IInfoDispath接口和IDataConstitution接口,通過(guò)這兩個(gè)接口公布系統(tǒng)另外層面的信息,。其中,,IInfoDispatch接口提供界面的構(gòu)成信息,包括用戶(hù)當(dāng)前界面由哪些頁(yè)面(或頁(yè)面元素)組成,,每一個(gè)頁(yè)面的具體信息內(nèi)容,。IDataConstitution接口提供用戶(hù)數(shù)據(jù)的管理信息(元數(shù)據(jù)),如表的中文名稱(chēng),、更新語(yǔ)句,、字段信息(如字段的類(lèi)型,、大小,、是否統(tǒng)計(jì)、是否轉(zhuǎn)換,、是否多值等),。
(3)IServerEx接口:系統(tǒng)的相關(guān)業(yè)務(wù)領(lǐng)域邏輯,,如:報(bào)表業(yè)務(wù)邏輯,、數(shù)據(jù)分析業(yè)務(wù)邏輯、數(shù)據(jù)審核業(yè)務(wù)邏輯,、系統(tǒng)管理業(yè)務(wù)邏輯,。
(4)IdataAcess接口:用戶(hù)數(shù)據(jù)服務(wù)接口,,提供用戶(hù)數(shù)據(jù)查詢(xún),、數(shù)據(jù)更新服務(wù)。
?。?)ImetaData接口:系統(tǒng)數(shù)據(jù)服務(wù)接口,,提供系統(tǒng)信息,如系統(tǒng)的組織信息,、權(quán)限信息等,。
3 系統(tǒng)實(shí)現(xiàn)
本系統(tǒng)實(shí)現(xiàn)基于B/S架構(gòu),采用MVC模型,。其主要接口實(shí)現(xiàn)技術(shù)如下:
?。?)表示層接口ILayout實(shí)現(xiàn)
接口ILayout由LayOutManager實(shí)現(xiàn),LayOutManager負(fù)責(zé)管理系統(tǒng)的三個(gè)方面:視圖TempLate、控制器(包括核心控制器Controller和擴(kuò)展控制器ControllerEx),、模型model,。例如,在數(shù)據(jù)錄入界面中,,所有可供選擇的下拉框中的數(shù)據(jù)由model負(fù)責(zé)加載,,用戶(hù)錄入?yún)^(qū)域由TempLate實(shí)例化。其中:
視圖TempLate模板:是用戶(hù)操作區(qū)的抽象,,管理著各種BrowseEditor的集合和BrowseEditor之間的界面關(guān)系,,類(lèi)似于HTML中的FrameSet,負(fù)責(zé)分割用戶(hù)操作區(qū)的界面,、管理界面之間的外觀次序等,。
BrowseEditor瀏覽編輯器:抽象類(lèi)TempLate中的每一個(gè)界面由BrowseEditor的派生類(lèi)完成。
MiulitPage多頁(yè)組件:BrowseEditor的子類(lèi),,完成多頁(yè)容器邏輯,。如日數(shù)據(jù)錄入的主錄入?yún)^(qū)。
SimplePage單頁(yè)組件:BrowseEditor的子類(lèi),,完成單頁(yè)容器邏輯,。如日數(shù)據(jù)錄入的副錄入?yún)^(qū)。
控制器:由核心控制器Controller類(lèi)和擴(kuò)展控制器ControllerEx類(lèi)實(shí)現(xiàn),。
模型:由數(shù)據(jù)引擎層實(shí)現(xiàn),。
(2)業(yè)務(wù)邏輯層接口IServer實(shí)現(xiàn)
IServer接口由核心服務(wù)類(lèi)SeverManager實(shí)現(xiàn),,SeverManager管理系統(tǒng)所有的服務(wù),,實(shí)現(xiàn)IServer接口、服務(wù)的注冊(cè),、服務(wù)的提供,。SeverManager本身只是其他服務(wù)的管理者,不提供任何具體的服務(wù),,即使是頁(yè)面基礎(chǔ)服務(wù)和用戶(hù)數(shù)據(jù)模型服務(wù)都只是簡(jiǎn)單的代理,,具體由類(lèi)InfoDispatch和類(lèi)DataConstitution來(lái)完成。
InfoDispatch:信息分發(fā),,是系統(tǒng)功能關(guān)于頁(yè)面的信息,,包含頁(yè)面構(gòu)成、頁(yè)面類(lèi)型,,如單頁(yè)面或多頁(yè)面,。
DataConstitution:數(shù)據(jù)構(gòu)成信息,系統(tǒng)功能下表,、字段及相關(guān)的信息,。
?。?)數(shù)據(jù)引擎層IdataAccess和ImetaData的接口實(shí)現(xiàn)
數(shù)據(jù)引擎層包括兩個(gè)部分:用戶(hù)數(shù)據(jù)訪問(wèn)和系統(tǒng)數(shù)據(jù)訪問(wèn)(元數(shù)據(jù)訪問(wèn))。把這兩層統(tǒng)一在數(shù)據(jù)層封裝起來(lái),,為上層提供一致的數(shù)據(jù)訪問(wèn)服務(wù),,同時(shí)把數(shù)據(jù)訪問(wèn)與業(yè)務(wù)邏輯分離,如圖3所示,。數(shù)據(jù)引擎設(shè)計(jì)的原則是用戶(hù)接口簡(jiǎn)單,、使用方便,因此內(nèi)部使用了連接池和緩沖池,,以提高效率,。DataDEManager類(lèi)同時(shí)實(shí)現(xiàn)了IdataAccess和ImetaData兩個(gè)接口,為用戶(hù)提供數(shù)據(jù)的訪問(wèn)和系統(tǒng)數(shù)據(jù)的訪問(wèn),,DataDEManager把最后組織好的結(jié)果提交給用戶(hù),,使用戶(hù)不必關(guān)心數(shù)據(jù)提取的整個(gè)過(guò)程。在數(shù)據(jù)引擎層,,還實(shí)現(xiàn)了以下與數(shù)據(jù)庫(kù)管理相關(guān)的類(lèi):
MetaData:通過(guò)XmlCon連接提取系統(tǒng)數(shù)據(jù)(元數(shù)據(jù)),。
XmlCon:XML文件連接類(lèi)。
UserDataSet:對(duì)各種數(shù)據(jù)庫(kù)相關(guān)組件進(jìn)行封裝,,提供統(tǒng)一的訪問(wèn)界面,。
ThreadPool:線程池。
DataThread:提取數(shù)據(jù)的具體線程,。
ConnectPool:連接池,。
OraCon:Oracle數(shù)據(jù)庫(kù)連接封裝,。
AdoCon:ADO連接封裝,。
OleCon:OLE對(duì)象連接封裝。
系統(tǒng)實(shí)現(xiàn)如圖4所示,。
本文介紹了MVC模式及其優(yōu)點(diǎn),,并運(yùn)用MVC模式開(kāi)發(fā)了安塞油田開(kāi)發(fā)分析系統(tǒng)。該系統(tǒng)能夠滿(mǎn)足廣大地質(zhì)工作者日常工作中數(shù)據(jù)查詢(xún)和分析的要求,,使他們從繁忙的數(shù)據(jù)統(tǒng)計(jì)分析中解脫出來(lái),。經(jīng)實(shí)踐證明,系統(tǒng)基本滿(mǎn)足油田開(kāi)發(fā)管理需求,,對(duì)提高油田決策提供信息支持,,為節(jié)約油田開(kāi)發(fā)成本、提高油田競(jìng)爭(zhēng)力起到重要的作用,。
參考文獻(xiàn)
[1] 田躍輝,,李娟,李亞,,等.油氣田開(kāi)發(fā)動(dòng)態(tài)規(guī)律的分析方法研究與應(yīng)用[J].內(nèi)蒙古石油化工,,2009(19).
[2] 李繼園,,劉展,孟令奎.鉆井柱狀圖可視化查詢(xún)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].地理空間信息,,2009(5).
[3] 江厚順,,張祎.高5塊低滲油氣田產(chǎn)量預(yù)測(cè)方法分析[J].天然氣地球科學(xué),2010(3).
[4] 葛文庚,,郭斐斐.基于MVC的物流管理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),,2010(8).
[5] 劉春林,肖偉.油田水驅(qū)開(kāi)發(fā)指標(biāo)系統(tǒng)及其結(jié)構(gòu)分析[J].石油勘探與開(kāi)發(fā),,2010(3).
[6] 檀朝東.油氣井與油氣田開(kāi)發(fā)動(dòng)態(tài)分析技術(shù)[M].北京:中國(guó)石油大學(xué),,2010.