SE1400155A1 - Integration of applications - Google Patents

Integration of applications Download PDF

Info

Publication number
SE1400155A1
SE1400155A1 SE1400155A SE1400155A SE1400155A1 SE 1400155 A1 SE1400155 A1 SE 1400155A1 SE 1400155 A SE1400155 A SE 1400155A SE 1400155 A SE1400155 A SE 1400155A SE 1400155 A1 SE1400155 A1 SE 1400155A1
Authority
SE
Sweden
Prior art keywords
remote
local
user interface
application
interface window
Prior art date
Application number
SE1400155A
Other languages
Swedish (sv)
Inventor
S Sivaprakash
Original Assignee
Abb Technology Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Abb Technology Ltd filed Critical Abb Technology Ltd
Priority to SE1400155A priority Critical patent/SE1400155A1/en
Publication of SE1400155A1 publication Critical patent/SE1400155A1/en

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

There is provided a computer-implemented method for integrating a remote application into a local application, comprising establishing a remote session from a local device to a remote device, the remote session involving initiating a remote application hosted by the remote device, and the remote application being configured to launch a remote session user interface window; and providing the remote session user interface window to a display screen of the local device by: displaying the remote session user interface window in a hidden state at the local device; and copying bitmap information of the remote session user interface window into a local session user interface window upon launch of a local application hosted by the local device and configured to launch said local session user interface window.(Figi)

Description

15 20 25 bandwidth, in order to achieve real-time control of the industrial control system. 15 20 25 bandwidth, in order to achieve real-time control of the industrial control system.

For example, to display a user interface of the process control system in a local device (such as an operator workplace), significant amount of processor resources, bandwidth resources, memory resources etc. are consumed. This also results in latency to display the user interface and may also affect other critical processor processes.For example, to display a user interface of the process control system in a local device (such as an operator workplace), significant amount of processor resources, bandwidth resources, memory resources etc. are consumed. This also results in latency to display the user interface and may also affect other critical processor processes.

One way to overcome this issue is to leverage processor power and memory in additional computers, such as remote devices. Hence, parts of a real-time control application of the process control system may be performed in different remote devices and then integrated it in the local device.One way to overcome this issue is to leverage processor power and memory in additional computers, such as remote devices. Hence, parts of a real-time control application of the process control system may be performed in different remote devices and then integrated it in the local device.

There are many technologies that provide remote access to an application.There are many technologies that provide remote access to an application.

RemoteApp is one such technology that enables programs to be accessed remotely through the use of remote desktop services.RemoteApp is one such technology that enables programs to be accessed remotely through the use of remote desktop services.

Using RemoteApp, any application can be configured to be run in a remote device. In general terms, this application will behave like any other local application from the user's perspective, but internally its process run in the remote device and only the user interface is shown to the user on the local device. An application that is configured as a RemoteApp can have in its own resizable window, it can be dragged between multiple monitors, and has its own entry in the taskbar of the local device.Using RemoteApp, any application can be configured to be run in a remote device. In general terms, this application will behave like any other local application from the user's perspective, but internally its process run in the remote device and only the user interface is shown to the user on the local device. An application that is configured as a RemoteApp can have in its own resizable window, it can be dragged between multiple monitors, and has its own entry in the taskbar of the local device.

Some challenges when integrating a remote application into a local application will be summarized next.Some challenges when integrating a remote application into a local application will be summarized next.

To launch a RemoteApp, a windows session must be established in the Remote Server using windows login credentials. After the session is created in the server, the Remote Application is launched and the User Interface is displayed at the local device. This initial creation of session takes up to 30 seconds on average. The user working on the local device may not be willing 10 15 20 25 to wait for 30 seconds after clicking on a menu or button to see the User Interface of the RemoteApp.To launch a RemoteApp, a windows session must be established in the Remote Server using windows login credentials. After the session is created in the server, the Remote Application is launched and the User Interface is displayed on the local device. This initial creation of session takes up to 30 seconds on average. The user working on the local device may not be willing 10 15 20 25 to wait for 30 seconds after clicking on a menu or button to see the User Interface of the RemoteApp.

A RemoteApp program is a separate Application and will pop-up its own window in the local device. It will look as a separate application to a user.A RemoteApp program is a separate Application and will pop-up its own window in the local device. It will look like a separate application to a user.

The RemoteApp window will have its own window handle and an entry in the taskbar list of applications at the local device. This entry in the taskbar may confuse the user when switching between windows.The RemoteApp window will have its own window handle and an entry in the taskbar list of applications at the local device. This entry in the taskbar may confuse the user when switching between windows.

The RemoteApp program will react to user inputs and the user can close this window. But, the RemoteApp window should not be closed directly by the user when it is integrated to a local application. The user must only be able to close the local application windows, which in turn should close the RemoteApp window.The RemoteApp program will react to user inputs and the user can close this window. However, the RemoteApp window should not be closed directly by the user when it is integrated to a local application. The user must only be able to close the local application windows, which in turn should close the RemoteApp window.

Commonly, the size and location of the RemoteApp user interface will be specified when the program was created or it may the same as it was launched earlier. But to integrate the RemoteApp, it should be possible to dynamically change this size and position based on the local applications state.Commonly, the size and location of the RemoteApp user interface will be speci fi ed when the program was created or it may the same as it was launched earlier. But to integrate the RemoteApp, it should be possible to dynamically change this size and position based on the local applications state.

WO 2010/ 102875 A1 addresses the concept of integrating applications through streaming. However, there are still issues relating to integration of a remote window of the remote device into a local window of the local device.WO 2010/102875 A1 addresses the concept of integrating applications through streaming. However, there are still issues relating to integration of a remote window of the remote device into a local window of the local device.

For example, the user should not be able to differentiate if he/ she is interacting with a remote window (or application) or with a local window (or application). To the user it should thus appear as if he/ she is working with a single monolithic local application.For example, the user should not be able to differentiate if he / she is interacting with a remote window (or application) or with a local window (or application). To the user it should thus appear as if he / she is working with a single monolithic local application.

For example, to integrate a remote application into a local application, the parent of the window of the local application may be changed as follows. T is ñrstly noted that commonly the main window of an application will have its parent defined as NULL (which means that the desktop is its parent). When the parent is set as another window, the operating system of the local device 10 15 20 25 will move the window into the client area of the parent window. However, the currently remote application integrated locally (RAIL) window does not work properly if its parent is to be changed to anything other than the desktop. It will stop rendering the RAIL window and the user interface will freeze.For example, to integrate a remote application into a local application, the parent of the local application window may be changed as follows. T is ñrstly noted that commonly the main window of an application will have its parent de fi ned as NULL (which means that the desktop is its parent). When the parent is set as another window, the operating system of the local device 10 15 20 25 will move the window into the client area of the parent window. However, the currently remote application integrated locally (RAIL) window does not work properly if its parent is to be changed to anything other than the desktop. It will stop rendering the RAIL window and the user interface will freeze.

