吉 平
(中聯(lián)煤層氣有限責(zé)任公司 北京 100015)
隨著中海油海上油氣田群生產(chǎn)規(guī)模的不斷擴(kuò)大,平臺(tái)建設(shè)逐漸增多,形成了衛(wèi)星油氣田群。海底傳輸管線與平臺(tái)之間連接越來(lái)越密集,海陸長(zhǎng)輸管線、平臺(tái)的周邊管線安全管理和保障日益受到重視。
海上油田群之間的管線、線纜的種類與數(shù)量繁多,油田與船舶航行航道共用海域,一旦發(fā)生船錨壓壞線纜管線或捕魚船漁網(wǎng)損壞線纜等狀況,可能導(dǎo)致通信中斷、油料泄漏,甚至爆炸等重大危險(xiǎn)事故,而恢復(fù)被破壞的線纜或管線會(huì)耗費(fèi)大量的人力及物力。在這樣的背景下,為保證海上持續(xù)安全生產(chǎn),本文提出建立一套可實(shí)時(shí)監(jiān)測(cè)海管損害或海底線纜風(fēng)險(xiǎn)的海底管線自動(dòng)預(yù)警系統(tǒng)。
據(jù)統(tǒng)計(jì),全球50%~60%的海底油氣管道破裂事故是由第三方破壞造成的[1]。1967—2012年,墨西哥灣共發(fā)生海底管線泄漏事故184起,其中由設(shè)備自身故障導(dǎo)致的事故僅占34.3%;1998—2012年,我國(guó)公開(kāi)發(fā)布和報(bào)道的海底管線泄漏事共19起,已查明原因的15起事故中,由第三方破壞導(dǎo)致的事故多達(dá)7起。由此可見(jiàn),第三方破壞已成為威脅海底管線安全的重要因素。
本系統(tǒng)以加強(qiáng)平臺(tái)與平臺(tái)間、平臺(tái)與陸地終端海底管線的保護(hù)為設(shè)計(jì)目標(biāo),結(jié)合AIS(船舶自動(dòng)識(shí)別系統(tǒng))數(shù)據(jù)源、北斗數(shù)據(jù)源,采用前置機(jī)進(jìn)行數(shù)據(jù)采集壓縮處理后,通過(guò)海上平臺(tái)和船舶的內(nèi)部網(wǎng)絡(luò),將采集到的數(shù)據(jù)傳輸至陸地?cái)?shù)據(jù)服務(wù)器進(jìn)行解析、去重等處理,從而實(shí)現(xiàn)陸地終端、海上平臺(tái)群聯(lián)合監(jiān)控,海上平臺(tái)只負(fù)責(zé)監(jiān)控本油田群附近海管及船舶預(yù)警,陸地負(fù)責(zé)宏觀監(jiān)控整個(gè)海域管線預(yù)警。系統(tǒng)設(shè)計(jì)結(jié)合電子海圖ECS、海油專用圖層和AIS(船舶自動(dòng)識(shí)別系統(tǒng))進(jìn)行集成開(kāi)發(fā),對(duì)特定區(qū)域內(nèi)海底管線及船舶進(jìn)行實(shí)時(shí)監(jiān)控行為;基于船舶位置數(shù)據(jù)信息、電子海圖及標(biāo)繪的預(yù)警區(qū)域,實(shí)現(xiàn)平臺(tái)與船舶之間的避碰和船舶與管線之間的避碰[1]。系統(tǒng)輔助管理部門從海上到陸地2個(gè)層面進(jìn)行管理,從而有效提高對(duì)海底管線和光纜等的保護(hù)。海底管線自動(dòng)預(yù)警系統(tǒng)如圖1所示。
圖1 海底管線自動(dòng)預(yù)警系統(tǒng)圖Fig.1 Diagram of submarine pipeline automatic warning system
本系統(tǒng)主要包括AIS數(shù)據(jù)解析服務(wù)器、實(shí)時(shí)通信接口服務(wù)器、Web應(yīng)用服務(wù)器、海上管線監(jiān)控預(yù)警一體機(jī)、數(shù)據(jù)采集設(shè)備(AIS、傳感器等)、GPS、網(wǎng)絡(luò)設(shè)備、計(jì)算機(jī)及外圍設(shè)備等[2]。
海底管線實(shí)時(shí)預(yù)警系統(tǒng)利用船載AIS設(shè)備、北斗設(shè)備通過(guò)船載導(dǎo)航終端(采集前置機(jī))向遠(yuǎn)端陸地服務(wù)器進(jìn)行數(shù)據(jù)傳輸,通過(guò)前置機(jī)進(jìn)行解析及壓縮后,基于TCP/IP協(xié)議向數(shù)據(jù)采集服務(wù)器發(fā)送船載端采集到的AIS數(shù)據(jù)和北斗數(shù)據(jù)。AIS數(shù)據(jù)采集程序不再是傳統(tǒng)的被動(dòng)獲取,而是主動(dòng)監(jiān)聽(tīng)指定端口,在獲取AIS原始信息之后進(jìn)行解析入庫(kù)處理,北斗數(shù)據(jù)也以同樣方式進(jìn)行采集與處理。與傳統(tǒng)采集系統(tǒng)不同的是,為保證本系統(tǒng)與原有系統(tǒng)共同運(yùn)行,采集系統(tǒng)在獲取AIS數(shù)據(jù)之后,在進(jìn)行解析入庫(kù)的同時(shí),通過(guò)COM端口以原始NMEA0183報(bào)文的格式向該串口發(fā)送原始協(xié)議內(nèi)容,提供給本地的應(yīng)用終端進(jìn)行本地解析應(yīng)用,其邏輯結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)邏輯結(jié)構(gòu)框圖Fig.2 System logical structure block diagram
2.2.1 數(shù)據(jù)采集模塊(DCU)
DCU模塊結(jié)構(gòu)圖如圖3所示。
圖3 DCU模塊結(jié)構(gòu)圖Fig.3 DCU module structure diagram
工作機(jī)理:DCU通過(guò)TcpIODevice接收數(shù)據(jù),在接收數(shù)據(jù)時(shí),經(jīng)過(guò)SerialIODevice向現(xiàn)有系統(tǒng)異步發(fā)送AIS信息,同時(shí)將接收獲得的數(shù)據(jù)發(fā)送至SentenceDispatcher,然后進(jìn)行解析處理并入庫(kù)。
2.2.2 業(yè)務(wù)邏輯模塊
業(yè)務(wù)邏輯模塊如圖4所示。
圖4 業(yè)務(wù)邏輯模塊Fig.4 Business logical module
業(yè)務(wù)邏輯模塊(BCU)負(fù)責(zé)處理客戶端發(fā)送的業(yè)務(wù)請(qǐng)求,并返回相應(yīng)的業(yè)務(wù)數(shù)據(jù),包含平臺(tái)靜態(tài)基礎(chǔ)數(shù)據(jù)、動(dòng)態(tài)數(shù)據(jù)及管線參數(shù)等數(shù)據(jù)信息,是用戶查詢調(diào)用的高頻應(yīng)用模塊。
業(yè)務(wù)邏輯模塊采用Command模式。每一個(gè)業(yè)務(wù)都分別從Command類派生,并在其內(nèi)部實(shí)現(xiàn)業(yè)務(wù)邏輯。Command類在進(jìn)行業(yè)務(wù)邏輯處理時(shí),各個(gè)子類應(yīng)在相應(yīng)的業(yè)務(wù)邏輯處理中進(jìn)行日志記錄。業(yè)務(wù)邏輯子系統(tǒng)的一個(gè)流程如圖5所示。
圖5 業(yè)務(wù)邏輯子系統(tǒng)Fig.5 Business logical subsystem
每個(gè)數(shù)據(jù)對(duì)象都對(duì)應(yīng)一個(gè)數(shù)據(jù)表,同時(shí)應(yīng)有一個(gè)對(duì)應(yīng)的DAO對(duì)象實(shí)現(xiàn)數(shù)據(jù)的CRUD操作。系統(tǒng)使用.NET實(shí)現(xiàn),采用NHibernate作為持久層實(shí)現(xiàn)的框架。
2.2.4 權(quán)限控制模塊
用戶權(quán)限系統(tǒng)包括:①User,即用戶基本信息,包含用戶名、加密后的用戶密碼,用戶密碼采用將密碼明文取SHA-1的方式加密,用戶類型為1時(shí)為管理用戶,否則為普通用戶,當(dāng)用戶為管理用戶時(shí),可進(jìn)行用戶的添加、修改和刪除,否則只能進(jìn)行其他操作;②VesselGroup,即用戶船舶分組,每個(gè)用戶可創(chuàng)建多個(gè)分組,每個(gè)分組可包含多艘船舶。
2.2.3 數(shù)據(jù)模塊
數(shù)據(jù)模塊包括船舶動(dòng)態(tài)數(shù)據(jù)、船舶靜態(tài)統(tǒng)計(jì)數(shù)據(jù)和船舶歷史數(shù)據(jù)。數(shù)據(jù)模塊如圖6所示。
圖6 數(shù)據(jù)模塊Fig.6 Data module
2.2.5 控制客戶端模塊(CCU)
CCU以C++作為實(shí)現(xiàn)語(yǔ)言,對(duì)非功能性需求的優(yōu)先次序?yàn)椋孩傩阅?;②穩(wěn)定性。根據(jù)目前的技術(shù)儲(chǔ)備及未來(lái)發(fā)展的需要,以Qt為平臺(tái)實(shí)現(xiàn)。
2.2.6 船載客戶端模塊(SBU)
SBU以C++作為實(shí)現(xiàn)語(yǔ)言,對(duì)非功能性需求的優(yōu)先次序?yàn)椋孩傩阅?;②穩(wěn)定性。根據(jù)目前的技術(shù)儲(chǔ)備及未來(lái)發(fā)展的需要,以Qt為平臺(tái)實(shí)現(xiàn)。
2.2.7 Web模塊(WBU)
Web模塊要求能夠同時(shí)顯示標(biāo)繪數(shù)據(jù)、公有船舶數(shù)據(jù)和用戶船舶數(shù)據(jù),對(duì)于Web應(yīng)用來(lái)說(shuō),數(shù)據(jù)量大,是一個(gè)考驗(yàn)。JavaScript實(shí)現(xiàn)方式會(huì)引起性能問(wèn)題,若采用已有的Flash腳本,不能夠支持多線程模式,故無(wú)法有效利用客戶端的處理能力,對(duì)內(nèi)存的消耗較高。因此,本系統(tǒng)經(jīng)過(guò)大量測(cè)試后采用Java Applet的方式實(shí)現(xiàn)。
2.3.1 海底管線預(yù)警服務(wù)
海底管線為不可見(jiàn)設(shè)施,應(yīng)在海面一定區(qū)域禁止拋錨及拖錨行為。系統(tǒng)設(shè)定該區(qū)域?yàn)閽佸^報(bào)警區(qū)域,當(dāng)有船舶在這一區(qū)域有拋錨趨勢(shì)時(shí)(根據(jù)實(shí)際情況自由設(shè)置距離管線多少米、航速低于多少節(jié)視為有拋錨趨勢(shì)),系統(tǒng)自動(dòng)發(fā)出聲光報(bào)警,提醒工作人員注意,同時(shí)自動(dòng)記錄該船舶的相關(guān)信息,如船名、船位等[3]。
2.3.2 特殊區(qū)域、平臺(tái)報(bào)警服務(wù)
對(duì)用戶輸入的指定區(qū)域進(jìn)行船舶監(jiān)控和預(yù)警,分為船舶駛?cè)雸?bào)警和船舶駛出報(bào)警。
對(duì)于禁止船舶進(jìn)入的區(qū)域(比如一些危險(xiǎn)區(qū)域),可以設(shè)定為船舶駛?cè)雸?bào)警;船舶可以分為本系統(tǒng)船舶或全部船舶。
2.3.3 船舶現(xiàn)場(chǎng)數(shù)據(jù)服務(wù)
提供船舶實(shí)時(shí)數(shù)據(jù)服務(wù),主要包含附近相關(guān)船舶的動(dòng)態(tài)和靜態(tài)信息:動(dòng)態(tài)信息包含船舶的位置信息、航行速度、航行狀態(tài)等數(shù)據(jù);靜態(tài)信息包含船舶名稱、MMSI、呼號(hào)、船長(zhǎng)、船寬、船上人員等數(shù)據(jù)。
2.3.4 船舶實(shí)時(shí)監(jiān)控
對(duì)各作業(yè)船舶及一定范圍內(nèi)的周邊船舶進(jìn)行實(shí)時(shí)監(jiān)控,隨時(shí)掌握在港、航行中的船舶狀態(tài)及周圍情況。該系統(tǒng)具有錄入、接收、顯示、查詢船舶或平臺(tái)詳細(xì)參數(shù)及船舶動(dòng)態(tài)信息,以及航跡回放、船位查詢、統(tǒng)計(jì)報(bào)告等功能,能夠?qū)崿F(xiàn)對(duì)海上平臺(tái)及船舶信息、作業(yè)的實(shí)時(shí)監(jiān)控管理。系統(tǒng)能夠根據(jù)船舶所屬公司及屬性對(duì)船舶進(jìn)行分組,從而形成船隊(duì)管理模式,也可根據(jù)需要在電子海圖上標(biāo)繪出報(bào)警區(qū)域,設(shè)定船舶的入?yún)^(qū)報(bào)警或出區(qū)報(bào)警,從而有效實(shí)現(xiàn)對(duì)平臺(tái)及管線的報(bào)警保護(hù)和對(duì)船舶的監(jiān)控。
2.3.5 氣象姿態(tài)監(jiān)控
氣象姿態(tài)監(jiān)控功能分為實(shí)時(shí)氣象信息傳輸和氣象預(yù)報(bào)疊加。實(shí)時(shí)氣象信息傳輸是指利用海上端點(diǎn)安裝的氣象儀和搖擺儀等數(shù)據(jù)采集設(shè)備,將海上作業(yè)點(diǎn)、監(jiān)控點(diǎn)的即時(shí)氣象數(shù)據(jù)和船舶搖擺度數(shù)據(jù)傳回陸地監(jiān)控接收端,以此達(dá)到實(shí)時(shí)準(zhǔn)確掌握海上氣象情況和對(duì)海上生產(chǎn)作業(yè)狀況透明管理的目的。氣象預(yù)報(bào)是指利用官方氣象預(yù)報(bào)信息數(shù)據(jù)和現(xiàn)有衛(wèi)星通信鏈路對(duì)氣象/臺(tái)風(fēng)預(yù)報(bào)信息在系統(tǒng)中進(jìn)行疊加。氣象預(yù)報(bào)信息將作為公共信息在所有監(jiān)控客戶端上顯示,以此實(shí)現(xiàn)提示和預(yù)警作用。氣象姿態(tài)監(jiān)控如圖7所示。
圖7 氣象姿態(tài)監(jiān)控Fig.7 Weather/swing monitoring
2.3.6 標(biāo)繪查詢服務(wù)
客戶端提交標(biāo)繪查詢服務(wù),可與本地保存的標(biāo)繪更新時(shí)間進(jìn)行匹配,以確定本地保存的標(biāo)繪是否為最新版本。
2.3.7 海圖上傳服務(wù)
當(dāng)監(jiān)控端判斷本地海圖文件更新于服務(wù)器端海圖文件時(shí),可予以上傳。上傳時(shí),應(yīng)對(duì)每個(gè)單獨(dú)的海圖文件調(diào)用一次該服務(wù),每次調(diào)用都應(yīng)傳送海圖的圖號(hào)、制作日期和海圖內(nèi)容。
本服務(wù)將記錄海圖圖號(hào)、日期,并根據(jù)圖號(hào)保存文件至HTTP服務(wù)器。該文件可以用HTTP服務(wù)器直接訪問(wèn)。
2.3.8 海圖列表服務(wù)
本服務(wù)為無(wú)參數(shù)服務(wù),用戶可直接調(diào)用,服務(wù)將返回所有圖幅的海圖號(hào)、制作日期??蛻舳丝纱_定是否需要更新。
2.3.9 海圖下載服務(wù)
當(dāng)客戶端需要更新海圖時(shí),可調(diào)用本服務(wù),每一幅需要更新的海圖都需要單獨(dú)調(diào)用一次本服務(wù)。本服務(wù)通過(guò)2個(gè)標(biāo)準(zhǔn)的HTTP服務(wù)提供:HTTP HEAD——獲取海圖文件尺寸;HTTP GET——獲取海圖文件。
系統(tǒng)性能是設(shè)計(jì)考慮的重點(diǎn)。采用內(nèi)存數(shù)據(jù)庫(kù)與Oracle數(shù)據(jù)庫(kù)并行的運(yùn)作方式可以有效提高預(yù)警系統(tǒng)性能。
本系統(tǒng)較多的維護(hù)費(fèi)用來(lái)源于維護(hù)人工費(fèi),而不是對(duì)系統(tǒng)軟硬件的更換費(fèi)。采用Windows系統(tǒng),能夠提高可維護(hù)性,從而降低維護(hù)人員所需的實(shí)際維護(hù)時(shí)間。但是隨著系統(tǒng)規(guī)模的擴(kuò)大,維護(hù)人工費(fèi)將逐步縮小,軟硬件更換的費(fèi)用逐步增大。在這種情況下,采用Linux等免費(fèi)操作系統(tǒng),首先可以降低系統(tǒng)的軟硬件費(fèi)用,在硬件水平相當(dāng)?shù)那闆r下能夠提供更好的性能支持;其次可以降低系統(tǒng)被攻擊的可能性,提高系統(tǒng)的安全性,并降低系統(tǒng)出現(xiàn)故障的機(jī)率。
因此,在系統(tǒng)設(shè)計(jì)時(shí),必須考慮未來(lái)平臺(tái)移植的通用性。采用Web Service作為數(shù)據(jù)發(fā)布服務(wù)和更新服務(wù)的主要技術(shù)手段就是為了在進(jìn)行平臺(tái)移植時(shí)對(duì)船載端、監(jiān)控端不產(chǎn)生影響,從而保證服務(wù)器端的遷移不影響客戶端的正常工作,以保障系統(tǒng)的通用性。
在本系統(tǒng)安全設(shè)計(jì)中,首先考慮的就是用戶權(quán)限檢測(cè)。因此,系統(tǒng)設(shè)計(jì)本身充分體現(xiàn)了對(duì)安全性的保障。采用安全性級(jí)別較高的Oracle數(shù)據(jù)庫(kù)提高了環(huán)境安全系數(shù),而由于采用了Web Service技術(shù),在必要情況下,可以使用HTTPS加密鏈路提供額外的安全支持,從而保證較高的安全性。
目前數(shù)據(jù)服務(wù)器為內(nèi)部網(wǎng)絡(luò),部署內(nèi)容如下。
①系統(tǒng)需要部署.Net framework框架,用于創(chuàng)建基于Windows系統(tǒng)的應(yīng)用程序環(huán)境。
②部署Internet Information Services服務(wù),檢查方式為,打開(kāi)管理工具中的Internet信息服務(wù),點(diǎn)擊默認(rèn)網(wǎng)站,確認(rèn)網(wǎng)站運(yùn)行狀態(tài)正常。
③部署TimesTen,其后臺(tái)有一個(gè)TimesTen Daemon進(jìn)程,這個(gè)進(jìn)程是個(gè)多線程進(jìn)程,在服務(wù)器啟動(dòng)后自動(dòng)運(yùn)行。每個(gè)應(yīng)用程序連接到Timesten改進(jìn)程后都會(huì)創(chuàng)建一個(gè)線程與應(yīng)用程序進(jìn)行通信,并進(jìn)行失敗檢測(cè)。
④部署數(shù)據(jù)解析模塊,服務(wù)器端部署數(shù)據(jù)解析,檢查Connect按鈕為禁止?fàn)顟B(tài),有數(shù)據(jù)時(shí)為進(jìn)入狀態(tài),并實(shí)現(xiàn)正常解析。
⑤部署數(shù)據(jù)轉(zhuǎn)發(fā)程序(MessageRelayServer,TCP/TCP通信方式),數(shù)據(jù)轉(zhuǎn)發(fā)程序?qū)?shí)現(xiàn)與異地服務(wù)實(shí)時(shí)共享AIS數(shù)據(jù)和北斗數(shù)據(jù),以秒為單位進(jìn)行存儲(chǔ)轉(zhuǎn)發(fā)。
⑥部署看門狗程序,保證數(shù)據(jù)解析模塊可以連續(xù)工作,在出現(xiàn)異常情況時(shí)解析模塊自動(dòng)恢復(fù)。
海上油田群海底管線自動(dòng)預(yù)警系統(tǒng)的建設(shè)體現(xiàn)了中海油船舶作業(yè)特殊性,結(jié)合AIS及北斗數(shù)據(jù)進(jìn)行綜合應(yīng)用和開(kāi)發(fā),有效實(shí)現(xiàn)了對(duì)海底管線自動(dòng)預(yù)警防護(hù)和船舶的預(yù)警監(jiān)控,為中海油海上平臺(tái)群生產(chǎn)作業(yè)及施工工作提供了可靠的信息化技術(shù)手段和管理工具。截至目前,系統(tǒng)經(jīng)過(guò)軟件迭代更新,實(shí)現(xiàn)了在系統(tǒng)內(nèi)的分布式部署,對(duì)渤海灣海域及北部灣海域、黃海部分海上作業(yè)海域及港口、南海外海部分海上作業(yè)海域及港口區(qū)域?qū)崟r(shí)動(dòng)態(tài)的監(jiān)控及預(yù)警。系統(tǒng)實(shí)現(xiàn)了應(yīng)用創(chuàng)新,經(jīng)過(guò)多次實(shí)踐檢驗(yàn),避免了因船舶拋錨、惡劣天氣造成走錨、未知船舶意外闖入靠泊對(duì)管線造成的損害。在應(yīng)急指揮方面,用于人員落水搜救、開(kāi)采油井原油泄漏應(yīng)急指揮等場(chǎng)合,有效發(fā)揮了預(yù)警救援作用。