專利名稱:計算機間傳輸的數據的動態代碼轉換系統的制作方法
技術領域:
本發明要求1997年3月25日提交的美國臨時專利申請60/041,366號的權益。
本發明總體涉及個人計算機(PC)的數據通信的領域,特別是涉及一種用于在通信鏈路上的兩個計算機之間傳輸的數據的進行動態代碼轉換的系統。
因特網正在迅速地變成從個人到大型跨國公司的各類計算機用戶首選的數據通信媒體。這類用戶現在例行地利用因特網來訪問信息,傳播信息,電子通訊,甚至進行個人開會。越來越多的個人、組織和商家通過萬維網(WWW)上的“web頁”在因特網上建立了存在。
由于各種各樣的原因,要求對在本地客戶計算機和網絡服務器計算機之間傳輸的數據進行操作。例如在某些情況下把從因特網服務器計算機檢索的內容進行動態增加、修改或刪除之后再提供給客戶計算機可能是有益的。反過來,對來自客戶計算機的內容請求進行修改之后再將請求傳送給因特網服務器計算機是有益的。盡管需要這類對請求和響應的動態操作,期待廣泛的因特網基礎結構迅速改變以適應這種新功能卻是不實際的。出于這個原因,需要以某種不要求改變現有客戶計算機或因特網服務器計算機的方式來實現這類新功能。
已知部署一個代理服務器或網絡代理,作為一個或多個客戶計算機與諸如因特網的外部網絡之間的中介。在Ian S.Graham的《HTMLSource BookAComplete Guide to HTML 3.0》(第二版,1996)中有對網絡代理的一般性描述。代理服務器的一個通常應用是所謂的“防火墻”,其中代理服務器負責與外部世界的所有通信。換言之,本地設備不允許直接與諸如因特網服務器的外部網絡計算機進行通信。相反,每個本地設備向代理服務器發送對網絡駐留數據的請求。當代理服務器接到這種請求時,它將請求傳遞給適當的外部計算機,接收外部計算機的應答,然后將應答傳遞給本地設備。外部計算機不知道本地設備。這樣,本地設備就受到保護,免于諸如非授權訪問的潛在危險。
現有代理服務器不對通過它們傳送的數據進行操作。實質上,代理服務器僅僅是請求和應答的盲目通道。現有代理服務器的這些局限限制了這些設備在方便本地設備與網絡設備之間通信方面的充分利用。因此需要一種所謂的“智能”代理,這種代理能檢查通過它的數據是要發往外部網絡設備的請求還是返回給本地設備的網絡內容,并動態地對數據操作。這種設備可用于透明地提供各種迄今為止如果不改變現有因特網基礎結構就不可能的服務。
本發明的實施例涉及用于對在計算機間—諸如網絡服務器計算機與網絡客戶計算機間傳輸的信息進行代碼轉換的設備、系統和方法。
按照一個實施例,一種用于對在通信鏈路上的網絡服務器與網絡客戶機之間傳輸的數據進行代碼轉換的裝置包括有一個與代碼轉換服務提供器連接的分析器。分析器被配置成根據預定的選擇標準選擇性地調用代碼轉換服務提供器。
圖1是表示本發明實施例可以應用的環境的示意圖。
圖2是表示按照本發明的實施例的代碼轉換器模塊的示意圖。
圖3是表示用于非使能的網絡客戶機的本發明實施例的示意圖。
圖4是表示一例向非使能的網絡客戶機提供控制代碼轉換的功能的用戶界面的示意圖。
圖5是表示用于使能的網絡客戶機的本發明實施例的示意圖。
圖6是表示按照本發明實施例在瀏覽器中集成了代碼轉換功能的網絡客戶機的示意圖。
圖7-9是表示按照本發明實施例向網絡客戶機提供所請求的URL對象的流圖。
本發明的實施例提供對在例如網絡服務器計算機與網絡客戶計算機之間傳輸的信息進行動態代碼轉換的功能。本文中所用“代碼轉換”一詞適用于對數據的幾乎任何操作,包括但不限于增加、修改或刪除數據。
現在參看圖1,該圖表示可有利地應用本發明實施例環境。網絡服務器計算機10管理著從因特網18向網絡客戶機12的數據傳輸。網絡客戶機12可以是任何有適當的數據通信功能的計算機。
網絡客戶機12在客戶機/服務器通信鏈路14上向網絡服務器10發送信息請求或從網絡服務器計算機10接收信息。客戶機/服務器通信鏈路14可包含例如一個使用例如POTS(簡易老式電話系統)撥號技術或者無線連接的所謂“慢網絡”。或者,客戶機/服務器通信鏈路14也可包含一個所謂的“快網絡”,諸如LAN或WAN(寬域網),后者能以比慢網絡更可能快的速度操作。這些存取方法的組合也是可能的。例如,網絡客戶機12可以用POTS或無線撥號連接,其中無線撥號連接與ISP(因特網服務提供商)維護的調制解調器組連接,后者又連接到LAN上的網絡服務器10。網絡服務器10通過服務器/網絡通信鏈路16與因特網18上駐留的計算機通信,其中服務器/網絡通信鏈路16可包含該領域已知的任何適合的通信介質。
如圖2中所示,按照本發明的第一個一般實施例,代碼轉換器20包括一個分析器22和多個代碼轉換服務提供器24。分析器22被配置成對由代碼轉換器20所接收的數據進行操作,這種數據諸如是由客戶設備生成的對網絡對象的請求,或者是由內容服務器設備提供的對這種請求的回答。在這個特定實施例中,分析器22負責根據預定的選擇標準選擇性地調用一個或多個代碼轉換服務提供器24。
代碼轉換器20可以以例如在網絡代理中、客戶設備中、網絡服務設備中或內容服務器設備中安裝的軟件模塊來實現。在圖3中所表示的一個特定實施例中,代碼轉換器20安裝在位于網絡客戶機12和因特網18之間的遠程代碼轉換服務器34中。代碼轉換服務器34可以包含網絡服務器、與網絡服務器通信的獨立計算機或分布式計算機系統,或者是網絡服務器、與網絡服務器通信的獨立計算機或分布式計算機系統的一部分。遠程代碼轉換服務器34可以連接到例如ISP的網絡、企業網或者因特網18上的任何位置,可以向多個用戶(即客戶機)提供獲取因特網18上內容的工具。
在圖3中所表示的特定實施例中,代碼轉換服務器34包括一個HTTP(超文本傳輸協議)遠程代理36,它能在服務器/網絡通信鏈路16上訪問因特網18。HTTP遠程代理36與已知的網絡代理不同,后者一般只不過是向外部因特網資源發送的請求和來自外部因特網資源的回答的一種通道,前者不僅能檢查這類請求和回答,也能針對請求中的命令進行操作—例如確定是否對內容代碼轉換。此外,使用了代碼轉換器20,遠程代理36就能先改變從因特網18所接收的內容,再將其返回給發出請求的網絡客戶機12,這在下文有進一步的介紹。
更仔細地考察圖3中的實施例,代碼轉換器20是與HTTP遠程代理36相連的。分析器22管理著對要從代碼轉換服務器34向網絡客戶機12傳輸的數據的代碼轉換。為此,分析器22控制代碼轉換服務提供器24根據預定的選擇標準選擇性地對內容進行代碼轉換。例如,一個或多個代碼轉換服務提供器24可以提供對不同類型的數據內容—諸如圖象、視頻或HTML(超文本標記語言)—進行壓縮和/或縮放的功能。這類用法在下面兩個待定美國專利申請中有進一步的說明系列號08/772,164,標題“System for Enhancing Data Access Overa Communications Link”,申請日1996年12月20日;系列號08/799,654,標題“Method and Apparatus for Scaling ImageData”,申請日1997年2月11日。這兩個申請的受讓人均為英特爾公司。出于解釋本發明的某些特點的目的,下文的許多實施例都是就內容縮放/壓縮來描述的。然而前文說過,代碼轉換服務提供器24可以提供各種各樣的代碼轉換功能。
如圖3所示,代碼轉換服務器34也可以包括有一個由服務器側高速緩存接口28管理的服務器側高速緩沖存儲器30。服務器側高速緩沖存儲器30可用于存儲原始的和代碼轉換后的內容,以便以后無需從因特網18再檢索該內容或再代碼轉換該內容就能傳輸給網絡客戶機12。
代碼轉換服務器34是通過客戶機/服務器通信鏈路14與網絡客戶機12相連的。網絡客戶機12包括一個瀏覽器,諸如NetscapeNavigator 3.0版的瀏覽器(不過本發明在這方面沒有限定),瀏覽器管理著向用戶的數據提交。在這個實施例中,網絡客戶機12是“非使能的”,即網絡客戶機12上沒有預先裝載專業代碼轉換軟件。
分析器22可以包含相對簡單的、連接HTTP遠程代理36的統一接口,并可以提供API(應用程序設計接口),用于對由HTTP遠程代理36所接收數據進行代碼轉換。分析器22管理一個或多個被通過公用SPI(服務提供器接口)訪問的代碼轉換服務提供器24。在這個特定實施例中,分析器22是依照視窗開放式系統體系結構(WOSA)設計的,可以以Win32 DLL(動態鏈接庫)來實現。在《Readings onMicrosoft Windows and WOSA》(微軟公司,1995)中描述的WOSA體系結構,使得能將更多的代碼轉換服務提供器24動態添加到系統,以提供新的特征和/或更好的代碼轉換算法,同時還不要求改變或重新測試系統中的其它軟件部件。這個特點在代碼轉換服務器34也與配備了專業代碼轉換軟件的“使能的”網絡客戶機交互作用時特別有益。應當注意的是,下面說明的分析器22的有些特點并不適用于圖3的非使能的客戶機實施例。不過,將代碼轉換服務器34配置得足夠靈活,能處理來自非使能的和使能的網絡客戶機的請求,是有好處的。
與分析器22一樣,服務器側高速緩存接口28可以按照標準的Get/Set接口的模型來構造。服務器側高速緩沖存儲器30幾乎“擁有”所有高速緩存對象,因為它管理著對象的特性和存儲,并且隨時可以使任何非鎖定的對象無效。然而,任何給定高速緩存對象的實際格式只為分析器22及其關聯的代碼轉換服務提供器24所知。所以,出于數據完整性和代碼轉換效率的目的,在這個實施例中對服務器側高速緩沖存儲器30的所有訪問都要通過分析器22。
服務器側高速緩存接口28可以包括下列調用CreateEntry(URL,&Entry,…);GetEntry(URL,&Entry);CreateStream(Entry,&StreamEntry,…);GetStream(Entry,&StreamEntry,…);CloseEntry(Entry);CloseStreamEntry(StreamEntry);GerProperties(Entry,&Properties…);SetProperties(Entry,&Properties,…);Read(StreamEntry,&OutStream,…);Write(StreamEntry,&Instream,…)。
與大多數高速緩存不同的是,服務器側高速緩存接口28和服務器側高速緩沖存儲器30使得能維護某給定高速緩存對象的多個表示,其中關于每個表示的描述信息被包括在服務器側高速緩沖存儲器30中。此外,服務器側高速緩存接口28和服務器側高速緩沖存儲器30還起著對高速緩存對象的多線程訪問的同步點的作用。應當注意的是,所示實施例不要求為服務器側高速緩存接口28和/或服務器側高速緩沖存儲器30作任何特定的配置。實際上,起因于本文所述各種實施例的這些部件的功能完全可以在其它系統部件中實現。
CreateEntry()調用為特定超文本對象創建并返回一個高速緩存項。這個調用也為超文本對象的原始版本創建一個項流(entrystream)。類似地,GetEntry()調用也為在高速緩沖存儲器30中已經存在的超文本對象獲得一個高速緩存項。Createentry()和GetEntry()調用二者在關聯的高速緩存對象上設鎖,直到調用了CloseEntry()調用。一旦設鎖,高速緩存對象將不能由高速緩存接口28置換或使之無效,使一個或多個代碼轉換服務提供器24能安全地進行任何要求的高速緩存操作,諸如對象檢索和/或存儲。
高速緩存項被CreateEntry()或GetEntry()調用創建或打開后,CreateStream()或GetStream()調用就可以分別為該高速緩存對象創建或打開一個另外的流項。每個另外流項都與超文本對象的不同代碼轉換版本關聯,后者可以由其中一個代碼轉換服務提供器24檢索或附接。對高速緩存對象的基于流的處理使得代碼轉換服務器34有可能開始將超文本對象的代碼轉換版本傳輸給發出請求的網絡客戶機12—即使代碼轉換服務提供器24正在向該同一版本附加另外的代碼轉換內容。這種基于流的處理的優點包括通過對象的遞增描繪而減少用戶等待時間以及避免客戶機/服務器通信鏈路14上不必要的空閑時間,由此給用戶以更加靈敏的“感覺”。
GetProperties()和SetProperties()調用檢索并存儲關于高速緩存對象的信息,包括由代碼轉換服務提供器24保持的、用于確定高速緩存對象的代碼轉換特性和代碼轉換狀態的信息。代碼轉換服務提供器24可以用這類信息來例如為縮放數據訪問和分級精細化確定當前的壓縮進度。
Read()調用從指定的高速緩存對象數據流讀取數據。例如,代碼轉換服務提供器24可調用這個調用,使流數據穿過HTTP遠程代理36直接到達網絡客戶機12。Write()調用將來自新的HTTP數據流的數據存入高速緩存。這個調用將把例如從Web服務器或代碼轉換服務提供器24接收的某個輸入數據流,附加到一個可能是用Read()調用并發讀取的打開的高速緩存流。
在本實施例中,分析器22包括下列調用GetObject(URL,InParams,&OutParams,&OutStreams,…);
GetScaledObject(URL,InParams,&OutParams,&OutStreams,Stage,…);PutObject(URL,InParamStruct,&InStream,&OutParams,&OutStreams,…);如下所述,分析器22用這些調用管理將所請求內容向網絡客戶機12的提供。
GetObject()調用用于服務非使能的客戶機請求,返回指定超文本對象的非代碼轉換(即原始)版本。在這個實施例中,代碼轉換服務器34假設每個HTTP請求都有一個獨有的線程,這種線程可以被阻塞,直到請求得到滿足。相應地,GetObject()調用將要阻塞,直到要么它返回所請求的數據流,要么指出故障原因(例如對象不存在)。這個返回所謂標準超文本對象的能力由于兼容性原因是有利的,使本發明的實施例能用于現有的不支持某些代碼轉換功能(例如高級數據壓縮)的瀏覽器,使用戶能有選擇地檢索非代碼轉換的版本。
GetScaledObject()調用與GetObject()類似,也用于向服務器側高速緩沖存儲器30請求對象;然而,它增加了對請求該對象的特定版本—諸如高質量再生—的支持。與傳統的高速緩存代理不同的是,代碼轉換服務提供器24能用服務器側高速緩沖存儲器30來存儲某對象的若干不同版本,以支持具有不同通信和/或表示功能的客戶機。所以,可以用附加的“級”參數來指示要將高速緩存對象的哪個版本返回給網絡客戶機12。如果代碼轉換服務提供器24被配置成縮放網絡內容,它可以用這個參數來請求高速緩存對象的某個版本,該版本例如具有缺省的縮放質量、達到較好質量版本的精度或者原始的非縮放的版本。
在這個實施例中,當網絡客戶機12請求超文本對象時,HTTP遠程代理36要么用GetObject()要么用GetScaledObject()調用(視網絡客戶機12是否能接受縮放的/代碼轉換的數據類型而定)去從分析器22檢索超文本對象。如果沒有找到該超文本對象,分析器22就用CreatEntry()調用為該新對象在服務器側高速緩沖存儲器30創建一個項(實際上是一個占位符)。該新項被返回給HTTP遠程代理36,后者向因特網18請求超文本對象。當超文本對象的數據流返回時,HTTP遠程代理36就用PutObject()調用來調用分析器22,將新項和要放入該項的數據流的句柄(handle)傳入這個調用。分析器22根據例如數據流的內容類型來選擇一個適當的代碼轉換服務器提供器24。在這個上下文中,術語內容類型包含數據類型、HTTP MIME(多用途因特網郵件擴展)類型、內容格式等等。所選擇的代碼轉換服務提供器24用單獨的線程來讀取輸入數據流、將其代碼轉換并將其置于服務器側高速緩沖存儲器30中。當前線程立即返回到HTTP遠程代理36,后者再次調用GetScaledObject()(或者GetObject())。這個情況將永遠導致高速緩存命中。這個線程然后與PutObject()中的單獨線程同時工作,將(原始的或代碼轉換的)數據從代碼轉換服務器34傳送到網絡客戶機12。
多線程處理由于不要在開始向網絡客戶機12發送對象之前,等待超文本對象完整地由HTTP遠程代理36接收,或者完整地添加到服務器側高速緩沖存儲器30中,而提高了本實施例的效率。多線程處理的另一個好處是分析器22可以高效地處理來自多個網絡客戶機對同一個超文本對象的請求。只要一次性地從因特網18檢索超文本對象,然后就可以并發地將適當的版本傳輸給這多個網絡客戶機12。然而應當注意,本發明的實施例沒有多線程處理也可以實現。
如上所述,分析器22可以根據對預定選擇標準的滿足來有選擇地調用多個代碼轉換服務提供器24之一。這種選擇標準例如可包含代碼轉換服務器34所接收數據分組的數據部分中含有的信息,諸如MIME類型、URL(統一資源定位器)、上次修改時間標志等等。或者,這種預定選擇標準可包含這種數據分組的數據部分中含有的信息,諸如特定內容、關鍵字、結構(例如標題級別)等等。此外,這種預定選擇標準還可包含安裝有代碼轉換服務器34的設備的條件(例如當前處理加載)、與代碼轉換服務器34相連的設備的條件或者通信鏈路的條件。代碼轉換服務器34可以提供動態更新這種預定標準的能力。
以下討論提供更多的各類型信息的例子,這些類型的信息可用于決定要調用哪些代碼轉換服務提供器24。然而應當注意,這些例子的提供僅僅是解釋性的,不應認為是對本文要求的發明范圍的任何限制。預定選擇標準可包含(1)網絡客戶機12,諸如顯示維數、分辨率、色彩數目、處理器類型、存儲器/磁盤配置、調制解調器或網絡接口類型、所安裝的內裝板(例如硬件壓縮/解壓)、軟件配置(例如預裝軟件解壓模塊的可用性)、物理位置/距離(例如如電話地區碼所確定的)、用戶標識;(2)代碼轉換服務器34或某其它網絡服務器的特征,包括系統負載和標識信息(例如服務器的所有者);(3)內容特征,諸如其數據類型、代碼轉換/壓縮的類型、大小和維數;(4)網絡特征,包括最佳情形、最差情形和平均等待時間,網絡客戶機12與代理之間的、和/或代理與服務器之間的(例如無線通信的)帶寬和/或出錯率(對于像ATM(異步傳輸模式)的有保障鏈路,這是可以預先確定的,對于像許多IP(因特網協議)鏈路的所謂“最好努力”鏈路,這是可以動態測量/預測的);(5)代理特征,包括系統負載、可用存儲器、物理位置/距離和標識(所有者);(6)用戶首選項,包括首選的內容質量/速度折衷方案、語言、內容等級、排除列表、包含列表、數據類型特定的首選項(例如“永不下載”圖象)、包括/排斥廣告、期望廣告量、冒犯性語言去除、是否可以披露(及向誰披露)用戶的定義的或學得的首選項、過濾/代碼轉換/處理數據的慣例規則和程序以及與另一個用戶或一組用戶的共享首選(任何上述用戶首選項都可以是明確定義的或是—諸如依據隨時間編輯的適用統計—系統預測的);(7)分組首選項,包括合作等級系統的結果、人工的(例如,某先前用戶閱覽某Web頁之后人工分配該頁一個等級)還是自動的(例如,對于訪問給定頁上某鏈接的給定大量用戶來說,任何給定用戶隨后跟隨該鏈接的概率);(8)內容提供器首選項,包括期望對其內容改變的程度、對不同內容類型的下載和顯示的優先化、高速緩存限制或優先化參數諸如更新頻率或置換首選、目標用戶的類型、基于用戶或客戶特點定制內容(例如新聞或廣告、習慣語言翻譯軟件)要運行的規則或程序、接受某些類型的用戶或組所收集的數據(例如人口統計學或訪問方式)的愿望、為交換這種信息所提供的付款/報酬的類型;以及(9)其它首選項,包括動態檢查用非授權軟件創建或傳播的內容的軟件銷售商規則或程序以及強制正確使用某些類型的內容(例如商標和圖標)的公司要求。
應用以上列舉的選擇標準或其組合,本發明實施例就可以用于提供幾乎范圍無限的動態代碼轉換服務。例如,客戶機和/或代理的物理距離,與人口統計數據結合起來可以用于極有針對性的廣告。這種廣告可以添加到任何途經例如某代理或是某個其它機構的內容上。根據用戶對容忍廣告或共享人口統計信息的愿意情況以及廣告商補貼或以其它方式報答參與用戶的能力/意愿情況,可以更進一步地定制廣告。
本發明的實施例可以便利地用來減少向網絡客戶機12傳輸的數據的量,由此促使內容的下載和再現更加快捷。適合的代碼轉換技術包括損耗性壓縮和代碼轉換到(并不受廣泛支持的)傳輸專用的更高效格式。類似地,HTTP遠程代理36可以配置成“預先消化”Web站點或站點組,以產生對大量內容極其濃縮的概述(例如樹結構、只有一級標題或一級加二級標題的頁面、頁面縮略圖、或只是用戶上次訪問以來改變過的部分頁面或站點)。這種應用對于不良連接的或諸如PDA(個人數字助手)的計算能力有限的設備來說可能特別有益,因為這種預先消化可在連接良好、具有充裕計算能力的代理服務器上進行,簡潔的結果可以容易地在更受限制的設備上下載或再現。
本發明的實施例或者可以用于將諸如Web頁的數據動態翻譯成用戶的母語(由用戶首選項或者自動地由網絡客戶機12或代碼轉換服務器34所處物理位置來確定)。這種功能大大地簡化了使內容真正全球化的任務,大大地減少了在內容提供器處要求的存儲容量和維護(就是說,僅需要維護內容的一個副本,而不是多個不同語言的各自不同的副本)。
本發明的實施例可用來阻塞某些類型的內容或自動審查冒犯性語言(類似于電視廣播所用的“嘟嘟”聲)。只有特定的冒犯性部分內容(例如下流詞語)可以被去除,或者可以阻塞整個Web站點。類似地,代碼轉換服務器34可以配置成掃描內容檢查某些詞語來保證商標和圖標得到正確使用(例如是用作源標識符而不是未注冊的產品名稱)。這個特征可以作為一項服務提供給公司或組織,它們要提供一個要標記的字或短語的列表。類似的功能可以用來在檢測到某些詞或短語時自動向內容插入鏈接。例如,Intel公司可能想要在每當Web頁中使用名稱“Intel”時自動添加一個到其公司Web站點的鏈接。使用本發明的實施例,就可以將這類鏈路自動添加到內容中再顯示給用戶。類似地,本發明的實施例可用來掃描檢查用非許可軟件創建或傳播的內容。這個特征可以用由內容創建或分發軟件放置的、內置在內容或標題中的特殊鍵(二進制位模式)來實現。掃描邏輯和采取預定響應行動—諸如拒絕服務或投寄警告—的邏輯,可以任選地有當事的軟件銷售商提供或者配置在代碼轉換服務器34中。
本發明的實施例也可以用來在向網絡客戶機12發送內容之前掃描內容檢查計算機病毒。例如,可以在代碼轉換服務器34上安裝一個現有的病毒掃描例程—可能是以插件模塊的形式。代碼轉換服務器34然后可以配置成調用該病毒掃描例程去保證向網絡客戶機12傳輸的內容沒有病毒。這個實施例提供的顯著優點是,病毒掃描軟件只需要保持在代碼轉換服務器34上,而不是在多個網絡客戶機12上。這樣,就能將對病毒檢查軟件升級的好處有效而及時地提供給大量的用戶,從而避免出現有任何特定用戶依賴過時的病毒掃描軟件的問題。
本發明的實施例也可以用來按照用戶特定的喜好和/或與合作分級系統的關聯而生產按需定制內容。在這種實施例的變例中,代碼轉換服務器34能收集首選項并將它們附加為向內容供應商傳輸的客戶機請求的一部分,這樣就能在內容服務器完成動態內容生成。同樣,代理提供者(例如因特網服務供應商即ISP)能收集并向內容供應商發放諸如用戶愛好和數據訪問統計的信息,以及內容供應商特定的統計(例如,上個月有多少來自給定地區或群體的用戶訪問過特定Web站點以及什么時間)。這種信息可用于諸如定向廣告等應用。
本發明的實施例可進一步用來自動檢查對象中鏈接的有效性,糾正或去除無效的鏈接,然后將對象傳輸給網絡客戶機12。這個功能可以例如作為一種服務,提供給可能沒有關于它們所鏈接的、已經移走或刪除了的Web站點的最新信息的內容供應商們。
為了進一步闡明圖3中所示實施例的一般操作,假設網絡客戶機12的用戶希望訪問因特網18上的特定Web頁或URL(統一資源定位器)。進一步假設所期望的URL駐留在代碼轉換服務器34或可通過代碼轉換服務器34到達。網絡客戶機12通過瀏覽器32在客戶機/服務器通信鏈路14上向代碼轉換服務器34傳輸一個對超文本對象的HTTP請求。如果瀏覽器32一般通過代理來訪問因特網18,瀏覽器32被配置成用瀏覽器32的標準代理配置過程來通過代碼轉換服務器34傳送用戶請求。如本領域中眾所周知的那樣,瀏覽器32實際上可以傳輸多個另外的HTTP請求,其中這些請求與可以內嵌在Web頁中的各種不同超文本對象的每一個對應。在這種情況下,代碼轉換服務器34可按下文說明的方式來處理這種請求。
按照這個實施例,HTTP遠程代理36能夠區分非使能的網絡客戶機12和使能的網絡客戶機12。區分的方法可以例如是,從使能的網絡客戶機向代碼轉換服務器34傳輸內容請求,要用一種專用協議,所以使用某個其它通信協議時就表明網絡客戶機12是非使能的。這個在每個請求中向HTTP遠程代理36發送一個專用協議的方法是對注冊類型過程的一個改進。按每個請求進行的使能/非使能的確定所需的開銷相對較小,同時具有顯著優點,因為它為HTTP遠程代理36解決了這樣的情況,即第一個網絡客戶機斷接,而第二個可能具有不同通信和/或表示功能的網絡客戶機用同一個IP地址重新連接。
當確定網絡客戶機12是非使能的時,HTTP遠程代理36就可以在本地數據存儲器中的客戶機首選表中記錄網絡客戶機12的IP地址(客戶機首選表26可以改進這個或其它實施例的性能,但并不是必需的)。HTTP遠程代理36然后將超文本對象傳送給分析器22。HTTP遠程代理36也可以向分析器22通知(例如來自客戶機首選表26的)任何可應用的用戶首選項。當被調用時,分析器22首先調用具有所請求超文本對象的高速緩存接口28,以確定在服務器側高速緩沖存儲器30中是否已經駐留了所請求版本的副本。為說明起見,假設服務器側高速緩沖存儲器30中不存在所請求超文本對象的項。HTTP遠程代理36然后調用一個調用去在服務器/網絡通信鏈路16上從因特網18檢索該超文本對象。假設找到了所請求的超文本對象,HTTP遠程代理36就開始接收代表該超文本對象的HTTP數據流。HTTP遠程代理36將這個輸入數據流的句柄(handle)交給分析器22。
分析器22動態地確定該數據流是否滿足任何可應用的預定選擇標準。例如,如果代碼轉換服務提供器24被配置成縮放不同類型的數據,分析器22就可以通過查詢在輸入HTTP數據流的開始處出現的內容類型標題記錄中的一個MIME類型來確定數據流的內容類型(例如image/jpeg、image/gif、video/mpeg)。如果分析器22檢查到一個與預定選擇標準的匹配,就將HTTP流的句柄賦予適當的代碼轉換服務提供器24。代碼轉換服務提供器24然后適當地對數據流進行代碼轉換,HTTP遠程代理26將代碼轉換后的數據流傳輸到網絡客戶機12。
非使能的網絡客戶機12可任選地配備主動控制代碼轉換過程的各方面或者是否實際對所請求全部內容進行代碼轉換的能力。為提供這個能力,HTTP遠程代理36可以在所請求URL的HTML首部的開始處內置附加的指令,然后在將關聯的數據流傳輸給網絡客戶機12。這些內置指令例如可以以JavaScript代碼、VB Script代碼或JavaApplet代碼來實現。當網絡客戶機12的瀏覽器32接收到數據流時,內置指令將自動執行—只要配備的瀏覽器32支持這些指令。例如,如果內置指令是以JavaScript代碼實現的,瀏覽器32可以是JavaScript使能的瀏覽器,諸如Netscape Navigator2.0版或以上的瀏覽器,或者是Internet Explorer3.0版或以上的瀏覽器。如果瀏覽器32不是為這種HTML腳本配備的,內置指令就將影響瀏覽器32的正常處理,因為這種瀏覽器32通常被配置成不理睬任何它們不能解釋的數據。
傳輸到網絡客戶機12的內置指令可以使用戶能操縱代碼轉換服務器34的一些代碼轉換功能。如圖4中所示,內置指令可以驅動一個用戶界面,其形式是一個彈出式窗口40,在瀏覽器窗口38的頂部顯示。彈出式窗口40包括一個具有“開”、“關”和“自動”設置的三態開關42,也可以包括一個超文本鏈接44,用戶可以跟隨這個超文本鏈接,以下載支持例如更復雜的代碼轉換功能(即變得“使能”)的專業客戶機軟件。三態開關42的初始設置的根據,可以是由HTTP遠程代理36事先對網絡客戶機12是否有對接受代碼轉換的內容確立的首選項的確定。如果是,可將三態開關設置為“開”,如果不是,可將三態開關設置為“關”。這個特征目的在于向用戶提供某些向HTTP遠程代理36通知首選項的方法,其中首選項是關于特定代碼轉換特征的諸方面的,諸如代碼轉換包含數據壓縮/縮放情況下的內容質量/等待時間折衷方案。本領域的熟練人員將認識到,可能有許多其它的提供這種功能的方法,這類其它方法可能使用戶能通知首選項,范圍可以超過簡單的是/否代碼轉換標志。
如圖4中所示,彈出式窗口40使用戶能改變其對需要的是代碼轉換的還是原始的內容的首選,將這種改變通知HTTP遠程代理36。彈出式窗口40可以、也可以不與瀏覽器32交互作用,這意味著用戶的首選,只有在設置了三態開關42并點擊瀏覽器32的“重新加載”按鈕46使瀏覽器32請求(代碼轉換的或非代碼轉換的)內容向用戶提交之后才起作用。然后就可以按照三態開關42的新設置來再現當前會話中的后繼頁面,無需用戶的進一步干預。接收后,HTTP遠程代理36可以相應地更新用戶首選表26。替代方案是,彈出式窗口40可以被配置成在用戶指出變化時(諸如通過三態開關42的翻轉)自動調用“重新加載”操作。如果瀏覽器32是JavaScript使能的瀏覽器時,由HTTP遠程代理36插入HTML文檔的JavaScript指令可以將三態開關42的狀態“投寄”到HTTP遠程代理36,也導致瀏覽器32“重新加載”當前的URL。
有可能讓非使能的網絡客戶機12用本領域公知的所謂“cookie”(“小面包”)來在多個瀏覽器會話中保存網絡客戶機12上的三態開關42的狀態。換言之,cookie可用來持久存儲三態開關42的狀態。當用戶啟動瀏覽器32的新會話時,這個狀態信息可以從網絡客戶機12讀出,由(插在HTML文檔的開始處)JavaScript代碼“投遞”給HTTP遠程代理36,然后,所請求超文本對象的任何內容才實際被發送給網絡客戶機12。這將允許HTTP遠程代理36用三態開關42的正確狀態來更新用戶首選表26,并因此發送正確代碼轉換的內容給網絡客戶機12。在這個實施例中,每當給定URL被瀏覽器32請求時,就可以將狀態信息“投遞”給HTTP遠程代理36。這將允許網絡客戶機12即使在與其相連的HTTP遠程代理36由于例如網絡客戶機12的地理位置或網絡負載平衡過程的改變而變化時也能接收正確代碼轉換的內容。
圖3中所示的實施例也可以用于已經通過標準代理訪問了因特網18的網絡客戶機12。JavaScript使能的瀏覽器32可以查詢網絡客戶機12的本地IP地址,將這個信息“投遞”給HTTP遠程代理36。這個“投遞”消息的HTTP標題將含有標準代理的IP地址,它現在將有別于網絡客戶機12的IP地址(包括在消息的內容中)。比較這兩個IP地址將確定網絡客戶機12是否駐留在標準代理的后面。HTTP遠程代理然后就可以用這個信息在用戶首選表26中更新關于網絡客戶機12的代碼轉換信息。
按照圖5所示的本發明的另一個實施例,網絡客戶機12可以是“使能的”,含有專業軟件來支持例如比上述實施例所提供的更復雜的代碼轉換特征,或者在客戶機側上執行部分或全部代碼轉換功能。如圖所示,網絡客戶機12包括HTTP本地代理48,它與客戶機側分析器50相連,后者類似于代碼轉換服務器34的分析器22,控制一個或多個客戶機側代碼轉換服務提供器52。每個代碼轉換服務提供器52可配置成例如在將內容交付給用戶之前對其進行代碼轉換,或者針對由代碼轉換服務器34的對應代碼轉換服務提供器24執行的功能執行一個對等的代碼轉換功能(例如解碼、解壓)。如代碼轉換服務器34中的那樣,網絡客戶機12可以包括一個由客戶機側高速緩存接口54管理的客戶機側高速緩沖存儲器56。客戶機側高速緩存接口54可以是業已存在的由操作系統支持的設備,諸如WININET。使用現有的高速緩存設備減少了為實施本實施例而要下載到網絡客戶機12的軟件量,并且也使其它應用諸如斷開的瀏覽器能共享客戶機側高速緩沖存儲器56。
HTTP本地代理48,客戶機側分析器50和客戶機側代碼轉換服務提供器52(合起來稱為客戶機軟件)可以按需—諸如點擊由圖4中彈出式窗口38表示的超文本鏈接44—下載到網絡客戶機12。或者,客戶機軟件可以在便攜式存儲介質—諸如軟磁盤或CD-ROM上分配給用戶,或將其預裝在成品個人計算機上。在圖5的實施例中,客戶機軟件是與瀏覽器32分開的。然而在另一個實施例中,客戶機軟件可以集成在瀏覽器32中(見圖6)。
使能的客戶機實施例向網絡客戶機12提供交付超文本對象的擴展的靈活性。如上述的非使能的客戶機實施例中的那樣,使能的網絡客戶機12可以從HTTP遠程代理36接收已經受標準內部提交軟件或瀏覽器支持的格式(例如JPG、GIF)的代碼轉換的數據流。例如如果代碼轉換過程涉及對超文本對象添加或刪除文本時,情況就是這樣。此外,HTTP遠程代理36可以將超文本對象代碼轉換成具有新的MIME類型的數據流—諸如代碼轉換過程包含縮放或數據壓縮那樣,在這種情況下,可以提供客戶機側代碼轉換服務提供器52來將數據流轉換回由瀏覽器32支持的MIME類型。例如,HTTP遠程代理36可向網絡客戶機12傳輸一個用非標準、不很受支持但卻是前沿的壓縮算法壓縮的文件,客戶機側代碼轉換服務提供器52可將文件解壓回其原始格式。這個方法具有減去了HTTP本地代理48不得不提供一個用戶界面的負擔的好處,除去了由對瀏覽器32所支持的數據類型的限制而施加的限制。這樣,代碼轉換過程就能在即使其涉及將內容改變到不同數據類型時也對用戶、瀏覽器和Web服務器保持透明。
還有另一個可能是,使能的網絡客戶機12包括一個或多個特別為代碼轉換、交付和回放網絡客戶機12所接收內容而配置的添加與嵌入46。添加與嵌入46例如可用NetScape插入或ActiveX控制來實現。此外,添加與嵌入46可以按圖5中所示那樣作為客戶機軟件的一部分安裝,或者與瀏覽器32集成。這種添加與嵌入46之益處在于它們一般可配置成允許用戶點擊特定對象來獲得不同版本的(例如質量更高的)表示。添加與嵌入46的另一個益處在于它們在用戶看來是與瀏覽器32很好集成的,容易得到升級。上述表示設施的組合也是可能的。
在添加與嵌入46的一種有益的可選應用中,網絡客戶機12可以配置成在網絡客戶機12確定其不能對特定的接收數據流代碼轉換時請求從HTTP遠程代理36下載適當的添加與嵌入46。HTTP遠程代理36然后就會下載必需的添加與嵌入46,或者以不同的格式重新發送數據流。這個設施提供系統的自動擴展,保證客戶機軟件盡可能地時新。
在圖5的實施例中,瀏覽器32被配置成通過HTTP本地代理48發送所有HTTP請求,于是允許HTTP本地代理48改進對所請求超文本對象的檢索和提交。例如,當HTTP本地代理48收到來自瀏覽器32對與某Web頁關聯的超文本對象的HTTP請求時,它把URL傳送到客戶機側高速緩存接口54,去檢查在客戶機側高速緩沖存儲器56中是否已經存在該超文本對象的副本。如果超文本對象在高速緩存中,HTTP本地代理48就將高速緩存的對象傳送到瀏覽器32供提交。如果超文本對象不在高速緩存中,HTTP本地代理48就向代碼轉換服務器34傳輸一個HTTP請求供處理。HTTP本地代理48為此可以用定制的Get()請求來使代碼轉換服務器34能識別網絡客戶機12是使能的。參考其它實施例來執行上述的處理,代碼轉換服務器34將向HTTP本地代理48返回一個該超文本對象的數據流。
為了進一步闡明本發明實施例的特點和好處,圖7-9中的流程圖解釋了一個方法的實施例的邏輯,通過該方法,使能的網絡客戶機可以再現因特網上駐留的超文本對象。該流圖并非要包含所執行的全部處理,而是要說明該方法的總體流程。上文已經參考所披露的各種實施例對各種處理作了詳細說明。如果可行的話,下面的說明中包括有代表前文說明過的結構元素的參照號碼,盡管本方法并不局限那些結構。
現在參看圖7。處理在網絡客戶機12上的用戶從瀏覽器32請求一個超文本對象時開始(步驟100)。請求的方式這可能是對特定Web頁的請求—在這種情況下,將可能有多個超文本對象被顯示給用戶,請求的方式也可以是點擊已經顯示給用戶的一個圖象。瀏覽器32可配置成通過HTTP本機代理48傳送所有HTTP請求,所以HTTP本地代理48可截獲來自瀏覽器32的HTTP(URL)請求(步驟110)。
在這個特定實施例中,HTTP本地代理48首先檢查所請求超文本對象是否已經在客戶機側高速緩沖存儲器56中存在(步驟120)。為此,HTTP本地代理48可以用一個GetScaleObject(URL)調用來調用客戶機側分析器50,后者有向客戶機側高速緩存接口54發出一個GetEntry調用去打開高速緩存對象的流。這實際上是從客戶機側高速緩沖存儲器56中“檢索”如果存在的高速緩存對象(步驟140)。HTTP本地代理48然后將該流傳送到瀏覽器32,后者將高速緩存對象顯示給用戶(步驟150)。
現在參看圖8,如果所請求的URL對象在客戶機側高速緩沖存儲器56中找不到,HTTP本地代理48就向代碼轉換服務器34傳輸一個對該對象的請求,方法是使用一個GetStage(URL,Stage=0)調用的郵件(步驟160)。收到這個調用后,HTTP遠程代理36就調用分析器22,后者又向服務器側高速緩存接口28發出一個GetScaled Object()調用來確定是否在服務器側高速緩沖存儲器30中已經存在所請求超文本對象的非代碼轉換版本(步驟170)。如果超文本對象存儲在高速緩存中,服務器側高速緩存接口28就發出GetEntry調用來打開該高速緩存對象的流(步驟200)。此外,分析器22可以向服務器側高速緩存接口28發出GetProperties(URL,…)調用去檢索關于高速緩存對象的代碼轉換特性和代碼轉換狀態(諸如精度水平)的信息。
如果分析器22確定所請求超文本對象不在服務器側高速緩沖存儲器30中,HTTP遠程代理36就發出一個從因特網18檢索超文本對象的HTTP請求(步驟190)。如果找不到該對象,HTTP遠程代理36就向網絡客戶機12返回一個錯誤,瀏覽器32將該錯誤通知到用戶(步驟220)。如果找到該對象,HTTP遠程代理36就將該輸入數據流的句柄傳送給分析器22,后者就啟動對所檢索超文本對象的原始版本的高速緩存(步驟230)。
現在參看圖9,一旦所請求超文本對象已經開始被得到,分析器22就判斷是否(以及如何)將該對象在向網絡客戶機12傳輸之前進行代碼轉換(步驟240)。上文詳細說明了這個決策過程和示例性代碼轉換過程。對于當前示例,假設分析器22判定代碼轉換是適當的,于是生成所請求超文本對象的一個代碼轉換的版本(步驟250)。HTTP遠程代理36將該代碼轉換的超文本對象的一個數據流傳輸到網絡客戶機12(步驟260)。接收后,HTTP本地代理48就啟動對代碼轉換的超文本對象的高速緩存(步驟270)。此外,客戶機側分析器50還判斷在提交該超文本對象之前是否需要進一步的處理(例如已經由代碼轉換服務器34建立了一個新的MIME類型)(步驟280)。
如果不要求額外的代碼轉換,HTTP本地代理48就將所接收數據流的句柄傳送給瀏覽器32,以便向用戶顯示(步驟290)。如果要求更多的代碼轉換,客戶機側服務器50就將句柄傳送給適當的代碼轉換服務提供器52(步驟300)。這后一個處理的結果可能是一個瀏覽器能馬上向用戶顯示的超文本對象(步驟320),該結果也可能是一個具有非標準MIME類型的超文本對象,在這種情況下,瀏覽器32可調用添加與嵌入46來顯示該對象(步驟330)。
按照本發明的另一個實施例,不必插入其它數據或程序作為對客戶機的響應的一部分。而是,沒有用戶或瀏覽器32軟件的察覺或干預,也可以將數據和程序透明地“推送”到網絡客戶機12。這種方法的一個優點是,代碼轉換服務器34能夠檢測到客戶機/服務器通信鏈路14何時使用率不飽和,于是能將數據推送到客戶機12,而為此干涉其它事務的風險有限。一個特別有益的實施使用至少一個本地代理,它可以向內容供應商或連網的代理服務器發出自己的(而不是用戶驅動的)請求,或者接收從網絡推送給它的非請求的數據。本地代理可以將該數據存儲在客戶機側高速緩存中,將其安裝成程序,或提示用戶采取某種進一步的行動。這種實施例的許多潛在用途都是可能的。例如,軟件產品或音樂的廣告商可以在用廣告向用戶促銷之前用產品的試用版本預裝網絡客戶機12,這樣就具有迅速播放功能,不會讓用戶被迫等待演示程序的下載(以及在此期間可能失去興趣)。
用許多不同的配置來實現本發明的實施例都是可能的。在第一個配置中,所要求的唯一的額外裝置是遠程代理。就是說,無需在網絡客戶機12上安裝新軟件。遠程代理可以駐留在諸如因特網的某個適當網絡上的任何地方,包括位于特定的內容供應商站點。或者,例如如果要用位置特定的特征作為預定選擇標準,遠程代理可以位于ISP本地POP(存在點)。當然,這種信息也能用其它方法來收集,諸如用戶首選項設置或向代理分配位置特定的域名。在第二個配置中,可以將一個起本地代理作用的新的客戶機軟件安裝在例如客戶機設備上。用戶于是要把客戶機應用的代理指向本地宿主。這些示例性配置的組合也是可能的,同時有多個模式活動也是可能的(例如,某本地代理起著有些請求的傳遞通路(pass-through)的作用,同時又是要求使用遠程代理的其它請求的非傳遞通路)。
如果網絡客戶機12在相對較慢的通信鏈路上連接到遠程代理,則在遠程代理上實現代碼轉換和鏈接有效性檢查是特別有益的。遠程和本地代理的組合有時能使某些應用—諸如自動數據/程序下載和交互式顯示預先消化的內容—的實施效率更高。其它應用,諸如翻譯和商標強制使用,單獨在本地代理上就能有效地完成,但是在遠程代理上完成會更加有益,因為可以將結果存儲到高速緩存,供他人使用,由此為將來的請求節省資源。另一些其它應用—諸如敲擊流(clickstream)分析,在本地代理上實現一般效果更好,因為對于個別用戶來說本地可用的資源更多,而且也有更好的隱私性。
鑒于以上說明,顯然在客戶機設備與內容服務器設備之間安置一個以上的所謂“智能”代理是可能的。如果不加檢查,這種情況會導致內容被過分改變(例如,插入許多廣告,多重損耗性壓縮導致圖象無法解讀)。為解決這個問題,本發明的實施例可用一種能擴展現有請求/應答結構的特殊的代理到代理協議來指示是否對內容進行過代碼轉換以及是什么種類的代碼轉換。這種專業協議,加上其它可以按需要實現的代理到代理消息,能使多個代理協同工作,同時仍然對用戶、客戶機軟件、現有“標準”代理和內容服務器保持透明。
按照本發明的另一個實施例,可以用代理服務器來為因特網代理或服務器用戶提供所謂的“VIP”待遇,確認有資格的用戶(或者通過付費,或者根據某種其它標準—諸如使用程度)在與其它用戶競爭代理資源時享有更高優先權。與此對照,對于現有的因特網代理和服務器來說,用戶得到服務的次序要么是隨機性的,要么是按先來先服務的原則。
在這種實施例的一個特定實現中,代碼轉換服務器34可以被配置成從它處理的請求中提取用戶的IP地址并保存關于諸如用戶瀏覽特定Web站點的頻率或時間長度的信息。可以用這種信息來確定在特定Web站點的“瀏覽者常客的里程”。用戶然后就能得到在以后訪問該站點時響應時間更快的獎勵,或者站點所有者可選擇提高通過同一個代理到達的所有站點上的性能來獎勵用戶。另一種可能是用戶可以付費享受這種優先服務,這時用戶被分配一個口令,用戶可以向代碼轉換服務器34提供這個口令。還有另一種可能是,Web站點所有者可以向代理供應商付費,來提高所有用戶訪問該所有者的站點時的性能。
在另一個特定的實現中,可以將標識要給予“VIP”待遇的用戶的信息以Web頁的形式傳送給代碼轉換服務器34。當接收這種Web頁時,代理隨后就可以讓服務線程首先為VIP用戶所生成的請求進行工作。為此,代碼轉換服務器34可以提高(操作系統內部)對VIP服務的線程調度優先級,同時保證沒有任何線程被阻塞(即,不應當有用戶完全因為VIP用戶而被拒絕訪問)。此外,代碼轉換服務器34還可以允許針對VIP用戶而優先高速緩存特定Web站點和更加進取性地預先提取。此外,代碼轉換服務器34還可以用更多的資源密集型壓縮算法,例如以降低非VIP用戶的存取速度來換取相同等待時間下提供更高質量的內容。
某些內容供應商或用戶可能并不希望他們的內容受到任何方式的動態改變。所以,本發明的實施例可以這樣來實現,即既不給予內容供應商也不給予用戶以超越任何可能改變內容的服務的功能。這可以例如用一種由內容中嵌置的一個特殊標志觸發的通路技術來實現。
如上述說明所展現的那樣,本發明的實施例可用來提供一種用于改善計算機訪問諸如因特網的網絡的通信功能的系統。本發明的實施例可以有益地應用到具有有限的可用通信帶寬的計算機,諸如通過調制解調器連接訪問網絡的移動計算機或個人計算機。這種實施例的獨特特點增強了這些計算機以降低了用戶可見等待時間的及時性在網絡上訪問數據的能力,由此使內容作者能放心去創作豐富的內容,無需顧慮只有具備高度完善的數據通信和顯示功能的用戶才能欣賞其內容。本發明的實施例也有益于除降低等待時間以外或與其并舉的目的。這種目的例如包括為沒有彩色顯示器的用戶將彩色圖象轉換成灰度級的圖象,過濾和/或刪除不喜歡的內容諸如色情內容,增加內容如廣告,以及語言翻譯。
盡管對本發明的說明結合的是用于從因特網訪問數據的實施例,本領域的熟練人員會認識到,它同樣適用于其它網絡環境。例如,本發明的實施例可用來加強網絡客戶計算機與“內部網”之間的數據通信。內部網通常是采用因特網結構的安全的團體網絡,一般包括與諸如因特網的外部網絡進行通信的機制。
以上是對本發明的特定實施例的詳細說明。本發明涵蓋權利要求范圍和精神內的所有替代、修改和變異例,以及有權利要求的主題的等價例。例如上述的遠程代理具有的部分或所有特點可以在內容服務器中實現。同樣,上述的本地代理具有的部分或所有特點可以在瀏覽器應用中實現。本領域的熟練人員知道,根據以上說明,就可能實現許多其它的替代、修改和變異例。
權利要求
1.一種用于在通信鏈路上的網絡服務器與網絡客戶機之間傳輸數據的裝置,所述裝置包含與代碼轉換服務提供器相連的分析器,所述分析器被配置成根據預定選擇標準有選擇地調用所述代碼轉換服務提供器。
2.權利要求1的裝置,其中,所述預定選擇標準包含正在傳輸的數據的特征。
3.權利要求1的裝置,其中,所述預定選擇標準包含通信鏈路的特征。
4.權利要求1的裝置,其中,所述預定選擇標準包含網絡服務器的特征。
5.權利要求1的裝置,其中,所述預定選擇標準包含網絡客戶機的特征。
6.權利要求1的裝置,其中,所述預定選擇標準包含用戶首選項。
7.權利要求1的裝置,其中,數據是應網絡客戶機的請求從網絡服務器向網絡客戶機傳輸的,所述預定選擇標準包含在所述請求中。
8.一種用于向網絡客戶機提供網絡服務器上駐留的數據對象的方法,其中網絡客戶機和網絡服務器由一個通信鏈路相連,所述方法包含的步驟為從網絡服務器接收一個數據對象;按照預定選擇標準選擇性地對該數據對象進行代碼轉換;以及將所述數據對象提供給網絡客戶機。
9.權利要求8的方法,其中,所述代碼轉換步驟進一步包含將所接收數據對象的特征與預定選擇標準進行比較。
10.權利要求8的方法,其中,所述選擇性地對數據對象代碼轉換的步驟進一步包含確定數據對象是否包括用某個未注冊軟件產品創建的內容。
11.權利要求10的方法,其中,所述選擇性地對數據對象代碼轉換的步驟進一步包含將消息加到對應于用某未注冊軟件產品創建的內容的所述檢測的數據對象上。
12.權利要求8的方法,其中,所述選擇性地對數據對象代碼轉換的步驟包括壓縮該數據對象的一部分。
13.權利要求8的方法,其中,所述選擇性地對數據對象代碼轉換的步驟包含將該數據對象的一部分從第一種語言翻譯成第二種語言。
14.權利要求8的方法,其中,所述選擇性地對數據對象代碼轉換的步驟還包含確定該數據對象是否包括有冒犯性內容。
15.權利要求14的方法,其中,所述選擇性地對數據對象代碼轉換的步驟進一步包含修改該數據對象,以防止將冒犯性內容被網絡客戶機再現。
16.權利要求8的方法,其中,所述選擇性地對數據對象代碼轉換的步驟進一步包含在該數據對象中添加廣告信息。
17.權利要求16的方法,其中,所述廣告信息是按照用戶輪廓信息來選擇的。
18.權利要求8的方法,其中,所述選擇性地對數據對象代碼轉換的步驟進一步包含確定該數據對象中是否包括一個到第二個數據對象的鏈接。
19.權利要求18的方法,進一步包含確認到第二個數據對象的鏈接的步驟。
20.權利要求19的方法,其中,所述選擇性地對數據對象代碼轉換的步驟進一步包含糾正無效的鏈接。
21.權利要求8的方法,其中,所述選擇性地對數據對象代碼轉換的步驟進一步包含將與所述代碼轉換相關的信息通知給網絡服務器。
22.權利要求8的方法,其中,所述選擇性地對數據對象代碼轉換的步驟進一步包含確定網絡客戶機是否被預先配置成接受請求的優先處理。
23.在存儲介質上駐留的供計算機執行的指令集,所述計算機與向用戶再現數據對象的設備相連,所述指令集包含下列功能的指令分析要被再現的數據對象以對照預定選擇標準檢查內容;在再現數據對象之前根據所述檢查有選擇地對數據對象代碼轉換。
24.權利要求23的指令集,其中的存儲介質包含磁存儲設備。
25.權利要求23的指令集,其中的存儲介質包含安裝在計算機中的存儲器。
全文摘要
一個用于對計算機間傳輸的數據動態代碼轉換的系統在用于在通信鏈路(14)上在網絡服務器(10)與網絡客戶機(12)之間傳輸數據的裝置中實現。該裝置包括與代碼轉換服務提供器(24)相連的分析器(22)。分析器(22)極配置成按預定選擇標準選擇性地調用代碼轉換服務提供器(24)。
文檔編號G06F17/30GK1294712SQ98805402
公開日2001年5月9日 申請日期1998年3月19日 優先權日1997年3月25日
發明者M·M-H·特縈, T·G·威利斯, J·W·理查森, R·C·克瑙埃爾哈澤, D·馬西伊利恩斯基 申請人:英特爾公司