《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 基于MVC模式的油田開發(fā)分析系統(tǒng)的設(shè)計與實(shí)現(xiàn)
基于MVC模式的油田開發(fā)分析系統(tǒng)的設(shè)計與實(shí)現(xiàn)
來源:微型機(jī)與應(yīng)用2012年第3期
爨 瑩1,,朱航洲1,,李 媛2
(1.西安石油大學(xué) 計算機(jī)學(xué)院,陜西 西安 710065,; 2.陜西省生產(chǎn)力促進(jìn)中心,,陜西 西安 7
摘要: 采用MVC模式設(shè)計并開發(fā)了水驅(qū)油田開發(fā)分析系統(tǒng)。經(jīng)實(shí)踐證明,,該系統(tǒng)能滿足油田管理人員,、現(xiàn)場施工作業(yè)人員的要求,可為其提供及時有效的信息,。
Abstract:
Key words :

摘  要: 采用MVC模式設(shè)計并開發(fā)了水驅(qū)油田開發(fā)分析系統(tǒng),。經(jīng)實(shí)踐證明,該系統(tǒng)能滿足油田管理人員,、現(xiàn)場施工作業(yè)人員的要求,,可為其提供及時有效的信息。
關(guān)鍵詞: MVC模式,;油田開發(fā),;動態(tài)分析系統(tǒng)

 油田開發(fā)動態(tài)分析在整個油田開發(fā)生產(chǎn)過程中具有重要的地位,是保證科學(xué)高效地開發(fā)油田,、保持油田高產(chǎn)穩(wěn)產(chǎn),、提高油田最終采收率的基礎(chǔ)。油田開發(fā)分析系統(tǒng)的設(shè)計與實(shí)現(xiàn)可以幫助地質(zhì)工作者應(yīng)用靜動結(jié)合的方法,,分析認(rèn)識油藏開發(fā)水驅(qū)規(guī)律,、科學(xué)總結(jié)歷史經(jīng)驗(yàn)、高效率研究開發(fā)生產(chǎn)現(xiàn)狀及動態(tài)變化特征,、科學(xué)評價開發(fā)效果,,為開發(fā)決策提供準(zhǔn)確分析信息支持,從而實(shí)現(xiàn)油田開發(fā)生產(chǎn)良性循環(huán),。
1 系統(tǒng)分析
 本文是針對安塞油田開發(fā)的分析系統(tǒng),,其功能模塊如圖1所示。系統(tǒng)的主要功能包括:數(shù)據(jù)采集,、數(shù)據(jù)查詢,、報表生成、單井分析,、井組分析,、區(qū)塊分析和系統(tǒng)管理。

 數(shù)據(jù)采集模塊包括:開發(fā)靜態(tài)和動態(tài)數(shù)據(jù),、動態(tài)監(jiān)測,、分析化驗(yàn)、井下作業(yè),、儲量,、方案規(guī)劃、采油管理,、油氣集輸,、成果等數(shù)據(jù)的采集。
 數(shù)據(jù)查詢模塊包括:單井靜態(tài)數(shù)據(jù),、單井動態(tài)日數(shù)據(jù)查詢,、單井動態(tài)月數(shù)據(jù)查詢、單井動態(tài)年數(shù)據(jù)查詢,;井組動態(tài)日數(shù)據(jù)查詢,、井組動態(tài)月數(shù)據(jù)查詢、井組動態(tài)年數(shù)據(jù)查詢,;區(qū)塊動態(tài)日數(shù)據(jù),、區(qū)塊動態(tài)月數(shù)據(jù)查詢,、區(qū)塊動態(tài)年數(shù)據(jù)查詢[1]。
 報表生成模塊包括:油田開發(fā)綜合數(shù)據(jù)表,、油田產(chǎn)量構(gòu)成數(shù)據(jù)表,。
 單井分析模塊包括:單井概況[2]、動態(tài)數(shù)據(jù)表,、鉆井?dāng)?shù)據(jù),、小層數(shù)據(jù)、射孔數(shù)據(jù),、壓裂數(shù)據(jù),、修井?dāng)?shù)據(jù)、測壓數(shù)據(jù),、產(chǎn)出剖面,、吸水剖面、注水指示曲線,、日動態(tài),、月動態(tài)進(jìn)行分析與查詢。
 井組分析模塊包括:井組概況,、曲線分析[3],、開發(fā)現(xiàn)狀分析、小層連通進(jìn)行分析[2],。
 單元分析模塊包括:單元概況,、綜合曲線分析、油水構(gòu)成分析[4],、開采現(xiàn)狀分析,、措施效果分析[5]、產(chǎn)量變化分析,、等值圖分析[6]等,。
    系統(tǒng)管理模塊包括:用戶權(quán)限、日志,、報表系統(tǒng)定制,、參數(shù)、密碼維護(hù)等的管理,。
