WO2022271189A1 - Remote access session management - Google Patents

Remote access session management Download PDF

Info

Publication number
WO2022271189A1
WO2022271189A1 PCT/US2021/039257 US2021039257W WO2022271189A1 WO 2022271189 A1 WO2022271189 A1 WO 2022271189A1 US 2021039257 W US2021039257 W US 2021039257W WO 2022271189 A1 WO2022271189 A1 WO 2022271189A1
Authority
WO
WIPO (PCT)
Prior art keywords
remote access
computing device
settings
computer
processor
Prior art date
Application number
PCT/US2021/039257
Other languages
French (fr)
Inventor
Alexandre Santos DA SILVA JR.
Daniel Henrique GREHS
Eduardo Fernandes JAEGER
Original Assignee
Hewlett-Packard Development Company, L.P.
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 Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to PCT/US2021/039257 priority Critical patent/WO2022271189A1/en
Publication of WO2022271189A1 publication Critical patent/WO2022271189A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/092Reinforcement learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/096Transfer learning

Definitions

  • Remote access tools can connect networked computing devices to other computing devices.
  • a remote access tool can allow a remote user to connect the endpoint device, such as a laptop, mobile device tablet, or a thin client, to a networked sender device, such as a workstation or server in the home office or other location, and allow the remote user to run computer programs and to access files on the sender device from the endpoint device.
  • User interfaces can be displayed from the sender device on the endpoint device, and inputs can be provided from the endpoint device to the sender device, which can also execute the computer program in a remote access session.
  • Figure 1 is a block diagram illustrating an example computing device to manage a remote session.
  • Figure 2 is a block diagram illustrating an example system of computing devices in a network including the example computing device of Figure 1 to manage the remote session.
  • Figure 3 is a block diagram illustrating another example computing device that can be used to implement the example computing devices of Figure 1.
  • Figure 4 is a block diagram illustrating an example method of the computing device of Figure 3. Detailed Description
  • Remote access tools can be used to couple an endpoint computing device to a sender device via a network to establish a remote access session in which a user of the endpoint device can access and run a computer program on the sender device via the endpoint device.
  • the remote access session can be run at relatively high quality with relatively little or no resource limitations affecting the performance of the computer program.
  • network and computing device limitations affect the performance of the computer program during the remote access session. For example, resource limitations can affect the video quality, audio quality, compute facilities, and other aspects of the remote session.
  • Some remote session access tools include adjustable advanced settings that allow a user to select items including video compression, audio quality, and text rendering, but such tools often involve fine tuning and repeatedly updating settings in order to attempt to improve the remote access session experience as conditions change. In many circumstances, manual attempts to adjust the settings of the remote access session are both frustrating and fruitless.
  • Some remote access tools attempt to address the system resource limitations by offering mechanisms that will generally apply modifications to the remote session such as by reducing quality of samples during periods of degradation of performance.
  • a remote access tool may reduce frame rate, or a number of video frames provided per second, in video quality during periods of performance degradation such as network contention. Such modifications are typically applied as a one-size-fits-all mechanism based on general considerations and without regard to other considerations of the remote access session.
  • the disclosure is directed to a remote session management and management tool that can receive information regarding the resources of the computing devices in the remote session and the network conditions and make corresponding adjustments to address resource limitations based on the computer program being run in the remote access session.
  • the remote access management tool can make corresponding adjustments based on the type of use of the computer program being run in the remote access session.
  • Data is collected regarding the computing devices and the network conditions of the remote access session. For instance, data can include a user profile of what types of tasks the user logged into the remote access session typically performs, the computational power and memory resources of the end point and sender computing devices, the current network environment conditions such as jitter latency and packet loss as well as historical network conditions.
  • Data can include the computer program, or type of application, that is being used in the remote session. Data can also include available adjustable settings of the remote access tool.
  • the collected data is used to adjust the settings of the remote access tool to provide a selected format of settings for the computer program in the remote access session.
  • a machine learning model is used to transform the collected data into settings applied to run the application in the remote access session.
  • Figure 1 illustrates an example computing device 100.
  • the example computing device 100 can be implemented as a processor 102 and a non- transitory computer readable medium 104 comprising instructions 106, such as processor-readable instructions.
  • the non-transitory computer readable medium 104 can include a memory device, or memory, to store the computer executable instructions 106.
  • the instructions 106 can cause the processor to perform a method such as to manage a remote access tool.
  • the computing device 100 can include hardware devices, programs, or hardware devices and programs.
  • the computer executable instructions 106 cause the processor 102 to receive data regarding an endpoint computing device and a sender computing device, the endpoint computing device accessing the sender computing device via a remote access tool to run an application on over a computer network in a remote access session at 108.
  • the computer executable instructions 106 cause the processor 102 to receive data regarding the computer network and the application at 110.
  • the computer executable instructions 106 also cause the processor 102 adjust settings of the remote access tool to apply the remote access session based on the data received regarding the endpoint computing device, the sender computing device, the computer network, and the application at 112.
  • Figure 2 illustrates an example system 200 that can be used to implement computing device 100 and a remote access session.
  • the system 200 includes an endpoint computing device 202 and a sender computing device 204 that are couplable together over a computer network 206.
  • the system 200 also includes a remote access tool 214 that can be used to establish a remote access session between the endpoint computing device 202 and the sender computing device 204 to run a computer application over the computer network 206.
  • the remote access tool 214 can adjust and vary parameters of the remote access session via a set of controls. In one example the controls can affect video quality, audio quality, compute speed, and network delivery.
  • the system 200 also includes a remote access management tool 220 that can adjust settings of the remote access tool 214 to apply the remote access session based on data received regarding the endpoint computing device 202, the sender computing device 204, the network 206, and the application applied in the remote access session.
  • a remote access management tool 220 can adjust settings of the remote access tool 214 to apply the remote access session based on data received regarding the endpoint computing device 202, the sender computing device 204, the network 206, and the application applied in the remote access session.
  • the endpoint computing device 202 can be implemented as a laptop computer, a desktop computer, a tablet computer, a smart phone, a consumer electronic device (such as video game controller or digital video recorder), a peripheral (such as printing device or a network storage device), a server, or a workstation.
  • the endpoint computing device 202 includes a processor and memory and can include additional components such as specialized processors including graphics processors or neural engines, display, touchscreen, a network connection 208, and input devices such as a keyboard.
  • the sender computing device 204 can be implemented as a laptop computer, a desktop computer, a tablet computer, a smart phone, a consumer electronic device (such as video game controller or digital video recorder), a peripheral (such as printing device or a network storage device), a server, or a workstation, but in one example is implemented as a server or a workstation, or computing device that provides as much or more computing performance as the endpoint computing device 202.
  • the sender computing device 204 includes a processor and memory and can include a network connection 210 and may include additional components such as display, touchscreen, and input devices such as a keyboard. Additionally, the sender computing device 204 includes a computer application, such as computer application 212, that can be stored in a memory device such as memory and run on the processor.
  • the computer application 212 is a graphics intensive program such as a video editing program, a vector graphics editor, or an interactive computer game in a gaming platform.
  • the network connections 206, 208 can be used to couple the computing devices 202, 204, respectively, to the computer network 206, which can be classified according to a wide variety of characteristics such as topology, connection method, and scale.
  • the computer network 206 is a collection of computing devices and possibly other devices interconnected by communications channels that facilitate communications and allows sharing of resources and information among interconnected devices, such as computing device 202, 204. Examples of computer networks include a local area network, a wide area network, an intranet, and the internet.
  • the remote access tool 214 can establish and run a remote access session on computing device 202, 204 over network 206 such as via network connections 208, 210.
  • the remote access tool 214 can be used to establish a remote access session between the endpoint and sender computing devices 202, 204 such as to run the computer application 212 on the computing devices 202, 204 over the network 206.
  • the remote access tool 214 in the example presented for illustration includes a sender component 214a that can be installed on the sender computing device 204, such as stored in the memory to be run on the processor with the network connection 210 of the sender computing device 204.
  • the sender component 214a can run the remote access session in the sender computing device 204 including provide for authentication of endpoint devices and to make the computer application 212 available in a remote access session with the endpoint device 202.
  • the remote access tool 214 can also include an endpoint component 214b that can be installed on the endpoint computing device 202, such as stored in the memory to be run on the processor with the network connection 208 of the endpoint computing device 202.
  • the endpoint component 214b run the remote access session on the endpoint computing device 202 including present a user interface on the endpoint computing device 202 to access the computer application 212 such as if the computer application was accessed locally.
  • multiple endpoint computing device can each apply an endpoint component of a remote access tool to establish and run remote access sessions with a sender device, such as a single sender device, to access the computer application.
  • the remote access tool 214 may include a group of adjustable settings that can be used to modify the remote access session experience.
  • adjustable settings can include a quality of service, QoS, system to modify an experience for real-time network application, for instance, if a remote access session is susceptible to issues including package loss, transmission latency, and jitter.
  • selectable codecs such as a lossy compression codec and lossless compression codec for audio or video compression.
  • Additional settings can include an image quality to bandwidth setting, text rendering quality settings, and adaptive image quality settings that can adjust updates-per-second.
  • a user may log on to the endpoint computing device 202 and access the endpoint component 214b to attempt to establish a remote access session with the sender computing device 204 or, more specifically, the computer application 212.
  • the endpoint component 214b will establish a network session over network 206 using network connections 208, 210 and access sender component 214a.
  • the sender component 214a may authenticate the user and provide a remote access session subject to user account permissions, such as permissions that may be stored in a user profile or other account data structure.
  • the remote access tool 214 can establish a remote access session between the endpoint component 214b and the sender component 214a.
  • the sender component 214a can make available the computer application 212 to run over the network 206 in the remote access session, and the endpoint component 214b can present a user interface to permit a user to interact and apply the computer application 212, as if the experience of running the computer application was tailored for and performed on the endpoint computing device 202, in a remote access session.
  • the remote access tool 214 can make available other computer applications on the sender device 204 in the remote access session, and a user can switch between or use multiple computer application on the sender computing device at a time as if the experience of running the computer applications were tailored for and performed on the endpoint computing device 202.
  • the remote access session can be terminated, such as if the user logs out or closes the endpoint component 214b, and the endpoint component 214b is no longer operably coupled to the sender component 214a in a manner to make the computer application 212 available in the endpoint device 202.
  • the remote access management tool 220 is operably coupled to the remote access tool 214.
  • the remote access management tool 220 can be a stand-alone product to interface with the remote access tool 214 or can be integrated into a program product including the remote access tool 214.
  • the remote access management tool 220 can include a component such as components operably coupled to the sender component 214b and the endpoint component 214b and can be operably coupled the remote access tool 214 via the computer network 206 or another computer network.
  • the remote access management tool 220 can be, or include a component, that is operably coupled to a plurality of remote access tools 214.
  • the remote access management tool 220 receives information about the environment, such as system 200 including the computer application 212, and makes adjustments to the settings of the remote access tool 214.
  • the remote access management tool 220 receive data endpoint computing device 202, the sender computing device 204, the computer network 206, and the computer application 212.
  • the remote access management tool 220 receives data regarding the computing resources of the computing devices 202, 204 such as processing power including data on clock speed, number of processing cores or processing nodes, graphical processing units or other specialty processing units, and levels of cache; memory such as an amount and speed of random access memory, size and speed of computer storage, network connection parameters of network connections 208, 210, monitor parameters, and other computing resources.
  • the remote access management tool 220 can receive information about the network 206 such as speed, bandwidth, jitter, latency, packet loss rate and other parameters of current network conditions Still further, the remote access management tool 220 can receive information regarding the computer application 212 including version number, status of updates, type of computer application (such as word processor, video editor, computer game, etc.) and type of functionality available for use during the remote access session. In some examples, the remote access management tool 220 can receive information regarding the remote access tool 214 including version number, status of updates, and settings available for adjustments. The remote access management tool 220 also receives information regarding the user of the endpoint computing device 202. For example, data regarding the user can be stored in a user profile that may be accessible from the user login or authentication information in the remote access tool 214. The information can include types of tasks the user is likely perform or has historically performed with the computer application 212 or on the endpoint computing device such as while using the computer application 212 as well as predefined settings, or user preferences, that may be included in the user profile.
  • the remote access management tool 220 can receive data regarding the endpoint computing device 202 and sender computing device 204 when the remote access session is established.
  • the data regarding the endpoint computing device and the sender computing device may remain constant during the remote access session, and the remote access management tool 220 can be implemented to not seek to update the data regarding the endpoint computing device 202 and sender computing device 204 during the remote access session or to update the data regarding the endpoint computing device 202 and sender computing device 204 if the endpoint computing device 202 and sender computing device 204 have changed during the remote access session.
  • the data regarding the computer application 212 may change during the remote access session.
  • the user may change the application, such as use another computer application or close the application 212, or the user may apply tools or applications to operate with the computer applications, which could affect performance or user experience.
  • the remote access management tool 220 can be implemented to update the data regarding the computer application 212, or the use of another computer application, and to re-adjust the settings of the remote access tool during the remote access session if the data regarding the computer application 212 has changed during the remote access session.
  • the remote access management tool can repeatedly, such as periodically, seek to receive data regarding the computer application 212 or be alerted to changes in use of the computer application 212 during the remote access session.
  • the data regarding the computer network 206 may change during the remote access session.
  • the remote access management tool 220 can be implemented to update the data regarding the computer network and to re-adjust the settings of the remote access tool during the remote access session if the data regarding the computer network has changed during the remote access session.
  • the remote access management tool can repeatedly, such as periodically, seek to receive data regarding the computer network, such as current network conditions or parameters, or be alerted to changes in the computer network during the remote access session.
  • the remote access management tool 220 can provide adjustments to the remote access tool 214 to apply the remote access session.
  • the remote access management tool 220 can determine what settings are modifiable on the remote access tool 214 and determine an appropriate format to deliver modifications to the settings to provide the adjustments of the remote access tool to apply the remote access session.
  • the remote access management tool 220 can deliver to the remote access tool 214 a usable format of settings values that can adjust the remote access tool 214.
  • the remote access tool 214 can apply the format of settings values and make adjustments to the remote access session.
  • the application 212 is a video editing program and the user profile indicates the use of the video editing program is for editing videos.
  • video editing is performed via high image and audio fidelity and synchronization.
  • the conditions and parameters of the network 206 is relatively strong, and the computing devices 202, 204, include relatively powerful computing resources.
  • the remote access management tool 220 can adjust the settings of the remote access tool 214 to deliver high audio and video fidelity such as via a lossless compression for graphics and text, such as an HP3 codec, and high quality, such as 44kHz, for audio settings. Because the computer application 212 is related to video editing, the remote access management tool 220 may cause the remote access tool to lower the frame rate if performance of the other aspects is to be enhanced.
  • the use of the video editing software as application 212 in system 200 may cause the remote access management tool 220 to modify the settings of the remote access tool 214 to prioritize a high-fidelity video image over frame per second delivered over the network 206. Also, if, for example, the computing devices 202, 24 are spaced-apart from each other over a wide geographical area as determined by the remote access management tool 220, the remote access management tool 220 can modify the settings of the remote access tool 214 to address common network bottlenecks such as packet loss, network latency, WiFi congestion, and other network issues.
  • the application 212 is a video editing program and the user profile indicates the use of the video editing program is for simply viewing videos that have been edited by other members of the team rather than for video editing.
  • viewing video editing may be performed via relatively lower image and audio fidelity and synchronization.
  • the conditions and parameters of the network 206 is relatively strong, and while the sender computing device 204 is includes relatively powerful computing resources, the endpoint computing device 202 may be a less powerful tablet.
  • the remote access management tool 220 can adjust the settings of the remote access tool 214 to deliver relatively lower audio and video fidelity such as via a lossy compression for graphics and text and relatively lower quality, for audio settings so the video presentation may be smoothly received on the endpoint device 202 without buffering.
  • the use of the video presentation software as application 212 in system 200 with limited computing resources may cause the remote access management tool 220 to modify the settings of the remote access tool 214 to prioritize a smooth video delivery over a high-fidelity video image on the network 206.
  • the remote access management tool 220 may seek to provide the remote access session with relatively low input latency and a relatively high frame rate.
  • the remote access management tool 220 can adjust the settings of the remote access tool 214 to deliver acceptable video quality at lower bit rates, such as via an H-264 codec, and 11 kHz, for audio settings.
  • the use of the computer game as application 212 in system 200 may cause the remote access management tool 220 to modify the settings of the remote access tool 214 to prioritize a higher frame per second delivery over high-fidelity video image over the network 206.
  • FIG. 3 illustrates an example computing device 300 that can be used to implement remote access management tool 220 for use with system 200.
  • computing device 300 includes a processor system having one or more processing units such as processor 302, and memory 304 accessible by the processor 302.
  • the processing units may include two or more processing cores on a chip or two or more processor chips.
  • the computing device 300 can also have one or more additional processing or specialized processors (not shown), such as a graphics processor for general-purpose computing on graphics processor units, to perform processing functions offloaded from the processor 302.
  • the memory 304 may be arranged in a hierarchy and may include one or more levels of cache.
  • memory 304 may be volatile (such as random access memory (RAM)), non-volatile (such as read only memory (ROM) or flash memory), or a combination of volatile and non-volatile memory.
  • RAM random access memory
  • ROM read only memory
  • flash memory any type of non-volatile memory.
  • Memory 304 is an example of computer storage media.
  • Computing device 300 may also have additional features or components.
  • computing device 300 may include additional computer storage 310.
  • Computer storage 310 may be removable or non-removable and can include magnetic disks, optical discs, and solid-state memory such as flash storage. Examples of removable storage can include universal serial bus (USB) flash drives, and memory cards. Accordingly, a propagating signal by itself does not qualify as storage media.
  • Memory 304 and computer storage 310 are examples of non-transitory computer readable media that may comprise instructions and data that when executed can control the processor 302 including causing the process to, for example, perform a process.
  • Computing device 300 may also include input and output connections, such as USB connections, to connect to various devices to receive inputs and provide outputs.
  • Computing device 300 may include, or may be couplable to, input devices and output devices.
  • Input devices may include a keyboard, pointing devices (such as a mouse and trackpad), stylus, touchscreen, and voice input device.
  • Output devices may include a display, speakers, and printing devices.
  • the illustrated computing device 300 includes a communication connection 312 that allows computing device 300 to communicate with other computing devices, peripheral devices, or applications.
  • Example communication connections include an Ethernet interface, a wireless interface, a bus interface, a storage area network interface, and a proprietary interface.
  • the communication connection 312 can be used to couple the computing device 300 to a computer network.
  • the hardware implementation can be used for computing devices 202, 204 as well.
  • Computing device 300 can include computer applications in the form of computer executable instructions and data stored in the memory 304 and the computer storage 310.
  • an operating system for the computing device 300 and user applications can be stored on the computer storage 310 to be loaded into memory 304 and execute or run on processor 302.
  • remote access management tool 320 can be an example implementation of the remote access management tool 220 of system 200.
  • the remote access management tool 320 can include a user profile and system mapping component 322, a processing configuration component 324, and a delivery format component 326.
  • the remote access management tool 320 and components 322, 324, 326 can be implemented as computer readable instructions on a non-transitory computer medium, such as computer storage 310 or memory 304 that can be executed to cause the processor 302 to adjust settings of a remote access tool.
  • the user profile and system mapping component 322 can cause the processor 302 to receive data or information into a data structure on a memory device such as memory 304 or storage 310 regarding an endpoint computing device 202 (including user profile information) and a sender computing device 204, the network 206 and the computer application 212 of system 200.
  • the processing configuration component 324 can cause the processor 302 to access the data or information from the data structure and determine a selected implementation of the remote access tool 214 of system 200.
  • the delivery format component 326 can cause the processor 302 to receive the selected implementation of the remote access tool and provide a format of settings to the remote access tool 214 to affect the settings of the remote access tool to apply the remote access session.
  • Figure 4 illustrates an example method 400 that may be implemented with the computing device 300 such as via instructions of the non-transitory computer readable medium 304 for the remote access management tool 320.
  • Data is received regarding a system executing a computer application in a remote access session with a remote access tool over a computer network at 402.
  • the data includes data regarding an endpoint computing device and a sender computing device, the computer network and the computer application.
  • data is received regarding the system 200 including information regarding the endpoint computing device 202 (including user profile information) and a sender computing device 204, the network 206 and the computer application 212 at 402, such as via the profile and system mapping component 322.
  • An implementation of the remote access tool for executing the computer application via a format of adjustable settings based on the received data regarding the system is determined at 404.
  • the remote access management tool 320 determines a selected implementation of the remote access tool 214 of system 200 at 404, such as via the processing configuration component 324.
  • the settings of the remote access tool are adjusted based on the format of adjustable settings at 406.
  • the remote access management tool 320 can provide a format of settings to the remote access tool 214 to apply the remote access session at 406, such as via the delivery format component 326, and adjust the remote access tool 214 accordingly.
  • Data regarding the system 200 can be collected in an automatic manner from interactions with the components of the system 200 and the remote access management tool 320.
  • information can regarding the hardware of the computing device 202, 204, such as model, vendor, processor model, clock speed, cache, graphical processor or specialty processor type and associated RAM, RAM size, clock speed, and network connections devices.
  • the data can be stored in a system profile, such as a computing device profile of a system profile in a persistent storage device on a computer network.
  • information regarding the application 212 and applications stored on the sender computing device 204 can be obtained from the operating system of the sender computing device 204.
  • the data can be stored in a system profile, such as a software profile of a system profile in a persistent storage device on a computer network.
  • Data regarding the network 206 can be collected, measured, or collect and measured, such as repeatedly measured during the remote access session, and stored.
  • Data can include network speed, channels and latency between the sender computing device 204 and the endpoint computing device 202.
  • the data can be stored in a system profile, such as a network profile of a system profile in a persistent storage device on a computer network.
  • a user profile can be created and stored with or associated with logon information in, for example, the remote access tool 214.
  • Data in the user profile can include type of use for application 212, time in active usage, time of application 212 as a background process, amount of processor utilization of application 212, amount of memory utilization of application 212, amount of network utilization of user with application 212.
  • the user profile can also include information as the frequency of application use, time of day or time of year of application use, geographical locations of application use, and network conditions during application use. Additionally, a user may offer information regarding system use or preferences that can be added to the user profile.
  • the remote access management tool 220 can present a list of questions to the user via an interface on endpoint component 214b to answer, and preferences based on the answers can be stored. Additionally, information regarding remote access tool 214, including the parameters, the available settings, format to adjust the settings of the remote access tool 214 can be collected and stored.
  • the user profile can be stored in as part of the system profile, such as in a persistent storage device on a computer network.
  • the information in the system profile can be collected and stored in a database. Historical information can be stored and updated. Information regarding current usage or system metrics can be measured and stored in a data structure as created by the remote access management tool 320, and then converted to stored historical information. The information regarding the system 200, as well as other systems, can be aggregated, and then prepared to be presented to and received by the remote access management tool 320 in a usable format, such as format for the remote access management tool 320 to store in a data structure in a memory device to access by the processing configuration component 324.
  • the data gathered and measured for system 200 and other systems can be aggregated and processed to determine settings for the remote access tool 214 to apply in a remote access session.
  • the data regarding the system 200 can be applied to a table look-up in a data structure or to calculations stored in a memory device to output setting for the remote access too 214 to apply in a remote accessing session.
  • the data regarding the system 200 can be applied in a machine learning model to output setting for the remote access too 214 to apply in a remote accessing session.
  • the machine learning model can benefit from a large data set of information collected from multiple systems including multiple networks, sender devices, and endpoint devices. Determining an implementation of the remote access tool at 404, in one example, can be based on data received from a plurality of systems.
  • An example of a machine learning model can apply a reinforcement learning model to determine settings of the remote access tool 214 with less guidance or development bias, and allow the machine learning model to create its own systems to determine settings outputs.
  • Reinforcement learning can be structured as an agent that will change and interact with the environment, while an outside interpreter rewards the agent and indicates a positive or negative result for settings with respect to a previous state of the settings.
  • the remote access session measured values of frames per second, image quality and audio quality can be regarded as goals in which the higher these values can be achieved, the more positive rewards are granted while lower values grant negative rewards.
  • the rewards could also be dynamically updated in a continuous learning environment according to the current user profile, machine profile and the current state of the system.
  • transfer learning Another example of a machine learning method is transfer learning.
  • the transfer learning technique allows for trained models to define a best effort configuration and enhance the user experience of the remote access session for a user based on previously mapped scenarios. For example, knowledge gained while learning to recognize a high-quality image (positive scenario) could be applied when trying to achieve a high-fidelity stream in a remote session.
  • the initial model could be leveraged as a base solution, and a centralized, cloud-based knowledge repository could be established with new and updated scenarios and problems that could be added to this cloud library and deployed to systems, such as operably coupled remote access management tools, with similar conditions.
  • This cloud repository could also be populated with more than one base for various known scenarios and environments.
  • a Long Short-Term Memory (LSTM) network can be established to consume the aggregated data or data created by various previously generated real-life or simulated scenarios that can be labeled and tied to ground truths crafted, deployed to reflect a selected remote access session configuration given the specific case and circumstances surrounding system at the time.
  • the LSTM model also benefits from a continued observation of the system 200, whereas sudden changes such as to internet connection quality, profile and usage patterns are more readily processed, while the past knowledge is still taken into account, and new configurations are put in place.
  • a clustering model can present the data set mapped by systems with the remote access sessions are categorized into different sets of configuration clusters that are tied to given scenarios, where, for example, some favor a higher frame rate per second and lower input latency while others favor image and audio quality. These generated clusters could then be turned into the configuration settings for the remote access tool 214.
  • aspects of the remote access management tool 320 can be installed on the endpoint computing device 202 to gather or receive information regarding the endpoint computing device 202, the user, and the network 206, installed on the sender computing device 204 to gather or receive information regarding the sender computing device 204, the network, the application 212, and the user, and installed in a cloud service to receive information from a plurality of systems, implement the machine learning model, and provide modified or recommended settings in a usable format to the remote access tool 214.

