Table des matières

Projet de services Web 2015

Déroulement

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

Description

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.

Commande

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).

Traitement des commandes dans un restaurant et des commandes à livrer

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).

Flux financier

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.

Travail demandé

Les é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).

Utilitaires

Serveur de mail

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.

Services fournis

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.

MaBanque.com

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.jar2).

RapidBank.com

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.jar3).

PaiementMockup

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

Remarques

1)
pour simplifier, une ville est assimilée à un quartier
2) , 3)
-help pour les options