CN101378400B - 实现桌面应用和Web应用聚合的方法、服务器和系统 - Google Patents

实现桌面应用和Web应用聚合的方法、服务器和系统 Download PDF

Info

Publication number
CN101378400B
CN101378400B CN2007101471187A CN200710147118A CN101378400B CN 101378400 B CN101378400 B CN 101378400B CN 2007101471187 A CN2007101471187 A CN 2007101471187A CN 200710147118 A CN200710147118 A CN 200710147118A CN 101378400 B CN101378400 B CN 101378400B
Authority
CN
China
Prior art keywords
desktop application
server
web
corresponding host
host server
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN2007101471187A
Other languages
English (en)
Other versions
CN101378400A (zh
Inventor
方兴
王庆波
邱杰
陈滢
叶萌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Green City Plaza Co.,Ltd.
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN2007101471187A priority Critical patent/CN101378400B/zh
Priority to US12/675,456 priority patent/US11240287B2/en
Priority to PCT/EP2008/061313 priority patent/WO2009027474A2/en
Priority to JP2010522372A priority patent/JP5373796B2/ja
Priority to KR1020107003789A priority patent/KR20100063033A/ko
Publication of CN101378400A publication Critical patent/CN101378400A/zh
Priority to US13/534,819 priority patent/US9047130B2/en
Application granted granted Critical
Publication of CN101378400B publication Critical patent/CN101378400B/zh
Priority to US14/717,874 priority patent/US9661060B2/en
Priority to US15/600,259 priority patent/US10051032B2/en
Priority to US16/012,318 priority patent/US10609112B2/en
Priority to US17/543,132 priority patent/US20220094737A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Abstract

本发明提供了用于实现桌面应用和Web应用的聚合的方法、Web服务器以及计算机系统。该方法包括:响应于客户端用户对使用某一目标桌面应用的请求,在Web服务器上启动桌面应用初始化处理,为用户确定一个适当的相应宿主服务器;在该相应宿主服务器上准备和提供桌面应用环境,并启动所述目标桌面应用;向客户端传送相应宿主服务器的地址,以便使客户端和相应宿主服务器之间进行桌面应用交互;以及响应于客户端用户结束桌面应用交互,在相应宿主服务器上停止并退出目标桌面应用。根据本发明,向客户端用户提供了访问桌面应用和Web应用的统一的Web控制平台,并且可在桌面应用和Web应用之间共享Web文件。

Description

实现桌面应用和Web应用聚合的方法、服务器和系统
技术领域
本发明总体上涉及计算机技术领域,更具体来说,涉及用于实现桌面应用和Web应用聚合的方法、服务器和系统。
背景技术
在当今的信息技术领域中,Web技术由于其具有简单、轻型并且基于开放性标准等特点而得到了广泛的使用。越来越多的软件厂商正在致力于开发他们的基于Web技术的应用。与传统的桌面应用相比,Web应用具有大量优点,例如,Web应用不需要进行软件安装和维护,这使得易于对Web应用进行分发。
但是,Web应用也具有其局限性。它的一个主要问题在于,基于超文本标记语言(HTML)的用户界面不能支持高级的用户交互。由于这个问题的存在,使得很多情况下仍然需要使用桌面应用。在某些情况下,终端用户需要在Web应用和桌面应用之间进行切换以便完成他的工作。例如,当用户正在编辑他的博客(BLOG)时,如果用户希望向博客中添加某些照片或图片,那么用户首先要查找所需的某些照片或图片,然后可能还需要对其进行编辑。为此,用户必须安装一个照片或图片编辑软件(属于桌面应用)。此后,用户还需要把编辑后的照片或图片上载到Web应用中。但是,由于存在某些原因,可能会导致用户的体验不是那么良好,例如,所述原因可能包括:(1)用户体验的完整性被破坏了;(2)用户可能必须在不同的控制台之间进行切换;(3)Web应用的数据和桌面应用的数据不能共享;(4)用户必须安装所需的桌面应用,并且还可能需要对其进行定期维护。
为了增强Web应用的能力,目前已经广泛地使用了诸如Javascript、AJAX、ActiveX和Applet等之类的技术。对于Java script/AJAX方法而言,其想法是借助于Java script来编写Web应用,其中Javascript是一种用于提供交互式编程特征的脚本语言。但是,使用Javascript也存在很大限制。例如,第一个限制方面在于,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示出了一个可以在其中应用根据本发明的优选实施例的计算机系统的系统框图;
图2进一步详细示出了如图1所示的计算机系统中所包含的各个组件;
图3示出了其中集成了桌面应用的用户界面的一个示例性Web应用页面布局;
图4较为简单地示出了如图2所示的计算机系统在桌面应用初始化过程中的用户交互和会话复制处理;
图5示出了根据本发明实施例在桌面应用初始化期间所执行的处理500的流程图;
图6示出了根据本发明实施例在桌面应用退出期间所执行的处理600的流程图;
图7的流程图比较详细地示出了根据本发明实施例在图5所示的处理500中的资源分配和提供步骤S520的具体处理过程700;以及
图8示出了应用根据本发明的方法和系统时的示例性的客户端计算机屏幕截图。
具体实施方式
在下文中将结合附图对本发明的示例性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。但是,应该了解,在开发任何这种实际实施例的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符合与系统及业务相关的那些限制条件等,其中这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。
在此,还需要说明的一点是,为了避免因为不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其他细节。
下面参考附图对根据本发明的优选实施例进行详细描述。
首先,参见图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初始化请求:
     <initializereq>
       <application name=“Photoshop”version=“7.0”vendor=“Adobe”>
    <file url=“/images/header.j pg”location=“crl.ibm.com:/shared/
myproject/header.jpg”synchronization_interval=10s refresh=true/>
         <file url=“/images/footer.j pg”location=“crl.ibm.com:/shared/
     myproject/footer.jpg”synchronization_interval=20s refresh=false/>
       </application>
       <application name=“Word”version=“2003”vendor=“Microsoft”>
    <file url=“/docs/news.doc”location=“crl.ibm.com:/shared/doc/
news.doc”/>
       </application>
       <session id=“DFAWER214ASDFD”/>
  <restore imageid=23>true</restore>
     </initializereq>
在桌面应用服务230针对上述初始化请求的初始化响应中,客户端可以知道是否成功地处理了所述请求。此外,还可以知道宿主服务器的地址,以便使客户端浏览器可以知道如何连接到宿主服务器。例如,下面是一个示例性的XML初始化响应:
<initializeresp>
  <result value=“success”appid=“1”/>
  <address value=“myhost:myport”/>
</initializeresp>
(2)桌面应用退出
当用户已经完成了对桌面应用的使用时,Web应用210可以请求退出桌面应用,以便可以回收相关的资源。退出请求中可以包括Web会话信息,以便使请求处理器240知道需要回收哪个宿主服务器。此外,退出请求中还可以包括备份选项,以便可以根据需要备份宿主服务器环境。例如,下面是一个示例性的XML退出请求:
<exitreq>
  <session id=“DFAWER214ASDFD”/>
  <backup>true</backup>
</exitreq>
在针对退出请求的退出响应中,Web应用210可以知道操作结果。例如,下面是一个示例性的XML退出响应:
<exitresp>
  <result value=“success”/>
  <image id=23/>
</exitresp>
(3)查询
查询功能可以使Web应用210检查当前环境的状态。例如,可以检查下列状态:
Figure G071E7118720070910D000101
可用的应用;
宿主服务器对于一个会话的运行状态。
在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所示的计算机系统在桌面应用初始化过程中的用户交互和会话复制处理。其中,正如以上所描述的那样,①表示使用会话令牌进行Web应用交互,②表示客户端在Web应用中请求桌面应用,③表示Web应用210将桌面应用初始化请求发送到桌面应用服务230,④表示准备桌面应用环境,即桌面应用初始化处理(其详细处理将在下文中参考图5所示的流程图加以详细说明),⑤表示桌面应用服务230对Web应用210做出响应,⑥表示Web应用210对浏览器做出响应,而⑦表示浏览器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以整机级别对其进行管理,这意味着:每次为单个用户仅仅分配一个物理服务器。而对于虚拟服务器而言,在其上运行虚拟服务器的主机平台可以由不同的用户共享。每个用户仅仅可以使用一个可能仅仅消耗部分物理服务器资源的虚拟服务器。可以在资源分配前在资源池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)读出并执行上述程序代码。
此时,只要该系统或者设备具有执行程序的功能,则本发明的实施方式不局限于程序,并且该程序也可以是任意的形式,例如,目标程序、解释器执行的程序或者提供给操作系统的脚本程序等。
上述这些机器可读存储介质包括但不限于:各种存储器和存储单元,半导体设备,磁盘单元例如光、磁和磁光盘,以及其它适于存储信息的介质等。
另外,客户计算机通过连接到因特网上的相应网站,并且将依据本发明的计算机程序代码下载和安装到计算机中然后执行该程序,也可以实现本发明。
最后,还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上虽然结合附图详细描述了本发明的实施例,但是应当明白,上面所描述的实施方式只是用于说明本发明,而并不构成对本发明的限制。对于本领域的技术人员来说,可以对上述实施方式做出各种修改和改变而不背离本发明的实质和范围。因此,本发明的范围仅由所附权利要求及其等效含义来限定。

