專利名稱:在遠程計算機上運行為因特網(wǎng)訪問而配置的軟件的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
一般說來,本發(fā)明涉及運行為因特網(wǎng)訪問而配置的軟件。更具體地說,本發(fā)明涉及在遠程計算機上運行為因特網(wǎng)訪問而配置的軟件。
背景技術(shù):
為因特網(wǎng)訪問而配置的因特網(wǎng)軟件是出名的不安全因素,而且對工業(yè)界提高安全性是一項挑戰(zhàn)。雖然理論上為了保證安全性有可能對輸入通信量進行簡單過濾,但是實際上這樣的目標卻會導致徒勞的裝備競賽。在本申請中,術(shù)語“因特網(wǎng)”是指采用TCP/IP協(xié)議組的網(wǎng)絡(luò)與網(wǎng)關(guān)的任何集合。
力圖提高安全性的某些現(xiàn)有技術(shù)已經(jīng)運行了為遠程訪問因特網(wǎng)所配置的因特網(wǎng)軟件,以減少對用戶計算機發(fā)生任何損害,并且將所有損害集中到系統(tǒng)管理員更容易修復的服務(wù)器。然而,由于用戶喜愛定制其網(wǎng)絡(luò)瀏覽的經(jīng)歷,這樣的嘗試未能最大限度地滿足用戶需求。此外,現(xiàn)有技術(shù)的嘗試需要劃分用戶工作站,即不受歡迎地限制了運行在服務(wù)器上為訪問因特網(wǎng)所配置軟件的數(shù)目。
虛擬機是僅僅駐留在存儲器中的虛擬計算機部件。與編譯代碼僅僅為一種平臺相反,示范虛擬機Java Virtual Machine(“JVM”)允許Java程序在不同的平臺上執(zhí)行。Java程序是為JVM而編譯。以這種方式,Java有能力為許多類型的數(shù)據(jù)處理系統(tǒng)應用程序提供支持,這些系統(tǒng)可以包含各種各樣的中央處理單元和操作系統(tǒng)架構(gòu)。為了使Java應用程序能夠在不同類型的數(shù)據(jù)處理系統(tǒng)上執(zhí)行,典型情況下編譯器產(chǎn)生架構(gòu)中立的文件格式。只要Java運行環(huán)境存在,編譯出的代碼就可以在許多處理器上執(zhí)行。Java編譯器產(chǎn)生字節(jié)碼指令,非特定于具體的計算機架構(gòu)。字節(jié)碼是機器無關(guān)的代碼,由Java編譯器產(chǎn)生,并且由Java解釋程序執(zhí)行。Java解釋程序是JVM中的模塊,它交替地解碼和執(zhí)行某個字節(jié)碼或某些字節(jié)碼。這些字節(jié)碼指令設(shè)計為易于在任何機器上解釋,并且易于實時地翻譯為本機代碼。
所以,開發(fā)一種提高瀏覽安全性、克服這些和其他缺點的方法是一項挑戰(zhàn)。
發(fā)明內(nèi)容
在遠程計算機上運行為因特網(wǎng)訪問而配置的軟件的方法,包括從用戶計算機打開遠程計算機上的虛擬機,以及從所述用戶計算機向所述虛擬機發(fā)送用戶首選設(shè)置。所述方法進一步包括發(fā)送請求,以運行所述為因特網(wǎng)訪問而配置的軟件,以及在關(guān)機時從所述虛擬機接收用戶首選設(shè)置。
從用戶計算機遠程地運行為訪問因特網(wǎng)而配置軟件的方法,包括打開遠程計算機上的虛擬機,以及在所述虛擬機從所述用戶計算機接收用戶首選設(shè)置。所述方法進一步包括在所述遠程計算機從所述用戶計算機接收請求,以及從所述虛擬機至少請求一個網(wǎng)頁。此外,所述方法還包括在所述虛擬機從所述用戶計算機接收關(guān)閉命令,以及響應所述關(guān)機命令向所述用戶計算機發(fā)送所述用戶首選設(shè)置。
本發(fā)明的另一個實施例提供了一種系統(tǒng),用于在遠程計算機上運行為訪問因特網(wǎng)而配置的軟件,包括從用戶計算機打開遠程計算機上虛擬機的裝置,以及從所述用戶計算機向所述虛擬機發(fā)送用戶首選設(shè)置的裝置。所述系統(tǒng)進一步包括發(fā)送請求以運行所述為因特網(wǎng)訪問而配置的軟件的裝置,以及在關(guān)機時從所述虛擬機接收用戶首選設(shè)置的裝置。
從本發(fā)明的多種實施例的以下詳細說明,本發(fā)明的上述實施例和其他實施例、目的和方面以及特性和優(yōu)點將變得更加顯而易見。詳細說明和附圖僅僅是為了展示本發(fā)明,而不是限制由附帶的權(quán)利要求書和其相當內(nèi)容所定義的本發(fā)明的范圍。
圖1展示了根據(jù)本發(fā)明的一個方面,在遠程計算機上運行為因特網(wǎng)訪問而配置的軟件的方法的一個實施例;圖2A展示了根據(jù)本發(fā)明的一個方面,運用網(wǎng)絡(luò)系統(tǒng)的一個實施例;圖2B展示了根據(jù)本發(fā)明的一個方面,運用計算機的一個實施例;圖3A展示了根據(jù)本發(fā)明的一個方面,從虛擬機向用戶計算機發(fā)送用戶首選設(shè)置的方法實施例;圖3B展示了根據(jù)本發(fā)明的一個方面,打開虛擬機的方法實施例;圖4展示了根據(jù)本發(fā)明的一個方面,在遠程計算機上運行為因特網(wǎng)訪問而配置的軟件的方法的另一個實施例;圖5展示了根據(jù)本發(fā)明的一個方面,在遠程計算機上運行為因特網(wǎng)訪問而配置的軟件的方法的另一個實施例;圖6展示了根據(jù)本發(fā)明的一個方面,從用戶計算機遠程地運行為因特網(wǎng)訪問而配置的軟件的方法的另一個實施例;圖7展示了根據(jù)本發(fā)明的一個方面,從虛擬機向用戶計算機發(fā)送用戶首選設(shè)置的方法實施例;圖8展示了根據(jù)本發(fā)明的另一個方面,打開虛擬機的方法實施例;圖9展示了根據(jù)本發(fā)明的一個方面,從用戶計算機遠程地運行為因特網(wǎng)訪問而配置的軟件的方法的另一個實施例;圖10展示了根據(jù)本發(fā)明的一個方面,從用戶計算機遠程地運行為因特網(wǎng)訪問而配置的軟件的方法的另一個實施例;以及圖11展示了根據(jù)本發(fā)明的一個方面,運行為因特網(wǎng)訪問而配置的軟件的系統(tǒng)的一個實施例。
具體實施例方式
圖1展示了根據(jù)本發(fā)明的一個方面,在遠程計算機上運行為因特網(wǎng)訪問而配置的軟件的方法100的一個實施例。方法100開始于步驟110。本文公開的任何發(fā)明方法都能夠以任何適當?shù)拇涡驁?zhí)行,并且介紹本方法的次序僅僅意味著展示與示范。為訪問因特網(wǎng)而配置的軟件可以是任何軟件,比如瀏覽器、電子郵件應用程序、游戲客戶端、即時消息程序或其他這種類似的軟件。
在步驟120,方法100向遠程計算機發(fā)送打開虛擬機的請求,遠程計算機遠離用戶計算機。本文介紹的“計算機”是被配置為執(zhí)行一系列指令以獲取結(jié)果的任何計算機。計算機可以運行任何適當?shù)牟僮飨到y(tǒng),包括但不限于基于視窗的操作系統(tǒng)、UNIX、LINUX、AIX、Macintosh OS、SunOS、PalmOS等。計算機可以是任何個人計算機,比如IBM或與IBM兼容的PC、Macintosh計算機、個人數(shù)字助理、游戲控制臺、服務(wù)器站、工作站或者任何這種類似的計算機設(shè)備或系統(tǒng)。在一個實施例中,遠程計算機實施為以下參考圖2A介紹的客戶機208、210、212之一,而用戶計算機實施為客戶機208、210、212中的另一臺,但是與遠程計算機不是同一臺客戶機。
用戶計算機被配置為在任何顯示設(shè)備比如適當?shù)谋O(jiān)視器上顯示為訪問因特網(wǎng)而配置的瀏覽器或其他這樣的軟件的執(zhí)行結(jié)果。例如,用戶計算機能夠被配置為利用虛擬網(wǎng)絡(luò)計算(“VNC”)協(xié)議運行,而遠程計算機被配置為運行為VNC服務(wù)器,所以用戶能夠遠程訪問圖形用戶界面。正如本領(lǐng)域的普通技術(shù)人員公知,VNC協(xié)議允許服務(wù)器為觀眾遠程地更新幀緩沖器。VNC協(xié)議能夠被配置為在所有計算框架上運行,比如臺式機、便攜機、個人數(shù)字助理、游戲控制臺等。
虛擬機是應用程序創(chuàng)建的構(gòu)造,比如創(chuàng)建所謂“沙箱”的JavaVirtual Machine、VM Ware、VMS Ware等,它們截取或接收來自應用程序的請求,并且運行請求的方式為將用戶應用程序和計算機系統(tǒng)與所述請求的任何潛在地損害、不利或不期望的影響隔離。所述沙箱可以但是不一定是實際的物理地址空間。例如,Java語言提供的、作為保護過程的沙箱,防止了不可信的代碼在運行Java語言的機器上執(zhí)行某些操作。
打開虛擬機的命令從用戶計算機發(fā)出到遠程計算機。用戶計算機和遠程計算機使用網(wǎng)絡(luò)連接進行電子通信。網(wǎng)絡(luò)連接可以使用任何適當?shù)木W(wǎng)絡(luò)協(xié)議運行,包括但不限于X11和VNC。使用如X11或VNC的協(xié)議能夠產(chǎn)生假象運行在虛擬機上的應用程序似乎是運行在用戶計算機上。
在一個實施例中,打開虛擬機是響應來自用戶的直接請求,形式為要求打開虛擬機的顯式請求。在另一個實施例中,打開虛擬機是在用戶計算機打開為訪問因特網(wǎng)而配置的軟件時自動打開。在自動打開虛擬機的實施例中,不必向用戶通報打開了虛擬機。
打開了虛擬機之后,在步驟130從用戶計算機向虛擬機發(fā)送用戶首選設(shè)置。在一個實施例中,發(fā)送用戶首選設(shè)置包括從用戶計算機向虛擬機復制至少一個文件,內(nèi)含反映用戶首選設(shè)置的數(shù)據(jù)。在一個實施例中,用戶首選設(shè)置從用戶計算機發(fā)送到第三方機器,比如LDAP(輕型目錄訪問協(xié)議)目錄。在一個實施例中,為了突出第三方機器,用戶首選設(shè)置被發(fā)送到運行在第三方設(shè)備上虛擬機的另一個實施中。
用戶首選設(shè)置定義為通過用戶與為因特網(wǎng)訪問而配置的軟件的互動而與具體用戶相關(guān)聯(lián)的任何參數(shù),包括用戶配置的參數(shù)。在一個實施例中,用戶首選設(shè)置是書簽列表。在一個實施例中,用戶首選設(shè)置是對與用戶先前瀏覽歷史相關(guān)聯(lián)的cookie進行管理和/或存儲。例如,用戶能夠配置瀏覽器全部地或部分地接受或拒絕與因特網(wǎng)瀏覽活動相關(guān)聯(lián)的cookie。在另一個實施例中,用戶首選設(shè)置是用戶配置設(shè)定。在一個實施例中,用戶首選設(shè)置至少包括書簽列表、與用戶先前瀏覽相關(guān)聯(lián)的cookie和用戶設(shè)置設(shè)定之一。
在步驟140期間,從用戶計算機向虛擬機發(fā)送請求。在一個實施例中,在使用虛擬機執(zhí)行為訪問因特網(wǎng)而配置的軟件之后,發(fā)出所述請求。本文所用的“請求”是由為因特網(wǎng)訪問而配置的軟件所產(chǎn)生的、對用戶的計算機以外的計算機上保持的內(nèi)容和/或服務(wù)的任何請求。為因特網(wǎng)訪問而配置的軟件可以是被配置為訪問因特網(wǎng)的任何程序,比如但是不限于Internet Explorer、Netscape、Firefox、Mozilla、Safari、Outlook、Outlook Express或者其他這樣的程序。在一個實施例中,所述請求包括與期望內(nèi)容或信息相關(guān)聯(lián)的統(tǒng)一資源定位符(URL)。
在一個實施例中,在用戶計算機和虛擬機之間采用以定制代理所配置的文件傳輸協(xié)議傳送請求,以便容許從URL下載文件。在一個實施例中,根據(jù)可配置的參數(shù)比如反病毒程序限制文件下載。在另一個實施例中,下載只限于明確容許的下載。由用戶或系統(tǒng)管理員允許的下載能夠確保安全。在另一個實例中,在將要下載的文件通過“安全”測試后才允許下載,可以包括對下載進行病毒、“間諜軟件”活動屏蔽,或者將文件名與許可下載或不許可下載的列表進行對比。
從用戶計算機向虛擬機發(fā)送了用戶首選設(shè)置之后,在用戶計算機接收來自虛擬機的用戶首選設(shè)置。在一個實施例中,響應關(guān)機命令而接收用戶首選設(shè)置。關(guān)機命令可以由用戶選擇終止為因特網(wǎng)訪問而配置的軟件的操作所產(chǎn)生,或者關(guān)機命令也可以由若干技術(shù)問題所產(chǎn)生,比如偶然關(guān)機。偶然關(guān)機由例如系統(tǒng)或軟件錯誤產(chǎn)生,要解決它需要終止執(zhí)行為因特網(wǎng)訪問而配置的軟件的應用程序。
圖2A展示了示范網(wǎng)絡(luò)系統(tǒng)201。網(wǎng)絡(luò)系統(tǒng)201僅僅是展示性的,而不是對實踐本發(fā)明的架構(gòu)的限制。網(wǎng)絡(luò)系統(tǒng)201是可以實施本發(fā)明的計算機網(wǎng)絡(luò)。網(wǎng)絡(luò)系統(tǒng)201包括網(wǎng)絡(luò)202,它是在分布式網(wǎng)絡(luò)系統(tǒng)201之內(nèi)連接在一起的多種設(shè)備和計算機之間提供通信鏈接所用的介質(zhì)。網(wǎng)絡(luò)202可以包括永久連接,比如電線或光纜,或者通過電話連接形成的臨時連接。在其他實施例中,網(wǎng)絡(luò)202包括采用任何適當無線通信協(xié)議的無線連接,所述無線包括小范圍無線協(xié)議,比如依據(jù)包含802.11、藍牙等的FCC Part 15協(xié)議,或者大范圍無線協(xié)議,比如人造衛(wèi)星或蜂窩通信協(xié)議。
在圖2A中,服務(wù)器204連同存儲單元206一起連接到網(wǎng)絡(luò)202。此外,客戶機208、210和212也連接到網(wǎng)絡(luò)202。這些客戶機208、210和212可以是例如個人計算機或網(wǎng)絡(luò)計算機。為了本申請的目的,網(wǎng)絡(luò)計算機是連接到網(wǎng)絡(luò)的任何計算機,它從連接到網(wǎng)絡(luò)的另一臺計算機接收程序或者其他應用程序。在所描述的實例中,服務(wù)器204向客戶機208-212提供數(shù)據(jù),比如引導文件、操作系統(tǒng)影像和應用程序。客戶機208、210和212是服務(wù)器204的客戶機。網(wǎng)絡(luò)系統(tǒng)201可以包括未顯示的另外的服務(wù)器、客戶機和其他設(shè)備。在所描述的實例中,網(wǎng)絡(luò)系統(tǒng)201是帶有網(wǎng)絡(luò)202的因特網(wǎng),表示了采用TCP/IP協(xié)議組互相通信、世界范圍內(nèi)的網(wǎng)絡(luò)和網(wǎng)關(guān)集合。網(wǎng)絡(luò)系統(tǒng)201也可以實施為許多不同類型的網(wǎng)絡(luò),比如內(nèi)聯(lián)網(wǎng)或局域網(wǎng)。
圖2B展示了根據(jù)本發(fā)明的一個方面所用計算機客戶機250的一個實施例。計算機系統(tǒng)250是客戶計算機的實例,比如客戶機208、210和212。計算機系統(tǒng)250采用外設(shè)部件互連(PCI)的局域總線架構(gòu)。雖然所描述的實例采用了PCI總線,但是也可以使用其他總線架構(gòu),比如微通道和ISA。PCI橋接器258將處理器252和主存儲器254連接到PCI局域總線256。PCI橋接器258還可以包括處理器252所用的集成存儲器控制器和高速緩存。通過直接組件互連或通過內(nèi)裝板,可以建立至PCI局域總線256的其他連接。在所描述的實例中,局域網(wǎng)(LAN)適配器260、SCSI主機總線適配器262和擴展總線接口264通過直接組件互連連接到PCI局域總線256。相反,音頻適配器266、圖形適配器268和音頻/視頻適配器(A/V)269則通過插入擴展槽的內(nèi)裝板連接到PCI局域總線256。擴展總線接口264將鍵盤和鼠標適配器270、調(diào)制解調(diào)器272和附加存儲器274連接到總線256。在所描述的實例中,SCSI主機總線適配器262為硬盤驅(qū)動器276、磁帶驅(qū)動器278和CD-ROM 280提供了連接。在一個實施例中,PCI局域總線實施方案支持三四個PCI擴展槽或內(nèi)插式連接器,盡管本發(fā)明的實踐能夠使用任何數(shù)目的PCI擴展槽或內(nèi)插式連接器。
操作系統(tǒng)在處理器252上運行以協(xié)調(diào)和提供計算機系統(tǒng)250之內(nèi)各個部件的控制。操作系統(tǒng)可以是任何適當可用的操作系統(tǒng),比如視窗、Macintosh、UNIX、LINUX,或者國際商用機器公司出品的OS/2?!癘S/2”是國際商用機器公司的商標。操作系統(tǒng)、面向?qū)ο蟮牟僮飨到y(tǒng),以及應用程序或程序的指令位于存儲設(shè)備上,比如硬盤驅(qū)動器276,并可以加載到主存儲器254內(nèi),由處理器252執(zhí)行。
本領(lǐng)域的普通技術(shù)人員將認識到,圖2B中的硬件可以根據(jù)實施而變化。例如,可以使用其他的外圍設(shè)備,比如光盤驅(qū)動器等,補充或替換圖2B中所示的硬件。圖2B不展示關(guān)于本發(fā)明架構(gòu)的任何限制,而是僅僅公開了可能用于實踐本發(fā)明的示范系統(tǒng)。例如,本發(fā)明的過程可以應用于多處理器數(shù)據(jù)處理系統(tǒng)。
圖3A展示了在用戶計算機從虛擬機接收用戶首選設(shè)置的方法200的一個實施例,如同在步驟150中。方法200開始于步驟210,確定在虛擬機為因特網(wǎng)訪問而配置的軟件的運行是否已經(jīng)修改了至少一個發(fā)送的用戶首選設(shè)置。例如,為因特網(wǎng)訪問而配置的軟件的運行導致了在正在訪問許多網(wǎng)頁的機器上存放了cookie,在這種情況下,訪問網(wǎng)頁的機器是虛擬機而不是用戶計算機。根據(jù)修改了至少一個用戶首選設(shè)置的確定,在用戶計算機接收用戶首選設(shè)置,如同在步驟150中。在對比了用戶計算機上存儲的用戶首選設(shè)置和虛擬機上的用戶首選設(shè)置之后,作為用戶計算機做出的確定結(jié)果而可以接收用戶首選設(shè)置。作為替代,也可以通過在虛擬機上對比至少第一和第二版本用戶首選設(shè)置,作為虛擬機做出的確定結(jié)果而接收用戶首選設(shè)置。此外,在一個實施例中,響應為因特網(wǎng)訪問而配置的軟件關(guān)閉而做出用戶首選設(shè)置改變的確定。在另一個實施例中,根據(jù)預定方案重復所述確定,以便實質(zhì)上同時保持用戶計算機上和虛擬機上的用戶首選設(shè)置。這樣的實施例能夠使硬件或軟件故障所導致的數(shù)據(jù)丟失最小化。
圖3B展示了根據(jù)本發(fā)明的一個實施例,打開虛擬機的方法300的一個實施例。方法300開始于步驟310,并且在步驟320從用戶計算機打開遠程計算機上的虛擬機。在一個實施例中,步驟320的實現(xiàn)如同步驟120的實現(xiàn)。
在步驟330,在打開虛擬機的基礎(chǔ)上,復制了空白磁盤映像(cleandisk image)。空白磁盤映像被復制到遠程計算機,以便作為虛擬機操作的基礎(chǔ)運行??瞻状疟P映像以及其作為虛擬機支持操作的使用和創(chuàng)建技術(shù)是業(yè)內(nèi)公知的。在一個實施例中,空白磁盤映像是VMware磁盤映像。根據(jù)虛擬機軟件的設(shè)計,空白磁盤映像既可以在打開虛擬機之前和打開過程期間復制,也可以在虛擬機已經(jīng)被打開之后進行復制。
圖4展示了根據(jù)本發(fā)明的另一個實施例,在遠程計算機運行為因特網(wǎng)訪問而配置的軟件的方法400。方法400開始于410,并且在步驟420打開遠程計算機上的虛擬機。在一個實施例中,步驟420的實現(xiàn)如同步驟120的實現(xiàn)。
在步驟430,方法400從用戶計算機向遠程計算機發(fā)送用戶首選設(shè)置,并且在步驟440從用戶計算機向遠程計算機發(fā)送請求。在一個實施例中,步驟430的實現(xiàn)如同步驟130的實現(xiàn)。在一個實施例中,步驟440的實現(xiàn)如同步驟140的實現(xiàn)。在步驟450,從虛擬機向用戶計算機發(fā)送用戶首選設(shè)置。在一個實施例中,步驟450的實現(xiàn)如同步驟150的實現(xiàn)。
在步驟460關(guān)閉虛擬機。關(guān)閉虛擬機是根據(jù)為訪問因特網(wǎng)而配置的軟件關(guān)閉。軟件關(guān)閉既能夠源自用戶請求關(guān)閉應用程序,也能夠在一個實施例中源自軟件或硬件故障需要終止為訪問因特網(wǎng)而配置軟件的應用程序線程。
圖5展示了根據(jù)本發(fā)明的一個方面,在遠程計算機上運行為訪問因特網(wǎng)而配置軟件的方法500。方法500開始于510,并且在步驟520打開遠程計算機上的虛擬機。在一個實施例中,步驟520的實現(xiàn)如同步驟120的實現(xiàn)。
在步驟530,方法500從用戶計算機向遠程計算機發(fā)送用戶首選設(shè)置,并且在步驟540從用戶計算機向遠程計算機發(fā)送請求。在一個實施例中,步驟530的實現(xiàn)如同步驟130的實現(xiàn)。在一個實施例中,步驟540的實現(xiàn)如同步驟140的實現(xiàn)。在步驟550,從虛擬機向用戶計算機發(fā)送用戶首選設(shè)置。在一個實施例中,步驟550的實現(xiàn)如同步驟150的實現(xiàn)。在步驟560關(guān)閉虛擬機。關(guān)閉虛擬機是根據(jù)為訪問因特網(wǎng)而配置的軟件關(guān)閉,并且在一個實施例中,步驟560的實現(xiàn)如同步驟460的實現(xiàn)。
在步驟570,廢棄虛擬機的磁盤映像。廢棄磁盤映像可以包括破壞作為虛擬機而運行的文件、以新數(shù)據(jù)重寫存儲虛擬機的磁盤區(qū)域或者以遠程和/或用戶計算機的文件系統(tǒng)去除對作為虛擬機而運行的文件的引用。廢棄虛擬機的磁盤映像將有效地限制所述請求的不利或不期望的后果對用戶計算機和/或遠程計算機的影響。
圖6展示了根據(jù)本發(fā)明的一個方面,從用戶計算機遠程地運行為因特網(wǎng)訪問而配置的軟件的方法600的一個實施例。方法600開始于610。
在步驟620,從用戶計算機打開遠程計算機上的虛擬機。圖8展示了根據(jù)本發(fā)明的一個實施例,打開遠程計算機上虛擬機的方法800的一個實施例。方法800開始于810,并且繼續(xù)在步驟820打開虛擬機。在步驟830,向遠程計算機復制空白磁盤映像。在一個實施例中,方法800的實現(xiàn)如同方法300的實現(xiàn)。
在方法600中,步驟630在虛擬機接收用戶首選設(shè)置。在一個實施例中,接收用戶首選設(shè)置包括從用戶計算機向虛擬機復制至少一個文件,內(nèi)含反映用戶首選設(shè)置的數(shù)據(jù)。如同步驟130,用戶首選設(shè)置定義為用戶能夠配置的任何參數(shù)。在一個實施例中,用戶首選設(shè)置是書簽列表。在一個實施例中,用戶首選設(shè)置是與用戶先前瀏覽歷史相關(guān)聯(lián)的cookie。在另一個實施例中,用戶首選設(shè)置是用戶配置設(shè)置。在一個實施例中,用戶首選設(shè)置包括書簽列表、與用戶先前瀏覽相關(guān)聯(lián)的cookie和用戶配置設(shè)置中至少其一。
在步驟640期間,在虛擬機接收請求。請求是要求與URL相關(guān)聯(lián)信息的任何請求,或者如同在步驟140中的定義,可以是為因特網(wǎng)訪問而配置的軟件的請求。
在步驟650請求至少一個網(wǎng)頁。網(wǎng)頁定義為以指向具體URL的請求可獲得的任何信息。根據(jù)具體的URL,請求網(wǎng)頁能夠引起用戶首選設(shè)置的修改,例如因為虛擬機上存放了若干cookie,或者用戶期望將URL添加到其書簽中。
在步驟660期間,在虛擬機收到了為因特網(wǎng)訪問而配置的軟件的關(guān)閉命令。為因特網(wǎng)訪問而配置的軟件的關(guān)閉命令是在虛擬機使為因特網(wǎng)訪問而配置的軟件的應用程序線程終止的任何命令。例如,為因特網(wǎng)訪問而配置的軟件的關(guān)閉命令可以源自用戶動作、軟件故障或硬件故障。作為替代,為因特網(wǎng)訪問而配置的軟件的關(guān)閉命令也可以源自系統(tǒng)管理員的命令。
根據(jù)為因特網(wǎng)訪問而配置的軟件的關(guān)閉命令,虛擬機在步驟670向用戶計算機發(fā)送用戶首選設(shè)置。圖7展示了根據(jù)本發(fā)明的一個方面,向用戶計算機發(fā)送用戶首選設(shè)置的方法700的一個實施例。方法700開始于步驟710,確定為因特網(wǎng)訪問而配置的軟件的運行是否已經(jīng)修改了任何用戶首選設(shè)置。在一個實施例中,方法700的實現(xiàn)如同方法200的實現(xiàn)。
圖9展示了根據(jù)本發(fā)明的一個方面,從用戶計算機遠程地運行為因特網(wǎng)訪問而配置的軟件的方法900的另一個實施例。方法900開始于步驟910,并且繼續(xù)在步驟920打開虛擬機。在一個實施例中,步驟920的實現(xiàn)如同步驟620的實現(xiàn)。
在步驟930,在虛擬機接收用戶首選設(shè)置。在一個實施例中,步驟930的實現(xiàn)如同步驟630的實現(xiàn)。在步驟940接收對為因特網(wǎng)訪問而配置的軟件的請求,并且在步驟950請求網(wǎng)頁。在一個實施例中,步驟940的實現(xiàn)如同步驟640的實現(xiàn)。在一個實施例中,步驟950的實現(xiàn)如同步驟650的實現(xiàn)。在步驟960收到為因特網(wǎng)訪問而配置的軟件的關(guān)閉命令,并且根據(jù)該關(guān)閉命令,在步驟970從虛擬機向用戶計算機發(fā)送用戶首選設(shè)置。在一個實施例中,步驟960的實現(xiàn)如同步驟660的實現(xiàn)。在一個實施例中,步驟970的實現(xiàn)如同步驟670的實現(xiàn)。
在步驟980關(guān)閉虛擬機。關(guān)閉虛擬機是根據(jù)為因特網(wǎng)訪問而配置的軟件的關(guān)閉。為因特網(wǎng)訪問而配置的軟件的關(guān)閉既能夠源自用戶請求關(guān)閉應用程序,也能夠在一個實施例中源自軟件或硬件故障需要終止為訪問因特網(wǎng)而配置軟件的應用程序線程。圖10展示了在遠程計算機上運行為因特網(wǎng)訪問而配置的軟件的方法,突出了關(guān)閉虛擬機所用方法的一個實施例。
圖10展示了根據(jù)本發(fā)明的一個方面,從用戶計算機遠程地運行為因特網(wǎng)訪問而配置的軟件的方法1000的另一個實施例。方法1000開始于1010,并且繼續(xù)在步驟1020打開虛擬機。在一個實施例中,步驟1020的實現(xiàn)如同步驟620的實現(xiàn)。
在步驟1030在虛擬機接收用戶首選設(shè)置。在一個實施例中,步驟1030的實現(xiàn)如同步驟630的實現(xiàn)。在步驟1040接收請求,并且在步驟1050請求網(wǎng)頁。在一個實施例中,步驟1040的實現(xiàn)如同步驟640的實現(xiàn)。在一個實施例中,步驟1050的實現(xiàn)如同步驟650的實現(xiàn)。在步驟1060接收為因特網(wǎng)訪問而配置的軟件的關(guān)閉命令,并且根據(jù)關(guān)閉命令,在步驟1070從虛擬機向用戶計算機發(fā)送用戶首選設(shè)置。在一個實施例中,步驟1060的實現(xiàn)如同步驟660的實現(xiàn)。在一個實施例中,步驟1070的實現(xiàn)如同步驟670的實現(xiàn)。
在步驟1080,根據(jù)為因特網(wǎng)訪問而配置的軟件的關(guān)閉命令,關(guān)閉虛擬機。在一個實施例中,步驟1080的實現(xiàn)如同步驟980的實現(xiàn)。根據(jù)虛擬機的關(guān)閉,在步驟1090廢棄虛擬機的磁盤映像。在一個實施例中,步驟1090的實現(xiàn)如同步驟560的實現(xiàn)。
圖11展示了根據(jù)本發(fā)明的一個方面,從用戶計算機遠程地運行為訪問因特網(wǎng)而配置軟件的系統(tǒng)1100的一個實施例。系統(tǒng)1100包括用戶計算機1101和遠程計算機1105,通過網(wǎng)絡(luò)1107相互進行電子通信。用戶計算機和遠程計算機可以運行任何適當?shù)牟僮飨到y(tǒng),包括但不限于基于視窗的操作系統(tǒng)、UNIX、LINUX、AIX、Macintosh OS、SunOS、PalmOS等。所述計算機可以是任何個人計算機,比如IBM或與IBM兼容的PC、Macintosh計算機、個人數(shù)字助理、游戲控制臺、服務(wù)器站、工作站或者任何這種類似的計算機設(shè)備或系統(tǒng)。網(wǎng)絡(luò)1107能夠使用任何適當?shù)木W(wǎng)絡(luò)協(xié)議運行,包括但不限于因特網(wǎng)協(xié)議、X11、VNC等。
用戶計算機1101包括用戶首選設(shè)置1110。遠程計算機包括虛擬機1120、復制的用戶首選設(shè)置1125以及在一個實施例中修改的用戶首選設(shè)置1130。
在一個實施例中,遠程計算機上虛擬機的運行允許所述遠程計算機同時運行多個虛擬機,所以遠程計算機同時運行著多個為因特網(wǎng)訪問而配置的軟件的線程。在這樣的實施例中,對于為因特網(wǎng)訪問而配置的軟件應用程序線程的每次執(zhí)行,打開和關(guān)閉每個虛擬機都會在空白磁盤映像上進行功能重新啟動。
應當注意,用戶計算機和遠程計算機都能夠駐留在防火墻之后,或者在連接到公共網(wǎng)絡(luò)比如因特網(wǎng)的私有網(wǎng)絡(luò)或LAN的保護節(jié)點上。作為替代,用戶計算機和遠程計算機能夠位于防火墻兩側(cè),或者連接到公共網(wǎng)絡(luò)比如因特網(wǎng)。本發(fā)明能夠采取全部硬件實施例、全部軟件實施例或者既包含硬件組件也包含軟件組件實施例的形式。在優(yōu)選實施例中,本發(fā)明以軟件實現(xiàn),它包括但不限于固件、駐留軟件、微碼等。不僅如此,本發(fā)明還能夠采取從計算機可用或計算機可讀介質(zhì)可訪問的計算機程序產(chǎn)品的形式,提供由或連同計算機或任何指令執(zhí)行系統(tǒng)使用的程序代碼。對于本說明書的目的,計算機可用或計算機可讀介質(zhì)可以是能夠包含、存儲、通信、傳播或傳輸程序的任何裝置,所述程序由或連同指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用。所述介質(zhì)可以是電子的、磁性的、光學的、電磁的、紅外線的或半導體的系統(tǒng)(或裝置或設(shè)備),或者傳播介質(zhì)比如載波。計算機可讀介質(zhì)的實例包括半導體或固態(tài)存儲器、磁帶、可拆卸計算機軟盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、硬盤和光盤。
雖然本文公開的本發(fā)明實施例目前被視為優(yōu)選實施例,但是能夠作出多種改變和修改而不脫離本發(fā)明的實質(zhì)和范圍。在附帶的權(quán)利要求書中指出了本發(fā)明的范圍,并且力圖包含在其相當內(nèi)容的意義和范圍之內(nèi)的所有改變。
權(quán)利要求
1.一種在遠程計算機上運行為因特網(wǎng)訪問而配置的軟件的方法,包括從用戶計算機發(fā)送請求以打開遠程計算機上的虛擬機;從所述用戶計算機向所述虛擬機發(fā)送用戶首選設(shè)置;向所述虛擬機發(fā)送訪問請求以運行所述為因特網(wǎng)訪問而配置的軟件;以及從所述虛擬機接收用戶首選設(shè)置。
2.根據(jù)權(quán)利要求1的方法,其中,當所述虛擬機關(guān)機時接收所述用戶首選設(shè)置。
3.根據(jù)權(quán)利要求1的方法,其中,所述用戶首選設(shè)置涉及因特網(wǎng)訪問,并且基于確定為因特網(wǎng)訪問而配置的軟件的運行已經(jīng)改變了所述用戶首選設(shè)置而接收所述用戶首選設(shè)置。
4.根據(jù)權(quán)利要求1的方法,其中,所述用戶首選設(shè)置包括從由用戶配置設(shè)置、cookie和書簽組成的組中選出的至少一個成員。
5.根據(jù)權(quán)利要求1的方法,其中,打開所述虛擬機包括復制空白磁盤映像。
6.根據(jù)權(quán)利要求1的方法,進一步包括根據(jù)所述關(guān)機而關(guān)閉所述虛擬機。
7.根據(jù)權(quán)利要求6的方法,進一步包括廢棄所述虛擬機的磁盤映像。
8.根據(jù)權(quán)利要求1的方法,其中,從所述用戶計算機向所述虛擬機發(fā)送用戶首選設(shè)置包括使用從由X11和VNC組成的組中選出的協(xié)議。
9.一種從用戶計算機遠程地運行為因特網(wǎng)訪問而配置的軟件的方法,包括打開遠程計算機上的虛擬機;在所述虛擬機從所述用戶計算機接收用戶首選設(shè)置;在所述遠程計算機從所述用戶計算機接收請求;從所述虛擬機請求至少一個網(wǎng)頁;以及向所述用戶計算機發(fā)送所述用戶首選設(shè)置。
10.根據(jù)權(quán)利要求9的方法,進一步包括在所述虛擬機從所述用戶計算機接收關(guān)機命令的步驟,并且其中向所述用戶計算機發(fā)送所述用戶首選設(shè)置的步驟包括響應所述收到的關(guān)機命令,發(fā)送所述用戶首選設(shè)置的步驟。
11.根據(jù)權(quán)利要求9的方法,其中,向所述用戶計算機發(fā)送所述用戶首選設(shè)置的步驟包括確定所述收到的用戶首選設(shè)置是否已經(jīng)被修改的步驟,并且其中所述用戶首選設(shè)置是基于所述確定結(jié)果而發(fā)送的。
12.根據(jù)權(quán)利要求9的方法,其中,響應對為因特網(wǎng)訪問而配置的軟件的請求而打開所述虛擬機。
13.根據(jù)權(quán)利要求9的方法,其中,打開遠程計算機上虛擬機的步驟包括復制空白磁盤映像的步驟。
14.根據(jù)權(quán)利要求9的方法,其中,所述用戶首選設(shè)置包括從由用戶配置設(shè)置、cookie和書簽組成的組中選出的至少一個成員。
15.根據(jù)權(quán)利要求9的方法,其中,向所述用戶計算機發(fā)送所述用戶首選設(shè)置的步驟包括使用從由X11和VNC組成的組中選出的協(xié)議的步驟。
16.根據(jù)權(quán)利要求9的方法,進一步包括關(guān)閉所述虛擬機的步驟。
17.根據(jù)權(quán)利要求16的方法,進一步包括廢棄所述虛擬機磁盤映像的步驟。
18.一種在遠程計算機上運行為因特網(wǎng)訪問而配置的軟件的系統(tǒng),包括從用戶計算機打開遠程計算機上的虛擬機的裝置;從所述用戶計算機向所述虛擬機發(fā)送用戶首選設(shè)置的裝置;向所述虛擬機發(fā)送請求,以便運行所述為因特網(wǎng)訪問而配置的軟件的裝置;以及關(guān)機時從所述虛擬機接收用戶首選設(shè)置的裝置。
19.一種計算機可讀介質(zhì)中的計算機程序產(chǎn)品,用于從用戶計算機遠程運行為因特網(wǎng)訪問而配置的軟件,包括實現(xiàn)上述方法權(quán)利要求中任何一種方法的指令。
全文摘要
在遠程計算機上運行為因特網(wǎng)訪問而配置的軟件的方法,包括從用戶計算機打開遠程計算機上的虛擬機,以及從所述用戶計算機向所述虛擬機發(fā)送用戶首選設(shè)置。所述方法包括發(fā)送請求,以運行所述為因特網(wǎng)訪問而配置的軟件,以及在關(guān)機時從所述虛擬機接收用戶首選設(shè)置。從用戶計算機遠程地運行為訪問因特網(wǎng)而配置軟件的方法,包括打開遠程計算機上的虛擬機,以及在所述虛擬機從所述用戶計算機接收用戶首選設(shè)置。所述方法進一步包括在所述遠程計算機從所述用戶計算機接收請求和從所述虛擬機至少請求一個網(wǎng)頁,以及在所述虛擬機從所述用戶計算機接收關(guān)閉命令和響應所述關(guān)機命令向所述用戶計算機發(fā)送所述用戶首選設(shè)置。
文檔編號H04L29/06GK1924863SQ200610121619
公開日2007年3月7日 申請日期2006年8月23日 優(yōu)先權(quán)日2005年9月1日
發(fā)明者奧里·普莫蘭茨 申請人:國際商業(yè)機器公司