何雅楓,李璇瓊,周志華
(1.四川省地震局,四川 成都 610041;2.四川建筑職業(yè)技術(shù)學(xué)院,四川 德陽 618000)
災(zāi)害性地震發(fā)生后,地震現(xiàn)場工作人員必須趕赴現(xiàn)場,根據(jù)應(yīng)急指揮協(xié)調(diào)的工作部署情況,快速開展地震受災(zāi)情況現(xiàn)場調(diào)查工作。其中,地震烈度圖是地震影響區(qū)受災(zāi)程度的評(píng)定和災(zāi)后恢復(fù)重建的依據(jù),地震系統(tǒng)在應(yīng)急期的核心工作就是科學(xué)快速的給出烈度圖[1],烈度圖的精準(zhǔn)繪制需進(jìn)行大量的單體建筑、群體建筑、生命線工程、次生災(zāi)害、災(zāi)情等調(diào)查數(shù)據(jù)的采集。近年來現(xiàn)場調(diào)查工作實(shí)例也表現(xiàn)出緊迫性、時(shí)限性和協(xié)同性等特點(diǎn),這就要求在有限的時(shí)間內(nèi)需快速收集、整理、共享地震現(xiàn)場災(zāi)情調(diào)查的數(shù)據(jù)信息,為應(yīng)急響應(yīng)提供決策性意見。而目前地震烈度調(diào)查工作采取的方式還是以白天震害調(diào)查晚上資料整理的模式為主,調(diào)查手段多以傳統(tǒng)的紙筆記錄和拍照為主,現(xiàn)場調(diào)查組不僅無法實(shí)現(xiàn)與指揮部規(guī)范的實(shí)施傳輸,還容易出現(xiàn)漏記錯(cuò)記、文件丟失等情況。同時(shí)在整理過程中有文件拷貝出錯(cuò)、格式不統(tǒng)一、操作不便捷、耗時(shí)長等問題。基于調(diào)查現(xiàn)狀,為解決上述問題,具有完整同步策略的自動(dòng)化、智能化地震現(xiàn)場災(zāi)情快速調(diào)查評(píng)估系統(tǒng)建設(shè)(以下簡稱“現(xiàn)場災(zāi)情調(diào)查系統(tǒng)”)尤為重要,不僅可以加強(qiáng)前后方指揮部與現(xiàn)場調(diào)查組之間的協(xié)同能力,還能提高應(yīng)急期地震現(xiàn)場烈度評(píng)定的工作效率。
通過“四川省地震局蘆山地震災(zāi)后恢復(fù)重建-地震應(yīng)急指揮場所與現(xiàn)場技術(shù)系統(tǒng)升級(jí)改造項(xiàng)目(0722-1561FE705WWH)”中現(xiàn)場災(zāi)情調(diào)查系統(tǒng)的建設(shè),包含智能化移動(dòng)終端APP(以下簡稱“移動(dòng)端”)、現(xiàn)場中心處理系統(tǒng)(以下簡稱“現(xiàn)場中心”)、現(xiàn)場信息管理Web服務(wù)(以下簡稱“Web端”)。本文針對(duì)現(xiàn)場中心、移動(dòng)端、Web端“三方”在數(shù)據(jù)緩存和更新、雙向數(shù)據(jù)交換過程中出現(xiàn)的數(shù)據(jù)沖突而制定解決規(guī)則,設(shè)計(jì)出“三方”災(zāi)情信息實(shí)時(shí)、完整同步的同步策略,可確保整個(gè)現(xiàn)場災(zāi)情調(diào)查系統(tǒng)的數(shù)據(jù)一致性和協(xié)同性,加強(qiáng)前后方指揮部與現(xiàn)場之間的調(diào)度與聯(lián)動(dòng)能力,為科學(xué)快速的給出烈度評(píng)定結(jié)果提供高效的技術(shù)手段。
移動(dòng)數(shù)據(jù)同步技術(shù)的應(yīng)運(yùn)而生,是確保各系統(tǒng)間各類數(shù)據(jù)一致性的關(guān)鍵,從這個(gè)角度來說,數(shù)據(jù)同步策略的技術(shù)手段簡單分為兩種:狹義的同步和復(fù)制。同步是將當(dāng)前狀態(tài)的最終結(jié)果數(shù)據(jù)回傳至相關(guān)節(jié)點(diǎn),并更新對(duì)應(yīng)的數(shù)據(jù)以維護(hù)數(shù)據(jù)的一致性,忽略事物的執(zhí)行過程細(xì)節(jié)。復(fù)制是將更新事物集傳遞到相關(guān)節(jié)點(diǎn)上運(yùn)行,復(fù)制環(huán)境中的任何一個(gè)節(jié)點(diǎn)的復(fù)制數(shù)據(jù)發(fā)生了更新操作,該變化會(huì)立刻反應(yīng)到其它所有的復(fù)制節(jié)點(diǎn),保證復(fù)制數(shù)據(jù)在任何時(shí)間、任何復(fù)制節(jié)點(diǎn)都保持一致。為保證系統(tǒng)間數(shù)據(jù)同步始終一致,并避免同步?jīng)_突,建立的數(shù)據(jù)同步策略要結(jié)合同步和復(fù)制的優(yōu)點(diǎn)。經(jīng)文獻(xiàn)資料總結(jié)得出,數(shù)據(jù)同步策略的技術(shù)手段簡單分為單向同步、雙向同步、服務(wù)器推送同步[2-3]。
(1)單向同步:單向同步即由單方面發(fā)起同步請(qǐng)求的數(shù)據(jù)同步策略類型,分別是系統(tǒng)使用端發(fā)起的單向同步和服務(wù)器發(fā)起的單向同步。此方法在同步過程中客戶端會(huì)向同步服務(wù)器發(fā)送所有的本地修改數(shù)據(jù),通常情況下會(huì)強(qiáng)制對(duì)服務(wù)器數(shù)據(jù)進(jìn)行覆蓋操作。
(2)雙向同步:是指服務(wù)器端和系統(tǒng)使用端之間的數(shù)據(jù)流是雙向流動(dòng)的。首次同步過程中,系統(tǒng)使用端通常從服務(wù)器端下載架構(gòu)和一個(gè)初始數(shù)據(jù)集。執(zhí)行后續(xù)同步時(shí),系統(tǒng)使用端將變更上載至服務(wù)器端,然后從服務(wù)器端下載變更。此方式最大的特點(diǎn)是服務(wù)器端和系統(tǒng)使用端都有權(quán)更新同一數(shù)據(jù)。
(3)服務(wù)器推送同步:是由同步服務(wù)器發(fā)起的數(shù)據(jù)同步過程,允許系統(tǒng)使用端自行定制同步計(jì)劃,使得同步服務(wù)器能夠在特定時(shí)間通知各使用端設(shè)備執(zhí)行數(shù)據(jù)同步以保證數(shù)據(jù)的實(shí)效性,并允許多個(gè)同步使用端根據(jù)指定的同步策略執(zhí)行并發(fā)的數(shù)據(jù)同步。
目前常見的數(shù)據(jù)同步協(xié)議有Palm HotSync策略、Intellisync、SyncML和CPISync。其中SyncML是現(xiàn)有的協(xié)議中使用最廣,通用性最好的數(shù)據(jù)同步協(xié)議,已被認(rèn)定為行業(yè)通用標(biāo)準(zhǔn)。首先,SyncML基于XML定義,繼承了XML語言開放、可擴(kuò)展的特點(diǎn),使得整個(gè)SyncML策略具有高度的靈活性和擴(kuò)展性,從而基于SyncML策略的數(shù)據(jù)同步操作傳輸網(wǎng)絡(luò)環(huán)境可以是各種有線、無線網(wǎng)絡(luò),同步操作所攜帶的數(shù)據(jù)可以是各種數(shù)據(jù)類型;其次,SyncML策略可以適用于各種終端設(shè)備和網(wǎng)絡(luò)設(shè)備,在數(shù)據(jù)同步開始前,系統(tǒng)使用端和服務(wù)器端進(jìn)行設(shè)備信息的交互,以確定客戶端設(shè)備所支持的數(shù)據(jù)類型以及其他信息,這一過程保障了對(duì)各種終端設(shè)備的最大支持;最后,SyncML策略簡單靈活且易于實(shí)現(xiàn)[4]。
綜上所述,采用雙向同步的數(shù)據(jù)同步方式以及SyncML數(shù)據(jù)同步策略,適用于現(xiàn)場災(zāi)情調(diào)查評(píng)估系統(tǒng)的數(shù)據(jù)同步問題的解決,需要在此基礎(chǔ)上建立具體的、完善的現(xiàn)場災(zāi)情調(diào)查評(píng)估系統(tǒng)“三方”數(shù)據(jù)同步策略。
同步策略的研究需基于完善的“三方”同步方案。同步方案的建立分為在線和離線兩種情況。在線情況下,災(zāi)情調(diào)查人員獲得第一災(zāi)情數(shù)據(jù)并上傳,與指揮部及時(shí)溝通,現(xiàn)場指揮部對(duì)外部接入的數(shù)據(jù)和智能移動(dòng)終端調(diào)查數(shù)據(jù)進(jìn)行半自動(dòng)化的交互分析處理后錄入到數(shù)據(jù)庫中,可以為其它評(píng)估系統(tǒng)(如地震現(xiàn)場損失評(píng)估系統(tǒng)等)提供數(shù)據(jù)支持,也可為現(xiàn)場調(diào)查人員推送實(shí)時(shí)震情信息和發(fā)送指令信息;離線狀態(tài)下,調(diào)查人員通過第三方數(shù)據(jù)推送接口,以短信等形式獲取任務(wù)、指令、推送消息等信息,并基于離線地圖獲取除實(shí)時(shí)更新數(shù)據(jù)以外的數(shù)據(jù),可正常開展災(zāi)情數(shù)據(jù)調(diào)查工作,調(diào)查結(jié)果保存到本地?cái)?shù)據(jù)庫,待網(wǎng)絡(luò)暢通時(shí)同步。“三方”同步方案如圖1所示。

