Académique Documents
Professionnel Documents
Culture Documents
O (JAVA avancé)
TP: CORBA
Configurations
1- Télécharger et installer JDK1.8 depuis
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
2- Ajouter le chemin du JDK1.8 dans les variables d’environnement
https://www.youtube.com/watch?v=l1VxWWubxFo
3- Ajouter JDK1.8 Au Eclipse et Créer un nouveau projet avec JDK8
https://www.youtube.com/watch?v=V7V3INd82Xw
Exercice 1
Nous voulons créer deux applications Client / Serveur qui communiquent avec le bus CORBA qui va
afficher un message de bienvenue.
1- La première étape est de créer le ficher IDL. Ci-dessou l’interface sur laquelle nous allons travailler
module HelloWorldApp{
interface Hello{
attribute string HelloMessage;
};
};
2- On doit compiler le fichier IDL, on ouvre l’invite de commande dans le dossier où se trouve
ce fichier et on fait la commande suivante :
package HelloWorldServer;
import org.omg.CORBA.ORB;
import HelloWorldApp.HelloPOA;
1
P.O.O (JAVA avancé)
@Override
public String HelloMessage() {
// TODO Auto-generated method stub
return message;
}
@Override
public void HelloMessage(String newHelloMessage) {
message = newHelloMessage;
}
import org.omg.CORBA.ORB;
import org.omg.CosNaming.*;
import org.omg.PortableServer.*;
import HelloWorldApp.*;
POA rootpoa =
POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
rootpoa.the_POAManager().activate();
org.omg.CORBA.Object ref =
rootpoa.servant_to_reference(helloservant);
Hello href = HelloHelper.narrow(ref);
org.omg.CORBA.Object objRef =
orb.resolve_initial_references("NameService");
NamingContextExt ncRef =
NamingContextExtHelper.narrow(objRef);
for (;;) {
orb.run();
}
}
catch (Exception e) {
System.err.println("ERROR: " + e);
2
P.O.O (JAVA avancé)
e.printStackTrace(System.out);
}
}
}
5- Le Main du coté Client
package HelloWorldClient;
import org.omg.CORBA.ORB;
import org.omg.CosNaming.*;
import HelloWorldApp.*;
org.omg.CORBA.Object objRef =
orb.resolve_initial_references("NameService");
NamingContextExt ncRef =
NamingContextExtHelper.narrow(objRef);
String name = "Hello";
hello = HelloHelper.narrow(ncRef.resolve_str(name));
} catch (Exception e) {
System.out.println("ERROR : " + e) ;
e.printStackTrace(System.out);
}
}
}
6- Avant de lancer les deux programmes, on doit démarrer le service ORB depuis une invite de
commande
-ORBInitialPort 9999
7- En lance les deux programmes
3
P.O.O (JAVA avancé)
Exercice 2
Développer une application client-serveur Corba dans laquelle le serveur offre les services distants
suivant au client :
module ComplexeApp{
struct Complexe{
double re;
double im;
};
interface ComplexeOpr{
Complexe sommeComplexe(in Complexe c1, in Complexe c2);
Complexe produitComplexe(in Complexe c1, in Complexe c2);
string afficheComplexe(in Complexe c);
};
};