Establishing and utilizing terminal server dynamic virtual channels
First Claim
1. At a terminal server that includes at least one processor, a method for transferring data over a dynamic virtual channel between a server side plug-in and a corresponding client side plug-in at a client computing system, 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 in response to a server side plug-in request which sends the common plug-in name to the client side plug-in, the static virtual connection being identified by the common plug-in name;
an act of establishing a dynamic virtual channel between an instance of the server side plug-in and an instance of the client side plug-in in response to the server side plug-in request, the request being received at a listener for the client side plug-in, the listener spawning an instance of the client side plug-in which communicates with a newly-spawned instance of the terminal server plug-in to negotiate and establish the dynamic virtual channel which includes a correspondingly agreed-upon unique identifier;
an act of accessing application data from an instance of a plug-in, wherein the data is to be transferred over the dynamic virtual channel;
an act of accessing the negotiated and agreed-upon unique identifier corresponding to the dynamic virtual channel;
an act of encapsulating the unique identifier and application data within static virtual channel data for the static virtual channel, such that the unique identifier and the application data are transmitted together within the static virtual channel data;
an act of further encapsulating the static virtual channel data within lower layer data corresponding to lower layers of a communication stack; and
an act of sending the lower layer data such that the unique identifier for the dynamic virtual session and the application data are tunneled to the destination.
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.
-
Citations
18 Claims
-
1. At a terminal server that includes at least one processor, a method for transferring data over a dynamic virtual channel between a server side plug-in and a corresponding client side plug-in at a client computing system, 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 in response to a server side plug-in request which sends the common plug-in name to the client side plug-in, the static virtual connection being identified by the common plug-in name; an act of establishing a dynamic virtual channel between an instance of the server side plug-in and an instance of the client side plug-in in response to the server side plug-in request, the request being received at a listener for the client side plug-in, the listener spawning an instance of the client side plug-in which communicates with a newly-spawned instance of the terminal server plug-in to negotiate and establish the dynamic virtual channel which includes a correspondingly agreed-upon unique identifier; an act of accessing application data from an instance of a plug-in, wherein the data is to be transferred over the dynamic virtual channel; an act of accessing the negotiated and agreed-upon unique identifier corresponding to the dynamic virtual channel; an act of encapsulating the unique identifier and application data within static virtual channel data for the static virtual channel, such that the unique identifier and the application data are transmitted together within the static virtual channel data; an act of further encapsulating the static virtual channel data within lower layer data corresponding to lower layers of a communication stack; and an act of sending the lower layer data such that the unique identifier for the dynamic virtual session and the application data are tunneled to the destination. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-readable storage device having stored computer-executable instructions which, when executed by at least one computing system with a processor, implement a method for transferring data over a dynamic virtual channel between a terminal server side plug-in and a corresponding client side plug-in at a client computing system, both of the server side plug-in and the corresponding client side plug-in being associated with a common plug-in name, the method including:
-
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 in response to a server side plug-in request which sends the common plug-in name to the client side plug-in, the static virtual connection being identified by the common plug-in name; an act of establishing a dynamic virtual channel between an instance of the server side plug-in and an instance of the client side plug-in in response to the server side plug-in request, the request being received at a listener for the client side plug-in, the listener spawning an instance of the client side plug-in which communicates with a newly-spawned instance of the terminal server plug-in to negotiate and establish the dynamic virtual channel which includes a correspondingly agreed-upon unique identifier; an act of accessing application data from an instance of a plug-in, wherein the data is to be transferred over the dynamic virtual channel; an act of accessing the negotiated and agreed-upon unique identifier corresponding to the dynamic virtual channel; an act of encapsulating the unique identifier and application data within static virtual channel data for the static virtual channel, such that the unique identifier and the application data are transmitted together within the static virtual channel data; an act of further encapsulating the static virtual channel data within lower layer data corresponding to lower layers of a communication stack; and an act of sending the lower layer data such that the unique identifier for the dynamic virtual session and the application data are tunneled to the destination. - View Dependent Claims (8, 9)
-
-
10. At a client computing system, a method for accessing application data transferred over a dynamic virtual channel between a terminal server side plug-in and a corresponding client side plug-in at the client computing system, 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 in response to a server side plug-in request which sends the common plug-in name to the client side plug-in, the static virtual connection being identified by the common plug-in name; an act of establishing a dynamic virtual channel between an instance of the server side plug-in and an instance of the client side plug-in in response to the server side plug-in request, the request being received at a listener for the client side plug-in, the listener spawning an instance of the client side plug-in which communicates with a newly-spawned instance of the terminal server plug-in to negotiate and establish the dynamic virtual channel which includes a correspondingly agreed-upon unique identifier; receiving lower layer data from the terminal server, the lower layer data corresponding to lower layers of a communication stack, the lower layer data encapsulating static virtual channel data that includes a unique identifier and application data which were previously encapsulated by the terminal server, such that the application data and the unique identifier are transmitted together within the static virtual channel data from the terminal server; unencapsulating the static virtual channel data from the lower layer data; unencapsulating the unique identifier and the application data from the static virtual channel data; comparing the unique identifier to a channel mapping to identify the dynamic virtual channel corresponding to the application data; and sending the application data to the plug-in corresponding to the dynamic virtual channel. - View Dependent Claims (11, 12, 13)
-
-
14. A computer-readable storage device having stored computer-executable instructions which, when executed by at least one computing system with a processor, implement a method for a client computing system accessing application data transferred over a dynamic virtual channel between a terminal server side plug-in and a corresponding client side plug-in at the client computing system, 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 in response to a server side plug-in request which sends the common plug-in name to the client side plug-in, the static virtual connection being identified by the common plug-in name; an act of establishing a dynamic virtual channel between an instance of the server side plug-in and an instance of the client side plug-in in response to the server side plug-in request, the request being received at a listener for the client side plug-in, the listener spawning an instance of the client side plug-in which communicates with a newly-spawned instance of the terminal server plug-in to negotiate and establish the dynamic virtual channel which includes a correspondingly agreed-upon unique identifier; receiving lower layer data from the terminal server, the lower layer data corresponding to lower layers of a communication stack, the lower layer data encapsulating static virtual channel data that includes a unique identifier and application data which were previously encapsulated by the terminal server, such that the application data and the unique identifier are transmitted together within the static virtual channel data from the terminal server; unencapsulating the static virtual channel data from the lower layer data; unencapsulating the unique identifier and the application data from the static virtual channel data; comparing the unique identifier to a channel mapping to identify the dynamic virtual channel corresponding to the application data; and sending the application data to the plug-in corresponding to the dynamic virtual channel. - View Dependent Claims (15, 16, 17, 18)
-
Specification