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

?

CORBA通知服務(wù)在海上拖纜綜合導(dǎo)航系統(tǒng)中的應(yīng)用

2020-03-15 02:44:32張昊楠胡廣浩阮福明崔世峰閆佳琛
電子技術(shù)與軟件工程 2020年23期
關(guān)鍵詞:拖纜數(shù)據(jù)服務(wù)導(dǎo)航系統(tǒng)

張昊楠 胡廣浩 阮福明 崔世峰 閆佳琛

(中海油田服務(wù)股份有限公司物探事業(yè)部 天津市 300451)

拖纜地震勘探是海上油氣勘探的主要作業(yè)方式之一,在其作業(yè)過程中,拖纜綜合導(dǎo)航系統(tǒng)處于指揮和控制中心地位[1]?;诤Q笸侠|地震勘探施工過程復(fù)雜,方式多樣,涉及測繪、地球物理、計算機等多個學(xué)科且專業(yè)性強,并需要多種船載控制及采集等系統(tǒng)配合作業(yè),因此要求綜合導(dǎo)航系統(tǒng)的軟件功能全面、軟硬件穩(wěn)定性高,實時導(dǎo)航及水下設(shè)備定位精準穩(wěn)定,系統(tǒng)研發(fā)具有一定難度。中海油田服務(wù)股份有限公司從十二五863 計劃項目開始,對海上拖纜勘探綜合導(dǎo)航系統(tǒng)的業(yè)務(wù)流程軟件架構(gòu)及功能、硬件平臺設(shè)計、導(dǎo)航及網(wǎng)絡(luò)定位算法等方面進行研究,形成了海途HQI-Navi?拖纜綜合導(dǎo)航系統(tǒng)系列產(chǎn)品[2]。本文提出了一種基于CORBA 通知服務(wù)來構(gòu)建綜合導(dǎo)航系統(tǒng)數(shù)據(jù)交互的方法,實際應(yīng)用表明,該方法能很好的滿足綜合導(dǎo)航系統(tǒng)及其他系統(tǒng)間多進程交互及通信的要求。

1 綜合導(dǎo)航系統(tǒng)作業(yè)方式及數(shù)據(jù)流程

1.1 綜合導(dǎo)航系統(tǒng)作業(yè)方式

海上拖纜地震勘探作業(yè)時,物探船拖曳一條或多條采集電纜,由導(dǎo)航系統(tǒng)控制氣槍震源激發(fā)地震波,并同步控制電纜采集地震波的反射信號,接入船載定位導(dǎo)航數(shù)據(jù)并實時進行導(dǎo)航及拖曳電纜等水下設(shè)備的定位解算。導(dǎo)航系統(tǒng)將全部的傳感器及設(shè)備的原始導(dǎo)航定位數(shù)據(jù)記錄記錄在UKOOA P2/94 或OGP P211 格式原始文件中,將所有網(wǎng)絡(luò)節(jié)點、檢波點等平差定位后的坐標數(shù)據(jù)記錄在UKOOA P1/90 或OGP P111 格式文件中[3]。導(dǎo)航系統(tǒng)通過特定的時序,控制各系統(tǒng)協(xié)同工作,起到實時導(dǎo)航、導(dǎo)航數(shù)據(jù)記錄、坐標解算、作業(yè)控制的作用。

1.2 數(shù)據(jù)與命令控制

輸出到綜合導(dǎo)航系統(tǒng)導(dǎo)航控制平臺的傳感器及設(shè)備有十多種,主要包括:DGNSS、RGNSS、EchoSounder、Gyro、雷達、槍控、以及拖纜控制系統(tǒng)數(shù)據(jù)(包括羅經(jīng)鳥、聲速鳥、聲學(xué)鳥、水平鳥等)等;導(dǎo)航系統(tǒng)輸出到外部系統(tǒng)的數(shù)據(jù)主要包括:儀器頭段、槍控頭段、水平鳥控制數(shù)據(jù)等,各數(shù)據(jù)的輸入輸出可通過串口遵循相應(yīng)的通信參數(shù)或網(wǎng)絡(luò)等形式進行。導(dǎo)航控制平臺通過導(dǎo)航系統(tǒng)軟件計算得出的響炮時序,對采集系統(tǒng)、數(shù)字槍控系統(tǒng)、拖纜控制與定位系統(tǒng)等進行觸發(fā)時序控制,協(xié)同工作完成勘探作業(yè)流程。

