Home

CREATION D`UN SITE D`ENCHERES OPENCCM ET EJB

image

Contents

1. Rar processRar mci ei10306 elkachoi appServer rars autoload JOnAS jdbcCP rar available Rar processRar mci ei0306 elkachoi appServer rars autoload JOnAS jdbcXA rar available Rar processRar mci ei10306 elkachoi appServer rars autoload JOnAS jdbcDM rar available Rar processRar mci ei0306 elkachoi appServer rars autoload JOnAS jdbcDS rar available ServiceManager startServices resource service started JContainer addBean MEJB available ServiceManager startServices ejb service started Rapport du Projet de Fin d Etudes Encadrant 7 ASR 2005 2006 Sophie Chabridon 17 40 29 695 Http11Protocol init Initialisation de Coyote HTTP 1 1 sur http 9000 17 40 29 777 StandardService start D Omarrage du service Tomcat JOnAS 17 40 29 789 StandardEngine start Starting Servlet Engine Apache Tomcat 5 0 25 17 40 29 865 StandardHost start XML validation disabled 17 40 29 994 Http11Protocol start D Omarrage de Coyote HTTP 1 1 sur http 9000 17 40 32 570 AbsJWebContainerServiceImpl registerWar War mci ei0306 elkachoi appServer webapps autoload ctxroot war available at the context 17 40 34 439 AbsJWebContainerServiceImpl registerWar War mci ei0306 elkachoi appServer webapps autoload jonasAdmin war available at the context jonasAdmin 17 40 34 450 ServiceManager startServices web service started 17 40 34 499 ServiceManager startServices ear service started Le serveur JOnAS jonas ve
2. java jsp et html application xml web xml Web Jonas web xml JavaBeans et jetty xml EJB Le r pertoire beans Ce r pertoire doit contenir les fichiers de la couche m tier c est dire les JavaBeans et les EJB Dans notre cas nous avons r uni ces fichiers dans un seul package SiteEnchere Le r pertoire etc Ce r pertoire contient des fichiers de configuration application xml permet et de sp cifier les fichiers jar at war web xml permet de donner une description de l application web jetty xml permet de configurer le Realm pour Jetty Jonas web xml sp cifie les ressources Jonas Le r pertoire src Ce r pertoire contient le code source des servlets Dans notre cas nous avons une seule servlet ControleurAcces java sous le package servlet Le r pertoire web Ce r pertoire contient d une part le fichier index html la page par d faut du site et d autre part un r pertoire que nous avons nomm secured Celui ci contient les fichiers JSP et HTML de l application Le fichier build xml Ce fichier est obligatoire pour compiler l application avec l outil Ant Rapport du Projet de Fin d Etudes 9 ASR 2005 2006 Encadrant Sophie Chabridon 1 3 2 Compilation La compilation de l application s effectue en utilisant l outil Ant suffit d aller dans le r pertoire SiteEnchere et de taper ant 1 3 3 Ex cution Pour ex cuter l application Lancer le serveur jonas
3. void getlnitial_priceQ double setlnitialPrice double ini_price void getDurationQ int setDuration int duration void getStatei String setState String state void getLast pseudoi String setLast pseudo String pseudo void getPriced double setPrice double price void getStepd double setStep double step void getld biddingQ int getDate0 Date ejbFindAllBiddingsOnAPraduct id product int Enumeration ejbFindAllBiddingsOfAUser pseudo String Enumeration ejbFindByld product id productint Integer ejbHomeMakeABidding id productint price double pseudo String void ejbHomeGetDureetid productint int returnSteptid_productint double returninitialPrice id productint double ejbHomeGetDate id productint Date retumState id productint String getConnection Connection Comme on peut le remarquer travers ces diagrammes nous avons utilis une persistance BMP Bean Managed Persistence c est dire que nous avons g r nous m mes les interactions avec la base de donn es Le bean UserBean poss de quatre attributs name address email et pseudo En plus des m thodes de r cup ration et de d finition de ces attributs les getters setters il poss de la m thode ejbFindByPrimaryKey key UserKey qui permet de retourner une instance utilisateur selon sa cl primaire le pseudo et la m thode ejbFindAIIUsers qui permet de retou
4. compilation reconnaisse la structure Exemple de d claration de composant avec Product component Product The facet for Clients components provides Create Product for clients from Product Je The receptable to_bidding to connect the Client component to a validation Bidding object or facet reference uses Product_BD to_server_from_product home ProductHome manages Product La deuxi me tape est d crire dans le fichier cidl permettant la d claration explicite des composants Pour cela on utilise CIF Component Implementation Framework qui va d crire les interactions entre la partie fonctionnelle et non fonctionnelle de chaque composant Exemple de d claration du composant Client composition session ClientSessionComposition home executor Homelmpl implements ClientHome manages Componentlmpl composition session ServerSessionComposition home executor Homelmpl Rapport du Projet de Fin d Etudes 38 ASR 2005 2006 Encadrant Sophie Chabridon implements ServerHome manages Componentlmpl La troisi me tape est l criture des fichiers lt nomComposant Homelmpl java et nomComposant Impl java avec le code souhait Dans lt nomComposant gt Impl java on impl mente les m thodes offertes par le composant d fini dans l IDL ainsi qu une m thode configure qui sera tre appel e au moment du lancement de l application lt nomComposant Homelmpl
5. droits du fichier binaire en tapant la commande chmod x j2sdk 1 4 2 lt version gt linux i586 bin Ex cutez le fichier binaire en tapant la commande j2sdk 1 4 2 lt version gt linux i586 bin Modifiez la variable JAVA HOME dans le bashrc Export JAVA_HOME lt chemin ou se trouve java gt Installation de P ORB Pour notre projet nous avons utilis OpenORB mais on aurait pu galement utiliser JacORB ou ORBacus T l chargez sur le site http sourceforge net project showfiles php group_id 43608 OpenORB 1 4 0 tgz NameService 1 4 0 tgz SSL 1 4 0 tgz Tools 1 4 0 tgz Extraire les archives avec la commande tar xvzf lt nomDeLArchive gt tgz Modifiez le fichier bashrc en incluant les lignes export OpenORB HOME chemin o se trouve l ORB export CLASSPATH CLASSPATH OpenORB_HOME lib Cr ation du fichier orb properties en tapant la commande JAVA HOME bin java jar OpenORB HOME lib open orb 1 4 1 jar Installation de POpenCCM T l chargez sur le site http sourceforge net project showfiles php group id 10 OpenCCM 0 8 3 tar gz Extraire l archives avec la commande tar xvzf OpenCCM 0 8 3 tar gz Allez dans le r pertoire OpenCCM 0 8 3 openccm Ex cuter la commande build sh Un message d erreur s affiche mais le fichier build properties s est cr e Ouvrir le fichier build properties et modifier les champs suivants Rapport du Projet de Fin d Etudes 29 ASR 2005 2006 Encadrant Sophie
6. envoy son vendeur pour l informer que son produit n a pas t vendu A l issue de ce traitement la valeur de l tat du produit est mise false dans la base de donn es if b getState equals true if duration intValue lt 0 state false b setState false String byerPseudo b getLast pseudo if byerPseudo equals b getSeller pseudo String message Bonjour n Vous avez achete le produit pdt getTitle sur notre site d enchere n Il coA te price nAu revoir String mail getByerMail byerPseudo initialContext sendMail mail message else the product was not bought we send a mail to its seller String message Bonjour Nous sommes d sol s le produit pdt getTitle que vous avez pose en ench re sur notre site d ench re a d pass sa dur e d exposition et n a pas t vendu nAu revoir Rapport du Projet de Fin d Etudes 22 ASR 2005 2006 Encadrant Sophie Chabridon 4 4 Insertion d une nouvelle ench re et contr le du prix choisi par l utilisateur L utilisateur entre le prix avec lequel il veut ench rir au niveau de la page biddingTreatment jsp Ce prix sera transmis bid jsp qui fait appel au bean ProductList et plus particuli rement la m thode insertNewBidding pour v rifier si le prix entr respecte le pas de progression ou pas et ins rer l ench re dans la base de don
7. gt lt else oo gt gt The product is not still under bidding gt tr td td td pdt getId product gt lt td gt lt td gt lt pdt getTitle gt lt td gt lt td gt lt pdt getDescription gt lt td gt lt td gt lt val_price gt lt td gt lt td gt lt list putDateIntoFormat val_duration gt lt td gt lt td gt lt state gt lt td gt lt td gt lt val_step gt lt td gt lt tr gt C est la m thode listProducts du bean ProductList qui se charge entre autre de contr ler la date d expiration de la p riode de pr sentation du produit en ench re et d envoyer un mail au dernier ench risseur En effet cette m thode r cup re la dur e restante d exposition du produit l aide de la m thode getDuree de l EJB BiddingBean Integer duration new Integer bhome getDuree pdt getId product Ensuite elle r cup re la derni re valeur de l tat du produit enregistr e dans la base de donn es Si cette valeur est false alors aucun traitement n est fait car ceci suppose qu un mail est d j envoy au meilleur ench risseur sinon si la dur e r cup r e pr c demment est inf rieure 0 alors elle r cup re le pseudo du dernier ench risseur et son adresse email et lui envoie un mail lui confirmant l achat du produit Si la dur e d exposition du produit a expir et aucune ench re n a t faite la dessus un mail est
8. java qui va permettre de cr er et d instancier des composants Exemple avec BiddingHomelImpl java public class BiddingHomelmpl extends org objectweb ccm demo1 BiddingSessionComposition Homelmpl The default constructor public BiddingHomelmpl ee Create an executor segment from its identifier param segid The executor segment identifier public org omg Components ExecutorSegmentBase create_executor_segment int segid return new Biddinglmpl ZS This method is called by the OpenCCM Component Server to create a home instance public static org omg Components HomeExecutorBase create return new BiddingHomelmpl Rapport du Projet de Fin d Etudes 39 ASR 2005 2006 Encadrant Sophie Chabridon La quatri me tape est la jonction des diff rents composants cela se passe dans le fichier demol java o l on trouve le main Exemple avec l introduction du composant User composant serveur org objectweb ccm Deployment Server server5 org objectweb ccm Deployment ServerHelper narrow obj obtention des container homes et des installateurs d archives org omg Components Deployment ComponentServer server5 cs server5 provide component server org omg Components Deployment Componentinstallation serverb inst server5 provide install h server5 cont install home demo1 org objectweb ccm demo1 cif UserHomelmpl create home new org omg C
9. pertoire appServer sous le r pertoire SHOME Mettre jour le bashrc de la facon suivante export AppliHOME HOME Appli export JONAS ROOT AppliHOME JONAS 4 1 export JONAS BASE HOME appServer export CATALINA _HOME AppliHOME jakarta tomcat 5 025 export CATALINA BASE JONAS BASE export PATH JONAS ROOT bin unix P ATH export JAVA HOME AppliHOME j2sdk1 4 2 07 export PATH JAVA HOME bin PATH export ANT HOME APPLI HOME apache ant 1 6 2 export HOME bin PATH Ouvrir un nouveau terminal ou taper bash pour que le syst me tienne compte du nouveau bashrc Copier le fichier bcel 5 1 jar dans le r pertoire SANT HOME lib Aller dans le r pertoire SJONAS ROOT et taper ant create jonasbase V rifier que l environnement de travail est correct en tapant jonas check Pour d marrer le serveur Jonas taper jonas start Si tout se passe bien on aurait l affichage suivant JONAS BASE set to mci ei0306 elkachoi appServer Rapport du Projet de Fin d Etudes 6 ASR 2005 2006 Encadrant Sophie Chabridon 17 40 21 151 provider 17 40 21 463 17 40 21 510 17 40 21 921 PolicyProvider init Using JOnAS PolicyConfigurationFactory provider and JOnAS Policy TraceCarol infoCarol Name service for jrmp is started on port 1099 ServiceManager startRegistry registry service started MBeanServerFactory createMBeanServerImpl Creat
10. 15115 evry fr 9000 SiteEnchere secured autresEncheresTest jsp 673 ms 2 clients pseudo oussama 3 clients 711ms plante 3 clients 952ms 4 clients a plante Autres ench res sur un produit 1 client 1 client http elaphe int 274ms 250 ms evry fr 9000 SiteEnchere secured biddingsOnAProductTest jsp 3 clients 3 clients 505ms 500 ms 6 clients ca 5 clients plante plante Rapport du Projet de Fin d Etudes 26 ASR 2005 2006 Encadrant Sophie Chabridon On constate d apr s ces mesures que l outil poolMan n a pas vraiment contribu l am lioration des performances de l application vu que les temps de r ponse du serveur dans les deux cas avec et sans poolMan sont tr s proches et vu que ce logiciel n a pas pu r soudre les probl mes de blocage Dans les deux cas on constate que plus le nombre de clients qui acc dent simultan ment un lien augmente plus le temps de r ponse augmente mais cette augmentation n est pas lin aire et se fait en plus de facon al atoire lorsqu on effectue plusieurs exp riences sur le m me lien on constate que le temps que met le serveur pour r pondre avec un m me nombre de clients varie car ceci est li l tat du r seau et d autres facteurs externes Nous n avons pas pu malheureusement r soudre les probl mes de blocage mais nous pensons qu ils sont li s la capacit m moire de la machine elaphe qui est partag par tous les tudi
11. Chabridon Select the ORB used to compile and execute the OpenCCM platform Uncomment the used ORB and comment other ORBs For OpenORB 1 4 0 for Java ORB name OpenORB 1 4 0 The directory where the used ORB is installed Must be set Warning On Windows systems use instead of as directory separator ORB home dirzchemin ou se trouve l ORB Recompilez en ex cutant la commande build sh la compilation dure environ une dizaine de minutes Afin d installer OpenCCM on ex cute la commande suivante build sh install OpenCCM est pr t l emploi 1 2 Aspect d OpenCCM Le CCM est un framework de composants de type serveurs mais qui peut tre utilis cot client Cette technologie repose sur l utilisation de conteneurs qui servent d environnement d ex cution des instances composants ces conteneurs offres des services ces instances Le mod le abstrait il offre la possibilit de d finir des interfaces et les propri t s d un type de composant il permet aussi de d finir les gestionnaires d instances de composants Le langage utilis est IDL Le mod le de programmation il sp cifie le langage CIDL Component Impl mentation d finition Language utiliser pour d finir la structure de l implantation d un type de composant ainsi que certains de ces aspects non fonctionnels persistance transactions s curit L utilisation de ce langage est associ un framework L
12. II Utilisation des composants OpenCCM duo ERE 3 ER EA t erase 28 1 Presention d OpenGL TEE 29 e Cal OM 30 1 2 Aspect d OpenCCM eege CERO Eet 30 2 Notre application sous Open C C eaa gs 33 2 L L s composants NUN 33 2 2 Le sch ma de communication de nos 34 EM E m 35 3 La marche d SUIV Eces sssrin sonini nn a Ota Gea e ga on Ro e abd ed 37 4 Les problemes cec ERAS beggen 41 III Comparaison des avantages et inconv nients des deux mode les 43 P edition een Rapport du Projet de Fin d Etudes 2 ASR 2005 2006 Encadrant Sophie Chabridon Introduction Dans le cadre du projet de fin d tudes option ASR nous devons cr er deux versions simplifi es d un site de gestion d ench res l un utilisant les composants EJB et l autre les composants CORBA CCM et de comparer les avantages et inconv nients de ces 2 mod les de composants Notre application permet des utilisateurs de s enregistrer et de poser par la suite des produits en ench re ou de participer des ench res L utilisateur ne peut acc der aux fonctionnalit s du site qu apr s avoir t identifi en entrant son pseudo et son adresse email A l issue de son identification une session lui est attribu e et est ferm e lorsqu il se d connecte Le s
13. Il s agit de tester la r action du serveur lorsque la charge monte sur certains liens principaux o l acc s la base de donn es est important Pour cela nous avons impl ment un programme de test Bench java qui permet de lancer plusieurs threads envoyant simultan ment des requ tes HTTP vers une adresse donn e Ce programme permet aussi de mesurer le temps total qu a mis le serveur pour r pondre toutes ces requ tes 5 2 Legestionnaire de connexion poolMan Dans notre application nous avons retenu l approche la plus simple pour acc der la base de donn es consistant cr er une nouvelle connexion pour chaque requ te Ceci peut entrainer un blocage syst me lorsque de nombreux utilisateurs veulent acc der aux donn es du site Nous avons pens alors l outil poolMan qui est un gestionnaire de connexions qui cr e et manipule des regroupements de connexions la base de donn es Toutes les connexions d un m me regroupement sont dirig es vers le m me URI JDBC m me h te m me instance de base de donn es m me id de connexion Ceci permet alors d all ger le trafic sur la base de donn es Pour utiliser poolMan il faut T l charger poolMan sur ce site http sourceforge net projects poolman de zipper le fichier ajouter dans le CLASSPATH tous les jar qui se trouvent dans le r pertoire poolman 2 1 b1 lib Mettre le Driver de connexion la base de donn es dans le r pertoire JAVA_HOME jre lib ext Copie
14. act re de persistance d openCCM Mais la documentation sur ce sujet est assez restrictive et elle n cessite une cl de licence de JDO L installation de OpenCCM a chou sur nos comptes mci nous n avons pou tester comme dans la premi re partie la charge de client le au niveau de la base de donn es Nous nous sommes limit faire des tests m tiers comme tester le time out Rapport du Projet de Fin d Etudes 42 ASR 2005 2006 Encadrant Sophie Chabridon III Comparaison des avantages et inconv nients des deux modeles Rapport du Projet de Fin d Etudes 43 ASR 2005 2006 Encadrant Sophie Chabridon Points de comparaison OpenCCM EJB Installation Installation un peu difficile Demande beaucoup mais possibilit de choix d espace disque d ORB Installation un peu difficile Il faut faire attention faut faire attention l environnement dans lequel l environnement dans lequel on va installer le serveur on va installer Jonas version de JDK version de Tomcat D ploiement Pas de documentation il Pas de documentation il faut juste se baser sur des exemples basiques faut juste se baser sur des exemples faut faire attention l arborescence des fichiers Points positifs Utilisation de Ant pour la compilation Interface graphique fournies par le serveur Jonas pour la mise en ceuvre de l application Compatibilit avec Pas de compatibilit Compa
15. ais fonctionnelle Son d veloppement est bas sur des balises HTML et JSP Une touche cr ative pourra tre ajout e par la suite grace des images d arri re plan pour les boutons des cadres etc L ergonomie de l application peut tre pr sent e par le sch ma ci dessous Erreur Pseudo Authentif Error Email Nouveau Authentification R 1 Nouv au ussie Trouver un obiet Cd Mettre un objet en ench re Nom Ench rir sur un objet Pr nom Voir les autres ench res que vous Adresse avez effectu es Email Voir les autres ench res effectu es rouver un objet Ench rir sur un objet Mettre un objet en ench re Liste des ench res effectu es pr c demment Voici la liste des objets en ench re correspondant votre recherche Titre Prix Description Envover Duree Rapport du Projet de Fin d Etudes 11 ASR 2005 2006 Encadrant Sophie Chabridon D tails objet Autres ench res sur ce produit Voreprix __ Prix n est pas bon ne respecte pas le pas d volution Autres ench tes sur ce produit Retour Le prix est bon Voici la liste des ench res effectu es pr c demment sur ce produit L utilisateur commence par entrer son pseudo et son email s il en poss de sinon il doit s inscrire On v rifie si les informations sont bonnes et si c est le cas il sera dirig vers un cran qui lui permettra de choisir entre la mise d un obj
16. ant la m thode controlePseudo du bean Rapport du Projet de Fin d Etudes 17 ASR 2005 2006 Encadrant Sophie Chabridon NewProduct String String String String double int double NewProducti addProductf setPseudo String pseudo setTitle String title setCategory String category setDescription String description setinitial price double initial price setDuration int duration setStep double step Comme pour addUser du JavaBean pr c dent la m thode addProduct utilise une instance du HOME de ProductBean pour ajouter un produit dans la base de donn es ProductList available products Vector prices Vector durations Vector states Vector steps Vector dates Vector last biddings user Vector user dates Vector last biddings Vector title String description String category String price double ProductListi void listProductsQ void JistBiddingsOnAProduct d productint void listBiddingsOfAUser pseudo String void productDetails id productint void getProductNametid_productint String controlPricetprice double id productint BiddingHome bhome boolean synchronized insertNewBiddingt id productint price double pseudo String String returnSteptid_productint double sendMail to String content String void getBuyerMail pseudo String initialContext String putDatelntoFormat secon
17. ants de l INT et qui en plus dans le cadre de notre projet sert de serveur d application et h berge la base de donn es Rapport du Projet de Fin d Etudes 27 ASR 2005 2006 Encadrant Sophie Chabridon II Utilisation des composants OpenCCM Rapport du Projet de Fin d Etudes 28 ASR 2005 2006 Encadrant Sophie Chabridon Cette partie est consacr e l utilisation d openCCM ainsi qu la r alisation de notre site d ench re gr ce aux composants Corba Nous allons introduire cette partie avec le mode d installation des diff rents l ments indispensables l utilisation d OpenCCM Puis seront explicit les diverses aspects d openCCM savoir la d finition des CCM l explication du mod le abstrait ainsi que l explication du mode d utilisation des composants Nous verrons ensuite la transcription de notre application de site d ench re travers les composants CCM Cette partie sera suivie d un mode d emploi expliquant la marche que nous avons suivi lors de la cr ation de notre application Nous finirons cette partie par les probl mes rencontr s et les tests utilis s 1 Presention d OpenCCM 1 1 L installation Cette partie peut prendre beaucoup de temps et il est important de ne pas la n gliger Installation du JDK 1 4 2 Pour l utilisation d openCCM il est n cessaire d avoir un Java Developpement Kit JDK T l chargez j2sdk 1 4 2 binaire sur le site http java sun com 2se 1 4 2 download html Modifiez les
18. avant l expiration de la p riode de son exposition Tant que cette dur e est non nulle un bouton radio est ajout au d but de chaque ligne permettant ainsi l utilisateur de choisir le produit correspondant pour ench rir dessus Ces informations sont r cup r es des vecteurs available products prices durations states et steps qui sont remplis par le bean ProductList java t for int i 20 i available products size i Product pdt Product available products elementAt i Double price Double prices elementAt i double val price price doubleValue Integer duration Integer durations elementAt i int val duration duration intValue String state String states elementAt i Double step Double steps elementAt i double val step step doubleValue if state equals true Rapport du Projet Fin d Etudes 21 ASR 2005 2006 Encadrant Sophie Chabridon The product is still under bidding gt tr td INPUT TYPE radio NAME product VALUE lt pdt getId_product gt gt lt td gt lt td gt lt pdt getId_product gt lt t d gt lt td gt lt pdt get Title gt lt td gt lt td gt lt pdt getDescription gt lt td gt lt td gt lt val_price gt lt td gt lt td gt lt list putDateIntoFormat val_duration gt lt td gt lt td gt lt state gt lt td gt lt td gt lt val_step gt lt td gt lt tr
19. ds int String searchProductsicriterion String void NB Sur ce dernier diagramme nous n avons pas pr sent les getters setters des attributs par souci de clart Rapport du Projet de Fin d Etudes 18 ASR 2005 2006 Encadrant Sophie Chabridon La m thode listProducts permet de lister les produits qui sont mis en ench re Elle enregistre leurs titres prix tats dur es et pas de progression dans les vecteurs available products prices states durations et steps Ces vecteurs seront par la suite lus par le fichier JSP qui se chargera d afficher ces produits listBiddingsOnAProduct et listBiddingsOfAUser se basent sur le m me principe mais affichent respectivement les ench res qui ont t faites pr c demment sur un produit donn et les ench res qui ont t faites par un utilisateur La m thode productDetails se charge de r cup rer les d tails d un produit cette m thode est utilis e au moment l utilisateur a choisi un produit sur lequel il va ench rir La m thode insertNewBidding permet d enregistrer une nouvelle ench re dans la base de donn es Rapport du Projet de Fin d Etudes 19 ASR 2005 2006 Encadrant Sophie Chabridon 4 Impl mentation des fonctionnalit s principales de l application 4 1 Enregistrement d un utilisateur et lajout d un produit Comme nous l avons d j mentionn l acc s notre site se fait apr s l introduction d un pseudo et d une adresse email Si l utilisateur n
20. e CIF Component Implementation Framework qui d finit comment les parties fonctionnelles programm es coop re avec les parties non fonctionnelles d crites en IDL CIDL est g n r es Il d finit aussi la mani re dont le composant interagit avec le container Le mod le de d ploiement il sert installer une application sur diff rents sites d ex cution de mani re simple et automatique e e mod le d ex cution d finit l environnement d ex cution des instances de composants Le r le principal des containers est de masquer et prendre en charge les Rapport du Projet de Fin d Etudes 30 ASR 2005 2006 Encadrant Sophie Chabridon aspects non fonctionnelelles les composants qu il n est alors plus n cessaire de programmer e Le mod le abstrait OpenCCM Le mod le abstrait va nous permettre de d finir les diverses interfaces fonctionnelles n cessaires la communication entre les diff rents composants Ce mod le utilise le langage idl3 afin de d finir ces interfaces Puis lors de la phase de compilation un fichier idl2 est g n r afin de permettre au d veloppeur d engendrer le stub c t client et le skeleton c t serveur Ceci est d crit dans les sch mas suivants disponibles dans le guide d utilisateur sur le site d openCCM Component Component Client Desianer by EI User written ET Compiler Generated files Figure 1 la chaine de compilation de composan
21. e poss de pas encore de compte il peut cr er un en cliquant sur le lien Si vous tes nouveau cliquer ici de la page d accueil Ceci le m ne vers un formulaire HTML il peut saisir ses informations personnelles Les donn es saisies seront trait es dans le fichier addNewUser jsp Celui ci utilise le bean Login java pour enregistrer le nouvel utilisateur lt jsp useBean id login scope session class SiteEnchere Login gt 1 Verify the parameters t if request getParameter name equals amp amp request getParameter name null amp amp request getParameter address eq uals amp amp request getParameter pseudo equals amp amp request getParameter email equals gt lt jsp setProperty name login property gt lt User user login addUser if user null The pseudo and email are valuable session setAttribute user user oo V Une fois que qu on l a enregistr on cr e une session qui lui correspond Cette session sera ferm e au moment o il se d connecte En ce qui concerne l ajout d un nouvel produit nous avons suivi le m me principe un formulaire HTML pour la saisie des informations concernant ce produit et un fichier JSP addNewProduct jsp qui utilise le bean NewProduct java pour l ajout du produit dans la base de donn es en cas de succ s 4 2 L authentification L authentification se fait
22. e s paration entre la pr sentation des donn es et leur traitement Ainsi des pages JSP se chargent de l affichage et du formatage des donn es alors que des Java Beans et des EJB se chargent d effectuer les calculs Tiers Tiers Pr sentation Tiers M tier Donn es 1 2 Le serveur d application et la base de donn es 1 2 4 Environnement de travail Pour mettre en place notre application il nous a fallu les pr requis suivants SDK J2SE que l on r cup re sur le site officiel de Sun Nous avons utilis la version 1 4 2 07 Ant un Make multi plateforme bas sur Java que l on r cup re sur le site officiel d Apache Nous avons utilis la version 1 6 2 BCEL une librairie n cessaire Ant pour compiler que l on r cup re sur le site officiel du projet Jakarta d Apache Nous avons utilis la version 5 1 Jonas que l on r cup re sur le site officiel d ObjectWeb Nous avons utilis la version 4 1 Tomcat que l on r cup re sur le site d Apache Nous avons utilis la version 5 0 25 Rapport du Projet de Fin d Etudes 5 ASR 2005 2006 Encadrant Sophie Chabridon 1 2 2 Installations Pour mettre en place l environnement de travail nous avons suivi la proc dure suivante Cr er un r pertoire Appli sous votre SHOME D zipper dans ce r pertoire les fichiers apache ant 1 6 2 bin tar bz2 jakarta tomcat 5 0 25 tar gz jonas tgz et bcel 5 1 tar gz Installer dans ce r pertoire la jdk 1 4 Cr er un r
23. eco P Oussama ELKACHOINDI Wajdi MEHENNI CREATION D UN SITE D ENCHERES OPENCCM ET EJB Rapport du Projet de Fin d Etudes ASR 2005 2006 Encadrant Mme Sophie Chabridon SOMMAIRE E RE 3 I Utilisation des composants EDP sas dl mc and a i e 5 l Choix technolo oem 5 1 1 Une architecture trois COUCKES reete 3 1 2 Le serveur d application et la base de donn es 5 1 3 D ploiement de l application Web sur le serveur Jonas 9 1 4 La Base de donibeg u nine 10 2 Conception de l interface DUISBIQUE ETE CERIS 11 3 Conception de l AphicA ON seven 13 3 1 Conception de la base de donn es cea eerte etn nre 13 3 2 Conception des EJB EE 14 3 3 Conception des JavaBeans ENEE eid 17 4 Impl mentation des fonctionnalit s principales de l application 20 4 1 Enregistrement d un utilisateur et l ajout d un produit 20 4 2 E authentification siie tement ad a DERE pee 20 4 3 L affichage des produits en ench re et le contr le de leur tat 21 4 4 Insertion d une nouvelle ench re et contr le du 23 S E EE ee inten 24 NE Uu 6 LT 24 5 2 Le gestionnaire de connexion poolMan 24 5 3 LeS NC Cari MN 26
24. ed MBeanServer with ID 54a328 1090cbc9e18 7ffd elaphe int evry fr 1 17 40 22 174 RMIConnectorServer start RMIConnectorServer started at service jmx rmi localhost jndi jrmpconnector jonas 17 40 22 176 17 40 23 068 17 40 23 198 17 40 24 007 17 40 24 053 17 40 24 054 17 40 24 057 17 40 24 059 17 40 24 137 ServiceManager startJmx jmx service started ServiceManager startServices jtm service started HsqlDBServicelmpl doStart Starting HSQLDB server 1 7 2 on port 9001 HsqlDBServicelmpl doStart HSQLDB server started HsqlDBServicelmpl doStart User not found SA HsqIDBServiceImpl doStart Dropping and adding user jonas with password jonas HsqlDBServicelmpl doStart Error while creating adding user null ServiceManager startServices db service started DataBaseServiceImpl createDataSource Mapping ConnectionManager jdbc mysql www tp int evry fr jonas_db1 on jdbc_1 17 40 24 158 17 40 24 823 17 40 25 763 17 40 25 765 17 40 26 270 17 40 26 890 17 40 27 044 17 40 27 117 17 40 27 227 17 40 27 232 17 40 28 463 17 40 28 486 ServiceManager startServices dbm service started ServiceManager startServices security service started JmsAdminForJoram startMOM starting MOM on host localhost port 16010 JmsAdminForJoram start starting JmsAdmin with host localhost port 16010 ServiceManager startServices jms service started
25. ermettre au composant d accepter cette r f rence Ce jeu de r ceptacle facette doit tre d finit explicitement dans le fichier idl3 car il va retranscrire une interface Rapport du Projet de Fin d Etudes 32 ASR 2005 2006 Encadrant Sophie Chabridon 2 Notre application sous OpenCCM Nous allons exposer dans cette partie la conception de notre application Nous introduisons tout d abord les composants utilis s en utilisant la repr sentation standard et en expliquant le r le de chacun d entre eux dans l application Puis un sch ma r sumant l interaction entre ses composants sera pr sent Il sera suivi de la caract risation des interfaces introduites dans le sch ma de relation des composants Le sch ma relationnelle de base de donn es ainsi le sch ma repr sentant l enchainement des interfaces graphiques sont les m mes que dans la premi re partie 2 1 Les composants Client GIU Composant qui va servir de relais entre le client et le traitement Dans ce composant l on retrouve les diff rents formulaires utiles pour les diff rentes op rations d ench re vente User e Composant tampon entre le client et la base de donn es Il va permettre d avoir une vue locale des informations du client Entre la demande de cr ation et la validation de cette cr ation du client au niveau du serveur ce composant va servir stocker au niveau local des informations du client Product Composant tampon entre le p
26. espondant au bean UserBean et juste la classe principale pour les beans BiddingBean et ProductBean car leurs diagrammes de classes sont semblables celui de UserBean interface EJBContext IR lt lt interface gt gt Serializable lt lt interface gt gt EntityBean lt lt interface gt gt Serializable Classe aes EE SetEntityContext cbcEntilyContext void IN unsetEntityContextt void ejbRemove void amp jbActivate ejbPassivate ejbLoad ejbStore lt lt interface gt gt EntityContext getPrimaryKey void Classe lt lt interface gt gt EnterpriseBean String address String email String pseudo String setEntityContext EntityContext chi void unsetEntityContext void ejbCreate name String pseudo String address String email String Userkey ejbFindByPrimaryKey key Userkey setAddress String addr getEmail setEmail String email getPeudo Rapport du Projet de Fin d Etudes 14 ASR 2005 2006 Encadrant Sophie Chabridon ProductBean context EntityContext id_product Integer title String category o String description String datasource DataSource setEntitrcantext Entitr Cantext ct unsetEntity Cantexto ejbFindAllProducth ajbFindProductsByCriteriatcriterium String ejbPostCreatet ejbRem
27. et en ench re la consultation des objets qui sont mis en ench re ou la consultation de l historique des ench res qu il a d j effectu es Selon son choix il sera dirig vers un cran lui demandant de saisir les informations concernant l objet qu il veut mettre en ench re un cran lui listant les produits disponibles en ench re ou un cran lui listant les ench res qu il a effectu es pr c demment Dans le deuxi me cas l utilisateur peut choisir un objet sur lequel il peut ench rir Il choisira dans un second cran le prix avec lequel il pose son ench re sachant que ce prix doit respecter le pas d volution choisi par le vendeur L utilisateur peut aussi consulter l historique des ench res pos es sur le produit qu il a choisi Dans tous ces crans les informations saisies par l internaute sont contr l es et dans le cas d un probl me il est redirig vers une page d erreur Rapport du Projet de Fin d Etudes 12 ASR 2005 2006 Encadrant Sophie Chabridon 3 Conception de l application 3 1 Conception de la base de donn es pseudo _ id product name Bae title_ address_ _add a new bidding 14 category email description biddings seller_pseudo_ id_product_ initial_price_ duration_ step_ state_ last_pseudo_ price_ date_ Notre base de donn es est compos e de trois tables users qui mod lise un utilisateur en tant que vendeur ou acheteur products qui mod lise un produ
28. it mis en ench re et biddings qui mod lise une ench re Une ench re peut tre interpr t e de deux fa ons du point de vue d un vendeur il s agit de la mise en ench re d un produit et du point de vue d un acheteur o il s agit de poser une ench re sur un produit Un utilisateur est identifi par son pseudo un produit par un id qui est incr ment automatiquement et une ench re par un id incr ment e automatiquement aussi D apr s ce diagramme on remarque bien qu un utilisateur en tant que vendeur peut poser de 0 N ench res c est dire qu il peut mettre en ench re 0 N produits et en tant d acheteur peut aussi participer 0 ou N ench res c est dire qu il peut ench rir sur 0 N objets A un instant donn une ench re ne peut correspondre qu un seul utilisateur et un seul produit En outre un produit peut faire l objet de 0 N ench res Rapport du Projet de Fin d Etudes 13 ASR 2005 2006 Encadrant Sophie Chabridon 3 2 Conception des EJB Nous avons d j conclu que la couche m tier de notre application est form e par des EJB et des JavaBeans Les objets utilis s sont des objets persistants beans d entit Nous avons eu besoin de trois beans d entit le bean UserBean qui correspond la table Users de notre base de donn es le bean BiddingBean qui correspond la table biddings et le bean ProductBean qui correspond la table products Nous donnons ici le digramme de classe complet corr
29. ite offre chaque utilisateur la possibilit de connaitre toutes les ench res faites sur un produit sp cifique et d avoir un historique concernant les ench res qu il a d j faites On s est content dans le cadre de ce site de fournir une interface graphique simple Dans ce rapport nous allons exposer les d marches suivies dans les deux versions pour d velopper l application et nous allons pr senter surtout les phases d installation des produits utilis s et les mani res de les exploiter Nous allons aussi exposer des jeux de tests que nous avons effectu s pour mesurer les performances de cette application Rapport du Projet de Fin d Etudes 3 ASR 2005 2006 Encadrant Sophie Chabridon I Utilisation des composants EJB Rapport du Projet de Fin d Etudes 4 ASR 2005 2006 Encadrant Sophie Chabridon 1 Choix technologique 1 1 Une architecture trois couches Nous avons essay de suivre le mod le de d veloppement J2EE Nous avons trois couches Couche pr sentation La couche de pr sentation assure la logique de navigation mais aussi la gestion des droits de l utilisateur authentification session Couche m tier Impl ment e sous forme de JavaBeans ou EJB c est dans cette couche que l on retrouve l ensemble des traitements d une application Couche persistance Elle se compose souvent d une base de donn es de type SGBDR Ceci permet d avoir un code plus simple et une impl mentation plus claire o il y a un
30. jonas start Ouvrir un navigateur Web et taper http lt hote gt lt port gt jonasAdmin lt hote gt est le nom de la machine serveur port c est le port sur lequel est configur le serveur Jonas g n ralement 9000 Dans notre cas http elaphe int evry fr 9000 jonasAdmin Entrer jonas comme pseudo et mot de passe A gauche cliquer sur le lien Applications EAR S lectionner SiteEnchere ear puis cliquer sur le bouton gt gt gt Cliquer sur Apply puis sur Confirm On vient ainsi de d ployer notre application S il y a des erreurs dans les fichiers XML qui se trouvent dans le r pertoire etc une erreur apparait lors de l appui sur le bouton Confirm Pour visiter le site il ne reste plus alors qu entrer l adresse URL correspondante http lt hote gt lt port gt lt nom_application gt o nom application est le nom qui pr c de l extension ear Dans notre cas http elaphe int evry fr 9000 SiteEnchere On tombe sur la page index html 1 4 La Base de donn es Nous avons utilis une base de donn es MySQL C est celle qui se trouve sur la machine www tp de PINT Pour y acc der taper http www tp int evry fr phpMyAdmin puis jonas 461 comme pseudo et ujdbl comme mot de passe Rapport du Projet de Fin d Etudes 10 ASR 2005 2006 Encadrant Sophie Chabridon 2 Conception de l interface Utilisateur Nous nous sommes content s d une interface simple m
31. l utilisateur au niveau de la base de donn es ains qu une fonction de validation d authentification fonction de validation de creation de l utilisateur Si l utilisateur existe deja elle retourne faux boolean create a user BD in string pseudo in string nom in string adress In string mail function de validation d authentification boolean authentify in string login in string pw Rapport du Projet de Fin d Etudes 35 ASR 2005 2006 Encadrant Sophie Chabridon Create Product BD de m me que pour Create User BD elle va permettre la validation de la cr ation du produit au niveau de la base de donn es fonction de validation de la creation d un produit void create a product BD in string tilte in string categorie in string description fonction de recuperation du numero d identification du produit long getldProduct Display Elle va galement permettre le listage au niveau des ench res stock es dans la base de donn es Object data list listBidding Pour pouvoir communiquer les informations de la base de donn es au client nous avions besoin de d clarer une structure Object data qui va contenir tous les attributs de la base de donn es concernant l ench re Pour pouvoir lister les ench res nous avons utilis un tableau d Object data nomm Object data list Rapport du Projet de Fin d Etudes 36 ASR 2005 2006 Encadrant Sophie Chabridon 3 La marche suivre Afin de mieux comprendre le fonctionnement d
32. n bidding validated in string pseudo in float new price in long id bidding fonction de validation de vente Elle va donc faire la junction des diverses tables de la base de donn es et stocker les informations void sell in string pseudo seller in long id product in float start price in long step in string date function qui renvoie le numero d identit de l ench re long getldBidding Create User va contenir une fonction demandant la cr ation d un utilisateur ainsi qu une fonction de r cup ration des informations sur ce m me utilisateur Cette interface va permettre galement une demande d authentification du client fonction de demande de creation d utilisateur Si le pseudo existe d j elle retourne faux boolean create a user in string pseudo in string nom in string adress in string mail fonction qui retourne le pseudo de l utilisateur string getPseudo function demandant l authentification du client boolean authentify in string login in string pw Create Product de m me que pour Create User elle va engendrer la demande de cr ation d un objet produit et va permettre la r cup ration de certaines donn es fonction de demande de creation d un produit void create a product in string title in string categorie in string description function de recuperation du numero d identification du produit long getldProduct Create User BD est compos e d une fonction de validation de la cr ation de
33. ner si c est le cas Cette m thode v rifie aussi que celui qui fait l ench re n est pas le vendeur du produit Elle retourne une chaine de caract re qui est gale price not available si le prix choisi ne respecte pas le pas de progression buyer not valid si celui qui fait l ench re est le vendeur du produit et price available sinon Cette chaine de caract re est renvoy e au fichier JSP bid jsp qui redirige alors l utilisateur vers un cran lui confirmant le succ s de l ench re qu il a faite ou vers un cran lui demandant d entrer un autre prix car le prix entr ne respecte pas le pas de progression ou encore vers un cran qui lui informe qu il ne peut pas ench rir sur le produit s il est son vendeur Success price not available try Bidding b bhome findById product id product verify that the buyer is not the seller pseudo if pseudo equals b getSeller_pseudo success byer not valid else utx begin verify that the chosen price respects the step boolean availability controlPrice price id product bhome if availability true bhome makeABidding id product price pseudo success price available utx commit catch Exception e System err println Cannot create Bidding e System exit 2 return success Rapport du Projet de Fin d Etudes 23 ASR 2005 2006 Encadrant Sophie Chabridon 5 Les Tests S Principe
34. oduit returnlInitialPrice id product int qui retourne le prix initial d un produit et returnState id product int qui retourne l tat d un produit encore disponible ou pas 3 3 Conception des JavaBeans Les JavaBeans jouent le r le d interm diaire entre les EJB qui manipulent les donn es de la base de donn es et les JSP qui pr sentent ces donn es sous une certaine forme Nous avons utilis trois JavaBeans Login java qui g re l ajout des utilisateurs dans la base de donn es NewProduct java qui g re l ajout d un produit et ProductList java qui permet de lister les produits en ench re les ench res effectu es par un utilisateur ou les ench res effectu es sur un produit sp cifique Ces beans sont utilis s par plusieurs pages JSP Le but est d viter de faire des appels aux EJB dans ces fichiers JSP tous ces appels se font l int rieur des JavaBeans Nous pr sentons ci dessous ces diff rents beans String String String String void addUser User isUsed boolean setPseudo String pseudo void setEmail String email void setName String name void setAddress String address void La m thode addUser r cup re une instance du HOME de UserBean et ajoute un utilisateur la base gr ce la m thode create La m thode isUsed r cup re aussi une instance du HOME de UserBean et elle v rifie si le pseudo choisi par l utilisateur est d j utilis ou pas en utilis
35. omponents ConfigValue 0 UserHome uh UserHomeHelper narrow h Server s sh create deja existant Client c1 ch create deja existant User u uh create utilisation des interfaces Create User for clients from userzu provide for clients from user User BD for User from server s provide for user from Server en rouge on t declare lors de la declaration du composant de le fichier idl3 avec l exemple de Product on aurait utilis for clients from Product connect le client a l utilisateur et l utilisateur au serveur 1 to user for clients from user u connect to server from user for User from server Configuration completion u configuration complete La cinqui me tape est de modifi le fichier cad dans le repertoire META INF pour pouvoir d ployer les composants Exemple avec l introduction de Bidding lt homeplacement gt lt homeplacement cardinality 1 id BiddingHome gt componentfileref idref BiddingCSD gt lt componentimplref idref Biddinglmpl gt registerwithhomefinder name demo1 BiddingHome gt lt registerwithnaming name demo demo1 BiddingHome gt lt registerwithtrader gt lt traderexport gt lt traderservicetypename gt HomeService lt traderservicetypename gt lt traderproperties gt lt traderproperty gt Rapport du Projet de Fin d Etudes 40 ASR 2005 2006 Encadrant Sophie Chabridon lt traderpropertyname gt description lt traderp
36. openCCM nous avons suivi l exemple de base la demol Nous nous sommes donc servi de l existent afin de gagner du temps disposition d un moyen direct de compilation et d viter de toucher au build xml et au build sh Afin de pouvoir situ les fichiers que nous avons modifi s nous avons repr sent l architecture du r pertoire demol Build xml Archives META INF Demol jar Demol class Client jar cad idl Server jar Nous allons d crire les diff rentes tapes suivre en incluant des exemples lt gt Imlp java lt gt Homelmpl java La premi re tape est d crire dans le fichier idl3 Ce fichier contient la d finition des composants des structures ainsi que des interfaces Exemple de d claration d interface avec Create User interface Create User boolean create a user in string pseudo in string nom in string adress in string mail string getPseudo boolean authentify in string login in string pw Rapport du Projet de Fin d Etudes 37 ASR 2005 2006 Encadrant Sophie Chabridon Exemple de d claration de structure avec Object data et Object data list struct Object data string title string category string description float start price float step boolean status float actual price long id string date end E typedef sequence Object data Object data list Attention lorsque la structure est utilis e dans un fichier il faut lui ajouter un import pour que lors de la
37. oved ejbActivated ejbPassivater ejbLoad ejbStored qetTitle setTitlectitle String get ategoty setCategonicat String getDescription setDescriptionidescription String getld producti setld_productintqer id getConnectiong Rapport du Projet de Fin d Etudes 15 Encadrant Sophie Chabridon void void ejbCreatertitle String categarvatring description String ejbFindByPrimaryKevrkey Productk oi Productkey Praductkey Enumeration Enumeration vnid vpid void void vnid vnid String void String void String void int vpid Connection ASR 2005 2006 BiddingBean context EntityContext id bidding Integer seller pseudo String id product Integer duration Integer dataSource DataSource state String last pseudo String price Double step Double date Date setEntityContext EntityContext void unsetEntityContexti void ejbCreate seller_pseudo String val id productint val initial price double val duration state last pseudo val price val step Integer ejbFindByPrimaryKey key Integer void ejbFindAllProductsQ Enumeration ejbPostCreate void ejbRemoved void ejbActivated void ejbPassivated void ejbLoadd void ejbStored void getSeller_pseudo String setSeller pseudo String sp void getid product int setld product nt id
38. par l interm diaire d un formulaire HTML au niveau de la page d accueil L utilisateur doit saisir son pseudo et son mot de passe Ces donn es saisies seront redirig es vers la servlet ControleurAcces java pour les traiter En effet nous avons essay ici de suivre le mod le MVC Model View Controller la base de donn es joue le r le de Model la servlet le r le de Controller et les pages JSP le r le de View Rapport du Projet de Fin d Etudes 20 ASR 2005 2006 Encadrant Sophie Chabridon Contr leur ActionChoi ce jsp Tiers Tiers Pr sentation Tiers M tier Donn es 1 L utilisateur met une requ te aupr s du serveur en utilisant la m thode POST 2 Le contr leur acc de aux informations demand es au travers d un JavaBean 3 Le contr leur transmet le JavaBean la page JSP charg e de la mise en forme du document 4 La page JSP utilise les informations du JavaBean transmit met en forme les informations et retourne la r ponse l utilisateur La servlet utilise l EJB UserBean pour v rifier si les donn es saisies par l utilisateur sont bonnes ou pas 4 3 L affichage des produits en ench re et le contr le de leur tat Ceci se fait au niveau du fichier BiddingOnProduct jsp Les produits sont pr sent s sous forme de tableau Chaque ligne correspond un produit et fournit les informations le concernant tel que le titre le prix actuel la dur e restante
39. r poolman jar dans JONAS BASE examples output webapps nom de l applicationz WEB INF lib nom de l application est dans notre cas SiteEnchere Ecrire un fichier poolman xml comme suit les param tres varient bien str d un cas un autre lt xml version 1 0 encoding UTF 8 gt lt poolman gt lt management mode gt local lt management mode gt lt datasource gt lt dbname gt jonas_db1 lt dbname gt lt jndiName gt jdbc_1 lt jndiName gt lt driver gt com mysql jdbc Driver lt driver gt lt url gt jdbe mysql www tp int evry fr jonas_db1 lt url gt lt username gt jonas_db1l_user lt username gt lt password gt ujdb1 lt password gt lt minimumSize gt 0 lt minimumSize gt lt maximumSize gt 5 lt maximumSize gt lt datasource gt lt poolman gt Rapport du Projet de Fin d Etudes 24 ASR 2005 2006 Encadrant Sophie Chabridon lt maximumSize gt d signe le nombre de connexions que le regroupement peut contenir Ici par exemple chaque regroupement contient 5 connexions Placer ce fichier dans le r pertoire SJONAS BASE conf Dans les fichiers des EJB ici BiddingBean UserBean et ProductBean remplacer l ancienne m thode getConnection par celle ci private Connection getConnection throws EJBException SQLException try Class forName com codestudio sql PoolMan newInstance catch Exception ex System out println Could Not Find the YAPoolMan Driver Mn Is poolman jar in
40. rner tous les utilisateurs Le bean ProductBean a exactement la m me architecture Rapport du Projet de Fin d Etudes 16 ASR 2005 2006 Encadrant Sophie Chabridon Le bean BiddingBean est plus compliqu car il constitue le lien entre les deux autres et le centre des fonctionnalit s de notre site En plus des m thodes classiques concernant la cr ation la r cup ration la suppression d un EJB et des m thodes de r cup ration et d finition des attributs ce bean poss de la m thode ejbFindAllBiddingsOnAProduct id product int qui permet de retourner toutes les ench res faites sur un produit sp cifique la m thode ejbFindAllBiddingsOfAUser pseudo String qui permet de retourner toutes les ench res qu a faites un utilisateur ejbFindByld product id product int qui permet de retourner la derni re ench re faite sur un produit ejbHomeMakeABidding id product int price double pseudo String qui permet d ins rer une ench re faite par un utilisateur sur un produit avec un prix pr cis ejbHomeGetDuree id product int qui permet de calculer restante avant l expiration de la p riode d exposition d un produit et la m thode ejbHomeGetDate id product int qui retourne la date de la mise en ench re d un produit Ce bean fait appel d autres m thodes non accessibles par le client mais qui sont indispensable pour la m thode ejbHomeMakeABidding returnStep id product int qui retourne le pas de progression d un pr
41. roduit et la base de donn es Comme le composant User il va permettre d avoir une vue locale des informations du produit et donc de stocker galement au niveau local des donn es du produit Rapport du Projet de Fin d Etudes 33 ASR 2005 2006 Encadrant Sophie Chabridon Bidding Composant de transition des applications d achat vente entre le client et le serveur de base de donn es Server BD Composant qui va g rer le stockage des informations ainsi que de l envoie de la confirmation de vente et d achat 2 2 Le sch ma de communication de nos composants Les interfaces entre deux composant sont crites en gris clair DEE CreateUser BD E reateProduct_BD Rapport du Projet de Fin d Etudes 34 ASR 2005 2006 Encadrant Sophie Chabridon 2 3 Les interfaces AskBidding va permettre la demande de vente ench re procedure de demande de vente avec les param tres void sell in string pseudo seller in long id_product in float start price in long step in string date fonction de demande d ench re Si la date d ench re est d pass e elle renvoie faux boolean bidding in string pseudo in float new price in long id product Validated Bidding va confirmer la transaction de vente ench re au niveau du stockage fonction de validation d ench re Elle va donc faire la junction des diverses tables de la base de donn es et stocker les informations Si la date est expir e elle renvoie faux boolea
42. ropertyname gt lt traderpropertyvalue gt demo1 The Bidding home lt traderpropertyvalue gt lt traderproperty gt lt traderproperties gt lt traderexport gt lt registerwithtrader gt lt componentinstantiation id Mathieu gt lt componentproperties gt lt fileinarchive name META INF mathieu cpf gt lt fileinarchive gt lt componentproperties gt lt registercomponent gt lt registerwithtrader gt lt traderexport gt lt traderservicetypename gt ComponentService lt traderservicetypename gt lt traderproperties gt lt traderproperty gt lt traderpropertyname gt description lt traderpropertyname gt lt traderproperty gt lt traderproperties gt lt traderexport gt lt registerwithtrader gt lt registercomponent gt lt componentinstantiation gt lt registercomponent gt lt registerwithtrader gt lt traderexport gt lt traderservicetypename gt ComponentService lt traderservicetypename gt lt traderproperties gt lt traderproperty gt lt traderpropertyname gt description lt traderpropertyname gt lt traderpropertyvalue gt demo1 The Philippe component lt traderpropertyvalue gt lt traderproperty gt lt traderproperties gt lt traderexport gt lt registerwithtrader gt lt registercomponent gt lt componentinstantiation gt lt traderexport gt lt traderservicetypename gt ComponentService lt traderservicetypename gt lt traderproperties gt lt traderproperty gt lt traderprope
43. rsion 4 1 est actif 17 40 34 502 Server start Le serveur JOnAS jonas est d OmarrAO sur rmi jrmp Pour faire des tests nous avons t l charg le r pertoire des exemples du cours l adresse http www inf int evry fr COURS CORBA _gb Site et l avons mis sous le r pertoire SJONAS BASE Remarque importante Pour des applications on a besoin d avoir une connexion une base de donn es il faut penser t l charger le driver correspondant Par exemple dans notre cas nous avons eu besoin d une base de donn es MySQL et pour cela il a fallu t l charger le driver mysql connector Plus pr cis ment il faut juste copier le ficher mysql connector java 3 0 14 production bin jar dans le r pertoire JONAS ROOT lib ext Rapport du Projet de Fin d Etudes 8 ASR 2005 2006 Encadrant Sophie Chabridon 1 3 D ploiement de l application Web sur le serveur Jonas 1 3 1 Une arborescence bien d finie Vu que dans notre application nous avons travaill sur les trois couches de l architecture J2EE c est dire nous avons utilis des fichiers JSP des JavaBeans et des EJB avec un acc s une base de donn es le d ploiement est un peu sp cial Il faut avoir une architecture bien d finie des r pertoires et des fichiers Nous exposons ici l arborescence des r pertoires de notre application et nous l expliquons par la suite SiteEnchere mare etc T web build xml SiteEnchere servlet _ S index html secured
44. rtyname gt description lt traderpropertyname gt lt traderproperty gt lt traderproperties gt lt traderexport gt lt registerwithtrader gt lt registercomponent gt lt componentinstantiation gt connectinterface id server Bidding gt lt usesport gt lt usesidentifier gt to_Bidding lt usesidentifier gt lt componentinstantiationref gt lt usesport gt lt providesport gt lt providesidentifier gt for_clients_from_Bidding lt providesidentifier gt componentinstantiationref idref Bidding gt lt providesport gt lt connectinterface gt Rapport du Projet de Fin d Etudes 41 ASR 2005 2006 Encadrant Sophie Chabridon A ce stade l on peut compiler en langant build sh Une fois la compilation r ussie on ex cute le programme en tapant bin start java 4 Les probl mes Nous avons essay d appliquer les pages jsp utilis dans la partie J2EE mais nous avions eu un probl me de d ploiement au niveau de tomcat En effet nous avions essay de joindre la page jsp et notre application de traitement travers un bean en mettant ainsi les les fichiers class obtenu a la fin de la compilation se situant dans le repertoire archives dans l archive client jar sous le repertoire WEB INF classes de tomcat Tomcat ne reconnait pas les indispensable au bon fonctionnement Nous avons donc rajout notre CLASSPATH ces archives mais le probl me fut persistant Nous avons galement essay d utiliser le car
45. t CORBA de point de vue client Component Component Desianer Implementer mplempnted by ES delegafes to Figure 2 la chaine de compilation de composant CORBA de point de vue serveur Rapport du Projet de Fin d Etudes 31 ASR 2005 2006 Encadrant Sophie Chabridon Ces sch mas sym triques montre bien l unicit du fichier IDL3 qui va fournir la description du mode d interaction entre le client et le serveur Nous reviendrons dans la partie sur la marche suivre pour cr er nos diff rents composants et les mettre en relation e D finition d un composant Dans le guide utilisateur un composant est d fini de la mani re suivante Component Facet D Event Sink Bosc interface G Receptacle H Event Source Chaque composant doit impl menter une interface pr d finie qui va permettre de d finir les propri t s du composant ainsi que l ensemble des op rations de contr le Il h rite de l interface Components CCMObject Chaque composant la possibilit de communiquer avec d autres composants Pour cela ils ont leurs dispositions 2 paires d outils de communications R ceptacle Facette et Event Sink Event Source Event Sink Event Source Nous n avons pas utilis ce mode lors de notre projet Les events source vont permettre de g n rer des v nements et les events sink de les consommer R ceptacle Facette La facette va mettre a disposition une r f rence d objet et le recpetacle va p
46. t notre cursus J2EE et CORBA tout en augmentant nos comp tences gr ce l apprentissage des m canismes d OpenCCM et d EJB Rapport du Projet de Fin d Etudes 45 ASR 2005 2006 Encadrant Sophie Chabridon
47. tible avec l environnement Web connue l environnement J2EE Pas d exemples de JSP Servlet JavaBeans persistance Acc s la base de donn es assez simple Documentation L g re La documentation se trouve Il faut se baser surtout sur les exemples pour le d veloppement principalement sur le site d Object Web Son d faut est qu elle est ample mais non cibl e gt ne convient pour un d butant faut se baser surtout sur les exemples pour le d veloppement A l issue de ce projet et en comparant les deux versions nous pensons que l utilisation des EJB pour d velopper une application est plus adapt e De plus nous avons constat que OpenCCM est plut t utilis pour des projets de recherche Rapport du Projet de Fin d Etudes 44 Encadrant Sophie Chabridon ASR 2005 2006 Conclusion Nous avons pr sent dans ce rapport les d marches suivies pour impl menter notre site d ench re avec les techniques EJB et openCCM les diff rentes difficult s que nous avons rencontr es et une comparaison entre ces deux technologies Ce projet fut une occasion de d couvrir des outils open source et d valuer leurs performances m me si ce fut dans le cadre d une application simple mais tr s enrichissante pour des d butants Ce projet correspond la continuit de l enseignement regu dans l option ASR en effet travers ce projet nous avons utilis des technologies apprises duran
48. your CLASSPATH Connection con null try establish a Connection to the database with lt dbname gt testdb lt dbname gt in the poolman xml file con DriverManager getConnection jdbc poolman catch SQLException sqle sqle printStackTrace return con Rapport du Projet de Fin d Etudes 25 ASR 2005 2006 Encadrant Sophie Chabridon 5 3 Les tests r alis s Lien Sans Avec poolMan poolMan Poser une ench re sur un produit 2 clients 2 clients http elaphe int evry fr 9000 SiteEnchere bidTest jsp price 130ms 132 ms 5 clients 15 clients 158ms 160ms 15 clients 16 clients 176ms plante 16 clients ca plante Connexion au site On peut Pareil pour http elaphe int evry fr 9000 SiteEnchere atteindre 1000 clients 1000 clients 350 ms simultan s avec 380 ms Authentification 100 clients 100 clients M me pseudo oussama 2407 ms 2000ms http elaphe int 300 clients 250 ca evry fr 9000 SiteEnchere secured authentication jsp ca plante plante user oussama Liste des produits disponibles 1 client 1 client 385 http elaphe int 511ms ms evry fr 9000 secured BiddingOnProductTest jsp 2 clients 2 clients 830ms 711ms 5 clients 3 1100ms 2171ms 5 clients 10 clients ca plante 2516 ms Autres ench res faites par un utilisateur 1 444 5 l client http elaphe int 2 clients 7

Download Pdf Manuals

image

Related Search

Related Contents

Coldtech 61 cu. ft. / 1727 liter Commercial Freezer J6SFF-61B - Ultra_EVAC_Technical_Manual_6-1  Menuiseries  Manual de Usuario  User Guide - MobileNation  sécurité informatique en milieu scolaire  ひと色ちがう、MUTOHの「白」。  manual cxp  Model PDI-P15LCDB LCD TV Computer Monitor  Home Decorators Collection 89444 Instructions / Assembly  HP ENVY x360 15-u110dx  

Copyright © All rights reserved.
Failed to retrieve file