WO2010138124A1 - Loopback proxy - Google Patents

Loopback proxy Download PDF

Info

Publication number
WO2010138124A1
WO2010138124A1 PCT/US2009/045557 US2009045557W WO2010138124A1 WO 2010138124 A1 WO2010138124 A1 WO 2010138124A1 US 2009045557 W US2009045557 W US 2009045557W WO 2010138124 A1 WO2010138124 A1 WO 2010138124A1
Authority
WO
Grant status
Application
Patent type
Prior art keywords
client
session
server
graphics driver
connection manager
Prior art date
Application number
PCT/US2009/045557
Other languages
French (fr)
Inventor
Bernard J. Thompson
Original Assignee
Displaylink Corporation
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

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/42Protocols for client-server architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/04Network-specific arrangements or communication protocols supporting networked applications adapted for terminals or networks with limited resources or for terminal portability, e.g. wireless application protocol [WAP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/14Network-specific arrangements or communication protocols supporting networked applications for session management

Abstract

A method of optimising the connection of multiple terminals to a single server is provided, whereby the server runs its standard remote terminal protocol while terminal devices may use their own proprietary, higher performance busses and protocols. The translation of these protocols between server and terminal is handled by a loopback service running on the server. The method is optimized to provide a direct connection between the user session on the server and the thin client device for certain terminal components, especially the graphics component. This allows the overhead of the loopback service to be avoided for the most performance sensitive components of the terminal.

Description

LOOPBACK PROXY

DESCRIPTION

This invention relates to a server and to a method of operating a server. In one embodiment, the invention provides a co-ordinated direct and loopback proxying of a terminal service protocol.

Remote Desktop Services (RDS), also known as terminal services, is one of the components of Microsoft Windows (both server and client versions) that allows a user to access applications and data on a remote computer over a network. Terminal services is Microsoft's implementation of terminal server computing, where Windows applications, or even the entire desktop of a computer running terminal services, are made accessible to a remote client machine. The client can either be a fully-fledged computer, running any operating system as long as the terminal services protocol is supported, or a lighter machine powerful enough to support the protocol. With terminal services, only the user interface of an application is presented at the client. Any input to it is redirected over the network to the server, where all application processing takes place.

Remote clients connect to a Windows terminal service using the Remote

Desktop Protocol (RDP). RDP is a protocol for receiving user input from the client, sending graphics data to the client, and sending messages between client and server to control the connection. However, Microsoft's implementation only allows for full desktop clients to connect via the network. It does not allow for non-network connections such as USB, or thin clients which do not have a full operating system of their own. Further, it does not allow for other graphics encapsulation protocols (which may be more efficient than RDP in some scenarios).

It is therefore an object of the invention to improve upon the known art.

According to a first aspect of the present invention, there is provided a method of operating a server comprising operating a terminal service, the terminal service including a graphics driver, installing a connection manager, the connection manager including a second graphics driver, detecting the connection of a client to the server, at the connection manager, creating a new session for the connected client, the session including the second graphics driver, connecting the client to the second graphics driver, operating one or more applications within the session, rendering graphic output from the or each application via the second graphics driver directly to the client, and routing all session management commands from the client to the connection manager.

According to a second aspect of the present invention, there is provided a server arranged to operate a terminal service, the terminal service including a graphics driver, install a connection manager, the connection manager including a second graphics driver, detect the connection of a client to the server, at the connection manager, create a new session for the connected client, the session including the second graphics driver, connect the client to the second graphics driver, operate one or more applications within the session, render graphic output from the or each application via the second graphics driver directly to the client, and route all session management commands from the client to the connection manager.

According to a third aspect of the present invention, there is provided a computer program product on a computer readable medium for operating a server, the product comprising instructions for operating a terminal service, the terminal service including a graphics driver, installing a connection manager, the connection manager including a second graphics driver, detecting the connection of a client to the server, at the connection manager, creating a new session for the connected client, the session including the second graphics driver, connecting the client to the second graphics driver, operating one or more applications within the session, rendering graphic output from the or each application via the second graphics driver directly to the client, and routing all session management commands from the client to the connection manager.

Owing to the invention, it is possible to provide a method for combining a standard RDP client, running in loopback mode on the server, with a replacement display driver running in the client session also on the server, in order to proxy terminal services clients to hardware devices that themselves do not support RDP. There are three primary benefits of this invention, support for connecting thin clients via non-network busses such as USB, increased graphics performance for clients implemented via a loopback interface and increased scalability of multiple clients due to reduced overhead. The invention allows thin clients to connect to Windows Terminal Server via

USB or any other bus. The software on the server connects to Terminal Server via a loopback connection within the server. The connection manager can accept connections via any bus chosen to be implemented. The penalty of this design is decreased graphics performance, each session's graphics output must be captured by Terminal Server, encoded into RDP1 sent to the connection manager, and possibly re-encoded into the graphics protocol of the client. To eliminate this overhead, as well as to allow use of its own, highly optimized graphics encapsulation protocol, the connection manager will make use of its own graphics driver. This driver will replace the Terminal Server graphics driver in each session, and communicate directly with the client, thus bypassing the performance penalty mentioned above.

The invention is the combination of the two ideas of creating a loopback connection manager to manage sessions, and replacing the terminal server graphics driver with a second driver. In essence, this combination replaces all of the network transport portions of terminal server, leaving the terminal server to operate strictly as a session manager.

Embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings, in which:

Figure 1 is a schematic diagram of a server and client,

Figure 2 is a further view of the server and client of Figure 1 , Figure 3 is a more detailed schematic diagram of the server and client,

Figure 4 is a schematic diagram showing installation of software on the server, and

Figure 5 is a flowchart of a method of operating a server. Figure 1 shows a client 10 connected to a server 12. The client 10 is a thin client with a connected display device 10. Figure 2 shows the architecture in more detail. The client 10 runs a thin client 16 and the server 12 runs a terminal service 18. The terminal service 18 allows remote clients 10 to connect to the server 12 and access applications that are executed on the server 12, as if those applications were available locally to the client 10. Only the user interface is run locally by the client 10 and communication traffic flows between the client 10 and server 12 as a user interacts with the user interface via the client 10.

In implementations of a terminal service 18 such as Microsoft's terminal service, the client 10 must have a minimum level of processing power to interact with the terminal service 18. The client 10 must be capable of supporting a standard operating system, which means that the client-server relationship in an implementation of Microsoft terminal service does not allow clients 10 that are too "thin" to connect to the terminal service 18. Additionally, the nature of the terminal service 18 is such that limitations are placed on the connection technology that is used to connect the client 10 to the server 12. For example, Ethernet can be used as a connection technology, but USB cannot be used.

However, the system of Figures 1 and 2 is adapted so that it is possible to provide a method for combining a standard RDP client, running in loopback mode on the server 12, with a replacement display driver running in the client session also on the server 12, in order to proxy terminal services clients to hardware devices that themselves do not normally support connection to the terminal service 18. The system allows thin clients 10 to connect to an implementation of Windows terminal service 18 via USB or any other bus. Software on the server 12 connects to the terminal service 18 via a loopback connection within the server 12.

Figure 3 shows the implementation of the client-server system in more detail. In addition to the terminal service 18, there is also a connection manager 20 present on the server 12. The connection manager 20 connects to the terminal service 18 via a loopback connection 22. The purpose of the loopback connection 22 is so that the connection manager 20 will appear to the terminal service 18 as if the connection manager 20 is a remote client. This allows the connection manager 20 the benefit of the terminal service 18, without having any of the drawbacks that would not allow a connection to the terminal service 18, such as insufficient processing capability or unsupported connection technology. The connection manager 20 connects to external clients 10 via a USB driver stack 24. USB is only an example of a connection technology that can be used to connect the clients 10 to the server 12. The nature of the driver stack 24 will reflect the connection protocol that is being used to connect the thin client 10 to the server 12. Once a new client 10 connects to the server 12, then the connection manager 20 creates a new session 26 for that client 10. The session 26 will include a new graphics driver 28 that has been provided by the connection manager 20 either in addition or instead of the driver that would be used by the terminal service 18. The session will also include the relevant applications 30.

Figure 3 shows both parts of the system together, being the loopback between the connection manager 20 and the terminal service 18 and the use of a new graphics driver 28. The loopback connection manager 20 appears within the session 0 box of the server 12. The replacement graphics adapter 28 is shown within the client session 26. A setup program will install both the loopback connection manager 20 and the additional graphics driver 28. Preferably, the setup program will install the new graphics driver 28 in such a way that it will load in place of the standard driver when new sessions 26 are created. The new graphics driver 28 is needed so that the light connection technology (such as USB) and the thin client 10 are provided with graphics information in a working manner.

The terminal service 18 performs the session management with the session 26, which is session 1 as far as the terminal service 18 is concerned. The connection manager 20 performs the connection management with the graphics driver 28 and operates a dedicated loopback 22 with the terminal service. If additional client devices are connected to the server 12, then additional sessions 26 are created (session 2 and so on). For each new session a new loopback 22 is also created between the connection manager 29 and the terminal service 18 of the server 12. The installation of the software on the server 12 is illustrated in Figure 4. A setup program 32, which may be provided on a suitable storage media such as a CD- ROM, installs the connection manager 20. The setup program 32 also initiates a connection 22 between the terminal service 18 and the connection manager 20. This connection 22, as discussed above, is a loopback connection 22, which is being used to represent the connection manager 20 as a remote client, when in fact it is located directly on the same server 12 as the terminal service 18. The terminal service 18 will treat the connection manager 20 as if it is a client remote from the server 12.

Once installed, the operation of the components of the server 12 is as shown in Figure 5. In step S1, the loopback connection manager 20 listens for new clients 10 using the operating system's standard network, USB1 or other peripheral device drivers. When the connection manager 20 detects a new client 10, it calls the terminal service 18 to create a new RDP session 26 for that client 10. At step S2, the terminal service 18 creates a new session 26, which in turn loads the new graphics driver 28. At step S3, the graphics driver 28 signals to the connection manager 28 that it has loaded. The connection manager 20 then hands off the client connection to the graphics driver 28.

At step S4, one or more applications 30 are operated within the session 26. At step S5, all graphics output from the applications 30 within the session 26 will be rendered by the new driver 28 and sent directly to the client 10. All user input from the client 10 goes to the graphics driver 28 which will send the input to the session 26. The terminal service 18 still operates the session 26 but is communicating with the connection manager 20 as if the connection manager 20 is the remote client 10. The loopback connection 22 ensures that this relationship continues, while all the time the graphics driver 28 is actually communicating with the real client 10.

At step S6, the graphics driver 28 also receives session management commands from the client 10, such as close session, and forwards the appropriate commands to the connection manager 20, to communicate to the terminal service 18, via the RDP loopback connection 22. When the session 26 is complete, the connection manager 20 closes the RDP session 26 with terminal service 18. The terminal service 18 shuts down the session 26 and unloads the graphics drivers 28. In this way, the terminal service 18 is never aware of the real client 10 that was interacting with the session 26, but the terminal service 18 will still continue to operate normally the whole time.

Claims

1. A method of operating a server comprising: o operating a terminal service, the terminal service including a graphics driver, o installing a connection manager, the connection manager including a second graphics driver, o detecting the connection of a client to the server, at the connection manager, o creating a new session for the connected client, the session including the second graphics driver, o connecting the client to the second graphics driver, o operating one or more applications within the session, o rendering graphic output from the or each application via the second graphics driver directly to the client, and o routing all session management commands from the client to the connection manager.
2. A method according to claim 1 , wherein the step of creating a new session for the connected client, the session including the second graphics driver, further comprises deleting the first graphics driver from the session.
3. A method according to claim 1 or 2, and further comprising routing all user commands from the client to the second graphics driver.
4. A method according to claim 1 , 2 or 3, and further comprising receiving an instruction from the client to terminate the session at the connection manager, the connection manager instructing the terminal service to terminate the current session.
5. A method according to any preceding claim, and further comprising, following detecting the connection of a client to the server, at the connection manager, initiating a loopback connection between the connection manager and the terminal service.
6. A server arranged to: o operate a terminal service, the terminal service including a graphics driver, o install a connection manager, the connection manager including a second graphics driver, o detect the connection of a client to the server, at the connection manager, o create a new session for the connected client, the session including the second graphics driver, o connect the client to the second graphics driver, o operate one or more applications within the session, o render graphic output from the or each application via the second graphics driver directly to the client, and o route all session management commands from the client to the connection manager.
7. A server according to claim 6, wherein the server is further arranged, when creating a new session for the connected client, the session including the second graphics driver, to delete the first graphics driver from the session.
8. A server according to claim 6 or 7, wherein the server is further arranged to route all user commands from the client to the second graphics driver.
9. A server according to claim 6, 7 or 8, wherein the server is further arranged to receive an instruction from the client to terminate the session at the connection manager, the connection manager instructing the terminal service to terminate the current session.
10. A server according to any one of claims 6 to 9, wherein the server is further arranged, following detecting the connection of a client to the server, at the connection manager, to initiate a loopback connection between the connection manager and the terminal service.
11. A computer program product on a computer readable medium for operating a server, the product comprising instructions for: o operating a terminal service, the terminal service including a graphics driver, o installing a connection manager, the connection manager including a second graphics driver, o detecting the connection of a client to the server, at the connection manager, o creating a new session for the connected client, the session including the second graphics driver, o connecting the client to the second graphics driver, o operating one or more applications within the session, o rendering graphic output from the or each application via the second graphics driver directly to the client, and o routing all session management commands from the client to the connection manager.
12. A computer program product according to claim 11 , wherein the step of creating a new session for the connected client, the session including the second graphics driver, further comprises deleting the first graphics driver from the session.
13. A computer program product according to claim 11 or 12, and further comprising routing all user commands from the client to the second graphics driver.
14. A computer program product according to claim 11 , 12 or 13, and further comprising receiving an instruction from the client to terminate the session at the connection manager, the connection manager instructing the terminal service to terminate the current session.
15. A computer program product according to any one of claims 11 to 14, and further comprising, following detecting the connection of a client to the server, at the connection manager, initiating a loopback connection between the connection manager and the terminal service.
PCT/US2009/045557 2009-05-29 2009-05-29 Loopback proxy WO2010138124A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2009/045557 WO2010138124A1 (en) 2009-05-29 2009-05-29 Loopback proxy

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2009/045557 WO2010138124A1 (en) 2009-05-29 2009-05-29 Loopback proxy

Publications (1)

Publication Number Publication Date
WO2010138124A1 true true WO2010138124A1 (en) 2010-12-02

Family

ID=41137709

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2009/045557 WO2010138124A1 (en) 2009-05-29 2009-05-29 Loopback proxy

Country Status (1)

Country Link
WO (1) WO2010138124A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9929955B2 (en) 2014-12-17 2018-03-27 International Business Machines Corporation Local session loopback protocol

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1521427A2 (en) * 2003-09-30 2005-04-06 Microsoft Corporation Systems and methods for determining remote device media capabilities
EP1681824A1 (en) * 2005-01-14 2006-07-19 Microsoft Corporation USB devices in application server environments
US20060248180A1 (en) * 2005-04-29 2006-11-02 Microsoft Corporation Techniques for managing terminal services sessions
US20070061477A1 (en) * 2005-09-09 2007-03-15 Microsoft Corporation Plug And Play Device Redirection For Remote Systems
US20070296643A1 (en) * 2006-06-27 2007-12-27 Microsoft Corporation Display extension using terminal clients

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1521427A2 (en) * 2003-09-30 2005-04-06 Microsoft Corporation Systems and methods for determining remote device media capabilities
EP1681824A1 (en) * 2005-01-14 2006-07-19 Microsoft Corporation USB devices in application server environments
US20060248180A1 (en) * 2005-04-29 2006-11-02 Microsoft Corporation Techniques for managing terminal services sessions
US20070061477A1 (en) * 2005-09-09 2007-03-15 Microsoft Corporation Plug And Play Device Redirection For Remote Systems
US20070296643A1 (en) * 2006-06-27 2007-12-27 Microsoft Corporation Display extension using terminal clients

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9929955B2 (en) 2014-12-17 2018-03-27 International Business Machines Corporation Local session loopback protocol
US10084708B2 (en) 2014-12-17 2018-09-25 International Business Machines Corporation Local session loopback protocol

Similar Documents

Publication Publication Date Title
US7185094B2 (en) Media session framework using a control module to direct and manage application and service servers
US20030055969A1 (en) System and method for performing power management on a distributed system
US20070233844A1 (en) Relay device and communication system
US20090222842A1 (en) System, method and apparatus for controlling multiple applications and services on a digital electronic device
US20050138156A1 (en) Grid application customization
US20070086448A1 (en) Integrated pseudo-wire and virtual routing and forwarding on a single provider edge router
US20070130366A1 (en) Virtual tunnel network router
US7363363B2 (en) System and method for provisioning universal stateless digital and computing services
US20110276619A1 (en) Desktop screen sharing over http
US20030014524A1 (en) Balancing shared servers in virtual environments
US20070162605A1 (en) Distributed instant messaging
US20040034687A1 (en) Extensible instant messaging service
US20070078987A1 (en) Multi-mode remote user interface server
US20110289204A1 (en) Virtual Machine Management Among Networked Servers
WO2009155574A1 (en) Cloud computing gateway, cloud computing hypervisor, and methods for implementing same
US20030069918A1 (en) Method and apparatus for dynamic provisioning over a world wide web
US8601056B2 (en) Scalable high-performance interactive real-time media architectures for virtual desktop environments
US20080222617A1 (en) Server side application integration framework
KR20040103441A (en) Controlled relay of media streams across network perimeters
US20130093776A1 (en) Delivering a Single End User Experience to a Client from Multiple Servers
US6578198B2 (en) Personal computer upgrade
US6857005B2 (en) Console interaction handling in a data processing network
US20080120426A1 (en) Selective acceleration of transport control protocol (tcp) connections
JP2007193429A (en) Network computing system, communication method, image projection device, image input/output device, and screen data acquisition method
US20050251396A1 (en) Client-server communication system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09789727

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase in:

Ref country code: DE

122 Ep: pct app. not ent. europ. phase

Ref document number: 09789727

Country of ref document: EP

Kind code of ref document: A1