WO2023116184A1 - 云应用系统、窗口管理方法及设备 - Google Patents
云应用系统、窗口管理方法及设备 Download PDFInfo
- Publication number
- WO2023116184A1 WO2023116184A1 PCT/CN2022/127538 CN2022127538W WO2023116184A1 WO 2023116184 A1 WO2023116184 A1 WO 2023116184A1 CN 2022127538 W CN2022127538 W CN 2022127538W WO 2023116184 A1 WO2023116184 A1 WO 2023116184A1
- Authority
- WO
- WIPO (PCT)
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Definitions
- the present application relates to the field of communication technologies, and in particular to a cloud application system, a window management method and equipment.
- Cloud applications are the embodiment of cloud computing technology at the application layer.
- the working principle of cloud applications transforms the use of traditional software "local installation, local computing" into “out-of-the-box” services.
- the client does not need to install the corresponding software, and can connect to and control the remote service cluster through the Internet or LAN to complete business logic or computing tasks.
- this cloud application window management method requires a cloud application to correspond to a complete set of display managers (such as X-server), and the cloud application management system has a large resource overhead during startup.
- aspects of the present application provide a cloud application system, a window management method, and a device for reducing resource consumption of the cloud application system for window management.
- an embodiment of the present application provides a cloud application system, including: a server and a client; the server is deployed with an application program, a display manager, and a window manager; the display manager is configured to The window request of the application program generates the window of the target application program; and provides the window information of the target application program to the window manager; A communication protocol for providing window information of the target application to a target client accessing the target application; the target client is configured to generate a local window of the target application according to the window information of the target application.
- the embodiment of the present application provides a window management method, including: obtaining a window request of a cloud application; using a display manager to generate a window of the cloud application according to the window request of the cloud application; using the window manager to The window information of the cloud application is provided to a client accessing the cloud application, so that the client can generate a local window of the cloud application according to the window information of the cloud application.
- the embodiment of the present application provides a computing device, including: a memory, a processor, and a communication component; wherein, the memory is used to store a computer program; and the processor is coupled to the memory and the communication component for use in Executing the computer program for performing the steps in the above window management method.
- Fig. 1 is a schematic structural diagram of a cloud application system provided by an embodiment of the present application
- Fig. 2 is a schematic diagram of a window provided by an embodiment of the present application.
- FIG. 3 is a schematic diagram of a window management process provided by an embodiment of the present application.
- FIG. 4 is a schematic diagram of a window management process provided by another embodiment of the present application.
- Fig. 5 is a schematic structural diagram of a cloud application system provided by another embodiment of the present application.
- FIG. 6 is a schematic flowchart of a window management method provided by an embodiment of the present application.
- Fig. 7 is a schematic structural diagram of a computing device provided by an embodiment of the present application.
- the cloud application management system introduces a window manager.
- the display manager can generate the window of the application program according to the window request of the application program; and provide the window information of the application program to the window manager.
- the window manager can provide the window information of the cloud application to the client accessing the cloud application according to the communication protocol with the client, and the client can generate a local window according to the received window information.
- This embodiment can realize window management at window granularity. Therefore, multiple cloud applications can share the same display manager, which can reduce the number of display managers started when the cloud application management system is running, helping to reduce cloud application management. System resource consumption.
- FIG. 1 is a schematic structural diagram of a cloud application system provided by an embodiment of the present application. As shown in FIG. 1 , the cloud application system includes: a server 10 and a client 20 .
- the server 10 refers to a computer device that can manage application windows, respond to service requests from the client 20, and provide users with services related to cloud applications, and generally has the ability to undertake and guarantee services.
- the server 10 can be a single server device, or a cloud-based server array, or a virtual machine (Virtual Machine, VM) running in a cloud-based server array.
- the server 10 may also refer to other computing devices with corresponding service capabilities, such as terminal devices such as computers (running service programs), and the like.
- the client 20 refers to a computer device used by the user, which has functions such as computing, surfing the Internet, and communication required by the user, such as a mobile phone, a tablet computer, a personal computer, a wearable device, and the like.
- Client 20 typically includes at least one processing unit and at least one memory.
- the client 20 also includes basic configurations such as a network card chip, an IO bus, and audio and video components.
- some peripheral devices may also be included, such as a keyboard, a mouse, a stylus, a printer, and the like.
- connection between the server 10 and the client 20 may be wireless or wired.
- the server 10 can communicate with the client 20 through a mobile network.
- the network standard of the mobile network can be 2G (GSM), 2.5G (GPRS), 3G (WCDMA, TD-SCDMA, CDMA2000, UTMS), Any of 4G(LTE), 4G+(LTE+), 5G, WiMax, etc.
- the client 20 may also communicate with the client 20 through bluetooth, WiFi, infrared and other means.
- the server 10 is deployed with application programs.
- Applications may also be referred to as cloud applications.
- a plurality means two or more.
- FIG. 1 only illustrates that the number of application programs is three, but it does not constitute a limitation.
- the implementation form of the application program is not limited.
- the application program may be a webpage, client software, APP or applet, and the like. Multiple applications can be deployed on the same physical machine or on different physical machines.
- the applicable operating system of the application program is not limited.
- the application program can be a Linux system application program, a Windows system application program, an Android system application program, an IOS system application program, and the like.
- the operating system of the client 20 may not be an applicable operating system for the application, so that the client 20 cannot install such application.
- the operating system of the client 20 may not be the Linux system, and the application program of the Linux system cannot be installed.
- a cloud application emerges as the times require.
- the display manager 101 refers to a software function module that provides graphical interface services.
- the display manager 101 can interact with the window manager 102 to generate application windows and the like.
- the display manager 101 can be an X service (X Server) component.
- X Server X Server
- the Linux system will establish one or several X servers, interact with the window manager through the X protocol, and generate windows by the X server independent of the Linux system.
- the window manager 102 refers to a software function module that manages window information of application programs. This module can interact with the client 20 and provide window information to the client 20 and so on.
- the window manager 102 may also be called a streaming window manager (String Window Manager, SWM).
- the application accessed by the client 20 is defined as the target application; the client accessing the target application is defined as the target client.
- the target application program may be any application program among the application programs deployed by the server 10 .
- Fig. 1 only illustrates that the target application program is APP1, but does not constitute a limitation.
- the target application program may initiate a window request to the display manager 101 .
- the display manager 101 can generate the window of the target application according to the window request of the target application.
- the window request may include window information.
- the window information refers to description information used to describe the graphical interface of the window, and may include window attribute information, window content, attribute information of the window content, and the like. As shown in FIG. 2, the window information may include: window attributes and window content.
- Window attribute information refers to the description information of window characteristics, which may include: window style description information, such as window size information, whether the window has a border, whether there is a minimize or maximize button, whether it is displayed on the taskbar, etc., and the border size, color, etc., and/or, button form, color, etc.
- the window content refers to the specific display content of the window.
- the displayed specific content includes: the content of the window interface, etc. In FIG. 2, only the window content is "ABCDEF" for illustration, but this does not constitute a limitation.
- the attribute information of the window content may include: the style, size, color, etc. of the window content.
- the window information can be obtained from the window request; and the window of the application can be generated according to the window information.
- the display manager 101 may provide the window manager 102 with the window information of the target application.
- the specific implementation form in which the display manager 101 provides window information to the window manager 102 is not limited.
- the display manager 101 may send a window generation message to the window manager 102 .
- the window generation message carries the storage address of the window information of the target application program.
- the display manager 101 may provide the window generation message to the window manager 102 .
- the window manager 102 can obtain the window information of the target application program according to the storage address of the window information carried in the window generation message.
- the window manager 102 can parse the window generation message to obtain the storage address of the window information carried by the window generation message; information, as window information for the target application.
- the window manager 102 may provide the window information of the target application to the target client 20 accessing the target application according to the communication protocol between the window manager and the client.
- the window manager 102 can encapsulate the window information of the target application program according to the communication protocol between the window manager 102 and the target client 20, so as to obtain
- the window manager 102 may provide the window message A to the target client 20 .
- the communication protocol between the window manager 102 and the target client 20 may be determined by the communication method between the client 20 and the server 10 .
- the window manager 102 communicates with the target client 20 through Ethernet, and accordingly, the communication protocol between the window manager 102 and the target client 20 may be TCP/IP protocol or the like.
- the target client 20 can acquire the window information of the target application, and generate a local window of the target application according to the window information of the target application.
- the target client 20 can parse the window message A to obtain the window information of the target application; and generate a local window of the target application according to the window information of the target application.
- the display manager can generate the window of the application program according to the window request of the application program, and provide the window information of the application program to the window manager.
- the window manager can provide the window information of the cloud application to the client accessing the cloud application according to the communication protocol with the client, and the client can generate a local window according to the received window information.
- This embodiment can realize window management at window granularity. Therefore, multiple cloud applications can share the same display manager, which can reduce the number of display managers started when the cloud application management system is running, helping to reduce cloud application management. System resource consumption.
- a window manager is introduced to realize window management at window granularity, without using the entire desktop to simulate the window of the application program, and the window size can be directly adjusted according to the window size provided by the client without the need for the entire desktop.
- the resolution of the desktop can improve the flexibility of window adjustment and reduce the complexity of implementation.
- the cloud application system provided by the embodiment of the present application introduces a window manager to realize window management of window granularity, and each window is independent of each other and will not be affected by the window cascading relationship, which helps to improve user-side Display window accuracy.
- the window request of the application may include a window creation request and a window content update request.
- the window creation request is used to request the display manager to create a window, which is a process of creating a window from scratch;
- the window content update request is to update the window content of an existing window.
- the window request of the application is a window creation request.
- the window creation request includes attribute information of the window to be created.
- the application program may issue a window creation request in response to the application start request of the client 20 (step 1).
- the client 20 may provide an application start request to the server 10 in response to a target application start event.
- the application start request may include an identification of the application to be started.
- the window manager 102 may receive the application start request (step 2); and start the target application according to the application start request (step 3).
- the window manager 102 may analyze the application start request to obtain the identifier of the application to be started carried in the application start request; and determine the application program corresponding to the identifier of the application to be started as the target application program; in one embodiment, The target application can be launched. In one embodiment, the window manager 102 can start a thread; and run the thread to start the target application.
- the application launching function is executed by the window manager 102 for example, and does not constitute a limitation.
- the application starting module can also be implemented as an independent software function module, which is used to start the target application program. Wherein, for the process of starting the target application by the independent application starting module, refer to the related content about starting the target application by the above-mentioned window manager 102, which will not be repeated here.
- the target application program sends a window creation request to the display manager 101 (step 4).
- the process of starting the application may include: before the start of the application, during the start of the application, and after the start of the application.
- a target application during startup should be understood to be at any stage of the startup process.
- the display manager 101 can obtain the window creation request of the application program; and obtain the attribute information of the window to be created from the window creation request; in one embodiment, the application program can be created according to the attribute information of the window to be created First window (step 5).
- the first window created in this process does not include window content.
- the display manager 101 may send the attribute information of the first window to the window manager 102 as window information.
- the display manager 101 may encapsulate the storage address corresponding to the attribute information of the first window according to the communication protocol with the window manager 102 to obtain the window creation message.
- the communication protocol followed between the display manager 101 and the window manager 102 is not limited.
- the display manager 101 is an X server; for example, the communication protocol followed between the display manager 101 and the window manager 102 may be an X protocol.
- display manager 101 may provide a window creation message to window manager 102 (step 6).
- the window manager 102 may analyze the window creation message to obtain the storage address corresponding to the attribute information of the first window; and read the information stored in the storage address as the attribute information of the first window.
- the window manager 102 may provide the attribute information of the first window to the target client 20 (step 7).
- the window manager 102 may encapsulate the attribute information of the first window according to the communication protocol between the window manager and the target client, and provide the encapsulated attribute information of the first window to the target client.
- the communication protocol between the window manager 102 and the target client is determined by the communication method between the client 20 and the server 10 .
- the attribute information of the first window can be obtained; and according to the attribute information of the first window, the first local window can be created (step 8).
- the first native window does not contain window content.
- the target client 20 may parse out the attribute information of the first window from the encapsulated attribute information of the first window; and create the first local window according to the attribute information of the first window.
- the content of the window may also be updated.
- updating the window content may include: adding the window content to the first local window that does not contain the window content, and may also include updating the window content to the original window that already has the window content.
- the window request of the application program may also be a window content update request.
- the window content update request may include the content to be updated and attribute information of the content to be updated.
- the content to be updated is the content of the window to be updated.
- the specific trigger conditions for the target application program to initiate a window content update request are not limited.
- the target application after sending the window creation request to the display manager 101 , the target application sends a window content update request (step 9 ).
- the target application may also send a window content update request in response to an operation event of the client on the local window (step 19).
- the target application program can determine that the window content of the above-mentioned first window is the content to be updated; the attribute information of the window content is the content to be updated Attribute information of the content.
- the target application can generate a window content update request according to the content to be updated and the attribute information of the content to be updated; and provide the window content update request to the display manager 101 .
- the window operation data associated with the operation event can be obtained in response to the operation event for the original local window.
- the window operation data may include: the operation form of the operation event, the position of the window operated by the operation event, and so on.
- the operation form of the operation event can be understood as: what form the user uses to operate the window, such as right mouse click, left mouse double click, keyboard input, and so on.
- target client 20 may provide window manipulation data to window manager 102 (step 15).
- the target client 20 may encapsulate the window operation data according to the communication protocol between the target client and the window manager; and provide the encapsulated window operation data to the window manager 102 .
- the window manager 102 can parse the encapsulated window operation data to obtain the window operation data.
- window manager 102 may provide window manipulation data to display manager 101 .
- Display manager 101 provides window manipulation data to target applications.
- the display manager 101 includes a driver layer.
- an input (Input) driver component 103 can be added to the driver layer of the display manager 101.
- the input driver component is an input driver of the display manager 101 and is responsible for peripheral device event injection.
- the input driver component can report peripheral events to the event queue (Event queue) in the display manager 101. Then the display manager 101 will send the external event to the corresponding application program, and the application program will receive the event and respond to the event.
- the input driver component 103 and the window manager 102 follow the input interaction protocol.
- the input driver component 103 can inject window operation data into the display manager 101 (step 17).
- the target application can handle the window manipulation event (step 18). For example, the target application can determine the response data and the attribute information of the response data generated by the target application for the operation event according to the window operation data; and determine the response data and the attribute information of the response data as the content to be updated and the attribute information of the content to be updated . In one embodiment, the target application can generate a window content update request according to the content to be updated and the attribute information of the content to be updated; and provide the window content update request to the display manager 101 (step 19).
- the display manager 101 can obtain the content to be updated and the attribute information of the content to be updated from the window content update request; in one embodiment, the content to be updated can be drawn on the original window of the target application program according to the attribute information of the content to be updated , to generate a second window of the target application (steps 10 and 20).
- the original window of the target application program is the above-mentioned first window.
- the first window and the second window are different windows.
- the original window on the display manager 101 side may be the window of the target application program before this window content update.
- display manager 101 may also provide the content to be updated and the attribute information of the content to be updated to the window manager 102 (step 21).
- display manager 101 may send window manager 102 a window content update message.
- the window content update message includes the content to be updated and the storage address of the content to be updated.
- the window manager 102 can parse the window content update message to obtain the storage address of the content to be updated and the attribute information of the content to be updated; and obtain the content to be updated and the attribute information of the content to be updated according to the storage address.
- the window manager 102 may provide the content to be updated and the attribute information of the content to be updated to the target client 20 according to the communication protocol between it and the target client. Due to the large amount of data of the content to be updated, in order to reduce the information transmission bandwidth and improve the efficiency of information transmission, the window manager 102 may perform compression processing on the content to be updated and the attribute information of the content to be updated to obtain the content of the target window. In one embodiment, the window manager 102 may compress and encode the content to be updated and the attribute information of the content to be updated according to a set encoding method to obtain the target window content (step 22).
- the window manager 102 can package the target window content according to the communication protocol between the window manager and the target client; and provide the packaged target window content to the target client 20 (step 23) .
- the content of the target window can be decompressed to obtain the content to be updated and the attribute information of the content to be updated; Update content to generate a second local window (step 24).
- the original local window corresponds to the original window on the display manager 101 side.
- the original window on the display manager 101 side is the first window
- the original local window on the target client 20 side is the above-mentioned first local window.
- the original window on the display manager 101 side can be the window of the target application program before this window content update
- the original local window on the target client 20 side is the local window before responding to this window operation.
- the cloud application system provided by the embodiment of the present application introduces a window manager, and the window manager cooperates with the display manager to realize a streamlined window management process.
- the window content is updated as needed.
- invalid capture can be avoided; on the other hand, it can provide Timeliness of window update, reducing window update delay.
- the embodiment of the present application also provides a window management method, and the window management method provided in the embodiment of the present application will be exemplarily described below.
- FIG. 6 is a schematic flowchart of a window management method 600 provided by an embodiment of the present application. As shown in Figure 6, the window management method 600 includes:
- step 601 a window request of a cloud application is acquired.
- step 602 the window of the cloud application is generated by using the display manager according to the window request of the cloud application.
- the window manager is used to provide the client accessing the cloud application with the window information of the cloud application, so that the client can generate a local window of the cloud application according to the window information of the cloud application.
- a display manager and a window manager are deployed on the server side.
- the display manager and the window manager reference may be made to the relevant content of the above-mentioned system embodiments, which will not be repeated here.
- the cloud application may initiate a window request to the display manager.
- the window request of the cloud application can be obtained; in step 602, the display manager is used to generate the window of the cloud application according to the window request of the cloud application.
- the window request may include window information.
- the window information refers to description information used to describe the graphical interface of the window, and may include window attribute information, window content, attribute information of the window content, and the like.
- the display manager can be used to obtain the window information from the window request; and generate the window of the application program according to the window information.
- the display manager may provide window information of the target application to the window manager.
- the specific implementation form in which the display manager provides window information to the window manager is not limited.
- the display manager may send a window generation message to the window manager.
- the window generation message carries the storage address of the window information of the target application program.
- the display manager may provide window generation messages to the window manager.
- the window manager can be used to obtain the window information of the target application program according to the storage address of the window information carried in the window generation message.
- the window manager can be used to analyze the window generation message to obtain the storage address of the window information carried by the window generation message; in one embodiment, the storage space corresponding to the storage address of the window information carried by the window generation message can be read Information stored as window information for the target application.
- the window manager may be used to provide the window information of the target application to the client accessing the cloud application.
- the window manager is used to provide the window information of the target application program to the client accessing the cloud application according to the communication protocol between the window manager and the client.
- the window manager can be used to encapsulate the window information of the cloud application according to the communication protocol between the window manager and the client, so as to obtain the window message following the communication protocol between the window manager and the client A; In an embodiment, the window manager can be used to provide the window message A to the target client.
- the communication protocol between the window manager and the client may be determined by the communication method between the client and the server.
- the client can obtain window information of the target application program; and generate a local window of the target application program according to the window information of the target application program.
- the client can parse the window message A to obtain the window information of the target application program; and generate a local window of the target application program according to the window information of the target application program.
- the display manager can generate the window of the application program according to the window request of the application program; and provide the window information of the application program to the window manager.
- the window manager can provide the window information of the cloud application to the client accessing the cloud application according to the communication protocol with the client, and the client can generate a local window according to the received window information.
- This embodiment can realize window management at window granularity. Therefore, multiple cloud applications can share the same display manager, which can reduce the number of display managers started when the cloud application management system is running, helping to reduce cloud application management. System resource consumption.
- a window manager is introduced to realize window management at window granularity, without using the entire desktop to simulate the window of the application program, and the window size can be directly adjusted according to the window size provided by the client without the need for the entire desktop.
- the resolution of the desktop can improve the flexibility of window adjustment and reduce the complexity of implementation.
- the cloud application system provided by the embodiment of the present application introduces a window manager to realize the window management of the window granularity, and each window is independent of each other and will not be affected by the window cascading relationship, which helps Improve the accuracy of the display window on the user side.
- the window request of the application may include a window creation request and a window content update request.
- the window creation request is used to request the display manager to create a window, which is a process of creating a window from scratch;
- the window content update request is to update the window content of an existing window.
- the window request of the cloud application is a window creation request.
- the window creation request includes attribute information of the window to be created.
- attribute information of the window For the description of the attribute information of the window, reference may be made to the relevant content of the above-mentioned embodiments, which will not be repeated here.
- process of the cloud application initiating a window creation request reference may be made to the relevant content of the above-mentioned system embodiments, which will not be repeated here.
- the display manager can be used to obtain the window creation request of the application program; and from the window creation request, the attribute information of the window to be created can be obtained; in one embodiment, the display manager can be used according to the attribute information of the window to be created, Create the first window of the application.
- the first window created in this process does not include window content.
- the display manager may send the attribute information of the first window to the window manager as window information.
- the display manager may encapsulate the storage address corresponding to the attribute information of the first window according to the communication protocol with the window manager, so as to obtain the window creation message.
- the display manager may provide a window creation message to the window manager.
- the window manager can analyze the window creation message to obtain the storage address corresponding to the attribute information of the first window; and read the information stored in the storage address as the attribute information of the first window.
- the window manager can be used to provide the attribute information of the first window to the client accessing the cloud application.
- the window manager can be used to encapsulate the attribute information of the first window according to the communication protocol between the window manager and the target client; and provide the encapsulated attribute information of the first window to the target client.
- the attribute information of the first window can be obtained; and the first local window of the cloud application can be created according to the attribute information of the first window.
- the first native window does not contain window content.
- the attribute information of the first window may be parsed from the encapsulated attribute information of the first window; and the first local window may be created according to the attribute information of the first window.
- the content of the window may also be updated.
- updating the window content may include: adding the window content to the first local window that does not contain the window content, and may also include updating the window content to the original window that already has the window content.
- the window request of the application program may also be a window content update request.
- the window content update request may include the content to be updated and attribute information of the content to be updated.
- the content to be updated is the content of the window to be updated.
- the specific trigger conditions for the cloud application to initiate a window content update request are not limited.
- the cloud application sends the window content update request after sending the window creation request to the display manager.
- the cloud application may also send a window content update request in response to an operation event of the client on the local window.
- the target application program can determine that the window content of the first window is the content to be updated; the attribute information of the window content is the content to be updated. attribute information.
- the target application can generate a window content update request according to the content to be updated and the attribute information of the content to be updated; and provide the window content update request to the display manager.
- the client For users on the client side, they can interact with the local window.
- the window operation data associated with the operation event may be obtained in response to the operation event of the original local window.
- the client may provide window manipulation data to the window manager.
- the window manager may provide window manipulation data to the display manager.
- the display manager may provide window manipulation data to cloud applications.
- an input (Input) driver component may be added to the driver layer of the display manager. The input interaction protocol is followed between the input driver component and the window manager.
- the window manager can be used to provide the window operation data to the input driver component; and use the input driver component to operate the window Data is injected into the display manager.
- the window operation data can be provided to the cloud application.
- the cloud application can handle window manipulation events.
- the cloud application can generate a window content update request according to the window operation data.
- the cloud application can determine the response data and the attribute information of the response data generated by the cloud application for the operation event according to the window operation data; and determine the response data and the attribute information of the response data as the content to be updated and the attribute information of the content to be updated.
- the cloud application can generate a window content update request according to the content to be updated and the attribute information of the content to be updated; and provide the window content update request to the display manager.
- the display manager can be used to obtain the content to be updated and the attribute information of the content to be updated from the window content update request; and draw the content to be updated in the original window of the target application program according to the attribute information of the content to be updated , to spawn a second window of the target application.
- the original window of the cloud application is the above-mentioned first window.
- the original window on the display manager side may be the window of the cloud application before this window content update.
- the display manager may also be used to provide the window manager with the content to be updated and the attribute information of the content to be updated.
- the display manager can be used to send window content update messages to the window manager.
- the window content update message includes the content to be updated and the storage address of the content to be updated.
- the window manager can parse the window content update message to obtain the storage address of the content to be updated and the attribute information of the content to be updated; and obtain the content to be updated and the attribute information of the content to be updated according to the storage address.
- the window manager may be used to provide the content to be updated and the attribute information of the content to be updated to the client according to the communication protocol between the window manager and the client. Due to the large amount of data of the content to be updated, in order to reduce the information transmission bandwidth and improve the efficiency of information transmission, the window manager can be used to compress the content to be updated and the attribute information of the content to be updated to obtain the content of the target window.
- the window manager may be used to encapsulate the target window content according to the communication protocol between the window manager and the target client; and provide the packaged target window content to the client.
- the content of the target window can be decompressed to obtain the content to be updated and the attribute information of the content to be updated; in one embodiment, the content to be updated can be drawn in the original window according to the attribute information of the content to be updated , to spawn a second native window.
- the window management method 600 provided by the embodiment of the present application introduces a window manager, and the window manager cooperates with the display manager to realize a streamlined window management process.
- the window content is updated as needed.
- invalid capture can be avoided; on the other hand, it can provide Timeliness of window update, reducing window update delay.
- the subject of execution of each step of the method 600 provided in the foregoing embodiment may be the same device, or the method 600 may also be executed by different devices.
- the execution subject of steps 601 and 602 may be device A; for another example, the execution subject of step 601 may be device A, and the execution subject of step 602 may be device B; and so on.
- the cloud application management system introduces a window manager.
- the display manager can generate the window of the application program according to the window request of the application program; and provide the window information of the application program to the window manager.
- the window manager can provide the window information of the cloud application to the client accessing the cloud application according to the communication protocol with the client, and the client can generate a local window according to the received window information.
- This embodiment can realize window management at window granularity. Therefore, multiple cloud applications can share the same display manager, which can reduce the number of display managers started when the cloud application management system is running, helping to reduce cloud application management. System resource consumption.
- the embodiment of the present application also provides a computer-readable storage medium storing computer instructions.
- the computer instructions are executed by one or more processors, one or more processors are caused to execute the above window management method 600. step.
- FIG. 7 is a schematic structural diagram of a computing device provided by an embodiment of the present application.
- the computing device includes: a memory 70a and a processor 70b.
- the memory 70a is used to store computer programs.
- the computer program includes computer programs corresponding to the display manager and the window manager respectively.
- the processor 70b is coupled to the memory 70a and the communication component 70c, and is used to execute the computer program for: obtaining the window request of the cloud application; using the display manager to generate a window of the cloud application according to the window request of the cloud application; using the window manager to pass
- the communication component 70c provides the window information of the cloud application to the client accessing the cloud application, so that the client generates a local window of the cloud application according to the window information of the cloud application.
- the processor 70b is further configured to: use the display manager to send a window generation message to the window manager; the window generation message carries the storage address of the window information; use the window manager according to the storage address carried in the window generation message, Get window information.
- the window request of the cloud application is a window creation request.
- the processor 70b When the processor 70b generates the window of the cloud application, it can be used to: use the display manager to obtain the attribute information of the window to be created from the window creation request; create the first window of the cloud application according to the attribute information of the window to be created.
- the window information includes attribute information of the first window.
- the processor 70b uses the window manager to provide the window information to the client, it can be used to: use the window manager to set the attribute of the first window according to the communication protocol between the window manager and the client. Encapsulate the information; use the window manager to provide the encapsulated attribute information of the first window to the client through the communication component 70c, so that the client can create the first local window of the cloud application based on the attribute information of the first window.
- the processor 70b is further configured to: obtain the application start request provided by the client through the window manager; use the window manager to start the cloud application according to the application start request provided by the client, so that the cloud application can be started during the start process. Send a window creation request to the display manager.
- the window request of the cloud application is a window content update request.
- the processor 70b When the processor 70b generates the window of the cloud application, it can be used to: use the display manager to obtain the content to be updated and the attribute information of the content to be updated from the window content update request; according to the attribute information of the content to be updated, in the cloud application The content to be updated is drawn in the original window to generate a second window of the cloud application.
- the window information includes the content to be updated and the attribute information of the content to be updated.
- the processor 70b uses the window manager to provide the window information to the client, it can be used to: use the window manager to compress the content to be updated and the attribute information of the content to be updated to obtain the target window content;
- the communication protocol between the manager and the client encapsulates the content of the target window;
- the window manager provides the encapsulated content of the target window to the client through the communication component 70c, so that the client can draw on the original window based on the content of the target window
- the content is to be updated to generate a second local window.
- the cloud application sends a window content update request after sending the window creation request to the display manager; or, the cloud application sends a window content update request in response to an operation event of the client on the local window.
- the processor 70b is further configured to: obtain the window operation data provided by the client through the window manager; the window operation data is the window operation data associated with the operation event obtained by the client in response to the operation event of the original local window ; Provide the window operation data to the cloud application through the window manager and the display manager, so that the cloud application can generate a window content update request based on the window operation data.
- the computer program stored in the memory 70a further includes: a computer program corresponding to the input drive component.
- the processor 70b provides the window operation data to the cloud application through the window manager and the display manager, it can be used for: the window manager provides the window operation data to the input driver component of the display manager; the input driver component will The window operation data is injected into the display manager; the display manager provides the injected window operation data to the cloud application.
- the computing device may further include optional components such as a power supply component 70d.
- Fig. 7 only schematically shows some components, which does not mean that the computing device must include all the components shown in Fig. 7, nor does it mean that the computing device can only include the components shown in Fig. 7 .
- the computing device provided in this embodiment is deployed with a display manager and a window manager.
- the display manager can generate the window of the application program according to the window request of the application program; and provide the window information of the application program to the window manager.
- the window manager can provide the window information of the cloud application to the client accessing the cloud application according to the communication protocol with the client, and the client can generate a local window according to the received window information.
- This embodiment can realize window management at window granularity. Therefore, multiple cloud applications can share the same display manager, which can reduce the number of display managers started when the cloud application management system is running, helping to reduce cloud application management. System resource consumption.
- a window manager is introduced to realize window management at window granularity, without using the entire desktop to simulate the window of the application program, and the window size can be directly adjusted according to the window size provided by the client without the need for the entire desktop.
- the resolution of the desktop can improve the flexibility of window adjustment and reduce the complexity of implementation.
- the cloud application system provided by the embodiment of the present application introduces a window manager to realize the window management of the window granularity, and each window is independent of each other and will not be affected by the window cascading relationship, which helps Improve the accuracy of the display window on the user side.
- the memory is used to store computer programs, and may be configured to store other various data to support operations on the device where it is located.
- the processor can execute the computer program stored in the memory to realize the corresponding control logic.
- the memory can be realized by any type of volatile or non-volatile storage devices or their combination, such as Static Random Access Memory (SRAM), Electrically Erasable Programmable Read Only Memory (EEPROM), Erasable Programmable Read Only Memory (EPROM), Programmable Read Only Memory (PROM), Read Only Memory (ROM), Magnetic Memory, Flash Memory, Magnetic or Optical Disk.
- the processor may be any hardware processing device capable of executing the logic of the above method.
- the processor can be a central processing unit (Central Processing Unit, CPU), a graphics processing unit (Graphics Processing Unit, GPU) or a micro control unit (Microcontroller Unit, MCU); it can also be a field programmable gate Field-Programmable Gate Array (FPGA), Programmable Array Logic (PAL), General Array Logic (GAL), Complex Programmable Logic Device (CPLD), etc. Programmable devices; or advanced RISC processors (Advanced RISC Machines, ARM) or system chips (System on Chip, SoC), etc., but not limited thereto.
- CPU Central Processing Unit
- GPU Graphics Processing Unit
- MCU micro control unit
- FPGA field programmable gate Field-Programmable Gate Array
- PAL Programmable Array Logic
- GAL General Array Logic
- CPLD Complex Programmable Logic Device
- Programmable devices or advanced RISC processors (Advanced RISC Machines,
- the communication component is configured to facilitate wired or wireless communication between the device where it is located and other devices.
- the device where the communication component is located can access a wireless network based on communication standards, such as WiFi, 2G or 3G, 4G, 5G or a combination thereof.
- the communication component receives a broadcast signal or broadcast related information from an external broadcast management system via a broadcast channel.
- the communication component may also be based on Near Field Communication (NFC) technology, Radio Frequency Identification (RFID) technology, Infrared Data Association (IrDA) technology, Ultra Wideband (UWB) technology, Bluetooth (BT) technology or other techniques to achieve.
- NFC Near Field Communication
- RFID Radio Frequency Identification
- IrDA Infrared Data Association
- UWB Ultra Wideband
- Bluetooth Bluetooth
- the power supply component is configured to provide power to various components of the device where it is located.
- a power supply component may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to the device in which the power supply component resides.
- the embodiments of the present application may be provided as methods, systems, or computer program products. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein.
- computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
- These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing apparatus to operate in a specific manner, such that the instructions stored in the computer-readable memory produce an article of manufacture comprising instruction means, the instructions
- the device realizes the function specified in one or more procedures of the flowchart and/or one or more blocks of the block diagram.
- a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
- processors CPUs
- input/output interfaces network interfaces
- memory volatile and non-volatile memory
- Memory may include non-permanent storage in computer readable media, in the form of random access memory (RAM) and/or nonvolatile memory such as read-only memory (ROM) or flash RAM. Memory is an example of computer readable media.
- RAM random access memory
- ROM read-only memory
- flash RAM flash random access memory
- the storage medium of the computer is a readable storage medium, which may also be referred to as a readable medium.
- Readable storage media including both volatile and non-permanent, removable and non-removable media, may be implemented by any method or technology for information storage.
- Information may be computer readable instructions, data structures, modules of a program, or other data.
- Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read only memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Flash memory or other memory technology, Compact Disc Read-Only Memory (CD-ROM), Digital Versatile Disc (DVD) or other optical storage, A magnetic tape cartridge, disk storage or other magnetic storage device or any other non-transmission medium that can be used to store information that can be accessed by a computing device.
- computer-readable media excludes transitory computer-readable media, such as modulated data signals and carrier waves.
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
本申请要求于2021年12月24日提交中国专利局、申请号为202111600002.0、发明名称为“云应用系统、窗口管理方法及设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及通信技术领域,尤其涉及一种云应用系统、窗口管理方法及设备。
云应用(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为本申请实施例提供的窗口管理方法600的流程示意图。如图6所示,窗口管理方法600包括:
在步骤601,获取云应用的窗口请求。
在步骤602,利用显示管理器根据云应用的窗口请求,生成云应用的窗口。
在步骤603,利用窗口管理器将云应用的窗口信息提供给访问云应用的客户端,以供客户端根据云应用的窗口信息,生成云应用的本地窗口。
在本申请实施例中,为了实现客户端同步显示云应用的窗口,在服务端部署显示管理 器和窗口管理器。关于显示管理器和窗口管理器的描述,可参见上述系统实施例的相关内容,在此不再赘述。
在本申请实施例中,云应用可向显示管理器发起窗口请求。对于服务端,在步骤601中,可获取云应用的窗口请求;在步骤602中,利用显示管理器根据云应用的窗口请求,生成云应用的窗口。在一种实施方式中,窗口请求可包括窗口信息。其中,窗口信息是指用于描述窗口的图形界面的描述信息,可包括窗口属性信息、窗口内容及窗口内容的属性信息等等。
对于服务端,可利用显示管理器从窗口请求中,获取窗口信息;并根据窗口信息,生成应用程序的窗口。在一实施方式中,显示管理器可将目标应用程序的窗口信息提供给窗口管理器。
在本申请实施例中,不限定显示管理器将窗口信息提供给窗口管理器的具体实现形式。在一种实施方式中,显示管理器可向窗口管理器发送窗口生成消息。该窗口生成消息携带有目标应用程序的窗口信息的存储地址。显示管理器可将窗口生成消息提供给窗口管理器。
相应地,可利用窗口管理器根据窗口生成消息携带的窗口信息的存储地址,获取目标应用程序的窗口信息。例如,可利用窗口管理器可对窗口生成消息进行解析,得到窗口生成消息携带的窗口信息的存储地址;在一实施方式中,可读取窗口生成消息携带的窗口信息的存储地址对应的存储空间存储的信息,作为目标应用程序的窗口信息。
在一实施例中,在步骤603中,可利用窗口管理器将目标应用程序的窗口信息提供给访问云应用的客户端。例如,利用窗口管理器根据窗口管理器与客户端之间的通信协议,将目标应用程序的窗口信息提供给访问云应用的客户端。
在一些实施方式中,可利用窗口管理器按照窗口管理器与客户端之间的通信协议,对云应用的窗口信息进行封装,以得到遵循窗口管理器与客户端之间的通信协议的窗口消息A;在一实施方式中,可利用窗口管理器将窗口消息A提供给目标客户端。其中,窗口管理器与客户端之间的通信协议可由客户端与服务端之间的通信方式决定。
在一些实施方式中,客户端可获取目标应用程序的窗口信息;并根据目标应用程序的窗口信息,生成目标应用程序的本地窗口。例如,客户端可对窗口消息A进行解析,以得到目标应用程序的窗口信息;并根据目标应用程序的窗口信息,生成目标应用程序的本地窗口。
在本实施例中,显示管理器可根据应用程序的窗口请求,生成应用程序的窗口;并将应用程序的窗口信息提供给窗口管理器。窗口管理器可根据与客户端之间的通信协议,将云应用的窗口信息提供给访问该云应用的客户端,客户端可根据接收到的窗口信息,生成本地窗口。本实施例可实现窗口颗粒度的窗口管理,因此,多个云应用可共用同一显示管理器,这样在云应用管理系统运行时可减少启动的显示管理器的数量,有助于降低云应用管理系统的资源消耗。
另一方面,在本实施例中,引入窗口管理器,实现窗口颗粒度的窗口管理,无需用整个桌面模拟应用程序的窗口,可根据客户端提供的窗口尺寸,直接调整窗口大小,而无需整个桌面的分辨率,可提高窗口调整的灵活性,降低实现复杂度。
另外,对于在一些情形下的周期性抓取整个桌面内容模拟应用窗口的方案,若在桌面抓取时,存在多个窗口重叠的情况,上述情形下的方案无法实现独立窗口抓取,对于不同用户来说,客户端侧无法准确显示其想要的窗口。相较于上述情形下的方案,本申请实施例提供的云应用系统,引入窗口管理器,实现窗口颗粒度的窗口管理,各窗口之间相互独立,不会受到窗口层叠关系影响,有助于提高用户侧显示窗口的准确度。
在本申请实施例中,应用程序的窗口请求可包括窗口创建请求和窗口内容更新请求。其中,窗口创建请求用于请求显示管理器创建窗口,为窗口从无到有的过程;窗口内容更新请求是更新已有窗口的窗口内容。下面以窗口创建过程和窗口内容更新请求为例,对本申请实施例提供的窗口管理方式进行示例性说明。
在一些实施例中,云应用的窗口请求为窗口创建请求。窗口创建请求包括待创建窗口的属性信息。关于窗口的属性信息的描述,可参见上述实施例的相关内容,在此不再赘述。关于云应用发起窗口创建请求的过程,可参见上述系统实施例的相关内容,在此不再赘述。
相应地,可利用显示管理器获取应用程序的窗口创建请求;并从窗口创建请求中,获取待创建窗口的属性信息;在一实施方式中,可利用显示管理器根据待创建窗口的属性信息,创建应用程序的第一窗口。在该过程创建出的第一窗口不包括窗口内容。
在一实施例中,显示管理器可将第一窗口的属性信息作为窗口信息发送给窗口管理器。在一种实施方式中,显示管理器可按照与窗口管理器之间的通信协议,对第一窗口的属性信息对应的存储地址进行封装,以得到窗口创建消息。
在一实施例中,显示管理器可将窗口创建消息提供给窗口管理器。窗口管理器可对窗口创建消息进行解析,得到第一窗口的属性信息对应的存储地址;并读取该存储地址存储的信息,作为第一窗口的属性信息。
在一实施例中,可利用窗口管理器将第一窗口的属性信息提供给访问云应用的客户端。例如,可利用窗口管理器按照窗口管理器与目标客户端之间的通信协议,对第一窗口的属性信息进行封装;将封装后的第一窗口的属性信息提供给目标客户端。
对于客户端,可获取第一窗口的属性信息;并根据第一窗口的属性信息,创建云应用的第一本地窗口。该第一本地窗口不包含窗口内容。例如,可从封装后的第一窗口的属性信息中解析出第一窗口的属性信息;并根据第一窗口的属性信息,创建第一本地窗口。
在本申请实施例中,除了创建窗口之外,还可对窗口内容进行更新。其中,窗口内容更新可包括:在尚未包含窗口内容的第一本地窗口增加窗口内容,还可包括对已有窗口内容的原窗口更新窗口内容。相应地,应用程序的窗口请求还可为窗口内容更新请求。该窗口内容更新请求可包括待更新内容和待更新内容的属性信息。待更新内容为待更新的窗口内容。
在本申请实施例中,不限定云应用发起窗口内容更新请求的具体触发条件。在一些实施例中,云应用在向显示管理器发送窗口创建请求之后,发送窗口内容更新请求。或者,云应用也可响应于客户端对本地窗口的操作事件,发送窗口内容更新请求。
对于云应用在向显示管理器发送窗口创建请求之后,发送窗口内容更新请求的实施例,目标应用程序可确定上述第一窗口的窗口内容为待更新内容;窗口内容的属性信息为待更新内容的属性信息。在一实施方式中,目标应用程序可根据待更新内容和待更新内容的属性信息,生成窗口内容更新请求;并将窗口内容更新请求提供给显示管理器。
对于客户端侧的用户,可与本地窗口进行交互。对于客户端可响应于针对原本地窗口的操作事件,获取操作事件关联的窗口操作数据。其中,关于窗口操作数据的描述,可参见上述系统实施例的相关内容,在此不再赘述。在一实施方式中,客户端可将窗口操作数据提供给窗口管理器。
在一实施例中,窗口管理器可将窗口操作数据提供给显示管理器。显示管理器可将窗口操作数据提供给云应用。在本申请实施例中,可在显示管理器的驱动层增加输入(Input)驱动组件。输入驱动组件与窗口管理器之间遵循输入交互协议。
基于显示管理器中增加的输入驱动组件,在利用窗口管理器将窗口操作数据提供给显示管理器时,可利用窗口管理器将窗口操作数据提供给输入驱动组件;并利用输入驱动组件将窗口操作数据注入显示管理器。
对于显示管理器可将窗口操作数据提供给云应用。相应地,云应用可处理窗口操作事件。在一种实施方式中,云应用可根据窗口操作数据,生成窗口内容更新请求。例如,云应用可根据窗口操作数据,确定云应用针对操作事件产生的响应数据和响应数据的属性信息;并确定响应数据和响应数据的属性信息为待更新内容和待更新内容的属性信息。在一实施方式中,云应用可根据待更新内容和待更新内容的属性信息,生成窗口内容更新请求;并将窗口内容更新请求提供给显示管理器。
在一实施例中,可利用显示管理器从窗口内容更新请求中,获取待更新内容和待更新内容的属性信息;并根据待更新内容的属性信息,在目标应用程序的原窗口绘制待更新内容,以生成目标应用程序的第二窗口。
对于上述云应用在向显示管理器发送窗口创建请求之后,发送窗口内容更新请求的实施例,云应用的原窗口为上述第一窗口。
对于上述云应用响应于客户端对本地窗口的操作事件,发送窗口内容更新请求的实施例,显示管理器侧的原窗口可为云应用在本次窗口内容更新之前的窗口。
在生成目标应用程序的第二窗口之后,还可利用显示管理器将待更新内容和待更新内容的属性信息提供给窗口管理器。在一种实施方式中,可利用显示管理器向窗口管理器发送窗口内容更新消息。该窗口内容更新消息包含待更新内容和待更新内容的存储地址。对于窗口管理器可解析窗口内容更新消息,获取待更新内容和待更新内容的属性信息的存储地址;并根据该存储地址,获取待更新内容和待更新内容的属性信息。
在一实施例中,可利用窗口管理器根据其与客户端之间的通信协议,将待更新内容和待更新内容的属性信息提供给客户端。由于待更新内容的数据量较大,为了降低信息传输带宽,提高信息传输效率,可利用窗口管理器对待更新内容和待更新内容的属性信息进行压缩处理,得到目标窗口内容。
在一实施例中,可利用窗口管理器按照窗口管理器与目标客户端之间的通信协议,对目标窗口内容进行封装;并将封装后的目标窗口内容提供给客户端。
对于客户端可对目标窗口内容进行解压缩处理,以得到待更新内容和所述待更新内容的属性信息;在一实施方式中,可根据待更新内容的属性信息,在原本地窗口绘制待更新内容,以生成第二本地窗口。
对于在一些情形下的周期性抓取整个桌面内容模拟应用窗口的方案,若在抓取周期未到达之前,窗口内容产生更新,则会因为桌面抓取不及时导致应用窗口更新延时较长;若在窗口内容未更新,周期性抓取桌面内容会导致大量无效抓取,浪费计算资源。相较于上述情形下的方案,本申请实施例提供的窗口管理方法600,引入窗口管理器,该窗口管理器与显示管理器相配合,可实现流化的窗口管理流程。相较于上述情形下的周期性抓取整个桌面内容,实现应用窗口模拟的方案,在窗口内容更新时,按需对窗口内容进行更新,一方面,可避免无效抓取;另一方面可提供窗口更新的时效性,降低窗口更新延时。
需要说明的是,上述实施例所提供方法600的各步骤的执行主体均可以是同一设备,或者,该方法600也由不同设备作为执行主体。比如,步骤601和602的执行主体可以为设备A;又比如,步骤601的执行主体可以为设备A,步骤602的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本申请中出现的顺序来执行或并行执行,操作的序号如601、602等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
与相关技术相比,本申请具有如下优点:依据本申请实施例,云应用管理系统引入窗口管理器。其中,显示管理器可根据应用程序的窗口请求,生成应用程序的窗口;并将应用程序的窗口信息提供给窗口管理器。窗口管理器可根据与客户端之间的通信协议,将云应用的窗口信息提供给访问该云应用的客户端,客户端可根据接收到的窗口信息,生成本地窗口。本实施例可实现窗口颗粒度的窗口管理,因此,多个云应用可共用同一显示管理器,这样在云应用管理系统运行时可减少启动的显示管理器的数量,有助于降低云应用管理系统的资源消耗。
相应地,本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述窗口管理方法600中的步骤。
图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)、图形处理器(Graphics Processing Unit,GPU)或微控制单元(Microcontroller Unit,MCU);也可以为现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程阵列逻辑器件(Programmable Array 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所述的系统,所述应用程序的窗口请求为窗口创建请求;所述显示管理器在生成所述应用程序的窗口时,用于:从所述窗口创建请求中,获取待创建窗口的属性信息;根据所述待创建窗口的属性信息,创建所述应用程序的第一窗口;所述目标客户端在生成所述目标应用程序的本地窗口时,用于:根据所述第一窗口的属性信息,创建第一本地窗口。
- 根据权利要求1所述的系统,所述应用程序的窗口请求为窗口内容更新请求;所述显示管理器在生成所述应用程序的窗口时,用于:从所述窗口内容更新请求中,获取待更新内容和所述待更新内容的属性信息;根据所述待更新内容的属性信息,在原窗口绘制所述待更新内容,以生成所述应用程序的第二窗口。
- 根据权利要求3所述的系统,所述服务端还部署有所述显示管理器的输入驱动组件;所述客户端用于:响应于针对原本地窗口的操作事件,获取所述操作事件关联的窗口操作数据;将所述窗口操作数据提供给所述窗口管理器;所述窗口管理器,用于将所述窗口操作数据提供给所述输入驱动组件;所述输入驱动组件将所述窗口操作数据注入所述显示管理器;所述窗口操作数据经所述显示管理器提供给所述应用程序;所述应用程序根据所述窗口操作数据,确定所述应用程序针对所述操作事件产生的响应数据和所述响应数据的属性信息;确定所述响应数据和所述响应数据的属性信息为所述待更新内容和所述待更新内容的属性信息;根据所述待更新内容和所述待更新内容的属性信息,生成所述窗口内容更新请求;并将所述窗口内容更新请求提供给所述显示管理器。
- 一种窗口管理方法,包括:获取云应用的窗口请求;利用显示管理器根据云应用的窗口请求,生成所述云应用的窗口;利用窗口管理器将所述云应用的窗口信息提供给访问所述云应用的客户端,以供所述客户端根据所述云应用的窗口信息,生成所述云应用的本地窗口。
- 根据权利要求5所述的方法,还包括:利用显示管理器向所述窗口管理器发送窗口生成消息;所述窗口生成消息携带有所述窗口信息的存储地址;所述窗口管理器根据所述窗口生成消息携带的存储地址,获取所述窗口信息。
- 根据权利要求5所述的方法,所述云应用的窗口请求为窗口创建请求;所述根据云应用的窗口请求,生成所述云应用的窗口,包括:利用显示管理器从所述窗口创建请求中,获取待创建窗口的属性信息;根据所述待创建窗口的属性信息,创建所述云应用的第一窗口。
- 根据权利要求7所述的方法,所述窗口信息包括所述第一窗口的属性信息;所述利用所述窗口管理器将所述窗口信息提供给所述客户端,包括:利用所述窗口管理器按照所述窗口管理器与所述客户端之间的通信协议,对所述第一窗口的属性信息进行封装;利用所述窗口管理器将封装后的第一窗口的属性信息提供给所述客户端,以供所述客户端基于所述第一窗口的属性信息创建云应用的第一本地窗口。
- 根据权利要求7所述的方法,还包括:通过所述窗口管理器获取所述客户端提供的应用启动请求;利用所述窗口管理器根据所述客户端提供的应用启动请求,启动所述云应用,以使所述云应用在启动过程中向所述显示管理器发送窗口创建请求。
- 根据权利要求5所述的方法,所述云应用的窗口请求为窗口内容更新请求;所述根据云应用的窗口请求,生成所述云应用的窗口,包括:利用显示管理器从所述窗口内容更新请求中,获取待更新内容和所述待更新内容的属性信息;根据所述待更新内容的属性信息,在所述云应用的原窗口中绘制所述待更新内容,以生成所述云应用的第二窗口。
- 根据权利要求10所述的方法,所述窗口信息包括所述待更新内容和所述待更新内容的属性信息;所述利用所述窗口管理器将所述窗口信息提供给所述客户端,包括:利用所述窗口管理器对所述待更新内容和所述待更新内容的属性信息进行压缩处理,以得到目标窗口内容;按照所述窗口管理器与所述客户端之间的通信协议,对所述目标窗口内容进行封装;利用所述窗口管理器将封装后的目标窗口内容提供给所述客户端,以供所述客户端基于所述目标窗口内容在原本地窗口绘制所述待更新内容,以生成第二本地窗口。
- 根据权利要求10所述的方法,还包括:通过所述窗口管理器获取所述客户端提供的窗口操作数据;所述窗口操作数据为所述客户端响应于针对原本地窗口的操作事件获取的所述操作事件关联的窗口操作数据;通过所述窗口管理器和所述显示管理器将所述窗口操作数据提供给所述云应用,以供 所述云应用基于所述窗口操作数据,生成所述窗口内容更新请求。
- 根据权利要求12所述的方法,所述通过所述窗口管理器和所述显示管理器将所述窗口操作数据提供给所述云应用,包括:所述窗口管理器将所述窗口操作数据提供给所述显示管理器的输入驱动组件;所述输入驱动组件将所述窗口操作数据注入所述显示管理器;所述显示管理器将注入的窗口操作数据提供给所述云应用。
- 一种计算设备,包括:存储器、处理器和通信组件;其中,所述存储器,用于存储计算机程序;所述处理器耦合至所述存储器和所述通信组件,用于执行所述计算机程序以用于执行权利要求5-13任一项所述方法中的步骤。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111600002.0 | 2021-12-24 | ||
| CN202111600002.0A CN114327712B (zh) | 2021-12-24 | 2021-12-24 | 云应用系统、窗口管理方法及设备 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023116184A1 true WO2023116184A1 (zh) | 2023-06-29 |
Family
ID=81012433
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/127538 Ceased WO2023116184A1 (zh) | 2021-12-24 | 2022-10-26 | 云应用系统、窗口管理方法及设备 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN114327712B (zh) |
| WO (1) | WO2023116184A1 (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114327712B (zh) * | 2021-12-24 | 2024-08-30 | 阿里巴巴(中国)有限公司 | 云应用系统、窗口管理方法及设备 |
| CN116028153A (zh) * | 2022-12-30 | 2023-04-28 | 深圳开鸿数字产业发展有限公司 | 窗口还原方法、客户端、服务端及存储介质 |
| CN116107575B (zh) * | 2023-04-13 | 2023-07-04 | 麒麟软件有限公司 | 一种窗口管理器 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020126144A1 (en) * | 2000-07-07 | 2002-09-12 | Erwann Chenede | Apparatus and method for communicating graphical display data in a network-based windowing system |
| 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 | 西安万像电子科技有限公司 | 应用分发方法、装置及系统 |
| CN114327712A (zh) * | 2021-12-24 | 2022-04-12 | 阿里巴巴(中国)有限公司 | 云应用系统、窗口管理方法及设备 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102436350B (zh) * | 2011-12-06 | 2014-11-12 | 北京航空航天大学 | 远程应用窗口显示方法、服务器及用户终端 |
-
2021
- 2021-12-24 CN CN202111600002.0A patent/CN114327712B/zh active Active
-
2022
- 2022-10-26 WO PCT/CN2022/127538 patent/WO2023116184A1/zh not_active Ceased
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020126144A1 (en) * | 2000-07-07 | 2002-09-12 | Erwann Chenede | Apparatus and method for communicating graphical display data in a network-based windowing system |
| 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 | 西安万像电子科技有限公司 | 应用分发方法、装置及系统 |
| CN114327712A (zh) * | 2021-12-24 | 2022-04-12 | 阿里巴巴(中国)有限公司 | 云应用系统、窗口管理方法及设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN114327712B (zh) | 2024-08-30 |
| CN114327712A (zh) | 2022-04-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2023116184A1 (zh) | 云应用系统、窗口管理方法及设备 | |
| CN106713485B (zh) | 云计算移动终端 | |
| US10298721B2 (en) | Method and system to determine a work distribution model for an application deployed on a cloud | |
| CN105718540B (zh) | 数据加载方法和装置 | |
| US9117019B2 (en) | Debugging remote software applications across WAN connections | |
| CN106533713B (zh) | 一种应用部署方法及设备 | |
| WO2020063019A1 (zh) | 信息处理方法、装置、存储介质、电子设备及系统 | |
| CN111818120A (zh) | 端云用户交互方法、系统及相应设备、存储介质 | |
| CN106953893A (zh) | 云存储系统间的数据迁移 | |
| CN108809722A (zh) | 一种部署Kubernetes集群的方法、装置和存储介质 | |
| US20240143395A1 (en) | Method and device for identifying android system drawing thread, and mobile terminal and storage medium | |
| CN106997298A (zh) | 一种应用资源获取方法及装置 | |
| WO2016197590A1 (zh) | 用于在终端设备上提供截屏服务的方法、装置、存储介质及设备 | |
| CN112565317A (zh) | 混合云系统及其数据处理方法、设备及存储介质 | |
| CN105760210A (zh) | 一种voi系统和vdi系统的融合使用方法及系统 | |
| KR20120096741A (ko) | 가상단말 클라우드 네트워크 시스템 및 이기종 단말 플랫폼 어플리케이션 제공방법 | |
| CN119127408B (zh) | 云服务系统、虚拟机创建方法、设备、介质及程序产品 | |
| CN114780211B (zh) | 管理安全容器的方法及基于安全容器的系统 | |
| JP7547631B2 (ja) | クラウドプラットフォーム上でワークフローをスケジューリングする方法、装置、及びコンピュータプログラム | |
| CN113326098B (zh) | 支持kvm虚拟化与容器虚拟化的云管平台 | |
| KR101412310B1 (ko) | 가상단말 클라우드 네트워크 시스템 및 이기종 단말 플랫폼 어플리케이션 제공방법 | |
| CN106557386A (zh) | 基于kvm部署备份虚拟网卡虚拟机的方法、装置及系统 | |
| US11543945B1 (en) | Accurate local depiction of preview of a program window included in a remote graphical desktop | |
| WO2024183458A1 (zh) | 控件处理方法、设备、系统及存储介质 | |
| US20240212255A1 (en) | Scene Rendering Method, Apparatus, Device, and System |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22909502 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 22909502 Country of ref document: EP Kind code of ref document: A1 |