Hence, there is still a need for an improved integration of remote applications into local applications.Hence, there is still a need for an improved integration of remote applications into local applications.

SUMMARY An object of embodiments herein is to provide improved integration of remote applications into local applications.SUMMARY An object of embodiments herein is to provide improved integration of remote applications into local applications.

According to a first aspect there is presented a computer-implemented method for integrating a remote application into a local application. The method comprises establishing a remote session from a local device to a remote device, the remote session involving initiating a remote application hosted by the remote device, and the remote application being configured to launch a remote session user interface window. The method comprises providing the remote session user interface window to a display screen of the local device. The providing comprises displaying the remote session user interface window in a hidden state at the local device. The providing comprises copying bitmap information of the remote session user interface window into a local session user interface window upon launch of a local application hosted by the local device and configured to launch said local session user interface window Advantageously this provides efficient integration of remote applications into local applications.According to a first aspect there is presented a computer-implemented method for integrating a remote application into a local application. The method comprises establishing a remote session from a local device to a remote device, the remote session involving initiating a remote application hosted by the remote device, and the remote application being con fi gured to launch a remote session user interface window. The method comprises providing the remote session user interface window to a display screen of the local device. The providing comprises displaying the remote session user interface window in a hidden state at the local device. The providing comprises copying bitmap information of the remote session user interface window into a local session user interface window upon launch of a local application hosted by the local device and con to gured to launch said local session user interface window Advantageously this provides ef fi cient integration of remote applications into local applications.

Advantageously this reduces latency to display the user interface of the remote application on the local device.Advantageously this reduces latency to display the user interface of the remote application on the local device.

Advantageously this enable the local device to be used for high processing, high bandwidth, and/or high memory demanding applications, such as real- time control of industrial control systems, to be controlled by the local device. 10 15 20 25 According to a second aspect there is presented an electronic device for integrating a remote application into a local application, comprising a processing unit and a non-transitory computer readable storage medium, the non-transitory computer readable storage medium comprising instructions executable by the processing unit whereby the electronic device is operative to perform a method according to the first aspect.Advantageously this enables the local device to be used for high processing, high bandwidth, and / or high memory demanding applications, such as real-time control of industrial control systems, to be controlled by the local device. 10 15 20 25 According to a second aspect there is presented an electronic device for integrating a remote application into a local application, comprising a processing unit and a non-transitory computer readable storage medium, the non-transitory computer readable storage medium comprising instructions executable by the processing unit whereby the electronic device is operative to perform a method according to the aspect rst aspect.

According to a third aspect there is presented a computer program for integrating a remote application into a local application, the computer program comprising computer program code which, when run on a processing unit, causes the processing unit to perform a method according to the first aspect.According to a third aspect there is presented a computer program for integrating a remote application into a local application, the computer program comprising computer program code which, when run on a processing unit, causes the processing unit to perform a method according to the aspect rst aspect .

According to a fourth aspect there is presented a computer program product comprising a computer program according to the third aspect and a computer readable means on which the computer program is stored.According to a fourth aspect there is presented a computer program product comprising a computer program according to the third aspect and a computer readable means on which the computer program is stored.

It is to be noted that any feature of the first, second, third and fourth aspects may be applied to any other aspect, wherever appropriate. Likewise, any advantage of the first aspect may equally apply to the second, third, and/ or fourth aspect, respectively, and vice versa. Other objectives, features and advantages of the enclosed embodiments will be apparent from the following detailed disclosure, from the attached dependent claims as well as from the drawings.It is to be noted that any feature of the, rst, second, third and fourth aspects may be applied to any other aspect, wherever appropriate. Likewise, any advantage of the aspect rst aspect may equally apply to the second, third, and / or fourth aspect, respectively, and vice versa. Other objectives, features and advantages of the enclosed embodiments will be apparent from the following detailed disclosure, from the attached dependent claims as well as from the drawings.

Generally, all terms used in the claims are to be interpreted according to their ordinary meaning in the technical field, unless explicitly defined otherwise herein. All references to "a/an/the element, apparatus, component, means, step, etc." are to be interpreted openly as referring to at least one instance of the element, apparatus, component, means, step, etc., unless explicitly stated otherwise. The steps of any method disclosed herein do not have to be performed in the exact order disclosed, unless explicitly stated. 10 15 20 25 BRIEF DESCRIPTION OF THE DRAVVIN GS The inventive concept is now described, by way of example, with reference to the accompanying drawings, in which: Fig 1 is a schematic diagram illustrating a remote device and a local device according to embodiments; Fig 2 is a schematic diagram showing functional units of an electronic device according to an embodiment; Fig 3 shows one example of a computer program product comprising computer readable means according to an embodiment; Fig 4 is a flowcharts of a method according to an embodiments; and Figs 5 and 6 schematically illustrate integration of a remote application into a local application.Generally, all terms used in the claims are to be interpreted according to their ordinary meaning in the technical field, unless explicitly de fi ned otherwise herein. All references to "a / an / the element, apparatus, component, means, step, etc." are to be interpreted openly as referring to at least one instance of the element, apparatus, component, means, step, etc., unless explicitly stated otherwise. The steps of any method disclosed herein do not have to be performed in the exact order disclosed, unless explicitly stated. 10 15 20 25 BRIEF DESCRIPTION OF THE DRAVVIN GS The inventive concept is now described, by way of example, with reference to the accompanying drawings, in which: Fig 1 is a schematic diagram illustrating a remote device and a local device according to embodiments; Fig. 2 is a schematic diagram showing functional units of an electronic device according to an embodiment; Fig 3 shows one example of a computer program product comprising computer readable means according to an embodiment; Fig. 4 is a ch owcharts of a method according to an embodiments; and Figs 5 and 6 schematically illustrate integration of a remote application into a local application.

DETAILED DESCRIPTION The inventive concept will now be described more fully hereinafter with reference to the accompanying drawings, in which certain embodiments of the inventive concept are shown. This inventive concept may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided by way of example so that this disclosure will be thorough and complete, and will fully convey the scope of the inventive concept to those skilled in the art.DETAILED DESCRIPTION The inventive concept will now be described more fully hereinafter with reference to the accompanying drawings, in which certain embodiments of the inventive concept are shown. This inventive concept may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided by way of example so that this disclosure will be thorough and complete, and will fully convey the scope of the inventive concept to those skilled in the art.

