胡廣浩 阮福明 朱耀強(qiáng)
(中海油田服務(wù)股份有限公司物探事業(yè)部,天津 300450)
在海洋油氣勘探的迫切需求下,中國(guó)海油大力發(fā)展自主地震勘探裝備和技術(shù),并取得成功應(yīng)用[1,2]。海上地震勘探采用工區(qū)的方式進(jìn)行作業(yè)過程數(shù)據(jù)管理,工區(qū)通常由幾十條甚至上百條測(cè)試組成,海上地震勘探的過程就是逐個(gè)完成每條測(cè)線地震數(shù)據(jù)采集(測(cè)線采集),測(cè)線采集由導(dǎo)航系統(tǒng)、槍控系統(tǒng)、采集系統(tǒng)、拖纜控制系統(tǒng)等協(xié)同工作下共同完成。各作業(yè)班組人員在測(cè)線采集過程中記錄測(cè)線數(shù)據(jù),測(cè)線采集結(jié)束后手工填寫測(cè)線班報(bào)、問題記錄、質(zhì)控?cái)?shù)據(jù)等,匯總形成測(cè)線報(bào)告。不同作業(yè)船隊(duì)、不同作業(yè)班組提交的報(bào)告格式不統(tǒng)一,從而形成的地震作業(yè)報(bào)告種類多樣;人為的記錄和填報(bào)失誤也會(huì)帶來錯(cuò)誤的作業(yè)報(bào)告;大量的測(cè)線記錄,對(duì)檢索和統(tǒng)計(jì)帶來挑戰(zhàn)。
本文設(shè)計(jì)了一套用于海上地震勘探現(xiàn)場(chǎng)的質(zhì)量監(jiān)督平臺(tái)軟件(平臺(tái)軟件),實(shí)現(xiàn)對(duì)作業(yè)現(xiàn)場(chǎng)數(shù)據(jù)的規(guī)范化記錄、集中式管理和統(tǒng)計(jì)分析。采用瀏覽器/服務(wù)器(Browser/Server,B/S)架構(gòu),客戶端采用瀏覽器作為用戶接口,平臺(tái)軟件則以Web應(yīng)用程序的形式運(yùn)行在服務(wù)器端,如圖1所示。
圖1 平臺(tái)軟件結(jié)構(gòu)圖
平臺(tái)軟件基于Java語(yǔ)言和模型—視圖—控制器(model-view-controller,MVC)架構(gòu)設(shè)計(jì)和開發(fā),層次結(jié)構(gòu)如圖2所示。通過將業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方式組織代碼,降低開發(fā)難度,提高開發(fā)效率和可維護(hù)性。
圖2 系統(tǒng)層次結(jié)構(gòu)圖
(1)表示層作為系統(tǒng)的最上層,用于顯示數(shù)據(jù)和接收用戶輸入的數(shù)據(jù),為用戶提供一種交互式操作的界面,采用JavaServer Faces(JSF)框架[3,4],以組件為中心進(jìn)行用戶界面(UI)構(gòu)建,使用PrimeFaces的UI組件庫(kù)作為基礎(chǔ)樣式[5]。
(2)業(yè)務(wù)邏輯層處于數(shù)據(jù)訪問層與表示層中間,起到數(shù)據(jù)交換中承上啟下的作用。它對(duì)表示層接到的用戶指令或數(shù)據(jù)進(jìn)行業(yè)務(wù)處理,將處理的結(jié)果發(fā)送給下面的數(shù)據(jù)訪問層,請(qǐng)求數(shù)據(jù)訪問層傳回需要的數(shù)據(jù)。
(3)數(shù)據(jù)訪問層實(shí)現(xiàn)數(shù)據(jù)庫(kù)的訪問,包括對(duì)數(shù)據(jù)庫(kù)表進(jìn)行增、刪、改、查的操作。它將存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)提交給業(yè)務(wù)層,將業(yè)務(wù)層處理的數(shù)據(jù)保存到數(shù)據(jù)庫(kù)。平臺(tái)軟件的數(shù)據(jù)訪問層采用Hibernate框架[5],完成數(shù)據(jù)的持久化。
(4)數(shù)據(jù)存儲(chǔ)采用系數(shù)據(jù)庫(kù)系統(tǒng)PostgreSQL和文件系統(tǒng)組合的方式,文件系統(tǒng)用于存儲(chǔ)較大的附件文件,附件文件的位置存儲(chǔ)在數(shù)據(jù)庫(kù)表格特定字段中。
平臺(tái)軟件由用戶模塊、工區(qū)模塊、儀器模塊、導(dǎo)航模塊、現(xiàn)場(chǎng)處理模塊、監(jiān)督模塊組成,如圖3所示。
圖3 平臺(tái)軟件功能框圖
(1)用戶模塊:由用戶管理、角色管理、權(quán)限管理組成,通過用戶—角色—權(quán)限三級(jí)結(jié)構(gòu)級(jí)聯(lián),實(shí)現(xiàn)對(duì)用戶操作權(quán)限精細(xì)化控制。
(2)工區(qū)模塊:工區(qū)模塊是其他模塊的基礎(chǔ)模塊,用于其他模塊提交數(shù)據(jù)的參考,由工區(qū)信息、測(cè)線信息、工區(qū)統(tǒng)計(jì)組成。工區(qū)信息管理整個(gè)作業(yè)工區(qū)的全局?jǐn)?shù)據(jù),包括地震采集參數(shù)、槍陣配置、開工參數(shù)確認(rèn)單、導(dǎo)航配置等;測(cè)線信息管理工區(qū)內(nèi)包含的前繪測(cè)線,用戶基于前繪測(cè)線提交實(shí)際作業(yè)測(cè)線的數(shù)據(jù);工區(qū)統(tǒng)計(jì)實(shí)時(shí)監(jiān)控當(dāng)前測(cè)線作業(yè)情況,并對(duì)歷史測(cè)線完成情況進(jìn)行統(tǒng)計(jì)。
(3)儀器模塊:由儀器班報(bào)、日檢報(bào)告、月檢報(bào)告組成,儀器班報(bào)管理作業(yè)測(cè)線的地震數(shù)據(jù)有效炮號(hào)、噪音炮、異常炮、廢炮、震源壓力和容量超標(biāo)、槍控同步超標(biāo)等,日檢報(bào)告和月檢報(bào)告管理儀器系統(tǒng)的每日和每月指標(biāo)測(cè)試數(shù)據(jù)。
(4)導(dǎo)航模塊:由導(dǎo)航班報(bào)、航行公里管理、工區(qū)覆蓋管理等組成,導(dǎo)航班報(bào)管理作業(yè)測(cè)線的導(dǎo)航數(shù)據(jù)水深、電纜羽角、導(dǎo)航設(shè)備異常等,航行公里管理、工區(qū)覆蓋管理分別對(duì)每日的作業(yè)時(shí)間、拖航時(shí)間、故障維修時(shí)間、天氣等待時(shí)間進(jìn)行分類別管理,經(jīng)過統(tǒng)計(jì)和分析形成工區(qū)的作業(yè)時(shí)效分析統(tǒng)計(jì)。
(5)現(xiàn)場(chǎng)處理模塊:每條測(cè)線地震數(shù)據(jù)現(xiàn)場(chǎng)處理后質(zhì)控報(bào)告進(jìn)行管理分析,包括噪聲、信號(hào)相對(duì)振幅分析、單炮噪聲平均值、測(cè)線噪聲分析、電纜深度、槍壓力和深度、TB疊加、近場(chǎng)數(shù)據(jù)分析、單道噪聲、二維疊加、LMO等。
(6)監(jiān)督模塊:對(duì)各業(yè)務(wù)模塊提交的作業(yè)數(shù)據(jù)進(jìn)行分析和統(tǒng)計(jì),形成測(cè)線和工區(qū)綜合質(zhì)控?cái)?shù)據(jù),給作業(yè)管理者提供決策支持。
(1)平臺(tái)軟件的數(shù)據(jù)庫(kù)的概念設(shè)計(jì)采用自底向上的方法,分為系統(tǒng)業(yè)務(wù)模塊、用戶管理模塊、日志管理模塊等,集成起來得到全局概念結(jié)構(gòu)。采用實(shí)體—關(guān)系圖(Entity-Relationship,E-R)進(jìn)行概念建模,以系統(tǒng)業(yè)務(wù)模塊為例,包括質(zhì)控報(bào)告、工區(qū)文件、測(cè)線文件、磁帶裝箱單、測(cè)線、前繪測(cè)線、地震采集參數(shù)、工區(qū)、資料交接單、導(dǎo)航班報(bào)、儀器班報(bào)、儀器盤、導(dǎo)航開工參數(shù)確認(rèn)單等實(shí)體。其中,測(cè)線和工區(qū)是多對(duì)一關(guān)系,磁帶裝箱單、工區(qū)文件、前繪測(cè)線、測(cè)線、資料交接單、導(dǎo)航開工參數(shù)確認(rèn)單、地震采集參數(shù)與工區(qū)都是多對(duì)一的關(guān)系,測(cè)線文件、質(zhì)控報(bào)告、儀器班報(bào)、導(dǎo)航班報(bào)與測(cè)線是多對(duì)一的關(guān)系,儀器盤與儀器班報(bào)是多對(duì)一的關(guān)系等。
(2)將平臺(tái)軟件的數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型,然后向PostgreSQL數(shù)據(jù)庫(kù)支持下的數(shù)據(jù)模型轉(zhuǎn)換后,得到邏輯結(jié)構(gòu)。本文利用Power Designer將前面得到的概念模型生成邏輯模型,在概念模型系統(tǒng)業(yè)務(wù)模塊的多對(duì)一關(guān)系中,多對(duì)一關(guān)系的前者會(huì)在表中新增后者的主鍵信息,作為外鍵。
2.3.1 權(quán)限控制流程
地震勘探作業(yè)中由儀器工程師、導(dǎo)航工程師、現(xiàn)場(chǎng)處理工程師構(gòu)成的作業(yè)班組和由作業(yè)經(jīng)理與作業(yè)甲方等構(gòu)成的作業(yè)管理者屬于不同類別用戶,具有不同的操作權(quán)限和視圖。對(duì)權(quán)限管理是由超級(jí)管理員完成的,超級(jí)管理員登錄系統(tǒng)后,進(jìn)行用戶創(chuàng)建、角色分配、為角色分配操作權(quán)限,操作權(quán)限分配流程如圖4所示。
圖4 權(quán)限控制流程圖
將權(quán)限與界面操作按鈕和菜單進(jìn)行綁定,通過權(quán)限分配后,每個(gè)用戶可以看到不同的操作界面,具有不同的操作權(quán)限。
2.3.2 業(yè)務(wù)處理流程
作業(yè)班組用戶登陸系統(tǒng)后,可以通過瀏覽器完成作業(yè)數(shù)據(jù)的瀏覽、上傳、下載、編輯等操作,作業(yè)管理者同樣通過瀏覽器進(jìn)行數(shù)據(jù)的統(tǒng)計(jì)結(jié)果瀏覽和監(jiān)督。平臺(tái)軟件對(duì)各個(gè)業(yè)務(wù)模塊的處理流程提供了基本一致的操作方式,通過以工區(qū)為入口對(duì)工區(qū)數(shù)據(jù)的管理,通過以測(cè)線為入口對(duì)測(cè)線數(shù)據(jù)的管理。從功能上,基本都包括了查閱、統(tǒng)計(jì)、添加、刪除、編輯、打印等功能。以往系統(tǒng)提交測(cè)線儀器班報(bào)功能項(xiàng)為例,流程為:儀器工程登錄系統(tǒng)后,系統(tǒng)首先進(jìn)行權(quán)限驗(yàn)證,初始化界面為工區(qū)管理頁(yè)面,工區(qū)管理頁(yè)面由測(cè)線組成,詳細(xì)顯示了每條測(cè)線的狀態(tài),儀器工程師選擇進(jìn)入剛做完的測(cè)線,錄入這條測(cè)線的作業(yè)信息,可選擇附件上傳,提交確認(rèn)后,該條測(cè)線的班報(bào)信息錄入系統(tǒng)成功,數(shù)據(jù)記錄在數(shù)據(jù)庫(kù)和文件服務(wù)器中,系統(tǒng)自動(dòng)跳轉(zhuǎn)到工區(qū)頁(yè)面,接下來可以對(duì)測(cè)線查閱、重新提交或者刪除錯(cuò)誤提交等,主要實(shí)現(xiàn)流程如圖5所示。
圖5 業(yè)務(wù)處理流程圖
平臺(tái)軟件在地震勘探船上進(jìn)行了2個(gè)作業(yè)工區(qū)的數(shù)據(jù)集中式管理,在并發(fā)用戶數(shù)10人情況下,操作平均響應(yīng)時(shí)間小于0.5秒,滿足現(xiàn)場(chǎng)作業(yè)數(shù)據(jù)管理使用要求。后續(xù)將進(jìn)一步增強(qiáng)平臺(tái)軟件的分析統(tǒng)計(jì)能力,為作業(yè)管理者提供更好的作業(yè)決策支撐。