专利名称:将桌面应用转换为网络应用的方法和系统的制作方法
技术领域:
本发明一般地涉及计算机网络技术,更具体而言,涉及将桌面应用转换为网络应用的方法和系统。
背景技术:
随着云计算和互联网的发展,人们越来越希望随时随地享受服务。但是,现存的大 量桌面应用(单机版或者客户端-服务器版)都要求用户必须先安装客户端才可以做相应 的操作,因而不能随时随地提供服务。如果将已有的系统废弃掉,重新开发一套功能完全一 致的浏览器-服务器版本的系统,开发代价过于高昂,而且会造成原系统的浪费。所以,一 套高效的系统迁移方案将变得炙手可热。更重要的是,聚合(mashup)是云计算中很重要的一部分,它使得人们能够以更简 便的方式使用集成的多种服务。所以被迁移生成的网络应用不仅应该实现原系统的所有功 能,还应该可以被二次利用(即,改变布局风格,或者与其他网络资源聚合),这样才能真正 起到对原有应用的高效利用。现有的应用迁移系统主要包括两种情况一是有源代码的情况,在此情况下,如果 源代码是用简单的编程语言(例如PowerBuilder)书写的,则可能以半自动的形式生成其 对应的网络应用。否则开发人员必须完全看懂源代码,分析复杂的代码逻辑,才能在此基础 上重新进行开发。也就是说,开发人员必须深入了解原有应用的所有功能,并且对网络编程 十分精通。即使这样,完成所有功能的转化也是开发代价高昂,而且是非常耗时的。二是没 有源代码的情况,在此情况下,对于系统集成商来说,绝大多数的现有应用的源代码都是未 知的。因此,实现自动系统转换的唯一方法就是将现有桌面应用的图形用户界面(GUI)以 某种方式重绘到网页上,并且让原系统负责响应用户在网页上的各种操作。这类似于远程 桌面技术。本发明所提出的技术主要针对后一种情况。对于没有源代码的情况,2002年2月6日递交的题为“ Interactingwith Software Applications Displayed in a Web Page” 的美国专利申请 US6950991B2 提出了一种应用 迁移方法,该方法以远程桌面的方式将现有桌面应用的图形用户界面(GUI)的图片以一定 大小显示在客户端网页的某个位置上。图8和图9分别示出了该现有技术的系统结构框图 和工作流程图。如图8所示,在现有系统中,客户端80除了自带的浏览器之外,还具有以插件形 式安装的客户端代理810。客户端代理810包括监视单元801、命令单元802、消息发送单 元803和消息接收单元804。客户端代理810能够监视并响应与位于web浏览器窗口中的 一个或多个应用输出窗口相关联的事件,例如检测浏览器的用户输入的调整窗口大小的事 件,并作为响应调整相关应用输出窗口的大小。客户端代理810例如是响应于应用对象820 而执行/实例化的,其独立于浏览器执行各种功能。应用对象820例如是嵌入在web浏览 器窗口中所显示的网页中的ActiveX控件,它包括应用输出窗口的各种属性(例如位置、高 度、宽度、边界风格等等)、应用程序的名称以及执行应用的服务器的地址等等。监视单元801对客户端桌面进行监视(1)以检测影响应用输出窗口的各种改变(2)(例如键盘敲击、 鼠标点击、调整窗口大小事件等等)。命令单元802通过指令控制监视单元801、消息发送单 元803和消息接收单元804,并且能够将监视单元801检测到的事件通过消息发送单元803 发送到服务器90 (3、4)。例如,监视单元801可以向命令单元802报告发生在桌面上坐标 为(354,560)位置上的点击动作。命令单元802可以将该动作(事件)通过消息发送单元 803以消息形式发送到服务器端(5)。另外,命令单元802还负责根据消息接收单元10从 服务器接收到的窗口属性信息、图形数据和命令(10、11)来修改应用对象820的属性(12)。 例如,命令单元802可以指示浏览器根据应用对象的属性在网页中的特定位置上显示应用 输出窗口。 在服务器一端,服务器90可以包括请求接收单元901、应用运行单元902、⑶I屏 幕打印单元904、响应发送单元905以及(一个或多个)现有桌面应用903。请求接收单元 901接收由客户端代理810的消息发送单元803发送的事件(5),并将解析出的请求发送给 应用运行单元902 (6)。应用运行单元902负责根据接收到的事件启动或操作相应的应用。GUI屏幕打印单元904负责获取服务器的应用窗口的图形数据(即GUI)(8),并将其 发送给响应发送单元905 (9)。响应发送单元905将响应发送回客户端代理810 (10)。该响 应可以包括应用窗口的图形数据、窗口属性信息和命令。图9示出图8所示现有系统的工作流程。其中,步骤Sl和S2是步骤S3至S12的 预处理,所以在上述关于结构框图8的描述中没有对其进行说明。上述现有方案只是将服务器端桌面系统的图形界面以屏幕拷贝/截图方式传递 到浏览器端,并将用户对浏览器网页上图片的操作信息(动作/事件)以相对坐标信息的 形式传递回服务器。这样做虽然可以完全重现原有系统的交互界面,但是用户很难对这样 的网络应用进行聚合,因为从图片中很难得到它所包含的内容信息。另外,现有系统不能对 生成的网络应用的界面进行优化或者变更。
发明内容
本发明的目的在于提供一种将桌面应用转换为网络应用的方法和系统,方便获得 桌面应用的内容信息,并方便的对生成的网络应用的界面进行优化或变更。本发明所提出的系统迁移方案首先将现有桌面应用的图形界面信息自动转化为 界面描述性语言数据(例如可扩展标记语言(XML)GUI数据)用以描述GUI上所有元素的 信息,包括元素的标识、结构、内容、布局信息等。然后,在浏览器端对XML GUI数据进行解 析,并转化为网页。当用户在网页上操作某控件时,触发其对应的响应函数,响应函数将动作信息 (触发了哪个控件,动作是什么,以及相关的参数信息)以请求方式发回给服务器端的桌面 应用,并在桌面应用上重现该动作。在桌面应用的界面更新后,同样地,再以XML GUI数据 形式发给浏览器以进行界面更新。根据本发明第一方面,提供了一种用于将桌面应用转换为网络应用的方法,包括 在客户端输入希望调用的桌面应用的URL,并将其发送到服务器;服务器向客户端提供代 码转换工具(例如,包含在网页中的JavaScript代码或插件)并加载所需桌面应用;在服 务器端,抽取所加载的桌面应用的界面信息,将其封装成界面描述性语言格式数据(例如XMLGUI数据),并发送回所述客户端;以及在客户端,利用代码转换工具解析接收到的界面 描述性语言数据,将其翻译成相应的网页元素(例如HTML代码),从而显示该桌面应用。之 后,当用户在所显示的桌面应用上执行动作时,与该动作相对应的请求被发送到服务器;服 务器在所加载的桌面应用的界面上执行该动作并检测该动作引起的界面变化,抽取与界面 变化相对应的界面变化信息,将其封装成界面描述性语言格式数据,并发送回客户端;以及 在客户端,利用代码转换工具解析接收到的界面描述性语言格式数据,将其翻译成相应的 网页元素,并根据该网页元素更新所显示的桌面应用的相应部分。 根据本发明第二方面,提供了一种用于将桌面应用转换为网络应用的方法,包括 在客户端输入希望调用的桌面应用的URL,并将其发送到服务器;服务器加载所需桌面应 用;在服务器端,抽取桌面应用的界面信息,并将其封装成界面描述性语言格式数据(例如 XML⑶I数据);在服务器端,利用代码转换工具(例如,包含在网页中的JavaScript代码) 解析所封装的界面描述性语言格式数据,将其翻译成相应的网页元素(例如HTML代码),并 将网页元素发送回客户端;以及在客户端,根据接收到的网页元素显示桌面应用。之后,当 用户在所显示的桌面应用上执行动作时,与该动作相对应的请求被发送到服务器;在服务 器端,在所加载的桌面应用的界面上执行该动作并检测该动作引起的界面变化,抽取与变 化后的界面相对应的界面信息,并将其封装成界面描述性语言格式数据;在服务器端,利用 代码转换工具解析所封装的界面描述性语言格式数据,将其翻译成相应的网页元素,并将 网页元素发送回客户端;以及在客户端,根据接收到的网页元素,显示变化后的桌面应用界根据本发明第三方面,提供了一种用于将桌面应用转换为网络应用的系统,包括 客户端和服务器。其中,客户端包括请求发送单元,用于发送用户希望调用的桌面应用 的URL;以及数据接收单元,用于接收来自服务器的数据。服务器包括请求接收单元, 用于接收URL;工具提供单元,用于向客户端提供代码转换工具(例如,包含在网页中的 JavaScript代码或插件);应用驱动单元,用于加载桌面应用;界面抽取单元,用于抽取桌 面应用的界面信息,并将其封装成界面描述性语言格式数据(例如XML GUI数据);以及数 据发送单元,用于将界面抽取单元所封装的界面描述性语言格式数据发送回客户端。其中, 在客户端,利用代码转换工具解析数据接收单元接收到的界面描述性语言格式数据,以将 其翻译成相应的网页元素(例如HTML代码),并且客户端的浏览器根据网页元素显示桌面 应用。当用户在客户端上所显示的桌面应用上执行动作时,请求发送单元向服务器发送与 动作相对应的请求(例如http请求)。然后,在服务器端请求接收单元接收该http请求; 应用驱动单元在桌面应用的界面上执行请求所对应的动作;界面抽取单元检测动作引起的 界面变化,抽取与界面变化相对应的界面变化信息,并将其封装成界面描述性语言格式数 据;并且数据发送单元将界面描述性语言格式数据发送回客户端。然后,在客户端,利用代 码转换工具解析数据接收单元接收到的界面描述性语言格式数据,以将其翻译成相应的网 页元素,并且客户端的浏览器根据网页元素更新所显示的桌面应用的相应部分。根据本发明第四方面,提供了一种用于将桌面应用转换为网络应用的系统,包括 客户端和服务器。其中客户端包括请求发送单元,用于发送用户希望调用的桌面应用的 URL ;以及数据接收单元,用于接收来自服务器的数据。服务器包括请求接收单元,用于接 收URL;应用驱动单元,用于加载桌面应用;界面抽取单元,用于抽取桌面应用的界面信息,并将其封装成界面描述性语言格式数据(例如XML GUI数据);代码转换单元,用于解析界 面抽取单元所封装的界面描述性语言格式数据,以将其翻译成相应的网页元素(例如HTML 代码);以及数据发送单元,用于将网页元素发送回客户端。然后,客户端的浏览器根据接 收到的网页元素显示桌面应用。当用户在客户端上所显示的桌面应用上执行动作时,请求 发送单元向服务器发送与动作相对应的请求(例如http请求)。然后,在服务器端请求 接收单元接收该http请求;应用驱动单元在桌面应用的界面上执行请求所对应的动作;界 面抽取单元检测动作引起的界面变化,抽取与变化后的界面相对应的界面信息,并将其封 装成界面描述性语言格式数据;代码转换单元解析界面抽取单元所封装的界面描述性语言 格式数据,以将其翻译成相应的网页元素;并且数据发送单元将网页元素发送回客户端。然 后,在客户端,客户端的浏览器根据接收到的网页元素显示变化后的桌面应用界面。根据本发明,可以方便地从XML数据中得到界面包含的数据信息,从而可以对网 络应用进行聚合(例如可以对网页进行一系列的操作,将得到的结果信息输出给其他的网 络服务)。并且,可以对界面进行干预,以优化或改变交互界面。
结合附图,从下面对本发明实施例的详细描述,将更好地理解本发明,附图中类似 的参考标注指示类似的部分,其中图1是示出根据本发明第一实施例的桌面应用转化系统100的内部结构的框图;图IA是示出图1所示系统100的另一变化示例100A的内部结构的框图,其考虑 到服务器20可能与多个客户端10进行交互的情形;图2是示出图1所示系统100的桌面应用显示过程的流程图;图3是示出图1所示系统100的桌面应用更新过程的流程图;图4是示出根据本发明第二实施例的桌面应用转化系统400的内部结构的框图;图5是示出图4所示系统400的桌面应用显示过程的流程图;图6是示出图4所示系统400的桌面应用更新过程的流程图;图7是用于说明根据本发明第一和第二实施例的桌面应用转化系统的工作过程 的示意图;图8是示出现有技术系统的内部结构的框图;以及图9是示出图8所示现有技术系统的工作过程的流程图。
具体实施例方式下面将参考附图来详细描述根据本发明的用于将桌面应用转化为网络应用的方 法和系统。虽然在以下描述中以可扩展标记语言(XML)为例描述本发明的原理,但是本领 域技术人员通过阅读本说明可以知道,其他描述性语言也可以被应用到本发明。<第一实施例>图1是示出根据本发明第一实施例的桌面应用转化系统100的内部结构的框图。 对比图8示出的现有系统,可以发现,在根据本发明的桌面应用转化系统100中,客户端的 结构被大大简化,其中不再包括以插件形式出现的客户端代理。如图1所示,客户端10包 括请求发送单元101和数据接收单元102,请求发送单元101例如可以发送客户端希望调用的应用的URL,或在界面更新过程中发送与事件(例如动作)相对应的请求(例如http请 求)。数据接收单元102用于接收来自服务器的数据。在图1中,服务器20可以包括应用驱动单元201、请求接收单元202、工具提供单 元203、数据发送单元204、界面抽取单元205和界面修改单元206 (可选)。并且,服务器 20中还包括可以调用的现有桌面应用的集合。图IA是示出图1所示系统100的另一变化示例100A的内部结构的框图,其考虑 到服务器20可能与多个客户端10进行交互的情形。为了能够在多个客户端所调用的应用 之间进行区分,服务器20除了上述图1已经提到的组件之外,还包括用于存储应用对应表 208的存储器、表操作单元207以及会话ID (标识符)分配单元209。相应地,客户端10可 以另外包括会话ID接收单元103和会话ID插入单元104。为了描述的方便,图IA中仅仅 示出了与新增组件有信息交互的组件和部分,而其他与图1相同的组件在图IA中被省略。下面将参考图2和图3来描述根据本发明第一实施例的桌面应用转化系统 IOO(IOOA)的具体工作流程。为了更形象地展示本发明的操作过程,可以参考图7示出的示 例。首先,用户可以在浏览器的地址栏中输入希望调用的桌面应用的URL,例如URL: http //www. nec. com/App5。然后,参考图2,在步骤201中,客户端10可以通过请求发送单 元101将用户输入的桌面应用的URL发送到服务器20。在服务器20中,该URL被请求接收 单元202所接收。该URL中可以包含用于标识所需桌面应用的应用ID。例如,在图7所示 示例中,用户输入URL :http://www.nec. com/App5,此时相应的应用ID等于5。然后,在图 IA所示示例的情况下,为了能够在不同客户端所调用的应用之间进行区分。服务器20中还 维护有应用对应表208。因此,在步骤202中,服务器20的会话ID分配单元209向该客户 端10分配一个会话ID,用于标识服务器20与该特定客户端之间的会话。然后,表操作单元 207可以通过在应用对应表208中添加一个用于记录应用ID和会话ID之间的对应关系的 条目来更新应用对应表208。在步骤203中,分配给客户端10的会话ID被发送回相应客 户端。在接收到来自客户端的应用URL之后,服务器执行如下两方面操作(1)在步骤204, 工具提供单元203可以向客户端10提供代码转换工具,该代码转换工具可以是包含在空网 页中的JavaScript代码或者相应的插件信息(例如Active、Flash、Sliverlight、Applet 等),关于该代码转换工具的功能和作用,将在下文更详细描述;(2)在步骤205,根据从URL 中解析出的应用ID,应用驱动单元201可以从现有桌面应用集合中选择并加载相应的桌面 应用。在加载相应的桌面应用(例如应用ID = 5的应用)之后,在步骤206中,界面抽取 单元205抽取该桌面应用的界面信息,并将其封装成XML格式数据。XML数据描述了图形界 面所有元素的信息,包括唯一标识、属性(例如种类、大小、位置、内容等)和操作类型(例 如增加、删除、更新等)。可选地,在步骤207中,界面修改单元206可以对封装好的XML数 据进行修改以重定制桌面应用的⑶I。例如,可以通过修改XML数据来改变界面布局或增加 /减少功能。然后,在步骤208中,封装好的(或修改后的)XML数据通过数据发送单元204 被发送回客户端。在客户端,XML数据被数据接收单元102所接收,并被提供给先前接收到 的代码转换工具以进行代码转换(步骤209)。所述代码转换工具可以解析接收到的XML数 据,将其翻译成相应的界面元素信息,从而自动生成它们对应的网页(例如HTML数据)并
11根据网页上的控件类型,添加JavaScript代码作为它们的响应函数。如前所述,该代码转 换工具可以是包含在网页中的JavaScript代码或者相应的插件信息(例如ActiVe、FlaSh、 Sliverlight, Applet等)。在使用插件信息的情况下,服务器可以向客户端返回包含插件 的空网页。客户端在接收到该空网页时,首先判断是否先前已经安装了该插件。如果客户 端确定已经安装了插件,则可以直接调用该插件。如果客户端确定尚未安装插件,则可以通 过对话框询问用户是否需要安装该插件,若用户允许,则将插件安装到浏览器中。在一个实 施例中,XML数据的解析可以通过JavaScript的DOM技术来实现。例如,JavaScript可以 依次处理XML GUI数据中的每一个界面元素的信息(包括唯一标识、属性和操作类型)。如 果操作类型为“增加”,则通过界面元素类型(例如Autton/TextBox/List/...等)创建相 对应的网页元素(例如描述一个按钮的HTML代码,包括必要的属性)。然后记录该界面元 素和生成的网页元素的映射关系。如果操作类型为“删除”,则找到那个指定界面元素对应 的网页元素,在网页上删除该元素,并删除相应的映射关系。如果操作类型为“更新”,则找 到那个指定界面元素对应的网页元素,用接收到的元素属性来更新网页元素。并且,为每一 个界面元素绑定响应事件。依据不同的界面组件类型,可以绑定不同的事件。例如Button 可以绑定OnClick事件。响应事件如果被触发,它将向服务器发出动作描述请求。该请求 可以包括被操作的界面元素的唯一标识、动作类型和相关的参数。返回图2,在步骤210中, 浏览器可以例如利用自带的模块(例如渲染器)根据代码转换工具生成的网页元素来绘制 和显示所调用的桌面应用。图3示出桌面应用更新过程的流程图。首先,在步骤301中,客户端的用户在应用 界面上执行某一动作。例如,如图7所示,用户可以点击网页左边树桩列表中的一个文件夹 的图标,该HTML元素所对应的一段JavaScript代码被触发,从而产生一个特定的http请 求。例如,当网页上一个按钮被点击时,可以生成http请求http://WWW.nec. com/App5/ Control = button&ID = 1。在图IA所示示例的情况下,为了向服务器表明其身份,在步骤 302中,客户端10的会话ID插入单元104可以在该http请求中插入服务器先前向其分配 的会话ID。然后,在步骤303中,该包含会话ID的http请求被发送到服务器,并被服务器 的请求接收单元202所接收。在接收到http请求之后,表操作单元207以从请求中提取出 会话ID,并通过检索应用对应表208来确定相应的应用ID (步骤304)。然后,在步骤305 中,应用驱动单元201根据表操作单元207所确定的应用ID操作相应的应用,在该应用的 界面上重现用户的动作(例如,点击网页左边树桩列表中的那个文件夹的图标)。从而,参 考图7,在服务器端出现了那个文件夹中的文件列表。然后,在步骤306中,界面抽取单元 205检测到应用界面中的变化(包括唯一标识、属性和操作类型),抽取出界面变化信息,并 将其封装成XML格式数据。然后,在步骤307中,封装好的反映界面变化的XML数据通过数 据发送单元204被发送回客户端。在步骤308中,代码转换工具(例如JavaScript代码) 解析接收到的XML数据,将其翻译成相应的网页元素(HTML),并且浏览器动态更新桌面应 用界面上相应部分的显示(步骤309)。<第二实施例>下面将参考图4至图7来说明本发明的第二实施例。图4是示出根据本发明第二 实施例的桌面应用转化系统400的内部结构的框图,图5是示出图4所示系统400的桌面 应用显示过程的流程图,图6是示出图4所示系统400的桌面应用更新过程的流程图。
第二实施例与第一实施例的区别仅在于应用界面的代码转换工作(从XML数据到 HTML元素)不再由客户端完成,而是由服务器来执行。因此,与图1所示系统100相比,在 图4所示系统400中,服务器20不再包含用于提供代码转换工具的工具提供单元203,而 新增了代码转换单元401。类似于第一实施例,该代码转换单元401可以是包含在网页中 的JavaScript代码。在图4中,与第一实施例类似的组件用相同的标号示出,并且省略对 它们的详细描述。值得注意的是,第二实施例同样可被应用到服务器与多个客户端相交互的情形。 因此,图IA所示的改进示例也可以被类似地应用到根据第二实施例的系统400。参考图5和图6所示的流程图。类似于第一实施例,在步骤501中,客户端通过浏 览器输入所需桌面应用的URL,该URL可以包含用于标识桌面应用的应用ID。在步骤502 中,服务器向该客户端分配一会话ID,并通过在应用对应表208中添加相应的条目来更新 应用对应表。然后,在步骤503中,所分配的会话ID被发送回客户端。在步骤504中,服务 器的应用驱动单元201加载所需桌面应用。在步骤505中,界面抽取单元205抽取该桌面应 用的界面信息,并将其封装成XML数据。类似与第一实施例,在步骤506 (可选)中,界面修 改单元206可以对封装好的XML数据进行修改以重定制应用界面。这里,不同于第一实施 例,封装好的(或修改后的)XML数据没有被发送到客户端,而是在服务器端直接进行处理。 在步骤507中,代码转换单元401利用代码转换工具(例如JavaScript代码)解析XML数 据,将其翻译成相应的网页元素(例如HTML)。然后,在步骤507中,数据发送单元204将生 成的网页元素(HTML)发送回客户端。在客户端,浏览器可以直接根据接收到的网页元素显 示桌面应用(步骤508)。参考图6,当用户在客户端的桌面应用界面上执行动作时,类似于第一实施例,客 户端生成相应的http请求(步骤601)。为了区分不同客户端,在步骤602中,可以在生成 的http请求中插入服务器预先分配的会话ID。然后,在步骤603中,http请求被发送到服 务器。在步骤604中,表操作单元207从请求中提取出会话ID,并检索应用对应表,以确定 与该会话ID相对应的应用ID。然后,在步骤605中,在与应用ID相对应的应用界面上重现 用户动作。在步骤606中,界面抽取单元205检测界面变化,抽取变化后的界面的完整界面 信息,并封装成XML数据。然后,在步骤607中,代码转换单元401将与变化后的界面相对 应的XML数据翻译成网页元素HTML。在步骤608中,生成的网页元素被发送回客户端。然 后,在步骤609中,浏览器根据接收到的网页元素显示桌面应用的变化后的界面。上面已经参考附图描述了本发明的第一和第二实施例。如前所述,根据本发明,可 以方便地从XML数据中得到界面包含的数据信息,从而可以对网络应用进行聚合(例如可 以对网页进行一系列的操作,将得到的结果信息输出给其他的网络服务)。并且,可以对界 面进行干预,以优化或改变交互界面。但是,需要明确,本发明并不局限于上文所描述并在图中示出的特定配置和处理。 并且,为了简明起见,这里省略对已知方法技术的详细描述。在上述实施例中,描述和示出 了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤, 本领域的技术人员可以在领会本发明的精神之后,作出各种改变、修改和添加,或者改变步 骤之间的顺序。本发明的元素可以实现为硬件、软件、固件或者它们的组合,并且可以用在它们的
13系统、子系统、部件或者子部件中。当以软件方式实现时,本发明的元素是被用于执行所需 任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携 带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输 信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦 除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由 诸如因特网、内联网等的计算机网络被下载。 本发明可以以其他的具体形式实现,而不脱离其精神和本质特征。例如,特定实施 例中所描述的算法可以被修改,而系统体系结构并不脱离本发明的基本精神。因此,当前的 实施例在所有方面都被看作是示例性的而非限定性的,本发明的范围由所附权利要求而非 上述描述定义,并且,落入权利要求的含义和等同物的范围内的全部改变从而都被包括在 本发明的范围之中。
权利要求
一种用于将桌面应用转换为网络应用的方法,包括在客户端输入希望调用的桌面应用的URL,并将其发送到服务器;所述服务器向所述客户端提供代码转换工具并加载所述桌面应用;在所述服务器端,抽取所加载的所述桌面应用的界面信息,将其封装成界面描述性语言格式数据,并发送回所述客户端;以及在所述客户端,利用所述代码转换工具解析接收到的所述界面描述性语言数据,将其翻译成相应的网页元素,从而显示所述桌面应用。
2.如权利要求1所述的方法,还包括在所述客户端,在所显示的所述桌面应用上执行动作; 将与所述动作相对应的请求发送到所述服务器;在所述服务器端,在所加载的所述桌面应用的界面上执行所述动作并检测所述动作引 起的界面变化,抽取与所述界面变化相对应的界面变化信息,将其封装成界面描述性语言 格式数据,并发送回所述客户端;以及在所述客户端,利用所述代码转换工具解析接收到的所述界面描述性语言格式数据, 将其翻译成相应的网页元素,并根据所述网页元素更新所显示的所述桌面应用的相应部 分。
3.如权利要求1所述的方法,还包括在所述服务器端,对所封装的所述界面描述性语言格式数据进行修改,并将修改后的 所述界面描述性语言格式数据发送回所述客户端。
4.如权利要求1所述的方法,其中所述代码转换工具是包含在网页中的JavaScript代 码,并且所述提供代码转换工具的步骤包括所述服务器向所述客户端返回包含所述JavaScript代码的空网页。
5.如权利要求1所述的方法,其中所述代码转换工具是包含在网页中的插件,并且所 述提供代码转换工具的步骤包括所述服务器向所述客户端返回包含所述插件的空网页; 所述客户端判断是否先前已经安装了所述插件; 如果所述客户端确定已经安装了所述插件,则直接调用该插件;并且 如果所述客户端确定尚未安装所述插件,则询问用户是否安装该插件,若用户允许,则 将所述插件安装到浏览器中。
6.如权利要求2所述的方法,其中所述客户端发送的所述桌面应用的URL中包含用于 标识所述桌面应用的应用ID,所述服务器包含应用对应表,所述方法还包括在接收到来自所述客户端的所述桌面应用的URL时,所述服务器从所述URL中提取出 所述应用ID并向所述客户端分配一会话ID,该会话ID用于标识所述服务器和所述客户端 之间的会话;所述服务器将所分配的所述会话ID发送回所述客户端;所述服务器通过在所述应用对应表中添加用于记录所述应用ID和所述会话ID之间的 对应关系的条目来更新所述应用对应表;所述客户端在发送与动作相对应的请求之前,在所述请求中插入所述会话ID ;并且 所述服务器在接收到所述请求时,从所述请求中提取出所述会话ID,通过检索所述应用对应表确定与该会话ID相对应的应用ID,并在与该检索出的应用ID相对应的桌面应用 的界面上执行所述动作。
7.如权利要求1或2所述的方法,其中所述界面描述性语言是可扩展标记语言(XML)。
8.如权利要求1或2所述的方法,其中所述网页元素是超文本标记语言(HTML)代码。
9.如权利要求2所述的方法,其中所述请求是超文本传输协议(HTTP)请求。
10.一种用于将桌面应用转换为网络应用的方法,包括在客户端输入希望调用的桌面应用的URL,并将其发送到服务器;服务器加载所述桌面应用;在所述服务器端,抽取所述桌面应用的界面信息,并将其封装成界面描述性语言格式 数据;在所述服务器端,利用代码转换工具解析所封装的所述界面描述性语言格式数据,将 其翻译成相应的网页元素,并将所述网页元素发送回所述客户端;以及在所述客户端,根据接收到的所述网页元素显示所述桌面应用。
11.如权利要求10所述的方法,还包括在所述客户端,在所显示的所述桌面应用上执行动作;将与所述动作相对应的请求发送到所述服务器;在所述服务器端,在所加载的所述桌面应用的界面上执行所述动作并检测所述动作引 起的界面变化,抽取与所述变化后的界面相对应的界面信息,并将其封装成界面描述性语 言格式数据;在所述服务器端,利用所述代码转换工具解析所封装的所述界面描述性语言格式数 据,将其翻译成相应的网页元素,并将所述网页元素发送回所述客户端;以及在所述客户端,根据接收到的所述网页元素,显示变化后的所述桌面应用。
12.如权利要求10所述的方法,还包括在所述服务器端,对所封装的所述界面描述性语言格式数据进行修改,并将修改后的 所述界面描述性语言格式数据提供到所述代码转换工具以进行解析。
13.如权利要求10所述的方法,其中所述代码转换工具是包含在网页中的JavaScript 代码。
14.如权利要求10或11所述的方法,其中所述界面描述性语言是可扩展标记语言 (XML)。
15.如权利要求10或11所述的方法,其中所述网页元素是超文本标记语言(HTML)代码。
16.如权利要求11所述的方法,其中所述请求是超文本传输协议(HTTP)请求。
17.如权利要求11所述的方法,其中所述客户端发送的所述桌面应用的URL中包含用 于标识所述桌面应用的应用ID,所述服务器包含应用对应表,所述方法还包括在接收到来自所述客户端的所述桌面应用的URL时,所述服务器从所述URL中提取出 所述应用ID并向所述客户端分配一会话ID,该会话ID用于标识所述服务器和所述客户端 之间的会话;所述服务器将所分配的所述会话ID发送回所述客户端;所述服务器通过在所述应用对应表中添加用于记录所述应用ID和所述会话ID之间的对应关系的条目来更新所述应用对应表;所述客户端在发送与动作相对应的请求之前,在所述请求中插入所述会话ID ;并且 所述服务器在接收到所述请求时,从所述请求中提取出所述会话ID,通过检索所述应 用对应表确定与该会话ID相对应的应用ID,并在与该检索出的应用ID相对应的桌面应用 的界面上执行所述动作。
18.一种用于将桌面应用转换为网络应用的系统,包括 客户端,包括请求发送单元,用于发送用户希望调用的桌面应用的URL ; 数据接收单元,用于接收来自服务器的数据;以及 服务器,包括请求接收单元,用于接收所述URL ;工具提供单元,用于向所述客户端提供代码转换工具;应用驱动单元,用于加载所述桌面应用;界面抽取单元,用于抽取所述桌面应用的界面信息,并将其封装成界面描述性语言格 式数据;以及数据发送单元,用于将所述界面抽取单元所封装的界面描述性语言格式数据发送回所 述客户端,其中,在所述客户端,利用所述代码转换工具解析所述数据接收单元接收到的所述界 面描述性语言格式数据,以将其翻译成相应的网页元素,并且所述客户端的浏览器根据所 述网页元素显示所述桌面应用。
19.如权利要求18所述的系统,其中当用户在所述客户端上所显示的所述桌面应用上 执行动作时,所述请求发送单元向所述服务器发送与所述动作相对应的请求,并且在所述服务器端所述请求接收单元接收所述请求;所述应用驱动单元在所述桌面应用的界面上执行所述请求所对应的动作; 所述界面抽取单元检测所述动作引起的界面变化,抽取与所述界面变化相对应的界面 变化信息,并将其封装成界面描述性语言格式数据;并且所述数据发送单元将所述界面描述性语言格式数据发送回所述客户端; 在所述客户端,利用所述代码转换工具解析所述数据接收单元接收到的所述界面描述 性语言格式数据,以将其翻译成相应的网页元素,并且所述客户端的浏览器根据所述网页 元素更新所显示的所述桌面应用的相应部分。
20.如权利要求18所述的系统,其中所述服务器还包括界面修改单元,用于对所述界面抽取单元所封装的所述界面描述性语言格式数据进行 修改。
21.如权利要求19所述的系统,其中所述客户端发送的所述桌面应用的URL中包含用 于标识所述桌面应用的应用ID,并且所述服务器还包括 存储器,用于存储应用对应表;会话ID分配单元,用于向客户端分配会话ID,所述会话ID用于标识服务器和客户端之间的会话;以及 表操作单元, 所述客户端还包括会话ID接收单元,用于接收所述会话ID ;以及会话ID插入单元,用于将所述会话ID插入到后续请求中,其中,当所述服务器接收到来自所述客户端的所述桌面应用的URL时,所述会话ID分 配单元向所述客户端分配并提供一会话ID,所述表操作单元通过在所述应用对应表中添加 用于记录所述应用ID和所述会话ID之间的对应关系的条目来更新所述应用对应表,在所述客户端发送与动作相对应的请求之前,所述会话ID插入单元在所述请求中插 入所述会话ID,并且当所述服务器接收到所述请求时,所述表操作单元提取出所述请求中包含的会话ID, 通过检索所述应用对应表确定与该会话ID相对应的应用ID,并且所述应用驱动单元在与 该检索出的应用ID相对应的桌面应用的界面上执行所述动作。
22.一种用于将桌面应用转换为网络应用的系统,包括 客户端,包括请求发送单元,用于发送用户希望调用的桌面应用的URL ; 数据接收单元,用于接收来自服务器的数据;以及 服务器,包括请求接收单元,用于接收所述URL ; 应用驱动单元,用于加载所述桌面应用;界面抽取单元,用于抽取所述桌面应用的界面信息,并将其封装成界面描述性语言格 式数据;代码转换单元,用于解析所述界面抽取单元所封装的所述界面描述性语言格式数据, 以将其翻译成相应的网页元素;以及数据发送单元,用于将所述网页元素发送回所述客户端,其中,所述客户端的浏览器根据接收到的所述网页元素显示所述桌面应用。
23.如权利要求22所述的系统,其中当用户在所述客户端上所显示的所述桌面应用上 执行动作时,所述请求发送单元向所述服务器发送与所述动作相对应的请求,并且在所述服务器端所述请求接收单元接收所述请求;所述应用驱动单元在所述桌面应用的界面上执行所述请求所对应的动作; 所述界面抽取单元检测所述动作引起的界面变化,抽取与所述变化后的界面相对应的 界面信息,并将其封装成界面描述性语言格式数据;所述代码转换单元解析所述界面抽取单元所封装的所述界面描述性语言格式数据,以 将其翻译成相应的网页元素;并且所述数据发送单元将所述网页元素发送回所述客户端,在所述客户端,所述客户端的浏览器根据接收到的所述网页元素显示变化后的所述桌 面应用。
24.如权利要求22所述的系统,其中所述服务器还包括界面修改单元,用于对所述界面抽取单元所封装的所述界面描述性语言格式数据进行 修改。
25.如权利要求23所述的系统,其中所述客户端发送的所述桌面应用的URL中包含用 于标识所述桌面应用的应用ID,并且 所述服务器还包括 存储器,用于存储应用对应表;会话ID分配单元,用于向客户端分配会话ID,所述会话ID用于标识服务器和客户端之 间的会话;以及 表操作单元, 所述客户端还包括会话ID接收单元,用于接收所述会话ID ;以及会话ID插入单元,用于将所述会话ID插入到后续请求中,其中,当所述服务器接收到来自所述客户端的所述桌面应用的URL时,所述会话ID分 配单元向所述客户端分配并提供一会话ID,所述表操作单元通过在所述应用对应表中添加 用于记录所述应用ID和所述会话ID之间的对应关系的条目来更新所述应用对应表,在所述客户端发送与动作相对应的请求之前,所述会话ID插入单元在所述请求中插 入所述会话ID,并且当所述服务器接收到所述请求时,所述表操作单元提取出所述请求中包含的会话ID, 通过检索所述应用对应表确定与该会话ID相对应的应用ID,并且所述应用驱动单元在与 该检索出的应用ID相对应的桌面应用的界面上执行所述动作。
全文摘要
本发明提供了将桌面应用转换为网络应用的方法和系统。根据本发明的方法包括在客户端输入希望调用的桌面应用的URL,并将其发送到服务器;服务器向客户端提供代码转换工具(例如JavaScript代码)并加载桌面应用;在服务器端,抽取所加载的桌面应用的界面信息,将其封装成界面描述性语言格式数据(例如XML数据),并发送回客户端;以及客户端利用代码转换工具解析接收到的XML数据,将其翻译成相应的网页元素(例如HTML),从而显示桌面应用。在另一实施例中,代码转换工具可以在服务器端直接运行,以实现从XML数据到HTML网页元素的转换。
文档编号G06F17/30GK101996093SQ20091015926
公开日2011年3月30日 申请日期2009年8月10日 优先权日2009年8月10日
发明者刘慧峰, 刘晓炜, 史敬威, 孟昕, 宋才良, 王炼 申请人:日电(中国)有限公司