摘要:給出了在PostgreSQL基礎(chǔ)上的基于交通路網(wǎng)的移動(dòng)對(duì)象數(shù)據(jù)庫(kù)系統(tǒng)的設(shè)計(jì)方案,系統(tǒng)地介紹了其體系架構(gòu)、擴(kuò)展的數(shù)據(jù)類(lèi)型和操作以及代理中間層的功能設(shè)計(jì)。 該系統(tǒng)為進(jìn)一步研究移動(dòng)對(duì)象更新算法以及移動(dòng)對(duì)象數(shù)據(jù)索引提供了基礎(chǔ)。
關(guān)鍵詞:移動(dòng)對(duì)象數(shù)據(jù)庫(kù);PostgreSQL;交通路網(wǎng);位置更新
中圖分類(lèi)號(hào):TP311.13文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2007)08-0278-03
0引言
作為移動(dòng)計(jì)算技術(shù)的一個(gè)重要分支以及位置相關(guān)類(lèi)應(yīng)用的底層支撐技術(shù)之一,移動(dòng)對(duì)象數(shù)據(jù)庫(kù)(MOD)技術(shù)正在得到越來(lái)越廣泛的重視與研究。MOD是指對(duì)移動(dòng)對(duì)象的位置及其他相關(guān)信息進(jìn)行表示與管理的數(shù)據(jù)庫(kù)[1~4]。在移動(dòng)對(duì)象數(shù)據(jù)庫(kù)中通常管理著大量的移動(dòng)對(duì)象,這些移動(dòng)對(duì)象的位置是不斷變化的,如汽車(chē)、飛機(jī)、移動(dòng)用戶(hù)等。越來(lái)越多的應(yīng)用要求對(duì)移動(dòng)對(duì)象進(jìn)行管理,而定位技術(shù)和無(wú)線通信技術(shù)的發(fā)展使得跟蹤和記錄移動(dòng)對(duì)象的位置成為可能。移動(dòng)對(duì)象數(shù)據(jù)庫(kù)技術(shù)在許多領(lǐng)域中展現(xiàn)了廣闊的應(yīng)用前景。在軍事領(lǐng)域,移動(dòng)對(duì)象數(shù)據(jù)庫(kù)可以回答常規(guī)數(shù)據(jù)庫(kù)所無(wú)法回答的查詢(xún),如“請(qǐng)告訴我離我最近的友/敵軍代號(hào)及方位”“查詢(xún)未來(lái)十分鐘之內(nèi)將處于區(qū)域A的所有直升飛機(jī)”等;在民用領(lǐng)域,利用移動(dòng)對(duì)象數(shù)據(jù)庫(kù)技術(shù)可以實(shí)現(xiàn)智能運(yùn)輸系統(tǒng)、出租車(chē)/警員自動(dòng)派遣系統(tǒng)、智能社會(huì)保障系統(tǒng),以及高智能的物流配送系統(tǒng);此外,移動(dòng)對(duì)象數(shù)據(jù)庫(kù)技術(shù)還在電子商務(wù)領(lǐng)域中展現(xiàn)出了極為廣闊的應(yīng)用前景。
目前市場(chǎng)上移動(dòng)對(duì)象數(shù)據(jù)庫(kù)的產(chǎn)品和原型系統(tǒng)[5]還比較少,而且主要都是基于Euclidean空間的。文獻(xiàn)[6,7]指出采用Euclidean空間描述移動(dòng)對(duì)象軌跡存在很多問(wèn)題,并且提出了交通路網(wǎng)模型。在該模型中,存儲(chǔ)的是每一條路徑的位置信息,路徑的形狀是用折線(polyline)來(lái)表示的,并且路徑上的一個(gè)點(diǎn)用相對(duì)于路徑一端的百分比來(lái)表示。這樣對(duì)于移動(dòng)對(duì)象經(jīng)過(guò)的每個(gè)點(diǎn)不再是與一個(gè)X、Y坐標(biāo)相聯(lián)系,而是與一條路徑以及路徑上的位置百分比相聯(lián)系。
本文針對(duì)上述問(wèn)題,給出基于交通路網(wǎng)的移動(dòng)對(duì)象數(shù)據(jù)庫(kù)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)方案。在該系統(tǒng)中,移動(dòng)端和數(shù)據(jù)庫(kù)服務(wù)器中都存放交通路網(wǎng)數(shù)據(jù),通過(guò)一定的算法,移動(dòng)對(duì)象不定期地通過(guò)位置更新的方式向數(shù)據(jù)庫(kù)服務(wù)器報(bào)告其最新位置信息。數(shù)據(jù)庫(kù)服務(wù)器可以根據(jù)這些信息計(jì)算出移動(dòng)對(duì)象過(guò)去、現(xiàn)在以及將來(lái)一段時(shí)間的位置,從而支持位置相關(guān)的查詢(xún)。為了實(shí)現(xiàn)這些功能,需要建立起基于交通路網(wǎng)的一系列數(shù)據(jù)類(lèi)型,如mpoint、trajectory、junction等。
本文的工作建立在PostgreSQL[8]對(duì)象關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)上。它是目前功能最強(qiáng)大、特性最豐富和最復(fù)雜的自由數(shù)據(jù)庫(kù)軟件系統(tǒng)之一。它支持事務(wù)、子查詢(xún)、多版本并發(fā)控制、視圖、數(shù)據(jù)完整性檢查及一些復(fù)雜的數(shù)據(jù)類(lèi)型等特性;對(duì)SQL99標(biāo)準(zhǔn)的支持也很完備。最重要的是,它支持對(duì)數(shù)據(jù)類(lèi)型和函數(shù)的擴(kuò)展。
4代理端的功能設(shè)計(jì)
代理端位于整個(gè)體系結(jié)構(gòu)的中間層,關(guān)系到系統(tǒng)性能的提高和一些訂制服務(wù)的實(shí)現(xiàn)。它的功能涉及到移動(dòng)對(duì)象的注冊(cè)服務(wù)、特殊服務(wù)訂制、數(shù)據(jù)封裝以及自適應(yīng)數(shù)據(jù)庫(kù)連接和保持。
1)注冊(cè)服務(wù)
移動(dòng)端在第一次加入系統(tǒng)時(shí),需要通過(guò)移動(dòng)代理端進(jìn)行注冊(cè)。代理端依據(jù)移動(dòng)對(duì)象提供的注冊(cè)名(為了保持惟一性,一種好的方法是利用車(chē)牌號(hào)作為注冊(cè)名)自動(dòng)向服務(wù)器端的對(duì)象表插入一條記錄,此時(shí)該對(duì)象的軌跡為空。另外,如果移動(dòng)端上還沒(méi)有存儲(chǔ)交通路網(wǎng)信息,則代理端負(fù)責(zé)從服務(wù)器端獲得交通路網(wǎng)然后傳送給該移動(dòng)對(duì)象,以后該移動(dòng)對(duì)象就可以根據(jù)GPS返回的位置信息和交通路網(wǎng)來(lái)自動(dòng)更新自己在服務(wù)器端的位置信息。
2)特殊服務(wù)訂制
移動(dòng)對(duì)象可以通過(guò)代理端訂制一些特殊服務(wù),如接收其他移動(dòng)對(duì)象的位置信息,前提是這個(gè)請(qǐng)求得到被監(jiān)測(cè)對(duì)象的許可。可以在代理端為每個(gè)移動(dòng)對(duì)象建立一個(gè)列表,一旦某個(gè)其他對(duì)象要求監(jiān)測(cè)它的位置并得到許可后,就在該列表中插入監(jiān)測(cè)對(duì)象的ID。這樣,當(dāng)一個(gè)移動(dòng)對(duì)象進(jìn)行位置更新時(shí),代理端除了向服務(wù)器發(fā)送位置更新命令外,還要向該列表中的所有移動(dòng)對(duì)象利用無(wú)線網(wǎng)絡(luò)來(lái)發(fā)送這個(gè)新的位置信息。移動(dòng)對(duì)象還可以訂制一些與路況相關(guān)的定時(shí)服務(wù)信息,如“請(qǐng)每分鐘通知一次我當(dāng)前行使道路上的移動(dòng)對(duì)象數(shù)目”這類(lèi)服務(wù)。在代理端實(shí)現(xiàn)這些功能具有更好的可擴(kuò)展性和更強(qiáng)的靈活性,而且減輕了服務(wù)器端的負(fù)擔(dān)。
3)數(shù)據(jù)封裝和數(shù)據(jù)庫(kù)連接
從移動(dòng)端發(fā)給代理端的可能僅僅是一個(gè)位置信息,需要代理端對(duì)這些原始數(shù)據(jù)進(jìn)行封裝后再插入到數(shù)據(jù)庫(kù)中去。例如代理端發(fā)送的信息為(20,1 260,0.21),表示mid為20的移動(dòng)對(duì)象在rid為1 260的路徑上有一個(gè)位置更新,位置為相對(duì)該路徑源頭0.21處,則代理端需將該位置信息封裝成SQL語(yǔ)句update t_mo set track=append_track(track,1 260, 0.21) where mid=20并提交給數(shù)據(jù)庫(kù)執(zhí)行。其中:append_track是針對(duì)trajectory類(lèi)型數(shù)據(jù)的一個(gè)擴(kuò)展函數(shù),用來(lái)向軌跡數(shù)據(jù)的末端添加一條記錄;另外,如果系統(tǒng)考慮安全因素,則移動(dòng)端發(fā)送的可能會(huì)是加密的位置信息。如果是這樣的話,代理端還需要事先進(jìn)行一個(gè)解密操作。
使用代理的另一個(gè)優(yōu)點(diǎn)在于,如果讓移動(dòng)端與客戶(hù)端直接和數(shù)據(jù)庫(kù)進(jìn)行連接,那么連接將會(huì)異常頻繁,系統(tǒng)的整個(gè)效率會(huì)受到極大影響。而代理端可以自適應(yīng)地保持若干個(gè)與數(shù)據(jù)庫(kù)的連接,這樣就使得該連接效率問(wèn)題得到較好的解決。
5結(jié)束語(yǔ)
由于移動(dòng)對(duì)象數(shù)據(jù)庫(kù)廣闊的應(yīng)用前景,越來(lái)越多的學(xué)者開(kāi)始加入這一行列。在他們的努力下,很多模型和方法被提出。本文在PostgreSQL開(kāi)源數(shù)據(jù)庫(kù)的基礎(chǔ)上,給出了基于交通路網(wǎng)的移動(dòng)對(duì)象數(shù)據(jù)庫(kù)系統(tǒng)的實(shí)現(xiàn)方案,介紹了該系統(tǒng)的整體架構(gòu),并給出對(duì)服務(wù)器端所作的類(lèi)型和操作擴(kuò)展,對(duì)代理端的功能進(jìn)行了闡述。移動(dòng)對(duì)象數(shù)據(jù)庫(kù)是對(duì)傳統(tǒng)數(shù)據(jù)庫(kù)的一個(gè)擴(kuò)充,也是對(duì)傳統(tǒng)數(shù)據(jù)庫(kù)的一個(gè)挑戰(zhàn),還有很多關(guān)鍵問(wèn)題都需要解決[4],如移動(dòng)對(duì)象的建模、移動(dòng)對(duì)象軌跡的索引、移動(dòng)對(duì)象的查詢(xún)、移動(dòng)對(duì)象的位置更新算法以及不確定性問(wèn)題等。目前來(lái)說(shuō)在這些方面沒(méi)有一個(gè)公認(rèn)的比較好的模型和算法,還有大量的工作要做。
參考文獻(xiàn):
[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.
注:“本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文”