CN102918819B - 一种在线应用处理方法、装置及系统 - Google Patents

一种在线应用处理方法、装置及系统 Download PDF

Info

Publication number
CN102918819B
CN102918819B CN201180000960.2A CN201180000960A CN102918819B CN 102918819 B CN102918819 B CN 102918819B CN 201180000960 A CN201180000960 A CN 201180000960A CN 102918819 B CN102918819 B CN 102918819B
Authority
CN
China
Prior art keywords
local resource
application
site
client
message
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
CN201180000960.2A
Other languages
English (en)
Other versions
CN102918819A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority claimed from PCT/CN2011/075332 external-priority patent/WO2011157180A2/zh
Publication of CN102918819A publication Critical patent/CN102918819A/zh
Application granted granted Critical
Publication of CN102918819B publication Critical patent/CN102918819B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

一种在线应用处理方法,包括:接收来自客户端的在线应用执行请求;执行所述在线应用,从所述客户端获得客户端的本地资源数据,以所述客户端的本地资源数据作为所述在线应用的输入数据进行处理;实时将在线应用的执行情况传送至客户端;以及对应的在线应用处理装置和系统。使用本发明,使服务器端的本地资源应用可以获取用户终端的本地资源数据。

Description

一种在线应用处理方法、装置及系统
技术领域
本发明涉及通信技术领域,具体涉及一种在线应用处理方法、装置及系统。
背景技术
为了使用户通过用户终端能够享受到更多、更好的服务,各种各样的在线应用平台应运而生,在线应用平台作为在线应用的服务器(server),可以在部署各种各样第三方开发的在线应用,用户终端作为客户端(client)可以远程连接到在线应用平台上体验这些在线应用。
在在线应用场景中,所有在线应用的运行和处理都在服务器进行,而客户端只负责将用户的操作输入上传到服务器和接收图像数据在本地显示,但从用户的角度来看,就像在操作本地的应用一样。其中,服务器与客户端的典型交互过程如下:客户端将用户操作产生的输入事件上传到服务器,服务器收到输入事件后进行计算和处理,并将处理后的画面响应结果的图像数据发送给客户端,客户端收到图像数据后在本地显示。
随着技术的发展,用户终端能够实现的功能也越来越多,很多应用都需要利用到本地的资源。例如,许多的用户终端都已经包括传感器,所述的传感器包括地理位置传感器,温度传感器,湿度传感器,噪音传感器,海拔传感器,气压传感器等。各种利用传感器数据的传感器应用也应运而生,例如一些游戏应用需要通过地理位置传感器实时感知用户所处环境的位置信息,一些应用需要根据传感器获取的用户所处环境的温度,湿度等提供一些信息查询等。但是通过现有的服务器与客户端的交互过程,传感器应用获取不到用户所处环境的传感器数据,因此使得用户不能够体验传感器应用,或者用户能够体验这些传感器应用,但是传感器数据并不是用户所处环境的,因此使用户不能够真实的体验传感器应用,降低了用户体验。再例如,许多的个人社交网络应用需要利用到终端的地址薄信息,利用地址薄中好友的信息进行相关的操作,如共享新闻给好友,但在在线应用场景中,这些应用都运行在服务器端,无法获得终端的本地资源数据,也降低了用户体验。
发明内容
本发明实施例提供了一种在线应用处理方法、装置及系统,使服务器端的本地资源应用可以获取用户终端的本地资源数据。
本发明的一方面提供了一种在线应用处理方法,包括:
接收来自客户端的在线应用执行请求;
执行所述在线应用,从所述客户端获得客户端的本地资源数据,以所述客户端的本地资源数据作为所述在线应用的输入数据进行处理;
实时将在线应用的执行情况传送至客户端。
本发明的另一方面提供了一种在线应用处理装置,包括:
接收器,用于接收来自客户端的在线应用执行请求;
执行处理单元,用于在所述接收器接收了所述在线应用执行请求后,执行所述在线应用;
获取单元,用于在所述执行单元执行了所述在线应用后,从所述客户端获得客户端的本地资源数据;
所述执行处理单元,还用于以所述获取单元获取的客户端的本地资源数据作为所述在线应用的输入数据进行处理;
发送器,用于实时将执行单元执行的在线应用的执行情况传送至客户端。
本发明的再一方面提供了一种在线应用处理系统,包括本发明实施例提供的在线应用处理装置和客户端;
所述客户端,用于接收来自所述在线应用处理装置的获取本地资源数据的消息,将获取的客户端的本地资源数据发送给所述在线应用处理装置。
从本发明实施例提供的以上技术方案可以看出,由于本发明实施例中服务器执行了在线应用后,可以从请求执行该在线应用的客户端获取客户端的本地资源数据,从而使在线应用获取客户端的本地资源数据,并且在线应用可以以客户端的本地资源数据进行处理获得处理结果,获得的处理结果能够与客户端的本地资源数据保持一致,使用户真实地体验在线应用,提高了用户体验。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一个实施例提供的在线应用处理方法的流程图;
图2为本发明另一个实施例提供的在线应用处理方法的信令流程图;
图3为本发明另一个实施例提供的在线应用处理方法的信令流程图;
图4为本发明一个实施例提供的在线应用处理装置的结构图;
图5为本发明另一个实施例提供的在线应用处理装置的结构图;
图6为本发明另一个实施例提供的在线应用处理装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中本地资源是客户端上的物理实体或逻辑实体,在线应用平台上的本地资源应用需要使用这些物理实体或逻辑实体才能够实现该本地资源引用的功能。其中,本地资源应用使用到的本地资源数据可以包括传感器数据,地址簿数据,日历数据,摄像头数据等资源数据中的至少一个。其中,传感器数据通过传感器设备获得,照相机数据通过照相机获得,摄像头数据通过摄像头获得;具体地,传感器设备可具体包括重力感应传感器,温度传感器,湿度传感器,全球卫星定位系统(GPS:Global Positioning System)定位传感器,噪音传感器,海拔传感器,气压传感器和方向传感器等传感器中的至少一个。
先介绍本发明实施例提供的在线应用处理方法,图1描述了本发明一个实施例提供的在线应用处理方法的流程,该实施例描述的是在线应用平台,即服务器的处理流程,该实施例包括:
101、接收来自客户端的在线应用执行请求。
一方面,该在线应用执行请求由用户点击了客户端上的在线应用的快捷方式后发送,该在线应用执行请求可以包括请求执行的在线应用的相关信息,如在线应用的名称、在线应用的标识等;该在线应用执行请求通过客户端与服务器已经建立的传输通道发送,该传输通道可以是有线传输通道或无线传输通道,该传输通道可以在用户点击了在线应用的快捷方式之前或之后建立。
另一方面,用户可以通过点击在线应用的链接发送在线应用执行请求,该在线应用执行可以包括请求执行的在线应用的相关信息,如在线应用的名称、在线应用的标识、在线应用的统一资源标识(URI:Uniform ResourceIdentifier)等。
再一方面,用户可以点击客户端上的在线应用平台的快捷方式登陆在线应用平台,在线应用平台,即服务器,执行虚拟机,其中,虚拟机运行的操作系统的桌面显示服务器可以提供的在线应用的图标;同时服务器的主程序可以将虚拟机的执行画面的图像信息实时地发送到客户端,因此客户端可以实时呈现与服务器中虚拟机的执行情况一致的画面,此时用户可以通过在客户端呈现的图片点击相应的在线应用的图标所在的位置发送在线应用执行请求,此时,该在线应用请求可以包括操作系统输入控制事件,虚拟机可以根据当前展示的在线应用程序以及该操作系统输入控制事件确定客户端请求执行的在线应用,其中,操作系统输入控制事件可以是鼠标输入控制事件、或键盘输入控制事件、或遥控器输入控制事件、或触摸屏输入控制事件、或游戏手柄输入控制事件等;服务器可以根据该操作系统输入控制事件确定用户所点击的位置坐标,进而根据该位置坐标确定用户所点击的在线应用。
其中,客户端可以是任何可以与在线应用平台进行交互的设备,如手机、个人计算机(PC:Personal Computer)、个人数字助理(PDA:Personal DigitalAssistant)、电视机、游戏机等。
102、执行在线应用。
其中,服务器可以在虚拟机中执行客户端选择执行的在线应用,具体地,在虚拟机中执行的应用可以包括本地资源应用和/或非本地资源应用,其中,本地资源应用是需要使用客户端的本地资源的在线应用,非本地资源应用是指不需要使用客户端的本地资源的在线应用。该虚拟机可以通过主程序与客户端进行通信,主程序的作用是连接虚拟机和客户端,并且实时与客户端进行通信,将虚拟机的实时执行情况发送给客户端,因此在虚拟机中执行了在线应用后,就可以实时的将在线应用的执行情况发送给客户端;其中,服务器可以在与客户端建立了传输通道时启动主程序,即主程序与客户端是一一对应的关系;服务器也可以在接收了来自客户端的本地资源应用执行请求时启动主程序,即主程序与应用是一一对应的关系,一个客户端可以对应多个主程序,但是一个主程序仅对应一个客户端。
其中,在一个虚拟机中可以执行多个在线应用,并且这多个在线应用可能包括了本地资源应用和非本地资源应用,由于仅在运行的在线应用是本地资源应用时才需要从客户端获得客户端的本地资源数据,因此需要检测是否有本地资源应用在运行。具体地,在拦截到本地资源应用对打开本地资源应用程序接口(API:Application Programming Interface)的调用时,就可以确定有本地资源应用执行;当然,预先确定本地资源应用执行时对应的进程名称,也可以根据本地资源应用的进程是否出现来确定是否有本地资源应用执行。
本发明实施例主要描述在线应用是本地资源应用的情况。
103、从客户端获得客户端的本地资源数据,以该客户端的本地资源数据作为在线应用的输入数据进行处理。
其中,从客户端获得的客户端的本地资源数据可以包括:当检测到需要本地资源数据时,向客户端发送获取本地资源数据的消息,并接收来自客户端的本地资源数据。具体地:
一方面,本地资源应用在执行后,默认会调用获取本地资源数据API获取本地资源数据,但是调用该API默认获取的是服务器端的本地资源数据,因此可以对本地资源应用对获取本地资源数据API的调用进行拦截,在拦截到本地资源应用对获取本地资源数据API的调用时,可以向主程序发送获取本地资源数据的消息,主程序向客户端转发该获取本地资源数据的消息,使客户端根据该消息获取并发送客户端的本地资源数据,从而使服务器,具体是主程序,能够接收到来自客户端的本地资源数据;其中,只有在在线应用对获取本地资源数据API进行调用时,hook程序才会拦截,由于hook程序是在虚拟机中执行的,因此hook程序可以只拦截虚拟机中的在线应用对获取本地资源数据API的调用;相应地,hook程序不会对非在线应用,即不是在虚拟机中执行的应用,对获取本地资源数据API的调用进行拦截,从而确保服务器上的非在线应用的正确执行。
另一方面,由于某些本地资源数据,如传感器数据、摄像头数据等,需要通过本地资源设备工作获得,而这些本地资源设备的的工作是通过驱动程序驱动的,而API的实现默认是调用本地的驱动程序,因此可以对API的实现进行修改,例如可以将获取本地资源数据API的实现修改为向主程序发送获取本地资源数据的消息,因此主程序在获取到获取本地资源数据的消息时,即可以确定本地资源应用需要获取客户端的本地资源数据,因此可以向客户端发送获取本地资源数据的消息,使客户端根据该消息获取并发送本地资源数据,从而使服务器,具体是主程序,能够接收到来自客户端的本地资源数据。
另一方面,由于本地资源应用在执行后,必然需要获取本地资源数据,因此可以在执行了本地资源应用后,直接向客户端发送获取本地资源数据的消息,使客户端根据该消息获取并发送本地资源数据,从而使服务器,具体是主程序,能够接收到来自客户端的本地资源数据。
另一方面,由于本地资源应用在执行后,会有相应的进程,而本地资源应用的进程名称是可以预先确定的,因此可以根据进程名称检测本地资源应用是否执行,从而在根据进程名称检测到本地资源应用的进程出现时,可以向客户端发送获取本地资源数据的消息,使客户端根据该消息获取并发送本地资源数据,从而使服务器,具体是主程序,能够接收到来自客户端的本地资源数据。
其中,服务器,具体是主程序,在接收到来自客户端的本地资源数据后,可以将本地资源数据转发给hook程序或实现被修改过的API,由该hook程序或实现被修改过的API将本地资源数据转发给本地资源应用,使本地资源应用以该本地资源数据作为输入数据进行处理,从而获得处理结果。当然,服务器在接收到来自客户端的本地资源数据后,也可以将该本地资源数据存储到与该本地资源应用对应的缓存中,hook程序或实现被修改过的API可以到该缓存中取本地资源数据发送给本地资源应用;该缓存可以是在执行该本地资源应用时建立,也可以是在虚拟机启动时就已经建立。该缓存可以只存储客户端返回的一个本地资源数据,也可以存储客户端返回的多个本地资源数据,并且在缓存的存储空间已经存满时,如果还接收到客户端返回的本地资源数据,可以根据先进先出(FIFO:First In First Out)的原则,用客户端返回的最新的本地资源数据替换缓存中已经存储的最早接收到的本地资源数据;由于一个本地资源数据需要占用的存储空间是预先可知的,因此可以根据该缓存需要存储的本地资源数据的数量确定该缓存的存储空间大小。
104、实时将在线应用的执行情况传送至客户端,从而在客户端对在线应用的执行情况进行呈现,使用户感觉在线应用直接在客户端执行。
其中,执行情况可以包括在线应用执行时生成的音频数据和/或图像数据,图像数据可以包括视频数据和/或绘图原语。
具体地,可以由主程序实时获取在线应用的执行情况,并将获取的执行情况发送给客户端,从而在客户端呈现。主程序可以实时对虚拟机操作系统的执行画面进行抓取,并将抓取的画面数据发送到客户端,其中,传输到客户端的画面数据可以是经过某种方式压缩的或者没有压缩的原始数据,客户端在收到画面数据后进行相应的解压缩后在本地显示或者直接在本地显示。也可以由主程序实时对虚拟机操作系统的绘图原语进行抓取,并将抓取后的绘图原语数据发送到客户端,其中,传输到客户端的绘图原语数据可以是原始的或者经过某种方式压缩的,客户端收到绘图原语数据后在本地绘图展示或者进行相应地解压缩后在本地绘图展示。主程序可以不停地对虚拟机操作系统的绘图原语进行抓取,从而可以生成视频数据。主程序可以对虚拟机操作系统的声音进行录制获得音频数据。其中,绘图原语是指将绘图过程中的绘图命令进行加工整理,生成一种可以再现图块逻辑信息、几何信息的命令的结合。
从上可知,本实施例中服务器执行了在线应用后,可以从请求执行该在线应用的客户端获取客户端的本地资源数据,从而使在线应用获取客户端的本地资源数据,并且在线应用可以以客户端的本地资源数据进行处理获得处理结果,获得的处理结果能够与客户端的本地资源数据保持一致,使用户真实地体验在线应用,提高了用户体验。
其中,在本地资源数据需要通过本地资源设备获取的情况下,一些客户端只要一开机,该客户端上的本地资源设备就会处于打开状态;但是出于节能的考虑,一些客户端上的本地资源设备在需要使用时才打开,因此在从客户端的本地资源设备获得本地资源数据前需要打开客户端的本地资源设备。其中,由于在需要获取本地资源数据时必须打开本地资源设备,因此客户端可以在接收到获取本地资源数据的消息时打开本地资源设备;也可以在接收到打开本地资源设备的消息时打开本地资源设备。
一方面,本地资源应用在执行后,默认会调用打开本地资源设备API打开本地资源设备,因此可以对本地资源应用对打开本地资源设备API的调用进行拦截,在拦截到本地资源应用对打开本地资源设备API的调用时,可以向客户端发送打开本地资源设备的消息,使客户端根据该消息打开客户端的本地资源设备。其中,可以理解的是,由于获取本地资源数据必然需要打开本地资源设备,因此在拦截到本地资源应用对打开本地资源设备API的调用时,可以直接向客户端发送获取本地资源数据的消息,客户端在接收到该消息后,必然需要打开本地资源设备才能够获取本地资源数据,从而减少服务器向客户端发送的消息数量,也可以提高服务器与客户端的交互效率。
另一方面,由于某些本地资源设备的工作是通过驱动程序驱动的,而API的实现默认是调用本地的驱动程序,因此可以对打开本地资源设备API的实现进行修改,例如可以将打开本地资源设备API的实现修改为向客户端发送打开本地资源设备的消息,具体地,可以通过主程序向客户端发送打开本地资源设备的消息;主程序在获取到打开本地资源设备的消息时,可以确定本地资源应用需要打开本地资源设备,因此可以向客户端发送打开本地资源设备的消息,使客户端根据该消息打开本地资源。可以理解的是,由于获取本地资源数据必然需要打开本地资源设备,因此主程序在获取到打开本地资源设备的消息时,可以直接向客户端发送获取本地资源数据的消息,客户端在接收到该消息后,必然会打开本地资源设备才能够获取本地资源数据,从而减少服务器向客户端发送的消息数量,也可以提高服务器与客户端的交互效率。
其中,一些本地资源设备在停止使用后,会自动关闭;但是一些本地资源设备需要在收到关闭本地资源设备的消息后才会关闭,因此在从服务器在从客户端获得了本地资源数据后需要关闭客户端的本地资源设备。
一方面,本地资源应用在执行后,默认会调用关闭本地资源设备API关闭本地的本地资源设备,因此可以对本地资源应用对关闭本地资源设备API的调用进行拦截,在拦截到本地资源应用对关闭本地资源设备API的调用时,可以向客户端发送关闭本地资源设备的消息,使客户端根据该消息关闭本地资源设备。从而使客户端能够及时地关闭本地资源设备,降低客户端的能量消耗。
另一方面,由于有些本地资源设备的工作是通过驱动程序驱动的,而API的实现默认是调用本地的驱动程序,因此本地资源应用在需要关闭本地资源时,必然会通过API调用驱动程序,因此可以对关闭本地资源设备API的实现进行修改,例如可以将关闭本地资源设备API的实现修改为向客户端发送关闭本地资源设备的消息,具体地,可以通过主程序向客户端发送关闭本地资源设备的消息;主程序在获取到关闭本地资源设备的消息时,可以确定本地资源应用需要关闭本地资源设备,因此可以向客户端发送关闭本地资源设备的消息,使客户端根据该消息关闭本地资源设备。从而使客户端能够及时地关闭本地资源设备,降低客户端的能量消耗。
在本发明的一个实施例中,通过hook程序对本地资源应用对获取本地资源数据API、和/或打开本地资源设备API、和/或关闭本地资源设备API的调用进行拦截。具体地,hook程序在拦截到本地资源应用对获取本地资源数据API的调用时,可以向主程序发送获取本地资源数据的消息,主程序在接收到该获取本地资源数据的消息后,向客户端发送获取本地资源数据的消息;其中,获取本地资源数据的消息可以携带本地资源应用对获取本地资源数据API进行调用时使用的参数,使客户端可以直接根据本地资源应用对获取本地资源数据API进行调用时使用的参数获取本地资源数据;可以理解的是,由于客户端可以根据默认的参数获取本地资源数据,因此上述获取本地资源数据的消息可以不携带本地资源应用调用获取本地资源数据API时使用的参数。其中,不携带本地资源应用对获取本地资源数据API进行调用时使用的参数可以减少需要传输的信息,降低带宽占用,也提高服务器和客户端的处理效率。
相应地,hook程序在拦截到本地资源应用对打开本地资源设备API的调用时,可以向主程序发送打开本地资源设备的消息,主程序在接收到该打开本地资源设备的消息后,向客户端发送打开本地资源设备的消息;其中,打开本地资源设备的消息可以携带本地资源应用对打开本地资源设备API进行调用时使用的参数,使客户端可以直接根据本地资源应用对打开本地资源设备API进行调用时使用的参数打开本地资源设备;可以理解的是,由于客户端可以根据默认的参数打开本地资源设备,因此上述打开本地资源设备的消息可以不携带本地资源应用对打开本地资源API进行调用时使用的参数。
相应地,hook程序在拦截到本地资源应用对关闭本地资源设备API的调用时,可以向主程序发送关闭本地资源设备的消息,主程序在接收到该关闭本地资源设备的消息后,向客户端发送关闭本地资源设备的消息;其中,关闭本地资源设备的消息可以携带本地资源应用对关闭本地资源设备API进行调用时使用的参数,使客户端可以直接根据本地资源应用对关闭本地资源设备API进行调用时使用的参数关闭本地资源设备;可以理解的是,由于客户端可以根据默认的参数关闭本地资源设备,因此上述关闭本地资源设备的消息可以不携带本地资源应用对关闭本地资源设备API进行调用时使用的参数。
图2描述了本发明另一个实施例中服务器与客户端的信令交互流程,该实施例中在线应用为本地资源应用,该本地资源应用具体为为GPS应用,并且GPS应用与主程序通过hook程序交互,其中,服务器运行的系统为移动视窗(windows mobile),client为自带GPS定位传感器的手机,该手机运行的系统为windows mobile,该实施例包括:
201、客户端向服务器发送在线应用执行请求,本实施例中,该在线应用执行请求所请求的在线应用具体是GPS应用。
202、服务器执行GPS应用。
其中,在没有与客户端对应的虚拟机运行时,可以先运行虚拟机,然后在虚拟机中执行GPS应用;如果与客户端对应的虚拟机已经运行,可以直接在虚拟机中执行GPS应用。
其中,主程序可以实时将虚拟机的执行情况传送至客户端,具体地,在虚拟机执行了GPS应用后,实时传送至客户端的虚拟机的执行情况即为GPS应用的执行情况。
203、GPS应用调用打开GPS定位传感器API。
该打开GPS定位传感器API可以表示为HANDLE GPSOpenDevice(HANDLE hNewLocationData,HANDLE hDeviceStateChange,const WCHAR*szDeviceName,DWORD dwFlags),作用是建立与GPS定位传感器驱动程序的连接;其中,参数HANDLE hNewLocationData是由windows mobile系统下事件(event)的句柄;参数HANDLE hDeviceStateChange也是windows mobile系统下event的句柄;参数const WCHAR*szDeviceName是保留参数,为NULL;参数DWORD dwFlags是保留参数,为0。
204、hook程序拦截到GPS应用对打开GPS定位传感器API的调用后,向主程序发送打开GPS定位传感器的消息。
其中,打开GPS定位传感器的消息是预先定义的,该消息可以表示为HANDLE GPSOpenDeviceEx(),其中,消息体可以为HANDLEGPSOpenDevice()的四个输入参数HANDLE hNewLocationData,HANDLEhDeviceStateChange,const WCHAR*szDeviceName,和DWORD dwFlags的内容;当然,消息体也可以为空。本实施例中,该消息具体可以表示为HANDLEGPSOpenDeviceEx(HANDLE hNewLocationData,HANDLEhDeviceStateChange,const WCHAR*szDeviceName,DWORD dwFlags )。
205、主程序向客户端发送打开GPS定位传感器的消息,具体地,可以通过主程序与客户端之间的传输通道发送。
具体地,在本发明的一个实施例中,主程序可以直接向客户端转发接收到的打开GPS定位传感器的消息。
当然,在客户端所运行的操作系统与服务器运行的操作系统不同时,主程序还可以根据客户端所运行的操作系统对接收到的打开GPS定位传感器的消息进行转换处理后,再发送给客户端。
206、客户端在收到服务器发送的打开GPS定位传感器的消息时,如果消息体携带了HANDLE GPSOpenDevice()的四个输入参数HANDLEhNewLocationData,HANDLE hDeviceStateChange,const WCHAR*szDeviceName,DWORD dwFlags的内容,则可以提取消息体中ANDLEhNewLocationData,HANDLE hDeviceStateChange,const WCHAR*szDeviceName和DWORD dwFlags的内容作为HANDLE GPSOpenDevice()函数的四个输入参数,在本地调用执行HANDLE GPSOpenDevice(HANDLEhNewLocationData,HANDLE hDeviceStateChange,const WCHAR*szDeviceName,DWORD dwFlags)打开GPS定位传感器;如果打开GPS定位传感器的消息的消息体为空,则使用默认的参数在本地调用执行HANDLEGPSOpenDevice(HANDLE hNewLocationData,HANDLE hDeviceStateChange,const WCHAR*szDeviceName,DWORD dwFlags)打开GPS定位传感器;在打开GPS定位传感器或打开GPS定位传感器失败时,向主程序发送打开GPS定位传感器响应。其中,如果成功打开GPS定位传感器则返回GPS定位传感器的驱动程序的句柄,如果打开GPS定位传感器失败则返回空值。
207、主程序将接收到的打开GPS定位传感器响应转发给hook程序。
可以理解的是,在客户端所运行的操作系统与服务器运行的操作系统不同时,主程序还可以根据服务器所运行的操作系统对接收到的打开GPS定位传感器响应进行转换处理后,再发送给hook程序。
208、hook程序在收到打开GPS定位传感器响应后,将打开GPS定位传感器响应消息体的内容作为GPS应用对打开GPS定位传感器API进行调用获得的返回值发送给GPS应用,表示成功打开了GPS定位传感器或打开GPS定位传感器失败,结束GPS应用对打开GPS定位传感器API的调用。其中,如果打开GPS定位传感器失败,GPS应用可以再次调用打开GPS定位传感器API,重新执行204~208的过程。或者,GPS应用也可以不再调用打开GPS定位传感器API,不再执行209及209以后的步骤。
209、GPS应用调用获取GPS数据API。
该获取GPS数据API可以表示为DWORD GPSGetPosition(HANDLEhGPSDevice,GPS_POSITION*pGPSPosition,DWORD dwMaximumAge,DWORD dwFlags),作用是从GPS定位传感器种获取定位信息,经度、纬度等位置信息包含在GPS_POSITION类型的结构体中;其中,参数HANDLEhGPSDevice是调用GPSOpenDevice时返回的句柄,或者为NULL。如果为NULL,GPS定位传感器的驱动程序会返回在dwMaximumAge时间期限内缓存的可用的位置信息,否则,返回的pGPSPosition结构体中的dwValidFields字段为0;参数GPS_POSITION*pGPSPosition是指向GPS_POSITION结构体的指针,GPS定位传感器的驱动程序会将这个结构体填上位置信息,该结构体中的dwValidFields分量指明返回的位置信息中哪些字段是有效的;参数DWORD dwMaximumAge是位置信息的最大时间期限,单位为毫秒,GPS定位传感器的驱动程序只会返回在这个参数规定的时间期限内的位置信息,比这个时间更早的位置信息将不会被返回;参数DWORD dwFlags是保留参数,为0。
210、hook程序拦截到GPS应用对获取GPS数据API的调用后,向主程序发送获取GPS数据的消息。
其中,获取GPS数据的消息是预先定义的,该消息可以表示为DWORDGPSGetPositionEx(),其中,消息体可以为为DWORD GPSGetPosition()的四个输入参数HANDLE hGPSDevice,GPS_POSITION*pGPSPosition,DWORD dwMaximumAge,DWORD dwFlags的内容;当然,消息体也可以为空。本实施例中,该消息具体可以表示为DWORD GPSGetPositionEx(HANDLE hGP SDevice,GPS_POSITION*pGPSPosition,DWORDdwMaximumAge,DWORD dwFlags)。
211、主程序将获取GPS数据的消息发送给客户端,具体地,可以通过主程序与客户端之间的传输通道发送。
具体地,在本发明的一个实施例中,主程序可以直接向客户端转发接收到的获取GPS数据的消息。
当然,在客户端所运行的操作系统与服务器运行的操作系统不同时,主程序还可以根据客户端所运行的操作系统对接收到的获取GPS数据的消息进行转换处理后,再发送给客户端。
212、客户端在收到服务器发送的获取GPS数据的消息时,如果消息体携带了DWORD GPSGetPosition()的四个输入参数HANDLE hGPSDevice,GPS_POSITION*pGPSPosition,DWORD dwMaximumAge,DWORD dwFlags的内容,则可以提取消息体中HANDLE hGPSDevice,GPS_POSITION*pGPSPosition,DWORD dwMaximumAge,DWORD dwFlags的内容作为DWORD GPSGetPosition()的四个输入参数,在本地调用执行DWORDGPSGetPosition(HANDLE hGPSDevice,GPS_POSITION*pGPSPosition,DWORD dwMaximumAge,DWORD dwFlags)获取GPS数据;如果获取GPS数据的消息的消息体为空,则使用默认的参数在本地调用执行GPS_POSITION*pGPSPosition,DWORD dwMaximumAge,DWORD dwFlags)获取GPS数据;在打开GPS定位传感器后,向主程序发送获取GPS数据响应,该获取GPS数据响应消息的消息体携带GPS数据。其中,具体是在成功获取了GPS数据响应时才在获取GPS响应消息的消息体重携带GPS数据。
213、主程序将接收到的获取GPS数据响应转发给hook程序。
214、hook程序在收到获取GPS数据响应后,将获取GPS数据响应消息体的内容作为GPS应用对获取GPS数据API进行调用获得的返回值发送给GPS应用,结束GPS应用对获取GPS数据API的调用。
215、传感器应用调用关闭GPS定位传感器API。
该关闭GPS定位传感器API可以表示为DWORDGPSCloseDevice(HANDLE hGPSDevice),作用是关闭与GPS定位传感器驱动程序的连接;其中,参数HANDLE hGPSDevice是调用GPSOpenDevice时返回的句柄。
216、hook程序拦截到GPS应用对关闭GPS定位传感器API的调用后,向主程序发送关闭GPS定位传感器的消息。
其中,关闭GPS定位传感器的消息是预先定义的,该消息可以表示为DWORD GPSCloseDeviceEx(),其中,消息体可以为DWORD GPSCloseDevice()的输入参数HANDLE hGPSDevice的内容;当然,消息体也可以为空。本实施例中,该请求具体可以表示为DWORD GPSCloseDeviceEx(HANDLEhGPSDevice)。
217、主程序将关闭GPS定位传感器的消息发送给客户端,具体地,可以通过主程序与客户端之间的传输通道发送。
具体地,在本发明的一个实施例中,主程序可以直接向客户端转发接收到的关闭GPS定位传感器的消息。
当然,在客户端所运行的操作系统与服务器运行的操作系统不同时,主程序还可以根据客户端所运行的操作系统对接收到的关闭GPS定位传感器的消息进行转换处理后,再发送给客户端。
218、客户端在收到服务器发送的关闭GPS定位传感器请求时,如果消息体携带了DWORD GPSCloseDevice()的输入参数HANDLE hGPSDevice的内容,则可以提取消息体中HANDLE hGPSDevice的内容作为DWORDGPSCloseDevice()函数的输入参数,在本地调用执行DWORDGPSCloseDevice(HANDLE hGPSDevice)关闭GPS定位传感器;如果关闭GPS定位传感器的消息的消息体为空,则使用默认的参数在本地调用执行DWORDGPSCloseDevice(HANDLE hGPSDevice)关闭GPS定位传感器;在成功关闭GPS定位传感器或关闭GPS定位传感器失败时,向主程序发送关闭GPS定位传感器响应。
219、主程序将接收到的关闭GPS定位传感器响应转发给hook程序。
220、hook程序在收到关闭GPS定位传感器响应后,将关闭GPS定位传感器响应消息体的内容作为GPS应用对关闭GPS定位传感器API进行调用获得的返回值发送给GPS应用,表示成功关闭了GPS定位传感器或关闭GPS定位传感器失败,结束GPS应用对关闭GPS定位传感器API的调用。其中,如果GPS定位传感器关闭失败,则GPS应用可以再次调用关闭GPS定位传感器API,重新执行215~220的过程。
可以理解的是,本实施例中209~214可以循环执行一次或二次以上。
从上可知,本实施例中服务器执行了GPS应用后,可以从请求执行该GPS应用的客户端获取客户端的本地资源数据,从而使GPS应用获取客户端的本地资源数据,并且GPS应用可以以客户端的本地资源数据进行处理获得处理结果,获得的处理结果能够与客户端的本地资源数据保持一致,使用户真实地体验在线应用,提高了用户体验。
如下对本发明另一个实施例提供的在线应用处理方法进行描述,为方便表述,假设服务器运行的系统为windows mobile,客户端为自带GPS定位传感器的手机,该手机运行的系统为windows mobile,该实施例中在线应用为本地资源应用,该本地资源应用具体为为GPS应用。
本实施例中,由实现被修改过的API向主程序发送获取本地资源数据的消息,以及将接收到的来自主程序的本地资源数据发送给GPS应用等;本实施例中,GPS应用的处理过程与图2中GPS应用的处理过程相同,主程序的处理过程与图2中主程序的处理过程相同,客户端的处理过程与图2中客户端的处理过程相同,不再赘述。
本实施例中修改过的API包括:打开GPS定位传感器API,表示为HANDLE GPSOpenDevice(HANDLE hNewLocationData,HANDLEhDeviceStateChange,const WCHAR*szDeviceName,DWORD dwFlags);获取GPS数据API,表示为DWORD GPSGetPosition (HANDLE hGPSDevice,GPS_POSITION*pGPSPosition,DWORD dwMaximumAge,DWORD dwFlags);关闭GPS定位传感器API,表示为DWORD GPSCloseDevice (HANDLEhGPSDevice)。以及定义了三个消息:打开GPS定位传感器的消息,获取GPS数据的消息,关闭GPS定位传感器的消息。
其中,打开GPS定位传感器的消息由实现被修改过的打开GPS定位传感器API发送,具体由实现被修改过的打开GPS定位传感器API被GPS引用调用时发送,该消息的消息体可以为HANDLE GPSOpenDevice()的四个输入参数HANDLE hNewLocationData,HANDLE hDeviceStateChange,const WCHAR*szDeviceName,DWORD dwFlags的内容;实现被修改过的打开GPS定位传感器API将打开GPS定位传感器的消息发送给主程序后,等待主程序返回的打开GPS定位传感器响应,然后将打开GPS定位传感器响应的消息体作为对打开GPS定位传感器API的调用的返回值发送给GPS应用,结束GPS应用对打开GPS定位传感器API的调用。
获取GPS数据的消息由实现被修改过的获取GPS数据API或打开GPS定位传感器API发送,具体地,由获取GPS数据API在被GPS应用调用时发送、或由打开GPS定位传感器API在被GPS应用调用时发送;其中,在获取GPS数据的消息由获取GPS数据API在被GPS应用调用时发送时,该消息的消息体为DWORD GPSGetPosition()的三个输入参数HANDLEhGPSDevice,DWORD dwMaximumAge,DWORD dwFlags的内容;实现被修改过的获取GPS数据API将获取GPS数据的消息发送给主程序后,等待主程序返回的获取GPS数据响应,然后将获取GPS数据响应的消息体作为对获取GPS数据API的调用的返回值发送给GPS应用,结束对获取GPS数据API的调用。
关闭GPS定位传感器的消息由实现被修改过的关闭GPS定位传感器API发送,具体是由关闭GPS定位传感器API在被GPS应用调用时发送,该消息的消息体为DWORD GPSCloseDevice()的输入参数HANDLE hGPSDevice的内容;实现被修改过的关闭GPS定位传感器API将关闭GPS定位传感器的消息发送给主程序后,等待主程序返回的关闭GPS定位传感器响应,然后将关闭GPS定位传感器响应的消息体作为对关闭GPS定位传感器API的调用的返回值发送给GPS应用,结束对关闭GPS定位传感器API的调用。
从上可知,本实施例中服务器执行了GPS应用后,可以从请求执行该GPS应用的客户端获取客户端的本地资源数据,从而使GPS应用获取客户端的本地资源数据,并且GPS应用可以以客户端的本地资源数据进行处理获得处理结果,获得的处理结果能够与客户端的本地资源数据保持一致,使用户真实地体验在线应用,提高了用户体验。
图3描述了本发明另一个实施例中服务器与客户端的信令交互流程,该实施例中在线应用为本地资源应用,该本地资源应用具体为GPS应用,GPS应用与主程序通过hook程序交互,其中,服务器运行的系统为windowsmobile,client为自带GPS定位传感器的手机,该手机运行的系统为windowsmobile,该实施例包括:
301、客户端向服务器发送在线应用执行请求,本实施例中,该在线应用执行请求所请求的在线应用具体是GPS应用。
302、服务器执行GPS应用,开辟缓存GPS_Buffer,GPS_Buffer的存储空间大小为sizeof(GPS_POSITION)的正整数倍,具体地,GPS_Buffer的存储空间大小可以根据GPS_Buffer需要存储的GPS数据的数量确定。
其中,在没有与客户端对应的虚拟机运行时,需要先运行虚拟机,然后在虚拟机中执行GPS应用;如果与客户端对应的虚拟机已经运行,可以直接在虚拟机中执行GPS应用。
其中,主程序可以实时将虚拟机的执行情况传送至客户端,具体地,在虚拟机执行了GPS应用后,实时传送至客户端的虚拟机的执行情况即为GPS应用的执行情况。
303、服务器向客户端发送获取GPS数据的消息。
该获取GPS数据的消息可以请求客户端返回一次GPS数据,也可以请求客户端周期性地返回GPS数据,也可以请求客户端在一段时间内周期性地返回GPS数据。
其中,获取GPS数据的消息的消息体可以为空,也可以携带客户端调用获取GPS数据API需要使用的默认参数。
304、客户端接收到获取GPS数据请求后,打开GPS定位传感器获取GPS数据,并通过获取GPS数据响应的消息体将获取到的GPS数据发送给服务器。
具体地,客户端在收到服务器发送的获取GPS数据请求后,在本地调用执行HANDLE GPSOpenDevice(HANDLE hNewLocationData,HANDLEhDeviceStateChange,const WCHAR*szDeviceName,DWORD dwFlags)打开GPS定位传感器,然后在本地调用DWORD GPSGetPosition(HANDLEhGPSDevice,GPS_POSITION*pGPSPosition,DWORD dwMaximumAge,DWORD dwFlags)获取GPS数据,然后通过获取GPS数据响应将获取的GPS数据发送给服务器,其中,可以在获取GPS数据响应的消息体中携带该GPS数据,获取的GPS数据具体可以是pGPSPosition所指向的、大小为sizeof(GPS_POSITION)的数据块。在调用DWORD GPSGetPosition(HANDLEhGPSDevice,GPS_POSITION*pGPSPosition,DWORD dwMaximumAge,DWORD dwFlags)时,如果获取GPS数据的消息的消息体携带了参数,则直接使用获取GPS数据的消息的消息体携带的参数,否则使用默认参数。
其中,客户端可以根据获取GPS数据请求的指示,在本地调用一次DWORD GPSGetPosition(HANDLE hGPSDevice,GPS_POSITION*pGPSPosition,DWORD dwMaximumAge,DWORD dwFlags)获取GPS数据,或周期性地调用DWORD GPSGetPosition(HANDLE hGPSDevice,GPS_POSITION*pGPSPosition,DWORD dwMaximumAge,DWORD dwFlags)获取GPS数据,或在一段时间内周期性地调用DWORDGPSGetPosition(HANDLE hGPSDevice,GPS_POSITION*pGPSPosition,DWORD dwMaximumAge,DWORD dwFlags)获取GPS数据。
305、主程序接收到获取GPS数据响应后,将获取GPS数据响应的消息体,即GPS数据,存储在缓存GPS_Buffer中。
306、GPS应用调用服务器上的打开GPS定位传感器API。
该打开GPS定位传感器API可以表示为HANDLE GPSOpenDevice(HANDLE hNewLocationData,HANDLE hDeviceStateChange,const WCHAR*szDeviceName,DWORD dwFlags),其中,HANDLE hNewLocationData,HANDLE hDeviceStateChange,const WCHAR*szDeviceName和DWORDdwFlags是HANDLE GPSOpenDevice的四个输入参数。
可以理解的是,303和306并没有执行上的先后顺序,可以并行执行。
307、hook程序拦截到GPS应用对打开GPS定位传感器API的调用后,向GPS应用返回一个非空值,该非空值作为GPS应用对打开GPS定位传感器API进行调用获得的返回值,该非空值表示成功打开了GPS定位传感器,结束GPS应用对打开GPS定位传感器API的调用。
可选的,可以预先定义打开GPS定位传感器的函数,表示为HANDLEGPSOpenDeviceEx(HANDLE hNewLocationData,HANDLEhDeviceStateChange,const WCHAR*szDeviceName,DWORD dwFlags ),其中,HANDLE GPSOpenDeviceEx()的四个参数的值可以直接用打开GPS定位传感器API的四个输入参数的值;在拦截到GPS应用对打开GPS定位传感器API的调用时,执行该打开GPS定位传感器的函数向主程序发送打开GPS定位传感器的消息,主程序可以向客户端转发该打开GPS定位传感器的消息,也可以不转发该消息;客户端在接收到该打开GPS定位传感器的消息后,如果客户端已经打开了GPS定位传感器,则可以直接忽略该消息;如果客户端还没有打开GPS定位传感器,则可以打开GPS定位传感器。
308、GPS应用调用获取GPS数据API。
该获取GPS数据API可以表示为DWORD GPSGetPosition(HANDLEhGPSDevice,GPS_POSITION*pGPSPosition,DWORD dwMaximumAge,DWORD dwFlags),其中,HANDLE hGPSDevice,GPS_POSITION*pGPSPosition,DWORD dwMaximumAge,DWORD dwFlags是DWORDGPSGetPosition的四个输入参数;
309、hook程序拦截到GPS应用对获取GPS数据API的调用后,从缓存GPS_Buffer中取出GPS数据返回给GPS应用,具体可以取出sizeof(GPS_POSITION)大小的数据,该GPS数据即为GPS应用对获取GPS数据API进行调用获得的返回值,结束对获取GPS数据API的调用。
具体地,可以预先定义获取GPS数据的函数,表示为DWORDGPSGetPositionEx(HANDLE hGPSDevice,GPS_POSITION*pGPSPosition,DWORD dwMaximumAge,DWORD dwFlags),在拦截到GPS应用对获取GPS数据API的调用时,执行该获取GPS数据的函数获取GPS数据。
310、GPS应用调用关闭GPS定位传感器API。
该关闭GPS定位传感器API可以表示为DWORDGPSCloseDevice(HANDLE hGPSDevice),其中,HANDLE hGPSDevice是DWORD GPSCloseDevice的输入参数。
311、hook程序拦截到GPS应用对关闭GPS定位传感器API的调用后,向GPS应用返回一个非空值,该非空值作为GPS应用对关闭GPS定位传感器API进行调用获得的返回值,表示成功关闭了GPS定位传感器,结束GPS应用对打开GPS定位传感器API的调用。
具体地,可以预先定义关闭GPS数据的函数,表示为DWORDGPSCloseDeviceEx(HANDLE hGPSDevice),在拦截到GPS应用对关闭GPS定位传感器API的调用时,调用该关闭GPS数据的函数实现向GPS应用返回一个非空值作为对关闭GPS定位传感器API的调用的返回值,以及向主程序发送关闭GPS定位传感器的消息的功能。其中,关闭GPS定位传感器的消息的消息体可以为DWORD GPSCloseDevice()的输入参数HANDLEhGPSDevice的内容;当然,消息体也可以为空。
312、向主程序发送关闭GPS定位传感器的消息。
其中,可以理解的是,311和312并没有执行上的先后顺序,311可以在312之前执行,311也可以在312之后执行,当然,311和312也可以同时执行。
313、主程序向客户端转发关闭GPS定位传感器的消息。
具体地,在本发明的一个实施例中,主程序可以直接向客户端转发接收到的关闭GPS定位传感器的消息。
当然,在客户端所运行的操作系统与服务器运行的操作系统不同时,主程序还可以根据客户端所运行的操作系统对接收到的关闭GPS定位传感器的消息进行转换处理后,再发送给客户端。
314、客户端在收到服务器发送的关闭GPS定位传感器请求时,如果消息体携带了DWORD GPSCloseDevice()的输入参数HANDLE hGPSDevice的内容,则可以提取消息体中HANDLE hGPSDevice的内容作为DWORDGPSCloseDevice()函数的输入参数,在本地调用执行DWORDGPSCloseDevice(HANDLE hGPSDevice)关闭GPS定位传感器;如果关闭GPS定位传感器的消息的消息体为空,则使用默认的参数在本地调用执行DWORDGPSCloseDevice(HANDLE hGPSDevice)关闭GPS定位传感器;在关闭GPS定位传感器后,向主程序发送关闭GPS定位传感器响应。
315、主程序将接收到的关闭GPS定位传感器响应转发给hook程序。Hook程序可以直接忽略接收到的关闭GPS定位传感器响应。
从上可知,本实施例中服务器执行了GPS应用后,可以从请求执行该GPS应用的客户端获取客户端的本地资源数据,从而使GPS应用获取客户端的本地资源数据,并且GPS应用可以以客户端的本地资源数据进行处理获得处理结果,获得的处理结果能够与客户端的本地资源数据保持一致,使用户真实地体验在线应用,提高了用户体验。
如下对本发明另一个实施例提供的在线应用处理方法进行描述,为方便表述,假设服务器运行的系统为windows mobile,客户端为自带GPS定位传感器的手机,该手机运行的系统为windows mobile,该实施例中在线应用为本地资源应用,该本地资源应用具体为GPS应用。
本实施例中,由实现被修改过的API向主程序发送获取GPS数据的消息,以及从缓存中取出GPS数据返回给传感器应用等;本实施例中,GPS应用的处理过程与图3中GPS应用的处理过程相同,主程序的处理过程与图3中主程序的处理过程相同,客户端的处理过程与图3中客户端的处理过程相同,不再赘述。
本实施例中实现被修改过的API包括:获取GPS数据API,表示为DWORD GPSGetPosition(HANDLE hGPSDevice,GPS_POSITION*pGPSPosition,DWORD dwMaximumAge,DWORD dwFlags),该获取GPS数据API的功能是从缓存GPS_Buffer中取出GPS数据返回给GPS应用,具体可以取出sizeof(GPS_POSITION)大小的数据。
可选地,本实施例还可以提供两个API:打开GPS定位传感器API和关闭GPS定位传感器API,其中打开GPS定位传感器API可以表示为HANDLEGPSOpenDevice(HANDLE hNewLocationData,HANDLE hDeviceStateChange,const WCHAR*szDeviceName,DWORD dwFlags),功能是向主程序发送打开GPS定位传感器的消息,以及向GPS应用返回一个非空值表示成功打开了GPS定位传感器;关闭GPS定位传感器API可以表示为DWORDGPSCloseDevice(HANDLE hGPSDevice),功能是向主程序发送关闭GPS定位传感器的消息,向GPS应用返回一个非空值表示成功关闭了GPS定位传感器。
从上可知,本实施例中服务器执行了GPS应用后,可以从请求执行该GPS应用的客户端获取客户端的本地资源数据,从而使GPS应用获取客户端的本地资源数据,并且GPS应用可以以客户端的本地资源数据进行处理获得处理结果,获得的处理结果能够与客户端的本地资源数据保持一致,使用户真实地体验在线应用,提高了用户体验。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
先介绍本发明实施例提供的在线应用处理装置,图4描述了本发明一个实施例提供的在线应用处理装置的结构,包括:
接收器401,用于接收来自客户端的在线应用执行请求。
执行处理单元402,用于在接收器401接收了在线应用执行请求后,执行在线应用。
获取单元403,用于在执行单元402执行了在线应用后,从客户端获得客户端的本地资源数据。
具体地,获取单元403在执行单元402执行的在线应用是本地资源应用时,才从客户端获得客户端的本地资源数据。
执行处理单元402,用于以获取单元403获取的客户端的本地资源数据作为在线应用的输入数据进行处理。
发送器405,用于实时将执行处理单元402执行的在线应用的执行情况传送至客户端。
从上可知,本实施例中服务器执行了在线应用后,可以从请求执行该在线应用的客户端获取客户端的本地资源数据,从而使在线应用获取客户端的本地资源数据,并且在线应用可以以客户端的本地资源数据进行处理获得处理结果,获得的处理结果能够与客户端的本地资源数据保持一致,使用户真实地体验在线应用,提高了用户体验。
图5描述了本发明另一个实施例提供的在线应用处理装置的结构,包括:
接收器401,用于接收来自客户端的在线应用执行请求。
执行处理单元402,用于在接收器401接收了在线应用执行请求后,执行在线应用。
打开单元506,用于在执行单元402执行在线应用后,打开客户端的本地资源设备。
其中,打开单元506,具体可以在拦截到在线应用对打开本地资源设备API的调用,或检测到在线应用的进程出现时,通过发送器404向客户端发送打开本地资源设备的消息;或在在线应用调用的打开本地资源设备API的实现修改为向客户端发送打开本地资源设备的消息时,直接由执行处理单元402执行的在线应用调用实现被修改过的打开本地资源设备API,通过发送器404向客户端发送打开本地资源设备的消息。
获取单元403,用于在打开单元506打开了客户端的本地资源设备后,从客户端获得客户端的本地资源数据。
执行处理单元402,用于以获取单元403获取的客户端的本地资源数据作为在线应用的输入数据进行处理。
发送器405,用于实时将执行处理单元402执行的在线应用的执行情况传送至客户端。
从上可知,本实施例中服务器执行了在线应用后,可以从请求执行该在线应用的客户端获取客户端的本地资源数据,从而使在线应用获取客户端的本地资源数据,并且在线应用可以以客户端的本地资源数据进行处理获得处理结果,获得的处理结果能够与客户端的本地资源数据保持一致,使用户真实地体验在线应用,提高了用户体验。
图6描述了本发明另一个实施例提供的在线应用处理装置的结构,包括:
接收器401,用于接收来自客户端的在线应用执行请求。
执行处理单元402,用于在接收器401接收了在线应用执行请求后,执行在线应用。
获取单元403,用于在执行单元402执行了在线应用后,从客户端获得客户端的本地资源数据。
执行处理单元402,用于以获取单元403获取的客户端的本地资源数据作为在线应用的输入数据进行处理。
发送器405,用于实时将执行处理单元402执行的在线应用的执行情况传送至客户端。
关闭单元607,用于在获取单元403从客户端获得本地资源数据后,关闭客户端的本地资源设备。
其中,关闭单元607,具体可以用于在拦截到在线应用对关闭本地资源设备API的调用,或检测到在线应用的进程消失时,通过发送器404向客户端发送关闭本地资源设备的消息;或在在线应用调用的关闭本地资源设备API的实现修改为向客户端发送关闭本地资源设备的消息时,直接由执行处理单元402执行的在线应用调用实现被修改过的关闭本地资源设备API,通过发送器404向客户端发送关闭本地资源设备的消息。
可以理解的是,本实施例可以进一步包括图5所描述的打开单元506。
从上可知,本实施例中服务器执行了在线应用后,可以从请求执行该在线应用的客户端获取客户端的本地资源数据,从而使在线应用获取客户端的本地资源数据,并且在线应用可以以客户端的本地资源数据进行处理获得处理结果,获得的处理结果能够与客户端的本地资源数据保持一致,使用户真实地体验在线应用,提高了用户体验。
在本发明一个实施例中,提供的在线应用处理装置所包括的获取单元403,具体可以用于在执行处理单元402执行了在线应用后,如果检测到需要本地资源数据,通过发送器404向客户端发送获取本地资源数据的消息,并通过接收器401接收来自客户端的本地资源数据。具体地,可以在拦截到在线应用对打开本地资源设备API的调用、或在拦截到在线应用对获取本地资源数据API的调用、或检测到在线应用的进程出现时,通过发送器404向客户端转发获取本地资源数据的消息;通过接收器401接收来自客户端的本地资源数据;或在在线应用调用的获取本地资源数据API的实现修改为向客户端发送获取本地资源数据的消息时,直接由执行处理单元402执行的在线应用调用实现被修改过的获取本地资源数据API,通过发送器404向客户端发送获取本地资源数据的消息。
其中,本发明实施例提供的在线应用处理装置,还可以包括存储器,该存储器用于将获取单元403获得的本地资源数据存储在缓存中,此时,执行处理单元402具体可以用于以存储器中存储的本地资源数据作为在线应用的输入数据进行处理。
其中,本发明实施例提供的在线应用处理装置在执行本发明实施例提供的在线应用处理方法时,执行处理单元402可以作为虚拟机,发送器405可以作为主程序。
本发明实施例提供的在线应用处理装置可以作为服务器,具体是在线应用平台。
本发明另一个是实施例还提供了在线应用处理系统,该系统包括本发明实施例提供的的在线应用处理装置和客户端;其中,该客户端,用于接收来自在线应用处理装置的获取本地资源数据的消息,将获取的客户端的本地资源数据发送给在线应用处理装置。
从上可知,本实施例中服务器执行了在线应用后,可以从请求执行该在线应用的客户端获取客户端的本地资源数据,从而使在线应用获取客户端的本地资源数据,并且在线应用可以以客户端的本地资源数据进行处理获得处理结果,获得的处理结果能够与客户端的本地资源数据保持一致,使用户真实地体验在线应用,提高了用户体验。
上述装置和系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(ROM:Read-Only Memory)或随机存储记忆体(RAM:Random Access Memory)等。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (17)

1.一种用于在线应用处理装置的在线应用处理方法,其特征在于,包括:
接收来自客户端的在线应用执行请求;
执行所述在线应用,在拦截到所述在线应用对获取本地资源数据API的调用、或检测到所述在线应用的进程出现时,向所述客户端发送所述获取本地资源数据的消息,或通过所述在线应用调用的获取本地资源数据API向所述客户端发送所述获取本地资源数据的消息,所述在线应用调用的获取本地资源数据API的实现被修改为向客户端发送获取本地资源数据的消息;
接收所述客户端的本地资源数据;
以所述客户端的本地资源数据作为所述在线应用的输入数据进行处理;
实时将在线应用的执行情况传送至客户端;
如果在拦截到所述在线应用对获取本地资源数据API的调用时发送获取本地资源数据的消息,该获取本地资源数据的消息包括所述获取本地资源数据API的参数;
如果通过所述在线应用调用的获取本地资源数据API向所述客户端发送获取本地资源数据的消息,该获取本地资源数据的消息包括所述在线应用调用的获取本地资源数据API的参数。
2.如权利要求1所述的在线应用处理方法,其特征在于,从客户端获得客户端的本地资源数据后进一步包括:
将所述本地资源数据存储在缓存中;
所述以本地资源数据作为在线应用的输入数据进行处理包括:
从所述缓存中读取本地资源数据作为所述在线应用的输入数据进行处理。
3.如权利要求1至2任一所述的在线应用处理方法,其特征在于,从所述客户端获得客户端的本地资源数据前进一步包括:
打开所述客户端的本地资源设备。
4.如权利要求3所述的在线应用处理方法,其特征在于,所述打开客户端的本地资源设备包括:
在拦截到所述在线应用对打开本地资源设备API的调用,或检测到所述在线应用的进程出现时,向所述客户端发送所述打开本地资源设备的消息;或
通过所述在线应用调用的打开本地资源设备API为向所述客户端发送打开本地资源的消息,所述在线应用调用的打开本地资源设备API的实现被修改为向客户端发送打开本地资源设备的消息。
5.如权利要求4所述的在线应用处理方法,其特征在于,如果在拦截到所述在线应用对打开本地资源设备API的调用时发送打开本地资源设备的消息,该打开本地资源设备的消息包括所述打开本地资源设备API的参数;
如果通过所述在线应用调用的打开本地资源设备API向所述客户端发送打开本地资源设备的消息,该打开本地资源设备的消息包括所述在线应用调用的打开本地资源设备API的参数。
6.如权利要求1至2任一所述的在线应用处理方法,其特征在于,从所述客户端获得客户端的本地资源数据后进一步包括:
关闭所述客户端的本地资源设备。
7.如权利要求6所述的在线应用处理方法,其特征在于,所述关闭客户端的本地资源设备包括:
在拦截到所述在线应用对关闭本地资源设备API的调用,或检测到所述在线应用的进程消失时,向所述客户端转发所述关闭本地资源设备的消息;或
将所述在线应用调用的关闭本地资源设备API向所述客户端发送所述关闭本地资源设备的消息,所述在线应用调用的关闭本地资源设备API的实现被修改为向客户端发送关闭本地资源设备的消息。
8.如权利要求7所述的在线应用处理方法,其特征在于,如果在拦截到所述在线应用对关闭本地资源设备API的调用时发送关闭本地资源设备的消息,该关闭本地资源设备的消息包括所述关闭本地资源设备API的参数;
如果通过所述在线应用调用的关闭本地资源设备API向所述客户端发送关闭本地资源设备的消息,该关闭本地资源设备的消息包括所述在线应用调用的关闭本地资源设备API的参数。
9.如权利要求1至2任一所述的在线应用处理方法,其特征在于,所述在线应用的执行情况包括:
所述在线应用执行时生成的音频数据和/或图像数据,所述图像数据包括视频数据和/或绘图原语。
10.如权利要求1至2任一所述的在线应用处理方法,其特征在于,所述客户端的本地资源数据包括:传感器数据,地址簿数据,日历数据,照相机数据,摄像头数据中的至少一个;
所述传感器数据由传感器设备获得,所述传感器设备包括:
重力感应传感器,温度传感器,湿度传感器,全球卫星定位系统定位传感 器,噪音传感器,海拔传感器,气压传感器和方向传感器中的至少一个。
11.一种在线应用处理装置,其特征在于,包括:
接收器,用于接收来自客户端的在线应用执行请求;
执行处理单元,用于在所述接收器接收了所述在线应用执行请求后,执行所述在线应用;
发送器;
获取单元,用于在所述执行处理单元执行了所述在线应用后,所述获取单元具体用于在拦截到所述在线应用对获取本地资源数据API的调用、或检测到所述在线应用的进程出现时,通过所述发送器向所述客户端发送所述获取本地资源数据的消息;或在所述在线应用调用的获取本地资源数据API的实现修改为向所述客户端发送所述获取本地资源数据的消息时,直接由所述执行处理单元执行的在线应用调用实现被修改过的获取本地资源数据API,通过所述发送器向所述客户端发送所述获取本地资源数据的消息,并通过所述接收器接收所述客户端的本地资源数据;如果在拦截到所述在线应用对获取本地资源数据API的调用时发送获取本地资源数据的消息,该获取本地资源数据的消息包括所述获取本地资源数据API的参数;如果通过所述在线应用调用的获取本地资源数据API向所述客户端发送获取本地资源数据的消息,该获取本地资源数据的消息包括所述在线应用调用的获取本地资源数据API的参数;
其中:
所述执行处理单元,还用于以所述获取单元获取的客户端的本地资源数据作为所述在线应用的输入数据进行处理;所述发送器,用于实时将执行处理单元执行的在线应用的执行情况传送至客户端。
12.如权利要求11所述的在线应用处理装置,其特征在于,还包括:
存储器,用于将所述获取单元获得的本地资源数据存储在缓存中;
所述执行处理单元,具体用于以所述存储器中存储的本地资源数据作为所述在线应用的输入数据进行处理。
13.如权利要求12任一所述的在线应用处理装置,其特征在于,还包括:
打开单元,用于在所述执行处理单元执行了所述在线应用后,打开所述客户端的本地资源设备;
所述获取单元,具体用于在所述打开单元打开了所述客户端的本地资源设备后,从所述客户端获得客户端的本地资源数据。
14.如权利要求13所述的在线应用处理装置,其特征在于,所述打开单元,具体用于在拦截到所述在线应用对打开本地资源设备API的调用,或检测到所述在线应用的进程出现时,通过所述发送器向所述客户端发送所述打开本地资源设备的消息;或
在所述在线应用调用的打开本地资源设备API的实现修改为向所述客户端发送所述打开本地资源设备的消息时,直接由所述执行处理单元执行的在线应用调用实现被修改过的打开本地资源设备API,通过所述发送器向所述客户端发送所述打开本地资源设备的消息。
15.如权利要求11所述的在线应用处理装置,其特征在于,还包括:
关闭单元,用于在所述获取单元从所述客户端获得客户端的本地资源数据后,关闭所述客户端的本地资源设备。
16.如权利要求15所述的在线应用处理装置,其特征在于,所述关闭单元,具体用于在拦截到所述在线应用对关闭本地资源设备API的调用,或检测到所述在线应用的进程消失时,通过所述发送器向所述客户端发送所述关闭本地资源设备的消息;或
在所述在线应用调用的关闭本地资源设备API的实现修改为向所述客户端发送所述关闭本地资源设备的消息时,直接由所述执行处理单元执行的在线应用调用实现被修改过的关闭本地资源设备API,通过所述发送器向所述客户端发送所述关闭本地资源设备的消息。
17.一种在线应用处理系统,其特征在于,包括:
客户端,用于发送在线应用执行请求;以及
如权利要求11至16任一所述的在线应用处理装置,用于基于所述在线应用请求,执行所述在线应用,在拦截到所述在线应用对获取本地资源数据API的调用、或检测到所述在线应用的进程出现时,向所述客户端发送所述获取本地资源数据的消息,或通过所述在线应用调用的获取本地资源数据API向所述客户端发送所述获取本地资源数据的消息,所述在线应用调用的获取本地资源数据API的实现被修改为向客户端发送获取本地资源数据的消息,以及从所述客户端获得客户端的本地资源数据,以所述客户端的本地资源数据作为所述在线应用的输入数据进行处理;其中,如果在拦截到所述在线应用对获取本地资源数据API的调用时发送获取本地资源数据的消息,该获取本地资源数据的消息包括所述获取本地资源数据API的参数;如果通过所述在线应用调用的获取 本地资源数据API向所述客户端发送获取本地资源数据的消息,该获取本地资源数据的消息包括所述在线应用调用的获取本地资源数据API的参数。
CN201180000960.2A 2011-06-03 一种在线应用处理方法、装置及系统 Active CN102918819B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/075332 WO2011157180A2 (zh) 2011-06-03 2011-06-03 一种在线应用处理方法、装置及系统

