CN114327712A - 云应用***、窗口管理方法及设备 - Google Patents
云应用***、窗口管理方法及设备 Download PDFInfo
- Publication number
- CN114327712A CN114327712A CN202111600002.0A CN202111600002A CN114327712A CN 114327712 A CN114327712 A CN 114327712A CN 202111600002 A CN202111600002 A CN 202111600002A CN 114327712 A CN114327712 A CN 114327712A
- Authority
- CN
- China
- Prior art keywords
- window
- manager
- content
- application
- client
- 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.)
- Pending
Links
- 238000007726 management method Methods 0.000 title abstract description 54
- 238000004891 communication Methods 0.000 claims abstract description 52
- 238000000034 method Methods 0.000 claims description 45
- 230000008569 process Effects 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 19
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101150053844 APP1 gene Proteins 0.000 description 1
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 1
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请实施例提供一种云应用***、窗口管理方法及设备。在本申请实施例中,云应用管理***引入窗口管理器。其中,显示管理器可根据应用程序的窗口请求,生成应用程序的窗口;并将应用程序的窗口信息提供给窗口管理器。窗口管理器可根据与客户端之间的通信协议,将云应用的窗口信息提供给访问该云应用的客户端,客户端可根据接收到的窗口信息,生成本地窗口。本实施例可实现窗口颗粒度的窗口管理,因此,多个云应用可共用同一显示管理器,这样在云应用管理***运行时可减少启动的显示管理器的数量,有助于降低云应用管理***的资源消耗。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种云应用***、窗口管理方法及设备。
背景技术
云应用(Cloud Applications)是云计算技术在应用层的体现。云应用的工作原理将传统软件“本地安装、本地运算”的使用方式转变为“即取即用”的服务。客户端无需安装相应软件,可通过互联网或局域网连接并操控远程服务集群,完成事务逻辑或运算任务。
客户端使用云应用时,需要在客户端同步显示云应用的显示窗口。在现有技术中,通过云桌面模拟云应用的窗口,并抓取整个屏幕内容作为云应用的窗口内容。因此,该云应用窗口管理方式需要一个云应用对应一套完整的显示管理器(如X-server),云应用管理***在启动时资源开销较大。
发明内容
本申请的多个方面提供一种云应用***、窗口管理方法及设备,用以降低云应用***进行窗口管理的资源消耗。
本申请实施例提供一种云应用***,包括:服务端和客户端;所述服务端部署有应用程序、显示管理器和窗口管理器;
所述显示管理器,用于根据目标应用程序的窗口请求,生成目标应用程序的窗口;并将目标应用程序的窗口信息提供给所述窗口管理器;
所述窗口管理器,用于根据所述窗口管理器与所述客户端之间的通信协议,将目标应用程序的窗口信息提供给访问目标应用程序的目标客户端;所述目标客户端,用于根据所述目标应用程序的窗口信息,生成所述目标应用程序的本地窗口。
本申请实施例还提供一种窗口管理方法,包括:
获取云应用的窗口请求;
利用显示管理器根据云应用的窗口请求,生成所述云应用的窗口;
利用所述窗口管理器将所述云应用的窗口信息提供给访问所述云应用的客户端,以供所述客户端根据所述云应用的窗口信息,生成所述云应用的本地窗口。
本申请实施例还提供计算设备,包括:存储器、处理器和通信组件;其中,所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器和所述通信组件,用于执行所述计算机程序以用于执行上述窗口管理方法中的步骤。
在本申请实施例中,云应用管理***引入窗口管理器。其中,显示管理器可根据应用程序的窗口请求,生成应用程序的窗口;并将应用程序的窗口信息提供给窗口管理器。窗口管理器可根据与客户端之间的通信协议,将云应用的窗口信息提供给访问该云应用的客户端,客户端可根据接收到的窗口信息,生成本地窗口。本实施例可实现窗口颗粒度的窗口管理,因此,多个云应用可共用同一显示管理器,这样在云应用管理***运行时可减少启动的显示管理器的数量,有助于降低云应用管理***的资源消耗。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的云应用***的结构示意图;
图2为本申请实施例提供的窗口示意图;
图3和图4为本申请实施例提供的窗口管理过程示意图;
图5为本申请实施例提供的另一云应用***的结构示意图;
图6为本申请实施例提供的窗口管理方法的流程示意图;
图7为本申请实施例提供的计算设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对现有云应用窗口管理方式资源开销大的技术问题,在本申请实施例中,云应用管理***引入窗口管理器。其中,显示管理器可根据应用程序的窗口请求,生成应用程序的窗口;并将应用程序的窗口信息提供给窗口管理器。窗口管理器可根据与客户端之间的通信协议,将云应用的窗口信息提供给访问该云应用的客户端,客户端可根据接收到的窗口信息,生成本地窗口。本实施例可实现窗口颗粒度的窗口管理,因此,多个云应用可共用同一显示管理器,这样在云应用管理***运行时可减少启动的显示管理器的数量,有助于降低云应用管理***的资源消耗。
以下结合附图,详细说明本申请各实施例提供的技术方案。
应注意到:相同的标号在下面的附图以及实施例中表示同一物体,因此,一旦某一物体在一个附图或实施例中被定义,则在随后的附图和实施例中不需要对其进行进一步讨论。
图1为本申请实施例提供的云应用***的结构示意图。如图1所示,云应用***包括:服务端10和客户端20。
在本申请实施例中,服务端10是指可以进行应用窗口管理,可响应客户端20的服务请求,为用户提供与云应用相关的服务的计算机设备,一般具备承担服务并保障服务的能力。服务端10可以为单一服务器设备,也可以云化的服务器阵列,或者为云化的服务器阵列中运行的虚拟机(Virtual Machine,VM)。另外,服务端10也可以指具备相应服务能力的其他计算设备,例如电脑等终端设备(运行服务程序)等。
在本实施例中,客户端20是指用户使用的,具有用户所需计算、上网、通信等功能的计算机设备,例如可以是手机、平板电脑、个人电脑、穿戴设备等。客户端20通常包括至少一个处理单元和至少一个存储器。客户端20也会包括网卡芯片、IO总线、音视频组件等基本配置。可选地,根据客户端20的实现形式,也可以包括一些***设备,例如键盘、鼠标、输入笔、打印机等。
其中,服务端10和客户端20之间可以是无线或有线连接。可选地,服务端10可通过移动网络和客户端20通信连接,相应地,移动网络的网络制式可以为2G(GSM)、2.5G(GPRS)、3G(WCDMA、TD-SCDMA、CDMA2000、UTMS)、4G(LTE)、4G+(LTE+)、5G、WiMax等中的任意一种。可选地,客户端20也可以通过蓝牙、WiFi、红外线等方式和客户端20通信连接。
在本实施例中,服务端10部署有应用程序。应用程序也可称为云应用。应用程序可为1个或多个。多个是指2个或2个以上。优选地,应用程序为多个。图1仅以应用程序的数量为3个进行图示,但不构成限定。在本申请实施例中,不限定应用程序的实现形态。可选地,应用程序可为网页、客户端软件、APP或者小程序等。多个应用程序可部署于同一物理机,也可部署于不同的物理机。
在本申请实施例中,不限定应用程序适用的操作***。在一些实施例中,应用程序可为Linux***应用程序、Windows***应用程序、安卓***应用程序或IOS***应用程序等等。但是,客户端20的操作***可能不是应用程序适用的操作***,导致客户端20无法安装此类应用程序。例如,对于Linux***的应用程序,客户端20的操作***可能不是Linux***,无法安装Linux***应用程序。为了能够实现应用程序与客户端20的操作***解耦,云应用应运而生。
在本申请实施例中,为了实现客户端20同步显示云应用的窗口,在服务端10部署显示管理器101和窗口管理器102。在本申请实施例中,显示管理器101是指提供图形接口服务的软件功能模块。显示管理器101可与窗口管理器102进行交互,生成应用程序的窗口等。对于Linux***,显示管理器101可为X服务(X Server)组件。当需要Linux提供界面的时候,Linux***就会建立一个或者数个X server,通过X协议跟窗口管理器交互,由独立于Linux***的X server来产生窗口。
窗口管理器102是指管理应用程序的窗口信息的软件功能模块,该模块可与客户端20进行交互,将窗口信息提供给客户端20等。在本申请实施例中,窗口管理器102也可称为流化窗口管理器(String Window Manager,SWM)。
在本申请实施例中,为了便于描述将服务端10部署的应用程序中,客户端20访问的应用程序,定义为目标应用程序;访问目标应用程序的客户端定义为目标客户端。其中,目标应用程序可为服务端10部署的应用程序中的任一应用程序。图1仅以目标应用程序为APP1进行图示,但不构成限定。
在本申请实施例中,目标应用程序可向显示管理器101发起窗口请求。显示管理器101可根据目标应用程序的窗口请求,生成目标应用程序的窗口。可选地,窗口请求可包括窗口信息。其中,窗口信息是指用于描述窗口的图形界面的描述信息,可包括窗口属性信息、窗口内容及窗口内容的属性信息等等。如图2所示,窗口信息可包括:窗口属性和窗口内容。窗口属性信息是指窗口特征的描述信息,可包括:窗口样式描述信息,如窗口尺寸信息、窗口有没有边框、有没有最小化或最大化按钮、在任务栏上面有没有显示等等,以及边框尺寸、颜色等,和/或,按钮形式、颜色等等。窗口内容是指窗口具体显示内容。例如,显示的具体内容,包括:窗口界面内容等,图2中仅以窗口内容为“ABCDEF”进行图示,但不构成限定。窗口内容的属性信息可包括:窗口内容的样式、大小、颜色等等。
对于显示管理器101,可从窗口请求中,获取窗口信息;并根据窗口信息,生成应用程序的窗口。进一步,显示管理器101可将目标应用程序的窗口信息提供给窗口管理器102。
在本申请实施例中,不限定显示管理器101将窗口信息提供给窗口管理器102的具体实现形式。可选地,显示管理器101可向窗口管理器102发送窗口生成消息。该窗口生成消息携带有目标应用程序的窗口信息的存储地址。显示管理器101可将窗口生成消息提供给窗口管理器102。
相应地,窗口管理器102可根据窗口生成消息携带的窗口信息的存储地址,获取目标应用程序的窗口信息。具体地,窗口管理器102可对窗口生成消息进行解析,得到窗口生成消息携带的窗口信息的存储地址;进一步,可读取窗口生成消息携带的窗口信息的存储地址对应的存储空间存储的信息,作为目标应用程序的窗口信息。
进一步,窗口管理器102可根据窗口管理器与客户端之间的通信协议,将目标应用程序的窗口信息提供给访问目标应用程序的目标客户端20。具体地,窗口管理器102可按照窗口管理器102与目标客户端20之间的通信协议,对目标应用程序的窗口信息进行封装,以得到遵循窗口管理器102与目标客户端20之间的通信协议的窗口消息A;进一步,窗口管理器102可将窗口消息A提供给目标客户端20。其中,窗口管理器102与目标客户端20之间的通信协议可由客户端20与服务端10之间的通信方式决定。例如,窗口管理器102与目标客户端20之间通过以太网通信,相应地,窗口管理器102与目标客户端20之间的通信协议可为TCP/IP协议等。相应地,目标客户端20可获取目标应用程序的窗口信息;并根据目标应用程序的窗口信息,生成目标应用程序的本地窗口。具体地,目标客户端20可对窗口消息A进行解析,以得到目标应用程序的窗口信息;并根据目标应用程序的窗口信息,生成目标应用程序的本地窗口。
本实施例提供的云应用***,显示管理器可根据应用程序的窗口请求,生成应用程序的窗口;并将应用程序的窗口信息提供给窗口管理器。窗口管理器可根据与客户端之间的通信协议,将云应用的窗口信息提供给访问该云应用的客户端,客户端可根据接收到的窗口信息,生成本地窗口。本实施例可实现窗口颗粒度的窗口管理,因此,多个云应用可共用同一显示管理器,这样在云应用管理***运行时可减少启动的显示管理器的数量,有助于降低云应用管理***的资源消耗。
另一方面,在本实施例中,引入窗口管理器,实现窗口颗粒度的窗口管理,无需用整个桌面模拟应用程序的窗口,可根据客户端提供的窗口尺寸,直接调整窗口大小,而无需整个桌面的分辨率,可提高窗口调整的灵活性,降低实现复杂度。
另外,对于现有周期性抓取整个桌面内容模拟应用窗口的方案,若在桌面抓取时,存在多个窗口重叠的情况,现有方案无法实现独立窗口抓取,对于不同用户来说,客户端侧无法准确显示其想要的窗口。相较于现有方案,本申请实施例提供的云应用***,引入窗口管理器,实现窗口颗粒度的窗口管理,各窗口之间相互独立,不会受到窗口层叠关系影响,有助于提高用户侧显示窗口的准确度。
在本申请实施例中,应用程序的窗口请求可包括窗口创建请求和窗口内容更新请求。其中,窗口创建请求用于请求显示管理器创建窗口,为窗口从无到有的过程;窗口内容更新请求是更新已有窗口的窗口内容。下面以窗口创建过程和窗口内容更新请求为例,对本申请实施例提供的窗口管理方式进行示例性说明。
如图3和图4所示,应用程序的窗口请求为窗口创建请求。窗口创建请求包括待创建窗口的属性信息。关于窗口的属性信息的描述,可参见上述实施例的相关内容,在此不再赘述。在本申请实施例中,应用程序可响应于客户端20的应用启动请求,发出窗口创建请求(步骤1)。如图3所示,客户端20可响应于针对目标应用程序的启动事件,向服务端10提供应用启动请求。该应用启动请求可包括待启动应用的标识。对于服务端10,窗口管理器102可接收该应用启动请求(步骤2);并根据应用启动请求,启动目标应用程序(步骤3)。具体地,窗口管理器102可对应用启动请求进行解析,以得到应用启动请求携带的待启动应用的标识;并确定待启动应用的标识对应的应用程序,为目标应用程序;进一步,可启动目标应用程序。可选地,窗口管理器102可开启一线程;并运行该线程来启动目标应用程序。
图3和图4中仅以应用启动功能由窗口管理器102执行进行示例,并不构成限定。在一些实施例中,应用启动模块也可实现为独立的软件功能模块,用于启动目标应用程序。其中,独立的应用启动模块启动目标应用程序的过程,可参见上述窗口管理器102启动目标应用程序的相关内容,在此不再赘述。
相应地,目标应用程序在启动过程中,向显示管理器101发送窗口创建请求(步骤4)。在本申请实施例中,应用程序的启动过程可包括:应用程序启动前、应用程序启动中和应用程序启动后。相应地,目标应用程序在启动过程中应理解为在启动过程的任一阶段。
相应地,显示管理器101可获取应用程序的窗口创建请求;并从窗口创建请求中,获取待创建窗口的属性信息;进一步,可根据待创建窗口的属性信息,创建应用程序的第一窗口(步骤5)。在该过程创建出的第一窗口不包括窗口内容。
进一步,显示管理器101可将第一窗口的属性信息作为窗口信息发送给窗口管理器102。可选地,显示管理器101可按照与窗口管理器102之间的通信协议,对第一窗口的属性信息对应的存储地址进行封装,以得到窗口创建消息。在本申请实施例中,不限定显示管理器101和窗口管理器102之间遵循的通信协议。在一些实施例中,对于Linux***,显示管理器101为X server;相应地,显示管理器101和窗口管理器102之间遵循的通信协议可为X协议。
进一步,显示管理器101可将窗口创建消息提供给窗口管理器102(步骤6)。窗口管理器102可对窗口创建消息进行解析,得到第一窗口的属性信息对应的存储地址;并读取该存储地址存储的信息,作为第一窗口的属性信息。
进一步,窗口管理器102可将第一窗口的属性信息提供给目标客户端20(步骤7)。具体地,窗口管理器102可按照窗口管理器与目标客户端之间的通信协议,对第一窗口的属性信息进行封装;将封装后的第一窗口的属性信息提供给目标客户端。其中,窗口管理器102与目标客户端之间的通信协议,由客户端20与服务端10之间的通信方式决定。
对于目标客户端20,可获取第一窗口的属性信息;并根据第一窗口的属性信息,创建第一本地窗口(步骤8)。该第一本地窗口不包含窗口内容。具体地,目标客户端20可从封装后的第一窗口的属性信息中解析出第一窗口的属性信息;并根据第一窗口的属性信息,创建第一本地窗口。
在本申请实施例中,除了创建窗口之外,还可对窗口内容进行更新。其中,窗口内容更新可包括:在尚未包含窗口内容的第一本地窗口增加窗口内容,还可包括对已有窗口内容的原窗口更新窗口内容。相应地,如图3和图4所示,应用程序的窗口请求还可为窗口内容更新请求。该窗口内容更新请求可包括待更新内容和待更新内容的属性信息。待更新内容为待更新的窗口内容。
在本申请实施例中,不限定目标应用程序发起窗口内容更新请求的具体触发条件。在一些实施例中,如图4所示,目标应用程序在向显示管理器101发送窗口创建请求之后,发送窗口内容更新请求(步骤9)。或者,目标应用程序也可响应于客户端对本地窗口的操作事件,发送窗口内容更新请求(步骤19)。
对于目标应用程序在向显示管理器101发送窗口创建请求之后,发送窗口内容更新请求的实施例,目标应用程序可确定上述第一窗口的窗口内容为待更新内容;窗口内容的属性信息为待更新内容的属性信息。进一步,目标应用程序可根据待更新内容和待更新内容的属性信息,生成窗口内容更新请求;并将窗口内容更新请求提供给显示管理器101。
对于目标客户端侧的用户,可与本地窗口进行交互。例如,用户可通过本地窗口输入信息;或者,用户可调整本地窗口的尺寸;或者,用户可触发本地窗口的某个或某些控件等。例如,用户鼠标右键点击某个控件等等。对于目标客户端可响应于针对原本地窗口的操作事件,获取操作事件关联的窗口操作数据。其中窗口操作数据可包括:操作事件的操作形式、操作事件操作的窗口位置等等。操作事件的操作形式可理解为:用户采用何种形式操作窗口,如鼠标右键单击、鼠标左键双击、键盘输入等等。进一步,目标客户端20可将窗口操作数据提供给窗口管理器102(步骤15)。
具体地,目标客户端20可按照目标客户端与窗口管理器之间的通信协议,对窗口操作数据进行封装;并将封装后的窗口操作数据提供给窗口管理器102。相应地,窗口管理器102可对封装后的窗口操作数据进行解析,以得到窗口操作数据。
进一步,窗口管理器102可将窗口操作数据提供给显示管理器101。显示管理器101将窗口操作数据提供给目标应用程序。在本申请实施例中,显示管理器101包含驱动层,为了使显示管理器101可对客户端的窗口操作数据对应的设备输入事件进行响应,在本申请实施例中,如图4和图5所示,可在显示管理器101的驱动层增加输入(Input)驱动组件103。该输入驱动组件为显示管理器101的输入驱动,负责外设事件注入。输入驱动组件可向显示管理器101中的事件队列(Event queue)里面汇报外设事件。然后显示管理器101会把外部事件发送到对应的应用程序,应用程序就会收到事件,并对事件进行响应。其中,输入驱动组件103与窗口管理器102之间遵循输入交互协议。
基于显示管理器101中增加的输入驱动组件103,如图4所示,窗口管理器102在将窗口操作数据提供给显示管理器101时,可将窗口操作数据提供给输入驱动组件103(步骤16);输入驱动组件103可将窗口操作数据注入显示管理器101(步骤17)。
对于显示管理器101可将窗口操作数据提供给目标应用程序。相应地,目标应用程序可处理窗口操作事件(步骤18)。具体地,目标应用程序可根据窗口操作数据,确定目标应用程序针对操作事件产生的响应数据和响应数据的属性信息;并确定响应数据和响应数据的属性信息为待更新内容和待更新内容的属性信息。进一步,目标应用程序可根据待更新内容和待更新内容的属性信息,生成窗口内容更新请求;并将窗口内容更新请求提供给显示管理器101(步骤19)。
显示管理器101可从窗口内容更新请求中,获取待更新内容和待更新内容的属性信息;进一步,可根据待更新内容的属性信息,在目标应用程序的原窗口绘制待更新内容,以生成目标应用程序的第二窗口(步骤10和步骤20)。对于上述目标应用程序在向显示管理器101发送窗口创建请求之后,发送窗口内容更新请求的实施例,目标应用程序的原窗口为上述第一窗口。在本申请实施例中,第一窗口和第二窗口为了区分第一窗口和第二窗口为窗口内容不同的窗口;即第二窗口相较于第一窗口,窗口内容发生更新,并不限定第一窗口和第二窗口为不同的窗口。
对于上述目标应用程序响应于客户端对本地窗口的操作事件,发送窗口内容更新请求的实施例,显示管理器101侧的原窗口可为目标应用程序在本次窗口内容更新之前的窗口。
显示管理器101在生成目标应用程序的第二窗口之后,还可将待更新内容和待更新内容的属性信息提供给窗口管理器102(步骤21)。可选地,显示管理器101可向窗口管理器102发送窗口内容更新消息。该窗口内容更新消息包含待更新内容和待更新内容的存储地址。对于窗口管理器102可解析窗口内容更新消息,获取待更新内容和待更新内容的属性信息的存储地址;并根据该存储地址,获取待更新内容和待更新内容的属性信息。
进一步,窗口管理器102可根据其与目标客户端之间的通信协议,将待更新内容和待更新内容的属性信息提供给目标客户端20。由于待更新内容的数据量较大,为了降低信息传输带宽,提高信息传输效率,窗口管理器102可对待更新内容和待更新内容的属性信息进行压缩处理,得到目标窗口内容。可选地,窗口管理器102可按照设定的编码方式,对待更新内容和待更新内容的属性信息进行压缩编码,得到目标窗口内容(步骤22)。
进一步,窗口管理器102可按照窗口管理器与目标客户端之间的通信协议,对目标窗口内容进行封装;并将封装后的目标窗口内容提供给目标客户端20(步骤23)。
对于目标客户端20可对目标窗口内容进行解压缩处理,以得到待更新内容和所述待更新内容的属性信息;进一步,可根据待更新内容的属性信息,在原本地窗口绘制待更新内容,以生成第二本地窗口(步骤24)。其中,原本地窗口与显示管理器101侧的原窗口相对应。在显示管理器101侧的原窗口为第一窗口的情况下,目标客户端20侧的原本地窗口为上述第一本地窗口。在显示管理器101侧的原窗口可为目标应用程序在本次窗口内容更新之前的窗口的情况下,目标客户端20侧的原本地窗口为响应本次窗口操作之前的本地窗口。
对于现有周期性抓取整个桌面内容模拟应用窗口的方案,若在抓取周期未到达之前,窗口内容产生更新,则会因为桌面抓取不及时导致应用窗口更新延时较长;若在窗口内容未更新,周期性抓取桌面内容会导致大量无效抓取,浪费计算资源。相较于现有方案,本申请实施例提供的云应用***,引入窗口管理器,该窗口管理器与显示管理器相配合,可实现流化的窗口管理流程。相较于现有周期性抓取整个桌面内容,实现应用窗口模拟的方案,在窗口内容更新时,按需对窗口内容进行更新,一方面,可避免无效抓取;另一方面可提供窗口更新的时效性,降低窗口更新延时。
除了上述***实施例之外,本申请实施例还提供窗口管理方法,下面对本申请实施例提供的窗口管理方法进行示例性说明。
图6为本申请实施例提供的窗口管理方法的流程示意图。如图6所示,窗口管理方法包括:
601、获取云应用的窗口请求。
602、利用显示管理器根据云应用的窗口请求,生成云应用的窗口。
603、利用窗口管理器将云应用的窗口信息提供给访问云应用的客户端,以供客户端根据云应用的窗口信息,生成云应用的本地窗口。
在本申请实施例中,为了实现客户端同步显示云应用的窗口,在服务端部署显示管理器和窗口管理器。关于显示管理器和窗口管理器的描述,可参见上述***实施例的相关内容,在此不再赘述。
在本申请实施例中,云应用可向显示管理器发起窗口请求。对于服务端,在步骤601中,可获取云应用的窗口请求;并在步骤602中,利用显示管理器根据云应用的窗口请求,生成云应用的窗口。可选地,窗口请求可包括窗口信息。其中,窗口信息是指用于描述窗口的图形界面的描述信息,可包括窗口属性信息、窗口内容及窗口内容的属性信息等等。
对于服务端,可利用显示管理器从窗口请求中,获取窗口信息;并根据窗口信息,生成应用程序的窗口。进一步,显示管理器可将目标应用程序的窗口信息提供给窗口管理器。
在本申请实施例中,不限定显示管理器将窗口信息提供给窗口管理器的具体实现形式。可选地,显示管理器可向窗口管理器发送窗口生成消息。该窗口生成消息携带有目标应用程序的窗口信息的存储地址。显示管理器可将窗口生成消息提供给窗口管理器。
相应地,可利用窗口管理器根据窗口生成消息携带的窗口信息的存储地址,获取目标应用程序的窗口信息。具体地,可利用窗口管理器可对窗口生成消息进行解析,得到窗口生成消息携带的窗口信息的存储地址;进一步,可读取窗口生成消息携带的窗口信息的存储地址对应的存储空间存储的信息,作为目标应用程序的窗口信息。
进一步,在步骤603中,可利用窗口管理器将目标应用程序的窗口信息提供给访问云应用的客户端。具体地,利用窗口管理器根据窗口管理器与客户端之间的通信协议,将目标应用程序的窗口信息提供给访问云应用的客户端。
确切地,可利用窗口管理器按照窗口管理器与客户端之间的通信协议,对云应用的窗口信息进行封装,以得到遵循窗口管理器与客户端之间的通信协议的窗口消息A;进一步,可利用窗口管理器将窗口消息A提供给目标客户端。其中,窗口管理器与客户端之间的通信协议可由客户端与服务端之间的通信方式决定。
相应地,客户端可获取目标应用程序的窗口信息;并根据目标应用程序的窗口信息,生成目标应用程序的本地窗口。具体地,客户端可对窗口消息A进行解析,以得到目标应用程序的窗口信息;并根据目标应用程序的窗口信息,生成目标应用程序的本地窗口。
在本实施例中,显示管理器可根据应用程序的窗口请求,生成应用程序的窗口;并将应用程序的窗口信息提供给窗口管理器。窗口管理器可根据与客户端之间的通信协议,将云应用的窗口信息提供给访问该云应用的客户端,客户端可根据接收到的窗口信息,生成本地窗口。本实施例可实现窗口颗粒度的窗口管理,因此,多个云应用可共用同一显示管理器,这样在云应用管理***运行时可减少启动的显示管理器的数量,有助于降低云应用管理***的资源消耗。
另一方面,在本实施例中,引入窗口管理器,实现窗口颗粒度的窗口管理,无需用整个桌面模拟应用程序的窗口,可根据客户端提供的窗口尺寸,直接调整窗口大小,而无需整个桌面的分辨率,可提高窗口调整的灵活性,降低实现复杂度。
另外,对于现有周期性抓取整个桌面内容模拟应用窗口的方案,若在桌面抓取时,存在多个窗口重叠的情况,现有方案无法实现独立窗口抓取,对于不同用户来说,客户端侧无法准确显示其想要的窗口。相较于现有方案,本申请实施例提供的云应用***,引入窗口管理器,实现窗口颗粒度的窗口管理,各窗口之间相互独立,不会受到窗口层叠关系影响,有助于提高用户侧显示窗口的准确度。
在本申请实施例中,应用程序的窗口请求可包括窗口创建请求和窗口内容更新请求。其中,窗口创建请求用于请求显示管理器创建窗口,为窗口从无到有的过程;窗口内容更新请求是更新已有窗口的窗口内容。下面以窗口创建过程和窗口内容更新请求为例,对本申请实施例提供的窗口管理方式进行示例性说明。
在一些实施例中,云应用的窗口请求为窗口创建请求。窗口创建请求包括待创建窗口的属性信息。关于窗口的属性信息的描述,可参见上述实施例的相关内容,在此不再赘述。关于云应用发起窗口创建请求的过程,可参见上述***实施例的相关内容,在此不再赘述。
相应地,可利用显示管理器获取应用程序的窗口创建请求;并从窗口创建请求中,获取待创建窗口的属性信息;进一步,可利用显示管理器根据待创建窗口的属性信息,创建应用程序的第一窗口。在该过程创建出的第一窗口不包括窗口内容。
进一步,显示管理器可将第一窗口的属性信息作为窗口信息发送给窗口管理器。可选地,显示管理器可按照与窗口管理器之间的通信协议,对第一窗口的属性信息对应的存储地址进行封装,以得到窗口创建消息。
进一步,显示管理器可将窗口创建消息提供给窗口管理器。窗口管理器可对窗口创建消息进行解析,得到第一窗口的属性信息对应的存储地址;并读取该存储地址存储的信息,作为第一窗口的属性信息。
进一步,可利用窗口管理器将第一窗口的属性信息提供给访问云应用的客户端。具体地,可利用窗口管理器按照窗口管理器与目标客户端之间的通信协议,对第一窗口的属性信息进行封装;将封装后的第一窗口的属性信息提供给目标客户端。
对于客户端,可获取第一窗口的属性信息;并根据第一窗口的属性信息,创建云应用的第一本地窗口。该第一本地窗口不包含窗口内容。具体地,可从封装后的第一窗口的属性信息中解析出第一窗口的属性信息;并根据第一窗口的属性信息,创建第一本地窗口。
在本申请实施例中,除了创建窗口之外,还可对窗口内容进行更新。其中,窗口内容更新可包括:在尚未包含窗口内容的第一本地窗口增加窗口内容,还可包括对已有窗口内容的原窗口更新窗口内容。相应地,应用程序的窗口请求还可为窗口内容更新请求。该窗口内容更新请求可包括待更新内容和待更新内容的属性信息。待更新内容为待更新的窗口内容。
在本申请实施例中,不限定云应用发起窗口内容更新请求的具体触发条件。在一些实施例中,云应用在向显示管理器发送窗口创建请求之后,发送窗口内容更新请求。或者,云应用也可响应于客户端对本地窗口的操作事件,发送窗口内容更新请求。
对于云应用在向显示管理器发送窗口创建请求之后,发送窗口内容更新请求的实施例,目标应用程序可确定上述第一窗口的窗口内容为待更新内容;窗口内容的属性信息为待更新内容的属性信息。进一步,目标应用程序可根据待更新内容和待更新内容的属性信息,生成窗口内容更新请求;并将窗口内容更新请求提供给显示管理器。
对于客户端侧的用户,可与本地窗口进行交互。对于客户端可响应于针对原本地窗口的操作事件,获取操作事件关联的窗口操作数据。其中,关于窗口操作数据的描述,可参见上述***实施例的相关内容,在此不再赘述。进一步,客户端可将窗口操作数据提供给窗口管理器。
进一步,窗口管理器可将窗口操作数据提供给显示管理器。显示管理器可将窗口操作数据提供给云应用。在本申请实施例中,可在显示管理器的驱动层增加输入(Input)驱动组件。输入驱动组件与窗口管理器之间遵循输入交互协议。
基于显示管理器中增加的输入驱动组件,在利用窗口管理器将窗口操作数据提供给显示管理器时,可利用窗口管理器将窗口操作数据提供给输入驱动组件;并利用输入驱动组件将窗口操作数据注入显示管理器。
对于显示管理器可将窗口操作数据提供给云应用。相应地,云应用可处理窗口操作事件。可选地,云应用可根据窗口操作数据,生成窗口内容更新请求。具体地,云应用可根据窗口操作数据,确定云应用针对操作事件产生的响应数据和响应数据的属性信息;并确定响应数据和响应数据的属性信息为待更新内容和待更新内容的属性信息。进一步,云应用可根据待更新内容和待更新内容的属性信息,生成窗口内容更新请求;并将窗口内容更新请求提供给显示管理器。
进一步,可利用显示管理器从窗口内容更新请求中,获取待更新内容和待更新内容的属性信息;并根据待更新内容的属性信息,在目标应用程序的原窗口绘制待更新内容,以生成目标应用程序的第二窗口。
对于上述云应用在向显示管理器发送窗口创建请求之后,发送窗口内容更新请求的实施例,云应用的原窗口为上述第一窗口。
对于上述云应用响应于客户端对本地窗口的操作事件,发送窗口内容更新请求的实施例,显示管理器侧的原窗口可为云应用在本次窗口内容更新之前的窗口。
在生成目标应用程序的第二窗口之后,还可利用显示管理器将待更新内容和待更新内容的属性信息提供给窗口管理器。可选地,可利用显示管理器向窗口管理器发送窗口内容更新消息。该窗口内容更新消息包含待更新内容和待更新内容的存储地址。对于窗口管理器可解析窗口内容更新消息,获取待更新内容和待更新内容的属性信息的存储地址;并根据该存储地址,获取待更新内容和待更新内容的属性信息。
进一步,可利用窗口管理器根据其与客户端之间的通信协议,将待更新内容和待更新内容的属性信息提供给客户端。由于待更新内容的数据量较大,为了降低信息传输带宽,提高信息传输效率,可利用窗口管理器对待更新内容和待更新内容的属性信息进行压缩处理,得到目标窗口内容。
进一步,可利用窗口管理器按照窗口管理器与目标客户端之间的通信协议,对目标窗口内容进行封装;并将封装后的目标窗口内容提供给客户端。
对于客户端可对目标窗口内容进行解压缩处理,以得到待更新内容和所述待更新内容的属性信息;进一步,可根据待更新内容的属性信息,在原本地窗口绘制待更新内容,以生成第二本地窗口。
对于现有周期性抓取整个桌面内容模拟应用窗口的方案,若在抓取周期未到达之前,窗口内容产生更新,则会因为桌面抓取不及时导致应用窗口更新延时较长;若在窗口内容未更新,周期性抓取桌面内容会导致大量无效抓取,浪费计算资源。相较于现有方案,本申请实施例提供的窗口管理方法,引入窗口管理器,该窗口管理器与显示管理器相配合,可实现流化的窗口管理流程。相较于现有周期性抓取整个桌面内容,实现应用窗口模拟的方案,在窗口内容更新时,按需对窗口内容进行更新,一方面,可避免无效抓取;另一方面可提供窗口更新的时效性,降低窗口更新延时。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤601和602的执行主体可以为设备A;又比如,步骤601的执行主体可以为设备A,步骤602的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如601、602等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
相应地,本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述窗口管理方法中的步骤。
图7为本申请实施例提供的计算设备的结构示意图。如图7所示,该计算设备包括:存储器70a和处理器70b。其中,存储器70a,用于存储计算机程序。在本实施例中,计算机程序包括显示管理器和窗口管理器分别对应的计算机程序。
处理器70b耦合至存储器70a和通信组件70c,用于执行计算机程序以用于:获取云应用的窗口请求;利用显示管理器根据云应用的窗口请求,生成云应用的窗口;利用窗口管理器通过通信组件70c将云应用的窗口信息提供给访问云应用的客户端,以供客户端根据云应用的窗口信息,生成云应用的本地窗口。
在一些实施例中,处理器70b还用于:利用显示管理器向窗口管理器发送窗口生成消息;窗口生成消息携带有窗口信息的存储地址;利用窗口管理器根据窗口生成消息携带的存储地址,获取窗口信息。
在一些实施例中,云应用的窗口请求为窗口创建请求。处理器70b在生成云应用的窗口时,具体用于:利用显示管理器从窗口创建请求中,获取待创建窗口的属性信息;根据待创建窗口的属性信息,创建云应用的第一窗口。
其中,窗口信息包括第一窗口的属性信息。可选地,处理器70b在利用窗口管理器将窗口信息提供给客户端时,具体用于:利用窗口管理器按照窗口管理器与客户端之间的通信协议,对第一窗口的属性信息进行封装;利用窗口管理器通过通信组件70c将封装后的第一窗口的属性信息提供给客户端,以供客户端基于第一窗口的属性信息创建云应用的第一本地窗口。
可选地,处理器70b还用于:通过窗口管理器获取客户端提供的应用启动请求;利用窗口管理器根据客户端提供的应用启动请求,启动云应用,以使云应用在启动过程中向显示管理器发送窗口创建请求。
在另一些实施例中,云应用的窗口请求为窗口内容更新请求。处理器70b在生成云应用的窗口时,具体用于:利用显示管理器从窗口内容更新请求中,获取待更新内容和待更新内容的属性信息;根据待更新内容的属性信息,在云应用的原窗口中绘制待更新内容,以生成云应用的第二窗口。
其中,窗口信息包括待更新内容和待更新内容的属性信息。相应地,处理器70b在利用窗口管理器将窗口信息提供给客户端时,具体用于:利用窗口管理器对待更新内容和待更新内容的属性信息进行压缩处理,以得到目标窗口内容;按照窗口管理器与客户端之间的通信协议,对目标窗口内容进行封装;利用窗口管理器通过通信组件70c将封装后的目标窗口内容提供给客户端,以供客户端基于目标窗口内容在原本地窗口绘制待更新内容,以生成第二本地窗口。
可选地,云应用在向显示管理器发送窗口创建请求之后,发送窗口内容更新请求;或者,云应用响应于客户端对本地窗口的操作事件,发送窗口内容更新请求。
在一些实施例中,处理器70b还用于:通过窗口管理器获取客户端提供的窗口操作数据;窗口操作数据为客户端响应于针对原本地窗口的操作事件获取的操作事件关联的窗口操作数据;通过窗口管理器和显示管理器将窗口操作数据提供给云应用,以供云应用基于窗口操作数据,生成窗口内容更新请求。
可选地,存储器70a存储的计算机程序还包括:输入驱动组件对应的计算机程序。相应地,处理器70b在通过窗口管理器和显示管理器将窗口操作数据提供给云应用时,具体用于:窗口管理器将窗口操作数据提供给显示管理器的输入驱动组件;输入驱动组件将窗口操作数据注入显示管理器;显示管理器将注入的窗口操作数据提供给云应用。
在一些可选实施方式中,如图7所示,该计算设备还可以包括:电源组件70d等可选组件。图7中仅示意性给出部分组件,并不意味着计算设备必须包含图7所示全部组件,也不意味着计算设备只能包括图7所示组件。
本实施例提供的计算设备,部署有显示管理器和窗口管理器。其中,显示管理器可根据应用程序的窗口请求,生成应用程序的窗口;并将应用程序的窗口信息提供给窗口管理器。窗口管理器可根据与客户端之间的通信协议,将云应用的窗口信息提供给访问该云应用的客户端,客户端可根据接收到的窗口信息,生成本地窗口。本实施例可实现窗口颗粒度的窗口管理,因此,多个云应用可共用同一显示管理器,这样在云应用管理***运行时可减少启动的显示管理器的数量,有助于降低云应用管理***的资源消耗。
另一方面,在本实施例中,引入窗口管理器,实现窗口颗粒度的窗口管理,无需用整个桌面模拟应用程序的窗口,可根据客户端提供的窗口尺寸,直接调整窗口大小,而无需整个桌面的分辨率,可提高窗口调整的灵活性,降低实现复杂度。
另外,对于现有周期性抓取整个桌面内容模拟应用窗口的方案,若在桌面抓取时,存在多个窗口重叠的情况,现有方案无法实现独立窗口抓取,对于不同用户来说,客户端侧无法准确显示其想要的窗口。相较于现有方案,本申请实施例提供的云应用***,引入窗口管理器,实现窗口颗粒度的窗口管理,各窗口之间相互独立,不会受到窗口层叠关系影响,有助于提高用户侧显示窗口的准确度。
在本申请实施例中,存储器用于存储计算机程序,并可被配置为存储其它各种数据以支持在其所在设备上的操作。其中,处理器可执行存储器中存储的计算机程序,以实现相应控制逻辑。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请实施例中,处理器可以为任意可执行上述方法逻辑的硬件处理设备。可选地,处理器可以为中央处理器(Central Processing Unit,CPU)、图形处理器(GraphicsProcessing Unit,GPU)或微控制单元(Microcontroller Unit,MCU);也可以为现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程阵列逻辑器件(ProgrammableArray Logic,PAL)、通用阵列逻辑器件(General Array Logic,GAL)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)等可编程器件;或者为先进精简指令集(RISC)处理器(Advanced RISC Machines,ARM)或***芯片(System on Chip,SoC)等等,但不限于此。
在本申请实施例中,通信组件被配置为便于其所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,4G,5G或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还可基于近场通信(NFC)技术、射频识别(RFID)技术、红外数据协会(IrDA)技术、超宽带(UWB)技术、蓝牙(BT)技术或其他技术来实现。
在本申请实施例中,电源组件被配置为其所在设备的各种组件提供电力。电源组件可以包括电源管理***,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机的存储介质为可读存储介质,也可称为可读介质。可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (14)
1.一种云应用***,其特征在于,包括:服务端和客户端;所述服务端部署有应用程序、显示管理器和窗口管理器;
所述显示管理器,用于根据目标应用程序的窗口请求,生成目标应用程序的窗口;并将目标应用程序的窗口信息提供给所述窗口管理器;
所述窗口管理器,用于根据所述窗口管理器与所述客户端之间的通信协议,将目标应用程序的窗口信息提供给访问目标应用程序的目标客户端;所述目标客户端,用于根据所述目标应用程序的窗口信息,生成所述目标应用程序的本地窗口。
2.根据权利要求1所述的***,其特征在于,所述应用程序的窗口请求为窗口创建请求;所述显示管理器在生成所述应用程序的窗口时,具体用于:
从所述窗口创建请求中,获取待创建窗口的属性信息;
根据所述待创建窗口的属性信息,创建所述应用程序的第一窗口;
所述目标客户端在生成所述目标应用程序的本地窗口时,具体用于:
根据所述第一窗口的属性信息,创建第一本地窗口。
3.根据权利要求1所述的***,其特征在于,所述应用程序的窗口请求为窗口内容更新请求;所述显示管理器在生成所述应用程序的窗口时,具体用于:
从所述窗口内容更新请求中,获取待更新内容和所述待更新内容的属性信息;
根据所述待更新内容的属性信息,在原窗口绘制所述待更新内容,以生成所述应用程序的第二窗口。
4.根据权利要求3所述的***,其特征在于,所述服务端还部署有所述显示管理器的输入驱动组件;
所述客户端用于:响应于针对原本地窗口的操作事件,获取所述操作事件关联的窗口操作数据;将所述窗口操作数据提供给所述窗口管理器;
所述窗口管理器,用于将所述窗口操作数据提供给所述输入驱动组件;所述输入驱动组件将所述窗口操作数据注入所述显示管理器;所述窗口操作数据经所述显示管理器提供给所述应用程序;
所述应用程序根据所述窗口操作数据,确定所述应用程序针对所述操作事件产生的响应数据和所述响应数据的属性信息;确定所述响应数据和所述响应数据的属性信息为所述待更新内容和所述待更新内容的属性信息;根据所述待更新内容和所述待更新内容的属性信息,生成所述窗口内容更新请求;并将所述窗口内容更新请求提供给所述显示管理器。
5.一种窗口管理方法,其特征在于,包括:
获取云应用的窗口请求;
利用显示管理器根据云应用的窗口请求,生成所述云应用的窗口;
利用窗口管理器将所述云应用的窗口信息提供给访问所述云应用的客户端,以供所述客户端根据所述云应用的窗口信息,生成所述云应用的本地窗口。
6.根据权利要求5所述的方法,其特征在于,还包括:
利用显示管理器向所述窗口管理器发送窗口生成消息;所述窗口生成消息携带有所述窗口信息的存储地址;
所述窗口管理器根据所述窗口生成消息携带的存储地址,获取所述窗口信息。
7.根据权利要求5所述的方法,其特征在于,所述云应用的窗口请求为窗口创建请求;所述根据云应用的窗口请求,生成所述云应用的窗口,包括:
利用显示管理器从所述窗口创建请求中,获取待创建窗口的属性信息;
根据所述待创建窗口的属性信息,创建所述云应用的第一窗口。
8.根据权利要求7所述的方法,其特征在于,所述窗口信息包括所述第一窗口的属性信息;所述利用所述窗口管理器将所述窗口信息提供给所述客户端,包括:
利用所述窗口管理器按照所述窗口管理器与所述客户端之间的通信协议,对所述第一窗口的属性信息进行封装;
利用所述窗口管理器将封装后的第一窗口的属性信息提供给所述客户端,以供所述客户端基于所述第一窗口的属性信息创建云应用的第一本地窗口。
9.根据权利要求7所述的方法,其特征在于,还包括:
通过所述窗口管理器获取所述客户端提供的应用启动请求;
利用所述窗口管理器根据所述客户端提供的应用启动请求,启动所述云应用,以使所述云应用在启动过程中向所述显示管理器发送窗口创建请求。
10.根据权利要求5所述的方法,其特征在于,所述云应用的窗口请求为窗口内容更新请求;所述根据云应用的窗口请求,生成所述云应用的窗口,包括:
利用显示管理器从所述窗口内容更新请求中,获取待更新内容和所述待更新内容的属性信息;
根据所述待更新内容的属性信息,在所述云应用的原窗口中绘制所述待更新内容,以生成所述云应用的第二窗口。
11.根据权利要求10所述的方法,其特征在于,所述窗口信息包括所述待更新内容和所述待更新内容的属性信息;所述利用所述窗口管理器将所述窗口信息提供给所述客户端,包括:
利用所述窗口管理器对所述待更新内容和所述待更新内容的属性信息进行压缩处理,以得到目标窗口内容;
按照所述窗口管理器与所述客户端之间的通信协议,对所述目标窗口内容进行封装;
利用所述窗口管理器将封装后的目标窗口内容提供给所述客户端,以供所述客户端基于所述目标窗口内容在原本地窗口绘制所述待更新内容,以生成第二本地窗口。
12.根据权利要求10所述的方法,其特征在于,还包括:
通过所述窗口管理器获取所述客户端提供的窗口操作数据;所述窗口操作数据为所述客户端响应于针对原本地窗口的操作事件获取的所述操作事件关联的窗口操作数据;
通过所述窗口管理器和所述显示管理器将所述窗口操作数据提供给所述云应用,以供所述云应用基于所述窗口操作数据,生成所述窗口内容更新请求。
13.根据权利要求12所述的方法,其特征在于,所述通过所述窗口管理器和所述显示管理器将所述窗口操作数据提供给所述云应用,包括:
所述窗口管理器将所述窗口操作数据提供给所述显示管理器的输入驱动组件;
所述输入驱动组件将所述窗口操作数据注入所述显示管理器;
所述显示管理器将注入的窗口操作数据提供给所述云应用。
14.一种计算设备,其特征在于,包括:存储器、处理器和通信组件;其中,所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器和所述通信组件,用于执行所述计算机程序以用于执行权利要求5-13任一项所述方法中的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111600002.0A CN114327712A (zh) | 2021-12-24 | 2021-12-24 | 云应用***、窗口管理方法及设备 |
PCT/CN2022/127538 WO2023116184A1 (zh) | 2021-12-24 | 2022-10-26 | 云应用***、窗口管理方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111600002.0A CN114327712A (zh) | 2021-12-24 | 2021-12-24 | 云应用***、窗口管理方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114327712A true CN114327712A (zh) | 2022-04-12 |
Family
ID=81012433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111600002.0A Pending CN114327712A (zh) | 2021-12-24 | 2021-12-24 | 云应用***、窗口管理方法及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114327712A (zh) |
WO (1) | WO2023116184A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107575A (zh) * | 2023-04-13 | 2023-05-12 | 麒麟软件有限公司 | 窗口管理器 |
WO2023116184A1 (zh) * | 2021-12-24 | 2023-06-29 | 阿里巴巴(中国)有限公司 | 云应用***、窗口管理方法及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436350A (zh) * | 2011-12-06 | 2012-05-02 | 北京航空航天大学 | 远程应用窗口显示方法、服务器及用户终端 |
CN107643930A (zh) * | 2016-07-22 | 2018-01-30 | 中兴通讯股份有限公司 | 应用运行方法及云服务器 |
CN108897596A (zh) * | 2018-07-05 | 2018-11-27 | 北京景行锐创软件有限公司 | 一种图形界面传输方法及装置 |
CN112685109A (zh) * | 2020-12-03 | 2021-04-20 | 南京机敏软件科技有限公司 | 一种动态标识与识别远程应用窗口的方法及*** |
CN112764847A (zh) * | 2020-12-31 | 2021-05-07 | 西安万像电子科技有限公司 | 应用分发方法、装置及*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1170658A1 (en) * | 2000-07-07 | 2002-01-09 | Sun Microsystems, Inc. | Window management communications |
CN114327712A (zh) * | 2021-12-24 | 2022-04-12 | 阿里巴巴(中国)有限公司 | 云应用***、窗口管理方法及设备 |
-
2021
- 2021-12-24 CN CN202111600002.0A patent/CN114327712A/zh active Pending
-
2022
- 2022-10-26 WO PCT/CN2022/127538 patent/WO2023116184A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436350A (zh) * | 2011-12-06 | 2012-05-02 | 北京航空航天大学 | 远程应用窗口显示方法、服务器及用户终端 |
CN107643930A (zh) * | 2016-07-22 | 2018-01-30 | 中兴通讯股份有限公司 | 应用运行方法及云服务器 |
CN108897596A (zh) * | 2018-07-05 | 2018-11-27 | 北京景行锐创软件有限公司 | 一种图形界面传输方法及装置 |
CN112685109A (zh) * | 2020-12-03 | 2021-04-20 | 南京机敏软件科技有限公司 | 一种动态标识与识别远程应用窗口的方法及*** |
CN112764847A (zh) * | 2020-12-31 | 2021-05-07 | 西安万像电子科技有限公司 | 应用分发方法、装置及*** |
Non-Patent Citations (2)
Title |
---|
LINUXHEIK: "Linux下X Server工作方式", Retrieved from the Internet <URL:《https://blog.csdn.net/linuxheik/article/details/7593922》> * |
杨荣尊;: "Linux***下的虚拟桌面显示协议实现", 电子世界, no. 17, 8 September 2018 (2018-09-08) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023116184A1 (zh) * | 2021-12-24 | 2023-06-29 | 阿里巴巴(中国)有限公司 | 云应用***、窗口管理方法及设备 |
CN116107575A (zh) * | 2023-04-13 | 2023-05-12 | 麒麟软件有限公司 | 窗口管理器 |
Also Published As
Publication number | Publication date |
---|---|
WO2023116184A1 (zh) | 2023-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2019233201B2 (en) | Resource configuration method and apparatus, terminal, and storage medium | |
CN106713485B (zh) | 云计算移动终端 | |
CN111433743B (zh) | 一种app远程控制方法及相关设备 | |
CN114327712A (zh) | 云应用***、窗口管理方法及设备 | |
CN108132826B (zh) | 跨云服务器的镜像管理方法、装置及服务器 | |
CN106775924A (zh) | 虚拟机启动方法和装置 | |
CN112347404A (zh) | Spa页面渲染方法、设备、***及存储介质 | |
CN115065684B (zh) | 数据处理方法、装置、设备以及介质 | |
CN111291292A (zh) | 页面渲染方法和装置、终端设备及存储介质 | |
CN112882709A (zh) | 基于容器引擎***的渲染方法、装置、设备以及存储介质 | |
KR20120096741A (ko) | 가상단말 클라우드 네트워크 시스템 및 이기종 단말 플랫폼 어플리케이션 제공방법 | |
CN111880790A (zh) | 页面渲染方法、页面渲染***和计算机可读存储介质 | |
CN111324667A (zh) | 一种数据同步方法、装置、电子设备及存储介质 | |
CN112565317A (zh) | 混合云***及其数据处理方法、设备及存储介质 | |
CN110795162B (zh) | 生成容器镜像文件的方法和装置 | |
CN109343846B (zh) | 业务场景的构建方法和业务场景的构建*** | |
CN106610845B (zh) | 信息管理方法、装置、服务器及*** | |
CN109683916A (zh) | 一种自主创建包含应用软件的云主机镜像的方法 | |
CN111462289B (zh) | 图像的渲染方法及装置、*** | |
CN112416455A (zh) | 数据处理方法、装置、终端和存储介质 | |
CN116756016A (zh) | 多浏览器测试方法、装置、设备、介质及程序产品 | |
CN115328997B (zh) | 数据同步方法、***、设备及存储介质 | |
CN108289056B (zh) | 分享动态图表的方法、装置以及计算设备 | |
CN110795156A (zh) | 移动存储器加载方法、瘦客户端、存储介质及装置 | |
CN108270803B (zh) | 通过网页技术实现网络文件与桌面应用传输的方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40071594 Country of ref document: HK |