国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Java測(cè)井平臺(tái)上多語(yǔ)言應(yīng)用集成框架設(shè)計(jì)

2014-04-29 00:44鮑奇
電腦迷 2014年11期

鮑奇

摘 要 對(duì)于勘探企業(yè)來(lái)說(shuō),一體化網(wǎng)絡(luò)測(cè)井處理和解釋軟件平臺(tái)對(duì)于企業(yè)的重要性不言而喻,而該軟件系統(tǒng)具有開(kāi)放性,并且采用的是面向?qū)ο蟮乃枷脒M(jìn)行設(shè)計(jì),Java作為一款可以跨平臺(tái)的面向?qū)ο缶幊陶Z(yǔ)言,能夠很好的滿足大型測(cè)井綜合應(yīng)用軟件的開(kāi)發(fā),能夠?qū)崿F(xiàn)勘探和生產(chǎn)一體化、單井和多井處理一體化、本地和遠(yuǎn)程訪問(wèn)一體化運(yùn)行。為了能夠更加方便、快速、可靠的將不同語(yǔ)言開(kāi)發(fā)的應(yīng)用程序集成到測(cè)井綜合應(yīng)用一體化軟件中,可以在模塊分層的基礎(chǔ)上采用Socket與JNI技術(shù)設(shè)計(jì)出多語(yǔ)言的集成框架,從而能夠更加快速的解決上述問(wèn)題,并能夠減少開(kāi)發(fā)量和開(kāi)發(fā)成本,提高平臺(tái)的適應(yīng)性和擴(kuò)展性。

關(guān)鍵詞 測(cè)井平臺(tái) 多語(yǔ)言應(yīng)用 框架設(shè)計(jì) Java

中圖分類(lèi)號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A

0前言

目前國(guó)內(nèi)外的測(cè)井處理解釋軟件產(chǎn)品很多,運(yùn)用的較為廣泛的有CifSun系列軟件、阿特拉斯的Express、帕拉代姆的Geolog等,這些軟件產(chǎn)品在實(shí)際運(yùn)用中都取得了良好的效果,但是由于開(kāi)發(fā)的時(shí)間較早,并受到條件的限制,還不具備真正意義上的跨平臺(tái)、跨操作的運(yùn)行能力。而實(shí)際運(yùn)用中,為了更好的滿足實(shí)際的需求,需要在測(cè)井平臺(tái)中安裝多語(yǔ)言應(yīng)用的程序,這就對(duì)測(cè)井平臺(tái)提出了更高的要求。鑒于此,以下本文主要分析了采用Java設(shè)計(jì)一種多語(yǔ)言應(yīng)用集成框架,以解決這類(lèi)問(wèn)題。

1多語(yǔ)言應(yīng)用集成框架的設(shè)計(jì)

采用Java設(shè)計(jì)一種多語(yǔ)言應(yīng)用集成框架可以實(shí)現(xiàn)一體化平臺(tái)的擴(kuò)展性和適應(yīng)性功能,整體采用分層式體系結(jié)構(gòu),從上到下分為三層,分別是應(yīng)用層、支持層和數(shù)據(jù)層。應(yīng)用層包括處理解釋和資料管理,該層直接面對(duì)客戶,為客戶提供人機(jī)交互界面;支持層包括平臺(tái)框架、數(shù)據(jù)訪問(wèn)接口、可視化擴(kuò)展接口、緩存管理和模塊掛接接口,該層是應(yīng)用層和數(shù)據(jù)層之間溝通的橋梁,可為應(yīng)用層提高可擴(kuò)展的服務(wù),也可為屏蔽數(shù)據(jù)層中復(fù)雜的內(nèi)部操作和數(shù)據(jù)來(lái)源;數(shù)據(jù)層包含了文件系統(tǒng)和測(cè)井?dāng)?shù)據(jù)庫(kù),該層主要負(fù)責(zé)數(shù)據(jù)的處理。每層之間保持松散耦合,以保證平臺(tái)的可復(fù)用性與擴(kuò)展性。支持層起著承上啟下的作用,可為應(yīng)用層和數(shù)據(jù)層提供各類(lèi)接口和緩存機(jī)制,可以使各應(yīng)用程序采取統(tǒng)一的方式訪問(wèn)本地以及網(wǎng)絡(luò)數(shù)據(jù)。

