CN105677308B - 一种应用界面的集成系统和方法 - Google Patents
一种应用界面的集成系统和方法 Download PDFInfo
- Publication number
- CN105677308B CN105677308B CN201410660393.9A CN201410660393A CN105677308B CN 105677308 B CN105677308 B CN 105677308B CN 201410660393 A CN201410660393 A CN 201410660393A CN 105677308 B CN105677308 B CN 105677308B
- Authority
- CN
- China
- Prior art keywords
- acquisition
- application
- image
- interface
- host node
- 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
Links
Landscapes
- Stored Programmes (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明提供了一种应用界面的集成系统和方法。所述系统包括安装有第一应用的第一主机节点和安装有第二应用的第二主机节点;第一主机节点包括至少一个应用界面展示组件;应用界面展示组件包括网络传输代理模块;第二主机节点包括界面采集模块和网络传输存根模块;应用界面展示组件还包括界面展示模块。依据本发明实施例集成应用和被集成应用可以不要求在同一个主机节点上运行,不要求具备相同的软件运行环境,不要求具备兼容的编程语言,也不要求编写集成程序,从而可以支持远程应用界面级的采集与集成,被集成应用可以在运行在远程的、异构的软件平台上,不需要修改代码;并且,可以采集虚拟机里运行的被集成应用信息,不需要物理显示适配器。
Description
技术领域
本发明涉及信息处理技术领域,特别是涉及一种应用界面的集成系统,以及,一种应用界面的集成方法。
背景技术
随着企业信息化的发展,各行业企业拥有越来越多的信息化应用。这些应用包括各类本地应用、CS(客户端-服务器)应用、BS(浏览器-服务器)应用等。随着应用的增多和信息的膨胀,对集中展示来自不同应用的信息的要求越来越迫切。这些应用信息可能来自相同应用程序不同的应用组件,也可能来自不同的应用程序,甚至来自不同的主机节点,使得各应用开发语言、运行环境各不相同,应用集成困难很大。
系统集成商处理应用界面信息的集成,一般有如下两种方案:
一种方案是采用应用软件集成实现,如通过门户技术应用程序接口(API)集成BS应用,或者通过应用程序接口(API)把被集成应用的程序组件化后集成到主应用中。要求主应用与被集成应用的界面都在同一台主机节点下运行,具有相同的应用和操作系统环境。
为了集中展示来自不同应用的显示界面信息,最直接的处理方案就是利用应用程序接口(API)来通过编程实现。这种方法的前提是需要被集成应用能提供相关的API接口规范(如lib库接口、COM接口、EJB接口、IDL接口等),以及提供相关的实现库(如dll、so、jar包等);或者能得到被集成应用的源代码重新编译链接实现集成。
但在实际行业应用中,被集成应用很可能没有源代码提供,也没有相关API可用,造成API集成困难。同时被集成应用可能采用了不同的编写语言时、需要不同的运行环境时、需要不同的运行位置时,这种API集成实现起来就非常困难。
另一种方案是结合拼接大屏和图像控制器对来自不同主机显示适配器输出的画面进行集成。
当被集成应用不能通过API作界面集成时,可以利用多个显示器把被集成应用作为显示源进行集成,并发展了大屏拼接屏幕和大屏拼接图像控制器等硬件设备。被集成应用在一台电脑上运行,电脑通过显示适配器向图像控制器输出视频信息,经过图像控制器的配置选择输出到大屏屏幕中。
这种方案存在的问题是,成本较高,输出界面包含应用所在桌面、任务栏等无用信息,并且可能会存在应用对显卡的竞争问题。
发明内容
本发明提供了一种应用界面的集成系统和方法,以全部解决或部分解决上述技术问题。
本发明提供了一种应用界面的集成系统,包括安装有第一应用的第一主机节点和安装有第二应用的第二主机节点,所述第一应用为采用C语言、C++语言或Java语言编写的应用程序或浏览器,所述第二主机节点为物理主机节点或虚拟主机节点;
所述第一主机节点包括至少一个应用界面展示组件,所述应用界面展示组件为动态链接库、可执行程序包或浏览器插件;
所述第一应用,用于向所述应用界面展示组件发送采集会话指令,所述采集会话指令携带第二应用所在的第二主机节点的位置信息;
所述应用界面展示组件包括网络传输代理模块,所述网络传输代理模块用于根据所述采集会话建立指令建立与所述第二主机节点之间的网络连接通道,并通过所述网络连接通道将所述采集会话指令发送给所述第二主机节点;
所述第二主机节点包括界面采集模块和网络传输存根模块,所述界面采集模块用于接收所述应用界面展示组件发送的采集会话指令,开始静态采集和/或周期性动态采集所述第二应用的界面信息,所述网络传输存根模块用于将采集的界面信息反馈给所述应用界面展示组件;
所述应用界面展示组件还包括界面展示模块,所述界面展示模块用于控制所述界面信息在所述第一应用的界面窗口的展示。
优选地,所述采集会话指令携带采集参数,所述采集参数包括可执行映像的名称、应用主窗口标题名称、窗口名称和类型、窗口尺寸、采集区矩形位置、尺寸和采集周期参数;
所述界面采集模块包括:
窗口查找子模块,用于根据所述采集参数中可执行映像的名称和应用主窗口标题名称,在系统的业务进程列表中查找目标窗口;
尺寸计算子模块,用于比较所述窗口尺寸、采集区矩形位置和尺寸,计算采集时采集区的位置和采集区的尺寸;
接口调用子模块,用于调用系统API接口,根据所述采集周期参数周期性采集目标窗口的图像。
优选地,所述窗口查找子模块包括:
第一枚举子单元,用于根据所述采集参数中映像名枚举调用系统中的业务进程列表,当所述业务进程列表为空时返回采集应用不存在的状态信息;
第二枚举子单元,用于当所述业务进程列表中存在所述应用主窗口标题名称时,对所述应用主窗口做枚举匹配;
第三枚举子单元,用于当存在所述应用主窗口时,根据采集的窗口名称和类型对主窗口下的子窗口作枚举,得到采集的目标窗口。
优选地,所述采集会话指令包括采集会话建立指令、会话关闭指令、设置采集参数指令、启动采集指令或终止采集指令。
优选地,所述界面采集模块,还用于接收所述应用界面展示组件发送的终止采集指令,并停止采集所述第二应用的界面信息;
和/或,所述界面采集模块,还用于接收所述应用界面展示组件发送的会话关闭指令,若所述第二主机节点正在采集所述第二应用的界面信息,则生成并执行终止采集指令,停止采集所述第二应用的界面信息,并进一步执行会话关闭指令,停止与所述应用界面展示组件之间的网络连接。
优选地,所述第二主机节点还包括图像编码模块,所述图像编码模块用于对采集的界面信息进行编码和压缩处理,进一步包括:
第一编码子模块,用于将采集的第一帧图像作为初始静态图像,并对初始静态图像进行编码和压缩处理;
第二编码子模块,用于针对第二帧图像作为动态帧图像,将其中与所述初始静态图像不重复的部分进行编码和压缩处理;
第三编码子模块,用于对经过编码和压缩处理的图像进行熵编码。
优选地,所述第一主机节点还包括图像解码模块,所述图像解码模块用于对采集的界面信息进行解码处理,进一步包括:
第一解码子模块,用于对采集的界面信息进行熵解码;
第二解码子模块,用于若所述界面信息为静态帧图像,则针对第一行图像信息作基行解压缩,并针对其他行图像信息作差行解压缩;
第三解码子模块,用于若所述界面信息为动态帧图像,则将其中包含的参考块作为新的图像块,针对变化的块中第一行图像信息作基行解压缩,并针对其他行图像信息作差行解压缩;
记录子模块,用于将解压缩后的图像信息作为静态参考块,记录所述参考块的哈希值。
本发明还提供了一种应用界面的集成方法,包括:
第一主机节点的第一应用集成至少一个应用界面展示组件,所述应用界面展示组件为动态链接库、可执行程序包或浏览器插件,所述第一应用为采用C语言、C++语言或Java语言编写的应用程序或浏览器;
所述第一应用向所述应用界面展示组件发送采集会话指令,所述采集会话指令携带第二应用所在的第二主机节点的位置信息,所述第二主机节点为物理主机节点或虚拟主机节点;
所述应用界面展示组件根据所述采集会话建立指令建立与所述第二主机节点之间的网络连接通道,并通过所述网络连接通道将所述采集会话指令发送给所述第二主机节点;
所述第二主机节点接收所述应用界面展示组件发送的采集会话指令,开始静态采集和/或周期性动态采集所述第二应用的界面信息,并将采集的界面信息反馈给所述应用界面展示组件;
所述应用界面展示组件控制所述界面信息在所述第一应用的界面窗口的展示。
优选地,所述采集会话指令携带采集参数,所述采集参数包括可执行映像的名称、应用主窗口标题名称、窗口名称和类型、窗口尺寸、采集区矩形位置、尺寸和采集周期参数;
所述第二主机节点接收所述应用界面展示组件发送的采集会话指令,开始静态采集和/或周期性动态采集所述第二应用的界面信息包括:
根据所述采集参数中可执行映像的名称和应用主窗口标题名称,在系统的业务进程列表中查找目标窗口;
比较所述窗口尺寸、采集区矩形位置和尺寸,计算采集时采集区的位置和采集区的尺寸;
调用系统API接口,根据所述采集周期参数周期性采集目标窗口的图像。
优选地,所述根据所述采集参数中映像名和应用主窗口标题名,在系统的业务进程列表中查找目标窗口包括:
根据所述采集参数中映像名枚举调用系统中的业务进程列表,当所述业务进程列表为空时返回采集应用不存在的状态信息;
当所述业务进程列表中存在所述应用主窗口标题名称时,对所述应用主窗口做枚举匹配;
当存在所述应用主窗口时,根据采集的窗口名称和类型对主窗口下的子窗口作枚举,得到采集的目标窗口。
优选地,所述采集会话指令包括采集会话建立指令、会话关闭指令、设置采集参数指令、启动采集指令或终止采集指令。
优选地,所述方法还包括:
所述第二主机节点接收所述应用界面展示组件发送的终止采集指令,并停止采集所述第二应用的界面信息;
和/或,所述第二主机节点接收所述应用界面展示组件发送的会话关闭指令,若所述第二主机节点正在采集所述第二应用的界面信息,则生成并执行终止采集指令,停止采集所述第二应用的界面信息,并进一步执行会话关闭指令,停止与所述应用界面展示组件之间的网络连接。
优选地,在所述将采集的界面信息反馈给所述应用界面展示组件之前,所述方法还包括:
对采集的界面信息进行编码和压缩处理,进一步包括:
将采集的第一帧图像作为初始静态图像,并对初始静态图像进行编码和压缩处理;
针对第二帧图像作为动态帧图像,将其中与所述初始静态图像不重复的部分进行编码和压缩处理。
优选地,在所述应用界面展示组件控制所述界面信息在所述第一应用的界面窗口的展示之前,所述方法还包括:
对采集的界面信息进行解码处理,进一步包括:
对采集的界面信息进行哈夫曼解码;
若所述界面信息为静态帧图像,则针对第一行图像信息作基行解压缩,并针对其他行图像信息作差行解压缩;
若所述界面信息为动态帧图像,则将其中包含的参考块作为新的图像块,针对变化的块中第一行图像信息作基行解压缩,并针对其他行图像信息作差行解压缩;
将解压缩后的图像信息作为静态参考块,记录所述参考块的哈希值。
与背景技术相比,本发明包括以下优点:
本发明实施例以动态链接库、可执行程序包或浏览器插件的形式在第一主机节点构建至少一个应用界面展示组件,与第二主机节点建立网络连接通道并发送第一应用生成的指示采集界面的指令,第二主机节点根据指令静态或动态采集界面信息并反馈给该应用界面展示组件进行展示。依据本发明实施例集成应用和被集成应用可以不要求在同一个主机节点上运行,不要求具备相同的软件运行环境,不要求具备兼容的编程语言,也不要求编写集成程序,从而可以支持远程应用界面级的采集与集成,被集成应用可以在运行在远程的、异构的软件平台上,不需要修改代码;并且,可以采集虚拟机里运行的被集成应用信息,不需要物理显示适配器。
本发明实施例适用于应用界面的无损编码,能采集还原每一个像素细节,采集组件可以选择按照全屏幕、应用主窗口、子窗口或者自定义区域采集集成应用的界面信息。
此外,通过本发明实施例的方案,在编码和解码的过程中,自动感知视频动画类变化频繁的内容,切换到传统MPEG编解码,可以减少对带宽的占用,提高了处理性能。
附图说明
图1是本发明实施例的一种应用界面的集成系统的结构框图;
图2是本发明实施例的一个示例中各个功能模块的连接关系示意图;
图3是本发明实施例的一个示例中应用界面的集成系统的结构框架;
图4是本发明实施例的一种应用界面的集成方法的流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
背景技术的方案一存在下列缺点:
1.需要修改代码,存在较高的集成开发成本;
2.要求集成应用与被集成应用的编写语言和技术可以整合。例如如果主应用用C编写,被集成应用用Java编写,集成难度就会大大增加;
3.要求集成应用与被集成应用的具有同的运行环境时。例如如果主应用在PCWindows下运行,被集成应用只能在Pad设备或Linux下运行,就必须先把被集成应用移植到windows下,很多情况下是不现实的;
4.要求集成应用与被集成应用在同一物理主机上运行。例如如果主应用在北京运行,被集成应用在青岛运行,很难实现API集成;
5.即便是通过门户技术应用程序接口(API)集成浏览器BS应用,也会遇到很多现阶段独立建设的BS应用往往并不支持门户规范的现实问题;很多非浏览器应用不支持组件化时,业务没有源代码且无法修改,普适性不好,需要针对性集成研发。
背景技术的方案二存在下列缺点:
1.该集成技术是以显示适配器为单位进行整屏输出的,会输出被集成应用所在环境的桌面、任务栏和应用程序边框等信息;
2.通常需要大量的显示输出或主机设备,经济性不好;
3.当物理主机运行多个虚拟机时,存在虚拟机内运行的应用间对物理显示适配器的竞争。
有鉴于背景技术存在的问题,本发明提供了一种基于软件的应用界面集成方法,可以实现对应用界面信息的采集和集成展现,从而实现对本地应用或者远程物理主机上的应用)的应用界面集成。
下面通过实施例对本发明所述方法的实现流程进行详细说明。
参照图1,其示出了本发明实施例所述一种应用界面的集成系统的结构框图,所述系统具体可以包括:
安装有第一应用11的第一主机节点10和安装有第二应用21的第二主机节点20,所述第一应用为采用C语言、C++语言或Java语言编写的应用程序或浏览器,所述第二主机节点为物理主机节点或虚拟主机节点。
第一应用安装在第一主机节点,可以是采用C语言、C++语言或Java语言编写等任意可实现的语言编写的CS应用程序或是BS浏览器,第二主机节点为物理主机节点或虚拟主机节点。由用户通过应用程序或是浏览器触发对第二应用的界面信息的采集,或是在满足一定预设条件的情况下自行触发对界面信息的采集,第一应用可以视为集成应用,第二应用可以视为被集成应用。
所述第一主机节点10包括至少一个应用界面展示组件12,所述应用界面展示组件11可以被实现为动态链接库(Dynamic Link Library,DLL)、可执行程序包(Java jar包)或浏览器插件(如ActiveX控件与Chrome插件),以被方便地集成到第一应用中。
所述第一应用11,用于向所述应用界面展示组件发送采集会话指令,所述采集会话指令携带第二应用所在的第二主机节点的位置信息。根据位置信息可以查找到第二主机节点,并与第二应用建立网络连接通道进行通信。
所述采集会话指令可以包括采集会话建立指令、会话关闭指令、设置采集参数指令、启动采集指令或终止采集指令等之中的任意一种。
所述应用界面展示组件12包括网络传输代理模块121,所述网络传输代理模块用于根据所述采集会话建立指令建立与所述第二主机节点之间的网络连接通道,并通过所述网络连接通道将所述采集会话指令发送给所述第二主机节点。
建立应用界面组件与第二主机节点之间的连接通道后,将把来自第一应用的采集会话建立指令、会话关闭指令、设置采集参数指令、启动采集指令或终止采集指令等通过网络连接通道发往第二主机节点。
所述第二主机节点20包括界面采集模块22和网络传输存根模块23,所述界面采集模块用于接收所述应用界面展示组件发送的采集会话指令,开始静态采集和/或周期性动态采集所述第二应用的界面信息,所述网络传输存根模块用于将采集的界面信息反馈给所述应用界面展示组件。
其中,界面采集模块22采集第二应用21的界面信息,并与网络传输存根模块23连接,网络传输存根模块23进一步与网络传输代理模块121连接,将接收到的界面采集模块22采集的信息反馈给网络传输代理模块121。
所述应用界面展示组件12还包括界面展示模块122,所述界面展示模块用于控制所述界面信息在所述第一应用的界面窗口的展示。
界面展示模块122与网络传输代理模块121连接,将采集的界面信息进行展示。
本发明实施例以动态链接库、可执行程序包或浏览器插件的形式在第一主机节点构建至少一个应用界面展示组件,与第二主机节点建立网络连接通道并发送第一应用生成的指示采集界面的指令,第二主机节点根据指令静态或动态采集界面信息并反馈给该应用界面展示组件进行展示。相比于背景技术具备以下优点:
1、依据本发明实施例集成应用和被集成应用可以不要求在同一个主机节点上运行,不要求具备相同的软件运行环境,不要求具备兼容的编程语言,也不要求编写集成程序。
2、可以支持远程应用界面级的采集与集成,被集成应用可以在运行在远程的、异构的软件平台上,不需要修改代码。
3、可以采集虚拟机里运行的被集成应用信息,不需要物理显示适配器。
进一步优选地,所述界面采集模块,还用于接收所述应用界面展示组件发送的终止采集指令,并停止采集所述第二应用的界面信息,和/或,所述界面采集模块,还用于接收所述应用界面展示组件发送的会话关闭指令,若所述第二主机节点正在采集所述第二应用的界面信息,则生成并执行终止采集指令,停止采集所述第二应用的界面信息,并进一步执行会话关闭指令,停止与所述应用界面展示组件之间的网络连接。
界面采集模块在接收到采集会话指令后开始采集界面信息,在接收到终止采集指令后,终止采集界面信息,此时并未终止与界面展示组件之间的网络连接,当重新接收到采集会话指令时,可以再次采集界面信息。在接收到会话关闭指令后,终止与界面展示组件之间的网络连接,并生成终止采集指令,执行终止采集指令停止采集界面信息,然后进一步执行会话关闭指令,停止与应用界面展示组件之间的网络连接。
本发明实施例适用于应用界面的无损编码,能采集还原每一个像素细节,通过在会话采集指令中定义各项采集参数,采集组件可以选择按照全屏幕、应用主窗口、子窗口或者自定义区域采集集成应用的界面信息。
本发明实施例中,优选地,所述采集会话指令携带采集参数,所述采集参数包括可执行映像的名称(例如POWERPNT.EXE)、应用主窗口标题名称、窗口名称和类型、窗口尺寸、采集区矩形位置、尺寸和采集周期参数。
在具体的实现中,所述采集参数还可以包括编码单元尺寸(例如64像素)、动态编码最小压缩百分率(例如50)和网络超时时间(例如5秒)中的一种或多种。
所述界面采集模块包括:
窗口查找子模块,用于根据所述采集参数中可执行映像的名称和应用主窗口标题名称,在系统的业务进程列表中查找目标窗口。
尺寸计算子模块,用于比较所述窗口尺寸、采集区矩形位置和尺寸,计算采集时采集区的位置和采集区的尺寸。
接口调用子模块,用于调用系统API接口,根据所述采集周期参数周期性采集目标窗口的图像。
根据采集参数中可执行映像的名称和应用主窗口的标题名称可以确定需要采集哪个窗口的数据,根据采集参数中的窗口尺寸,与采集区矩形位置和尺寸进行比较可以得到采集区的位置和尺寸,确定之后,根据采集周期参数周期性采集应用窗口图像,采集方法可以调用系统API接口来得到。
进一步优选地,所述窗口查找子模块包括:
第一枚举子单元,用于根据所述采集参数中映像名枚举调用系统中的业务进程列表,当所述业务进程列表为空时返回采集应用不存在的状态信息。
第二枚举子单元,用于当所述业务进程列表中存在所述应用主窗口标题名称时,对所述应用主窗口做枚举匹配。
第三枚举子单元,用于当存在所述应用主窗口时,根据采集的窗口名称和类型对主窗口下的子窗口作枚举,得到采集的目标窗口。
具体地,首先根据采集参数结构中的可执行映像的名称枚举调用系统中的主要业务进程列表,列表为空时,可以生成并返回采集应用不存在的状态信息,如果存在多进程应用,则可以进一步根据应用主窗口标题名称进行枚举,即结合标题进一步匹配具体应用进程实例,然后根据采集窗口名称和类型对主窗口下的子窗口作枚举,查找到采集的目标窗口。
针对采集的数据可以由第二主机节点进一步进行编码和压缩处理,所述第二主机节点还包括图像编码模块,所述图像编码模块用于对采集的界面信息进行编码和压缩处理,进一步包括:
第一编码子模块,用于将采集的第一帧图像作为初始静态图像,并对初始静态图像进行编码和压缩处理。
第二编码子模块,用于针对第二帧图像作为动态帧图像,将其中与所述初始静态图像不重复的部分进行编码和压缩处理。
第三编码子模块,用于对经过编码和压缩处理的图像进行熵编码。
针对第一帧图像进行编码和压缩处理,而后续的所有图像,在于第一帧图像进行比对后,仅针对不重复的部分进行编码和压缩处理,通过本发明实施例的方案,在编码和解码的过程中,自动感知视频动画类变化频繁的内容,切换到传统MPEG编解码,可以减少对带宽的占用,提高了处理性能。
其中,熵解码可以采用哈夫曼编码,也可以是可以换成其他熵编码算法。
相应的,所述第一主机节点接收到采集的界面信息后,还可以先对采集的信息进行解码处理,所述图像解码模块用于对采集的界面信息进行解码处理,进一步包括:
第一解码子模块,用于对采集的界面信息进行熵解码;
第二解码子模块,用于若所述界面信息为静态帧图像,则针对第一行图像信息作基行解压缩,并针对其他行图像信息作差行解压缩;
第三解码子模块,用于若所述界面信息为动态帧图像,则将其中包含的参考块作为新的图像块,针对变化的块中第一行图像信息作基行解压缩,并针对其他行图像信息作差行解压缩;
记录子模块,用于将解压缩后的图像信息作为静态参考块,记录所述参考块的哈希值。
对采集的界面信息解码时,由于采集之后进行了熵编码,此处应先进行熵解码,针对编码的静态帧图像和动态帧对象分别采用不同的方式进行处理,并将解压后的图像信息作为静态参考块,记录参考块的哈希值。具体而言,针对静态帧图像,扫描第1行图像信息,作基行解压缩,对第2-S行图像信息,作差行解压缩,并把解码得到的最新图像作为静态参考图像,记录参考块的Hash值。如果是动态帧图像,根据块级压缩中块中编号,直接把参考块作为新的图像块,对变化的块,首先扫描第1行图像信息,作基行解压缩,对第2-S行图像信息,作差行解压缩,把变化后的最新图像作为静态参考图像,记录参考块的Hash值。
为使本领域技术人员更好地理解本发明,以下通过具体地示例对本发明实施例的应用界面的集成系统进行说明。
参考图2,示出了本发明实施例的一个示例中应用界面的集成系统的结构框架,其中,集成应用位于第一主机节点,被集成应用位于第二主机节点,第一主机节点和第二主机节点均可以为物理主机节点或虚拟主机节点。
第一主机节点上包括多个应用界面集成展示组件(UIV),具体用于:用于在集成应用中展示被集成应用的界面信息。它在集成应用启动后,向被集成应用所在节点上的采集器组件UIC发起采集命令和请求,接收UIC发来的采集数据,经过解压后实时显现在集成应用分配的客户区域。
每个第二主机节点上分别包括一个应用界面采集器组件(UIC),用于采集被集成应用的界面信息,具体用于:采集被集成应用的界面信息,它是与被集成应用安装在同一台主机节点同一操作系统环境下的后台服务进程。该进程运行后,会接受来自UIV组件的请求命令,发起采集任务,并把采集结果数据实时压缩后传递至UIV。
参考图3,示出了本发明实施例的一个示例中各个功能模块的连接关系示意图。
UIC由界面采集模块、图像编码模块、采集控制模块与网络传输存根模块组成;UIV由界面显示模块、图像解码模块、管理控制模块与网络传输代理模块组成。
各模块之间的数据传输关系为:网络传输存根模块与网络传输代理模块连接,接收网络传输代理模块的采集指令,并将采集指令转发给采集控制模块,采集控制模块执行采集指令,控制界面采集模块采集界面信息的行为,界面采集模块采集的数据发送给图像编码模块进行编码,编码的数据由网络传输存根模块经由网络传输代理模块,传输到图像解码模块进行解码处理,并进一步发送给界面显示模块进行展示。
以下分别对本示例中UIC和UIV的实现原理流程进行说明,以使各个组件的功能更为清晰。
一、界面采集器UIC的实现原理流程如下:
1、UIC作为后台进程启动。
2、UIC启动网络传输存根模块,开始监听来自UIV的采集控制。
3、UIC网络传输存根代理模块接收到来自UIV网络传输存根模块的指令,这些指令包括采集会话建立指令、采集会话关闭指令、以及会话超时指令。
4、UIC网络传输存根模块接收到采集会话建立指令后,将建立与UIV网络传输代理模块的网络通道连接。UIC网络传输存根模块接收到采集会话关闭指令或者超时指令后,将关闭与UIV网络传输代理模块的网络通道连接。
5、UIC网络传输存根模块与UIV网络传输代理模块的网络通道连接建立后,可以接收UIV的设置采集参数指令、启动采集指令、终止采集指令、应用健康性检查指令。之后UIC通知采集控制模块执行相关控制指令并返回指令结果给UIV。
6、采集控制模块收到启动采集指令后,界面采集模块开始静态采集应用界面图像,交给图像编码模块进行压缩处理后通过网络传输存根模块返回给UIV。
7、界面采集模块开始周期性动态采集应用界面图像,交给图像编码模块进行压缩处理后通过网络传输存根模块返回给UIV。如果动态编码压缩效率低于设定阈值,将返回第6步中重新作静态采集处理。
8、采集控制模块收到终止采集指令后,界面采集模块停止采集应用界面图像,返回终止状态给UIV。
二、界面展示器UIV可以被实现为动态链接库(DLL)、Java jar包、浏览器插件(如ActiveX控件与Chrome插件),以被方便地集成到集成应用中,集成应用容器可以是C/C++/Java编写的CS应用程序,或者是BS浏览器。
UIV的实现原理流程如下:
1、集成应用通过集成UIV控件,可以构建并启动一个或多个UIV实例对象。
2、集成应用可以通过Java/C/JavaScript API访问UIV实例对象的管理接口模块,给该模块发出采集管理指令。管理指令包括采集会话建立指令、采集会话关闭指令、设置采集参数指令、启动采集指令、终止采集指令等。
3、管理接口模块在得到被集成应用位置信息和采集会话指令后,调用网络传输代理模块建立与UIC间的网络连接,建立采集会话通道。
4、建立与UIC的连接通道之后,管理接口模块将把来自集成应用的设置参数指令、启动采集指令、终止采集指令、采集会话关闭指令等通过网络传输代理模块发往UIC的网络传输存根模块,并得到返回结果。
5、在发起启动采集指令并得到成功恢复后,管理接口模块将调用界面显示模块实时接收来自UIC的静态采集数据和动态采集数据,调用图像解码模块恢复应用界面图像信息,并进行控制客户区窗口展示。
6、收到集成应用的停止采集指令时,管理接口模块将该指令发给UIC,UIC将停止界面采集;收到集成应用的会话关闭指令时,如果采集没有停止的话,管理接口模块将先给UIC发起停止采集指令调用,之后发起采集会话关闭指令调用。
其中,步骤4中应用界面采集参数结构信息包括:
1)应用进程的可执行映像名称,如“POWERPNT.EXE”等;
2)应用主窗口标题名称;如果存在多进程应用,将结合标题进一步匹配具体应用进程实例;
3)采集窗口名称;
4)采集窗口类型;
5)采集区矩形左上点位置;
6)采集尺寸;
7)采集周期;
8)编码单元尺寸,默认64像素;
9)动态编码最小压缩百分率,默认50;
10)网络超时时间,默认5秒。
接下来对本实例中各个组件中的各个功能模块的实现原理进行说明。
三、UIC界面采集模块的实现流程如下:
1、根据采集参数结构中的映像名枚举调用系统中的主要业务进程列表,列表为空时向UIV返回采集应用不存在的状态信息。
2、如果存在应用主窗口标题名称,则对应用的主窗口做枚举匹配,列表为空时向UIV返回采集应用不存在的状态信息。
3、根据采集窗口名称和类型对主窗口下的子窗口作枚举,得到采集目标窗口。
4、比较窗口尺寸和参数中的采集区矩形位置和尺寸信息,计算实际采集区位置和采集区尺寸。
5、根据采集周期参数周期性采集应用窗口图像,采集方法可以调用系统API来得到。
四、UIC界面图像编码模块的实现流程如下:
1、根据界面采集模块的第一帧图像作为初始静态图像。
2、根据编码单元尺寸参数(S)把静态图像划分为一系列的正方形子单元,不足部分补0对齐,计算各个正方形单元的Hash值得到静态帧块Hash值序列并缓存。
3、记录相同Hash值的块,作块级冗余编码处理(也就是对本帧图像内重复的块不作压缩处理)。
4、对各个子单元作无损块压缩编码,块压缩编码过程如下。
1)把RGB颜色空间的原始图像信息变换到YUV颜色空间;
2)扫描第1行图像信息,作基行压缩,基行压缩编码过程如下;
a)对Y分量循环计算第2-S列像素与前一列像素的差值
b)对Y分量第1列值和2-S列的差值作行程编码;
c)对U,V分量循环前两步处理;
3)对第2-S行图像信息,作差行压缩,差行压缩编码过程如下;
a)对YUV分量分别循环计算第1-S列像素与上一行对应列像素中的差值;
b)对YUV分量分别作基行压缩;
5、把步骤3的块级编码(主要是块号)和步骤4的块内压缩编码发往UIV。
6、把输入界面采集模块的第二帧图像作为动态帧图像。
7、根据编码单元尺寸参数(S)把动态帧图像划分为一系列的正方形子单元,不足部分补0对齐,计算各个正方形单元的Hash值得到动态帧块Hash值序列。比较步骤7中的动态帧块Hash值与步骤2中的静态帧块Hash值,对本帧图像中与上帧图像重复的块,不作压缩处理。
8、对本帧图像中与上帧图像不重复的块,视为动态变化块。对发生动态变化的块按照步骤4作块内压缩编码。
9、把步骤7的块级编码(主要是块号)和步骤8的块内压缩编码数据作哈夫曼编码后发往UIV。
五、UIV界面图像解码模块的实现流程如下:
1、把来自UIC的压缩数据,作哈夫曼解码。
2、如果是静态帧图像,根据按下列步静态骤解码,得到图像块。
1)扫描第1行图像信息,作基行解压缩,基行解压缩编码过程如下;
对Y分量第1列值和2-S列的差值作行程解码;
利用解码后的第2-S列像素与前一列像素的差值,对Y分量循环计算第2-S列像素的Y值;
对U,V分量循环前2步处理;
2)对第2-S行图像信息,作差行解压缩,差行解压缩解码过程如下;
对Y分量作基行解压缩得到第1-S列像素与上一行对应列像素中的差值;
结合上一行对应列像素信息计算本行Y各列像素;
对UV分量分别作上两步循环解压缩处理;
把YUV颜色空间的图像信息变换到RGB颜色空间;
3、把最新图像作为静态参考图像,记录参考块的Hash值。
4、如果是动态帧图像,根据按下列步骤得到变化的图像。
1)根据块级压缩中块中编号,直接把参考块作为新的图像块;
2)对变化的块,使用下列动态解压缩过程,得到变化的图像块;
3)扫描第1行图像信息,作基行解压缩,基行压缩解码过程如下;
对Y分量第1列值和2-S列的差值作行程解码;
利用解码后的第2-S列像素与前一列像素的差值,对Y分量循环计算第2-S列像素的Y值;
对U,V分量循环前2步处理;
4)对第2-S行图像信息,作差行解压缩,差行解压缩解码过程如下;
a)对Y分量作基行解压缩得到第1-S列像素与上一行对应列像素中的差值;
b)结合上一行对应列像素信息计算本行Y各列像素;
c)对UV分量分别作上两步循环解压缩处理;
5)把YUV颜色空间的图像信息变换到RGB颜色空间;
5、把变化后的最新图像作为静态参考图像,记录参考块的Hash值。
6、循环上述1-5步处理后继收到的图像帧。
需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必需的。
基于上述系统实施例的说明,本发明还提供了相应的应用界面的集成方法实施例,来实现上述系统实施例所述的内容。
参照图4,其示出了本发明实施例所述一种应用界面的集成方法的流程图,包括:
步骤101、第一主机节点的第一应用集成至少一个应用界面展示组件,所述应用界面展示组件为动态链接库、可执行程序包或浏览器插件,所述第一应用为采用C语言、C++语言或Java语言编写的应用程序或浏览器。
步骤102、所述第一应用向所述应用界面展示组件发送采集会话指令,所述采集会话指令携带第二应用所在的第二主机节点的位置信息,所述第二主机节点为物理主机节点或虚拟主机节点。
步骤103、所述应用界面展示组件根据所述采集会话建立指令建立与所述第二主机节点之间的网络连接通道,并通过所述网络连接通道将所述采集会话指令发送给所述第二主机节点。
步骤104、所述第二主机节点接收所述应用界面展示组件发送的采集会话指令,开始静态采集和/或周期性动态采集所述第二应用的界面信息,并将采集的界面信息反馈给所述应用界面展示组件。
步骤105、所述应用界面展示组件控制所述界面信息在所述第一应用的界面窗口的展示。
本发明实施例中,优选地,所述采集会话指令携带采集参数,所述采集参数包括可执行映像的名称、应用主窗口标题名称、窗口名称和类型、窗口尺寸、采集区矩形位置、尺寸和采集周期参数。
所述第二主机节点接收所述应用界面展示组件发送的采集会话指令,开始静态采集和/或周期性动态采集所述第二应用的界面信息包括:
根据所述采集参数中可执行映像的名称和应用主窗口标题名称,在系统的业务进程列表中查找目标窗口;
比较所述窗口尺寸、采集区矩形位置和尺寸,计算采集时采集区的位置和采集区的尺寸;
调用系统API接口,根据所述采集周期参数周期性采集目标窗口的图像。
本发明实施例中,优选地,所述根据所述采集参数中映像名和应用主窗口标题名,在系统的业务进程列表中查找目标窗口包括:
根据所述采集参数中映像名枚举调用系统中的业务进程列表,当所述业务进程列表为空时返回采集应用不存在的状态信息;
当所述业务进程列表中存在所述应用主窗口标题名称时,对所述应用主窗口做枚举匹配;
当存在所述应用主窗口时,根据采集的窗口名称和类型对主窗口下的子窗口作枚举,得到采集的目标窗口。
本发明实施例中,优选地,所述采集会话指令包括采集会话建立指令、会话关闭指令、设置采集参数指令、启动采集指令或终止采集指令。
本发明实施例中,优选地,所述方法还包括:
所述第二主机节点接收所述应用界面展示组件发送的终止采集指令,并停止采集所述第二应用的界面信息;
和/或,所述第二主机节点接收所述应用界面展示组件发送的会话关闭指令,若所述第二主机节点正在采集所述第二应用的界面信息,则生成并执行终止采集指令,停止采集所述第二应用的界面信息,并进一步执行会话关闭指令,停止与所述应用界面展示组件之间的网络连接。
本发明实施例中,优选地,在所述将采集的界面信息反馈给所述应用界面展示组件之前,所述方法还包括:
对采集的界面信息进行编码和压缩处理,进一步包括:
将采集的第一帧图像作为初始静态图像,并对初始静态图像进行编码和压缩处理;
针对第二帧图像作为动态帧图像,将其中与所述初始静态图像不重复的部分进行编码和压缩处理。
本发明实施例中,优选地,在所述应用界面展示组件控制所述界面信息在所述第一应用的界面窗口的展示之前,所述方法还包括:
对采集的界面信息进行解码处理,进一步包括:
对采集的界面信息进行哈夫曼解码;
若所述界面信息为静态帧图像,则针对第一行图像信息作基行解压缩,并针对其他行图像信息作差行解压缩;
若所述界面信息为动态帧图像,则将其中包含的参考块作为新的图像块,针对变化的块中第一行图像信息作基行解压缩,并针对其他行图像信息作差行解压缩;
将解压缩后的图像信息作为静态参考块,记录所述参考块的哈希值。
本发明实施例以动态链接库、可执行程序包或浏览器插件的形式在第一主机节点构建至少一个应用界面展示组件,与第二主机节点建立网络连接通道并发送第一应用生成的指示采集界面的指令,第二主机节点根据指令静态或动态采集界面信息并反馈给该应用界面展示组件进行展示。依据本发明实施例集成应用和被集成应用可以不要求在同一个主机节点上运行,不要求具备相同的软件运行环境,不要求具备兼容的编程语言,也不要求编写集成程序,从而可以支持远程应用界面级的采集与集成,被集成应用可以在运行在远程的、异构的软件平台上,不需要修改代码;并且,可以采集虚拟机里运行的被集成应用信息,不需要物理显示适配器。
本发明实施例适用于应用界面的无损编码,能采集还原每一个像素细节,采集组件可以选择按照全屏幕、应用主窗口、子窗口或者自定义区域采集集成应用的界面信息。
此外,通过本发明实施例的方案,在编码和解码的过程中,自动感知视频动画类变化频繁的内容,切换到传统MPEG编解码,可以减少对带宽的占用,提高了处理性能。
对于上述应用界面的集成方法实施例而言,由于其与系统实施例基本相似,所以描述的比较简单,相关之处参见图1所示系统实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在本发明中,“组件”、“装置”、“系统”等等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,组件可以、但不限于是运行于处理器的过程、处理器、对象、可执行组件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是组件。一个或多个组件可在执行的过程和/或线程中,并且组件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。组件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一组件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
而且,上文中的“和/或”表示本文既包含了“和”的关系,也包含了“或”的关系,其中:如果方案A与方案B是“和”的关系,则表示某实施例中可以同时包括方案A和方案B;如果方案A与方案B是“或”的关系,则表示某实施例中可以单独包括方案A,或者单独包括方案B。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
以上对本发明所提供的一种应用界面的集成系统和应用界面的集成方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种应用界面的集成系统,其特征在于,包括安装有第一应用的第一主机节点和安装有第二应用的第二主机节点,所述第一应用为采用C语言、C++语言或Java语言编写的应用程序或浏览器,所述第二主机节点为物理主机节点或虚拟主机节点;
所述第一主机节点包括至少一个应用界面展示组件,所述应用界面展示组件为动态链接库、可执行程序包或浏览器插件;
所述第一应用,用于向所述应用界面展示组件发送采集会话指令,所述采集会话指令携带第二应用所在的第二主机节点的位置信息;
所述应用界面展示组件包括网络传输代理模块,所述网络传输代理模块用于根据所述采集会话建立指令建立与所述第二主机节点之间的网络连接通道,并通过所述网络连接通道将所述采集会话指令发送给所述第二主机节点;
所述第二主机节点包括界面采集模块和网络传输存根模块,所述界面采集模块用于接收所述应用界面展示组件发送的采集会话指令,开始静态采集和/或周期性动态采集所述第二应用的界面信息,所述网络传输存根模块用于将采集的界面信息反馈给所述应用界面展示组件;
所述采集会话指令携带采集参数,所述采集参数包括可执行映像的名称、应用主窗口标题名称、窗口名称和类型、窗口尺寸、采集区矩形位置、尺寸和采集周期参数;
所述界面采集模块包括:
窗口查找子模块,用于根据所述采集参数中可执行映像的名称和应用主窗口标题名称,在系统的业务进程列表中查找目标窗口;
尺寸计算子模块,用于比较所述窗口尺寸、采集区矩形位置和尺寸,计算采集时采集区的位置和采集区的尺寸;
接口调用子模块,用于调用系统API接口,根据所述采集周期参数周期性采集目标窗口的图像;
所述应用界面展示组件还包括界面展示模块,所述界面展示模块用于控制所述界面信息在所述第一应用的界面窗口的展示。
2.根据权利要求1所述的系统,其特征在于,所述窗口查找子模块包括:
第一枚举子单元,用于根据所述采集参数中映像名枚举调用系统中的业务进程列表,当所述业务进程列表为空时返回采集应用不存在的状态信息;
第二枚举子单元,用于当所述业务进程列表中存在所述应用主窗口标题名称时,对所述应用主窗口做枚举匹配;
第三枚举子单元,用于当存在所述应用主窗口时,根据采集的窗口名称和类型对主窗口下的子窗口作枚举,得到采集的目标窗口。
3.根据权利要求1所述的系统,其特征在于,所述采集会话指令包括采集会话建立指令、会话关闭指令、设置采集参数指令、启动采集指令或终止采集指令。
4.根据权利要求1所述的系统,其特征在于:
所述界面采集模块,还用于接收所述应用界面展示组件发送的终止采集指令,并停止采集所述第二应用的界面信息;
和/或,所述界面采集模块,还用于接收所述应用界面展示组件发送的会话关闭指令,若所述第二主机节点正在采集所述第二应用的界面信息,则生成并执行终止采集指令,停止采集所述第二应用的界面信息,并进一步执行会话关闭指令,停止与所述应用界面展示组件之间的网络连接。
5.根据权利要求1所述的系统,其特征在于,所述第二主机节点还包括图像编码模块,所述图像编码模块用于对采集的界面信息进行编码和压缩处理,进一步包括:
第一编码子模块,用于将采集的第一帧图像作为初始静态图像,并对初始静态图像进行编码和压缩处理;
第二编码子模块,用于针对第二帧图像作为动态帧图像,将其中与所述初始静态图像不重复的部分进行编码和压缩处理;
第三编码子模块,用于对经过编码和压缩处理的图像进行熵编码。
6.根据权利要求1所述的系统,其特征在于,所述第一主机节点还包括图像解码模块,所述图像解码模块用于对采集的界面信息进行解码处理,进一步包括:
第一解码子模块,用于对采集的界面信息进行熵解码;
第二解码子模块,用于若所述界面信息为静态帧图像,则针对第一行图像信息作基行解压缩,并针对其他行图像信息作差行解压缩;
第三解码子模块,用于若所述界面信息为动态帧图像,则将其中包含的参考块作为新的图像块,针对变化的块中第一行图像信息作基行解压缩,并针对其他行图像信息作差行解压缩;
记录子模块,用于将解压缩后的图像信息作为静态参考块,记录所述参考块的哈希值。
7.一种应用界面的集成方法,其特征在于,包括:
第一主机节点的第一应用集成至少一个应用界面展示组件,所述应用界面展示组件为动态链接库、可执行程序包或浏览器插件,所述第一应用为采用C语言、C++语言或Java语言编写的应用程序或浏览器;
所述第一应用向所述应用界面展示组件发送采集会话指令,所述采集会话指令携带第二应用所在的第二主机节点的位置信息,所述第二主机节点为物理主机节点或虚拟主机节点;
所述应用界面展示组件根据所述采集会话建立指令建立与所述第二主机节点之间的网络连接通道,并通过所述网络连接通道将所述采集会话指令发送给所述第二主机节点;
所述第二主机节点接收所述应用界面展示组件发送的采集会话指令,开始静态采集和/或周期性动态采集所述第二应用的界面信息,并将采集的界面信息反馈给所述应用界面展示组件;
所述采集会话指令携带采集参数,所述采集参数包括可执行映像的名称、应用主窗口标题名称、窗口名称和类型、窗口尺寸、采集区矩形位置、尺寸和采集周期参数;
所述第二主机节点接收所述应用界面展示组件发送的采集会话指令,开始静态采集和/或周期性动态采集所述第二应用的界面信息包括:
根据所述采集参数中可执行映像的名称和应用主窗口标题名称,在系统的业务进程列表中查找目标窗口;
比较所述窗口尺寸、采集区矩形位置和尺寸,计算采集时采集区的位置和采集区的尺寸;
调用系统API接口,根据所述采集周期参数周期性采集目标窗口的图像;
所述应用界面展示组件控制所述界面信息在所述第一应用的界面窗口的展示。
8.根据权利要求7所述的方法,其特征在于,所述根据所述采集参数中映像名和应用主窗口标题名,在系统的业务进程列表中查找目标窗口包括:
根据所述采集参数中映像名枚举调用系统中的业务进程列表,当所述业务进程列表为空时返回采集应用不存在的状态信息;
当所述业务进程列表中存在所述应用主窗口标题名称时,对所述应用主窗口做枚举匹配;
当存在所述应用主窗口时,根据采集的窗口名称和类型对主窗口下的子窗口作枚举,得到采集的目标窗口。
9.根据权利要求7所述的方法,其特征在于,所述采集会话指令包括采集会话建立指令、会话关闭指令、设置采集参数指令、启动采集指令或终止采集指令。
10.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述第二主机节点接收所述应用界面展示组件发送的终止采集指令,并停止采集所述第二应用的界面信息;
和/或,所述第二主机节点接收所述应用界面展示组件发送的会话关闭指令,若所述第二主机节点正在采集所述第二应用的界面信息,则生成并执行终止采集指令,停止采集所述第二应用的界面信息,并进一步执行会话关闭指令,停止与所述应用界面展示组件之间的网络连接。
11.根据权利要求7所述的方法,其特征在于:
在所述将采集的界面信息反馈给所述应用界面展示组件之前,所述方法还包括:
对采集的界面信息进行编码和压缩处理,进一步包括:
将采集的第一帧图像作为初始静态图像,并对初始静态图像进行编码和压缩处理;
针对第二帧图像作为动态帧图像,将其中与所述初始静态图像不重复的部分进行编码和压缩处理;
对经过编码和压缩处理的图像进行哈夫曼编码。
12.根据权利要求7所述的方法,其特征在于:
在所述应用界面展示组件控制所述界面信息在所述第一应用的界面窗口的展示之前,所述方法还包括:
对采集的界面信息进行解码处理,进一步包括:
对采集的界面信息进行哈夫曼解码;
若所述界面信息为静态帧图像,则针对第一行图像信息作基行解压缩,并针对其他行图像信息作差行解压缩;
若所述界面信息为动态帧图像,则将其中包含的参考块作为新的图像块,针对变化的块中第一行图像信息作基行解压缩,并针对其他行图像信息作差行解压缩;
将解压缩后的图像信息作为静态参考块,记录所述参考块的哈希值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410660393.9A CN105677308B (zh) | 2014-11-18 | 2014-11-18 | 一种应用界面的集成系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410660393.9A CN105677308B (zh) | 2014-11-18 | 2014-11-18 | 一种应用界面的集成系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105677308A CN105677308A (zh) | 2016-06-15 |
CN105677308B true CN105677308B (zh) | 2019-02-22 |
Family
ID=56944636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410660393.9A Active CN105677308B (zh) | 2014-11-18 | 2014-11-18 | 一种应用界面的集成系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105677308B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108572821A (zh) * | 2018-04-11 | 2018-09-25 | 连向辉 | 用户界面代码的生成方法和插件 |
CN115033332A (zh) * | 2022-06-29 | 2022-09-09 | 南京南瑞继保电气有限公司 | 一种以设备为中心的多系统集成框架系统及显示方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1627732A (zh) * | 2003-12-08 | 2005-06-15 | 腾讯科技(深圳)有限公司 | 一种在即时通讯系统中应用程序共享的方法和系统 |
CN101447998A (zh) * | 2008-12-25 | 2009-06-03 | 广东威创视讯科技股份有限公司 | 桌面共享方法及系统 |
CN104156258A (zh) * | 2013-05-14 | 2014-11-19 | 腾讯科技(深圳)有限公司 | 一种应用程序的共享操作方法、相关设备和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040014526A1 (en) * | 2002-07-17 | 2004-01-22 | Kulas Charles J. | Interface arbitrator for allowing multiple devices to share physical input/output interfaces and other resources |
-
2014
- 2014-11-18 CN CN201410660393.9A patent/CN105677308B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1627732A (zh) * | 2003-12-08 | 2005-06-15 | 腾讯科技(深圳)有限公司 | 一种在即时通讯系统中应用程序共享的方法和系统 |
CN101447998A (zh) * | 2008-12-25 | 2009-06-03 | 广东威创视讯科技股份有限公司 | 桌面共享方法及系统 |
CN104156258A (zh) * | 2013-05-14 | 2014-11-19 | 腾讯科技(深圳)有限公司 | 一种应用程序的共享操作方法、相关设备和系统 |
Non-Patent Citations (1)
Title |
---|
基于Delphi的机房一体化教学监控系统设计;胡开明;《齐齐哈尔大学学报》;20120531;第40-43页 |
Also Published As
Publication number | Publication date |
---|---|
CN105677308A (zh) | 2016-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11363091B2 (en) | System and method for capturing interaction data relating to a host application | |
US10157031B2 (en) | Systems, methods, and apparatuses for accepting late joiners with screen sharing | |
US7222305B2 (en) | Method of sharing a desktop with attendees of a real-time collaboration | |
CN101223791B (zh) | 转变压缩级别的方法及其交互式流式图像系统 | |
US20040181796A1 (en) | Real-time collaboration client | |
US20070185958A1 (en) | Control unit operations in a real-time collaboration server | |
US20040181577A1 (en) | System and method for facilitating real-time collaboration | |
AU2010341605A1 (en) | Systems and methods for video-aware screen capture and compression | |
CN110430441A (zh) | 一种云手机视频采集方法、系统、装置及存储介质 | |
US20030191860A1 (en) | Accelerated collaboration of high frame rate applications | |
US11776273B1 (en) | Ensemble of machine learning models for automatic scene change detection | |
RU2742860C1 (ru) | Способ и система для отображения данных виртуального рабочего стола | |
CN105677308B (zh) | 一种应用界面的集成系统和方法 | |
KR101984825B1 (ko) | Api 정보를 이용한 클라우드 디스플레이 화면의 부호화 방법 및 그 장치 | |
WO2017162015A1 (zh) | 一种数据处理方法及装置、存储介质 | |
US7692562B1 (en) | System and method for representing digital media | |
US11445168B1 (en) | Content-adaptive video sampling for cost-effective quality monitoring | |
US11265594B2 (en) | Data processing method and device, storage medium, electronic device | |
CN111327941A (zh) | 一种离线视频播放方法、装置、设备及介质 | |
US9934019B1 (en) | Application function conversion to a service | |
CN116628967A (zh) | 一种智慧工厂数字孪生系统 | |
CN113626099B (zh) | 应用程序的启动方法、装置及电子设备 | |
CN111866508B (zh) | 视频处理方法、装置、介质及电子设备 | |
CN111447490A (zh) | 流媒体文件处理方法及装置 | |
KR20160091622A (ko) | 클라우드 스트리밍 서비스 시스템, 변화 영역의 분할을 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |