Vous êtes sur la page 1sur 13

Université Mohamed-Chérif Messaadia - Souk Ahras

Ministère de l’enseignement supérieur et de la recherche scientifique

Faculté des Sciences et de la Technologie Matière : Ingénierie Professionnelles des entreprises


Master 02 en Génie logiciel Enseignant : Prof. Boucherika Imad

Mini
Projet :

Vente en
enchères
« Auction
»
RMI

Réaliser par :
o Yagoubi Wafia.

Année universitaire : 2019 / 2020


Introduction
J'ai développé un système d'enchères utilisant Java et RMI dans le cadre du projet pour la matière
ingénierie des entreprises. Mon implémentation couvre des exigences basiques. Il existe un serveur qui
permet aux utilisateurs de créer des articles aux enchères, d'afficher les enchères et de faire des offres.
Il informe également les soumissionnaires lorsqu'ils sont surenchéris ou que l'enchère se termine,
tient des registres historiques, à la capacité de sauvegarder et de charger son état à partir du stockage
du fichier.

1. Identification des Agents

Vu que notre système s'inspire du modèle client / serveur, en peut arranger ces agents en deux grandes
classes :

1.1. Les agents de la plateforme Client : ce sont les agents qui se trouve sur la machine cliente chaque
utilisateur connecte au système possède une instance de agents suivant :

> Agent GUI (AGUI) :

 Reçoit des commandes de l'utilisateur et agit également.


 Il fait toutes les actions disponibles dans l'interface utilisateurs,
 Met à jour l'information de l'enchère lorsqu'il reçoit des messages de la part d'autres agents.

> Agent négociateur (AN) :

 Négocie d'une manière automatique en faveur de l'utilisateur (echange d’informations),

> Agent chercheur (AC) :

 Responsable de rechercher des articles au nom de l'utilisateur.,


 informe l'utilisateur si le produit désiré est disponible.

1.2. Les agents de la plateforme serveur : ces derniers se trouvent sur la machine serveuse, on trouve
également :

> Agent Principal (AP):

 Responsable de la création des comptes, de l'authentification,


 Cree de nouvelles enchères, établie la liste des enchères existantes,
 Cree un agent d'enchère lorsque une nouvelle enchère est ajouter au système
 Répond aux questions pour des articles ou des enchères.. > Agent d'enchere (AE) :
 Responsable de la commande d'une enchère particulière,
 Les utilisateurs s'enregistrent à l'enchère et puis envoient des offres a l'agent d'enchères, L'agent
d'enchère informe les utilisateurs enregistrés des changements du prix de l'article.
 A l'extrémité de l'enchère, cet agent informe le gagnant et le vendeur et passe la main à l'agent
principal.
 Quand l'enchère est terminée, cet agent est supprimé.

1.3. Schéma général du système


Fig.12 : Architecture générale du SMA (1)

· Une autre vue du système :

Fig: Architecture générale du système

