Date: Wed, 26 Mar 2003 18:39:39 -0500 (EST) From: Houcine Ben Ameur <benameho@IRO.UMontreal.CA> To: gift6802@IRO.UMontreal.CA Subject: Modification et proposition finale Bonjour, Conformement aux directives de M. Vaucher, je resoumet ma proposition comme une modification du protocole de Assia que je trouve simple et efficace. Une boucle d'interaction s'effectue en deux etapes : 1/ demande de prix de vente 2/ proposition de prix et quantite pour achat 1/ Demande de prix de vente ---------------------------- Resto --> QUERY_REF() --> Grossiste Grossiste --> INFORM(produit, prix) --> Resto 2/ Proposition d'achat ---------------------------- Resto --> PROPOSE(produit, quantite, prix) --> Grossiste Grossiste --> ACCEPT_PROPOSAL(produit, quantite, prix) --> Resto ou Grossiste --> REJECT_PROPOSAL (raison) --> Resto C'est tout. Le resto est l'initiateur, il peut iterer entre 1/ et 2/ autant qu'il veut. Le grossiste traite deux types de msg : QUERY_REF et PROPOSITION 1/ il informe le resto de son prix actuel et du produit qu'il vend 2/ il accepte ou refuse une proposition d'achat En cas de refus, le grossiste informe le Resto de la raison de son refus : quantite indisponible, ou prix trop bas. Le resto peut alors adapter sa proposition et en refaire une nouvelle (etape 2/). Ou redemander l'etape 1/ ... Aucune obligation de reponse des grossistes n'est essentielle. C'est au Resto de se debrouiller en cas de non reponse : contacte un autre grossiste, ou refaire une proposition. Je pense que c'est un protocole assez simple et efficace. Une fois le resto a recu un ACCEPT_PROPOSAL, il peut (ou non) decider d'entamer une transaction. Il envoie alors un message au controleur avec copie au Grossiste : Resto --> REQUEST(transfert) --> Controleur (voir enonce du TP4 pour les details de ce message) Et enfin le Grossiste repond par AGREE ou REFUSE au Controleur et au Resto (voir details dans enonce du TP4). Le grossiste est oblige de repondre a un request. On devrait ajouter la raison en cas de refus (de meme que pour REJECT_PROPOSAL): Grossiste --> REFUSE(raison) Notez que dans le protocole propose, seul un Resto peut initier une transaction. (c'est plus simplecomme ca). --------------------- ONTOLOGIE --------------------- - Produit : string [viande, legume, fruit] (tel que defini dans enonce du TP4) - prix : integer (entier pour des raison de simplification) - quantite : integer - raison : string [quantite, prix] la raison du refus indique si c'est a cause d'une quantite demandee indisponible, ou a cause d'un prix trop bas.