2 系統(tǒng)設(shè)計
2.1 MVC模式

 MVC模式(Mode-View-Controller)把應(yīng)用程序分為模型,、視圖和控制三層。模型是應(yīng)用程序使用對象的完整表示,;視圖是用戶交互的界面,;控制器用于處理用戶和應(yīng)用程序的交互操作。采用MVC模式具有如下優(yōu)點(diǎn):(1)顯示與業(yè)務(wù)分離,易于程序維護(hù)[4],;(2)模型可移植性好,,一個模型在運(yùn)行時可以建立和使用多個視圖[4];(3)有利于軟件工程化管理,。
本系統(tǒng)的MVC(模型/視圖/控制)模式在表示層實(shí)現(xiàn),,如圖2所示,。

2.2 系統(tǒng)架構(gòu)設(shè)計
 安塞油田開發(fā)分析系統(tǒng)的設(shè)計本著靈活,、可擴(kuò)展、開放,、安全的基本原則,,系統(tǒng)的組織結(jié)構(gòu)采用B/S架構(gòu),設(shè)計模型遵循MVC模式,。整體體系采用分層模式設(shè)計,,以提高系統(tǒng)的靈活性。如圖2所示,,系統(tǒng)在整個結(jié)構(gòu)上分為三層,,三層之間相互獨(dú)立,層與層之間通過接口通信,。表示層的設(shè)計基于MVC模式,,依據(jù)業(yè)務(wù)邏輯層,展現(xiàn)系統(tǒng)功能,、提供用戶的交互界面和業(yè)務(wù)邏輯控制,。業(yè)務(wù)邏輯層提供系統(tǒng)的基本業(yè)務(wù)邏輯管理和擴(kuò)展業(yè)務(wù)邏輯管理?;緲I(yè)務(wù)邏輯提供最基礎(chǔ)和核心的系統(tǒng)信息,,包括界面組成的信息、界面的數(shù)據(jù)信息,、界面的元數(shù)據(jù)信息,。擴(kuò)展業(yè)務(wù)邏輯提供相關(guān)業(yè)務(wù)領(lǐng)域的邏輯,包括報表,、分析等,。數(shù)據(jù)訪問引擎提供了統(tǒng)一的數(shù)據(jù)模型,為上層訪問數(shù)據(jù)提供一致的接口,,在驅(qū)動引擎方面,,提供了可擴(kuò)展接口,以滿足不同需要,。此層提供了兩個層次的服務(wù):用戶數(shù)據(jù)訪問服務(wù)和系統(tǒng)管理數(shù)據(jù)(元數(shù)據(jù))訪問服務(wù),。
2.3 系統(tǒng)數(shù)據(jù)庫設(shè)計
 系統(tǒng)使用Oracle數(shù)據(jù)庫,系統(tǒng)涉及的數(shù)據(jù)表包括開發(fā)靜態(tài)和動態(tài)數(shù)據(jù)、動態(tài)監(jiān)測數(shù)據(jù),、分析化驗(yàn)數(shù)據(jù),、井下作業(yè)數(shù)據(jù)、方案規(guī)劃數(shù)據(jù),、采油管理數(shù)據(jù),、油氣集輸數(shù)據(jù)、儲量數(shù)據(jù),、成果數(shù)據(jù)等共計179張表,。數(shù)據(jù)庫表分類統(tǒng)計如表1所示。

 

 

 系統(tǒng)數(shù)據(jù)庫設(shè)計引入中間數(shù)據(jù)庫,。油田開發(fā)生產(chǎn)過程中所產(chǎn)生的數(shù)據(jù)(包括靜態(tài)數(shù)據(jù),、動態(tài)數(shù)據(jù)、測試數(shù)據(jù)等)通過導(dǎo)入或手工錄入的方式加載到開發(fā)分析系統(tǒng)數(shù)據(jù)庫,。為了提高系統(tǒng)查詢性能,,系統(tǒng)引入了中間數(shù)據(jù)庫。中間數(shù)據(jù)庫的數(shù)據(jù)是面向分析和業(yè)務(wù)領(lǐng)域的數(shù)據(jù),,它是通過對基礎(chǔ)數(shù)據(jù)在后臺進(jìn)行匯總得來的數(shù)據(jù),。油田開發(fā)分析過程中所使用的數(shù)據(jù)可直接從中間數(shù)據(jù)庫提取,無需從基礎(chǔ)數(shù)據(jù)庫計算得到,,從而提高了系統(tǒng)的查詢速度,。
 系統(tǒng)引入元數(shù)據(jù)模型對數(shù)據(jù)字典進(jìn)行管理,以增加系統(tǒng)設(shè)計的靈活性,。
