sysrep:corba
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
sysrep:corba [2012/11/14 14:57] – orel | sysrep:corba [2024/03/18 15:06] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 10: | Line 10: | ||
==== Echo en Java et C++ ==== | ==== Echo en Java et C++ ==== | ||
- | Vous disposez avec les fichiers echo-java.tgz et echo-cpp-omninorb.tgz de | + | Vous disposez avec les fichiers |
l' | l' | ||
Line 23: | Line 23: | ||
==Configuration de votre environnement Linux== | ==Configuration de votre environnement Linux== | ||
- | * Pour CORBA Java, il suffit de vérifier que vous disposez de Java | + | * Pour CORBA Java, il suffit de vérifier que vous disposez de Java >= 1.4. Le compilateur IDL s' |
- | | + | * Pour CORBA C++, nous utilisons l'ORB OmniORB. Le compilateur IDL s' |
- | | + | |
- | * Pour CORBA C++, nous utilisons l'ORB OmniORB. Le compilateur IDL | + | |
- | | + | |
- | | + | |
- | | + | |
- | ==Compilation et exécution de Echo en Java et en C++== | + | ==Quelques exercices== |
- | | + | |
+ | - Reproduire l' | ||
+ | - Reproduire l' | ||
+ | - En java. Ajoutez une méthode "long echoLong(in long x)" dans le contrat IDL de Echo et testez là. Pour y parvenir, il faut préalablement modifier l'IDL et le recompiler, puis il faut chercher la projection de la méthode // | ||
- | b) Reproduire l' | ||
- | |||
- | c) Reproduire l' | ||
- | C++ et réciproquement. | ||
- | |||
- | __Nota Bene__ : on utilisera de préférence le service de nommage de Java (tnameserv). | ||
- | |||
- | 3) Ajouter une méthode "long echoLong(in long x)" dans le contrat IDL | ||
- | de Echo et tester là... | ||
- | |||
- | IMPORTANT : recompiler l'IDL et chercher la projection de la méthode | ||
- | echoLong() dans le fichier généré EchoOperations.java. Il faut | ||
- | implanter le prototype exact, sinon çà ne marche pas ! | ||
- | | ||
- | 4) Remplacer les méthodes echoLong() et echoString() par une seule méthode | ||
- | " | ||
+ | /* - Remplacer les méthodes echoLong() et echoString() par une seule méthode "any echo(in any a)" manipulant le type any. [BONUS] */ | ||
+ | |||
+ | |||
====Compte Bancaire==== | ====Compte Bancaire==== | ||
Implanter en Java le service client/ | Implanter en Java le service client/ | ||
- | définit par l' | + | définit par l' |
+ | <code idl bank.idl> | ||
interface Account { | interface Account { | ||
void deposit(in unsigned long amount ); | void deposit(in unsigned long amount ); | ||
Line 69: | Line 56: | ||
Account move(in Bank target, in Account a); | Account move(in Bank target, in Account a); | ||
}; | }; | ||
+ | </ | ||
- | Note : La méthode move() utilisera les méthodes balance(), destroy(), | + | __Note__ |
create() et deposit(). | create() et deposit(). | ||
Line 76: | Line 64: | ||
de comptes. Par exemple : | de comptes. Par exemple : | ||
- | - Account create(out long id); | + | <code idl> |
- | | + | Account create(out long id); |
+ | Account lookup(in long id); | ||
+ | </ | ||
Line 111: | Line 101: | ||
* OmniORBpy : http:// | * OmniORBpy : http:// | ||
* Tutoriel Python : http:// | * Tutoriel Python : http:// | ||
- |
sysrep/corba.1352905040.txt.gz · Last modified: 2024/03/18 15:05 (external edit)