移動開發(fā):第一次親密接觸移動數(shù)據(jù)庫

字號:

移動數(shù)據(jù)庫這個概念,在五年前也許很多人聞所未聞。但是現(xiàn)在,其具體的應(yīng)用已經(jīng)十分廣泛。剛接觸這個概念的讀者可能會疑惑,什么是移動數(shù)據(jù)庫呢?簡單地說,數(shù)據(jù)并不是純粹地存儲在服務(wù)器或PC機(jī)上的,也可以存放在內(nèi)存和處理性能受限的移動設(shè)備上。
    這些安裝在移動設(shè)備上,用來管理和操作數(shù)據(jù)的系統(tǒng)就是所謂的移動數(shù)據(jù)庫。
    很多情況下都需要在移動設(shè)備上儲存一些數(shù)據(jù)。在移動數(shù)據(jù)庫還沒有誕生前,所有的數(shù)據(jù)都是存放在文件中,當(dāng)數(shù)據(jù)量比較大時,對數(shù)據(jù)進(jìn)行檢索、刪除等操作的效率是非常低下的?,F(xiàn)在很多公司考慮到移動設(shè)備的多樣性,普遍使用XML來保存數(shù)據(jù),雖然XML是一種和平臺無關(guān)的文檔標(biāo)準(zhǔn),但是因為當(dāng)前移動設(shè)備的處理能力限制,因此解析一個包含較多數(shù)據(jù)的XML文件時,其性能的開銷是無法滿足實際的需求的。而移動數(shù)據(jù)庫之所以能夠稱為數(shù)據(jù)庫,就是指移動數(shù)據(jù)庫可以包含的數(shù)據(jù)量可以達(dá)到相當(dāng)程度的規(guī)模,而并非少量的數(shù)據(jù)(幾十或幾百條記錄)可以比擬的。
    在本專題中,將圍繞兩個重點(diǎn)進(jìn)行展開:一個就是微軟的移動數(shù)據(jù)庫—SQL Server 2005 Compact Edition。另一個就是“使用.Net Compact Framework開發(fā)移動版的數(shù)據(jù)管理系統(tǒng)”。希望通過該專題,可以使讀者在移動版的數(shù)據(jù)管理系統(tǒng)的開發(fā)方面更加得心應(yīng)手。
    移動數(shù)據(jù)庫的應(yīng)用
    在移動設(shè)備上安置一個移動數(shù)據(jù)庫,這樣做是否有意義?相信很多人會有這樣的疑問,而且有很多開發(fā)經(jīng)驗的程序員當(dāng)初聽到筆者在應(yīng)用移動數(shù)據(jù)庫開發(fā)系統(tǒng)時,也是非常的不可思議。不過,你可以進(jìn)一步考慮下,如果資料信息能夠進(jìn)步到方便攜帶且更容易隨身獲得,將具備如下的好處:
    1.減少中心服務(wù)器的負(fù)載
    目前的絕大多數(shù)系統(tǒng)都需要前端程序從中心服務(wù)器數(shù)據(jù)庫中獲取數(shù)據(jù)信息,如果存在大量的訪問請求的話,中心服務(wù)器將會處于非常繁忙的狀態(tài),這時就會產(chǎn)生性能的瓶頸問題。為此,微軟提出了智能客戶端這個概念,使得程序即可以在離線狀態(tài)下工作,也可以在聯(lián)網(wǎng)狀態(tài)下運(yùn)行。如果我們可以將中心服務(wù)器數(shù)據(jù)庫中的部分?jǐn)?shù)據(jù)保存到移動數(shù)據(jù)庫中,這樣很多的功能實現(xiàn)就可以直接在移動設(shè)備端完成,大幅度減少了中心服務(wù)器的負(fù)荷和壓力。
    2.資料可以隨時取得
    當(dāng)你出門在外,而且是網(wǎng)絡(luò)斷開的情況下,我們就可以預(yù)先將一些數(shù)據(jù)存放到移動數(shù)據(jù)庫中。當(dāng)需要的時候,就可以直接查詢移動數(shù)據(jù)庫中存儲數(shù)據(jù),以獲得相應(yīng)的信息。當(dāng)網(wǎng)絡(luò)連通時,我們還可以從服務(wù)器加載最新的信息到移動數(shù)據(jù)庫中,或是將移動數(shù)據(jù)庫中的數(shù)據(jù)改變傳回到服務(wù)器上。下面是“信息資料可以隨時獲取的”幾種情形:
    2.1行業(yè)解決方案
    目前,根據(jù)各個行業(yè)的特點(diǎn),很多公司都采用了滿足其戶外工作人員需求的行業(yè)解決方案。比如剛剛進(jìn)入中國市場的某快遞公司就是采用了一套移動解決方案。投遞員在開始一天的工作時,就可以直接通過PDA查看今天將要發(fā)送的所有包裹的信息,例如包裹的收件人、收件地址和聯(lián)系方式,并且還可以給出一個的投遞路線。除此之外,當(dāng)包裹送達(dá)后,客戶還可以直接在PDA上進(jìn)行簽名以確認(rèn)貨物的送達(dá),而后投遞員就可以將客戶簽名和貨物送達(dá)信息直接通過無線網(wǎng)絡(luò)傳遞給中心服務(wù)器,避免了一系列的“紙上操作”過程,大大加快了工作的效率。
    現(xiàn)在很多政府部門也在逐漸采用無線解決方案來提高工作效率。比如北京政府的很多部門都使用了移動辦公系統(tǒng),無論何時何地,通過移動辦公系統(tǒng)可以處理公文審批、人事管理、績效審核等管理工作,有效解決因出差、會議等延誤時間的問題,極大提高辦公效率。此外,部門內(nèi)部可通過短信定位發(fā)送、群組發(fā)送的形式進(jìn)行會議/活動通知、日程安排提醒、郵件/公文流轉(zhuǎn)提醒。
    2.2交通路線查詢系統(tǒng)
    在北京、上海和廣州等大城市,交通出行是一個非常大的問題。如果我們可以將某個城市的交通路線信息都保存到移動數(shù)據(jù)庫中,日后出行時就可以通過攜帶的移動設(shè)備方便的查看乘車路線。如果開發(fā)這類的程序,可以根據(jù)不同的需求采用不同的實現(xiàn)方法。
    最簡單的一種就是將城市的所有路線信息都保存到移動數(shù)據(jù)庫中,這樣做的缺點(diǎn)就是缺乏靈活性,當(dāng)城市的某些路線發(fā)生變化時,無法實時地獲得最新的路線信息。當(dāng)然,我們也可以通過網(wǎng)絡(luò)從中心數(shù)據(jù)庫檢索信息,而后存放到移動數(shù)據(jù)庫,這樣不但可以具備較好的實時性,而且減少了多次聯(lián)網(wǎng)帶來的費(fèi)用問題。
    2.3 無線點(diǎn)菜
    以信息技術(shù)為代表的當(dāng)今科技已逐步滲透到各行各業(yè),并從根本上改變著我們的工作和生活方式。餐飲業(yè)也不例外,這個傳統(tǒng)的服務(wù)行業(yè)也在經(jīng)歷著信息化的洗禮,無線點(diǎn)菜其實就是一個很有前景的市場應(yīng)用。無線點(diǎn)菜的優(yōu)勢就是可以將消費(fèi)者的菜單直接發(fā)送到廚房中心的計算機(jī)上,避免了服務(wù)人員在餐廳和廚房中心之間的來回奔波。除此之外,無線點(diǎn)菜系統(tǒng)還可以將消費(fèi)者的最終消費(fèi)情況直接發(fā)送至結(jié)算中心,這樣就可以提前為消費(fèi)者準(zhǔn)備好消費(fèi)清單,減少了消費(fèi)者結(jié)賬的等待時間。我們所常見的傳統(tǒng)的一張紙、一紙筆的點(diǎn)菜方式,收銀結(jié)賬敲計算器,收銀員揮汗如雨,收銀臺一片忙亂的情形正悄悄地離我們而去,這一切都是信息化所帶來的便利。
    2.3 股票看盤系統(tǒng)
    這兩年的中國股市真可謂風(fēng)云變幻,但正因為這樣了,越來越多的中國人逐漸加入了炒股的大潮中?,F(xiàn)在很多手機(jī)產(chǎn)生廠商已經(jīng)將股票看盤系統(tǒng)集成到手機(jī)中,作為它的一個賣點(diǎn)來吸引股民的眼球。通過網(wǎng)絡(luò),股民可以實時地獲得股市的“指數(shù)走勢”、“個股走勢”、“行情揭示”等信息,也可以通過無線的方式對股票進(jìn)行買入賣出的操作。除此之外,我們還可以將一些重要數(shù)據(jù)保存到移動數(shù)據(jù)庫中,以便日后的查詢分析。
    移動數(shù)據(jù)庫的應(yīng)用前景
    未來移動數(shù)據(jù)庫的應(yīng)用只會越來越多,而不會逐步減少。一個產(chǎn)業(yè)和技術(shù)的發(fā)展,無外乎天時、地利和人和三個要素。六、七年前,中國使用智能手機(jī)的人少之又少,那時擁有一款智能手機(jī)的人不亞于90年代的“大款”一族。雖然當(dāng)時的智能手機(jī)的速度也好可以,但是因為內(nèi)存容量和待機(jī)時間的限制,以及沒有相應(yīng)的網(wǎng)絡(luò)環(huán)境,一些實際的應(yīng)用都受到很大的限制,更別說具體的企業(yè)應(yīng)用了。隨著硬件水平和網(wǎng)絡(luò)通訊技術(shù)的發(fā)展,現(xiàn)在的智能手機(jī)和以前相比已經(jīng)不可同日而語,而且在未來也會不斷地改進(jìn),也將具備加完善和強(qiáng)大的功能。
    現(xiàn)在,中國的無線網(wǎng)絡(luò)覆蓋面積已經(jīng)非常的廣泛,而且3G也即將在中國全面鋪開,這將大大緩解當(dāng)前無線網(wǎng)絡(luò)存在的速度瓶頸問題。再則,使用智能手機(jī)的人越來越多,應(yīng)用無線網(wǎng)絡(luò)的移動設(shè)備程序也會逐步增多。正如前面所說的那樣,即使3G的到來,也不可能所有的程序僅通過網(wǎng)絡(luò)就可以完成所有的功能,畢竟還存在很多要不確定的因素,比如無線網(wǎng)絡(luò)的覆蓋問題。解決上述問題的辦法就是采用移動數(shù)據(jù)庫,當(dāng)無線網(wǎng)絡(luò)暢通時,就可以利用無線網(wǎng)絡(luò)獲取所需的信息,并將這些重要的信息存放到移動數(shù)據(jù)庫中。如果無線網(wǎng)絡(luò)無法連接的話,我們就可以使用移動數(shù)據(jù)庫中存放的數(shù)據(jù),完成相應(yīng)的操作。而后當(dāng)無線網(wǎng)絡(luò)再次暢通時,我們就可以將移動數(shù)據(jù)庫中的數(shù)據(jù)改變回傳至中心服務(wù)器數(shù)據(jù)庫。而且,中心服務(wù)器數(shù)據(jù)庫中如果存在新的數(shù)據(jù)和信息的話,移動數(shù)據(jù)庫也會自動加載這些新信息,確保了移動數(shù)據(jù)庫和中心服務(wù)器數(shù)據(jù)庫之間的數(shù)據(jù)同步。