專利名稱:用于壓縮以結(jié)構(gòu)化定義語言表達(dá)的無線應(yīng)用程序的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本申請概括地涉及無線網(wǎng)絡(luò)通信和無線通信設(shè)備,更具體地涉及對傳送到這種設(shè)備或從這種設(shè)備接收的無線應(yīng)用程序進(jìn)行壓縮。
背景技術(shù):
隨著被配置為可操作的無線通信設(shè)備和無線通信網(wǎng)絡(luò)的持續(xù)地演進(jìn),設(shè)備用戶期望來自這些設(shè)備的更廣泛的功能。這些通信設(shè)備可以是諸如(但不限于)無線設(shè)備(PDA)等。當(dāng)今的無線設(shè)備通常能夠進(jìn)行諸如Web瀏覽、信息下載等功能,這些功能典型地得到個人計算機(PC)的大范圍和強有力地支持。然而,PC通常具有比無線設(shè)備更大和更快的處理器,并且可使用比在無線設(shè)備上有效的通信資源和電源具有更少限制的通信資源和電源。
對無線設(shè)備上的這些類型的功能和應(yīng)用程序的支持并不是將軟件應(yīng)用程序和操作系統(tǒng)添加到(porting)無線設(shè)備的問題。并不針對無線通信來優(yōu)化這些功能所基于的根本性協(xié)議、傳輸機制和數(shù)據(jù)格式。例如,可擴展標(biāo)記語言(XML)快速地變?yōu)槠渲幸环N用于在不同的計算機系統(tǒng)間交換數(shù)據(jù)的最常用的方案,但其特征在于相當(dāng)大的文件尺寸,因此不適合于基于無線或其它窄帶通信系統(tǒng)進(jìn)行傳輸。在無線設(shè)備中,大量數(shù)據(jù)的傳輸會消耗有限的設(shè)備資源,包括通信資源和電力資源二者。盡管諸如無線應(yīng)用協(xié)議(WAP)二進(jìn)制XML(WBXML)這樣的、目標(biāo)在于無線設(shè)備的壓縮和編碼方案是熟知的,但這些編碼方案通常只提供有限的好處,并且必須要查閱(pass)包含設(shè)備和應(yīng)用程序源之間的編碼方案的字典。WBXML編碼方案的其它不足在于該編碼方案還需要在將編碼應(yīng)用程序從應(yīng)用程序提供商傳遞到接收方通信設(shè)備的過程中,查閱利用編碼應(yīng)用程序定義的二進(jìn)制字典。
為無線網(wǎng)絡(luò)通信中的應(yīng)用程序傳送提供應(yīng)用程序壓縮的系統(tǒng)和方法,以消除或減輕至少某些上面提到的不足。
發(fā)明內(nèi)容
可擴展標(biāo)記語言(XML)快速地變?yōu)槠渲幸环N用于在不同的計算機系統(tǒng)間交換數(shù)據(jù)的最常用的方案,但其特征在于相當(dāng)大的文件尺寸,因此不適合于基于無線或其它窄帶通信系統(tǒng)進(jìn)行傳輸。在無線設(shè)備中,大量數(shù)據(jù)的傳輸會消耗有限的設(shè)備資源,包括通信資源和電力資源二者。盡管諸如無線應(yīng)用協(xié)議(WAP)二進(jìn)制XML(WBXML)這樣的、目標(biāo)在于無線設(shè)備的壓縮和編碼方案是熟知的,但這些編碼方案通常只提供有限的好處。WBXML編碼方案的其它不足在于該編碼方案還需要在將編碼應(yīng)用程序從應(yīng)用程序提供商傳遞到接收方通信設(shè)備的過程中,查閱利用編碼定義的二進(jìn)制字典。
與現(xiàn)有的編碼方案相對比,提供用于壓縮軟件應(yīng)用程序的非顯示元素的系統(tǒng)和方法。所接收的軟件應(yīng)用程序包括通用標(biāo)簽和軟件應(yīng)用程序的等級屬性、應(yīng)用程序的專用元素和可顯示數(shù)據(jù)。對通用標(biāo)簽和屬性進(jìn)行編碼,并且還對應(yīng)用程序的專用元素進(jìn)行編碼,而可顯示數(shù)據(jù)仍然不被編碼。從而可以生成包括編碼通用標(biāo)簽和屬性、編碼應(yīng)用程序?qū)S脭?shù)據(jù)和未編碼可顯示數(shù)據(jù)的壓縮軟件應(yīng)用程序。編碼應(yīng)用程序的信息源和接收目的地設(shè)備可以共享壓縮碼的知識,所述壓縮碼用于對預(yù)定義的通用和預(yù)定義的應(yīng)用程序?qū)S迷剡M(jìn)行編碼。
因此,提供一種用于壓縮以結(jié)構(gòu)化定義語言來表達(dá)的無線軟件應(yīng)用程序的方法,所述應(yīng)用程序具有多個根據(jù)應(yīng)用軟件模板來預(yù)定義的可編碼元素,以及多個被配置為在無線設(shè)備的用戶接口上進(jìn)行表達(dá)的未編碼顯示參數(shù),所述方法包括步驟根據(jù)包括多個用于表示作為可編碼元素的所述應(yīng)用軟件預(yù)定義元素的代碼的壓縮字典來選擇壓縮格式;使用所選的壓縮格式對預(yù)定義元素的通用元素進(jìn)行編碼,所述通用元素表示用于軟件應(yīng)用程序等級的通用結(jié)構(gòu);使用所選的壓縮格式對應(yīng)用程序內(nèi)容的應(yīng)用程序?qū)S迷剡M(jìn)行編碼,所述應(yīng)用程序?qū)S迷乇话ㄔ谒鲱A(yù)定義元素中,以未編碼的格式來保持所述應(yīng)用程序內(nèi)容的顯示參數(shù);以及組合未編碼的顯示參數(shù)、已編碼的通用元素和已編碼的用于生成應(yīng)用程序被壓縮版本的應(yīng)用程序?qū)S迷兀黄渲薪柚诒粔嚎s軟件程序的接收無線設(shè)備、通過使用所述模板內(nèi)容的知識來配置所述壓縮字典。
因此,提供一種對以結(jié)構(gòu)化定義語言來表達(dá)的被壓縮的無線軟件應(yīng)用程序進(jìn)行解壓縮的方法,所述應(yīng)用程序具有多個根據(jù)應(yīng)用軟件模板來預(yù)定義的可編碼元素,以及多個被配置為在接收方無線設(shè)備的用戶接口上進(jìn)行表達(dá)的未編碼顯示參數(shù),所述模板內(nèi)容的知識在所述設(shè)備和被壓縮應(yīng)用程序的應(yīng)用程序提供商之間共享,所述方法包括步驟根據(jù)包括多個用于表示作為可編碼元素的所述應(yīng)用軟件預(yù)定義元素的代碼的壓縮字典來選擇解壓縮格式;使用所選的壓縮格式對所選的預(yù)定義元素進(jìn)行解碼,所述預(yù)定義元素包括通用元素,該通用元素表示用于軟件應(yīng)用程序和所述應(yīng)用程序內(nèi)容的應(yīng)用程序?qū)S迷氐牡燃壍耐ㄓ媒Y(jié)構(gòu);以未編碼的格式來保持所述應(yīng)用程序內(nèi)容的顯示參數(shù);并且在被配置為隨后在所述設(shè)備的運行時間環(huán)境上執(zhí)行的、未壓縮的應(yīng)用程序版本中包括已解碼的預(yù)定義元素和顯示參數(shù)。
還提供一種用于壓縮以結(jié)構(gòu)化定義語言來表達(dá)的無線軟件應(yīng)用程序的系統(tǒng),所述應(yīng)用程序具有多個可編碼的預(yù)定義元素,以及多個被配置為在無線設(shè)備的用戶接口上進(jìn)行表達(dá)的未編碼顯示參數(shù),所述系統(tǒng)包括應(yīng)用程序模板,用于定義所述預(yù)定義的元素并且包括有關(guān)顯示參數(shù)的信息;壓縮字典,用于表示包括多個表示作為可編碼元素的所述應(yīng)用程序預(yù)定義元素的代碼的壓縮格式;編碼器,用于使用所選的壓縮格式對預(yù)定義元素進(jìn)行編碼,所述預(yù)定義元素包括通用元素,該通用元素表示用于軟件應(yīng)用程序和所述應(yīng)用程序內(nèi)容的應(yīng)用程序?qū)S迷氐牡燃壍耐ㄓ媒Y(jié)構(gòu);以未編碼的格式來保持所述應(yīng)用程序內(nèi)容的顯示參數(shù);以及生成器,用于組合未編碼的顯示參數(shù)和用于生成應(yīng)用程序被壓縮版本的已編碼預(yù)定義元素;其中借助于被壓縮軟件程序的接收方無線設(shè)備、通過使用所述模板內(nèi)容的共享知識來配置所述壓縮字典。
此外,提供一種用于對以結(jié)構(gòu)化定義語言來表達(dá)的壓縮無線軟件應(yīng)用程序進(jìn)行解壓縮的系統(tǒng),所述應(yīng)用程序具有多個可編碼的預(yù)定義元素,以及多個被配置為在接收方無線設(shè)備的用戶接口上進(jìn)行表達(dá)的未編碼顯示參數(shù),所述系統(tǒng)包括應(yīng)用程序模板,用于定義所述預(yù)定義的元素并且包括有關(guān)顯示參數(shù)的信息,以及在所述設(shè)備和被壓縮應(yīng)用程序的應(yīng)用程序提供商之間共享的所述模板內(nèi)容的知識;壓縮字典,用于表示包括多個表示作為可編碼元素的所述應(yīng)用程序預(yù)定義元素的代碼的壓縮格式;解碼器,用于使用所選的壓縮格式對預(yù)定義元素進(jìn)行解碼,所述預(yù)定義元素包括通用元素,該通用元素表示用于軟件應(yīng)用程序和所述應(yīng)用程序內(nèi)容的應(yīng)用程序?qū)S迷氐牡燃壍耐ㄓ媒Y(jié)構(gòu);以未編碼的格式來保持所述應(yīng)用程序內(nèi)容的顯示參數(shù);以及生成器,包括未編碼的顯示參數(shù)和在應(yīng)用程序的未壓縮版本中的解碼預(yù)定義元素,所述應(yīng)用程序被配置為隨后在所述設(shè)備的運行時間環(huán)境上來執(zhí)行。
還提供一種用于對以結(jié)構(gòu)化定義語言來表達(dá)的壓縮無線軟件應(yīng)用程序進(jìn)行解壓縮的計算機程序產(chǎn)品,所述應(yīng)用程序具有多個可編碼的預(yù)定義元素,以及多個被配置為在接收方無線設(shè)備的用戶接口上進(jìn)行表達(dá)的未編碼顯示參數(shù),所述計算機程序產(chǎn)品包括計算機可讀介質(zhì);在所述計算機可讀介質(zhì)上存儲的應(yīng)用模板模塊,所述應(yīng)用模板模塊用于定義所述預(yù)定義的元素并且包括有關(guān)顯示參數(shù)的信息,以及在所述設(shè)備和被壓縮應(yīng)用程序的應(yīng)用程序提供商之間共享的所述模板內(nèi)容的知識;在所述計算機可讀介質(zhì)上存儲的壓縮字典模塊,所述壓縮字典模塊用于表示包括多個表示作為可編碼元素的所述應(yīng)用程序預(yù)定義元素的代碼的壓縮格式;在所述計算機可讀介質(zhì)上存儲的解碼器模塊,所述解碼器模塊用于使用所選的壓縮格式對預(yù)定義元素進(jìn)行解碼,所述預(yù)定義元素包括通用元素,該通用元素表示用于軟件應(yīng)用程序和所述應(yīng)用程序內(nèi)容的應(yīng)用程序?qū)S迷氐牡燃壍耐ㄓ媒Y(jié)構(gòu);以未編碼的格式來保持所述應(yīng)用程序內(nèi)容的顯示參數(shù);以及與所述解碼器模塊連接的生成器模塊,所述生成器模塊包括未編碼的顯示參數(shù)和在應(yīng)用程序的未壓縮版本中的解碼預(yù)定義元素,所述應(yīng)用程序被配置為隨后在所述設(shè)備的運行時間環(huán)境上來執(zhí)行。
通過參照下面的附圖和這里的詳細(xì)說明可以獲得更好地理解,其中圖1是提供從通信設(shè)備接入到信息源的通信系統(tǒng)的框圖;
圖2是圖1的設(shè)備的框圖;圖3a是表示壓縮圖1中系統(tǒng)的軟件應(yīng)用程序的方法的流程圖;圖3b是表示解壓縮圖1中系統(tǒng)的軟件應(yīng)用程序的方法的流程圖;圖4是用于處理圖1中系統(tǒng)的被壓縮軟件應(yīng)用程序的系統(tǒng)的框圖;圖5是圖1中系統(tǒng)的軟件應(yīng)用程序壓縮工具的框圖;圖6是作為第一壓縮軟件應(yīng)用程序系統(tǒng)拓?fù)浣Y(jié)構(gòu)的圖1的系統(tǒng)的另一個示例;以及圖7是作為第二壓縮軟件應(yīng)用程序系統(tǒng)拓?fù)浣Y(jié)構(gòu)的圖1的系統(tǒng)的另一個示例。
具體實施例方式
網(wǎng)絡(luò)系統(tǒng)參照圖1,網(wǎng)絡(luò)系統(tǒng)10包括多個設(shè)備12,該多個設(shè)備12用于通過請求/響應(yīng)消息105(即合適的通信信道或信道的組合,諸如調(diào)制解調(diào)器、串行連接或包括但不限于連接的廣域網(wǎng)(WAN)16(諸如但不限于因特網(wǎng))的計算機網(wǎng)絡(luò),)與一個或多個通常的信息服務(wù)13進(jìn)行相互作用,通常的信息服務(wù)13具有數(shù)據(jù)服務(wù)器18和相關(guān)的信息源20。數(shù)據(jù)服務(wù)器18有效地使得設(shè)備12接入到信息服務(wù)13的信息源20。信息服務(wù)13的功能可以集成到單獨的計算機系統(tǒng)中,或者通過適應(yīng)合適的通信接口的多個計算機系統(tǒng)進(jìn)行分發(fā)。設(shè)備12可以諸如是(但不限于)PDA、蜂窩電話等。通常的信息服務(wù)13可以是Web服務(wù)和/或其它的服務(wù),諸如(但不限于)SQL數(shù)據(jù)庫、基于IDL的CORBA和RMI/IIOP系統(tǒng),以及COM/DCOM部件。此外,系統(tǒng)10還具有將無線設(shè)備12連接到WAN16的無線網(wǎng)絡(luò)14。
無線設(shè)備12是適合于在無線通信網(wǎng)絡(luò)14中進(jìn)行操作的無線通信設(shè)備,諸如具有至少數(shù)據(jù)和可能的語音通信能力的雙向通信設(shè)備。無線網(wǎng)絡(luò)網(wǎng)關(guān)15在無線網(wǎng)絡(luò)14和WAN16之間提供接口,并且執(zhí)行諸如無線設(shè)備尋址以及將數(shù)據(jù)存儲并轉(zhuǎn)發(fā)到該無線設(shè)備12或從該無線設(shè)備12進(jìn)行轉(zhuǎn)發(fā)的功能。圖1中示出的無線網(wǎng)絡(luò)網(wǎng)關(guān)15提供了無線網(wǎng)絡(luò)14和諸如因特網(wǎng)的WAN16之間的接口。諸如無線設(shè)備尋址、將數(shù)據(jù)存儲并轉(zhuǎn)發(fā)到該無線設(shè)備12或從該無線設(shè)備12進(jìn)行轉(zhuǎn)發(fā)的功能以及其它的接口功能可以通過無線網(wǎng)絡(luò)網(wǎng)關(guān)15來執(zhí)行。根據(jù)無線設(shè)備12提供的功能,可以操作諸如(但不限于)數(shù)據(jù)消息處理設(shè)備、雙向?qū)ず魴C、具有數(shù)據(jù)消息處理能力的移動電話、無線因特網(wǎng)設(shè)備、數(shù)據(jù)通信設(shè)備(具有或不具有電話功能)、和/或被配置為與計算機系統(tǒng)或其它電子設(shè)備一同操作的無線調(diào)制解調(diào)器,然而這里僅參照無線設(shè)備12。應(yīng)當(dāng)承認(rèn)的是,其它的設(shè)備和計算機(未示出)也可以經(jīng)由WAN16和除了圖1中所示的網(wǎng)絡(luò)之外的相關(guān)網(wǎng)絡(luò)與數(shù)據(jù)服務(wù)器18相連。
為了簡單起見,例如可以將Web服務(wù)13選擇為表示在下面系統(tǒng)10的描述中的信息服務(wù)13。然而,應(yīng)當(dāng)承認(rèn)的是,如果需要的話,其它通常的信息服務(wù)13可以替代Web服務(wù)13。此外,為了簡單起見,下文中將網(wǎng)絡(luò)14、16和任何允許在系統(tǒng)10的這些網(wǎng)絡(luò)中相互通信的合適的網(wǎng)關(guān)服務(wù)器總的稱為“網(wǎng)絡(luò)16”。
在無線設(shè)備12中的通信子系統(tǒng)的特別設(shè)計取決于無線設(shè)備12打算在其中運行的通信網(wǎng)絡(luò)14。例如,針對北美市場的無線設(shè)備12可以包括被設(shè)計為在MobitexTM移動通信系統(tǒng)或DataTACTM移動通信系統(tǒng)中進(jìn)行操作的通信子系統(tǒng),而打算在歐洲使用的無線設(shè)備12可以并入通用分組無線電業(yè)務(wù)(GPRS)通信子系統(tǒng)。其它類型的無線設(shè)備和網(wǎng)絡(luò)也是所期望的。實際上可以與任何無線網(wǎng)絡(luò)14和無線設(shè)備12相結(jié)合地來執(zhí)行這里所描述的系統(tǒng)和方法。
再次參照圖1,設(shè)備12在與Web服務(wù)13的數(shù)據(jù)服務(wù)器18進(jìn)行通信時,分別發(fā)送和接收請求/響應(yīng)消息105。設(shè)備12可以作為Web服務(wù)13的Web客戶端,通過使用消息頭信息形式的請求/響應(yīng)消息105進(jìn)行操作,例如請求并接收產(chǎn)品報價和來自在線銷售商的可用信息。例如,Web服務(wù)13是在設(shè)備12上的客戶端應(yīng)用程序320(參見圖2)經(jīng)由網(wǎng)絡(luò)16與其進(jìn)行通信以便向設(shè)備12的用戶提供可用性的一個系統(tǒng)。網(wǎng)絡(luò)系統(tǒng)10使用用于減少應(yīng)用程序302的尺寸的壓縮方案,正如下面進(jìn)一步所描述的,其可以用于設(shè)備12的覆蓋區(qū)域(footprint)和/或網(wǎng)絡(luò)16的帶寬考慮。在與Web服務(wù)13進(jìn)行相互作用期間,應(yīng)當(dāng)承認(rèn)消息105用于發(fā)送應(yīng)用程序302和/或設(shè)備12上的應(yīng)用程序302的操作(例如)期間的相關(guān)的消息(包括顯示數(shù)據(jù))。
為了滿足Web服務(wù)13的適當(dāng)?shù)恼埱?響應(yīng)消息105,數(shù)據(jù)服務(wù)器18可以通過各種用于將相關(guān)商業(yè)邏輯(方法)暴露給設(shè)備12的客戶端應(yīng)用程序302(參見圖2)的協(xié)議(諸如但不限于HTTP和組件API)與信息源20進(jìn)行通信。通過數(shù)據(jù)服務(wù)器18,設(shè)備12可以訪問能夠與數(shù)據(jù)服務(wù)器18進(jìn)行通信的信息源20。數(shù)據(jù)服務(wù)器18還可以包括Web服務(wù)13的接口軟件,諸如但不限于使用一種或多種結(jié)構(gòu)化定義和/或腳本語言的規(guī)范,所述腳本語言諸如是Web服務(wù)描述語言(WSDL)和商業(yè)處理執(zhí)行語言(BPEL)。信息源20可以是在數(shù)據(jù)服務(wù)器18處的本地數(shù)據(jù)存儲器,或者是例如與Web服務(wù)器(未示出)相關(guān)的遠(yuǎn)端存儲器。此外,數(shù)據(jù)服務(wù)器18和信息源20可以包括分發(fā)式Web服務(wù)13,并且通過網(wǎng)絡(luò)16(包括因特網(wǎng))(而不是圖1所示的直接連接)進(jìn)行通信??梢詫⑿畔⒃?0認(rèn)為是數(shù)據(jù)對于設(shè)備12有效的一個源。該數(shù)據(jù)可以由設(shè)備12來請求,或者可由信息源20發(fā)送到設(shè)備12而不需要首先被請求。應(yīng)當(dāng)理解,如果需要,信息源20可以結(jié)合數(shù)據(jù)服務(wù)器18或者某些其它的方便Web服務(wù)13的數(shù)據(jù)交換的裝置。
設(shè)備12的應(yīng)用程序302(參見圖2)可以使用信息源20的商業(yè)邏輯,該商業(yè)邏輯類似于調(diào)用有關(guān)對象(或功能)的方法。應(yīng)當(dāng)承認(rèn),與信息源20相關(guān)的客戶端應(yīng)用程序302可以通過經(jīng)由網(wǎng)絡(luò)16的消息105直接下載/上載到設(shè)備12。進(jìn)一步得到承認(rèn)的是,設(shè)備12可以經(jīng)由網(wǎng)絡(luò)16與一個或多個Web服務(wù)13進(jìn)行通信。同樣得到承認(rèn)的是,如果需要的話,設(shè)備12可以直接與信息源20相連,從而繞過數(shù)據(jù)服務(wù)器18。在可替換的配置中,如下面所描述的,可以將數(shù)據(jù)服務(wù)器18的功能結(jié)合到網(wǎng)關(guān)15或信息源20中。例如,應(yīng)用程序服務(wù)提供商可以組合數(shù)據(jù)服務(wù)器18和信息源20。
盡管在圖1中示出了無線設(shè)備12、無線網(wǎng)絡(luò)14和無線網(wǎng)絡(luò)網(wǎng)關(guān)15,但是所公開的系統(tǒng)和方法還可以應(yīng)用于各種類型的無線網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、無線通信系統(tǒng)和無線設(shè)備。例如,處理資源和通信鏈路帶寬往往并不被限制到桌上型計算機系統(tǒng)和有線通信鏈路,和無線設(shè)備以及無線通信網(wǎng)絡(luò),而是可以在某些實施方案中壓縮數(shù)據(jù)的尺寸,還可以經(jīng)由有線連接提供更快的文件的傳送。
服務(wù)器環(huán)境一般來說,Web服務(wù)13是對傳統(tǒng)的基于瀏覽器和客戶—服務(wù)器TCP/IP連接的基礎(chǔ)結(jié)構(gòu)和應(yīng)用程序的一種替換。最初以一般的機器對機器(M2M)通信協(xié)議開始,Web服務(wù)13變?yōu)橛糜谌魏畏?wù)對服務(wù)(S2S)、或服務(wù)對客戶(S2C)通信的標(biāo)準(zhǔn)。基于一組標(biāo)準(zhǔn)協(xié)議(例如WSDL、簡單對象接入?yún)f(xié)議(SOAP)、統(tǒng)一描述、發(fā)現(xiàn)和集成(UDDI)),Web服務(wù)13可以提供一個例如基于XML的中性平臺通信管道,該平臺可以支持同步和/或異步通信消息105。圖1的系統(tǒng)10優(yōu)選地與S2C模型相關(guān),并且涉及根據(jù)某種通用終端設(shè)備12運行的Web服務(wù)13的客戶。
參照圖1,Web服務(wù)13提供由設(shè)備12的客戶應(yīng)用程序302(參見圖2)使用的信息消息105。作為選擇,或者另外,Web服務(wù)13可以接收和使用由設(shè)備12提供的信息消息105,或執(zhí)行代表在設(shè)備11上運行的客戶應(yīng)用程序302的任務(wù)。Web服務(wù)13可以認(rèn)為是數(shù)據(jù)服務(wù)器18的一種軟件服務(wù),這種軟件服務(wù)可以實現(xiàn)為使用在UDDI中登記的WSDL表達(dá)的一種接口,并且可以通過消息105與客戶設(shè)備12進(jìn)行通信,該客戶設(shè)備12通過SOAP被暴露在網(wǎng)絡(luò)104上。SOAP是定義了用于消息105的XML格式(包括在SOAP要素中公開的已知形式的XML片段)的一種規(guī)范。作為選擇,Web服務(wù)13可以使用其它已知的通信協(xié)議,消息105的格式,以及可以以其它的Web服務(wù)語言來表達(dá)接口,這些Web服務(wù)語言不同于上面描述的用于與設(shè)備12通信中的Web服務(wù)語言。
通信設(shè)備再次參照圖1和圖2,設(shè)備12是諸如(但不限于)移動電話、PDA、雙向?qū)ず魴C或雙模通信設(shè)備的設(shè)備。設(shè)備12包括經(jīng)由連接218連接到設(shè)備基礎(chǔ)結(jié)構(gòu)204的網(wǎng)絡(luò)連接接口200,諸如無線收發(fā)信機、串行/并行端口或調(diào)制解調(diào)器。連接接口200在設(shè)備12操作期間可連接到網(wǎng)絡(luò)16,諸如通過RF鏈路連接到無線網(wǎng)絡(luò)14,該RF鏈路可以使設(shè)備12彼此進(jìn)行通信,并且經(jīng)由網(wǎng)絡(luò)16與外部系統(tǒng)(諸如Web服務(wù)13)進(jìn)行通信,并且用于協(xié)調(diào)客戶應(yīng)用程序302和Web服務(wù)13之間的請求/響應(yīng)消息105。網(wǎng)絡(luò)16支持在設(shè)備12和連接到網(wǎng)絡(luò)16的外部系統(tǒng)之間的請求/響應(yīng)消息105中的數(shù)據(jù)傳輸。網(wǎng)絡(luò)16也可以支持用于在設(shè)備12和在網(wǎng)絡(luò)16外部的設(shè)備之間的電話呼叫的語音通信。將根據(jù)其中無線設(shè)備12易于操作的無線通信網(wǎng)絡(luò)14來特別地設(shè)計無線設(shè)備12內(nèi)的網(wǎng)絡(luò)連接接口200。例如,目標(biāo)在于北美市場的無線設(shè)備12可以包括被設(shè)計為在Mobitex TM移動通信系統(tǒng)或DataTAC TM移動通信系統(tǒng)中操作的網(wǎng)絡(luò)連接接口,而旨在歐洲使用的無線設(shè)備12可以結(jié)合通用分組無線電業(yè)務(wù)(GPRS)的網(wǎng)絡(luò)連接接口200。其它類型的無線設(shè)備和數(shù)據(jù)傳輸協(xié)議也是所期望的,諸如但不限于碼分多址(CDMA)。
再次參照圖2,設(shè)備12還具有用戶接口202,通過連接222與設(shè)備基礎(chǔ)結(jié)構(gòu)204連接,以便與用戶(未示出)相互作用。用戶接口202包括一個或多個用戶輸入設(shè)備,諸如但不限于QWERTY鍵盤、鍵盤、導(dǎo)航鍵、觸筆、鼠標(biāo)、麥克風(fēng),還包括用戶輸出設(shè)備,諸如LCD顯示屏顯示器和/或揚聲器。如果顯示屏是觸摸感應(yīng)式的,則顯示屏也可以用作由設(shè)備基礎(chǔ)結(jié)構(gòu)204控制的用戶輸入設(shè)備。用戶接口202由設(shè)備12的用戶用于協(xié)調(diào)系統(tǒng)10(參見圖1)上的請求/響應(yīng)消息信息105,該系統(tǒng)10由客戶運行時間環(huán)境206的客戶應(yīng)用程序302來使用,下面將進(jìn)一步說明。
再次參照圖2,通過設(shè)備基礎(chǔ)結(jié)構(gòu)204可以進(jìn)行設(shè)備12的操作。設(shè)備基礎(chǔ)結(jié)構(gòu)204包括計算機處理器208和相關(guān)的存儲器模塊210;計算機處理器208可以包括一個或多個處理單元,該處理單元可以包括一個或多個通用處理器和/或?qū)S锰幚砥?例如ASCI,F(xiàn)PGA,DSP等)。計算機處理器208通過執(zhí)行相關(guān)的指令來操作設(shè)備12的網(wǎng)絡(luò)接口200、用戶接口202和客戶運行時間環(huán)境206,這些相關(guān)指令由位于存儲器模塊210中的操作系統(tǒng)和客戶應(yīng)用程序302來提供。
此外,應(yīng)當(dāng)承認(rèn)的是,設(shè)備基礎(chǔ)結(jié)構(gòu)204可以包括與處理器208相連的計算機可讀存儲介質(zhì)212,其用于將指令提供給處理器208和/或用于在存儲器模塊210中加載/更新客戶應(yīng)用程序302。計算機可讀存儲介質(zhì)212可以包括硬件和/或軟件,諸如(僅借助于實例)磁盤、磁帶、諸如CD/DVD ROM的光可讀介質(zhì)以及存儲卡。在每一種情況下,計算機可讀存儲介質(zhì)212都可以采用小磁盤、軟盤、盒式磁帶、硬盤驅(qū)動器、固體存儲器卡或在存儲器模塊210中提供的RAM的形式。應(yīng)當(dāng)注意,上述舉例列出的計算機可讀介質(zhì)212可以單獨使用或組合使用。同樣得到承認(rèn)的是,可以通過Web服務(wù)13(或第三方信源)基于網(wǎng)絡(luò)16(參見圖1)來提供用于處理器208的指令和/或用于在存儲器模塊210中加載/更新客戶應(yīng)用程序302的指令,以便配置用于與Web服務(wù)13相互作用的設(shè)備12。
參照圖2,設(shè)備12通過客戶運行時間環(huán)境206來執(zhí)行應(yīng)用程序302,該客戶運行時間環(huán)境206可以將應(yīng)用程序302轉(zhuǎn)換為本機代碼,該本機代碼由設(shè)備基礎(chǔ)結(jié)構(gòu)204中的處理器208來執(zhí)行;多個這樣的運行時間環(huán)境可潛在地由給定設(shè)備12的處理框架206來使用。作為選擇,可以以本機代碼來執(zhí)行應(yīng)用程序302,或者通過設(shè)備12上的其它軟件模塊或操作系統(tǒng)來解釋該應(yīng)用程序302。在任何一種情況下,組件應(yīng)用程序302都在由設(shè)備12提供的終端運行時間環(huán)境中運行。
再次參照圖1,可以將設(shè)備12提供的客戶運行時間環(huán)境配置為使得設(shè)備12作為Web服務(wù)13的Web客戶端進(jìn)行操作。設(shè)備12的客戶運行時間環(huán)境優(yōu)選地能夠產(chǎn)生、管理(hosting)和執(zhí)行在設(shè)備12上的客戶運行程序302;如果多個運行時間環(huán)境有效,則可以選擇專用的一個運行時間環(huán)境由給定的應(yīng)用程序302來使用。此外,客戶運行時間環(huán)境的專用功能可以包括諸如(但不限于)對語言的支持、協(xié)調(diào)存儲器分配、組網(wǎng)、在I/O操作期間的數(shù)據(jù)管理、在設(shè)備12的輸出設(shè)備上協(xié)調(diào)圖形,以及提供對核心目標(biāo)定向等級的接入并支持文件/程序庫。由設(shè)備12執(zhí)行的運行時間環(huán)境例如可以包括諸如(但不限于)微軟的通用語言運行時間(CLR)和Sun Microsystems的Java Runtime Environment(JRE),這些運行時間環(huán)境便于產(chǎn)生、傳輸和接收在Web服務(wù)13和設(shè)備12之間的網(wǎng)絡(luò)消息105。
壓縮方案通常,無線應(yīng)用的空間迅速地增加,而且利用不同的配置平臺和設(shè)備12,XML(例如)正在變?yōu)樵谲浖?yīng)用程序定義中選擇使用的結(jié)構(gòu)化定義語言。使用UML,可以定義軟件應(yīng)用程序屏幕、數(shù)據(jù)結(jié)構(gòu)和通過請求/響應(yīng)消息105在設(shè)備12和數(shù)據(jù)服務(wù)器18或應(yīng)用程序服務(wù)提供商13之間進(jìn)行交換的消息?;谠O(shè)備來執(zhí)行的環(huán)境206從應(yīng)用程序302的語言(例如XML)定義中產(chǎn)生本機軟件代碼組件,或者直接在用于表示應(yīng)用程序302的結(jié)構(gòu)化定義的語言上進(jìn)行操作。換句話說,運行時間環(huán)境206要么直接執(zhí)行XML代碼,要么在執(zhí)行之前首先將XML代碼轉(zhuǎn)變?yōu)橄鄳?yīng)的本機代碼表示。
XML方法允許軟件應(yīng)用程序開發(fā)商以具有最小輕便性問題的不同設(shè)備12為目標(biāo)建立軟件應(yīng)用程序302。為了使執(zhí)行環(huán)境206(參見圖2)能夠與定義XML的應(yīng)用程序相互作用,相關(guān)XML定義的格式優(yōu)選地與預(yù)先定義的應(yīng)用程序定義模板42(諸如但不限于文件類型的定義(DTD)或XML方案)(參見圖4)相一致。這就創(chuàng)建了唯一的一種情形,即設(shè)備12和內(nèi)容或服務(wù)提供商13二者共享包括在定義模板42中的定義格式的知識。該共享軟件應(yīng)用程序302的定義格式的知識,為基于通常在熟知的WBXML壓縮中使用的更多的壓縮XML軟件應(yīng)用程序302提供了機會,例如,得到認(rèn)可的是下面描述的針對基于XML應(yīng)用程序302的壓縮方案可以應(yīng)用于其它具有預(yù)定義定義格式的結(jié)構(gòu)化定義語言,諸如但不限于包括XML變型的其它標(biāo)記語言。
根據(jù)在這些實施方式中其它的可能特征,通過對至少某些未顯示數(shù)據(jù)的壓縮(例如,二進(jìn)制混淆)可以得到改進(jìn)的壓縮結(jié)果,從而在應(yīng)用程序302的內(nèi)容壓縮期間,在非顯示數(shù)據(jù)和顯示數(shù)據(jù)之間做出區(qū)別(對應(yīng)用程序302的終端用戶來說)。在這種情形下,僅可以對預(yù)先定義的應(yīng)用程序元素進(jìn)行編碼,諸如XML標(biāo)記和屬性,這些標(biāo)記和屬性對于軟件應(yīng)用程序的給定類和沒有顯示給設(shè)備12的終端用戶的特定值是公知的。不會通過壓縮方案對應(yīng)用程序302的這些顯示給設(shè)備12的用戶的參數(shù)內(nèi)容進(jìn)行編碼。從而,這些壓縮方案可以減少所規(guī)定的空中下載(OTA)例如,被定義的XML、軟件應(yīng)用程序302)的尺寸。
因此,如下面進(jìn)一步描述的壓縮方案可以采用一個事實,即在不壓縮的情況下,僅將可顯示的數(shù)據(jù)/參數(shù)(針對設(shè)備12的用戶接口202上的應(yīng)用程序用戶(參見圖2))經(jīng)由消息105發(fā)送到設(shè)備12。諸如軟件應(yīng)用程序302的內(nèi)部名稱和屬性這樣的通用預(yù)定義的元素可以進(jìn)行二進(jìn)制編碼,并且以壓縮格式發(fā)送到設(shè)備12。在設(shè)備12上,可能沒有必要將這些已編碼預(yù)定義名稱和屬性解碼為原始未編碼的名稱和屬性(由各個開發(fā)商來定義),因為這些名稱和屬性僅在內(nèi)部存儲,并不對設(shè)備12(參見圖2)的用戶接口202上的用戶顯示。一旦到達(dá)設(shè)備12,在某些實施方式中,就可以根據(jù)執(zhí)行環(huán)境206(參見圖2)的性能將壓縮應(yīng)用軟件302的已編碼應(yīng)用程序內(nèi)部名稱和屬性恢復(fù)為已產(chǎn)生的特征序列(即,本機代碼或其它可執(zhí)行的格式),或保持為被壓縮的二進(jìn)制格式。已經(jīng)得到承認(rèn)的是,壓縮方案可以將除了二進(jìn)制以外的變換格式用于表示應(yīng)用程序302的被壓縮的預(yù)定義元素。
參照圖4,應(yīng)當(dāng)注意,模板42可以在設(shè)備12和應(yīng)用程序302的Web服務(wù)13(例如內(nèi)容或服務(wù)提供商)之間共享,因此對于在規(guī)定時間、在對用于處理的元素進(jìn)行解碼所需的運行時間環(huán)境206中解碼通用應(yīng)用程序元素(例如,對多個應(yīng)用程序302公知的XML元素標(biāo)記和屬性)是有效地。此外,與旨在用戶接口202(參見圖2)上進(jìn)行顯示的動態(tài)變化的元素(可顯示的參數(shù))相比較,模板42的內(nèi)容可以包括應(yīng)用程序302的預(yù)定義應(yīng)用元素。這些顯示元素可以由Web服務(wù)13和設(shè)備12的用戶動態(tài)地來產(chǎn)生。因此,沒有必要利用已編碼的軟件應(yīng)用程序302及相關(guān)的編碼響應(yīng)/請求消息105來重復(fù)地查閱壓縮字典38。應(yīng)當(dāng)承認(rèn)的是,已編碼的預(yù)定義應(yīng)用程序?qū)S煤屯ㄓ脭?shù)據(jù)定義通常不包括任何可對設(shè)備用戶顯示的信息,并且可以以編碼的形式來保持,以便當(dāng)在設(shè)備12上加載或者相反在設(shè)備12上提供上述內(nèi)容時,進(jìn)一步減少應(yīng)用程序302的覆蓋區(qū)域。例如,如果需要的話,字典38可以使用二進(jìn)制壓縮格式。
再一次參照圖4,將設(shè)備12的運行時間環(huán)境206配置為處理經(jīng)由消息105接收的(例如)被壓縮的軟件應(yīng)用程序302。本領(lǐng)域的普通技術(shù)人員將理解在圖4中僅包括直接包含在處理壓縮軟件應(yīng)用程序302中的元素,設(shè)備12典型地包括除了圖2中所示的部件之外的其它部件。能夠用于被壓縮軟件應(yīng)用程序302的設(shè)備12包括支持軟件應(yīng)用程序302下載的應(yīng)用程序規(guī)定服務(wù)32,而且還可以包括用于解壓縮或恢復(fù)所接收的被壓縮XML應(yīng)用程序302的應(yīng)用程序解碼器34。
解碼器34的壓縮字典38包括用于通用預(yù)定義元素(例如,XML名稱和屬性)解碼的通用元素字典400,和用于處理預(yù)定義特定應(yīng)用元素(例如屬性值)的應(yīng)用程序?qū)S迷刈值?02。第一通用元素解碼器36(諸如但不限于WBXML解碼器)使用字典400來解碼通用XML元素和可以定義應(yīng)用程序302資源的屬性。應(yīng)用程序定義模板42包括有關(guān)應(yīng)用程序302的給定類(class)的通用結(jié)構(gòu)的信息。例如(但不限于)由DTD或XML方案所定義的,而且還可以包括有關(guān)可顯示參數(shù)和其它未編碼數(shù)據(jù)的知識,以便協(xié)調(diào)所述處理及其顯示。第二值解碼器/名稱生成器40使用應(yīng)用程序?qū)S米值?02進(jìn)行恢復(fù),并且例如在某些實施方式中,如果需要的話通過運行時間206來使預(yù)定義的應(yīng)用程序?qū)S迷赜行?。隨意地,第二解碼器40還對作為結(jié)果的解碼應(yīng)用程序302定義進(jìn)行處理,以產(chǎn)生或恢復(fù)基于特征的屬性值,其中設(shè)備執(zhí)行環(huán)境206不能以壓縮格式來存儲并執(zhí)行這些參數(shù)。
再次參照圖4,當(dāng)針對設(shè)備12規(guī)定被壓縮的應(yīng)用程序302的定義時,第一解碼器36從壓縮字典38中針對無線軟件應(yīng)用程序302的相應(yīng)等級來檢索字典400,并且相應(yīng)地對通用預(yù)定義的XML元素和屬性進(jìn)行解碼。在解碼通用預(yù)定義XML元素和屬性之后,部分解碼的應(yīng)用程序302的定義被傳送至第二解碼器40,該第二解碼器40檢索應(yīng)用程序?qū)S米值?02,以便解碼預(yù)定義的應(yīng)用程序?qū)S脤傩灾?。查找?yīng)用程序模板42的應(yīng)用程序結(jié)構(gòu)信息,以便鼓勵通用和應(yīng)用程序?qū)S迷剡M(jìn)行適當(dāng)?shù)靥幚砗徒獯a屬性值的分配。被解碼的應(yīng)用程序302的定義可進(jìn)一步選擇性地由第二解碼器40進(jìn)行處理,以便完成解碼屬性的轉(zhuǎn)換,這種轉(zhuǎn)換通常是從二進(jìn)制到原文的轉(zhuǎn)換。當(dāng)準(zhǔn)備好時,被解碼的應(yīng)用程序302的定義傳送到應(yīng)用程序規(guī)定的服務(wù)32,并且例如為在設(shè)備12上執(zhí)行而進(jìn)行安裝。應(yīng)當(dāng)承認(rèn)上面描述的解碼器34的組成和操作還適用于在操作規(guī)定的解碼應(yīng)用程序302期間,從Web服務(wù)13中解碼通過設(shè)備12接收的消息105(參見圖1)。還應(yīng)當(dāng)承認(rèn),解碼器34可以表示為具有兩個專用解碼器34、40,如上所述,或者可以表示為解碼通用和應(yīng)用程序?qū)S妙A(yù)定義元素的組合解碼器。還應(yīng)當(dāng)承認(rèn),解碼器34可以在數(shù)據(jù)服務(wù)器18和/或Web服務(wù)13(參見圖1)的信息源20上實現(xiàn),以便于在擔(dān)當(dāng)Web服務(wù)13的Web客戶時,對從設(shè)備12接收的任何消息105的被壓縮的內(nèi)容進(jìn)行解碼。
此外,應(yīng)當(dāng)承認(rèn)字典38可以從解碼器34中分離,而且該解碼處理(當(dāng)通過運行時間環(huán)境206來執(zhí)行時)可以根據(jù)需要對部分或全部預(yù)定義的通用和應(yīng)用程序?qū)S迷剡M(jìn)行解碼。例如,運行時間環(huán)境206可以使用字典來解碼應(yīng)用程序?qū)S迷?,并且將通用元素以被壓縮的格式留在設(shè)備12上。
參照圖5,圖5表示軟件應(yīng)用程序壓縮工具52的框圖。與圖4中一樣,圖5包括直接涉及軟件應(yīng)用程序302壓縮的那些組件。壓縮工具52,或與被配置為可操作的壓縮工具52相關(guān)聯(lián)的系統(tǒng)(諸如運行時間環(huán)境506)還可以包括除了圖5中的部件之外的部件。應(yīng)當(dāng)承認(rèn),運行時間環(huán)境506可以是服務(wù)提供商13的系統(tǒng)(在服務(wù)器18和/或源20上)的一部分,而且還可以是該設(shè)備12的運行時間環(huán)境206的一部分。
壓縮工具52從本地或遠(yuǎn)端應(yīng)用程序源20接收軟件應(yīng)用程序302,對該軟件應(yīng)用程序302進(jìn)行壓縮,并且為目的地提供被壓縮的軟件應(yīng)用程序302。該目的地是設(shè)備12或被配置為用于處理被壓縮的軟件應(yīng)用程序302的系統(tǒng),或可能是應(yīng)用程序源20。例如,當(dāng)應(yīng)用程序源20使用遠(yuǎn)端壓縮工具52來壓縮軟件應(yīng)用程序302時,被壓縮的軟件應(yīng)用程序302返回到應(yīng)用程序源20,然后存儲該被壓縮的軟件應(yīng)用程序302,以便隨后發(fā)送到適當(dāng)配置的設(shè)備12或系統(tǒng)。
再次參考圖5,在壓縮工具52中,壓縮字典38包括用于編碼通用XML元素和屬性的通用字典400,以及用于處理應(yīng)用程序?qū)S脤傩灾档膽?yīng)用程序?qū)S米值?02。字典38包括與在目的地設(shè)備12或系統(tǒng)處的字典38中存儲的字典相同的匹配字典400、402,所述目的地設(shè)備12或系統(tǒng)被配置為對已經(jīng)由壓縮工具52壓縮的軟件應(yīng)用程序302進(jìn)行處理。然而,應(yīng)當(dāng)理解,字典38還可以包括其它的通用和應(yīng)用程序?qū)S米值?00、402,該字典400、402為多個設(shè)備12表明了其它的模板42和應(yīng)用程序302的定義。第一編碼器54(例如WBXML)使用字典400來編碼XML元素和定義了應(yīng)用程序資源的屬性。應(yīng)用程序定義模板42包括有關(guān)應(yīng)用程序302(包括有線和無線)的專用類的通用結(jié)構(gòu)的信息、以及有關(guān)被顯示參數(shù)和任何其它未編碼數(shù)據(jù)的信息。第二編碼器(例如,二進(jìn)制混淆)58使用來自字典38的應(yīng)用程序?qū)S米值?,以進(jìn)行編碼,例如混淆和二進(jìn)制編碼,應(yīng)用程序?qū)S脤傩灾怠?br>
軟件應(yīng)用程序定義模板42由壓縮工具52來接收,并且被傳遞到第一編碼器54,該第一編碼器54從二進(jìn)制字典38中檢索用于軟件應(yīng)用程序302的適當(dāng)?shù)燃壍耐ㄓ米值?00。在對通用XML元素和屬性進(jìn)行編碼之后,第一編碼器54將部分已編碼應(yīng)用程序302的定義傳遞到第二編碼器58。該第二編碼器58從字典38中檢索應(yīng)用程序?qū)S米值?02,以便編碼/混淆應(yīng)用程序?qū)S脤傩灾担⑶覐膽?yīng)用程序定義模板42中查找應(yīng)用程序結(jié)構(gòu)信息,以便在混淆之后促進(jìn)已編碼應(yīng)用程序302的完整性。當(dāng)完成二進(jìn)制混淆(binary obfuscation)時,將已編碼和壓縮的應(yīng)用程序302的定義釋放到目的地,該目的地為打算的接收設(shè)備12或系統(tǒng),或者例如是在應(yīng)用程序源20處的軟件應(yīng)用程序302庫。應(yīng)當(dāng)承認(rèn),上面描述的編碼器52的組件和操作還適用于編碼消息105(參見圖1),所述編碼消息105是在規(guī)定的解碼應(yīng)用程序302操作期間通過設(shè)備12從Web服務(wù)13接收的,或者是通過設(shè)備12發(fā)送到Web服務(wù)13。還應(yīng)當(dāng)承認(rèn),如上所述,編碼器52可以表示為具有兩個專用編碼器54、58,或者可以表示為用于解碼通用和應(yīng)用程序?qū)S妙A(yù)定義元素的組合解碼器。還應(yīng)當(dāng)承認(rèn),編碼器52可以在數(shù)據(jù)服務(wù)器18和/或Web服務(wù)13的信息源20(參見圖1)上實現(xiàn),以便于在擔(dān)當(dāng)Web服務(wù)13的Web客戶時,對發(fā)送到設(shè)備12的任何消息105的被壓縮的內(nèi)容進(jìn)行編碼。還應(yīng)當(dāng)承認(rèn),可以在設(shè)備12上實現(xiàn)編碼器52,該編碼器52用于對發(fā)送到數(shù)據(jù)服務(wù)器18和/或Web服務(wù)13的信息源(參見圖1)20的任何消息105的壓縮內(nèi)容進(jìn)行編碼。
壓縮軟件應(yīng)用系統(tǒng)可適用于多種可能的拓?fù)?。圖6是第一種壓縮軟件應(yīng)用系統(tǒng)拓?fù)浣Y(jié)構(gòu)的框圖。在該第一種拓?fù)浣Y(jié)構(gòu)中,壓縮工具52從應(yīng)用程序源20接收軟件應(yīng)用程序302,并且將被壓縮的軟件應(yīng)用程序302發(fā)送到設(shè)備12,該設(shè)備12可以包括被壓縮的應(yīng)用系統(tǒng)運行時間206,諸如在圖4中所示。壓縮工具52在中間系統(tǒng)中運行,并且代表應(yīng)用程序源20壓縮和分發(fā)軟件應(yīng)用程序302。在該拓?fù)浣Y(jié)構(gòu)的一種變型中,將壓縮軟件應(yīng)用程序302返回到應(yīng)用程序源20,該應(yīng)用程序源本身對被壓縮的軟件應(yīng)用程序302進(jìn)行分發(fā)?!盎旌稀弊冃鸵彩撬A(yù)期的,其中軟件應(yīng)用程序302被遠(yuǎn)程壓縮,并且根據(jù)打算的目的地設(shè)備12或系統(tǒng)或軟件應(yīng)用程序302的類型,由壓縮工具52和應(yīng)用程序源20進(jìn)行分發(fā)。
圖7是另一個被壓縮的軟件應(yīng)用系統(tǒng)拓?fù)浣Y(jié)構(gòu)的框圖。在第二種拓?fù)浣Y(jié)構(gòu)中,應(yīng)用程序服務(wù)提供商13包括應(yīng)用程序源20和壓縮工具52。設(shè)備12和被壓縮的應(yīng)用程序運行時間206實際上與圖6中類似標(biāo)記的部件相同?;诖?,明顯地是從圖4和圖5中可以看出,設(shè)備12的執(zhí)行獨立于拓?fù)浣Y(jié)構(gòu)。盡管已分別示出并描述了各種拓?fù)浣Y(jié)構(gòu),但還可以將設(shè)備12配置為與支持各種拓?fù)浣Y(jié)構(gòu)的應(yīng)用程序源20和服務(wù)提供商13進(jìn)行通信。同樣期望設(shè)備12可以與多個信息源20進(jìn)行通信,其中的某些支持圖6的拓?fù)浣Y(jié)構(gòu),而另一些支持圖7的拓?fù)浣Y(jié)構(gòu)。類似地,應(yīng)用程序源20還可以支持用于擴展對壓縮軟件應(yīng)用程序302有效的編碼類型的拓?fù)浣Y(jié)構(gòu)。
當(dāng)通過應(yīng)用程序源20來提供保密或其它敏感的信息時,諸如圖7所示的集成系統(tǒng)可能顯著地不利。在這種情況下,不需要中間部件來壓縮信息。例如,倘若端到端是安全的,則在服務(wù)提供商13處被加密的保密信息一直保持加密直到在設(shè)備12處解密為止,反之亦然。
二進(jìn)制壓縮方案的操作舉例圖3a是表示壓縮軟件應(yīng)用程序302的方法的流程圖。該方法22包括通用預(yù)定義標(biāo)志和屬性的二相二進(jìn)制轉(zhuǎn)換和用于預(yù)定義專用應(yīng)用數(shù)據(jù)的二進(jìn)制混淆。圖3b是表示解碼軟件應(yīng)用程序302的方法的流程圖。該方法23包括通用預(yù)定義標(biāo)志和屬性的二相二進(jìn)制解碼和預(yù)定義專用應(yīng)用數(shù)據(jù)的二進(jìn)制解碼。
參考圖3a和圖5,在步驟24,通過壓縮工具52從諸如20的信息源(參見圖1)接收軟件應(yīng)用程序302。正如下面所描述的,壓縮工具52可以在內(nèi)容或服務(wù)提供商13處連同信息源13一起來實現(xiàn),或者在為信息源20執(zhí)行壓縮的獨立的系統(tǒng)(未示出)處,諸如在信息源20和打算接收被壓縮的軟件應(yīng)用程序302的目的地設(shè)備12之間的中間第三方設(shè)備12或系統(tǒng)處實現(xiàn)。通過使用諸如DTD或XML方案的應(yīng)用程序定義模板42,例如在應(yīng)用程序模板42中的通用預(yù)定義元素名稱和屬性在步驟26被二進(jìn)制編碼。該通用預(yù)定義元素的編碼是這樣的,即在二進(jìn)制壓縮字典38中用于預(yù)定義元素名稱和屬性的二進(jìn)制代碼在壓縮工具52和目的地設(shè)備12之間共享。基于此,與WBXML編碼不同的是,不需要利用已編碼的應(yīng)用程序302的定義來查閱二進(jìn)制壓縮字典38。
通過使用應(yīng)用程序302的定義的層次結(jié)構(gòu),步驟28包括對未向設(shè)備12的用戶顯示的預(yù)定義專用應(yīng)用數(shù)據(jù)的二進(jìn)制編碼??梢詮母肯蛳碌较嚓P(guān)葉節(jié)點并且以“從左到右”的順序來執(zhí)行該應(yīng)用程序?qū)S迷氐木幋a。在步驟28的編碼過程中,交叉引用的值優(yōu)選地要保持完整,以便有助于最終得到的壓縮應(yīng)用軟件302的正確性和完整性。在步驟28中,XML屬性值的編碼同樣優(yōu)選地與為應(yīng)用程序模板42中的屬性值定義的專用應(yīng)用軟件二進(jìn)制字典402編碼相匹配。例如,如果將屬性類型定義為type(label|edit|text|list|radio|checkbox|button|image)#REQUIRED然后,二進(jìn)制字典402包括用于標(biāo)簽、編輯、文本、列表、無線電、檢驗欄、按鈕和圖像的二進(jìn)制代碼。當(dāng)壓縮工具52在XML應(yīng)用程序302定義中遇到類型=“標(biāo)簽”時,工具52將該字符串轉(zhuǎn)換為相應(yīng)的分配給在字典402中表示為“標(biāo)簽”的二進(jìn)制代碼。
參考圖3b和圖4,在步驟25,通過解碼器34從諸如20的信息源(參見圖1)接收軟件應(yīng)用程序302。通過使用諸如DTD或XML方案的應(yīng)用程序定義模板42,例如在應(yīng)用程序模板42中的通用預(yù)定義元素名稱和屬性在步驟27被二進(jìn)制解碼。該通用預(yù)定義元素的解碼是這樣的,即在二進(jìn)制壓縮字典38中用于預(yù)定義元素名稱和屬性的二進(jìn)制代碼在解碼器34和目的地設(shè)備12之間共享?;诖?,與WBXML編碼不同的是,不需要利用已編碼的應(yīng)用程序302的定義來查閱二進(jìn)制壓縮字典38。
通過使用應(yīng)用程序302定義的層次結(jié)構(gòu),步驟29包括對未向設(shè)備12的用戶顯示的預(yù)定義專用應(yīng)用數(shù)據(jù)的二進(jìn)制解碼??梢詮母肯蛳碌较嚓P(guān)葉節(jié)點并且以“從左到右”的順序來執(zhí)行該應(yīng)用程序?qū)S迷氐慕獯a。在步驟29的解碼過程中,交叉引用的值優(yōu)選地要保持完整,以便有助于最終得到的壓縮應(yīng)用軟件302的正確性和完整性。在步驟29中,XML屬性值的解碼同樣優(yōu)選地與為應(yīng)用程序模板42中的屬性值定義的專用應(yīng)用軟件二進(jìn)制字典402編碼相匹配。例如,如果將屬性類型定義為type(label|edit|text|list|radio|checkbox|button|image)#REQUIRED然后,二進(jìn)制字典402包括用于標(biāo)簽、編輯、文本、列表、無線電、檢驗欄、按鈕和圖像的二進(jìn)制代碼。當(dāng)解碼器32在XML應(yīng)用程序302定義中遇到類型=“標(biāo)簽”時,解碼器32從分配給在字典402中表示為“標(biāo)簽”的相應(yīng)二進(jìn)制代碼來解碼該字符串。
對于任意應(yīng)用程序?qū)S枚x模板42來說,應(yīng)當(dāng)基于編碼定義中的應(yīng)用程序?qū)S迷厮璧淖止?jié)(或比特)數(shù)的知識來進(jìn)一步優(yōu)化所述編碼/解碼。例如,在上述DTD定義中,用于數(shù)據(jù)、消息或屏幕元素的二進(jìn)制代碼可能僅需要用于編碼的單個比特。此外,可以將總的字節(jié)范圍0-xFF劃分為子字節(jié)范圍,例如用于數(shù)據(jù)的0-x60,用于消息的x61-xC0以及用于屏幕的xCI-xFF。
示例1將下面通常的XML文檔片段考慮為應(yīng)用程序定義的一部分<elem1 attr11=″a11.1″attr12=″a12.1″><elem2attr21=″a21.1″>data21</elem2><elem2attr21=″a21.2″>data22</elem2>
<elem2attr21=″a21.3″>data23</elem2></elem1><elem3attr31=″a31.1″attr3=″[Ref]a21,1″>
<elem4attr41=″a41.1″>[Ref]a11,1</elem4></elem3>.其中[Ref]表示用于與XML文檔(例如,字符串″@″inWirelessPizza XML示例)中的其它值交叉引用的應(yīng)用程序?qū)S酶袷?,并且僅有屬性值a12.1and a41.1和elem2中的數(shù)據(jù)是對于設(shè)備12的應(yīng)用程序302用戶可顯示的參數(shù)。
在被壓縮的格式中,該XML片段的外表特征是
WB1WB5BO1WB6a12,1WB2WB7BO2data21WB2/WB2WB7BO3data22WB2/WB2WB7BO4data23WB2/WB1/WB3WB8BO5WB9BO2WB4WB10a41.1BO1WB4/WB3/,其中WB#碼表示二進(jìn)制編碼(步驟26)的結(jié)果,而BO#碼表示二進(jìn)制混淆(步驟28)的結(jié)果。應(yīng)當(dāng)注意,已經(jīng)將交叉引用的值a11.1和a21.1分解為相同的二進(jìn)制代碼B01和B02,以便有助于被壓縮應(yīng)用程序302的正確性和完整性。應(yīng)當(dāng)承認(rèn),如果需要的話,WB#代碼可以表示為一個單獨碼(例如,WB1WB5=WB15)或表示為一系列多個碼。
示例2將下面的示例DTD(模板42)考慮為定義無線應(yīng)用程序302的XML資源。
<!ELEMENT application(data*,msg*,screen*)><!ATTLIST applicationname CDATA#REQUIRED>
<!ELEMENT data(field+)>
<!ATTLIST dataname CDATA#REQUIREDpersisted(true I false)″true″>
<!ELEMENT dfield(#PCDATA)>
<!ATTLIST dfieldname CDATA#REQUIREDtype(String|Number|Boolean|Date|Any)″Any″
array(true|false)″false″nested(true|false)″false″nestedName CDATA#-IMPLIEDkey(true|false)″true″>
<!ELEMENT msg(field*)>
<!ATTLIST msgname CDATA#REQUIREDmapping CDATA#IMPLIED><!ELEMENT mfield(#PCDATA)><!ATTLIST mfieldname CDATA#REQUIREDtype(String|Number I Boolean I Date|Array|XML)#IMPLIEDmapping CDATA#IMPLIED><!ELEMENT screen(control*,menu+)<!ATTLIST screenname CDATA#REQUIREDtitle CDATA#IMPLIEDdialog(true|false)″false″param CDATA#IMPLIED>
<!ELEMENT control(entry+)><!ATTLIST controlname CDATA#REQUIREDvalue CDATA#IMP LIEDmapping CDATA#IMPLIEDtype(tabet|edit|text|list|radio|checkbox|button|image)#REQUIRED
entrytype(char|number|date|pwd|phone|email)″char″readOnly(true g false)″false″placement CDATA#IMPLIEDstyle CDATA#IMPLIED><!ELEMENT menu(item*)><!ELEMENT item EMPTY><!ATTLIST itemname CDATA#REQUIREDlabel CDATA#REQUIREDscreen CDATA#IMPLIED>msg CDATA#IMPLIED><!ELEMENT entry(#PCDATA)>
可以以XML將與上述示例性模板42(例如DTD)相兼容的簡單無線應(yīng)用定義如下wcApp name=″WirelessPizza″><data name=″User″>
<dfiield name=″name″type=″String″key=″true″/>
<dfield name=″password″type=″String″/>
<dfiield name=″street″type=″String″/>
<dfiield name=″city″type=″String″/>
<dfield name=″postal″type=″String″/>
<dfield name=″phone″type=″String″/>
</data><data name=″OrderStatus″>
<dfield name=″confNumber″type=″Number″key=″true″/>
<afield name=″status″type=″String″/>
<dfield name=″datetime″type=″Date″/>
</data>
<data name=″Order″>
<dfield name=″orderld″type=″Number″key=″true″/>
<dfield name=″items″type=″String″array=″true″/>
<dfield name=″user″nested=″true″nestedName=″@User″/>
<dfield name=″datetime″type=″Date″/>
<dfield name=″orderStatus″nested=″true″nestedName=″@OrderStatus″/>
</data>
<msg name=″onOrderStatusUpdate″>
<mfield name=″orderld″mapping=″@Order.orderld″/>
<mfield name=″status″mapping=″@Order.orderStatus″/>
</msg>
<msg name=″updateUserlnfo″mapping=″User″/>
<msg name=″placeOrder″mapping=″Order″/>
<screen name=″scrDelivery″title=″Please provide delivery info″param=″@User″>
<control name=″lbl Street″type=″label″value=″Street″/>
<control name=″edStreet″type=″edit″mapping=″@User.street″/>
<control name=″lblCity″type=″label″value=″City″/>
<control name=″edCity″type=″edit″mapping=″@User.City″/>
<controlname=″lblPostalCode″type=″label″value=″Postalcode″/>mapping=″@User.postal″/>
<control name=″lblPhone″type=“l(fā)abel″value=″Telephone:″/>
<control name=″edPhone″type=″edit″entrytype=″phone″mapping=″@User.phone″/><menu>
<item name=″sendOrder″label=″Send Order″
screen=″@scrOrderSent″msg=″@placeOrder″/></menu></screen>
應(yīng)當(dāng)注意,應(yīng)用程序302中的6個專用顯示參數(shù)在上述粗體中給出。
XML元素標(biāo)記和屬性名稱作為預(yù)定義通用和應(yīng)用程序?qū)S迷氐亩M(jìn)制代碼來編碼。如上所述,根據(jù)這里所公開的系統(tǒng)和方法的壓縮可以使用下面的情形,即僅有打算顯示給應(yīng)用程序302的用戶的可顯示數(shù)據(jù)需要被保持而不用進(jìn)行二進(jìn)制轉(zhuǎn)換。在一個示例性實施方式中,上述相應(yīng)編碼的″scrDelivery″文檔片段可以具有下面的形式[BB]Please provide delivery info[BB][BB]Street:[BB][BB][BB]City[BB][BB][BB]Postal Code:[BB][BB][BB]Telephone:[BB][BB][BB][BB]Send Order[BB][BB][BB][BB]其中[BB]表示二進(jìn)制編碼數(shù)據(jù)。應(yīng)當(dāng)承認(rèn),[BB]壓縮編碼還可以表示為用于各種預(yù)定義元素和屬性的一個或多個二進(jìn)制代碼。
應(yīng)當(dāng)理解,上面描述的內(nèi)容與一個或多個示例性系統(tǒng)和/或方法相關(guān)聯(lián)。對本領(lǐng)域的普通技術(shù)人員來說多種變型是顯而易見的,而且這種顯而易見的變型是在該申請的范圍之內(nèi),而不考慮是否清楚地進(jìn)行了描述。
例如,盡管在附圖中示出了單個設(shè)備12、數(shù)據(jù)服務(wù)器18和信息源20,但是數(shù)據(jù)服務(wù)器18典型地可能經(jīng)由不同的通信網(wǎng)絡(luò)16為多個設(shè)備12提供服務(wù),并且通過不同的方向或基于網(wǎng)絡(luò)的連接來接入到多個信息源20。同樣,任何通信網(wǎng)絡(luò)16和任何信息源20都可以與多個數(shù)據(jù)服務(wù)器18進(jìn)行通信。
上面的描述同樣假定了將消息從源20發(fā)送到設(shè)備12。然而,假定在設(shè)備12和在目的地的壓縮應(yīng)用程序系統(tǒng)處的壓縮工具52支持在從設(shè)備12的輸出方向中的軟件應(yīng)用程序302和消息105的壓縮。。
在某些方面中,輸出內(nèi)容的壓縮級別可能要取決于配置的拓?fù)浣Y(jié)構(gòu)和安全性要求。對于上述圖6中的拓?fù)浣Y(jié)構(gòu)來說,在遠(yuǎn)離應(yīng)用程序源20或其它目的地的中間系統(tǒng)處實現(xiàn)被壓縮的應(yīng)用程序系統(tǒng)工具52,而后可以對包括字段名的整個消息105進(jìn)行二進(jìn)制編碼。當(dāng)利用中間系統(tǒng)進(jìn)行消息105的交換時,可以將字段名定義為二進(jìn)制代碼。然后,通過中間系統(tǒng)利用原始字段名來代替這些代碼,之后將它們傳播到目的地。該模型可以提供將消息105的尺寸減到最小的額外的好處。在上述圖7的拓?fù)浣Y(jié)構(gòu)中,消息105的字段名不必是可編碼的,盡管消息105定義的其它屬性,諸如格式、尺寸、類型等是可編碼的。
另外,在圖4和圖5中作為通用XML標(biāo)記和屬性的編碼方案的示例示出了WBXML。其它的編碼方案對本領(lǐng)域的普通技術(shù)人員來說是顯而易見的。
權(quán)利要求
1.一種用于壓縮以結(jié)構(gòu)化定義語言來表達(dá)的無線軟件應(yīng)用程序的方法,所述應(yīng)用程序具有多個根據(jù)應(yīng)用軟件模板來預(yù)定義的可編碼元素,以及多個被配置為在無線設(shè)備的用戶接口上進(jìn)行呈現(xiàn)的未編碼顯示參數(shù),所述方法包括步驟根據(jù)包括多個用于表示作為可編碼元素的所述應(yīng)用軟件預(yù)定義元素的代碼的壓縮字典來選擇壓縮格式;使用所選的壓縮格式對預(yù)定義元素的通用元素進(jìn)行編碼,所述通用元素表示用于軟件應(yīng)用程序的類的通用結(jié)構(gòu);使用所選的壓縮格式對應(yīng)用程序內(nèi)容的應(yīng)用程序?qū)S迷剡M(jìn)行編碼,所述應(yīng)用程序?qū)S迷乇话ㄔ谒鲱A(yù)定義元素中,以未編碼的格式來保持所述應(yīng)用程序內(nèi)容的顯示參數(shù);以及組合未編碼的顯示參數(shù)、已編碼的通用元素和已編碼的用于生成應(yīng)用程序的被壓縮版本的已編碼應(yīng)用程序?qū)S迷?;其中借助于被壓縮應(yīng)用程序的接收無線設(shè)備、通過使用所述模板內(nèi)容的知識來配置所述壓縮字典。
2.根據(jù)權(quán)利要求1所述的方法,其中所述壓縮字典的內(nèi)容知識由具有被壓縮應(yīng)用程序的應(yīng)用程序提供商和所述設(shè)備共享。
3.根據(jù)權(quán)利要求2所述的方法,其中以基于XML的結(jié)構(gòu)化定義語言來表達(dá)所述應(yīng)用程序。
4.根據(jù)權(quán)利要求3所述的方法,其中所述通用元素包括用于所述類的標(biāo)簽和屬性。
5.根據(jù)權(quán)利要求4所述的方法,其中所述應(yīng)用程序?qū)S迷匕ㄌ貏e用于所述應(yīng)用程序的屬性和值。
6.根據(jù)權(quán)利要求2所述的方法,其中所述多個代碼是用于表示所述預(yù)定義元素的二進(jìn)制代碼。
7.根據(jù)權(quán)利要求2所述的方法,進(jìn)一步包括步驟將被壓縮的應(yīng)用程序基于網(wǎng)絡(luò)從應(yīng)用程序提供商發(fā)送到接收方設(shè)備。
8.根據(jù)權(quán)利要求7所述的方法,進(jìn)一步包括步驟根據(jù)所選的用于在所述設(shè)備和基于所述方案的服務(wù)之間的網(wǎng)絡(luò)上進(jìn)行傳輸?shù)膲嚎s格式,對通信消息的預(yù)定義元素進(jìn)行編碼,當(dāng)在所述設(shè)備上執(zhí)行所述基于方案的服務(wù)時,將其配置為與所述應(yīng)用程序相互作用。
9.根據(jù)權(quán)利要求6所述的方法,進(jìn)一步包括步驟使用二進(jìn)制代碼中的一種對至少兩個預(yù)定義元素進(jìn)行編碼。
10.根據(jù)權(quán)利要求2所述的方法,進(jìn)一步包括步驟選擇所述多個代碼中相同的代碼,所述多個代碼用于對所述應(yīng)用程序的交叉引用的值進(jìn)行編碼。
11.根據(jù)權(quán)利要求6所述的方法,進(jìn)一步包括步驟將二進(jìn)制代碼的總字節(jié)范圍劃分為至少兩個子字節(jié)范圍,所述子字節(jié)范圍用于表示所述預(yù)定義元素的不同的類型。
12.根據(jù)權(quán)利要求2所述的方法,其中所述模板包括從含有呈現(xiàn)、消息和數(shù)據(jù)的組中選擇的定義。
13.根據(jù)權(quán)利要求12所述的方法,其中所述模板為一個方案。
14.根據(jù)權(quán)利要求12所述的方法,其中所述模板為文檔類型的定義。
15.根據(jù)權(quán)利要求12所述的方法,其中所述結(jié)構(gòu)化定義語言是以XML為基礎(chǔ)的。
16.一種對以結(jié)構(gòu)化定義語言來表達(dá)的被壓縮的無線軟件應(yīng)用程序進(jìn)行解壓縮的方法,所述應(yīng)用程序具有多個根據(jù)應(yīng)用軟件模板來預(yù)定義的已編碼元素,以及多個被配置為在接收方無線設(shè)備的用戶接口上進(jìn)行呈現(xiàn)的未編碼顯示參數(shù),所述模板內(nèi)容的知識在所述設(shè)備和壓縮應(yīng)用程序的應(yīng)用程序提供商之間共享,所述方法包括步驟根據(jù)包括多個用于表示作為編碼元素的所述應(yīng)用軟件預(yù)定義元素的代碼的壓縮字典來選擇解壓縮格式;使用所選的壓縮格式對所選的預(yù)定義元素進(jìn)行解碼,所述預(yù)定義元素包括通用元素,該通用元素表示用于軟件應(yīng)用程序和所述應(yīng)用程序內(nèi)容的應(yīng)用程序?qū)S迷氐念惖耐ㄓ媒Y(jié)構(gòu);以未編碼的格式來保持所述應(yīng)用程序內(nèi)容的顯示參數(shù);并且在被配置為隨后在所述設(shè)備的運行時間環(huán)境上執(zhí)行的、未壓縮的應(yīng)用程序版本中包括已解碼的預(yù)定義元素和顯示參數(shù)。
17.根據(jù)權(quán)利要求16所述的方法,其中所述壓縮字典的內(nèi)容知識由提供被壓縮應(yīng)用程序的應(yīng)用程序提供商和所述設(shè)備共享。
18.根據(jù)權(quán)利要求17所述的方法,其中以基于XML的結(jié)構(gòu)化定義語言來表達(dá)所述應(yīng)用程序。
19.根據(jù)權(quán)利要求18所述的方法,其中所述通用元素包括用于所述類的標(biāo)簽和屬性。
20.根據(jù)權(quán)利要求19所述的方法,其中所述應(yīng)用程序?qū)S迷匕ㄌ囟ㄓ糜谒鰬?yīng)用程序的屬性和值。
21.根據(jù)權(quán)利要求17所述的方法,其中所述多個代碼是用于表示所述預(yù)定義元素的二進(jìn)制代碼。
22.根據(jù)權(quán)利要求17所述的方法,進(jìn)一步包括步驟通過無線網(wǎng)絡(luò)由接收方設(shè)備從應(yīng)用程序提供商接收壓縮的應(yīng)用程序。23、根據(jù)權(quán)利要求22所述的方法,進(jìn)一步包括步驟根據(jù)所選的用于在所述設(shè)備和基于所述方案的服務(wù)之間的網(wǎng)絡(luò)上進(jìn)行傳輸?shù)膲嚎s格式,對通信消息的預(yù)定義元素進(jìn)行解碼,當(dāng)在所述設(shè)備上執(zhí)行所述基于方案的服務(wù)時,將其配置為與所述應(yīng)用程序相互作用。
24.根據(jù)權(quán)利要求21所述的方法,進(jìn)一步包括步驟使用二進(jìn)制代碼中的一種對至少兩個預(yù)定義元素進(jìn)行解碼。
25.根據(jù)權(quán)利要求17所述的方法,進(jìn)一步包括步驟選擇所述多個代碼中相同的代碼,所述多個代碼用于對所述應(yīng)用程序的交叉引用的值進(jìn)行解碼。
26.根據(jù)權(quán)利要求21所述的方法,進(jìn)一步包括步驟以壓縮格式保持所選的多個預(yù)定義的元素,以便于隨后通過運行時間環(huán)境來規(guī)定未壓縮的應(yīng)用程序。
27.根據(jù)權(quán)利要求17所述的方法,其中所述模板包括從含有呈現(xiàn)、消息和數(shù)據(jù)的組中選擇的定義。
28.根據(jù)權(quán)利要求17所述的方法,其中所述模板為一個方案。
29.根據(jù)權(quán)利要求17所述的方法,其中所述模板為文檔類型的定義。
30.根據(jù)權(quán)利要求17所述的方法,其中所述結(jié)構(gòu)化定義語言是以XML為基礎(chǔ)的。
31.一種用于壓縮以結(jié)構(gòu)化定義語言來表達(dá)的無線軟件應(yīng)用程序的系統(tǒng),所述應(yīng)用程序具有多個可編碼的預(yù)定義元素,以及多個被配置為在無線設(shè)備的用戶接口上進(jìn)行表達(dá)的未編碼顯示參數(shù),所述系統(tǒng)包括應(yīng)用程序模板,用于定義所述預(yù)定義的元素并且包括有關(guān)顯示參數(shù)的信息;壓縮字典,用于表示包括多個表示作為可編碼元素的所述應(yīng)用程序預(yù)定義元素的代碼的壓縮格式;編碼器,用于使用所選的壓縮格式對預(yù)定義元素進(jìn)行編碼,所述預(yù)定義元素包括通用元素,該通用元素表示用于軟件應(yīng)用程序和所述應(yīng)用程序內(nèi)容的應(yīng)用程序?qū)S迷氐念惖耐ㄓ媒Y(jié)構(gòu);由編碼器以未編碼的格式來保持所述應(yīng)用程序內(nèi)容的顯示參數(shù);以及生成器,用于組合未編碼的顯示參數(shù)和用于生成應(yīng)用程序被壓縮版本的已編碼預(yù)定義元素;其中借助于壓縮軟件程序的接收方無線設(shè)備、通過使用所述模板內(nèi)容的共享知識來配置所述壓縮字典。
32.根據(jù)權(quán)利要求31所述的系統(tǒng),其中所述壓縮字典的內(nèi)容知識由所述設(shè)備和具有被壓縮應(yīng)用程序的應(yīng)用程序提供商共享。
33.根據(jù)權(quán)利要求32所述的系統(tǒng),其中以基于XML的結(jié)構(gòu)化定義語言來表達(dá)所述應(yīng)用程序。
34.根據(jù)權(quán)利要求33所述的系統(tǒng),進(jìn)一步包括所述編碼器的第一編碼器模塊,所述編碼器模塊用于對含有所述類的標(biāo)簽和屬性的通用元素進(jìn)行編碼。
35.根據(jù)權(quán)利要求34所述的系統(tǒng),進(jìn)一步包括所述編碼器的第二編碼器模塊,所述編碼器模塊用于對含有特定用于所述應(yīng)用程序的屬性和值的應(yīng)用程序?qū)S迷匕ㄟM(jìn)行編碼。
36.根據(jù)權(quán)利要求22所述的系統(tǒng),其中所述多個代碼是用于表示所述預(yù)定義元素的二進(jìn)制代碼。
37.根據(jù)權(quán)利要求32所述的系統(tǒng),進(jìn)一步包括用于對通用元素進(jìn)行編碼的所述壓縮字典的第一字典,以及用于對應(yīng)用程序?qū)S迷剡M(jìn)行編碼的所述壓縮字典的第二字典。
38.根據(jù)權(quán)利要求31所述的系統(tǒng),其中將所述編碼器配置為根據(jù)所選的用于在所述設(shè)備和基于所述方案的服務(wù)之間的網(wǎng)絡(luò)上進(jìn)行傳輸?shù)膲嚎s格式,對通信消息的預(yù)定義元素進(jìn)行編碼,當(dāng)在所述設(shè)備上執(zhí)行所述基于方案的服務(wù)時,將其配置為與所述應(yīng)用程序相互作用。
39.根據(jù)權(quán)利要求36所述的系統(tǒng),進(jìn)一步包括使用其中一種二進(jìn)制代碼對至少兩個預(yù)定義元素進(jìn)行編碼。
40.根據(jù)權(quán)利要求32所述的系統(tǒng),其中使用所述多個代碼中相同的代碼,用于對所述應(yīng)用程序的交叉引用的值進(jìn)行編碼。
41.根據(jù)權(quán)利要求36所述的系統(tǒng),其中將二進(jìn)制代碼的總字節(jié)范圍劃分為至少兩個子字節(jié)范圍,所述子字節(jié)范圍用于表示所述預(yù)定義元素的不同的類型。
42.根據(jù)權(quán)利要求32所述的方法,其中所述模板包括從含有呈現(xiàn)、消息和數(shù)據(jù)的組中選擇的定義。
43.根據(jù)權(quán)利要求42所述的系統(tǒng),其中所述模板為一個方案。
44.根據(jù)權(quán)利要求42所述的系統(tǒng),其中所述模板為文檔類型的定義。
45.根據(jù)權(quán)利要求42所述的系統(tǒng),其中所述結(jié)構(gòu)化定義語言是以XML為基礎(chǔ)的。
46.一種用于對以結(jié)構(gòu)化定義語言來表達(dá)的壓縮無線軟件應(yīng)用程序進(jìn)行解壓縮的系統(tǒng),所述應(yīng)用程序具有多個可編碼的預(yù)定義元素,以及多個被配置為在接收方無線設(shè)備的用戶接口上進(jìn)行表達(dá)的未編碼顯示參數(shù),所述系統(tǒng)包括應(yīng)用程序模板,用于定義所述預(yù)定義的元素并且包括有關(guān)顯示參數(shù)的信息,以及在所述設(shè)備和被壓縮應(yīng)用程序的應(yīng)用程序提供商之間共享的所述模板內(nèi)容的知識;壓縮字典,用于表示包括多個表示作為可編碼元素的所述應(yīng)用程序預(yù)定義元素的代碼的壓縮格式;解碼器,用于使用所選的壓縮格式對預(yù)定義元素進(jìn)行解碼,所述預(yù)定義元素包括通用元素,該通用元素表示用于軟件應(yīng)用程序和所述應(yīng)用程序內(nèi)容的應(yīng)用程序?qū)S迷氐牡燃壍耐ㄓ媒Y(jié)構(gòu);以未編碼的格式來保持所述應(yīng)用程序內(nèi)容的顯示參數(shù);以及生成器,包括未編碼的顯示參數(shù)和在應(yīng)用程序的未壓縮版本中的解碼預(yù)定義元素,所述應(yīng)用程序被配置為隨后在所述設(shè)備的運行時間環(huán)境上來執(zhí)行。
47.一種用于對以結(jié)構(gòu)化定義語言來表達(dá)的壓縮無線軟件應(yīng)用程序進(jìn)行解壓縮的計算機程序產(chǎn)品,所述應(yīng)用程序具有多個可編碼的預(yù)定義元素,以及多個被配置為在接收方無線設(shè)備的用戶接口上進(jìn)行表達(dá)的未編碼顯示參數(shù),所述計算機程序產(chǎn)品包括計算機可讀介質(zhì);在所述計算機可讀介質(zhì)上存儲的應(yīng)用模板模塊,所述應(yīng)用模板模塊用于定義所述預(yù)定義的元素并且包括有關(guān)顯示參數(shù)的信息,以及在所述設(shè)備和被壓縮應(yīng)用程序的應(yīng)用程序提供商之間共享的所述模板內(nèi)容的知識;在所述計算機可讀介質(zhì)上存儲的壓縮字典模塊,所述壓縮字典模塊用于表示包括多個表示作為可編碼元素的所述應(yīng)用程序預(yù)定義元素的代碼的壓縮格式;在所述計算機可讀介質(zhì)上存儲的解碼器模塊,所述解碼器模塊用于使用所選的壓縮格式對預(yù)定義元素進(jìn)行解碼,所述預(yù)定義元素包括通用元素,該通用元素表示用于軟件應(yīng)用程序和所述應(yīng)用程序內(nèi)容的應(yīng)用程序?qū)S迷氐牡燃壍耐ㄓ媒Y(jié)構(gòu);以未編碼的格式來保持所述應(yīng)用程序內(nèi)容的顯示參數(shù);以及與所述解碼器模塊連接的生成器模塊,所述生成器模塊包括未編碼的顯示參數(shù)和在應(yīng)用程序的未壓縮版本中的解碼預(yù)定義元素,所述應(yīng)用程序被配置為隨后在所述設(shè)備的運行時間環(huán)境上來執(zhí)行。
全文摘要
提供用于壓縮軟件應(yīng)用程序的系統(tǒng)和方法。所接收的軟件應(yīng)用程序包括通用標(biāo)簽和軟件應(yīng)用程序的等級屬性、應(yīng)用程序的專用元素和可顯示數(shù)據(jù)。對通用標(biāo)簽和屬性進(jìn)行編碼,并且還對應(yīng)用程序的專用元素進(jìn)行編碼,而可顯示數(shù)據(jù)仍然不被編碼。從而可以生成包括編碼通用標(biāo)簽和屬性、編碼應(yīng)用程序?qū)S脭?shù)據(jù)和未編碼可顯示數(shù)據(jù)的壓縮軟件應(yīng)用程序。編碼應(yīng)用程序的信息源和接收目的地設(shè)備可以共享壓縮碼的知識,所述壓縮碼用于對預(yù)定義的通用和預(yù)定義的應(yīng)用程序?qū)S迷剡M(jìn)行編碼。
文檔編號G06F15/16GK1751442SQ200480004304
公開日2006年3月22日 申請日期2004年2月16日 優(yōu)先權(quán)日2003年2月14日
發(fā)明者邁克爾·希尼菲爾德 申請人:捷訊研究有限公司