Like numbers refer to like elements throughout the description. Any step or feature illustrated by dashed lines should be regarded as optional.Like numbers refer to like elements throughout the description. Any step or feature illustrated by dashed lines should be considered as optional.

As herein defined, streaming involves to transfer a user interface from one remote device (e.g., an Application Server) to a local device (e.g., a workplace computer). One example of streaming is Remote Desktop, according to which the entire desktop of the remote device is streamed to the local device and the user of the local device is enabled to interact with this streamed desktop as if the user is interacting with the desktop of the local device. Another example 10 15 20 25 30 of streaming is RemoteApp, where applications (program) are made remotely accessible and where the user is enabled to interact with the application as if run locally. That is, unlike Remote Desktop, where the entire desktop is streamed, for RemoteApp only a single application is streamed to the local device.As mentioned below, streaming involves transferring a user interface from a remote device (e.g., an application server) to a local device (e.g., a workplace computer). One example of streaming is Remote Desktop, according to which the entire desktop of the remote device is streamed to the local device and the user of the local device is enabled to interact with this streamed desktop as if the user is interacting with the desktop of the local device. Another example 10 15 20 25 30 of streaming is RemoteApp, where applications (program) are made remotely accessible and where the user is enabled to interact with the application as if run locally. That is, unlike Remote Desktop, where the entire desktop is streamed, for RemoteApp only a single application is streamed to the local device.

As herein defined, Remote Desktop Services, also known as Terminal Services, is a server role that provides technologies that enable users to access (Windows-based) applications that are installed on a Remote Desktop Session Host (RD Session Host) server, or to access the full desktop of the remote device. This provides an operating system with the possibility to host multiple simultaneous logon sessions. The desktop or any individual program of a logon session may then be accessed from another computer (such as by a local device) over a network.As herein de fi ned, Remote Desktop Services, also known as Terminal Services, is a server role that provides technologies that enable users to access (Windows-based) applications that are installed on a Remote Desktop Session Host (RD Session Host) server, or to access the full desktop of the remote device. This provides an operating system with the possibility to host multiple simultaneous logon sessions. The desktop or any individual program of a logon session may then be accessed from another computer (such as by a local device) over a network.

As herein defined, A Remote Desktop Session Host (RD Session Host) server is the server that hosts (Windows-based) applications or the full desktop for Remote Desktop Services clients. Users are enabled to establish a connect to an RD Session Host server to run applications, to save files, and to use network resources on that server. Users are enabled to access an RD Session Host server by using Remote Desktop Connection or by using RemoteApp.As here de A ned, A Remote Desktop Session Host (RD Session Host) server is the server that hosts (Windows-based) applications or the full desktop for Remote Desktop Services clients. Users are enabled to establish a connect to an RD Session Host server to run applications, to save fi les, and to use network resources on that server. Users are enabled to access an RD Session Host server by using Remote Desktop Connection or by using RemoteApp.

As herein defined, A RemoteApp (also denoted remote application) is a mechanism, provided by a Remote Desktop Protocol (RDP), which allows a Remote Desktop Services connection to connect to a specific application rather than the entire desktop of the remote device. RemoteApp enables the user to make applications that are accessed remotely through Remote Desktop Services appear as if they are running on the local device. These applications are referred to as RemoteApp programs. Instead of being presented to the user in the desktop of the Remote Desktop Session Host (RD Session Host) server, the RemoteApp program is integrated with the desktop of the local device. The RemoteApp program runs in its own resizable window, can be dragged between multiple display screens (monitors), and has its own entry in the taskbar of the local device. The 10 15 20 25 30 RemoteApp program will not be listed in the Task Manager Processes List of the local device; it will be listed in the RemoteApp Server. If a user is running more than one RemoteApp program on the same RD Session Host server, the RemoteApp program will share the same Remote Desktop Services session.As herein de fi ned, A RemoteApp (also denoted remote application) is a mechanism, provided by a Remote Desktop Protocol (RDP), which allows a Remote Desktop Services connection to connect to a specific application rather than the entire desktop of the remote device. RemoteApp enables the user to make applications that are accessed remotely through Remote Desktop Services appear as if they are running on the local device. These applications are referred to as RemoteApp programs. Instead of being presented to the user in the desktop of the Remote Desktop Session Host (RD Session Host) server, the RemoteApp program is integrated with the desktop of the local device. The RemoteApp program runs in its own resizable window, can be dragged between multiple display screens (monitors), and has its own entry in the taskbar of the local device. The 10 15 20 25 30 RemoteApp program will not be listed in the Task Manager Processes List of the local device; it will be listed in the RemoteApp Server. If a user is running more than one RemoteApp program on the same RD Session Host server, the RemoteApp program will share the same Remote Desktop Services session.

As herein defined, a RemoteApp Window is the window of the Remote application, displayed at the local device.As herein de fi ned, a RemoteApp Window is the window of the Remote application, displayed at the local device.

Remote Desktop Protocol (RDP) is the protocol that provides access of a desktop from another computer over a network.Remote Desktop Protocol (RDP) is the protocol that provides access to a desktop from another computer over a network.

Fig 1 is a schematic diagram illustrating a remote device 11 and a local device 12. The remote device 12 is hosting a remote application 13. The remote application 13 is made available at the local device 12 by a remote session being established between the remote device 11 and the local device 12. A user interface 13a of the remote application 13 will thus appear at the local device 12. The user interface 13a may have a client area 13b and a border 13c.Fig 1 is a schematic diagram illustrating a remote device 11 and a local device 12. The remote device 12 is hosting a remote application 13. The remote application 13 is made available at the local device 12 by a remote session being established between the remote device 11 and the local device 12. A user interface 13a of the remote application 13 will thus appear at the local device 12. The user interface 13a may have a client area 13b and a border 13c.

According to the embodiments presented herein there is disclosed how the user interface of a RemoteApp (as run on the remote device) may be seamlessly integrated into a local application (as run on the local device), so that the user does not realize that he/ she is interacting with two applications (one local and one remote). The embodiments disclosed herein particularly relate to integrating a remote application into a local application. In order to obtain this there is provided an electronic device, a method performed by the electronic device, a computer program comprising code, for example in the form of a computer program product, that when run on a processing unit, causes the processing unit to perform the method.According to the embodiments presented herein there is disclosed how the user interface of a RemoteApp (as run on the remote device) may be seamlessly integrated into a local application (as run on the local device), so that the user does not realize that he / she is interacting with two applications (one local and one remote). The embodiments disclosed herein particularly relate to integrating a remote application into a local application. In order to obtain this there is provided an electronic device, a method performed by the electronic device, a computer program comprising code, for example in the form of a computer program product, that when run on a processing unit, causes the processing unit to perform the method.