Abstract

A remote access session management tool receives data regarding an endpoint computing device and a sender computing device, the endpoint computing device accessing the sender computing device via a remote access tool to run an application on over a computer network in a remote access session. The remote access session management tool receives data regarding the network and the computer application. Settings of the remote access tool are adjusted to apply the remote access session based on the data received regarding the endpoint computing device, the sender computing device, the network, and the computer application.

Description

REMOTE ACCESS SESSION MANAGEMENT
Background
[0001] Remote access tools can connect networked computing devices to other computing devices. In one example, a remote access tool can allow a remote user to connect the endpoint device, such as a laptop, mobile device tablet, or a thin client, to a networked sender device, such as a workstation or server in the home office or other location, and allow the remote user to run computer programs and to access files on the sender device from the endpoint device. User interfaces can be displayed from the sender device on the endpoint device, and inputs can be provided from the endpoint device to the sender device, which can also execute the computer program in a remote access session.
Brief Description of the Drawings
[0002] Figure 1 is a block diagram illustrating an example computing device to manage a remote session.
[0003] Figure 2 is a block diagram illustrating an example system of computing devices in a network including the example computing device of Figure 1 to manage the remote session.
[0004] Figure 3 is a block diagram illustrating another example computing device that can be used to implement the example computing devices of Figure 1.
[0005] Figure 4 is a block diagram illustrating an example method of the computing device of Figure 3. Detailed Description
[0006] Remote access tools can be used to couple an endpoint computing device to a sender device via a network to establish a remote access session in which a user of the endpoint device can access and run a computer program on the sender device via the endpoint device. During circumstances in which the network is high speed, high bandwidth, and free from contention, and the endpoint device and sender device are high end computing devices suited for the computer program, the remote access session can be run at relatively high quality with relatively little or no resource limitations affecting the performance of the computer program. In other scenarios, however, network and computing device limitations affect the performance of the computer program during the remote access session. For example, resource limitations can affect the video quality, audio quality, compute facilities, and other aspects of the remote session.
[0007] Some remote session access tools include adjustable advanced settings that allow a user to select items including video compression, audio quality, and text rendering, but such tools often involve fine tuning and repeatedly updating settings in order to attempt to improve the remote access session experience as conditions change. In many circumstances, manual attempts to adjust the settings of the remote access session are both frustrating and fruitless. Some remote access tools attempt to address the system resource limitations by offering mechanisms that will generally apply modifications to the remote session such as by reducing quality of samples during periods of degradation of performance. In one example, a remote access tool may reduce frame rate, or a number of video frames provided per second, in video quality during periods of performance degradation such as network contention. Such modifications are typically applied as a one-size-fits-all mechanism based on general considerations and without regard to other considerations of the remote access session.
[0008] The disclosure is directed to a remote session management and management tool that can receive information regarding the resources of the computing devices in the remote session and the network conditions and make corresponding adjustments to address resource limitations based on the computer program being run in the remote access session. In other examples, the remote access management tool can make corresponding adjustments based on the type of use of the computer program being run in the remote access session. Data is collected regarding the computing devices and the network conditions of the remote access session. For instance, data can include a user profile of what types of tasks the user logged into the remote access session typically performs, the computational power and memory resources of the end point and sender computing devices, the current network environment conditions such as jitter latency and packet loss as well as historical network conditions. Data can include the computer program, or type of application, that is being used in the remote session. Data can also include available adjustable settings of the remote access tool. The collected data is used to adjust the settings of the remote access tool to provide a selected format of settings for the computer program in the remote access session. In one example, a machine learning model is used to transform the collected data into settings applied to run the application in the remote access session.
[0009] Figure 1 illustrates an example computing device 100. The example computing device 100 can be implemented as a processor 102 and a non- transitory computer readable medium 104 comprising instructions 106, such as processor-readable instructions. The non-transitory computer readable medium 104 can include a memory device, or memory, to store the computer executable instructions 106. When the instructions are executed, such as via the processor 102, the instructions 106 can cause the processor to perform a method such as to manage a remote access tool. The computing device 100 can include hardware devices, programs, or hardware devices and programs. In one example, the computer executable instructions 106 cause the processor 102 to receive data regarding an endpoint computing device and a sender computing device, the endpoint computing device accessing the sender computing device via a remote access tool to run an application on over a computer network in a remote access session at 108. The computer executable instructions 106 cause the processor 102 to receive data regarding the computer network and the application at 110. The computer executable instructions 106 also cause the processor 102 adjust settings of the remote access tool to apply the remote access session based on the data received regarding the endpoint computing device, the sender computing device, the computer network, and the application at 112.
[0010] Figure 2 illustrates an example system 200 that can be used to implement computing device 100 and a remote access session. In one example, the system 200 includes an endpoint computing device 202 and a sender computing device 204 that are couplable together over a computer network 206. The system 200 also includes a remote access tool 214 that can be used to establish a remote access session between the endpoint computing device 202 and the sender computing device 204 to run a computer application over the computer network 206. The remote access tool 214 can adjust and vary parameters of the remote access session via a set of controls. In one example the controls can affect video quality, audio quality, compute speed, and network delivery. The system 200 also includes a remote access management tool 220 that can adjust settings of the remote access tool 214 to apply the remote access session based on data received regarding the endpoint computing device 202, the sender computing device 204, the network 206, and the application applied in the remote access session.
[0011] For instance, the endpoint computing device 202 can be implemented as a laptop computer, a desktop computer, a tablet computer, a smart phone, a consumer electronic device (such as video game controller or digital video recorder), a peripheral (such as printing device or a network storage device), a server, or a workstation. In such cases, the endpoint computing device 202 includes a processor and memory and can include additional components such as specialized processors including graphics processors or neural engines, display, touchscreen, a network connection 208, and input devices such as a keyboard. The sender computing device 204 can be implemented as a laptop computer, a desktop computer, a tablet computer, a smart phone, a consumer electronic device (such as video game controller or digital video recorder), a peripheral (such as printing device or a network storage device), a server, or a workstation, but in one example is implemented as a server or a workstation, or computing device that provides as much or more computing performance as the endpoint computing device 202. The sender computing device 204 includes a processor and memory and can include a network connection 210 and may include additional components such as display, touchscreen, and input devices such as a keyboard. Additionally, the sender computing device 204 includes a computer application, such as computer application 212, that can be stored in a memory device such as memory and run on the processor. In one example presented for illustration, the computer application 212 is a graphics intensive program such as a video editing program, a vector graphics editor, or an interactive computer game in a gaming platform.
[0012] The network connections 206, 208 can be used to couple the computing devices 202, 204, respectively, to the computer network 206, which can be classified according to a wide variety of characteristics such as topology, connection method, and scale. The computer network 206 is a collection of computing devices and possibly other devices interconnected by communications channels that facilitate communications and allows sharing of resources and information among interconnected devices, such as computing device 202, 204. Examples of computer networks include a local area network, a wide area network, an intranet, and the internet.
[0013] The remote access tool 214 can establish and run a remote access session on computing device 202, 204 over network 206 such as via network connections 208, 210. For example, the remote access tool 214 can be used to establish a remote access session between the endpoint and sender computing devices 202, 204 such as to run the computer application 212 on the computing devices 202, 204 over the network 206. The remote access tool 214 in the example presented for illustration includes a sender component 214a that can be installed on the sender computing device 204, such as stored in the memory to be run on the processor with the network connection 210 of the sender computing device 204. In one example, the sender component 214a can run the remote access session in the sender computing device 204 including provide for authentication of endpoint devices and to make the computer application 212 available in a remote access session with the endpoint device 202. The remote access tool 214 can also include an endpoint component 214b that can be installed on the endpoint computing device 202, such as stored in the memory to be run on the processor with the network connection 208 of the endpoint computing device 202. In one example, the endpoint component 214b run the remote access session on the endpoint computing device 202 including present a user interface on the endpoint computing device 202 to access the computer application 212 such as if the computer application was accessed locally. In some examples, multiple endpoint computing device can each apply an endpoint component of a remote access tool to establish and run remote access sessions with a sender device, such as a single sender device, to access the computer application. The remote access tool 214 may include a group of adjustable settings that can be used to modify the remote access session experience. Examples of adjustable settings can include a quality of service, QoS, system to modify an experience for real-time network application, for instance, if a remote access session is susceptible to issues including package loss, transmission latency, and jitter. Another example includes selectable codecs, such as a lossy compression codec and lossless compression codec for audio or video compression. Additional settings can include an image quality to bandwidth setting, text rendering quality settings, and adaptive image quality settings that can adjust updates-per-second.
[0014] In one example, a user may log on to the endpoint computing device 202 and access the endpoint component 214b to attempt to establish a remote access session with the sender computing device 204 or, more specifically, the computer application 212. The endpoint component 214b will establish a network session over network 206 using network connections 208, 210 and access sender component 214a. The sender component 214a may authenticate the user and provide a remote access session subject to user account permissions, such as permissions that may be stored in a user profile or other account data structure. The remote access tool 214 can establish a remote access session between the endpoint component 214b and the sender component 214a. For instance, the sender component 214a can make available the computer application 212 to run over the network 206 in the remote access session, and the endpoint component 214b can present a user interface to permit a user to interact and apply the computer application 212, as if the experience of running the computer application was tailored for and performed on the endpoint computing device 202, in a remote access session. In one example, the remote access tool 214 can make available other computer applications on the sender device 204 in the remote access session, and a user can switch between or use multiple computer application on the sender computing device at a time as if the experience of running the computer applications were tailored for and performed on the endpoint computing device 202. The remote access session can be terminated, such as if the user logs out or closes the endpoint component 214b, and the endpoint component 214b is no longer operably coupled to the sender component 214a in a manner to make the computer application 212 available in the endpoint device 202.
[0015] The remote access management tool 220 is operably coupled to the remote access tool 214. For instance, the remote access management tool 220 can be a stand-alone product to interface with the remote access tool 214 or can be integrated into a program product including the remote access tool 214. In some examples, the remote access management tool 220 can include a component such as components operably coupled to the sender component 214b and the endpoint component 214b and can be operably coupled the remote access tool 214 via the computer network 206 or another computer network. In some examples, the remote access management tool 220 can be, or include a component, that is operably coupled to a plurality of remote access tools 214.
[0016] The remote access management tool 220 receives information about the environment, such as system 200 including the computer application 212, and makes adjustments to the settings of the remote access tool 214. In one example, the remote access management tool 220 receive data endpoint computing device 202, the sender computing device 204, the computer network 206, and the computer application 212. For example, the remote access management tool 220 receives data regarding the computing resources of the computing devices 202, 204 such as processing power including data on clock speed, number of processing cores or processing nodes, graphical processing units or other specialty processing units, and levels of cache; memory such as an amount and speed of random access memory, size and speed of computer storage, network connection parameters of network connections 208, 210, monitor parameters, and other computing resources. Additionally, the remote access management tool 220 can receive information about the network 206 such as speed, bandwidth, jitter, latency, packet loss rate and other parameters of current network conditions Still further, the remote access management tool 220 can receive information regarding the computer application 212 including version number, status of updates, type of computer application (such as word processor, video editor, computer game, etc.) and type of functionality available for use during the remote access session. In some examples, the remote access management tool 220 can receive information regarding the remote access tool 214 including version number, status of updates, and settings available for adjustments. The remote access management tool 220 also receives information regarding the user of the endpoint computing device 202. For example, data regarding the user can be stored in a user profile that may be accessible from the user login or authentication information in the remote access tool 214. The information can include types of tasks the user is likely perform or has historically performed with the computer application 212 or on the endpoint computing device such as while using the computer application 212 as well as predefined settings, or user preferences, that may be included in the user profile.
[0017] In one example, the remote access management tool 220 can receive data regarding the endpoint computing device 202 and sender computing device 204 when the remote access session is established. In some examples, the data regarding the endpoint computing device and the sender computing device may remain constant during the remote access session, and the remote access management tool 220 can be implemented to not seek to update the data regarding the endpoint computing device 202 and sender computing device 204 during the remote access session or to update the data regarding the endpoint computing device 202 and sender computing device 204 if the endpoint computing device 202 and sender computing device 204 have changed during the remote access session. In many examples, the data regarding the computer application 212 may change during the remote access session. For example, the user may change the application, such as use another computer application or close the application 212, or the user may apply tools or applications to operate with the computer applications, which could affect performance or user experience. The remote access management tool 220 can be implemented to update the data regarding the computer application 212, or the use of another computer application, and to re-adjust the settings of the remote access tool during the remote access session if the data regarding the computer application 212 has changed during the remote access session. For example, the remote access management tool can repeatedly, such as periodically, seek to receive data regarding the computer application 212 or be alerted to changes in use of the computer application 212 during the remote access session. Similarly, in many examples, the data regarding the computer network 206 may change during the remote access session. For example, speed, bandwidth, jitter, latency, packet loss rate and other parameters may vary throughout the remote access session. The remote access management tool 220 can be implemented to update the data regarding the computer network and to re-adjust the settings of the remote access tool during the remote access session if the data regarding the computer network has changed during the remote access session. For example, the remote access management tool can repeatedly, such as periodically, seek to receive data regarding the computer network, such as current network conditions or parameters, or be alerted to changes in the computer network during the remote access session.
[0018] Based on the data received regarding the endpoint computing device 202, the sender computing device 204, the network 206, and the computer application 206, including information from the user profile, the remote access management tool 220 can provide adjustments to the remote access tool 214 to apply the remote access session. The remote access management tool 220 can determine what settings are modifiable on the remote access tool 214 and determine an appropriate format to deliver modifications to the settings to provide the adjustments of the remote access tool to apply the remote access session. The remote access management tool 220 can deliver to the remote access tool 214 a usable format of settings values that can adjust the remote access tool 214. The remote access tool 214 can apply the format of settings values and make adjustments to the remote access session.
[0019] In one example scenario of system 200, the application 212 is a video editing program and the user profile indicates the use of the video editing program is for editing videos. In one configuration, video editing is performed via high image and audio fidelity and synchronization. The conditions and parameters of the network 206 is relatively strong, and the computing devices 202, 204, include relatively powerful computing resources. The remote access management tool 220 can adjust the settings of the remote access tool 214 to deliver high audio and video fidelity such as via a lossless compression for graphics and text, such as an HP3 codec, and high quality, such as 44kHz, for audio settings. Because the computer application 212 is related to video editing, the remote access management tool 220 may cause the remote access tool to lower the frame rate if performance of the other aspects is to be enhanced. In this example scenario, the use of the video editing software as application 212 in system 200 may cause the remote access management tool 220 to modify the settings of the remote access tool 214 to prioritize a high-fidelity video image over frame per second delivered over the network 206. Also, if, for example, the computing devices 202, 24 are spaced-apart from each other over a wide geographical area as determined by the remote access management tool 220, the remote access management tool 220 can modify the settings of the remote access tool 214 to address common network bottlenecks such as packet loss, network latency, WiFi congestion, and other network issues.
[0020] In another example scenario of system 200, the application 212 is a video editing program and the user profile indicates the use of the video editing program is for simply viewing videos that have been edited by other members of the team rather than for video editing. In one configuration, viewing video editing may be performed via relatively lower image and audio fidelity and synchronization. The conditions and parameters of the network 206 is relatively strong, and while the sender computing device 204 is includes relatively powerful computing resources, the endpoint computing device 202 may be a less powerful tablet. The remote access management tool 220 can adjust the settings of the remote access tool 214 to deliver relatively lower audio and video fidelity such as via a lossy compression for graphics and text and relatively lower quality, for audio settings so the video presentation may be smoothly received on the endpoint device 202 without buffering. In this example scenario, the use of the video presentation software as application 212 in system 200 with limited computing resources may cause the remote access management tool 220 to modify the settings of the remote access tool 214 to prioritize a smooth video delivery over a high-fidelity video image on the network 206.
[0021] In still another example of system 200, the user has switched competed use of the video editing and program, and the application 212 is now an interactive computer game, and the user profile indicates the user is a gaming aficionado. In such circumstance, the remote access management tool 220 may seek to provide the remote access session with relatively low input latency and a relatively high frame rate. The remote access management tool 220 can adjust the settings of the remote access tool 214 to deliver acceptable video quality at lower bit rates, such as via an H-264 codec, and 11 kHz, for audio settings. In this example scenario, the use of the computer game as application 212 in system 200 may cause the remote access management tool 220 to modify the settings of the remote access tool 214 to prioritize a higher frame per second delivery over high-fidelity video image over the network 206.
[0022] Figure 3 illustrates an example computing device 300 that can be used to implement remote access management tool 220 for use with system 200. In an example hardware implementation, computing device 300 includes a processor system having one or more processing units such as processor 302, and memory 304 accessible by the processor 302. By way of example, the processing units may include two or more processing cores on a chip or two or more processor chips. In some examples, the computing device 300 can also have one or more additional processing or specialized processors (not shown), such as a graphics processor for general-purpose computing on graphics processor units, to perform processing functions offloaded from the processor 302. The memory 304 may be arranged in a hierarchy and may include one or more levels of cache. Depending on the configuration and type of computing device, memory 304 may be volatile (such as random access memory (RAM)), non-volatile (such as read only memory (ROM) or flash memory), or a combination of volatile and non-volatile memory. Memory 304 is an example of computer storage media.
[0023] Computing device 300 may also have additional features or components. For example, computing device 300 may include additional computer storage 310. Computer storage 310 may be removable or non-removable and can include magnetic disks, optical discs, and solid-state memory such as flash storage. Examples of removable storage can include universal serial bus (USB) flash drives, and memory cards. Accordingly, a propagating signal by itself does not qualify as storage media. Memory 304 and computer storage 310 are examples of non-transitory computer readable media that may comprise instructions and data that when executed can control the processor 302 including causing the process to, for example, perform a process.
[0024] Computing device 300 may also include input and output connections, such as USB connections, to connect to various devices to receive inputs and provide outputs. Computing device 300 may include, or may be couplable to, input devices and output devices. Input devices may include a keyboard, pointing devices (such as a mouse and trackpad), stylus, touchscreen, and voice input device. Output devices may include a display, speakers, and printing devices. The illustrated computing device 300 includes a communication connection 312 that allows computing device 300 to communicate with other computing devices, peripheral devices, or applications. Example communication connections include an Ethernet interface, a wireless interface, a bus interface, a storage area network interface, and a proprietary interface. In one example, the communication connection 312 can be used to couple the computing device 300 to a computer network. The hardware implementation can be used for computing devices 202, 204 as well.
[0025] Computing device 300 can include computer applications in the form of computer executable instructions and data stored in the memory 304 and the computer storage 310. For example, an operating system for the computing device 300 and user applications can be stored on the computer storage 310 to be loaded into memory 304 and execute or run on processor 302. In the example computing device 300, remote access management tool 320 can be an example implementation of the remote access management tool 220 of system 200. The remote access management tool 320 can include a user profile and system mapping component 322, a processing configuration component 324, and a delivery format component 326. In one example, the remote access management tool 320 and components 322, 324, 326 can be implemented as computer readable instructions on a non-transitory computer medium, such as computer storage 310 or memory 304 that can be executed to cause the processor 302 to adjust settings of a remote access tool. For example, the user profile and system mapping component 322 can cause the processor 302 to receive data or information into a data structure on a memory device such as memory 304 or storage 310 regarding an endpoint computing device 202 (including user profile information) and a sender computing device 204, the network 206 and the computer application 212 of system 200. The processing configuration component 324 can cause the processor 302 to access the data or information from the data structure and determine a selected implementation of the remote access tool 214 of system 200. The delivery format component 326 can cause the processor 302 to receive the selected implementation of the remote access tool and provide a format of settings to the remote access tool 214 to affect the settings of the remote access tool to apply the remote access session.
[0026] Figure 4 illustrates an example method 400 that may be implemented with the computing device 300 such as via instructions of the non-transitory computer readable medium 304 for the remote access management tool 320. Data is received regarding a system executing a computer application in a remote access session with a remote access tool over a computer network at 402. The data includes data regarding an endpoint computing device and a sender computing device, the computer network and the computer application. For example, data is received regarding the system 200 including information regarding the endpoint computing device 202 (including user profile information) and a sender computing device 204, the network 206 and the computer application 212 at 402, such as via the profile and system mapping component 322. An implementation of the remote access tool for executing the computer application via a format of adjustable settings based on the received data regarding the system is determined at 404. For example, the remote access management tool 320 determines a selected implementation of the remote access tool 214 of system 200 at 404, such as via the processing configuration component 324. The settings of the remote access tool are adjusted based on the format of adjustable settings at 406. For example, the remote access management tool 320 can provide a format of settings to the remote access tool 214 to apply the remote access session at 406, such as via the delivery format component 326, and adjust the remote access tool 214 accordingly.
[0027] Data regarding the system 200 can be collected in an automatic manner from interactions with the components of the system 200 and the remote access management tool 320. For example, information can regarding the hardware of the computing device 202, 204, such as model, vendor, processor model, clock speed, cache, graphical processor or specialty processor type and associated RAM, RAM size, clock speed, and network connections devices. The data can be stored in a system profile, such as a computing device profile of a system profile in a persistent storage device on a computer network. Additionally, information regarding the application 212 and applications stored on the sender computing device 204 can be obtained from the operating system of the sender computing device 204. The data can be stored in a system profile, such as a software profile of a system profile in a persistent storage device on a computer network. Data regarding the network 206 can be collected, measured, or collect and measured, such as repeatedly measured during the remote access session, and stored. Data can include network speed, channels and latency between the sender computing device 204 and the endpoint computing device 202. The data can be stored in a system profile, such as a network profile of a system profile in a persistent storage device on a computer network. A user profile can be created and stored with or associated with logon information in, for example, the remote access tool 214. Data in the user profile can include type of use for application 212, time in active usage, time of application 212 as a background process, amount of processor utilization of application 212, amount of memory utilization of application 212, amount of network utilization of user with application 212. The user profile can also include information as the frequency of application use, time of day or time of year of application use, geographical locations of application use, and network conditions during application use. Additionally, a user may offer information regarding system use or preferences that can be added to the user profile. The remote access management tool 220 can present a list of questions to the user via an interface on endpoint component 214b to answer, and preferences based on the answers can be stored. Additionally, information regarding remote access tool 214, including the parameters, the available settings, format to adjust the settings of the remote access tool 214 can be collected and stored. The user profile can be stored in as part of the system profile, such as in a persistent storage device on a computer network.
[0028] The information in the system profile can be collected and stored in a database. Historical information can be stored and updated. Information regarding current usage or system metrics can be measured and stored in a data structure as created by the remote access management tool 320, and then converted to stored historical information. The information regarding the system 200, as well as other systems, can be aggregated, and then prepared to be presented to and received by the remote access management tool 320 in a usable format, such as format for the remote access management tool 320 to store in a data structure in a memory device to access by the processing configuration component 324.
[0029] The data gathered and measured for system 200 and other systems can be aggregated and processed to determine settings for the remote access tool 214 to apply in a remote access session. In one example, the data regarding the system 200 can be applied to a table look-up in a data structure or to calculations stored in a memory device to output setting for the remote access too 214 to apply in a remote accessing session. In another example, the data regarding the system 200 can be applied in a machine learning model to output setting for the remote access too 214 to apply in a remote accessing session. The machine learning model can benefit from a large data set of information collected from multiple systems including multiple networks, sender devices, and endpoint devices. Determining an implementation of the remote access tool at 404, in one example, can be based on data received from a plurality of systems.
[0030] An example of a machine learning model can apply a reinforcement learning model to determine settings of the remote access tool 214 with less guidance or development bias, and allow the machine learning model to create its own systems to determine settings outputs. Reinforcement learning can be structured as an agent that will change and interact with the environment, while an outside interpreter rewards the agent and indicates a positive or negative result for settings with respect to a previous state of the settings. The remote access session measured values of frames per second, image quality and audio quality can be regarded as goals in which the higher these values can be achieved, the more positive rewards are granted while lower values grant negative rewards. The rewards could also be dynamically updated in a continuous learning environment according to the current user profile, machine profile and the current state of the system.
[0031] Another example of a machine learning method is transfer learning. The transfer learning technique allows for trained models to define a best effort configuration and enhance the user experience of the remote access session for a user based on previously mapped scenarios. For example, knowledge gained while learning to recognize a high-quality image (positive scenario) could be applied when trying to achieve a high-fidelity stream in a remote session.
The initial model could be leveraged as a base solution, and a centralized, cloud-based knowledge repository could be established with new and updated scenarios and problems that could be added to this cloud library and deployed to systems, such as operably coupled remote access management tools, with similar conditions. This cloud repository could also be populated with more than one base for various known scenarios and environments.
[0032] Also, a Long Short-Term Memory (LSTM) network can be established to consume the aggregated data or data created by various previously generated real-life or simulated scenarios that can be labeled and tied to ground truths crafted, deployed to reflect a selected remote access session configuration given the specific case and circumstances surrounding system at the time. The LSTM model also benefits from a continued observation of the system 200, whereas sudden changes such as to internet connection quality, profile and usage patterns are more readily processed, while the past knowledge is still taken into account, and new configurations are put in place.
[0033] Additionally, a clustering model can present the data set mapped by systems with the remote access sessions are categorized into different sets of configuration clusters that are tied to given scenarios, where, for example, some favor a higher frame rate per second and lower input latency while others favor image and audio quality. These generated clusters could then be turned into the configuration settings for the remote access tool 214.
[0034] In one example, aspects of the remote access management tool 320 can be installed on the endpoint computing device 202 to gather or receive information regarding the endpoint computing device 202, the user, and the network 206, installed on the sender computing device 204 to gather or receive information regarding the sender computing device 204, the network, the application 212, and the user, and installed in a cloud service to receive information from a plurality of systems, implement the machine learning model, and provide modified or recommended settings in a usable format to the remote access tool 214.
[0035] Although specific examples have been illustrated and described herein, a variety of alternate and/or equivalent implementations may be substituted for the specific examples shown and described without departing from the scope of the present disclosure. This application is intended to cover any adaptations or variations of the specific examples discussed herein. Therefore, it is intended that this disclosure be limited only by the claims and the equivalents thereof.

