TW201007567A - Method, server and system for converging desktop application and Web application - Google Patents

Method, server and system for converging desktop application and Web application Download PDF

Info

Publication number
TW201007567A
TW201007567A TW97130424A TW97130424A TW201007567A TW 201007567 A TW201007567 A TW 201007567A TW 97130424 A TW97130424 A TW 97130424A TW 97130424 A TW97130424 A TW 97130424A TW 201007567 A TW201007567 A TW 201007567A
Authority
TW
Taiwan
Prior art keywords
desktop application
server
host server
application
web
Prior art date
Application number
TW97130424A
Other languages
Chinese (zh)
Other versions
TWI505188B (en
Inventor
Xing Fang
qing-bo 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/en
Publication of TW201007567A publication Critical patent/TW201007567A/en
Application granted granted Critical
Publication of TWI505188B publication Critical patent/TWI505188B/en

Links

Abstract

The present invention provides a method, Web server and computer system for converging a desktop application and a Web application. The method may comprise: in response to a request from a client user for using a target desktop application, starting a desktop application initialization process on the Web server and determining an appropriate corresponding hosting server for the user; preparing and provisioning desktop application environment on the corresponding hosting server and starting the target desktop application; transmitting the corresponding hosting server' s address to the client so as to make desktop application interaction between the client and the corresponding hosting server; and in response to the completion of the desktop application interaction, stopping and exiting the target desktop application on the corresponding hosting server. In accordance with the present invention, the client user is provided with a unified Web console for accessing desktop applications and Web applications and Web files can be shared between the desktop applications and the Web applications.

Description

201007567 六、發明說明: 【發明所屬之技術領域】 本發明總體上涉及電腦技術領域,更具體來說,涉及 用於實現桌面應用程式和Web應用程式聚合的方法、飼 服器和系統。 【先前技術】 ❹ 在當 今的資訊技術(information technology,ΐτ)領域 中,Web技術由於其具有簡單、輕型並且基於開放性標 準等特點而得到了廣泛的使用。越來越多的軟體廠商正 在致力於開發他們的基於Web技術的應用程式。與傳統 的桌面應用程式相比,Web應用程式具有大量優點,例 如,Web應用程式不需要進行軟體安裝和維護,這使得 Web應用程式易於為大眾所使用。 參但是’Web應用轾式也具有其局限性。它的一個主要 問題在於,基於超文字標記語言(HTML )的用戶介面不 能支援進階的用戶互動。由於這個問題的存在,使得很 多情況下仍然需要使用桌面應用程式。在某些情況下, 終端用戶需要在Web應用程式和桌面應用程式之間進行 切換以便完成他的工作。例如,當用戶正在編輯他的部 落格(BLOG)時,如果用戶希望在部落格中 /·、 -=»«、、、 片或圖片,那麽用戶首先要查找所需的某些照片或圖 片,然後可能還需要對其進行編輯。爲此,用戶必須安 201007567 裝照片或圖片編輯軟體(即,—桌面應用程式)。此後, 用戶還需要把編輯後的照片或圖片上載到Web應用程式 中。但是,由於存在某些原因,可能會導致用戶的體驗 不是那麼良好,例如,該些原因可能包括:(1)用戶體 驗的完整性被破壞了;(2)用戶可能必須在不同的控制 臺之間進行切換;(3) Web應用程式的資料和桌面應用 程式的資料不能共用;(4)用戶必須安裝所需的桌面應 用程式,並且還可能需要對其進行定期維護。 爲了增強Web應用程式的能力,目前已經廣泛地使用 了諸如 Java script、AJAX、ActiveX 和 Applet 等之類的 技術。對於Java script/AJAX方法而言,其想法是借助 於Java script來編寫Web應用程式,其中Java scHpt是 一種用於提供互動式編程特徵的腳本語言。但是,使用 Java script也存在很大限制。例如,第一個限制方面在 於,JaVascript由翻譯器執行,並且所具有的性能較差; 第二個限制方面在於,不能使用Java script來實現某些 編程邏輯。而對於ActiveX/Applet方法而言,由於其相 容性差而無法非常廣泛地應用。另一方面,對於不同的 應用程式,用戶需要下載不同的外掛程式(plug_in),而 且其中某些外掛程式文件的大小可能比較大,因而下載 它需要很長時間。 因此’鑒於上述這些情況,迫切地需要一種能夠克服 現有技術缺陷,把Web應用程式和桌面應用程式聚合起 來以便可以使用桌面應用程式來處理Web應用程式的文 201007567 件的技術。 【發明内容】 在下文中提供了關於本發明的簡要概述,以便提供關 於本發明的某些方面的基本理解。但是,應當理解,這 個概述並非為本發明的窮舉性概述。而且,它並不是意 圖確定本發明的關鍵或重要部分,也不是意圖限定本發 明的範圍。其目的僅僅是以簡化的形式提供某些概念, 以此作爲稍後討論的更詳細描述的序言。 爲了解決現有技術中存在的上述問題,本發明的一個 目的是提供一種用於實現桌面應用程式和Web應用程式 聚合的方法。 本發明的另一個目的是提供一種便於實現桌面應用程 式和Web應用程式聚合的Web伺服器以及相應的電腦系 統。 本發明的再一個目的是提供一種其上儲存或者編碼了 用於實現上述方法的電腦程式碼的電腦可讀儲存媒體以 及相應的電腦程式産品。 爲了實現上述目的,根據本發明的一態樣,提供了一 種用於實現桌面應用程式和Web應用程式的聚合的方 法,該Web應用程式包括在一個web伺服器中,該方法 包括以下步驟:回應於用戶端用戶對使用某一目標桌面 應用程式的請求’而在Web伺服器上啓動桌面應用程式 201007567 初始化程序,並爲用戶確定一適當的相應主機伺服器; 在该相應主機饲服器上備置且提供桌面應用程式環境, 並啓動該目標桌面應用程式;向用戶端傳送相應主機伺 服器位址’以便可在用戶端與相應主機伺服器之間進行 - 桌面應用程式互動;以及回應桌面應用程式互動的結 束’而在相應主機伺服器上:停止並退出該目標桌面應用 程式。 根據本發明的另一態樣,還提供了一種用於實現桌面 ❿ 應用程式和Web應用程式的聚合的Web伺服器,該Web 伺服器可與用戶端以及一個或多個主機伺服器進行通 信’並且包括Web應用程式和桌面應用程式服務,其中, Web應用程式回應用戶端用戶對使用某一目標桌面應用 程式的請求,而產生桌面應用程式初始化請求,並且回 應桌面應用程式互動的結束,而產生桌面應用程式退出 請求;桌面應用程式服務回應桌面應用程式初始化請 ❹ 求’而在Web伺服器上啓動桌面應用程式初始化程序, 爲用戶確定一個適當的相應主機伺服器,在其上備置和 提供桌面應用程式環境’以便相應主機伺服器可啓動目 標桌面應用程式’並且向用戶端傳送該相應主機伺服器 的位址,藉此可在用戶端和相應主機伺服器之間進行桌 面應用程式互動,以及桌面應用程式服務回應桌面應用 程式退出請求’在相應主機伺服器上停止並退出該目標 桌面應用程式。 根據本發明的另一態樣,還提供了一種用於桌面應用 201007567 程式和Web應用程式的聚合的電腦系統,包括:其上安 裝有Web瀏覽器的用戶端;一或多主機伺服器,每一包 括用於抓取主機伺服器的用戶介面的終端服務和用於在 主機伺服器上啓動桌面應用程式的控制代理;Web飼服 - 器’其可與該用戶端以及一或多主機飼服器進行通信, ’ 並且包括Web應用程式和桌面應用程式服務,其中,web 應用程式回應用戶端用戶經由Web瀏覽器對使用某一目 參 標桌面應用程式的請求,而產生桌面應用程式初始化請 求’並且回應用戶端用戶結束桌面應用程式的請求,而 產生桌面應用程式退出請求,桌面應用程式服務回應桌 面應用程式初始化請求,而啓動桌面應用程式初始化程 序’爲用戶確定一個適當的相應主機伺服器,並且在其 上備置及提供桌面應用程式環境,以便控制代理在該相 應主機伺服器上啓動該目標桌面應用程式,並且由Web 應用程式將相應主機伺服器的位址發送到用戶端,在用 • 户端上啓動瀏覽器外掛程式,以截取用戶端的用戶輸入 並將其提供給相應主機伺服器上的終端服務,並且在201007567 VI. Description of the Invention: Technical Field of the Invention The present invention generally relates to the field of computer technology, and more particularly to a method, a feeder and a system for implementing aggregation of a desktop application and a web application. [Prior Art] In the field of information technology (ΐτ), Web technology is widely used because of its simplicity, lightness, and open standards. More and more software vendors are working on developing their Web-based applications. Web applications have a number of advantages over traditional desktop applications. For example, web applications do not require software installation and maintenance, making web applications easy for the public to use. Participating in the 'Web application style' also has its limitations. One of its main problems is that the user interface based on Hypertext Markup Language (HTML) does not support advanced user interaction. Due to this problem, desktop applications are still needed in many cases. In some cases, the end user needs to switch between the web application and the desktop application to complete his work. For example, when a user is editing his blog (BLOG), if the user wants to include /·, -=»«, , , , or a picture in the blog, then the user first needs to find some photos or pictures that are needed, Then you may need to edit it as well. To do this, the user must have a photo or photo editing software (ie, a desktop application). After that, the user also needs to upload the edited photo or image to the web application. However, for some reason, the user experience may not be so good. For example, the reasons may include: (1) the integrity of the user experience is compromised; (2) the user may have to be in a different console. Switching between; (3) Web application data and desktop application data cannot be shared; (4) Users must install the required desktop application and may need to maintain it regularly. In order to enhance the capabilities of web applications, technologies such as Java script, AJAX, ActiveX, and Applet have been widely used. For Java script/AJAX methods, the idea is to write a web application with a Java script, where Java scHpt is a scripting language for providing interactive programming features. However, there are also significant limitations to using Java scripts. For example, the first limitation is that JaVascript is executed by the translator and has poor performance; the second limitation is that Java scripts cannot be used to implement some programming logic. For the ActiveX/Applet method, it is not very widely used due to its poor compatibility. On the other hand, for different applications, users need to download different plugins (plug_in), and some of the plugin files may be large in size, so it takes a long time to download it. Therefore, in view of the above circumstances, there is an urgent need for a technology that can overcome the drawbacks of the prior art and aggregate web applications and desktop applications so that desktop applications can be used to process web applications. SUMMARY OF THE INVENTION A brief summary of the invention is provided below to provide a basic understanding of certain aspects of the invention. However, it should be understood that this summary is not an exhaustive overview of the invention. Furthermore, it is not intended to limit the scope of the invention. Its purpose is to present some concepts in a simplified form as a In order to solve the above problems in the prior art, it is an object of the present invention to provide a method for implementing aggregation of a desktop application and a web application. Another object of the present invention is to provide a web server and corresponding computer system that facilitates the aggregation of desktop applications and web applications. It is still another object of the present invention to provide a computer readable storage medium on which computer code for implementing the above method is stored or encoded, and a corresponding computer program product. In order to achieve the above object, according to an aspect of the present invention, a method for implementing aggregation of a desktop application and a web application is provided. The web application is included in a web server, and the method includes the following steps: responding Launching the desktop application 201007567 initialization program on the web server for the client user's request to use a target desktop application', and determining an appropriate corresponding host server for the user; preparing the corresponding host feeder And providing a desktop application environment, and launching the target desktop application; transmitting the corresponding host server address to the client terminal for interaction between the client and the corresponding host server - desktop application interaction; and responding to the desktop application The end of the interaction' is on the corresponding host server: Stop and exit the target desktop application. According to another aspect of the present invention, there is also provided a web server for implementing aggregation of a desktop application and a web application, the web server being capable of communicating with a client and one or more host servers. And including a web application and a desktop application service, wherein the web application responds to the request of the user end user to use a target desktop application, generates a desktop application initialization request, and responds to the end of the desktop application interaction. The desktop application exits the request; the desktop application service responds to the desktop application initialization request and launches the desktop application initialization program on the web server to determine an appropriate host server for the user to provision and serve the desktop on. The application environment 'so that the corresponding host server can launch the target desktop application' and transmit the address of the corresponding host server to the client, thereby enabling desktop application interaction between the client and the corresponding host server, and Desktop application service responds to the desktop Exit request with the program 'stop and exit the target desktop application on an appropriate host server. According to another aspect of the present invention, a computer system for aggregation of a desktop application 201007567 program and a web application is provided, including: a client terminal on which a web browser is installed; one or more host servers, each a terminal service for capturing a user interface of the host server and a control agent for launching a desktop application on the host server; the web feeding device can be fed with the user terminal and one or more hosts Communicate, 'and includes web applications and desktop application services, where the web application responds to a request by the user to use a target desktop application via a web browser to generate a desktop application initialization request' and Responding to the request of the user end user to end the desktop application, generating a desktop application exit request, the desktop application service responding to the desktop application initialization request, and launching the desktop application initialization program to determine an appropriate corresponding host server for the user, and Provision and provide a desktop application environment on it to The control agent starts the target desktop application on the corresponding host server, and the web application sends the address of the corresponding host server to the client, and starts the browser plug-in on the client to intercept the client. User input and provide it to the terminal service on the corresponding host server, and

Web割覽器中顯示該相應主機伺服器端的用戶介面’透 過該潘】覽器外掛程式與相應主機伺服器上的終端服務’ 在用戶端與相應主機伺服器之間進行桌面應用程式互 動以及桌面應用程式服務回應桌面應用程式退出請 求’在相應主機伺服器上停止並退出該目標桌面應用程 式。 依據本發明的另一態樣,還提供了相應的電腦可讀儲 201007567 存媒體和電腦程式産品。 在根據本發明的技術方案中,透過將遠端桌面應用程 式的用戶介面(UI)嵌入到Web應用程式(例如Web瀏 覽器)中’使得終端用戶可以使用遠端桌面應用程式來 處理Web應用程式的文件。這意味著,用戶可以使用桌 面應用程式在Web頁面内編輯Web文件。當用戶端用戶 正在使用某一個Web應用程式時,他能夠向Web伺服器 e ❹ 發送初始化某一桌面應用程式的請求。當Web伺服器獲 侍這個請求時,它將會首先查找一個已經安裝了所請求 的桌面應用程式的已存在伺服器。這種已經安裝了或者 能夠安裝所請求桌面應用程式以便提供此桌面應用程式 的伺服器在下文中被稱爲主機伺服器(hosting server )。 如果不能找到這種伺服器,則Web伺服器會爲用戶分配 個新的主機伺服器,並且提供其所請求的作業系統和 所請求的桌面應用程式。在主機伺服器準備就緒之後,The user interface of the corresponding host server is displayed in the web browser, and the desktop application interaction and the desktop between the client and the corresponding host server are performed through the terminal plug-in program and the terminal service on the corresponding host server. The application service responds to the desktop application exit request 'stops and exits the target desktop application on the corresponding host server. According to another aspect of the present invention, a corresponding computer readable storage 201007567 storage medium and computer program product are also provided. In the technical solution according to the present invention, by embedding the user interface (UI) of the remote desktop application into a web application (such as a web browser), the end user can use the remote desktop application to process the web application. document. This means that users can use the desktop application to edit web files in web pages. When the client user is using a web application, he can send a request to the web server e to initialize a desktop application. When the web server receives this request, it will first look for an existing server that has the requested desktop application installed. The server that has installed or is able to install the requested desktop application to provide the desktop application is hereinafter referred to as a hosting server. If such a server cannot be found, the web server will assign a new host server to the user and provide the requested operating system and the requested desktop application. After the host server is ready,

Web伺服器把Web文件複製到主機伺服器,並且利用這 些Web文件啟始該桌面應用程式。當啟始該桌面應用程 式時,Web伺服器會回傳主機飼服器的位址(例如卩位 和琿號)至用戶端。與此同時,在用戶端的同-個Web 潘J覽器内下載或者裝人終端外掛程式(該終端外掛程式 可從Web伺服器獲得 > 這個外掛程式立即透過使用上 述終端位址連接到主播仞 ,^ 』主機伺服盗,並且使遠端桌面應用程 式的用戶介面顯示在用戶端Web劉覽器中。接著用戶可 以透過終端外掛程式與遠端桌面應用程式進行互動 201007567 後’當用戶關閉桌面應用程式時,於桌面應用程式互動 期間進行修改或改變的這些Web文件將被複製到佩飼 服器。這樣,就實現了 Web應用程式和桌面應用程式的 聚合。 . 纟發明具有幾個優點。其中’第-個優點是,它向終 . 端用戶提供了一個統一的存取桌面應用程式和㈣應用 程式的Web控制平臺。可以將桌面應用程式視爲佩應 ❹ 用程式的-部分’而且它是與硬體無關的以及與作業系 統無關的。可以在Web應用程式的控制下具備有單點登 錄(Single Sign on,SS0)特性。而且,可以在桌面應 用程式和Web應用程式之間共帛Web文件,並且由桌面 應用程式所做出的所有改變都可以被快速地反映在獅 應用程式上。 第二個優點是,可以簡化對桌面應用程式的管理工 作。對於終端用戶而言,不需要在用戶端下載安裝、 • 更新和維護桌面應用程式程式。而且,大多數情況下, 一些桌面應靠式可隸少制戶制。制本發明的 技術方案’用戶無需在本地安裝桌面應用程式。因爲桌 面應用程式的二進位碼在主機伺服器上執行,所以更容 易控制軟體認證問題。對於軟體廠商而言不需要使用 Web編程模型重寫相應的桌面應用程式。此外,可以將 傳統的桌面應用程式和Web應用程式整合在一起,並且 還可以減少桌面應用程式的開發周期。對於系統管理員 而言,管料些桌面應用㈣也更爲容易,並且可以集 201007567 中式地加以維護。另一方面,由於可以將所有文件和資 料儲存在Web伺服器上,所以資料損失的風險被減少到 最小,資料備份也更加容易。同時,還可以使用更爲強 大的資源(例如,主機伺服器)以提供用戶更好的性能。 第三個優點是,本發明的技術方案可以透過利用虛擬 化和自動技術來降低成本。諸如VMWare、Xen及ibm LPAR等之類的一些現有技術支援伺服器虛擬化。這些技 術可以將實體伺服器模擬作爲數個邏輯伺服器或者虛擬 伺服器。這些虛擬伺服器可以共用同一實體伺服器的資 源,這樣可以提高資源的利用率和共用。並且,桌面應 用程式可以部署在虛擬伺服器上,這樣可以爲服務供應 商節省主機成本。另一方面,還可以使用自動化技術來 提供作業系統(OS)和桌面應用程式,從而有助於節省 部署時間和減少人爲錯誤乂 透過以下結合附圖對本發明的最佳實施例的詳細說 明,本發明的這些以及其他優點將更加明顯。 【實施方式】 在下文中將、合附圖對本發明的示例性實施例進行描 述爲了凊楚和簡明起見,在說明書中並未描述實際實 施方式的所有特徵。但是,應該暸解,在開發任何這種 實際實施例的過程中必須做出很多特定於實施方式的決 定,以便實現開發人員的特定目標,例如,符合與系統 201007567 及業務相關的那些限制條件等,而這些限制條件可能會 隨著實施方式的不同而有所改變。此外,還應該瞭解, 雖然開發工作有可能是非常複雜和費時的,但對得益於 本公開内容的本領域技術人員來說,這種開發工作僅僅 是例行的任務。 在此,還需要說明的一點是,爲了避免因爲不必要的 細節而模糊了本發明,在附圖中僅僅示出了與根據本發 明的技術方案密切相關的裝置結構和/或處理步驟,而省 略了與本發明關係不大的其他細節。 下面參考附圖對根據本發明的優選實施例進行詳細描 述。 首先,參見第1圖,其示出了一個在其中可以應用程 式根據本發明的優選實施例的電腦系統的系統方塊圖。 如第1圓所示,根據本發明,在用戶端僅僅需要Web瀏 覽器即可;在伺服器端,示出了一個Web饲服器和三個 主機伺服器。雖然圖中僅示出了三個主機伺服器,但是 在此可以包括任意數目的主機伺服器。正如上文中所提 及的那樣,主機伺服器是指用於提供相_桌面應用程式 的伺服器。 在Web飼服器中,部署了 Web應用程式和有關的支援 組件。在主機飼服器巾,已經部署了或者能夠部署用戶 端可能請求的一種或多種桌面應用程式。對於一般的 Web應用程式互動,用戶端劉覽器和部署在㈣飼服器 上的Web應用程式進行通信。但是,當需要進行某一桌 12 201007567 面應用程式互動時,Web伺服器爲用戶分配一個相應的 主機伺服器,然後用戶端和部署在該主機伺服器上的桌 面應用程式進行通信,並且在桌面應用程式互動結束之 後,釋放該主機伺服器。然後,用戶端繼續與Web伺服 器進行互動。取決於用戶端對桌面應用程式的需要,上 述這個過程可能會重復很多次。 下面參見第2圖,其比較詳細地示出了如第j圖所示 參 的電腦系統中所包含的組件。爲了簡單起見,第2圖中 .僅僅示出了一個主機伺服器3〇〇。但是,本領域技術人 員應當明白,該電腦系統實際上還可能包括其他一或多 個未示出的組件,並且往往具有一個以上的主機伺服器。 如第2圖所示,在用戶端一側,在瀏覽器1〇〇中安裝 有一個潘I覽器外掛程式,以下將其稱爲終端代理n〇(有 關該外掛程式的細節將在下文中結合方法的處理流程圖 加以詳細說明)。它具有兩個主要功能:截取用戶輸入並 且將其發送到相應的主機伺服器(在第2圖中爲主機伺 服器300);在瀏覽器100中顯示相應主機伺服器的用戶 介面。可以使用諸如VNC (—種遠端控制軟體,其更多 細節可參見to^H^jealvnc^cW)、視窗遠端桌面 (windows remote desktop )、和用於 Linux/UNIX 的 XWindow管理器等之類的多種現有技術來實現這種瀏覽 器外掛程式》另外,除了上述這些技術之外,還可以使 用Java applet(小應用程式)方法實現終端代理n〇。 例如,在使用Java applet方法的情況下,當初始化 13 201007567 applet時,如第2圖所示’它將連接到在主機伺服器300 上運行的相應終端服務3 1 0。然後,可以建立TCP連接。 這個applet可以抓取用戶的鍵盤和滑鼠事件,並且將它 們發送到相應的主機伺服器3 00。在終端服務3 1 〇接收 到該事件之後’它將在主機伺服器300上産生這樣的事 件以模擬用戶端互動。同時’終端服務310抓取主機伺 服器300的用戶介面(即螢幕),並且將螢幕圖像發送回 用戶端。當終端代理110接收到該螢幕圖像時,它在 applet内繪製該圖像。在實際的應用程式中,爲了安全 考慮,可以對用戶端和伺服器之間傳輸的資料進行加 密。另外,爲了性能考慮’可以在用戶端啓用圖像快取, 同時可以還壓縮所傳輸的資料。 第3圖示出了整合了桌面應用程式的用戶介面的一個 示例性Web應用程式頁面佈局。在用戶端用戶透過其The web server copies the web file to the host server and uses the web files to start the desktop application. When the desktop application is launched, the web server will return the address of the host feeder (such as the location and apostrophe) to the client. At the same time, download or install the terminal plug-in in the same Web browser of the user terminal (the terminal plug-in can be obtained from the web server). The plug-in is immediately connected to the anchor by using the terminal address. , ^ 』 host server piracy, and the user interface of the remote desktop application is displayed in the user-side web browser. Then the user can interact with the remote desktop application through the terminal plug-in 201007567 after the user closes the desktop application In the program, these web files that are modified or changed during the interaction of the desktop application will be copied to the server. This will enable the aggregation of the web application and the desktop application. The invention has several advantages. 'The first advantage is that it provides a unified access to the desktop application and (4) the application's web control platform to the end user. The desktop application can be regarded as the part of the application - and it It is hardware-independent and independent of the operating system. It can be single-login under the control of the web application. Single Sign on, SS0) features. Also, web files can be shared between the desktop application and the web application, and all changes made by the desktop application can be quickly reflected in the lion application. Two advantages are that it simplifies the management of desktop applications. For end users, there is no need to download, install, update, and maintain desktop applications on the client side. Moreover, in most cases, some desktops should rely on The technical solution of the present invention is that the user does not need to install the desktop application locally. Because the binary code of the desktop application is executed on the host server, it is easier to control the software authentication problem. For the software vendor. There is no need to rewrite the corresponding desktop application using the Web programming model. In addition, traditional desktop applications and web applications can be integrated together, and the development cycle of desktop applications can be reduced. For system administrators, It is also easier to manage some desktop applications (4), and can collect 201007567 Chinese On the other hand, because all files and data can be stored on the web server, the risk of data loss is minimized and data backup is easier. At the same time, more powerful resources can be used (for example , the host server) to provide users with better performance. The third advantage is that the technical solution of the present invention can reduce costs by utilizing virtualization and automation technologies. Some existing technologies such as VMWare, Xen and ibm LPAR, etc. Support for server virtualization. These technologies can simulate physical server simulations as several logical servers or virtual servers. These virtual servers can share the resources of the same physical server, which can improve resource utilization and sharing. Desktop applications can be deployed on virtual servers, which can save hosting costs for service providers. On the other hand, automation techniques can also be used to provide operating systems (OS) and desktop applications, thereby helping to save deployment time and reduce human error. A detailed description of the preferred embodiment of the present invention will be made by the following description in conjunction with the accompanying drawings. These and other advantages of the invention will be more apparent. [Embodiment] The following describes the exemplary embodiments of the present invention in the accompanying drawings. However, it should be understood that many implementation-specific decisions must be made in the development of any such practical embodiment in order to achieve a developer's specific goals, such as compliance with system 201007567 and business-related constraints, etc. These restrictions may vary depending on the implementation. In addition, it should also be appreciated that while development work can be very complex and time consuming, such development work is merely a routine task for those skilled in the art having the benefit of this disclosure. It is also to be noted that, in order to avoid obscuring the present invention by unnecessary detail, only the device structure and/or processing steps closely related to the technical solution according to the present invention are shown in the drawings. Other details that are not relevant to the present invention are omitted. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings. First, referring to Fig. 1, there is shown a block diagram of a system in which a computer system in accordance with a preferred embodiment of the present invention can be applied. As shown in the first circle, according to the present invention, only a web browser is required at the client side; on the server side, a web feeder and three host servers are shown. Although only three host servers are shown in the figure, any number of host servers may be included herein. As mentioned above, the host server is the server used to provide the phase_desktop application. In the web feeder, the web application and related support components are deployed. One or more desktop applications that the user may request may have been deployed or can be deployed on the host feed towel. For general web application interaction, the client browser communicates with the web application deployed on the (four) feeder. However, when a table 12 201007567 application interaction is required, the web server assigns a corresponding host server to the user, and then the client communicates with the desktop application deployed on the host server, and on the desktop. After the application interaction is over, release the host server. The client then continues to interact with the web server. Depending on the client's need for a desktop application, the process described above may be repeated many times. Referring now to Figure 2, there is shown in greater detail the components contained in the computer system as shown in Figure j. For the sake of simplicity, in Figure 2, only one host server is shown. However, those skilled in the art will appreciate that the computer system may actually include one or more other components not shown, and often have more than one host server. As shown in Figure 2, on the client side, a Pan browser plug-in is installed in the browser 1,, which will be referred to as the terminal agent n〇 (the details about the plugin will be combined below). The process flow chart of the method is described in detail). It has two main functions: intercepting user input and sending it to the corresponding host server (host server 300 in Figure 2); displaying the user interface of the corresponding host server in browser 100. You can use things like VNC (a kind of remote control software, see for^H^jealvnc^cW for more details), Windows remote desktop, and XWindow Manager for Linux/UNIX. A variety of prior art to implement such a browser plug-in. In addition, in addition to the above techniques, the Java applet (small application) method can also be used to implement the terminal proxy. For example, in the case of using the Java applet method, when the 13 201007567 applet is initialized, as shown in Fig. 2, it will be connected to the corresponding terminal service 3 1 0 running on the host server 300. Then, you can establish a TCP connection. This applet can grab the user's keyboard and mouse events and send them to the appropriate host server 300. After the terminal service 3 1 receives the event, it will generate such an event on the host server 300 to simulate the client interaction. At the same time, the terminal service 310 captures the user interface (i.e., the screen) of the host server 300 and sends the screen image back to the client. When the terminal agent 110 receives the screen image, it draws the image within the applet. In actual applications, data transmitted between the client and the server can be encrypted for security reasons. In addition, image caching can be enabled on the user side for performance reasons, and the transmitted data can also be compressed. Figure 3 shows an exemplary web application page layout that integrates the user interface of the desktop application. At the user end through the user

