Virtual Channel COM Service Framework for Citrix/Terminal Server
solution is a set of drivers and components that provide the
communication service between applications on the server and COM
objects on the client side.
In the real world, applications running on the Citrix/Terminal
Server usually need to make call to the client machine to perform
special tasks as controlling specific devices (ticket printer, cash
drawer, MSR, PocketPC, etc) or launching / connecting-to an
application instance on the client machine (Word, Excel, Outlook,
etc). Currently, there is no solution for this specific need.
Application developers for Citrix/Terminal Services solution usually
have to spent a lot of time to do research on a portable solution
for this problem.
Virtual Channel COM Service Framework is designed to provide
application developers an easy, efficient, portable and flexible way
to archive the most tedious tasks of communication between the
server and the client machine. Application developers do not need to
know how the function call is forwarded to the client side, and how
the result is received and if an error occurs, all information is
sent back to the caller as in a normal program.
Virtual Channel COM Service Framework provides VB developers the
quickest way to do their work as they usually do with Visual Basic
in the world of COM based development. For C++ developer (or other
programming language supporting COM ), the framework provides a COM
based standard set of methods for normal uses.
How It Works
Virtual Channel COM Service Framework uses Citrix/Terminal Services
Virtual Channel as transport layer for forwarding function calls
from the server to the client machine and getting back the result or
any error information resulting during the call. Citrix/Terminal
Services
Virtual Channel is a bidirectional error-free connection for the
exchange of generalized packet data between the Server and the
Remote Client (ICA or RDP). Based on Virtual Channel, the framework
benefits all the performance, error correction feature of ICA/RDP
data stream, that means it is very fast and reliable with a very
little over head when packing and unpacking data before sending to
other side.
Virtual Channel COM Service Framework consists of two parts: a
server-side portion and a client-side portion. Components on the
server side are responsible to format a specific request message and
break it into many small packets that can be sent through the
Virtual Channel. Through a COM object interface, application on the
server specifies COM object name ( installed on client machine), its
method and arguments and the framework performs the request to the
Virtual Driver seating on client machine.
On the client side, when a message coming, the Virtual Driver
cumulates all the packets received and when the whole message is
received, the Virtual Driver invokes the creation of COM object
locally on client machine and calls the method of this COM instance.
The result or error information are sent back to the server through
the same Virtual Channel.
The COM object on the client machine, usually is a wrapper of driver
for specific device (printer, PocketPC, etc) or any business logic
that programmer want to do on the client machine.