何雅楓,李璇瓊,周志華
(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)程度的評定和災(zāi)后恢復(fù)重建的依據(jù),地震系統(tǒng)在應(yīng)急期的核心工作就是科學(xué)快速的給出烈度圖[1],烈度圖的精準繪制需進行大量的單體建筑、群體建筑、生命線工程、次生災(zāi)害、災(zāi)情等調(diào)查數(shù)據(jù)的采集。近年來現(xiàn)場調(diào)查工作實例也表現(xiàn)出緊迫性、時限性和協(xié)同性等特點,這就要求在有限的時間內(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)查組不僅無法實現(xiàn)與指揮部規(guī)范的實施傳輸,還容易出現(xiàn)漏記錯記、文件丟失等情況。同時在整理過程中有文件拷貝出錯、格式不統(tǒng)一、操作不便捷、耗時長等問題?;谡{(diào)查現(xiàn)狀,為解決上述問題,具有完整同步策略的自動化、智能化地震現(xiàn)場災(zāi)情快速調(diào)查評估系統(tǒng)建設(shè)(以下簡稱“現(xiàn)場災(zāi)情調(diào)查系統(tǒng)”)尤為重要,不僅可以加強前后方指揮部與現(xiàn)場調(diào)查組之間的協(xié)同能力,還能提高應(yīng)急期地震現(xiàn)場烈度評定的工作效率。
通過“四川省地震局蘆山地震災(zāi)后恢復(fù)重建-地震應(yīng)急指揮場所與現(xiàn)場技術(shù)系統(tǒng)升級改造項目(0722-1561FE705WWH)”中現(xiàn)場災(zāi)情調(diào)查系統(tǒng)的建設(shè),包含智能化移動終端APP(以下簡稱“移動端”)、現(xiàn)場中心處理系統(tǒng)(以下簡稱“現(xiàn)場中心”)、現(xiàn)場信息管理Web服務(wù)(以下簡稱“Web端”)。本文針對現(xiàn)場中心、移動端、Web端“三方”在數(shù)據(jù)緩存和更新、雙向數(shù)據(jù)交換過程中出現(xiàn)的數(shù)據(jù)沖突而制定解決規(guī)則,設(shè)計出“三方”災(zāi)情信息實時、完整同步的同步策略,可確保整個現(xiàn)場災(zāi)情調(diào)查系統(tǒng)的數(shù)據(jù)一致性和協(xié)同性,加強前后方指揮部與現(xiàn)場之間的調(diào)度與聯(lián)動能力,為科學(xué)快速的給出烈度評定結(jié)果提供高效的技術(shù)手段。
移動數(shù)據(jù)同步技術(shù)的應(yīng)運而生,是確保各系統(tǒng)間各類數(shù)據(jù)一致性的關(guān)鍵,從這個角度來說,數(shù)據(jù)同步策略的技術(shù)手段簡單分為兩種:狹義的同步和復(fù)制。同步是將當(dāng)前狀態(tài)的最終結(jié)果數(shù)據(jù)回傳至相關(guān)節(jié)點,并更新對應(yīng)的數(shù)據(jù)以維護數(shù)據(jù)的一致性,忽略事物的執(zhí)行過程細節(jié)。復(fù)制是將更新事物集傳遞到相關(guān)節(jié)點上運行,復(fù)制環(huán)境中的任何一個節(jié)點的復(fù)制數(shù)據(jù)發(fā)生了更新操作,該變化會立刻反應(yīng)到其它所有的復(fù)制節(jié)點,保證復(fù)制數(shù)據(jù)在任何時間、任何復(fù)制節(jié)點都保持一致。為保證系統(tǒng)間數(shù)據(jù)同步始終一致,并避免同步?jīng)_突,建立的數(shù)據(jù)同步策略要結(jié)合同步和復(fù)制的優(yōu)點。經(jīng)文獻資料總結(jié)得出,數(shù)據(jù)同步策略的技術(shù)手段簡單分為單向同步、雙向同步、服務(wù)器推送同步[2-3]。
(1)單向同步:單向同步即由單方面發(fā)起同步請求的數(shù)據(jù)同步策略類型,分別是系統(tǒng)使用端發(fā)起的單向同步和服務(wù)器發(fā)起的單向同步。此方法在同步過程中客戶端會向同步服務(wù)器發(fā)送所有的本地修改數(shù)據(jù),通常情況下會強制對服務(wù)器數(shù)據(jù)進行覆蓋操作。
(2)雙向同步:是指服務(wù)器端和系統(tǒng)使用端之間的數(shù)據(jù)流是雙向流動的。首次同步過程中,系統(tǒng)使用端通常從服務(wù)器端下載架構(gòu)和一個初始數(shù)據(jù)集。執(zhí)行后續(xù)同步時,系統(tǒng)使用端將變更上載至服務(wù)器端,然后從服務(wù)器端下載變更。此方式最大的特點是服務(wù)器端和系統(tǒng)使用端都有權(quán)更新同一數(shù)據(jù)。
(3)服務(wù)器推送同步:是由同步服務(wù)器發(fā)起的數(shù)據(jù)同步過程,允許系統(tǒng)使用端自行定制同步計劃,使得同步服務(wù)器能夠在特定時間通知各使用端設(shè)備執(zhí)行數(shù)據(jù)同步以保證數(shù)據(jù)的實效性,并允許多個同步使用端根據(jù)指定的同步策略執(zhí)行并發(fā)的數(shù)據(jù)同步。
目前常見的數(shù)據(jù)同步協(xié)議有Palm HotSync策略、Intellisync、SyncML和CPISync。其中SyncML是現(xiàn)有的協(xié)議中使用最廣,通用性最好的數(shù)據(jù)同步協(xié)議,已被認定為行業(yè)通用標準。首先,SyncML基于XML定義,繼承了XML語言開放、可擴展的特點,使得整個SyncML策略具有高度的靈活性和擴展性,從而基于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ù)器端進行設(shè)備信息的交互,以確定客戶端設(shè)備所支持的數(shù)據(jù)類型以及其他信息,這一過程保障了對各種終端設(shè)備的最大支持;最后,SyncML策略簡單靈活且易于實現(xiàn)[4]。
綜上所述,采用雙向同步的數(shù)據(jù)同步方式以及SyncML數(shù)據(jù)同步策略,適用于現(xiàn)場災(zāi)情調(diào)查評估系統(tǒng)的數(shù)據(jù)同步問題的解決,需要在此基礎(chǔ)上建立具體的、完善的現(xiàn)場災(zāi)情調(diào)查評估系統(tǒng)“三方”數(shù)據(jù)同步策略。
同步策略的研究需基于完善的“三方”同步方案。同步方案的建立分為在線和離線兩種情況。在線情況下,災(zāi)情調(diào)查人員獲得第一災(zāi)情數(shù)據(jù)并上傳,與指揮部及時溝通,現(xiàn)場指揮部對外部接入的數(shù)據(jù)和智能移動終端調(diào)查數(shù)據(jù)進行半自動化的交互分析處理后錄入到數(shù)據(jù)庫中,可以為其它評估系統(tǒng)(如地震現(xiàn)場損失評估系統(tǒng)等)提供數(shù)據(jù)支持,也可為現(xiàn)場調(diào)查人員推送實時震情信息和發(fā)送指令信息;離線狀態(tài)下,調(diào)查人員通過第三方數(shù)據(jù)推送接口,以短信等形式獲取任務(wù)、指令、推送消息等信息,并基于離線地圖獲取除實時更新數(shù)據(jù)以外的數(shù)據(jù),可正常開展災(zāi)情數(shù)據(jù)調(diào)查工作,調(diào)查結(jié)果保存到本地數(shù)據(jù)庫,待網(wǎng)絡(luò)暢通時同步?!叭健蓖椒桨溉鐖D1所示。
圖1 “三方”同步方案Fig.1 The synchronisation program of three sides
表2 道路調(diào)查表
表3 標注信息表
現(xiàn)場災(zāi)情調(diào)查系統(tǒng)無論在有網(wǎng)絡(luò)還是離線狀態(tài)下,會產(chǎn)生數(shù)據(jù)同步?jīng)_突,在此基礎(chǔ)上如何有序、高效地進行現(xiàn)場調(diào)查工作,需在變化捕獲、分發(fā)、沖突檢測與解決三個階段中建立數(shù)據(jù)同步策略,避免或消除數(shù)據(jù)同步?jīng)_突。數(shù)據(jù)沖突主要有以下三種類型:
(1)更新沖突:同步時,如果其它移動端子系統(tǒng)比啟動當(dāng)前同步過程的移動端子系統(tǒng)更早提交了對同一數(shù)據(jù)對象的上傳及修改,則此時會發(fā)生更新沖突。
當(dāng)移動端所作的更新及修改不能提交到數(shù)據(jù)庫中,這時就需要對同一數(shù)據(jù)對象的生成時間已不同的ID進行唯一標識,根據(jù)唯一ID系統(tǒng)針對同一數(shù)據(jù)對象的多條數(shù)據(jù)不作為數(shù)據(jù)沖突來處理。
(2)刪除沖突:如果一個移動端刪除了某個信息并進行了同步處理,即此刪除操作已經(jīng)反映到主數(shù)據(jù)庫中,而另一個移動端同時做了相同的刪除操作或者對這個已經(jīng)刪除了的信息做了更新操作,進行同步處理時,將產(chǎn)生刪除沖突。
此時,當(dāng)移動端對某一信息進行了刪除操作但未更新,系統(tǒng)數(shù)據(jù)庫不做任何操作;若對信息刪除并更新,系統(tǒng)數(shù)據(jù)庫直接進行刪除操作,后續(xù)移動端將無法進行此項操作。
(3)結(jié)構(gòu)沖突:“三方”數(shù)據(jù)庫數(shù)據(jù)進行同步時,各服務(wù)器端均維護著一張映射表,確定數(shù)據(jù)庫中和數(shù)據(jù)項的對應(yīng)關(guān)系,通常這張表會在一次同步結(jié)束后進行更新。移動端采集數(shù)據(jù)后進行更新,若與現(xiàn)場端和省中心端數(shù)據(jù)庫數(shù)據(jù)格式不同,會產(chǎn)生數(shù)據(jù)同步失敗。因此,現(xiàn)場災(zāi)情調(diào)查評估系統(tǒng)對全局40余種數(shù)據(jù)格式進行了定義,本文以房屋調(diào)查、標注信息、道路調(diào)查等舉例進行說明(表1-3)。
表1 房屋破壞調(diào)查表
“三方”數(shù)據(jù)同步策略的核心思想是以省中心支撐平臺(以下簡稱“省中心”)作為Web服務(wù)應(yīng)用,在現(xiàn)場中心處理系統(tǒng)與移動端子系統(tǒng)(以下簡稱“現(xiàn)場中心”、“移動端”)網(wǎng)絡(luò)暢通的情況下,通過判定同步?jīng)_突類型,建立同步?jīng)_突規(guī)則,根據(jù)同步?jīng)_突處理流程,實現(xiàn)與省中心在規(guī)定更新時間內(nèi)進行完整的數(shù)據(jù)交換。
根據(jù)前文所提三種同步?jīng)_突,現(xiàn)場災(zāi)情調(diào)查系統(tǒng)研發(fā)過程中制定了沖突規(guī)則,并為每種沖突定義了相應(yīng)的代碼,在沖突處理時先進行沖突檢測,然后根據(jù)返回的沖突代碼對不同沖突進行消解。在數(shù)據(jù)的修改日志中每個記錄都設(shè)置一個修改狀態(tài):N新增記錄,U記錄被更新,D記錄被刪除,S記錄已被同步。當(dāng)同步開始時,系統(tǒng)中所有修改狀態(tài)不為S的記錄均為修改記錄;同步結(jié)束后,系統(tǒng)將所有同步過的記錄的修改狀態(tài)改為S,并將狀態(tài)標志為D的記錄從數(shù)據(jù)庫中刪除,針對不同的修改狀態(tài)其沖突規(guī)則也不同。
當(dāng)移動端數(shù)據(jù)庫、現(xiàn)場中心數(shù)據(jù)庫和省中心數(shù)據(jù)庫相互的數(shù)據(jù)操作發(fā)生沖突時,可以根據(jù)以下兩種規(guī)則進行處理:(1)主數(shù)據(jù)庫優(yōu)先規(guī)則:當(dāng)沖突發(fā)生時,根據(jù)省中心數(shù)據(jù)庫>現(xiàn)場中心數(shù)據(jù)庫>移動端數(shù)據(jù)庫的優(yōu)先原則進行同一數(shù)據(jù)的更新同步。(2)無動作:當(dāng)沖突發(fā)生時,不采取任何動作,只是簡單地記錄沖突的發(fā)生、引起沖突的操作等信息,操作人員可以通過系統(tǒng)提供的程序日志查詢上一次同步后的沖突情況,然后進行人工干預(yù)處理。
移動端數(shù)據(jù)庫、現(xiàn)場中心數(shù)據(jù)庫和省中心數(shù)據(jù)庫相互之間的數(shù)據(jù)同步?jīng)_突處理規(guī)則如表4、表5所示。
表4 沖突檢測及處理規(guī)則(移動端-現(xiàn)場中心端)
表5 沖突檢測及處理規(guī)則(移動端-省中心)
“三方”數(shù)據(jù)同步過程中遇到數(shù)據(jù)同步?jīng)_突,在處理沖突之前加入沖突檢測過程。當(dāng)完成一次同步后,“三方”在處理沖突時的交互過程如圖2所示。
圖2 沖突處理流程Fig.2 The flow of conflict resolution
本文通過對同步?jīng)_突進行分類,定義沖突規(guī)則并解決同步?jīng)_突,建立完整的“三方”數(shù)據(jù)同步策略,并應(yīng)用于現(xiàn)場災(zāi)情調(diào)查系統(tǒng)。災(zāi)情調(diào)查人員通過移動端獲得第一時間災(zāi)情數(shù)據(jù)并上傳至數(shù)據(jù)庫;現(xiàn)場端對外部接入的數(shù)據(jù)、移動端調(diào)查數(shù)據(jù)、省中心端下載的數(shù)據(jù)進行半自動化的交互分析處理后錄入至數(shù)據(jù)庫中,為其它評估系統(tǒng)(如地震現(xiàn)場損失評估系統(tǒng)等)提供數(shù)據(jù)支持,也可為現(xiàn)場調(diào)查人員推送實時震情信息和發(fā)送指令信息。在此同步過程中判斷沖突類型、解決同步?jīng)_突,與現(xiàn)場中心、省中心實現(xiàn)實時數(shù)據(jù)交換。大量的現(xiàn)場調(diào)查數(shù)據(jù)完整、實時同步后,便可篩選整合其中烈度初評定結(jié)果,數(shù)量越多結(jié)果越精準,并結(jié)合現(xiàn)場多媒體記錄加以修正。目前現(xiàn)場災(zāi)情調(diào)查評估系統(tǒng)在“三方”數(shù)據(jù)同步過程中,仍存在由于未考慮到的數(shù)據(jù)同步情景,而存在的同步?jīng)_突問題。因此,在后續(xù)工作中將著重研究網(wǎng)絡(luò)在線和離線情況下同步?jīng)_突的分類和解決辦法。