徐小輝,劉江濤,高 涵,丁艷艷
(中國石油新疆油田分公司,新疆 克拉瑪依 834000)
采氣工程方案在設計過程中要以氣藏特征、測井資料、生產情況等資料為基礎,進行流體特征、完井參數、生產管柱、增產措施、動態(tài)監(jiān)測等方面進行計算、分析、優(yōu)化。傳統(tǒng)的設計過程中往往借助專業(yè)軟件及各類Excel等小程序進行設計,這種模式存在著算法不統(tǒng)一、管理零散、操作復雜、處理時間長等問題。
本文針對傳統(tǒng)方案設計模式的問題及缺點,設計并實現(xiàn)了一套以SpringBoot+Vue為框架的B/S方案快速設計系統(tǒng),借助后端SpringBoot+MyBatis+Redis+MySQL的服務平臺,前端采用Vue+ElementUI+Echarts的解決手段,通過采用前后端分離技術,能夠快速搭建、配置、開發(fā)、調試采氣工程方案快速設計系統(tǒng),將方案設計與最新的信息化技術有機的結合,讓用戶能夠更好的專注于業(yè)務邏輯處理,加快方案編制的速度,提高方案優(yōu)化數據的準確度。
在采氣工程方案設計過程中,需要根據收集到的地質、試油、測試、分析化驗及前期探井評價井或同區(qū)塊其它開發(fā)井的生產資料進行整理、歸類,并將所需數據作為錄入項放入到專業(yè)軟件或各類Excel等小程序進行氣體組分及特征參數計算、射孔參數優(yōu)化、地層出砂預測、井筒攜液及沖蝕流量預測,油管強度校核、措施施工壓力預測、井口壓力計算、井下節(jié)流氣嘴優(yōu)選等各項業(yè)務功能運算,為方案設計內的各部分業(yè)務提供可靠的數據支撐。
為了實現(xiàn)各項業(yè)務需求,需要平臺提供全套系統(tǒng)功能模塊:1、用戶基礎功能模塊:包括用戶管理模塊、用戶登陸及認證模塊、用戶角色管理模塊;2、導航功能管理模塊:包括框架菜單分級管理模塊、路由導航模塊、角色權限分級模塊;3、數據通信管理模塊:包括前后端數據通信接口管理及交互模塊、數據權限分級管理模塊、前端各組件封裝及通信模塊;4、前端界面交互模塊:包括ElementUI基本界面設計、數據表格內容分頁顯示模塊、Echarts數據可視化展示模塊;5、系統(tǒng)配置、構建及發(fā)布模塊:包括后端Web服務配置部署發(fā)布模塊、前端平臺發(fā)布模塊。
系統(tǒng)平臺還要求前后端框架平臺具有較好的代碼易維護性、數據交互的格式規(guī)范性、頁面響應快速、用戶端交互簡潔易用、兼容性好、可擴展性強等需求。
本系統(tǒng)運用前后端分離的MVVM軟件架構設計模式,采用B/S系統(tǒng)構架,后端使用目前最流行的框架SpringBoot,并采用MyBatis訪問MySQL數據庫構建,Redis做數據緩存。前端采用Vue.js框架,能夠更好地處理頁面交互和邏輯,解決了常規(guī)Web開發(fā)中數據通信、操作DOM、渲染數據等難題,系統(tǒng)具有運算速度快、操作更簡單、易于統(tǒng)一維護、擴展性強等特點。前端同時采用ElementUI和Echarts是系統(tǒng)擁有更好的用戶界面及數據可視化展示效果。前后端分離的設計模式下,前后端之間彼此獨立,前端負責頁面交互和數據展示,著重提升用戶使用體驗。后端負責業(yè)務邏輯的處理和提供數據,著重提升系統(tǒng)的性能,職責劃分更加清晰,降低維護成本。
系統(tǒng)整體框架見圖1所示為三層體系結構,主要包括:
圖1 系統(tǒng)框架圖
1)基本數據層主要負責數據庫表的操作:數據層描述了系統(tǒng)的數據存儲的內容類型,持久化的業(yè)務數據使用MySQL保存,主要保存各業(yè)務專業(yè)數據、系統(tǒng)日志信息、 消息隊列、索引庫、 緩存等,并支持多數據源及類型。
2)后端主要關注數據處理和業(yè)務邏輯:包括數據持久層、業(yè)務邏輯層、控制層。數據持久層主要使用 Mybatis 、Redis、JPA等方式訪問數據庫。業(yè)務邏輯層主要使用 Spring事務控制處理用戶訪問邏輯,完成各個模塊之間的信息處理,也可進行定時任務處理,并通過調用數據持久層的接口和相關映射 XML 文件進行數據庫的操作??刂茖油ㄟ^Spring MVC、FastJSON、RestTemplate、Spring Security Oauth2+JWT等獲取用戶的請求訪問及安全控制,接收到前端傳過來的數據后,注入Service 層進行業(yè)務邏輯處理。
3)前端主要進行UI交互和數據通信:用戶通過各類終端設備使用瀏覽器訪問前端Web 應用,使用Element UI和Echarts進行用戶界面交互,通過Vue-cli3腳手架框架進行構建,使用Vue-Router進行路由管理、VueX進行狀態(tài)管理,采用Axios請求和響應技術同后端控制層進行數據通信及WebService調用,統(tǒng)一進行POST、GET等請求參數。
系統(tǒng)根據框架特點及采氣工程方案設計業(yè)務需求將功能模塊劃分為數據分析模塊、業(yè)務處理模塊及系統(tǒng)基本管理三大模塊,具體見圖2。
圖2 系統(tǒng)功能模塊圖
系統(tǒng)是基于前后端分離的架構進行開發(fā),前后端分離架構總體上包括前端和服務端,采取多人協(xié)作并行開發(fā)模式,開發(fā)步驟如下:
1)需求分析:梳理用戶的需求,分析業(yè)務流程;
2)接口定義:根據需求分析定義接口;
3)服務端和前端并行開發(fā):依據接口進行服務端接口開發(fā)。前端開發(fā)用戶操作界面,并請求服務端接口完成業(yè)務處理;
4)前后端集成測試:最終前端調用服務端接口完成業(yè)務。
根據系統(tǒng)業(yè)務需求分析和系統(tǒng)框架功能設計,本文開發(fā)的采氣工程方案快速設計系統(tǒng)采用 Tomcat 作為 Web 服務器,采用MySQL數據庫管理數據,系統(tǒng)結合了 Vue前端框架和 SpringBoot 后端框架的前后端分離的組合架構,并應用 JSON 格式對前后端交互的數據進行封裝,應用 Redis進行數據緩存,開發(fā)出基于 Web 應用的方案快速設計系統(tǒng)。
微服務架構作為目前使用的主流架構,已經被各行業(yè)廣泛使用,但是對于服務的劃分卻沒有固定的原則,常常會出現(xiàn)劃分過度或者不充分的情況。本系統(tǒng)主要涉及采氣工程方案設計過程中需要運用的各類公式及算法需要進行封裝成微服務,采用前后端分離原則,前端和后端的代碼分別分離及部署。
前端服務主要進行界面交互及數據傳輸,并通過Vue的computed屬性進行處理,簡單的數據如加減乘除類基本算法和單位換算封裝成公共api.js進行統(tǒng)一調用。
后端服務將業(yè)務中使用到的各類理論公式,如臨界攜液流速、天然氣壓縮因子計算公式和基本的求解算法,如一元三階求解方程、牛頓-拉夫遜迭代求解算法進行統(tǒng)一封裝成各類微服務,每一個微服務模塊,只關心自己的算法業(yè)務規(guī)則。例如摩阻壓力計算模塊服務根據傳過來的輸入參數安裝公式算法進行計算,傳出結果數據,不牽扯其它業(yè)務的邏輯,盡量避免A接口的改動會導致B接口的改動這種情況。
4.4.1 系統(tǒng)基本管理模塊實現(xiàn)
本系統(tǒng)具有常規(guī)系統(tǒng)的用戶登陸驗證模塊、用戶管理模塊、角色權限管理模塊、日志管理模塊外,菜單路由管理模塊采用動態(tài)定制模式,將系統(tǒng)菜單與Vue路由配置結合起來,按需進行分層級管理、權限管理、路由定制。
4.4.2 數據分析管理模塊實現(xiàn)
數據分析模塊將軟件所需要的基本數據表做成實體類,實現(xiàn)基本的增刪改查等功能,并進行數據的篩選統(tǒng)計,結合前端Echarts組件,實現(xiàn)數據可視化展示,為用戶提供更加便捷易懂的方式理解數據內容及趨勢。
4.4.3 業(yè)務處理模塊實現(xiàn)
業(yè)務處理模塊將方案設計中需要的各類應用前端采用Vue單頁面模式為主設計用戶交互界面,前端父子組件通信的采用prop、emit等,頁面間數據交互采用VueX,與后端的數據通信和微服務調用采用Axios調用。圖3展示了采氣方案設計中油管強度校核計算的單頁面應用。
圖3 油管強度校核計算圖
4.4.4 方案設計應用情況
本系統(tǒng)部署發(fā)布后,通過簡單的操作方法培訓,采氣方案設計人員就能迅速運用到準噶爾盆地各氣藏產能建設井及探井評價井方案設計中,極大的簡化方案設計流程,規(guī)范了設計中各類計算方法,操作更加簡便快捷,提高了方案設計效率。部分業(yè)務功能如油管強度校核、管道流動參數計算等模塊在試油分析設計中也得到了成功應用。
1)本文提出的基于SpringBoot+Vue框架設計及實現(xiàn)為采氣方案設計提供了一套切實可行的系統(tǒng)及模式,為油氣田開發(fā)領域新信息技術應用提供了更大的發(fā)展領域,后期系統(tǒng)可以擴展到采油方案設計及儲層改造設計等領域。
2)前端采用Vue+ElementUI+Echarts的各業(yè)務單頁面應用為用戶界面交互及數據通信提供了快捷的解決手段,使得在Web上也能簡便、高效做出專業(yè)應用軟件的功能及效果。
3)后端對微服務模塊的統(tǒng)一封裝及劃分能將業(yè)務處理計算統(tǒng)一化、標準化,并具有較強的可復用性及擴展性,并有利于后期項目的升級開發(fā)及維護。