Establishing and utilizing terminal server dynamic virtual channels
First Claim
1. At a terminal server comprising a server side plug-in, a method for establishing a dynamic virtual channel between the server side plug-in and a corresponding client side plug-in at a client, both of the server side plug-in and the corresponding client side plug-in being associated with a common plug-in name, the method comprising:
- an act of establishing, over a terminal server session, a static virtual channel between the server side plug-in at the terminal server and the corresponding client side plug-in at the client by at least sending the common plug-in name of the client side plug-in to the client side plug-in, wherein the static virtual channel is identifiable by the common plug-in name of the client side plug-in and wherein the common plug-in name of the client side plug-in is also usable by a server component at the terminal server to communicate with a client component at the client via the static virtual channel;
an act of sending a new channel request over the terminal server session via the static virtual channel to create a new dynamic virtual channel between the server side plug-in at the terminal server and the corresponding client side plug-in at the client, the new channel request including the common plug-in name of the client side plug-in;
an act of receiving a channel accept from the client, the channel accept indicative of a listener for the client side plug-in receiving the channel request and creating an instance of the client side plug-in;
an act of creating an instance of the server side plug-in to communicate with the instance of the client side plug-in;
an act of the server component at the terminal server negotiating with the client component at the client to establish the new dynamic virtual channel over the terminal server session between the instance of the server side plug-in and the instance of the client side plug-in; and
an act of the server component agreeing to a unique identifier for the established new dynamic virtual channel, the unique identifier usable by the server component to forward communication from the instance of the server side plug-in to the instance of the client side plug-in via the new dynamic virtual channel, the unique identifier differing from the common plug-in name of the client side plug-in.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention extends to methods, systems, and computer program products for establishing and utilizing terminal server dynamic virtual channels. In some embodiments, a terminal server sends a new channel request to a terminal server. The client receives the new channel request and forwards the new channel request to a listener for a plug-in. The listener creates an instance of the client side plug-in and sends a channel accept to the terminal server. The terminal server receives the channel accept and creates an instance of a server side plug-in. The server and the client agree to use a unique identifier for identifying the established dynamic virtual channel. In other embodiments, data for a dynamic virtual channel is tunneled between computers over a static virtual channel.
29 Citations
17 Claims
-
1. At a terminal server comprising a server side plug-in, a method for establishing a dynamic virtual channel between the server side plug-in and a corresponding client side plug-in at a client, both of the server side plug-in and the corresponding client side plug-in being associated with a common plug-in name, the method comprising:
-
an act of establishing, over a terminal server session, a static virtual channel between the server side plug-in at the terminal server and the corresponding client side plug-in at the client by at least sending the common plug-in name of the client side plug-in to the client side plug-in, wherein the static virtual channel is identifiable by the common plug-in name of the client side plug-in and wherein the common plug-in name of the client side plug-in is also usable by a server component at the terminal server to communicate with a client component at the client via the static virtual channel; an act of sending a new channel request over the terminal server session via the static virtual channel to create a new dynamic virtual channel between the server side plug-in at the terminal server and the corresponding client side plug-in at the client, the new channel request including the common plug-in name of the client side plug-in; an act of receiving a channel accept from the client, the channel accept indicative of a listener for the client side plug-in receiving the channel request and creating an instance of the client side plug-in; an act of creating an instance of the server side plug-in to communicate with the instance of the client side plug-in; an act of the server component at the terminal server negotiating with the client component at the client to establish the new dynamic virtual channel over the terminal server session between the instance of the server side plug-in and the instance of the client side plug-in; and an act of the server component agreeing to a unique identifier for the established new dynamic virtual channel, the unique identifier usable by the server component to forward communication from the instance of the server side plug-in to the instance of the client side plug-in via the new dynamic virtual channel, the unique identifier differing from the common plug-in name of the client side plug-in. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 16)
-
-
12. At a client comprising a client side plug-in, a method for establishing a dynamic virtual channel between the client side plug-in and a corresponding server side plug-in at a terminal server, both of the client side plug-in and the corresponding server side plug-in being associated with a common plug-in name, the method comprising:
-
an act of establishing, over a terminal server session, a static virtual channel between the client side plug-in at the client and the corresponding server side plug-in at the terminal server by at least receiving the common plug-in name of the client side plug-in from the server side plug-in, wherein the static virtual channel is identifiable by the common plug-in name of the client side plug-in and wherein the common plug-in name of the client side plug-in is also usable b a client component at the client to communicate with a server component at the terminal server via the static virtual channel; an act of receiving a new channel request over the terminal server session via the static virtual channel to create a new dynamic virtual channel between the client side plug-in at the client and the corresponding server side plug-in at the terminal server, the new channel request including the common plug-in name of the client side plug-in; an act of forwarding the new channel request to a listener for the plug-in having the included name; an act of the listener creating an instance of the client side plug-in, in response to receiving the new channel request; an act of sending a channel accept to the terminal server, the channel accept indicative of the listener creating the instance of the client side plug-in; an act of the client component negotiating with the server component at the terminal server to establish the new dynamic virtual channel over the terminal server session between the instance of the client side plug-in and a corresponding instance of the server side plug-in at the terminal server; and an act of the server component agreeing to a unique identifier for the established new dynamic virtual channel, the unique identifier usable by the client component to forward communication from the instance of the client side plug-in to the instance of the server side plug-in via the new dynamic virtual channel, the unique identifier differing from the common plug-in name of the client side plug-in. - View Dependent Claims (13, 14, 15, 17)
-
Specification