圖1 “三方”同步方案Fig.1 The synchronisation program of three sides

表2 道路調(diào)查表

表3 標(biāo)注信息表
現(xiàn)場災(zāi)情調(diào)查系統(tǒng)無論在有網(wǎng)絡(luò)還是離線狀態(tài)下,會(huì)產(chǎn)生數(shù)據(jù)同步?jīng)_突,在此基礎(chǔ)上如何有序、高效地進(jìn)行現(xiàn)場調(diào)查工作,需在變化捕獲、分發(fā)、沖突檢測(cè)與解決三個(gè)階段中建立數(shù)據(jù)同步策略,避免或消除數(shù)據(jù)同步?jīng)_突。數(shù)據(jù)沖突主要有以下三種類型:
(1)更新沖突:同步時(shí),如果其它移動(dòng)端子系統(tǒng)比啟動(dòng)當(dāng)前同步過程的移動(dòng)端子系統(tǒng)更早提交了對(duì)同一數(shù)據(jù)對(duì)象的上傳及修改,則此時(shí)會(huì)發(fā)生更新沖突。
當(dāng)移動(dòng)端所作的更新及修改不能提交到數(shù)據(jù)庫中,這時(shí)就需要對(duì)同一數(shù)據(jù)對(duì)象的生成時(shí)間已不同的ID進(jìn)行唯一標(biāo)識(shí),根據(jù)唯一ID系統(tǒng)針對(duì)同一數(shù)據(jù)對(duì)象的多條數(shù)據(jù)不作為數(shù)據(jù)沖突來處理。
(2)刪除沖突:如果一個(gè)移動(dòng)端刪除了某個(gè)信息并進(jìn)行了同步處理,即此刪除操作已經(jīng)反映到主數(shù)據(jù)庫中,而另一個(gè)移動(dòng)端同時(shí)做了相同的刪除操作或者對(duì)這個(gè)已經(jīng)刪除了的信息做了更新操作,進(jìn)行同步處理時(shí),將產(chǎn)生刪除沖突。
此時(shí),當(dāng)移動(dòng)端對(duì)某一信息進(jìn)行了刪除操作但未更新,系統(tǒng)數(shù)據(jù)庫不做任何操作;若對(duì)信息刪除并更新,系統(tǒng)數(shù)據(jù)庫直接進(jìn)行刪除操作,后續(xù)移動(dòng)端將無法進(jìn)行此項(xiàng)操作。
(3)結(jié)構(gòu)沖突:“三方”數(shù)據(jù)庫數(shù)據(jù)進(jìn)行同步時(shí),各服務(wù)器端均維護(hù)著一張映射表,確定數(shù)據(jù)庫中和數(shù)據(jù)項(xiàng)的對(duì)應(yīng)關(guān)系,通常這張表會(huì)在一次同步結(jié)束后進(jìn)行更新。移動(dòng)端采集數(shù)據(jù)后進(jìn)行更新,若與現(xiàn)場端和省中心端數(shù)據(jù)庫數(shù)據(jù)格式不同,會(huì)產(chǎn)生數(shù)據(jù)同步失敗。因此,現(xiàn)場災(zāi)情調(diào)查評(píng)估系統(tǒng)對(duì)全局40余種數(shù)據(jù)格式進(jìn)行了定義,本文以房屋調(diào)查、標(biāo)注信息、道路調(diào)查等舉例進(jìn)行說明(表1-3)。