Le système, comme illustre dans les figures précédentes, est compose principalement d'un système
multi-agents qui accède a la base (BDD clients et Catalogue d'enchères) et qui communique avec
d'autres agents (client1 ,client 2) et leur donne possibilité de rechercher éventuellement des
produits ,négocier le prix de vente.

2. Conception

a- Diagramme de séquences < Authentification >


Saisie (id,nom,mot_passe)

Envoie (infos)

Informer (Exist)

alt Disponibilité client

[Existe=true]

Chargement d'interface

[else]

Message d'erreur

Vérification et validation (infos)

Réponse

:Client

Requete d'authentification

Demande des infos

Fig.1: Diagramme de séquences < Authentification >

b. Diagramme de séquences « Inscription »

Demande d'inscription
Saisie des infos (loginID, Name,Password)

Chargement d'interface

Requête d'inscription

Demande des infos

Envois (infos)

Confirmation

Ajouter client (infos)

:Client

Fig.2 : Diagramme de séquences < Inscription >

d. Diagramme de séquences « Create an auction »

Saisir le nom du produit (item_name)

Enter le prix minimum (prix_min)

Enter la date et l’heure de fermeture(jj/mm/aaaa, hh :mm :ss)

Demande d'inscription
Envois (infos)

Confirmation

Ajouter auction (infos)

Fig.4 : Diagramme de séquences < create an auction>

d. Diagramme de séquences « View all auction items»

Demande d’affichage des items_auction

Envois (choise2)

Changement d’interface

Requete d’affichage

Confirmation

Affichage des items existants(ID,minimum_bid_value,N_bidders,

closing_time,status,last_bidder)
Fig.5 : Diagramme de séquences <View all auction item(s)>

e. Diagramme de séquences « Chercher produit »

Fig.6 : Diagramme de séquences <Search for an item(by auctionID)>


Lancer une recherche

Chargement d'interface

Introduire les infos

Créer()

Agent_Chercheur (AC)

Prendre infos produit()

Informer (resultat)

Requete de recherche (infos)

Informer (resultat)

Envoie_acusé_réception

Chercher (infos)

Réponse (resultat)

f. Diagramme de séquences « enchérir sur un article»

Fig.7: Diagramme de sequences < Bid for an item >

:Client
Lancer opération Négocier

AGUI

Prendre_criteres()

Créer()

Informer (echec)

Detruire()

[Enchére_terminé=faux]

loop Conditions de l'enchére

alt Condition d'une propsition

[Prix<Prixm_max]

[else]

AN

Demande d'inscription (infos)

Informer_MAJ_enchere(prix)

Réponse_proposition_recu

Envoie_proposition

Reponse

AE

Modifier prix enchére()

BDD

h. Diagramme de séquences «Valider achat »

A la fin d'une vente, l'administrateur (qui joue le rôle du vendeur) peut accepter ou refuser la vente
(selon la date/heure et le dernier bidder). Si celle-ci est acceptée, elle pourra être considérée comme un
contrat qui lie l'acheteur et le vendeur.
Fig.8 : Diagramme de séquences < Valider achat >

Informer (Gagant)

Informer_terminaison_(infos)

Detruire()

Demande payement

Chargement d'interface

Saisie_infos_banc

créer()

Transaction_bancaire

Verifier transaction ()

Supprimer produit (infos)

Demande transaction (infos)

MAJ_etat_enchére (etat=vendu)

:Client
J'ai divisé cette section en sept sous-sections – Admin_side, diddingServer, Client_side, ExempleServer,
Interface, Server_Side et User_Side. En raison de la nature de Java RMI, il existe certains éléments du
système qui couvrent les trois de ces sous-sections - qui est l’AuctionServer, Auction_Client et classes
qui implémentent ces interfaces. Cependant, cette section décrit chaque partie :
1. Admin_Side : Package qui contient six classes qui sont :
 Admin_AddProduct : Assure l’addition d’un nouveau produit en remplissant les champs :
ID : numéro d’identification du produit.
Product name : nom ou intitulé du produit.
Initial price : le prix initial du produit.
Date end : C’est la date d’expiration ou date de fin de produit.
 Admin_Login : Permet d’accès à un utilisateur d’accéder à l’interface avec Username et un
password. Si le nom d’utilisateur/le mot de passe est un incorrect, il indique ça avec un
message d’information.
 Admin_Products : Affiche la liste des produits dans un tableau qui contient les champs
suivants :
ID_Product : L’identificateur du produit.
Name_Product : Noms des produits.
Initial Price : Les prix initiaux des produits.
Current Price : Les prix courants des produits existants.
Date end : C’est la date de fin ou d’expiration.
 Admin : Contient l’implémentation de la classe Admin.
 AdminInt : C’est l’interface de la classe Admin.
 Help : C’est une définition de l’application avec un message de bienvenue.
2. biddingServer : C’est serveur d'enchères qui contient deux classes :
 Product : Classe qui implémente et construit un produit avec les champs :ID, name, price,
pricec et dateend.
 ServerInt : C’est l’interface qui englobe les méthodes nécessaires qui sont :
LoginAdmin.
Getlist.
Addproduct.
loginUser.
bidprice.
3. Client_Side : Package de la partie Client, contenant trois classes :
BidServerInt : C’est l’interface de la soumission du Serveur. Le serveur ajouterait le produit
identifié par le nom et un prix d'ouverture et doit notifier les autres clients de la nouvelle offre
de se produit et informer les enchérisseurs pour les clôturer enfin, il doit notifier le vainqueur.
Bidding : L’enchère qui contient les produits avec leurs prix initiaux et les soumessions. C’est
la classe qui contient l’implémentation basique de l’enchère.
BidClientInt : C’est l’interface de la soumission du Client. Ici client placerait une offre sur un
produit spécifique.
4. ExempkeServer : Package qui contient deux classes qui sont :
 AuctionClient :

Vous aimerez peut-être aussi