US11042714B2 - Synchronizing the language of a remote session with a client's language - Google Patents
Synchronizing the language of a remote session with a client's language Download PDFInfo
- Publication number
- US11042714B2 US11042714B2 US16/438,275 US201916438275A US11042714B2 US 11042714 B2 US11042714 B2 US 11042714B2 US 201916438275 A US201916438275 A US 201916438275A US 11042714 B2 US11042714 B2 US 11042714B2
- Authority
- US
- United States
- Prior art keywords
- client
- server
- language
- remote
- remote session
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/58—Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/263—Language identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/454—Multi-language systems; Localisation; Internationalisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H04L67/42—
Definitions
- FIG. 1 and the following description provide a general overview of a virtual desktop infrastructure (VDI) environment 100 .
- VDI environment should be construed as encompassing any client-server environment in which a remote display protocol (e.g, Microsoft's Remote Desktop Protocol (RDP), Citrix's HDX, VMWare's PCoIP, the Remote Frame Buffer (RFB) protocol, etc.) is employed to enable the client to access a desktop or application that executes on the server.
- VDI environment 100 is depicted as including a number of client terminals 102 a - 102 n (referenced generally herein as client(s) 102 ) in communication with a server 104 via a network 106 .
- Server 104 can be configured to support a remote session (e.g., a remote desktop session or remote application session) in which a user at a client 102 can remotely access applications and data at the server 104 from the client 102 .
- a remote session e.g.,
- Client terminal 102 may represent any computing device that is capable of implementing a remote display protocol for the purpose of accessing a remote session on server 104 .
- client terminal 102 could be a computing device that runs a version of Windows, Linux, iOS, Android, or another operating system and that includes a VDI client such as the Windows Remote Desktop Connection application, the VMWare Horizon client, the Citrix Workspace app, a VNC client, etc.
- Server 104 may represent any number of computing devices or computing components (e.g., a cloud architecture) that can function as a server for the purpose of hosting remote sessions that users of client 102 may access via a remote display protocol.
- server 104 could be a physical or virtual machine that executes a version of the Windows Server operating system that includes Remote Desktop Services or a physical or virtual machine that executes a version of the Linux operating system that includes a VNC server.
- Client 102 may initiate a remote session with server 104 by sending a request for remote access and credentials (e.g., login name and password) to server 104 . If server 104 accepts the credentials from client 102 , then server 104 may establish a remote session, which allows a user at client 102 to access applications and data at server 104 . During the remote session, server 104 sends display data to client 102 over network 106 using a remote display protocol, which may include display data of a desktop and/or one or more applications running on server 104 . The desktop may include, for example, icons corresponding to different applications that can be launched on server 104 . The display data allows client 102 to locally display the desktop and/or applications running on server 104 .
- a remote display protocol which may include display data of a desktop and/or one or more applications running on server 104 .
- the desktop may include, for example, icons corresponding to different applications that can be launched on server 104 .
- the display data allows client 102 to locally display the desktop and
- client 102 may send user commands (e.g., inputted via a mouse or keyboard at client 102 ) to server 104 over network 106 using a remote display protocol.
- Server 104 may process the user commands from client 102 similar to user commands received from an input device that is local to server 104 . For example, if the user commands include mouse movements, then server 104 may move a pointer on the desktop running on server 104 accordingly.
- server 104 sends the updated display data to client 102 .
- Client 102 locally displays the updated display data so that the user at client 102 can view changes at server 104 in response to the user commands.
- remote session will be used to represent both full remote desktops and remote applications.
- a user may use VDI techniques to access a full desktop that is hosted on server 104 or a single application (e.g., a Windows RemoteApp) that is executed on server 104 .
- a full desktop is accessed, server 104 would send display data for the full desktop.
- server 104 would send the display data pertaining to the remote application's interface.
- the server's language settings i.e., the language settings of the operating system that provides the remote session
- the server's language settings will be applied to the desktop or application that is presented to the user. For example, if server 104 is configured to launch desktops that are in English, the content of the desktop will be in English even if the user has configured client 102 to employ a different language.
- most applications are configured to employ the same language as the operating system, and therefore, a remote application that is executed in an English remote session will be in English even if client 102 employs a different language.
- server's language is generally not problematic if all users are located in the same region (e.g., when all users speak the same language).
- users of server 104 are located around the world and speak different languages, the use of the server's language for remote sessions is problematic. For example, if a Japanese speaking user of client 102 accesses a remote session on server 104 , and server 104 is configured to provide English desktops or remote applications, the Japanese speaking user may be unable to read the content of the desktop or remote application.
- One way to address this problem is to configure a different server for each possible language the users may speak. For example, an organization may provision one server to provide English remote sessions, one server to provide Spanish remote sessions, one server to provide French remote sessions, etc. This approach, however, complicates the establishment and maintenance of a VDI environment. Furthermore, it can be difficult to know which server a particular user should access.
- Another possible way to address this problem is to enable the user to set the language of the remote session after logging in. Yet, this approach is equally undesirable because it requires provisioning the server with all possible languages and also requires that the users know how to change the language. Since many users do not know how to do this, particularly when they would be attempting to do so using an interface that may be in a language that they do not understand, the administrator would routinely be required to assist. Also, this may only be an option when the user is accessing a remote desktop since remote applications typically do not provide the ability to change the language.
- the keyboard likely would not match the new language.
- the settings that define the language in which the desktop or application content is displayed are different from those that define the keyboard layout (i.e., the mappings between keys and characters). Therefore, if the user were able to change the language settings to cause a desktop to be in Spanish rather than English, the keyboard on the server would likely still be set to an English layout. If the user has configured client 102 with a Spanish keyboard layout, he or she would be frustrated when keyboard input is interpreted on the server based on the English layout.
- a client-side synchronizer can be configured to detect when a client establishes a remote session on a server, whether to access a remote desktop or a remote application.
- client-side synchronizer detects the establishment of a remote session, it can access client-side language settings to gather language information and send it to a server-side synchronizer.
- the server-side synchronizer can then employ the language information to modify server-side language settings applicable the remote session so that the remote desktop or remote application will employ language settings that match the client-side language settings. In this way, the remote desktop or remote application will be in the language that the user expects even if the server's predefined language settings do not match user's language.
- the present invention is implemented as a method for synchronizing a language of a remote session with a client's language.
- a client-side synchronizer that executes on a client can detect that the client has established a remote session on a server.
- the client-side synchronizer can access client-side language settings to retrieve language information and then send the language information to a server-side synchronizer.
- the server-side synchronizer can generate one or more requests to modify server-side language settings to match the language information that was retrieved from the client-side language settings.
- the present invention is implemented as computer storage media storing computer executable instructions which when executed in a VDI environment implement a method for synchronizing a language of a remote session with a client's language.
- a client-side synchronizer can access client-side language settings to retrieve language information.
- the language information defines a current locale of the client.
- the client-side synchronizer sends the language information to a server-side synchronizer that executes on the server.
- the server-side synchronizer accesses server-side language settings to determine a current locale of the remote session.
- the server-side synchronizer compares the current locale of the remote session to the current locale of the client that is defined in the language information. Upon determining that the current locale of the remote session does not match the current locale of the client, the server-side synchronizer modifies the server-side language settings to cause the current locale of the remote session to match the current locale of the client.
- the present invention is implemented as computer storage media storing computer executable instructions which when executed implement a client-side synchronizer and a server-side synchronizer.
- the client-side synchronizer executes on a client and is configured to detect when a remote session is initiated on a server. In response to detecting that a remote session has been initiated, the client-side synchronizer accesses client-side language settings to retrieve and send language information to the server-side synchronizer.
- the server-side synchronizer is configured to receive the language information from the client-side synchronizer and, in response, modify server-side language settings to match the language information.
- FIG. 1 illustrates an example VDI environment in which the present invention can be implemented
- FIG. 2 illustrates components of a client and a server that can be employed to implement the techniques of the present invention
- FIG. 2A illustrates an example configuration of client-side and server-side synchronizers
- FIGS. 3A-3D illustrate how the present invention can synchronize the language of a remote session with a client's language
- FIG. 4 illustrates how each remote session on a server 104 can have its locale synchronized to the corresponding client's locale
- FIG. 5 provides a flowchart of an example method for synchronizing the language of a remote session with a client's language.
- language settings should be construed as encompassing settings that define a language in which desktop and/or application content is displayed (“display language”) and/or settings that define a layout of a keyboard (“keyboard layout”). These language settings would typically be maintained by the operating system.
- “Client-side language settings” encompass settings that define the display language and/or keyboard layout(s) on the client.
- “Server-side language settings” encompass settings that define the display language and/or keyboard layout(s) on the server.
- language information should be construed as information that is derived from language settings and that is exchanged between a client and a server for the purpose of synchronizing the language of a remote session with a client's language.
- the term “locale” should be given its customary computer software meaning, namely a set of one or more parameters that define a user's language and/or region.
- FIG. 2 illustrates a VDI environment 200 in which client 102 and server 104 include components for implementing the techniques of the present invention.
- client 102 can include a client-side synchronizer 210 while server 104 can include a server-side synchronizer 250 .
- Client 102 is also shown as including a VDI client 220 which can represent any of the many different VDI clients including those identified in the background.
- VDI client 220 provides the functionality for establishing a remote session on server 104 .
- server 104 would include the various components necessary to provide remote sessions to clients 102 (e.g., server 104 could be provisioned with Remote Desktop Services or a VNC server).
- Client 102 and server 104 are also shown as including settings data structures 230 and 260 respectively.
- Settings data structures 230 and 260 are intended to generally represent the data structures/locations where settings, including client-side language settings 230 a and server-side language settings 260 a , are maintained on client 102 and server 104 .
- settings data structures 230 and 260 could represent the registry in a Windows environment or environment variables in a Linux environment. It is noted that the operating system on client 102 need not match the operating system on server 104 . For example, client 102 could run a version of Linux while server 104 could run a version of Windows, and vice versa.
- FIG. 2A illustrates an example of how client-side synchronizer 210 and server-side synchronizer 250 can be configured in some embodiments of the present invention. It is noted, however, that the functionality that client-side synchronizer 210 and server-side synchronizer 250 should not be constrained to any particular set or arrangement of components.
- Client-side synchronizer 210 can include a virtual channel client 210 a that functions as a virtual channel endpoint on client 102 when VDI client 220 has established a remote session on server 104 .
- Virtual channel client 210 a can also be configured to interface with VDI client 220 for the purpose of detecting when VDI client 220 is establishing or has established a remote session.
- virtual channel client 210 a could register with VDI client 220 or the operating system to be notified whenever VDI client 220 establishes a remote session.
- virtual channel client 210 a could listen for the creation of remote sessions (e.g., by watching for TCP connections that target a particular server-side port).
- virtual channel client 210 a can use any available technique for detecting when VDI client 220 establishes a remote session.
- Client-side synchronizer 210 can also include a client-side language service 210 b that is configured to access client-side language settings 230 a that are stored in settings data structure 230 .
- Server-side synchronizer 250 includes a notifier 250 a that can function as a corresponding virtual channel endpoint on server 104 .
- virtual channel client 210 a can be configured to communicate with notifier 250 a via a virtual channel when VDI client 220 has established a remote display protocol connection with server 104 .
- These communications can include the sharing of language information as will be described in detail below.
- Server-side synchronizer 250 also includes a server-side language service 250 b that is configured to receive language information from notifier 250 a and, in response, modify server-side language settings 260 a in settings data structures 260 .
- FIGS. 3A-3D illustrate how client-side synchronizer 210 and server-side synchronizer 250 can cause the language of a remote session on server 104 to be synchronized with the language of client 102 .
- VDI client 220 has established a remote session in step 1 a .
- VDI client 220 can establish a remote display protocol connection 300 by which the remote session is accessed.
- VDI client 220 could interface with one or more other servers (e.g., an authentication server, a connection broker, etc.) as part of establishing the remote session.
- the remote session could be in the form of a remote desktop or a remote application.
- virtual channel client 210 a can detect the establishment of the remote session. As indicated above, virtual channel client 210 a can accomplish this in a number of different ways and may do so in response to or as part of the establishment of the remote session. In many embodiments, client-side synchronizer 210 will be an independent component from VDI client 220 (i.e., client-side synchronizer 210 and VDI client 220 will be provided by different entities), and therefore, virtual channel client 210 a can employ whatever technique is available for detecting when a particular VDI client 220 has established a remote session.
- virtual channel client 210 a could be a DLL that has registered as a virtual channel client with the Windows operating system (e.g., by adding a subkey to the appropriate Terminal Server Client registry entries) so that it will be loaded during the Remote Desktop Services initialization process.
- step 2 a which can be performed in response to detecting the establishment of the remote session, virtual channel client 210 a can send one or more requests 301 to client-side language service 210 b .
- Requests 301 can instruct client-side language service 210 b to retrieve client 102 's language information.
- Client-side language service 210 b can respond, in step 2 b , by generating one or more requests 302 to obtain client 102 's language information from client-side language settings 230 a in settings data structures 230 .
- the form of requests 302 can vary based on client 102 's operating system as well as the specific types of language information that are being requested. For example, if client 102 is running a version of Windows, client-side language service 210 b could invoke the GetLocalelnfoEx function to retrieve the current user's “locale” (e.g., by specifying the LOCALE_NAME_USER_DEFAULT constant for the 1pLocaleName input parameter and the LOCALE_USER_DEFAULT constant for the LCType input parameter).
- client-side language service 210 b could invoke the GetLocalelnfoEx function to retrieve the current user's “locale” (e.g., by specifying the LOCALE_NAME_USER_DEFAULT constant for the 1pLocaleName input parameter and the LOCALE_USER_DEFAULT constant for the LCType input parameter).
- the GetLocalelnfoEx function may return a locale ID (LCID) that defines the current locale (e.g., EN-US for a US English locale or ES-AR for an Argentina Spanish locale).
- LCID locale ID
- client-side language service 210 b could read the value of the LANG environment variable (e.g., using a suitable function such as localectl) which typically defines client 102 's locale using a similar LCID.
- client-side language service 210 b could employ the Windows-based SystemParameterslnfoA function to retrieve the language identifier for the keyboard layout (e.g., 00000409 for a US English layout) or the Linux-based localectl (or similar function) to read the available keyboard layouts (e.g., by specifying the list-x11-keymap-layouts option).
- Windows-based SystemParameterslnfoA function to retrieve the language identifier for the keyboard layout (e.g., 00000409 for a US English layout) or the Linux-based localectl (or similar function) to read the available keyboard layouts (e.g., by specifying the list-x11-keymap-layouts option).
- virtual channel client 210 a and notifier 250 a can also establish a virtual channel 300 a within remote display protocol connection 300 .
- virtual channel client 210 a could initialize virtual channel 300 a by registering a name of the virtual channel, opening the virtual channel and providing appropriate callback functions that VDI client 220 can call when events relevant to the virtual channel occur.
- Notifier 250 a could perform similar tasks on server 104 .
- virtual channel 300 a established, virtual channel client 210 a and notifier 250 a will be able to communicate language information via remote display protocol connection 300 .
- language information 310 is shown as being provided to virtual channel client 210 a in response to requests 301 / 302 .
- language information 310 can be extracted from client-side language settings 230 a and can include client 102 's current locale (e.g., in the form of a LCID), one or more keyboard layouts (e.g., in the form of a language identifier) and possibly other types of location information such as hot key definitions for toggling between different keyboard layouts.
- virtual channel client 210 a can send language information 310 to notifier 250 a via virtual channel 300 a (e.g., by calling the VirtualChannelWrite function or similar function).
- FIG. 3D shows that notifier 250 a receives language information 310 via virtual channel 300 a (e.g., by calling the WTSVirtualChannelRead function) and passes it to server-side language service 250 b in step 5 a .
- server-side language service 250 b generates one or more requests 303 for modifying server-side language settings 260 a based on the received language information 310 .
- Requests 303 are shown as including language information 310 and/or modified language information 310 a to represent that server-side language service 250 b may modify language information 310 as part of step 5 b .
- server-side language service 250 b can convert language information 310 as necessary and employ modified language information 310 a in requests 303 .
- the form of requests 303 can vary based on server 104 's operating system as well as the specific server-side language settings 260 a that are being modified. For example, if server 104 is running Windows, server-side language service 250 b could call the SetLocalelnfoA function to set server 104 's locale to match a locale defined in location information 310 . If server 104 is running Linux, server-side language service 250 b could modify the value of the LANG environment variable to match a locale defined in location information 310 .
- server-side language service 250 b could employ the SystemParameterslnfoA (or similar) function in Windows or the setxkbmap (or similar) function in Linux to set a keyboard layout on server 104 matching any keyboard layout defined in language information 310 .
- server-side language service 250 b could generate requests similar to request 302 to determine what the server-side language settings 260 a are prior to generating requests 303 .
- server-side language service 250 b could retrieve the current (or default) locale and keyboard layout(s) on server 104 and compare them to language information 310 . If there is not a mismatch, server-side language service 250 b can forego generating requests 303 or may only generate requests that are necessary to synchronize any mismatched language setting (e.g., by changing a mismatched locale but not changing any keyboard layout). Accordingly, step 5 b should be construed as encompassing the retrieval of server-side language settings 260 a for the purpose of comparing them to language information 310 to determine which if any of the server-side language settings 260 a should be modified.
- server-side synchronizer 250 could prompt the user to confirm whether the server-side language settings should be synchronized with the client-side language settings.
- notifier 250 a could generate a dialog that is presented to the user via the remote session.
- virtual channel client 210 a (or another component of client-side synchronizer 210 ) could prompt the user locally to confirm whether this synchronization should be performed.
- this prompt could be presented to the user after server-side language service 250 b determines that a mismatch exists between server-side language settings 260 a and language information 310 .
- FIG. 4 represents one primary benefit of the techniques of the present invention. It is assumed that the client-side language settings 230 a on client terminals 102 a - 102 c define an English locale, a French locale and a Spanish locale respectively (e.g., the users are located in the US, France and Spain respectively).
- Server 104 which can represent a single VDI server, is shown as hosting a remote session for each of client terminals 102 a - 102 c .
- the server-side language settings 260 a applicable to each of these remote sessions can be automatically synchronized with the client-side language settings 230 a of the corresponding client so that a remote desktop or application is presented to the user in the user's language.
- Each user's keyboard input to the remote desktop or application can also be as expected due to the synchronization of any keyboard layouts. Importantly, this synchronization occurs even though the administrator likely would have defined a specific locale and keyboard layout to be used for any remote desktop or application server 104 hosts. In other words, the present invention eliminates the need to provision a different VDI server or publish a different desktop for each possible locale
- FIG. 5 provides a flowchart of an example method 500 for synchronizing the language of a remote session with a client's language.
- Method 500 can be implemented in VDI environment 200 by client-side synchronizer 210 and server-side synchronizer 250 .
- Method 500 includes an act 501 of detecting, by a client-side synchronizer that executes on a client, that the client has established a remote session on a server. For example, virtual channel client 210 a could be notified when VDI client 220 establishes remote display protocol connection 300 .
- Method 500 includes an act 502 of, in response to detecting that the client has established the remote session on the server, accessing, by the client-side synchronizer, client-side language settings to retrieve language information.
- virtual channel client 210 a could send requests 301 to client-side language service 210 b to cause client-side language service 210 b to generate requests 302 for retrieving location information from client-side language settings 230 a.
- Method 500 includes an act 503 of sending the language information to a server-side synchronizer.
- virtual channel client 210 a can send language information 310 to notifier 250 a via virtual channel 300 a.
- Method 500 includes an act 504 of generating, by the server-side synchronizer, one or more requests to modify server-side language settings to match the language information that was retrieved from the client-side language settings.
- server-side language service 250 b can generate requests 303 to cause server-side language settings 260 a to be modified to match language information 310 .
- Embodiments of the present invention may comprise or utilize special purpose or general-purpose computers including computer hardware, such as, for example, one or more processors and system memory.
- Embodiments within the scope of the present invention also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures.
- Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer system.
- Computer-readable media is categorized into two disjoint categories: computer storage media and transmission media.
- Computer storage media devices include RAM, ROM, EEPROM, CD-ROM, solid state drives (“SSDs”) (e.g., based on RAM), Flash memory, phase-change memory (“PCM”), other types of memory, other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other similarly storage medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer.
- Transmission media include signals and carrier waves.
- Computer-executable instructions comprise, for example, instructions and data which, when executed by a processor, cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions.
- the computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language or P-Code, or even source code.
- the invention may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks.
- program modules may be located in both local and remote memory storage devices.
- An example of a distributed system environment is a cloud of networked servers or server resources. Accordingly, the present invention can be hosted in a cloud environment.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Human Computer Interaction (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/438,275 US11042714B2 (en) | 2019-06-11 | 2019-06-11 | Synchronizing the language of a remote session with a client's language |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/438,275 US11042714B2 (en) | 2019-06-11 | 2019-06-11 | Synchronizing the language of a remote session with a client's language |
Publications (2)
Publication Number | Publication Date |
---|---|
US20200394270A1 US20200394270A1 (en) | 2020-12-17 |
US11042714B2 true US11042714B2 (en) | 2021-06-22 |
Family
ID=73746164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/438,275 Active 2040-01-14 US11042714B2 (en) | 2019-06-11 | 2019-06-11 | Synchronizing the language of a remote session with a client's language |
Country Status (1)
Country | Link |
---|---|
US (1) | US11042714B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230244479A1 (en) * | 2022-01-28 | 2023-08-03 | Mikroelektronika D.O.O. | Natural language code and comment completion generator |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030233404A1 (en) * | 2002-06-13 | 2003-12-18 | Hopkins Christopher D. | Offline simulation of online session between client and server |
US20070078950A1 (en) * | 2002-06-13 | 2007-04-05 | Salesforce.Com, Inc. | Offline web services api to mirror online web services api |
US7444278B2 (en) * | 2004-03-19 | 2008-10-28 | Microsoft Corporation | Method and system for synchronizing the user interface language between a software application and a web site |
US20130179145A1 (en) * | 2012-01-09 | 2013-07-11 | Ankitkumar Patel | Method and system for provisioning local language content |
US20130342467A1 (en) * | 2012-06-25 | 2013-12-26 | International Business Machines Corporation | Dynamically updating a smart physical keyboard |
US20190132381A1 (en) * | 2012-03-02 | 2019-05-02 | Citrix Systems, Inc. | Reverse Seamless Integration Between Local and Remote Computing Environments |
-
2019
- 2019-06-11 US US16/438,275 patent/US11042714B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030233404A1 (en) * | 2002-06-13 | 2003-12-18 | Hopkins Christopher D. | Offline simulation of online session between client and server |
US20070078950A1 (en) * | 2002-06-13 | 2007-04-05 | Salesforce.Com, Inc. | Offline web services api to mirror online web services api |
US7444278B2 (en) * | 2004-03-19 | 2008-10-28 | Microsoft Corporation | Method and system for synchronizing the user interface language between a software application and a web site |
US20130179145A1 (en) * | 2012-01-09 | 2013-07-11 | Ankitkumar Patel | Method and system for provisioning local language content |
US20190132381A1 (en) * | 2012-03-02 | 2019-05-02 | Citrix Systems, Inc. | Reverse Seamless Integration Between Local and Remote Computing Environments |
US20130342467A1 (en) * | 2012-06-25 | 2013-12-26 | International Business Machines Corporation | Dynamically updating a smart physical keyboard |
Also Published As
Publication number | Publication date |
---|---|
US20200394270A1 (en) | 2020-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11108845B2 (en) | Rendering a web application in a cloud service | |
US10210030B2 (en) | Securely operating remote cloud-based applications | |
US10244039B2 (en) | Shell integration on a mobile device for an application executing remotely on a server | |
US9489227B2 (en) | Apparatus and method for virtual desktop service | |
US9009219B2 (en) | Native viewer use for service results from a remote desktop | |
US9864754B2 (en) | Virtual desktop infrastructure private cloud | |
US11099865B2 (en) | Auditing clipboard operations in virtual desktop environments | |
US10313448B2 (en) | Employing an auxiliary device to implement USB device redirection | |
US10798097B2 (en) | Intelligent redirection of authentication devices | |
CN113924551A (en) | Method and system for accessing remotely stored files using virtual applications | |
US10880272B2 (en) | Secure software client | |
US11782748B2 (en) | Cloud shell extension framework | |
US11586721B1 (en) | Secure remote access of computing resources | |
US10291701B2 (en) | Virtualizing a shortcut to a file in a cloud desktop | |
US20220382430A1 (en) | Shortcut keys for virtual keyboards | |
US11042714B2 (en) | Synchronizing the language of a remote session with a client's language | |
US11003463B2 (en) | Virtual desktop | |
US11316854B2 (en) | Reverse authentication in a virtual desktop infrastructure environment | |
US11196799B2 (en) | Redirection of USB devices from hardware isolated virtual desktop infrastructure clients | |
US20170228551A1 (en) | Secure access client | |
US9280358B1 (en) | Configuring a computer for using mobile devices as input and output devices | |
JP2023027733A (en) | Text input synchronization for remote applications | |
US20200257513A1 (en) | Method and system of application deployment on a mobile communication device | |
US9672212B1 (en) | System and method for supporting remote accesses to a host computer from a mobile computing device | |
US20230403152A1 (en) | Centralization of Authentication Servers for Different Resource Servers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: DELL PRODUCTS L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MARYALA, ANIL;CHAVAN, DEEPTHI;KISHORE, AJIT;AND OTHERS;REEL/FRAME:049438/0185 Effective date: 20190401 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, NORTH CAROLINA Free format text: SECURITY AGREEMENT;ASSIGNORS:DELL PRODUCTS L.P.;EMC CORPORATION;EMC IP HOLDING COMPANY LLC;REEL/FRAME:050406/0421 Effective date: 20190917 |
|
AS | Assignment |
Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT, TEXAS Free format text: PATENT SECURITY AGREEMENT (NOTES);ASSIGNORS:DELL PRODUCTS L.P.;EMC CORPORATION;EMC IP HOLDING COMPANY LLC;REEL/FRAME:050724/0571 Effective date: 20191010 |
|
AS | Assignment |
Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., TEXAS Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:053546/0001 Effective date: 20200409 |
|
AS | Assignment |
Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT, TEXAS Free format text: SECURITY INTEREST;ASSIGNORS:DELL PRODUCTS L.P.;EMC CORPORATION;EMC IP HOLDING COMPANY LLC;REEL/FRAME:053311/0169 Effective date: 20200603 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: EMC IP HOLDING COMPANY LLC, TEXAS Free format text: RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058213/0825 Effective date: 20211101 Owner name: EMC CORPORATION, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058213/0825 Effective date: 20211101 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421;ASSIGNOR:CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH;REEL/FRAME:058213/0825 Effective date: 20211101 |
|
AS | Assignment |
Owner name: EMC IP HOLDING COMPANY LLC, TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060438/0742 Effective date: 20220329 Owner name: EMC CORPORATION, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060438/0742 Effective date: 20220329 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060438/0742 Effective date: 20220329 Owner name: EMC IP HOLDING COMPANY LLC, TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0571);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060436/0088 Effective date: 20220329 Owner name: EMC CORPORATION, MASSACHUSETTS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0571);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060436/0088 Effective date: 20220329 Owner name: DELL PRODUCTS L.P., TEXAS Free format text: RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0571);ASSIGNOR:THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT;REEL/FRAME:060436/0088 Effective date: 20220329 |