專利名稱:動態控制一個網絡設備的系統的制作方法
技術領域:
本發明總的涉及計算機網絡領域,更具體地,涉及將一個設備作為一個網絡代理進行配置以響應動態輸入執行一個預定的動作的方法和裝置。
背景技術:
眾所周知,可以將一個網絡代理或代理服務器作為一個中間設備布置在一個或多個客戶計算機和一個諸如因特網的外部網絡之間。在Ian S.Graham所著的HTML SourceBookA Complete GuidetoHTML3.0403(1996年第2版)中已基本上描述了網絡代理。然而大多數現有的網絡代理缺乏命令處理或者動態配置的能力。網絡代理通常使用靜態控制面板和例如存儲在諸如“.INI”文件或者MS-Windows注冊項中的設置進行預先配置。只要該網絡代理仍在運行,這些設置就保持不變。而且,這種網絡代理缺乏動態接收和執行通常進行網絡代理的重新配置的命令或者指令的能力。這是因為通常就是將網絡代理作為一個管道使用。例如,用于環球網(WWW)接入的網絡代理簡單地將從一個客戶計算機接收的HTTP請求傳送給能夠服務該請求的一個服務器計算機。同樣地,也簡單地將網絡代理響應這一請求從該服務器計算機接收的內容傳送給該請求客戶計算機。換句話說,該網絡代理并不查看通過它傳送的內容。
考慮到現有技術的上述限制,因此需要一種能夠對傳送到其上的信息進行操作的網絡代理,無論這種信息是嵌入在從一個客戶計算機發出的請求中的命令,還是由一個服務器計算機提供的內容。盡管網絡代理的這種動態控制是理想的,期望廣闊的因特網的基礎結構迅速改變以適應這一新的功能是不現實的。為此,希望以一種方式實現這一新的功能,該方式不要求改變現有的客戶計算機或服務器計算機。
發明內容
本發明涉及用于動態控制一個網絡代理的系統,方法和設備。例如可以使用多種實施例動態進行網絡的重新配置,以改變網絡代理的操作參數,以及在將網絡內容傳送給客戶機設備之前將其進行代碼轉換。
根據一個特定的實施例,一個動態可控制的網絡設備包括一個分析器和一個服務提供器。該分析器包括響應從該網絡設備接收的一個外部輸入所分析出的命令選擇性地調用該服務提供器的指令。
圖1是示出根據本發明的一個實施例的一個動態可控制的網絡設備的一個示意圖。
圖2是本發明的一個實施例的一個示意圖,其中將一個動態可控制的網絡設備實現為一個網絡代理。
圖3是本發明的一個實施例的一個示意圖,其中將一個動態可控制的網絡設備實現為一個變碼服務器。
圖4是根據本發明的一個實施例的一種動態控制一個網絡設備的方法的一個示意圖。
具體實施例方式
根據本發明的第一個實施例,如圖1所示出的,提供了一個裝置,其中通過該裝置,指示一個網絡設備2(其可以是配置成以另一個計算機的名義用于網絡事務處理的計算機)基于一個來自外部的輸入以一種特定的方式工作。這種輸入可以源自例如一個系統管理員。將網絡設備2配置成對通過它的網絡業務進行檢查。在某些實例中,網絡設備2可以攔截命令,并采取某些預定的響應動作。在其他實例中,網絡設備2可以基于它接收到的內容的特征(諸如一個數據類型或者MIME(多用途因特網郵件擴展)類型)采取某些動作,這種動作可以包括例如設置網絡設備2的操作參數,諸如一個高速緩沖存儲器的大小;網絡設備2的遠程管理,諸如檢索/清除日志文件,獲得系統狀態信息,以及重新啟動網絡設備2;以及發布軟件的升級。
在這一實施例中,網絡設備2包括一個控制模塊4,該模塊具有一個分析器6和多個業務提供器8。控制模塊4可以例如實現為安裝在網絡設備2中的一個軟件模塊。分析器6被配置成根據控制模塊4接收的外部輸入進行動作,諸如對于由一個客戶設備產生的網絡目標的請求,或者對由一個網絡服務器設備提供的請求的回答。在這一特定的實施例中,分析器6根據一個預定的選擇準則,負責有選擇地調用一個或多個業務提供器8。該預定的選擇準則可以例如是一個嵌入在一個請求中的一個命令,一個所接收的請求或數據目標的特征,網絡設備2自身的一個條件,前者的組合等等。
根據本發明的另一個實施例,其如圖2所示出的,可以將一個動態可控制的網絡設備實現為一個網絡代理。一個網絡代理或者代理服務器通常與所謂的“防火墻”軟件結合使用以防止通過因特網對一個LAN(局域網)的未授權的使用。防火墻通常安在一個將LAN連接到外部世界的網關計算機上,該防火墻限制源自外部的網絡分組進入局部網絡,從而保護LAN防止諸如未授權訪問等災難。然而,該防火墻也防止網絡的用戶直接訪問諸如Web的外部資源。通常使用網絡代理來解決這一缺點。見Graham的文章(第403頁)。
網絡代理通常配置成自由接入內部LAN資源和外部資源,并且可以安全地將數據來回傳過防火墻。然后通過配置用戶的Web瀏覽器來引用網絡代理,而不是外部目標服務器,可以將用戶安全地(盡管是間接地)接入Web資源。在使用Web瀏覽器來從防火墻的外部檢索信息時,它將一個請求發送給網絡代理,該網絡代理然后完成該請求,并且將結果返回給該請求者。Id.
現在參見圖2,根據這一實施例,一個動態的可控制的網絡代理34管理數據從因特網18到一個網絡客戶機12的傳輸。網絡客戶機12和網絡代理34可以是任何具有適當的數據通訊能力和處理能力的任何計算機。網絡客戶機12通過一個客戶/服務器通訊鏈路14向網絡代理34傳送對于信息的請求和從網絡代理34接收信息。客戶/服務器通訊鏈路14可以包括例如一個所謂的使用例如POTS(普通老式電話業務)撥號技術或者無線連接的“慢網絡”。替代方案是,客戶/服務器通訊鏈路14可以包括一個所謂的諸如LAN或WAN(廣域網)的“快網絡”,該網絡能夠以比慢網絡可能有的速度更快的速度(例如5到10倍)運行。這些接入方法的組合也是可能的。例如網絡客戶機12可以使用一個POTS或者無線撥號連接到一個由一個ISP(因特網業務提供商)維護的一個調制解調器堆,其又通過一個LAN連接到一個網絡代理34。網絡代理34通過服務器/網絡通訊鏈路16與因特網18上的計算機進行通訊,該鏈路可以包括在本技術中公知的任何適當的通訊介質。服務器/網絡通訊鏈路16的連接通常比客戶機/服務器通訊鏈路14更快。
網絡代理34例如可以實現為一個網絡服務器的一部分,作為與一個網絡服務器通訊的一個獨立的計算機,或者甚至作為一個計算機的分布式系統。網絡代理34例如可以連接到因特網18上的一個網絡服務器(未示出),一個ISP的網絡,一個企業網,或任何地方,并且向多個用戶提供獲得因特網18上駐留的內容的方式。網絡代理34明顯不同于公知的網絡代理,其通常只是向外部因特網資源請求和自外部因特網資源接收響應的通道。這里,網絡代理34不僅檢查這種請求和響應,而且可以通過例如動態重新配置一個或者多個操作參數根據請求中的命令進行工作。
現在參見圖3,根據本發明的又一實施例,動態可控制的網絡設備可以實現為一個變碼服務器34,該變碼服務器包括一個變碼器20,該變碼器20包括一個分析器22和多個變碼業務提供器24。分析器22被配置成對變碼器20接收的數據進行操作,諸如對于由一個客戶機設備產生的一個網絡目標的請求或者對由一個內容服務器設備提供的請求的回答。在這一特定的實施例中,分析器22根據一個預定的選擇準則負責有選擇地調用一個或多個變碼業務提供器24。如圖所示出的,變碼服務器34可以包括一個HTTP(超文本傳輸協議)遠程代理36,該遠程代理能夠通過服務器/網絡通訊鏈路16接入因特網18。HTTP遠程代理36使用變碼器20能夠在將從因特網18接收的內容返回到一個請求網絡客戶機12之前對其進行變碼(例如增加,改變和/或刪除)。
現在更仔細地分析圖3的實施例,分析器22管理從變碼服務器34到網絡客戶機12傳送的數據的變碼。為此,分析器22根據一個預定的選擇準則控制變碼業務提供器24以選擇性地變碼內容。例如一個或多個變碼業務提供器24可以提供壓縮和/或縮放不同類型的數據內容(諸如圖象,視頻或HTML(超文本標記語言))的能力。如下面將要進一步解釋的,也可以提供一個或多個變碼業務提供器24以根據包含在由變碼服務器34接收的一個請求或者一個數據目標中包含的一個命令或者其他信息,或者是由變碼服務器34確定的任一其他信息,以實施這里所描述的動態控制功能。
如圖3所示,變碼服務器34也可以包括一個由一個服務器側的高速緩沖存儲器接口28管理的服務器側的高速緩沖存儲器30。服務器側的高速緩沖存儲器30可用于存儲內容的原始版本和變碼后的版本,用于以后傳輸到網絡客戶機12,而不需要從因特網18重新檢索該內容或重新變碼該內容。
將變碼服務器34通過客戶機/服務器通訊鏈路14連接到網絡客戶機12。網絡客戶機12包括一個瀏覽器32,諸如網景公司的NetscapeNavigator v.3.0瀏覽器(盡管本發明不限于這一方面),該瀏覽器管理向用戶的數據顯示。在這一實施例中,網絡客戶機12是一個“非使能的”,這意味著沒有專業化的變碼軟件要預先加載到網絡客戶機12。
分析器22可以包括一個相當簡單的一致的到HTTP遠程代理36的接口,并且可以提供一個用于動態控制變碼服務器34和/或用于變碼由HTTP遠程代理36接收的數據的API(應用編程接口)。分析器22管理一個或者多個變碼業務提供器24,其通過一個公共SPI(業務提供器接口)被接入。在這一特定的實施例中,分析器22被設計成與該窗口開放系統體系結構(WOSA)一致,并且可以實現為一個Win32 DLL(動態連接庫)。在Readings on Microsoft Windows and WOSA(MicrosoftCorp.1995)所描述的WOSA體系結構允許將另外的變碼業務提供器24動態加入到該系統中以提供新的特征,諸如新的或改進的變碼算法,同時不要求改變或者重新測試該系統中的其他軟件部件。這一特征在變碼服務器34也與“所使能的”安裝了專業化的變碼軟件的網絡客戶機進行交互時也極其有用。有利的是,變碼服務器34可以足夠靈活地配置以隨時與非使能的和使能的網絡客戶機進行交互。
象分析器22一樣,服務器側高速緩沖存儲器接口28可以仿照一個標準的獲得/設置(Get/Set)接口進行制造。實質上,服務器側高速緩沖存儲器30“擁有”所有的被高速緩存的目標,其中它管理這些目標的特性和存儲,并且可以使任何非鎖定的目標在任何時候無效;然而,任一給定的被高速緩存的目標的實際格式只為分析器22和其相關的變碼業務提供器24所知。因此,為了數據的完整性和變碼效率的目的,所有對于這一實施例中的服務器側高速緩沖存儲器30的接入都通過分析器22。
在這一特定的實施例中,分析器22包括下列調用GetObject(URL,InParams,&Outparams,&OutStream,...);GetScaledObject(URL,InParams,&OutParams,&OutStream,Stage,...);PutObject(URL,InParamStruct,&InStream,&OutParams,&OutStream,...).
分析器22使用這些調用以管理向網絡客戶機12提供所請求的內容。
GetObject()調用用于服務非使能的客戶機請求,并且返回一個特定的超文本目標的一個非變碼(即原始)的版本。在這一實施例中,變碼服務器34假設每一HTTP請求具有一個唯一的線程,該線程可以被阻塞直到該請求被滿足。相應地,該GetObject()調用將阻塞,直到它返回該所請求的數據流或者指示失敗的原因(例如目標不存在)。為了兼容的原因,這一返回一個所謂的標準的超文本目標的能力是有利的,其允許本發明的實施例與現有的不包括支持某些變碼功能(例如先進的數據壓縮)的瀏覽器一起使用,并且允許用戶選擇性地檢索非變碼的版本。
GetScaledObject()調用類似于Getobject(),并且也用于從服務器側高速緩沖存儲器30請求一個目標;然而,它加入了對請求該目標的一個特定版本的支持,諸如一種高質量的再現。與傳統的高速緩存代理不同,變碼業務提供器24可以使用服務器側高速緩沖存儲器30來存儲一個目標的幾個不同的版本,以支持具有不同的通訊和/或表示能力的客戶機。從而,一個傳統的″Stage″參數可用于指示將該高速緩存的目標的哪一版本返回給網絡客戶機12。在配置變碼業務提供器24以縮放網絡內容的情況下,可以使用這一參數請求一個具有比如一個缺省縮放質量的一個高速緩存的目標的一個版本,改進的具有較好質量的版本,或者該最初的非縮放的版本。
在這一實施例中,在網絡客戶機12請求一個超文本目標的時候,HTTP遠程代理36使用GetObject()或者GetScaledObject()調用(根據網絡客戶機12是否能夠接收該縮放的/變碼的數據類型)從分析器22檢索該超文本目標。如果該超文本目標沒有找到,分析器22使用該CreateEntry()調用在服務器側高速緩沖存儲器30創建一項(實際上是一個保存場所)用于該新目標。該新項返回給HTTP遠程代理36,后者從因特網18請求該超文本目標。在將該超文本目標的一個數據流返回時,HTTP遠程代理36使用PutObject()調用調用分析器22,將該新項和要放入該項中的數據流的句柄傳送進該調用中。分析器22根據例如該數據流的內容類型選擇一個適當的變碼業務提供器24。在這一上下文中,術語內容類型包括一個數據類型,一個HTTP MIME(多用途因特網郵件擴展)類型,一種內容格式等等。該所選擇的變碼業務提供器24使用一個單獨的線程來讀取該進入的數據流,將之變碼,并且放入服務器側高速緩沖存儲器30的該項中。該當前的線程立即返回給HTTP遠程代理36,后者再次調用GetScaledObject()(或者GetObject())。這種情況總是造成高速緩存命中。然后這一線程與在PutObject()中的該單獨的線程同時工作,將數據(原始的或變碼的)從變碼服務器34傳送到網絡客戶機12。
在開始發送一個超文本目標給網絡客戶機12之前,通過不等待一個超文本目標完全被HTTP遠程代理36接收或者將其整體進入到服務器側高速緩沖存儲器30中,可以使用多線程處理來改進變碼服務器34的效率。多線程處理的另一好處是分析器12可以有效地處理來自多個網絡客戶機12的對于同一超文本目標的請求。該超文本目標只須從因特網18檢索一次,以及同時可以將適當的版本傳輸到同樣的多個網絡客戶機12。然而,應當注意的是沒有多線程處理也可實現本發明的實施例。
根據圖3的實施例,可以動態地控制變碼服務器34以進行較廣范圍的操作,諸如重新配置變碼服務器34的操作參數。例如,為了重新配置允許哪些網絡設備訪問變碼服務器34,可以將一個HTTP消息發送到分析器22,使分析器22更新(其自身或者通過變碼業務提供器24)由變碼服務器34維持的一種安全機制(例如一個有效的網絡地址的表)。類似地,可以將一個HTTP消息傳送到變碼服務器34以對由變碼業務提供器24使用的一個或者多個參數進行重新配置,將內容在傳送給網絡客戶機12之前對其進行變碼,比如指示變碼業務提供器24從通過它的內容中刪除所有出現的一個特定的字。使用本發明的實施例所發揮的動態控制的類型的其他例子包括使變碼服務器34使用更多(或者更少)的CPU資源用于特定的操作,重新配置高速緩沖存儲器30,以及清除高速緩沖存儲器30。
為了進一步描述一個動態可控制的網絡設備的操作,圖4示出了根據本發明的一個實施例的用于動態控制網絡設備的一個概括的方法的流程圖。處理是由動態可控制網絡設備從另一網絡設備接收一個輸入開始的(步驟20)。在該動態可控制網絡設備包括一個網絡代理的情況下,這種其他網絡設備可能包括一個客戶機設備或者一個內容服務器。該動態可控制網絡設備然后分析所接收的輸入以從中提取出一個命令(步驟30)。假設找到一個命令,該動態可控制網絡設備然后根據該命令執行某些預定的動作(步驟40)。例如可以使用這一實施例的方法以提供上述的動態控制功能。
根據本發明的實施例的一個動態可控制網絡設備的好處在于不需對現有的網絡基礎結構進行任何改變。在該網絡設備包括一個用于Web事務的網絡代理的一個實施例中,例如可以將命令通過標準的到特殊的URL的HTTP“POST”方法發送到該網絡代理。相應地,要求僅用來分發代理命令的該客戶機軟件是一個標準的Web瀏覽器,除了要求以本領域當前所公知的方式指定一個HTTP代理作為一個目的設備之外對該客戶機設備沒有特殊的配置要求。另一方面,該網絡代理也可以接受來自專業化的客戶機軟件的命令(如果存在的話)。類似地,該動態可控制網絡代理可以自由地與現有的服務器設備進行交互。該代理可以產生關于該客戶機的所需要的其自己的表格和狀態應答,不需要任何特殊配置的HTTP服務器軟件或者CGI(公共網關接口)腳本處理能力。例如,該代理可以產生一個由該客戶機瀏覽器顯示的HTML表格。該用戶可以填充該表格并且將它提交。該瀏覽器取得該填充的表格,并且使用該輸入創建一個POST,將來自該HTML表格的結果進行通訊。然后,該代理可以根據該POST進行動作,可能產生其自己的狀態響應,以便通知用戶該輸入命令是否工作。這種狀態響應然后可由該瀏覽器顯示。使用這種類型的安排,現有的服務器和客戶機就可以與該動態可控制網絡代理進行交互,其方式和它們與任何其他網絡代理交互一樣。因此,本發明的實施例可以透明地實現在現有的網絡基礎結構中,不需要特殊的通訊端口或特殊協議。
本發明的實施例可以例如作為一組位于一個存儲介質上的指令進行分布。這一存儲介質可能是一個計算機的存儲器;一塊固件;一個可攜帶存儲設備,諸如一個磁盤或者其他磁存儲設備,或者一個CD-ROM;或任何其他公知的用以存儲可執行指令的介質。
雖然已經參照從因特網訪問數據的實施例描述了本發明,但是本領域的普通技術人員很容易就會認識到該發明可以同樣應用于其他網絡環境。比如,可以使用本發明的實施例增強一個網絡客戶機計算機和一個“內部網”之間的數據通訊。一個內部網通常是一個仿照因特網體系結構建立的一個安全的企業網絡,并且通常包括用于與諸如因特網的外部網絡進行通訊的機制。
上述是本發明的具體實施例的一種詳細描述。本發明包括落在本發明的權利要求的字面和精神內的所有替換,修改和變化,以及所要求的客體的代價物。例如,本領域的普通技術人員很容易就會認識到這里所描述的功能可以以事實上能夠接收HTTP消息的任何網絡設備實現,這些網絡設備包括內容服務器和客戶機設備。而且,本發明的實施例可以應用于HTTP協議之外的其他通訊協議。本領域的普通技術人員將會從前面的詳細描述認識到其他許多替換,修改和變化都是可能的。
權利要求
1.一種能夠通過一個外部輸入而被動態控制的網絡設備,該網絡設備包括一個分析器和一個業務提供器,所述分析器包括響應從由所述網絡設備接收的一個外部輸入中分析出的一個代理命令來選擇性地調用所述業務提供器的指令。
2.根據權利要求1的網絡設備,其中該外部輸入包括一個HTTP一致的消息。
3.根據權利要求1的網絡設備,其中所述網絡設備位于一個客戶機和一個服務器之間,所述分析器還包括響應從該客戶機接收的一個請求中分析出的一個命令來選擇性地調用所述業務提供器的指令。
4.根據權利要求1的網絡設備,其中所述網絡設備位于一個客戶機和一個服務器之間,所述分析器還包括響應從該服務器接收的一個數據目標中分析出的一個命令來選擇性地調用所述業務提供器的指令。
5.根據權利要求4的網絡設備,其中所述業務提供器包括在傳送所述數據目標至該客戶機之前用于變碼所述數據目標的指令。
6.根據權利要求1的網絡設備,其中所述網絡設備位于一個客戶機和一個第二網絡設備之間,所述分析器還包括響應由所述網絡設備從該第二網絡設備接收的一個數據目標中分析出的一個命令來選擇性地調用所述業務提供器的指令。
7.根據權利要求1的網絡設備,其中所述業務提供器包括用于重新配置所述網絡設備的指令。
8.根據權利要求7的網絡設備,其中所述業務提供器還包括用于設置所述網絡設備的一個操作參數的指令。
9.根據權利要求1的網絡設備,其中所述業務提供器還包括用于管理所述網絡設備使用的一個日志文件的指令。
10.根據權利要求1的網絡設備,其中所述業務提供器還包括用于從所述網絡設備獲得狀態消息的指令。
11.根據權利要求1的網絡設備,其中所述業務提供器還包括用于重新啟動所述網絡設備的指令。
12.根據權利要求1的網絡設備,其中所述網絡設備還包括一個網絡代理。
13.根據權利要求1的網絡設備,其中所述網絡設備還包括一個內容服務器。
14.根據權利要求1的網絡設備,其中所述網絡設備還包括一個客戶機設備。
15.一種用于動態控制一個網絡設備的方法,其中該網絡設備連接到一個第二網絡設備,所述方法包括下述步驟從該第二網絡設備接收一個輸入;從所述輸入提取一個命令;以及響應所述提取的命令而執行一個動作。
16.根據權利要求15的方法,其中所述輸入包括接收一個HTTP一致的消息。
17.根據權利要求15的方法,其中所述動作包括重新配置該網絡設備。
18.根據權利要求17的方法,其中所述輸入包括接收一個HTML表格的結果。
19.根據權利要求15的方法,其中所述第二網絡設備包括一個網絡服務器,并且所述網絡設備位于一個客戶設備與所述第二網絡設備之間,所述輸入包括由所述客戶設備所請求的數據目標,所述動作包括在發送所述數據目標到所述客戶設備之前對所述數據目標進行變碼。
全文摘要
在一個網絡設備(2)中實現一個用于動態控制一個網絡設備的系統,該網絡設備(2)包括一個分析器(6)和一個業務提供器(8)。該分析器(6)包括響應從該網絡設備(2)接收的一個外部輸入中分析出的一個命令選擇性地調用該業務提供器(8)的指令。
文檔編號H04L29/06GK1716940SQ200510059450
公開日2006年1月4日 申請日期1998年3月20日 優先權日1997年3月25日
發明者R·C·克瑙埃爾哈澤, M·M-H·特索 申請人:英特爾公司