Web瀏覽器啓用了遠端桌面應用程式後,借助於終端代 理110,在用戶端的Web瀏覽器1〇〇上顯示如第3圖所 不的Web頁面佈局,即,遠端桌面應用程式的用戶介面 (m)將會出現在用戶端Web瀏覽器上的一個頁面 的一個矩形區域中,該矩形區域由第2圖中所示的終端 代理110控制。 , 、 再次回到第2圖。如第2圖所示,在祠服器端的Web 伺服器200上,Weh處田办》』λAfter the web browser enables the remote desktop application, the web page layout of the third image is displayed on the web browser of the user terminal by means of the terminal agent 110, that is, the user interface of the remote desktop application. (m) will appear in a rectangular area of a page on the client's web browser, which is controlled by the terminal agent 110 shown in FIG. , , return to Figure 2 again. As shown in Figure 2, on the Web server 200 on the server side, Weh is in the field.

Web應用程式210需要調用桌面應用程 式服務23G來處理對桌面應用程式的使用請求。當用戶 端請求使用某一桌面應用程式時,Web應用程式⑽將 14 201007567 產生桌面應用程式初始化請求,以請求桌面應用程式服 務230進行準備。如第2圖所示,桌面應用程式服務230 主要包含以下幾個組件:請求處理器240,檔案控制器 250 ’會話管理器26〇,資源管理器27〇,和部署控制器 280。 除此之外’如第2圖所示,在伺服器端還具有:包含 一或多伺服器的資源池400,用於提供所需要的主機伺 ❹ 服器、例如主機伺服器300 (爲了便於說明,第2囷中 僅示出了一個主機伺服器3〇〇,但是實際上可以包括任 意數目的主機伺服器);以及影像和軟體儲存庫5〇〇,用 來儲存用戶端可能會請求使用的多種桌面應用程式的安 裝軟體及伺服器影像。 請求處理器240向Web應用程式210提供了以下幾個 介面: (1)桌面應用程式初始化 | 在從Web應用程式210發往桌面應用程式服務230的 桌面應用程式初始化請求中,用戶端需要發送桌面應用 程式版本資訊和需要由桌面應用程式打開的文件列表。 此外,初始化請求也可以包括文件同步選項和恢復選 項。另外,初始化請求還可以包括Web會話資訊,以便 使請求處理器240可以爲同一個用戶重新使用同一個主 機伺服器。例如,下面是一個示例性的XML初始化請求: &lt;initializereq&gt; 〈application name=‘‘Photoshop” version=“7.0” 15 201007567 vendor=“ Adobe’’&gt; 〈file url = “/images/header.jpg” loc at ion=tt crl.ibm.com:/shared/ myproject/header.jpg” synchronization」nterval = 10s refresh=true/&gt; 〈file url=“/images/footer.jpg” lo c at ion=&lt;tcrl.ibm. com:/share d/myproj ect/The web application 210 needs to invoke the desktop application service 23G to process the request for use of the desktop application. When the client requests to use a certain desktop application, the web application (10) will generate a desktop application initialization request by 14 201007567 to request the desktop application service 230 to prepare. As shown in FIG. 2, the desktop application service 230 mainly includes the following components: a request processor 240, a file controller 250' session manager 26, a resource manager 27, and a deployment controller 280. In addition to this, as shown in Figure 2, there is also a resource pool 400 containing one or more servers on the server side for providing the required host server, such as host server 300 (for convenience) Note that only one host server 3〇〇 is shown in the second port, but may actually include any number of host servers); and an image and software repository 5〇〇 for storing the client may request to use A variety of desktop application installation software and server images. The request processor 240 provides the following interfaces to the web application 210: (1) desktop application initialization | in the desktop application initialization request sent from the web application 210 to the desktop application service 230, the client needs to send the desktop Application version information and a list of files that need to be opened by the desktop application. In addition, the initialization request can also include file synchronization options and recovery options. In addition, the initialization request may also include web session information to enable request processor 240 to reuse the same host server for the same user. For example, here is an exemplary XML initialization request: &lt;initializereq&gt; <application name=''Photoshop" version=“7.0” 15 201007567 vendor=“Adobe''&gt; 〈file url = “/images/header.jpg Loc at ion=tt crl.ibm.com:/shared/ myproject/header.jpg "synchronization" nterval = 10s refresh=true/&gt; 〈file url=“/images/footer.jpg” lo c at ion=&lt ;tcrl.ibm. com:/share d/myproj ect/

