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

        ?

        基于微服務(wù)架構(gòu)的分布式災(zāi)情管理系統(tǒng)設(shè)計(jì)

        2022-01-28 09:15:26韓萬(wàn)江陳淑文韓卓言田怡凡孫鵬飛趙景煜
        中國(guó)地震 2021年4期
        關(guān)鍵詞:數(shù)據(jù)庫(kù)服務(wù)系統(tǒng)

        韓萬(wàn)江 陳淑文 韓卓言 田怡凡 孫鵬飛 趙景煜

        北京郵電大學(xué),計(jì)算機(jī)學(xué)院(國(guó)家示范性軟件學(xué)院),北京 100876

        0 引言

        各種重大自然災(zāi)害往往可能造成大量的人員傷亡和巨大的經(jīng)濟(jì)損失,地震災(zāi)情信息的收集需要投入大量的人力、物力、財(cái)力,以獲取第一手動(dòng)態(tài)災(zāi)情信息,從而為災(zāi)后應(yīng)急救援提供方案。目前,國(guó)內(nèi)有關(guān)防災(zāi)減災(zāi)方面的統(tǒng)計(jì)數(shù)據(jù)尚不完善,災(zāi)難現(xiàn)場(chǎng)通常會(huì)面臨復(fù)雜且高度動(dòng)態(tài)的實(shí)時(shí)信息變化,以及政府、時(shí)間、社會(huì)和受害者之間的連鎖反應(yīng)。然而,現(xiàn)有的災(zāi)情收集方式仍存在不足,針對(duì)災(zāi)前災(zāi)情難以預(yù)估、災(zāi)后災(zāi)情獲取緩慢且碎片化、災(zāi)情評(píng)估誤差較大、決策支持不到位、災(zāi)情服務(wù)缺位等科學(xué)問(wèn)題,本文通過(guò)開放式接口在最短的時(shí)間內(nèi)對(duì)數(shù)字、文本、語(yǔ)音、圖片及視頻等災(zāi)情數(shù)據(jù)信息進(jìn)行采集,可實(shí)現(xiàn)災(zāi)情數(shù)據(jù)全生命周期的動(dòng)態(tài)管理,有利于相關(guān)部門組織快速有效的應(yīng)急救援。

        為了對(duì)公眾涉災(zāi)信息數(shù)據(jù)進(jìn)行統(tǒng)一處理并進(jìn)行合理規(guī)劃,本文設(shè)計(jì)多源異構(gòu)災(zāi)情數(shù)據(jù)綜合管理(MSHD)系統(tǒng),該系統(tǒng)基于虛擬化管理技術(shù),設(shè)計(jì)分布式計(jì)算和存儲(chǔ)架構(gòu),實(shí)現(xiàn)災(zāi)情數(shù)據(jù)全生命周期的動(dòng)態(tài)管理,為災(zāi)情影響范圍、空間分布等決策支撐系統(tǒng)提供數(shù)據(jù)支持。為適應(yīng)眾多異源、異質(zhì)、異構(gòu)的數(shù)據(jù)請(qǐng)求,同時(shí)便于后期系統(tǒng)添加新模塊,提出基于微服務(wù)架構(gòu)的系統(tǒng)設(shè)計(jì),并開發(fā)高效、智能、可控率高的數(shù)據(jù)管理平臺(tái),升級(jí)災(zāi)情指揮現(xiàn)場(chǎng)管理模式,完成智慧災(zāi)情系統(tǒng)的優(yōu)化升級(jí)。

        1 MSHD系統(tǒng)微服務(wù)架構(gòu)設(shè)計(jì)

        1.1 單體結(jié)構(gòu)應(yīng)用缺陷

        目前,很多項(xiàng)目均基于傳統(tǒng)單體式應(yīng)用(劉劭,2018),如圖1 所示。例如,由Spring Boot(王永和等,2016)或由Maven自動(dòng)生成項(xiàng)目開發(fā),這些項(xiàng)目一般是以業(yè)務(wù)邏輯層為中心的六邊形結(jié)構(gòu)模式,同時(shí)提供數(shù)據(jù)庫(kù)連接接口、管理消息的組件以及支持UI訪問(wèn)的Web模塊適配器等。雖然其均以模塊設(shè)計(jì)為出發(fā)點(diǎn),但最終仍然被打包成單體式結(jié)構(gòu),當(dāng)單體模塊結(jié)構(gòu)達(dá)到瓶頸期后,通常會(huì)將其復(fù)制成多個(gè)單體式應(yīng)用,這樣便構(gòu)成一個(gè)“集群”,這些集群能夠提供相同的服務(wù),每個(gè)服務(wù)器為該集群節(jié)點(diǎn),后期仍可通過(guò)增加節(jié)點(diǎn)解決負(fù)載問(wèn)題,并由負(fù)載均衡服務(wù)器均勻分配每一個(gè)節(jié)點(diǎn)負(fù)載。MSHD系統(tǒng)在進(jìn)行原型開發(fā)過(guò)程中曾采用單體的架構(gòu),這種單式應(yīng)用會(huì)隨著后期不斷開發(fā)而變得越來(lái)越龐大且復(fù)雜,開發(fā)難度隨之增大。無(wú)論后期增加多少個(gè)節(jié)點(diǎn),集群效果均無(wú)法明顯提升,隨著應(yīng)用的增大,啟動(dòng)將會(huì)隨之減慢,從而導(dǎo)致敏捷性開發(fā)無(wú)法完成。而通過(guò)微服務(wù)(崔燦等,2021)架構(gòu)的改進(jìn),加速了敏捷開發(fā)模式(Balalaie et al,2016)的推廣和分布式系統(tǒng)的開發(fā)。

        圖1 普通單體應(yīng)用

        1.2 微服務(wù)結(jié)構(gòu)應(yīng)用的優(yōu)勢(shì)

        微服務(wù)是一種架構(gòu)模式,由Martin Fowler 與James Lewis共同提出(開金宇,2016)。其提倡將單一應(yīng)用程序劃分成一組小的服務(wù),服務(wù)之間相互協(xié)調(diào)、相互配合、為用戶提供最終價(jià)值。每個(gè)服務(wù)運(yùn)行在其獨(dú)立的進(jìn)程中,服務(wù)與服務(wù)間采用輕量級(jí)的通信機(jī)制相互協(xié)作(通常為基于HTTP協(xié)議的Restful API)(趙軍等,2019)。每個(gè)服務(wù)均圍繞著具體業(yè)務(wù)進(jìn)行構(gòu)建,并且能夠被獨(dú)立地部署到生產(chǎn)環(huán)境、類生產(chǎn)環(huán)境等。

        微服務(wù)架構(gòu)模式的思路不再是開發(fā)一個(gè)大的單體式應(yīng)用(范峻彤,2018),而是將其分解為小的互相連接的微服務(wù)應(yīng)用(圖2)。一個(gè)微服務(wù)完成一個(gè)特定功能,每個(gè)單體式應(yīng)用獨(dú)立部署、維護(hù)以及擴(kuò)展,每個(gè)子系統(tǒng)均可在WEB容器中獨(dú)立運(yùn)行,每個(gè)應(yīng)用均為低耦合,從而使系統(tǒng)具有強(qiáng)大的擴(kuò)展能力(徐康明,2018),并且各模塊之間可通過(guò)提供Restful API進(jìn)行相互調(diào)用,減少對(duì)其他模塊的影響(唐志濤等,2017)。

        圖2 微服務(wù)應(yīng)用

        對(duì)于單體應(yīng)用軟件,雖然從邏輯層面上劃分成多層,但是在運(yùn)行層次上只有一個(gè)進(jìn)程在運(yùn)行程序。而微服務(wù)架構(gòu)是將單體應(yīng)用拆分成多個(gè)小的服務(wù)(王磊,2016),每個(gè)服務(wù)能夠獨(dú)立開發(fā)、更新和部署,同時(shí)服務(wù)之間能夠通過(guò)輕量級(jí)的協(xié)議進(jìn)行協(xié)作。輕量級(jí)協(xié)議是指跟語(yǔ)言無(wú)關(guān)、平臺(tái)無(wú)關(guān)的協(xié)議,例如Restful協(xié)議。每一個(gè)服務(wù)均能夠被獨(dú)立部署到類生產(chǎn)環(huán)境、生產(chǎn)環(huán)境或者其他定義的環(huán)境。

        1.3 MSHD系統(tǒng)微服務(wù)架構(gòu)

        MSHD系統(tǒng)采用敏捷的開發(fā)模式(韓萬(wàn)江等,2017),因此設(shè)計(jì)時(shí)應(yīng)考慮易于變更、易于維護(hù)、易于技術(shù)更迭的架構(gòu)模式。在整個(gè)系統(tǒng)設(shè)計(jì)的過(guò)程中,遵循以下設(shè)計(jì)原則(Bonér,2016):

        (1)高內(nèi)聚,低耦合。在對(duì)系統(tǒng)中的模塊進(jìn)行功能設(shè)計(jì)時(shí),應(yīng)保證模塊內(nèi)部的代碼之間聯(lián)系較強(qiáng),并均與模塊功能有關(guān),同時(shí)模塊之間數(shù)據(jù)和代碼的聯(lián)系盡量小。

        (2)框架整潔。根據(jù)項(xiàng)目需求選擇合適的框架,并基于框架的架構(gòu)對(duì)系統(tǒng)的架構(gòu)進(jìn)行設(shè)計(jì)。

        (3)架構(gòu)與業(yè)務(wù)解耦。

        (4)基于業(yè)務(wù)驅(qū)動(dòng)。每次迭代中,首先對(duì)新增的需求進(jìn)行分析,根據(jù)需求編寫測(cè)試用例,通過(guò)TDD(韓萬(wàn)江等,2019)的方式來(lái)管理項(xiàng)目的開發(fā)。

        (5)使用契約接口的邏輯服務(wù)。

        (6)復(fù)用性。組件復(fù)用是軟件系統(tǒng)設(shè)計(jì)中必須遵守的原則,對(duì)可重用的組件進(jìn)行統(tǒng)一包裝,包括系統(tǒng)級(jí)的應(yīng)用組件和應(yīng)用級(jí)的服務(wù)組件。

        (7)安全可靠。選擇安全可靠的軟硬件運(yùn)行平臺(tái),并在系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)過(guò)程中關(guān)注系統(tǒng)的安全控制和執(zhí)行效率,提供相應(yīng)的安全防護(hù)功能,保證系統(tǒng)具有較高的安全性和可靠性; 安全性方面,需考慮系統(tǒng)的安全、數(shù)據(jù)管理的安全、網(wǎng)絡(luò)安全; 保證用戶權(quán)限、數(shù)據(jù)安全和系統(tǒng)的穩(wěn)定性。

        (8)單一職責(zé)。在面向?qū)ο笤O(shè)計(jì)部分采取單一職責(zé)原則,其核心思想為,一個(gè)類最好只做一件事。單一職責(zé)原則可以看作是低耦合、高內(nèi)聚在面向?qū)ο笤瓌t上的引申,將職責(zé)定義為引起變化的原因,以提高內(nèi)聚性來(lái)減少引起變化的原因,從而最終提高系統(tǒng)的可修改性和可維護(hù)性(宋海云,2018)。

        根據(jù)上述原則,采用微服務(wù)體系結(jié)構(gòu)設(shè)計(jì)系統(tǒng)(羅貴木,2017),將數(shù)據(jù)采集、數(shù)據(jù)編碼、數(shù)據(jù)管理、數(shù)據(jù)輸出等子模塊按功能相似性精細(xì)劃分,每一個(gè)子模塊對(duì)特定資源進(jìn)行對(duì)應(yīng)操作。從開發(fā)角度來(lái)看,每一個(gè)模塊均可交給不同的團(tuán)隊(duì)進(jìn)行開發(fā),可以根據(jù)團(tuán)隊(duì)開發(fā)習(xí)慣利用不同的模式進(jìn)行開發(fā),最后只需保證能提供API服務(wù)實(shí)現(xiàn)通信即可。該方案不僅使開發(fā)效率得到提升,且解決了后期維護(hù)和添加新模塊時(shí)技術(shù)選型等一系列問(wèn)題(圖3)。從部署角度來(lái)看,每個(gè)微服務(wù)均為獨(dú)立部署,減小了部署時(shí)對(duì)其他模塊的影響(孫秀玲,2018)。

        圖3 微服務(wù)架構(gòu)

        2 MSHD系統(tǒng)模塊設(shè)計(jì)

        MSHD系統(tǒng)依據(jù)高內(nèi)聚、低耦合、單一職責(zé)、復(fù)用性等設(shè)計(jì)原則,采用自上而下進(jìn)行模塊設(shè)計(jì)(洪華軍等,2018),系統(tǒng)的模塊設(shè)計(jì)如圖4 所示。

        圖4 MSHD模塊設(shè)計(jì)

        2.1 用戶管理

        用戶管理模塊主要用于對(duì)用戶信息進(jìn)行管理,包括用戶權(quán)限管理,用戶注冊(cè),用戶登錄,用戶登出,用戶注銷以及用戶信息修改。MSHD系統(tǒng)有數(shù)據(jù)操作員、系統(tǒng)管理員2種用戶角色,根據(jù)其身份及作用的不同,通過(guò)用戶名和密碼驗(yàn)證用戶身份,對(duì)不同權(quán)限用戶提供不同的可訪問(wèn)的用戶界面。

        2.2 數(shù)據(jù)輸入

        MSHD系統(tǒng)為異源數(shù)據(jù)提供相應(yīng)的輸入接口,以便接入數(shù)據(jù)。這些數(shù)據(jù)包括業(yè)務(wù)報(bào)送數(shù)據(jù)、泛在感知數(shù)據(jù)、輿情感知數(shù)據(jù)和承載體基礎(chǔ)數(shù)據(jù)等。數(shù)據(jù)涵蓋了多種數(shù)據(jù)類型及多種格式數(shù)據(jù)文件,包括文本數(shù)據(jù)、多媒體數(shù)據(jù)。數(shù)據(jù)文件包括xml文件、json文件、csv文件、MySQL數(shù)據(jù)庫(kù)、txt文件等,以便對(duì)數(shù)據(jù)輸入提供接口支持和數(shù)據(jù)管理服務(wù)。

        2.3 數(shù)據(jù)編碼

        針對(duì)公眾涉災(zāi)信息異源、異質(zhì)、異構(gòu)數(shù)據(jù)的特點(diǎn),提供一套完備的通用數(shù)據(jù)編碼格式,即一體化編碼。所謂的一體化編碼就是將多種不同類型、不同數(shù)據(jù)格式的數(shù)據(jù)信息,按照既定的編碼規(guī)則進(jìn)行統(tǒng)一編碼,不僅有利于信息系統(tǒng)的高效數(shù)據(jù)檢索、業(yè)務(wù)操作和結(jié)果輸出,還有利于數(shù)據(jù)的一致性維護(hù),降低系統(tǒng)的運(yùn)行成本。在編碼過(guò)程中,需要注意編碼的一致性、完整性、易用性,以便對(duì)多源災(zāi)情數(shù)據(jù)進(jìn)行統(tǒng)一格式化管理。

        2.4 數(shù)據(jù)管理

        數(shù)據(jù)管理人員通過(guò)災(zāi)情數(shù)據(jù)管理模塊對(duì)實(shí)時(shí)讀取的災(zāi)情數(shù)據(jù)進(jìn)行管理,包括災(zāi)情數(shù)據(jù)基本查詢管理、災(zāi)情統(tǒng)計(jì)分析、運(yùn)用GIS服務(wù)(丁晶晶等,2017)進(jìn)行可視化等。

        2.5 數(shù)據(jù)輸出

        數(shù)據(jù)管理人員收到災(zāi)情數(shù)據(jù)請(qǐng)求后,對(duì)請(qǐng)求進(jìn)行處理,之后將所需災(zāi)情數(shù)據(jù)的編碼及詳細(xì)描述發(fā)送到指定的FTP文件服務(wù)器上。

        2.6 數(shù)據(jù)備份

        數(shù)據(jù)備份是基于數(shù)據(jù)生命周期的動(dòng)態(tài)管理,需要定期將數(shù)據(jù)進(jìn)行動(dòng)態(tài)備份。依據(jù)數(shù)據(jù)的時(shí)效性進(jìn)行數(shù)據(jù)存儲(chǔ),若當(dāng)前時(shí)刻為t,設(shè)置合適的時(shí)間窗口T,則對(duì)(t-T+1)~t內(nèi)的數(shù)據(jù)進(jìn)行存儲(chǔ),并且隨著時(shí)間的延續(xù),實(shí)現(xiàn)新數(shù)據(jù)存儲(chǔ)及舊數(shù)據(jù)淘汰,淘汰的數(shù)據(jù)存儲(chǔ)在備份數(shù)據(jù)庫(kù)。

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

        MSHD系統(tǒng)架構(gòu)基于微服務(wù)的分布式技術(shù),采用服務(wù)器集群、水平業(yè)務(wù)劃分、應(yīng)用分解等方式來(lái)解決系統(tǒng)性能問(wèn)題和復(fù)雜業(yè)務(wù)問(wèn)題(Aderaldo et al,2017)。系統(tǒng)總體架構(gòu)如圖5 所示,該系統(tǒng)根據(jù)資源及其功能模塊,在業(yè)務(wù)層運(yùn)用了8個(gè)微服務(wù),微服務(wù)底層使用MyBatis作為數(shù)據(jù)持久化框架,運(yùn)用開源數(shù)據(jù)庫(kù)MySQL進(jìn)行數(shù)據(jù)存儲(chǔ),并以FTP Server作為文件數(shù)據(jù)輸入與輸出的媒介。同時(shí),將微服務(wù)分別在Eureka中心進(jìn)行服務(wù)注冊(cè)。考慮到系統(tǒng)的性能,本架構(gòu)應(yīng)用Redis非關(guān)系數(shù)據(jù)庫(kù),運(yùn)用RabbitMQ消息中間件為系統(tǒng)提供可靠的消息傳輸。項(xiàng)目中每個(gè)子模塊均包含能獨(dú)立運(yùn)行和部署的基礎(chǔ)模塊。

        圖5 MSHD系統(tǒng)總體架構(gòu)

        (1)服務(wù)注冊(cè)與發(fā)現(xiàn)(Erl,2017)。MSHD系統(tǒng)的所有微服務(wù)(包括服務(wù)提供者和服務(wù)消費(fèi)者)均加入Eureka服務(wù)注冊(cè)中心,這樣服務(wù)間的調(diào)用變得簡(jiǎn)單,只需要使用注冊(cè)在Eureka的應(yīng)用名稱便可進(jìn)行服務(wù)的調(diào)用,如圖6 所示。同時(shí)服務(wù)提供者在啟動(dòng)后,周期性(默認(rèn)30s)向Eureka Server發(fā)送心跳,以證明當(dāng)前服務(wù)是可用狀態(tài)。Eureka Server在一定的時(shí)間(默認(rèn)90s)未收到客戶端的心跳,則認(rèn)為服務(wù)宕機(jī),并注銷該實(shí)例。系統(tǒng)在業(yè)務(wù)層運(yùn)行了6個(gè)微服務(wù),分別為用戶管理、數(shù)據(jù)輸入、一體化編碼、數(shù)據(jù)管理、數(shù)據(jù)輸出以及數(shù)據(jù)備份,然后運(yùn)用基于Rest風(fēng)格的API實(shí)現(xiàn)微服務(wù)之間的協(xié)調(diào)調(diào)用。

        圖6 微服務(wù)之間調(diào)用方式

        (2)Nginx反向代理和Zuul網(wǎng)關(guān)。Nginx反向代理服務(wù)器主要是為Zuul網(wǎng)關(guān)服務(wù)器集群提供一個(gè)負(fù)載均衡的功能,Zuul是Spring Cloud全家桶中的微服務(wù)API網(wǎng)關(guān),所有從設(shè)備或網(wǎng)站提出的請(qǐng)求均會(huì)經(jīng)過(guò)Zuul到達(dá)后端的微服務(wù)應(yīng)用程序。作為一個(gè)邊界性質(zhì)的網(wǎng)關(guān)服務(wù)器,Zuul提供了動(dòng)態(tài)路由、監(jiān)控、彈性負(fù)載和安全功能,如圖7 所示。MSHD系統(tǒng)首先將Zuul網(wǎng)關(guān)服務(wù)器注冊(cè)到Eureka服務(wù)中心,則客戶端可以根據(jù)微服務(wù)的“注冊(cè)服務(wù)名稱/其他路由信息”的方式實(shí)現(xiàn)數(shù)據(jù)輸入、數(shù)據(jù)輸出等微服務(wù)的調(diào)用。

        圖7 網(wǎng)關(guān)調(diào)用模型

        (3)緩存數(shù)據(jù)庫(kù)。當(dāng)項(xiàng)目中存在一些經(jīng)常訪問(wèn)且不輕易修改的數(shù)據(jù)時(shí),為了提高系統(tǒng)的性能,緩存數(shù)據(jù)庫(kù)的應(yīng)用就顯得尤為必要。Redis數(shù)據(jù)庫(kù)是可以支持每秒十幾萬(wàn)次的讀/寫操作的key-value數(shù)據(jù)庫(kù),其性能遠(yuǎn)超數(shù)據(jù)庫(kù),并且還支持集群、分布式、主從同步等配置,支持一定的事務(wù)能力,保證了高并發(fā)的場(chǎng)景下數(shù)據(jù)的安全和一致性。本系統(tǒng)將用戶信息、行政區(qū)劃代碼等數(shù)據(jù)存入Redis數(shù)據(jù)庫(kù)。

        (4)存儲(chǔ)數(shù)據(jù)庫(kù)。MySQL作為當(dāng)下最穩(wěn)定的關(guān)系型數(shù)據(jù)庫(kù)之一,在Web開發(fā)項(xiàng)目下廣為使用。在本研究中,災(zāi)情數(shù)據(jù)本身就是一個(gè)大數(shù)據(jù)源,如人員傷亡、房屋破壞、生命線災(zāi)情等,系統(tǒng)需要不斷地對(duì)其進(jìn)行數(shù)據(jù)存儲(chǔ)和修改,為確保數(shù)據(jù)的穩(wěn)定性和事務(wù)的一致性,本文采用MySQL作為災(zāi)情數(shù)據(jù)存儲(chǔ)庫(kù),同時(shí)將MongoDB數(shù)據(jù)庫(kù)作為輿情感知的數(shù)據(jù)存儲(chǔ)數(shù)據(jù)庫(kù)。

        (5)消息中間件。在現(xiàn)實(shí)生活中,當(dāng)?shù)卣鸢l(fā)生時(shí),相關(guān)單位的災(zāi)情數(shù)據(jù)報(bào)送工作會(huì)愈加頻繁,并發(fā)量在短時(shí)間內(nèi)會(huì)很大,這就會(huì)造成微服務(wù)的宕機(jī)或者數(shù)據(jù)庫(kù)出現(xiàn)故障,消息中間件則可通過(guò)在網(wǎng)絡(luò)環(huán)境中為應(yīng)用系統(tǒng)提供同步或異步、可靠的消息傳輸來(lái)改善上述情況。本文運(yùn)用Spring Cloud全家桶中的RabbitMQ作為消息隊(duì)列協(xié)議的消息中間件,當(dāng)用戶需要獲取災(zāi)情數(shù)據(jù)或者上報(bào)災(zāi)情數(shù)據(jù)時(shí),會(huì)將請(qǐng)求信息寫入消息隊(duì)列中,并向用戶反饋信息(Sill,2016)。

        (6)持久層設(shè)計(jì)。MyBatis作為一款持久層框架,支持自定義SQL、存儲(chǔ)過(guò)程以及高級(jí)映射,其免除了幾乎所有的JDBC代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作。MyBatis可以通過(guò)簡(jiǎn)單的XML或注解來(lái)配置,將接口和Java的POJOs映射成數(shù)據(jù)庫(kù)中的記錄。本系統(tǒng)運(yùn)用MyBatis作為每個(gè)微服務(wù)的數(shù)據(jù)持久化框架。

        (7)FTP文件服務(wù)器。本研究基于多源災(zāi)情數(shù)據(jù),多源是指業(yè)務(wù)報(bào)送數(shù)據(jù)、泛在感知數(shù)據(jù)、輿情感知數(shù)據(jù)和承載體基礎(chǔ)數(shù)據(jù)等,這些數(shù)據(jù)格式并不一致,如xml、json等文件格式。本系統(tǒng)采用FTP文件服務(wù)器的方式,將這些來(lái)源整理成不同的目錄,用戶將文件上傳至FTP,系統(tǒng)通過(guò)FTP服務(wù)器讀取并處理災(zāi)情數(shù)據(jù)。

        (8)用戶界面。Web端主要運(yùn)用Bootstrap前端框架實(shí)現(xiàn)。Bootstrap是目前最受歡迎的前端框架,其基于HTML、CSS、JAVASCRIPT,簡(jiǎn)潔靈活,使得Web開發(fā)更加快捷。同時(shí),本研究運(yùn)用前后端分離的開發(fā)思想,應(yīng)用Jquery中的ajax()方法,通過(guò)HTTP請(qǐng)求加載遠(yuǎn)程數(shù)據(jù)。

        (9)部署。Docker容器(Stubbs et al,2015)具有提升開發(fā)效率、隔離應(yīng)用、便于整合服務(wù)器以及快速部署等優(yōu)點(diǎn)。本研究采用Docker容器部署技術(shù),通過(guò)為每個(gè)微服務(wù)編寫DockerFile文件構(gòu)建鏡像,由鏡像創(chuàng)建應(yīng)用容器。

        本研究的災(zāi)情管理系統(tǒng)微服務(wù)集群結(jié)果如圖8 所示,通過(guò)將每個(gè)功能模塊組成獨(dú)立的微服務(wù)應(yīng)用程序,不需要像單體應(yīng)用那樣做任何細(xì)微的修改均需要將整個(gè)應(yīng)用程序重新構(gòu)建、重新部署,而只需對(duì)所屬的微服務(wù)進(jìn)行部署、局部修改,有利于持續(xù)集成和持續(xù)交付,提高了系統(tǒng)的靈活性; 與單體應(yīng)用不同,以微服務(wù)構(gòu)建的災(zāi)情系統(tǒng)易于搭建微服務(wù)集群,如在本系統(tǒng)中,災(zāi)情信息存儲(chǔ)微服務(wù)及一體化編碼微服務(wù)使用頻繁,相應(yīng)地在不同主機(jī)或者不同端口按需搭建了微服務(wù)集群(Kakivaya et al,2018),從而提高了系統(tǒng)的擴(kuò)展性; 同時(shí),本系統(tǒng)采用消息隊(duì)列對(duì)應(yīng)用進(jìn)行限流削峰,并加入了緩存數(shù)據(jù)庫(kù),為系統(tǒng)的高并發(fā)提供了解決方法。

        圖8 注冊(cè)在Eureka上的微服務(wù)集群

        4 MSHD系統(tǒng)原型展示

        多源異構(gòu)災(zāi)情數(shù)據(jù)綜合管理系統(tǒng)平臺(tái)如圖9 所示。多源社會(huì)災(zāi)情數(shù)據(jù)通過(guò)接口輸入到多源災(zāi)情數(shù)據(jù)管理服務(wù)系統(tǒng)平臺(tái),進(jìn)行一體化編碼; 然后將編碼后的數(shù)據(jù)輸入虛擬化管理系統(tǒng)。數(shù)據(jù)來(lái)源包括業(yè)務(wù)報(bào)送數(shù)據(jù)、泛在感知數(shù)據(jù)、輿情感知數(shù)據(jù)和承載體基礎(chǔ)數(shù)據(jù)等,將來(lái)可以擴(kuò)展更多數(shù)據(jù)來(lái)源。該系統(tǒng)依據(jù)數(shù)據(jù)的時(shí)效性進(jìn)行數(shù)據(jù)存儲(chǔ),并隨著時(shí)間的延續(xù),實(shí)現(xiàn)新數(shù)據(jù)存儲(chǔ)、舊數(shù)據(jù)淘汰; 最后,當(dāng)外界發(fā)出數(shù)據(jù)請(qǐng)求時(shí),從管理系統(tǒng)中獲取目標(biāo)數(shù)據(jù),并通過(guò)接口發(fā)送給請(qǐng)求方,實(shí)現(xiàn)災(zāi)情數(shù)據(jù)統(tǒng)一管理和高效合理利用。

        圖9 多源異構(gòu)災(zāi)情數(shù)據(jù)管理服務(wù)系統(tǒng)平臺(tái)示意

        4.1 災(zāi)情數(shù)據(jù)獲取

        MSHD系統(tǒng)通過(guò)開放式接口對(duì)多源異構(gòu)災(zāi)情數(shù)據(jù)進(jìn)行實(shí)時(shí)讀取并統(tǒng)一編碼入庫(kù),圖10 展示了MSHD系統(tǒng)針對(duì)業(yè)務(wù)報(bào)送數(shù)據(jù)、泛在感知數(shù)據(jù)、輿情感知數(shù)據(jù)和承載體基礎(chǔ)數(shù)據(jù)等數(shù)據(jù)來(lái)源的數(shù)據(jù)接口讀取設(shè)置,并可根據(jù)需要設(shè)置讀取時(shí)間間隔; 圖11 展示了數(shù)據(jù)管理的周期; 圖12 和圖13 展示了通過(guò)接口讀取震情和災(zāi)情數(shù)據(jù)并編碼入庫(kù)的結(jié)果(其中ID列展示的是數(shù)據(jù)編碼結(jié)果)。

        圖10 災(zāi)情數(shù)據(jù)接口讀取設(shè)置

        圖11 數(shù)據(jù)動(dòng)態(tài)管理周期設(shè)置

        圖12 震情災(zāi)情統(tǒng)一編碼入庫(kù)

        圖13 災(zāi)情統(tǒng)一編碼入庫(kù)

        4.2 災(zāi)情數(shù)據(jù)速報(bào)

        MSHD系統(tǒng)對(duì)編碼入庫(kù)的震情和災(zāi)情數(shù)據(jù)通過(guò)地理信息系統(tǒng)、各種圖表等形式進(jìn)行展示,圖14 展示了實(shí)時(shí)震情,圖15 展示了關(guān)于人員傷亡的災(zāi)情統(tǒng)計(jì)情況,圖16 展示了次生災(zāi)情統(tǒng)計(jì)情況,圖17 展示了房屋災(zāi)情統(tǒng)計(jì)情況。

        圖14 最新震情信息展示

        圖15 最新人員災(zāi)情統(tǒng)計(jì)信息

        圖16 最新次生災(zāi)害信息展示

        圖17 最新房屋災(zāi)情信息展示

        4.3 災(zāi)情數(shù)據(jù)管理

        MSHD系統(tǒng)實(shí)現(xiàn)災(zāi)情數(shù)據(jù)全生命周期的動(dòng)態(tài)管理,圖18 展示了對(duì)災(zāi)情數(shù)據(jù)的管理,圖19 展示了災(zāi)情數(shù)據(jù)的備份設(shè)置。

        圖18 災(zāi)情數(shù)據(jù)管理

        圖19 災(zāi)情數(shù)據(jù)備份設(shè)置

        4.4 災(zāi)情智能預(yù)測(cè)

        MSHD系統(tǒng)可對(duì)輿情、電力、電信、交通等信息感知并預(yù)測(cè)災(zāi)害損失,給出相關(guān)的輿情熱力圖以及對(duì)地震烈度(張方浩等,2016)的智能預(yù)測(cè)結(jié)果,圖20 展示了輿情熱力圖,圖21 展示了根據(jù)輿情預(yù)測(cè)的震情烈度。

        圖20 災(zāi)情統(tǒng)計(jì)信息

        圖21 輿情預(yù)測(cè)烈度

        4.5 災(zāi)情數(shù)據(jù)輸出

        MSHD系統(tǒng)可以根據(jù)對(duì)災(zāi)情數(shù)據(jù)的請(qǐng)求,將相應(yīng)災(zāi)情數(shù)據(jù)輸出給請(qǐng)求方,圖22 展示了災(zāi)情數(shù)據(jù)發(fā)送請(qǐng)求,圖23 展示了災(zāi)情數(shù)據(jù)發(fā)送處理。

        圖22 災(zāi)情數(shù)據(jù)發(fā)送請(qǐng)求

        圖23 災(zāi)情數(shù)據(jù)發(fā)送處理

        5 結(jié)語(yǔ)

        本文結(jié)合災(zāi)情數(shù)據(jù)管理存在的問(wèn)題,提出一種基于微服務(wù)架構(gòu)的多源異構(gòu)災(zāi)情綜合管理系統(tǒng),并介紹了系統(tǒng)各模塊組成和運(yùn)用的技術(shù)。多源異構(gòu)災(zāi)情數(shù)據(jù)服務(wù)管理系統(tǒng)可以將多源社會(huì)災(zāi)情數(shù)據(jù)通過(guò)接口輸入到系統(tǒng)平臺(tái),經(jīng)過(guò)一體化編碼后再將數(shù)據(jù)輸入到虛擬化管理系統(tǒng),實(shí)現(xiàn)了災(zāi)情數(shù)據(jù)接口輸入、災(zāi)情數(shù)據(jù)一體化編碼入庫(kù)、災(zāi)情數(shù)據(jù)的全周期性管理、多源感知災(zāi)情智能預(yù)報(bào)和數(shù)據(jù)請(qǐng)求輸出管理等功能。目前MSHD系統(tǒng)已進(jìn)入測(cè)試階段,該系統(tǒng)架構(gòu)在開發(fā)層面彌補(bǔ)了單體式應(yīng)用的不足,使運(yùn)行更加穩(wěn)定,但其仍存在諸如Http請(qǐng)求耗時(shí)問(wèn)題、微服務(wù)的多服務(wù)部署復(fù)雜性等問(wèn)題,這將成為下一步研究的方向。同時(shí),考慮到系統(tǒng)處理的是海量多源異構(gòu)災(zāi)情數(shù)據(jù),MySQL作為數(shù)據(jù)庫(kù)可能無(wú)法應(yīng)對(duì)數(shù)據(jù)持續(xù)增長(zhǎng)帶來(lái)的穩(wěn)定性和數(shù)據(jù)可靠性等挑戰(zhàn),容易成為整個(gè)系統(tǒng)的瓶頸,今后將考慮MongoDB等作為主要數(shù)據(jù)庫(kù),以滿足該業(yè)務(wù)場(chǎng)景的需要。

        猜你喜歡
        數(shù)據(jù)庫(kù)服務(wù)系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無(wú)人機(jī)系統(tǒng)
        ZC系列無(wú)人機(jī)遙感系統(tǒng)
        服務(wù)在身邊 健康每一天
        服務(wù)在身邊 健康每一天
        服務(wù)在身邊 健康每一天
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        招行30年:從“滿意服務(wù)”到“感動(dòng)服務(wù)”
        商周刊(2017年9期)2017-08-22 02:57:56
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        国产亚洲欧美精品一区| 国内精品大秀视频日韩精品| 日韩毛片在线看| 亚洲成av人在线观看无堂无码| 中文字幕一区二区三区在线乱码| 久久亚洲精品一区二区三区| 亚洲国产丝袜久久久精品一区二区| 少妇人妻一区二区三飞| 久久精品久99精品免费| 永久免费毛片在线播放| 人妻少妇不满足中文字幕| 嗯啊哦快使劲呻吟高潮视频| 麻豆AV免费网站| 杨幂国产精品一区二区| 亚洲女同性恋第二区av| 午夜视频国产在线观看| 香港三级日本三级a视频| 69久久夜色精品国产69| 欧美深夜福利视频| 亚洲福利视频一区二区三区| 亚洲国产一区二区三区精品| 日日躁夜夜躁狠狠躁| 国产人妻久久精品二区三区特黄| 国产99r视频精品免费观看| 亚洲国产成a人v在线观看| 日本加勒比一道本东京热| 97成人精品视频在线| 欧美激情一区二区三区 | 亚洲av午夜国产精品无码中文字| 色爱区综合五月激情| 欧美日韩亚洲一区二区精品| 人妻一区二区三区免费看| 亚洲精品中文字幕乱码影院| 人妻体内射精一区二区三四| 丰满人妻被中出中文字幕| 久久精品中文字幕极品| 亚洲一区极品美女写真在线看 | 女的把腿张开男的猛戳出浆| 丰满少妇av一区二区三区| 国产精品亚洲av无人区一区香蕉| 精品免费久久久久久久|