Précédent   Forum du club des développeurs et IT Pro > Autres langages > Autres langages > CORBA
CORBA Forum d'entraide et de discussion sur le développement distribué avec CORBA & les ORB
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 07/07/2009, 11h24   #1
asari29
Candidat au titre de Membre du Club
 
Inscription : juillet 2008
Messages : 25
Détails du profil
Informations personnelles :
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : juillet 2008
Messages : 25
Points : 10
Points : 10
Par défaut retourner une interface CORBA

Bonjour à tous, suite à des segfault que je ne comprend pas, je me pause des questions.

J'ai un client et un serveur qui communiquent via CORBA.
Mon serveur instancie et enregistre l'instance d'un objet (héritant du POA de l'objet) sur l'ORB.
Mon client instancie à son tour l'objet dérivé de la même description et le lie à celui enregistré sur l'ORB via le service de nomage.

Jusque là tout va bien.

Maintenant quelle est la marche à suivre lorsque l'objet partagé par le client et le serveur possède une méthode qui retourne un objet également issue d'une description idl (interface).

Est ce qu'un simple retour de l'objet est suffisant pour le partager entre les deux processus ou est il également nécessaire de l'enregistrer sur l'ORB comme on je l'ai fait pour le premier objet.

Merci d'avance.
asari29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2009, 22h45   #2
menator
Membre actif
 
Inscription : août 2005
Messages : 161
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 161
Points : 177
Points : 177
Oui un simple retour d'une référence d'objet permet de "partager" cet objet, du moment que le dialogue a été amorcé à travers un objet initial, dont le client a récupéré une référence via le service de nommage dans ton cas.

Pour que l'on soit bien d'accord, je reformule :
Côté serveur, tout objet qui est appelable par un client doit être déclaré dans l'ORB (qui est local au processus serveur). L'ORB pourra ainsi transmettre les appels entrants aux objets.
Au moins un des objets est enregistré dans le service de nommage, ce qui permet au client de "voir" un objet initial sur lequel il peut faire des appels.
Le contrat IDL peut prévoir des méthodes qui renvoient des objets (en fait des références d'objets, aucun objet ne transite) et dans cas les références d'objets renvoyées par appels sur l'objet initial sont parfaitement exploitables côté client
Mais comme indiqué plus haut les objets doivent être correctement déclarés côté serveur.
menator est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2009, 11h53   #3
asari29
Candidat au titre de Membre du Club
 
Inscription : juillet 2008
Messages : 25
Détails du profil
Informations personnelles :
Localisation : France, Finistère (Bretagne)

Informations forums :
Inscription : juillet 2008
Messages : 25
Points : 10
Points : 10
Merci pour ta réponse, j'avais résolu le problème de mon coté mais ça pourra être utile pour d'autres.
Mon problème provenait d'un objet que je transmettait via un appel de fonction mais dont tous les attribut n'étaient pas tous instancié.

Il faut vraiment faire attention au objets que vous transmettez!

Chaque attribut (de type classe) doit impérativement être instancié... C'est une source fréquente d'erreur.

Merci encore!
asari29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 17h18   #4
salima198710
Invité régulier
 
Inscription : juin 2010
Messages : 32
Détails du profil
Informations forums :
Inscription : juin 2010
Messages : 32
Points : 8
Points : 8
svp est ce que vous pouvez développez votre solution par un exemple bien détaillé parce que j'ai pas pu savoir où je fait l'instanciation !!!
merci d'avance
salima198710 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h44.


 
 
 
 
Partenaires

Hébergement Web