孫偉峰,戴永壽,王 艷,李立剛,謝騰騰
(1.中國石油大學(華東)信息與控制工程學院,山東 青島 266580;2.青島濱海學院 機電工程學院,山東 青島 266555)
濱南油區(qū)單家寺稠油油藏至今已有近30年的開發(fā)歷史,目前主要采用蒸汽吞吐的開采方式進行生產(chǎn)[1]。在周期生產(chǎn)過程中積累了大量數(shù)據(jù),主要包括周期注汽數(shù)據(jù)、周期生產(chǎn)數(shù)據(jù)、汽竄數(shù)據(jù)等,這些數(shù)據(jù)對于生產(chǎn)運行分析、熱采效果評價、注汽參數(shù)優(yōu)化及生產(chǎn)決策等具有重要價值。目前,這些數(shù)據(jù)主要通過人工錄入Excel表格進行保存和分析,生產(chǎn)運行監(jiān)測和優(yōu)化決策主要依賴經(jīng)驗、通過繁雜的人工計算完成,工作強度大、效率低且易出錯;生產(chǎn)運行數(shù)據(jù)缺乏實時性和可靠性,優(yōu)化決策和油井熱采效果預(yù)測周期長、效率低且準確性差,如何對這些數(shù)據(jù)進行有效組織與優(yōu)化管理成為亟待解決的問題。
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,基于web的信息查詢與發(fā)布技術(shù)越來越多地應(yīng)用到各類系統(tǒng)的開發(fā)中[2],而目前還沒有專門針對稠油生產(chǎn)的數(shù)據(jù)管理系統(tǒng)。為了實現(xiàn)稠油開發(fā)周期生產(chǎn)過程中數(shù)據(jù)的有效組織、管理與維護,設(shè)計開發(fā)了稠油熱采一體化數(shù)據(jù)管理系統(tǒng)。該系統(tǒng)利用oracle數(shù)據(jù)庫技術(shù)有效集成多種數(shù)據(jù)源形成統(tǒng)一的數(shù)據(jù)管理平臺,采用先進的模型(Model)-視圖(View)-控制器(Controller)(即 MVC)三層結(jié)構(gòu)設(shè)計[3],綜合利用 JSP動態(tài)網(wǎng)頁技術(shù)[4]、Ajax動態(tài)關(guān)聯(lián)技術(shù)[5]、JFreeChart圖表繪制技術(shù)[6]、POI報表生成技術(shù)[7]、MapXtreme動態(tài)地圖技術(shù)[8]等,實現(xiàn)了周期數(shù)據(jù)管理、汽竄數(shù)據(jù)管理、井控管理及用戶管理4個主要功能。
系統(tǒng)在濱南采油廠服務(wù)器上安裝部署,半年多的現(xiàn)場運行表明,系統(tǒng)運行穩(wěn)定可靠,數(shù)據(jù)查詢動態(tài)靈活,統(tǒng)計分析直觀形象,井控管理便捷高效。與其他系統(tǒng)相比,本系統(tǒng)可擴展性強,易維護,具有靈活性、實用性、專業(yè)性及針對性等特點。
系統(tǒng)在B/S架構(gòu)下基于MVC模型進行設(shè)計。該模型將應(yīng)用邏輯、處理過程和顯示邏輯分成不同的組件來實現(xiàn),這些組件相互獨立,可以進行交互和重用,使得整個系統(tǒng)結(jié)構(gòu)清晰,易于維護和擴展,且便于移植,系統(tǒng)總體架構(gòu)如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)圖Fig.1 Structure diagram of the data management system
其中,Model層建立稠油熱采數(shù)據(jù)庫,主要包括油井基礎(chǔ)數(shù)據(jù)子庫、單井周期數(shù)據(jù)子庫和汽竄數(shù)據(jù)子庫,為每個數(shù)據(jù)子庫建立對應(yīng)的模型并封裝對相應(yīng)數(shù)據(jù)的增、查、改、刪等操作,將對數(shù)據(jù)的操作轉(zhuǎn)換為對模型的操作;Controller層負責接收各功能模塊的用戶請求,實現(xiàn)系統(tǒng)的主要功能并調(diào)用相應(yīng)的視圖顯示處理結(jié)果,主要功能包括:數(shù)據(jù)查詢與報表生成、數(shù)據(jù)錄入、審核、修改、刪除、數(shù)據(jù)統(tǒng)計分析、井控管理及用戶管理。View層實現(xiàn)與用戶的交互,獲取用戶提交的參數(shù)并傳遞給Controller層,并顯示Controller層返回的處理結(jié)果。具體實現(xiàn)時,采用JSP+JavaBean+Servlet的開發(fā)模式,Servlet控制器負責處理數(shù)據(jù),并將有關(guān)的結(jié)果存儲到JavaBean中,實現(xiàn)存儲與處理的分離;負責視圖功能的JSP頁面只要使用JavaBean標記顯示其中的數(shù)據(jù)即可。這種組件式設(shè)計模型可降低開發(fā)工作量,提高系統(tǒng)運行速度。
根據(jù)實際功能需求,系統(tǒng)需要建立稠油熱采數(shù)據(jù)庫,并具備周期數(shù)據(jù)管理、汽竄數(shù)據(jù)管理、井控管理及用戶管理4個主要的功能,如圖2所示。
圖2 系統(tǒng)功能模塊框圖Fig.2 Block diagram of the system functional module
稠油熱采數(shù)據(jù)庫集成多種數(shù)據(jù)源形成統(tǒng)一的生產(chǎn)及管理數(shù)據(jù)平臺,實現(xiàn)數(shù)據(jù)的有效組織、管理與維護,為系統(tǒng)運行提供基礎(chǔ)數(shù)據(jù);周期數(shù)據(jù)管理及汽竄數(shù)據(jù)管理分別實現(xiàn)周期數(shù)據(jù)與汽竄數(shù)據(jù)的錄入、查詢、修改、刪除及統(tǒng)計分析等功能;井控管理實現(xiàn)不同類型油井間的井距計算、汽竄井控查詢、井位圖繪制及井控通知單生成功能;用戶管理負責系統(tǒng)用戶授權(quán)及操作權(quán)限管理分配。
根據(jù)系統(tǒng)的總體結(jié)構(gòu)及實現(xiàn)的功能,系統(tǒng)設(shè)計分為稠油熱采數(shù)據(jù)庫設(shè)計與動態(tài)網(wǎng)頁模塊設(shè)計兩部分。
稠油熱采數(shù)據(jù)庫是一體化數(shù)據(jù)管理系統(tǒng)運行的基礎(chǔ),其設(shè)計是否規(guī)范將直接影響到系統(tǒng)中對數(shù)據(jù)的維護、查詢、分析等功能。數(shù)據(jù)庫設(shè)計依據(jù)第三范式設(shè)計規(guī)范[9],同時考慮到數(shù)據(jù)庫的運行效率,適當增加了冗余。設(shè)計時充分考慮到各類數(shù)據(jù)間的關(guān)聯(lián)性、數(shù)據(jù)的規(guī)范性與安全性、數(shù)據(jù)表的可擴展性與易維護性。結(jié)合稠油開發(fā)生產(chǎn)運行管理的實際需求,建立了油井基礎(chǔ)數(shù)據(jù)子庫、單井周期數(shù)據(jù)子庫與汽竄數(shù)據(jù)子庫。其中,油井基礎(chǔ)數(shù)據(jù)子庫由油井歸屬信息及油井坐標數(shù)據(jù)組成;單井周期數(shù)據(jù)子庫由周期注汽數(shù)據(jù)、周期生產(chǎn)數(shù)據(jù)及作業(yè)大事紀要等組成;汽竄數(shù)據(jù)子庫按照目前稠油開發(fā)井控安全需求及油井正常生產(chǎn)分析需要建立,由生產(chǎn)井數(shù)據(jù)、停產(chǎn)井數(shù)據(jù)及汽竄井數(shù)據(jù)組成,該子庫的建立將最終形成一個井控安全運行系統(tǒng),為管理者和技術(shù)人員提供及時、可靠的油井汽竄井控安全預(yù)警平臺。
單家寺稠油油區(qū)有上千口油井,需要存儲的數(shù)據(jù)量大。為了保證多個用戶同時訪問時系統(tǒng)能夠穩(wěn)定、高效運行,從數(shù)據(jù)庫性能、運行平臺、并行性與安全性等方面綜合考慮[10],選用oracle 10g數(shù)據(jù)庫軟件進行開發(fā)。該版本的數(shù)據(jù)庫管理開銷低,性能穩(wěn)定,簡化了數(shù)據(jù)庫配置與升級步驟,能夠進行自動存儲管理,可以自動地完成基于磁盤的備份與恢復(fù),為數(shù)據(jù)庫平臺的安全穩(wěn)定運行提供了技術(shù)保障。
平臺運行所需數(shù)據(jù)有3個來源:1)采油礦現(xiàn)有的以Excel表格形式保存的歷史數(shù)據(jù);2)采油廠數(shù)據(jù)庫中的油井生產(chǎn)日度數(shù)據(jù);3)需要技術(shù)人員人工錄入的數(shù)據(jù)。為了實現(xiàn)數(shù)據(jù)的正確轉(zhuǎn)換、提取及錄入,系統(tǒng)利用POI技術(shù)集成了Excel表格轉(zhuǎn)換功能,能夠?qū)xcel表格數(shù)據(jù)導(dǎo)入相應(yīng)的數(shù)據(jù)子庫;利用oracle軟件的遠程訪問功能實現(xiàn)了采油廠數(shù)據(jù)庫數(shù)據(jù)的正確提??;對需要人工錄入的數(shù)據(jù),提供了相應(yīng)的人工錄入界面。
為了解決頻繁地建立與斷開連接帶來的系統(tǒng)性能降低問題,提高數(shù)據(jù)庫連接的使用效率,保證多個用戶同時訪問網(wǎng)站時的響應(yīng)速度,系統(tǒng)采用數(shù)據(jù)庫連接池技術(shù)實現(xiàn)數(shù)據(jù)庫的連接[11]。系統(tǒng)中設(shè)計了DBConnectionManager類來管理數(shù)據(jù)庫連接池,數(shù)據(jù)庫的連接配置可以在db.properties文件中進行配置,可靈活修改,使用方便。
稠油熱采數(shù)據(jù)庫的組成及連接如圖3所示。
圖3 稠油熱采數(shù)據(jù)庫組成與連接框圖Fig.3 Block diagram of the database parts and inter-connection
以稠油熱采數(shù)據(jù)庫為基礎(chǔ),動態(tài)網(wǎng)頁模塊實現(xiàn)對單井周期數(shù)據(jù)與汽竄數(shù)據(jù)的錄入、查詢、審核、修改、刪除、統(tǒng)計分析、報表生成以及井控管理、井位圖繪制、用戶管理等功能。
1)數(shù)據(jù)錄入。數(shù)據(jù)錄入模塊為單井周期數(shù)據(jù)及汽竄數(shù)據(jù)的錄入提供接口界面,錄入界面設(shè)計以保證錄入數(shù)據(jù)的準確性及方便錄入為準則。為確保數(shù)據(jù)錄入的準確性,對錄入字段作了合理性校驗,包括:①記錄唯一性校驗。對記錄進行唯一性約束,違反唯一性約束條件的數(shù)據(jù)禁止寫入數(shù)據(jù)庫。比如,單井周期數(shù)據(jù)由井號與周期組成唯一性約束條件,對于同一井號同一周期的數(shù)據(jù),數(shù)據(jù)庫中僅允許一條記錄存在。②空值校驗。對必填字段進行空值判斷,當字段為空時禁止提交并給出相應(yīng)提示。③數(shù)據(jù)格式與取值范圍校驗。當數(shù)值型數(shù)據(jù)字段錄入非數(shù)字字符或錄入數(shù)據(jù)超出正常取值范圍時,禁止提交并給出錯誤提示。④邏輯校驗。對相互關(guān)聯(lián)字段的邏輯關(guān)系正確性進行了驗證,比如射孔頂界必須小于射孔底界等。同時,為方便錄入,對周期間不經(jīng)常變動的數(shù)據(jù)進行了自動關(guān)聯(lián)提??;日期數(shù)據(jù)從日歷控件中選擇,方便錄入的同時也規(guī)范了日期格式;對可枚舉數(shù)據(jù)以下拉菜單的方式提供選擇。錄入界面中僅提供必填字段,提交合法數(shù)據(jù)后,系統(tǒng)會對需要計算得到的字段(如周期油汽比、累計采油等)進行自動計算,并為每條記錄自動添加錄入人及錄入時間信息。
2)數(shù)據(jù)動態(tài)查詢。該功能實現(xiàn)對單井周期數(shù)據(jù)及汽竄數(shù)據(jù)的動態(tài)查詢,查詢功能具有如下特點:①多條件組合查詢??梢园凑詹捎完牎^(qū)塊、井組、井號及重要生產(chǎn)數(shù)據(jù)字段進行組合查詢,其中,采油隊、區(qū)塊、井組、井號可多選,并采用Ajax技術(shù)實現(xiàn)了動態(tài)級聯(lián);井組可作個性化定制;數(shù)值及日期字段可進行范圍限定。②查詢字段可動態(tài)設(shè)定??筛鶕?jù)查詢需要動態(tài)設(shè)定查詢字段,方便靈活。③查詢結(jié)果顯示靈活??梢园凑罩芷?、區(qū)塊及采油隊對查詢結(jié)果進行排序及累計、平均統(tǒng)計,對查詢結(jié)果可按照詳細信息及統(tǒng)計信息的方式進行顯示;為了便于查看多條記錄或多個字段,標題欄可浮動顯示。以單井周期數(shù)據(jù)查詢?yōu)槔?,其高級查詢及查詢結(jié)果顯示界面如圖4所示。
圖4 周期數(shù)據(jù)高級查詢與結(jié)果顯示示例Fig.4 An example of advanced query and results display
3)數(shù)據(jù)審核與修改、刪除。系統(tǒng)審核人可對錄入數(shù)據(jù)庫中的數(shù)據(jù)進行審核,高級管理人員可對查詢得到的數(shù)據(jù)進行修改及刪除操作。審核人審核之后的數(shù)據(jù),高級管理人員不能再對其進行修改,保證數(shù)據(jù)的準確性。
4)曲線圖形繪制?;贘FreeChart技術(shù)實現(xiàn)了查詢數(shù)據(jù)的曲線圖形繪制,能夠以曲線圖、柱狀圖、餅圖及多軸曲線等形式對統(tǒng)計結(jié)果進行直觀顯示。曲線顏色依照油田生產(chǎn)約定的風格,如采油量用紅色顯示,注汽量用黃色表示等。
5)井控管理。實現(xiàn)了直井、斜井、水平井等不同類型油井之間的距離自動精確計算,點擊一口井,可查詢其周圍一線井、二線井及汽竄井的井號、井數(shù)、井距及目前井控情況,自動生成井控通知單,解決了人工計算井距時工作量大且計算不準確的問題。
6)井位圖繪制。根據(jù)油井的實際經(jīng)緯度坐標,基于MapXtreme技術(shù)實現(xiàn)了油井井位圖繪制;在井位圖上點擊一口井,能夠自動標示其周圍的汽竄井、一線井、二線井以及油井目前的井口狀況、生產(chǎn)情況,使井控查詢更為直觀,如圖5所示。井位圖可靈活地進行平移、放大、縮小,并具有測距、查找等功能。
7)報表生成。基于Apache POI接口實現(xiàn)了查詢報表自動生成,可將查詢結(jié)果以Excel表格的形式導(dǎo)出,便于打印分發(fā)。
8)用戶管理。為確保數(shù)據(jù)安全,平臺采用管理員、審核員、高級用戶與普通用戶四級用戶管理,為不同級別的用戶定制了不同的功能,防止數(shù)據(jù)丟失以及數(shù)據(jù)的越權(quán)訪問。管理員具有最高權(quán)限,負責平臺的管理維護,可以對平臺的數(shù)據(jù)信息及用戶信息進行操作;審核員與高級用戶具有對平臺數(shù)據(jù)進行錄入、修改、刪除及查詢的操作權(quán)限;普通用戶只可對數(shù)據(jù)進行查詢及統(tǒng)計分析。
圖5 井位圖顯示示例Fig.5 An example of well location map display
1)靈活性。系統(tǒng)的一個顯著特點是“動態(tài)”、“靈活”,查詢與顯示字段可動態(tài)設(shè)定,多種查詢條件可靈活組合,查詢條件動態(tài)聯(lián)動,顯示方式、排序與統(tǒng)計方式可動態(tài)選擇,操作靈活方便。
2)實用性。系統(tǒng)功能設(shè)計結(jié)合現(xiàn)場用戶實際需求,可以進行個性化井組查詢功能,不同的用戶可以根據(jù)需要靈活設(shè)置井組;查詢結(jié)果以浮動表頭的形式呈現(xiàn),方便數(shù)據(jù)查看;能夠按井號、井組、采油隊、區(qū)塊等條件對各類數(shù)據(jù)進行統(tǒng)計分析,并以圖表的形式直觀顯示;查詢結(jié)果能夠以Excel報表形式導(dǎo)出;可以計算各類油井間的井距并生成井控通知單;井位圖可直觀顯示油井位置及井控信息等,實用性強。
3)專業(yè)性。數(shù)據(jù)庫及網(wǎng)頁設(shè)計都嚴格遵守相關(guān)技術(shù)規(guī)范,提供了專業(yè)的曲線圖、柱狀圖、餅圖等統(tǒng)計圖線圖形、Excel報表、動態(tài)地圖等的快速生成工具。
4)針對性。系統(tǒng)專門針對稠油油藏蒸汽吞吐開采過程中數(shù)據(jù)的組織、管理、查詢與分析,區(qū)別于常規(guī)油藏的管理與查詢軟件。
為了更好地利用稠油熱采過程中形成的歷史數(shù)據(jù)和實時數(shù)據(jù),讓這些資源產(chǎn)生更好的經(jīng)濟效益和管理效益,設(shè)計開發(fā)了稠油熱采一體化數(shù)據(jù)管理系統(tǒng),實現(xiàn)了數(shù)據(jù)的準確導(dǎo)入、多條件查詢、多功能顯示、統(tǒng)計分析、井控管理、報表下載等多項功能。系統(tǒng)操作靈活,可擴展性強。系統(tǒng)的應(yīng)用使人們能夠及時、準確、全面地掌握生產(chǎn)數(shù)據(jù)并對數(shù)據(jù)進行深層次的分析,優(yōu)化了生產(chǎn)過程,提高了生產(chǎn)效率,同時,為后續(xù)注采參數(shù)優(yōu)化、周期生產(chǎn)效果預(yù)測及生產(chǎn)優(yōu)化決策提供了基礎(chǔ)數(shù)據(jù)保障,也為后續(xù)一體化運行管理系統(tǒng)的開發(fā)奠定了基礎(chǔ)。
[1]曾玉強,劉蜀知,王琴,等.稠油蒸汽吞吐開采技術(shù)研究概述[J].特種油氣,2006,13(6):5-9.ZENG Yu-qiang, LIU Shu-zhi, WANG Qin, et al.Overview of heavy oil cyclic steam stimulation recovery technology[J].Special Oil and Gas Reservoirs,2006,13(6):5-9.
[2]黃娟娟,李曉明,張蓮梅,等.基于Web的多異構(gòu)電力信息集成系統(tǒng)的開發(fā)與應(yīng)用[J].電力科學與工程,2003(4):58-61.HUANG Juan-juan, LI Xiao-ming, ZHANG Lian-mei, et al.Development and application of heterogeneous-configuration electric power information integration system based on web[J].Electric Power Science and Engineering,2003(4):58-61.
[3]陳靜.基于MVC模式的Struts框架在稠油生產(chǎn)數(shù)據(jù)查詢系統(tǒng)中的應(yīng)用[D].北京:中國地質(zhì)大學,2006.
[4]肖必武.用JSP構(gòu)建動態(tài)網(wǎng)站[J].現(xiàn)代電子技術(shù),2003(13):12-17.XIAO Bi-wu.Constructing dynamic website using JSP[J].Modern Electronic Technique,2003(13):12-17.
[5]周旋,王麗芳,蔣澤軍.基于Ajax的即時消息系統(tǒng)的設(shè)計與實現(xiàn)[J].科學技術(shù)與工程,2009,9(2):446-449.ZHOU Xuan, WANG Li-fang, JIANG Ze-jun.Design and implementation of ajax based Instant messaging system[J].Science Technology and Engineering,2009,9(2):446-449.
[6]高建利,王麗芳,李志國.基于Struts與XML的圖形報表系統(tǒng)的設(shè)計[J].科學技術(shù)與工程,2008,9(3):1350-1353.GAO Jian-li,WANG Li-fang,LI Zhi-guo.Design of graphic report system based on struts and XML[J].Science Technology and Engineering,2008,9(3):1350-1353.
[7]張海波,董槐林.一種基于POI的Web表格生成[J].計算機技術(shù)與發(fā)展,2008,18(2):21-23.ZHANG Hai-bo,DONG Huai-lin.A kind of web spreadsheets based on POI[J].Computer Technology and Development,2008, 18(2):21-23.
[8]徐宇梁.基于MapX的車輛定位系統(tǒng)實現(xiàn)[J].科學技術(shù)與工程,2009,19(16):4862-4864.XU Yu-liang.Cars location orientation system based on MapX [J].Science Technology and Engineering,2009,19(16):4862-4864.
[9]沈金發(fā).關(guān)系數(shù)據(jù)庫系統(tǒng)ORACLE[M].1版.北京:清華大學出版社,1992.
[10]尚華.基于Web的醫(yī)學文獻數(shù)據(jù)庫的設(shè)計與實現(xiàn)[D].武漢:武漢科技大學,2011.
[11]易芹芹,丁振國.MVC模式下數(shù)據(jù)庫連接池的Web應(yīng)用方案[J].微計算機信息,2007(18):169-171.YI Qin-qin,DING Zhen-guo.Web application of connection pool based on MVC mode[J].Microcomputer Information,2007(18):169-171.