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 » USB Over Networkde 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) :

Lecteur DLPDesign

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 :

Lecture forfait 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 ! :

USB Over Network Serveur

 

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  :

USB Over Network Client

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

 

Test tag btug

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)

Install provider

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

Device provider

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 :

Discover now

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

Enable device

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

View tags 1

 

 

View tags 2

 

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

New process

·         On donne un nom à notre nouveau processus

Simple process

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

Create logical device


Create logical device 2

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

Bind

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

Nouveau composant


SQL sink

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

Start processus

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.

Publié le 05/01/2009  par Roch Baduel