GICOM
Application de commerce électronique

Etape 1: Serveur eCOM étendu

Projet de M2GI thème SRR et RICM3 option SR

Année Universitaire 2007-2008

Université Joseph Fourier –Grenoble 1

 

Contributeur(s) étape : Sacha Krakowiak, David Felliot, Fabienne Boyer, Sébastien Chassande, Didier Donsez

Encadrement M2GI/SRR : Didier Donsez, Sara Bouchenak, Johann Bourcier

Encadrement RICM3/SR : Pierre-Yves Gibello, Didier Donsez

Plan

1      Objectif 1

2      Rappel eCOM... 1

3      Extensions de eCOM... 2

3.1       Préliminaires. 2

3.2       Fiabilisation du MailerBean. 2

3.3       Initialisation des parités entre devises. 4

3.4       Ajout des terminaux mobiles. 4

 

1     Objectif

L’étape 1 consiste à réaliser le serveur de commerce électronique eCOM, sans se soucier de son interaction avec le sous-système bancaire et le sous-système fournisseur.

Cette étape reprend les résultats du projet eCOM mené au premier trimestre et y ajoute le support des terminaux mobiles ainsi que l’initialisation des parités des devises en usage dans eCOM.

Les différentes sous-étapes devront être réparties entre les membres du projet.

2     Rappel eCOM

Le serveur GICOM doit rendre accessibles les fonctions de commerce électronique au travers du Web, c'est à dire qu'un client doit pouvoir utiliser ce serveur en lanceant un browser tel que Netscape. Pour cette raison, le "noyau" de l'application de commerce électronique sera mis en place sur un serveur Web, capable de recevoir et de traiter des requêtes HTTP.
Les fonctions principales fournies par le serveur sont les suivantes :

·       Sélection d'un magasin

·       Consultation des produits d'un magasin donné

·       Sélection d'un produit dans le but de le placer dans le caddie

·       Modification du contenu du caddie

·       Achat du contenu du caddie

3     Extensions de eCOM

3.1  Préliminaires

Le bean Order doit être présent et comporter la devise utilisée et sa parité avec l'Euro ! En effet, la devise est fixée au moment du démarrage de la commande.

Le bean Account est supprimé et remplacé par un SessionBean FundsTransfer qui réalise l'opération de transfert de fond multi-comptes entre les serveurs bancaires CORBA. Le bean FundsTransfer sera le point d’intégration du sous-système bancaire développé aux étapes 2, 3, 4. De quel type sera donc ce SessionBean (Stateless, Stateful, SessionSynchronization) ?

Le bean MailBean doit être présent pour envoyer un mail de confirmation de la commande au client après l’achat.

3.2  Fiabilisation du MailerBean

Le bean MailerBean présent dans l’exemple de Jonas présente le problème de cohérence suivant : en effet, en cas d’échec de la transaction, le mail de confirmation est expédié à l’utilisation alors que la commande n’est pas validée dans la base (via un Entity Bean). D'autre part, le serveur peut crasher pendant l'envoi d'un mail de confirmation pour une transaction validée.

Vous devrez proposer une solution assurant la fiabilisation de l’envoi des courriers.

Pour cela, vous utiliserez l’interface javax.ejb.SessionSynchronization pour le Stateful Session Bean MailerBean.

Avant d’entreprendre tout développement, vous pourrez regarder et tester l’exemple fourni avec la distribution de JonAS qui illustre un javax.ejb.SessionSynchronization Stateful Session Bean.

Remarque : si vous ne disposez pas de serveur de mails pour vos expérimentations (par exemple en fonctionnement hors réseau (offline)),vous pouvez installer le serveur de mail JAMES (Java Apache Mail Enterprise Server)

·       http://james.apache.org/

·       Claude Duguay, An introduction to Apache's James enterprise e-mail server, http://www-106.ibm.com/developerworks/java/library/j-james1.html

·       Claude Duguay, Build e-mail based applications with Matchers and Mailets, http://www-106.ibm.com/developerworks/java/library/j-james2.html

3.3  Initialisation des parités entre devises

Transformer le bean EuroConvertor pour qu'il charge une table de parité initialisé journellement à partir du Web Service suivant http://www.webservicex.net/CurrencyConvertor.asmx?wsdl

Le rafraîchissement des parités pourra être déclenché par le service EJB Timer qui utilise les interfaces de javax.ejb (TimedObject, Timer, TimerHandle, TimerService). Vous pourez consulter le tutoriel pour les EJBTimer de J2EE 1.4  http://java.sun.com/j2ee/1.4/docs/tutorial/doc/NewEJB4.html#wp80692 pour en savez plus.

Si ce WS n’est plus disponible, une liste plus complète de Web Service pour la conversion peut être trouvé sur http://www.bindingpoint.com/services.aspx?tag=srch&val=currency

Avant tout développement, vous pourrez regarder et tester les exemples dans GICOM_ENS\exemples\webservices ainsi que l’exemple %JONAS_ROOT%\examples\webservices fournit dans la distribution de JOnAS.

3.4  Ajout des terminaux mobiles

eCOM doit supporter une large variété de terminaux mobiles (iMode, WAP/WML, J2ME/CDLC/MIDP)

Vous devez en conséquence modifier les Servlets/JSP d’eCOM pour servir de tels terminaux.

·       Cours sur J2ME http://www-adele.imag.fr/~donsez/cours/j2me.pdf

·       Cours sur WAP/WML http://www-adele.imag.fr/~donsez/cours/wap_wml.pdf

·       Cours sur le iMode http://www-adele.imag.fr/~donsez/cours/imode.pdf