根據(jù)以往測(cè)井平臺(tái)的實(shí)際經(jīng)驗(yàn),一體化平臺(tái)吸取了Cif數(shù)據(jù)格式的優(yōu)點(diǎn),并在廣義測(cè)井曲線理論基礎(chǔ)上,對(duì)鏈接進(jìn)行了創(chuàng)新和完善,形成新的Cifplus格式。為了實(shí)現(xiàn)多語(yǔ)言應(yīng)用程序集成到平臺(tái)中,首要解決的問(wèn)題是通信問(wèn)題,目前主要有兩種解決方案:一是利用Java重新改寫(xiě)處理方法,二是基于模塊設(shè)計(jì)思路,建立起數(shù)據(jù)溝通的支持層。本文就采用了第二種解決方案,該方案設(shè)計(jì)的集成框架結(jié)構(gòu)的擴(kuò)展性好,開(kāi)發(fā)成本低。應(yīng)用程序和平臺(tái)間數(shù)據(jù)溝通主要包含兩個(gè)方面的內(nèi)容:一是數(shù)據(jù)調(diào)用,主要的作用是實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出;二是同步通信,主要的作用是數(shù)據(jù)的分發(fā)和更新。數(shù)據(jù)調(diào)用實(shí)現(xiàn)分別分為Java數(shù)據(jù)訪問(wèn)接口層、JNI支持層和數(shù)據(jù)讀寫(xiě)庫(kù)層,而同步通信采用Socket通信方式,當(dāng)客戶端和服務(wù)器鏈接時(shí),客戶端向服務(wù)器發(fā)送數(shù)據(jù)更新的信息,服務(wù)器接收到信息后將數(shù)據(jù)分發(fā)給應(yīng)用層的相關(guān)模塊,相關(guān)模塊響應(yīng)并處理,從而實(shí)現(xiàn)一體化平臺(tái)數(shù)據(jù)層中數(shù)據(jù)同步性。

2多語(yǔ)言應(yīng)用程序方案設(shè)計(jì)

2.1數(shù)據(jù)通信方式設(shè)計(jì)

(1)基于網(wǎng)絡(luò)的通信方式

網(wǎng)絡(luò)通信的傳輸協(xié)議主要以I/O數(shù)據(jù)流通作為交流方式,一組數(shù)據(jù)從一臺(tái)計(jì)算機(jī)通過(guò)該協(xié)議傳輸?shù)搅硗庖慌_(tái)計(jì)算機(jī)之上。這種網(wǎng)絡(luò)的通信原理,其主要實(shí)現(xiàn)了遠(yuǎn)程調(diào)用,不斷請(qǐng)求將數(shù)據(jù)轉(zhuǎn)換成流,通過(guò)某個(gè)傳輸協(xié)議傳達(dá)到服務(wù)端,然后服務(wù)端再對(duì)收到的請(qǐng)求進(jìn)行處理,處理完成之后將其轉(zhuǎn)變?yōu)榱?,然后通過(guò)傳輸協(xié)議返回到服務(wù)端。為了方便該過(guò)程的實(shí)現(xiàn),在此基礎(chǔ)上對(duì)傳輸協(xié)議進(jìn)行了升級(jí)和研究,目前出現(xiàn)了ICE協(xié)議和XML-RPC協(xié)議。通常所用的遠(yuǎn)程通信協(xié)議其能夠提供一個(gè)更加便捷以及符合要求的標(biāo)準(zhǔn)傳輸數(shù)據(jù)格式,通過(guò)這種數(shù)據(jù)格式的限制可以有效達(dá)到傳輸保密性,使得用戶在數(shù)據(jù)交換傳輸?shù)臅r(shí)候不能夠直接使用底層流進(jìn)行操作,而需要遠(yuǎn)程調(diào)用。

(2)基于內(nèi)存拷貝方式

