Your SlideShare is downloading. ×
Centres sportifs nfe103
Centres sportifs nfe103
Centres sportifs nfe103
Centres sportifs nfe103
Centres sportifs nfe103
Centres sportifs nfe103
Centres sportifs nfe103
Centres sportifs nfe103
Centres sportifs nfe103
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Centres sportifs nfe103

109

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
109
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 1èrepartie : Etude de cas – Gestion de centre sportifsNFE103 – Hubert KADIMAManuel Ramos 02/05/2013 1A. Modélisation du système de gestion de réservation avec UMLQuelles sont les entités du système ? Agent, lot equipement, adherent.L’agent gère le système. Il existe une agence centrale qui s’appelle le service municipaldes sports sur laquelle est installé 1 serveur d’application Jboss.Chaque centre sportif se connectera au serveur centralisé qui se trouve dans le servicemunicipal des sports.L’objectif est d’utiliser UML pour mettre en place un infra technique à base decomposants J2EE.1. Elaborer le diagramme de cas d’utilisation de ce système.2. Représenter, sous forme de diagramme de séquences, le scénario nominal de laréservation téléphonique par un adhérent d’un terrain et d’un équipement.L’agent va recevoir l’appel, ensuite il va se connecter au système, il va saisir lesinformations sur l’adhérent en lui associant un terrain et un equipement.Pour le cas d’utilisation ‘Passer réservation’ il va falloir faire le scénario nominal de laréservation téléphonique.
  • 2. 1èrepartie : Etude de cas – Gestion de centre sportifsNFE103 – Hubert KADIMAManuel Ramos 02/05/2013 2L’agent à travers le navigateur internet va se connecter à une servlet via http qui setrouve dans un container Tomcat. Ensuite, le service réservation se connecte via leData Access Object (DAO) à la base de données MySQL, il récupère les objetsadhérents pour instancier un objet de type adhérent, il va le peupler ou remplir avec lesdonnées provenant de la base. Ceci est vrai uniquement pour le cas où l’adhérentexiste déjà dans la base de données (pré-enregistré).Refaire la même procédure pour les 2 autres objets cest-à-dire le terrain et le lotd’equipement.3. Tracer le diagramme états-transitions de l’objet réservation.Ce diagramme est réalisé à l’aide du pattern State.Les instances de cette classe possèdent le cycle de vie suivant :EN COURS : Etat où la réservation est en cours de création : L’adhérent saisiela réservation.TRAITE : Etat où la réservation a été enregistrée.RESERVE : Etat où le terrain a été pris par un adhérent.RESERVEEN COURSTRAITEE
  • 3. 1èrepartie : Etude de cas – Gestion de centre sportifsNFE103 – Hubert KADIMAManuel Ramos 02/05/2013 34. Quel est le design pattern le plus approprié pour représenter le comportement del’objet réservation.Le système à concevoir est un site web de gestion de réservations de terrains etd’équipements sportifs.Nous nous intéressons aux réservations de terrains qui sont décrites par la classeréservation.Le pattern le mieux adapté pour gérer les différents états d’une réservation est ledesign pattern de comportement ‘State’. Il permet d’adapter le comportement desméthodes en fonction de l’état de cet objet réservation.5. Construire le diagramme de classes détaillé du système (avec toutes les propriétéset les méthodes de chacune des classes).B. Conception du système1. Rappeler les principales règles de mapping objet/relationnel pour les classespersistantes ?2 modèles de conception de données sont la conséquence du fait qu’il y’a 2 façons dereprésenter les données :
  • 4. 1èrepartie : Etude de cas – Gestion de centre sportifsNFE103 – Hubert KADIMAManuel Ramos 02/05/2013 4MCO : Modèle de conception objet (POJO, EJB,…)MCD : Modèle de conception de données (modèle relationnel)Afin de relier les 2 modèles, il faut utiliser le mapping objet relationnel (ORM).La persistance est la propriété que possède un objet de se sauvegarder dans une base dedonnées, ce mécanisme peut être implanté dans une classe persistante.Le mapping ORM consiste à faire correspondre les classes du modèle objet aux tables dumodèle relationnel, concernant aussi celle entre les instances de classes et lesenregistrements des tables. En principe, une classe est égale à une table.Dans le modèle objet, il est conseillé de choisir un attribut jouant le rôle d’identifiant de laclasse qui devient clé primaire pour la table.Les règles de transformation pour les associations, cela dépendra de leurs multiplicitésmaximales (1, *).Pour les associations plusieurs-à-plusieurs, l’association devient une table dont la cléprimaire est composée de la concaténation des identifiants des classes connectées à cetteassociation.Pour les associations 1 à plusieurs, l’identifiant de la classe parent devient clé étrangèrede la classe fille.Pour les associations 1 à 1, il faut ajouter l’identifiant dans la table dérivée de la classeayant la multiplicité minimale égale à zéro. En cas de multiplicités égales à zéro des deuxcôtés, il est conseillé de fusionner les deux classes en une seule.En cas d’héritage, il existe 3 solutions :o Une table pour la super-classe et pour chaque sous-classe ajouter l’identifiantde la super-classe.o Le push down qui consiste à descendre les attributs de la super-classe vers lessous-classes.o Le push-up consistant à créer qu’une seule table pour l’ensemble enregroupant tous les attributs des sous-classes dans la super-classe.2. Rappeler les principales étapes de la démarche conduisant à l’exécution d’uneapplication complète à base de composants EJB (Enterprise Java Beans) CMP(Container Managed Persistance).La spécification EJB permet de voir les services d’une façon cohérente, offrant ainsi audéveloppeur un certain degré de portabilité entre les serveurs d’application (JBOSS).Pour comprendre la création et le développement d’une application J2EE, il est importantde connaître la technologie de la couche intermédiaire de cette plateforme : EJB est lecœur de cette architecture orienté pur objet et indépendant de la plateforme en a fait unstandard. EJB fonctionne à l’aide d’un conteneur logique doté d’un certain nombre deservices.
  • 5. 1èrepartie : Etude de cas – Gestion de centre sportifsNFE103 – Hubert KADIMAManuel Ramos 02/05/2013 5¹ Correspond à une table dans une base de données relationnelle. Ils permettent les accèspartagés. Ils sont persistants car l’état d’un Bean entity est sauvegardé sur un support destockage et existe au-delà de la vie de l’application, même après l’arrêt du serveur de basede données ou des applications utilisatrices.² Il a uniquement une classe de bean, ressemble à un bean session sans état, invoqué par lebiais de JMS (JavaMessage Service).³ Pas de maintien de l’état, Le Stateless n’existe que le temps d’un appel de méthode.Le terme CMP veut dire que le conteneur d’EJB s’occupe de tous les accès à la base dedonnées, requis par le Bean entity. En bref, les Bean entity sont plus portables en utilisantle CMP que le BMP.Exemple de bean qui représente une entité métier :EJBBean session Bean entity ¹ Bean message ²AvecétatSansétat ³CMPPersistance géré parLe conteneurBMPPersistance géré parLe BeanContainermanaged Bean managedMessage drivenBeanCarteDeCreditEJBVerifierCarteDeCreditObjets métiers dont lesAttributs sontpersistantsBean session
  • 6. 1èrepartie : Etude de cas – Gestion de centre sportifsNFE103 – Hubert KADIMAManuel Ramos 02/05/2013 6La différence des bean message aves les bean sessions et entités est que les clientsn’accèdent pas aux message-driven bean par des interfaces.Les EJB sont particulièrement recommandés :1. Lorsque votre application doit pouvoir gérer des montées en charge.Vous pourrez facilement mettre en cluster vos serveurs dapplication.2. Lorsque votre application a besoin des transactions, les EJB supportent lestransactions (peu importe le système de stockage utilisé).3. Lorsque votre application doit être accessible depuis de nombreux types declients (Applications, Sites web, PDA).Nimporte quel type de client pourra accéder à vos EJB et pourra utiliser lalogique et les données de votre application.4. Lorsque votre application est développée par plusieurs personnes.Les EJB vous permettront de centraliser la logique applicative et ainsidassurer lintégrité des données et le respect des règles métiers.3. A quoi servirait JNDI (Java Naming Directory Interface) dans cettearchitecture ?JNDI est une API qui fournit les fonctionnalités de nommage et d’annuaire auxapplications en Java.
  • 7. 1èrepartie : Etude de cas – Gestion de centre sportifsNFE103 – Hubert KADIMAManuel Ramos 02/05/2013 7JNDI est divisé en 5 packages : javax.naming, javax.naming.directory,javax.naming.event, javax.naming.ldap et javax.naming.spi. Le package contient des classes et interfaces pour accéder aux services de nommage. Extension du package ¹, permet à des applications de rechercher des attributs liés auxobjets stockés dans l’annuaire et de rechercher les objets en utilisant les attributs indiqués. Contient les classes et interfaces supportant la notification d’évènement dans lesservices de nommage et d’annuaire. Contient les classes et interfaces pour l’usage des caractéristiques spécifiques à LDAP.Si  est utilisé, pas besoin d’utiliser ce package car toutes les notifications ont étésollicitées (requête/réponse entre le client et le serveur).Lorsqu’une application J2EE doit utiliser une connexion à une base de données, il estpréférable d’utiliser JNDI qui permet au serveur d’application JBOSS d’utiliser un pool deconnexions, et d’obtenir de meilleures performances. Le gestionnaire de connexions JNDIouvre les connexions au serveur PostgreSQL et maintient un jeu de connexions, que lesservlets (code java côté serveur) utilisent lorsqu’elles en ont besoin.Exemple : Un objet datasource fournit toutes les méthodes permettant d’obtenir uneconnexion à une base de données par l’intermédiaire d’un service de nommage JNDI. Laméthode principale de cet objet est ‘getConnection()’. Avant qu’un client puisse obtenirJAVA APPLICATIONJNDI APINAMING MANAGERJNDI SPILDAP DNS NIS RMI CORBAImplémentationsJNDI
  • 8. 1èrepartie : Etude de cas – Gestion de centre sportifsNFE103 – Hubert KADIMAManuel Ramos 02/05/2013 8une connexion, le serveur doit créer cet objet, le placer dans le contexte et l’associer à unnom. L’obtention d’une source de données se déroule en 2 étapes :1. Tout d’abord créer un objet ‘InitialContext’ permettant de rechercher dans lecontexte de l’application.2. Ensuite, appeler la méthode ‘lookup()’ permettant de rechercher la connexion dansle contexte JNDI. Une fois la connexion obtenu, le client peut l’utiliser de la mêmefaçon qu’un ‘DriverManager’.C. Architecture technique du système1. Décrire les fonctions principales réalisées par chacune de ces briquesfonctionnelles de l’architecture ?A) Le serveur web Apache se charge de gérer les connexions http.B) Tomcat pour la couche web, c’est un container web gérant l’exécution des JSP et lesservlets. Elles sont regroupées dans des unités de déploiement constituant les applicationsweb sous la forme d’une archive.C) Le framework d’application web Struts pour la couche présentation utilisantl’architecture MVC, ne définit pas le modèle.D) Le serveur d’application Jboss, un container de composants transactionnels EJBpermet de développer la logique métier grâce aux EJB.E) Le SGBD PostGreSQL pour la couche persistance va permettre le stockage desdonnées dans une BD relationnelle à l’aide de SQL se faisant au moyen du protocoleJDBC.
  • 9. 1èrepartie : Etude de cas – Gestion de centre sportifsNFE103 – Hubert KADIMAManuel Ramos 02/05/2013 92. Représenter schématiquement l’architecture technique globale de ce système. Le client peut être léger (http port 8080), lourd (application normale) et rich (enAjax et Flex).STRUTS (contrôleur pour les servlets et vue pour les JSP)Présentation client Persistance avec PostGreSQLContainer EJBAPI (JNDI, JMS, etc….)JDBCPrésentation serveur

×