表1 房屋破壞調(diào)查表
“三方”數(shù)據(jù)同步策略的核心思想是以省中心支撐平臺(tái)(以下簡稱“省中心”)作為Web服務(wù)應(yīng)用,在現(xiàn)場中心處理系統(tǒng)與移動(dòng)端子系統(tǒng)(以下簡稱“現(xiàn)場中心”、“移動(dòng)端”)網(wǎng)絡(luò)暢通的情況下,通過判定同步?jīng)_突類型,建立同步?jīng)_突規(guī)則,根據(jù)同步?jīng)_突處理流程,實(shí)現(xiàn)與省中心在規(guī)定更新時(shí)間內(nèi)進(jìn)行完整的數(shù)據(jù)交換。
根據(jù)前文所提三種同步?jīng)_突,現(xiàn)場災(zāi)情調(diào)查系統(tǒng)研發(fā)過程中制定了沖突規(guī)則,并為每種沖突定義了相應(yīng)的代碼,在沖突處理時(shí)先進(jìn)行沖突檢測(cè),然后根據(jù)返回的沖突代碼對(duì)不同沖突進(jìn)行消解。在數(shù)據(jù)的修改日志中每個(gè)記錄都設(shè)置一個(gè)修改狀態(tài):N新增記錄,U記錄被更新,D記錄被刪除,S記錄已被同步。當(dāng)同步開始時(shí),系統(tǒng)中所有修改狀態(tài)不為S的記錄均為修改記錄;同步結(jié)束后,系統(tǒng)將所有同步過的記錄的修改狀態(tài)改為S,并將狀態(tài)標(biāo)志為D的記錄從數(shù)據(jù)庫中刪除,針對(duì)不同的修改狀態(tài)其沖突規(guī)則也不同。
當(dāng)移動(dòng)端數(shù)據(jù)庫、現(xiàn)場中心數(shù)據(jù)庫和省中心數(shù)據(jù)庫相互的數(shù)據(jù)操作發(fā)生沖突時(shí),可以根據(jù)以下兩種規(guī)則進(jìn)行處理:(1)主數(shù)據(jù)庫優(yōu)先規(guī)則:當(dāng)沖突發(fā)生時(shí),根據(jù)省中心數(shù)據(jù)庫>現(xiàn)場中心數(shù)據(jù)庫>移動(dòng)端數(shù)據(jù)庫的優(yōu)先原則進(jìn)行同一數(shù)據(jù)的更新同步。(2)無動(dòng)作:當(dāng)沖突發(fā)生時(shí),不采取任何動(dòng)作,只是簡單地記錄沖突的發(fā)生、引起沖突的操作等信息,操作人員可以通過系統(tǒng)提供的程序日志查詢上一次同步后的沖突情況,然后進(jìn)行人工干預(yù)處理。
移動(dòng)端數(shù)據(jù)庫、現(xiàn)場中心數(shù)據(jù)庫和省中心數(shù)據(jù)庫相互之間的數(shù)據(jù)同步?jīng)_突處理規(guī)則如表4、表5所示。