Claims

1. A non-transitory computer readable medium comprising instructions when executed cause a processor of a computing device to: receive data regarding an endpoint computing device and a sender computing device, the endpoint computing device accessing the sender computing via a remote access tool to run a computer application over a computer network in a remote access session; receive data regarding the computer network and the computer application; and adjust settings of the remote access tool to apply the remote access session based on the data received regarding the endpoint computing device, the sender computing device, the computer network, and the computer application.
2. The non-transitory computer readable medium of claim 1 wherein the instructions that cause the processor to adjust the settings include instructions to cause the processor to adjust video frame rate.
3. The non-transitory computer readable medium of claim 1 further comprising instructions that cause the processor including receive data from a user profile of a user of the endpoint computing device.
4. The non-transitory computer readable medium of claim 1 wherein the data is received from a system profile.
5. The non-transitory computer readable medium of claim 1 wherein the received data is applied to a machine learning model to provide a set of settings to implement instructions to cause the processor to adjust the settings.
6. The non-transitory computer readable medium of claim 1 comprising instructions to cause the processor to receive data regarding another computer application run in the remote access session and to re-adjust settings of the remote access tool based on the another computer application.
7. The non-transitory computer readable medium of claim 1 wherein the instructions to cause the processor to receive data regarding the network include instructions to cause the processor to repeatedly receive data regarding current network conditions.
8. A method, comprising: collecting data regarding an endpoint computing device and an sender computing device and a computer network into a data structure, the endpoint computing device accessing the sender computing device via a remote access tool over the computer network in a remote access session; collecting data into the data structure regarding a computer application used in the remote access session; and adjusting settings of the remote access tool applied to the remote access session via a processor based on the data collected regarding the computer application, the endpoint computing device, the sender computing device, and the computer network.
9. The method of claim 8 wherein the data regarding the endpoint computing device and the sender computing device includes data regarding the computing resources of the endpoint computing device and the sender computing device and data regarding the computer network includes data regarding parameters of current network conditions of the computer network.
10. The method of claim 8 wherein collecting data regarding the endpoint computing device includes collecting a user profile.
11. The method of claim 10 wherein the user profile includes tasks performed with the computer application and user preferences.
12. The method of claim 8 further comprising present the remote access tool with a settings values to adjust the settings.
13. A computing device, comprising: a processor; and a memory including instructions when executed cause the processor to: receive data regarding a system executing a computer application in a remote access session with a remote access tool over a computer network, the data including data regarding an endpoint computing device and a sender computing device, the computer network and the computer application; determine an implementation of the remote access tool for executing the computer application via a format of adjustable settings based on the received data regarding the system; and adjusting the settings of the remote access tool based on the format of adjustable settings.
14. The computing device of claim 13 wherein the instruction when executed cause the processor to determine an implementation of the remote access tool is based on data received from a plurality of systems.
15. The computing device of claim 14 wherein data regarding a plurality of systems is collected and aggregated.
PCT/US2021/039257 2021-06-25 2021-06-25 Remote access session management WO2022271189A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2021/039257 WO2022271189A1 (en) 2021-06-25 2021-06-25 Remote access session management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2021/039257 WO2022271189A1 (en) 2021-06-25 2021-06-25 Remote access session management