Claims (20)

1.一种用于实现桌面应用和Web应用的聚合的方法,该Web应用包括在一个Web服务器中,该方法包括以下步骤:
响应于客户端用户在web应用中对使用某一目标桌面应用的请求,在Web服务器上启动桌面应用初始化处理,为用户确定一个适当的相应宿主服务器;
在该相应宿主服务器上准备和提供桌面应用环境,并启动所述目标桌面应用;
向客户端传送相应宿主服务器的地址,以便使客户端和相应宿主服务器之间进行桌面应用交互;以及
响应于桌面应用交互的结束,使所述目标桌面应用在相应宿主服务器上停止并退出。
2.根据权利要求1所述的方法,其中:在桌面应用交互期间,所述相应宿主服务器和Web服务器上的所有文件保持同步。
3.根据权利要求1所述的方法,进一步包括:在所述目标桌面应用退出后,存储所述相应宿主服务器的服务器映像,并释放所述相应宿主服务器。
4.根据权利要求1至3中任何一项所述的方法,其中,为用户确定一个适当的相应宿主服务器,包括:
如果确定当前在资源池中存在用于当前会话的宿主服务器,则将其确定为所述相应宿主服务器;
否则,根据所述目标桌面应用及其所需的操作系统信息,在资源池中查找一个匹配的宿主服务器,作为所述相应宿主服务器。
5.根据权利要求4所述的方法,其中,在该相应宿主服务器上准备和提供桌面应用环境,包括:
如果所述相应宿主服务器上还没有安装所述目标桌面应用,则根据需要,在该相应宿主服务器上安装所述目标桌面应用所需的操作系统;以及 
在所述相应宿主服务器上安装所述目标桌面应用,
其中,包括所述目标桌面应用在内的多种桌面应用及其所需操作系统的安装软件都存储在一个所述Web服务器可访问的储存库中。
6.根据权利要求1至3中任何一项所述的方法,其中,在客户端首次请求使用桌面应用的情况下,在所述传送步骤中还同时向客户端传送浏览器插件,用于截取客户端的用户输入并且在客户端的Web浏览器中显示所述相应宿主服务器端的用户界面。
7.一种用于实现桌面应用和Web应用的聚合的Web服务器,该Web服务器与客户端以及一个或多个宿主服务器可通信地连接,并且包括Web应用模块和桌面应用服务模块,
其中,Web应用模块响应于客户端用户在web应用模块中对使用某一目标桌面应用的请求,而生成桌面应用初始化请求,并且响应于桌面应用交互的结束,而生成桌面应用退出请求,
桌面应用服务模块响应于桌面应用初始化请求,在Web服务器上启动桌面应用初始化处理,为用户确定一个适当的相应宿主服务器,在其上准备和提供桌面应用环境,以便由相应宿主服务器启动目标桌面应用,并且向客户端传送所述相应宿主服务器的地址,以便使客户端和相应宿主服务器之间进行桌面应用交互,以及
桌面应用服务模块响应于桌面应用退出请求,在相应宿主服务器上停止并退出所述目标桌面应用。
8.根据权利要求7所述的Web服务器,其中,所述桌面应用服务模块进一步包括:
请求处理器,用于接收来自Web应用模块的请求并对其做出响应;
会话管理器,用于维护和保存用户会话信息;
资源管理器,用于对所述一个或多个宿主服务器进行资源分配和释放管理;以及
部署控制器,用于在所述一个或多个宿主服务器上自动安装远程系统,以准备和提供宿主服务器环境, 
其中,请求处理器响应于桌面应用初始化请求,检查会话管理器以确定是否存在用于当前会话的正在运行的宿主服务器,如果不存在,则请求资源管理器根据所述目标桌面应用及其所需的操作系统信息从所述一个或多个宿主服务器中确定一个匹配的宿主服务器,作为所述相应宿主服务器,
请求处理器响应于桌面应用退出请求,使部署控制器清理所述相应宿主服务器,并且使资源管理器释放所述相应宿主服务器。
9.根据权利要求8所述的Web服务器,其中,所述桌面应用服务模块进一步包括文件控制器,文件控制器与所述相应宿主服务器可通信地连接,使相应宿主服务器和Web服务器上的文件在桌面应用交互期间保持同步。
10.根据权利要求8或9所述的Web服务器,其中,在退出所述目标桌面应用后,所述部署控制器把所述相应宿主服务器的映像存储到一个储存库中。
11.根据权利要求8或9所述的Web服务器,其中,如果所述相应宿主服务器上没有安装所述目标桌面应用,则所述部署控制器根据需要在该相应宿主服务器上安装所述目标桌面应用所需的操作系统,并且安装所述目标桌面应用,其中包括所述目标桌面应用在内的多种桌面应用及其操作系统的安装软件都存储在一个储存库中。
12.根据权利要求7至9中任何一项所述的Web服务器,其中,在客户端首次请求使用桌面应用的情况下,Web应用模块在传送相应宿主服务器的地址的同时还向客户端传送浏览器插件,用于截取客户端的用户输入并且在客户端的Web浏览器中显示所述相应宿主服务器端的用户界面。
13.一种用于桌面应用和Web应用的聚合的计算机系统,包括:
其上安装有Web浏览器的客户端;
一个或多个宿主服务器,包括用于捕获宿主服务器的用户界面的终端服务模块和用于在宿主服务器上启动桌面应用的控制代理模块;
Web服务器,与所述客户端以及一个或多个宿主服务器可通信地 连接,并且包括Web应用模块和桌面应用服务模块,
其中,Web应用模块响应于客户端用户在web应用模块中经由Web浏览器对使用某一目标桌面应用的请求,生成桌面应用初始化请求,并且响应于客户端用户结束桌面应用的请求,生成桌面应用退出请求,
桌面应用服务模块响应于桌面应用初始化请求,启动桌面应用初始化处理,为用户确定一个适当的相应宿主服务器,并且在其上准备和提供桌面应用环境,使控制代理模块在该相应宿主服务器上启动所述目标桌面应用,并且由Web应用模块将相应宿主服务器的地址发送到客户端,
客户端上启动浏览器插件,以截取客户端的用户输入并将其提供给相应宿主服务器上的终端服务模块,并且在Web浏览器中显示所述相应宿主服务器端的用户界面,
通过所述浏览器插件与相应宿主服务器上的终端服务模块,在客户端和相应宿主服务器之间进行桌面应用交互,以及
桌面应用服务模块响应于桌面应用退出请求,在相应宿主服务器上停止并退出所述目标桌面应用。
14.根据权利要求13所述的计算机系统,其中,在桌面应用交互结束之后,Web服务器通过桌面应用服务模块清理并释放所述相应宿主服务器。
15.根据权利要求13所述的计算机系统,进一步包括:
映像储存库,用于存储宿主服务器的服务器映像;以及
软件储存库,用于存储包括所述目标桌面应用在内的多种桌面应用及其所需操作系统的安装软件。
16.根据权利要求15所述的计算机系统,其中,所述映像储存库和所述软件储存库是同一个储存库。
17.根据权利要求13至16中任何一项所述的计算机系统,其中,所述一个和多个宿主服务器是不同类型的独立的物理服务器,或者是共享同一物理服务器资源的虚拟服务器。 
18.根据权利要求13至16中任何一项所述的计算机系统,其中,所述桌面应用服务模块进一步包括:
请求处理器,用于接收来自Web应用模块的请求并对其做出响应;
会话管理器,用于维护和保存用户会话信息;
资源管理器,用于对所述一个或多个宿主服务器进行资源分配和释放管理;以及
部署控制器,用于在宿主服务器上自动地安装远程系统,以准备和提供宿主服务器环境,
其中,请求处理器响应于桌面应用初始化请求,检查会话管理器以确定是否存在用于当前会话的正在运行的宿主服务器,如果不存在,则请求资源管理器根据所述目标桌面应用及其所需的操作系统信息从所述一个或多个宿主服务器中确定一个匹配的宿主服务器,作为所述相应宿主服务器,
请求处理器响应于桌面应用退出请求,使部署控制器清理所述相应宿主服务器,并且使资源管理器释放所述相应宿主服务器。
19.根据权利要求18所述的计算机系统,其中,所述控制代理模块还用于跟踪宿主服务器上的文件修改或改变,并且所述桌面应用服务模块还包括文件控制器,用于与控制代理模块进行通信,以使宿主服务器和Web服务器上的文件在桌面应用交互期间保持同步。
20.根据权利要求13至16中任何一项所述的计算机系统,其中,所述浏览器插件、所述终端服务模块和/或所述控制代理模块使用VNC技术、视窗远程桌面技术、XWindows技术或者Java技术中的任意一种技术实现。 
CN2007101471187A 2007-08-30 2007-08-30 实现桌面应用和Web应用聚合的方法、服务器和系统 Active CN101378400B (zh)

