專利名稱:用于在應(yīng)用執(zhí)行期間改變執(zhí)行環(huán)境的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及支持應(yīng)用的執(zhí)行的系統(tǒng)。更具體地,本發(fā)明涉及用于在應(yīng)用執(zhí)行期間 改變執(zhí)行環(huán)境的方法和系統(tǒng)。
背景技術(shù):
小應(yīng)用程序(applet)是可以在另一程序(諸如,web瀏覽器)的上下文中執(zhí)行的 軟件組件。小應(yīng)用程序的例子包括Java (Java 是Sim微系統(tǒng)公司的注冊(cè)商標(biāo))小應(yīng)用程 序和Flash (Flash 是Adobe系統(tǒng)公司的注冊(cè)商標(biāo))動(dòng)畫。此外,小應(yīng)用程序經(jīng)常執(zhí)行超出 其執(zhí)行環(huán)境(例如,web瀏覽器,桌面環(huán)境)默認(rèn)能力之外的特定功能。例如,小應(yīng)用程序 可以提供諸如游戲、數(shù)學(xué)或物理仿真、計(jì)算器、定時(shí)器、日歷和/或天氣預(yù)報(bào)之類的特征。小應(yīng)用程序通常在主程序、插件、虛擬機(jī)和/或兼容應(yīng)用提供的容器內(nèi)運(yùn)行。小應(yīng) 用程序還可以通過容器從容器提供方接收服務(wù)。此外,容器提供方的終止通常導(dǎo)致小應(yīng)用 程序的終止。例如,在web瀏覽器被關(guān)閉時(shí),通過web瀏覽器運(yùn)行的小應(yīng)用程序可以停止執(zhí) 行。因此,小應(yīng)用程序的使用可能受到小應(yīng)用程序不能獨(dú)立于原始執(zhí)行環(huán)境而運(yùn)行的限制。
發(fā)明內(nèi)容
本發(fā)明的某些實(shí)施方式提供了一種執(zhí)行應(yīng)用的系統(tǒng)。在操作期間,該系統(tǒng)使用web 瀏覽器來啟動(dòng)該應(yīng)用。接著,該系統(tǒng)從該應(yīng)用的用戶接收?qǐng)?zhí)行環(huán)境改變通知,并且響應(yīng)于該 通知,將該應(yīng)用轉(zhuǎn)移到第二執(zhí)行環(huán)境而不中斷該應(yīng)用的執(zhí)行。在有些實(shí)施方式中,該應(yīng)用和web瀏覽器在獨(dú)立的操作系統(tǒng)進(jìn)程中執(zhí)行。在有些實(shí)施方式中,第二執(zhí)行環(huán)境可以是本地桌面環(huán)境、虛擬桌面環(huán)境、遠(yuǎn)程桌面 環(huán)境或協(xié)作應(yīng)用。在有些實(shí)施方式中,消息遞送服務(wù)實(shí)現(xiàn)用于從web瀏覽器向應(yīng)用提供服務(wù)。在有些實(shí)施方式中,通過利用單機(jī)服務(wù)實(shí)現(xiàn)來替換消息遞送服務(wù)實(shí)現(xiàn),而將應(yīng)用 轉(zhuǎn)移到第二執(zhí)行環(huán)境,其中單機(jī)服務(wù)實(shí)現(xiàn)忽略應(yīng)用和web瀏覽器之間的消息。在有些實(shí)施方式中,通過利用新的消息遞送服務(wù)實(shí)現(xiàn)來替換該消息遞送服務(wù)實(shí) 現(xiàn),而將應(yīng)用轉(zhuǎn)移到第二執(zhí)行環(huán)境,其中新的消息遞送服務(wù)實(shí)現(xiàn)促進(jìn)該應(yīng)用與協(xié)作應(yīng)用之 間的通信。在有些實(shí)施方式中,該應(yīng)用是Java小應(yīng)用程序。在有些實(shí)施方式中,執(zhí)行環(huán)境改變通知包括拖放動(dòng)作或剪貼動(dòng)作,其將應(yīng)用的可 視表示從web瀏覽器的可視表示移動(dòng)到第二執(zhí)行環(huán)境的可視表示。
圖1A示出了按照本發(fā)明一個(gè)實(shí)施方式的系統(tǒng)示意圖;圖1B示出了按照本發(fā)明一個(gè)實(shí)施方式的系統(tǒng)示意圖;圖2示出了顯示按照本發(fā)明一個(gè)實(shí)施方式的、將應(yīng)用從web瀏覽器境的過程的流程圖;圖3示出了顯示按照本發(fā)明一個(gè)實(shí)施方式的、將應(yīng)用從web瀏覽器轉(zhuǎn)移到協(xié)作應(yīng) 用的過程的流程圖;圖4示出了實(shí)現(xiàn)按照本發(fā)明一個(gè)實(shí)施方式的、將小應(yīng)用程序從web瀏覽器向桌面 拖動(dòng)的過程的流程圖。
具體實(shí)施例方式提供以下描述以使得本領(lǐng)域任何技術(shù)人員能夠制造和使用公開的實(shí)施方式,其中 在特定應(yīng)用及其需求的上下文中提供了此描述。對(duì)所公開的實(shí)施方式的各種變形對(duì)于本領(lǐng) 域技術(shù)人員來說將是很明顯的,并且此處所定義的通用原理可以應(yīng)用到其他實(shí)施方式和應(yīng) 用,而不偏離本發(fā)明的精神和范圍。因此,本描述的意圖不在于將本發(fā)明限制在所示出的實(shí) 施方式,而是按照與此處所公開的原理和特征相一致的最寬廣的范圍。在此具體實(shí)施方式
部分中描述的數(shù)據(jù)結(jié)構(gòu)和代碼通常存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介 質(zhì)上,其中計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是能夠存儲(chǔ)供計(jì)算機(jī)系統(tǒng)使用的代碼和/或數(shù)據(jù)的 任何設(shè)備或介質(zhì)。這包括但不限于,易失性存儲(chǔ)器、非易失性存儲(chǔ)器、磁的和光的存儲(chǔ)設(shè)備 (諸如盤驅(qū)動(dòng)、磁帶、CD(緊致盤)、DVD(數(shù)字多功能盤或數(shù)字視頻盤)),或者能夠存儲(chǔ)計(jì)算 機(jī)可讀介質(zhì)的現(xiàn)在已知或未來開發(fā)的其他介質(zhì)。在此具體實(shí)施方式
部分中描述的方法和過程可以實(shí)現(xiàn)為代碼和/或數(shù)據(jù),其可以 存儲(chǔ)在上述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。當(dāng)計(jì)算機(jī)系統(tǒng)讀取并執(zhí)行存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì) 上的代碼和/或數(shù)據(jù)時(shí),該計(jì)算機(jī)系統(tǒng)執(zhí)行這些實(shí)現(xiàn)為數(shù)據(jù)結(jié)構(gòu)和代碼并存儲(chǔ)在計(jì)算機(jī)可 讀存儲(chǔ)介質(zhì)內(nèi)的方法和過程。此外,下文描述的方法和過程可以包括在硬件模塊中。例如,硬件模塊可以包括但 不限于專用集成電路(ASIC)芯片、現(xiàn)場(chǎng)可編程門陣列(FPGA)以及現(xiàn)在已知或未來開發(fā)的 其他可編程邏輯器件。當(dāng)硬件模塊被激活時(shí),這些硬件模塊執(zhí)行包含在硬件模塊內(nèi)的方法 和過程。一般而言,本發(fā)明的實(shí)施方式提供了一種用于執(zhí)行應(yīng)用的方法和系統(tǒng)。應(yīng)用可以 包括基于web的應(yīng)用,諸如小應(yīng)用程序。具體地,本發(fā)明的實(shí)施方式提供了一種用于在應(yīng)用 執(zhí)行期間改變執(zhí)行環(huán)境的方法和裝置。在本發(fā)明的一個(gè)或多個(gè)實(shí)施方式中,應(yīng)用可以在第 一執(zhí)行環(huán)境(諸如web瀏覽器)中啟動(dòng)。繼而,應(yīng)用可以被轉(zhuǎn)移到諸如協(xié)作應(yīng)用或桌面環(huán) 境(例如,本地桌面環(huán)境、虛擬桌面環(huán)境、遠(yuǎn)程桌面環(huán)境,等等)的第二執(zhí)行環(huán)境,而不中斷 該應(yīng)用的執(zhí)行。例如,應(yīng)用可以被加載到web頁面內(nèi),以在應(yīng)用的用戶之間提供通信(例如,即時(shí) 消息傳送、電子郵件、電話等)特征。用戶可以使用web瀏覽器內(nèi)的應(yīng)用而開始,并且在完 成其與web瀏覽的瀏覽會(huì)話之后決定繼續(xù)使用該應(yīng)用。結(jié)果,用戶可以拖動(dòng)、剪貼或以其他 方式將小應(yīng)用程序從該web頁面移動(dòng)到從其加載該web頁面的計(jì)算機(jī)的桌面。在轉(zhuǎn)移到桌 面之后,可以將小應(yīng)用程序從web瀏覽器斷開和/或整合到桌面環(huán)境中。而且,在web瀏覽 器的執(zhí)行終止之后,可以在桌面上繼續(xù)小應(yīng)用程序的執(zhí)行。換言之,正在執(zhí)行的應(yīng)用可以從 web應(yīng)用轉(zhuǎn)移到桌面應(yīng)用,而不會(huì)中斷該應(yīng)用的執(zhí)行。圖1A示出了按照本發(fā)明一個(gè)實(shí)施方式的系統(tǒng)示意圖。具體地,圖1A示出了按照本發(fā)明一個(gè)實(shí)施方式的、通過多個(gè)執(zhí)行環(huán)境來執(zhí)行應(yīng)用的系統(tǒng)。該系統(tǒng)包括具有多個(gè)執(zhí)行 環(huán)境(例如,執(zhí)行環(huán)境1112,執(zhí)行環(huán)境x 114)的主機(jī)102。主機(jī)102上的應(yīng)用(例如,應(yīng)用 1116,應(yīng)用m 118,應(yīng)用1120,應(yīng)用n 122)在與執(zhí)行環(huán)境相關(guān)聯(lián)的容器(例如,容器1104,容 器m 106,容器1108,容器n 110)內(nèi)運(yùn)行。此外,特定容器內(nèi)的應(yīng)用的可視表示(例如,可 視表示1124,可視表示m 126,可視表示1128,可視表示n 130)顯示在相應(yīng)的執(zhí)行環(huán)境內(nèi)。主機(jī)102可以對(duì)應(yīng)于向用戶提供一個(gè)或多個(gè)服務(wù)或功能的電子設(shè)備。例如,主機(jī) 102可以操作為移動(dòng)電話、個(gè)人計(jì)算機(jī)、工作站、全球定位系統(tǒng)(GPS)接收機(jī)、便攜式媒體播 放器、個(gè)人數(shù)字助理(PDA)和/或圖形計(jì)算器。此外,主機(jī)102可以包括協(xié)調(diào)主機(jī)102上的 硬件資源和軟件資源的使用的操作系統(tǒng),以及為用戶執(zhí)行專門任務(wù)的一個(gè)或多個(gè)應(yīng)用(例 如,應(yīng)用1116,應(yīng)用m 118,應(yīng)用1120,應(yīng)用n 122)。例如,主機(jī)102可以包括諸如電子郵件 客戶端、地址簿、文檔編輯器、報(bào)稅應(yīng)用、web瀏覽器和/或媒體播放器之類的應(yīng)用。為了為 用戶執(zhí)行任務(wù),應(yīng)用可以從操作系統(tǒng)獲取主機(jī)102上的硬件資源(例如,處理器、存儲(chǔ)器、1/ 0組件、無線發(fā)射器,等等)的使用權(quán),并且通過操作系統(tǒng)提供的硬件和/或軟件框架與用戶 進(jìn)行交互。為了支持與用戶的交互,主機(jī)102可以包括一個(gè)或多個(gè)硬件輸入/輸出(I/O)組 件,諸如指點(diǎn)設(shè)備和顯示屏幕。每個(gè)硬件I/O組件可以另外與軟件驅(qū)動(dòng)(未示出)相關(guān)聯(lián), 該軟件驅(qū)動(dòng)允許主機(jī)102上的操作系統(tǒng)和/或應(yīng)用訪問和使用這些硬件I/O組件。執(zhí)行環(huán)境(例如,執(zhí)行環(huán)境1112,執(zhí)行環(huán)境x 114)可以對(duì)應(yīng)于支持用戶與應(yīng)用進(jìn) 行交互的基于軟件的環(huán)境。例如,用戶可以通過文字處理應(yīng)用來與拼寫檢查插件交互。類 似地,應(yīng)用可以從桌面環(huán)境進(jìn)行初始化和執(zhí)行。執(zhí)行環(huán)境也可以指主機(jī)102上的各種軟件 組件。例如,執(zhí)行環(huán)境可以包括應(yīng)用軟件(例如,文字處理器、電子制表軟件、媒體播放器、 web瀏覽器,等等),插件、小應(yīng)用程序以及窗口小部件可以通過這些應(yīng)用軟件來運(yùn)行。應(yīng)用可以通過基于系統(tǒng)的執(zhí)行環(huán)境(諸如操作系統(tǒng)、文件系統(tǒng)和/或工具 (utilities))來執(zhí)行。而且,執(zhí)行環(huán)境可以進(jìn)一步被嵌套。例如,插件可以通過更大的應(yīng)用 來執(zhí)行,而該更大的應(yīng)用可以通過操作系統(tǒng)桌面來執(zhí)行。在本發(fā)明的一個(gè)或多個(gè)實(shí)施方式中,通過對(duì)應(yīng)的執(zhí)行環(huán)境來啟動(dòng)、訪問和/或終 止主機(jī)102上的應(yīng)用。例如,文字處理應(yīng)用可以通過雙擊桌面環(huán)境和/或窗口系統(tǒng)上的圖 標(biāo)來啟動(dòng)。一旦啟動(dòng)了應(yīng)用,該應(yīng)用就可以從與該執(zhí)行環(huán)境相關(guān)聯(lián)的容器來運(yùn)行。容器的 例子可以包括用于小應(yīng)用程序(例如,JavaCjava 是Sim微系統(tǒng)公司的注冊(cè)商標(biāo))小應(yīng)用 程序)的小應(yīng)用程序容器,用于Flash動(dòng)畫的Flash (Flash 是Adobe系統(tǒng)公司的注冊(cè)商 標(biāo))播放器,用于企業(yè)JavaBeans (EJB)(企業(yè)JavaBeans 是Sim微系統(tǒng)公司的注冊(cè)商標(biāo)) 的EJB容器,和/或用于執(zhí)行插件的插件容器。特別地,每個(gè)容器可以管理對(duì)應(yīng)應(yīng)用的啟動(dòng)和終止,并且進(jìn)一步向應(yīng)用提供使得 該應(yīng)用能夠?yàn)橛脩魣?zhí)行任務(wù)的服務(wù)。例如,應(yīng)用116經(jīng)由主機(jī)102提供的網(wǎng)絡(luò)連接(未示 出)來請(qǐng)求超文本標(biāo)記語言(HTML)文檔。容器104可以使用該網(wǎng)絡(luò)連接取回文檔,并將文 檔提供給應(yīng)用116。應(yīng)用116繼而可以向用戶顯示該文檔和/或使用從這些文檔獲取的數(shù) 據(jù)向用戶提供各種特征。本領(lǐng)域技術(shù)人員將會(huì)理解,執(zhí)行環(huán)境可以與多個(gè)容器和/或在容器內(nèi)運(yùn)行的應(yīng)用 相關(guān)聯(lián)。此外,每個(gè)容器可以配置用于向?qū)?yīng)的應(yīng)用提供不同的服務(wù)集合。例如,文字處理
6應(yīng)用可以包括用于執(zhí)行各種文字處理插件的若干容器。基于期望的功能、安全性和/或其 他標(biāo)準(zhǔn),每個(gè)容器可以設(shè)計(jì)成與其內(nèi)的插件交互以及向插件提供服務(wù)。在本發(fā)明的一個(gè)或多個(gè)實(shí)施方式中,某些應(yīng)用被配置用于通過多個(gè)執(zhí)行環(huán)境而執(zhí) 行。更具體地,在web瀏覽器內(nèi)運(yùn)行的窗口小部件也可以配置用于在桌面上運(yùn)行或在協(xié)作 應(yīng)用內(nèi)運(yùn)行。為了改變執(zhí)行環(huán)境,可能要求窗口小部件暫時(shí)停止執(zhí)行和/或經(jīng)受附加的配 置改變。例如,基于web的窗口小部件可能單獨(dú)安裝在主機(jī)102上,以便在主機(jī)102本地執(zhí) 行。然而,主機(jī)102可以包括這樣的框架,其改變應(yīng)用的執(zhí)行環(huán)境的框架,而不中斷該應(yīng)用 的執(zhí)行,如下文結(jié)合圖1B所描述的。圖1B示出了按照本發(fā)明一個(gè)實(shí)施方式的系統(tǒng)示意圖。具體地,圖1B示出了用于 改變應(yīng)用執(zhí)行環(huán)境而不中斷應(yīng)用的執(zhí)行的Java框架。如圖1B所示,使用一個(gè)或多個(gè)Java 虛擬機(jī)(JVM) 138-142來實(shí)現(xiàn)框架,其包括web瀏覽器132、桌面環(huán)境134和協(xié)作應(yīng)用136, 應(yīng)用可以通過這些而執(zhí)行。該框架還包括多個(gè)服務(wù)實(shí)現(xiàn)(例如,消息遞送服務(wù)實(shí)現(xiàn)144、單 機(jī)服務(wù)實(shí)現(xiàn)146、消息遞送服務(wù)實(shí)現(xiàn)148),其基于應(yīng)用所運(yùn)行的執(zhí)行環(huán)境(例如,web瀏覽 器132、桌面環(huán)境134、協(xié)作應(yīng)用136)來向應(yīng)用提供服務(wù)。在本發(fā)明的一個(gè)或多個(gè)實(shí)施方式中,主機(jī)102上的應(yīng)用對(duì)應(yīng)于web應(yīng)用。換言之, 主機(jī)102上的應(yīng)用可以對(duì)應(yīng)于在web瀏覽器132中啟動(dòng)的和/或通過其運(yùn)行的小應(yīng)用程序 156-160 (例如,Java小應(yīng)用程序)。結(jié)果,主機(jī)102內(nèi)的小應(yīng)用程序的可視表示168-172最 初可以嵌入并顯示在web瀏覽器132內(nèi)。用戶可以通過web瀏覽器132提供輸入而進(jìn)一步 與小應(yīng)用程序進(jìn)行交互。例如,可以通過將web瀏覽器132導(dǎo)航到嵌入有小應(yīng)用程序156 的web頁面來啟動(dòng)小應(yīng)用程序156。加載該頁面之后,在由JVM 138提供的容器150內(nèi)執(zhí)行 小應(yīng)用程序156,并且在web瀏覽器132中顯示該小應(yīng)用程序的可視表示168。為了發(fā)起小應(yīng)用程序的執(zhí)行,web瀏覽器132可以調(diào)用插件162(例如,Java插 件)。特別地,插件162可以產(chǎn)生JVM 138的實(shí)例,并且在由JVM 138提供的容器150內(nèi)執(zhí) 行該小應(yīng)用程序。插件162可以通過建立JVM 138與web瀏覽器132之間的連接來進(jìn)一步 促進(jìn)將小應(yīng)用程序整合到web瀏覽器132內(nèi)。此外,插件162和/或JVM138可以通過與安 裝在主機(jī)102上的操作系統(tǒng)的通信,在web瀏覽器132內(nèi)顯示可視表示168。例如,可以使 用諸如繼承窗口句柄之類的技術(shù)和/或諸如XEmbed的協(xié)議,在web瀏覽器132的可視表示 內(nèi)顯示可視表示168。本領(lǐng)域技術(shù)人員將會(huì)理解,可以使用各種方法來產(chǎn)生JVM 138,這些 方法例如包括平臺(tái)相關(guān)的系統(tǒng)調(diào)用和平臺(tái)無關(guān)的Java編程語言應(yīng)用編程接口(API)。在本發(fā)明的一個(gè)或多個(gè)實(shí)施方式中,針對(duì)web瀏覽器132遇到的每個(gè)小應(yīng)用程序, 創(chuàng)建插件162的實(shí)例。備選地,web瀏覽器132遇到的所有小應(yīng)用程序的初始化可以由插 件162的單個(gè)實(shí)例使用多線程和/或其他技術(shù)來處理。本領(lǐng)域的技術(shù)人員將會(huì)理解,與web瀏覽器132相關(guān)聯(lián)的小應(yīng)用程序(例如,小應(yīng) 用程序156)可以使用插件162和/或JVM實(shí)例(例如,JVM 138)的組合來執(zhí)行。例如,每 個(gè)小應(yīng)用程序可以與插件162的每個(gè)實(shí)例和/或?qū)?yīng)的JVM實(shí)例具有一對(duì)一的映射。另一 方面,可以基于其他標(biāo)準(zhǔn)(諸如插件和/或JVM版本),將小應(yīng)用程序映射到插件162和/ 或JVM 138的實(shí)例。由于諸如主機(jī)102和/或web瀏覽器132的重啟之類的事件,小應(yīng)用 程序也可以交換JVM 138和/或插件162實(shí)例。例如,每個(gè)小應(yīng)用程序可以在單獨(dú)的JVM 實(shí)例和插件實(shí)例上開始運(yùn)行。然而,在主機(jī)102重啟之后,使用相同JVM版本(例如,JVM138)的小應(yīng)用程序可能都在相同的JVM實(shí)例和/或插件實(shí)例內(nèi)運(yùn)行。在本發(fā)明的一個(gè)或多個(gè)實(shí)施方式中,在web瀏覽器132內(nèi)被初始化的每個(gè)小應(yīng)用 程序(例如,小應(yīng)用程序156)在容器(例如,容器150)內(nèi)執(zhí)行,該容器使用消息遞送服務(wù) 實(shí)現(xiàn)144向該小應(yīng)用程序提供服務(wù)。在本發(fā)明的一個(gè)或多個(gè)實(shí)施方式中,消息遞送服務(wù)實(shí) 現(xiàn)144通過支持小應(yīng)用程序與web瀏覽器132之間的消息遞送來促進(jìn)小應(yīng)用程序的執(zhí)行。 例如,消息遞送服務(wù)實(shí)現(xiàn)144可以包括如下功能查詢web瀏覽器132的HTTP代理設(shè)置,查 詢存儲(chǔ)在web瀏覽器132中的HTTP cookie,將文檔加載到web瀏覽器132上,和/或發(fā)起 小應(yīng)用程序與來自web瀏覽器132的JavaScript (JavaScript 是Sun微系統(tǒng)公司的注冊(cè) 商標(biāo))例程之間的調(diào)用。在本發(fā)明的一個(gè)或多個(gè)實(shí)施方式中,消息遞送服務(wù)實(shí)現(xiàn)144允許小應(yīng)用程序(例 如,小應(yīng)用程序156)在具有與web瀏覽器132的操作系統(tǒng)進(jìn)程相獨(dú)立的操作系統(tǒng)進(jìn)程的 JVM(例如,JVM 138-142)中執(zhí)行。消息遞送服務(wù)實(shí)現(xiàn)144的基于消息的特性通過允許小應(yīng) 用程序和web瀏覽器132使用不同于功能調(diào)用的其他機(jī)制來通信,可以進(jìn)一步將小應(yīng)用程 序與web瀏覽器132解耦合。結(jié)果,消息遞送服務(wù)實(shí)現(xiàn)144可以支持小應(yīng)用程序獨(dú)立于web 瀏覽器132而運(yùn)行。如上所述,主機(jī)102上的應(yīng)用可以使用多個(gè)執(zhí)行環(huán)境來運(yùn)行。特別地,主機(jī)102上 的應(yīng)用可以從web瀏覽器132轉(zhuǎn)移到第二執(zhí)行環(huán)境(例如,桌面環(huán)境134、協(xié)作應(yīng)用136, 等等),而不中斷小應(yīng)用程序的執(zhí)行。換言之,在小應(yīng)用程序正在運(yùn)行的同時(shí),小應(yīng)用程序 156-160的可視表示168-172可以從web瀏覽器132的可視表示中移除,并添加到桌面環(huán)境 134和/或協(xié)作應(yīng)用136的可視表示中。例如,響應(yīng)于小應(yīng)用程序158從web瀏覽器132轉(zhuǎn) 移到桌面環(huán)境134,可視表示170可以從web瀏覽器132移動(dòng)到桌面環(huán)境134。類似地,響 應(yīng)于小應(yīng)用程序160從web瀏覽器132轉(zhuǎn)移到協(xié)作應(yīng)用136,可視表示172可以從web瀏 覽器132移動(dòng)到協(xié)作應(yīng)用136。在小應(yīng)用程序轉(zhuǎn)移到第二執(zhí)行環(huán)境期間,小應(yīng)用程序與web 瀏覽器132之間的通信和/或從屬關(guān)系在小應(yīng)用程序的執(zhí)行期間可以移除,從而允許小應(yīng) 用程序獨(dú)立于web瀏覽器132而運(yùn)行。本領(lǐng)域技術(shù)人員將會(huì)理解,桌面環(huán)境134和/或協(xié)作應(yīng)用136可以代表各種執(zhí)行 環(huán)境。例如,桌面環(huán)境134可以指本地桌面環(huán)境、虛擬桌面環(huán)境和/或遠(yuǎn)程桌面環(huán)境。沿著 相同的線路,協(xié)作應(yīng)用136可以對(duì)應(yīng)于本地的、虛擬的和/或遠(yuǎn)程的桌面環(huán)境中的協(xié)作應(yīng) 用。結(jié)果,圖1B的框架例如可以允許將統(tǒng)計(jì)小應(yīng)用程序從web瀏覽器132轉(zhuǎn)移到安裝在主 機(jī)102本地或安裝在主機(jī)102可訪問的遠(yuǎn)程桌面上的記賬應(yīng)用。在本發(fā)明的一個(gè)或多個(gè)實(shí)施方式中,響應(yīng)于從主機(jī)102的用戶接收到執(zhí)行環(huán)境改 變通知,將小應(yīng)用程序(例如,小應(yīng)用程序156-160)從web瀏覽器132轉(zhuǎn)移到不同的執(zhí)行 環(huán)境(例如,桌面環(huán)境134、協(xié)作應(yīng)用136)。在本發(fā)明的一個(gè)或多個(gè)實(shí)施方式中,執(zhí)行環(huán)境 改變通知對(duì)應(yīng)于拖放動(dòng)作或剪貼動(dòng)作,這些動(dòng)作將小應(yīng)用程序的可視表示(例如,可視表 示168-172)從web瀏覽器132的可視表示移動(dòng)到第二執(zhí)行環(huán)境的可視表示。拖放動(dòng)作可 以使用計(jì)算機(jī)鼠標(biāo)、軌跡球、觸摸板、觸摸屏、按鈕和/或主機(jī)102上的其他輸入設(shè)備來執(zhí) 行。本領(lǐng)域技術(shù)人員將會(huì)理解,執(zhí)行環(huán)境改變通知可以使用主機(jī)102上的其他動(dòng)作來實(shí)現(xiàn), 諸如鍵盤快捷鍵、菜單選擇,等等。例如,在拖放動(dòng)作期間,可以通過點(diǎn)擊鼠標(biāo)、按下按鈕和/或執(zhí)行對(duì)應(yīng)于選擇小應(yīng)
8用程序的可視表示的其他輸入動(dòng)作來選擇小應(yīng)用程序的可視表示。該可視表示繼而可以使 用光標(biāo)或其他指示符被放入沒有標(biāo)題欄或邊框的新窗口中,并且從web瀏覽器132移動(dòng)到 桌面環(huán)境134和/或協(xié)作應(yīng)用136中。最后,可以通過釋放該鼠標(biāo)點(diǎn)擊、按下另一按鈕和/ 或執(zhí)行對(duì)應(yīng)于在第二執(zhí)行環(huán)境中釋放小應(yīng)用程序的可視表示的其他輸入動(dòng)作來施放該可 視表示。與典型的拖放動(dòng)作一樣,小應(yīng)用程序的新執(zhí)行環(huán)境可以基于小應(yīng)用程序的可視表 示下面的執(zhí)行環(huán)境的可視表示。例如,如果在桌面環(huán)境134的可視表示上面釋放小應(yīng)用程 序的可視表示,則該小應(yīng)用程序的可視表示可以停留在桌面環(huán)境134中,同時(shí)小應(yīng)用程序 從消息遞送服務(wù)實(shí)現(xiàn)144移動(dòng)到單機(jī)服務(wù)實(shí)現(xiàn)146上。然而,如果在web瀏覽器132或不 兼容的執(zhí)行環(huán)境(例如,不兼容的應(yīng)用)的可視表示上面釋放小應(yīng)用程序的可視表示,則小 應(yīng)用程序可以保持與消息遞送服務(wù)實(shí)現(xiàn)144相關(guān)聯(lián),同時(shí)該小應(yīng)用程序的可視表示返回到 其在web瀏覽器132內(nèi)的原始位置。在本發(fā)明的一個(gè)或多個(gè)實(shí)施方式中,從用戶接收的針對(duì)特定小應(yīng)用程序的執(zhí)行環(huán) 境改變通知是作為執(zhí)行該小應(yīng)用程序的容器中的事件而接收的。例如,針對(duì)小應(yīng)用程序160 的執(zhí)行環(huán)境改變通知可以由容器154來接收。執(zhí)行環(huán)境改變通知可以從插件162遞送到該 容器。然后,運(yùn)行該小應(yīng)用程序的JVM(例如JVM 138-142)和/或容器可以負(fù)責(zé)將小應(yīng)用 程序從web瀏覽器132轉(zhuǎn)移到第二執(zhí)行環(huán)境。在本發(fā)明的一個(gè)或多個(gè)實(shí)施方式中,通過動(dòng)態(tài)改變小應(yīng)用程序156-160從對(duì)應(yīng)的 容器150-154接收服務(wù)的機(jī)制來支持執(zhí)行環(huán)境的改變。換言之,小應(yīng)用程序的執(zhí)行環(huán)境的 改變可以包括由對(duì)應(yīng)的容器和/或JVM向小應(yīng)用程序提供的服務(wù)實(shí)現(xiàn)(例如,消息遞送服 務(wù)實(shí)現(xiàn)144、單機(jī)服務(wù)實(shí)現(xiàn)146、消息遞送服務(wù)實(shí)現(xiàn)146)中的改變。每個(gè)服務(wù)實(shí)現(xiàn)可以通過 基于執(zhí)行環(huán)境的功能、安全性和/或其他屬性向小應(yīng)用程序提供服務(wù),來允許小應(yīng)用程序 在特定執(zhí)行環(huán)境中運(yùn)行。此外,在小應(yīng)用程序的運(yùn)行時(shí)間期間可以發(fā)生小應(yīng)用程序的服務(wù)實(shí)現(xiàn)的交換,因 為包含該小應(yīng)用程序的JVM和/或容器在與web瀏覽器132的操作系統(tǒng)進(jìn)程獨(dú)立的操作 系統(tǒng)進(jìn)程中執(zhí)行。該小應(yīng)用程序也可以在進(jìn)行服務(wù)實(shí)現(xiàn)交換的時(shí)候在相同JVM(例如, JVM138-142)實(shí)例中繼續(xù)執(zhí)行。為了將小應(yīng)用程序(例如,小應(yīng)用程序158)從web瀏覽器132轉(zhuǎn)移到桌面環(huán)境 134,對(duì)應(yīng)的容器(例如,容器152)利用單機(jī)服務(wù)實(shí)現(xiàn)146來動(dòng)態(tài)地替換消息遞送服務(wù)實(shí)現(xiàn) 144。類似地,小應(yīng)用程序的可視表示(例如,可視表示170)同時(shí)地從web瀏覽器132移除 并顯示在桌面環(huán)境134中。在轉(zhuǎn)移到桌面環(huán)境134之后,在web瀏覽器132終止或?qū)Ш降?不同的web頁面之后,小應(yīng)用程序可以繼續(xù)在桌面環(huán)境134內(nèi)運(yùn)行,因?yàn)閱螜C(jī)服務(wù)實(shí)現(xiàn)146 可以在桌面環(huán)境134而不是web瀏覽器132的上下文中為小應(yīng)用程序提供服務(wù)。在本發(fā)明的一個(gè)或多個(gè)實(shí)施方式中,單機(jī)服務(wù)實(shí)現(xiàn)146通過忽略小應(yīng)用程序與 web瀏覽器132之間的消息,來允許小應(yīng)用程序獨(dú)立于web瀏覽器132而運(yùn)行。結(jié)果,在單 機(jī)服務(wù)實(shí)現(xiàn)146中運(yùn)行的小應(yīng)用程序可以不再受來自web瀏覽器132的命令的影響。換言 之,web瀏覽器132可能不能夠終止或以其他方式影響小應(yīng)用程序在單機(jī)服務(wù)實(shí)現(xiàn)146中的 執(zhí)行。類似地,web瀏覽器132可以被關(guān)閉而不會(huì)影響小應(yīng)用程序在單機(jī)服務(wù)實(shí)現(xiàn)146中的 執(zhí)行。與利用消息遞送服務(wù)實(shí)現(xiàn)144 一樣,單機(jī)服務(wù)實(shí)現(xiàn)146存在于web瀏覽器132之外并且獨(dú)立于web瀏覽器132而操作。此外,提供單機(jī)服務(wù)實(shí)現(xiàn)146的JVM(例如,JVM 140) 的執(zhí)行不是基于web瀏覽器132的有效期,而是基于JVM內(nèi)的小應(yīng)用程序(例如,小應(yīng)用程 序158)的有效期。結(jié)果,向一個(gè)或多個(gè)小應(yīng)用程序提供單機(jī)服務(wù)實(shí)現(xiàn)146的JVM可以繼續(xù) 執(zhí)行,直到用戶關(guān)閉JVM內(nèi)執(zhí)行的所有小應(yīng)用程序。單機(jī)服務(wù)實(shí)現(xiàn)146還可以代替web瀏覽器132向小應(yīng)用程序提供服務(wù)。例如,單 機(jī)服務(wù)實(shí)現(xiàn)146可以取回HTML文檔、獲取cookie信息、管理證書、基于全球網(wǎng)絡(luò)設(shè)置獲取 網(wǎng)絡(luò)位置的代理,和/或向小應(yīng)用程序提供其他基于web的服務(wù)。web瀏覽器132所提供 的傳統(tǒng)服務(wù)的其他備選可以包括在web瀏覽器132的新窗口中顯示小應(yīng)用程序指定的web 頁面,和/或?qū)⑨槍?duì)web瀏覽器132中的狀態(tài)欄的消息打印輸出到與小應(yīng)用程序相關(guān)聯(lián)的 一個(gè)或多個(gè)控制臺(tái)窗口或日志文件中?;趙eb的服務(wù)可以進(jìn)一步允許小應(yīng)用程序更新其 在桌面環(huán)境134中的可視表示(例如,可視表示1126、可視表示n 128),并且在web瀏覽器 132之外繼續(xù)為用戶執(zhí)行任務(wù)。為了將小應(yīng)用程序(例如,小應(yīng)用程序160)從web瀏覽器132轉(zhuǎn)移到協(xié)作應(yīng)用 136,對(duì)應(yīng)的容器(例如,容器154)可以利用消息遞送服務(wù)實(shí)現(xiàn)148來替換消息遞送服務(wù)實(shí) 現(xiàn)144。容器還可以將小應(yīng)用程序的可視表示(例如,可視表示172)從web瀏覽器132移 動(dòng)到協(xié)作環(huán)境136,例如通過將包含該可視表示的窗口的所有權(quán)轉(zhuǎn)移給協(xié)作應(yīng)用136。不同 于消息遞送服務(wù)實(shí)現(xiàn)144,消息遞送服務(wù)實(shí)現(xiàn)148可以通過在小應(yīng)用程序與協(xié)作應(yīng)用136之 間遞送消息來向小應(yīng)用程序提供服務(wù)。從而,小應(yīng)用程序可以不再依賴于由web瀏覽器132 提供服務(wù),并且可以在web瀏覽器132終止或?qū)Ш降讲煌膚eb頁面之后繼續(xù)在協(xié)作應(yīng)用 136的上下文中執(zhí)行。在本發(fā)明的一個(gè)或多個(gè)實(shí)施方式中,插件164和消息遞送服務(wù)實(shí)現(xiàn)148允許小應(yīng) 用程序(例如,小應(yīng)用程序160)在協(xié)作應(yīng)用136而不是web瀏覽器132的執(zhí)行環(huán)境內(nèi)運(yùn)行。 特別地,插件164可以建立運(yùn)行小應(yīng)用程序的JVM(例如,JVM 142)與協(xié)作應(yīng)用136之間的 連接,同時(shí)消息遞送服務(wù)實(shí)現(xiàn)148可以允許小應(yīng)用程序從協(xié)作應(yīng)用136接收服務(wù)。例如,用 戶可以將制圖應(yīng)用從web瀏覽器132并入到本地安裝的電子制表應(yīng)用中。此外,可以使用消息遞送服務(wù)實(shí)現(xiàn)148和/或插件164將小應(yīng)用程序的功能提供 給協(xié)作應(yīng)用136。特別地,消息遞送服務(wù)實(shí)現(xiàn)148和/或插件164可以促進(jìn)小應(yīng)用程序與協(xié) 作應(yīng)用136之間的通信。因此,協(xié)作應(yīng)用136可以使用消息遞送服務(wù)實(shí)現(xiàn)148來從web瀏 覽器132接管小應(yīng)用程序所請(qǐng)求的服務(wù)。例如,協(xié)作應(yīng)用136可以代替web瀏覽器132來 在小應(yīng)用程序與網(wǎng)絡(luò)之間傳輸數(shù)據(jù),顯示來自小應(yīng)用程序的web頁面和消息,和/或向小應(yīng) 用程序提供網(wǎng)絡(luò)代理。如前面所提到的,協(xié)作應(yīng)用136也可以使用插件164(例如,Java插 件)來連接到運(yùn)行與協(xié)作應(yīng)用136相關(guān)的小應(yīng)用程序的JVM(例如,JVM142)并與之通信。本領(lǐng)域技術(shù)人員將會(huì)理解,使用多個(gè)消息遞送服務(wù)實(shí)現(xiàn)來與不同的執(zhí)行環(huán)境通信 可以進(jìn)一步允許小應(yīng)用程序在虛擬的或遠(yuǎn)程的桌面環(huán)境內(nèi)執(zhí)行。例如,用戶可以將小應(yīng)用 程序從web瀏覽器132向包含遠(yuǎn)程桌面的窗口拖動(dòng)。小應(yīng)用程序可以繼續(xù)在本地JVM實(shí)例 中運(yùn)行,同時(shí)該小應(yīng)用程序可以使用基于網(wǎng)絡(luò)的消息遞送服務(wù)實(shí)現(xiàn)來與遠(yuǎn)程桌面通信,該 消息遞送服務(wù)實(shí)現(xiàn)使用與遠(yuǎn)程桌面的網(wǎng)絡(luò)連接來支持小應(yīng)用程序與遠(yuǎn)程桌面之間的消息 遞送。基于網(wǎng)絡(luò)的消息遞送服務(wù)實(shí)現(xiàn)可以向遠(yuǎn)程桌面?zhèn)鬏敂?shù)據(jù),諸如主機(jī)102的名稱、小應(yīng) 用程序的名稱和/或主控該小應(yīng)用程序的JVM的名稱。與小應(yīng)用程序相關(guān)聯(lián)的插件和/或JVM也可以隱藏包含主機(jī)102上的小應(yīng)用程序的可視表示的窗口,取而代之地,使用基于網(wǎng) 絡(luò)的消息遞送服務(wù)實(shí)現(xiàn)將該小應(yīng)用程序的可視表示向遠(yuǎn)程桌面發(fā)送。可以實(shí)現(xiàn)類似的消息 遞送功能以允許小應(yīng)用程序與遠(yuǎn)程安裝的協(xié)作應(yīng)用進(jìn)行通信。本領(lǐng)域技術(shù)人員將會(huì)理解,可以不要求小應(yīng)用程序參與執(zhí)行環(huán)境的改變。此外,小 應(yīng)用程序可以覺察不到它們的執(zhí)行環(huán)境的改變。因此,所有小應(yīng)用程序可以從web瀏覽器 132轉(zhuǎn)移到第二執(zhí)行環(huán)境,而不用修改小應(yīng)用程序的代碼或執(zhí)行。另一方面,更新的小應(yīng)用 程序可以通過它們各自的插件實(shí)例來通知此轉(zhuǎn)移,并且在被放入第二執(zhí)行環(huán)境之后改變外 觀和/或功能。例如,響應(yīng)于從web瀏覽器132移除并放在桌面環(huán)境134和/或協(xié)作應(yīng)用 136中,流傳輸視頻小應(yīng)用程序可以改變分辨率、回放選項(xiàng)和/或其他特征。響應(yīng)于從消息遞送服務(wù)實(shí)現(xiàn)144轉(zhuǎn)移到新的服務(wù)實(shí)現(xiàn)(例如,單機(jī)服務(wù)實(shí)現(xiàn)146、 消息遞送服務(wù)實(shí)現(xiàn)148),小應(yīng)用程序也可以經(jīng)歷功能的改變。例如,當(dāng)小應(yīng)用程序被配置用 于獨(dú)立于web瀏覽器132而運(yùn)行時(shí),可以終止小應(yīng)用程序與JavaScript之間的調(diào)用。出于 安全性原因,在沒有用戶輸入的情況下,還可以限制小應(yīng)用程序從web瀏覽器132轉(zhuǎn)移到第 二執(zhí)行環(huán)境的能力。例如,在沒有用戶啟動(dòng)或確認(rèn)的情況下,可以阻止小應(yīng)用程序執(zhí)行環(huán)境 改變的發(fā)生。圖2示出了顯示按照本發(fā)明一個(gè)實(shí)施方式的、將應(yīng)用從web瀏覽器轉(zhuǎn)移到桌面環(huán) 境的過程的流程圖。在本發(fā)明的一個(gè)或多個(gè)實(shí)施方式中,可以省略、重復(fù)和/或以不同順序 執(zhí)行一個(gè)或多個(gè)步驟。因此,圖2中示出的步驟的特定安排不應(yīng)當(dāng)理解為限制本發(fā)明的范圍。最初,使用web瀏覽器來啟動(dòng)應(yīng)用(操作202)??梢酝ㄟ^將web瀏覽器導(dǎo)航到嵌 入有該應(yīng)用的web頁面來啟動(dòng)該應(yīng)用。而且,該應(yīng)用的可視表示可以隨著應(yīng)用的執(zhí)行而顯 示在web瀏覽器內(nèi)。從web瀏覽器初始化應(yīng)用可以進(jìn)一步包括將應(yīng)用連接到消息遞送服務(wù) 實(shí)現(xiàn)(例如,圖1B的消息遞送服務(wù)實(shí)現(xiàn)144),其通過在應(yīng)用和web瀏覽器之間遞送消息來 向應(yīng)用提供服務(wù)。接著,從web瀏覽器的用戶接收?qǐng)?zhí)行環(huán)境改變通知(操作204)。如前面所提到的, 執(zhí)行環(huán)境改變通知可以包括拖放動(dòng)作、剪貼動(dòng)作、鍵盤快捷鍵和/或其他輸入方法。響應(yīng)于 接收到執(zhí)行環(huán)境改變通知,利用單機(jī)服務(wù)實(shí)現(xiàn)來替換消息遞送服務(wù)實(shí)現(xiàn)(操作206),此單 機(jī)服務(wù)實(shí)現(xiàn)允許應(yīng)用獨(dú)立于web瀏覽器而運(yùn)行。在小應(yīng)用程序的執(zhí)行期間可以發(fā)生服務(wù) 實(shí)現(xiàn)的交換,因?yàn)樾?yīng)用程序在與web瀏覽器的操作系統(tǒng)進(jìn)程相獨(dú)立的操作系統(tǒng)進(jìn)程中執(zhí) 行。結(jié)果,小應(yīng)用程序可以在轉(zhuǎn)移到桌面環(huán)境期間繼續(xù)無中斷地運(yùn)行。一旦連接到小應(yīng)用 程序,單機(jī)服務(wù)實(shí)現(xiàn)就可以使用備選機(jī)制,以代替web瀏覽器向小應(yīng)用程序提供服務(wù),諸如 全球網(wǎng)絡(luò)設(shè)置和/或新的瀏覽器窗口。最后,將應(yīng)用的可視表示從web瀏覽器移動(dòng)到桌面環(huán)境(操作208)??梢酝ㄟ^將 可視表示放入不具有標(biāo)題欄或邊框的新窗口中,以及基于與執(zhí)行環(huán)境改變通知相關(guān)聯(lián)的機(jī) 制來在桌面環(huán)境中移動(dòng)該新窗口,從而移動(dòng)該可視表示。例如,在拖放動(dòng)作期間,可以利用 光標(biāo)移動(dòng)新窗口,直到用戶使用光標(biāo)施放該窗口。類似地,在剪貼動(dòng)作期間,可視表示可以 由于用戶的剪切動(dòng)作而從web瀏覽器消失,并且在用戶的粘貼動(dòng)作期間重新出現(xiàn)在桌面環(huán) 境中。應(yīng)用可以覺察不到此轉(zhuǎn)移,并且無改變地繼續(xù)運(yùn)行,或者可以向應(yīng)用通知此轉(zhuǎn)移
11和外觀和/或功能的改變。而且,可能要求用戶提供的執(zhí)行環(huán)境改變通知將應(yīng)用轉(zhuǎn)移到第 二執(zhí)行環(huán)境,以防止應(yīng)用在用戶不知曉的情況下超出web瀏覽器的有效期而執(zhí)行。圖3示出了顯示按照本發(fā)明一個(gè)實(shí)施方式的、將應(yīng)用從web瀏覽器轉(zhuǎn)移到協(xié)作應(yīng) 用的過程的流程圖。在本發(fā)明的一個(gè)或多個(gè)實(shí)施方式中,可以省略、重復(fù)和/或以不同順序 執(zhí)行一個(gè)或多個(gè)步驟。因此,圖3中示出的步驟的特定安排不應(yīng)當(dāng)理解為限制本發(fā)明的范 圍。與轉(zhuǎn)移到桌面環(huán)境一樣,首先使用web瀏覽器來啟動(dòng)應(yīng)用(操作302)。如上面所 討論的,可以將該應(yīng)用連接到消息遞送服務(wù)實(shí)現(xiàn),其通過在應(yīng)用和web瀏覽器之間遞送消 息來向該應(yīng)用提供服務(wù)。該應(yīng)用可以在web瀏覽器的執(zhí)行環(huán)境內(nèi)繼續(xù)執(zhí)行,直到從web瀏 覽器的用戶接收到執(zhí)行環(huán)境改變通知(操作304)。該執(zhí)行環(huán)境改變通知可以提示將應(yīng)用從 web瀏覽器轉(zhuǎn)移到協(xié)作應(yīng)用(例如,文字處理應(yīng)用、電子制表應(yīng)用,等等)。接著,可以利用允許應(yīng)用與協(xié)作應(yīng)用進(jìn)行通信的新消息遞送服務(wù)實(shí)現(xiàn)來替換該應(yīng) 用與web瀏覽器之間的消息遞送服務(wù)實(shí)現(xiàn)(操作306)。由此,協(xié)作應(yīng)用可以使用新消息遞 送服務(wù)實(shí)現(xiàn)開始向應(yīng)用提供服務(wù)。而且,應(yīng)用從web瀏覽器的服務(wù)的斷開可以使得該應(yīng)用 能夠在web瀏覽器導(dǎo)航到不同的web頁面和/或終止之后繼續(xù)運(yùn)行。最后,將應(yīng)用的可視表示從web瀏覽器移動(dòng)到協(xié)作應(yīng)用。例如,可視表示可以從 web瀏覽器向協(xié)作應(yīng)用拖動(dòng),從web瀏覽器剪切并粘貼到協(xié)作應(yīng)用中,和/或基于用戶的輸 入而以其他方式進(jìn)行移動(dòng)。應(yīng)用的可視表示的移動(dòng)可以進(jìn)一步包括將包含小應(yīng)用程序的可 視表示的窗口的所有權(quán)從web瀏覽器移交給協(xié)作應(yīng)用。圖4示出了實(shí)現(xiàn)按照本發(fā)明一個(gè)實(shí)施方式的、將小應(yīng)用程序從web瀏覽器向桌面 拖動(dòng)的過程的流程圖。在本發(fā)明的一個(gè)或多個(gè)實(shí)施方式中,可以省略、重復(fù)和/或以不同順 序執(zhí)行一個(gè)或多個(gè)步驟。因此,圖4中示出的步驟的特定安排不應(yīng)當(dāng)理解為對(duì)本發(fā)明范圍 的限制。最初,用戶開始將小應(yīng)用程序向桌面拖動(dòng)(操作402)。該小應(yīng)用程序可以對(duì)應(yīng)于 在JVM(諸如圖1B的JVM 138-142)提供的容器內(nèi)運(yùn)行的Java小應(yīng)用程序??梢酝ㄟ^各種 用戶發(fā)起的動(dòng)作來用信號(hào)通知此拖動(dòng)動(dòng)作,諸如鼠標(biāo)點(diǎn)擊、按下按鈕、輕拍觸摸板、鍵盤快 捷鍵,等等。響應(yīng)于啟動(dòng)拖動(dòng)動(dòng)作,小應(yīng)用程序的可視表示被放入不具有標(biāo)題欄或邊框的新 窗口中(操作404)。可以對(duì)該窗口的位置進(jìn)一步更新以在將小應(yīng)用程序向桌面拖動(dòng)時(shí)追蹤 光標(biāo)。接著,將小應(yīng)用程序施放到桌面上(操作406)。與操作402—樣,操作406可以通 過用戶發(fā)起的動(dòng)作來提示。例如,可以通過釋放鼠標(biāo)點(diǎn)擊和/或提供鍵盤快捷鍵來施放小 應(yīng)用程序。此外,拖放動(dòng)作可以生成用已斷開小應(yīng)用程序狀態(tài)來對(duì)主控小應(yīng)用程序的容器 進(jìn)行更新的事件(操作408)。此已斷開小應(yīng)用程序狀態(tài)可以允許該小應(yīng)用程序在超出web 瀏覽器的有效期后繼續(xù)存在。特別地,當(dāng)web瀏覽器導(dǎo)航離開包含該小應(yīng)用程序的web頁面和/或終止執(zhí)行時(shí), 可以從促進(jìn)web瀏覽器與主控小應(yīng)用程序的JVM之間的通信的插件接收小應(yīng)用程序退出請(qǐng) 求(操作410)。然而,由于該小應(yīng)用程序現(xiàn)在與web瀏覽器斷開,因此該小應(yīng)用程序獨(dú)立 于web瀏覽器而繼續(xù)執(zhí)行。替代地,小應(yīng)用程序與web瀏覽器之間的消息遞送服務(wù)實(shí)現(xiàn)現(xiàn) 在被單機(jī)服務(wù)實(shí)現(xiàn)所替代(操作412),該單機(jī)服務(wù)實(shí)現(xiàn)使用備選機(jī)制向位于web瀏覽器外部的小應(yīng)用程序提供服務(wù)。換言之,可以在小應(yīng)用程序的可視表示移動(dòng)到桌面之后(而不 是之前或者同時(shí))發(fā)生小應(yīng)用程序的服務(wù)實(shí)現(xiàn)的交換。不考慮操作402和操作412之間的時(shí)序,在web瀏覽器的執(zhí)行終止之后,小應(yīng)用程 序繼續(xù)執(zhí)行(操作414)。此外,JVM實(shí)例僅在其內(nèi)所有正在執(zhí)行的小應(yīng)用程序都已經(jīng)關(guān)閉 時(shí)才會(huì)終止(操作416)。僅出于示意性和描述的目的提供了本發(fā)明實(shí)施方式的前述描述。這些描述的意圖 不在于窮盡或限制本發(fā)明于所公開的形式。因此,很多變形和改變對(duì)于本領(lǐng)域技術(shù)人員將 是很明顯的。而且,上述公開的意圖不在于限制本發(fā)明。本發(fā)明的范圍由所附權(quán)利要求限定。
權(quán)利要求
一種用于執(zhí)行應(yīng)用的方法,包括使用包括web瀏覽器的第一執(zhí)行環(huán)境來啟動(dòng)所述應(yīng)用;從所述應(yīng)用的用戶接收?qǐng)?zhí)行環(huán)境改變通知;以及將所述應(yīng)用轉(zhuǎn)移到第二執(zhí)行環(huán)境而不中斷所述應(yīng)用的執(zhí)行。
2.根據(jù)權(quán)利要求1所述的方法,其中所述應(yīng)用和所述web瀏覽器在獨(dú)立的操作系統(tǒng)進(jìn) 程中執(zhí)行。
3.根據(jù)權(quán)利要求1所述的方法,其中所述第二執(zhí)行環(huán)境是本地桌面環(huán)境、虛擬桌面環(huán) 境、遠(yuǎn)程桌面環(huán)境和協(xié)作應(yīng)用中的至少一個(gè)。
4.根據(jù)權(quán)利要求3所述的方法,其中消息遞送服務(wù)實(shí)現(xiàn)用于從所述web瀏覽器向所述 應(yīng)用提供服務(wù)。
5.根據(jù)權(quán)利要求4所述的方法,其中所述應(yīng)用通過以下步驟被轉(zhuǎn)移到所述第二執(zhí)行環(huán)境利用單機(jī)服務(wù)實(shí)現(xiàn)來替換所述消息遞送服務(wù)實(shí)現(xiàn),其中所述單機(jī)服務(wù)實(shí)現(xiàn)忽略所述應(yīng) 用與所述web瀏覽器之間的消息。
6.根據(jù)權(quán)利要求4所述的方法,其中所述應(yīng)用通過以下步驟被轉(zhuǎn)移到所述第二執(zhí)行環(huán)境利用新消息遞送服務(wù)實(shí)現(xiàn)來替換所述消息遞送服務(wù)實(shí)現(xiàn),其中所述新消息遞送服務(wù)實(shí) 現(xiàn)促進(jìn)所述應(yīng)用與所述協(xié)作應(yīng)用之間的通信。
7.根據(jù)權(quán)利要求1所述的方法,其中所述應(yīng)用包括Java小應(yīng)用程序。
8.根據(jù)權(quán)利要求1所述的方法,其中所述執(zhí)行環(huán)境改變通知包括拖放動(dòng)作或剪貼動(dòng) 作,其將所述應(yīng)用的可視表示從所述web瀏覽器的可視表示移動(dòng)到所述第二執(zhí)行環(huán)境的可 視表示。
9.一種用于管理應(yīng)用的執(zhí)行的系統(tǒng),包括插件,其配置用于使用包含web瀏覽器的第一執(zhí)行環(huán)境來啟動(dòng)所述應(yīng)用;以及 容器,其配置用于在所述第一執(zhí)行環(huán)境中執(zhí)行所述應(yīng)用; 從所述應(yīng)用的用戶接收?qǐng)?zhí)行環(huán)境改變通知;以及將所述應(yīng)用從所述第一執(zhí)行環(huán)境轉(zhuǎn)移到第二執(zhí)行環(huán)境而不中斷所述應(yīng)用的執(zhí)行。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述應(yīng)用和所述web瀏覽器在獨(dú)立的操作系統(tǒng)進(jìn) 程中執(zhí)行。
11.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述第二執(zhí)行環(huán)境是本地桌面環(huán)境、虛擬桌面環(huán) 境、遠(yuǎn)程桌面環(huán)境和協(xié)作應(yīng)用中的至少一個(gè)。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中消息遞送服務(wù)實(shí)現(xiàn)由所述容器用于從所述web 瀏覽器向所述應(yīng)用提供服務(wù)。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述容器進(jìn)一步配置用于利用單機(jī)服務(wù)實(shí)現(xiàn)來替換所述消息遞送服務(wù)實(shí)現(xiàn),其中所述單機(jī)服務(wù)實(shí)現(xiàn)忽略所述應(yīng) 用與所述web瀏覽器之間的消息。
14.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述容器進(jìn)一步配置用于利用新消息遞送服務(wù)實(shí)現(xiàn)來替換所述消息遞送服務(wù)實(shí)現(xiàn),其中所述新消息遞送服務(wù)實(shí)現(xiàn)促進(jìn)所述應(yīng)用與所述協(xié)作應(yīng)用之間的通信。
15.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述應(yīng)用包括Java小應(yīng)用程序。
16.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述執(zhí)行環(huán)境改變通知包括拖放動(dòng)作或剪貼動(dòng) 作,其將所述應(yīng)用的可視表示從所述web瀏覽器的可視表示移動(dòng)到所述第二執(zhí)行環(huán)境的可 視表示。
17.一種存儲(chǔ)指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)計(jì)算機(jī)執(zhí)行所述指令時(shí),其使得所述計(jì)算 機(jī)執(zhí)行用于執(zhí)行應(yīng)用的方法,所述方法包括在包括web瀏覽器的第一執(zhí)行環(huán)境中啟動(dòng)所述應(yīng)用; 從所述應(yīng)用的用戶接收?qǐng)?zhí)行環(huán)境改變通知;以及 將所述應(yīng)用轉(zhuǎn)移到第二執(zhí)行環(huán)境而不中斷所述應(yīng)用的執(zhí)行。
18.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述第二執(zhí)行環(huán)境是本地桌面 環(huán)境、虛擬桌面環(huán)境、遠(yuǎn)程桌面環(huán)境和協(xié)作應(yīng)用中的至少一個(gè)。
19.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述應(yīng)用和所述web瀏覽器在 單獨(dú)的操作系統(tǒng)進(jìn)程中執(zhí)行。
20.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述應(yīng)用包括Java小應(yīng)用程序。
全文摘要
本發(fā)明的一些實(shí)施方式提供了一種執(zhí)行應(yīng)用的系統(tǒng)。在操作期間,該系統(tǒng)使用web瀏覽器來啟動(dòng)應(yīng)用。接著,該系統(tǒng)從該應(yīng)用的用戶接收?qǐng)?zhí)行環(huán)境改變通知,并且響應(yīng)于該通知,將該應(yīng)用轉(zhuǎn)移到第二執(zhí)行環(huán)境而不中斷該應(yīng)用的執(zhí)行。
文檔編號(hào)G06F9/44GK101855618SQ200880110971
公開日2010年10月6日 申請(qǐng)日期2008年10月9日 優(yōu)先權(quán)日2007年10月10日
發(fā)明者K·B·魯塞利 申請(qǐng)人:甲骨文美國公司