Le projet est à réaliser par groupes de 4 à 5 personnes.
On créera un projet forge pour le rendu.
Tous les étudiants du groupe doivent saisir l'identifiant du projet dans tomuss, dans la case PRJ_F
de l'UE TIW5: Services Web.
On incluera au dépôt Mercurial un script bash lancement.sh
qui démarrera les différents serveurs (sauf servicemix) via maven. Le script effectuera également les déploiement servicemix par copie de fichier dans des répertoires indiqués par les variables d'environnement $SMIX_DEPLOY
.
Le projet est à rendre pour le 31 janvier 2016
On souhaite développer une application de commande de repas à livrer. L'application se présente sous la forme d'un site Web offrant un choix de restaurants et permettant une recherche par quartier/ville1). L'affichage d'un restaurant est enrichi d'informations issues de DBPedia lorqu'une IRI est disponible.
Un client peut passer une commande pour un ensemble de repas. Pour cela il constitue un panier puis le valide. Il est alors redirigé vers une interface de paiement. Une fois le paiement confirmé, il reçoit un e-mail de confirmation de la commande. Le restaurant prépare la commande et met à jour son statut via une interface Web dédiée. Le livreur effectue ensuite la livraison et signale que la livraison a été effectuée sur son terminal (qui sera simulé par une interface Web). Le restaurant est alors payé (voir flux financier ci-dessous).
Un restaurateur dispose d'une interface Web (mentionnée ci-dessus) listant l'ensemble des commandes qui le concerne.
Cette interface permet de changer le statut d'une commande vers EN_PREPARATION
ou vers PRETE
.
De la même manière, un livreur dispose d'un terminal listant les commandes qu'il doit livrer et permettant de confirmer leur livraison (en passant le statut d'une livraison à LIVREE
).
Afin de confirmer sa commande, le client saisit ses informations bancaires (numéro de carte et cryptogramme) via une redirection sur le “site” de rapidbank.com. Ce dernier contacte mabanque.com qui effectue le débit si possible. En cas de problème, rapidbank.com affiche un message d'erreur. Sinon rapidbank.com invoque un URL prédéfinie du service paiement. Le compte bancaire du site de réservation est alors crédité du montant indiqué (pour simplifier, on utilisera l'opération debit
avec un montant négatif). Une fois la livraison confirmée, un transfert bancaire est effectué depuis le compte du site de restauration vers le compte du restaurant. Le site de réservation prend 3% du montant de la commande au titre de la gestion.
Toujours à des fins de simplification, on suppose que les clients, les restaurants et le site de réservation ont tous leur comptes hébergés chez mabanque.com.
livraison
vers ce serviceLes échanges de message et le processus métier devront être implémenté dans servicemix. Aucun serveur ne devra contacter aucun autre serveur directement, (hors servicemix qui assure le lien entre les services).
GreenMail peut-être utilisé pour simuler un serveur de mail en local si vous ne voulez pas utiliser votre propre compte mail. Il dispose de facilités pour tester les envois/réceptions de mail.
Les services et interfaces web de rapidbank.com et mabanque.com sont fournis dans services-fournis.zip
Cette archive contient des projets maven et peuvent être construits via mvn install
à la racine de l'archive.
Le site de mabanque.com est simulé par un serveur qui démarre sur localhost:8082
. Il peut être démarré via java -jar mabanque.com/target/mabanque.com-2015.0-jar-with-dependencies.jar
2).
mabanque.xml
et être ainsi rechargées au prochain démarrage.
Le site rapidbank.com est simulé par un serveur qui démarre sur localhost:8083
. Il peut être démarré via java -jar rapidbank.com/target/rapidbank.com-2015.0-jar-with-dependencies.jar
3).
Paiement
est invoqué (par défaut à l'emplacement http://localhost:8081/services/paiement).rapidbank.com/src/main/resources/Paiement.wsdl
L'application PaiementMockup permet de mettre en place un faux service Paiement
qui affiche simplment une ligne de log lors de la réception d'un paiement. Elle peut être démarrée via java -jar paiement-mockup/target/paiement-mockup-2015.0-jar-with-dependencies.jar
Il est possible de tester ces 3 services en les lançant tous, puis en se connectant sur les deux interfaces utilisateur http://localhost:8082/admin et http://localhost:8083/?cmdid=cmd-32&valeur=3.5
locService
a été étendu:getQuartiers
a été ajoutée