Priority Applications (10)

Application Number Priority Date Filing Date Title
CN2007101471187A CN101378400B (zh) 2007-08-30 2007-08-30 实现桌面应用和Web应用聚合的方法、服务器和系统
PCT/EP2008/061313 WO2009027474A2 (en) 2007-08-30 2008-08-28 Method, server and system for converging desktop application and web application
JP2010522372A JP5373796B2 (ja) 2007-08-30 2008-08-28 デスクトップ・アプリケーションとウェブ・アプリケーションとを1つにまとめるための方法、サーバ、及びシステム
KR1020107003789A KR20100063033A (ko) 2007-08-30 2008-08-28 데스크톱 애플리케이션과 웹 애플리케이션을 통합하기 위한 방법, 서버 및 시스템
US12/675,456 US11240287B2 (en) 2007-08-30 2008-08-28 Method, server and system for converging desktop application and web application
US13/534,819 US9047130B2 (en) 2007-08-30 2012-06-27 Method, server and system for converging desktop application and web application
US14/717,874 US9661060B2 (en) 2007-08-30 2015-05-20 Method, server and system for converging desktop application and web application
US15/600,259 US10051032B2 (en) 2007-08-30 2017-05-19 Method, server and system for converging desktop application and web application
US16/012,318 US10609112B2 (en) 2007-08-30 2018-06-19 Method, server and system for converging desktop application and web application
US17/543,132 US20220094737A1 (en) 2007-08-30 2021-12-06 Method, server and system for converging desktop application and web application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101471187A CN101378400B (zh) 2007-08-30 2007-08-30 实现桌面应用和Web应用聚合的方法、服务器和系统

