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