next up previous
Next: A propos de ce Up: Enoncés des travaux pratiques Previous: Exercice 1

Exercice 2

Les sources de cet exercice se trouvent dans le répertoire ``. /TP-CORBA/EXO2''.




On se propose dans ce deuxième exercice d'ajouter une fonctionnalité de ``mémoire'' à notre calculatrice. La mémoire est implantée sous la forme d'un attribut CORBA. On rappel qu'un attribut d'interface CORBA est une donnée encapsulée dans un objet. Un attribut peut être consulté et/ou modifié à distance par un client. Dans notre cas, il s'agit d'un attribut en lecture seule.

Dans le mapping IDL/Java, un attribut en lecture/écriture nécessite la production de deux méthodes dans la souche. Le nom de ces méthodes est le nom de l'attribut lui-même. Ces méthodes sont utilisées par les clients pour manipuler les attributs à distance. Une seule méthode est générée dans le cas d'un attribut en lecture (voir les souches générées pour de plus amples informations).




On vous demande de :

1.
Compléter la description IDL tpcorba.idl, en ajoutant les méthodes ajouteMemoire, soustraitMemoire, multiplieMemoire et miseAZero à l'interface calcul. Chacune de ces méthodes prend un unique paramètre en in de type double (sauf miseAZero qui ne prend pas de paramètre). Elle mettent à jour la mémoire mais ne renvoient pas d'information au client. La méthode diviseMemoire doit lever une exception en cas de tentative de division par zéro (une exception CORBA est un événement déclenché lors de l'invocation d'un objet et qui est transmis à l'invoqueur de cet objet. Invoqueur et invoqué ne sont pas nécessairement localisés sur la même machine.).

2.
Compléter la définition de la classe d'implémentation dans le fichier $calcul\_impl$.java.
3.
Compléter le client afin de tester les quatre méthodes implantées. Le client doit afficher l'état initial de la mémoire, puis effectuer des opérations sur celle-ci. Enfin, avant de se terminer, il devra afficher l'état final de la mémoire.

4.
Que se passe-t-il lorsque la mémoire est utilisée par plusieurs clients successivement ?

PS : Les zones de code à compléter sont désignées par des étoiles.


next up previous
Next: A propos de ce Up: Enoncés des travaux pratiques Previous: Exercice 1
Frank Singhoff
2000-03-20