Publications (2)

Publication Number Publication Date
CN101378400A CN101378400A (zh) 2009-03-04
CN101378400B true CN101378400B (zh) 2013-01-30

Family

ID=40303469

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101471187A Active CN101378400B (zh) 2007-08-30 2007-08-30 实现桌面应用和Web应用聚合的方法、服务器和系统

Country Status (5)

Country Link
US (6) US11240287B2 (zh)
JP (1) JP5373796B2 (zh)
KR (1) KR20100063033A (zh)
CN (1) CN101378400B (zh)
WO (1) WO2009027474A2 (zh)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101378400B (zh) 2007-08-30 2013-01-30 国际商业机器公司 实现桌面应用和Web应用聚合的方法、服务器和系统
US8595714B1 (en) * 2009-03-04 2013-11-26 Amazon Technologies, Inc. User controlled environment updates in server cluster
US10079716B2 (en) 2009-03-04 2018-09-18 Amazon Technologies, Inc. User controlled environment updates in server cluster
US8676946B1 (en) 2009-03-10 2014-03-18 Hewlett-Packard Development Company, L.P. Warnings for logical-server target hosts
US9547455B1 (en) 2009-03-10 2017-01-17 Hewlett Packard Enterprise Development Lp Allocating mass storage to a logical server
CN101504616B (zh) * 2009-03-23 2011-08-10 金蝶软件(中国)有限公司 一种从Web应用登录Windows应用程序的方法及装置
US9678736B2 (en) * 2009-09-14 2017-06-13 The Directv Group, Inc. Method and system for updating a software image at a client device
CN102193953B (zh) * 2010-03-17 2017-04-12 日电(中国)有限公司 桌面应用迁移系统和方法
US8595551B2 (en) 2010-06-11 2013-11-26 Microsoft Corporation Web application transitioning and transient web applications
US9164671B2 (en) 2010-06-11 2015-10-20 Microsoft Technology Licensing, Llc Web application navigation domains
US8793650B2 (en) 2010-06-11 2014-07-29 Microsoft Corporation Dynamic web application notifications including task bar overlays
US8863001B2 (en) 2010-06-11 2014-10-14 Microsoft Corporation Web application home button
US8671384B2 (en) 2010-06-11 2014-03-11 Microsoft Corporation Web application pinning including task bar pinning
US20130204995A1 (en) * 2010-06-18 2013-08-08 Nokia Siemens Networks Oy Server cluster
WO2011160139A1 (en) 2010-06-18 2011-12-22 Sweetlabs, Inc. Systems and methods for integration of an application runtime environment into a user computing environment
US9411517B2 (en) * 2010-08-30 2016-08-09 Vmware, Inc. System software interfaces for space-optimized block devices
KR101471366B1 (ko) 2010-09-30 2014-12-10 에스케이플래닛 주식회사 단말기에 따른 적응적 화면 가상화 방법 및 시스템
US9176742B2 (en) 2010-12-27 2015-11-03 Microsoft Technology Licensing, Llc Converting desktop applications to web applications
KR101847073B1 (ko) 2011-02-11 2018-05-29 삼성전자주식회사 프로세싱 디바이스에서의 컨텐트 관리 방법 및 그 장치
DE102011011400B4 (de) * 2011-02-17 2012-10-11 Innoroute Gmbh Verfahren und Anordnung zur Vermeidung von Überlast auf der Teilnehmeranschlussleitung
CN102209115A (zh) * 2011-05-26 2011-10-05 华中科技大学 一种虚拟桌面系统中不同用户之间的协同方法
CN102937911B (zh) * 2011-08-16 2017-09-19 南京中兴新软件有限责任公司 虚拟机资源的管理方法及系统
JP2013058006A (ja) * 2011-09-07 2013-03-28 Fuji Xerox Co Ltd 情報処理装置及び情報処理プログラム
CN103188307A (zh) * 2011-12-30 2013-07-03 旭智科技(深圳)有限公司 新型云应用方法及系统
CN103197951B (zh) * 2012-01-04 2017-11-03 腾讯科技(深圳)有限公司 一种搭建应用运行环境的方法及装置
CN103327051A (zh) * 2012-03-22 2013-09-25 鸿富锦精密工业(深圳)有限公司 远程桌面管理系统及方法
CN102711094A (zh) * 2012-05-17 2012-10-03 惠州Tcl移动通信有限公司 一种数据备份和恢复的方法、系统和移动终端
US8775917B2 (en) 2012-08-09 2014-07-08 Sweetlabs, Inc. Systems and methods for alert management
US8775925B2 (en) 2012-08-28 2014-07-08 Sweetlabs, Inc. Systems and methods for hosted applications
US9081757B2 (en) 2012-08-28 2015-07-14 Sweetlabs, Inc Systems and methods for tracking and updating hosted applications
CN103180851B (zh) * 2012-08-31 2016-05-25 华为技术有限公司 网络平台操作方法和网络平台设备
US9069735B2 (en) 2012-10-15 2015-06-30 Sweetlabs, Inc. Systems and methods for integrated application platforms
CN103067352B (zh) * 2012-10-26 2017-12-05 曙光信息产业(北京)有限公司 用于云计算环境中的WebService访问系统和方法
WO2014071764A1 (zh) * 2012-11-09 2014-05-15 北京奇虎科技有限公司 客户端浏览器、服务器端浏览器及其实现方法
US9692854B2 (en) * 2013-01-23 2017-06-27 Facebook, Inc. Communication between a web-based application and a desktop application
US9002982B2 (en) * 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
KR102015108B1 (ko) * 2013-03-12 2019-10-22 한국전자통신연구원 이종 서비스 간 서비스 제공 방법과 사용자 단말 및 웹 서버
US9686323B1 (en) * 2013-03-14 2017-06-20 Teradici Corporation Method and apparatus for sequencing remote desktop connections
CN103209178B (zh) * 2013-03-15 2016-09-14 汉柏科技有限公司 CloudStack平台上兼容SPICE协议的方法
KR101794222B1 (ko) * 2013-04-09 2017-11-07 사이트릭스 시스템스, 인크. 클라우드-동기화 데이터를 사용하는 네이티브 데스크탑 제공 방법, 장치 및 컴퓨터 판독 가능 저장매체
CN103220289A (zh) * 2013-04-15 2013-07-24 北京京东尚科信息技术有限公司 基于web应用的资源验证系统和方法
JP6221395B2 (ja) * 2013-06-20 2017-11-01 富士ゼロックス株式会社 情報処理システム、クライアント装置、サーバ装置およびプログラム
CN103345406A (zh) * 2013-06-21 2013-10-09 中国科学院深圳先进技术研究院 一种实现智能移动终端的云端虚拟移动终端的系统和方法
CN104427529B (zh) * 2013-08-26 2018-04-27 联想(北京)有限公司 一种信息处理方法和终端
CN104424043B (zh) * 2013-09-02 2017-11-28 深圳中兴网信科技有限公司 一种应用平台与插件间异常隔离的方法及系统
US20150106425A1 (en) * 2013-10-10 2015-04-16 International Business Machines Corporation Performance Optimization in a Secured Computing Environment
US9749440B2 (en) 2013-12-31 2017-08-29 Sweetlabs, Inc. Systems and methods for hosted application marketplaces
US10310911B2 (en) 2014-03-14 2019-06-04 Google Llc Solver for cluster management system
US10089098B2 (en) 2014-05-15 2018-10-02 Sweetlabs, Inc. Systems and methods for application installation platforms
US10019247B2 (en) 2014-05-15 2018-07-10 Sweetlabs, Inc. Systems and methods for application installation platforms
CN104158836B (zh) * 2014-06-23 2018-05-01 浙江大学城市学院 一种通过数据渲染移动应用界面的方法
US10108408B2 (en) 2014-06-26 2018-10-23 Vmware, Inc. Converting desktop applications into cloud services
US9134963B1 (en) * 2014-07-03 2015-09-15 U3D Limited Method of unifying information and tool from a plurality of information sources
US9626157B2 (en) * 2014-07-03 2017-04-18 Able World International Limited Method of projecting a workspace and system using the same
US11687325B2 (en) * 2014-07-03 2023-06-27 Able World International Limited Method for constructing an interactive digital catalog, and computer-readable storage medium and interactive digital catalog using the same
US10185706B2 (en) * 2014-10-10 2019-01-22 Aktiebolaget Skf Generating web browser views for applications
CN105573577B (zh) * 2014-10-15 2019-03-05 航天信息股份有限公司 远程监控方法、装置及系统
CN104394133B (zh) * 2014-11-14 2017-12-22 百度在线网络技术(北京)有限公司 登录方法和登录系统
CN104468592B (zh) * 2014-12-12 2017-10-31 北京百度网讯科技有限公司 登录方法和登录系统
CN105763591B (zh) * 2014-12-19 2019-07-26 阿里巴巴集团控股有限公司 一种数据通信方法和装置
US9953018B2 (en) 2015-05-01 2018-04-24 Microsoft Technology Licensing, Llc Transfer of content between documents of different storage types
CN105956110A (zh) * 2016-05-04 2016-09-21 北京思特奇信息技术股份有限公司 一种分布式文件同步系统及方法
US10334462B2 (en) 2016-06-23 2019-06-25 Bank Of America Corporation Predictive analytics for resource development based on information communicated from inter-related communication devices
US10439913B2 (en) 2016-07-01 2019-10-08 Bank Of America Corporation Dynamic replacement and upgrade of existing resources based on resource utilization
CN105979011A (zh) * 2016-07-08 2016-09-28 贵州天霆云计算科技有限公司 一种基于浏览器的远程桌面呈现和web应用无缝集成方法
CN106598642B (zh) * 2016-11-07 2020-05-15 北京奇虎科技有限公司 在插件中使用服务的方法及装置
US10521222B2 (en) 2017-01-17 2019-12-31 Bank Of America Corporation Hybrid system for remote application development
CN106888222B (zh) * 2017-04-24 2020-08-18 中国工商银行股份有限公司 一种防止恶意安全检测活动的监控方法及装置
CN107291409B (zh) * 2017-05-10 2020-06-19 北京西会科技有限公司 一种在线桌面共享方法、系统
US10628181B2 (en) 2017-07-19 2020-04-21 Vmware, Inc. Redirecting multimedia output of a virtual desktop to a mobile device using image scanning
US10620976B2 (en) 2017-07-19 2020-04-14 Vmware, Inc. Redirecting multimedia captured on a mobile device to a virtual desktop using image scanning
US10623500B2 (en) * 2018-01-24 2020-04-14 Vmware, Inc. Remote desktop sharing and collaboration via image scanning
US10693945B2 (en) 2018-01-24 2020-06-23 Vmware, Inc. File and folder redirection for virtual desktops via image scanning
CN110278235A (zh) * 2018-03-16 2019-09-24 上海远动科技有限公司 基于云技术的scada移动监控桌面系统
CN108897605B (zh) * 2018-07-24 2022-03-08 北京万相融通科技股份有限公司 一种桌面应用程序嵌入网页的方法及装置
CN110806904B (zh) * 2018-08-06 2023-04-07 阿里巴巴集团控股有限公司 对门店系统中的应用程序进行配置项处理的方法及装置
CN110825537B (zh) * 2019-11-04 2023-03-14 联思智云(北京)科技有限公司 基于c/s架构的远程应用的调用方法、装置和设备
CN111510472A (zh) * 2020-03-11 2020-08-07 苏州浪潮智能科技有限公司 一种客户端集群管理方法、系统、终端及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1517870A (zh) * 2003-01-21 2004-08-04 微软公司 由应用程序提供直接访问功能的系统和方法
EP1755041A2 (en) * 2001-10-02 2007-02-21 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5799147A (en) * 1994-10-19 1998-08-25 Shannon; John P. Computer recovery backup method
US6950991B2 (en) * 1995-11-13 2005-09-27 Citrix Systems, Inc. Interacting with software applications displayed in a web page
US7555529B2 (en) * 1995-11-13 2009-06-30 Citrix Systems, Inc. Interacting with software applications displayed in a web page
US6415319B1 (en) * 1997-02-07 2002-07-02 Sun Microsystems, Inc. Intelligent network browser using incremental conceptual indexer
US6101485A (en) * 1998-03-26 2000-08-08 International Business Machines Corporation Electronic solicitations for internet commerce
US6598067B1 (en) * 1999-07-26 2003-07-22 American Management Systems, Inc. Application server framework
US6981041B2 (en) 2000-04-13 2005-12-27 Aep Networks, Inc. Apparatus and accompanying methods for providing, through a centralized server site, an integrated virtual office environment, remotely accessible via a network-connected web browser, with remote network monitoring and management capabilities
US6823373B1 (en) 2000-08-11 2004-11-23 Informatica Corporation System and method for coupling remote data stores and mobile devices via an internet based server
KR100595066B1 (ko) * 2001-07-20 2006-06-30 엘지전자 주식회사 디지털 아이템 생성방법
US7330872B2 (en) * 2001-10-02 2008-02-12 Citrix Systems, Inc. Method for distributed program execution with web-based file-type association
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
US7370120B2 (en) 2001-12-07 2008-05-06 Propel Software Corporation Method and system for reducing network latency in data communication
US7096249B2 (en) * 2002-03-29 2006-08-22 Intel Corporation Method and system for distributing applications
US7577722B1 (en) * 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
US7284054B2 (en) 2003-04-11 2007-10-16 Sun Microsystems, Inc. Systems, methods, and articles of manufacture for aligning service containers
US7263555B2 (en) * 2003-04-30 2007-08-28 International Business Machines Corporation Apparatus and method for dynamic sharing of server network interface resources
US7412625B2 (en) 2003-05-27 2008-08-12 American Megatrends, Inc. Method and system for remote software debugging
US7324648B1 (en) 2003-07-08 2008-01-29 Copyright Clearance Center, Inc. Method and apparatus for secure key delivery for decrypting bulk digital content files at an unsecure site
US7373330B1 (en) 2003-07-08 2008-05-13 Copyright Clearance Center, Inc. Method and apparatus for tracking and controlling e-mail forwarding of encrypted documents
US7350201B2 (en) * 2003-10-23 2008-03-25 International Business Machines Corporation Software distribution application supporting operating system installations
US7827590B2 (en) 2003-12-10 2010-11-02 Aventail Llc Controlling access to a set of resources in a network
US7950026B1 (en) 2004-06-24 2011-05-24 Julian Michael Urbach Virtual application execution system and method
US20060132489A1 (en) * 2004-12-21 2006-06-22 Hewlett-Packard Development Company, L.P. Remote computing
US8549149B2 (en) 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US7698430B2 (en) * 2005-03-16 2010-04-13 Adaptive Computing Enterprises, Inc. On-demand compute environment
US7757239B2 (en) * 2005-08-29 2010-07-13 Sap Ag Systems and methods for suspending and resuming of a stateful web application
US7992091B2 (en) * 2006-03-30 2011-08-02 At&T Intellectual Property I, L.P. Message-oriented divergence and convergence of message documents
US20070260702A1 (en) 2006-05-03 2007-11-08 University Of Washington Web browser architecture for virtual machine access
US7620899B2 (en) 2006-06-30 2009-11-17 Microsoft Corporation Windows display synchronization
US20080313545A1 (en) 2007-06-13 2008-12-18 Microsoft Corporation Systems and methods for providing desktop or application remoting to a web browser
CN101378400B (zh) 2007-08-30 2013-01-30 国际商业机器公司 实现桌面应用和Web应用聚合的方法、服务器和系统
US8176482B1 (en) 2008-03-28 2012-05-08 Symantec Corporation Methods and systems for inserting software applications into images

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1755041A2 (en) * 2001-10-02 2007-02-21 Citrix Systems, Inc. Methods for distributed program execution with file-type association in a client-server network
CN1517870A (zh) * 2003-01-21 2004-08-04 微软公司 由应用程序提供直接访问功能的系统和方法

