跨系统远程实时交互技术的制作方法

文档序号:7803314阅读:178来源:国知局
跨系统远程实时交互技术的制作方法
【专利摘要】一种跨系统远程实时交互技术,该技术包括应用程序托管(AH)组件、低延时数据压缩传输(LLCT)组件、远程实时渲染及输入捕获(R3IC)组件。上述三个组件协同工作,使基于特定操作系统的应用程序可以不通过任何源代码移植、编译的工作即可在任意操作系统上远程运行。该技术使应用程序可以跨越任意操作系统提供完全一致的图形输出结果和用户体验,达到降低用户运行成本、减少软件跨平台开发及发布成本、提高应用程序运行完整性和保密性之目的。
【专利说明】跨系统远程实时交互技术
【技术领域】
[0001]本发明涉及一种可跨越不同操作系统的应用程序远程发布技术。更具体地说,本技术使基于特定操作系统的应用程序可以不通过任何源代码移植、编译的工作即可在任意操作系统上远程运行。该技术使应用程序可以跨越任意操作系统提供完全一致的图形输出结果和用户体验,达到降低用户运行成本、减少软件跨平台开发及发布成本、提高应用程序运行完整性和保密性之目的。
【背景技术】
[0002]随着计算机操作系统,特别是移动计算技术的发展,越来越多的消费者不再依赖单一的计算机操作系统。例如人们往往在办公室使用基于Windows操作系统的Office软件编写文档;使用基于Mac OSX的Photoshop加工图片;在外出时使用基于IOS的iPad或iPhone收发电子邮件并浏览网页;在家里使用基于Android的电视盒收看视频节目;以及使用基于Linux的电子游戏机如PS3或SteamBox进行娱乐。这种状况的产生是由于不同的中央处理器和操作系统组合成的计算平台对应于不同的使用环境,而这些环境对电池、计算能力以及成本等具有不同要求。对消费者而言,多样化的计算平台势必会造成使用成本的增加,这些成本既包括购买多个计算平台的成本,也包括使用习惯不同所带来的学习成本等;对于软件供应商而言,多平台的现状也增加了软件生产和发布成本,例如微软会针对Windows和OSX同时研发两个版本的Office,游戏开发商也会针对IOS和Android发布同一游戏的不同版本。
[0003]为解决多种计算平台下软件分发所带来的高成本、高复杂度和用户体验差异化等问题,需要设计一种技术,该技术可以将运行在指定计算平台下的任意应用程序进行托管,将该应用程序的输出进行编码后使用远程通讯技术在远端的任意计算平台上进行实时渲染,同时于上述远端计算平台上处理用户输入,经过编码和远程通讯技术将输入信息传输到托管计算平台作为该应用程序的实时输入。通过此技术,使得应用程序在设计和分发时仅需考虑一种计算平台,而用户则可以在任意计算平台同该应用程序进行实时交互,如同该应用程序可以在任意平台以相同的用户体验运行。

【发明内容】

[0004]本发明的目的是提供一种能够将基于特定操作系统的应用程序不通过任何源代码移植、编译的工作即可在任意操作系统上远程运行的技术。该技术使应用程序可以跨越任意操作系统提供完全一致的图形输出结果和用户体验,达到降低用户运行成本、减少软件跨平台开发及发布成本、提高应用程序运行完整性和保密性之目的。
[0005]本技术为解决上述问题所采用的方法是:设计一种应用程序托管(AH)技术、一种低延时数据压缩传输(LLCT)技术、一种远程实时渲染及输入捕获(R3IC)技术,三个技术组件协同工作。其中应用程序托管技术用来托管实际运行的应用程序,表现形式是一个操作系统中间件,负责对应用程序程的输出输入调用进行拦截和捕获,并将输出信息写入数据压缩和传输组件,同时从数据压缩和传输组件读取远程输入信息并写入应用程序进程。低延时数据压缩传输技术的表现形式是一个具有网络通讯功能的虚拟硬件设备,负责处理来自应用程序托管组件和远程实时渲染及输入捕获组件的数据,对其使用实时信息流处理技术进行压缩、编码后在两个组件间使用网络通讯协议相互传输,实时信息流处理技术需保证压缩编码和解码解压缩产生的延时开销在毫秒(ms)级。远程实时渲染及输入捕获技术的表现形式是一个支持多个计算平台(如Windows、Linux、OSX> IOS、Android等)的应用程序,该应用程序从低延时数据压缩传输组件读入解码后的远程应用程序输出信息,交给本地显卡进行渲染,同时捕获本地键盘等输入信息,通过低延时数据压缩传输组件传输到应用程序托管组件。
[0006]为方便描述,我们将本技术的三个组件直接命名为AH、LLCT和R3IC,将运行有实际应用程序(APP)和AH组件的计算机命名为RC (Remote Computer),将运行有R3IC组件的计算机命名为LC (Local Computer)。当系统工作时,AH根据前端指令在RC上分配计算资源并运行相应APP,同时接管APP经过显卡渲染后的输出结果,并将该输出结果交付LLCT组件;当用户通过LC上的R3IC组件连接AH时,AH通过前端认证机制验证用户权限,并为授权用户分配对应LLCT的连接端口,R3IC自动连接LLCT ;当R3IC通过LLCT与AH建立通讯后,APP的输出结果以毫秒级延时在R3IC上实时渲染显示,同时用户的输入也以毫秒级延时反馈给AH,并由AH交付APP。自此用户可以在RC上实时控制APP并获取APP输出,直到用户终止。
[0007]本技术中AH组件捕获的数据是APP经过显卡渲染后的输出结果,因此该输出结果仅与HC和APP有关,与负责远程渲染的LC无关,因此当用户在不同LC上渲染APP输出结果时可以得到像素级一致的图像输出,即便这些LC使用完全不同的操作系统,这使得用户可以跨平台“运行”APP。此外AH组件捕获APP经过显卡渲染后的输出数据这一特性,也使得在LC上仅能得到图像输出,APP所涉及的文件系统、内存数据等依然属于RC,避免了 RC上由于计算机病毒等原因造成APP或RC的完整性被破坏,该特性可以有效提高APP和RC数据的完整性和保密性。
[0008]本技术的效果是:1、用户可以在任意操作系统平台的RC上借助AH远程实时运行APP,并且该APP对任意操作系统平台的RC提供完全一致的图形输出结果和用户体验;2、软件开发商借助本技术仅需开发基于一种操作系统平台的APP即可让其在任意操作系统平台发布和远程运行;3、一个APP运行实例可以被多个RC同时访问,即多个用户可以协同操作一个APP并获取一致的输出;4、基于本技术所发布的APP可大大提高其运行时的完整性和保密性。
【专利附图】

