Exemple: Calculer un montant TTC à partir d'un montant HT et un taux de TVA en utilisant l'architecture CORBA.
exo1: simple application client/serveur CORBA. L'objet hébergé par le serveur est constitué de deux méthodes (incrementer et decrementer) définies dans l'interface IDL calcul (fichier server.idl).
Realisé par : Mahdi Ben Zinouba
- Les interactions entre le serveur et l’OA: Le serveur se charge de a. La création des servants b. L’enregistrement des servants au niveau de l’OA c. Activation de l’OA
- calculImpl hérite de la classe abstraite calculPOA et implémente les méthodes incrementer et decrementer
- Dans les deux méthodes incrementer et decrementer on trouve le block de code suivant qui se charge de la créaction et l’émission des requêtes vers le serveur
- Le block de code suivant se charge d’appeler les implémentations des méthodes incrementer et decrementer org.omg.CORBA.portable.OutputStream $out = _request ("incrementer", true); $out.write_long (data.value); $in = _invoke ($out); data.value = $in.read_long (); switch (__method.intValue ()) { case 0: // exo1/calcul/incrementer { org.omg.CORBA.IntHolder data = new org.omg.CORBA.IntHolder (); data.value = in.read_long (); this.incrementer (data); out = $rh.createReply(); out.write_long (data.value); break; } case 1: // exo1/calcul/decrementer { org.omg.CORBA.IntHolder data = new org.omg.CORBA.IntHolder (); data.value = in.read_long (); this.decrementer (data); out = $rh.createReply(); out.write_long (data.value); break; } default: throw new org.omg.CORBA.BAD_OPERATION (0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE); }