由于JavaSoft公司提出JNI作為java技術(shù)的本地編程接口,并將JDK作為編程的一部分。JNI允許了在虛擬機(jī)內(nèi)部運(yùn)行Java代碼,這樣使得與其他的語(yǔ)言和數(shù)據(jù)庫(kù)的數(shù)據(jù)完成相互調(diào)用。Java作為與本地語(yǔ)言進(jìn)行溝通的一架橋梁,其JNI實(shí)現(xiàn)了Java代碼與其他語(yǔ)言之間的交換。從sun站點(diǎn)對(duì)JNI的結(jié)構(gòu)進(jìn)行描述來(lái)看,JNI屬于JDK的一部分,且程序員在進(jìn)行編程的時(shí)候,只需要編寫(xiě)一種版本與本地應(yīng)用程序和庫(kù),就能夠?qū)崿F(xiàn)所支持的JNI的虛擬機(jī)協(xié)同工作。

2.2數(shù)據(jù)調(diào)用設(shè)計(jì)

由于在不同語(yǔ)言之間實(shí)現(xiàn)數(shù)據(jù)通信,其在性能上存在著巨大的差異,其中JNI方式的處理數(shù)據(jù)效率最高。從事實(shí)上看,用戶對(duì)程序之間的處理速度要求通常比較高,一些復(fù)雜的處理解釋方法可能實(shí)現(xiàn)大量的數(shù)據(jù)讀寫(xiě),在此過(guò)程中其通信效率的高低直接會(huì)影響數(shù)據(jù)的傳輸,對(duì)平臺(tái)的性能產(chǎn)生直接的影響。因此JNI技術(shù)在數(shù)據(jù)通信傳輸效率上存在著如此優(yōu)勢(shì),這就使得其成為了最適合、最有效的解決方法。JNI技術(shù)層,由于不同的語(yǔ)言編寫(xiě)應(yīng)用程序,但是其仍然具有相同的數(shù)據(jù)訪問(wèn)模式,應(yīng)用程序在訪問(wèn)Java數(shù)據(jù)接口的時(shí)候,需創(chuàng)建Java數(shù)據(jù)讀寫(xiě)類(lèi),然后再將Java類(lèi)分包,形成Jar包,然后再有其他語(yǔ)言編寫(xiě)應(yīng)用程序,實(shí)現(xiàn)數(shù)據(jù)讀寫(xiě)轉(zhuǎn)化。

2.3數(shù)據(jù)一體化

數(shù)據(jù)同步始終對(duì)于平臺(tái)數(shù)據(jù)寫(xiě)入和監(jiān)控自動(dòng)更新是一項(xiàng)重要工作,因?yàn)楫?dāng)數(shù)據(jù)被應(yīng)用程序修改之后,平臺(tái)的所有模塊都可以得到相應(yīng)的數(shù)據(jù)更新,并且向其他的模塊發(fā)出相應(yīng)的響應(yīng)處理信息,以確保數(shù)據(jù)的統(tǒng)一和一致性。此類(lèi)機(jī)制的網(wǎng)絡(luò)通信,由于C/S架構(gòu),使得客戶向服務(wù)器發(fā)送相應(yīng)的請(qǐng)求,服務(wù)器接收并且發(fā)出相應(yīng)的服務(wù)指令,然后啟動(dòng)服務(wù)。由于同步消息的類(lèi)型多,信息量豐富,為了提高同步通信的傳輸效率,采用對(duì)象序列化的方式進(jìn)行通信,這樣不僅節(jié)省了傳輸時(shí)間,而且還提升了系統(tǒng)的運(yùn)行效率。

3應(yīng)用實(shí)例分析

