陳 順,曾微波,毛玉環(huán),劉文鎮(zhèn)
(滁州學院 地理信息與旅游學院,安徽 滁州 239000)
近年來,隨著現(xiàn)代測繪技術的快速發(fā)展和地理信息需求的迅速增長,傳統(tǒng)測繪技術由于人力物力消耗量太大已經(jīng)不能滿足當前的測繪需求,如何開展高效率新型測繪研究已成為有關人員關注的重點問題[1]。GIS協(xié)同的出現(xiàn)為以上測繪問題帶來了契機。目前,已有很多學者在GIS協(xié)同的特征、概率、模型等方面進行了研究,并開發(fā)出不同類型的GIS協(xié)同系統(tǒng),對推動GIS協(xié)同的發(fā)展起到很大作用。趙建[2]設計基于三維GIS平臺的協(xié)同標繪系統(tǒng),利用Skyline平臺和開發(fā)工具協(xié)同三維GIS實現(xiàn)對邊海防部隊及省軍區(qū)等日常協(xié)同業(yè)務的標繪空白填補。蔡維緯等[3]研究一種高效率實時協(xié)同編輯中的意圖保持OT算法,合并不必要的計算及無效操作,使得在實時協(xié)同編輯過程中提高遠程操作的響應時間,保持結(jié)果更接近用戶的實際意愿。在測繪產(chǎn)品生產(chǎn)研究方面,王茂勝等[4]通過在服務端集成各種服務器,同時配合一致性與并發(fā)性控制、Java Applet等技術來實現(xiàn)計算機支持協(xié)同工作(CSCW),解決了傳統(tǒng)測繪生產(chǎn)過程中數(shù)據(jù)資源不共享、數(shù)據(jù)交流不充分等問題。從目前研究階段的效果來看,大多數(shù)測繪產(chǎn)品研究已經(jīng)可以實現(xiàn)內(nèi)外業(yè)過程一體化,但實時在線的協(xié)作仍未較好地完成,且隨著測繪地理信息行業(yè)的發(fā)展,現(xiàn)代測繪需要從集中式向分布式發(fā)展,大規(guī)模的在線協(xié)同作業(yè)模式要求從人機交互模式轉(zhuǎn)化為人人交互模式[5]。由此可見,基于GIS協(xié)同的測繪協(xié)作生產(chǎn)將成為今后新型測繪模式的研究重點,其成果對于提高測繪效率及精度、減少人力物力損耗具有很高的實用價值。
文中基于計算機支持協(xié)同工作技術,通過劃分合理的GIS操作粒度,結(jié)合XML可拓展性、開放性的特點,設計實現(xiàn)了GIS操作語義信息的結(jié)構(gòu)化封裝體。在此基礎上開發(fā)出優(yōu)先權(quán)分配與并發(fā)控制算法,解決協(xié)同操作過程中可能產(chǎn)生的沖突問題,有效地維護了協(xié)作者操作意愿與數(shù)據(jù)的一致性,實現(xiàn)大規(guī)模內(nèi)外業(yè)協(xié)同測繪作業(yè),有效地提升測繪作業(yè)效率與成果質(zhì)量。
語義[6]可以簡單地看作是現(xiàn)實世界中事物所代表概念的意義與數(shù)據(jù)相對應,以及這些概念之間的關系,如對特定領域中數(shù)據(jù)的解釋和邏輯表示。而空間地理數(shù)據(jù)的語義是指空間對象的屬性信息、空間信息以及時間信息等。測繪協(xié)同作業(yè)中,為了解決因表達上的差異而造成語義不匹配的數(shù)據(jù)之間的相互作用問題,同時維護作業(yè)者操作意愿的一致性,操作語義的提取以及傳輸就成為協(xié)同作業(yè)的關鍵。XML[7]是一組用于規(guī)范計算機之間文檔傳輸和交換的可拓展標記語言。由于XML具有數(shù)據(jù)的自描述性、內(nèi)容的獨立性、顯示的多樣性、可拓展性以及開放性等特點,非常適合于進行GIS操作的封裝和語義信息的傳輸,并維護參與協(xié)作的作業(yè)者操作意愿的一致性。
對于不同用戶對同樣的GIS操作類型的不同理解而產(chǎn)生的語義沖突問題,可以通過分析不同的GIS操作類型并提取出其語義信息,劃分合適的操作粒度,再利用XML技術對該語義信息進行封裝處理,以減少語義沖突的產(chǎn)生。在進行封裝操作之前,首先要確定GIS操作粒度的劃分標準,過高或者過低的粒度劃分都不利于進行協(xié)同工作,進而影響協(xié)同的效率。
文中以GIS原子操作[8]為基礎,通過對測繪生產(chǎn)內(nèi)外業(yè)協(xié)同作業(yè)過程中可能的GIS操作[9]進行分析,將GIS操作粒度劃分標準列于表1所示。
表1 GIS操作粒度劃分
地圖瀏覽、查詢及空間分析這3種操作類型都屬于非編輯的GIS操作,無需對GIS操作語義進行劃分,僅對需要編輯的GIS操作進行語義劃分。要對某一要素進行具體的編輯,首先要明確操作對象,然后再對某一具體對象進行相應的編輯操作??臻g要素的操作對象主要分為3種,分別是點要素、線要素及面要素。針對這3種操作對象,設計了新增、編輯、刪除3種操作類型,并就不同的要素操作[10]設計對應的編輯流程。
1.1.1 要素新增
要素新增主要是通過追蹤點、多段線以及多邊形的方式提取幾何形狀,同時對其賦予屬性,具體流程如圖1所示。
圖1 新增要素操作流程
1.1.2 要素編輯
要素編輯可分為要素幾何編輯以及要素屬性編輯兩種。開始編輯之前首先要選擇所要編輯的圖層,在確定編輯要素的同時提取出對應的要素圖層,設置編輯任務,然后進入編輯模式,開始編輯操作。編輯操作具體流程如圖2所示。
圖2 編輯操作流程
1.1.3 要素刪除
刪除要素就是將要素從要素集中選出,然后刪除即可,具體流程如圖3所示。
圖3 刪除操作流程
對于一個工程項目,可以劃分出不同的協(xié)作區(qū)域,每個協(xié)作區(qū)域由若干個不同的圖層構(gòu)成,圖層則是由不同的幾何體構(gòu)成,而幾何體則可以由點串表示出來,設計GIS操作語義封裝的XML消息體如下:
Xml version="1.0" encoding="UTF-8">
Operation="">
當執(zhí)行GIS操作時,本地客戶端通過監(jiān)聽用戶的GIS操作,生成基于該GIS操作的消息體并通過數(shù)據(jù)包的形式將該命令消息傳遞到服務器中,服務器通過解析客戶端發(fā)來的命令消息,將其傳遞到并發(fā)控制模型中進行沖突的檢測與消解處理[11],直到確認操作無誤后,服務器才會將該GIS操作消息廣播到其他協(xié)作客戶端,協(xié)作客戶端對收到的GIS操作命令消息進行解譯,提取其中相應的GIS操作并反演到本地客戶端,從而實現(xiàn)實時GIS協(xié)作的目的,消息傳遞過程如圖4所示。
圖4 消息傳遞機制下系統(tǒng)構(gòu)成
在GIS協(xié)同工作過程中,不可避免地會出現(xiàn)多客戶端對同一對象的GIS操作處理,如何處理操作請求成為研究的難點。文中運用優(yōu)先權(quán)分配方式來決定不同操作請求的處理結(jié)果。
假設定義一個二元組
假設R=表示二元組
(1)
由于操作的類型、操作的最后期限、操作對象周期、網(wǎng)絡站點等因素都會直接影響到優(yōu)先權(quán)分配,因此,操作類型的優(yōu)先權(quán)表達式為
(2)
操作最后期限越短,則優(yōu)先權(quán)越大,操作最后期限可以表達為
(3)
操作對象周期越短,則優(yōu)先權(quán)越大,操作對象周期可以表達為
(4)
網(wǎng)絡站點優(yōu)先權(quán)受該站點人員的個人能力、操作經(jīng)驗以及網(wǎng)絡速度等因素的限制,其表達式為
(5)
由上述因素組成的影響優(yōu)先權(quán)的矩陣可表示為
(6)
操作(Op)的優(yōu)先權(quán)表達式為
(7)
由于在協(xié)同工作的過程中,同一個對象在不同的端口都會存在多個副本,如果每個副本都僅由一個進程訪問,則必須確保副本與不同操作結(jié)果之間的邏輯一致性。每當修改一個對象時,只對更改的部分進行復制,通過優(yōu)先權(quán)計算分配優(yōu)先級執(zhí)行策略,保證操作過程中數(shù)據(jù)的一致性[12]。根據(jù)操作對象和類型的不同,將在并發(fā)處理過程中可能出現(xiàn)的情況劃分為以下4種:
1)對于同一對象不同的操作類型。這種情況下,操作類型的優(yōu)先權(quán)限越高操作越先執(zhí)行。
L(Ty1(p),Ty2(p)):(O1,O2)
ReturnO1
Else
ReturnO2
2)對于同一對象相同的操作類型。這種情況下,以網(wǎng)絡站點的優(yōu)先權(quán)為準。
L(ISD1(p),ISD2(p)):(Op1,Op2)
IfISD1(p)=ISD1(p)/>ISD2(p)=ISD2(p)/
Return Op1
Else
Return Op2
3)對于不同對象相同的操作類型。此種情況,對象的優(yōu)先權(quán)決定操作順序。
L (O1(P), O2(P)): (Op1,Op2)
If O1(P)>O2(P)
Return Op1
Else
Return Op2
圖5 實時并發(fā)控制算法
操作沖突處理:假設Ui,Uj表示第i,j更新操作;Di,Dj表示第i,j刪除操作;Opi表示Opi所操作對象的集合;Opj表示Opj所操作對象的集合,Result表示操作結(jié)果,則操作沖突處理過程如圖6所示。
圖6 操作沖突處理
當完成初始化操作后,每獲得一個新的操作請求,需要根據(jù)不同對象和操作賦予不同的優(yōu)先權(quán),并優(yōu)先執(zhí)行優(yōu)先權(quán)高的操作。對于復雜情況的優(yōu)先權(quán)判斷而言,當一個修改(U)類型的操作與操作可執(zhí)行序列(WRQ)中具有更高優(yōu)先級的修改操作發(fā)生沖突時,撤銷該種沖突操作,同時將其從操作請求集中刪除。
根據(jù)上述技術與規(guī)劃,設計了多平臺協(xié)作的測繪生產(chǎn)系統(tǒng),實現(xiàn)了多客戶端協(xié)同制圖,并最終集成至服務端實時監(jiān)控,為測繪生產(chǎn)作業(yè)提高了質(zhì)量與效率。系統(tǒng)基于ArcGIS Engine平臺二次開發(fā),實現(xiàn)了地圖漫游、要素選擇、矢量要素更新、要素屬性編輯、提交作業(yè)等功能。
系統(tǒng)實現(xiàn)協(xié)同編輯如圖7所示,客戶端A和客戶端B對于協(xié)作區(qū)域進行相應的GIS操作后,能夠?qū)崟r地顯示在監(jiān)控端,并對相關GIS操作進行反演,有效地保證了協(xié)作者操作意愿的一致性,確保協(xié)同工作的準確進行。
圖7 系統(tǒng)功能實現(xiàn)
文中通過對GIS操作語義的具體分析,結(jié)合GIS原子操作的概念,為GIS操作粒度設定劃分標準,并對其中需要進行編輯的要素編輯操作的語義進行劃分,就其不同的要素操作設計了對應的編輯流程。以此為基礎,對GIS操作語義以XML的形式進行結(jié)構(gòu)化封裝,將不同GIS操作類型同步到協(xié)作客戶端,從而實現(xiàn)基于GIS協(xié)同的測繪生產(chǎn)協(xié)同作業(yè)。對于協(xié)同操作過程中可能產(chǎn)生的并發(fā)問題等,文中分析了對象和操作類型之間可能存在的4種關系,結(jié)合優(yōu)先權(quán)分配算法和并發(fā)控制算法,設計出并發(fā)控制模型對并發(fā)沖突操作進行處理,能夠有效地解決協(xié)作設計過程中的并發(fā)沖突操作問題,從而維護協(xié)作者操作意愿的一致性,保證協(xié)同工作的順利進行。
但是文中的研究對象主要是對單一對象的GIS操作,對于批量對象的操作處理尚且沒有較好的解決方式。在未來的工作中,需要重點研究海量數(shù)據(jù)的批量處理在協(xié)同工作過程中的傳輸解譯問題。