摘要:給出了在PostgreSQL基礎上的基于交通路網的移動對象數據庫系統的設計方案,系統地介紹了其體系架構、擴展的數據類型和操作以及代理中間層的功能設計。 該系統為進一步研究移動對象更新算法以及移動對象數據索引提供了基礎。
關鍵詞:移動對象數據庫;PostgreSQL;交通路網;位置更新
中圖分類號:TP311.13文獻標志碼:A
文章編號:1001-3695(2007)08-0278-03
0引言
作為移動計算技術的一個重要分支以及位置相關類應用的底層支撐技術之一,移動對象數據庫(MOD)技術正在得到越來越廣泛的重視與研究。MOD是指對移動對象的位置及其他相關信息進行表示與管理的數據庫[1~4]。在移動對象數據庫中通常管理著大量的移動對象,這些移動對象的位置是不斷變化的,如汽車、飛機、移動用戶等。越來越多的應用要求對移動對象進行管理,而定位技術和無線通信技術的發展使得跟蹤和記錄移動對象的位置成為可能。移動對象數據庫技術在許多領域中展現了廣闊的應用前景。在軍事領域,移動對象數據庫可以回答常規數據庫所無法回答的查詢,如“請告訴我離我最近的友/敵軍代號及方位”“查詢未來十分鐘之內將處于區域A的所有直升飛機”等;在民用領域,利用移動對象數據庫技術可以實現智能運輸系統、出租車/警員自動派遣系統、智能社會保障系統,以及高智能的物流配送系統;此外,移動對象數據庫技術還在電子商務領域中展現出了極為廣闊的應用前景。
目前市場上移動對象數據庫的產品和原型系統[5]還比較少,而且主要都是基于Euclidean空間的。文獻[6,7]指出采用Euclidean空間描述移動對象軌跡存在很多問題,并且提出了交通路網模型。在該模型中,存儲的是每一條路徑的位置信息,路徑的形狀是用折線(polyline)來表示的,并且路徑上的一個點用相對于路徑一端的百分比來表示。這樣對于移動對象經過的每個點不再是與一個X、Y坐標相聯系,而是與一條路徑以及路徑上的位置百分比相聯系。
本文針對上述問題,給出基于交通路網的移動對象數據庫系統的設計和實現方案。在該系統中,移動端和數據庫服務器中都存放交通路網數據,通過一定的算法,移動對象不定期地通過位置更新的方式向數據庫服務器報告其最新位置信息。數據庫服務器可以根據這些信息計算出移動對象過去、現在以及將來一段時間的位置,從而支持位置相關的查詢。為了實現這些功能,需要建立起基于交通路網的一系列數據類型,如mpoint、trajectory、junction等。
本文的工作建立在PostgreSQL[8]對象關系數據庫系統上。它是目前功能最強大、特性最豐富和最復雜的自由數據庫軟件系統之一。它支持事務、子查詢、多版本并發控制、視圖、數據完整性檢查及一些復雜的數據類型等特性;對SQL99標準的支持也很完備。最重要的是,它支持對數據類型和函數的擴展。
4代理端的功能設計
代理端位于整個體系結構的中間層,關系到系統性能的提高和一些訂制服務的實現。它的功能涉及到移動對象的注冊服務、特殊服務訂制、數據封裝以及自適應數據庫連接和保持。
1)注冊服務
移動端在第一次加入系統時,需要通過移動代理端進行注冊。代理端依據移動對象提供的注冊名(為了保持惟一性,一種好的方法是利用車牌號作為注冊名)自動向服務器端的對象表插入一條記錄,此時該對象的軌跡為空。另外,如果移動端上還沒有存儲交通路網信息,則代理端負責從服務器端獲得交通路網然后傳送給該移動對象,以后該移動對象就可以根據GPS返回的位置信息和交通路網來自動更新自己在服務器端的位置信息。
2)特殊服務訂制
移動對象可以通過代理端訂制一些特殊服務,如接收其他移動對象的位置信息,前提是這個請求得到被監測對象的許可。可以在代理端為每個移動對象建立一個列表,一旦某個其他對象要求監測它的位置并得到許可后,就在該列表中插入監測對象的ID。這樣,當一個移動對象進行位置更新時,代理端除了向服務器發送位置更新命令外,還要向該列表中的所有移動對象利用無線網絡來發送這個新的位置信息。移動對象還可以訂制一些與路況相關的定時服務信息,如“請每分鐘通知一次我當前行使道路上的移動對象數目”這類服務。在代理端實現這些功能具有更好的可擴展性和更強的靈活性,而且減輕了服務器端的負擔。
3)數據封裝和數據庫連接
從移動端發給代理端的可能僅僅是一個位置信息,需要代理端對這些原始數據進行封裝后再插入到數據庫中去。例如代理端發送的信息為(20,1 260,0.21),表示mid為20的移動對象在rid為1 260的路徑上有一個位置更新,位置為相對該路徑源頭0.21處,則代理端需將該位置信息封裝成SQL語句update t_mo set track=append_track(track,1 260, 0.21) where mid=20并提交給數據庫執行。其中:append_track是針對trajectory類型數據的一個擴展函數,用來向軌跡數據的末端添加一條記錄;另外,如果系統考慮安全因素,則移動端發送的可能會是加密的位置信息。如果是這樣的話,代理端還需要事先進行一個解密操作。
使用代理的另一個優點在于,如果讓移動端與客戶端直接和數據庫進行連接,那么連接將會異常頻繁,系統的整個效率會受到極大影響。而代理端可以自適應地保持若干個與數據庫的連接,這樣就使得該連接效率問題得到較好的解決。
5結束語
由于移動對象數據庫廣闊的應用前景,越來越多的學者開始加入這一行列。在他們的努力下,很多模型和方法被提出。本文在PostgreSQL開源數據庫的基礎上,給出了基于交通路網的移動對象數據庫系統的實現方案,介紹了該系統的整體架構,并給出對服務器端所作的類型和操作擴展,對代理端的功能進行了闡述。移動對象數據庫是對傳統數據庫的一個擴充,也是對傳統數據庫的一個挑戰,還有很多關鍵問題都需要解決[4],如移動對象的建模、移動對象軌跡的索引、移動對象的查詢、移動對象的位置更新算法以及不確定性問題等。目前來說在這些方面沒有一個公認的比較好的模型和算法,還有大量的工作要做。
參考文獻:
[1]DUNHAM M H,HELAL A. Mobile computing and databases:anything new[J].ACM SIGMOD Record,1995,24(4):5-9.
[2]SISTLA A P,WOLFSON O, CHAMBERLIAN S,et al.Modeling and querying moving objects[C]//Proc of the 13th International Conference on Data Engineering Washington DC:IEEE Computer Society,1997:422-434.
[3]WOLFSON O,CHAMBERLAIN S,DAO S,et al. Location management moving objects databases[C]//Proc of the 2nd International Workshop on Satellitebased Information Services.1997:714.
[4]WOLFSON O,XU B,CHAMBERLAIN S,et al.Moving object databases:issues and solutions[C]//Proc of the 10th International Conference on Scientific and Statistical Database Management.Capri,Italy:[s.n.],1998:111122.
[5]CHEN Ying,RAO Fangyan,XU Liulan,et al.Managing location stream using moving object database[C]//Proc of the 14th International Workshop on Database and Expert Systems Applications.Washington DC:IEEE Computer Society,2003:916-920.
[6]DING Zhiming,Guting R H.Managing moving objects on dynamic transportation networks[C]//Proc of the 16th International Conference on Scientific and Statistical Database Management.Washington DC:IEEE Computer Society,2004:287-296.
[7]DING Zhiming,GUTING R H.Modeling temporally variable transportation networks[C]//Proc of the 9th International Conference on Database Systems for Advanced Applications.Berlin:Springer,2004:154168.
[8]PostgreSQL Development Group.PostgreSQL v-8.0.7 documentation[EB/OL].[2006-05-06].http://www.postgresql.org/docs/8.0/interactive/index.html.
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”