Fig 2 schematically illustrates, in terms of a number of functional units, the components of an electronic device 20 according to an embodiment. A processing unit 21 is provided using any combination of one or more of a suitable central processing unit (CPU), multiprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), field programmable gate arrays (FPGA) etc., capable of executing software 10 15 20 25 30 instructions stored in a computer program product 31 (as in Fig 3), e.g. in the form of a storage medium 22. Thus the processing unit 21 is thereby arranged to execute methods as herein disclosed. The a storage medium 22 may also comprise persistent storage, which, for example, can be any single one or combination of magnetic memory, optical memory, solid state memory or even remotely mounted memory. The electronic device 20 may further comprise a communications interface 23 for communications with a local device 12 and/ or a remote device 11. According to one embodiment the electronic device 20 may be part of the local device 12 or the remote device 11.Fig 2 schematically illustrates, in terms of a number of functional units, the components of an electronic device 20 according to an embodiment. A processing unit 21 is provided using any combination of one or more of a suitable central processing unit (CPU), multiprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), field programmable gate arrays (FPGA) etc ., capable of executing software 10 15 20 25 30 instructions stored in a computer program product 31 (as in Fig 3), eg in the form of a storage medium 22. Thus the processing unit 21 is thereby arranged to execute methods as herein disclosed. The a storage medium 22 may also comprise persistent storage, which, for example, can be any single one or combination of magnetic memory, optical memory, solid state memory or even remotely mounted memory. The electronic device 20 may further comprise a communications interface 23 for communications with a local device 12 and / or a remote device 11. According to one embodiment the electronic device 20 may be part of the local device 12 or the remote device 11.

As such the communications interface 23 may comprise one or more transmitters and receivers, comprising analogue and digital components and a suitable number of antennas for wireless communications or ports for Wired communications. The processing unit 21 controls the general operation of the electronic device 20 e.g. by sending data and control signals to the communications interface 23 and the storage medium 22, by receiving data and reports from the communications interface 23, and by retrieving data and instructions from the storage medium 22. Other components, as well as the related functionality, of the electronic device 20 are omitted in order not to obscure the concepts presented herein.As such the communications interface 23 may comprise one or more transmitters and receivers, comprising analogue and digital components and a suitable number of antennas for wireless communications or ports for Wired communications. The processing unit 21 controls the general operation of the electronic device 20 e.g. by sending data and control signals to the communications interface 23 and the storage medium 22, by receiving data and reports from the communications interface 23, and by retrieving data and instructions from the storage medium 22. Other components, as well as the related functionality, of the electronic device 20 are omitted in order not to obscure the concepts presented herein.

Fig 3 is a flow chart illustrating embodiments of methods for integrating a remote application into a local application. The methods are performed by the processing unit 21. The methods are advantageously provided as computer programs 32. Fig 3 shows one example of a computer program product 31 comprising computer readable means 33. On this computer readable means 33, a computer program 32 can be stored, which computer program 32 can cause the processing unit 21 and thereto operatively coupled entities and devices, such as the communications interface 22 and the storage medium 23, to execute methods according to embodiments described herein.Fig 3 is a ow chart illustrating embodiments of methods for integrating a remote application into a local application. The methods are performed by the processing unit 21. The methods are advantageously provided as computer programs 32. Fig 3 shows one example of a computer program product 31 comprising computer readable means 33. On this computer readable means 33, a computer program 32 can be stored, which computer program 32 can cause the processing unit 21 and thereto operatively coupled entities and devices, such as the communications interface 22 and the storage medium 23, to execute methods according to embodiments described herein.

The computer program 32 and/ or computer program product 31 may thus provide means for performing any steps as herein disclosed.The computer program 32 and / or computer program product 31 may thus provide means for performing any steps as herein disclosed.

In the example of Fig 3, the computer program product 31 is illustrated as an optical disc, such as a CD (compact disc) or a DVD (digital versatile disc) or a 10 15 20 25 30 10 Blu-Ray disc. The computer program product 31 could also be embodied as a memory, such as a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), or an electrically erasable programmable read-only memory (EEPROM) and more particularly as a non-volatile storage medium of a device in an external memory such as a USB (Universal Serial Bus) memory. Thus, while the computer program 32 is here schematically shown as a track on the depicted optical disk, the computer program 32 can be stored in any way which is suitable for the computer program product 31.In the example of Fig 3, the computer program product 31 is illustrated as an optical disc, such as a CD (compact disc) or a DVD (digital versatile disc) or a 10 15 20 25 30 10 Blu-Ray disc. The computer program product 31 could also be embodied as a memory, such as a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), or an electrically erasable programmable read- only memory (EEPROM) and more particularly as a non-volatile storage medium of a device in an external memory such as a USB (Universal Serial Bus) memory. Thus, while the computer program 32 is here schematically shown as a track on the depicted optical disk, the computer program 32 can be stored in any way which is suitable for the computer program product 31.

Reference is now made to Fig 4 illustrating a computer-implemented method for integrating a remote application into a local application according to an embodiment.Reference is now made to Fig 4 illustrating a computer-implemented method for integrating a remote application into a local application according to an embodiment.

In general terms, the user interface of a remote application (i.e., an application of a remote device; RemoteApp) is seamlessly integrated into a local application (i.e., an application of a local device), so that the user does not realize that he/ she is interacting with two applications (one local and one remote). To overcome the issues noted above, the embodiments presented herein are based on creating a pre-generated session with the remote device and display the remote user interface in a hidden state until needed.In general terms, the user interface of a remote application (ie, an application of a remote device; RemoteApp) is seamlessly integrated into a local application (ie, an application of a local device), so that the user does not realize that he / she is interacting with two applications (one local and one remote). To overcome the issues noted above, the embodiments presented herein are based on creating a pre-generated session with the remote device and display the remote user interface in a hidden state until needed.

Particularly, a computer-implemented method for integrating a remote application into a local application comprises establishing (S102) a remote session from a local device to a remote device. The remote session involves initiating a remote application hosted by the remote device. The remote application is configured to launch a remote session user interface window.Particularly, a computer-implemented method for integrating a remote application into a local application comprises establishing (S102) a remote session from a local device to a remote device. The remote session involves initiating a remote application hosted by the remote device. The remote application is configured to launch a remote session user interface window.