2 CORBA通知服務(wù)在綜合導(dǎo)航系統(tǒng)中的應(yīng)用

2.1 CORBA簡介

CORBA(Common Object Request Broker Architecture 公共對象請求代理體系結(jié)構(gòu)),是一個為簡化跨平臺應(yīng)用而提出的規(guī)范,其獨立于軟硬件平臺、網(wǎng)絡(luò)協(xié)議和編程語言,支持異構(gòu)的分布式計算環(huán)境和不同編程語言間的對象重用。CORBA 可以作為不同平臺應(yīng)用間信息傳遞的中間件,通過引入經(jīng)過充分驗證的有效的框架結(jié)構(gòu)和通信手段,使應(yīng)用者聚焦業(yè)務(wù)邏輯方面的實現(xiàn),而無需關(guān)注通信的細節(jié)。CORBA 在銀行、航空、制造、軍事和電信等領(lǐng)域應(yīng)用廣泛[4]。

圖1:通知服務(wù)的兩種實現(xiàn)結(jié)構(gòu)

TAO(TheADAPTIVE Communication Environment ORB)是一個實時CORBA 平臺,基于C++平臺開發(fā),符合CORBA2.6 規(guī)范。TAO 可以在包括Win32、UNIX 以及VxWorks 等實時操作系統(tǒng)的很多平臺上面使用。本文所述綜合導(dǎo)航系統(tǒng)采用TAO 進行CORBA C++編程。

2.2 綜合導(dǎo)航系統(tǒng)整體結(jié)構(gòu)

針對海上拖纜勘探的作業(yè)特點,為綜合導(dǎo)航系統(tǒng)設(shè)計結(jié)構(gòu):系統(tǒng)中心為數(shù)據(jù)服務(wù)節(jié)點,主要作用是完成所有數(shù)據(jù)交互服務(wù)和系統(tǒng)供應(yīng),其他模塊圍繞數(shù)據(jù)服務(wù)節(jié)點,任何類型的數(shù)據(jù)均可以由圍繞數(shù)據(jù)服務(wù)節(jié)點為中心的網(wǎng)絡(luò)的任一模塊節(jié)點產(chǎn)生,發(fā)送到數(shù)據(jù)服務(wù)節(jié)點緩存,再轉(zhuǎn)發(fā)給其他需要的節(jié)點,其他節(jié)點可能會要求數(shù)據(jù)服務(wù)節(jié)點提供某些數(shù)據(jù)項給它們。

綜合導(dǎo)航系統(tǒng)涉及到數(shù)據(jù)服務(wù)、系統(tǒng)配置、工區(qū)與測線管理、數(shù)據(jù)傳輸、作業(yè)控制、數(shù)據(jù)記錄、監(jiān)控、實時顯示、網(wǎng)絡(luò)解算、QC 等10 多個模塊,20 多個進程,各模塊與數(shù)據(jù)服務(wù)模塊交互頻繁,對數(shù)據(jù)服務(wù)器及進程間通信提出了較高的要求?;诒鞠到y(tǒng)的特點,本文提出了基于Corba 通知服務(wù)來構(gòu)建進程間通信的方法,實際應(yīng)用表明,此種方法較為容易的實現(xiàn)了多進程間數(shù)據(jù)的頻繁交互,克服了常用通信方式如socket 制定網(wǎng)絡(luò)協(xié)議、頻繁數(shù)據(jù)打包、解析等復(fù)雜的通信方式,大大降低了編程難度和復(fù)雜度。

2.3 CORBA通知服務(wù)在綜合導(dǎo)航系統(tǒng)中的應(yīng)用

CORBA 事件服務(wù)[5](Event Service)提供一種異步的、松散的通信機制, 其目標是建立一個通用的分布式事件模型。但是事件服務(wù)明顯存在不能保證通信的可靠性、不支持服務(wù)質(zhì)量、不提供結(jié)構(gòu)化事件和過濾機制等局限性。因此,CORBA 增加了通知服務(wù)[6](Notification Service) ,即在事件服務(wù)的基礎(chǔ)上進行功能擴展,彌補事件服務(wù)的不足, 提高通信過程的可靠性及更多的保障。

在分布式系統(tǒng)中,當一些事件出現(xiàn)后,需要通知相關(guān)的系統(tǒng)組件。CORBA 通知服務(wù)提供了一個框架來異步發(fā)送通信消息(通知)到對象,提醒指定的事件已發(fā)生。通知服務(wù)體現(xiàn)在服務(wù)端的ORB 中,它為客戶端和服務(wù)端提供事件通道、事件代理,并實現(xiàn)了數(shù)據(jù)在兩端的推拉。CORBA 通知服務(wù)使用supplier/consumer 分布式模型,支持多個供應(yīng)者和多個消費者,支持多對多異步通信。事件通道本身即充當事件的供應(yīng)者又充當該事件的消費者,通過標準CORBA請求完成通信,當某事件發(fā)生改變時,將產(chǎn)生一個事件廣播到對該事件感興趣的一方[7]。通知服務(wù)的兩種實現(xiàn)結(jié)構(gòu)模型如圖1 所示。

如上所述,綜合導(dǎo)航系統(tǒng)有原始實時數(shù)據(jù)、處理過的數(shù)據(jù)、控制信息等三種類型數(shù)據(jù),實時采集到的各種原始數(shù)據(jù)收集到數(shù)據(jù)服務(wù)器后,各顯示模塊需要實時更新顯示,軟件計算模塊將解算數(shù)據(jù)發(fā)送到數(shù)據(jù)服務(wù)器,其他模塊需要根據(jù)數(shù)據(jù)服務(wù)器的數(shù)據(jù)更新而實時更新,CORBA 通知服務(wù)輕松實現(xiàn)了上述過程。遵循CORBA 通知服務(wù)的建立過程,將各軟件模塊與數(shù)據(jù)服務(wù)器建立通知服務(wù)關(guān)系,通過push 模型,當有新數(shù)據(jù)產(chǎn)生時,數(shù)據(jù)服務(wù)器將結(jié)果“推送”到各模塊。此過程跟CORBA 事件服務(wù)類似,但通知服務(wù)客服了命名服務(wù)缺乏消息過濾機制,缺乏QoS 機制,Consumer 不知道存在的Supplier,也不知道Supplier 提供何種Event,Event 以Any 形式發(fā)送,缺乏結(jié)構(gòu)化的數(shù)據(jù)等缺點。

通知服務(wù)的使用方法和事件服務(wù)類似,第一步是獲取事件通道對象, 生成管理對象,第二步生成代理對象,最后,提供者和消費者就可以注冊在這個通道上,供應(yīng)者獲取消費者代理,通過消費者代理往事件通道推送數(shù)據(jù)。具體可以分為兩個步驟:

步驟一:建立事件通道,供應(yīng)者獲取事件通道對象, 初始化管理對象和代理對象,供應(yīng)者注冊通道并向通道推送數(shù)據(jù)。

pIMainServant->init( ptrORB, ptrPOA, ptrSubPOA, "DSN","MainNetSolution", "MainNetSolutionChannel", "NCN", "Main" )// 初始化Corba,

其中參數(shù)MainNetSolutionChannel 為通道名。

(1)初始化事件通道。

通過調(diào)用事件通道工廠EventChannelFactory_var 的指針m_varEcf,獲取通道:

