Université Joseph Fourier
DEUG STPI - 2ème année - IUP MIAG - 1ère année
Introduction aux systèmes et réseaux
Construction d'un tableur réparti
Étape 2 : répartition du tableur
Au cours des séances précédentes, vous avez construit et utilisé un tableur centralisé. Vous allez maintenant en construire une version répartie, en utilisant les mécanismes de gestion d'objets répartis fournis par Tcl_DP (voir fiche correspondante).

Le principe est simple : on considère maintenant le tableur comme un "objet réparti" géré par un serveur et distribué par ce serveur aux processus clients. L'état de cet objet est l'ensemble des valeurs des cases (le tableau désigné par int dans la version centralisée), qu'il pourra être commode de considérer comme un vecteur de taille n*p (si on a n lignes et p colonnes).La méthode la plus importante est la modification de la valeur d'une case (qui entraîne la réévaluation de l'ensemble et son réaffichage partout - on voit ici l'utilité du déclencheur). D'autres méthodes utiles sont la remise à zéro, et la consultation de l'état courant.

Pour réaliser la version répartie du tableur, vous pourrez vous inspirer d'une application répartie très voisine dans sa structure, mais beaucoup plus simple dans ses fonctions : le jeu de "Tic Tac Toe", qui fait partie des exemples distribués avec Tcl_DP. Vous trouverez les programmes dans le répertoire
 
/h/thales/u8/enseigt/krakowis/tp-tcl/TicTacToe/

Mais essayez de réfléchir d'abord par vous-mêmes à la structure du tableur réparti, avant de consulter ces programmes.
 

Il est demandé à chaque groupe de remettre un compte-rendu de ce travail, avec en annexe les textes des programmes du tableur réparti. Essayez de rédiger une conclusion résumant ce que vous avez appris au cours de l'ensemble des TP.
 
Dans une deuxième étape, vous pourrez utiliser le mécanisme de classe pour créer plusieurs exemplaires du tableur. Peut-on faire référence, dans un tableur, aux cases d'un autre ? Essayez de répondre à cette question même si vous ne construisez pas le programme.