Publications (1)

Publication Number Publication Date
WO2022271189A1 true WO2022271189A1 (en) 2022-12-29

Family

ID=84545904

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2021/039257 WO2022271189A1 (en) 2021-06-25 2021-06-25 Remote access session management

Country Status (1)

Country Link
WO (1) WO2022271189A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060031407A1 (en) * 2002-12-13 2006-02-09 Steve Dispensa System and method for remote network access
US20070143837A1 (en) * 2005-12-15 2007-06-21 Lehman Brothers Inc. System and method for secure remote desktop access
US20140115487A1 (en) * 2012-10-24 2014-04-24 Beta Brain, Inc. Remotely accessing a computer system
US20180063251A1 (en) * 2016-08-26 2018-03-01 Reliance Jio Infocomm Limited System and method for remotely accessing a computing device
WO2018208365A1 (en) * 2017-05-12 2018-11-15 Google Llc Methods and systems for presenting image data for detected regions of interest

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060031407A1 (en) * 2002-12-13 2006-02-09 Steve Dispensa System and method for remote network access
US20070143837A1 (en) * 2005-12-15 2007-06-21 Lehman Brothers Inc. System and method for secure remote desktop access
US20140115487A1 (en) * 2012-10-24 2014-04-24 Beta Brain, Inc. Remotely accessing a computer system
US20180063251A1 (en) * 2016-08-26 2018-03-01 Reliance Jio Infocomm Limited System and method for remotely accessing a computing device
WO2018208365A1 (en) * 2017-05-12 2018-11-15 Google Llc Methods and systems for presenting image data for detected regions of interest