The method comprises providing (S104) the remote session user interface window to a display screen of the local device. Providing the remote session user interface window to a display screen of the local device comprises displaying (S104a) the remote session user interface window in a hidden state at the local device. Providing the remote session user interface window to a display screen of the local device comprises copying (S104b) bitmap 10 15 20 25 11 information of the remote session user interface window into a local session user interface window upon launch of a local application hosted by the local device and configured to launch the local session user interface window.The method comprises providing (S104) the remote session user interface window to a display screen of the local device. Providing the remote session user interface window to a display screen of the local device comprises displaying (S104a) the remote session user interface window in a hidden state at the local device. Providing the remote session user interface window to a display screen of the local device comprises copying (S104b) bitmap 10 15 20 25 11 information of the remote session user interface window into a local session user interface window upon launch of a local application hosted by the local device and configured to launch the local session user interface window.

Such a method overcomes the latency issue and also enables the user (operator) to operate a user interface in real time (or near real time) that appears to be a local client with immediate response to input but is in fact a session in a remote process, despite the lack of delays or transitions etc. that would otherwise make the invocation of a second process evident to the operator. Such a method also enables real time inputs to be used and acted on by a control system without threatening stability of process critical functions running in a controller processor.Such a method overcomes the latency issue and also enables the user (operator) to operate a user interface in real time (or near real time) that appears to be a local client with immediate response to input but is in fact a session in a remote process, despite the lack of delays or transitions etc. that would otherwise make the invocation of a second process evident to the operator. Such a method also enables real time inputs to be used and acted upon by a control system without threatening stability of process critical functions running in a controller processor.

Fig 5 schematically illustrates integration of a remote application 13 into a local application 14. The local application 14 has a user interface 14a initially comprising an empty client area 14b and a border 14c. Upon having performed steps S102, S104, S1o4a, and S1o4b the client area 13b of the user interface 14a of the remote application 13 will thus seem to appear in the user interface 13a of the local application 13. Thus in contrast to Fig 1 the remote application is now integrated with a local application.Fig. 5 schematically illustrates integration of a remote application 13 into a local application 14. The local application 14 has a user interface 14a initially comprising an empty client area 14b and a border 14c. Upon having performed steps S102, S104, S1o4a, and S1o4b the client area 13b of the user interface 14a of the remote application 13 will thus seem to appear in the user interface 13a of the local application 13. Thus in contrast to Fig 1 the remote application is now integrated with a local application.

At least one of the remote application and the local application may be a real- time control application of a process control system.At least one of the remote application and the local application may be a real-time control application of a process control system.

In general terms, the herein disclosed computer-implemented methods for integrating a remote application into a local application may comprise a preparation phase, a startup phase, an integration phase, and a user interaction phase. Further details of these phases will now be disclosed in turn.In general terms, the herein disclosed computer-implemented methods for integrating a remote application into a local application may comprise a preparation phase, a startup phase, an integration phase, and a user interaction phase. Further details of these phases will now be disclosed in turn.

Preparation phase: In order to make the RemoteApp ready for integration in the local device, it may be prepared as follows.Preparation phase: In order to make the RemoteApp ready for integration in the local device, it may be prepared as follows.

The window style of the RemoteAppl may be changed such that the title bar is hidden so that only the client area is visible. The user interface of the 10 15 20 25 12 RemoteApp may thus contain only the client area. At least a frame part of the remote session user interface window may thus be excluded during the above defined step of copying.The window style of the RemoteAppl may be changed such that the title bar is hidden so that only the client area is visible. The user interface of the 10 15 20 25 12 RemoteApp may thus contain only the client area. At least a frame part of the remote session user interface window may thus be excluded during the above step of copying.

Some user menu actions (corresponding to, for example, the Microsoft Windows commands Alt+F4, Alt+Space, etc,) may be blocked in the RemoteApp. The method may thus comprise enabling user interaction with the remote session user interface window according to a proper subset of action associated with user interaction with the local session user interface window.Some user menu actions (corresponding to, for example, the Microsoft Windows commands Alt + F4, Alt + Space, etc,) may be blocked in the RemoteApp. The method may thus comprise enabling user interaction with the remote session user interface window according to a proper subset of action associated with user interaction with the local session user interface window.

A window property of the Remote App may be set so that it does not have an entry in the windows taskbar of the local device (e.g., for .Net Application, the ShowinTaskbar property may be set). The method may thus comprise preventing the remote application from being present in a windows taskbar of the local device.A window property of the Remote App may be set so that it does not have an entry in the windows taskbar of the local device (e.g., for .Net Application, the ShowinTaskbar property may be set). The method may thus comprise preventing the remote application from being present in a windows taskbar of the local device.

The RemoteApp may be launched with command line arguments that provide a unique ID (GUID) as a parameter. This ID may be set as the window caption in the application (which is hidden). Using this ID, the local application will be able to identify the window that it must integrate.The RemoteApp may be launched with command line arguments that provide a unique ID (GUID) as a parameter. This ID may be set as the window caption in the application (which is hidden). Using this ID, the local application will be able to identify the window that it must integrate.

The local application and the remote application may use the RDP framework to send and receive custom messages for various tasks like positioning, sizing, window state change, etc. Messages exchanged between the local device and the remote device may thus be remote desktop protocol (RDP) messages.The local application and the remote application may use the RDP framework to send and receive custom messages for various tasks like positioning, sizing, window state change, etc. Messages exchanged between the local device and the remote device may thus be remote desktop protocol (RDP ) messages.

Startup phase: When the local application is launched in the local device, it may need to use the RemoteApp window in its client area or it can wait until the user selects a menu/ button until it needs to display the RemoteApp window content. Thus, based on requirements, a service may be launched during application startup or during login to the local device. That is, the above step of displaying may be performed during initiation of the local application, or at user login to the local device. Further, the above step of 10 15 20 25 30 13 copying may be performed after user input to interact with the local session user interface window has been received by the local device.Startup phase: When the local application is launched in the local device, it may need to use the RemoteApp window in its client area or it can wait until the user selects a menu / button until it needs to display the RemoteApp window content. Thus, based on requirements, a service may be launched during application startup or during login to the local device. That is, the above step of displaying may be performed during initiation of the local application, or at user login to the local device. Further, the above step of 10 15 20 25 30 13 copying may be performed after user input to interact with the local session user interface window has been received by the local device.

This service will establish a remote session to the server (i.e., the remote device) and launch one or more remote applications which may be kept in a pool. The pool size may be configurable and may vary based on performance requirement. Hence the method may comprise establishing a further remote session from the local device to the remote device; and associating the remote session and the further remote session with a pool of remote sessions at the local device.This service will establish a remote session to the server (i.e., the remote device) and launch one or more remote applications which may be kept in a pool. The pool size may be con fi gurable and may vary based on performance requirement. Hence the method may comprise establishing a further remote session from the local device to the remote device; and associating the remote session and the further remote session with a pool of remote sessions at the local device.

