Description et fonctionnement des canaux virtuels ICA (partie 2) PDF Imprimer Envoyer
Note des utilisateurs: / 0
MauvaisTrès bien 
Écrit par ThinIsFat   
Vendredi, 14 Novembre 2008 11:37
Bonjour,

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.

Note : 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 lors de la création d'un canal virtuel ICO. Consultez l'article CTX113279 - How to Allow Custom Virtual Channels Created with ICO in Version 10.00 of the Windows Client pour plus d'informations.

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

  • Il est possible de créer un maximum de 32 canaux virtuels. 17 d'entre eux sont déjà réservés.

  • La taille maximum des noms de canaux virtuel est de 7 caractères.

  • Les 3 premieres caractères sont réservés pour le nom de l'éditeur et les 4 suivants pour le type de canal. Par exemple, CTXCDM représente le canal virtuel Citrix du mappage des disques

  • N'utilisez que des lettres (minuscules ou majuscules) et nombres ASCII
  • Les canaux virtuels utilisés par Citrix commencent par CTX et sont réservés à Citrix.


 

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

Commentaires
Ajouter un nouveau Rechercher
Ecrire un commentaire
Nom:
Email:
 
Titre:
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Saisissez le code que vous voyez.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."