Patent ID: 8799479

Claim:
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.