将桌面应用转换为网络应用的方法和系统技术方案

技术编号:5108933 阅读:196 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了将桌面应用转换为网络应用的方法和系统。根据本发明专利技术的方法包括:在客户端输入希望调用的桌面应用的URL,并将其发送到服务器;服务器向客户端提供代码转换工具(例如JavaScript代码)并加载桌面应用;在服务器端,抽取所加载的桌面应用的界面信息,将其封装成界面描述性语言格式数据(例如XML数据),并发送回客户端;以及客户端利用代码转换工具解析接收到的XML数据,将其翻译成相应的网页元素(例如HTML),从而显示桌面应用。在另一实施例中,代码转换工具可以在服务器端直接运行,以实现从XML数据到HTML网页元素的转换。

【技术实现步骤摘要】

本专利技术一般地涉及计算机网络技术,更具体而言,涉及将桌面应用转换为网络应用的方法和系统
技术介绍
随着云计算和互联网的发展,人们越来越希望随时随地享受服务。但是,现存的大 量桌面应用(单机版或者客户端-服务器版)都要求用户必须先安装客户端才可以做相应 的操作,因而不能随时随地提供服务。如果将已有的系统废弃掉,重新开发一套功能完全一 致的浏览器-服务器版本的系统,开发代价过于高昂,而且会造成原系统的浪费。所以,一 套高效的系统迁移方案将变得炙手可热。更重要的是,聚合(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,并将其发送到服务器;本文档来自技高网
...

【技术保护点】
一种用于将桌面应用转换为网络应用的方法,包括:在客户端输入希望调用的桌面应用的URL,并将其发送到服务器;所述服务器向所述客户端提供代码转换工具并加载所述桌面应用;在所述服务器端,抽取所加载的所述桌面应用的界面信息,将其封装成界面描述性语言格式数据,并发送回所述客户端;以及在所述客户端,利用所述代码转换工具解析接收到的所述界面描述性语言数据,将其翻译成相应的网页元素,从而显示所述桌面应用。

【技术特征摘要】
一种用于将桌面应用转换为网络应用的方法,包括在客户端输入希望调用的桌面应用的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,并在...

【专利技术属性】
技术研发人员:孟昕史敬威宋才良王炼刘慧峰刘晓炜
申请(专利权)人:日电中国有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1