IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

CORBA Discussion :

[Debutant][Corba]Projet Plateforme Courtage Electronique


Sujet :

CORBA

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 47
    Points : 20
    Points
    20
    Par défaut [Debutant][Corba]Projet Plateforme Courtage Electronique
    Bonjour, je viens aujourd'hui vous demander conseils pour le projet que je dois mener :
    Réaliser une plate forme electronique de courtage aux enchères
    Je vais essayer de mener à bien ce projet, en copiant les différentes étapes que je rencontrerai, et je vous demanderai conseils (ça risque d'être souvent à la vue de mes connaissances en la matière ne Corba ou en Java....).

    J'en viens donc à l'objectif : développer une plateforme qui permet de mettre en relation un vendeur d'un objet avec des acheteurs intéressés.
    La période du processus de vente est fixée par le vendeur. A la fin, l'encherisseur le plus offrant sera considéré comme le futur acheteur ; il devra engager le processus de vente avec le vendeur (je ne gererai pas dans un premier temps cette étape...). Cette plateforme ser donc utilisée par deux types d'utilisateurs : acheteur et vendeur.

    Pour le vendeur :
    il doit pouvoir initier une vente d'un objet en précisant le nature et la catégorie, donner la période de vente, le prix de départ, le pas d'enchère et la date de fin (que je vais limitter dans un premier temps à quelques heures...).
    Le vendeur pourra consulter l'état des ventes qu'il aura engagé....

    Pour l'acheteur :
    il pourra consuter les objets d'une catégorie, enchérir sur les objets consultés, et être tenu au courant lorsqu'il aura remporté une enchère...

    Voici donc mon projet, ça ressemble trait pour trait au système d'eBay, mais je veux coder ça en Corba avec un ORB de type OpenOrb.

  2. #2
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 47
    Points : 20
    Points
    20
    Par défaut
    Donc, pour commencer le projet, je suis en train de travailler sur le contrat IDL....
    En définissant toutes les méthodes accessibles respectivement au Vendeur et à l'Acheteur...

    Dès que je serai satisfait de ce dernier, je le posterai pour vus demander ce que vous en pensez....

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 47
    Points : 20
    Points
    20
    Par défaut Suite : voici mon IDL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    //Contrat IDL de la plate forme de courtage *
    module courtage_stri
    {
    	//Interface definissant les objets de la salle de courtage
    	interface V_objet
    	{
    		//Variables définies dans l'interface V_objet (objets en vente)
    		attribute string nomobjet;			// identificateur de l'objet
    		attribute string categorie;			//categorie de l'objet mis en vente
    		attribute string description;		//description de l'objet
    		attribute float prix_depart;		//prix de depart de l'objet
    		attribute float pas;				//pas d'incrementation du prix de l'objet
    		attribute float prix_actuel;		//Par défaut, fixé au prix de départ sinon de la mailleure enchere
    		attribute long date;				//date de fin d'enchere
    		attribute long nom_vendeur;			//identificateur du vendeur
    		attribute string meilleur_acheteur; //contient l'identifiant du meilleur encherisseur
    	 
    		
    		//Gestion des exceptions possibles
    		exception tempsdepasse//exeption de la date de fin d'enchere depassee
    		{	long date;	};
    
    		//Méthode invoquée par l'acheteur : enchérir avec en paramètres son identification (ici son adresse electronique) et le nouveau prix 
    		void encherir (in string mail_utilisateur, in float new_prix) raises (tempsdepasse);
    		
    	};//Fin de l'interface V_objet
    	
    	 //Factory  qui gere toutes les actions de la salle de courtage
    	interface GestionVentes 
    	{
    		//Description de tous les paramètres d'un objet
    		V_objet ObtenirVentes(in string nom_objet);	//retournant l'IOR d'un objet CORBA V_objet
    		
    		//Création d'une vente par un vendeur
    		CreerVentes(in string nomobjet, in string categorie, in string description, in float prix_depart, in float pas, in long date, in string nom_vendeur);
    		
    		//Suppression d'un objet quand la vente de celui ci est finie
    		SupprimerVentes(in string nomobjet);
    		
    		//Consultation de tous les objets de la salle de courtage
    		ListerVentes(in string mail_utilisateur);
    		
    		//Consultation des objets mis en vente triés par catégorie
    		ListeCategorieObjets(in string categorie);
    	};	//Fin de l'interface GestionVentes
    
    	//Interface gerant les utilisateurs
    	interface Utilisateur 
    	{
    		readonly string mail_utilisateur;
    		typedef string message_notif;
    
    		//Fonction permettant de notifier a un vendeur que son produit est vendu et a quel prix
    		void notifier_vendeur (in string message_notif);
    		//Fonction permettant de notifier a un acheteur qu'il est le meilleur encherisseur sur un produit donné
    		void notifier_acheteur (in string message_notif);
    	};//Fin de l'interface utilisateurs
    };//Fin du module courtage_stri
    VOilà, qu'en pensez vous??

    Merci!!

  4. #4
    Membre habitué
    Inscrit en
    Août 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 161
    Points : 193
    Points
    193
    Par défaut
    Tout d'abord bravo: je suis content de voir des personnes s'interessant à CORBA à l'heure des WebServices. CORBA est associé à une vision de l'informatique distribuée, certes chahutée par la déferlante WS (et avec certaines bonnes raisons), mais qui reste passionante et porteuses de nombreux concepts essentiels.

    Quelques remarques sur ton IDL (plutôt au niveau technique, je te laisse l'aspect fonctionnel ) :

    - les "attribute" sont en fait peu utilisés : un attribute va seulement donner 1 ou 2 méthodes getXXX + setXXX (selon que tu les déclare readonly ou non) sur ta classe Java ou C++, sans aller plus loin. Ce sera à toi de déclarer l'attribut véritable dans ta classe.
    Considérant cette très faible valeur ajoutée, on préferera déclarer directement les méthodes getXXX et setXXX pour plus de simplicité. Donc on peut les utiliser sans problèmes mais ça amène souvent questions et confusion.
    D'ailleurs tu ne les a pas mis readonly -> un enchérisseur peut les modifier ?

    - le pattern ValueObject peut s'appliquer à ton interface V_object: telle que tu l'as fait là, l'application cliente doit récupérer chaque attribut individuellement, soit 9 appels distants pour récupérer toutes les infos.
    En appliquant le pattern tu auras qque chose du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    struct V_object_data {
      string nomobjet;
      // tous les attributs de V_objet
      //...
    }
    interface V_objet {
      V_object_data getData();
      // reste de l'interface V_object
      //..
    }
    Il y a des variantes, l'approche étant de minimiser les échanges entre l'application cliente et le serveur.
    Ca peut même te permettre de faire un CreerVentes(in V_objet_data) en passant la structure -> en cas d'evolution des attributs de V_objet, ta méthode de création ne change pas d'argument, un plus pour la souplesse.

    - tu as choisi le type string en tant qu'identifieur d'un V_objet, pourquoi pas, un type numérique ne te plait pas? tu vas mettre plein d'infos dans l'id type string ?

    - tu n'as pas mis les types de retour de ListerVentes, ListerCategorieObjets, supprimerVentes...
    Ce sont des listes d'IOR ou des listes de String ?
    -> compile ton IDL avant de poster

    - ton interface Utilisateur n'est pas utilisée. C'est une interface "Callback" visiblement. Elle devrait être enregistrable qque part dans ton interface GestionVentes non ?

    Perso je préfère les nommages sans "_" et avec des majuscules, (ex string nomObjet), mais là on rentre dans les querelles de chapelles.

    Voilà un avis rapide, et bon courage, tu me sembles plutôt bien parti.

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 47
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par menator
    Tout d'abord bravo: je suis content de voir des personnes s'interessant à CORBA à l'heure des WebServices. CORBA est associé à une vision de l'informatique distribuée, certes chahutée par la déferlante WS (et avec certaines bonnes raisons), mais qui reste passionante et porteuses de nombreux concepts essentiels.
    Merci, mais tu sais ça n'ets qu'un projet... Même si je m'y intéresse, je ne sais pas si j'y arriverai en vue de mes lacunes actuelles...
    J'ai vaguement compris le principe....
    Quelques remarques sur ton IDL (plutôt au niveau technique, je te laisse l'aspect fonctionnel ) :

    - les "attribute" sont en fait peu utilisés : un attribute va seulement donner 1 ou 2 méthodes getXXX + setXXX (selon que tu les déclare readonly ou non) sur ta classe Java ou C++, sans aller plus loin. Ce sera à toi de déclarer l'attribut véritable dans ta classe.

    Considérant cette très faible valeur ajoutée, on préferera déclarer directement les méthodes getXXX et setXXX pour plus de simplicité. Donc on peut les utiliser sans problèmes mais ça amène souvent questions et confusion.
    Je ne saisis pas trop... Cela veut il dire qu'il vaut mieux mettre des getXXX ou setXXX que des attribute par soucis de simplicité? Moi je voyais les attribute comme des variables, ça n'est pas ça?
    D'ailleurs tu ne les a pas mis readonly -> un enchérisseur peut les modifier ?
    Dans la mesure ou je pensais qu'un utilisateur Vendeur puisse mettre en vente un objet avec des attributs particuliers (nom de l'objet, prix, ....). C'est pour ça que je ne l'ai pas mis Read Only... Y a t'il quelque chose que je n'ai pas compris?
    - le pattern ValueObject peut s'appliquer à ton interface V_object: telle que tu l'as fait là, l'application cliente doit récupérer chaque attribut individuellement, soit 9 appels distants pour récupérer toutes les infos.
    En appliquant le pattern tu auras qque chose du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    struct V_object_data {
      string nomobjet;
      // tous les attributs de V_objet
      //...
    }
    interface V_objet {
      V_object_data getData();
      // reste de l'interface V_object
      //..
    }
    La j'ai mieux compris! Je vais corriger cela, peux tu me dire ce que tu en penses dans le contrat IDL ci dessous??

    Il y a des variantes, l'approche étant de minimiser les échanges entre l'application cliente et le serveur.
    Ca peut même te permettre de faire un CreerVentes(in V_objet_data) en passant la structure -> en cas d'evolution des attributs de V_objet, ta méthode de création ne change pas d'argument, un plus pour la souplesse.
    Ok, je vois...
    - tu as choisi le type string en tant qu'identifieur d'un V_objet, pourquoi pas, un type numérique ne te plait pas? tu vas mettre plein d'infos dans l'id type string ?
    Non pas plein d'infos... A la limite, je pense ajouter un autre attribut de type int,comme ça il sera identifiant unique de chaque objet, non?
    - tu n'as pas mis les types de retour de ListerVentes,
    Erreur de ma part, cette méthode doitme renvoyer un objet mis en vente, donc du type :
    V_objet ListerVentes(in string mail_utilisateur);
    ListerCategorieObjets, supprimerVentes...
    Pour lister les catégories c'est un peu pareils :
    V_objet ListerCategorieObjets (in string categorie);
    pour supprimer ventes, il n'y a pas de retour, puisqu'on supprime un objet de la factory...
    Ce sont des listes d'IOR ou des listes de String ?
    -> compile ton IDL avant de poster
    Ben là j'ai un gros problème, Corba, ça veut pas marcher chez moi.... Tu utilises quoi? J'ai essayé de me mettre à Eclipse mais je galère trop...
    - ton interface Utilisateur n'est pas utilisée. C'est une interface "Callback" visiblement. Elle devrait être enregistrable qque part dans ton interface GestionVentes non ?
    Une interface Callback? Enregistrable dans GestionVentes? Je ne te comprends pas
    Perso je préfère les nommages sans "_" et avec des majuscules, (ex string nomObjet), mais là on rentre dans les querelles de chapelles.
    Je peux changer, ça ne me dérange pas!
    Si tu veux bien m'aider encore, car je galère....
    Voilà un avis rapide, et bon courage, tu me sembles plutôt bien parti.
    Je vais reposter mon contrat IDL, tu me diras ce que tu en penses...

  6. #6
    Membre habitué
    Inscrit en
    Août 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 161
    Points : 193
    Points
    193
    Par défaut
    A propos des "attribute":
    l'utilisateur Vendeur et les utilisateurs enchérisseurs auront acès à l'objet V_objet et aux accesseurs (get/set) des attributs.
    Une fois l'appel fais à
    V_objet ObtenirVentes(in string nom_objet),
    les 2 pourront modifier les valeurs. Ce n'est pas ce que tu souhaites.
    -> readonly attribute ou plus simplement getXXX() pour tous les attributs.

    Le vendeur va fixer les attributs lors de la creation l'objet via, CreerVentes(...).

    Pour compiler ? olà ca fait bien longtemps que je ne compile plus des IDLs... J'utilisais de nombreux ORB: Jacorb, Orbacus, Visibroker, et j'en passe...
    Dans un premier temps, utilise simplement le compilateur du JDK, idlj, en ligne de commande, vu que tu n'adheres pas (encore) à Eclipse.
    > idlj MonFichier.idl
    et hop tu verras si ça passe.

  7. #7
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Pour etre precis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    idlj -fall monFichier.idl
    Dans le cas ou tu dois avoir un stub et un skell cote client Java (toujours avec l'ORB de Sun ; par defaut le flag -fclient est utilise lorsqu'on appelle le compilateur sans argument specifique). On a effectivement besoin des 2 pour les callback (puisque le client se comporte en "serveur"/fournisseur d'implementation).

    Cote C++ tu as aussi ACE/TAO (gratuit).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 47
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par menator
    A propos des "attribute":
    l'utilisateur Vendeur et les utilisateurs enchérisseurs auront acès à l'objet V_objet et aux accesseurs (get/set) des attributs.
    Une fois l'appel fais à
    V_objet ObtenirVentes(in string nom_objet),
    les 2 pourront modifier les valeurs. Ce n'est pas ce que tu souhaites.

    -> readonly attribute ou plus simplement getXXX() pour tous les attributs.
    En effet... Je ne veux pas qu'ils puissent les modifier...
    Le vendeur va fixer les attributs lors de la creation l'objet via, CreerVentes(...).

    Pour compiler ? olà ca fait bien longtemps que je ne compile plus des IDLs... J'utilisais de nombreux ORB: Jacorb, Orbacus, Visibroker, et j'en passe...
    Dans un premier temps, utilise simplement le compilateur du JDK, idlj, en ligne de commande, vu que tu n'adheres pas (encore) à Eclipse.
    > idlj MonFichier.idl
    et hop tu verras si ça passe.
    J'ai eu quelques soucis... et pas trop eu encore le temps de mettre mon IDL, j'espère que demain je pourrai le faire...

    Merci de ton aide!

    Citation Envoyé par bouye
    Pour etre precis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    idlj -fall monFichier.idl
    Dans le cas ou tu dois avoir un stub et un skell cote client Java (toujours avec l'ORB de Sun ; par defaut le flag -fclient est utilise lorsqu'on appelle le compilateur sans argument specifique). On a effectivement besoin des 2 pour les callback (puisque le client se comporte en "serveur"/fournisseur d'implementation).

    Cote C++ tu as aussi ACE/TAO (gratuit).
    Et bien là, je dois faire en Java... avec OpenORB... Inutil de dire que j'éprouve quelques difficultés...

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 47
    Points : 20
    Points
    20
    Par défaut
    Bonsoir, j'envoie mon contrat IDL légèrement modifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    //Contrat IDL de la plate forme de courtage *
    module courtage_stri
    {
    	struct V_object_data
    	{ 
    		string nomobjet;			// identificateur de l'objet
    		string categorie;			//categorie de l'objet mis en vente
    		string description;			//description de l'objet
    		float prix_depart;			//prix de depart de l'objet
    		float pas;					//pas d'incrementation du prix de l'objet
    		float prix_actuel;			//Par défaut, fixé au prix de départ sinon de la mailleure enchere
    		long date;					//date de fin d'enchere
    		long nom_vendeur;			//identificateur du vendeur
    		string meilleur_acheteur; 	//contient l'identifiant du meilleur encherisseur
    	}
    	//Interface definissant les objets de la salle de courtage
    
    	//Factory  qui gere toutes les actions de la salle de courtage
    	interface GestionVentes 
    	{
    		//Description de tous les paramètres d'un objet
    		//DescriptionObjet(in string nom_objet);
    		V_object_data ObtenirVentes(in string nom_objet);	//retournant l'IOR d'un objet CORBA V_objet
    		
    		//Création d'une vente par un vendeur
    		// Ancienne méthode : CreerVentes(in string nomobjet, in string categorie, in string description, in float prix_depart, in float pas, in long date, in string nom_vendeur);
    		// Nouvelle Méthode :
    		CreerVentes(in V_object_data);	//Cette fonction ne renvoie rien!
    
    		//Suppression d'un objet quand la vente de celui ci est finie
    		SupprimerVentes(in string nomobjet);
     
    		//Consultation de tous les objets de la salle de courtage
    		V_object_data ListerVentes(in string mail_utilisateur);		//Cette fonction renvoie un objet de type structuré "V_object_data" (structuré au début du contrat IDL)
    
    		//Consultation des objets mis en vente triés par catégorie
    		V_object_data ListeCategorieObjets(in string categorie);	//Cette fonction renvoie un tableau d'objets sytructurés "V_object_data"
    	};	//Fin de l'interface GestionVentes
    
    	//Interface gerant les utilisateurs
    	interface Utilisateur 
    	{
    		readonly string mail_utilisateur;
    		typedef string message_notif;
    
    		//Fonction permettant de notifier a un vendeur que son produit est vendu et a quel prix
    		void notifier_vendeur (in string message_notif);
    		//Fonction permettant de notifier a un acheteur qu'il est le meilleur encherisseur sur un produit donné
    		void notifier_acheteur (in string message_notif);
    	};//Fin de l'interface utilisateurs
    };//Fin du module courtage_stri
    J'ai supprimé mon onterface objet pour créer une structure d'un objet.... Comme ça inutile de modifier chaque paramètre de l'objet mis en vent un à un....

    Mais je ne sais pas comment la fonction ListeCategorieObjets peut renvoyer un tabkeau de V_object_data....

  10. #10
    Membre habitué
    Inscrit en
    Août 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 161
    Points : 193
    Points
    193
    Par défaut
    Pour renvoyer des "listes", utilise le mot clé "sequence" IDL. En Java la sequence donnera un tableau.

    Dans le code ci dessous, V_object_data_list est ton tableau de V_object_data
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    struct V_object_data {
    ...
    }
    
    // Sequence de V_object_data
    typedef sequence<V_object_data> V_object_data_list;
    
    interface GestionVentes &#123;
    ...
    //Consultation de tous les objets de la salle de courtage
    V_object_data_list ListerVentes&#40;in string mail_utilisateur&#41;; 
    ...
    &#125;;
    Tu as supprimé ton interface V_object. Effectivement tu auras quelques soucis en moins, mais ton contrat IDL devient plus procédural que objet:
    n'y voit pas un souci majeur, tout dépend de ce que l'on cherche à faire dans l'IDL et les contraintes (design, perfs...) que l'on s'impose.

    Il reste quelques coquilles mineures (void manquants, ";"...) et ton IDL est prêt à compiler.

    L'interface Utilisateur est définie mais toujours pas utilisée .
    (i.e. aucune autre interface n'y fait référence).

  11. #11
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 47
    Points : 20
    Points
    20
    Par défaut
    Suite, voici mon contrat IDL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    //Contrat IDL de la plate forme de courtage *
    module courtage_stri
    &#123;
    	struct V_object_data
    	&#123; 
    		string nomobjet;			// identificateur de l'objet
    		string categorie;			//categorie de l'objet mis en vente
    		string description;			//description de l'objet
    		float prix_depart;			//prix de depart de l'objet
    		float pas;					//pas d'incrementation du prix de l'objet
    		float prix_actuel;			//Par défaut, fixé au prix de départ sinon de la mailleure enchere
    		long date;					//date de fin d'enchere
    		long nom_vendeur;			//identificateur du vendeur
    		string meilleur_acheteur; 	//contient l'identifiant du meilleur encherisseur
    	&#125;;
    	//Interface definissant les objets de la salle de courtage
    
    	// Sequence de V_object_data
    	typedef sequence <V_object_data> V_object_data_list;
    
    	//Factory  qui gere toutes les actions de la salle de courtage
    	interface GestionVentes 
    	&#123;
    		//Description de tous les paramètres d'un objet
    		//DescriptionObjet&#40;in string nom_objet&#41;;
    		V_object_data ObtenirVentes&#40;in string nom_objet&#41;;	//retournant l'IOR d'un objet CORBA V_objet
    		
    		//Création d'une vente par un vendeur
    		// Ancienne méthode &#58; CreerVentes&#40;in string nomobjet, in string categorie, in string description, in float prix_depart, in float pas, in long date, in string nom_vendeur&#41;;
    		// Nouvelle Méthode &#58;
    		void CreerVentes&#40;in V_object_data&#41;;	//Cette fonction ne renvoie rien!
    
    		//Suppression d'un objet quand la vente de celui ci est finie
    		void SupprimerVentes&#40;in string nomobjet&#41;;
     
    		//Consultation de tous les objets de la salle de courtage
    		V_object_data_list ListerVentes&#40;in string mail_utilisateur&#41;;		//Cette fonction renvoie un objet de type structuré "V_object_data" &#40;structuré au début du contrat IDL&#41;
    
    		//Consultation des objets mis en vente triés par catégorie
    		V_object_data_list ListeCategorieObjets&#40;in string categorie&#41;;	//Cette fonction renvoie un tableau d'objets sytructurés "V_object_data"
    	&#125;;	//Fin de l'interface GestionVentes
    
    	//Interface gerant les utilisateurs
    	interface Utilisateur 
    	&#123;
    		readonly string mail_utilisateur;
    		typedef string message_notif;
    
    		//Fonction permettant de notifier a un vendeur que son produit est vendu et a quel prix
    		void notifier_vendeur &#40;in string message_notif&#41;;
    		//Fonction permettant de notifier a un acheteur qu'il est le meilleur encherisseur sur un produit donné
    		void notifier_acheteur &#40;in string message_notif&#41;;
    	&#125;;//Fin de l'interface utilisateurs
    &#125;;//Fin du module courtage_stri
    L'objectid n'est pas spécialement d'être d'une orientation objet, ce qui important pour moi, c'est le challenge du projet!!

    En ce qui concerne l'interface Utilisateur, comment puis je l'utiliser? Je ne vois que l'implantation des instructions....

    En ce qui concerne les points virgule manquants, c'est celui à la fin de l'interface GestionVentes ?? Car en effet je l'avais oublié....

    Et encore merci!!!

  12. #12
    Membre habitué
    Inscrit en
    Août 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 161
    Points : 193
    Points
    193
    Par défaut
    Alléluia ! ça compile. Gratz.

    Alors comme ça on met une interface Utilisateur et on sait pas quoi en faire !

    Ton "Utilisateur" ressemble à une interface de type "CallBack", c.a.d. une interface implémentée côté client, qui sert au serveur à rappeler (callback, en anglais) le client pour une raison ou une autre : dans ton cas, indiquer la vente, ou une enchère.

    Mais il faut indiquer au serveur quels sont les instances à appeler.
    Donc ton interface GestionVentes peut comporter un paramètre utilisateur lors de la creation de vente. Exemple basique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // data &#58; objet mis en vente
    // vendeur &#58; référence du vendeur à notifier en cas de vente.
    void CreerVentes&#40;in V_object_data data, Utilisateur vendeur&#41;;
    Le serveur mémorise l'Utilisateur vendeur, fourni par le programme client, et le rappelle après la vente.

    Ou bien tu peux imaginer des méthodes spécifiques en + pour inscrire/désinscrire ces Utilisateur vendeurs/acheteur qui souhaitent être prévenus des achats/enchères.

  13. #13
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2005
    Messages : 130
    Points : 139
    Points
    139
    Par défaut Impressionant
    C'est quand même bizarre, on a à peu près le même projet à faire!
    Nous faut rajouter une identification au niveau vendeur et acheteur!

    Ce sujet était aussi un sujet donné il y a deux ans en examen (par écrit, pas sur machine).
    Nous sommes en M2 sur saint etienne et toi?

    Y a peut être moyen d'avancer ensemble....

    Pour info voici notre idl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    module ebay &#123;
    
      interface Consultation&#123;
        long Identification&#40;in string login, in string pwd&#41;;
        void Offre&#40;in string date_fin, in long prix_depart, in string nom_produit,in string login,in string nom_marche&#41;;
        void Enchere&#40;in string nom_marche,in string nom_produit, in long montant, in string login&#41;;
      &#125;; 
    
      interface Gestion&#123;
        struct id_pers&#123;
          string login;
          string pwd;
        &#125;;
        typedef sequence <id_pers> identifiants;
    
        struct produit&#123;
          string nom_produit;
          long prix_depart;
          long montant;
        &#125;;
        typedef sequence <produit> liste_prod;
        struct marche&#123;
          string nom_marche;
          liste_prod liste_produits;
        &#125;;
        typedef sequence <liste_prod> liste_marche;
    
    
    
        liste_prod getproduits&#40;in string nom_marche&#41;;
        liste_marche getmarche&#40;&#41;;
      &#125;;
    
    
      &#125;;
    Ca vous paraît comment?
    le problème c'est qu'on ne sait pas ou son créé les structures!
    ACTC (certification Mac OS X/Mac OS X Server)
    Windows par obligation, Mac par délectation.
    Confirmé débutant (ou débutant confirmé) JAVA, C, PHP, JavaScript, HTML....

  14. #14
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 47
    Points : 20
    Points
    20
    Par défaut Re: Impressionant
    Citation Envoyé par piro
    C'est quand même bizarre, on a à peu près le même projet à faire!
    Nous faut rajouter une identification au niveau vendeur et acheteur!
    Perso, j'y avais pensé, mais dans un soucis de complexité, j'avais zappé cette partie
    Je peux la rajouter si tu veux....
    Ce sujet était aussi un sujet donné il y a deux ans en examen (par écrit, pas sur machine).
    Nous sommes en M2 sur saint etienne et toi?

    Y a peut être moyen d'avancer ensemble....
    Contacte moi par MP si tu veux....
    Quant à avancer ensemble, pas de soucis! Mettons nous d'accord avec un contrat IDL en commun, apr exemple le miens si tu veux bien!
    Ca vous paraît comment?
    le problème c'est qu'on ne sait pas ou son créé les structures!
    Ben t'en as une de crée .... ( struct produit )

  15. #15
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2005
    Messages : 130
    Points : 139
    Points
    139
    Par défaut
    On a effectivement créé une structure, mais quand on l'appelle dans notre fichier java, elle n'est pas trouvé, et on ne trouve pas où elle est censé être créé.
    Pour info on a commencé le corba y a 2 semaines et avons du avoir à peu près 2h de cours et 2 h de TD dessus.
    ACTC (certification Mac OS X/Mac OS X Server)
    Windows par obligation, Mac par délectation.
    Confirmé débutant (ou débutant confirmé) JAVA, C, PHP, JavaScript, HTML....

  16. #16
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 47
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par piro
    On a effectivement créé une structure, mais quand on l'appelle dans notre fichier java, elle n'est pas trouvé, et on ne trouve pas où elle est censé être créé.
    Pour info on a commencé le corba y a 2 semaines et avons du avoir à peu près 2h de cours et 2 h de TD dessus.
    Connaissances en Corba : pas mieux!
    Tu veux pas m'enviyer un MP (message privé) qu'on ne flood pas le forum avec des objectifs autres que le nut du projet...

  17. #17
    Membre habitué
    Inscrit en
    Août 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 161
    Points : 193
    Points
    193
    Par défaut
    Citation Envoyé par piro
    On a effectivement créé une structure, mais quand on l'appelle dans notre fichier java, elle n'est pas trouvé, et on ne trouve pas où elle est censé être créé.
    Ta structure de type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    module MonModule &#123;
      struct MaStructure &#123;
       ....
      &#125;
    &#125;
    doit être représentée par une classe Java (une fois l'IDL compilé )
    MonModule/MaStructure.java

  18. #18
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 47
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par zeldoi5
    Suite, voici mon contrat IDL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    //Contrat IDL de la plate forme de courtage *
    module courtage_stri
    &#123;
    	struct V_object_data
    	&#123; 
    		string nomobjet;			// identificateur de l'objet
    		string categorie;			//categorie de l'objet mis en vente
    		string description;			//description de l'objet
    		float prix_depart;			//prix de depart de l'objet
    		float pas;					//pas d'incrementation du prix de l'objet
    		float prix_actuel;			//Par défaut, fixé au prix de départ sinon de la mailleure enchere
    		long date;					//date de fin d'enchere
    		long nom_vendeur;			//identificateur du vendeur
    		string meilleur_acheteur; 	//contient l'identifiant du meilleur encherisseur
    	&#125;;
    	//Interface definissant les objets de la salle de courtage
    
    	// Sequence de V_object_data
    	typedef sequence <V_object_data> V_object_data_list;
    
    	//Factory  qui gere toutes les actions de la salle de courtage
    	interface GestionVentes 
    	&#123;
    		//Description de tous les paramètres d'un objet
    		//DescriptionObjet&#40;in string nom_objet&#41;;
    		V_object_data ObtenirVentes&#40;in string nom_objet&#41;;	//retournant l'IOR d'un objet CORBA V_objet
    		
    		//Création d'une vente par un vendeur
    		// Ancienne méthode &#58; CreerVentes&#40;in string nomobjet, in string categorie, in string description, in float prix_depart, in float pas, in long date, in string nom_vendeur&#41;;
    		// Nouvelle Méthode &#58;
    		void CreerVentes&#40;in V_object_data&#41;;	//Cette fonction ne renvoie rien!
    
    		//Suppression d'un objet quand la vente de celui ci est finie
    		void SupprimerVentes&#40;in string nomobjet&#41;;
     
    		//Consultation de tous les objets de la salle de courtage
    		V_object_data_list ListerVentes&#40;in string mail_utilisateur&#41;;		//Cette fonction renvoie un objet de type structuré "V_object_data" &#40;structuré au début du contrat IDL&#41;
    
    		//Consultation des objets mis en vente triés par catégorie
    		V_object_data_list ListeCategorieObjets&#40;in string categorie&#41;;	//Cette fonction renvoie un tableau d'objets sytructurés "V_object_data"
    	&#125;;	//Fin de l'interface GestionVentes
    
    	//Interface gerant les utilisateurs
    	interface Utilisateur 
    	&#123;
    		readonly string mail_utilisateur;
    		typedef string message_notif;
    
    		//Fonction permettant de notifier a un vendeur que son produit est vendu et a quel prix
    		void notifier_vendeur &#40;in string message_notif&#41;;
    		//Fonction permettant de notifier a un acheteur qu'il est le meilleur encherisseur sur un produit donné
    		void notifier_acheteur &#40;in string message_notif&#41;;
    	&#125;;//Fin de l'interface utilisateurs
    &#125;;//Fin du module courtage_stri
    L'objectif n'est pas spécialement d'être d'une orientation objet, ce qui important pour moi, c'est le challenge du projet!!

    En ce qui concerne l'interface Utilisateur, comment puis je l'utiliser? Je ne vois que l'implantation des instructions....

    En ce qui concerne les points virgule manquants, c'est celui à la fin de l'interface GestionVentes ?? Car en effet je l'avais oublié....

    Et encore merci!!!
    Bonjour, me revoilà...
    Après m'être doté de conseils, je reviens sur mon contrat IDL posté précédemment...

    menator, dis moi si je me trompe, mais je voudrais retourner l'IOR de l'objet corba créé (ici de type V_Object_data) par les méthodes ObtenirVentes de l'interface GestionVentes.

    Pour ceci je dois donc refaire mon interface V_objet reprenant la structure créée...
    Voici le contrat IDL reprenant l'interface de l'objet V_objet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    //Contrat IDL de la plate forme de courtage *
    module courtage_stri
    &#123;
    	struct V_object_data
    	&#123; 
    		string nomobjet;			// identificateur de l'objet
    		string categorie;			//categorie de l'objet mis en vente
    		string description;			//description de l'objet
    		float prix_depart;			//prix de depart de l'objet
    		float pas;					//pas d'incrementation du prix de l'objet
    		float prix_actuel;			//Par défaut, fixé au prix de départ sinon de la mailleure enchere
    		long date;					//date de fin d'enchere
    		long nom_vendeur;			//identificateur du vendeur
    		string meilleur_acheteur; 	//contient l'identifiant du meilleur encherisseur
    	&#125;;
    
    	// Sequence de V_object_data
    	typedef sequence <V_object_data> V_object_data_list;
    
    	interface V_object
    	&#123;
    		//Gestion des exceptions possibles
    		exception tempsdepasse//exeption de la date de fin d'enchere depassee
    		&#123;	long date;	&#125;;
    
    		//Méthode invoquée par l'acheteur &#58; enchérir avec en paramètres son identification &#40;ici son adresse electronique&#41; et le nouveau prix 
    		void encherir &#40;in string mail_utilisateur, in float new_prix&#41; raises &#40;tempsdepasse&#41;;
    	&#125;
    
    	//Factory  qui gere toutes les actions de la salle de courtage
    	//Interface definissant les objets de la salle de courtage
    	interface GestionVentes 
    	&#123;
    		//Description de tous les paramètres d'un objet
    		//DescriptionObjet&#40;in string nom_objet&#41;;
    		V_object_data ObtenirVentes&#40;in string nom_objet&#41;;	//retournant l'IOR d'un objet CORBA V_objet
    		
    		//Création d'une vente par un vendeur
    		// Ancienne méthode &#58; CreerVentes&#40;in string nomobjet, in string categorie, in string description, in float prix_depart, in float pas, in long date, in string nom_vendeur&#41;;
    		// Nouvelle Méthode &#58;
    		void CreerVentes&#40;in V_object_data&#41;;	//Cette fonction ne renvoie rien!
    
    		//Suppression d'un objet quand la vente de celui ci est finie
    		void SupprimerVentes&#40;in string nomobjet&#41;;
     
    		//Consultation de tous les objets de la salle de courtage
    		V_object_data_list ListerVentes&#40;in string mail_utilisateur&#41;;		//Cette fonction renvoie un objet de type structuré "V_object_data" &#40;structuré au début du contrat IDL&#41;
    
    		//Consultation des objets mis en vente triés par catégorie
    		V_object_data_list ListeCategorieObjets&#40;in string categorie&#41;;	//Cette fonction renvoie un tableau d'objets sytructurés "V_object_data"
    	&#125;;	//Fin de l'interface GestionVentes
    
    	//Interface gerant les utilisateurs
    	interface Utilisateur 
    	&#123;
    		readonly string mail_utilisateur;
    		typedef string message_notif;
    
    		//Fonction permettant de notifier a un vendeur que son produit est vendu et a quel prix
    		void notifier_vendeur &#40;in string message_notif&#41;;
    		//Fonction permettant de notifier a un acheteur qu'il est le meilleur encherisseur sur un produit donné
    		void notifier_acheteur &#40;in string message_notif&#41;;
    	&#125;;//Fin de l'interface utilisateurs
    &#125;;//Fin du module courtage_stri
    Qu'en pensez vous?[/code]

  19. #19
    Membre habitué
    Inscrit en
    Août 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 161
    Points : 193
    Points
    193
    Par défaut
    Tu ne te trompes pas, si tu veux manipuler les objets à distances (donc retourner les IOR de V_Object) tu dois remettre l'interface V_Object.

    Du coup la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    V_Object_data V_Object.getData&#40;&#41;
    que j'avais proposé peut aussi revenir (pour pouvoir récupérer les attributs une fois qu'on a récupéré une référence vers un objet V_Object).

    Et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    V_Object_data ObtenirVentes&#40;in string nom_objet&#41;
    devrait renvoyer un objet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    V_Object ObtenirVente&#40;...&#41;;
    De même on pourrait te demander pourquoi ListerVentes() / ListeCategorieObjets() renvoient des listes des structures (V_Object_data_list) alors que tu as réintroduit une interface V_Object.
    Donc tu peux:
    A) laisser comme ça en disant que les méthodes de listages sont là... pour lister, et qu'il faut récupérer la référence d'un V_Object si l'on veut vraiment interagir avec (i.e. enchérir). C'est effectivement + optimal du point de vue du serveur (pas de V_Object à créer si on ne les demande pas).

    B) Renvoyer des listes de V_Object plutôt que de V_Object_data
    (donc un type V_Object_list).
    Si ton travail est de l'ordre de l'étude, ç'est peut-être la solution la plus simple : dans ton serveur tu auras tous les objets V_Object instanciés, et le serveur renvoie la même instance de V_Object à tous les clients qui le demande (en faisant gaffe quand même aux accès conccurents côté serveur lors de l'implémentation). Dans ce cas pas de problème pour renvoyer des V_Object_list.

    Si l'objectif est plus ambitieux (ajout d'une base de donnée côté serveur, tous les V_Object ne sont pas en mémoire mais créés et délivrés à la demande...) alors introduire des V_Object_list n'est pas satisfaisant car ça oblige à créer beaucoup de V_Object lors des méthodes de listage.
    A voir donc en fonction des contraintes -> faire très académique, avec une vue la + "objet" possible (->manipuler au max des V_Object) ou bien anticiper les pb de perfs en fonction des contraintes données sur ce sujet (->manipulation de V_Object et de V_Object_data panachés en fonction des cas).

    Bon si c'est dans le cadre de tes études, prends la solution la plus simple, car je me rends compte que je vais t'embrouiller avec ces conseils de performances, même s'ils sont très fréquemment (pour ne pas dire systématiquement) mis en oeuvre dans les produits qui tournent avec CORBA.

    L'interface Utilisateur n'est toujours pa..... ok je me tais. 8)

  20. #20
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 47
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par menator
    Tu ne te trompes pas, si tu veux manipuler les objets à distances (donc retourner les IOR de V_Object) tu dois remettre l'interface V_Object.
    C'est ce que je vais faire, merci.

    .....

    De même on pourrait te demander pourquoi ListerVentes() / ListeCategorieObjets() renvoient des listes des structures (V_Object_data_list) alors que tu as réintroduit une interface V_Object.
    Donc tu peux:
    A) laisser comme ça en disant que les méthodes de listages sont là... pour lister, et qu'il faut récupérer la référence d'un V_Object si l'on veut vraiment interagir avec (i.e. enchérir). C'est effectivement + optimal du point de vue du serveur (pas de V_Object à créer si on ne les demande pas).
    Je vais plutôt opter pour cette solution...

    Bon si c'est dans le cadre de tes études, prends la solution la plus simple, car je me rends compte que je vais t'embrouiller avec ces conseils de performances, même s'ils sont très fréquemment (pour ne pas dire systématiquement) mis en oeuvre dans les produits qui tournent avec CORBA.
    En effet, mais je m'intéresse vraiment au déploiement d'objet répartis, ya beaucoup d'applications possibles...
    Et je veux absolument y arriver!!!!
    L'interface Utilisateur n'est toujours pa..... ok je me tais. 8)
    Voici mon nouveau (enfin presque!) contrat IDL, il compile, alors on va commencer enfin à coder :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    //Contrat IDL de la plate forme de courtage *
    module courtage_stri
    &#123;
    	struct V_object_data
    	&#123; 
    		string nomobjet;			// identificateur de l'objet
    		string categorie;			//categorie de l'objet mis en vente
    		string description;			//description de l'objet
    		float prix_depart;			//prix de depart de l'objet
    		float pas;					//pas d'incrementation du prix de l'objet
    		float prix_actuel;			//Par défaut, fixé au prix de départ sinon de la mailleure enchere
    		long date;					//date de fin d'enchere
    		long nom_vendeur;			//identificateur du vendeur
    		string meilleur_acheteur; 	//contient l'identifiant du meilleur encherisseur
    	&#125;;
    
    	// Sequence de V_object_data
    	typedef sequence <V_object_data> V_object_data_list;
    
    	interface V_object
    	&#123;
    		readonly attribute V_object_data V_objet;
    		//Gestion des exceptions possibles
    		exception tempsdepasse//exeption de la date de fin d'enchere depassee
    		&#123;	long date;	&#125;;
    
    		//Méthode invoquée par l'acheteur &#58; enchérir avec en paramètres son identification &#40;ici son adresse electronique&#41; et le nouveau prix 
    		void encherir &#40;in string mail_utilisateur, in float new_prix&#41; raises &#40;tempsdepasse&#41;;
    	&#125;;
    
    	//Factory  qui gere toutes les actions de la salle de courtage
    	//Interface definissant les objets de la salle de courtage
    	interface GestionVentes 
    	&#123;
    		//Description de tous les paramètres d'un objet
    		//DescriptionObjet&#40;in string nom_objet&#41;;
    		V_object_data ObtenirVentes&#40;in string nom_objet&#41;;	//retournant l'IOR d'un objet CORBA V_objet
    		
    		//Création d'une vente par un vendeur
    		// Ancienne méthode &#58; CreerVentes&#40;in string nomobjet, in string categorie, in string description, in float prix_depart, in float pas, in long date, in string nom_vendeur&#41;;
    		// Nouvelle Méthode &#58;
    		void CreerVentes&#40;in V_object_data objetEnVente&#41;;	//Cette fonction ne renvoie rien
    
    		//Suppression d'un objet quand la vente de celui ci est finie
    		void SupprimerVentes&#40;in string nomobjet&#41;;
     
    		//Consultation de tous les objets de la salle de courtage
    		V_object_data_list ListerVentes&#40;in string mail_utilisateur&#41;;	//Cette fonction renvoie un objet de type structuré "V_object_data" &#40;structuré au début du contrat IDL&#41;
    
    		//Consultation des objets mis en vente triés par catégorie
    		V_object_data_list ListeCategorieObjets&#40;in string categorie&#41;;	//Cette fonction renvoie un tableau d'objets sytructurés "V_object_data"
    	&#125;;	//Fin de l'interface GestionVentes
    
    	//Interface gerant les utilisateurs
    	interface Utilisateur 
    	&#123;
    		readonly attribute string mail_utilisateur;
    		//attribute string message_notif;
    
    		//Fonction permettant de notifier a un vendeur que son produit est vendu et a quel prix
    		void notifier_vendeur &#40;in string message_notif&#41;;
    		//Fonction permettant de notifier a un acheteur qu'il est le meilleur encherisseur sur un produit donné
    		void notifier_acheteur &#40;in string message_notif&#41;;
    	&#125;;//Fin de l'interface utilisateurs
    &#125;;//Fin du module courtage_stri

Discussions similaires

  1. debuter un projet sous Visual C++
    Par cortex59 dans le forum Visual C++
    Réponses: 5
    Dernier message: 06/06/2012, 14h49
  2. Conception projet avec Signature Electronique
    Par Alec6 dans le forum Sécurité
    Réponses: 0
    Dernier message: 23/06/2009, 09h07
  3. Réponses: 11
    Dernier message: 08/12/2005, 13h09
  4. [debutant] corba et interoperabilite
    Par ed_hunter dans le forum CORBA
    Réponses: 1
    Dernier message: 10/08/2004, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo