亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于RIA插件式測井解釋軟件設(shè)計與實現(xiàn)

        2015-05-09 09:47:24承達瑜王衛(wèi)吳非謝關(guān)寶
        測井技術(shù) 2015年2期
        關(guān)鍵詞:插件測井客戶端

        承達瑜, 王衛(wèi), 吳非, 謝關(guān)寶

        (中國石化石油工程技術(shù)研究院測錄井研究所, 北京 100029)

        0 引 言

        測井解釋軟件在測井資料儲層評價工作中具有圖形顯示速度快、用戶交互性強等特點[1]。測井解釋軟件網(wǎng)絡(luò)化、Web化、易擴展的發(fā)展方向已經(jīng)成為共識。GeoFrame、eXpress、CIFLog測井軟件、Lead平臺以及Forward系列等軟件[2-5]其實現(xiàn)模式都以客戶端/服務(wù)器(Client/Server,C/S)為主。這些軟件的安裝、部署、升級和更新和維護需要專業(yè)人員完成。傳統(tǒng)的基于HTML頁面的Web應(yīng)用技術(shù)因其難以滿足測井圖件的快速顯示和快速交互的需要,并不適用于測井解釋軟件開發(fā)。如何在Web環(huán)境下實現(xiàn)功能強大、靈活擴展的測井解釋軟件是一大難題。

        富互聯(lián)網(wǎng)應(yīng)用RIA(Rich Internet Applications)具有桌面應(yīng)用程序豐富的交互體驗和傳統(tǒng)Web應(yīng)用無客戶端、部署靈活的優(yōu)點。本文采用RIA技術(shù),試圖構(gòu)建插件式的測井解釋軟件體系結(jié)構(gòu),設(shè)計面向RIA的插件框架、插件接口和通訊協(xié)議;采用JavaFX開發(fā)一個原型系統(tǒng)驗證其設(shè)計的正確性。

        1 RIA與插件技術(shù)

        1.1 RIA技術(shù)及其選取

        RIA綜合了B/S和C/S架構(gòu)的優(yōu)勢,是一種全新的Web應(yīng)用模式,具有桌面應(yīng)用程序交互性強、反應(yīng)快的優(yōu)點,又繼承了傳統(tǒng)Web應(yīng)用程序普遍應(yīng)用和靈活部署的特性[6]。RIA具有富客戶技術(shù)[7],“富”的概念是指包含豐富的數(shù)據(jù)模型和用戶界面。它充分利用了客戶端的計算處理能力,能提供響應(yīng)速度快和圖形豐富的用戶界面,平衡了客戶端和服務(wù)器端的負載。RIA技術(shù)為實現(xiàn)Web化的測井解釋軟件提供豐富完善的解決方案,也使得在Web環(huán)境下實現(xiàn)系統(tǒng)插件化成為可能。

        主流的RIA實現(xiàn)技術(shù)有Flex、Silverlight以及JavaFX等。其中,Flex[8]是Adobe公司提供的RIA開發(fā)和部署的平臺,包括Flex Enterprise Services2、Flex Builder 2、Flex Framework等,主流版本是4.X[9];Silverlight[10]是微軟公司開發(fā)的RIA應(yīng)用程序技術(shù),提供跨客戶平臺、跨瀏覽器的能力;JavaFX[11]是SUN公司利用Java運行環(huán)境進入RIA領(lǐng)域的開發(fā)技術(shù),在JavaFX 2.0以后的版本完全兼容Java。這3種技術(shù)各有優(yōu)勢,Flex最早推出RIA技術(shù),相對比較成熟;Silverlight的先天優(yōu)勢是有Windows平臺的支持;JavaFX與Java一脈相承,具有開源的優(yōu)勢,提供所有熟悉的語言功能(如泛型、注釋和多線程)、高性能的軟硬件加速圖形(Prism)和媒體引擎,支持二維和三維圖形、圖像、多媒體、動畫等,并且兼容Java的Swing和AWT,能夠開發(fā)具有豐富用戶體驗的界面,實現(xiàn)復(fù)雜的圖形處理、顯示。服務(wù)器和客戶端平臺都采用Java技術(shù),降低了投資風(fēng)險,減少了業(yè)務(wù)解決方案的復(fù)雜性。選取JavaFX更適合作為測井解釋軟件的RIA開發(fā)工具。

        1.2 插件技術(shù)

        插件技術(shù)是一種提高軟件復(fù)用性和擴展性的有效方法[12],基本思想就是在軟件的設(shè)計和研發(fā)過程中把待開發(fā)的目標軟件劃分為主體程序(或稱平臺)和插件(按照預(yù)定接口實現(xiàn)的軟件功能構(gòu)件)2部分。在不需要重新編譯整個程序的前提下,可以在應(yīng)用程序開發(fā)完畢后以補丁的形式對其修改,從而使得應(yīng)用程序可被定制、更靈活、更具有動態(tài)性。

        插件大致有3類[13]。①命令行插件,即應(yīng)用程序向用戶提供一些基本命令,用戶使用這些命令編寫插件。該類插件一般是文本文件,開發(fā)比較簡單,但是功能單一。②用腳本語言實現(xiàn)插件,即用戶通過腳本語言編寫插件。該類方法的優(yōu)點在于制作插件時不需要使用其它工具,軟件本身就可以實現(xiàn),普遍出現(xiàn)于各種辦公自動化軟件中。③基于接口方式實現(xiàn)插件,即應(yīng)用程序規(guī)定插件調(diào)用接口,用戶依據(jù)接口規(guī)范編寫插件。這類插件封裝性好,靈活性強,能夠真正意義上實現(xiàn)“平臺+插件”的軟件結(jié)構(gòu),但是軟件設(shè)計的難度大,對開發(fā)人員要求高。根據(jù)在線測井解釋軟件的具體需求,測井解釋系統(tǒng)采用了基于接口的插件實現(xiàn)方法。

        2 軟件架構(gòu)與插件設(shè)計

        2.1 系統(tǒng)架構(gòu)設(shè)計

        根據(jù)RIA具有富客戶端、異步通信的特點,系統(tǒng)設(shè)計的主要思想是將測井解釋涉及到的數(shù)據(jù)處理、算法、圖形顯示功能封裝成插件存儲在服務(wù)端,通過配置文件暴露插件接口,提供插件下載;在客戶端則依據(jù)插件原理設(shè)計測井解釋插件框架,根據(jù)用戶需求,動態(tài)地從服務(wù)器下載和管理插件,完成各插件的注冊、加載和管理,實現(xiàn)按需服務(wù)、動態(tài)擴展。

        遵循該設(shè)計思想,采用B/S設(shè)計模式,以多層架構(gòu)的方式進行設(shè)計該架構(gòu),總體上分為客戶端表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層等3層架構(gòu)(見圖1)。與傳統(tǒng)的B/S模式不同的是,由于RIA具有豐富的數(shù)據(jù)模型、界面元素,使得瀏覽器客戶端具有C/S模式中客戶端的計算、展示能力,減輕了服務(wù)端的負載。業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層除了能夠在線處理提供客戶端的請求,還可以提供功能插件的下載,加強客戶端的處理能力,甚至可以實現(xiàn)客戶端離線工作功能。

        該系統(tǒng)架構(gòu)中,表示層為用戶提供一個豐富的、具有高度用戶體驗的可視化界面,以圖文一體化的方式進行各種測井解釋業(yè)務(wù)的處理解釋。在本文的系統(tǒng)架構(gòu)中,表示層設(shè)計重點是插件式測井解釋軟件客戶端。整個表示層主要由基礎(chǔ)組件、插件框架和本地存儲等3部分組成,①基礎(chǔ)組件為用戶提供測井解釋所必須的曲線處理、交會圖、用戶交互等功能;②插件框架提供統(tǒng)一的插件注冊接口,同時管理每一個插件,負責(zé)在運行時動態(tài)加載可用插件、提供插件間的通信機制及卸載插件;③本地存儲保存了客戶端的配置信息、功能插件,提高客戶端的啟動效率,同時也使得客戶端可以離線使用。業(yè)務(wù)邏輯層處于數(shù)據(jù)訪問層與表示層中間,起到了承上啟下的作用,是系統(tǒng)架構(gòu)中的核心部分,主要負責(zé)實現(xiàn)數(shù)據(jù)預(yù)處理(如曲線拼接、環(huán)境校正)、數(shù)據(jù)分析、處理解釋以及成圖等測井解釋業(yè)務(wù)功能。數(shù)據(jù)層是系統(tǒng)應(yīng)用的基礎(chǔ),負責(zé)對測井?dāng)?shù)據(jù)的存取、維護和管理,提供測井?dāng)?shù)據(jù)的訪問接口。

        2.2 插件設(shè)計

        2.2.1 插件框架設(shè)計

        插件框架支撐著整個插件式測井解釋軟件的結(jié)構(gòu),是測井解釋軟件客戶端核心的部分,負責(zé)管理和承載各類插件,根據(jù)插件配置生成交互界面,協(xié)調(diào)平臺、插件以及插件之間的互操作等。圖1為客戶端插件框架結(jié)構(gòu)圖,整個框架主要包含插件信息列表、插件管理器及通訊控制。插件信息表依據(jù)插件配置在運行時維護所有注冊插件的基本信息,如插件名稱、版本和訪問接口等,是插件運行時進行管理的基礎(chǔ)。插件管理器負責(zé)不同插件的全生命周期管理,實現(xiàn)插件的注冊、加載、調(diào)用、注銷、以及卸載等整個運行過程的管理。通信控制負責(zé)平臺和插件、插件與插件之間的通信,將消息機制引入通信控制,定義消息類型,通過管理插件消息傳遞,將“插件-插件”的通信的關(guān)系變?yōu)椤霸床寮?消息總線-目的插件”關(guān)系,降低了插件之間的耦合度,使得插件的修改、替換和升級更加方便。

        圖1 系統(tǒng)架構(gòu)

        2.2.2 接口設(shè)計

        接口實質(zhì)上是軟件模塊的調(diào)用規(guī)范。在插件式測井解釋系統(tǒng)中,接口在主程序中起到了橋梁作用,提供了插件的接入點,使得插件功能可被主程序調(diào)用。一個描述插件標識、插件狀態(tài)和行為等基本信息,提供插件共性操作的通用插件接口(IPlugin)是系統(tǒng)所必需的。IPlugin是所有插件必須實現(xiàn)的頂級接口。依據(jù)測井解釋業(yè)務(wù)和系統(tǒng)框架2部分,將插件劃分為解釋業(yè)務(wù)插件與框架插件2個大類,對應(yīng)于這兩類插件,可將測井解釋系統(tǒng)的接口集合劃分為框架接口和測井解釋業(yè)務(wù)接口。

        為了便于開發(fā),對于圖形顯示模塊采用圖元化設(shè)計,即通過圖元的組合、拼裝構(gòu)建多樣的圖形。相對于圖元設(shè)計,圖形繪制接口提供測井基本圖元和復(fù)合圖元接口。同時,依據(jù)解釋習(xí)慣及輸入、輸出數(shù)據(jù)的特性,可將算法接口細分為預(yù)處理接口、常規(guī)測井接口、工程測井接口、生產(chǎn)測井接口及特殊測井接口等算法接口。具體的接口關(guān)系見圖2;每類接口含義見表1。

        2.2.3 通信機制

        實現(xiàn)測井解釋平臺和插件、插件與插件之間的通信、調(diào)用是插件式測井解釋系統(tǒng)主要的關(guān)鍵技術(shù),必須建立一套既能保證各插件之間的通信又可維持其獨立性的控制機制。借鑒Java的委派事件模型[14](Delegation Event Model,DEM)構(gòu)建測井解釋插件通信機制,以觀察者(又稱為發(fā)布/訂閱)模式處理插件間各類事件的激發(fā)與響應(yīng)。插件通信機制包含事件源(插件事件處理類)、事件監(jiān)聽對象和事件對象(具體事件對象)三要素(見圖3)。其中,事件源提供各類測井解釋插件事件處理功能,事件監(jiān)聽對象實現(xiàn)事件的添加、卸載和執(zhí)行,事件對象傳遞與事件相關(guān)的信息,觸發(fā)某個具體插件的調(diào)用。

        圖2 測井解釋插件接口集

        接口說明IPlugin頂層接口,類似于基類,所有插件必須繼承該接口,內(nèi)含插件標識、版本信息、插件類型、插件狀態(tài)、行為以及插件提供者信息等描述信息。IToolCommand系統(tǒng)級工具條,非插件內(nèi)部的工具條。IMenuCommand系統(tǒng)級菜單類。IBasicGRA提供測井曲線、陣列、道信息、線段、圖頭、文本注釋等基本圖形繪制接口。ICompositeGRA提供地質(zhì)類、油藏類、工程類、輔助及解釋成果等圖形繪制接口。IConventional提供泥質(zhì)砂分析、復(fù)雜巖性分析等常規(guī)測井算法的封裝。IPreconditioning提供深度校正、平滑濾波、環(huán)境校正等數(shù)據(jù)預(yù)處理算法。IProuduction提供產(chǎn)液、產(chǎn)氣剖面處理、中子壽命處理、RMT處理、GR-GR測井處理、固井質(zhì)量評價、氧活化測井處理及電磁探傷等算法接口。IEngineering包括固井質(zhì)量評價、套損套變檢測、油藏工程措施效果評價、地質(zhì)工程參數(shù)計算等算法接口。ISpecial提供多臂(4、6、8臂)地層傾角處理、介電、能譜、碳氧比、全波列、FMT/RFT和井斜等處理算法接口。IDataAccess提供不同格式測井?dāng)?shù)據(jù)的讀寫,如測井WIS文件、oracle數(shù)據(jù)庫。

        圖3 消息通信模型

        使用該通訊模型的前置條件是初始化插件事件監(jiān)聽器,即將各類插件處理事件添加到事件監(jiān)聽器中,構(gòu)建監(jiān)聽事件列表。在具體進行通信時,事件對象將外部動作需求以消息的方式傳遞到插件事件監(jiān)聽器;通過解析需求消息,事件監(jiān)聽器激活具體的事件處理,響應(yīng)外部的動作,實現(xiàn)平臺、各類插件之間的通信。通過這種設(shè)計有效地實現(xiàn)各應(yīng)用模塊之間的實時響應(yīng)與協(xié)同,模塊之間完全解耦,保證了平臺良好的獨立性和擴展性,便于應(yīng)用模塊的并行開發(fā)。

        2.2.4 插件運行方式

        程序啟動,初始化內(nèi)核與插件管理,主程序通過解釋相應(yīng)的配置文件向插件管理器插件加載請求,插件管理器根據(jù)配置信息,查找相關(guān)插件,檢查插件的合法性,完成插件的注冊、加載。在運行過程中,當(dāng)有事件發(fā)送時,插件管理器解析事件類型,調(diào)用相應(yīng)的插件進行處理。程序結(jié)束時,插件管理器把當(dāng)前所用插件配置寫回配置文件,注銷插件。其流程見圖4。

        圖4 插件運行時序圖

        3 系統(tǒng)實現(xiàn)

        3.1 Web表示層的實現(xiàn)

        Web表示層的實現(xiàn)利用JavaFX主要開發(fā)3個方面內(nèi)容,①作為測井解釋的可視化交互接口(即客戶端基本組件的開發(fā)),包括各種測井曲線圖、圖形上進行各種操作、測井?dāng)?shù)據(jù)表和數(shù)據(jù)錄入界面、直方圖、散點圖、交會圖;②測井?dāng)?shù)據(jù)的呈現(xiàn)、與服務(wù)器的數(shù)據(jù)交換,完成相關(guān)功能。③實現(xiàn)插件管理。這樣,大部分的測井解釋的操作和功能都在客戶端完成,減輕了服務(wù)器端的壓力。

        3.2 插件實現(xiàn)

        在系統(tǒng)中,插件采用“程序集+插件說明”的結(jié)構(gòu)實現(xiàn),除了基本組件以外的算法、圖形繪制等,其他功能模塊都依據(jù)測井解釋插件接口規(guī)范以JAR文件包的方式進行封裝。在每一個JAR文件中包含META-INF目錄,其中必包含有一個MANIFEST.MF,這個文件描述了該JAR文件的很多信息,并支持定義屬性。MANIFEST.MF是專為提高效率設(shè)計的,與XML一樣具有可讀性,比XML讀取效率更高。通過將插件標識、插件運行依賴項、插件制作背景等信息記錄到MANIFEST.MF文件實現(xiàn)對插件的說明,便于插件注冊、搜索和管理。

        3.3 插件管理實現(xiàn)

        插件管理在系統(tǒng)中以PluginManager類實現(xiàn),包含loadPlugin()、unloadPlugin()、stopPlugin()等函數(shù),實現(xiàn)與所有插件相關(guān)的操作。JavaFX全面兼容Java語言,在具體實現(xiàn)時采用了Java反射機制[15]與消息傳遞的結(jié)合,增強了插件管理的靈活性、動態(tài)性。以loadPlugin()操作為例,利用URLClassloader和Java反射調(diào)用被加載插件的Plugin類中的init化方法。這樣加載的插件可通過MsgProxy.class與框架通信,還可在自身的功能實現(xiàn)中調(diào)用MsgProxy.class提供的方法。

        4 結(jié) 論

        (1) 在分析現(xiàn)有測井解釋軟件優(yōu)缺點的基礎(chǔ)上,結(jié)合RIA和插件技術(shù),以B/S模式設(shè)計插件式測井解釋軟件,滿足用戶在線測井解釋分析的需求。

        (2) 介紹了RIA和插件技術(shù)特點,選擇以JavaFX作為RIA的開發(fā)工具和基于接口的插件開發(fā)方式。以分層設(shè)計的思想,構(gòu)建了包含表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層的系統(tǒng)架構(gòu),分別設(shè)計插件框架、測井解釋插件接口集合和插件間的通信模型。

        (3) 這種松散耦合的架構(gòu)方式降低了軟件設(shè)計開發(fā)的難度,提高了開發(fā)效率,也保障了系統(tǒng)的靈活高效穩(wěn)定,為復(fù)雜多變的測井解釋應(yīng)用程序開發(fā)提供了良好的支持,是未來專業(yè)測井解釋系統(tǒng)設(shè)計開發(fā)的重要架構(gòu)方式之一。

        (4) 由于要下載插件,系統(tǒng)首次初始化時效率不高,這也是下一步研究的有待解決的問題。

        參考文獻:

        [1] 原宏壯, 陸大衛(wèi), 張辛耘. 測井技術(shù)新進展綜述 [J], 地球物理學(xué)進展, 2005, 20(3): 786-795.

        [2] 杜飚. GeoFrame軟件在測井評價中的應(yīng)用 [J]. 江漢石油科技, 2006, 16(1): 15-17.

        [3] 余春昊, 李長文. LEAD測井綜合應(yīng)用平臺開發(fā)與應(yīng)用 [J]. 測井技術(shù), 2005, 29(5): 396-398.

        [4] 姜濤. 新一代測井地質(zhì)綜合應(yīng)用網(wǎng)絡(luò)平臺FORWARD. NET 2.0 [J]. 石油工業(yè)計算機應(yīng)用, 2005, 13(3): 9-11.

        [5] 李寧, 王才志, 劉英明. 基于Java-NetBeans的第三代測井軟件CIFLog [J]. 石油學(xué)報, 2013, 34(1): 192-200.

        [6] 希賽網(wǎng). RIA技術(shù)專題[EB/OL]. http: ∥tech.csai.cn/zt/RIA/index.htm,2010.

        [7] Preciado J C, Linaje M, Sanchez F, et al. Necessity of Methodologies to Model Rich Internet Applications [C]∥Proceedings of the Seventh IEEE International Symposium on Web Site Evolution, 2005: 7-13.

        [8] 汪林林, 胡德華, 王佐成, 等. 基于Flex的RIA WebGIS研究與實現(xiàn) [J]. 計算機應(yīng)用, 2008, 28(12): 3257-3260.

        [9] Michael Labriola, Jeff Tapper, Matthew Boles. Flex 4權(quán)威指南 [M]. 北京: 人民郵電出版社, 2012: 52-58.

        [10] 丁士峰. 精通Silverlight: RIA開發(fā)技術(shù)詳解 [M]. 北京: 人民郵電出版社, 2008: 48-55.

        [11] DiMarzio J F. 新手學(xué)JavaFX [M]. 北京: 清華大學(xué)出版社, 2013: 12-15.

        [12] 李俊娥, 周洞汝. “平臺/插件”軟件體系結(jié)構(gòu)風(fēng)格 [J]. 小型微型計算機系統(tǒng), 2007, 28(5): 876-881.

        [13] 陳云云, 馬捷中, 蔣澤軍. 基于插件的組態(tài)軟件設(shè)計與實現(xiàn) [J]. 計算機測量與控制, 2013, 21(2): 436-438.

        [14] 宋淼, 袁兆山, 陳剛, 等. Java事件處理機制中設(shè)計模式的分析 [J]. 合肥工業(yè)大學(xué)學(xué)報: 自然科學(xué)版, 2004, 27(11): 1382-1386.

        [15] 趙宏利, 李秀冰, 李大林. 基于反射機制的插件系統(tǒng)軟件設(shè)計 [J]. 計算機工程與設(shè)計, 2010, 31(2): 348-355.

        猜你喜歡
        插件測井客戶端
        本期廣告索引
        八扇區(qū)水泥膠結(jié)測井儀刻度及測井?dāng)?shù)據(jù)處理
        中國煤層氣(2021年5期)2021-03-02 05:53:12
        自編插件完善App Inventor與樂高機器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        縣級臺在突發(fā)事件報道中如何應(yīng)用手機客戶端
        傳媒評論(2018年4期)2018-06-27 08:20:24
        孵化垂直頻道:新聞客戶端新策略
        傳媒評論(2018年4期)2018-06-27 08:20:16
        基于Vanconnect的智能家居瘦客戶端的設(shè)計與實現(xiàn)
        電子測試(2018年10期)2018-06-26 05:53:34
        MapWindowGIS插件機制及應(yīng)用
        基于測井響應(yīng)評價煤巖結(jié)構(gòu)特征
        中國煤層氣(2015年4期)2015-08-22 03:28:01
        基于Revit MEP的插件制作探討
        中石油首個全國測井行業(yè)標準發(fā)布
        国产成人精品中文字幕| 女人扒开下面无遮挡| 国产成人免费a在线视频| 人妻少妇乱子伦精品| 破了亲妺妺的处免费视频国产| 亚洲中文字幕久爱亚洲伊人| 女同另类一区二区三区| 色偷偷久久久精品亚洲| 高清破外女出血av毛片| 久草午夜视频| 日韩人妻免费一区二区三区 | 国产亚洲av另类一区二区三区| 国模丽丽啪啪一区二区| 国产小毛片| 日本一区二区三区在线视频观看 | 国产精品一区二区午夜久久| 一区二区三区乱码专区| 一本一道av无码中文字幕麻豆 | 午夜视频网址| 久久99免费精品国产 | 99久久婷婷亚洲综合国产| 亚洲国产aⅴ成人精品无吗| 丰满爆乳无码一区二区三区| 亚洲色欲色欲欲www在线| 国产丝袜爆操在线观看| 人妻体内射精一区二区三四| 人人看人人做人人爱精品| 国产精品国产三级国av在线观看| 穿着白丝啪啪的av网站| 色拍自拍亚洲综合图区| 综合精品欧美日韩国产在线| 亚洲国产av精品一区二| 无码喷潮a片无码高潮| 日日躁夜夜躁狠狠躁超碰97| 无码专区无码专区视频网址| 一区二区三区蜜桃av| 成午夜福利人试看120秒| 欧美精品中文字幕亚洲专区| 欧美日韩亚洲综合久久久| 日产分东风日产还有什么日产| 国产午夜毛片v一区二区三区|