2.4 系統(tǒng)接口設(shè)計
 系統(tǒng)整體設(shè)計為框架系統(tǒng),,由系統(tǒng)組織與控制層整合每個層面,每個層面都有自己的擴(kuò)展機(jī)制,,以滿足系統(tǒng)未來不同側(cè)面的需求,。數(shù)據(jù)引擎層提供了各種不同驅(qū)動類型的擴(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è)計理念。每一個層面的主要功能如下:
?。?)IlayOut接口:表示層接口,,負(fù)責(zé)提供核心控制器,將界面調(diào)用信息轉(zhuǎn)發(fā)到業(yè)務(wù)邏輯層及其他層來處理,;控制器將業(yè)務(wù)邏輯層數(shù)據(jù)顯示在界面上,;對系統(tǒng)界面提供管理和服務(wù),,為每一個組件(界面組件)注冊相應(yīng)的系統(tǒng)服務(wù),使組件能得到正確的服務(wù),,為組件實(shí)例化提供數(shù)據(jù),。表示層設(shè)計使用MVC設(shè)計模式將數(shù)據(jù)和邏輯強(qiáng)制分離,以便于程序的維護(hù),。
?。?)IServer接口:系統(tǒng)業(yè)務(wù)邏輯基礎(chǔ)層接口,此接口提供了注冊服務(wù),,獲取服務(wù)的基本功能,。其他擴(kuò)展服務(wù)需要注冊到系統(tǒng)中來,由系統(tǒng)統(tǒng)一管理,,為上層提供服務(wù),。此外,,IServer接口還包含了IInfoDispath接口和IDataConstitution接口,,通過這兩個接口公布系統(tǒng)另外層面的信息。其中,,IInfoDispatch接口提供界面的構(gòu)成信息,,包括用戶當(dāng)前界面由哪些頁面(或頁面元素)組成,每一個頁面的具體信息內(nèi)容,。IDataConstitution接口提供用戶數(shù)據(jù)的管理信息(元數(shù)據(jù)),,如表的中文名稱、更新語句,、字段信息(如字段的類型,、大小、是否統(tǒng)計,、是否轉(zhuǎn)換,、是否多值等)。
?。?)IServerEx接口:系統(tǒng)的相關(guān)業(yè)務(wù)領(lǐng)域邏輯,,如:報表業(yè)務(wù)邏輯、數(shù)據(jù)分析業(yè)務(wù)邏輯,、數(shù)據(jù)審核業(yè)務(wù)邏輯,、系統(tǒng)管理業(yè)務(wù)邏輯。
?。?)IdataAcess接口:用戶數(shù)據(jù)服務(wù)接口,,提供用戶數(shù)據(jù)查詢、數(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)的三個方面:視圖TempLate,、控制器(包括核心控制器Controller和擴(kuò)展控制器ControllerEx),、模型model。例如,,在數(shù)據(jù)錄入界面中,,所有可供選擇的下拉框中的數(shù)據(jù)由model負(fù)責(zé)加載,用戶錄入?yún)^(qū)域由TempLate實(shí)例化,。其中:
視圖TempLate模板:是用戶操作區(qū)的抽象,,管理著各種BrowseEditor的集合和BrowseEditor之間的界面關(guān)系,類似于HTML中的FrameSet,,負(fù)責(zé)分割用戶操作區(qū)的界面,、管理界面之間的外觀次序等。
BrowseEditor瀏覽編輯器:抽象類TempLate中的每一個界面由BrowseEditor的派生類完成,。
MiulitPage多頁組件:BrowseEditor的子類,,完成多頁容器邏輯。如日數(shù)據(jù)錄入的主錄入?yún)^(qū),。
SimplePage單頁組件:BrowseEditor的子類,,完成單頁容器邏輯。如日數(shù)據(jù)錄入的副錄入?yún)^(qū),。
控制器:由核心控制器Controller類和擴(kuò)展控制器ControllerEx類實(shí)現(xiàn),。
模型:由數(shù)據(jù)引擎層實(shí)現(xiàn)。
?。?)業(yè)務(wù)邏輯層接口IServer實(shí)現(xiàn)
 IServer接口由核心服務(wù)類SeverManager實(shí)現(xiàn),,SeverManager管理系統(tǒng)所有的服務(wù),實(shí)現(xiàn)IServer接口,、服務(wù)的注冊,、服務(wù)的提供。SeverManager本身只是其他服務(wù)的管理者,,不提供任何具體的服務(wù),,即使是頁面基礎(chǔ)服務(wù)和用戶數(shù)據(jù)模型服務(wù)都只是簡單的代理,具體由類InfoDispatch和類DataConstitution來完成,。