Also Published As

Publication number Publication date
JP5373796B2 (ja) 2013-12-18
US10609112B2 (en) 2020-03-31
US20100313199A1 (en) 2010-12-09
KR20100063033A (ko) 2010-06-10
CN101378400A (zh) 2009-03-04
US20170257417A1 (en) 2017-09-07
WO2009027474A3 (en) 2009-04-16
US20180302458A1 (en) 2018-10-18
US10051032B2 (en) 2018-08-14
JP2011502291A (ja) 2011-01-20
US20220094737A1 (en) 2022-03-24
US9047130B2 (en) 2015-06-02
WO2009027474A2 (en) 2009-03-05
US20120297377A1 (en) 2012-11-22
US9661060B2 (en) 2017-05-23
US11240287B2 (en) 2022-02-01
US20150256590A1 (en) 2015-09-10

Similar Documents

Publication Publication Date Title
CN101378400B (zh) 实现桌面应用和Web应用聚合的方法、服务器和系统
US8413139B2 (en) Programming model for application and data access and synchronization within virtual environments
EP2021937B1 (en) Techniques to perform gradual upgrades
CN1959658B (zh) 本地供应便携式设备的设备驱动的方法和系统
CN109983434A (zh) 用于在操作系统的初始机器配置期间消除重启的系统和方法
CN101374146B (zh) 对物理计算机系统的虚拟表示的按需访问
KR100992030B1 (ko) 포틀릿 구성 데이터 교환 방법
CN101523358A (zh) 文件系统目录的快速、可靠同步
EP2005333A1 (en) Method and system for adjusting environment settings to the capabilities of a client device
JP2009507270A (ja) パーソナルインターネットコミュニケータのための検証されたコンピューティング環境
US8458693B2 (en) Transitioning from static to dynamic cluster management
CN102135895B (zh) web系统升级方法及web系统
CN104202332A (zh) 基于Linux内核的移动设备虚拟化系统及即时安装方法
CN102662884A (zh) 一种基于网络的设备驱动程序配置方法
CN105389096A (zh) 基于浏览器的数据交互方法及装置
TW200933381A (en) System and method for running a web-based application while offline
TWI505188B (zh) 用於聚合桌面應用程式與網路應用程式的方法、伺服器及系統
US20050108358A1 (en) Web enabled peripheral device, method of using a web enabled peripheral device, and method of manufacturing and supporting a web enabled peripheral device
US20110099276A1 (en) System and method for enabling software applications as a service in a non-intrusive manner
Viitanen Integrating two digital signage management systems: case: FirstView MediaCloud and Samsung MagicINFO
JP4100094B2 (ja) コンテンツ管理装置、コンテンツ提供システム及び管理装置制御プログラム
CN105103129A (zh) 将计算设备的功能资源与基于网络的编程资源一起使用
Lin Preliminary design and implementation for HSOS data archive system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210507

Address after: Tortola Island, British Virgin Islands

Patentee after: Green City Plaza Co.,Ltd.

Address before: New York, USA

Patentee before: International Business Machines Corp.

TR01 Transfer of patent right