Cet article aborde quelque régles simples à respecter lors du développement d'application Windows devant être exécuté dans un environnement Multi-utilisateur Windows Terminal Serveur ou Metaframe de Citrix.
Cet article ne décrit pas le fonctionnement ni les API spécifiques à ces plateformes.
Vous trouverez ici les contraintes les plus courantes liées au développement et à l'intégration d'applications dans un environnement multi-utilisateurs TSE / Metaframe.
Terminal Server Edition, Microsoft.
Metaframe, Citrix ( surcouche pour TSE ).
Les applications doivent utiliser correctement les clefs HKEY_LOCAL_MACHINE et HKEY_CURRENT_USER de la base de registre.
L'application doit utiliser la clef HKEY_LOCAL_MACHINE uniquement pour stocker des informations globales, communes à tous les utilisateurs.
L'application doit utiliser la clef HKEY_CURRENT_USER uniquement pour stocker des informations propres à l'utilisateur.
Tout développement doit tenir compte que dans un environnement TSE, une machine n'est pas équivalente à un utilisateur.
1.2. Fichiers INI
Pour fournir les fonctionnalités multi-utilisateurs le système TSE gère les fichiers INI de manière à ce que chaque utilisateur ait ses propres fichiers (utilisation du répertoire Windows dans le %HOMEPATH% de l'utilisateur).
Pour accéder aux fichiers INI, l'application doit utiliser les API Win32 spécifiques à la gestion de ces fichiers et ne doit surtout pas utiliser des fonctions classiques d'ouverture, de modification de fichier (par exemple les fonctions de type " fopen " ne doivent pas être utilisées pour manipuler les fichiers .INI).
1.3. Chemins d'accès
Aucun chemin d'accès ne doit être codé en dur dans l'application, exemple C:\Path. En particulier si l'application utilise des fichiers temporaires il est impératif que le répertoire de travail soit pris dans l'environnement de l'utilisateur par exemple en utilisant la variable d'environnement %TEMP%.
1.4. Identification du client
Dans le cas d'une application client/serveur, l'application ne doit pas utiliser l'adresse IP comme identifiant du client. Sur un système TSE (Microsoft ) / METAFRAME (Citrix ) tous les utilisateurs accèdent au réseau avec la même adresse IP. Il est recommandé d'utiliser soit un fichier INI avec l'identifiant de l'utilisateur soit les variables %USERNAME% et/ou %CLIENTNAME%.
%USERNAME% retourne le nom de login NT de l'utilisateur. %CLIENTNAME% retourne le nom du poste client de l'utilisateur, cette variable n'est disponible que dans l'environnement TSE/METAFRAME, les applications doivent alors prendre en compte cette remarque si le code utilisé doit fonctionner sur un poste classique et sur un serveur TSE/METAFRAME.
1.5. Exécution multiple
Si l'application gère la communication IP, il faut s'assurer que les sockets privées sont allouées dynamiquement. Cette technique doit permettre d'exécuter plusieurs instances de la même application.
Sur un poste local il doit être possible de lancer plusieurs instances de l'application. Si ça n'est pas le cas l'application ne peut pas être installée sur un système TSE/METAFRAME.
1.6. Gestion de la mémoire
Il est évident que l'application doit gérer correctement l'allocation et la libération des espaces mémoires. Sachez que la consommation anormale de mémoire est ici amplifiée par le fait que l'application sera lancée plusieurs fois sur le serveur.
1.7. Utilisation Hardware
Les applications qui utilisent des ports de communication (PARALLELE ou SERIE) doivent utiliser l'environnement système pour retrouver la configuration des ports disponibles et les fonctions du système NT pour piloter ces ports.
Il est vivement déconseillé d'accéder à ces ports directement par des codes d'interruption DOS.
1.8. Regional Settings
Toute application faisant usage des "regional settings" (paramètres régionaux) doit le faire de manière à s'adapter aux " regional settings " en vigueur dans l'implantation ou le groupe d'utilisateurs concernés.
Par exemple, une application susceptible d'être déployée à l'étranger ne peut imposer d'utiliser des formats de dates issus des regional settings "french" alors que les "regional settings" en vigueur des sessions utilisateurs des sites à l'étranger peuvent être "english".
Note : ces précautions sont identiques que l'on soit dans une session utilisateur TSE/Metaframe ou que l'on soit dans une session NT Workstation.
2. Préconisations particulières
2.1. Objets NT4
Il faut vérifier que l'outil de développement utilisé construit les applications avec les objets Microsoft NT4 (exemple : boite de dialogue d'ouverture de fichier).
L'application ne doit pas forcer le rafraîchissement des menus par des fonctions qui désactivent et activent l'affichage complet de l'application. Ces méthodes ont pour effet de provoquer un réaffichage complet de l'interface ce qui est coûteux en ressources réseaux dans le cas d'un client distant.
2.2. Fin de l'application
Pour Citrix :
Lorsque l'application est destinée à être utilisée au travers de la publication ICA, il est nécessaire que la gestion de la fin d'exécution soit gérée correctement.
Si l'utilisateur termine l'application par un clic sur la croix en haut à droite de la fenêtre ou en sélectionnant la fonction Close (Alt-F4) il faut que le programme gère cette fin de programme comme si l'utilisateur quittait l'application par le menu 'Quitter'.
2.3. Objets Animés
Tous les objets animés de type écran de veille ou horloge sont à proscrire de tous les écrans d'une application, car chaque mise à jour de l'écran, répercutée sur le poste client, à un coût réseau important.
Par ailleurs les fonds d'écran doivent être le plus simple possible, les fonds de type photo en haute résolution sont déconseillés.
2.4. Imprimantes
Tous les pilotes d'imprimantes ne sont pas forcement supportés par le système TSE/METAFRAME.
Il est important de vérifier que l'application n'exige pas une imprimante particulière (caractéristiques spécifiques à cette imprimante). Si tel est le cas il faut vérifier que le pilote de l'imprimante est supporté sur TSE/METAFRAME, le site du constructeur de l'imprimante peut fournir ce renseignement ou le site du support de CITRIX contient des informations sur les pilotes déjà référencés comme n'étant pas supportés sur TSE/METAFRAME.
2.5. Scripts de compatibilité
Pour compléter l'installation et la configuration d'une application il est possible de créer des scripts de compatibilité qui vont assurer la distribution de fichiers et la configuration de l'environnement pour chaque utilisateur.
Des scripts sont déjà disponibles pour les applications standards telles que MS Office. Ces scripts sont stockés dans le répertoire "Application Compatibility Scripts" et peuvent êtres utilisés comme base pour configurer une application particulière.
3. Validation et homologation
Dans un premier temps la validation des points précédents permet d'enclencher la phase d'homologation technique celle-ci déclenchant l'homologation fonctionelle.
Ensuite il vous reste à étudier les points suivants :
volumétrie des impressions, en ayant à l'esprit le goulet d'étranglement qu'ils représentent dans cet environnement
impacts pour les aspects dimensionnement des capacités réseaux
tests de faisabilité et de dimensionnement des serveurs TSE
tests de montée en charge
recensements des informations à fournir auprès du support technique / Hot-line
procédures de livraisons spécifiques
Bien sur, selon votre architecture d'autres points peuvent être contrôlés. Sachez que l'intégration d'une application peut prendre d'une 1/2 journée à trois semaines selon les difficultés technique et/ou organisationnelle rencontrées.
Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur.
La licence d'utilisation Open Content ( http://opencontent.org/opl.shtml) vous permet d'utiliser librement les documents publiés sur mon espace personnel à condition de mentionner clairement le nom de son auteur avec un lien sur mon espace personnel de ce site et de garder son caractère "Open Content".