InfoDispatch:信息分發(fā),,是系統(tǒng)功能關(guān)于頁面的信息,,包含頁面構(gòu)成、頁面類型,,如單頁面或多頁面,。
DataConstitution:數(shù)據(jù)構(gòu)成信息,系統(tǒng)功能下表,、字段及相關(guān)的信息,。
 (3)數(shù)據(jù)引擎層IdataAccess和ImetaData的接口實(shí)現(xiàn)
 數(shù)據(jù)引擎層包括兩個部分:用戶數(shù)據(jù)訪問和系統(tǒng)數(shù)據(jù)訪問(元數(shù)據(jù)訪問),。把這兩層統(tǒng)一在數(shù)據(jù)層封裝起來,,為上層提供一致的數(shù)據(jù)訪問服務(wù),同時把數(shù)據(jù)訪問與業(yè)務(wù)邏輯分離,,如圖3所示,。數(shù)據(jù)引擎設(shè)計的原則是用戶接口簡單、使用方便,,因此內(nèi)部使用了連接池和緩沖池,,以提高效率。DataDEManager類同時實(shí)現(xiàn)了IdataAccess和ImetaData兩個接口,,為用戶提供數(shù)據(jù)的訪問和系統(tǒng)數(shù)據(jù)的訪問,,DataDEManager把最后組織好的結(jié)果提交給用戶,使用戶不必關(guān)心數(shù)據(jù)提取的整個過程,。在數(shù)據(jù)引擎層,還實(shí)現(xiàn)了以下與數(shù)據(jù)庫管理相關(guān)的類:


 MetaData:通過XmlCon連接提取系統(tǒng)數(shù)據(jù)(元數(shù)據(jù)),。
 XmlCon:XML文件連接類,。
 UserDataSet:對各種數(shù)據(jù)庫相關(guān)組件進(jìn)行封裝,提供統(tǒng)一的訪問界面,。
 ThreadPool:線程池,。
 DataThread:提取數(shù)據(jù)的具體線程。
 ConnectPool:連接池,。
 OraCon:Oracle數(shù)據(jù)庫連接封裝,。
 AdoCon:ADO連接封裝。
 OleCon:OLE對象連接封裝,。
 系統(tǒng)實(shí)現(xiàn)如圖4所示,。


 本文介紹了MVC模式及其優(yōu)點(diǎn),并運(yùn)用MVC模式開發(fā)了安塞油田開發(fā)分析系統(tǒng),。該系統(tǒng)能夠滿足廣大地質(zhì)工作者日常工作中數(shù)據(jù)查詢和分析的要求,,使他們從繁忙的數(shù)據(jù)統(tǒng)計分析中解脫出來。經(jīng)實(shí)踐證明,,系統(tǒng)基本滿足油田開發(fā)管理需求,,對提高油田決策提供信息支持,,為節(jié)約油田開發(fā)成本、提高油田競爭力起到重要的作用,。
參考文獻(xiàn)
[1] 田躍輝,,李娟,李亞,,等.油氣田開發(fā)動態(tài)規(guī)律的分析方法研究與應(yīng)用[J].內(nèi)蒙古石油化工,,2009(19).
[2] 李繼園,劉展,,孟令奎.鉆井柱狀圖可視化查詢系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].地理空間信息,,2009(5).
[3] 江厚順,張祎.高5塊低滲油氣田產(chǎn)量預(yù)測方法分析[J].天然氣地球科學(xué),,2010(3).
[4] 葛文庚,,郭斐斐.基于MVC的物流管理信息系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].電腦知識與技術(shù),2010(8).
[5] 劉春林,,肖偉.油田水驅(qū)開發(fā)指標(biāo)系統(tǒng)及其結(jié)構(gòu)分析[J].石油勘探與開發(fā),,2010(3).
[6] 檀朝東.油氣井與油氣田開發(fā)動態(tài)分析技術(shù)[M].北京:中國石油大學(xué),2010.
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。