以A公司采用Fortran語(yǔ)言編程寫(xiě)成的P型核磁測(cè)井處理解釋方法以及集成作為本次案例。因?yàn)榧筛鞣N的處理解釋方法,一體化平臺(tái)提供了相應(yīng)強(qiáng)大的應(yīng)用生成器和應(yīng)用集成器模塊,雖然平臺(tái)已經(jīng)集成了多種成熟且先進(jìn)的處理解釋評(píng)價(jià)法,但是其使用仍然存在著一些問(wèn)題。因此需要按照相應(yīng)的掛接程序步驟執(zhí)行,首先依賴平臺(tái)提供的C語(yǔ)言編寫(xiě)的數(shù)據(jù)讀寫(xiě)lib庫(kù),不需要改動(dòng)相應(yīng)的應(yīng)用程序,并且需重新翻譯為可執(zhí)行文件。其次,通過(guò)平臺(tái)設(shè)計(jì)的應(yīng)用模塊來(lái)配置處理方法,在此過(guò)程中需從初始化環(huán)境開(kāi)始,然后再輸入曲線、輸出曲線、繪圖參數(shù)和處理參數(shù)等。接著,通過(guò)應(yīng)用集成器模塊,用戶可以實(shí)現(xiàn)自我配置,將完成參數(shù)的配置修改,電機(jī)運(yùn)行時(shí)則可以實(shí)現(xiàn)程序的自動(dòng)化處理。最后,應(yīng)用程序處理結(jié)束之后繪圖區(qū)域需要進(jìn)行自動(dòng)刷新,這樣解釋人員可以根據(jù)繪圖結(jié)果完成對(duì)參數(shù)值的調(diào)整,使得整個(gè)處理效果達(dá)到最佳。

通過(guò)本次的A公司的案例介紹,從采用Fortran語(yǔ)言編程寫(xiě)成的P型核磁測(cè)井處理解釋方法以及集成進(jìn)行研究得出通過(guò)平臺(tái)提供的豐富的數(shù)據(jù)讀寫(xiě)接口和完整的可視化應(yīng)用集成環(huán)境,已有的測(cè)井處理解釋方法不需要任何改動(dòng)就可以方便、快速地集成到平臺(tái)中,同時(shí)JNI和Socket技術(shù)的良好特性也保證了應(yīng)用程序的處理效率和平臺(tái)數(shù)據(jù)的一致性。

4結(jié)束語(yǔ)

測(cè)井平臺(tái)由于業(yè)務(wù)的擴(kuò)展和更新,需要在平臺(tái)集成多語(yǔ)言的軟件程序,利用Java開(kāi)發(fā)的多語(yǔ)言應(yīng)用集成框架,能夠很好的滿足這一需求,通過(guò)JNI與Socket技術(shù)能夠有效的解決應(yīng)用程序和平臺(tái)間的通信問(wèn)題,使各應(yīng)用程序發(fā)揮出它們的作用,以擴(kuò)展和加強(qiáng)測(cè)井平臺(tái)的實(shí)際功能,并且利用JNI與Socket能夠極大的減少開(kāi)發(fā)量和開(kāi)發(fā)成本,平臺(tái)的可擴(kuò)展性好,適應(yīng)能力強(qiáng),其優(yōu)勢(shì)明顯,應(yīng)用前景較為廣泛。

參考文獻(xiàn)

[1] 劉英明,李寧,夏守姬等.Java測(cè)井平臺(tái)高效數(shù)據(jù)操作緩存設(shè)計(jì)與實(shí)現(xiàn)[J].石油勘探與開(kāi)發(fā),2011,38(3):328-331.

[2] 尹清鐸,李振玉,周建紅等.快速測(cè)井平臺(tái)系統(tǒng)在南襄盆地測(cè)井效果分析[J].測(cè)井技術(shù),2012,29(3):250-252.

[3] 夏守姬,李寧,李偉忠等.Java測(cè)井平臺(tái)上多語(yǔ)言應(yīng)用集成框架設(shè)計(jì)[J].石油學(xué)報(bào),2010,31(5):810-814.

[4] 張福明,王金茂.基于Forward平臺(tái)底層WellBase的應(yīng)用程序開(kāi)發(fā)[J].計(jì)算機(jī)時(shí)代,2013,(4):15-17.

[5] LEAD測(cè)井綜合應(yīng)用平臺(tái)開(kāi)發(fā)與應(yīng)用[J].測(cè)井技術(shù),2011,29(5):396-398.

[6] 張美玲,崔杰,陳國(guó)華等.測(cè)井?dāng)?shù)值模擬軟件平臺(tái)開(kāi)發(fā)[J].大慶石油學(xué)院學(xué)報(bào),2011,32(6):21-23,32.