L’utilisation de techniques de virtualisation devient de plus en plus fréquente. En effet, cette technique offre beaucoup d’avantages. Pour n’en citer que quelques uns :
· Archivage simple et rapide d’un environnement complexe.
· Sauvegarde de l’état avant une opération de mise à jour, permettant de revenir rapidement à l’état antérieur.
· Déploiement simplifié d’environnements de développement multiples
· Allocation de ressources (mémoire, CPU)
· Cohabitation de plusieurs environnements sur une même machine physique permettant de tester des infrastructures mettant en œuvre plusieurs serveurs
· Possibilité de désactiver / activer à la demande des serveurs
· Migration simple d’une machine physique vers une autre
Depuis la sortie de Windows 2008 et de Hyper-V, l’utilisation de machines virtuelles en environnement Microsoft est devenu une solution plus souple et plus performante (Ceci fera certainement surement l’objet d’un prochain billet, vu les bénéfices que cela apporte sur des projets BizTalk J). Pour ma part, j’utilise intensivement Hyper-V depuis la disponibilité de la béta et depuis quelques mois je suis passé au « tout virtuel » pour le développement : plus d’installation en direct sur ma machine physique.
Bien évidemment, tout n’est pas tout « rose » non plus avec Hyper-V. Un des inconvénients est l’impossibilité d’accéder à certains périphériques USB.
Un bon exemple est l’installation de BizTalk RFID dans une VM et l’utilisation d’un lecteur RFID USB. (Le problème ne se pose bien sur pas avec un lecteur Ethernet/TCP). Dans cette configuration il est impossible de déclarer directement notre lecteur dans BizTalk RFID.
Pour résoudre ce problème, j’ai recherché un moyen d’accéder à distance à des périphériques USB. La solution que j’ai trouvée (grâce à mon moteur de recherche préféré) me semble plutôt élégante et simple de mise en œuvre : il s’agit d’une solution de partage de périphériques USB par le réseau :
Le produit « USB Over Network »
de la société Fabula Tech
Site web : http://www.usb-over-network.com/
Je vous propose donc de voir les étapes de mise en œuvre depuis l’installation du lecteur jusqu’à une implémentation minimaliste dans BizTalk 2009 RFID.
Installation sur la machine physique du lecteur RFID
Il est tout d’abord nécessaire d’installer le lecteur sur la machine physique. Pour ce faire, le plus difficile est de s’assurer que l’on a bien les bons drivers. Dans mon cas il s’agit d’un lecteur de la société DLPDesign (http://www.dlpdesign.com/) qui s’appui sur un circuit de FTDI (http://www.ftdichip.com/). Ce lecteur simple est amplement suffisant pour l’usage que je lui réserve (démonstrations) :

Je n’ai pas tout de suite trouvé les pilotes sur le site de DlpDesign et j’ai cru bon de tenter d’installer ceux fournis par FTDI : très mauvaise idée ! En effet DlpDesign a fait personnaliser le PID (identifiant produit dans la norme USB) et Windows ne reconnait donc pas les drivers standards de FTDI. En étant un peu plus persévérant, j’ai trouvé les drivers. A partir de là, l’installation est très classique et le lecteur est reconnu. Il est alors possible de le tester à l’aide de l’application de test fournie par DlpDesign (rfidDemo).
Ici on peut voir le résultat de la lecture d’un forfait de ski :

Pour pouvoir accéder au lecteur depuis la machine virtuelle, il nous faut installer Usb-Over-Network. L’installation se fait en deux temps :
· Installation de la partie serveur sur la machine hôte
· Installation de la partie client sur la VM
Une fois le module serveur installé, un service Windows se charge du partage des périphériques USB et une application permet de gérer les partages : on choisi le périphérique à partager, un click et c’est fini ! :

Dans la machine virtuelle, on utilise de même un petit utilitaire pour se connecter au lecteur et ensuite on installe les pilotes pour le lecteur RFID :

Il est maintenant possible d’accéder depuis la machine virtuelle au lecteur RFID, tout cela de manière transparente :

Configuration du lecteur dans BizTalk RFID 2009
Pour pouvoir utiliser le lecteur dans BizTalk RFID il faut d’abord installer un « provider ». Dans le cas du lecteur de DLPDesign il existe un provider écrit par Irving De la Cruz (program manager dans la division Connected Systems de Microsoft). Le provider est disponible l’adresse suivante : http://blogs.msdn.com/irvingd/pages/biztalk-rfid.aspx
Cependant, celui-ci cible la version 2006 R2 de BizTalk. Il faudra donc, avant de pouvoir l’utiliser, remplacer dans le projet les références aux assemblages BizTalk 2006 R2 par ceux de BizTalk 2009. Ensuite il suffit de recompiler et on peut alors installer.
L’installation se fait simplement en lançant un fichier batch (DlpProvider_Install.cmd)

On peut constater dans la console d’administration de BizTalk RFID que le provider est maintenant disponible :

La déclaration de notre lecteur est alors très simple. Elle se fait en deux étapes :
· On sélectionne « Discover Now » dans le menu contextuel du provider :

· On va ensuite sur « Devices » : Notre lecteur apparait et il suffit de choisir dans son menu contextuel « Enable » sans rentrer d’informations de connexion :

· Il est alors possible de tester le lecteur, depuis BizTalk RFID, avec la commande « View Tags » :


Création d’un processus simple dans BizTalk RFID :
Pour terminer, il nous est possible de créer un processus simple dans BizTalk RFID permettant d’enregistrer les lectures de Tag dans une base de données.
Pour ce faire les étapes sont les suivantes :
· On choisi « New Process » dans le menu contextuel des processus

· On donne un nom à notre nouveau processus

· Dans l’assistant de liaison on crée un périphérique logique :


· On le « Bind » à notre Lecteur RFID (Device Physique) :

· On rajoute un composant pour enregistrer dans la base les tags :


· Notre processus est créé, il ne reste plus qu’à le démarrer :

A partir de ce moment les Tag lus par le lecteur sont enregistrés dans la base SQL Server…
Conclusion :
Nous avons vu qu’il était très simple de mettre en œuvre un lecteur RFID avec BizTalk 2009 RFID, à condition de disposer des pilotes et du provider.
Par ailleurs l’utilisation d’un lecteur USB dans une machine virtuelle HyperV est rendue tout à fait transparente par l’utilisation d’un logiciel de partage réseau de périphérique USB : USB Over Network de Fabula Tech.