| Description et fonctionnement des canaux virtuels ICA (partie 2) |
|
|
|
| Écrit par ThinIsFat | |||||||||
| Vendredi, 14 Novembre 2008 11:37 | |||||||||
|
Dans le premier article, j'ai expliqué ce que sont les canaux virtuels du protocole ICA et détaillés ceux-ci. Ce second (et dernier) article explique comment fonctionnent les canaux virtuels, donne un bref aperçu sur la façon d'ajouter vos propres canaux virtuels à l'aide du Virtual Channel SDK et de l'ICO SDK et détaille des Best Practices.
Fonctionnement des canaux virtuels ICA Le support des canaux virtuels en mode utilisateur sur le serveur est chargé par Wfshell.exe, par exemple : SpeedBrowse, EUEM, Speech Mike, Bi- Audio, Twain, Time Zone, Clipboard, Multimedia, Seamless Session Sharing et SpeedScreen Latency Reduction (ZLC). Les autres sont chargés en mode Kernel, par exemple CDM.sys et vdtw30.sys. Tous les canaux virtuels clients passent par le pilote WinStation, Wdica.sys côté serveur et communiquent avec le côté client via le pilote WinStation correspondant, compilé dans wfica32.exe.
Echange de données entre le client et le serveur avec un canal virtuel 1. Le client se connecte au serveur CPS/XenApp. Le client informe le serveur des canaux virtuels qu'il supporte. 2. L'application coté serveur démarre, obtient un handle vers le canal virtuel et, optionnellement, demande des informations supplémentaires à propos de celui-ci. 3. Le pilote du canal virtuel client et l'application sur le serveur envoient des données suivant une de ces deux méthodes : Si l'application doit envoyer des données au client, celles-ci sont envoyées immédiatement. Quand les données sont reçues par le client, le pilote WinStation dé-multiplexe les données du canal virtuel du flux ICA et les envoie immédiatement au pilote du canal virtuel client. Si le pilote du canal virtuel client doit envoyer des données au serveur, elles sont envoyées à la prochaine demande du pilote WinStation. Quand les données sont reçues par le serveur, elles sont placées dans une file d'attente jusqu'à ce que l'application du canal virtuel (nous sommes sur le serveur, n'oubliez pas) les lit. Il n'y a pas de possibilité d'alerter l'application du canal virtuel (côté serveur..) que des données ont été reçus.4. Quand l'application du canal virtuel (côté serveur donc) a terminé, il ferme le canal virtuel et libère les ressources allouées (les handles indiqués précédemment).
Créez votre propre canal virtuel avec le Virtual Channel SDK Créer un canal virtuel avec le Virtual Channel SDK nécessite un niveau intermédaire de connaissances en programmation. Cette méthode est recommandée s'il est nécessaire de fournir un chemin de communication important entre le client et le serveur. Par exemple, si vous souhaitez permettre l'utilisation d'un périphérique (un automate, un scanner, ...) avec une application dans une session. Note 1 : Le Virtual Channel SDK nécessite le WFAPI SDK pour écrire le côté serveur du canal virtuel.Note 2 : Suite à l'amélioration de la sécurité depuis la version 10.0 du client ICA (ou XenApp Plugin for Windows), une étape supplémentaire dans l'installation d'un canal virtuel personalisé. Consultez la page 38 "Installing a Virtual Driver on a Client" du Virtual Channel Software Development Kit. ICA Virtual Channel SDK Guide: http://community.citrix.com/display/cdn/Virtual+Channel+SDK WFAPI SDK: http://community.citrix.com/display/cdn/WinFrame+API+SDK
Créez votre propre canal virtuel avec le ICO SDK Créer un canal virtuel en utilisant le ICA Client Object (ICO) est plus simple que d'utiliser le Virtual Channel SDK et cela peut être fait en créant simplement un objet nommé dans votre programme avec la méthode CreateChannels. ICA Client Object SDK Guide: http://community.citrix.com/display/cdn/ICA+Client+Object+SDK
Fonctionnalité Pass-through des Canaux Virtuels Même si la majorité des canaux virtuels fournis par Citrix fonctionnent sans modification lorsque qu'une session ICA est lancée au sein d'une session ICA (fonctionnement connu comme session Pass-through ou double déport), il faut prêter attention à certaines particularités quand le client est utilisé dans ce mode. Les fonctions suivantes opèrent de la même façon en déport simple ou multiple : Client Drive Mapping, Client COM Port Mapping, Client Printer Mapping, Smartcard support, Kerberos, Twain, Client Local Text Echo/Speed Screen Latency Reduction (ZLC), Program Neighborhood Support, Transparent Key Pass-Through, Multimedia Support, Client UPD et End User Experience Monitoring. A cause de la latence ainsi que d'autres facteurs comme la compression, la décompression et le rendu effectué à chaque déport, les performances de certaines fonctionnalités peuvent être sévèrement affectées à chaque déport additionel : Seamless, ThinWire, Philips Speech Mike recorder and foot pedal et Bi-directional Audio. Note 1 : Le mode Seamless n'est pas supporté en double déport (Seamless in Seamless). Consultez l'article CTX481919 - Nested Seamless Sessions are not Supported
Note 2 : Par défaut, les disques clients mappés par une instance du client ICA dans une session en Pass-Through sont limités aux disques du client original. Consultez l'article CTX113756 - The Pass-through Client for Presentation Server Client 10 Cannot Launch an Application on a Network Drive Through a Desktop Session. Securité et Canaux Virtuels ICA Sécurisé l'utilisation est une partie importante lors de la planification, du développement et de l'implémentation des canaux virtuels. Il est fortement recommandé de consulter les différents liens indiqués dans cet article mais également l'article CTX112498 - Custom Virtual Channels No Longer Appear to Work After Upgrading to the Presentation Server Client for Windows Version 9.230 or Later pour plus de détails pour sécuriser les données envoyées par un canal virtuel. Best Practices Gardez ces quelques recommendations en mémoire lors de l'utilisation de canaux virtuels : Les canaux virtuels doivent être ouverts au moment des Connect et Reconnect puis fermés au Logoff et Disconnect. Gardez ces quelques recommendations en mémoire lors de la création de scripts qui utilisent des fonctions de canaux virtuels : Noms des canaux virtuels
Liens recommandés Webinar sur le Virtual Channel SDK : http://community.citrix.com/display/~vishalg/2008/01/17/Webinar+-++Introduction+to+Citrix+Virtual+Channel+SDK “Supporting Client Devices Using the Citrix Virtual Channel SDK”: http://support.citrix.com/servlet/KbServlet/download/6731-102-13614/VCSDK_whitepaper_21299.pdf Citrix Developer Network (documentation, liens, SDKs, forums) http://support.citrix.com/developers
Powered by !JoomlaComment 3.26
3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."
|