footer.jpg” synchronization_interval=20s refresh=false/&gt; 〈/application〉 〈application name=“ Word” version=“2003’’ vendor=“Microsoft’’&gt; 〈file url=“/docs/news.doc” location=ucrl.ibm.com:/shared/doc/ news.doc’’/&gt;Footer.jpg"synchronization_interval=20s refresh=false/&gt; 〈/application〉 <application name=“Word” version=“2003'' vendor=“Microsoft''&gt; 〈file url=“/docs/news.doc” Location=ucrl.ibm.com:/shared/doc/ news.doc''/&gt;

〈/application〉 〈session id=“DFAWER214ASDFD’,/&gt; 〈restore imageid=23&gt;true&lt;/restore&gt; &lt;/initializereq&gt; 依據桌面應用程式服務230針對上述初始化請求的初 始化回應,用戶端可以知道是否成功地處理了該請求。 此外,還可以知道主機伺服器的位址,以便使用戶端瀏 覽器可以知道如何連接到主機伺服器。例如,下面是一 16 201007567 個示例性的XML初始化回應: &lt;initializeresp&gt; 〈result value = “success” appid—i,,/》 &lt;address value=«myh〇st:myport,V&gt; &lt;/initializeresp&gt; (2)桌面應用程式退出 φ 當用戶已經完成了對桌面應用程式的使用時’ Web應 用程式210可以請求退出桌面應用程式,以便可以回收 相關的資源。退出請求中可以包括Web會話資訊,如此 請求處理器240知道需要回收哪個主機伺服器。此外, 退出請求中還可以包括備份選項,以便可以根據需要備 份主機伺服器環境。例如,下面是一個示例性的XML退 出請求: &lt;exitreq&gt; 〈session id=“DFAWER214ASDFD” /&gt; 〈backup &gt;true&lt;/backup&gt; &lt;/exitreq&gt; 依據針對退出請求的回應,Web應用程式210可以知 道操作結果》例如,下面是一個示例性的XML退出回應: &lt;exitresp&gt; &lt;result value=&lt;tsuccess,,/&gt; &lt;image id=23/&gt; 17 201007567 &lt;/exitresp&gt; (3 )查詢 查詢功能可以使Web應用程式21〇檢查當前環境的狀 態。例如,可以檢查下列狀態: &gt;可用的應用程式; &gt;主機伺服器針對一個會話的運行狀態。 在Web應用程式中,當需要利用桌面應用輕式時可 以首先查詢可用的桌面應用程式,然後以例如列表的形 式列出它們。下面就是這樣的一個示例: 〇 Adobe Photoshop 8.0 □ MS Word 2003 I] Eclipse 3.0 • · · · · · 對於每個桌面應用程式,可以顯示下列屬性供用戶選 擇:應用程式名稱,版本,廠商及作業系統(〇§)。上 述資訊可以從資源管理器270 (將在下文中進行詳細說 明)中獲得。在Web應用程式210中,可以根據用戶的 授權和需求來修改可用桌面應用程式的列表。 當用戶經由Web瀏覽器100請求使用某一個桌面應用 程式並且提交了表單時,Web應用程式21〇產生桌面應 用程式初始化請求,並且將其發送到請求處理器24〇。 請求處理器240首先檢查會話管理器26〇,以確定是否 早已存在用於當前這個會話的正在運行的主機伺服器。 201007567 如果確定不存在這樣的主機伺服器,則它將請求資源管 理器2 7 0從資源池4 0 0中分配一個用於運行所請求的桌 面應用程式的主機伺服器,例如主機飼服器3〇〇。在完 成資源分配之後,請求處理器240請求部署控制器280 備置並提供主機伺服器環境並且獲取主機伺服器位址, 例如IP位址及埠號。然後,會話管理器26〇保存主機伺 服器地址和用戶會話資訊。最後,請求處理器240將主 機伺服器位址送回到Web應用程式210。Web應用程式 210將包括外掛程式(即終端代理11〇)資訊和主機伺服 器地址的頁面發送到用戶瀏覽器一端。用戶瀏覽器J 〇〇 在接收到回應後,將會啓動該外掛程式,即終端代理 110。在此需要說明的是’該外掛程式在用戶端首次透過 潘I覽器存取遠端桌面應用程式時才需要從Web伺服器中 下載’而且根據需要,該外掛程式可以儲存在Web伺服 器中,也可以儲存在Web伺服器可存取的網路上的任何 其他地方(爲了簡單起見,在第2圖中並未示出以上 的這個過程如第4圖所示。 第4圖較爲簡單地示出了第2圖所示的電腦系統在桌 面應用程式初始化過程中的用戶互動和會話複製處理。 其中,正如以上所描述的那樣,(1)表示使用會話權杖進 行Web應用程式互動’表示用戶端在Web應用程式 中請求桌面應用程式,(3)表示Web應用程式21〇將桌面 應用程式初始化請求發送到桌面應用程式服務23〇 (4) 表不準備桌面應用程式環境’即桌面應用程式初始化處 19 201007567 理(其詳細處理將在下文中參考第5圖所示的流程圖加 以詳細說明)’(5)表示桌面應用程式服務23〇對诃虬應 用程式210做出回應,(6)表示Web應用程式21〇對瀏覽 器做出回應,而(7)表示瀏覽器1〇〇啓動終端代理11〇, 並且連接到桌面應用程式3 4〇。 在如上所述結束了桌面應用程式互動之後,用戶例如 可發送一個請求到Web應用程式21〇,然後Web應用程 式210將產生桌面應用程式退出請求並將其發送到桌面 應用程式服務230中的請求處理器240。如果用戶想要 保存當前分配給他的主機伺服器以供將來使用,則部署 控制器280把該主機伺服器的整個影像儲存到影像和軟 體儲存庫500中。在這之後,請求處理器24〇調用部署 控制器280來清理目標主機伺服器,例如清除用戶使用 過程中産生的一些文件,避免被以後的用戶看到,並且 要求資源管理器270釋放該主機/(司服器。以上的這個過 程將在下文中參考第6圖所示的流程圖進行詳細說明。 再次返回參見第2圖。其中,會話管理器26〇用於維 護和保存用戶會話。在接收到桌面應用程式初始化請求 後’請求處理器240利用會話管理器260檢查是否早已 存在用於這個會話的主機伺服器。如果不存在這樣的伺 服器貝丨會話管理器260保存這個會話的id以及所分配 的主機飼服器ID。如果用於這個會話的主機伺服器已經 存在了的話,則請求處理器24()將回傳該主機伺服器的 IP地址及埠號。 20 201007567 在資源池400中,可以有不同類型的一或多個飼服 器,諸如Intel/AMD PC伺服器和υΝΙχ伺服器等。這些 飼服器中可能安裝了作業系統和某些桌面應用程式,: 是也可能並沒有安裝任何作業系統和桌面應用程式。此 外,除了實體伺服器之外,資源池4〇〇中也可能包含一 個或多個虛擬伺服器。 資源管理器270維護資源池400,並且處理資源分配 請求和資源釋放請求。資源管理器27〇可以追蹤並儲存 資源池400中所有伺服器的詳細資訊,其中包括例如伺 服器的硬體類型和配置、IP位址、作業系統(〇s)類型、 伺服器中安裝或儲存的桌面應用程式的名稱和版本資訊 等。基於這個詳細資訊,資源管理器27〇可以針對資源 分配請求’分配或確定最適合的伺服器。當收到某一資 源分配請求時,資源管理器270可以基於桌面應用程式 和其所需的OS名稱在資源池400中查找匹配的伺服 器。如果找到了匹配的伺服器(即主機伺服器),則將該 匹配的伺服器標記爲「使用中」並且回傳其⑺地址及埠 號。如果沒有找到匹配的伺服器,則資源管理器27〇從 資源池4〇〇中選擇一個適當的主機伺服器用於提供並 且將其標記爲「使用中」。上述這個過程將在下文中參考 第7圖所示的流程圖進行進一步詳細描述。當收到資源 釋放請求時,資源管理器27〇釋放使用中的伺服器並把 它標記爲「空閒」。如果使用中的伺服器是一個虛擬伺服 器而非一個真實的實體伺服器,則資源管理器270將會 21 201007567 破壞該伺服器並且釋放所分配的資源。 也就是說’資源管理器270可以對實體伺服器和虛擬 伺服器進行管理。對於實體伺服器而言,資源管理器27〇 以全機級別(box level )對其進行管理,這意味著:每 次一單一用戶僅僅分配一個實體伺服器。而對於虛擬伺 服器而言’在其上運行虚擬伺服器的主機平臺可以由不 同的用戶共用。每個用戶僅僅可以使用一個可能僅僅消 〇 耗部分實體伺服器資源的虛擬伺服器。可以在資源分配 前在資源池400中準備或者根據需要提供虛擬飼服器。 部署控制器280是一種用於自動安裝的自動引擎。它 能夠自動地安裝遠端系統❶安裝工作包括〇jg安裝、應 用程式程式女裝、軟體配置、系統更新、飼服器備份等。 安裝軟體通常儲存在影像和軟體儲存庫5〇0中,可以使 用幾種已有的産品’例如’ IBM公司的用於提供 公司的用於提供ΑΙΧ</application> <session id=“DFAWER214ASDFD', /&gt; <restore imageid=23&gt;true&lt;/restore&gt;&lt;/initializereq&gt; According to the initialization response of the desktop application service 230 for the above initialization request, the client can know whether The request is successfully processed. In addition, the host server's address can be known so that the client browser can know how to connect to the host server. For example, here is a 16 201007567 exemplary XML initialization response: &lt;;initializeresp&gt; <result value = “success” appid—i,,/” &lt;address value=«myh〇st:myport,V&gt;&lt;/initializeresp&gt; (2) Desktop application exits φ When the user has completed the pair When the desktop application is used, the web application 210 can request to quit the desktop application so that the related resources can be reclaimed. The exit request can include web session information, so that the request processor 240 knows which host server needs to be reclaimed. In addition, exit Backup options can also be included in the request so that the host can be backed up as needed The server environment. For example, here is an exemplary XML exit request: &lt;exitreq&gt; <session id=“DFAWER214ASDFD” /&gt; <backup &gt;true&lt;/backup&gt;&lt;/exitreq&gt; based on response to the exit request The web application 210 can know the result of the operation. For example, the following is an exemplary XML exit response: &lt;exitresp&gt;&lt;resultvalue=&lt;tsuccess,,&&gt;&lt;imageid=23/&gt; 17 201007567 &lt;/exitresp&gt; (3) The query query function allows the web application 21 to check the status of the current environment. For example, the following status can be checked: &gt; Available applications; &gt; The host server is running for a session. In a web application, when you need to use the desktop application light, you can first query the available desktop applications and then list them in the form of, for example, a list. Here is an example of this: 〇Adobe Photoshop 8.0 □ MS Word 2003 I] Eclipse 3.0 • For each desktop application, the following properties can be displayed for the user to choose from: application name, version Manufacturers and operating systems (〇§). The above information can be obtained from the resource manager 270 (described in detail below). In the web application 210, a list of available desktop applications can be modified based on the user's authorization and needs. When the user requests to use a certain desktop application via the web browser 100 and submits the form, the web application 21 generates a desktop application initialization request and sends it to the request processor 24. The request processor 240 first checks the session manager 26 to determine if a running host server for the current session is already present. 201007567 If it is determined that there is no such host server, it will request resource manager 210 to allocate a host server for running the requested desktop application from resource pool 4000, such as host feeder 3 Hey. After the resource allocation is completed, the request processor 240 requests the deployment controller 280 to provision and provide the host server environment and obtain the host server address, such as the IP address and nickname. The session manager 26 then saves the host server address and user session information. Finally, request processor 240 sends the host server address back to web application 210. The web application 210 sends a page including the plugin (i.e., terminal agent 11) information and the host server address to the user's browser. User Browser J 〇〇 After receiving the response, the plug-in, Terminal Agent 110, will be launched. It should be noted that the plug-in program needs to be downloaded from the web server when the client first accesses the remote desktop application through the Pan browser. And the plug-in can be stored in the web server as needed. It can also be stored anywhere else on the network accessible by the web server (for the sake of simplicity, the above process is not shown in Figure 2 as shown in Figure 4. Figure 4 is simpler. The user interaction and session copy processing of the computer system shown in FIG. 2 during desktop application initialization is shown. (1) indicates that the session token is used for web application interaction as described above. Indicates that the client requests the desktop application in the web application, and (3) indicates that the web application 21 sends the desktop application initialization request to the desktop application service. 23(4) The desktop application environment is not prepared. Program initialization 19 201007567 (the detailed processing will be described in detail below with reference to the flowchart shown in Figure 5) '(5) indicates the desktop application The service 23 responds to the application 210, (6) indicates that the web application 21 responds to the browser, and (7) indicates that the browser 1 starts the terminal agent 11 and connects to the desktop. Application 3 4. After ending the desktop application interaction as described above, the user can, for example, send a request to the web application 21, and then the web application 210 will generate a desktop application exit request and send it to the desktop application. The request processor 240 in the program service 230. If the user wants to save the host server currently assigned to him for future use, the deployment controller 280 stores the entire image of the host server in the image and software repository 500. After this, the request processor 24 calls the deployment controller 280 to clean up the target host server, for example, clearing some files generated during user use, avoiding being seen by future users, and requiring the resource manager 270 to release the host. / (Server. The above process will be described in detail below with reference to the flowchart shown in Figure 6. Return to the reference again Figure 2. The session manager 26 is used to maintain and save the user session. Upon receiving the desktop application initialization request, the request processor 240 uses the session manager 260 to check if the host server for this session already exists. If there is no such server, the session manager 260 saves the id of the session and the assigned host feeder ID. If the host server for this session already exists, then the request processor 24() The host server's IP address and nickname will be returned. 20 201007567 In resource pool 400, there may be different types of one or more feeders, such as Intel/AMD PC servers and υΝΙχ servers. Operating systems and some desktop applications may be installed in these feeders: It is possible or not to have any operating systems and desktop applications installed. In addition to the physical server, one or more virtual servers may be included in the resource pool. Resource manager 270 maintains resource pool 400 and processes resource allocation requests and resource release requests. The resource manager 27 can track and store detailed information of all servers in the resource pool 400, including, for example, the hardware type and configuration of the server, the IP address, the type of the operating system (〇s), the installation or storage in the server. The name and version information of the desktop application. Based on this detailed information, the resource manager 27 can allocate or determine the most suitable server for the resource allocation request. When a resource allocation request is received, the resource manager 270 can look up the matching server in the resource pool 400 based on the desktop application and its required OS name. If a matching server (i.e., host server) is found, the matching server is marked as "in use" and its (7) address and apostrophe are returned. If no matching server is found, the resource manager 27 selects an appropriate host server from the resource pool 4 for providing and marking it as "in use". This process described above will be described in further detail below with reference to the flowchart shown in FIG. Upon receiving the resource release request, the resource manager 27 releases the server in use and marks it as "idle". If the server in use is a virtual server rather than a real entity server, resource manager 270 will destroy the server and release the allocated resources. That is to say, the resource manager 270 can manage the physical server and the virtual server. For a physical server, the resource manager 27 manages it at a box level, which means that only one physical server is assigned to a single user each time. For a virtual server, the host platform on which the virtual server is running can be shared by different users. Each user can only use one virtual server that may only consume some of the physical server resources. The virtual feeder can be prepared in the resource pool 400 prior to resource allocation or as needed. Deployment controller 280 is an automated engine for automated installation. It automatically installs remote systems, including installation, application, women's software, software configuration, system updates, and feeder backup. The installation software is usually stored in the image and software repository 5〇0, and several existing products can be used, for example, 'IBM' for the company to provide ΑΙΧ

Windows/Linux 的 Director,IBM 的NIM ’以及Redhat公司的用於提供Redhat Unux的 kickstart,來實現部署控制器280。 檔案控制器250的主要功能是使得文件在Web伺服器 。檔案控制器250 330進行通信來完 200和主機伺服器300之間保持同步。 透過和主機伺服器300中的控制代理3 成該任務。在桌面應用程式初始化期間,它將桌面應用The Windows/Linux Director, IBM's NIM' and Redhat's kickstart for Redhat Unux implement the deployment controller 280. The main function of the file controller 250 is to make files on the web server. The file controller 250 330 communicates to maintain synchronization between the host server 300 and the host server 300. This task is achieved through the control agent 3 in the host server 300. It will be a desktop application during desktop application initialization

面應用程式互動期間修改或更新後的文件從主 主機伺服器 22 201007567 300複製到Web伺服器200上的原有位置或者其他位置 處。在桌面應用程式初始化期間和桌面應用程式退出期 間’檔案控制器250可以重覆地將主機伺服器300上的 所有修改或更新後的文件複製到Web伺服器200上的某 一臨時位置處。這是出於備份考慮,以防止文件在主機 祠服器300可能由於某種原因而崩潰後丟失。當然,在 另一替代方案中,檔案控制器250也可以將所有修改或 更新後的文件直接複製到Web伺服器200上的原有位置 中以覆蓋原來的文件’從而立即反映出所進行的修改或 更新。這可以由用戶根據需要自行設定。 在影像和軟體儲存庫500中,儲存了兩類資料,即: 桌面應用程式/OS安裝軟體以及伺服器影像。安裝軟體 用於在主機伺服器(可以是實體或虛擬伺服器)上第一 次安裝相應的桌面應用程式或作業系統。伺服器影像是 已存在4司服器的快照/備份。安裝軟體可以具有下列屬 性·軟體名稱,版本,礙商,和安裝腳本。飼服器影像 可以具有下列屬性:軟體列表,影像生成日期,用戶ID, 和硬體類型。 在每個主機伺服器(例如,第2圖所示的主機伺服器 300)上,除了可能具有桌面應用程式34〇之外,還可安 裝兩個組件,即,終4服務3 1 〇和控制代理3 3 〇。 終端服務31〇與終端代理11〇進行通信,以獲得用戶 端用戶輸入並且在主機伺服器300 一端再現該輸入。此 外,它還抓取主機伺服器上的忉並且將其發送到用戶端 201007567 上的終端代理110。透過這種方式,用戶可以透過Web 瀏覽器調用和控制遠端桌面應用程式。與終端代理i i 0 類似,終端服務3 10也可以使用幾種現有的技術、例如 VNC、XWindows、Java applet 等來實現。 控制代理330主要具有文件同步和應用程式控制的功 能。控制代理330和Web伺服器200上的檔案控制器25〇 進行互動’以便同步文件。控制代理330還可以監控主 機伺服器上的用戶本地目錄並且追蹤文件改變事件。當 有文件被修改或更新時,它可以通知檔案控制器25〇複 襲修改或更新後的文件。在桌面應用程式初始化階段, 控制代理330需要啓動目標應用程式並且載入輸入文 件。在桌面應用程式退出階段,控制代理33〇停止並退 出使用中的桌面應用程式。在此,控制代理也可以用腳 本或者程式實現。 下面結合第5—7圖所示的流程圖來進一步詳細說明 上述各個部件的功能,以及根據本發明的實現桌面應用 程式和Web應用程式聚合的示例性方法的處理流程。其 中,第5圖示出了根據本發明實施例在桌面應用程式初 始化期間所執行的處理過程5〇〇的流程圖;第6圖示出 了根據本發明實施例在桌面應用程式退㈣間所執行的 處理過程副的流程圖;而第7圖比較詳細地示出了根 據本發明實施例在第5圖所示的處理過程則中的資源 分配和提供步驟S52〇的具體處理過程7〇〇。 如以上所描述的那樣’在Web應用程式21〇產生桌面 24 201007567 應用程式初始化請求之後,如 示3圖所示,聞私占π + 用程式初始化處理500。在牛跑。 《果面應 在步驟S510,請求處 檢查會話管理器260,以確 15 240 已有主機伺服器。如果步驟 飞會話的 娜8520的確定結果 即,如果確定不存在這樣的主 的, 機句服器,則處理進行到 步驟S520,村用資源管理 埤仃到 270和部署控制器280進行 資源的分配和提供(將在下 人甲翏考第7圖加以進一步 參 說明),然後處理500進行到$ J步驟S530。否則,如果在 步驟S520中確定已經存在了、丄挺h 在了廷樣的主機伺服器,則處理 500直接進行到步驟S53〇。 在步驟S530 ’透過檔案控制 器250把當前會話文件(例 、例如第2圖中的Web構案220) 複製到主機伺服器(例如篦 、列如第3圖所示的主機伺服器3〇〇) 中。然後,在步驟S540,山, 由控制代理330在主機伺服器 300中啓動所需的卓而庙田如^ 果面應用程式34〇和終端服務310。在 步驟S550’向用戶端面值士地/, % 口得主機伺服器IP位址及埠號(如 果用戶端首次透過潘j罾装左说 器存取遠端桌面應用程式的話, 則同時還向用戶端回傳用戶端器外掛程式即終端 代理110)’並結束桌面初始化處理500,此後用戶可以 在用戶端處啓動終端代理11〇並開始與主機伺服器3〇〇 的桌面應用程式互動。 在用戶完成了桌面應用程式互動後,他可以向Web應 用程式210發送請求,然後由Web應用程式210發出桌 面應用程式退出請求,開始如第6圖所示的桌面應用程 式退出處理600。 25 201007567 如第6圖所示’在步驟S610’請求處理器24〇檢查會 話管理器260,判斷是否有在該會話中運行的主機飼服 器。由於如上該在桌面應用程式互動過程中的確分配和 運行了主機伺服器300’所以步驟S610的判斷結果是肯 定的’因此’桌面應用程式退出處理6〇〇進行到步驟 S620 ;否則,結束處理600。在步驟s62〇,由控制代理 330在主機伺服器300上停止桌面應用程式34〇和終端 服務310,並且在步驟S63〇,透過擋案控制器25〇和控 制代理330之間的通信,將桌面應用程式互動過程中所 有修改或更新後的文件複製到Web伺服器21〇上的原有 位置處,覆蓋原始文件。然後,在步驟S64〇,判斷用戶 是否要保存當前主機伺服器的影像以供將來使用。例 如’它可以透過如下方式實現:Web應用程式可以把「備 份應用程式」作爲一個選項,在用戶選申該選項後, 應用程式向桌面應用程式服務發㈣桌面應用程式退出 請求中會攜帶-個參數’要求備份當前應用程式,例如, 可以參考以上給出的&lt;exitreq&gt;訊息中的心咖p&gt;棚位。 ㈣求處理器對這個參數進行判斷。如果在步称%财 確,疋用戶想要保存當前主機伺服器的影像,則處理600 進订到步驟S650中,透過部署控制器28〇將整個主機伺 服器影像料㈣像和軟㈣存庫彻巾,㈣處理進 仃到步驟S660。否則,占工&amp; 桌面應用程式退出處理600直接 跳轉到步驟S660中,读、典如密 瓶势、 透過部署控制器280清理該主機伺 器,並且透過資调敦 ’、S理器270把它釋放到資源池400 26 201007567 中’然後結束第6圖所示的桌面應用程式退出處理600。 下面結合第7圖的流程圖對根據本發明實施例的第5 圖中所示的步驟S520的處理(即,資源分配和提供處理 700)進行進一步詳細說明。 如第7圖所示,在步驟S710中,判斷用戶是否希望恢 復飼服器影像’以及對於桌面應用程式初始化請求中指 定的影像ID’判斷在影像和軟體儲存庫中是否存在已有 的祠服器影像。其中,影像ID可以參考例如以上給出的 示例性&lt;initializereq&gt;^息中的〈restore〉欄位。例如,在 用戶請求啓動桌面應用程式之前,用戶可以透過Web應 用程式查詢影像和軟體儲存庫中已經儲存的伺服器影像 及影像ID’並且在用戶請求啓動桌面應用程式時可以輸 入影像ID»如果步驟S710的判斷結果是否定的,則處 理7〇〇進行到步驟S720,判斷是否有空閒的、具有匹配 的os和桌面應用程式的主機伺服器。如果步驟S72〇的 判斷結果是肯定的,則處理700直接跳轉到步驟S78〇。 如果步驟S720的判斷結果是否定的,則在步驟S73〇判 斷是否有空閒的能夠安裝所請求的桌面應用程式的主機 伺服器。如果在步驟S730中確定不存在這樣的空閒主機 伺服器,則在步驟S740中,回傳錯誤至用戶端,並由此 退出桌面應用程式互動過程。否則,如果在步驟S73〇中 確定存在該空間的主機伺服器,則在步驟S75〇,根據需 要在主機伺服器中安裝作業系統OS(當然,如果在該主 機伺服器上已經安裝了 OS,則可以跳過該步驟),然後 27 201007567 在步驟S760中在主機右, 機伺服器上安裝所需的桌面應用程 式。隨後,處理進行到步驄 』,驟S77〇,在主機伺服器上安裝 終端代理和控制代理(其中,該終端代理和控制代理可 以被儲存在例如影像和軟體储存庫則中)(當然,如果 在該主機伺服器上已經容驻 、t裝了終端代理和控制代理的 話’則可以跳過該步驟、。炫 乂鄉J此後’在步驟S780 ’將主機 飼服器的狀態設置爲「供田ώ 认仏 1舄使用中」’然後,在步驟S790,The modified or updated file during the application interaction is copied from the host server server 22 201007567 300 to the original location on the web server 200 or to another location. The file controller 250 can repeatedly copy all modified or updated files on the host server 300 to a temporary location on the web server 200 during desktop application initialization and during desktop application exit. This is for backup considerations to prevent files from being lost after the host server 300 may crash for some reason. Of course, in another alternative, the file controller 250 can also copy all modified or updated files directly into the original location on the web server 200 to overwrite the original file' to immediately reflect the modifications or Update. This can be set by the user as needed. In the image and software repository 500, two types of data are stored, namely: desktop application/OS installation software and server image. Installation Software Used to install the appropriate desktop application or operating system for the first time on the host server (which can be a physical or virtual server). The server image is a snapshot/backup of 4 servers. The installation software can have the following properties, software names, versions, obstructions, and installation scripts. The feeder image can have the following attributes: software list, image generation date, user ID, and hardware type. On each host server (for example, the host server 300 shown in FIG. 2), in addition to possibly having a desktop application 34, two components can be installed, that is, the final 4 service 3 1 and control Agent 3 3 〇. The terminal service 31 communicates with the terminal agent 11 to obtain user input and reproduces the input at the host server 300. In addition, it crawls the host on the host server and sends it to the terminal agent 110 on the client 201007567. In this way, users can invoke and control remote desktop applications through a web browser. Similar to the terminal agent i i 0 , the terminal service 3 10 can also be implemented using several existing technologies such as VNC, XWindows, Java applet, and the like. Control agent 330 primarily has the functions of file synchronization and application control. The control agent 330 interacts with the file controller 25 on the web server 200 to synchronize files. Control agent 330 can also monitor the user local directory on the host server and track file change events. When a file is modified or updated, it can notify the file controller 25 to replay the modified or updated file. During the desktop application initialization phase, control agent 330 needs to launch the target application and load the input file. During the desktop application exit phase, the Control Agent 33 stops and exits the desktop application in use. Here, the control agent can also be implemented with a script or a program. The functions of the above various components and the processing flow of the exemplary method for realizing the aggregation of the desktop application and the web application according to the present invention will be further described in detail below with reference to the flowcharts shown in Figs. 5 is a flow chart showing a processing procedure performed during desktop application initialization according to an embodiment of the present invention; and FIG. 6 is a diagram showing a desktop application retreating (four) according to an embodiment of the present invention. A flow chart of the execution process sub-process; and FIG. 7 shows in more detail the resource allocation and provision process S52 in the processing procedure shown in FIG. 5 according to an embodiment of the present invention. . As described above, after the web application 21 generates the desktop 24 201007567 application initialization request, as shown in FIG. 3, the program is initialized to 500. Run in the cow. The fruit side should check the session manager 260 at step S510 to confirm that the existing host server is 15 240. If the result of the determination of the step 8520 of the step flight session is that if it is determined that there is no such master server, the process proceeds to step S520, and the village resource management device 270 and the deployment controller 280 perform resource allocation. And provide (will be further explained in Figure 7 of the next person), and then process 500 to proceed to $J step S530. Otherwise, if it is determined in step S520 that the host server has been present, the process 500 proceeds directly to step S53. In step S530', the current session file (for example, the Web composition 220 in FIG. 2) is copied to the host server through the file controller 250 (for example, the host server shown in FIG. 3). ). Then, in step S540, the control agent 330 activates the desired Zhuotian Miaotian surface application 34 and the terminal service 310 in the host server 300. In step S550', the user's end face value /, % port host server IP address and nickname (if the client first accesses the remote desktop application through the Pan J installed device, then also The client returns the client plug-in program, that is, the terminal agent 110)' and ends the desktop initialization process 500. Thereafter, the user can start the terminal agent 11 at the client and start interacting with the host server of the host server. After the user has completed the desktop application interaction, he can send a request to the web application 210, and then the web application 210 issues a desktop application exit request to begin the desktop application exit process 600 as shown in FIG. 25 201007567 As shown in Fig. 6, the processor 24 is requested to check the session manager 260 at step S610 to determine whether there is a host server running in the session. Since the host server 300' is indeed allocated and run during the desktop application interaction as described above, the result of the determination in step S610 is affirmative. Therefore, the desktop application exits the process 6 to proceed to step S620; otherwise, the process 600 is ended. . At step s62, the desktop application 34 and the terminal service 310 are stopped by the control agent 330 on the host server 300, and at step S63, the desktop is communicated through the communication between the file controller 25 and the control agent 330. All modified or updated files in the application interaction process are copied to the original location on the web server 21, overwriting the original file. Then, in step S64, it is determined whether the user wants to save the image of the current host server for future use. For example, it can be implemented as follows: The web application can use the "backup application" as an option. After the user selects the option, the application sends the desktop application service (4) the desktop application exit request will carry - The parameter 'requires backup of the current application. For example, you can refer to the heart and coffee p&gt; in the &lt;exitreq&gt; message given above. (4) Ask the processor to judge this parameter. If the user is in the step of saying that the user wants to save the image of the current host server, the process 600 proceeds to step S650, and through the deployment controller 28, the entire host server image (4) image and the soft (four) library are stored. After the towel, (4) processing proceeds to step S660. Otherwise, the occupation &amp; desktop application exit process 600 directly jumps to step S660, reads, the code is like a bottle, cleans the host server through the deployment controller 280, and passes through the resource management, 270 It is released into the resource pool 400 26 201007567 'and then ends the desktop application exit processing 600 shown in Figure 6. The processing of step S520 (i.e., resource allocation and provision processing 700) shown in Fig. 5 according to the embodiment of the present invention will be further described in detail below with reference to the flowchart of Fig. 7. As shown in FIG. 7, in step S710, it is determined whether the user wishes to restore the feeder image 'and the image ID specified in the desktop application initialization request to determine whether there is an existing service in the image and software repository. Image. The image ID may refer to, for example, the <restore> field in the exemplary &lt;initializereq&gt; For example, before the user requests to launch the desktop application, the user can query the image and image ID stored in the image and software repository through the web application and input the image ID when the user requests to launch the desktop application. If the result of the determination in S710 is negative, then the process proceeds to step S720 to determine whether there is a free host server having a matching os and desktop application. If the result of the determination in step S72 is affirmative, the process 700 directly jumps to step S78. If the result of the decision in step S720 is negative, then in step S73, it is determined whether there is a free host server capable of installing the requested desktop application. If it is determined in step S730 that such an idle host server does not exist, then in step S740, an error is returned to the client, and thereby the desktop application interaction process is exited. Otherwise, if it is determined in step S73 that the host server of the space exists, then in step S75, the operating system OS is installed in the host server as needed (of course, if the OS is already installed on the host server, then This step can be skipped), then 27 201007567 installs the required desktop application on the host right server server in step S760. Then, the process proceeds to step ,, step S77〇, and the terminal agent and the control agent are installed on the host server (where the terminal agent and the control agent can be stored in, for example, an image and a software repository) (of course, if If the terminal agent and the control agent are already installed on the host server, then you can skip this step. Hyun 乂乡J is then 'in step S780', the status of the host feeder is set to "Yutian."仏 仏 1舄 in use"' Then, in step S790,

將該主機伺服器的ip位址间楂仏姓_ +、&amp;抑砂、 J m祉回得給請求處理器240,從而 π成了如第7圖所示的資源分配和提供處理7〇〇,並繼 續第5圖中所示的步驟S530。 第8圖疋應用程式根據本發明實施例的方法和系統的 一個不例,其中按照順序示出了從用戶在Web瀏覽器中 選擇某一桌面應用程式時開始直到用戶在用戶端存取遠 端桌面應用程式時的多個用戶端電腦螢幕截圖。The host server's ip address _ _ +, &amp; sand, J m 祉 back to the request processor 240, so that π becomes the resource allocation and provision processing as shown in Figure 7 〇, and continue to step S530 shown in FIG. Figure 8 is an example of a method and system according to an embodiment of the present invention, wherein the order is shown from the time when the user selects a certain desktop application in the web browser until the user accesses the remote end at the user end. Screen capture of multiple client computers for desktop applications.

從以上對根據本發明實施例的電腦系統和方法的描述 中不難看出,根據本發明,使得終端用戶可以在用戶端 透過Web瀏覽器調用遠端桌面應用程式,就好像這個桌 面應用程式是Web應用程式的一部分那樣。由於可以使 Web飼服器和主機伺服器上的文件保持同步,並且將所 有文件及資料儲存在Web伺服器上,因此,可以在多個 用戶之間共用文件和資料’並且便於在Web飼服器上管 理和備份資料。此外,根據本發明,由於可以將傳統的 桌面應用程式和Web應用程式聚合或整合起來,因此, 可以爲終端用戶的Web應用程式提供更爲豐富的桌面應 28 201007567 用程式,從而使用戶的Web體驗更爲豐富多彩。 田j,還可此存在除以上所描述的這些優點之外的其 他優點,在此就不--列舉了。 、 雖然以上結合第5至7圖所示的流程圖,對根據本發 明實施例的如第2圖所示的系統及其組件的功能以及 相應的處理方法流程進行了說明’但是,應當明白,上 述的系統方塊圖和處理流程圖僅僅是示例性的本領域 技術人員完全可以在沒有背離本發明的精神和實質的情 況下,根據設計需要和實際需求對其進行修改。例如, 第2圖中雖然示出了—個影像和軟_存庫來健存饲服 器影像以及桌面應用程式安裝軟體等,但是它們可以也 分別儲存在不同的儲存庫中。在第6圖所示的步驟“Μ 中’於另-替代方案中,可以將桌面應用程式互動期間 修改或者更新後的文件複製到Web伺服器21〇上的某一 個臨時位置而不是原有位置處,如此可防止因突發狀況 導致主機伺服器系統崩潰而使得文件丟失。此外,結合 第6和7圖所示的流程圖描述的處理,都是基於用戶設 疋了保存祠服器影像這一情況而給出的,但是,本發明 的原理也可以應用程式於不保存伺服器影像的情況此 時第2圖所示的儲存庫500就沒有必要儲存伺服器影像 了’而且所示的處理流程圖中的某些判斷步驟也就可以 省略了。而且,在第7圖所示的步驟S715中,雖然沒有 明確說明’但是本領域技術人員應當明白,所分配的主 機飼服器可以是一個實際的獨立實體伺服器,也可以是 29 201007567 一個由多個用戶共用的虛擬伺服器。當然,還可能存在 其他的替換方式’在此就不—列舉了。 另外’雖然附圖中沒有提供根據本發明實施例的方法 的完整流程圖’但是顯然本領域技術人員完全可以在毫 不費力的情況下根據說明書的文字描述基於第5至7圖 的流程圖繪製出相應的流程圖。 此外’顯然地’根據本發明的上述方法的各個操作過 φ 程也可以儲存在各種機器可讀的儲存媒體中的電腦可執 行程式的方式實現。 而且’本發明的目的也可透過下述方式實現:將儲存 有上述可執行程式碼的儲存媒體直接或者間接地提供給 系統或設備,並且接著由該系統或設備中的電腦或者中 央處理單元(CPU )讀出上述程式碼並執行之。 此時,只要該系統或者設備具有執行程式的功能,則 •本發明的實施方式不局限於程式,並且該程式也可以是 任意的形式,例如,目的程式、解釋器執行的程式或者 提供給作業系統的腳本程式等。 上述這些機器可讀儲存媒體包括但不限於:各種記憶 體和儲存單元’半導體設備’磁片單元例如光、磁和磁 光碟’以及其他適於儲存資訊的媒體等。 另外,客戶電腦透過連接到網際網路上的相應網站, 並且將依據本發明的電腦程式碼下載和安裝到電腦中然 後執行該程式,也可以實現本發明。 最後,還需要說明的是,在本文中,術語「包括」、「包 30 201007567 含」或者其任何其他變體意在涵蓋非排他性的包含,從 而使得包括一系列要素的過程、方法、物品或者設備不 僅包括那些要素,而且還包括沒有明確列出的其他要 素’或者是還包括爲這種過程、方法、物品或者設備所 固有的要素。在沒有更多限制的情況下,由語句「一」 限定的要素’並不排除在包括該要素的過程、方法、物 品或者設備中還存在另外的相同要素。 以上雖然結合附圖詳細描述了本發明的實施例,但是 應當明白’上面所描述的實施方式只是用於說明本發 明’而並不構成對本發明的限制。對於本領域的技術人 員來說’可以對上述實施方式做出各種修改和改變而不 背離本發明的實質和範圍。因此,本發明的範圍僅由所 附申請專利範圍及其等效含義來限定。 【圖式簡單說明】 本發明可以透過參考下文中結合附圖所給出的描述得 到更好的理解,其中在所有附圖中使用了相同或相似的 元件符號來表示相同或者相似的元件。該附圖連同下面 的詳細說明一起構成本說明書的一部分,而且用來進一 步舉例說明本發明的優選實施例和解釋本發明的原理和 優點。在附圖中: 第1圖示出了一個可以在其中應用程式根據本發明的 優選實施例的電腦系統的系統方塊圖; 31 201007567 第2圖進一市送冷-, 洋細不出了如第!圖所示的電腦系統中 所包含的各個組件; 第3圖示出了其中軟人 _ 共中整σ 了桌面應用程式的用戶介面的 一個示例性Web應用程式頁㈣局; 第4圖較爲簡單地示出了如第2圖所示的電腦系統在 ㈣應用帛式初始化過程中的用戶互動和會話複製處 理; φ 第5圖示出了根據本發明實施例在桌面應用程式初始 化期間所執行的處理500的流程圖; 第6圖示出了根據本發明實施例在桌面應用程式退出 期間所執行的處理6〇〇的流程圖; 第7圖的流程圖比較詳細地示出了根據本發明實施例 在第5圖所示的處理5〇〇中的資源分配和提供步驟S 520 的具體處理過程700 ;以及 第8圖示出了應用程式使用根據本發明的方法和系統 時的示例性的用戶端電腦螢幕截圖。 【主要元件符號說明】 100瀏覽器 11 〇終端代理 200 Web伺服器 210 Web應用程式 220 Web擋案 32 201007567 230桌面應用程式服務 240請求處理器 250檔案控制器 260會話管理器 270資源管理器 280部署控制器 300主機伺服器 Φ 3 1 0終端服務 320複製的檔案 330控制代理 340桌面應用程式 400資源池 500影像及軟體儲存庫 33From the above description of the computer system and method according to the embodiment of the present invention, it is not difficult to see that according to the present invention, the end user can call the remote desktop application through the web browser on the user side, as if the desktop application is the web. Part of the application. Since the files on the web server and the host server can be synchronized, and all files and data are stored on the web server, files and materials can be shared among multiple users' and it is convenient to feed on the web. Manage and back up data on the device. In addition, according to the present invention, since a conventional desktop application and a web application can be aggregated or integrated, a richer desktop application can be provided for the end user's web application, thereby enabling the user's web. The experience is more colorful. Tianj, there are other advantages other than those described above, which are not listed here. Although the functions of the system and its components as shown in FIG. 2 and the corresponding processing method flow according to the embodiment of the present invention have been described above with reference to the flowcharts shown in FIGS. 5 to 7 'But, it should be understood that The above-described system block diagrams and process flow diagrams are merely exemplary and can be modified by those skilled in the art without departing from the spirit and scope of the invention. For example, in Figure 2, there is shown an image and a soft_storage to store the image of the feeder and desktop application software, but they can also be stored in different repositories. In the step "Μ" in the other embodiment, the modified or updated file during the desktop application interaction can be copied to a temporary location on the web server 21 instead of the original location. In this way, the file server is prevented from being lost due to a sudden crash of the host server system. In addition, the processing described in connection with the flowcharts shown in Figures 6 and 7 is based on the user setting up the image of the server. In one case, the principle of the present invention can also be applied to the case where the server image is not saved. At this time, the repository 500 shown in FIG. 2 does not need to store the server image. Some of the judging steps in the flowchart may be omitted. Moreover, in step S715 shown in FIG. 7, although not explicitly stated, 'the person skilled in the art should understand that the assigned host feeder may be one. The actual standalone entity server can also be 29 201007567 A virtual server shared by multiple users. Of course, there may be other alternatives. It is not - listed. In addition, although the complete flowchart of the method according to the embodiment of the present invention is not provided in the drawings, it is obvious that those skilled in the art can completely describe the text based on the description according to the description of the specification without any effort. The flowchart of Figure 7 depicts the corresponding flow diagrams. Furthermore, it is apparent that the various operations of the above-described methods in accordance with the present invention can also be implemented in the form of computer executable programs stored in various machine readable storage media. Moreover, the object of the present invention can also be achieved by providing a storage medium storing the above executable code directly or indirectly to a system or device, and then by a computer or central processing unit in the system or device ( The CPU reads out the above code and executes it. At this time, as long as the system or device has the function of executing the program, the embodiment of the present invention is not limited to the program, and the program may be in any form, for example, purpose. Program, program executed by the interpreter, script program provided to the operating system, etc. The machine-readable storage medium includes, but is not limited to, various memory and storage unit 'semiconductor device' disk unit such as optical, magnetic and magneto-optical discs, and other media suitable for storing information, etc. In addition, the client computer is connected to the Internet through the Internet. The invention can also be implemented by downloading and installing the computer code according to the present invention into a computer and then executing the program. Finally, it should be noted that, in this context, the terms "include" and "package" 30 201007567 " or any other variation thereof" is intended to cover a non-exclusive inclusion, such that a process, method, article, or device that comprises a series of elements includes not only those elements but also other elements not specifically listed. It also includes elements inherent to such a process, method, article or device. The element 'as defined by the statement 'a' does not exclude the presence of the same element in the process, method, article or device including the element. The embodiments of the present invention have been described in detail above with reference to the accompanying drawings, but it is understood that the embodiments described above are merely illustrative of the invention and are not intended to limit the invention. Various modifications and changes may be made to the above-described embodiments without departing from the spirit and scope of the invention. Therefore, the scope of the invention is to be limited only by the scope of the appended claims and their equivalents. BRIEF DESCRIPTION OF THE DRAWINGS The invention may be better understood, and the same or similar elements may be used to denote the same or similar elements throughout the drawings. The drawings, which are incorporated in and constitute a In the drawings: Figure 1 shows a block diagram of a system in which a computer system can be applied according to a preferred embodiment of the present invention; 31 201007567 Figure 2 enters a city to send cold -, the fine is not as good as ! The various components included in the computer system shown in the figure; Figure 3 shows an exemplary web application page (four) in which the user interface of the desktop application is integrated; The user interaction and session copy processing in the (IV) application initialization process of the computer system as shown in Fig. 2 is simply shown; φ Fig. 5 shows execution during desktop application initialization according to an embodiment of the present invention. Flowchart of process 500; Figure 6 is a flow chart showing the process performed during the exit of the desktop application in accordance with an embodiment of the present invention; the flowchart of Figure 7 shows in greater detail the present invention in accordance with the present invention. Embodiments of the resource allocation in the processing shown in FIG. 5 and the specific processing procedure 700 of the providing step S 520; and FIG. 8 shows an exemplary embodiment when the application uses the method and system according to the present invention. Screenshot of the client computer screen. [Main Component Symbol Description] 100 Browser 11 〇 Terminal Agent 200 Web Server 210 Web Application 220 Web File 32 201007567 230 Desktop Application Service 240 Request Processor 250 File Controller 260 Session Manager 270 Resource Manager 280 Deployment Controller 300 Host Server Φ 3 1 0 Terminal Services 320 Copyed File 330 Control Agent 340 Desktop Application 400 Resource Pool 500 Image and Software Repository 33

Claims (1)

201007567 七、申請專利範圍: ι· 一種用於實現聚合桌面應用程式與Web應用程式 的方法,該Web應用程式係包括在一 web伺服器中,該 方法包括以下步驟: 回應用戶端用戶對使用一目標桌面應用程式的請求, 而在該Web伺服器上啓動一桌面應用程式初始化程序, 並爲該用戶確定一適當的相應主機伺服器; 在該相應主機伺服器上備置且提供桌面應用程式環 境,並啓動該目標桌面應用程式; 傳送該相應主機伺服器之位址至該用戶端,以便可在 該用戶端與該相應主機伺服器之間進行桌面應用程式互 動;以及 回應該桌面應用程式互動結束,而在該相應主機伺服 器上停止並退出該目標桌面應用程式。 2.如申請專利範圍第1項所述之方法,其中在該桌面 應用程式互動期間,該相應主機伺服器及該Web伺服器 上的所有檔案係保持同步。 3·如申請專利範圍第丨項所述之方法,進一步包括以 下步驟: 在該目標桌面應用程式退出後,儲存該相應主機伺服 器之伺服器影像’並釋放該相應主機伺服器。 34 201007567 4.如申請專利範圍第1至3項中任何一項所述之方 法,其中爲該用戶碟定一適當的相應主機飼服器之步 驟,包括以下步驟: 如果當前在一資源池中存在一用於當前會話的主機伺 服器,則將其確定爲該相應主機伺服器; 否則’根據該目標桌面應用程式及其所需的作業系統 資訊’在該資源池中查找一匹配的主機伺服器,作爲該 相應主機伺服器。 5·如申請專利範圍第4項所述之方法,其.中在該相應 主機伺服器上備置且提供桌面應用程式環境之步驟,包 括以下步驟: 如果該相應主機伺服器上尚未安裝該目標桌面應用程 式’則根據需要,在該相應主機伺服器上安裝該目標桌 面應用程式所需的一作業系統;以及 在該相應主機伺服器上安裝該目標桌面應用程式, 其中’包括有該目標桌面應用程式的複數桌面應用程 式及其所需作業系統的安裝軟體都儲存在一可由該Web 伺服器存取的儲存庫中。 6·如申請專利範圍第i至3項中任何一項所述之方 法’其中’在該用戶端首次請求使用該桌面應用程式的 情況下,在該傳送步驟中將同時傳送一瀏覽器外掛程式 35 201007567 至該用戶端,以截取該用戶端的用戶輸入並且在該用户 端之一 Web瀏覽器中顯示該相應主機伺服器之用戶介 面0 7. —種用於實現聚合桌面應用程式與web應用程式 的Web飼服器,該Web‘伺服器可與一用戶端以及一或多 主機伺服器進行通信,且其包括一 Web應用程式及一桌 面應用程式服務, 其中,該Web應用程式回應該用戶端用戶對使用一目 標桌面應用程式的一請求,而產生一桌面應用程式初始 化請求’並且回應桌面應用程式互動結束,而產生一桌 面應用程式退出請求; 該桌面應用程式服務回應該桌面應用程式初始化請 求,而在該Web伺服器上啓動一桌面應用程式初始化程 序,爲該用戶確定一適當的相應主機伺服器,在其上備 置並提供桌面應用程式環境’以便該相應主機伺服器可 啓動該目標桌面應用程式’以及傳送該相應主機伺服器 之位址至該用戶端’藉此在該用戶端與該相應主機伺服 器之間進行該桌面應用程式互動,以及 該桌面應用程式服務回應該桌面應用程式退出請求, 而在該相應主機伺服器上停止並退出該目標桌面應用程 式0 8 ·如申請專利範圍第7項所述之web伺服器,其中 36 201007567 該桌面應用程式服務進一步包括: 一請求處理器,用於接收一來自該Web應用程式的請 求並對其做出回應; 一會話管理器,用於維護及保存該用戶之會話資訊; 一資源管理器’用於對該一或多主機伺服器進行資源 分配及釋放管理;以及 一部署控制器’用於在該一或多主機伺服器上自動安 ❿ 裝一遠端系統’以備置及提供該主機伺服器環境, 其中’該請求處理器回應該桌面應用程式初始化請 求,而檢查該會話管理器以確定是否存在一用於當前會 話的正在運行的主機伺服器,如果不存在,則其請求該 資源管理器根據該目標桌面應用程式及其所需的作業系 統資訊從該一或多主機伺服器中確定一匹配的主機伺服 器’作爲該相應主機伺服器, • 該請求處理器回應該桌面應用程式退出請求,而要求 該部署控制器清除該相應主機伺服器,並且要求該資源 管理器釋放該相應主機伺服器。 9 .如申請專利範圍第8項所述之Web伺服器,其中 該桌面應用程式服務進一步包括一檔案控制器,其可與 該相應主機伺服器進行通信,以使該相應主機伺服器與 該Web祠服器上的槽案在該桌面應用程式互動期間保持 同步D 37 201007567 1〇·如申請專利範圍第7至9項中任何—項所述之糾 伺服器,其中,在退出該目標桌面應用程式後,該部署 控制器將該相應主機伺服器影像之影像儲存到一儲存庫 中〇 11·如申請專利範圍第7至9項中任何一項所述之Web 伺服器,其中,如果該相應主機伺服器上尚未安裝該目 標桌面應用程式,則該部署控制器根據需要在該相應主 機飼服器上安裝該目標桌面應用程式所需的一作業系 統,並且安裝該目標桌面應用程式,其中包括有該目標 桌面應用程式的複數桌面.應用程式及其作業.系統的安裝 軟體都儲存在一儲存庫中。 12·如申請專利範圍第7至9項中任何一項所述之Web 伺服器,其中’在該用戶首次請求使用該桌面應用程式 的情況下’該Web應用程式在傳送該相應主機飼服器之 位址的同時,還同步傳送一瀏覽器外掛程式至該用戶 端’以截取該用戶端的用戶輸入並且在該用戶端一 Web 瀏覽器中顯示該相應主機伺服器的用戶介面。 13. —種用於聚合桌面應用程式與Web應用程式的電 腦系統,包括: 一用戶端’其上安裝有一 Web瀏覽器; 一或多主機祠服器,每一伺服器包括一終端服務,用 38 201007567 於抓取該主機伺服器的用戶介 厂&quot;由,及包括一控制代理, 用於在該主機飼服器上啓動一桌面應用程式; 一 Web伺服器’其可與該用 尸鲕以及—或多主機伺服 器進行通信,並且其包括一 W b廄 Web應用程式及一桌面應用 程式服務, 其中,該佩應用程式回應—用戶端用戶經由該㈣ 割覽器對使用-目標桌面應用程式的_請求而產生一201007567 VII. Patent application scope: ι· A method for realizing an aggregated desktop application and a web application, the web application is included in a web server, and the method comprises the following steps: responding to the user end user to use one a request from the target desktop application, and launching a desktop application initialization program on the web server, and determining an appropriate corresponding host server for the user; preparing and providing a desktop application environment on the corresponding host server, And launching the target desktop application; transmitting the address of the corresponding host server to the client, so that the desktop application interaction can be performed between the client and the corresponding host server; and the desktop application interaction ends And stop and exit the target desktop application on the corresponding host server. 2. The method of claim 1, wherein the corresponding host server and all file systems on the web server are synchronized during the desktop application interaction. 3. The method of claim 2, further comprising the steps of: storing the server image of the corresponding host server after the target desktop application exits and releasing the corresponding host server. The method of any one of claims 1 to 3, wherein the step of setting an appropriate corresponding host feeder for the user disc comprises the steps of: if currently in a resource pool If there is a host server for the current session, it is determined as the corresponding host server; otherwise, 'based on the target desktop application and its required operating system information', a matching host server is found in the resource pool. As the corresponding host server. 5. The method of claim 4, wherein the step of providing a desktop application environment on the corresponding host server comprises the following steps: if the target desktop is not yet installed on the corresponding host server The application 'installs an operating system required by the target desktop application on the corresponding host server as needed; and installs the target desktop application on the corresponding host server, where 'includes the target desktop application The program's plurality of desktop applications and the installation software for the required operating system are stored in a repository accessible by the web server. 6. The method of any one of claims 1 to 3, wherein in the case where the client first requests to use the desktop application, a browser plugin is simultaneously transmitted in the transmitting step. 35 201007567 To the user end, to intercept the user input of the user terminal and display the user interface of the corresponding host server in one of the web browsers of the client 0. 7. Used to implement the aggregate desktop application and the web application a web server, the web server can communicate with a client and one or more host servers, and includes a web application and a desktop application service, wherein the web application is back to the client The user generates a desktop application initialization request by using a request for a target desktop application and generates a desktop application exit request in response to the end of the desktop application interaction; the desktop application service responds to the desktop application initialization request And launching a desktop application initialization program on the web server, for The user determines an appropriate corresponding host server, prepares and provides a desktop application environment 'so that the corresponding host server can launch the target desktop application' and transmits the address of the corresponding host server to the client' Thereby, the desktop application interaction is performed between the client and the corresponding host server, and the desktop application service responds to the desktop application exit request, and stops and exits the target desktop application on the corresponding host server. The program of the web server described in claim 7, wherein the desktop application service further includes: a request processor for receiving a request from the web application and making Responding to; a session manager for maintaining and saving session information of the user; a resource manager 'for resource allocation and release management of the one or more host servers; and a deployment controller' for Automatic installation of one or more host servers to install a remote system to prepare and provide the host a server environment, where 'the request handler responds to the desktop application initialization request, and checks the session manager to determine if there is a running host server for the current session, and if it does not exist, it requests the resource The manager determines, according to the target desktop application and its required operating system information, a matching host server from the one or more host servers as the corresponding host server, and the request processor responds to the desktop application The request is exited and the deployment controller is required to clear the corresponding host server and the resource manager is required to release the corresponding host server. 9. The web server of claim 8, wherein the desktop application service further comprises a file controller communicable with the corresponding host server to cause the corresponding host server and the web The slot on the server is synchronized during the interactive interaction of the desktop application. D 37 201007567 1 · The server described in any of the claims 7 to 9 wherein the target desktop application is exited After the program, the deployment controller stores the image of the corresponding host server image in a repository. The web server according to any one of claims 7 to 9, wherein, if the corresponding The target desktop application is not installed on the host server, and the deployment controller installs an operating system required by the target desktop application on the corresponding host feeder as needed, and installs the target desktop application, including There are multiple desktops of the target desktop application. The application and its operations. The system's installation software is stored in a repository. The web server of any one of claims 7 to 9, wherein 'in the case where the user first requests to use the desktop application, the web application is transmitting the corresponding host feeder At the same time as the address, a browser plug-in is also synchronously transmitted to the client terminal to intercept the user input of the client and display the user interface of the corresponding host server in a web browser of the client. 13. A computer system for aggregating desktop applications and web applications, comprising: a client terminal having a web browser installed thereon; one or more host servers, each server including a terminal service, 38 201007567 The user agent of the host server is crawled and includes a control agent for launching a desktop application on the host server; a web server can be used with the corpse And - or a multi-host server for communication, and comprising a W b Web application and a desktop application service, wherein the application response - the user user via the (4) viewer to the use - target desktop application Generate a request for the program's _ request 桌面應用程式初始化請求:’並且回應該用戶端用戶結束 該桌面應用程式的一請求’而產生一桌面應用程式退出 請求, 該桌面應用程式服務回應該桌面應用程式初始化請 求’而啓動-桌面應用程式初始化程序,爲該用戶奴 -適當的相應主機賴器,以及在其上備置並提供桌面 應用程式環境,以便該控制代理可在該相應主機伺服器 上啓動該目標桌面應用程式,並且該Web應用程式可傳 送該相應主機飼服器之位址至該用戶端, 在該用戶端上啓動瀏覽器外掛程式,以截取該用戶端 的用戶輸入並將其提供給該相應主機伺服器上的終端服 務’並且在該Web瀏覽器中顯示該相應主機伺服器之用 戶介面, 透過該瀏覽器外掛程式與該相應主機伺服器上的終端 服務,在該用戶端與該相應主機伺服器之間進行桌面應 用程式互動,以及 該桌面應用程式服務回應該桌面應用程式退出請求, 39 201007567 而在該相應主機伺服器上停止並退出該目標桌面應用程 式。 14.如申請專利範圍第13項所述之電腦系統其中, 在該桌面應用程式互動結束之後’該Web伺服器清除並 釋放該机應主機伺服器。 龜 I5.如申請專利範圍第13項所述之電腦系統,進一步 包括: 影像儲存庫’用於儲存主機祠服器的伺服器影像; 以及 -軟體儲存庫,用於储存包括有該目標桌面應用程式 的複數桌面應用程式及其所需作業系統的安裝軟體。 16如申明專利範圍第15項所述之電腦系統,其中該 • 影像儲存庫及該軟體儲存庫是同一儲存庫。 17·如中請專職圍第13至16項中任何—項所述之 電腦系統,其中該—或多主機伺服器是不同類型的獨立 實體伺服器,或者是丘用n 奋麻 疋,、用同一實體伺服器資源的虛擬伺 服器。 18 ·如申請專利範圍第 電腦系統’其中該桌面應 13至16項中任何一項所述之 用程式服務進一步包括: 201007567 該Web應用程式的請 一請求處理器,用於接收一來自 求並對其做出回應; 一會話管理器,用於維護及保存該用戶之會話資訊 一資源管理器,用於對該一或多主機伺服器進行資源 分配及釋放管理;以及 一部署控制器,用於在主機伺服器上自動地安裝一遠 端系統’以備置並提供該主機伺服器環境, 魯 其中’該請求處理器回應桌面該應用程式初始化請 求,而檢查該會話管理器以確定是否存在一用於當前會 話的正在運行的主機伺服器;如果不存在,則其請求該 資源管理器根據該目標桌面應用程式及其所需的作業系 統資訊從該一或多主機伺服器中確定一匹配的主機飼服 器’作爲該相應主機伺服器, 該請求處理器回應該桌面應用程式退出請求,而要求 該部署控制器清除該相應主機伺服器,並且要求該資源 II 管理器釋放該相應主機伺服器。 19 ·如申請專利範圍第1 8項所述之電腦系統,其中該 控制代理亦用於追蹤該些主機伺服器上的檔案修改或改 變’且其中該桌面應用程式服務亦包括一檔案控制器, 用於與該控制代理進行通信,以使該主機伺服器與該 Web伺服器上的檔案在該桌面應用程式互動期間保持同 步。 201007567 20.如申請專利範圍第】3至16項中任何一項所述之 電腦系統’其中該劇覽器外掛程式、該終端服務及/或該 控制代理使用以下技術中任一技術來實現:VNC技術、 Windows遠端桌面技術、XWirid〇ws技術或者Java技術° 42The desktop application initiates the request: 'and responds to a request from the client user to end the desktop application' to generate a desktop application exit request, the desktop application service back to the desktop application initialization request' and launches - the desktop application Initializing a program for the user-appropriate corresponding host device, and provisioning and providing a desktop application environment thereon, so that the control agent can launch the target desktop application on the corresponding host server, and the web application The program can transmit the address of the corresponding host feeder to the client, and launch a browser plug-in on the client to intercept the user input of the client and provide it to the terminal service on the corresponding host server. And displaying, in the web browser, a user interface of the corresponding host server, and performing a desktop application between the client and the corresponding host server through the browser plug-in and the terminal service on the corresponding host server Interaction, and the desktop application service back to the table The application exits the request, 39 201007567 and stops and exits the target desktop application on the corresponding host server. 14. The computer system of claim 13, wherein the web server clears and releases the host server after the desktop application interaction ends. The computer system of claim 13, wherein the image storage library is configured to store a server image of the host server; and a software storage library for storing the target desktop application The installation software for the program's multiple desktop applications and their required operating systems. The computer system of claim 15, wherein the image repository and the software repository are the same repository. 17. In the case of the computer system described in any of the items 13 to 16, the multi-host server is a different type of independent entity server, or is used by the hills. A virtual server for the same physical server resource. 18. If the application system of the computer system of any one of 13 to 16 is further included in the application for the patent scope, the application service of the web application further includes: 201007567 The requesting processor of the web application is configured to receive a request and Responding to it; a session manager for maintaining and saving session information of the user, a resource manager for resource allocation and release management of the one or more host servers; and a deployment controller for Automatically installing a remote system on the host server to prepare and provide the host server environment, wherein the request processor responds to the desktop application initialization request, and checks the session manager to determine whether there is a a running host server for the current session; if not present, it requests the resource manager to determine a match from the one or more host servers based on the target desktop application and its required operating system information The host server serves as the corresponding host server, and the request processor returns to the desktop application to exit Demand, while requiring the deployment of the controller clears the corresponding host server, and requests the resource manager II to release the corresponding host server. 19. The computer system of claim 18, wherein the control agent is also used to track file modifications or changes on the host servers, and wherein the desktop application service also includes a file controller, Used to communicate with the control agent to synchronize the host server with files on the web server during interaction with the desktop application. The computer system of any one of clauses 3 to 16, wherein the browser plug-in, the terminal service, and/or the control agent are implemented using any of the following techniques: VNC technology, Windows remote desktop technology, XWirid〇ws technology or Java technology 42
TW097130424A 2008-08-08 2008-08-08 Method, server and system for converging desktop application and web application TWI505188B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW097130424A TWI505188B (en) 2008-08-08 2008-08-08 Method, server and system for converging desktop application and web application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW097130424A TWI505188B (en) 2008-08-08 2008-08-08 Method, server and system for converging desktop application and web application

Publications (2)

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

Family

ID=44827126

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097130424A TWI505188B (en) 2008-08-08 2008-08-08 Method, server and system for converging desktop application and web application

Country Status (1)

Country Link
TW (1) TWI505188B (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117243B2 (en) * 2001-10-02 2006-10-03 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network

Also Published As

Publication number Publication date
TWI505188B (en) 2015-10-21

Similar Documents

Publication Publication Date Title
US10609112B2 (en) Method, server and system for converging desktop application and web application
KR102102168B1 (en) Appratus for a virtual desktop service and method thereof
KR100998515B1 (en) Methods for distributed program execution with file-type association in a client-server network
US7117243B2 (en) Methods for distributed program execution with file-type association in a client-server network
JP5993947B2 (en) Use native viewer for service results from remote desktop
US7330872B2 (en) Method for distributed program execution with web-based file-type association
US6952714B2 (en) Method for distributed program execution with server-based file type association
CA2237333C (en) A method and apparatus for making a hypermedium interactive
US20070260702A1 (en) Web browser architecture for virtual machine access
CN113296798B (en) Service deployment method, device and readable storage medium
JP2011523472A (en) Method and system for efficiently managing and configuring virtual servers
HU228610B1 (en) Method of identity-based distributed computing for device resources in a computing environment, as well as a computer-readable medium and system
AU2002332001A1 (en) Methods for distributed program execution with file-type association in a client-server network
US10237344B2 (en) Copy/paste files between remote agent and local machine in HTML5 view desktop
KR102102169B1 (en) Appratus for a virtual desktop service and method thereof
CN105389096A (en) Browser based data interaction method and apparatus
US7860987B2 (en) Apparatus for providing service in response to user request and method therefor
TW201007567A (en) Method, server and system for converging desktop application and Web application
CN115237540A (en) Data processing method, device, equipment and storage medium
TW201011554A (en) Internet server system and method for installing files remotely thereof