User Tools

Site Tools


sysrep:corba

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
sysrep:corba [2012/11/14 14:56] – created orelsysrep: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 {{:sysrep:echo-java.tgz}} et {{:sysrep:echo-cpp-omniorb.tgz}} de
 l'implantation dans les langages Java et C++ du service suivant : l'implantation dans les langages Java et C++ du service suivant :
  
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'appelle "idlj", le service de nommage se nomme "tnameserv". 
-    >= 1.4. Le compilateur IDL s'appelle "idlj", le service de nommage +  * Pour CORBA C++, nous utilisons l'ORB OmniORB. Le compilateur IDL s'appelle "omniidl", le service de nommage se nomme "omniNames". Vous pouvez configurer votre environnement de la façon suivante :
-    se nomme "tnameserv".+
  
-  Pour CORBA C++, nous utilisons l'ORB OmniORB. Le compilateur IDL +    $ source echo-cpp-omniorb/omniorb.sh
-    s'appelle "omniidl", le service de nommage se nomme "omniNames". +
-    Vous pouvez configurer votre environnement de la façon suivante :+
  
-      $ source echo-cpp-omniorb/omniorb.sh+==Quelques exercices==
  
-==Compilation et exécution de Echo en Java et en C++==+  - Compilez et exécutez l'exemple Echo en Java et en C++. Lire les consignes dans les fichiers README.txt. 
 +  - Reproduire l'expérience sur deux machines distinctes. 
 +  - Reproduire l'expérience en mixant un client Java et un serveur C++ et réciproquement. On utilisera de préférence le service de nommage de Java (tnameserv). 
 +  - 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 //echoLong()// dans le fichier généré //EchoOperations.java//. Que remarquez-vous ? Pourquoi la méthode projetée de manipule-t-elle pas un //long// ? Implantez cette méthode dans votre serveur et testez-là.
  
-  a) Lire les consignes dans les fichiers README.txt. 
- 
-  b) Reproduire l'expérience sur deux machines distinctes. 
- 
-  c) Reproduire l'expérience en mixant un client Java et un serveur 
-     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  
-   "any echo(in any a)" manipulant le type any. [BONUS] 
  
 +/*  - 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/serveur de compte bancaire Implanter en Java le service client/serveur de compte bancaire
-définit par l'interface Bank.idl.+définit par l'interface "bank.idl".
  
 +<code idl bank.idl>
   interface Account {   interface Account {
     void deposit(in unsigned long amount );     void deposit(in unsigned long amount );
Line 70: Line 56:
     Account move(in Bank target, in Account a);     Account move(in Bank target, in Account a);
   };   };
 +</code>  
  
-Note : La méthode move() utilisera les méthodes balance(), destroy(),+__Note__ : La méthode move() utilisera les méthodes balance(), destroy(),
 create() et deposit(). create() et deposit().
  
Line 77: Line 64:
 de comptes. Par exemple : de comptes. Par exemple :
  
-  - Account create(out long id); +<code idl> 
-  Account lookup(in long id);+Account create(out long id); 
 +Account lookup(in long id); 
 +</code>
  
  
Line 112: Line 101:
   * OmniORBpy : http://omniorb.sourceforge.net/omnipy3/omniORBpy/   * OmniORBpy : http://omniorb.sourceforge.net/omnipy3/omniORBpy/
   * Tutoriel Python : http://docs.python.org/   * Tutoriel Python : http://docs.python.org/
- 
sysrep/corba.1352904991.txt.gz · Last modified: 2024/03/18 15:05 (external edit)