欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

提供和處理可執(zhí)行網(wǎng)頁內(nèi)容的系統(tǒng)和方法

文檔序號(hào):6566473閱讀:239來源:國知局

專利名稱::提供和處理可執(zhí)行網(wǎng)頁內(nèi)容的系統(tǒng)和方法
技術(shù)領(lǐng)域
:本發(fā)明涉及一種通過網(wǎng)絡(luò)連接用于數(shù)據(jù)交換的便攜式終端,如手機(jī),來提供各種內(nèi)容和服務(wù)的方法和系統(tǒng)。更具體的說,本發(fā)明涉及一種具有提供下載到終端的網(wǎng)頁月良務(wù)和應(yīng)用之技術(shù)特征和優(yōu)點(diǎn)的無線因特網(wǎng)平臺(tái)。背景技木目前,便攜式終端訪問因特網(wǎng)時(shí)使用的是以無線應(yīng)用協(xié)議(WirelessApplicationProtocol,簡稱WAP)瀏覽器為代表的專用于無線因特網(wǎng)的瀏覽器。在WAP瀏覽器的數(shù)個(gè)版本中,1.x版和2.x版的工作方式大相徑庭。WAPl.x版采用無線標(biāo)記語言(WirelessMarkupLanguage,簡稱WML)和WMLScript作為具體的內(nèi)^式。也就是說,它使用WML和WMLScript在終端上執(zhí)行簡單的代碼,在這里,WML相應(yīng)于超文本標(biāo)記語言(HyperTextMark叩Language,簡稱HTML),即有線因特網(wǎng)的標(biāo)記語言;WMLScript相應(yīng)于有線因特網(wǎng)中的JavaScript。具有這種格式的內(nèi)容首先通過有線網(wǎng)#送到WAP網(wǎng)關(guān),并在網(wǎng)關(guān)處被轉(zhuǎn)換成緊湊而高效的二進(jìn)制格式(被稱作"WBXML"),然后再通過無線網(wǎng)絡(luò)傳輸。然而,WAP2.x版^f吏用了更接近有線因特網(wǎng)中HTML標(biāo)準(zhǔn)的可擴(kuò)展超文本標(biāo)記語言(XHTML)移動(dòng)框架(XHTMLMP),并且,一種類似于JavaScript的ECMAScript有望被引入到WAP2.x版中。無論是有線還是無線,瀏覽器都使用具有有限詞匯和聲明性語法的標(biāo)記語言作為內(nèi)^式。因此,m^就表現(xiàn)形式制作出具有高自由度的內(nèi)容。為了克服上述限制,下面例舉的技術(shù)已經(jīng)或即將被采用腳本(Script):JavaScript是最有代表性的一個(gè)。加載在網(wǎng)頁服務(wù)器上的文本格式的程序代碼(腳本)以其本身的文本才各式被傳送給瀏覽器,或者在WAP的情況下,先在網(wǎng)關(guān)處被轉(zhuǎn)換成字節(jié)代碼,然后再被傳送給瀏覽器。同標(biāo)記語言相比,腳本是一種具有相對更強(qiáng)大功能的編程語言。它被用來在終端上實(shí)現(xiàn)用HTML、WML等具有聲明性語法格式的語言無法實(shí)現(xiàn)的功能。小應(yīng)用程序(applet):由太陽樣吏系統(tǒng)7>司(SunMicrosystems,Inc.)開發(fā)的Java小應(yīng)用程序(Javaapplet)是用Java語言編寫的小程序。一個(gè)小應(yīng)用程序要預(yù)先進(jìn)行編譯并加載在網(wǎng)頁服務(wù)器上,被瀏覽器下載后,通過瀏覽器中的Java虛擬機(jī)來運(yùn)行,并將運(yùn)行結(jié)杲同其他內(nèi)容一起顯示在屏幕上o插件以微軟視窗操作系統(tǒng)的ActiveX插件為例,它含有針對特定終端平臺(tái)的本機(jī)代碼,并主要是以動(dòng)態(tài)加載庫(DynamicLoadLibrary,筒稱DLL)的形式存在,經(jīng)過瀏覽器下載后,它就被動(dòng)態(tài)的加載和執(zhí)行。它可以使用終端平臺(tái)所提供的每一個(gè)應(yīng)用編程接口(API),所以能夠提供各種各樣的、強(qiáng)大的功能。然而,因?yàn)椴寮试S指針操作,并且難以預(yù)先測試程序的功能,所以其缺點(diǎn)在于很難阻止病毒和惡意軟件在客戶機(jī)上的運(yùn)行。HTML這種類型的標(biāo)記語言最初是為了顯示筒單的文本而設(shè)計(jì)的,因此存在基本原理上的限制。為了克服標(biāo)記語言的這種限制,在主要使用HTML和WML的內(nèi)容中,人們采用前面描述的各種技術(shù)作為一種補(bǔ)充。因?yàn)榍笆雒糠N技術(shù)有其各自的優(yōu)缺點(diǎn),所以最近的個(gè)人電腦(PC)瀏覽器支持前述所有技術(shù)。因而導(dǎo)致瀏覽器的結(jié)構(gòu)變得復(fù)雜,體積變大。并且,使用這些技術(shù)可能會(huì)出現(xiàn)安全問題和使瀏覽器變得不穩(wěn)定。以便攜式終端如手機(jī)為例,同個(gè)人電腦相比,它具有較小的計(jì)算能力和匱乏的資源,例如內(nèi)存。隨著對于瀏覽器各種功能的需求不斷增加,相應(yīng)的,類似個(gè)人電腦瀏覽器的各種功能正在逐漸被采用。然而,同個(gè)人電腦相比,這給手機(jī)上的瀏覽器在尺寸、復(fù)雜度和不穩(wěn)定性方面造成了更多的問題。在個(gè)人電腦情況下,有人提出過完全不同于傳統(tǒng)HTML的技術(shù)來克服上面提到的瀏覽器和標(biāo)記語言的各種限制和缺陷。在以"長角"(現(xiàn)在被稱為Vista)為代號(hào)的操作系統(tǒng)中,將會(huì)包括一種瀏覽器,該瀏覽器支持一種叫做"可擴(kuò)展應(yīng)用標(biāo)記語言"(ExtensibleApplicationMarkupLanguage,筒稱XAML)的新的標(biāo)記格式。"XAML"可能會(huì)包含一部分使用"C#"編程語言編寫的代碼。它在被轉(zhuǎn)換為可以運(yùn)行于擺i軟.net框架(Microsoft.NETframework)下通用語言運(yùn)行時(shí)(CommonLanguageRuntime,簡稱CLR)的中間語言(IntermediateLanguage,筒稱IL)字節(jié)代碼之后才^皮執(zhí)行。這種轉(zhuǎn)換可以提前離線進(jìn)行,然后將字節(jié)代碼直接從服務(wù)器傳送給瀏覽器。也可以將內(nèi)容以文和格式傳送給瀏覽器,然后在瀏覽器中進(jìn)行字節(jié)代碼的轉(zhuǎn)換和執(zhí)行。任何一種情況下,使用編程語言(例如C#)和聲明性標(biāo)記語言(XAML)編寫的內(nèi)容最終都會(huì)被轉(zhuǎn)換成可直接執(zhí)行的中間語言(IL)的字節(jié)代碼,然后再被瀏覽器動(dòng)態(tài)的加載和運(yùn)行。通過使用這種技術(shù),既保留了標(biāo)記語言其格式可以用方便、緊湊的方式表達(dá)和與傳統(tǒng)網(wǎng)頁開發(fā)方法相兼容的優(yōu)點(diǎn),又滿足了利用通用編程語言優(yōu)點(diǎn)(例如,各種用戶界面和功能)的需要。因此,同目前使用HTML和附加代碼(Script、插件Plug-in等)的網(wǎng)站相比,有望提供更加強(qiáng)大和易用的用戶接口。然而,像XAML這類技術(shù)是為具有強(qiáng)勁CPU和大內(nèi)存的個(gè)人電腦而開發(fā)的,在具有低運(yùn)算能力和小內(nèi)存的便攜式終端如手機(jī)上是不方便實(shí)現(xiàn)的。同時(shí),在有線因特網(wǎng)的情況下,為了防止受到病毒感染或泄露個(gè)人信息,必須對用戶下載的內(nèi)容或程序采取安全機(jī)制,因此,導(dǎo)致這種機(jī)制^皮廣泛的應(yīng)用。對于無線通信來說,通信成本要比有線網(wǎng)絡(luò)高,用戶通常根據(jù)產(chǎn)生的流量來付費(fèi)。因此,如果在用戶不知道的情況下,用戶下載的內(nèi)容執(zhí)^f亍了一些操作,就可能產(chǎn)生意外的通信費(fèi)用。也就是說,用戶會(huì)直接受到經(jīng)濟(jì)損失,以及遭遇有線網(wǎng)絡(luò)的常見問題如病毒傳播和個(gè)人信息的泄露。下面將對安全功能的必要性和常見的處理方式進(jìn)行詳細(xì)的描述。當(dāng)直接從網(wǎng)絡(luò)下載的代碼,如Java小應(yīng)用程序、ActiveX等,被運(yùn)行時(shí),因?yàn)闉g覽器很難知道該代碼將要執(zhí)行哪些操作,所以在終端設(shè)備上需要采用安全功能。如果一個(gè)普通的二進(jìn)制代碼被下載和運(yùn)行,對本機(jī)代碼(CPU可以直接運(yùn)行的代碼)如ActiveX來說,終端不能提前檢查該代碼會(huì)執(zhí)行哪些操作,也不能在運(yùn)行時(shí)執(zhí)行特殊的安全策略。因此,當(dāng)這種代碼被下載時(shí),需要進(jìn)行一個(gè)liS正過程來防止病毒或惡意軟件在終端的運(yùn)行。同時(shí),對于Java的一個(gè)具有代表性的版本"Java2標(biāo)準(zhǔn)版"(J2SE)來說,其規(guī)范建立在如下假定之上代碼最開始都是通過網(wǎng)絡(luò)下載得到的。因此,J2SE提供了比ActiveX更加復(fù)雜詳盡的安全功能。這一功能主要基于代碼是從哪個(gè)服務(wù)器上下載的,在代碼運(yùn)行時(shí)采用限制可允許功能的形式。在Java2移動(dòng)版(J2ME)的配置中,為了減少內(nèi)存的占用和提高處理速度,有卩艮連接i殳備酉己置(ConnectedLimitedDeviceConfiguration,簡稱CLDC)的虛擬機(jī)(VM)和運(yùn)行庫的安全功能比上述J2SE更簡單,這里的CLDC是指為有限內(nèi)存和處理能力的設(shè)備,如手機(jī),進(jìn)行的配置。在移動(dòng)信息設(shè)備規(guī)范(MobileInformationDeviceProfile,簡稱MIDP)l.x版中,只進(jìn)行筒單的辨別是可能的,其根據(jù)應(yīng)用程序是否經(jīng)過驗(yàn)證來允許或阻止其訪問敏感功能。在最近制定的MIDP2.0版的規(guī)范中,可以為每個(gè)功能的訪問制定策略。通常情況下,所有移動(dòng)設(shè)備上的Java安全機(jī)制都假定應(yīng)用程序是從一個(gè)服務(wù)器下載的,安全策略根據(jù)該服務(wù)器的地址而進(jìn)行選擇和應(yīng)用。因此,這樣做的限制就在于當(dāng)應(yīng)用程序和虛擬機(jī)停止之前,其策略是無法改變的。這樣,如果構(gòu)成網(wǎng)頁內(nèi)容應(yīng)用程序的代碼可以從幾個(gè)服務(wù)器下載,在上述常規(guī)Java安全機(jī)制下,適當(dāng)?shù)陌踩δ芫蜔o法^皮正確的應(yīng)用。更進(jìn)一步地,它不能提供根據(jù)環(huán)境以及其他方面廣泛和充分應(yīng)用的復(fù)雜詳盡的安全功能
發(fā)明內(nèi)容技術(shù)問題本發(fā)明的一個(gè)目的是提供一種用于提供可執(zhí)行的網(wǎng)頁內(nèi)容的新網(wǎng)頁平臺(tái),更具體的說,是提供一種能通過無線網(wǎng)絡(luò)提供具有各種功能和格式的內(nèi)容的方法和系統(tǒng),在便攜式終端上運(yùn)行該內(nèi)容可以克服便攜式終端運(yùn)行速度慢、內(nèi)存小的限制。本發(fā)明的另一目的是提供一種用于補(bǔ)充和制定更復(fù)雜詳盡的通過無線網(wǎng)絡(luò)傳輸?shù)臒o線內(nèi)容的安全功能的方法和系統(tǒng),以及運(yùn)行所述無線內(nèi)容的終本發(fā)明的又一目的是提供一種提高通過無線網(wǎng)絡(luò)傳輸網(wǎng)頁內(nèi)容的效率的方法和系統(tǒng)。本發(fā)明的又一目的是提供一種在緩存無線網(wǎng)頁內(nèi)容時(shí)實(shí)現(xiàn)緩存一致性的方法和系統(tǒng)。技術(shù)方案為了達(dá)到前述目的,根據(jù)本發(fā)明的一個(gè)實(shí)施例,本發(fā)明提供了一種用于提供可執(zhí)行的網(wǎng)頁內(nèi)容的系統(tǒng),其中,該系統(tǒng)包括服務(wù)器和網(wǎng)關(guān),所述服務(wù)器用于提供包括由聲明性語言編寫的聲明性語言部分和非聲明性語言部分的可執(zhí)行的網(wǎng)頁內(nèi)容;所述網(wǎng)關(guān)從服務(wù)器接收可執(zhí)行的網(wǎng)頁內(nèi)容,將其轉(zhuǎn)換成終端的網(wǎng)頁瀏覽器可以執(zhí)行的格式,并將轉(zhuǎn)換后的內(nèi)容傳送給終端。上述系統(tǒng)中,所述終端為無線通信終端,所述網(wǎng)頁內(nèi)容為無線網(wǎng)頁內(nèi)容。所述網(wǎng)頁服務(wù)器和所述網(wǎng)關(guān)通過有線網(wǎng)絡(luò)相連接,并且網(wǎng)關(guān)通過無線網(wǎng)絡(luò)連接至終端。所述終端包括無線網(wǎng)頁瀏覽器,所述網(wǎng)關(guān)通過無線網(wǎng)絡(luò)接收到來自無線網(wǎng)頁瀏覽器的獲取網(wǎng)頁內(nèi)容的請求,然后通過有線網(wǎng)絡(luò)就該網(wǎng)頁內(nèi)容向服務(wù)器提出請求,所述網(wǎng)頁內(nèi)容包括一個(gè)或多個(gè)文件,發(fā)送給服務(wù)器的獲取網(wǎng)頁內(nèi)容的請求包括對一個(gè)或多個(gè)文件的請求,最后網(wǎng)關(guān)接收到服務(wù)器響應(yīng)對服務(wù)器的請求而發(fā)送來的網(wǎng)頁內(nèi)容,并將該包含有一個(gè)或多個(gè)文件的網(wǎng)頁內(nèi)容在一個(gè)事務(wù)中傳輸給終端。所述網(wǎng)頁內(nèi)容中包含的一個(gè)或多個(gè)文件可以包4舌一個(gè)網(wǎng)頁內(nèi)容文件和至少一個(gè)資源文件,對該網(wǎng)頁內(nèi)容的請求包括對網(wǎng)頁內(nèi)容文件的請求和對至少一個(gè)資源文件的請求。所述網(wǎng)頁內(nèi)容包括靜態(tài)文件、動(dòng)態(tài)生成的文件、程序代碼(proceduralcode)的源代碼、可執(zhí)行二進(jìn)制文件和多媒體文件中的至少一種。所述非聲明性部分可以包括程序代碼,所述網(wǎng)關(guān)包括將聲明性語言部分轉(zhuǎn)換成程序代碼的裝置和將所述程序代碼編譯并轉(zhuǎn)換成可執(zhí)行文件的裝置。所述非聲明性部分可以包括程序代碼,所述網(wǎng)關(guān)可以包括用于編譯所述聲明性語言部分的裝置,用于編譯程序代碼的裝置,以及用于將所述聲明性執(zhí)行i件的模塊。、,一'、、。式的網(wǎng)頁內(nèi)容中,是否包括有違反安全策略的功能。如果網(wǎng)頁內(nèi)容中的文件包含有違反安全策略的功能,所述網(wǎng)關(guān)包括用于阻止所述文件凈皮傳送到終端的裝置。如果網(wǎng)頁內(nèi)容中的文件包含有違反安全策略的功能,所述網(wǎng)關(guān)包括用于在所述文件被傳送到終端前獲取終端用戶許可的裝置。如果網(wǎng)頁內(nèi)容中的文件包含有違反安全策略的功能,所述網(wǎng)關(guān)包括用于將代碼插入所述文件的裝置,其中,所述代碼導(dǎo)致運(yùn)行時(shí)執(zhí)行預(yù)定義的操作,所述預(yù)定義的操作由預(yù)定義的系統(tǒng)安全策略來決定。根據(jù)本發(fā)明的其他方面,一種用于為終端提供可執(zhí)行網(wǎng)頁內(nèi)容的系統(tǒng),其中,所述系統(tǒng)包括服務(wù)器和網(wǎng)關(guān),所述服務(wù)器用于提供所述可執(zhí)行網(wǎng)頁內(nèi)容,所述網(wǎng)關(guān)接收來自服務(wù)器的可執(zhí)行網(wǎng)頁內(nèi)容,將其轉(zhuǎn)換成終端網(wǎng)頁瀏覽器可執(zhí)行的格式,并將轉(zhuǎn)換后的內(nèi)容傳送給終端,其中,所述網(wǎng)頁內(nèi)容包括靜態(tài)文件、動(dòng)態(tài)生成的文件、程序代碼的源代碼、可執(zhí)行二進(jìn)制文件和多媒體文件中的至少一種,并且所述網(wǎng)關(guān)能編譯聲明性語言和程序代碼。所述程序代碼的源代碼包括Java代碼,并且所述可執(zhí)行二進(jìn)制文件包括jar文件。根據(jù)本發(fā)明的其他方面,提供一種用于從服務(wù)器接收可執(zhí)行網(wǎng)頁內(nèi)容并將其轉(zhuǎn)換為終端網(wǎng)頁瀏覽器可以執(zhí)行的格式的網(wǎng)關(guān),其中所述網(wǎng)頁內(nèi)容包括靜態(tài)文件、動(dòng)態(tài)生成的文件、程序代碼的源代碼、可執(zhí)行二進(jìn)制文件和多媒體文件中的至少一種,并且所述網(wǎng)關(guān)包括編譯器,所述編譯器用于編譯所述聲明性語言和程序代碼,并將其轉(zhuǎn)換成可執(zhí)行文件。所述網(wǎng)關(guān)通過有線網(wǎng)絡(luò)與所述網(wǎng)頁服務(wù)器通訊,并且所述網(wǎng)關(guān)通過無線網(wǎng)絡(luò)同終端通訊。所述終端包括無線網(wǎng)頁瀏覽器,所述網(wǎng)關(guān)通過無線網(wǎng)絡(luò)接收來自無線網(wǎng)頁瀏覽器的獲取網(wǎng)頁內(nèi)容的請求,然后通過有線網(wǎng)絡(luò)就該網(wǎng)頁內(nèi)容向服務(wù)器提出請求,所述網(wǎng)頁內(nèi)容包括一個(gè)或多個(gè)文件,所述發(fā)送給服務(wù)器的獲取網(wǎng)頁內(nèi)容的請求包括對一個(gè)或多個(gè)文件的至少一部分的請求,所述網(wǎng)關(guān)在一個(gè)事務(wù)中將包括在網(wǎng)頁內(nèi)容中的所述一個(gè)或多個(gè)文件傳送給終端。包括在所述網(wǎng)頁內(nèi)容中的一個(gè)或多個(gè)文件包括一個(gè)網(wǎng)頁內(nèi)容文件和資^請求。、、、,、、、、,,'\;'、、所述程序代碼的源代碼可以包括Java代碼,所述可執(zhí)行二進(jìn)制文件可以包括jar文件。所述網(wǎng)關(guān)包括用于將聲明性語言部分轉(zhuǎn)換成程序代碼的轉(zhuǎn)換器;用于編譯所述程序代碼的編譯器;用于分析來自網(wǎng)頁服務(wù)器的可執(zhí)行二進(jìn)制文件的處理器,并且如果引用一個(gè)外部文件的話,該處理器荻取該外部文件;和用于確定來自網(wǎng)頁服務(wù)器的網(wǎng)頁內(nèi)容是否含有導(dǎo)致安全問題的功能的安全管理器。進(jìn)一步地,所述網(wǎng)關(guān)包括用于檢測網(wǎng)頁內(nèi)容中是否包括違反安全策略的功能的裝置,所述網(wǎng)頁內(nèi)容已經(jīng)被轉(zhuǎn)換成可在終端網(wǎng)頁瀏覽器中執(zhí)行的格式。如果網(wǎng)頁內(nèi)容中的文件包含有違反安全策略的功能,網(wǎng)關(guān)就不將所述文件傳送給終端。如果網(wǎng)頁內(nèi)容中的文件包含有違反安全策略的功能,網(wǎng)關(guān)在將所述文件傳送給終端之前要得到終端用戶的許可。如果網(wǎng)頁內(nèi)容中的文件包含有違反安全策略的功能,網(wǎng)關(guān)就將代碼插入所述文件中,其中,所述代碼在運(yùn)行時(shí)引起某種操作的執(zhí)行,所述操作是由預(yù)定的系統(tǒng)安全策略確定的。所述終端可以包括無線網(wǎng)頁瀏覽器,網(wǎng)頁內(nèi)容含有至少一個(gè)文件,所述網(wǎng)關(guān)通過無線網(wǎng)^^妻收到無線網(wǎng)頁瀏覽器獲取網(wǎng)頁內(nèi)容的請求,所述獲取網(wǎng)頁內(nèi)容的請求包括已經(jīng)在瀏覽器內(nèi)緩存的所述文件的名稱和最后修改時(shí)間,所述網(wǎng)關(guān)通過有線網(wǎng)絡(luò)向服務(wù)器發(fā)出獲取所述網(wǎng)頁內(nèi)容的請求,所述向服務(wù)器發(fā)出的獲取網(wǎng)頁內(nèi)容的請求包括對至少一個(gè)文件的請求,所述網(wǎng)關(guān)接收服務(wù)器響應(yīng)請求而發(fā)出的包含在所述網(wǎng)頁內(nèi)容中的至少一個(gè)文件,將之同緩存的文件的名稱和最后修改時(shí)間進(jìn)行比較,并且只將同緩存文件相比已經(jīng)修改過或新增加的文件傳送給終端。根據(jù)本發(fā)明的另一方面,提供了一種用于存儲(chǔ)能瀏覽可執(zhí)行網(wǎng)頁內(nèi)容的網(wǎng)頁瀏覽器的計(jì)算機(jī)存貯介質(zhì),其中,所述網(wǎng)頁瀏覽器接收和執(zhí)行二進(jìn)制可執(zhí)行代碼格式的網(wǎng)頁內(nèi)容。根據(jù)本發(fā)明的另一方面,提供了一種包含有用于瀏覽可執(zhí)行網(wǎng)頁內(nèi)容的網(wǎng)頁瀏覽器的終端,其中,所述網(wǎng)頁瀏覽器接收和執(zhí)行二進(jìn)制可執(zhí)行代碼格式的網(wǎng)頁內(nèi)容。所述網(wǎng)頁內(nèi)容包^"至少一個(gè)文件,并且所述至少一個(gè)文件包含有網(wǎng)頁內(nèi)容所引用的共享資源文件,所述終端包括一緩存,并且當(dāng)所述共享資源文件在緩存中被緩存時(shí),一個(gè)表示有多少文件引用所述共享資源文件的引用計(jì)數(shù)與之存儲(chǔ)在一起。如果終端接收到的網(wǎng)頁內(nèi)容中包含的文件版本比緩存的共享資源文件版本新,就將新版本的共享資源文件保存在緩存中,并將已有所緩存的共享資源文件的引用計(jì)數(shù)減l。如果引用計(jì)數(shù)減小至0,就刪除已有所緩存的共享資源文件。圖1是本發(fā)明的一種用于提供可執(zhí)行網(wǎng)頁內(nèi)容(xc)的網(wǎng)絡(luò)系統(tǒng)的示意圖2是圖1的詳細(xì)方框圖3是本發(fā)明的用于提供可執(zhí)行網(wǎng)頁內(nèi)容(XC)的網(wǎng)絡(luò)系統(tǒng)的又一個(gè)示意圖,該示意圖對本發(fā)明中的安全功能進(jìn)行示意;圖4顯示了Java類文件結(jié)構(gòu)的一個(gè)實(shí)例;圖5和圖6是本發(fā)明的一個(gè)實(shí)施例中對用于減少事務(wù)數(shù)量的基本方法進(jìn)行說明的網(wǎng)絡(luò)系統(tǒng)的示意圖7是根據(jù)本發(fā)明的一個(gè)實(shí)施例對采用緩存防止非必要傳輸?shù)臑g覽器的算法的示意圖8是根據(jù)本發(fā)明的一個(gè)實(shí)施例對采用緩存防止非必要傳輸?shù)木W(wǎng)關(guān)所執(zhí)行的算法的示意圖9是現(xiàn)有瀏覽器中所采用的管理共享資源的方法的示意圖10是根據(jù)本發(fā)明的一個(gè)實(shí)施例所采用的管理共享資源的方法的示意圖。具體實(shí)施例方式本發(fā)明提出了一種被稱為可執(zhí)行內(nèi)容標(biāo)記語言(executableContentMarkupLanguage,XCML)的新型標(biāo)記語言,并提出了一種提供網(wǎng)頁內(nèi)容的方法和系統(tǒng),該網(wǎng)頁內(nèi)容采用XCML進(jìn)行描述。XHTML或WML是一種常規(guī)無線因特網(wǎng)內(nèi)容的標(biāo)準(zhǔn)格式,與它們相類似,本發(fā)明所提供的XCML是一種基于XML的標(biāo)記語言。也就是說,與HTML或WML—樣,XCML是一種主要由聲明性語言(declarativelanguage)部分(下文中簡稱為"標(biāo)簽部分",意味著它用標(biāo)簽表示)組成的標(biāo)記語言格式。然而,正如包含在HTML中的JavaScript—樣,XCML允許將無法用聲明性文法表示的內(nèi)容(非聲明部分)采用諸如JavaScript的程序代碼表示,并將該內(nèi)容以文本格式包含在網(wǎng)頁內(nèi)容文件中(Java代碼部分),或者允許在網(wǎng)頁內(nèi)容文件中引用一個(gè)外部Java文件。如圖1所示,根據(jù)本發(fā)明的一種用于提供XCML格式的內(nèi)容和其他網(wǎng)頁內(nèi)容的網(wǎng)絡(luò)系統(tǒng)浮皮i殳計(jì)為在網(wǎng)關(guān)200中將其內(nèi)容轉(zhuǎn)換為諸如Java的可執(zhí)行代碼(在Java中一般被稱為"Java字節(jié)代碼"),并將可執(zhí)行代碼通過無線網(wǎng)絡(luò)傳輸?shù)浇K端300并執(zhí)行。所述網(wǎng)關(guān)200通過有線網(wǎng)絡(luò)與網(wǎng)頁服務(wù)器100相連。因此,盡管常規(guī)的網(wǎng)絡(luò)系統(tǒng)由網(wǎng)頁服務(wù)器(在服務(wù)器端)和瀏覽器(在客戶端)組成,本發(fā)明的網(wǎng)絡(luò)系統(tǒng)由網(wǎng)頁服務(wù)器、網(wǎng)關(guān)和瀏覽器(客戶端)組成。圖1是這種配置的網(wǎng)絡(luò)系統(tǒng)的方框圖,圖2是對圖1中示出的各個(gè)單元的方框圖,在圖2中,對網(wǎng)頁服務(wù)器100,網(wǎng)關(guān)200和終端300分別進(jìn)行了詳細(xì)示意。在下文中,將描述圖1和圖2中的每個(gè)單元。雖然這里假定將Java用作編程語言,并將Java字節(jié)代碼作為執(zhí)行代碼使用,但本發(fā)明并不局限于上述假設(shè),其他具有類似特征的語言也可用于本發(fā)明。在圖1和圖2中,網(wǎng)頁服務(wù)器100可以是利用HTTP協(xié)議提供WAP內(nèi)容或普通網(wǎng)頁內(nèi)容的普通網(wǎng)頁服務(wù)器。由網(wǎng)頁服務(wù)器所提供的內(nèi)容可以是靜態(tài)文本,圖片文件,或由通用網(wǎng)關(guān)接口(CGI)生成的動(dòng)態(tài)文件,Servlet等。這個(gè)文件可以包含根據(jù)本發(fā)明的XCML(可執(zhí)行內(nèi)容標(biāo)記語言)格式的文本文件(如圖2中的文件120和130),Java源代碼文件140,jar文件150(—種將至少一個(gè)Java類文件和其他資源文件壓縮在一個(gè)文件中的文件),或圖像、音樂或電影文件等。由于由網(wǎng)頁服務(wù)器100所提供的XCML文件可以自由地包含各種可執(zhí)行部件,因此與常規(guī)的無線因特網(wǎng)內(nèi)容相比,有可能提供可以實(shí)現(xiàn)更強(qiáng)大的功能的內(nèi)容。此處所提到的文件不僅僅指常規(guī)計(jì)算機(jī)文件系統(tǒng)中使用的文件,還指作為一個(gè)單位通過網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)集合(如程序代碼,二進(jìn)制文件等)。根據(jù)本發(fā)明,利用無線終端平臺(tái)(操作系統(tǒng))本身所提供的各種功能以開發(fā)和提供該內(nèi)容已成為可能,而無線終端平臺(tái)所提供的功能并不局限于終端瀏覽器所提供的功能。例如,有可能提供利用存儲(chǔ)在終端中的電話號(hào)碼信息執(zhí)行某一特定操作的內(nèi)容,而上述功能在常規(guī)的瀏覽器中是不可能提供的。本發(fā)明的網(wǎng)關(guān)可以與網(wǎng)頁服務(wù)器之間進(jìn)行協(xié)商,以確定是否有必要以大量的事務(wù)更新存儲(chǔ)在終端的緩存中的內(nèi)容,該事務(wù)的數(shù)量多于在終端和網(wǎng)關(guān)間(無線部分)的無線事務(wù)的數(shù)量。這樣做的目的是為了減少無線部分中的單位通信(事務(wù))的數(shù)量,因?yàn)闊o線部分有很長的往返行程時(shí)間,所以當(dāng)信息被分割并被多次傳送時(shí),它所造成的時(shí)延會(huì)變得相當(dāng)大。與之相比,在有線部分中的大量交互并不需要消費(fèi)許多時(shí)間。根據(jù)本發(fā)明的方案,減少終端與網(wǎng)關(guān)間(即無線部分)的業(yè)務(wù)量以提高效率,同時(shí)充分利用了終端的緩存功能。利用緩存以提高通信效率的改進(jìn)將會(huì)參考圖5-8進(jìn)行詳細(xì)說明。如圖2所示,下面對XC網(wǎng)關(guān)200中各個(gè)方框的功能進(jìn)行詳細(xì)說明。XCMLJava轉(zhuǎn)換器210執(zhí)行一個(gè)功能,該功能是通過一種事先確定的方法將根據(jù)本功能的XCML格式的文本文件轉(zhuǎn)換成Java代碼。此處生成的Java代碼既可以是文本格式的Java源代碼,也可以是包含有源代碼片斷的某一種表達(dá)格式表示的代碼。如上所述,XCML的一部分包含有特定于XCML的標(biāo)簽(前述的"標(biāo)簽部分"),一部分為用文本格式表示的Java代碼。由XCML標(biāo)簽組成的聲明部分在網(wǎng)關(guān)200中被轉(zhuǎn)換為Java代碼,并在服務(wù)器100與最初用Java編寫的部分(Java代碼部分)進(jìn)行合并,然后編譯生成Java類。合并標(biāo)簽部分和Java代碼部分,并將合并后的代碼編譯成Java類的方法可以有多種。其中一種可能的方法是將標(biāo)簽部分轉(zhuǎn)換成Java源語言文本,并與現(xiàn)有的Java.代碼部分進(jìn)行合并,形成一個(gè)完整的Java源程序,然后進(jìn)行編譯。在此類方法中,XCMLJava轉(zhuǎn)換器210用于將XCML的Java代碼部分進(jìn)行合并,并將合并結(jié)果傳輸?shù)絁ava編譯器220中。Java編譯器220用于編譯Java源代碼以生成Java類文件。在本發(fā)明的另一個(gè)實(shí)施例中,標(biāo)簽部分被直接轉(zhuǎn)換為Java字節(jié)代碼而不是Java源代碼格式,最初用Java代碼編寫的Java代碼部分被單獨(dú)編譯后,與標(biāo)簽部分的字節(jié)代碼進(jìn)行合并,從而生成一個(gè)Java類。在此情況下,XCMLJava轉(zhuǎn)換器210將XCML文件中的標(biāo)簽部分轉(zhuǎn)換為字節(jié)代碼,而Java編譯器220編譯Java代碼部分并與標(biāo)簽部分的字節(jié)代碼進(jìn)行合并,從而生成一個(gè)Java類文4牛。如果一個(gè)XCML文件引用Java代碼140(參見圖2),網(wǎng)關(guān)向網(wǎng)頁服務(wù)器請求所引用的Java代碼140并接收它。在此情況下,將在XCMLJava轉(zhuǎn)換器210中生成的Java代碼與從網(wǎng)頁服務(wù)器上獲得的Java代碼進(jìn)行合并,生成一個(gè)可執(zhí)行文件。在此情況下,Java編譯器220不僅編譯在XCMLJava轉(zhuǎn)換器210中生成的Java代碼,同時(shí)也編譯從網(wǎng)頁服務(wù)器上獲得的Java代碼,然后將兩者合并起來。除Java代碼140外(參見圖2),jar文件150可以直接被XCML文件引用。在此情況下,網(wǎng)關(guān)解釋該XCML文件,向網(wǎng)頁服務(wù)器請求必需的jar文件并接收它。同樣的,瀏覽器通過網(wǎng)關(guān)向網(wǎng)頁服務(wù)器請求的新的網(wǎng)頁內(nèi)容可能不含有XCML文件而是包含了最初用Java語言撰寫并^皮獨(dú)立編譯的jar文件。如果從網(wǎng)頁服務(wù)器IOO所下載的文件是不需要編譯的jar文件,jar文件處理器230取代Java編譯器220對所下載的文件進(jìn)行處理。如果jar文件引用外部文件,jar文件處理器230解析該列表并從網(wǎng)頁服務(wù)器IOO上獲取相應(yīng)文件。同樣的,如果在網(wǎng)頁服務(wù)器100中有凈皮XCML文件中所引用的單獨(dú)文件,則可從網(wǎng)頁服務(wù)器IOO獲得此類資源。一個(gè)獨(dú)立的資源獲取器(并未在圖上示出)用于獲取在網(wǎng)頁內(nèi)容文件中所引用的外部資源文件,資源獲取器可在XC網(wǎng)關(guān)200上實(shí)現(xiàn)。緩存260是一個(gè)用于存儲(chǔ)例如從網(wǎng)頁服務(wù)器100上獲取的文件或編譯得到的二進(jìn)制文件的空間。本領(lǐng)域的普通4支術(shù)人員都知道,緩存可以被設(shè)計(jì)成用來實(shí)現(xiàn)不同的功能,因此,它的詳細(xì)功能以及各個(gè)部件之間的關(guān)系未在此處示出。在緩存的有效性由HTTP協(xié)議標(biāo)準(zhǔn)檢查方面,緩存260與常規(guī)的網(wǎng)頁緩存類似,但是緩存260還具有存儲(chǔ)編譯后的結(jié)果以及從網(wǎng)頁服務(wù)器上所接收的文件的其他功能。安全管理器240在字節(jié)代碼被傳輸?shù)娇蛻舳?如終端300)之前,檢查字節(jié)代碼中是否存在會(huì)引起安全問題的代碼。如果所要傳輸?shù)淖止?jié)代碼中包含有會(huì)引起安全問題的代碼,則下載該代碼的操作可能會(huì)被拒絕,或者它可以在終端用戶許可的情況下被下載。詳盡的安全管理方法將會(huì)在下文中詳細(xì)討論。協(xié)議棧250是用于執(zhí)行每一層通信協(xié)議的程序部件集??紤]到用于連接到終端的無線因特網(wǎng)所具有的特征,協(xié)議棧250采用修改過的HTTP協(xié)議以最小化通信中的往返過程。根據(jù)本發(fā)明的此類協(xié)議的進(jìn)一步細(xì)節(jié)會(huì)在下文中詳細(xì)討論。現(xiàn)在對終端300中的各個(gè)部件進(jìn)行詳細(xì)討論。終端300可以是可實(shí)現(xiàn)對無線因特網(wǎng)內(nèi)容進(jìn)行下載,執(zhí)行和顯示的各種設(shè)備,例如,移動(dòng)電話,個(gè)人數(shù)字助理(PDA)等。在圖1和圖2中的可執(zhí)行內(nèi)容瀏覽器(XCB)310是一個(gè)客戶端應(yīng)用,它與XC網(wǎng)關(guān)200相連,并下載、執(zhí)行主要由字節(jié)代碼組成的內(nèi)容??蓤?zhí)行內(nèi)容瀏覽器310在終端300上運(yùn)行。用戶接口320是指在瀏覽器310本身的用戶接口,例如,通用菜單。也就是說,它是指無論瀏覽器所瀏覽的內(nèi)容是什么基本上都應(yīng)具有的通用用戶接口部件。例如,它包括回到前一頁,刷新,打開一個(gè)URL,書簽,歷史,選項(xiàng)等。在圖2中,諸如頁l、頁2之類的方框用于描述一個(gè)從服務(wù)器上下載并被執(zhí)行的內(nèi)容單元。每一頁通過統(tǒng)一資源定位指示符(URL)明確定義,并可包含一個(gè)或多個(gè)Java類以及資源文件。用戶接口部件360是一種為用戶接口(UI)部件,例如,標(biāo)簽(一行文本框),按鈕等。這些部件能夠在XCML或Java程序中被使用或繼承。特別的,根據(jù)本發(fā)明的一個(gè)實(shí)施例,在XCML中,每個(gè)UI部件能夠用一個(gè)與部件對應(yīng)的標(biāo)簽表示。例如,為了生成一個(gè)其上帶有"幫助"字樣的按鈕,可以采用如下描述<buttontext=,,Help,7>這一標(biāo)簽被轉(zhuǎn)換為用于生成某一特定類實(shí)例的代碼,例如,類"widerthan.xcb.Xbutton"就是這樣的一種用戶接口部件。根據(jù)本發(fā)明,在內(nèi)容中擴(kuò)展或修改系統(tǒng)(XCB)所提供的基本用戶接口部件360的觀感(thelook&fell)或功能成為可能。也就是說,為了擴(kuò)展或修改基本用戶接口部件,一個(gè)新類可以繼承對應(yīng)于用戶接口部件的Java類,并補(bǔ)充一些函數(shù)或進(jìn)4亍^修改。例如,一個(gè)是繼承類widerthan.xcb.Xbutton的名稱為MyButton的類在XCML內(nèi)容的"頭"(header)部分被定義,為了使用這一類,在XCML內(nèi)容的主體(body)部分對標(biāo)簽做如下定義<buttontext-"Help"class-,,MyButton,V>布局管理器350(通常被稱為布局引擎)用于根據(jù)內(nèi)容中的定義在顯示屏上安排用戶接口部件360。例如,如果在網(wǎng)頁服務(wù)器的內(nèi)容定義將一個(gè)具有預(yù)定形狀的按鈕部件安排在屏幕的左邊,則當(dāng)在網(wǎng)關(guān)200由該內(nèi)容轉(zhuǎn)換后的字節(jié)代碼在XC瀏覽器310中執(zhí)行時(shí),布局管理器350用于安排部件的位置以使得它與最初內(nèi)容相符合。緩存270用于緩存Java字節(jié)代碼和從服務(wù)器上下載得到的其他資源文件。正如在下文中將要詳細(xì)描述的,在網(wǎng)關(guān)200與終端300間的無線部分的通信業(yè)務(wù)量可通過適當(dāng)?shù)木彺娌僮鞫鴾p少。瀏覽器310的協(xié)議棧與XC網(wǎng)關(guān)200中的協(xié)議棧相對應(yīng)。如上所述,與HTML或WML相類似,XCML主要包括由聲明性語言格式組成的部分,以及與包含在HTML中的JavaScript相類似,無法用聲明性語法表示的內(nèi)容可以通過Java代碼表示并4皮包含在一個(gè)網(wǎng)頁內(nèi)容文件中,或者在網(wǎng)頁內(nèi)容文件(XCML文件)中引用一個(gè)外部Java文件。常規(guī)的網(wǎng)絡(luò)系統(tǒng)包括一個(gè)網(wǎng)頁服務(wù)器和一個(gè)終端,一個(gè)包含有聲明性標(biāo)記語言和JavaScript部分的網(wǎng)頁內(nèi)容文件可通過以下例示步驟顯示在終端的屏幕上(1)終端瀏覽器通過一個(gè)指定的URL向網(wǎng)頁服務(wù)器請求網(wǎng)頁內(nèi)容文件;(2)網(wǎng)頁服務(wù)器生成網(wǎng)頁內(nèi)容文件或閱讀通過URL所指定的網(wǎng)頁內(nèi)容文件,并通過網(wǎng)絡(luò)傳輸任一這些文件;(3)終端瀏覽器下載并語法分析所述文件;(4)分析器根據(jù)一個(gè)預(yù)先定義的方法生成用戶接口部件,并用文件中指定的格式初始化這些用戶接口部件;(5)JavaScript部分凈皮轉(zhuǎn)換成可執(zhí)行的內(nèi)部表達(dá)才各式并保存下來;(6)當(dāng)每一個(gè)用戶接口部件被初始化后,用戶的輸入可按照設(shè)計(jì)的特性進(jìn)行處理。在所執(zhí)行的功能不是用戶接口部件的基本功能的情況下,可通過對與用戶接口部件相鏈接的JavaScript的調(diào)用來實(shí)現(xiàn)對用戶輸入的處理。例如,在以一個(gè)例如按鈕輸入的用戶輸入使得在多個(gè)用戶接口中聚焦一個(gè)用戶接口部件時(shí),初始化要改變的該特定用戶接口部件的顏色可通過以下代碼實(shí)現(xiàn)<ahref="http:〃www.foo.com"Onfocus=,,JavaScript:this.style.backgroundcolor='yellow,,,>Link</a>根據(jù)上述的初始化配置過程,移動(dòng)焦點(diǎn)到特定部件的用戶輸入被指定動(dòng)作"改變顏色"。與上述說明相比,為了根據(jù)本發(fā)明在終端下載和執(zhí)行XCML文件,例如執(zhí)行以下操作(1)瀏覽器(終端)與預(yù)定的XC網(wǎng)關(guān)200相連,并傳輸對XCML文件的請求,所述XCML文件通過某一URL指定。(2)網(wǎng)關(guān)向服務(wù)器100請求從終端300請求的XCML文件。(3)在服務(wù)器100上生成XCML文件或檢索由URL所指定的文件,并傳輸?shù)骄W(wǎng)絡(luò)。(4)網(wǎng)關(guān)200下載并語法分析XCML文件,得到Java可執(zhí)行代碼。此處所得到的代碼可執(zhí)行與前述常規(guī)瀏覽器相同的操作(包括生成用戶接口部件并初始4匕它)。(5)網(wǎng)關(guān)編譯包含在下載的XCML文件中的Java代碼,或?qū)⒂蒟CML所引用的外部Java代碼編譯進(jìn)Java可執(zhí)行代碼,并將編譯結(jié)果傳送到終端300的XC瀏覽器中。(6)XC瀏覽器310下載Java字節(jié)代碼,根據(jù)Java字節(jié)代碼動(dòng)態(tài)加載類,并執(zhí)行該代碼。也就是說,XC瀏覽器310從網(wǎng)絡(luò)上下載Java字節(jié)代碼,并加載到正在被執(zhí)行的Java虛擬機(jī)中,從而使得應(yīng)用程序的字節(jié)代碼所定義的類可以被使用,然后執(zhí)行這些代碼。在執(zhí)行代碼的過程中,生成并初始化用戶接口部件。(7)通過上述步驟(6)所生成的用戶接口部件或由單獨(dú)包括的Java代碼對用戶輸入進(jìn)行處理。采用常規(guī)的網(wǎng)頁服務(wù)器和終端瀏覽器進(jìn)行瀏覽的方法與本發(fā)明的方法具有以下主要不同點(diǎn)(i)盡管常規(guī)瀏覽器在瀏覽器中包括分析網(wǎng)頁內(nèi)容文件、生成并初始化用戶接口部件360的功能,而根據(jù)本發(fā)明由網(wǎng)關(guān)200完成上述功能。換句話說,網(wǎng)關(guān)形成Java代碼并下載到終端中,客戶端很少執(zhí)行所下載的代碼。(ii)在常規(guī)的瀏覽器中,程序部件用JavaScript形式表達(dá),采用JavaScript表示的部分可以通過使用JavaScript編譯器和字節(jié)代碼解釋器來執(zhí)行,后者把用JavaScript表示的部分轉(zhuǎn)換為可執(zhí)行格式(一般來說,惟一的字節(jié)代碼)。另一方面,根據(jù)本發(fā)明,用Java表示的程序代碼與聲明性語言部分一起編譯以轉(zhuǎn)換成Java字節(jié)代碼,然后,在終端的Java虛擬機(jī)(JVM)中執(zhí)行。本發(fā)明具有以下優(yōu)點(diǎn)因?yàn)橥ㄟ^(聲明性語言部分的)聲明語法形成的代碼和(非聲明部分的)程序代碼采用相同的應(yīng)用程序接口(API),因此兩者在共同工作時(shí)更直接、更有效。所有的應(yīng)用程序接口,以及Java虛擬機(jī)(JVM)和終端庫(terminallibrary)所具有的功能都能不受終端瀏覽器限制而使用。終端可在不語法分析網(wǎng)頁內(nèi)容文件的前提下立即執(zhí)行代碼。即使有新的語法被添加到用來表示內(nèi)容的標(biāo)記語言中,也不需要在終端的瀏覽器上進(jìn)行諸如添加相應(yīng)功能的修改。安全功能參考圖3,對根據(jù)本發(fā)明的安全功能進(jìn)行說明。圖3是本發(fā)明中用于提供可執(zhí)行網(wǎng)頁內(nèi)容(XC)的網(wǎng)絡(luò)系統(tǒng)的示意圖。參考圖3,對本發(fā)明中的安全功能進(jìn)行舉例說明。如圖3所示,為了在終端上執(zhí)行內(nèi)容提供商(CP)服務(wù)器B上的頁P(yáng),如果頁P(yáng)引用了存在于同一個(gè)通信公司(carrier)的服務(wù)器A上的庫L,XC網(wǎng)關(guān)200將組合了P和L的Java應(yīng)用程序下載到客戶端(XC瀏覽器310)。此時(shí),不同程度的安全策略可以被應(yīng)用在通信公司的庫和內(nèi)容提供者的程序中。換句話說,一個(gè)安全策略可以允許由通信公司管理的L使用終端的所有功能,并阻止P獲得諸如撥號(hào)、電話目錄等某些特定功能。根據(jù)本發(fā)明,提供了一種新的安全機(jī)制,通過該機(jī)制可以在一個(gè)內(nèi)容(P+L)中使用不同的安全策略。在本發(fā)明中,與現(xiàn)有方法不同的是,網(wǎng)關(guān)可以對從每個(gè)服務(wù)器上下載的Java代碼做靜態(tài)檢查,一旦發(fā)現(xiàn)所得到的代碼違反為每個(gè)服務(wù)器所指定的安全策略,對上述代碼的下載就會(huì)被禁止或只有在用戶允許的情況才能下載。標(biāo)記語言而非Java代碼編寫的情況下,則網(wǎng)關(guān)200在語法分析文件并生成Java代碼時(shí)所執(zhí)行的安全策略的特定方法是已知的。因此,省略對這一情況的進(jìn)一步解釋說明。在下面對Java類文件的結(jié)構(gòu)以及相應(yīng)的安全機(jī)制進(jìn)行說明。在網(wǎng)關(guān)200從服務(wù)器100上下載Java源代碼或二進(jìn)制文件(類文件或包含有類文件的jar文件)后,網(wǎng)關(guān)為了執(zhí)行安全功能應(yīng)當(dāng)可以決定并控制終端上的哪個(gè)功能可被該代碼訪問。為了實(shí)現(xiàn)上述操作,網(wǎng)關(guān)需要對Java類文件進(jìn)行^^析。圖4顯示了Java類文件結(jié)構(gòu)的一個(gè)實(shí)例。其中,在被實(shí)際執(zhí)行的字節(jié)代碼被包含在方法區(qū)。盡管本機(jī)代碼(例如匯編代碼)可以訪問任何存儲(chǔ)器,通過Java解釋器或JIT(Just-In-Time)編譯器執(zhí)行的Java字節(jié)代碼只能訪問類和通過類文件中的常數(shù)池所分配的函數(shù)。當(dāng)網(wǎng)關(guān)200發(fā)現(xiàn)某一代碼要訪問在安全策略下被禁止訪問的類或函數(shù)(例如,閱讀電話目錄)時(shí),就必須采取適當(dāng)?shù)拇胧?,如禁止使用該代碼或只有在終端用戶許可的情況下才允許使用該代碼。要執(zhí)行上述措施可以有幾種方法。下面是這些方法的一些例子。在這些方法中,所使用的某一具體方法可由通信公司的策略決定,或由為各個(gè)不同安全域中所分配的安全策略決定。(a)禁止下載的方法如果構(gòu)成用戶(也就是客戶端)所要下載的頁的類文件中包含有違背安全策略的代碼,則從網(wǎng)關(guān)上下載這些文件到終端的過程會(huì)被終止,并通知用戶和管理者。在圖l和圖2所顯示的實(shí)施例中,上述功能通過安全管理器240執(zhí)行。(b)下載時(shí)需要用戶確認(rèn)的方法用戶被通知(用戶所請求的)該頁訪問該功能,并在用戶同意后,瀏覽器移到該頁。例如,一個(gè)由用戶向網(wǎng)關(guān)請求的頁調(diào)用撥號(hào)功能,網(wǎng)關(guān)向用戶通告該情況(例如,網(wǎng)關(guān)向終端發(fā)送消息"當(dāng)前程序包括撥號(hào)功能,你是否想繼續(xù)?"),網(wǎng)關(guān)都將被通知用戶是否同意。如果用戶同意,該頁被下載到終端上。(c)在運(yùn)行時(shí)接收用戶批準(zhǔn)的方法上述兩種方法具有在某些代碼真正違反安全策略前完全禁止下載的特點(diǎn)。盡管如此,也有一些情況下最好在執(zhí)行這些違背安全策略的代碼時(shí)禁止或要求用戶許可。換句話說,與其完全阻止其某項(xiàng)功能的代碼,不如在執(zhí)行時(shí)根據(jù)代碼實(shí)際執(zhí)行的功能應(yīng)用不同的安全策略。例如,允許訪問某些服務(wù)器,而不是阻止對所有服務(wù)器的訪問。同樣的,允許代碼對終端中某些文件(在某些目錄中的文件)的訪問,而不是完全阻止代碼訪問終端中的文件。在運(yùn)行時(shí)#^居不同的情況選擇應(yīng)用安全策略不能在網(wǎng)關(guān)中實(shí)現(xiàn),而是應(yīng)當(dāng)在運(yùn)行時(shí)在終端中實(shí)現(xiàn)。因此,在運(yùn)行時(shí)執(zhí)行某些操作的代碼可以在網(wǎng)關(guān)中被插入到一個(gè)程序中以執(zhí)行所需要的功能。在下文中對程序運(yùn)行時(shí)的阻止(checking)方法的具體實(shí)施例進(jìn)行解釋說明。第一種方法是替換所引用的類當(dāng)某一無線網(wǎng)頁P(yáng)的代碼要訪問類C中的函數(shù)F,而這一訪問由于安全策略是被禁止,則一個(gè)繼承類C并覆蓋(override)函數(shù)F的新類Cl可以預(yù)先在終端中準(zhǔn)備或作為P的一部分下載。在終端中,類Cl的函數(shù)F只有在用戶同意的情況下才調(diào)用類C的函數(shù)F。為實(shí)現(xiàn)這種安全功能,網(wǎng)關(guān)將在(包括在P中的)該類的常數(shù)池引用C的入口(entry),修改為引用Cl的另一個(gè)入口,并將修改后的版本下載到客戶端。因?yàn)镃1繼承C,對于C中除了函數(shù)F外的所有函數(shù)仍可按以前一樣被調(diào)用,而原始頁P(yáng)中除了函數(shù)F外的函數(shù)都被執(zhí)行。上述方法有一個(gè)缺點(diǎn),那就是如果不可能覆蓋就不能應(yīng)用,在例如類C或函數(shù)F是不可改變的(final)的情況,就是這樣。所提供的第二種方法被用于克服上述缺陷生成一個(gè)新的類D,代替繼承類C的類Cl,當(dāng)D中的F經(jīng)用戶同意后,C中的F被調(diào)用。因?yàn)镈并不是一個(gè)繼承C的類,而僅是調(diào)用F的函數(shù),如果對常數(shù)池中C的引用按照上述描述被替換成D,它就無法調(diào)用除F以外的函數(shù)。因此,在常數(shù)池中生成一個(gè)對D的新入口,并對方法部分中的字節(jié)代碼進(jìn)行掃描,以確定將調(diào)用類C的有問題的F的代碼轉(zhuǎn)換為調(diào)用類D的F的代碼,同時(shí),在調(diào)用C的F之前要求收到用戶同意的代碼被插入到D的F中。根據(jù)上述方法,不同的安全策略可在部分代碼上建立并執(zhí)行。也就是說,如當(dāng)一頁是從不同的服務(wù)器上下載的,則對這些代碼可建立并執(zhí)行不同的安全策略。除了上述說明,根據(jù)運(yùn)行時(shí)的條件也可有其他方式應(yīng)用不同的安全策略。對通信效率的改進(jìn)與有線因特網(wǎng)相比,現(xiàn)有方法(WAP,特別是網(wǎng)頁)的瀏覽器在應(yīng)用于無線因特網(wǎng)時(shí)響應(yīng)速度通常很低,這是因?yàn)闊o線因特網(wǎng)的低傳輸速度,特別是比傳輸速度更慢的往返行程時(shí)間(RTT)。在傳統(tǒng)的瀏覽器中,頁中所需要的其他文件,例如圖像文件,JavaScript文件,串接樣式表(CascadingStyleSheet-CSS)文件之類,可在用HTML或WML寫成的文本從服務(wù)器上下載和對之語法分析之后再向服務(wù)器請求。因此,為了顯示一頁,需要花費(fèi)幾倍的事務(wù)時(shí)間(請求和響應(yīng))。在有線(PC)瀏覽器中,采用了利用HTTPl.l中的管道協(xié)議的方法或與服務(wù)器打開兩個(gè)或兩個(gè)以上TCP連接的方法,使得在下載多個(gè)文件時(shí)可縮短時(shí)間。在無線因特網(wǎng)中所采用的WAP瀏覽器中,HTTPl.l中的管道或多個(gè)TCP連接由于實(shí)現(xiàn)上的問題基本不使用。此外,即使實(shí)現(xiàn)是可能的,打開多個(gè)TCP連接會(huì)帶來每一連接初始化所必需的延遲的問題,以及由于TCP協(xié)議中緩慢的初始速度所帶來的開銷(這是TCP的特點(diǎn)),在無線因特網(wǎng)中這樣的延遲與開銷尤其關(guān)鍵,因此,這種方法在無線因特網(wǎng)中是沒有效率的。此外,雖然HTTPl.l中的管道具有縮短全頁加載時(shí)間的效果,但在網(wǎng)頁引用外部文件的情況下,所需要的總時(shí)間至少需要包括兩個(gè)事務(wù)(即,一個(gè)事務(wù)用于接收頁文本,一個(gè)事務(wù)用于在文本被語法分析后請求所確定的剩余資源/文件)以及語法分析所接收到的文件的時(shí)間。根據(jù)本發(fā)明的一個(gè)實(shí)施例中所采用的改進(jìn)后的協(xié)議,可使事務(wù)的數(shù)量最少,同時(shí)防止了傳輸量的增加,從而減少網(wǎng)頁加載的時(shí)間。圖5和圖6是根據(jù)本發(fā)明的一個(gè)實(shí)施例對減少事務(wù)數(shù)量的方法進(jìn)行說明的示意圖。圖5顯示了在常規(guī)的無線因特網(wǎng)服務(wù)器和瀏覽器中下載一個(gè)包含有多個(gè)文件的網(wǎng)頁到瀏覽器的過程。圖6顯示了根據(jù)本發(fā)明的一個(gè)實(shí)施例下載一個(gè)包含多個(gè)文件的網(wǎng)頁到瀏覽器的過程。在圖5中,一個(gè)箭頭表示一個(gè)事務(wù),一個(gè)小矩形表示一個(gè)文件。根據(jù)圖5所示的方法,瀏覽器首先得到文本文件,然后對它進(jìn)行語法分析,瀏覽器隨后獲取頁中所引用的文件。因此,每個(gè)文件伴隨一個(gè)事務(wù),所有的事務(wù)都通過無線因特網(wǎng)進(jìn)行。即使整個(gè)系統(tǒng)在服務(wù)器和瀏覽器之間包括一個(gè)網(wǎng)關(guān)(在圖5中系統(tǒng)中的網(wǎng)關(guān)用虛線表示),這一傳統(tǒng)網(wǎng)關(guān)也如以前那樣僅僅傳遞請求和響應(yīng),由瀏覽器完全決定從服務(wù)器上傳輸哪些文件。因此,在現(xiàn)有系統(tǒng)中的網(wǎng)關(guān)并不影響無線事務(wù)的數(shù)量。與此同時(shí),根據(jù)圖6中所顯示的本發(fā)明的一個(gè)實(shí)施例,如果瀏覽器310向網(wǎng)關(guān)200請求某一網(wǎng)頁,網(wǎng)關(guān)200能夠從服務(wù)器取得該網(wǎng)頁所要求的其它文件,而不需要瀏覽器的介入,并將所有的文件一起發(fā)送到瀏覽器中。為了完成這一搡作,網(wǎng)關(guān)200應(yīng)當(dāng)能夠決定某一具體網(wǎng)頁所需要的文件。也就意味著當(dāng)瀏覽器通過指定用于表示一個(gè)網(wǎng)頁的URL(描述性URL)請求該網(wǎng)頁時(shí),網(wǎng)關(guān)找到該網(wǎng)頁所需要的其它文件。根據(jù)本發(fā)明,XC網(wǎng)關(guān)200根據(jù)瀏覽器310所傳送的描述性(representative)URL從服務(wù)器上獲取XCML文件,然后語法分析所得到的文件,從而知道在XCML文件中靜態(tài)引用的外部文件。從而向網(wǎng)頁瀏覽器100請求這些文件,無需從瀏覽器上進(jìn)行請求,然后利用一個(gè)網(wǎng)頁文本文件收集所請求的文件,并將它們一起下載到終端的瀏覽器310上。通過上述操作,網(wǎng)關(guān)可因此將在有線部分中通過多次交互而從服務(wù)器上所收集的數(shù)據(jù)通過無線部分中的一個(gè)事務(wù)就傳送到終端。在圖5和圖6所示的實(shí)例中,假設(shè)在一個(gè)網(wǎng)頁中包含三個(gè)文件。對事務(wù)次數(shù)進(jìn)行比較,在圖5(不包含網(wǎng)關(guān))所示的情況中有3次無線事務(wù),而在圖6中有1次無線事務(wù)和3次有線事務(wù)。因?yàn)镽TT在有線網(wǎng)絡(luò)中的間隔一般遠(yuǎn)遠(yuǎn)小于無線RTT的,在有線事務(wù)中的幾次有線事務(wù)對總的響應(yīng)時(shí)間的影響很小。因此,圖6中無線事務(wù)次數(shù)更少的方法與圖5中的方法相比具有更高的通信效率。此外,根據(jù)本發(fā)明的另一個(gè)實(shí)施例,為了使得通信方法效率更高,如果一個(gè)要被瀏覽的網(wǎng)頁的新版本被緩存在終端的緩存中,該網(wǎng)頁將不會(huì)被再次下載以減少在通信上所耗費(fèi)的時(shí)間。在無線因特網(wǎng)情況下,在很多情況下,用戶按照通信總量對每一信息包付費(fèi),所以,不必要的下載會(huì)導(dǎo)致費(fèi)用總量的增加和響應(yīng)時(shí)間的延長。因此,如果某一文件已經(jīng)被緩存在瀏覽器中則最好不要再次下載。根據(jù)本發(fā)明,圖7和圖8示意了采用緩存以防止不必要傳輸?shù)乃惴ǎg覽器端和網(wǎng)關(guān)端所執(zhí)行的算法各自做了說明。在下文中,在參考圖7和圖8對所述的瀏覽器和網(wǎng)關(guān)的操作進(jìn)行說明前,首先對本發(fā)明中的緩存所采用的算法進(jìn)行解釋說明。1、當(dāng)瀏覽器100通過使用一個(gè)代表網(wǎng)頁的URL向網(wǎng)關(guān)200請求一個(gè)網(wǎng)頁時(shí),如果該網(wǎng)頁被緩存在終端中,向網(wǎng)關(guān)通報(bào)所緩存的網(wǎng)頁內(nèi)容文件最后一次修改的時(shí)間以及"所緩存的網(wǎng)頁文件清單","所緩存的網(wǎng)頁文件清單,,包含有網(wǎng)頁所引用文件中保存在緩存中的每一個(gè)文件的名稱和最后一次修改時(shí)間。為了實(shí)現(xiàn)這一目的,瀏覽器將每一網(wǎng)頁的所關(guān)聯(lián)文件(主網(wǎng)頁與所引用的文件)和所緩存的網(wǎng)頁文件清單一起保存在緩存中。根據(jù)本發(fā)明的一個(gè)實(shí)施例,保存在緩存中的文件在網(wǎng)頁單元到期,并且從緩存中刪除,因此在大多數(shù)情況下,在主網(wǎng)頁中所引用的文件與主網(wǎng)頁一起被保存在緩存中。一旦主網(wǎng)頁更新后指向新的文件,則緩存中所保存的文件與實(shí)際所引用的文件會(huì)變得不同。網(wǎng)關(guān)根據(jù)瀏覽器所要求的描述性URL請求網(wǎng)頁內(nèi)容文件。2a、在網(wǎng)關(guān)從服務(wù)器上獲得XCML類型的主網(wǎng)頁的情況下XCML被語法分析。作為語法分析的結(jié)果,得到網(wǎng)頁文件清單,所述的網(wǎng)頁文件清單是網(wǎng)頁中所引用文件的清單。如前所述,網(wǎng)頁文件清單包含有某網(wǎng)頁所要求文件的名稱以及這些文件的最后修改時(shí)間。清單中所包含文件的新版本從服務(wù)器上獲取并被保存在網(wǎng)關(guān)的緩存中。然后,如果保存在網(wǎng)關(guān)緩存中的內(nèi)容是新的,則根據(jù)HTTPIf-Modified-Since協(xié)議,無需對實(shí)際內(nèi)容進(jìn)行下載。與此同時(shí),最后一次修改時(shí)間的數(shù)據(jù)信息被添加到網(wǎng)頁文件清單中。網(wǎng)關(guān)將緩存在瀏覽器中并由瀏覽器在步驟1所傳送的網(wǎng)頁文件清單與在網(wǎng)關(guān)中作為語法分析結(jié)果得到的網(wǎng)頁文件清單進(jìn)行比較。作為比較結(jié)果,網(wǎng)關(guān)將改變后的文件或新近添加的所緩存的文件與在網(wǎng)關(guān)中得到的網(wǎng)頁文件清單一起發(fā)送到終端上的瀏覽器。網(wǎng)關(guān)同時(shí)指示瀏覽器刪除服務(wù)器端不存在的文件。如果緩存在瀏覽器中的文件的文件名和最后一次修改時(shí)間與服務(wù)器端的文件相一致,那么這些文件無需改變也就不必下載。2b、如果從服務(wù)器所接收到的網(wǎng)頁內(nèi)容文件是一個(gè)二進(jìn)制文件所述的二進(jìn)制文件包括有Java類文件以及相應(yīng)網(wǎng)頁的元數(shù)據(jù)。例如,如果是一個(gè)通常用于Java程序的封裝和傳輸過程的jar文件,則該文件在一個(gè)稱為META-INF的內(nèi)部目錄中包含有一個(gè)名稱為MANIFEST.MF的文本文件,該文件包含有諸如版本、程序名稱、開始類之類的信息。根據(jù)本發(fā)明的一個(gè)實(shí)施例,MANIFEST.MF文件除了包含有在MANIFEST.MF文件中通常所包含的信息外,還包括有在相應(yīng)文件中所引用的其他文件的清單。在這種情況下,網(wǎng)關(guān)語法分析該元數(shù)據(jù)文件(MANIFEST.MF)并得到網(wǎng)頁文件清單,該網(wǎng)頁文件清單中包含有主網(wǎng)頁所需要的所引用的文件的名稱以及所引用文件的最后一次修改時(shí)間。然后,那些需要新下載的文件(即不同于緩存于瀏覽器中的文件)通過瀏覽器以與上文中所解釋的XCML類型的主網(wǎng)頁相同的過程實(shí)現(xiàn)下載。一旦瀏覽器只傳送了描述性網(wǎng)頁URL而沒有傳送如步驟1中所述的網(wǎng)頁文件清單,換句話說,假如瀏覽器沒有緩存相應(yīng)頁,則網(wǎng)關(guān)首先將網(wǎng)頁文件清單發(fā)送到瀏覽器而不在步驟2a和步驟2b中傳送實(shí)際文件。這樣做的目的是為了在部分文件被其它網(wǎng)頁引用并且已經(jīng)存在于緩存的情況下,即使瀏覽器沒有緩存所要求的網(wǎng)頁本身,可避免不必要的下載。3、通過上述過程,瀏覽器接收網(wǎng)關(guān)所發(fā)送的文件以及網(wǎng)頁文件清單(S60)。如果包含在網(wǎng)頁文件清單中的文件沒有被接收到,而且沒有被保存在緩存中或保存在緩存中的最后一次修改時(shí)間早于清單上顯示的最后一次^修改時(shí)間,則向網(wǎng)關(guān)請求該文件。4、瀏覽器在緩存中保存先前不存在于緩存的文件,并在接收到更新后的文件的情況下更新緩存。包含有網(wǎng)頁中所引用文件的網(wǎng)頁文件清單等同樣根據(jù)所接收到的信息進(jìn)行更新(SIOO)。5、當(dāng)下載并保存文件的操作完成后,與網(wǎng)頁相應(yīng)的Java類4皮加載并執(zhí)行。(SUO)-限據(jù)上述方法,所有必需的文件在下載時(shí),只要在瀏覽器與網(wǎng)關(guān)間通過多達(dá)兩個(gè)事務(wù)即可實(shí)現(xiàn),而無需不必要的事務(wù)。在下文中,參考圖7對為了完成上述方法而在終端中所實(shí)現(xiàn)的步驟進(jìn)行解釋說明。在步驟S10中,如果用戶請求一個(gè)新的網(wǎng)頁,例如,通過點(diǎn)擊以前所見到網(wǎng)頁中的任意鏈接或從書簽中選擇一個(gè)網(wǎng)頁,則將在步驟S20中確定所選擇網(wǎng)頁的內(nèi)容是否被緩存在終端中。如果所選擇網(wǎng)頁沒有被緩存,則在步驟S50中向網(wǎng)關(guān)請求該網(wǎng)頁。如果所選擇的網(wǎng)頁已被緩存,則瀏覽器從緩存中檢索所緩存的網(wǎng)頁文件清單(S30)。當(dāng)向網(wǎng)關(guān)請求該網(wǎng)頁時(shí),它向網(wǎng)關(guān)傳送所緩存的網(wǎng)頁文件清單(S40)。瀏覽器在步驟S60中接收主網(wǎng)頁文件(或網(wǎng)頁內(nèi)容文件),所引用的文件,以及在瀏覽器的請求下從網(wǎng)關(guān)所傳送的網(wǎng)頁文件清單。在步驟S70中,瀏覽器檢查是否有文件包括在從網(wǎng)關(guān)所接收到的清單中卻沒有被緩存。如果存在沒有被緩存的文件,另外向網(wǎng)關(guān)請求缺失的文件(S80)并接收(S90),當(dāng)完成接收并再也沒有文件要接收時(shí),將所接收到的文件存儲(chǔ)在緩存中(S100),然后執(zhí)行主網(wǎng)頁文件(或網(wǎng)頁內(nèi)容文件)(SllO)。下面將根據(jù)本發(fā)明的一個(gè)實(shí)施例,參考圖8,對為了完成上述方法而在網(wǎng)關(guān)中所實(shí)現(xiàn)的步驟進(jìn)行解釋說明。在步驟S210中,網(wǎng)關(guān)等待終端連接和啟動(dòng)通訊。當(dāng)終端連接到網(wǎng)關(guān)時(shí),基于一個(gè)預(yù)先確定的建立過程在網(wǎng)關(guān)與終端間建立通訊,然后轉(zhuǎn)到步驟S220。在步驟S220中,等待,直到終端發(fā)出請求,然后接收該請求。在步驟S230中,確定所接收的請求是否是連接終止請求,如果是連接終止請求,則終止與相應(yīng)終端的連接有關(guān)的操作。如果不是連接終止請求,則確定該請求是否是描述性URL請求(S240)。描述性URL的請求指的是當(dāng)用戶通過輸入U(xiǎn)RL或點(diǎn)擊一個(gè)鏈接從而新請求某一網(wǎng)頁時(shí),對相應(yīng)URL的數(shù)據(jù)的請求。對描述性URL的請求是一個(gè)與在瀏覽器中在接收到所要網(wǎng)頁的部分文件后對缺失文件的請求不同的概念。也就是說,如前所述,當(dāng)執(zhí)行一個(gè)網(wǎng)頁內(nèi)容文件所需要的文件被傳輸?shù)綖g覽器后,該瀏覽器確定要完成網(wǎng)頁所需要的文件是否都已被接收,如果還有文件未收到則請求這些丟失的文件。瀏覽器向網(wǎng)關(guān)所發(fā)送的請求不僅僅包括諸如連接請求、連接終止請求之類的基本請求,還包括對描述性URL的請求,對單獨(dú)文件的請求(當(dāng)一些用于完成網(wǎng)頁的文件缺失時(shí)所用)以及其它類型的請求。在對描述性URL請求的情況下,網(wǎng)關(guān)從瀏覽器接收一個(gè)已緩存的網(wǎng)頁文件清單,該清單中包括相應(yīng)網(wǎng)頁所需且已存儲(chǔ)在緩存中的文件的文件名以及最后修改時(shí)間。如果從瀏覽器所得到的請求是對描述性URL的請求,網(wǎng)關(guān)根據(jù)URL向網(wǎng)頁服務(wù)器請求主網(wǎng)頁中的內(nèi)容(S250)。網(wǎng)關(guān)在接收到主網(wǎng)頁文件后檢查所接收網(wǎng)頁的類型(S260),如果所接收到的網(wǎng)頁內(nèi)容文件是XCML類型,語法分析該文件,從而得到網(wǎng)頁文件清單(S270)。如果所接收到的文件是諸如jar文件的二進(jìn)制文件,則語法分析MANIFEST文件并得到文件網(wǎng)頁清單(S280)。在得到網(wǎng)頁文件清單后,將該網(wǎng)頁文件清單與從瀏覽器收到的緩存的網(wǎng)頁文件清單進(jìn)行比較,并得到需要向?yàn)g覽器新下載的文件的清單(S290)。在所要下載的文件被確定后,從服務(wù)器或網(wǎng)關(guān)的緩存檢索所述文件(S300),并隨同文件清單傳送到瀏覽器(S310)。在步驟S240中,如果來自瀏覽器的請求不是對描述性URL的請求,也就意味著瀏覽器請求缺失文件。在這種情況下,從服務(wù)器或緩存檢索相應(yīng)文件(S300),然后將相應(yīng)文件送到瀏覽器(S310)。除了上述描述的方法外,還存在其它特定的方法,這些方法將終端中所緩存的文件預(yù)先通知網(wǎng)關(guān),從而有效利用終端中的緩存,并使得網(wǎng)關(guān)只需傳送必要的文件。共享的資源管理功能在常規(guī)的與網(wǎng)頁有關(guān)的系統(tǒng)中,人們都希望能夠共享不同網(wǎng)頁普遍使用的庫和圖像,因此,有很多理由去提高基于XCB的系統(tǒng)的緩存使用率,如頁面加載速度,數(shù)據(jù)包支付,緩存使用量,等等。然而,在不同的頁面間共享諸如庫或圖像等資源(以下稱為共享資源)會(huì)導(dǎo)致共享資源版本不一致的情況。圖9給出了常規(guī)瀏覽器中管理共享資源的方法。a.xhtml和b.xhtml是表示不同頁面的XHTML文件,并且共享JavaScript庫c.js。圖9(a)表示下述情況兩個(gè)xhtml文件的1.0版本在服務(wù)器上,這兩個(gè)文件共享1.0版本的x.js,并且所有的文件都已緩存在終端。當(dāng)服務(wù)器上的所有文件都升級到1.1版本時(shí),圖9(b)表示如下情況當(dāng)終端在線連接到服務(wù)器時(shí),該終端已經(jīng)訪問過a.xhtml頁面,并且終端上緩存的a.xhtml和c.js文件已經(jīng)分別升級到1.1版本。如果該終端在這時(shí)離線,當(dāng)用戶嘗試使用b.xhtml頁面時(shí),因?yàn)閎.xhtml是1.0版本,而c.js是l.l版本,所以版本不一致就會(huì)出現(xiàn),如圖9(c)所示。當(dāng)不同的頁面共享某一資源時(shí)就會(huì)出現(xiàn)的版本不一致問題不僅會(huì)在網(wǎng)頁上出現(xiàn),當(dāng)在桌面^^系統(tǒng)中安裝幾個(gè)應(yīng)用程序時(shí)也會(huì)發(fā)生。解決這一問題最簡單的辦法就是不要在不同的網(wǎng)頁間共享資源,并且將每個(gè)網(wǎng)頁的每個(gè)*文件放在不同的地方。但是由于終端內(nèi)存的大小有限,這種方法很難被采納,尤其是有許多小頁面的時(shí)候。根據(jù)本發(fā)明的一個(gè)實(shí)施例,圖10給出了一種解決上述版本不一致問題的方法。圖10(a)與圖9(a)類似,表示服務(wù)器上有1.0版本的a.xcml,b.xcml和c.java文件,并且上述版本已經(jīng)緩存在客戶端。在本實(shí)施例中,所有可共享的資源文件都有自己的引用計(jì)數(shù)?!?用計(jì)數(shù)表示有多少不同的文件引用所討論的文件。例如,圖10(a)中的c.java的引用計(jì)凄丈為2。圖10(b)中,終端在線訪問a.xctnl頁面并得到1.1版本的a.xcml和1.1版本的c,java文件。這里,正如前面解釋過的那樣,在終端實(shí)際進(jìn)行傳送和保存的不是XCML和Java源文件,而是在網(wǎng)關(guān)根據(jù)XCML和Java源文件生成的類文件。然而,為了方便起見,在圖10中這些文件仍用其源文件的名稱。此時(shí),在保存l.l版本c.java之前,原先保存在終端緩存中的對應(yīng)1.O版本c.Java的引用計(jì)數(shù)減去1。同時(shí),如圖10(b)所示,如果原始片反本的引用計(jì)數(shù)在減小后并不為0,1.O版本c.java就不會(huì)^皮刪除,并且1.1版本c.java被單獨(dú)存儲(chǔ)。1.1版本a.xcml取代1.0版本a.xcml,并且其具有一個(gè)訪問1.1版本c.java的鏈接。如圖10(c)所示,如果客戶離線時(shí)訪問b.xcml,將會(huì)使用最初鏈接的1.0版本c.java。如果訪問a.xcml,1.1版本c.java會(huì)一起被訪問。如果對一個(gè)引用計(jì)數(shù)為1的共享資源文件進(jìn)行更新,則只有更新后的文件得到保留,原始資源文件被刪除(因?yàn)樵假Y源文件的引用計(jì)數(shù)變成了0)。根據(jù)前面解釋過的方法,在多個(gè)頁面共用同一資源文件的同一個(gè)版本時(shí),只存貯一個(gè)文件將提高效率。同時(shí),通過按照需要存儲(chǔ)不同的版本,可以避免版本不一致。下面的偽代碼是為了解釋一個(gè)實(shí)行上述操作的算法的實(shí)例。在下文中,"page"表示其對應(yīng)的"URL"代表的網(wǎng)頁內(nèi)容文件,且"resources"為"page"需要的資源文件列表。functiondownload—page(url):page,resources=request—page(url)forrinresources:*179cache—resource(r)cache—page(page)functioncache—page(page):ifpage,urlincache:;不鏈接先前的頁forrincache[page,url〗.resources:r.ref—count—;ifr.ref-count==0..deletecache[r.url+r.version];方文入新頁cache[page,url]=pageforrinpage,resourcescache[r.url+r.version].ref-count++functioncache—resource(r):cache[r.url+r.versoin]=r圖中所示的每一個(gè)模塊都概念性地代表程序的一個(gè)功能。在將本發(fā)明應(yīng)用到實(shí)際程序的過程中,一個(gè)^t塊有可能會(huì)成為程序的一個(gè)或多個(gè)部分,或者幾個(gè)才莫塊的功能纟皮^故到一個(gè)或幾個(gè)程序組件中。具體的功能模塊實(shí)現(xiàn)方法可以由本領(lǐng)域的普通技術(shù)人員做出的各種改動(dòng)和結(jié)合。工業(yè)實(shí)用性因?yàn)閺木W(wǎng)關(guān)200傳送給終端300的網(wǎng)頁內(nèi)容已經(jīng)被轉(zhuǎn)換成終端300可以直接執(zhí)行的形式,使得即使在處理能力有限的終端上也有可能實(shí)現(xiàn)快速執(zhí)行和顯示所述內(nèi)容o因?yàn)槭褂寐暶餍哉Z法生成的代碼和程序代碼使用相同的應(yīng)用程序接口(API)和對象,兩種^R碼之間的互鎖(interlocking)更加直接和高效。沒有了終端瀏覽器的限制,Java虛擬機(jī)(JVM)和所有的API以及終端庫中的函數(shù)都可以使用。并且所述代碼在終端可以立即執(zhí)4亍,而無需對網(wǎng)頁內(nèi)容文件進(jìn)4亍語法分才斤(parsing)的過程。即使用來表示內(nèi)容的標(biāo)記語言中增加了新語法,終端的瀏覽器也不必做改動(dòng)。通過減少無線間隙中的通信次數(shù)和有效使用緩存來減少流量,通信效率被顯著提高了。在防止版本不一致和維持已緩存文件一致性的同時(shí),保證了緩存效率。權(quán)利要求1.一種用于提供可執(zhí)行網(wǎng)頁內(nèi)容的系統(tǒng),其中,所述系統(tǒng)包括服務(wù)器和網(wǎng)關(guān),所述服務(wù)器提供包含有聲明性語言的聲明性語言部分和非聲明性部分的可執(zhí)行網(wǎng)頁內(nèi)容,所述網(wǎng)關(guān)接收來自服務(wù)器的可執(zhí)行網(wǎng)頁內(nèi)容,將其轉(zhuǎn)換成終端網(wǎng)頁瀏覽器可以執(zhí)行的格式,并將轉(zhuǎn)換后的內(nèi)容傳送到所述終端。2.根據(jù)權(quán)利要求l所述的系統(tǒng),其中,所述終端為無線通信的終端,所述網(wǎng)頁內(nèi)容為無線網(wǎng)頁內(nèi)容。3.根據(jù)權(quán)利要求l所述的系統(tǒng),其中,所述網(wǎng)頁服務(wù)器和所述網(wǎng)關(guān)通過有線網(wǎng)絡(luò)連接,所述網(wǎng)關(guān)通過無線網(wǎng)絡(luò)連接到所述終端。4.根據(jù)權(quán)利要求3所述的系統(tǒng),其中所述終端包括無線網(wǎng)頁瀏覽器,所述網(wǎng)關(guān)通過無線網(wǎng)絡(luò)接收無線網(wǎng)頁瀏覽器要求獲取網(wǎng)頁內(nèi)容的請求,并通過有線網(wǎng)絡(luò)向所述服務(wù)器請求獲取所述網(wǎng)頁內(nèi)容,所述網(wǎng)頁內(nèi)容包:fe—個(gè)或幾個(gè)文件,所述發(fā)送給服務(wù)器要求獲取網(wǎng)頁內(nèi)容的請求包括對一個(gè)或多個(gè)文件的請求,和所述網(wǎng)關(guān)接收到服務(wù)器響應(yīng)其請求而發(fā)送來的網(wǎng)頁內(nèi)容中的一個(gè)或多個(gè)文件,并將所述一個(gè)或多個(gè)文件在一次事務(wù)中傳送給終端。5.根據(jù)權(quán)利要求4所述的系統(tǒng),其中,所述網(wǎng)頁內(nèi)容中含有的一個(gè)或多個(gè)文件包括網(wǎng)頁內(nèi)容文件和至少一個(gè)資源文件,并且所述獲取網(wǎng)頁內(nèi)容的請求包括對網(wǎng)頁內(nèi)容文件的請求和對所述至少一個(gè)資源文件的請求。6.根據(jù)權(quán)利要求l所述的系統(tǒng),其中,所述網(wǎng)頁內(nèi)容包括靜態(tài)文件、動(dòng)態(tài)生成的文件、程序代碼的源代碼、可執(zhí)行二進(jìn)制文件和多々某體文件中的至少一種。7.根據(jù)權(quán)利要求l所述的系統(tǒng),其中,所述非聲明性部分包括程序代碼,并且所述網(wǎng)關(guān)包括用于將聲明性語言部分轉(zhuǎn)換為程序代碼的裝置和用于編譯所述程序代碼并將其轉(zhuǎn)換為可執(zhí)行文件的裝置。8.根據(jù)權(quán)利要求l所述的系統(tǒng),其中,所述非聲明性部分包括程序代碼,所述網(wǎng)關(guān)包括用于編譯所述聲明性語言部分的裝置,用于編譯程序代碼的裝置,和用于合并聲明性語言部分的編譯結(jié)果和程序代碼的編譯結(jié)杲、從而生成可執(zhí)行文件的裝置。9.根據(jù)權(quán)利要求1所述的系統(tǒng),所述網(wǎng)關(guān)包括用于4企測所述網(wǎng)頁內(nèi)容中是否包括違反安全策略的功能,所述網(wǎng)頁內(nèi)容已經(jīng)轉(zhuǎn)換成能夠在終端網(wǎng)頁瀏覽器中執(zhí)行的格式。10.根據(jù)權(quán)利要求9所述的系統(tǒng),其中,如果所述網(wǎng)頁內(nèi)容中包含具有違反安全策略的功能的文件,所述網(wǎng)關(guān)包括阻止所述文件傳送給終端的裝置。11.根據(jù)權(quán)利要求9所述的系統(tǒng),其中,如果所述網(wǎng)頁內(nèi)容中包含具有違反安全策略的功能的文件,所述網(wǎng)關(guān)包括在將所述文件傳送給終端之前獲取終端用戶許可的裝置。12.根據(jù)權(quán)利要求9所述的系統(tǒng),其中,如果所述網(wǎng)頁內(nèi)容中包含具有違反安全策略的功能的文件,所述網(wǎng)關(guān)包括能在所述文件中插入代碼的裝置,其中,所述代碼在運(yùn)行時(shí)可以導(dǎo)致預(yù)定義操作的執(zhí)行,所述預(yù)定義操作由系統(tǒng)中預(yù)定義的安全策略決定。13.用于為終端提供可執(zhí)行網(wǎng)頁內(nèi)容的系統(tǒng),其中,所述系統(tǒng)包括服務(wù)器和網(wǎng)關(guān)所述服務(wù)器提供可執(zhí)行網(wǎng)頁內(nèi)容,所述網(wǎng)關(guān)從所述服務(wù)器接收可執(zhí)行網(wǎng)頁內(nèi)容,將其轉(zhuǎn)換為終端網(wǎng)頁瀏覽器可以運(yùn)行的格式,并將轉(zhuǎn)換后的內(nèi)容傳送給終端;其中,所述網(wǎng)頁內(nèi)容包括靜態(tài)文件、動(dòng)態(tài)生成的文件、程序代碼的源代碼、可執(zhí)行二進(jìn)制文件和多媒體文件中的至少一種,并且所述網(wǎng)關(guān)能編譯聲明性語言和程序代碼。14.根據(jù)權(quán)利要求6或13所述的系統(tǒng),其中,所述程序代碼的源代碼包括Java代碼,并且所述可執(zhí)行二進(jìn)制文件包括jar文件。15.從月良務(wù)器接收可執(zhí)行網(wǎng)頁內(nèi)容并將其轉(zhuǎn)換成可以在終端網(wǎng)頁瀏覽器中執(zhí)行的格式的網(wǎng)關(guān),其中,所述網(wǎng)頁內(nèi)容包括靜態(tài)文件、動(dòng)態(tài)生成的文件、程序代碼的源代碼、可執(zhí)行二進(jìn)制文件和多媒體文件中的至少一種,所述網(wǎng)關(guān)包括用于編譯聲明性語言和程序代碼、并轉(zhuǎn)換為可執(zhí)行文件的編譯器。16.根據(jù)權(quán)利要求15所述的網(wǎng)關(guān),其中,所述終端為無線通信終端,所述網(wǎng)頁內(nèi)容為無線網(wǎng)頁內(nèi)容。17.根據(jù)權(quán)利要求15所述的網(wǎng)關(guān),其中,所述網(wǎng)關(guān)通過有線網(wǎng)絡(luò)與所述網(wǎng)頁服務(wù)器通信,且所述網(wǎng)關(guān)通過無線網(wǎng)絡(luò)與所述終端通信。18.根據(jù)權(quán)利要求17所述的網(wǎng)關(guān),其中所述終端包括無線網(wǎng)頁瀏覽器,所述網(wǎng)關(guān)通過無線網(wǎng)絡(luò)接收來自無線網(wǎng)頁瀏覽器的獲取網(wǎng)頁內(nèi)容的請求,并通過有線網(wǎng)絡(luò)向服務(wù)器提出獲取所述網(wǎng)頁內(nèi)容的請求,所述網(wǎng)頁內(nèi)容包括一個(gè)或多個(gè)文件,所述發(fā)送給服務(wù)器要求荻取網(wǎng)頁內(nèi)容的請求包括對所述一個(gè)或多個(gè)文件的至少一部分的請求,和所述網(wǎng)關(guān)將包括在所述網(wǎng)頁內(nèi)容中的所述一個(gè)或多個(gè)文件在一次事務(wù)中傳送給終端。19.根據(jù)權(quán)利要求18所述的網(wǎng)關(guān),其中所述網(wǎng)頁內(nèi)容中的所述一個(gè)或幾個(gè)文件包括網(wǎng)頁內(nèi)容文件和資源文件,并且所述獲取網(wǎng)頁內(nèi)容的請求包括對網(wǎng)頁內(nèi)容文件的請求和對資源文件的請求。20.根據(jù)權(quán)利要求15所述的網(wǎng)關(guān),其中,所述程序代碼的源代碼包括Java代碼,所述可執(zhí)行二進(jìn)制文件包括jar文件。21.根據(jù)權(quán)利要求15所述的網(wǎng)關(guān),包括用于將聲明性語言部分轉(zhuǎn)換成程序代碼的轉(zhuǎn)換器;用于編譯所述程序代碼的編譯器;用于分析從所述網(wǎng)頁服務(wù)器接收的可執(zhí)行二進(jìn)制文件的處理器,如果一個(gè)外部文件被引用,則所述處理器獲取該外部文件;和用于判斷從網(wǎng)頁服務(wù)器接收的網(wǎng)頁內(nèi)容中是否含有導(dǎo)致安全問題的功能的安全管理器。22.根據(jù)權(quán)利要求15所述的網(wǎng)關(guān),包括用于檢測網(wǎng)頁內(nèi)容中是否含有違反安全策略的功能的裝置,所述網(wǎng)頁內(nèi)容已經(jīng)轉(zhuǎn)換成可以在終端網(wǎng)頁瀏覽器中執(zhí)行的格式。23.根據(jù)權(quán)利要求22所述的網(wǎng)關(guān),其中,如果所述網(wǎng)頁內(nèi)容中包括具有違反安全策略的功能的文件,則網(wǎng)關(guān)不將所述文件發(fā)送給終端。24.根據(jù)權(quán)利要求22所述的網(wǎng)關(guān),其中,如果所述網(wǎng)頁內(nèi)容中包括具有違反安全策略的功能的文件,則所述網(wǎng)關(guān)在將所述文件發(fā)送給終端之前要獲得終端用戶許可。25.根據(jù)權(quán)利要求22所迷的網(wǎng)關(guān),其中,如果所述網(wǎng)頁內(nèi)容中包括具有違反安全策略的功能的文件,則所述網(wǎng)關(guān)將代碼插入所述文件中,其中,所述代碼在運(yùn)行時(shí)將會(huì)導(dǎo)致執(zhí)行某種操作,并且所述某種操作是由所述系統(tǒng)的預(yù)定義安全策略決定的。26.根據(jù)權(quán)利要求17所述的網(wǎng)關(guān),其中,所述終端包^"無線網(wǎng)頁瀏覽器,網(wǎng)頁內(nèi)容包括至少一個(gè)文件,所述網(wǎng)關(guān)通過無線網(wǎng)絡(luò)接收來自無線網(wǎng)頁瀏覽器的獲取網(wǎng)頁內(nèi)容的請求,所述獲取網(wǎng)頁內(nèi)容的請求包括已經(jīng)緩存在瀏覽器中的該文件的名稱和最后^^改時(shí)間,所述網(wǎng)關(guān)通過有線網(wǎng)絡(luò)向服務(wù)器提出獲取網(wǎng)頁內(nèi)容的請求,所述向服務(wù)器提出的獲取網(wǎng)頁內(nèi)容的請求包括對至少一個(gè)文件的請求,和所述網(wǎng)關(guān)接收服務(wù)器響應(yīng)請求而發(fā)出的網(wǎng)頁內(nèi)容中的至少一個(gè)文件,同已緩存的文件的名稱和最后修改時(shí)間進(jìn)行比較,并且只將同已緩存文件相比已經(jīng)修改過或新增加的文件傳送給終端。27.—種用于存儲(chǔ)能瀏覽可執(zhí)行網(wǎng)頁內(nèi)容的網(wǎng)頁瀏覽器的計(jì)算才踏儲(chǔ)介質(zhì),其中,所述網(wǎng)頁瀏覽器接收并執(zhí)行二進(jìn)制可執(zhí)行代碼格式的網(wǎng)頁內(nèi)容。28.—種包舍有用于瀏覽可執(zhí)行網(wǎng)頁內(nèi)容的網(wǎng)頁瀏覽器的終端,其中,所述網(wǎng)頁瀏覽器接收和執(zhí)行二進(jìn)制可執(zhí)行代碼格式的網(wǎng)頁內(nèi)容。29.根據(jù)權(quán)利要求28所述的終端,其中所述網(wǎng)頁內(nèi)容包括至少一個(gè)文件,所述至少一個(gè)文件包括一個(gè)被網(wǎng)頁內(nèi)容所引用的共享的資源文件,所述終端包括一緩存,并且當(dāng)所述共享的資源文件被緩存在所述緩存中時(shí),表示有多少引用該共享的資源文件的引用計(jì)數(shù)與其存儲(chǔ)在一起。30.根據(jù)權(quán)利要求29所述的終端,其中,如果終端接收到的網(wǎng)頁內(nèi)容中包含的文件版本比緩存的共享資源文件版本新,就將新版本的共享資源文件保存在緩存中,并將現(xiàn)有已緩存共享資源文件的引用計(jì)數(shù)減1。31.根據(jù)權(quán)利要求30所述的終端,其中,如果引用計(jì)數(shù)減小至O,就刪除現(xiàn)有已緩存的共享資源文件。全文摘要本發(fā)明涉及一種為終端提供可運(yùn)行的網(wǎng)頁內(nèi)容的系統(tǒng)。本發(fā)明提供的系統(tǒng)包括服務(wù)器和網(wǎng)關(guān),所述服務(wù)器用于提供包括由聲明性語言編寫的聲明性語言部分和非聲明性語言部分的可執(zhí)行的網(wǎng)頁內(nèi)容;所述網(wǎng)關(guān)從服務(wù)器接收可執(zhí)行的網(wǎng)頁內(nèi)容,將其轉(zhuǎn)換成終端的網(wǎng)頁瀏覽器可以執(zhí)行的格式,并將轉(zhuǎn)換后的內(nèi)容傳送給終端。文檔編號(hào)G06F17/00GK101103352SQ200680002228公開日2008年1月9日申請日期2006年1月11日優(yōu)先權(quán)日2005年1月12日發(fā)明者全允豪申請人:韓國威得淼有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
鲜城| 枝江市| 丰原市| 十堰市| 广安市| 德保县| 阿图什市| 怀集县| 张北县| 防城港市| 潮安县| 大城县| 连山| 陈巴尔虎旗| 黄浦区| 肥乡县| 柯坪县| 岱山县| 绵阳市| 图木舒克市| 无极县| 长乐市| 贺州市| 蒲江县| 资阳市| 淮阳县| 巫溪县| 长乐市| 松潘县| 响水县| 呼图壁县| 南投县| 鄂伦春自治旗| 登封市| 贵州省| 汝阳县| 乌海市| 旬邑县| 镇江市| 工布江达县| 清苑县|