宋文娟
【摘 要】采用專業(yè)通用模板技術(shù)、架構(gòu)技術(shù)、插件技術(shù)、數(shù)據(jù)管理與圖形顯示引擎技術(shù),實現(xiàn)油藏數(shù)值模擬軟件前后處理系統(tǒng)的底層框架構(gòu)建,建立模塊插件統(tǒng)一開發(fā)模板,以模塊插件統(tǒng)一開發(fā)模板為基礎(chǔ),設(shè)計并開發(fā)系統(tǒng)插件添加工具、模塊參數(shù)卡管理與解析工具多種模塊化架構(gòu)配套工具?;诓寮夹g(shù)的油藏模擬軟件底層構(gòu)架設(shè)計通用性強、可拓展性強,能夠滿足油藏數(shù)值模擬軟件在逐步發(fā)展工程中不斷完善、即時集成的需求。
【關(guān)鍵詞】插件式;底層框架;油藏模擬平臺;模板技術(shù)
0 引言
油藏數(shù)值模擬是現(xiàn)代油藏開發(fā)中最重要的技術(shù)手段,其應(yīng)用已經(jīng)滲透到油藏開發(fā)的各個環(huán)節(jié)。商業(yè)化的數(shù)值模擬軟件開發(fā)是各個油田都在關(guān)注的重要應(yīng)用問題。油藏數(shù)值模擬軟件系統(tǒng)從工作流程上一般分為前處理、主模型和后處理三大部分。前處理根據(jù)地質(zhì)資料、PVT數(shù)據(jù)等生成相應(yīng)的模型,并根據(jù)控制參數(shù)完成模型集成工作;主模型依照前處理得到的模擬模型進行模擬運算,得到運算結(jié)果;后處理對主模型得到的運算結(jié)果進行綜合分析、方案設(shè)計和方案優(yōu)化,最終得到最優(yōu)方案,并完成報告編寫的工作。本研究主要針對油藏數(shù)值模擬軟件的前后處理系統(tǒng)底層平臺設(shè)計,采用規(guī)范的軟件工程方法,提升完善現(xiàn)有軟件系統(tǒng)架構(gòu),實現(xiàn)軟件系統(tǒng)平臺的先進性、軟件易用性、系統(tǒng)高效性、系統(tǒng)安全性。
1 總體結(jié)構(gòu)
1.1 主體體系結(jié)構(gòu)
一個系統(tǒng)的軟件體系結(jié)構(gòu),由軟件的大粒度結(jié)構(gòu)組成,它描述系統(tǒng)的組成部分,以及在高的層次上這些組成部分如何互動。軟件體系結(jié)構(gòu)是影響一個軟件產(chǎn)品內(nèi)在質(zhì)量的核心因素。軟件產(chǎn)品的質(zhì)量有許多方面的因素,包括:健壯性、靈活性、高性能、簡潔性、可維護性、可理解性,特別是軟件產(chǎn)品與用戶環(huán)境和數(shù)據(jù)的整合,這些都與軟件體系結(jié)構(gòu)密切相關(guān)。
為使該系統(tǒng)各個組成部分實現(xiàn)內(nèi)部高內(nèi)聚、相互間低耦合,本研究軟件體系結(jié)構(gòu)主要參照SALSA(科學(xué)分析層次體系結(jié)構(gòu)),包括:交互界面層、分析層和數(shù)據(jù)存取層。
具體到本研究,軟件主體體系架構(gòu)包括:交互界面層、功能模塊層、數(shù)據(jù)IO與圖形接口層,還包括并行服務(wù)與通訊服務(wù)接口。
1)交互界面層包括所有的用戶交互界面,形成用戶交互平臺,負責顯示用戶界面并接收用戶操作,并將用戶操作傳遞給功能模塊層和圖形顯示層。
2)功能模塊層包括所有的應(yīng)用模塊,其中包括系統(tǒng)所提供的接口以及用戶根據(jù)接口所編寫的應(yīng)用。功能模塊層完成用戶所要求的操作,將數(shù)據(jù)讀寫請求發(fā)送給數(shù)據(jù)IO層。
3)數(shù)據(jù)I/O與圖形顯示接口層包括對文件以及數(shù)據(jù)庫的管理和提供顯示繪圖服務(wù),為上層應(yīng)用提供各個方面的數(shù)據(jù)讀取和圖形顯示服務(wù)。例如參數(shù)數(shù)據(jù)、曲線圖、圓餅圖、等值線圖等等。另外,數(shù)據(jù)I/O層還包括不同數(shù)據(jù)格式間的轉(zhuǎn)換操作,將系統(tǒng)內(nèi)部數(shù)據(jù)格式和其他軟件所能識別的數(shù)據(jù)格式進行相互轉(zhuǎn)換。
4)系統(tǒng)將數(shù)據(jù)索引保存在數(shù)據(jù)庫中。
1.2 系統(tǒng)平臺架構(gòu)
依據(jù)SALSA系統(tǒng)架構(gòu)模型,本研究基于NIST/ECMA的模型,參考項目應(yīng)用特點,形成系統(tǒng)平臺架構(gòu):
第一層:用戶控制層,包含若干“用戶界面(UI)”模塊。對于客戶端,可以有兩類用戶界面,一是基本用戶界面模塊,采用Qt架構(gòu)構(gòu)建基本用戶界面,另外一個是3D可視化模塊,用OpenGL開發(fā)。對于基本用戶界面,將用戶界面集成為用戶主控制臺。
第二層:應(yīng)用執(zhí)行控制層,實現(xiàn)應(yīng)用功能模塊的集成、執(zhí)行和監(jiān)控。功能包括:批量作業(yè)執(zhí)行控制、與用戶的交互執(zhí)行的控制。
第三層:應(yīng)用功能層,實現(xiàn)應(yīng)用模塊功能。應(yīng)用功能層可以被許多功能模塊調(diào)用。應(yīng)用功能層交互工具和算法工具。
第四層:應(yīng)用平臺層,解析用戶的操作,執(zhí)行數(shù)據(jù)讀寫,執(zhí)行圖形顯示,它提供應(yīng)用軟件與操作系統(tǒng)/系統(tǒng)環(huán)境的接口。包括數(shù)據(jù)管理,項目管理,存取控制等等。本研究采用XML標準進行數(shù)據(jù)編目。
第五層:存儲與外部設(shè)備管理層:管理數(shù)據(jù)庫、文件、圖形的存儲位置、存儲方式以及輸入輸出設(shè)置。數(shù)據(jù)分層次管理,數(shù)據(jù)庫只保存索引。
第六層:調(diào)度與通信服務(wù)層:完成系統(tǒng)的作業(yè)調(diào)度、資源調(diào)度以及并行處理。
1.3 軟件框架設(shè)計
本研究基于框架進行軟件開發(fā)。軟件框架是一個可以復(fù)用的類,表示特定領(lǐng)域的可復(fù)用的設(shè)計。可以利用框架,通過擴充類、實現(xiàn)接口和掛接方法,定制一個軟件??蚣芫褪强梢詳U充的程序骨架,用戶提供的方法填充這個骨架,并剪裁為特定的應(yīng)用軟件。
深入剖析數(shù)值模擬應(yīng)用的業(yè)務(wù)流、數(shù)據(jù)流,以數(shù)值模擬流程為主線,采用管道/過濾模式和數(shù)據(jù)存儲中心模式相結(jié)合的框架進行開發(fā),以追求系統(tǒng)的易用性、高效性、開放性、可維護性為原則。
本研究的軟件模塊編程采用Plugin技術(shù),即插件模塊。軟件框架編寫標準的接口,用戶根據(jù)軟件框架提供的接口編寫插件,可以動態(tài)的連接到軟件框架中而不用重新編譯框架。插件模塊相對獨立,不影響其他模塊以及框架的運行,用戶可以很方便的維護軟件功能。
每一個插件模塊都能夠從系統(tǒng)的框架中得到所需的公開接口進行功能上的調(diào)用。并且,每個插件模塊都有自己的接口與實現(xiàn),因為效率/設(shè)計以及安全上的原因,插件的接口分為公共的和私有的,插件的實現(xiàn)一般也都被隱藏。
本研究將主要采用插件模塊方法進行開發(fā),并且降低插件之間的耦合度,使得系統(tǒng)健康、高效、可復(fù)用并易維護。
2 程序組織結(jié)構(gòu)
2.1 圖形顯示設(shè)計
圖形顯示引擎是圖形元素(點、線、面、體、圖件等)的描述、數(shù)據(jù)的圖形顯示解析、用戶的操作解析以及圖形配置的集合。主要完成系統(tǒng)交互、顯示工具的開發(fā)。該技術(shù)可以提高系統(tǒng)的開發(fā)效率,提高系統(tǒng)風格的一致性、可擴展性。
2.2 數(shù)據(jù)庫管理設(shè)計
數(shù)據(jù)管理引擎是指數(shù)據(jù)庫表的管理功能的集合,包括文件的及目錄結(jié)構(gòu)的定義,數(shù)據(jù)類型的定義,數(shù)據(jù)傳遞、數(shù)據(jù)讀寫請求、數(shù)據(jù)轉(zhuǎn)換等數(shù)據(jù)相關(guān)功能。該技術(shù)可以提高系統(tǒng)的執(zhí)行效率,提高系統(tǒng)的可擴展性及易用性。
本系統(tǒng)數(shù)據(jù)類型較為復(fù)雜,需要對數(shù)據(jù)進行詳細分類,并建立數(shù)據(jù)字典以及數(shù)據(jù)字典管理工具,提高系統(tǒng)的可擴展性。
實現(xiàn)數(shù)據(jù)管理接口,使系統(tǒng)中數(shù)據(jù)的讀寫都可以通過數(shù)據(jù)管理平臺實現(xiàn),保證系統(tǒng)數(shù)據(jù)的安全性。
2.3 開發(fā)模板技術(shù)
開發(fā)模板是為軟件開發(fā)人員提供的工具軟件進行代碼編寫的方法,工具軟件包括程序框架工具、參數(shù)和數(shù)據(jù)讀寫接口、參數(shù)卡生成工具以及參數(shù)解析引擎等。該技術(shù)可以提高系統(tǒng)的開發(fā)效率,提高系統(tǒng)的一致性、安全性、可擴展性。
3 結(jié)論
本系統(tǒng)設(shè)計了油藏數(shù)值模擬軟件平臺的底層主體架構(gòu),主要特點如下:
1)采用專業(yè)通用模板技術(shù)、架構(gòu)技術(shù)、插件技術(shù)、數(shù)據(jù)管理與圖形顯示引擎技術(shù)來構(gòu)建系統(tǒng)底層框架,控制流程管理;
2)實現(xiàn)多種功能強大、類型齊全的圖件繪制、顯示和打印功能以及豐富的人機交互功能;
3)實現(xiàn)三維可視化模型顯示及人機交互功能;
4)實現(xiàn)多種類微機群的并行模擬計算,以及數(shù)據(jù)傳輸、進程控制等功能。
【參考文獻】
[1]劉建濤,李春雷,楊河山.插件式集成技術(shù)在數(shù)字油田系統(tǒng)建設(shè)中的應(yīng)用[J]. 中國科技信息,2013(3).
[2]彭永康,章義來.插件及其接口的研究與應(yīng)用[J].計算機應(yīng)用,2003(6).
[3]陳蘇.油藏數(shù)值模擬遠程工作平臺軟件設(shè)計[J].今日科苑,2008(3).
[責任編輯:田吉捷]