TWI505188B - 用於聚合桌面應用程式與網路應用程式的方法、伺服器及系統 - Google Patents

用於聚合桌面應用程式與網路應用程式的方法、伺服器及系統 Download PDF

Info

Publication number
TWI505188B
TWI505188B TW097130424A TW97130424A TWI505188B TW I505188 B TWI505188 B TW I505188B TW 097130424 A TW097130424 A TW 097130424A TW 97130424 A TW97130424 A TW 97130424A TW I505188 B TWI505188 B TW I505188B
Authority
TW
Taiwan
Prior art keywords
desktop application
host server
server
web
application
Prior art date
Application number
TW097130424A
Other languages
English (en)
Other versions
TW201007567A (en
Inventor
Xing Fang
Qingbo Wang
Jie Qiu
Ying Chen
Meng Ye
Original Assignee
Ibm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Priority to TW097130424A priority Critical patent/TWI505188B/zh
Publication of TW201007567A publication Critical patent/TW201007567A/zh
Application granted granted Critical
Publication of TWI505188B publication Critical patent/TWI505188B/zh

Links

Description

用於聚合桌面應用程式與網路應用程式的方法、伺服器及系統
本發明總體上涉及電腦技術領域,更具體來說,涉及用於實現桌面應用程式和Web應用程式聚合的方法、伺服器和系統。
在當今的資訊技術(information technology,IT)領域中,Web技術由於其具有簡單、輕型並且基於開放性標準等特點而得到了廣泛的使用。越來越多的軟體廠商正在致力於開發他們的基於Web技術的應用程式。與傳統的桌面應用程式相比,Web應用程式具有大量優點,例如,Web應用程式不需要進行軟體安裝和維護,這使得Web應用程式易於為大眾所使用。
但是,Web應用程式也具有其局限性。它的一個主要問題在於,基於超文字標記語言(HTML)的用戶介面不能支援進階的用戶互動。由於這個問題的存在,使得很多情況下仍然需要使用桌面應用程式。在某些情況下,終端用戶需要在Web應用程式和桌面應用程式之間進行切換以便完成他的工作。例如,當用戶正在編輯他的部落格(BLOG)時,如果用戶希望在部落格中添加某些照片或圖片,那麽用戶首先要查找所需的某些照片或圖片,然後可能還需要對其進行編輯。為此,用戶必須安裝照片或圖片編輯軟體(即,一桌面應用程式)。此後,用戶還需要把編輯後的照片或圖片上載到Web應用程式中。但是,由於存在某些原因,可能會導致用戶的體驗不是那麽良好,例如,該些原因可能包括:(1)用戶體驗的完整性被破壞了;(2)用戶可能必須在不同的控制臺之間進行切換;(3)Web應用程式的資料和桌面應用程式的資料不能共用;(4)用戶必須安裝所需的桌面應用程式,並且還可能需要對其進行定期維護。
為了增強Web應用程式的能力,目前已經廣泛地使用了諸如Java script、AJAX、ActiveX和Applet等之類的技術。對於Java script/AJAX方法而言,其想法是借助於Java script來編寫Web應用程式,其中Java script是一種用於提供互動式編程特徵的腳本語言。但是,使用Java script也存在很大限制。例如,第一個限制方面在於,Java script由翻譯器執行,並且所具有的性能較差;第二個限制方面在於,不能使用Java script來實現某些編程邏輯。而對於ActiveX/Applet方法而言,由於其相容性差而無法非常廣泛地應用。另一方面,對於不同的應用程式,用戶需要下載不同的外掛程式(plug-in),而且其中某些外掛程式文件的大小可能比較大,因而下載它需要很長時間。
因此,鑒於上述這些情況,迫切地需要一種能夠克服現有技術缺陷,把Web應用程式和桌面應用程式聚合起來以便可以使用桌面應用程式來處理Web應用程式的文件的技術。
在下文中提供了關於本發明的簡要概述,以便提供關於本發明的某些方面的基本理解。但是,應當理解,這個概述並非為本發明的窮舉性概述。而且,它並不是意圖確定本發明的關鍵或重要部分,也不是意圖限定本發明的範圍。其目的僅僅是以簡化的形式提供某些概念,以此作為稍後討論的更詳細描述的序言。
為了解決現有技術中存在的上述問題,本發明的一個目的是提供一種用於實現桌面應用程式和Web應用程式聚合的方法。
本發明的另一個目的是提供一種便於實現桌面應用程式和Web應用程式聚合的Web伺服器以及相應的電腦系統。
本發明的再一個目的是提供一種其上儲存或者編碼了用於實現上述方法的電腦程式碼的電腦可讀儲存媒體以及相應的電腦程式產品。
為了實現上述目的,根據本發明的一態樣,提供了一種用於實現桌面應用程式和Web應用程式的聚合的方法,該Web應用程式包括在一個Web伺服器中,該方法包括以下步驟:回應於用戶端用戶對使用某一目標桌面應用程式的請求,而在Web伺服器上啟動桌面應用程式初始化程序,並為用戶確定一適當的相應主機伺服器;在該相應主機伺服器上備置且提供桌面應用程式環境,並啟動該目標桌面應用程式;向用戶端傳送相應主機伺服器位址,以便可在用戶端與相應主機伺服器之間進行桌面應用程式互動;以及回應桌面應用程式互動的結束,而在相應主機伺服器上停止並退出該目標桌面應用程式。
根據本發明的另一態樣,還提供了一種用於實現桌面應用程式和Web應用程式的聚合的Web伺服器,該Web伺服器可與用戶端以及一個或多個主機伺服器進行通信,並且包括Web應用程式和桌面應用程式服務,其中,Web應用程式回應用戶端用戶對使用某一目標桌面應用程式的請求,而產生桌面應用程式初始化請求,並且回應桌面應用程式互動的結束,而產生桌面應用程式退出請求;桌面應用程式服務回應桌面應用程式初始化請求,而在Web伺服器上啟動桌面應用程式初始化程序,為用戶確定一個適當的相應主機伺服器,在其上備置和提供桌面應用程式環境,以便相應主機伺服器可啟動目標桌面應用程式,並且向用戶端傳送該相應主機伺服器的位址,藉此可在用戶端和相應主機伺服器之間進行桌面應用程式互動,以及桌面應用程式服務回應桌面應用程式退出請求,在相應主機伺服器上停止並退出該目標桌面應用程式。
根據本發明的另一態樣,還提供了一種用於桌面應用程式和Web應用程式的聚合的電腦系統,包括:其上安裝有Web瀏覽器的用戶端;一或多主機伺服器,每一包括用於抓取主機伺服器的用戶介面的終端服務和用於在主機伺服器上啟動桌面應用程式的控制代理;Web伺服器,其可與該用戶端以及一或多主機伺服器進行通信,並且包括Web應用程式和桌面應用程式服務,其中,Web應用程式回應用戶端用戶經由Web瀏覽器對使用某一目標桌面應用程式的請求,而產生桌面應用程式初始化請求,並且回應用戶端用戶結束桌面應用程式的請求,而產生桌面應用程式退出請求,桌面應用程式服務回應桌面應用程式初始化請求,而啟動桌面應用程式初始化程序,為用戶確定一個適當的相應主機伺服器,並且在其上備置及提供桌面應用程式環境,以便控制代理在該相應主機伺服器上啟動該目標桌面應用程式,並且由Web應用程式將相應主機伺服器的位址發送到用戶端,在用戶端上啟動瀏覽器外掛程式,以截取用戶端的用戶輸入並將其提供給相應主機伺服器上的終端服務,並且在Web瀏覽器中顯示該相應主機伺服器端的用戶介面,透過該瀏覽器外掛程式與相應主機伺服器上的終端服務,在用戶端與相應主機伺服器之間進行桌面應用程式互動,以及桌面應用程式服務回應桌面應用程式退出請求,在相應主機伺服器上停止並退出該目標桌面應用程式。
依據本發明的另一態樣,還提供了相應的電腦可讀儲存媒體和電腦程式產品。
在根據本發明的技術方案中,透過將遠端桌面應用程式的用戶介面(UI)嵌入到Web應用程式(例如Web瀏覽器)中,使得終端用戶可以使用遠端桌面應用程式來處理Web應用程式的文件。這意味著,用戶可以使用桌面應用程式在Web頁面內編輯Web文件。當用戶端用戶正在使用某一個Web應用程式時,他能夠向Web伺服器發送初始化某一桌面應用程式的請求。當Web伺服器獲得這個請求時,它將會首先查找一個已經安裝了所請求的桌面應用程式的已存在伺服器。這種已經安裝了或者能夠安裝所請求桌面應用程式以便提供此桌面應用程式的伺服器在下文中被稱為主機伺服器(hosting server)。如果不能找到這種伺服器,則Web伺服器會為用戶分配一個新的主機伺服器,並且提供其所請求的作業系統和所請求的桌面應用程式。在主機伺服器準備就緒之後,Web伺服器把Web文件複製到主機伺服器,並且利用這些Web文件啟始該桌面應用程式。當啟始該桌面應用程式時,Web伺服器會回傳主機伺服器的位址(例如IP位址和埠號)至用戶端。與此同時,在用戶端的同一個Web瀏覽器內下載或者裝入終端外掛程式(該終端外掛程式可從Web伺服器獲得)。這個外掛程式立即透過使用上述終端位址連接到主機伺服器,並且使遠端桌面應用程式的用戶介面顯示在用戶端Web瀏覽器中。接著用戶可以透過終端外掛程式與遠端桌面應用程式進行互動。最後,當用戶關閉桌面應用程式時,於桌面應用程式互動期間進行修改或改變的這些Web文件將被複製到Web伺服器。這樣,就實現了Web應用程式和桌面應用程式的聚合。
本發明具有幾個優點。其中,第一個優點是,它向終端用戶提供了一個統一的存取桌面應用程式和Web應用程式的Web控制平臺。可以將桌面應用程式視為Web應用程式的一部分,而且它是與硬體無關的以及與作業系統無關的。可以在Web應用程式的控制下具備有單點登錄(Single sign on,SSO)特性。而且,可以在桌面應用程式和Web應用程式之間共用Web文件,並且由桌面應用程式所做出的所有改變都可以被快速地反映在Web應用程式上。
第二個優點是,可以簡化對桌面應用程式的管理工作。對於終端用戶而言,不需要在用戶端下載、安裝、更新和維護桌面應用程式程式。而且,大多數情況下,一些桌面應用程式可能很少被用戶使用。利用本發明的技術方案,用戶無需在本地安裝桌面應用程式。因為桌面應用程式的二進位碼在主機伺服器上執行,所以更容易控制軟體認證問題。對於軟體廠商而言,不需要使用Web編程模型重寫相應的桌面應用程式。此外,可以將傳統的桌面應用程式和Web應用程式整合在一起,並且還可以減少桌面應用程式的開發周期。對於系統管理員而言,管理這些桌面應用程式也更為容易,並且可以集中式地加以維護。另一方面,由於可以將所有文件和資料儲存在Web伺服器上,所以資料損失的風險被減少到最小,資料備份也更加容易。同時,還可以使用更為強大的資源(例如,主機伺服器)以提供用戶更好的性能。
第三個優點是,本發明的技術方案可以透過利用虛擬化和自動技術來降低成本。諸如VMWare、Xen及IBM LPAR等之類的一些現有技術支援伺服器虛擬化。這些技術可以將實體伺服器模擬作為數個邏輯伺服器或者虛擬伺服器。這些虛擬伺服器可以共用同一實體伺服器的資源,這樣可以提高資源的利用率和共用。並且,桌面應用程式可以部署在虛擬伺服器上,這樣可以為服務供應商節省主機成本。另一方面,還可以使用自動化技術來提供作業系統(OS)和桌面應用程式,從而有助於節省部署時間和減少人為錯誤。
透過以下結合附圖對本發明的最佳實施例的詳細說明,本發明的這些以及其他優點將更加明顯。
在下文中將結合附圖對本發明的示例性實施例進行描述。為了清楚和簡明起見,在說明書中並未描述實際實施方式的所有特徵。但是,應該瞭解,在開發任何這種實際實施例的過程中必須做出很多特定於實施方式的決定,以便實現開發人員的特定目標,例如,符合與系統及業務相關的那些限制條件等,而這些限制條件可能會隨著實施方式的不同而有所改變。此外,還應該瞭解,雖然開發工作有可能是非常複雜和費時的,但對得益於本公開內容的本領域技術人員來說,這種開發工作僅僅是例行的任務。
在此,還需要說明的一點是,為了避免因為不必要的細節而模糊了本發明,在附圖中僅僅示出了與根據本發明的技術方案密切相關的裝置結構和/或處理步驟,而省略了與本發明關係不大的其他細節。
下面參考附圖對根據本發明的優選實施例進行詳細描述。
首先,參見第1圖,其示出了一個在其中可以應用程式根據本發明的優選實施例的電腦系統的系統方塊圖。如第1圖所示,根據本發明,在用戶端僅僅需要Web瀏覽器即可;在伺服器端,示出了一個Web伺服器和三個主機伺服器。雖然圖中僅示出了三個主機伺服器,但是在此可以包括任意數目的主機伺服器。正如上文中所提及的那樣,主機伺服器是指用於提供相關桌面應用程式的伺服器。
在Web伺服器中,部署了Web應用程式和有關的支援組件。在主機伺服器中,已經部署了或者能夠部署用戶端可能請求的一種或多種桌面應用程式。對於一般的Web應用程式互動,用戶端瀏覽器和部署在Web伺服器上的Web應用程式進行通信。但是,當需要進行某一桌面應用程式互動時,Web伺服器為用戶分配一個相應的主機伺服器,然後用戶端和部署在該主機伺服器上的桌面應用程式進行通信,並且在桌面應用程式互動結束之後,釋放該主機伺服器。然後,用戶端繼續與Web伺服器進行互動。取決於用戶端對桌面應用程式的需要,上述這個過程可能會重復很多次。
下面參見第2圖,其比較詳細地示出了如第1圖所示的電腦系統中所包含的組件。為了簡單起見,第2圖中僅僅示出了一個主機伺服器300。但是,本領域技術人員應當明白,該電腦系統實際上還可能包括其他一或多個未示出的組件,並且往往具有一個以上的主機伺服器。
如第2圖所示,在用戶端一側,在瀏覽器100中安裝有一個瀏覽器外掛程式,以下將其稱為終端代理110(有關該外掛程式的細節將在下文中結合方法的處理流程圖加以詳細說明)。它具有兩個主要功能:截取用戶輸入並且將其發送到相應的主機伺服器(在第2圖中為主機伺服器300);在瀏覽器100中顯示相應主機伺服器的用戶介面。可以使用諸如VNC(一種遠端控制軟體,其更多細節可參見http://www.realvnc.com/ )、視窗遠端桌面(windows remote desktop)、和用於Linux/UNIX的XWindow管理器等之類的多種現有技術來實現這種瀏覽器外掛程式。另外,除了上述這些技術之外,還可以使用Java applet(小應用程式)方法實現終端代理110。
例如,在使用Java applet方法的情況下,當初始化applet時,如第2圖所示,它將連接到在主機伺服器300上運行的相應終端服務310。然後,可以建立TCP連接。這個applet可以抓取用戶的鍵盤和滑鼠事件,並且將它們發送到相應的主機伺服器300。在終端服務310接收到該事件之後,它將在主機伺服器300上產生這樣的事件以模擬用戶端互動。同時,終端服務310抓取主機伺服器300的用戶介面(即螢幕),並且將螢幕圖像發送回用戶端。當終端代理110接收到該螢幕圖像時,它在applet內繪製該圖像。在實際的應用程式中,為了安全考慮,可以對用戶端和伺服器之間傳輸的資料進行加密。另外,為了性能考慮,可以在用戶端啟用圖像快取,同時可以還壓縮所傳輸的資料。
第3圖示出了整合了桌面應用程式的用戶介面的一個示例性Web應用程式頁面佈局。在用戶端用戶透過其Web瀏覽器啟用了遠端桌面應用程式後,借助於終端代理110,在用戶端的Web瀏覽器100上顯示如第3圖所示的Web頁面佈局,即,遠端桌面應用程式的用戶介面(UI)將會出現在用戶端Web瀏覽器上的一個Web頁面的一個矩形區域中,該矩形區域由第2圖中所示的終端代理110控制。
再次回到第2圖。如第2圖所示,在伺服器端的Web伺服器200上,Web應用程式210需要調用桌面應用程式服務230來處理對桌面應用程式的使用請求。當用戶端請求使用某一桌面應用程式時,Web應用程式210將產生桌面應用程式初始化請求,以請求桌面應用程式服務230進行準備。如第2圖所示,桌面應用程式服務230主要包含以下幾個組件:請求處理器240,檔案控制器250,會話管理器260,資源管理器270,和部署控制器280。
除此之外,如第2圖所示,在伺服器端還具有:包含一或多伺服器的資源池400,用於提供所需要的主機伺服器、例如主機伺服器300(為了便於說明,第2圖中僅示出了一個主機伺服器300,但是實際上可以包括任意數目的主機伺服器);以及影像和軟體儲存庫500,用來儲存用戶端可能會請求使用的多種桌面應用程式的安裝軟體及伺服器影像。
請求處理器240向Web應用程式210提供了以下幾個介面:
(1)桌面應用程式初始化
在從Web應用程式210發往桌面應用程式服務230的桌面應用程式初始化請求中,用戶端需要發送桌面應用程式版本資訊和需要由桌面應用程式打開的文件列表。此外,初始化請求也可以包括文件同步選項和恢復選項。另外,初始化請求還可以包括Web會話資訊,以便使請求處理器240可以為同一個用戶重新使用同一個主機伺服器。例如,下面是一個示例性的XML初始化請求:
依據桌面應用程式服務230針對上述初始化請求的初始化回應,用戶端可以知道是否成功地處理了該請求。此外,還可以知道主機伺服器的位址,以便使用戶端瀏覽器可以知道如何連接到主機伺服器。例如,下面是一個示例性的XML初始化回應:
(2)桌面應用程式退出
當用戶已經完成了對桌面應用程式的使用時,Web應用程式210可以請求退出桌面應用程式,以便可以回收相關的資源。退出請求中可以包括Web會話資訊,如此請求處理器240知道需要回收哪個主機伺服器。此外,退出請求中還可以包括備份選項,以便可以根據需要備份主機伺服器環境。例如,下面是一個示例性的XML退出請求:
依據針對退出請求的回應,Web應用程式210可以知道操作結果。例如,下面是一個示例性的XML退出回應:
(3)查詢
查詢功能可以使Web應用程式210檢查當前環境的狀態。例如,可以檢查下列狀態:
可用的應用程式;
主機伺服器針對一個會話的運行狀態。
在Web應用程式中,當需要利用桌面應用程式時,可以首先查詢可用的桌面應用程式,然後以例如列表的形式列出它們。下面就是這樣的一個示例:
□ Adobe Photoshop 8.0
□ MS Word 2003
□ Eclipse 3.0
……
對於每個桌面應用程式,可以顯示下列屬性供用戶選擇:應用程式名稱,版本,廠商及作業系統(OS)。上述資訊可以從資源管理器270(將在下文中進行詳細說明)中獲得。在Web應用程式210中,可以根據用戶的授權和需求來修改可用桌面應用程式的列表。
當用戶經由Web瀏覽器100請求使用某一個桌面應用程式並且提交了表單時,Web應用程式210產生桌面應用程式初始化請求,並且將其發送到請求處理器240。請求處理器240首先檢查會話管理器260,以確定是否早已存在用於當前這個會話的正在運行的主機伺服器。如果確定不存在這樣的主機伺服器,則它將請求資源管理器270從資源池400中分配一個用於運行所請求的桌面應用程式的主機伺服器,例如主機伺服器300。在完成資源分配之後,請求處理器240請求部署控制器280備置並提供主機伺服器環境並且獲取主機伺服器位址,例如IP位址及埠號。然後,會話管理器260保存主機伺服器地址和用戶會話資訊。最後,請求處理器240將主機伺服器位址送回到Web應用程式210。Web應用程式210將包括外掛程式(即終端代理110)資訊和主機伺服器地址的頁面發送到用戶瀏覽器一端。用戶瀏覽器100在接收到回應後,將會啟動該外掛程式,即終端代理110。在此需要說明的是,該外掛程式在用戶端首次透過瀏覽器存取遠端桌面應用程式時才需要從Web伺服器中下載;而且根據需要,該外掛程式可以儲存在Web伺服器中,也可以儲存在Web伺服器可存取的網路上的任何其他地方(為了簡單起見,在第2圖中並未示出)。以上的這個過程如第4圖所示。
第4圖較為簡單地示出了第2圖所示的電腦系統在桌面應用程式初始化過程中的用戶互動和會話複製處理。其中,正如以上所描述的那樣,(1)表示使用會話權杖進行Web應用程式互動,(2)表示用戶端在Web應用程式中請求桌面應用程式,(3)表示Web應用程式210將桌面應用程式初始化請求發送到桌面應用程式服務230,(4)表示準備桌面應用程式環境,即桌面應用程式初始化處理(其詳細處理將在下文中參考第5圖所示的流程圖加以詳細說明),(5)表示桌面應用程式服務230對Web應用程式210做出回應,(6)表示Web應用程式210對瀏覽器做出回應,而(7)表示瀏覽器100啟動終端代理110,並且連接到桌面應用程式340。
在如上所述結束了桌面應用程式互動之後,用戶例如可發送一個請求到Web應用程式210,然後Web應用程式210將產生桌面應用程式退出請求並將其發送到桌面應用程式服務230中的請求處理器240。如果用戶想要保存當前分配給他的主機伺服器以供將來使用,則部署控制器280把該主機伺服器的整個影像儲存到影像和軟體儲存庫500中。在這之後,請求處理器240調用部署控制器280來清理目標主機伺服器,例如清除用戶使用過程中產生的一些文件,避免被以後的用戶看到,並且要求資源管理器270釋放該主機伺服器。以上的這個過程將在下文中參考第6圖所示的流程圖進行詳細說明。
再次返回參見第2圖。其中,會話管理器260用於維護和保存用戶會話。在接收到桌面應用程式初始化請求後,請求處理器240利用會話管理器260檢查是否早已存在用於這個會話的主機伺服器。如果不存在這樣的伺服器,則會話管理器260保存這個會話的ID以及所分配的主機伺服器ID。如果用於這個會話的主機伺服器已經存在了的話,則請求處理器240將回傳該主機伺服器的IP地址及埠號。
在資源池400中,可以有不同類型的一或多個伺服器,諸如Intel/AMD PC伺服器和UNIX伺服器等。這些伺服器中可能安裝了作業系統和某些桌面應用程式,但是也可能並沒有安裝任何作業系統和桌面應用程式。此外,除了實體伺服器之外,資源池400中也可能包含一個或多個虛擬伺服器。
資源管理器270維護資源池400,並且處理資源分配請求和資源釋放請求。資源管理器270可以追蹤並儲存資源池400中所有伺服器的詳細資訊,其中包括例如伺服器的硬體類型和配置、IP位址、作業系統(OS)類型、伺服器中安裝或儲存的桌面應用程式的名稱和版本資訊等。基於這個詳細資訊,資源管理器270可以針對資源分配請求,分配或確定最適合的伺服器。當收到某一資源分配請求時,資源管理器270可以基於桌面應用程式和其所需的OS名稱在資源池400中查找匹配的伺服器。如果找到了匹配的伺服器(即主機伺服器),則將該匹配的伺服器標記為「使用中」並且回傳其IP地址及埠號。如果沒有找到匹配的伺服器,則資源管理器270從資源池400中選擇一個適當的主機伺服器用於提供,並且將其標記為「使用中」。上述這個過程將在下文中參考第7圖所示的流程圖進行進一步詳細描述。當收到資源釋放請求時,資源管理器270釋放使用中的伺服器並把它標記為「空閒」。如果使用中的伺服器是一個虛擬伺服器而非一個真實的實體伺服器,則資源管理器270將會破壞該伺服器並且釋放所分配的資源。
也就是說,資源管理器270可以對實體伺服器和虛擬伺服器進行管理。對於實體伺服器而言,資源管理器270以全機級別(box level)對其進行管理,這意味著:每次一單一用戶僅僅分配一個實體伺服器。而對於虛擬伺服器而言,在其上運行虛擬伺服器的主機平臺可以由不同的用戶共用。每個用戶僅僅可以使用一個可能僅僅消耗部分實體伺服器資源的虛擬伺服器。可以在資源分配前在資源池400中準備或者根據需要提供虛擬伺服器。
部署控制器280是一種用於自動安裝的自動引擎。它能夠自動地安裝遠端系統。安裝工作包括OS安裝、應用程式程式安裝、軟體配置、系統更新、伺服器備份等。安裝軟體通常儲存在影像和軟體儲存庫500中。可以使用幾種已有的產品,例如,IBM公司的用於提供Windows/Linux的Director,IBM公司的用於提供AIX的NIM,以及Redhat公司的用於提供Redhat Linux的kickstart,來實現部署控制器280。
檔案控制器250的主要功能是使得文件在Web伺服器200和主機伺服器300之間保持同步。檔案控制器250透過和主機伺服器300中的控制代理330進行通信來完成該任務。在桌面應用程式初始化期間,它將桌面應用程式初始化請求中指定的文件複製到主機伺服器300的本地目錄下。在桌面應用程式退出期間,它將所有在桌面應用程式互動期間修改或更新後的文件從主機伺服器300複製到Web伺服器200上的原有位置或者其他位置處。在桌面應用程式初始化期間和桌面應用程式退出期間,檔案控制器250可以重覆地將主機伺服器300上的所有修改或更新後的文件複製到Web伺服器200上的某一臨時位置處。這是出於備份考慮,以防止文件在主機伺服器300可能由於某種原因而崩潰後丟失。當然,在另一替代方案中,檔案控制器250也可以將所有修改或更新後的文件直接複製到Web伺服器200上的原有位置中以覆蓋原來的文件,從而立即反映出所進行的修改或更新。這可以由用戶根據需要自行設定。
在影像和軟體儲存庫500中,儲存了兩類資料,即:桌面應用程式/OS安裝軟體以及伺服器影像。安裝軟體用於在主機伺服器(可以是實體或虛擬伺服器)上第一次安裝相應的桌面應用程式或作業系統。伺服器影像是已存在伺服器的快照/備份。安裝軟體可以具有下列屬性:軟體名稱,版本,廠商,和安裝腳本。伺服器影像可以具有下列屬性:軟體列表,影像生成日期,用戶ID,和硬體類型。
在每個主機伺服器(例如,第2圖所示的主機伺服器300)上,除了可能具有桌面應用程式340之外,還可安裝兩個組件,即,終端服務310和控制代理330。
終端服務310與終端代理110進行通信,以獲得用戶端用戶輸入並且在主機伺服器300一端再現該輸入。此外,它還抓取主機伺服器上的UI並且將其發送到用戶端上的終端代理110。透過這種方式,用戶可以透過Web瀏覽器調用和控制遠端桌面應用程式。與終端代理110類似,終端服務310也可以使用幾種現有的技術、例如VNC、XWindows、Java applet等來實現。
控制代理330主要具有文件同步和應用程式控制的功能。控制代理330和Web伺服器200上的檔案控制器250進行互動,以便同步文件。控制代理330還可以監控主機伺服器上的用戶本地目錄並且追蹤文件改變事件。當有文件被修改或更新時,它可以通知檔案控制器250複製修改或更新後的文件。在桌面應用程式初始化階段,控制代理330需要啟動目標應用程式並且載入輸入文件。在桌面應用程式退出階段,控制代理330停止並退出使用中的桌面應用程式。在此,控制代理也可以用腳本或者程式實現。
下面結合第5-7圖所示的流程圖來進一步詳細說明上述各個部件的功能,以及根據本發明的實現桌面應用程式和Web應用程式聚合的示例性方法的處理流程。其中,第5圖示出了根據本發明實施例在桌面應用程式初始化期間所執行的處理過程500的流程圖;第6圖示出了根據本發明實施例在桌面應用程式退出期間所執行的處理過程600的流程圖;而第7圖比較詳細地示出了根據本發明實施例在第5圖所示的處理過程500中的資源分配和提供步驟S520的具體處理過程700。
如以上所描述的那樣,在Web應用程式210產生桌面應用程式初始化請求之後,如第5圖所示,開始桌面應用程式初始化處理500。在步驟S510,請求處理器240檢查會話管理器260,以確定是否存在用於當前會話的已有主機伺服器。如果步驟S520的確定結果是否定的,即,如果確定不存在這樣的主機伺服器,則處理進行到步驟S520,利用資源管理器270和部署控制器280進行資源的分配和提供(將在下文中參考第7圖加以進一步說明),然後處理500進行到步驟S530。否則,如果在步驟S520中確定已經存在了這樣的主機伺服器,則處理500直接進行到步驟S530。在步驟S530,透過檔案控制器250把當前會話文件(例如第2圖中的Web檔案220)複製到主機伺服器(例如第3圖所示的主機伺服器300)中。然後,在步驟S540,由控制代理330在主機伺服器300中啟動所需的桌面應用程式340和終端服務310。在步驟S550,向用戶端回傳主機伺服器IP位址及埠號(如果用戶端首次透過瀏覽器存取遠端桌面應用程式的話,則同時還向用戶端回傳用戶端瀏覽器外掛程式,即終端代理110),並結束桌面初始化處理500,此後用戶可以在用戶端處啟動終端代理110並開始與主機伺服器300的桌面應用程式互動。
在用戶完成了桌面應用程式互動後,他可以向Web應用程式210發送請求,然後由Web應用程式210發出桌面應用程式退出請求,開始如第6圖所示的桌面應用程式退出處理600。
如第6圖所示,在步驟S610,請求處理器240檢查會話管理器260,判斷是否有在該會話中運行的主機伺服器。由於如上該在桌面應用程式互動過程中的確分配和運行了主機伺服器300,所以步驟S610的判斷結果是肯定的,因此,桌面應用程式退出處理600進行到步驟S620;否則,結束處理600。在步驟S620,由控制代理330在主機伺服器300上停止桌面應用程式340和終端服務310,並且在步驟S630,透過檔案控制器250和控制代理330之間的通信,將桌面應用程式互動過程中所有修改或更新後的文件複製到Web伺服器210上的原有位置處,覆蓋原始文件。然後,在步驟S640,判斷用戶是否要保存當前主機伺服器的影像以供將來使用。例如,它可以透過如下方式實現:Web應用程式可以把「備份應用程式」作為一個選項,在用戶選中該選項後,Web應用程式向桌面應用程式服務發出的桌面應用程式退出請求中會攜帶一個參數,要求備份當前應用程式,例如,可以參考以上給出的<exitreq>訊息中的<backup>欄位。由請求處理器對這個參數進行判斷。如果在步驟S640中確定用戶想要保存當前主機伺服器的影像,則處理600進行到步驟S650中,透過部署控制器280將整個主機伺服器影像儲存到影像和軟體儲存庫500中,然後處理進行到步驟S660。否則,桌面應用程式退出處理600直接跳轉到步驟S660中,透過部署控制器280清理該主機伺服器,並且透過資源管理器270把它釋放到資源池400中,然後結束第6圖所示的桌面應用程式退出處理600。
下面結合第7圖的流程圖對根據本發明實施例的第5圖中所示的步驟S520的處理(即,資源分配和提供處理700)進行進一步詳細說明。
如第7圖所示,在步驟S710中,判斷用戶是否希望恢復伺服器影像,以及對於桌面應用程式初始化請求中指定的影像ID,判斷在影像和軟體儲存庫中是否存在已有的伺服器影像。其中,影像ID可以參考例如以上給出的示例性<initializereq>訊息中的<restore>欄位。例如,在用戶請求啟動桌面應用程式之前,用戶可以透過Web應用程式查詢影像和軟體儲存庫中已經儲存的伺服器影像及影像ID,並且在用戶請求啟動桌面應用程式時可以輸入影像ID。如果步驟S710的判斷結果是否定的,則處理700進行到步驟S720,判斷是否有空閒的、具有匹配的OS和桌面應用程式的主機伺服器。如果步驟S720的判斷結果是肯定的,則處理700直接跳轉到步驟S780。如果步驟S720的判斷結果是否定的,則在步驟S730判斷是否有空閒的能夠安裝所請求的桌面應用程式的主機伺服器。如果在步驟S730中確定不存在這樣的空閒主機伺服器,則在步驟S740中,回傳錯誤至用戶端,並由此退出桌面應用程式互動過程。否則,如果在步驟S730中確定存在該空閒的主機伺服器,則在步驟S750,根據需要在主機伺服器中安裝作業系統OS(當然,如果在該主機伺服器上已經安裝了OS,則可以跳過該步驟),然後在步驟S760中在主機伺服器上安裝所需的桌面應用程式。隨後,處理進行到步驟S770,在主機伺服器上安裝終端代理和控制代理(其中,該終端代理和控制代理可以被儲存在例如影像和軟體儲存庫500中)(當然,如果在該主機伺服器上已經安裝了終端代理和控制代理的話,則可以跳過該步驟)。此後,在步驟S780,將主機伺服器的狀態設置為「使用中」,然後,在步驟S790,將該主機伺服器的IP位址回傳給請求處理器240,從而完成了如第7圖所示的資源分配和提供處理700,並繼續第5圖中所示的步驟S530。
第8圖是應用程式根據本發明實施例的方法和系統的一個示例,其中按照順序示出了從用戶在Web瀏覽器中選擇某一桌面應用程式時開始直到用戶在用戶端存取遠端桌面應用程式時的多個用戶端電腦螢幕截圖。
從以上對根據本發明實施例的電腦系統和方法的描述中不難看出,根據本發明,使得終端用戶可以在用戶端透過Web瀏覽器調用遠端桌面應用程式,就好像這個桌面應用程式是Web應用程式的一部分那樣。由於可以使Web伺服器和主機伺服器上的文件保持同步,並且將所有文件及資料儲存在Web伺服器上,因此,可以在多個用戶之間共用文件和資料,並且便於在Web伺服器上管理和備份資料。此外,根據本發明,由於可以將傳統的桌面應用程式和Web應用程式聚合或整合起來,因此,可以為終端用戶的Web應用程式提供更為豐富的桌面應用程式,從而使用戶的Web體驗更為豐富多彩。
當然,還可能存在除以上所描述的這些優點之外的其他優點,在此就不一一列舉了。
雖然以上結合第5至7圖所示的流程圖,對根據本發明實施例的如第2圖所示的系統及其組件的功能、以及相應的處理方法流程進行了說明,但是,應當明白,上述的系統方塊圖和處理流程圖僅僅是示例性的,本領域技術人員完全可以在沒有背離本發明的精神和實質的情況下,根據設計需要和實際需求對其進行修改。例如,第2圖中雖然示出了一個影像和軟體儲存庫來儲存伺服器影像以及桌面應用程式安裝軟體等,但是它們可以也分別儲存在不同的儲存庫中。在第6圖所示的步驟S630中,於另一替代方案中,可以將桌面應用程式互動期間修改或者更新後的文件複製到Web伺服器210上的某一個臨時位置而不是原有位置處,如此可防止因突發狀況導致主機伺服器系統崩潰而使得文件丟失。此外,結合第6和7圖所示的流程圖描述的處理,都是基於用戶設定了保存伺服器影像這一情況而給出的,但是,本發明的原理也可以應用程式於不保存伺服器影像的情況,此時第2圖所示的儲存庫500就沒有必要儲存伺服器影像了,而且所示的處理流程圖中的某些判斷步驟也就可以省略了。而且,在第7圖所示的步驟S715中,雖然沒有明確說明,但是本領域技術人員應當明白,所分配的主機伺服器可以是一個實際的獨立實體伺服器,也可以是一個由多個用戶共用的虛擬伺服器。當然,還可能存在其他的替換方式,在此就不一一列舉了。
另外,雖然附圖中沒有提供根據本發明實施例的方法的完整流程圖,但是顯然本領域技術人員完全可以在毫不費力的情況下根據說明書的文字描述基於第5至7圖的流程圖繪製出相應的流程圖。
此外,顯然地,根據本發明的上述方法的各個操作過程也可以儲存在各種機器可讀的儲存媒體中的電腦可執行程式的方式實現。
而且,本發明的目的也可透過下述方式實現:將儲存有上述可執行程式碼的儲存媒體直接或者間接地提供給系統或設備,並且接著由該系統或設備中的電腦或者中央處理單元(CPU)讀出上述程式碼並執行之。
此時,只要該系統或者設備具有執行程式的功能,則本發明的實施方式不局限於程式,並且該程式也可以是任意的形式,例如,目的程式、解釋器執行的程式或者提供給作業系統的腳本程式等。
上述這些機器可讀儲存媒體包括但不限於:各種記憶體和儲存單元,半導體設備,磁片單元例如光、磁和磁光碟,以及其他適於儲存資訊的媒體等。
另外,客戶電腦透過連接到網際網路上的相應網站,並且將依據本發明的電腦程式碼下載和安裝到電腦中然後執行該程式,也可以實現本發明。
最後,還需要說明的是,在本文中,術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句「一」限定的要素,並不排除在包括該要素的過程、方法、物品或者設備中還存在另外的相同要素。
以上雖然結合附圖詳細描述了本發明的實施例,但是應當明白,上面所描述的實施方式只是用於說明本發明,而並不構成對本發明的限制。對於本領域的技術人員來說,可以對上述實施方式做出各種修改和改變而不背離本發明的實質和範圍。因此,本發明的範圍僅由所附申請專利範圍及其等效含義來限定。
100...瀏覽器
110...終端代理
200...Web伺服器
210...Web應用程式
220...Web檔案
230...桌面應用程式服務
240...請求處理器
250...檔案控制器
260...會話管理器
270...資源管理器
280...部署控制器
300...主機伺服器
310...終端服務
320...複製的檔案
330...控制代理
340...桌面應用程式
400...資源池
500...影像及軟體儲存庫
本發明可以透過參考下文中結合附圖所給出的描述得到更好的理解,其中在所有附圖中使用了相同或相似的元件符號來表示相同或者相似的元件。該附圖連同下面的詳細說明一起構成本說明書的一部分,而且用來進一步舉例說明本發明的優選實施例和解釋本發明的原理和優點。在附圖中:
第1圖示出了一個可以在其中應用程式根據本發明的優選實施例的電腦系統的系統方塊圖;
第2圖進一步詳細示出了如第1圖所示的電腦系統中所包含的各個組件;
第3圖示出了其中整合了桌面應用程式的用戶介面的一個示例性Web應用程式頁面佈局;
第4圖較為簡單地示出了如第2圖所示的電腦系統在桌面應用程式初始化過程中的用戶互動和會話複製處理;
第5圖示出了根據本發明實施例在桌面應用程式初始化期間所執行的處理500的流程圖;
第6圖示出了根據本發明實施例在桌面應用程式退出期間所執行的處理600的流程圖;
第7圖的流程圖比較詳細地示出了根據本發明實施例在第5圖所示的處理500中的資源分配和提供步驟S520的具體處理過程700;以及
第8圖示出了應用程式使用根據本發明的方法和系統時的示例性的用戶端電腦螢幕截圖。
100...瀏覽器
110...終端代理
200 Web...伺服器
210 Web...應用程式
220 Web...檔案
230...桌面應用程式服務
240...請求處理器
250...檔案控制器
260...會話管理器
270...資源管理器
280...部署控制器
300...主機伺服器
310...終端服務
320...複製的檔案
330...控制代理
340...桌面應用程式
400...資源池
500...影像及軟體儲存庫

Claims (18)

  1. 一種用於實現聚合一桌面應用程式與一Web應用程式的方法,該Web應用程式係包括在一Web伺服器中,該方法包括以下步驟:回應一用戶端用戶在該Web應用程式中對使用一目標桌面應用程式的一請求,而在該Web伺服器上啟動一桌面應用程式初始化程序,並為該用戶確定一適當的相應主機伺服器;在該相應主機伺服器上備置且提供桌面應用程式環境,並啟動該目標桌面應用程式;傳送該相應主機伺服器之位址至該用戶端,以便可在該用戶端與該相應主機伺服器之間進行桌面應用程式互動;以及回應該桌面應用程式互動之結束,而在該相應主機伺服器上停止並退出該目標桌面應用程式,其中,在該用戶端首次請求使用該桌面應用程式的情況下,在該傳送步驟中將同時傳送一瀏覽器外掛程式至該用戶端,以截取該用戶端的用戶輸入並且在該用戶端之一Web瀏覽器中顯示該相應主機伺服器之用戶介面。
  2. 如申請專利範圍第1項所述之方法,其中在該桌面應用程式互動期間,該相應主機伺服器及該Web伺服器上的所有檔案係保持同步。
  3. 如申請專利範圍第1項所述之方法,進一步包括以下步驟:在該目標桌面應用程式退出後,儲存該相應主機伺服器之伺服器影像,並釋放該相應主機伺服器。
  4. 如申請專利範圍第1至3項中任何一項所述之方法,其中為該用戶確定一適當的相應主機伺服器之步驟,包括以下步驟:如果當前在一資源池中存在一用於當前會話的主機伺服器,則將其確定為該相應主機伺服器;否則,根據該目標桌面應用程式及其所需的作業系統資訊,在該資源池中查找一匹配的主機伺服器,作為該相應主機伺服器。
  5. 如申請專利範圍第4項所述之方法,其中在該相應主機伺服器上備置且提供桌面應用程式環境之步驟,包括以下步驟:如果該相應主機伺服器上尚未安裝該目標桌面應用程式,則根據需要,在該相應主機伺服器上安裝該目標桌面應用程式所需的一作業系統;以及在該相應主機伺服器上安裝該目標桌面應用程式,其中,包括有該目標桌面應用程式的複數個桌面應用程式及其所需作業系統的安裝軟體都儲存在一可由該 Web伺服器存取的儲存庫中。
  6. 一種用於實現聚合一桌面應用程式與一Web應用程式的Web伺服器,該Web伺服器可與一用戶端以及一個或多個主機伺服器進行通信,且該Web伺服器包括一Web應用程式及一桌面應用程式服務,其中,該Web應用程式回應該一用戶端用戶在該Web應用程式中對使用一目標桌面應用程式的一請求,而產生一桌面應用程式初始化請求,並且回應桌面應用程式互動的結束,而產生一桌面應用程式退出請求;該桌面應用程式服務回應該桌面應用程式初始化請求,而在該Web伺服器上啟動一桌面應用程式初始化程序,為該用戶確定一適當的相應主機伺服器,在其上備置並提供桌面應用程式環境,以便該相應主機伺服器可啟動該目標桌面應用程式,以及傳送該相應主機伺服器之位址至該用戶端,藉此在該用戶端與該相應主機伺服器之間進行該桌面應用程式互動,以及該桌面應用程式服務回應該桌面應用程式退出請求,而在該相應主機伺服器上停止並退出該目標桌面應用程式,其中,在該用戶首次請求使用該桌面應用程式的情況下,該Web應用程式在傳送該相應主機伺服器之位址的同時,還同步傳送一瀏覽器外掛程式至該用戶端,以截取該用戶端的用戶輸入並且在該用戶端一Web瀏覽器中 顯示該相應主機伺服器的用戶介面。
  7. 如申請專利範圍第6項所述之Web伺服器,其中該桌面應用程式服務進一步包括:一請求處理器,用於接收一來自該Web應用程式的請求並對該請求做出回應;一會話管理器,用於維護及保存該用戶之會話資訊;一資源管理器,用於對該一個或多個主機伺服器進行資源分配及釋放管理;以及一部署控制器,用於在該一個或多個主機伺服器上自動安裝一遠端系統,以備置及提供該主機伺服器環境,其中,該請求處理器回應該桌面應用程式初始化請求,而檢查該會話管理器以確定是否存在一用於當前會話的正在運行的主機伺服器,如果不存在,則其請求該資源管理器根據該目標桌面應用程式及其所需的作業系統資訊,從該一個或多個主機伺服器中確定一匹配的主機伺服器,作為該相應主機伺服器,該請求處理器回應該桌面應用程式退出請求,而要求該部署控制器清除該相應主機伺服器,並且要求該資源管理器釋放該相應主機伺服器。
  8. 如申請專利範圍第7項所述之Web伺服器,其中該桌面應用程式服務進一步包括一檔案控制器,該檔案控制器可與該相應主機伺服器進行通信,以使該相應主 機伺服器與該Web伺服器上的檔案在該桌面應用程式互動期間保持同步。
  9. 如申請專利範圍第6至8項中任何一項所述之Web伺服器,其中,在退出該目標桌面應用程式後,該部署控制器將該相應主機伺服器之影像儲存到一儲存庫中。
  10. 如申請專利範圍第6至8項中任何一項所述之Web伺服器,其中,如果該相應主機伺服器上尚未安裝該目標桌面應用程式,則該部署控制器根據需要在該相應主機伺服器上安裝該目標桌面應用程式所需的一作業系統,並且安裝該目標桌面應用程式,其中包括有該目標桌面應用程式的複數個桌面應用程式及其作業系統的安裝軟體都儲存在一儲存庫中。
  11. 一種用於聚合一桌面應用程式與一Web應用程式的電腦系統,包括:一用戶端,該用戶端上安裝有一Web瀏覽器;一個或多個主機伺服器,該等主機伺服器之每一者包括一終端服務,該終端服務用於抓取該主機伺服器的用戶介面,及包括一控制代理,該控制代理用於在該主機伺服器上啟動一桌面應用程式;一Web伺服器,該Web伺服器可與該用戶端以及一個或多個主機伺服器進行通信,並且該Web伺服器包括一 Web應用程式及一桌面應用程式服務,其中,該Web應用程式回應一用戶端用戶經由該Web瀏覽器對使用一目標桌面應用程式的一請求,而產生一桌面應用程式初始化請求,並且回應該用戶端用戶結束該桌面應用程式的一請求,而產生一桌面應用程式退出請求,該桌面應用程式服務回應該桌面應用程式初始化請求,而啟動一桌面應用程式初始化程序,為該用戶確定一適當的相應主機伺服器,以及在該相應主機伺服器上備置並提供桌面應用程式環境,以便該控制代理可在該相應主機伺服器上啟動該目標桌面應用程式,並且該Web應用程式可傳送該相應主機伺服器之位址至該用戶端,在該用戶端上啟動瀏覽器外掛程式,以截取該用戶端的用戶輸入並將該用戶輸入提供給該相應主機伺服器上的終端服務,並且在該Web瀏覽器中顯示該相應主機伺服器之用戶介面,透過該瀏覽器外掛程式與該相應主機伺服器上的終端服務,在該用戶端與該相應主機伺服器之間進行桌面應用程式互動,以及該桌面應用程式服務回應該桌面應用程式退出請求,而在該相應主機伺服器上停止並退出該目標桌面應用程式。
  12. 如申請專利範圍第11項所述之電腦系統,其中,在該桌面應用程式互動結束之後,該Web伺服器清除並釋放該相應主機伺服器。
  13. 如申請專利範圍第11項所述之電腦系統,進一步包括:一影像儲存庫,用於儲存主機伺服器的伺服器影像;以及一軟體儲存庫,用於儲存包括有該目標桌面應用程式的複數個桌面應用程式及其所需作業系統的安裝軟體。
  14. 如申請專利範圍第13項所述之電腦系統,其中該影像儲存庫及該軟體儲存庫是同一儲存庫。
  15. 如申請專利範圍第11至14項中任何一項所述之電腦系統,其中該一個或多個主機伺服器是不同類型的獨立實體伺服器,或者是共用同一實體伺服器資源的虛擬伺服器。
  16. 如申請專利範圍第11至14項中任何一項所述之電腦系統,其中該桌面應用程式服務進一步包括:一請求處理器,用於接收一來自該Web應用程式的請求並對該請求做出回應;一會話管理器,用於維護及保存該用戶之會話資訊; 一資源管理器,用於對該一個或多個主機伺服器進行資源分配及釋放管理;以及一部署控制器,用於在主機伺服器上自動地安裝一遠端系統,以備置並提供該主機伺服器環境,其中,該請求處理器回應桌面該應用程式初始化請求,而檢查該會話管理器以確定是否存在一用於當前會話的正在運行的主機伺服器;如果不存在,則其請求該資源管理器根據該目標桌面應用程式及其所需的作業系統資訊從該一個或多個主機伺服器中確定一匹配的主機伺服器,作為該相應主機伺服器,該請求處理器回應該桌面應用程式退出請求,而要求該部署控制器清除該相應主機伺服器,並且要求該資源管理器釋放該相應主機伺服器。
  17. 如申請專利範圍第16項所述之電腦系統,其中該控制代理亦用於追蹤該等主機伺服器上的檔案修改或改變,且其中該桌面應用程式服務亦包括一檔案控制器,該檔案控制器用於與該控制代理進行通信,以使該主機伺服器與該Web伺服器上的檔案在該桌面應用程式互動期間保持同步。
  18. 如申請專利範圍第11至14項中任何一項所述之電腦系統,其中該瀏覽器外掛程式、該終端服務及/或該控制代理使用以下技術中任一個技術來實現:VNC技 術、Windows遠端桌面技術、XWindows技術或者Java技術。
TW097130424A 2008-08-08 2008-08-08 用於聚合桌面應用程式與網路應用程式的方法、伺服器及系統 TWI505188B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW097130424A TWI505188B (zh) 2008-08-08 2008-08-08 用於聚合桌面應用程式與網路應用程式的方法、伺服器及系統

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW097130424A TWI505188B (zh) 2008-08-08 2008-08-08 用於聚合桌面應用程式與網路應用程式的方法、伺服器及系統

Publications (2)

Publication Number Publication Date
TW201007567A TW201007567A (en) 2010-02-16
TWI505188B true TWI505188B (zh) 2015-10-21

Family

ID=44827126

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097130424A TWI505188B (zh) 2008-08-08 2008-08-08 用於聚合桌面應用程式與網路應用程式的方法、伺服器及系統

Country Status (1)

Country Link
TW (1) TWI505188B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030074393A1 (en) * 2001-10-02 2003-04-17 Franklyn Peart Methods for distributed program execution with file-type association in a client-server network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030074393A1 (en) * 2001-10-02 2003-04-17 Franklyn Peart Methods for distributed program execution with file-type association in a client-server network

Also Published As

Publication number Publication date
TW201007567A (en) 2010-02-16

Similar Documents

Publication Publication Date Title
US20220094737A1 (en) Method, server and system for converging desktop application and web application
KR102102168B1 (ko) 가상 데스크탑 서비스 장치 및 방법
US10042628B2 (en) Automated upgrade system for a service-based distributed computer system
US10976981B2 (en) Remote desktop exporting
JP5993947B2 (ja) リモートデスクトップからのサービス結果のためにネイティブビューアーを使用すること
US9489227B2 (en) Apparatus and method for virtual desktop service
JP5646650B2 (ja) ウェブアプリケーションのリアルタイム検証
CN111061540B (zh) 一种基于容器技术的应用虚拟化方法及系统
US7117243B2 (en) Methods for distributed program execution with file-type association in a client-server network
JP5198584B2 (ja) 拡張されたサーバーベースのクライアント用デスクトップ仮想マシン構成
US6952714B2 (en) Method for distributed program execution with server-based file type association
KR100998515B1 (ko) 클라이언트-서버 네트워크에서 파일-유형 연관성을 이용한분산 프로그램 실행 방법
US20030069924A1 (en) Method for distributed program execution with web-based file-type association
KR20160148864A (ko) 가상 플랫폼 서비스를 이용한 다중 플랫폼 기반의 응용 프로그램 구동 지원 시스템 및 방법
Xu et al. Enhanced service framework based on microservice management and client support provider for efficient user experiment in edge computing environment
TWI505188B (zh) 用於聚合桌面應用程式與網路應用程式的方法、伺服器及系統
CN114389936A (zh) 一种跨云多集群部署运维方法、系统、处理器和存储介质
WO2010032558A1 (ja) プログラム入手・実行クライアント、プログラム入手・実行方法および記録媒体
US20230148314A1 (en) Fast Launch Based on Hibernated Pre-launch Sessions
Fenton et al. Virtual Desktop on ESXi