【附图说明】
[0009]从下面结合作为优选实施例的附图给出的详细说明,可以更充分地理解本发明,并使本
[0010]发明的特性、优点变得更加显而易见。应该指出,所给出的优选实施例并不是对本发明
[0011]的限制,而仅是为了解释和理解本发明。
[0012]图1是根据本发明一个实施例的跨系统远程实时交互系统的概要图;[0013]图2是表示图1所示的跨系统远程实时交互系统中处于TCP/IP网络远端的服务器端结构图;
[0014]图3是表示图1所示的跨系统远程实时交互系统中处于TCP/IP网络本地端的客户端结构图;
[0015]图4是表示图1所示的跨系统远程实时交互系统的工作流程图。
【具体实施方式】
[0016]以下参考附图详细讨论本发明的优选实施例。在以下的说明中,提出了许多特定的细节以便全面了解本发明。应该指出,本领域的技术人员应当理解,本发明可以不限于这些具体细节。在其它的例子中,那些众所周知的结构没有详细的示出,以避免造成本发明不明确。
[0017]在一般的远程访问技术中,服务器与客户端之间传输的是完整图形界面渲染指令,即服务器将绘制窗口、界面控件、文本等的具体绘制指令传输给客户端,由客户端调用客户端所在操作系统的API进行绘制。例如,使用远程桌面协议(RDP),用户可以在本地计算机上使用远程操作系统桌面。这种远程访问技术实现方式具有以下问题:1、用户端绘制结果与用户端操作系统有关,当本地操作系统与远程操作系统不一致时,绘制生成的图像不一致,用户体验不一致。2、针对直接通过远程显卡渲染输出的图形界面无法在远端绘制,如基于显卡3D加速的3D游戏,或需要显卡进行硬解码的视频。3、无法让多个用户交互使用同一远端桌面。4、远程绘制的内容是全部桌面而非某个特定应用程序的图形输出结果。
5、由于客户端可以调用远程操作系统API,因此远程操作系统不具有安全性和保密性,例如通过API可以直接访问远程操作系统的文件系统和内存。
[0018]本发明采用跨系统远程实时交互技术,通过设计应用程序托管(AH)、低延时数据压缩传输(LLCT)、远程实时渲染及输入捕获(R3IC)三个协同工作的技术组件,以解决上述一般远程访问技术的五个不足。本技术中AH组件捕获的数据是APP经过显卡渲染后的输出结果,因此该输出结果仅与HC和APP有关,与负责远程渲染的RC无关,因此当用户在不同RC上渲染APP输出结果时可以得到像素级一致的图像输出,即便这些RC使用完全不同的操作系统,这使得用户可以跨平台“运行” APP。AH组件可捕获APP经过显卡渲染后的输出数据这一特性,使得需要显卡进行3D或解码运算的复杂图形应用程序也可以进行远程交互。由于APP计算结果不再依赖操作系统,所以多个用户可以同时获得显示结果并协同操作应用程序,这也使得远程访问的界面既可以是整个桌面,也可以是某个指定的APP。此外AH组件捕获APP经过显卡渲染后的输出数据这一特性,也使得在RC上仅能得到图像输出,APP所涉及的文件系统、内存数据等依然属于HC,避免了 RC上由于计算机病毒等原因造成APP或HC的完整性被破坏,该特性可以有效提高APP和HC数据的完整性和保密性。
[0019]本发明可以应用于任何数据处理设备之间的连接,例如,诸如服务器集群与计算机用户终端之间的连接,计算机与诸如平板电脑、手机之类的电子设备之间的连接,或虚拟机与电视机顶盒之间的连接等。为了简单起见,在下面的说明中将以服务器集群与计算机之间的连接为例来描述本发明所述的跨系统远程实时交互系统。应该指出,本发明不限于此,可以应用于任何具有操作系统的计算设备之间的连接。
[0020]以下参考附图详细说明本发明的实现模式。[0021]图1是跨系统远程实时交互系统概要,图中:
[0022]①代表被AH所托管的应用程序及所在的远程计算机
[0023]②代表以互联网为代表的TCP/IP网络
[0024]③代表以平板电脑、手机、PC机为代表的运行有R3IC的本地客户端
[0025]④代表与远程计算机显示完全一致的应用程序输出
[0026]图1中示出了根据本发明的一个实施例的跨系统远程实时交互系统。如图1所示,该系统包括远程计算机和运行有R3IC的本地客户端,简写为RC和LC。RC和LC之间使用LLCT组件通过TCP/IP网络连接。连接建立后,RC上被AH托管的应用程序图形输出结果可以在LC上实时连续显示,同时,LC上用户的输入也可以实时反馈给被托管应用程序。在RC和LC之间交互的数据包括且仅包括:图形输出信息、声音输出信息(如需要)、鼠标、键盘、触摸屏等输入信息,不包括任何直接针对RC和LC的操作系统API调用。
[0027]图2是RC系统结构,其中:
[0028]①表示运行有AH软件的远程计算机操作系统
[0029]②表示远程计算机上安装的设备驱动程序
[0030]③表示远程计算机上的显卡
[0031]④表示远程计算机上的声卡(如需要)
[0032]⑤表示远程计算机上的网卡
[0033]⑥表示远程计算机上操作系统所提供的API
[0034]⑦表示远程计算机上运行的应用程序托管组件AH
[0035]⑧表示远程计算机上运行的低延时数据压缩传输组件LLCT
[0036]⑨表示被AH托管运行的远程应用程序
[0037]在图3是LC系统结构,其中:
[0038]①表示运行有R3IC软件的本地计算机操作系统
[0039]②表示本地计算机上安装的设备驱动程序
[0040]③表示本地计算机上的显卡
[0041]④表示本地计算机上的声卡(如需要)
[0042]⑤表示本地计算机上的网卡
[0043]⑥表示本地计算机上操作系统所提供的API
[0044]⑦表示本地计算机上运行的远程实时渲染及输入捕获组件R3IC
[0045]⑧表示本地计算机上运行的低延时数据压缩传输组件LLCT
[0046]⑨表示本地计算机上的显示输出设备
[0047]图4是跨系统远程实时交互系统工作流程,图中:
[0048]①表示用户通过外部访问控制系统授权
[0049]②表示外部访问控制系统分配RC
[0050]③表示RC运行应用程序托管组件AH
[0051 ]④表示AH根据分配任务托管运行目标应用程序APP
[0052]⑤表示用户通过授权后运行LC上的R3IC组件
[0053]⑥表示R3IC组件与AH组件通过LLCT组件建立交互
[0054]⑦表示RC和LC之间持续交互AH的输出信息和用户输入信息,AH输出信息在LC上进行显示,LC上的用户输入信息交给AH后控制APP运行
[0055]至此已结合实施例对本发明进行了描述。熟悉本领域的人员应当理解,在不脱离本发明的范围和精神的情况下可以容易地对所述实施例做出各种其它修改。因此,附属权利要求的范围并不限于上述说明,而是要广义地解释权利要求。
【权利要求】
1.一种跨系统远程实时交互技术,包括: 一个或一组应用程序托管组件(AH),每个应用程序托管组件负责在某种操作系统上对指定应用程序的输入输出信息进行捕获,并且在需要时控制该应用程序的生命周期; 一个或多个远程实时渲染及输入捕获组件(R3IC),远程实时渲染及输入捕获组件根据版本不同可运行在不同操作系统上,供用户在不同设备上使用。每个远程实时渲染及输入捕获组件以网络通讯方式获取应用程序托管组件产生的应用程序图形输出信息,将其解码后以本地应用程序方式进行渲染,使得用户在运行R3IC的设备上以图形流方式接收远端应用程序运行结果;每个远程实时渲染及输入捕获组件还可以捕获用户在本地的键盘、鼠标、手指操作等输入指令,并以网络通讯方式将该输入指令序列送达远端应用程序,使得用户在运行R3IC的设备上操作远端应用程序; 一个或一组低延时数据压缩传输组件(LLCT),每个低延时数据压缩传输组件用于将一个应用程序托管组件和一个或多个远程实时渲染及输入捕获组件连接,并在二者交互数据时对数据以流方式进行实施编码、压缩、传输和解码,确保数据传输延时处于较低状态(毫秒级),并且当意外出现时断开二者的连接。
2.根据权利要求1所述的使用跨系统远程实时交互技术的跨系统远程实时交互软件,其中所述应用程序托管组件(AH)具有托管应用程序运行功能,并具有将应用程序图形输出信息捕获及接管应用程序输入指令之功能;所述远程实时渲染及输入捕获组件(R3IC)具有以图形流方式渲染上述被托管应用程序图形输出信息功能及接收用户输入信息功能;所述低延时数据压缩传输组件(LLCT)具有数据压缩传输功能;应用程序托管组件通过低延时数据压缩传输组件与远程实时渲染及输入捕获组件进行交互。
3.根据权利要求1或 2所述的跨系统远程实时交互软件,其中所述应用程序托管组件可同时与一个或多个远程实时渲染及输入捕获组件交互,以实现协同使用被托管应用程序之功能。
4.根据权利要求1或2所述的跨系统远程实时交互软件,其中所述应用程序托管组件运行在被托管应用程序相同的操作系统上,远程实时渲染及输入捕获组件根据发型版本不同可运行在不同操作系统上,用户通过在不同操作系统上使用远程实时渲染及输入捕获组件与应用程序托管组件所托管的应用程序进行交互,以达到跨操作系统使用应用程序之效果O
5.根据权利要求1或2所述的跨系统远程实时交互软件,其中所述应用程序托管组件捕获的是被托管应用程序经过显卡渲染后的输出结果而非绘图指令,该显卡渲染后的输出结果可表示为图片流、视频等可视化信息,因此输出结果在被远程实时渲染及输入捕获组件渲染时不受远程实时渲染及输入捕获组件所在操作系统的图形API影响,以到达应用程序在不同操作系统上渲染输出内容一致、用户体验一致之效果。
6.根据权利要求1或2所述的跨系统远程实时交互软件,其中所述低延时数据压缩传输组件在进行数据通讯时至少可以使用TCP/IP网络进行通讯。
7.根据权利要求1或2所述的跨系统远程实时交互软件,其中所述应用程序托管组件与远程实时渲染及输入捕获组件建立交互的唯一途径是低延时数据压缩传输组件,应用程序托管组件仅传输应用程序输出结果而不传递包括文件系统调用、操作系统API调用在内的任何其他信息,故远程实时渲染及输入捕获组件仅接收到被托管应用程序的图形输出而无法访问被托管应用程序所在的操作系统,以达到被托管应用程序所在的操作系统针对用户而言是安全的、保密的,用户无法直接访问该操作系统之功能。
8.根据权利要求1或2所述的跨系统远程实时交互软件,其中所述低延时数据压缩传输组件在进行数据通讯时使用合适的数据压缩和流传输技术,使得应用程序托管组件与远程实时渲染及输入捕获组件间的通讯延迟剔除网络自身延迟因素外可达到毫秒级,即应用程序托管组件捕获一帧输出到该帧在远程实时渲染,以及输入捕获组件上显示的延迟和用户输入一个指令到该指令在应用程序上造成反馈的延迟不超过若干毫秒,以实现用户与被托管应用程序实时交互的功能。
9.根据权利要求1或2所述的跨系统远程实时交互软件,其中所述应用程序托管组件捕获的信息不仅包括被托管应用程序经过显卡渲染后的图像,往往还包括声音等多媒体信息。
10.根据权利要求1或2所述的跨系统远程实时交互软件,其中所述应用程序托管组件所在的计算机既可以是物理计算机,也可以是使用虚拟机软件的虚拟计算机,当跨系统远程实时交互软件被作为一种服务使用时,上述计算机往往是虚拟计算机。
【文档编号】H04L29/06GK104007986SQ201410194162
【公开日】2014年8月27日 申请日期:2014年5月8日 优先权日:2014年5月8日
【发明者】郭伟, 金守中 申请人:郭伟
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1