王云澤,李一哲,郭 琳
(1.昆明理工大學(xué) 津橋?qū)W院計(jì)算機(jī)科學(xué)及電子信息工程系,云南 昆明650106;2.昆明理工大學(xué) 冶金與能源工程學(xué)院,云南 昆明650093)
計(jì)算機(jī)發(fā)展初期,計(jì)算機(jī)主要用于科學(xué)計(jì)算,當(dāng)時(shí)用戶不關(guān)心界面方面的細(xì)節(jié)。隨著計(jì)算機(jī)的發(fā)展和普及,人們對(duì)人機(jī)交互的要求越來越高。當(dāng)前通用計(jì)算機(jī)的人機(jī)交互主要采用圖形用戶界面 (graphical user interface,GUI)。近年來,隨著移動(dòng)通訊高速發(fā)展,移動(dòng)終端設(shè)備的利益豐富,移動(dòng)應(yīng)用軟件開發(fā)需求日益增長(zhǎng),用戶對(duì)界面的要求越來越高,更加凸顯圖形用戶界面在移動(dòng)通訊終端中的重要地位。從用戶的觀點(diǎn)來看,圖形用戶界面是系統(tǒng)的一個(gè)重要的評(píng)價(jià)指標(biāo),因?yàn)橛脩敉ㄟ^圖形用戶界面與系統(tǒng)進(jìn)行交互。
移動(dòng)終端設(shè)備與傳統(tǒng)臺(tái)式個(gè)人計(jì)算機(jī)存在較大差別,差別主要體現(xiàn)在人機(jī)交互以及設(shè)備處理能力等方面。移動(dòng)終端雖然種類繁多,但從技術(shù)發(fā)展的角度講,由于移動(dòng)終端的便攜性、位置的不固定性和計(jì)算能力的有限性等諸多因素的限制,因此對(duì)移動(dòng)設(shè)備的用戶界面要求就表現(xiàn)在較快速的用戶界面響應(yīng)以及相對(duì)簡(jiǎn)單的人機(jī)交互界面等。
鑒于移動(dòng)設(shè)備通訊速度慢、通訊延遲情況明顯等特點(diǎn),桌面界面技術(shù)對(duì)移動(dòng)終端的不適用性以及現(xiàn)有的移動(dòng)界面技術(shù)的局限性,本文提出了一種新的適用于移動(dòng)終端的基于可擴(kuò)展標(biāo)識(shí)語言的 (extensible markup language,XML)用戶界面應(yīng)用框架。
出于對(duì)移動(dòng)終端系統(tǒng)中資源受限性的考慮,移動(dòng)終端的GUI平臺(tái)有以下方面的要求[1]:
(1)可定制性:移動(dòng)終端本身是一個(gè)嵌入式系統(tǒng),根據(jù)目標(biāo)市場(chǎng)的定位不同,商業(yè)化的需求不同,就會(huì)有不同的設(shè)計(jì)方案。有的系統(tǒng)需要完備的GUI以及高質(zhì)量的圖形支持,有的系統(tǒng)只要求部分的圖形功能,因此,GUI必須具有模塊化的設(shè)計(jì)。可定制是對(duì)智能移動(dòng)終端系統(tǒng)GUI的基本要求。
(2)占用內(nèi)存?。阂苿?dòng)終端系統(tǒng)不像一般桌面系統(tǒng)有很大的硬盤和內(nèi)存,一般只是小容量的內(nèi)存系統(tǒng),這就要求移動(dòng)式圖形用戶界面系統(tǒng)不能像桌面圖形用戶界面系統(tǒng)那樣占用龐大的內(nèi)存。
(3)提供簡(jiǎn)單、方便的GUI用戶程序開發(fā)接口:這個(gè)要求和桌面GUI的要求相似,要提供完善的圖形接口進(jìn)行應(yīng)用程序開發(fā)。
(4)快捷的界面與易操作性:受到成本、能耗以及移動(dòng)性的限制,移動(dòng)終端往往計(jì)算能力較差,存儲(chǔ)容量較小;顯示屏幕小,分辨率低;接口欠缺,無法連接豐富的外圍輸入輸出設(shè)備,因此移動(dòng)終端界面應(yīng)具有可用性、靈活性、可靠性、快捷性和易操作性。
1997年6月,PHONE COM與Nokia,Ericsson.Motorola合作建立了 WAP (wireless application protocol,無線通訊協(xié)議)論壇,目的就是為在移動(dòng)通信中使用Internet制定統(tǒng)一的應(yīng)用標(biāo)準(zhǔn)。WAP是在數(shù)字移動(dòng)電話、因特網(wǎng)或其他個(gè)人數(shù)字助理機(jī)、計(jì)算機(jī)應(yīng)用之間進(jìn)行通訊的開放全球標(biāo)準(zhǔn)[2]。
WAP技術(shù)照搬了Internet上用瀏覽器瀏覽網(wǎng)頁的模式,使用的是瀏覽器-服務(wù)器 (browser-server,B/S)方式,WAP手機(jī)只能作為一個(gè)顯示終端,而不是一個(gè)計(jì)算終端,所有的計(jì)算發(fā)生在服務(wù)器端,計(jì)算結(jié)果要通過網(wǎng)絡(luò)傳送到手機(jī)端來顯示,因此這種模式只適用于移動(dòng)設(shè)備與服務(wù)器間簡(jiǎn)單交互,而對(duì)一些復(fù)雜的服務(wù),則會(huì)出現(xiàn)響應(yīng)速度低、不能對(duì)網(wǎng)絡(luò)的帶寬資源智能化利用等缺點(diǎn)[3]。這樣就加大了服務(wù)器的工作量,響應(yīng)速度和執(zhí)行效率較低。
J2ME專門為那些使用有限的電源、有限的網(wǎng)絡(luò)連接以及有限圖形用戶界面能力的設(shè)備開發(fā)的,滿足了消費(fèi)電子和嵌入式設(shè)備開發(fā)的需要[4]。
J2ME技術(shù)采用了客戶-服務(wù)器模式 (client-server,C/S)模式。雖然C/S模式可以克服一些B/S模式固有的缺點(diǎn),但是對(duì)于界面應(yīng)用系統(tǒng)還不是很適用。J2ME技術(shù)中,客戶端用戶界面設(shè)計(jì)過程中,所有用戶界面都是在客戶端程序中事先設(shè)計(jì)好的,比如程序啟動(dòng)后進(jìn)入界面A,在界面A進(jìn)行操作后,進(jìn)入下一界面B,用戶界面的內(nèi)容和界面之間的訪問順序是固定的。這不利于實(shí)現(xiàn)系統(tǒng)用戶界面的定制和功能定制。一旦客戶端程序編碼完成,而新的系統(tǒng)用戶希望實(shí)現(xiàn)不同的界面和功能時(shí),就必須對(duì)原客戶端程序進(jìn)行重新設(shè)計(jì)。這樣增加了開發(fā)難度,并且可定制性較差。
SyncML (synchronization markup language)是一種行業(yè)通用的移動(dòng)數(shù)據(jù)同步協(xié)議。SyncML使得在不同的設(shè)備上 (掌上電腦、移動(dòng)電話、自動(dòng)計(jì)算機(jī)和桌面PC)同步網(wǎng)絡(luò)數(shù)據(jù)成為可能,用戶可以通過手持設(shè)備和移動(dòng)電話閱讀電子郵件并可以對(duì)已讀的信息進(jìn)行更新、修改和維護(hù)[5]。
在SyncML協(xié)議的模型中,通常有兩種角色:客戶端和服務(wù)器。客戶端發(fā)送同步消息 (內(nèi)有同步命令,數(shù)據(jù)和源信息)給服務(wù)器,服務(wù)器響應(yīng),同步處理后將改動(dòng)返回給客戶端。
SyncML客戶端:含有客戶端代理,一般首先發(fā)送改動(dòng)請(qǐng)求給服務(wù)器。同時(shí)必須能接受服務(wù)器端響應(yīng)。在有些情況下,例如其他的客戶端發(fā)起了同步后,此時(shí)服務(wù)器也會(huì)首先發(fā)起同步。
SyncML服務(wù)器:當(dāng)收到客戶端的同步請(qǐng)求后負(fù)責(zé)處理同步分析,內(nèi)有同步引擎,服務(wù)端代理。根據(jù)協(xié)議的實(shí)現(xiàn)要求,也能首先發(fā)起同步。
Sync4j是一個(gè)開放源代碼工程,它是使用Java語言建立的一個(gè)基于客戶端和服務(wù)器的SyncML協(xié)議的應(yīng)用框架。Sync4j是一個(gè)同步引擎,它包括一系列的數(shù)據(jù)傳輸和數(shù)據(jù)操作的工具,隱藏了數(shù)據(jù)鑒定、安全認(rèn)證和設(shè)備配置等一些復(fù)雜的操作,使它可以更加便捷的交換數(shù)據(jù)。另外,它還可以在實(shí)體之間傳輸經(jīng)優(yōu)化的數(shù)據(jù)[6-7]。
Sync4j Java API J2ME有兩個(gè)主要的模塊組成:Data Synchronization(數(shù)據(jù)同步)和Device Management(設(shè)備管理)。它們的層次結(jié)構(gòu)如圖1所示,Device Management層 (設(shè)備管理)負(fù)責(zé)設(shè)備和應(yīng)用程序的配置和管理,Data Synchronization層 (數(shù)據(jù)同步)負(fù)責(zé)SyncML協(xié)議和數(shù)據(jù)同步過程。
圖1 Sync4j Java API體系結(jié)構(gòu)
Host Application可以通過兩個(gè)模塊訪問同步服務(wù)器[7]:當(dāng)同步執(zhí)行時(shí)可以通過Sync Manager訪問;當(dāng)讀取、操作和改寫配置信息時(shí)可以通過Device Manager訪問。Sync Source是Host Application中的一個(gè)模塊,它是一組被Sync Manager調(diào)用的用來與數(shù)據(jù)源結(jié)合的返回函數(shù)。
鑒于上述移動(dòng)終端對(duì)圖形用戶界面的總體要求以及現(xiàn)有移動(dòng)終端界面技術(shù)的局限性,本文提出了一種新的基于XML的移動(dòng)終端用戶界面應(yīng)用框架。該框架由服務(wù)器和移動(dòng)終端兩部分構(gòu)成,如圖2所示。服務(wù)器端存儲(chǔ)了界面定義和數(shù)據(jù)定義的XML文檔、服務(wù)器端的應(yīng)用數(shù)據(jù)以及Sync4j的服務(wù)器端。移動(dòng)終端存儲(chǔ)了移動(dòng)應(yīng)用、從服務(wù)器端下載得到的界面定義和數(shù)據(jù)定義的XML文檔、移動(dòng)終端的應(yīng)用數(shù)據(jù)和Sync4j客戶端。其中移動(dòng)應(yīng)用包含4個(gè)功能:XML解析、界面繪制、數(shù)據(jù)綁定和界面動(dòng)作定義。
圖2 系統(tǒng)架構(gòu)
程序運(yùn)行時(shí),界面定義和數(shù)據(jù)定義的XML文檔由服務(wù)器下載到移動(dòng)終端進(jìn)行存儲(chǔ),下載完成之后斷開服務(wù)器與移動(dòng)終端的網(wǎng)絡(luò)連接,進(jìn)行移動(dòng)終端的相關(guān)操作。在移動(dòng)終端對(duì)界面定義XML文檔進(jìn)行解析操作。當(dāng)界面定義文檔解析完成之后進(jìn)行界面元素初始化,并將解析出的界面元素一一繪制到移動(dòng)終端進(jìn)行顯示;同時(shí)還要將數(shù)據(jù)定義XML文檔進(jìn)行解析,根據(jù)該文檔結(jié)構(gòu)以及標(biāo)簽的屬性自動(dòng)生成移動(dòng)終端和服務(wù)器的數(shù)據(jù)庫表結(jié)構(gòu),并將解析出的標(biāo)簽屬性值分別根據(jù)移動(dòng)終端和服務(wù)器的數(shù)據(jù)結(jié)構(gòu)添加到各自的數(shù)據(jù)庫中,這樣既完成了移動(dòng)終端和服務(wù)器端的數(shù)據(jù)持久化存儲(chǔ),又可以保證服務(wù)器和移動(dòng)終端表結(jié)構(gòu)和數(shù)據(jù)的一致性。
界面繪制時(shí)需要將數(shù)據(jù)從移動(dòng)終端數(shù)據(jù)庫中讀取出來,與要繪制的界面元素進(jìn)行相應(yīng)的數(shù)據(jù)綁定,即將移動(dòng)終端數(shù)據(jù)庫中的數(shù)據(jù)值映射到界面定義的相應(yīng)界面組件中,從而使用戶與移動(dòng)終端可以進(jìn)行各種交互操作。當(dāng)程序運(yùn)行過程中用戶對(duì)界面數(shù)據(jù)進(jìn)行了修改或重新賦值后,則將這些修改后的數(shù)據(jù)重新寫回到移動(dòng)終端的數(shù)據(jù)庫中。最后利用Sync4j同步引擎實(shí)現(xiàn)移動(dòng)終端和服務(wù)器的數(shù)據(jù)同步。
在移動(dòng)設(shè)備中對(duì)數(shù)據(jù)持久化保存使用的是記錄管理系統(tǒng) (record management system,RMS),它可以對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)、讀取、排序和查詢等操作[8]。
它是一種持久存儲(chǔ)機(jī)制,在手機(jī)中有一個(gè)用于存儲(chǔ)對(duì)象狀態(tài)的固定空間。RMS是一個(gè)文本格式的數(shù)據(jù)庫系統(tǒng),提供記錄存儲(chǔ)和記錄。記錄存儲(chǔ)是一個(gè)包含了記錄集的文件,等同于數(shù)據(jù)庫中的表,而記錄存儲(chǔ)中的每個(gè)條目稱為記錄,是一個(gè)字節(jié)數(shù)組[9]。
系統(tǒng)的數(shù)據(jù)定義XML文檔存儲(chǔ)在服務(wù)器端,當(dāng)程序運(yùn)行時(shí)通過網(wǎng)絡(luò)從服務(wù)器端下載到移動(dòng)終端進(jìn)行解析后,將解析的結(jié)果按照元素的層次結(jié)構(gòu)自動(dòng)生成移動(dòng)終端的數(shù)據(jù)庫表結(jié)構(gòu)并進(jìn)行移動(dòng)終端數(shù)據(jù)的持久化存儲(chǔ)。
進(jìn)行數(shù)據(jù)綁定操作時(shí)可以從記錄管理系統(tǒng)中讀取相應(yīng)的數(shù)據(jù),當(dāng)程序運(yùn)行時(shí)對(duì)數(shù)據(jù)進(jìn)行了修改操作后還要將數(shù)據(jù)寫回到記錄管理系統(tǒng)中。由于移動(dòng)終端數(shù)據(jù)的持久化存儲(chǔ),無論網(wǎng)絡(luò)連接與否,都可以在移動(dòng)終端對(duì)數(shù)據(jù)進(jìn)行操作,實(shí)現(xiàn)了數(shù)據(jù)的離線瀏覽及操作。
移動(dòng)終端用戶界面應(yīng)用框架實(shí)現(xiàn)了界面元素動(dòng)態(tài)繪制以及用戶界面的定制。界面定義和數(shù)據(jù)定義的XML文檔設(shè)計(jì)完成之后存儲(chǔ)在服務(wù)器端。當(dāng)程序運(yùn)行時(shí)通過網(wǎng)絡(luò)將界面定義和數(shù)據(jù)定義的XML文檔下載到移動(dòng)終端進(jìn)行解析,界面XML的解析與界面元素的繪制同步進(jìn)行。在繪制界面的同時(shí)還需將界面元素與之相對(duì)應(yīng)的數(shù)據(jù)進(jìn)行綁定,這些數(shù)據(jù)從移動(dòng)終端的記錄管理系統(tǒng)中讀取出并賦值給界面元素組件,然后一并呈現(xiàn)到移動(dòng)設(shè)備進(jìn)行顯示。
Record標(biāo)簽中包含了多個(gè)屬性,其中id屬性表示記錄的序號(hào),其余的如 “address”和 “quantity”屬性對(duì)應(yīng)記錄的字段名,而屬性值對(duì)應(yīng)字段值。
在進(jìn)行界面XML文檔解析過程中,遇到界面元素的“value”屬性時(shí)將屬性值讀取出來,根據(jù)屬性值的結(jié)果定位到對(duì)應(yīng)的記錄和此記錄的相應(yīng)字段,從移動(dòng)終端的數(shù)據(jù)庫中提取出對(duì)應(yīng)的字段值即可。例如,在界面中有如下定義:
<TextField name="請(qǐng)輸入訂貨數(shù)量"value="[record1.quantity]"/>
當(dāng)解析到TextField標(biāo)簽時(shí),依次讀取其name屬性和value屬性,當(dāng)讀到value屬性時(shí),讀取屬性值為[record1.quantity],[]標(biāo)識(shí)其值為一個(gè)變量。首先讀出record1,這時(shí)根據(jù)數(shù)據(jù)定義中的每個(gè) “Record”標(biāo)簽的“id”屬性找到對(duì)應(yīng)的記錄,例如record1→id=1,定位到“id”屬性值為1的記錄,我們暫且稱第一條記錄;接著讀取出 []中的quantity,代表需要找到此記錄的 “quantity”屬性,這時(shí)定位到第一條記錄的 “quantity”屬性,然后從移動(dòng)終端的數(shù)據(jù)庫中取出 “quantity”屬性的值為 “1230”,賦給TextField標(biāo)簽的value屬性,即value=1230。其過程如圖3所示。
圖3 數(shù)據(jù)綁定
由于數(shù)據(jù)綁定對(duì)XML文檔細(xì)節(jié)進(jìn)行了抽象,因此可以減少內(nèi)存開銷。數(shù)據(jù)綁定方法不用遍歷XML文檔結(jié)構(gòu)以獲取數(shù)據(jù),訪問程序內(nèi)的數(shù)據(jù)速度較快。一些特殊的數(shù)據(jù)輸入后可以被轉(zhuǎn)換成內(nèi)部表示而不用保留文本形式。從XML文檔解析到綁定不需要復(fù)雜的實(shí)現(xiàn)手法,但卻提供了更加簡(jiǎn)單和靈活的解決方案。
我們熟知的數(shù)據(jù)庫創(chuàng)建方法均是由用戶事先根據(jù)自己的需求進(jìn)行數(shù)據(jù)庫表的結(jié)構(gòu)及內(nèi)容的定義,定義完成后將數(shù)據(jù)填寫到對(duì)應(yīng)的字段中即可。
本文提出了根據(jù)數(shù)據(jù)定義XML文檔自動(dòng)生成移動(dòng)終端和服務(wù)器端的數(shù)據(jù)庫表結(jié)構(gòu)。由于兩端表結(jié)構(gòu)都來源于數(shù)據(jù)定義,因此這兩端的數(shù)據(jù)庫表結(jié)構(gòu)可以自動(dòng)的保持一致。此外,如果對(duì)數(shù)據(jù)定義的結(jié)構(gòu)和內(nèi)容進(jìn)行了修改,移動(dòng)終端和服務(wù)器端的數(shù)據(jù)庫結(jié)構(gòu)及對(duì)應(yīng)數(shù)據(jù)同時(shí)進(jìn)行相應(yīng)的修改,從而能夠有效提高移動(dòng)應(yīng)用的軟件開發(fā)效率與質(zhì)量[12-13]。
數(shù)據(jù)庫表的創(chuàng)建及其存儲(chǔ)結(jié)構(gòu)是根據(jù)數(shù)據(jù)定義XML文檔元素的層次結(jié)構(gòu)和解析內(nèi)容所確定的。如有以下的數(shù)據(jù)定義的描述:
在此XML文檔中Record標(biāo)簽的屬性映射為關(guān)系數(shù)據(jù)庫表的列,分別為id、address、company、contact、quantity和schedule,行則用于指示一條完整的數(shù)據(jù)記錄,即記錄的數(shù)目映射為關(guān)系數(shù)據(jù)庫表的行,假設(shè)有3條記錄,數(shù)據(jù)庫表結(jié)構(gòu)如圖4所示。通過解析得到的各屬性值插入到圖4標(biāo)識(shí)的表對(duì)應(yīng)的字段中,既完成了自動(dòng)創(chuàng)建數(shù)據(jù)庫表結(jié)構(gòu)又對(duì)數(shù)據(jù)進(jìn)行了持久化存儲(chǔ)。數(shù)據(jù)庫表創(chuàng)建過程如圖5所示。
圖4 服務(wù)器端關(guān)系數(shù)據(jù)庫表結(jié)構(gòu)
圖5 自動(dòng)生成關(guān)系數(shù)據(jù)庫表的流程
系統(tǒng)運(yùn)行過程中對(duì)移動(dòng)終端的數(shù)據(jù)進(jìn)行了修改,需將修改后的數(shù)據(jù)存儲(chǔ)到移動(dòng)終端數(shù)據(jù)庫中,當(dāng)用戶發(fā)起同步請(qǐng)求后,就可以將移動(dòng)終端修改的數(shù)據(jù)與服務(wù)器的數(shù)據(jù)進(jìn)行同步復(fù)制。反之亦然。
只有用戶要求同步時(shí)才將移動(dòng)終端與服務(wù)器建立連接,而且必須等到同步完成后才能斷開連接。另外系統(tǒng)只是將移動(dòng)終端數(shù)據(jù)庫中自從上次數(shù)據(jù)同步以后發(fā)生的更新操作復(fù)制到服務(wù)器的數(shù)據(jù)庫中,從而使得兩個(gè)數(shù)據(jù)庫中的數(shù)據(jù)保持一致,即只對(duì)變化的數(shù)據(jù)進(jìn)行同步操作。數(shù)據(jù)同步執(zhí)行時(shí)要做的主要工作[14]:
(1)同步初始化:同步引擎準(zhǔn)備開始一個(gè)新的同步會(huì)話,在同步開始前對(duì)移動(dòng)終端和服務(wù)器進(jìn)行正確配置,使它們之間可以相互通信。服務(wù)器接收到移動(dòng)終端的同步請(qǐng)求后,對(duì)這個(gè)請(qǐng)求進(jìn)行分析后返回移動(dòng)終端一個(gè)或接受或拒絕的信息。
(2)客戶端修改檢測(cè):在這里有兩種可能性:執(zhí)行快同步時(shí),Sync Manager在已經(jīng)注冊(cè)的Sync Sources中只返回上次同步改變的記錄;而執(zhí)行慢同步時(shí),Sync Manager要返回?cái)?shù)據(jù)存儲(chǔ)中所有的記錄[15]。由于本系統(tǒng)只同步修改了的數(shù)據(jù),因此執(zhí)行的是快同步操作。
(3)SyncML與服務(wù)器同步:在這個(gè)階段通過SyncML協(xié)議保證交換數(shù)據(jù)庫修改信息的正確執(zhí)行。
(4)服務(wù)器修改執(zhí)行:在這個(gè)階段服務(wù)器的修改信息必須應(yīng)用到移動(dòng)終端數(shù)據(jù)存儲(chǔ)。
服務(wù)器和移動(dòng)終端的數(shù)據(jù)同步過程如圖6所示。
圖6 數(shù)據(jù)同步過程
選擇 “輸入數(shù)據(jù)”選項(xiàng),進(jìn)入數(shù)據(jù)輸入界面,如圖7所示,公司名稱、公司地址和公司負(fù)責(zé)人等均采用了數(shù)值綁定技術(shù),這些值均取自移動(dòng)終端的記錄管理系統(tǒng)。
圖7 界面動(dòng)態(tài)繪制
用戶在訂單數(shù)量框中輸入數(shù)值之后,選擇 “保存數(shù)據(jù)”,這時(shí)數(shù)據(jù)在移動(dòng)終端進(jìn)行持久化存儲(chǔ);選擇菜單選項(xiàng)中的 “同步”,建立移動(dòng)終端和服務(wù)器的連接,從而可以進(jìn)行數(shù)據(jù)同步操作。數(shù)據(jù)同步發(fā)起及同步結(jié)果如圖8所示。
圖8 數(shù)據(jù)同步
本文構(gòu)建的移動(dòng)終端用戶界面應(yīng)用框架能夠很好地適應(yīng)移動(dòng)設(shè)備的特性。運(yùn)行時(shí)界面的動(dòng)態(tài)繪制滿足了用戶界面的靈活性與可定制性;由于使用了界面元素與相應(yīng)數(shù)據(jù)的綁定技術(shù),因此不用遍歷XML文檔結(jié)構(gòu)以獲取數(shù)據(jù),減少了內(nèi)存開銷,提高了執(zhí)行速度;移動(dòng)終端數(shù)據(jù)持久化存儲(chǔ)可以在網(wǎng)絡(luò)斷開的情況下進(jìn)行數(shù)據(jù)的操作,不僅可以進(jìn)行數(shù)據(jù)的離線瀏覽,而且減輕了服務(wù)器的工作量;移動(dòng)終端和服務(wù)器數(shù)據(jù)庫表結(jié)構(gòu)的自動(dòng)生成,確保了兩端數(shù)據(jù)庫表結(jié)構(gòu)的一致性,從而能夠有效提高移動(dòng)應(yīng)用軟件開發(fā)效率與質(zhì)量;利用Sync4j同步引擎實(shí)現(xiàn)了移動(dòng)終端和服務(wù)器的數(shù)據(jù)同步,并且只同步變化的數(shù)據(jù),可以有效地節(jié)省資源、提高速度。
[1]WEI Janhua.The research of software flat and data synchronization of intelligent mobile endpoint[D].Chengdu:University of Electronic Science and Technology of China,2005:23-25(in Chinese).[魏建華.智能移動(dòng)終端軟件平臺(tái)及其數(shù)據(jù)同步的研究 [D].成都:電子科技大學(xué),2005:23-25.]
[2]LIU Bin,DING Xuan,PANG Hui.Empolder induction of J2ME mobile telephone [M].Beijing:Posts &Telecom Press,2006:3-4 (in Chinese).[劉斌,丁璇,龐暉.J2ME手機(jī)開發(fā)入門 [M].北京:人民郵電出版社,2006:3-4.]
[3]HAO Yulong,LI Xiangqian.The mobile application empolder for J2ME [M].Beijing:Higher Education Press,Beijing Jiaotong University Press,2006:13-14 (in Chinese). [郝玉龍,李向前.J2ME移動(dòng)應(yīng)用開發(fā) [M].北京:高等教育出版社,北京交通大學(xué)出版社,2006:13-14.]
[4]HU Xuhuai,YANG Zhihe,LI Huan.The programe design for J2ME mobile equipment[M].Beijing:Tsinghua University Press,2005:9-10 (in Chinese).[胡虛懷,楊志和,李煥.J2ME移動(dòng)設(shè)備程序設(shè)計(jì) [M].北京:清華大學(xué)出版社,2005:9-10.]
[5]LIU Jin,GUAN Yong.Analysis of mobile data synchronization protocol SyncML [J].Computer Engineering and Design,2008,29 (9):2166-2168 (in Chinese). [劉瑾,關(guān)永.移動(dòng)數(shù)據(jù)同步SyncML分析 [J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(9):2166-2168.]
[6]Sync4j Java API J2ME developers guide[EB/OL].http://www.sync4j.org,2008.
[7]Sync4j mobile application server [Z].
[8]SyncML Sync Protocal(version 1.1)[S].
[9]KONG Lingdong,KONG Lifang.An analysis and implementation of persisten storage technology based on J2ME [J].Journal of Yancheng Institute of Technology (Natural Science),2006,19 (3):8-12 (in Chinese). [孔令東,孔莉芳.基于J2ME持久存儲(chǔ)技術(shù)的分析與實(shí)現(xiàn) [J].鹽城工學(xué)院學(xué)報(bào) (自然科學(xué)版),2006,19 (3):8-12.]
[10]BrttD,Mclaugblin,Justin Edelson.Java&XML [M].Nanjing:Southease University Press,2007:83-96 (in Chinese).[BrttD,Mclaugblin,Justin Edelson.Java&XML[M].南京:東南大學(xué)出版社,2007:83-96.]
[11]ZHANG Peng,WU Gang.Graphical user interfaces base on XML [EB/OL].http://www2.ccw.com.cn/06/0633/b/0633b12_3.html,2006(in Chinese).[張鵬,吳剛.基于 XML的圖 形 用 戶 界 面 [EB/OL].http://www2.ccw.com.cn/06/0633/b/0633b12_3.html,2006.]
[12]ZHANG Zongping,SUN Shixin.Research and implementation of mobile data synchronization[J].Journal of Chengdu University of Information Technology,2006,21 (1):91-95 (in Chinese).[張宗平,孫世新.移動(dòng)數(shù)據(jù)同步研究與實(shí)現(xiàn) [J].成都信息工程學(xué)院學(xué)報(bào),2006,21 (1):91-95.]
[13]SHEN Minxu,HUA Hu,JI Yonghua,et al.Implementation of data synchronization for distributed heterogeneous database[J].Computer Engineering and Application,2005,18(2):184-186 (in Chinese). [沈敏許,華虎,季永華,等.基于XML的分布式異構(gòu)數(shù)據(jù)庫數(shù)據(jù)同步系統(tǒng)的研究 [J].計(jì)算機(jī)工程與應(yīng)用,2005,18 (2):184-186.]
[14]YAO Lu,YANG Haitao,WANG Zhenghua,et al.Datasync-capacity adaptation handling based on SyncML protocol[J].Computer Engineering,2009,35 (5):68-71 (in Chinese).[姚路,楊海濤,王正華,等.基于SyncML協(xié)議的數(shù)據(jù)同步能力適應(yīng)處理 [J].計(jì)算機(jī)工程,2009,35 (5):68-71.]
[15]David Buchmann.SyncML (synchronization markup language)and its Java implementation sync4j[D].Switzerland:Informatics University of Fribourg,2006:3-7.