The corresponding one or more RemoteApp windows may still be visible to the user if not provided in a hidden state. The remote session user interface window may in the hidden state be displayed as one pixel on the display screen of the local device. For example, the one pixel may be provided to a pair of random coordinates on the display screen of the local device. For example, the random coordinates may be located in a corner of the display screen of the local device. The size of the RemoteApp windows may for example thus be reduced to 1 pixel size and the RemoteApp windows may be placed at random coordinates along the corner of the display screens. In this way the user will not easily notice a single pixel spot on the display screen.The corresponding one or more RemoteApp windows may still be visible to the user if not provided in a hidden state. The remote session user interface window may in the hidden state be displayed as one pixel on the display screen of the local device. For example, the one pixel may be provided to a pair of random coordinates on the display screen of the local device. For example, the random coordinates may be located in a corner of the display screen of the local device. The size of the RemoteApp windows may for example thus be reduced to 1 pixel size and the RemoteApp windows may be placed at random coordinates along the corner of the display screens. In this way the user will not easily notice a single pixel spot on the display screen.

The RemoteApp window may not be hidden altogether since some terminal services have built-in optimization where a remote session will be disconnected if there is no RemoteApp displayed on the display screen of the local device.The RemoteApp window may not be hidden altogether since some terminal services have built-in optimization where a remote session will be disconnected if there is no RemoteApp displayed on the display screen of the local device.

When the local application needs the RemoteApp window, it may send a request to this local service with command line arguments that include the window size, window position etc. and in return receive a unique ID of the RemoteApp window that is already available in the local device. The local service then passes the custom message for the screen coordinates and the size to the RemoteApp. The RemoteApp window may then be positioned in the client area of the local application and then resized. Hence the local session user interface window may comprise a client area. The method may 10 15 20 25 30 14 further comprise, prior to the above disclosed of copying the bitmap information, providing the remote session user interface window such that it appears on top of the local session user interface window, and resizing and aligning the remote session user interface window to fit the client area. The user will now start seeing the RemoteApp window almost instantly inside the local application.When the local application needs the RemoteApp window, it may send a request to this local service with command line arguments that include the window size, window position etc. and in return receive a unique ID of the RemoteApp window that is already available in the local device. The local service then passes the custom message for the screen coordinates and the size to the RemoteApp. The RemoteApp window may then be positioned in the client area of the local application and then resized. Hence the local session user interface window may comprise a client area. The method may 10 15 20 25 30 14 further comprise, prior to the above disclosed of copying the bitmap information, providing the remote session user interface window such that it appears on top of the local session user interface window, and resizing and aligning the remote session user interface window to the client area. The user will now start seeing the RemoteApp window almost instantly inside the local application.

Integration phase: The RemoteApp is launched and its user interface may be available in the local device as a RemoteApp window. The RemoteApp window is visible with size and position as indicated in command line arguments. To the user the local application and the remote application will now appear as a single integrated application with the RemoteApp window occupying the entire client area of the local application, although there are in fact two windows positioned on top of each other. But the user may interact with the thus integrated application as he/ she would do normally with any application. The user thus feels that he/ she is working with a single application.Integration phase: The RemoteApp is launched and its user interface may be available in the local device as a RemoteApp window. The RemoteApp window is visible with size and position as indicated in command line arguments. To the user the local application and the remote application will now appear as a single integrated application with the RemoteApp window occupying the entire client area of the local application, although there are in fact two windows positioned on top of each other. But the user may interact with the thus integrated application as he / she would normally do with any application. The user thus feels that he / she is working with a single application.

User Interaction phase: The user interaction with the RemoteApp may be classified in to the following phases: setting focus, keystroke and mouse clicks, working with window, and closing local application window.User Interaction phase: The user interaction with the RemoteApp may be classified in to the following phases: setting focus, keystroke and mouse clicks, working with window, and closing local application window.

Setting Focus: Since the RemoteApp window is not embedded into the local application, whenever the user sets the focus to the local application, e.g., by clicking on the window caption, etc., the RemoteApp window may go out of focus and the user may see the empty client area of the local application. To prevent this, control, such as Winform control, may be embedded into the client area of the local application that will copy the graphics of the RemoteApp window (using its handle) and then paint that bitmap on its client area. The bitmap may be updated and invalidated in a timer function with an interval that can be configured. For user interfaces that are not graphic intensive, this interval may be set to about five paint cycles per second. Alternatively the local window may decide when it needs its client area to be refreshed (e.g., when the user interacts with the window by, for 10 15 20 25 30 15 example, switching focus, dragging the window, etc.), so that this does not consume unnecessary processor time/ memory resources. However, if need be, this refresh interval may be configured to be as low as 30ms so that the bitmap is always updated and painted in the client area. Even for a graphics intensive RemoteApp window (e.g., a live Trend graph), there may be 35 paint cycles per second (that is, the RemoteApp window may be copied to a bitmap and painted in the client area of the local application 35 times in a second), which is as fast as the human eye can notice. So even when the focus shifts between the local application and the RemoteApp window, the user may thereby always see the correct details on the local application without any flicker or shadow effects.Setting Focus: Since the RemoteApp window is not embedded into the local application, whenever the user sets the focus to the local application, eg, by clicking on the window caption, etc., the RemoteApp window may go out of focus and the user may see the empty client area of the local application. To prevent this, control, such as Winform control, may be embedded into the client area of the local application that will copy the graphics of the RemoteApp window (using its handle) and then paint that bitmap on its client area. The bitmap may be updated and invalidated in a timer function with an interval that can be con fi gured. For user interfaces that are not graphically intensive, this interval may be set to about paint ve paint cycles per second. Alternatively the local window may decide when it needs its client area to be refreshed (eg, when the user interacts with the window by, for 10 15 20 25 30 15 example, switching focus, dragging the window, etc.), so that this does not consume unnecessary processor time / memory resources. However, if need be, this refresh interval may be con fi gured to be as low as 30ms so that the bitmap is always updated and painted in the client area. Even for a graphics intensive RemoteApp window (eg, a live Trend graph), there may be 35 paint cycles per second (that is, the RemoteApp window may be copied to a bitmap and painted in the client area of the local application 35 times in a second), which is as fast as the human eye can notice. So even when the focus shifts between the local application and the RemoteApp window, the user may thereby always see the correct details on the local application without any or icker or shadow effects.