Publications (2)

Publication Number Publication Date
CN102918819A CN102918819A (zh) 2013-02-06
CN102918819B true CN102918819B (zh) 2016-11-30

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1801145A (zh) * 2005-01-06 2006-07-12 中兴通讯股份有限公司 一种提高应用系统访问数据库效率的方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1801145A (zh) * 2005-01-06 2006-07-12 中兴通讯股份有限公司 一种提高应用系统访问数据库效率的方法

Similar Documents

Publication Publication Date Title
JP7263442B2 (ja) モバイルアプリケーションのリアルタイム遠隔制御のためのシステムおよび方法
US11385778B2 (en) Inline message alert
US20170024100A1 (en) Frictionless Interface for Virtual Collaboration, Communication and Cloud Computing
US10366148B1 (en) Lightweight browser monitoring and viewing
US10212107B2 (en) Methods and devices for controlling machines
CN103051865B (zh) 画面控制的方法及终端、视频会议装置
WO2014101521A1 (zh) 基于地理位置的通讯方法、移动终端、服务器及系统
EP1966715A2 (en) Methods and apparatuses for dynamically sharing a portion of a display for application based screen sampling
JP4892653B2 (ja) 端末装置、サーバシステム、これらの制御方法及び制御プログラム、ならびに情報共有システム
CN107071035B (zh) 移动终端远程控制方法、装置及相应的移动终端
CN102984189A (zh) 一种无线网络及其实现方法、终端
CN113407134A (zh) 基于分屏显示实现多客户端之间文件共享的方法和装置
CN109644154A (zh) 针对人工对话实体的基于位置的访问控制
CN104579908B (zh) 图像显示的方法及装置
CN112817671A (zh) 图像处理方法、装置、设备以及计算机可读存储介质
CN107038201A (zh) 个人主页的显示方法、装置、终端及服务器
US6404430B1 (en) Virtual space information processor
CN102918819B (zh) 一种在线应用处理方法、装置及系统
CN111708595A (zh) 一种基于可视化界面的远程交互协作方法及装置
JP2022517943A (ja) リアルタイム通信のデバイス拡張
CN109600409B (zh) 应用的资源管理方法及终端
US20140095574A1 (en) Method, Apparatus, and System for Online Application Processing
CN104579901B (zh) 文件传输结果态的展示方法和装置
KR101876134B1 (ko) 실시간 협업을 지원하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체
WO2024021036A1 (zh) 模型控制方法、装置、设备、系统以及计算机存储介质

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant