Difference between revisions of "Café des sciences"

From Wikili
Jump to: navigation, search
Line 11: Line 11:
  
 
Nous nous sommes rendus compte que l’organisation des programmes reflétait ce qui se passe, dans la réalité, lors d’une soirée dans un ''café des sciences'' :
 
Nous nous sommes rendus compte que l’organisation des programmes reflétait ce qui se passe, dans la réalité, lors d’une soirée dans un ''café des sciences'' :
   ''Un nombre indéterminé de curieux (ou '''clients''') veulent poser des questions et entendre les réponses d’un ensemble de « '''savants''' » invités à débattre de ce qu’ils savent.  
+
   ''Un nombre indéterminé de curieux (ou '''clients''') veulent poser des questions et entendre les réponses d’un ensemble de '''savants''' invités à débattre de ce qu’ils savent. ''
   Le client demande à l’'''animateur''' du café de sciences à quel savant il doit s’adresser pour savoir telle ou telle chose…
+
   ''Le client demande à l’'''animateur''' du café de sciences à quel savant il doit s’adresser pour savoir telle ou telle chose…''
   L’animateur (qui connaît les savants) le recommande à un savant particulier pour éviter le chahut systématique dans ce type de réunion et le dialogue s’entame.
+
   ''L’animateur (qui connaît les savants) le recommande à un savant particulier pour éviter le chahut systématique dans ce type de réunion et le dialogue s’entame.''
   D’autres clients pourront avec d’autres questions profiter de l’enthousiasme grandissant du savant (il est lancé).  
+
   ''D’autres clients pourront avec d’autres questions profiter de l’enthousiasme grandissant du savant (il est lancé).''
   Dans notre cas, le savant « informatique » peut en « temps partagé » répondre à plusieurs clients.''
+
   ''Dans notre cas, le savant « informatique » peut en « temps partagé » répondre à plusieurs clients.''
 
   
 
   
 
Nous avons implémenté ce concept en utilisant le système de sockets.  
 
Nous avons implémenté ce concept en utilisant le système de sockets.  

Revision as of 15:23, 13 February 2007

Café des sciences (développé par Tiébaut Mochel et Raymond Ripp)

On dirait une usine à gaz mais ça marche du tonnerre depuis plus de 7 ans.

 Attention voir Tcl/Tk pour que le package Tcl http fonctionne avec le café des sciences

Principe

La relative lenteur du chargement de Gscope en mémoire nécessitait d’en faire un serveur fonctionnant de manière permanente. Il est possible d’interroger ce serveur en lui demandant d’exécuter une procédure et de renvoyer son résultat. Comme il est possible, à priori, d’utiliser plusieurs serveurs, il est nécessaire de les gérer.

Nous nous sommes rendus compte que l’organisation des programmes reflétait ce qui se passe, dans la réalité, lors d’une soirée dans un café des sciences :

 Un nombre indéterminé de curieux (ou clients) veulent poser des questions et entendre les réponses d’un ensemble de savants invités à débattre de ce qu’ils savent. 
 Le client demande à l’animateur du café de sciences à quel savant il doit s’adresser pour savoir telle ou telle chose…
 L’animateur (qui connaît les savants) le recommande à un savant particulier pour éviter le chahut systématique dans ce type de réunion et le dialogue s’entame.
 D’autres clients pourront avec d’autres questions profiter de l’enthousiasme grandissant du savant (il est lancé). 
 Dans notre cas, le savant « informatique » peut en « temps partagé » répondre à plusieurs clients.

Nous avons implémenté ce concept en utilisant le système de sockets. Une Socket permet à deux processus (qui peuvent résider sur deux machines différentes) de communiquer. Un même processus peut communiquer éventuellement avec plusieurs autres « en même temps » à travers des canaux différents.

La connexion d’un processus client à un processus existant ne se fait pas directement sur décision du client, celui-ci doit demender à un processus maître, qui tourne déjà, de les mettre en relation.

Le client, s’il veut envoyer des ordres, demande d’abord au café l’identifiant du savant auquel il veut se connecter. Le café répond avec l’adresse IP et le port sur lequel le savant tourne. Le client peut ensuite se connecter au savant et lui envoyer des ordres. Le savant exécute ces ordres dans un interpréteur fils sécurisé. L’interpréteur sécurisé empèche le client d’exécuter certaines fonctions Tcl comme exec, empêchant ainsi un utilisateur de lancer des commandes dangereuses pour la sécurité de Wscope.

L’administrateur système peut gérer le café grâce à un programme de gestion. En s’adressant au café, il est par exemple possible d’obtenir la liste des savants qui tournent, de fermer le café ou de lister les questions posées.

Une implémentation de ce concept a été écrite entièrement en Tcl. Ceci permet au savant d’accéder directement à Gscope. Néanmoins, il est possible de changer de langage : par exemple, écrire la partie client en Java, C, ou autre permet d’accéder aux résultats de Gscope à partir de ces langages. D’autre part, si Gscope est porté vers un autre langage, la partie Wscope en Tcl sera immédiatement utilisable.

L’utilisation optimale du café des sciences est de faire communiquer des clients légers, par exemple le programme CGI sur un petit serveur Web, et de faire tourner la partie café sur une machine dédiée au service de données. Le café permet des gains de performance non négligeables en évitant le chargement de l’ensemble de Gscope (environ 300 000 lignes de code Tcl) à chaque requête CGI.

Utilisation

  • en langage de commande
    • question_de_science HOST:PORT:SCIENCE COMMANDE
    • qds HOST:PORT:SCIENCE COMMANDE

HOST est par défaut soit ouragan ou récemment star6 ça dépend de la science demandée PORT est par défaut 20000 SCIENCE est en général un projet gscope mais ça peut être genoret ou tout autre programme qui se respecte

on peut mettre, par exemple

 qds SCIENCE ListeDesPABs > FichierResultat.txt
  • dans gscope
    • QuestionDeScience HOST:PORT:SCIENCE COMMANDE
 set Resultat [QuestionDeScience Pabyssi "ret FileMoi nuctfa PABY0025]