表4 沖突檢測(cè)及處理規(guī)則(移動(dòng)端-現(xiàn)場中心端)

表5 沖突檢測(cè)及處理規(guī)則(移動(dòng)端-省中心)
“三方”數(shù)據(jù)同步過程中遇到數(shù)據(jù)同步?jīng)_突,在處理沖突之前加入沖突檢測(cè)過程。當(dāng)完成一次同步后,“三方”在處理沖突時(shí)的交互過程如圖2所示。

圖2 沖突處理流程Fig.2 The flow of conflict resolution
本文通過對(duì)同步?jīng)_突進(jìn)行分類,定義沖突規(guī)則并解決同步?jīng)_突,建立完整的“三方”數(shù)據(jù)同步策略,并應(yīng)用于現(xiàn)場災(zāi)情調(diào)查系統(tǒng)。災(zāi)情調(diào)查人員通過移動(dòng)端獲得第一時(shí)間災(zāi)情數(shù)據(jù)并上傳至數(shù)據(jù)庫;現(xiàn)場端對(duì)外部接入的數(shù)據(jù)、移動(dòng)端調(diào)查數(shù)據(jù)、省中心端下載的數(shù)據(jù)進(jìn)行半自動(dòng)化的交互分析處理后錄入至數(shù)據(jù)庫中,為其它評(píng)估系統(tǒng)(如地震現(xiàn)場損失評(píng)估系統(tǒng)等)提供數(shù)據(jù)支持,也可為現(xiàn)場調(diào)查人員推送實(shí)時(shí)震情信息和發(fā)送指令信息。在此同步過程中判斷沖突類型、解決同步?jīng)_突,與現(xiàn)場中心、省中心實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)交換。大量的現(xiàn)場調(diào)查數(shù)據(jù)完整、實(shí)時(shí)同步后,便可篩選整合其中烈度初評(píng)定結(jié)果,數(shù)量越多結(jié)果越精準(zhǔn),并結(jié)合現(xiàn)場多媒體記錄加以修正。目前現(xiàn)場災(zāi)情調(diào)查評(píng)估系統(tǒng)在“三方”數(shù)據(jù)同步過程中,仍存在由于未考慮到的數(shù)據(jù)同步情景,而存在的同步?jīng)_突問題。因此,在后續(xù)工作中將著重研究網(wǎng)絡(luò)在線和離線情況下同步?jīng)_突的分類和解決辦法。