Similar Documents

Publication Publication Date Title
EP3905069A2 (en) Resource recommendation method and apparatus, parameter determination method and apparatus, device, and medium
US9166881B1 (en) Methods and apparatus for adaptive bandwidth-based communication management
US10440082B1 (en) Adjusting parameter settings for bitrate selection algorithms
US11221940B2 (en) Performance engineering
CA3083652C (en) Network capacity planning systems and methods
Liubogoshchev et al. Adaptive cloud-based extended reality: Modeling and optimization
CN103713935A (en) Method and device for managing Hadoop cluster resources in online manner
JP7275314B2 (en) Smart capacity for workload routing
US20230254383A1 (en) Operations control of network services
Cai et al. Cognitive resource optimization for the decomposed cloud gaming platform
CN114389959B (en) Network congestion control method, device, electronic equipment and storage medium
US8725868B2 (en) Interactive service management
US10944631B1 (en) Network request and file transfer prioritization based on traffic elasticity
CN113543160B (en) 5G slice resource allocation method, device, computing equipment and computer storage medium
WO2022271189A1 (en) Remote access session management
US8547996B2 (en) Self learning performance optimized data transfer via one or several communication channels between systems
CN114423049A (en) Perception prediction method and device, electronic equipment and storage medium
CN113326397A (en) Service data processing method and device
WO2023022717A1 (en) Adjustments of remote access applications based on workloads
US20220408315A1 (en) Systems and methods for adjusting subscriber policy
Petrou et al. Weighted Load Balancing Mechanisms over Streaming Big Data for Online Machine Learning.
US9571401B2 (en) Technique for projecting network load in a communication network
US20160063412A1 (en) Method for distributed goal-driven programming
Bura et al. Structured Reinforcement Learning for Media Streaming at the Wireless Edge
US11102535B1 (en) Adjusting parameter settings for bitrate selection algorithms

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: 21947353

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE