SlideShare uma empresa Scribd logo
1 de 9
1ère
partie : Etude de cas – Gestion de centre sportifs
NFE103 – Hubert KADIMA
Manuel Ramos 02/05/2013 1
A. Modélisation du système de gestion de réservation avec UML
Quelles 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 municipal
des sports sur laquelle est installé 1 serveur d’application Jboss.
Chaque centre sportif se connectera au serveur centralisé qui se trouve dans le service
municipal des sports.
L’objectif est d’utiliser UML pour mettre en place un infra technique à base de
composants 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 la
ré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 les
informations 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 la
réservation téléphonique.
1ère
partie : Etude de cas – Gestion de centre sportifs
NFE103 – Hubert KADIMA
Manuel Ramos 02/05/2013 2
L’agent à travers le navigateur internet va se connecter à une servlet via http qui se
trouve dans un container Tomcat. Ensuite, le service réservation se connecte via le
Data Access Object (DAO) à la base de données MySQL, il récupère les objets
adhérents pour instancier un objet de type adhérent, il va le peupler ou remplir avec les
données provenant de la base. Ceci est vrai uniquement pour le cas où l’adhérent
existe déjà dans la base de données (pré-enregistré).
Refaire la même procédure pour les 2 autres objets c'est-à-dire le terrain et le lot
d’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 saisie
la réservation.
TRAITE : Etat où la réservation a été enregistrée.
RESERVE : Etat où le terrain a été pris par un adhérent.
RESERVE
EN COURS
TRAITEE
1ère
partie : Etude de cas – Gestion de centre sportifs
NFE103 – Hubert KADIMA
Manuel Ramos 02/05/2013 3
4. Quel est le design pattern le plus approprié pour représenter le comportement de
l’objet réservation.
Le système à concevoir est un site web de gestion de réservations de terrains et
d’équipements sportifs.
Nous nous intéressons aux réservations de terrains qui sont décrites par la classe
réservation.
Le pattern le mieux adapté pour gérer les différents états d’une réservation est le
design pattern de comportement ‘State’. Il permet d’adapter le comportement des
mé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és
et les méthodes de chacune des classes).
B. Conception du système
1. Rappeler les principales règles de mapping objet/relationnel pour les classes
persistantes ?
2 modèles de conception de données sont la conséquence du fait qu’il y’a 2 façons de
représenter les données :
1ère
partie : Etude de cas – Gestion de centre sportifs
NFE103 – Hubert KADIMA
Manuel Ramos 02/05/2013 4
MCO : 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 de
donné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 du
modèle relationnel, concernant aussi celle entre les instances de classes et les
enregistrements 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 la
classe qui devient clé primaire pour la table.
Les règles de transformation pour les associations, cela dépendra de leurs multiplicités
maximales (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 à cette
association.
Pour les associations 1 à plusieurs, l’identifiant de la classe parent devient clé étrangère
de la classe fille.
Pour les associations 1 à 1, il faut ajouter l’identifiant dans la table dérivée de la classe
ayant la multiplicité minimale égale à zéro. En cas de multiplicités égales à zéro des deux
cô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’identifiant
de la super-classe.
o Le push down qui consiste à descendre les attributs de la super-classe vers les
sous-classes.
o Le push-up consistant à créer qu’une seule table pour l’ensemble en
regroupant tous les attributs des sous-classes dans la super-classe.
2. Rappeler les principales étapes de la démarche conduisant à l’exécution d’une
application 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 au
dé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 important
de connaître la technologie de la couche intermédiaire de cette plateforme : EJB est le
cœur de cette architecture orienté pur objet et indépendant de la plateforme en a fait un
standard. EJB fonctionne à l’aide d’un conteneur logique doté d’un certain nombre de
services.
1ère
partie : Etude de cas – Gestion de centre sportifs
NFE103 – Hubert KADIMA
Manuel Ramos 02/05/2013 5
¹ Correspond à une table dans une base de données relationnelle. Ils permettent les accès
partagés. Ils sont persistants car l’état d’un Bean entity est sauvegardé sur un support de
stockage et existe au-delà de la vie de l’application, même après l’arrêt du serveur de base
de données ou des applications utilisatrices.
² Il a uniquement une classe de bean, ressemble à un bean session sans état, invoqué par le
biais 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 de
données, requis par le Bean entity. En bref, les Bean entity sont plus portables en utilisant
le CMP que le BMP.
Exemple de bean qui représente une entité métier :
EJB
Bean session Bean entity ¹ Bean message ²
Avec
état
Sans
état ³
CMP
Persistance géré par
Le conteneur
BMP
Persistance géré par
Le Bean
Container
managed Bean managed
Message driven
Bean
CarteDeCreditEJB
VerifierCarteDeCredit
Objets métiers dont les
Attributs sont
persistants
Bean session
1ère
partie : Etude de cas – Gestion de centre sportifs
NFE103 – Hubert KADIMA
Manuel Ramos 02/05/2013 6
La différence des bean message aves les bean sessions et entités est que les clients
n’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 d'application.
2. Lorsque votre application a besoin des transactions, les EJB supportent les
transactions (peu importe le système de stockage utilisé).
3. Lorsque votre application doit être accessible depuis de nombreux types de
clients (Applications, Sites web, PDA).
N'importe quel type de client pourra accéder à vos EJB et pourra utiliser la
logique 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 ainsi
d'assurer l'intégrité des données et le respect des règles métiers.
3. A quoi servirait JNDI (Java Naming Directory Interface) dans cette
architecture ?
JNDI est une API qui fournit les fonctionnalités de nommage et d’annuaire aux
applications en Java.
1ère
partie : Etude de cas – Gestion de centre sportifs
NFE103 – Hubert KADIMA
Manuel Ramos 02/05/2013 7
JNDI 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 aux
objets 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 les
services 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 est
préférable d’utiliser JNDI qui permet au serveur d’application JBOSS d’utiliser un pool de
connexions, et d’obtenir de meilleures performances. Le gestionnaire de connexions JNDI
ouvre les connexions au serveur PostgreSQL et maintient un jeu de connexions, que les
servlets (code java côté serveur) utilisent lorsqu’elles en ont besoin.
Exemple : Un objet datasource fournit toutes les méthodes permettant d’obtenir une
connexion à une base de données par l’intermédiaire d’un service de nommage JNDI. La
méthode principale de cet objet est ‘getConnection()’. Avant qu’un client puisse obtenir
JAVA APPLICATION
JNDI API
NAMING MANAGER
JNDI SPI
LDAP DNS NIS RMI CORBA
Implémentations
JNDI
1ère
partie : Etude de cas – Gestion de centre sportifs
NFE103 – Hubert KADIMA
Manuel Ramos 02/05/2013 8
une connexion, le serveur doit créer cet objet, le placer dans le contexte et l’associer à un
nom. 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 le
contexte de l’application.
2. Ensuite, appeler la méthode ‘lookup()’ permettant de rechercher la connexion dans
le contexte JNDI. Une fois la connexion obtenu, le client peut l’utiliser de la même
façon qu’un ‘DriverManager’.
C. Architecture technique du système
1. Décrire les fonctions principales réalisées par chacune de ces briques
fonctionnelles 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 les
servlets. Elles sont regroupées dans des unités de déploiement constituant les applications
web sous la forme d’une archive.
C) Le framework d’application web Struts pour la couche présentation utilisant
l’architecture MVC, ne définit pas le modèle.
D) Le serveur d’application Jboss, un container de composants transactionnels EJB
permet de développer la logique métier grâce aux EJB.
E) Le SGBD PostGreSQL pour la couche persistance va permettre le stockage des
données dans une BD relationnelle à l’aide de SQL se faisant au moyen du protocole
JDBC.
1ère
partie : Etude de cas – Gestion de centre sportifs
NFE103 – Hubert KADIMA
Manuel Ramos 02/05/2013 9
2. 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 (en
Ajax et Flex).
STRUTS (contrôleur pour les servlets et vue pour les JSP)
Présentation client 
Persistance avec PostGreSQL
Container EJB
API (JNDI, JMS, etc….)
JDBC
Présentation serveur

Mais conteúdo relacionado

Destaque

Rapport de sprint finale (All Project part)
Rapport de sprint finale (All Project part)Rapport de sprint finale (All Project part)
Rapport de sprint finale (All Project part)Ghodbane Heni
 
Faire une réservation
Faire une réservationFaire une réservation
Faire une réservationrosaproffr
 
Lancea Developpement Les DifféRents SystèMes De RéServation En Ligne Mopa...
Lancea Developpement   Les DifféRents SystèMes De RéServation En Ligne   Mopa...Lancea Developpement   Les DifféRents SystèMes De RéServation En Ligne   Mopa...
Lancea Developpement Les DifféRents SystèMes De RéServation En Ligne Mopa...MONA
 
INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE HINDOUSSATI
 
Conception et développement d’un Système de réservation en ligne
Conception et développement d’un Système de réservation en ligneConception et développement d’un Système de réservation en ligne
Conception et développement d’un Système de réservation en ligneAydi Nébil
 
Rapport de pfe gestion de parc informatique et Helpdesk
Rapport de pfe gestion de parc informatique et HelpdeskRapport de pfe gestion de parc informatique et Helpdesk
Rapport de pfe gestion de parc informatique et HelpdeskRaef Ghribi
 
Projet de fin d'etude sur le parc informatique
Projet  de fin d'etude sur le parc informatiqueProjet  de fin d'etude sur le parc informatique
Projet de fin d'etude sur le parc informatiqueHicham Ben
 
Rapport BookSecure
Rapport BookSecureRapport BookSecure
Rapport BookSecurejessonauber
 
Les plates-formes internet de réservation guide d'utilisation
Les plates-formes internet de réservation guide d'utilisationLes plates-formes internet de réservation guide d'utilisation
Les plates-formes internet de réservation guide d'utilisationCaroleAymon
 
Rapport projet de fin d'études: Elaboration d’un tableau de bord et politique...
Rapport projet de fin d'études: Elaboration d’un tableau de bord et politique...Rapport projet de fin d'études: Elaboration d’un tableau de bord et politique...
Rapport projet de fin d'études: Elaboration d’un tableau de bord et politique...Ayoub Minen
 

Destaque (15)

MEMOIRE DE STAGE
MEMOIRE DE STAGEMEMOIRE DE STAGE
MEMOIRE DE STAGE
 
Rapport de sprint finale (All Project part)
Rapport de sprint finale (All Project part)Rapport de sprint finale (All Project part)
Rapport de sprint finale (All Project part)
 
Cergeco informatique de gestion
Cergeco informatique de gestionCergeco informatique de gestion
Cergeco informatique de gestion
 
Faire une réservation
Faire une réservationFaire une réservation
Faire une réservation
 
Lancea Developpement Les DifféRents SystèMes De RéServation En Ligne Mopa...
Lancea Developpement   Les DifféRents SystèMes De RéServation En Ligne   Mopa...Lancea Developpement   Les DifféRents SystèMes De RéServation En Ligne   Mopa...
Lancea Developpement Les DifféRents SystèMes De RéServation En Ligne Mopa...
 
Rapport pfev7
Rapport pfev7Rapport pfev7
Rapport pfev7
 
INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE INFORMATIQUE DES GESTION : MERISE
INFORMATIQUE DES GESTION : MERISE
 
Conception et développement d’un Système de réservation en ligne
Conception et développement d’un Système de réservation en ligneConception et développement d’un Système de réservation en ligne
Conception et développement d’un Système de réservation en ligne
 
Rapport de pfe gestion de parc informatique et Helpdesk
Rapport de pfe gestion de parc informatique et HelpdeskRapport de pfe gestion de parc informatique et Helpdesk
Rapport de pfe gestion de parc informatique et Helpdesk
 
Projet de fin d'etude sur le parc informatique
Projet  de fin d'etude sur le parc informatiqueProjet  de fin d'etude sur le parc informatique
Projet de fin d'etude sur le parc informatique
 
Rapport BookSecure
Rapport BookSecureRapport BookSecure
Rapport BookSecure
 
OPENPRO : PROCEDURE BOOKING
OPENPRO : PROCEDURE BOOKINGOPENPRO : PROCEDURE BOOKING
OPENPRO : PROCEDURE BOOKING
 
Informatique de gestion
Informatique de gestionInformatique de gestion
Informatique de gestion
 
Les plates-formes internet de réservation guide d'utilisation
Les plates-formes internet de réservation guide d'utilisationLes plates-formes internet de réservation guide d'utilisation
Les plates-formes internet de réservation guide d'utilisation
 
Rapport projet de fin d'études: Elaboration d’un tableau de bord et politique...
Rapport projet de fin d'études: Elaboration d’un tableau de bord et politique...Rapport projet de fin d'études: Elaboration d’un tableau de bord et politique...
Rapport projet de fin d'études: Elaboration d’un tableau de bord et politique...
 

Semelhante a Centres sportifs nfe103

Super kebab nfe103
Super kebab nfe103Super kebab nfe103
Super kebab nfe103MRamo2s
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...ENSET, Université Hassan II Casablanca
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1ATHMAN HAJ-HAMOU
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db firstZineb ELGARRAI
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiersHeithem Abbes
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EESabri Bouchlema
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystémeAlgeria JUG
 
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01Eric Bourdet
 
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)Eric Bourdet
 
Es20 g formation-z-os-system-services-structure
Es20 g formation-z-os-system-services-structureEs20 g formation-z-os-system-services-structure
Es20 g formation-z-os-system-services-structureCERTyou Formation
 
Definitiondesbesoinsuml
DefinitiondesbesoinsumlDefinitiondesbesoinsuml
DefinitiondesbesoinsumlVINOT Bernard
 
LP_Admin_base_données.ppt
LP_Admin_base_données.pptLP_Admin_base_données.ppt
LP_Admin_base_données.pptIdriss22
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)IJERD Editor
 

Semelhante a Centres sportifs nfe103 (20)

Super kebab nfe103
Super kebab nfe103Super kebab nfe103
Super kebab nfe103
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1
 
Entity_framework_db first
Entity_framework_db firstEntity_framework_db first
Entity_framework_db first
 
Ejb 3
Ejb 3Ejb 3
Ejb 3
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
 
JPA est middleware
JPA est middleware JPA est middleware
JPA est middleware
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EE
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystéme
 
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
 
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
 
Java Entreprise Edition
Java Entreprise EditionJava Entreprise Edition
Java Entreprise Edition
 
Es20 g formation-z-os-system-services-structure
Es20 g formation-z-os-system-services-structureEs20 g formation-z-os-system-services-structure
Es20 g formation-z-os-system-services-structure
 
Definitiondesbesoinsuml
DefinitiondesbesoinsumlDefinitiondesbesoinsuml
Definitiondesbesoinsuml
 
Cours BDD.pptx
Cours BDD.pptxCours BDD.pptx
Cours BDD.pptx
 
LP_Admin_base_données.ppt
LP_Admin_base_données.pptLP_Admin_base_données.ppt
LP_Admin_base_données.ppt
 
International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)International Journal of Engineering Research and Development (IJERD)
International Journal of Engineering Research and Development (IJERD)
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
 
tp-spring.pdf
tp-spring.pdftp-spring.pdf
tp-spring.pdf
 

Mais de MRamo2s

Competitivite parqualite_emmanuelcombe
 Competitivite parqualite_emmanuelcombe Competitivite parqualite_emmanuelcombe
Competitivite parqualite_emmanuelcombeMRamo2s
 
Les nouveaux usages de la télévision connectée
Les nouveaux usages de la télévision connectéeLes nouveaux usages de la télévision connectée
Les nouveaux usages de la télévision connectéeMRamo2s
 
Tableau de-bord avec excel
Tableau de-bord avec excelTableau de-bord avec excel
Tableau de-bord avec excelMRamo2s
 
AECEM Whitepaper about E-Commerce.
AECEM Whitepaper about E-Commerce.AECEM Whitepaper about E-Commerce.
AECEM Whitepaper about E-Commerce.MRamo2s
 
Rapport de veille final groupe3 (26 01-14h37)
Rapport de veille final groupe3 (26 01-14h37)Rapport de veille final groupe3 (26 01-14h37)
Rapport de veille final groupe3 (26 01-14h37)MRamo2s
 
Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103MRamo2s
 
Jp perez correction quizz oracle mairie de paris acma 2007 2008
Jp perez correction quizz oracle mairie de paris acma 2007 2008Jp perez correction quizz oracle mairie de paris acma 2007 2008
Jp perez correction quizz oracle mairie de paris acma 2007 2008MRamo2s
 
Tennis Evolution cce105_communication_2008
Tennis Evolution cce105_communication_2008Tennis Evolution cce105_communication_2008
Tennis Evolution cce105_communication_2008MRamo2s
 
E-commerce Use case NFE102
E-commerce Use case NFE102E-commerce Use case NFE102
E-commerce Use case NFE102MRamo2s
 
Work placement bachelor's degree computer science_2009
Work placement bachelor's degree computer science_2009Work placement bachelor's degree computer science_2009
Work placement bachelor's degree computer science_2009MRamo2s
 

Mais de MRamo2s (10)

Competitivite parqualite_emmanuelcombe
 Competitivite parqualite_emmanuelcombe Competitivite parqualite_emmanuelcombe
Competitivite parqualite_emmanuelcombe
 
Les nouveaux usages de la télévision connectée
Les nouveaux usages de la télévision connectéeLes nouveaux usages de la télévision connectée
Les nouveaux usages de la télévision connectée
 
Tableau de-bord avec excel
Tableau de-bord avec excelTableau de-bord avec excel
Tableau de-bord avec excel
 
AECEM Whitepaper about E-Commerce.
AECEM Whitepaper about E-Commerce.AECEM Whitepaper about E-Commerce.
AECEM Whitepaper about E-Commerce.
 
Rapport de veille final groupe3 (26 01-14h37)
Rapport de veille final groupe3 (26 01-14h37)Rapport de veille final groupe3 (26 01-14h37)
Rapport de veille final groupe3 (26 01-14h37)
 
Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103
 
Jp perez correction quizz oracle mairie de paris acma 2007 2008
Jp perez correction quizz oracle mairie de paris acma 2007 2008Jp perez correction quizz oracle mairie de paris acma 2007 2008
Jp perez correction quizz oracle mairie de paris acma 2007 2008
 
Tennis Evolution cce105_communication_2008
Tennis Evolution cce105_communication_2008Tennis Evolution cce105_communication_2008
Tennis Evolution cce105_communication_2008
 
E-commerce Use case NFE102
E-commerce Use case NFE102E-commerce Use case NFE102
E-commerce Use case NFE102
 
Work placement bachelor's degree computer science_2009
Work placement bachelor's degree computer science_2009Work placement bachelor's degree computer science_2009
Work placement bachelor's degree computer science_2009
 

Centres sportifs nfe103

  • 1. 1ère partie : Etude de cas – Gestion de centre sportifs NFE103 – Hubert KADIMA Manuel Ramos 02/05/2013 1 A. Modélisation du système de gestion de réservation avec UML Quelles 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 municipal des sports sur laquelle est installé 1 serveur d’application Jboss. Chaque centre sportif se connectera au serveur centralisé qui se trouve dans le service municipal des sports. L’objectif est d’utiliser UML pour mettre en place un infra technique à base de composants 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 la ré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 les informations 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 la réservation téléphonique.
  • 2. 1ère partie : Etude de cas – Gestion de centre sportifs NFE103 – Hubert KADIMA Manuel Ramos 02/05/2013 2 L’agent à travers le navigateur internet va se connecter à une servlet via http qui se trouve dans un container Tomcat. Ensuite, le service réservation se connecte via le Data Access Object (DAO) à la base de données MySQL, il récupère les objets adhérents pour instancier un objet de type adhérent, il va le peupler ou remplir avec les données provenant de la base. Ceci est vrai uniquement pour le cas où l’adhérent existe déjà dans la base de données (pré-enregistré). Refaire la même procédure pour les 2 autres objets c'est-à-dire le terrain et le lot d’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 saisie la réservation. TRAITE : Etat où la réservation a été enregistrée. RESERVE : Etat où le terrain a été pris par un adhérent. RESERVE EN COURS TRAITEE
  • 3. 1ère partie : Etude de cas – Gestion de centre sportifs NFE103 – Hubert KADIMA Manuel Ramos 02/05/2013 3 4. Quel est le design pattern le plus approprié pour représenter le comportement de l’objet réservation. Le système à concevoir est un site web de gestion de réservations de terrains et d’équipements sportifs. Nous nous intéressons aux réservations de terrains qui sont décrites par la classe réservation. Le pattern le mieux adapté pour gérer les différents états d’une réservation est le design pattern de comportement ‘State’. Il permet d’adapter le comportement des mé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és et les méthodes de chacune des classes). B. Conception du système 1. Rappeler les principales règles de mapping objet/relationnel pour les classes persistantes ? 2 modèles de conception de données sont la conséquence du fait qu’il y’a 2 façons de représenter les données :
  • 4. 1ère partie : Etude de cas – Gestion de centre sportifs NFE103 – Hubert KADIMA Manuel Ramos 02/05/2013 4 MCO : 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 de donné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 du modèle relationnel, concernant aussi celle entre les instances de classes et les enregistrements 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 la classe qui devient clé primaire pour la table. Les règles de transformation pour les associations, cela dépendra de leurs multiplicités maximales (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 à cette association. Pour les associations 1 à plusieurs, l’identifiant de la classe parent devient clé étrangère de la classe fille. Pour les associations 1 à 1, il faut ajouter l’identifiant dans la table dérivée de la classe ayant la multiplicité minimale égale à zéro. En cas de multiplicités égales à zéro des deux cô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’identifiant de la super-classe. o Le push down qui consiste à descendre les attributs de la super-classe vers les sous-classes. o Le push-up consistant à créer qu’une seule table pour l’ensemble en regroupant tous les attributs des sous-classes dans la super-classe. 2. Rappeler les principales étapes de la démarche conduisant à l’exécution d’une application 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 au dé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 important de connaître la technologie de la couche intermédiaire de cette plateforme : EJB est le cœur de cette architecture orienté pur objet et indépendant de la plateforme en a fait un standard. EJB fonctionne à l’aide d’un conteneur logique doté d’un certain nombre de services.
  • 5. 1ère partie : Etude de cas – Gestion de centre sportifs NFE103 – Hubert KADIMA Manuel Ramos 02/05/2013 5 ¹ Correspond à une table dans une base de données relationnelle. Ils permettent les accès partagés. Ils sont persistants car l’état d’un Bean entity est sauvegardé sur un support de stockage et existe au-delà de la vie de l’application, même après l’arrêt du serveur de base de données ou des applications utilisatrices. ² Il a uniquement une classe de bean, ressemble à un bean session sans état, invoqué par le biais 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 de données, requis par le Bean entity. En bref, les Bean entity sont plus portables en utilisant le CMP que le BMP. Exemple de bean qui représente une entité métier : EJB Bean session Bean entity ¹ Bean message ² Avec état Sans état ³ CMP Persistance géré par Le conteneur BMP Persistance géré par Le Bean Container managed Bean managed Message driven Bean CarteDeCreditEJB VerifierCarteDeCredit Objets métiers dont les Attributs sont persistants Bean session
  • 6. 1ère partie : Etude de cas – Gestion de centre sportifs NFE103 – Hubert KADIMA Manuel Ramos 02/05/2013 6 La différence des bean message aves les bean sessions et entités est que les clients n’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 d'application. 2. Lorsque votre application a besoin des transactions, les EJB supportent les transactions (peu importe le système de stockage utilisé). 3. Lorsque votre application doit être accessible depuis de nombreux types de clients (Applications, Sites web, PDA). N'importe quel type de client pourra accéder à vos EJB et pourra utiliser la logique 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 ainsi d'assurer l'intégrité des données et le respect des règles métiers. 3. A quoi servirait JNDI (Java Naming Directory Interface) dans cette architecture ? JNDI est une API qui fournit les fonctionnalités de nommage et d’annuaire aux applications en Java.
  • 7. 1ère partie : Etude de cas – Gestion de centre sportifs NFE103 – Hubert KADIMA Manuel Ramos 02/05/2013 7 JNDI 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 aux objets 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 les services 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 est préférable d’utiliser JNDI qui permet au serveur d’application JBOSS d’utiliser un pool de connexions, et d’obtenir de meilleures performances. Le gestionnaire de connexions JNDI ouvre les connexions au serveur PostgreSQL et maintient un jeu de connexions, que les servlets (code java côté serveur) utilisent lorsqu’elles en ont besoin. Exemple : Un objet datasource fournit toutes les méthodes permettant d’obtenir une connexion à une base de données par l’intermédiaire d’un service de nommage JNDI. La méthode principale de cet objet est ‘getConnection()’. Avant qu’un client puisse obtenir JAVA APPLICATION JNDI API NAMING MANAGER JNDI SPI LDAP DNS NIS RMI CORBA Implémentations JNDI
  • 8. 1ère partie : Etude de cas – Gestion de centre sportifs NFE103 – Hubert KADIMA Manuel Ramos 02/05/2013 8 une connexion, le serveur doit créer cet objet, le placer dans le contexte et l’associer à un nom. 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 le contexte de l’application. 2. Ensuite, appeler la méthode ‘lookup()’ permettant de rechercher la connexion dans le contexte JNDI. Une fois la connexion obtenu, le client peut l’utiliser de la même façon qu’un ‘DriverManager’. C. Architecture technique du système 1. Décrire les fonctions principales réalisées par chacune de ces briques fonctionnelles 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 les servlets. Elles sont regroupées dans des unités de déploiement constituant les applications web sous la forme d’une archive. C) Le framework d’application web Struts pour la couche présentation utilisant l’architecture MVC, ne définit pas le modèle. D) Le serveur d’application Jboss, un container de composants transactionnels EJB permet de développer la logique métier grâce aux EJB. E) Le SGBD PostGreSQL pour la couche persistance va permettre le stockage des données dans une BD relationnelle à l’aide de SQL se faisant au moyen du protocole JDBC.
  • 9. 1ère partie : Etude de cas – Gestion de centre sportifs NFE103 – Hubert KADIMA Manuel Ramos 02/05/2013 9 2. 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 (en Ajax et Flex). STRUTS (contrôleur pour les servlets et vue pour les JSP) Présentation client  Persistance avec PostGreSQL Container EJB API (JNDI, JMS, etc….) JDBC Présentation serveur