Keystrokes and mouse clicks: Whenever the user brings the mouse, a stylus, a finger on a touch-sensitive display screen, etc., into the client area of the local application, the RemoteApp window may be set to the foreground using, for example commands such as PInvokeAPI SetWindowPos. In this way the user may be able to interact with the RemoteApp when he/ she brings the mouse/stylus/finger inside the client area to, for example, select a field (e.g., a textbox, a button, etc.). Hence the method may comprise enabling user interaction with the remote session user interface window. The method may thus further comprise receiving user interaction positioning a cursor in the client area; and as a result thereof setting the remote session user interface window as a foreground element in the local device.Keystrokes and mouse clicks: Whenever the user brings the mouse, a stylus, a fi nger on a touch-sensitive display screen, etc., into the client area of the local application, the RemoteApp window may be set to the foreground using, for example commands such as PInvokeAPI SetWindowPos. In this way the user may be able to interact with the RemoteApp when he / she brings the mouse / stylus / fi nger inside the client area to, for example, select a (eld (e.g., a textbox, a button, etc.). Hence the method may comprise enabling user interaction with the remote session user interface window. The method may thus further comprise receiving user interaction positioning a cursor in the client area; and as a result setting the remote session user interface window as a foreground element in the local device.

Working with the window: Working with the window may comprise operations such as resizing, moving, minimizing, and/ or restoring the window. When the user moves the local application, or resizes it, the RemoteApp window may go behind the local application. But the user will still be able to see the static graphics of the RemoteApp window, which is painted in the client area of the local application. The local application may send custom RDP messages to the RemoteAppl for resize, position, minimize and restore actions as performed by the user. This may ensure that both the local application and the RemoteApp window work together in synchronization and the resulting user experience thus is as desired. 10 15 20 16 Closing the Local Application window: When the local application window is closed, it may send a custom message to close the RemoteApp window in the remote device. The method may thus further comprise terminating the local application; and as a result thereof terminating the remote session. The Remote Application may first hide its window and then proceeds with cleanup and subsequent termination of the application. As a result thereof the RemoteApp window appears to disappear (almost) at the same instant as the local application and thus the user does not realize that he/ she in fact has closed two applications at a time.Working with the window: Working with the window may comprise operations such as resizing, moving, minimizing, and / or restoring the window. When the user moves the local application, or resizes it, the RemoteApp window may go behind the local application. But the user will still be able to see the static graphics of the RemoteApp window, which is painted in the client area of the local application. The local application may send custom RDP messages to the RemoteAppl for resize, position, minimize and restore actions as performed by the user. This may ensure that both the local application and the RemoteApp window work together in synchronization and the resulting user experience thus is as desired. 10 15 20 16 Closing the Local Application window: When the local application window is closed, it may send a custom message to close the RemoteApp window in the remote device. The method may thus further comprise terminating the local application; and as a result thereof terminating the remote session. The Remote Application may first hide its window and then proceeds with cleanup and subsequent termination of the application. As a result thereof the RemoteApp window appears to disappear (almost) at the same instant as the local application and thus the user does not realize that he / she in fact has closed two applications at a time.

The RemoteApp may be accessed by different types of client devices. Fig 6 schematically illustrates an embodiment where a remote application 13 is accessed by several local devices 12, each of which is running a separate Operating system (iOS, Android, Windows, and Mac), and which local devices 12 each have established a remote session to the remote device 11.The RemoteApp may be accessed by different types of client devices. Fig 6 schematically illustrates an embodiment where a remote application 13 is accessed by several local devices 12, each of which is running a separate Operating system (iOS, Android, Windows, and Mac), and which local devices 12 each have established a remote session to the remote device 11.

The inventive concept has mainly been described above with reference to a few embodiments. However, as is readily appreciated by a person skilled in the art, other embodiments than the ones disclosed above are equally possible within the scope of the inventive concept, as defined by the appended patent claims.The inventive concept has mainly been described above with reference to a few embodiments. However, as is readily appreciated by a person skilled in the art, other embodiments than the ones disclosed above are equally possible within the scope of the inventive concept, as defined by the appended patent claims.

Claims (19)

10 15 20 25 30 17 CLAIMS10 15 20 25 30 17 CLAIMS 1. A computer-implemented method for integrating a remote application into a local application, comprising: establishing (S102) a remote session from a local device to a remote device, the remote session involving initiating a remote application hosted by the remote device, and the remote application being conflgured to launch a remote session user interface window; and providing (S104) the remote session user interface window to a display screen of the local device by: displaying (S104a) the remote session user interface window in a hidden state at the local device; and copying (S104b) bitmap information of the remote session user interface window into a local session user interface window upon launch of a local application hosted by the local device and conflgured to launch said local session user interface window.1. A computer-implemented method for integrating a remote application into a local application, comprising: establishing (S102) a remote session from a local device to a remote device, the remote session involving initiating a remote application hosted by the remote device, and the remote application being configured to launch a remote session user interface window; and providing (S104) the remote session user interface window to a display screen of the local device by: displaying (S104a) the remote session user interface window in a hidden state at the local device; and copying (S104b) bitmap information of the remote session user interface window into a local session user interface window upon launch of a local application hosted by the local device and configured to launch said local session user interface window. 2. The computer-implemented method according to claim 1, wherein at least a frame part of the remote session user interface window is excluded during said copying.The computer-implemented method according to claim 1, wherein at least a frame part of the remote session user interface window is excluded during said copying. 3. The computer-implemented method according to claim 1, further comprising: enabling user interaction with the remote session user interface window according to a proper subset of action associated with user interaction with the local session user interface window.The computer-implemented method according to claim 1, further comprising: enabling user interaction with the remote session user interface window according to a proper subset of action associated with user interaction with the local session user interface window. 4. The computer-implemented method according to claim 1, further comprising: preventing the remote application from being present in a windows taskbar of the local device.The computer-implemented method according to claim 1, further comprising: preventing the remote application from being present in a windows taskbar of the local device. 5. The computer-implemented method according to claim 1, wherein messages exchanged between the local device and the remote device are remote desktop protocol, RDP, messages. 10 15 20 25 18The computer-implemented method according to claim 1, wherein messages exchanged between the local device and the remote device are remote desktop protocol, RDP, messages. 10 15 20 25 18 6. The computer-implemented method according to claim 1, wherein said displaying is performed during one of initiation of the local application, and user login to the local device.The computer-implemented method according to claim 1, wherein said displaying is performed during one of initiation of the local application, and user login to the local device. 7. The computer-implemented method according to claim 1, wherein said copying is performed after user input to interact with the local session user interface window is received by the local device.The computer-implemented method according to claim 1, wherein said copying is performed after user input to interact with the local session user interface window is received by the local device. 8. The computer-implemented method according to claim 1, wherein the remote session user interface window in the hidden state is displayed as one pixel on the display screen of the local device.The computer-implemented method according to claim 1, wherein the remote session user interface window in the hidden state is displayed as one pixel on the display screen of the local device. 9. The computer-implemented method according to claim 8, wherein the one pixel is provided to a pair of random coordinates on the display screen of the local device. 1o.The computer-implemented method according to claim 8, wherein the one pixel is provided to a pair of random coordinates on the display screen of the local device. 1o. 10. The computer-implemented method according to claim 9, wherein the random coordinates are located in a corner of the display screen of the local device.The computer-implemented method according to claim 9, wherein the random coordinates are located in a corner of the display screen of the local device. 11. The computer-implemented method according to claim 1, further comprising: establishing a further remote session from the local device to the remote device; and associating said remote session and said further remote session with a pool of remote sessions at the local device.11. The computer-implemented method according to claim 1, further comprising: establishing a further remote session from the local device to the remote device; and associating said remote session and said further remote session with a pool of remote sessions at the local device. 12. The computer-implemented method according to claim 11, wherein the pool has a re-configurable size.12. The computer-implemented method according to claim 11, wherein the pool has a re-con fi gurable size. 13. The computer-implemented method according to claim 1, wherein the local session user interface window comprises a client area, the method further comprising, prior to copying the bitmap information: providing the remote session user interface window such that it appears on top of the local session user interface window, and resizing and aligning the remote session user interface window to fit the client area. 10 15 20 25 30 1913. The computer-implemented method according to claim 1, wherein the local session user interface window comprises a client area, the method further comprising, prior to copying the bitmap information: providing the remote session user interface window such that it appears on top of the local session user interface window, and resizing and aligning the remote session user interface window to the client area. 10 15 20 25 30 19 14. The computer-implemented method according to claim 1, further comprising: enabling user interaction with the remote session user interface window.14. The computer-implemented method according to claim 1, further comprising: enabling user interaction with the remote session user interface window. 15. The computer-implemented method according to claim 13 and 14, further comprising: receiving user interaction positioning a cursor in the client area; and as a result thereof: setting the remote session user interface window as a foreground element in the local device.15. The computer-implemented method according to claim 13 and 14, further comprising: receiving user interaction positioning a cursor in the client area; and as a result thereof: setting the remote session user interface window as a foreground element in the local device. 16. The computer-implemented method according to claim 1, further comprising: terminating the local application; and as a result thereof: terminating the remote session.16. The computer-implemented method according to claim 1, further comprising: terminating the local application; and as a result thereof: terminating the remote session. 17. The computer-implemented method according to claim 1, wherein at least one of the remote application and the local application is a real-time control application of a process control system.17. The computer-implemented method according to claim 1, wherein at least one of the remote application and the local application is a real-time control application of a process control system. 18. An electronic device for integrating a remote application into a local application, comprising a processing unit (21) and a non-transitory computer readable storage medium (23), said non-transitory computer readable storage medium comprising instructions executable by said processing unit whereby said electronic device is operative to: establish a remote session from a local device to a remote device, the remote session involving initiating a remote application hosted by the remote device, and the remote application being configured to launch a remote session user interface window; and provide the remote session user interface window to a display screen of the local device by: display the remote session user interface window in a hidden state at the local device; and 20 copy bitmap information of the remote session user interface window into a local session user interface window upon launch of a local application hosted by the local device and configured to launch said local session user interface window.18. An electronic device for integrating a remote application into a local application, comprising a processing unit (21) and a non-transitory computer readable storage medium (23), said non-transitory computer readable storage medium comprising instructions executable by said processing unit whereby said electronic device is operative to: establish a remote session from a local device to a remote device, the remote session involving initiating a remote application hosted by the remote device, and the remote application being con fi gured to launch a remote session user interface window; and provide the remote session user interface window to a display screen of the local device by: display the remote session user interface window in a hidden state at the local device; and 20 copy bitmap information of the remote session user interface window into a local session user interface window upon launch of a local application hosted by the local device and configured to launch said local session user interface window. 19. An arrangement comprising an electronic device according to claim 18 and a process control system, wherein at least one of the remote application and the local application is a real-time control application of the process control system.19. An arrangement comprising an electronic device according to claim 18 and a process control system, wherein at least one of the remote application and the local application is a real-time control application of the process control system.
SE1400155A 2014-03-21 2014-03-21 Integration of applications SE1400155A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
SE1400155A SE1400155A1 (en) 2014-03-21 2014-03-21 Integration of applications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE1400155A SE1400155A1 (en) 2014-03-21 2014-03-21 Integration of applications

Publications (1)

Publication Number Publication Date
SE1400155A1 true SE1400155A1 (en) 2014-03-25

Family

ID=50443098

Family Applications (1)

Application Number Title Priority Date Filing Date
SE1400155A SE1400155A1 (en) 2014-03-21 2014-03-21 Integration of applications

Country Status (1)

Country Link
SE (1) SE1400155A1 (en)

Similar Documents

Publication Publication Date Title
US9912724B2 (en) Moving objects of a remote desktop in unstable network environments
US10276131B2 (en) Systems and methods for remote mouse pointer management
US10715577B2 (en) Virtual desktop encoding based on user input behavior
CN104536802B (en) Method for realizing application calling and virtual machine
US9384526B2 (en) System and method for handling remote drawing commands
US10970101B2 (en) System and method for dynamically configuring virtual displays and virtual inputs for different remote sessions that each present content for a virtual machine
US9158434B2 (en) User interface virtualization profiles for accessing applications on remote devices
RU2646376C2 (en) User interface elements for multiple displays
US9454396B2 (en) Thin client computing device having touch screen interactive capability support
US10915284B2 (en) Multi-monitor full screen mode in a windowing environment
US20200310835A1 (en) Providing user interface (ui) elements having scrollable content in virtual machine sessions at reduced latency and related methods
WO2015067050A1 (en) Multi-window display method and device for browser
CN106233243B (en) Multi-architecture manager
EP3198409A1 (en) Partitioned application presentation across devices
CN111475259A (en) Applet loading method and device and electronic equipment
US20200310834A1 (en) Providing user interface (ui) elements in virtual machine sessions at reduced latency
EP3948521A1 (en) Providing user interface (ui) elements having an ordered hierarchy of graphical control elements in virtual machine sessions at reduced latency and related methods
KR20160020486A (en) Independent hit testing for touchpad manipulations and double-tap zooming
US11249771B2 (en) Terminal input invocation
CN108255547B (en) Application program control method and device
US20140372512A1 (en) Systems and methods for transmitting data
US11487559B2 (en) Dynamically switching between pointer modes
SE1400155A1 (en) Integration of applications
KR101491056B1 (en) Touch screen terminal apparatus and method for supporting mouse user interface in server based computing system of terminal environment
WO2016178681A1 (en) Pre-operating system content transmission

Legal Events

Date Code Title Description
NAV Patent application has lapsed