(2)初始化供應(yīng)者管理。

通過通道指針varEc 獲取提供者管理:

(3)初始化消費者代理并賦值。

供應(yīng)者通過消費代理推送數(shù)據(jù)

步驟二:消費者從事件通道獲取推送數(shù)據(jù)。

從事件通道獲取數(shù)據(jù)比較簡單,客戶端類似建立與事件通道的連接后,實現(xiàn)push_structed_event()函數(shù),獲取數(shù)據(jù)更新:

push_structed_event(const CosNotification::StructdEvent &event)

{

SDnMainDatas *ptemp;

event.remainder_of_body >>= ptemp;//從通道獲取數(shù)據(jù)

*m_pSDnMainDatas = *ptemp;//結(jié)構(gòu)化數(shù)據(jù)賦值

emit signalNodeDataUpdated();//更新信號

}

SDnMainDatas* mainData = m_pSDnMainDatas;

int iLength = mainData->networkList.length();//獲取網(wǎng)絡(luò)數(shù)據(jù)長度并賦值

SNetworkNode node = mainData->networkList[i]; //獲取到的網(wǎng)絡(luò)節(jié)點數(shù)并賦值

至此,客戶端即可本地“透明”獲取從服務(wù)器端推送來的數(shù)據(jù),當有數(shù)據(jù)改變時,實時更新推送來的數(shù)據(jù)。注意此處用到了Qt 自定義更新信號signalNodeDataUpdated()。

3 結(jié)束語

本文利用CORBA 技術(shù)搭建了拖纜綜合導(dǎo)航系統(tǒng)的通信架構(gòu),該系統(tǒng)支持跨平臺,可快捷方便的在Windows 及Linux 平臺下進行部署;利用CORBA 通知服務(wù)滿足了多進程間頻繁的數(shù)據(jù)交互要求,且大大降低了多進程間通信的編程實現(xiàn)復(fù)雜度。在實時數(shù)據(jù)傳輸、多進程交互等大型石油裝備系統(tǒng)應(yīng)用中,通知服務(wù)體現(xiàn)出強大的生命力,為同類系統(tǒng)的構(gòu)建提供了一種有益借鑒。

猜你喜歡
拖纜數(shù)據(jù)服務(wù)導(dǎo)航系統(tǒng)
地理空間大數(shù)據(jù)服務(wù)自然資源調(diào)查監(jiān)測的方向分析
拖纜引繩的設(shè)計改進
世界海運(2021年9期)2021-10-08 06:49:30
說說“北斗導(dǎo)航系統(tǒng)”
拖纜對水下航行器的操縱性能影響
潛水器水下拖帶航行運動響應(yīng)數(shù)值計算與性能分析
船海工程(2018年5期)2018-11-01 09:15:16
“北斗”導(dǎo)航系統(tǒng)是怎樣煉成的
一種GNSS/SINS容錯深組合導(dǎo)航系統(tǒng)設(shè)計
如何運用稅收大數(shù)據(jù)服務(wù)供給側(cè)結(jié)構(gòu)性改革
中國商論(2016年34期)2017-01-15 14:24:18
解讀全球第四大導(dǎo)航系統(tǒng)
基于頻繁子圖挖掘的數(shù)據(jù)服務(wù)Mashup推薦
瑞昌市| 重庆市| 胶州市| 姚安县| 西峡县| 彩票| 武定县| 贺州市| 霍林郭勒市| 康乐县| 栖霞市| 夹江县| 呼图壁县| 资中县| 长子县| 将乐县| 长乐市| 扬州市| 仙居县| 双辽市| 天镇县| 固原市| 安康市| 白水县| 宁强县| 古蔺县| 浠水县| 深圳市| 茌平县| 阳泉市| 河池市| 临猗县| 敦煌市| 舒城县| 龙州县| 麦盖提县| 招远市| 奉节县| 广西| 托克托县| 赤峰市|