Prototypage d`interfaces par langage de script Le Python, c

publicité
Prototypage d’interfaces par langage de script
Le Python, c’est bon
Cours 6 : Messages et Ivy
Le but de ce (dernier) TD est triple. Il doit vous montrer :
• une application professionnelle écrite en python,
• un moyen simple et efficace de communication entre programmes,
• comment comprendre et utiliser le code d’une autre personne.
Nous allons ici vous donner uniquement quelques informations parcellaires
et une liste de choses à faire. Vous devriez vous en sortir très bien.
1
Ivy
Commencez par télécharger la dernière version de Ivy pour python (la 2.1)
là : http://www.tls.cena.fr/products/ivy/. Attention à bien télécharger
la version (dans download/sources).
Lisez le document ci : http://www.tls.cena.fr/products/ivy/documentation/
ivy-ihm2002-02.pdf. Vous savez maintenant à quoi sert Ivy.
1.1
Fonctionnement
Nous allons utiliser Ivy via le programme ivyprobe.py que vous trouverez dans le
répertoire examples. Copiez le dans son répertoire père et exécutez la commande
python ivyprobe.py -h.
Exécutez maintenant la commande python ivyprobe.py -b 172.16:2010 -n
votreNom. À quoi servent ces paramètres ? Assurez-vous que tout le monde ai
un nom différent.
Tapez ensuite la commande
.bind (.*)
Vous devriez recevoir maintenant tous les messages qui vont transiter par le
bus Ivy.
1
2
Expression régulière
Dans Ivy on s’abonne à des messages par expression régulière. Pour plus de
renseignements sur les expressions régulières et leurs utilisations dans python,
vous pouvez lire :
• http://www.amk.ca/python/howto/regex/
• http://docs.python.org/lib/module-re.html
• http://diveintopython.adrahon.org/regular_expressions/index.html
On s’abonne en “bindant” une expression régulière, les paramètres reçu étant
ceux entre parenthèses. Ainsi :
• .bind ˆtoto : (.*) vous abonnera à recevoir tous les textes placés après
“toto : ” plécé en début de ligne,
• (.*) et (.*) vous abonnera aux deux parties entre parenthèses placées entre
“ et ”.
Faites quelques essais.
3
Communication
On vous demande de modifier le code de l’application ivyprobe.py pour y inclure
les fonctions que vous avez créées lors du TD de cryptographie. Vous devez être
capable de décoder un message codé à la volée si vous connaissez la clé, et de
décrypter un message dont vous ne connaissez pas la clé.
Pour communiquer vos messages, on utilsera 3 expressions régulières :
• “ˆcesar : (.*)” pour envoyer sur le bus des messages encodés selon le code
de césar,
• “ˆvigenere : (.*)” pour envoyer sur le bus des messages encodés selon le
code de Vigenère,
• “ˆrsa : (.*)” pour envoyer sur le bus des messages encodés selon le code
RSA.
Pour vous envoyer les différentes clés, procédez avec vos propres canaux.
Attention cependant aux espions !
Vous pouvez bien-sur proposer d’autres canaux, il suffit de les écrire au
tableau pour que d’autres puissent vous entendre.
2
Téléchargement