AllamKoceila PDF
AllamKoceila PDF
AllamKoceila PDF
La Recherche Scientifique
Département d’Informatique
Conception et réalisation
d’une application web de
gestion du parc informatique
pour un tour opérateur
Promotion : 2013/2014
Remerciements
En premier lieu, on remercie Dieu le tout puissant pour nous
avoir aidé afin d’arriver à terme de ce travail qui représente le
fruit de plusieurs mois de travail.
A tous merci.
Dédicace
Koceila.
Dédicace
Merzak .
Sommaire
Sommaire
Introduction Générale
1. Introduction 1
2. Réseaux 1
2.1. Définition 1
2.2. Objectif des réseaux 1
2.3. Classification des réseaux 1
A. Selon la technique de transmission 1
B. Selon la distance 2
2.4. Le modèle OSI (Open system Intercommunication) 4
La couche physique 4
La couche liaison de données 5
La couche réseau 5
La couche transport 5
La couche session 5
La couche présentation 5
La couche application 6
2.5. Protocole TCP/IP 6
A. Définition d’un protocole 6
B. Protocole TCP/IP 6
2.6. Le protocole IP 10
2.7. Le protocole TCP 11
3. Le modèle Client/Serveur 11
3.1. Définition 11
3.2. Le fonctionnement d’un système Client/Serveur 11
3.3. Les différentes architectures Client/Serveur 13
L’architecture à deux niveaux 13
L’architecture à trois niveaux 13
L’architecture a Multi niveaux 14
Comparaison entre l’architecture a 2 et 3 niveaux 15
3.4. Avantages et inconvénients du modèle Client/Serveur 16
A. Les avantages 16
B. Les inconvénients 16
4. Application Web 16
4.1. Définition 16
4.2. Histoire des applications web 17
4.3. La technique de base 19
4.4. Différences entre site web et application web 20
4.5. Utilisation 21
4.6. Technologie 22
Les plateformes 23
Serveurs d’applications 25
L’accès aux bases de données 25
Les langages de programmation 27
Autres technologies utilisés dans le développement
d’applications web 30
5. Conclusion 31
1. Introduction 32
2. Le tourisme 32
2.1. Définition du tourisme 32
2.2. Le tourisme et internet 32
2.3. Le ‘e-tourisme’ 33
3. Agence de voyage 34
3.1. Présentation 34
3.2. Définition 35
4. Définition d’un tour opérateur ou voyagiste 35
5. Présentation d’Air Plus Tourisme 36
5.1. Historique d’Air Plus Tourisme 36
5.2. Objectifs d’Air Plus Tourisme 37
5.3. La clientèle d’Air Plus Tourisme 40
5.3.1. Clientèles B2B (Business to Business) 40
5.3.2. Clientèle B2C (Business to Clients) 40
5.4. Les services de l’agence Air Plus Tourisme 40
5.5. Les partenaires de l’entreprise 41
5.6. Les conditions de vente 41
5.7. Organisation d’Air Plus Tourisme 42
6. Les Service existants 44
6.1. Direction générale (DG) 44
6.2. Département de Gestion des R.H 44
6.3. Département de gestion financière 45
6.4. Département Out Going 46
6.5. Département des systèmes et maintenance 47
6.6. Département réceptif 47
7. Contexte général, motif, objectif du choix du thème Objectif 48
7.1. Contexte général 48
7.2. Introduction aux métiers de l’informatique 48
7.3. L’informatique et l’entreprise 49
7.4. Objectif du choix du thème 50
8. Inventaire du parc informatique 51
8.1. Inventaire du matériel informatique de la direction 51
8.2. Inventaire du matériel informatique du département de
gestion financière 52
8.3. Inventaire du matériel du département émetteur 52
8.4. Inventaire du matériel du département réceptif 53
8.5. Inventaire du matériel du département informatique 54
9. Conclusion 55
1. Introduction 56
2. Introduction aux frameworks 56
2.1. Définition 56
3. Objectif d’un framework 57
4. Les avantages et Inconvénients des frameworks 57
4.1. Les avantages 57
4.2. Les inconvénients 58
5. Doit-on développer avec un framework ou un CMS ? 58
5.1. Qu’est ce qu’un CMS ? 59
5.2. Que choisir ? 59
5.3. Certains CMS évoluent vers des frameworks 60
6. Liste des frameworks PHP 60
7. Comparatif des frameworks PHP 62
7.1. Symfony 2 62
7.2. CakePHP 63
7.3. Zend Framework 2 63
7.4. Fonctionnalités 63
8. Différents exemples de frameworks JAVA 65
8.1. MFC 65
8.2. Jarka Struts 65
8.3. Spring 66
8.4. Framework Hibernate 66
8.5. Comparatif des Frameworks JAVA 67
9. Framework utilisé 69
10. Conclusion 71
1. Introduction 72
2. Présentation de l’UML 72
2.1. Pourquoi utiliser l’UML ? 72
2.2. Modélisation UML 73
3. Démarche à suivre 74
4. Analyse 74
4.1. Objectif de notre application 74
4.2. Définition de base 74
4.3. Identification des acteurs 75
4.4. Spécification des taches 75
4.5. Spécification des scénarios 76
4.6. Spécification de cas d’utilisation 78
4.6.1. Définition d’un cas d’utilisation 78
4.6.2. Le cas d’utilisation détaillé 78
4.6.3. Diagramme de cas d’utilisation 80
5. Conception 81
5.1. Diagramme de séquence 83
5.2. Diagramme d’activité 84
5.3. Diagramme de classe 87
5.4. Diagramme de classe global 90
5.5. Conception de la base de données 91
6. Conclusion 96
Chapitre V: Réalisation et implémentation
1. Introduction 97
2. Architecture technique 97
2.1. Déploiement du système 98
3. L’environnement de développement 99
3.1. Coté serveur 99
3.2. Coté Client 102
4. Présentation des interfaces de l’application 103
5. Conclusion 111
Conclusion Générale
Annexe : UML
Bibliographie
Introduction Générale
Introduction Générale
Depuis l’apparition de l’informatique, l’être humain a toujours essayé d’exploiter
cette science pour automatiser ses tâches quotidiennes de gestion, de communication, de
vente,…
C’est dans cette optique que s’inscrit notre travail, qui consiste à implémenter une
application web de gestion du par informatique d’un tour opérateur «Air Plus Tourisme »,
plus particulièrement nous implémentons une application web qui permet a l’invité,
l’employer, de consulter la base de donnée du matériel au sein de l’entreprise et de réserver
le matériel dont il a besoin et à l’administrateur de gérer la base de donnée du matériel
informatique.
1. Introduction :
Dès l’âge de pierre à nos jours, l’esprit perfectionniste de l’homme n’a cessé de lui
permettre d’améliorer sa vie quotidienne, le passage de la mécanique aux domaines
informatiques a révolutionné la vie journalière de l’être humain.
Au début de l’informatique, des ordinateurs ont été mis aux point, dés qu’ils furent
aptes à fonctionner seuls, des personnes eurent l’idée de les relier entre eux a fin qu’ils
puissent échanger des données, c’est le concept du réseau. Il a donc fallu mettre aux point
des liaisons physique entre les ordinateurs pour que l’information puisse circuler, mais aussi
un langage de communication pour qu’il puisse y avoir un réel échange ; en a décidé de
nommer ce langage : protocole.
2. Réseaux :
2.1. Définition :
Un ensemble d’ordinateurs et de terminaux interconnectés pour échanger des
informations numériques par des lignes de communication ; un ensemble de moyens
matériels et logiciels et un transporteur de données, qui devrai véhiculer toute sorte
d’information. [01]
La diffusion (broadcast),
Le point a point.
1
1_Chapitre : Généralités sur les Réseaux
Ce réseau peut relier seulement deux machines, c’est-à-dire un message pour qu’il
arrive a sa destination il faut d’abord qu’il passe par plusieurs machine intermédiaires.
B. Selon la distance :
2
1_Chapitre : Généralités sur les Réseaux
Ce réseau peut couvrir une ville et aussi peut être placé sous une autorité publique.
Ce type de réseau couvre une très large étendue géographique, relie plusieurs
locaux entre eux, et les liaisons de ces réseaux locaux se font à travers des lignes de
communication internationales, le rôle profond de ces réseaux est de relier les hôtes (des
ordinateurs) entre eux, ces hôtes se trouvent généralement reliés sur LAN, lequel est relié
via un routeur à un sous réseau.
Pour assurer la connexion d’une machine, il faut réunir les supports physiques. Mais
pour un bon transfert de l’information avec une qualité de service suffisante, il faut prévoir
une architecture logicielle assez fiable. Deux grandes familles d’architectures se disputent la
marche : la première provient de l’ISO (l’international Standard Organisation) et s’appelle
OSI (Open System Interconnexion), la deuxième qui est plus récente est UIT-T (Union
Internationale des Télécommunication). [01]
3
1_Chapitre : Généralités sur les Réseaux
La couche physique :
Cette couche définie la façon dont les données sont physiquement converties en
signaux numériques.
4
1_Chapitre : Généralités sur les Réseaux
La couche réseau :
La couche transport :
Cette couche fournit des services tout à fait similaires à ceux qui sont fournis par la
couche réseau, elle permet d’optimiser les tâches effectuées par la couche réseau et
d’assurer la fragmentation des messages.
La couche session :
Cette couche fournit à la couche du dessus les moyens d’organiser et synchroniser les
dialogues de données aussi permet à des utilisateurs travaillants sur différentes machines
d’établir des sessions entre elles.
La couche présentation :
5
1_Chapitre : Généralités sur les Réseaux
La couche application :
Représente la couche la plus élevée du modèle OSI, elle gère le transfert des
informations entre programmes et applications de type réseau : courrier électronique,
transfert de fichier…etc. [03]
Un protocole est une méthode standard qui permet la communication entre des
processus (s’exécutant éventuellement sur différentes machines), c'est-à-dire un ensemble
de règles et de procédures à respecter pour permettre a deux ou plusieurs machines
d’échanger des données entre elles sur un rése au, par analogie, un protocole peut être
comparé à une langue : pour que deux personnes puissent se comprendre, il faut qu’elles
utilisent le même langage , il en existe plusieurs selon ce que l’on attend de la
communication.
Sur Internet, les protocoles utilisés font partie d’une suite de protocole (un ensemble
de protocoles reliés entre eux) qui s’appelle TCP/IP.
B. Protocole TCP/IP :
Définition :
TCP /IP représente l’ensemble des règles de communication sur Internet et se base
sur la notion adressage IP, c'est-à-dire le fait de fournir une adresse IP à chaque machine du
réseau afin de pouvoir acheminer des paquets de données. La suite de protocoles TCP/IP est
conçue pour répondre à un certain nombre de critères parmi lesquels :
6
1_Chapitre : Généralités sur les Réseaux
7
1_Chapitre : Généralités sur les Réseaux
Cette couche regroupe toutes les fonctions des couches de niveau 1 et 2 de modèle
OSI. Les tâches qu’elles réalisent sont donc : acheminement des données sur la liaison, la
constitution des trames, la détection et la correction des erreurs de transmission elles
existant.
La couche Internet :
Les rôles de la couche Internet sont similaires à ceux de la couche réseau du modèle
OSI. Donc cette couche est chargée essentiellement de l’acheminement et le routage des
datagrammes. Elles ont la particularité d’être réalisés par un protocole universel : IP
(Internet Protocole).
La couche transport :
La couche application :
L’encapsulation :
8
1_Chapitre : Généralités sur les Réseaux
9
1_Chapitre : Généralités sur les Réseaux
2.6. Le protocole IP
Une adresse IP est un nombre binaire codé sur 32 bits, et attribuée à une hôte, elle
est utilisée pour toute communication avec cet hôte.
Une adresse IP est toujours représentée dans une notion décimale constituée de
quatre nombre, chaque nombre compris entre [0_255] et séparé par un point.
1-préfixe identifie le réseau physique auquel est relié à l’ordinateur, en attribue une
valeur unique à chaque réseau. [03]
0 1 2 3 4 78
31
0 Préfixe 7 bits Suffixe 24 bits
Classe A
10
1_Chapitre : Généralités sur les Réseaux
TCP est le protocole de transport le plus important de la suite TCP/I P, son rôle est de
garantir l’arriver des données dans l’ordre et sans duplication.
3. Le modèle client/serveur :
3.1. Définition :
Requête
Prise en compte
Programme de la requête
Traitement de la
demande
Réception de la Renvoi de la
réponse requête
Réponse
Client Serveur
Fig.I.5. Architecture client/serveur.
Le client envoie une requête au serveur grâce à son adresse IP et le port, qui
désigne un service particulier de serveur.
Le serveur reçoit la demande et répond à l’aide de l’adresse de la machine
cliente et son port.
11
1_Chapitre : Généralités sur les Réseaux
12
1_Chapitre : Généralités sur les Réseaux
Dans cette architecture le client demande une ressource et le serveur la lui fournit
directement, en utilisant ses propres ressources, cela signifie que le serveur utilise ces base
de données.
13
1_Chapitre : Généralités sur les Réseaux
14
1_Chapitre : Généralités sur les Réseaux
15
1_Chapitre : Généralités sur les Réseaux
B. Les inconvénients :
L’architecture client/serveur a des lacunes parmi lesquels :
oCoût élevé : dû à la technicité du serveur.
oUn maillon faible : le serveur est le seul maillon faible du réseau
client /serveur, étant donnée que tout le réseau est architecturé autour
de lui.
Heureusement, le serveur a une grande tolérance aux pannes (notamment grâce au
système RAID ; qui permet la sauvegarde des données dans des plusieurs supports.)
4. Application web :
4.1. Définition :
En informatique, une application Web (aussi appelée WebApp) est un logiciel applicatif
manipulable grâce à un navigateur Web. De la même manière que les sites Web, une
WebApp est généralement placée sur un serveur et se manipule en actionnant des widgets à
l’aide d’un navigateur Web, via un réseau informatique (Internet, intranet, réseau local,
etc.).
16
1_Chapitre : Généralités sur les Réseaux
Les messageries web, les systèmes de gestion de contenu, les blogs sont des applications
Web.
Les moteurs de recherches, les logiciels de commerce électronique, les jeux en ligne, les
logiciels de forum peuvent être sous forme d’application Web.
Des appareils réseau tels que les routeurs sont parfois équipés d’une application Web
dans leur micro-logiciel.
Les applications Web font partie de l’évolution des usages et de la technologie du Web.
Quelques mois plus tard, Netscape, ancien et populaire navigateur web, annonçait une
nouvelle technologie, le JavaScript, permettant aux programmeurs de modifier
dynamiquement le contenu d’une page web qui était, jusqu’à ce jour, du texte statique.
Cette technologie permit une toute nouvelle approche dans le développement des
applications web, lesquelles étaient désormais, et encore aujourd’hui, beaucoup plus
interactives pour les usagers. A titre d’exemple, la fonctionnalité Google Instant, permettant
d’afficher des résultats de recherche au moment même où les lettres du mot sont tapées,
fait un usage intensif du JavaScript. Le site web des mises à jour des produits Microsoft
utilise également cette technologie. [05]
Le 17 janvier 1998, le site Internet Drudge Report annonçait pour la première fois
une nouvelle journalistique sur la toile avant même qu’elle ne soit diffusée dans les
médias télévisuels et imprimés traditionnels. Celle-ci faisait état du scandale
Clinton/Lewinski. Cet événement fut l’élément déclencheur du journalisme en ligne
tel qu’on le connait aujourd’hui. Avant cette date, Internet n’avait jamais été
considéré comme un média de premier plan.
La même année, la compagnie Google mit en ligne son premier moteur de recherche
qui, par sa nouvelle façon d’indexer les pages web, facilita grandement la recherche
d’informations sur Internet. Google continua d’innover et devint l’une des
entreprises les plus prolifiques en termes d’applications web, en répertoriant les très
populaires Google Maps, Google Docs, Gmail,…
Au début de l’année 2001, peu après l’explosion de la bulle Internet, Wikipédia fut
lancé comme sous-projet de Nupedia, une encyclopédie traditionnelle en ligne. Pour
développer sa plateforme, Wikipédia utilisa un type d’application web nommée
« wiki » permettant à tout internaute d’ajouter du contenu. Les contributions
vinrent rapidement, et à la fin de la première année d’opération, Wikipédia comptait
déjà 20 000 pages en 18 langues. Aujourd’hui, ce sont près de 21 millions d’articles
en 285 langues qui composent le sixième site web le plus visité au monde, le premier
étant Google.
En 2003, MySpace fut fondé et plus tard, en 2005 à 2008, le site devenait le média
social le plus visité. MySpace fut une plateforme de lancement pour plusieurs autres
applications web connues telles que YouTube, Slide.com et RockYou!, qui ont toutes
débuté comme modules supplémentaires pour les utilisateurs MySpace avant de
devenir eux-mêmes des sites web à part entière.
En 2004, lors d’une conférence Web 2.0 donnée par John Batelle et Tim O’Reilly, le
concept du « web en tant que plateforme » fut mentionné pur la première fois.
En cette même année, un événement très important se produit, le lancement de
Facebook, qui était alors à ses balbutiements, ouvert uniquement aux étudiants.
Comptant un million d’abonnés à la fin de 2004, Facebook est devenu aujourd’hui le
média social le plus utilisé avec plus de 900 millions d’utilisateurs. C’est le deuxième
18
1_Chapitre : Généralités sur les Réseaux
site web le plus visité sur la planète et celui qui possède le plus de photos partagées
par les utilisateurs avec un total de 500 milliards de photos téléchargées sur la
plateforme.
En 2005, YouTube fut officiellement lancé, permettant aux internautes de partager
des vidéos en ligne.
Twitter, quant à lui, fut lancé en 2006. Avec les années, la popularité de Twitter n’a
fait qu’augmenter, passant de 1.6 million de « tweets » en 2007 à l’impressionnant
chiffre de 340 millions par jour en mars 2012 (ce qui équivaut à près de 4 000
« tweets » par seconde !).
L’année 2007, fut remarquée par l’apparition de l’iPhone, avènement qui fut très
certainement responsable du nouvel engouement pour les plateformes mobiles et
les applications web. Elles étaient désormais accessibles par téléphone intelligent.
Au début 2011, la compagnie Kichstarter, qui facilite le financement participatif de
projets en ligne, a atteint les 4 000 projets avec plus de 30 millions de dollars en
donation. D’ailleurs, près de 44% des projets ont été démarrés avec succès à partir
de cette plateforme.
Tel qu’il est remarquable, l’impact des applications web sur la façon d’opérer en affaires, de
transmettre et de recevoir de l’information, et même sur la vie des gens, est considérable.
Les applications web constituent une opportunité de connecter les internautes entre eux et
les entreprises avec leur clientèle. Bref, les développeurs d’applications web façonnent
aujourd’hui le futur numérique de demain.
Les applications web utilisent cette technique pour mettre en œuvre leur interface
graphique. Celle-ci est composée de pages créées de toutes pièces par le logiciel lors de
chaque requête. Chaque hyperlien contenu dans la page provoque l’envoi d’une nouvelle
19
1_Chapitre : Généralités sur les Réseaux
requête, qui donnera en résultat une nouvelle page. A la différence d’un site web statique
où les pages sont des fichiers préalablement enregistrés.
Les pages web contiennent divers widgets tels des boutons poussoirs, des icônes et des
zones de texte, permettant la manipulation de l’application. Chaque manipulation d’un
bouton poussoir provoque l’envoi d’une nouvelle requête. Les pages web peuvent contenir
des applets.
Contrairement à d’autres logiciels, une application web mise en place sur un serveur est
immédiatement utilisable par le consommateur sans procédure d’achat et d’installation sur
son propre ordinateur, du moment que la machine du consommateur est équipé d’un
navigateur web et d’une connexion réseau. Ceci évite des interventions des administrateurs
système, interventions qui sont souvent plus coûteuses que le logiciel lui-même.
L’application web est souvent mise à disposition du consommateur par l’éditeur du logiciel
sur ses propres serveurs (technique appelée Software as a Service).
L’usage du navigateur web comme partie client (un logiciel qui est disponible sur de
nombreux systèmes d’exploitation) assure la portabilité d’une application web. [03]
Une application web est tout site web qui permet à ses utilisateurs d’accomplir des
tâches spécifiques. Une application gère donc généralement des utilisateurs et toutes sortes
de données selon les requis spécifiques au projet.
20
1_Chapitre : Généralités sur les Réseaux
Pour simplifier les choses, un site web c’est le fait de visualiser une page web. Une
application web, c’est le fait d’interagir avec une page web, la modifier dans son contenu,
pouvoir faire certaines choses avec.
4.5. Utilisation :
De nos jours les applications web sont omniprésentes, elles font partie de l’évolution des
technologies correspondant à ce que l’on appelle « le Web 2.0 ».
La technologie des applications web permet de nombreux usages. Les usages populaires
sont les moteurs de recherche, le webmail, le commerce électronique et les jeux en ligne.
Un moteur de recherche est une application web qui recherche des documents.
Un webmail est une application web pour recevoir et envoyer du courrier
électronique. La présentation des documents est similaire à celle d’un site web,
cependant les documents sont générés par le logiciel lors de chaque demande. Le
système de gestion de contenu effectue les traitements nécessaires à la mise en
forme et la présentation des documents.
Un weblog est un système de gestion de contenu où des éléments de contenu sont
présentés dans l’ordre chronologique de leur date de création.
Un wiki (de l’hawaïen wikiwiki qui signifie vite) est un système de gestion de contenu
qui vise à simplifier la création collaborative des documents. Il autorise plusieurs
personnes à effectuer des modifications simultanées, et est équipé d’espaces de
discussion.
Un site web marchand est un système de gestion de contenu, où le contenu est des
annonces concernant des produits. Il est utilisé pour la vente par correspondance.
Les visites et les opérations d’achat sont enregistrées à des fins de marketing. Les
sites web marchands sont utilisés aussi bien pour la vente des produits d’une société
que pour des ventes entre particuliers ou des ventes aux enchères.
Un jeu par navigateur est un jeu vidéo réalisé sous la forme d’une application web.
Un logiciel de forum permet des discussions ouvertes entre des utilisateurs : un
utilisateur écrit un message, et ce message peut être lu par tous les autres
21
1_Chapitre : Généralités sur les Réseaux
utilisateurs. Les logiciels de forums sont parfois réalisés sous forme d’application
web.
La messagerie instantanée (an anglais « chat ») permet l’échange instantané de
messages texte entre différents utilisateurs. Les logiciels de messagerie instantanée
sont parfois réalisés sous forme d’application web. Les messages peuvent être
transmis à un autre utilisateur du logiciel, ou un téléphone portable via le short
message service (abrégé SMS).
« Google Maps » est une application web qui permet de consulter des cartes
géographiques du monde entier.
« Facebook »est une application web qui permet à chaque utilisateur de se constituer
un réseau social (amis, associés, personnes qui partagent les mêmes centres
d’intérêt). [04]
4.6. Technologie :
Dans la technologie la plus courante, l’application web s’oriente autour d’un serveur web
sur lequel est branché le logiciel applicatif, le tout parfois accompagné d’un serveur de base
de données. L’ensemble est appelé « serveur d’application ».
Le code source du logiciel applicatif est placé directement dans des pages web. Ces pages
sont stockées par le serveur. Lorsque le client demande une page, le serveur web va
rechercher la page, puis exécute les instructions qu’elle contient. Ces instructions peuvent
faire appel au serveur de base de données. Le serveur web transmet la page avec le résultat
de l’exécution au client.
Les applications web font souvent usage du mécanisme des cookies : en réponse à une
requête, le serveur envoie une information de repérage au client (le cookie). Puis le client va
lui renvoyer cette information lors de la prochaine requête. Le mécanisme est utilisé pour
identifier le client et suivre les manipulations.
22
1_Chapitre : Généralités sur les Réseaux
Les pages web peuvent en outre contenir des applets. Ce sont des morceaux de code
source qui seront exécutés par le navigateur web après transmission de la page,
contrairement à la majorité du code source qui est exécuté par le serveur web avant la
transmission. ActiveX, Java, AdobeFlash et Silverlight sont des technologies utilisées pour les
applets.
Le logiciel client (le navigateur web) est identique à celui utilisé pour consulter un site
web. Les logiciels nécessaires pour exécuter les applets sont inclus dans les navigateurs,
parfois sous forme de complément (plugin).
Les plateformes :
.NET : c’est une plateforme proposée par Microsoft, respecte les standards actuels
sur le web (HTTP, XML, SOAP, UDDI, WSDL,…), développé dans l’environnement
Visual Studio.net (commercial) et Matrix (gratuit), et exécuté sous l’environnement
Common Language Runtime (CLR). Elle intègre la base de données ADO.net et repose
sur le Framework .NET. Les applications sous cette plateforme peuvent être écrites
dans tous langage compatible avec le CLR, y compris Visual Basic et C#.
J2EE : proposée par SUN, ce terme signifie Java Entreprise Edition, et était
anciennement raccourci en « J2EE ». Il fait quant à lui référence à une extension de la
plateforme standard. Autrement dit, la plateforme Java EE est construite sur le
langage Java et la plateforme Java SE, et elle y ajoute un grand nombre de
bibliothèques remplissant tout un tas de fonctionnalités que la plateforme standard
ne remplie pas d’origine. L’objectif majeur de Java EE est de faciliter le
développement d’applications web robustes et distribuées, déployées et exécutées
sur un serveur d’applications.
Le tableau suivant recense les principaux points communs et différences des deux
principales plateformes :
23
1_Chapitre : Généralités sur les Réseaux
24
1_Chapitre : Généralités sur les Réseaux
Serveurs d’applications :
Le serveur d’application constitue le noyau des architectures multi niveaux. Son rôle est
d’assurer la logique métier des applications en découplant celle-ci des présentations et des
accès aux données et de permettre une évolution des niveaux indépendamment des autres.
En voici quelques exemples de serveurs d’application : [01]
Le Framework est utilisé pour pourvoir accéder aux bases de données. C’est un ensemble
de composants qui servent à créer l’architecture et les grandes lignes d’une application. On
peut le voir comme une boîte à outils géante, conçue par un plusieurs développeurs et mise
à disposition d’autres développeurs, afin de faciliter leur travail. Il existe des Frameworks
dans beaucoup de langages et plateforme, ce n’est pas un concept propre au
développement web en particulier. Parmi les Framework les plus connu, on peut citer :
25
1_Chapitre : Généralités sur les Réseaux
26
1_Chapitre : Généralités sur les Réseaux
HTML (Hyper-Text Markup Language) : c’est tout simplement le langage dans lequel
sont écrites des pages web. Ce langage repose sur un système de balises, comme par
exemple <head>. Mais nul besoin de les connaître pour réaliser une page web car il
existe de nombreux éditeurs de pages web qui permettent de créer des pages web
comme on crée un document Word (Mozilla NVU, Macromedia Dreamweaver, etc).
A noter qu’on ne parle pas de langage de programmation pour HTML mais de
langage de présentation.
CSS (Cascading Style Sheet = feuille de Style en cascade) : est utilisé pour alléger le
code HTML. Pour cela, on crée généralement un fichier *.css dans lequel on entre
toutes les instructions codant le style de la page web (couleur d’arrière-plan, type de
blocs, de bordures, etc.). En faisant appel à ce fichier dans la page HTML, on peut
désigner un style lourd et complexe avec une simple petite balise. De plus si la CSS
est employée dans un site entier (comme c’est toujours le cas), il suffit de mettre à
jour la CSS pour refaire le design du site en entier.
SQL (Structured Query Language) : est un langage d’interrogation de base de
données très populaire. Il consiste aujourd’hui une norme implémentée par de
nombreux SGBDs comme Oracle, PostgreSQL et MySQL.
XML : langage à balise strict permettant de stocker n’importe quelles données.
JavaScript : initialement appelé LiveScript, est un langage de programmation pour les
applets, développé par Netscape. Les applets écrites dans langage sont exécutées par
un interprète inclus dans le navigateur web. De nombreux navigateurs web ont un
interprète JavaScript.
Java : est un langage de programmation développé par Sun Microsystems, qui peut
être utilisé pour les applets. Les applets écrites dans ce langage sont préalablement
compilées, et exécutées par un logiciel branché au navigateur web, le plug-in Java
(traduction littéral : qui se branche dessus).
27
1_Chapitre : Généralités sur les Réseaux
28
1_Chapitre : Généralités sur les Réseaux
pages web dynamiques via un serveur HTTP, mais pouvant également fonctionner
comme n’importe quel langage interprète de façon locale. PHP est un langage
impératif disposant depuis la version 5 de fonctionnalités de modèle objet
complètes.
Ruby : est un langage de programmation libre, il est interprété, orienté objet et
multi-paradigme. Le langage a été standardisé au Japon en 2011, et en 2012 par
l’organisation internationale de normalisation (ISO). [03]
Ci-après, un tableau montrant un sondage fait sur le net pour les langages serveur
préférés par les développeurs web :
29
1_Chapitre : Généralités sur les Réseaux
30
1_Chapitre : Généralités sur les Réseaux
31
CHAPITRE II
Organisme d’accueil
2_Chapitre : Organisme d’accueil
1. Introduction :
Nous présentons dans ce chapitre l’organisme qui nous a accueillit pour développer notre
application web afin de faire l’inventaire du parc informatique.
Nous avons donc fais un inventaire de tout le matériel informatique disponible au niveau de
cet organisme qui compte un parc informatique assez conséquent.
C’est d’ailleurs au cours de ce chapitre que nous pourrons détailler toutes les données qu’on
a intégrer dans la base de donnée de notre application « GPI ».
2. Le tourisme :
32
2_Chapitre : Organisme d’accueil
2.3. Le ‘e-tourisme’ :
Le tourisme électronique, autrement nommé le e-tourisme désigne les activités du secteur
du tourisme, sur Internet. Même s'il est de plus en plus réducteur aujourd’hui de parler d’e-
tourisme tant le tourisme et les nouvelles technologies sont inexorablement voués à converger
complètement vers un tourisme numérique. Pour les usagers, le e-tourisme offre des moyens de
préparer, d'organiser et de réserver ses voyages via Internet : identification de la destination,
achat du transport, élaboration d'un itinéraire, réservation d'un hébergement, échange
d'informations avec les autres internautes. Apparu en 1998, le e-tourisme est aujourd'hui un mode
de promotion et de réservation incontournable dans les secteurs du tourisme et du voyage. Les
utilisateurs et consommateurs du e-tourisme sont désignés par l'univers du marketing comme
des touristonautes ou des touristes en ligne.
Le secteur du e-tourisme rassemble aujourd'hui de nombreux acteurs du secteur touristique
ainsi que des nouveaux entrants pure Play.
Entreprises touristiques : agence de voyage en ligne, prestataire hôteliers, compagnie
aérienne, ferroviaire ou de navigation
Édition et publication : guide de voyage, magazine, blogs de voyage (les « infomédiaires »,
sites internet spécialisés dans les informations sur le voyage), site d'avis de voyageurs
(Tripadvisor,Vinivi, Holidaycheck, Zoover, Trivago).
33
2_Chapitre : Organisme d’accueil
3. Agence de voyage:
3.1. Présentation:
Une agence de voyages est une entreprise qui propose et vend des offres de voyages à ses
clients. Elle joue le rôle d'intermédiaire entre les consommateurs et les différents prestataires de
services présents sur le marché du tourisme : Tour-opérateurs, compagnies aériennes, hôteliers,
loueurs de voiture, assurances voyage, etc.
Les agences de voyages, de par leur proximité avec le client, ont également un rôle de conseil :
elles avertissement et informent les consommateurs des formalités à accomplir avant tout voyage ou
séjour à l'étranger, conseillent et établissent une offre personnalisée en fonction des attentes et
désirs du client.
Généralement, les agences de voyages proposent à la vente les offres composées par les
Tour-opérateurs. Elles constituent donc un intermédiaire entre le tour-opérateur et le
consommateur, lequel ne traite alors qu'avec l'agence de voyages. Les agences de voyages sont alors
traditionnellement rémunérées par une commission sur les prestations vendues.
Néanmoins, il est de plus en plus fréquent que les agences de voyages composent elles-mêmes les
offres qu'elles proposent ensuite à leur clients, en regroupant les services qui leur sont présentés par
les différents prestataires du marché du tourisme. Elles s'affranchissent alors du concours des tour-
opérateurs pour offrir de façon autonome des « packages » ou encore « forfaits touristiques »
rassemblant différentes prestations.
Dès lors, la rémunération des agences de voyages ne vient plus seulement des tours opérateurs
dont elles vendent les « packages » mais de leur propre rémunération sur les services fournis par les
prestataires partenaires ainsi que de leurs clients voyageurs qui sous forme d'honoraires de conseil et
de réservation.
Ainsi, alors que les tour-opérateurs s'aventurent de plus en plus sur le terrain d'activité des
agences de voyages en proposant leurs offres directement sur internet, les agences de voyages ont
34
2_Chapitre : Organisme d’accueil
également tendance à empiéter sur le domaine des tour-opérateurs en proposant leurs propres
forfaits négociés directement avec les prestataires de services.
3.2. Définition:
Selon le site gouvernemental www.tourisme.gouv.fr, l'agence de voyages est une société
commerciale dirigée par une personne physique ou morale qui propose à la clientèle des prestations
touristiques relatives :
soit à des voyages ou séjours individuels ou collectifs donnant lieu ou non à un forfait touristique
(incluant une nuitée)
soit des services tels que la délivrance de titres de transport, de réservations d'hébergement ou
liés à l'accueil touristique, ou à des congrès ou manifestations (visites guidées, billetterie, etc.…).
La profession d'agent de voyages est une profession réglementée qui est organisée en voyagistes
(tour-opérateurs) et en agences distributrices auprès de la clientèle.
La distinction est donc généralement la suivante : « agence de voyages » pour les agences
distributrices de séjour auprès de la clientèle et « tour opérateur (ou voyagiste) », professionnel
assemblant différentes prestations fournies par des prestataires. [11]
35
2_Chapitre : Organisme d’accueil
Le tour-opérateur propose des produits incluant différentes prestations mais n'offre pas de
séjours personnalisés en fonction de la demande du client. Il négocie les prix des prestations de
voyages auprès des prestataires du marché touristique et traite directement avec les agences de
voyages en leur vendant les packages ainsi créés.
Le tour-opérateur n'a pas vocation à se rapprocher du consommateur final. Il ne fait
généralement affaire qu'avec les professionnels du secteur (B to B = Business to Business).
Néanmoins, cette affirmation doit être relativisée par l'apparition d'un nouveau mode de
vente des forfaits touristiques : Internet.
Pendant longtemps, les tour-opérateurs commercialisaient leurs forfaits uniquement par les agences
de voyages, à qui ils reversaient une commission. [12]
Ce mode de distribution, bien que restant encore majoritaire, doit faire face aujourd'hui à la
concurrence d'Internet. Aujourd'hui, de plus en plus de voyagistes proposent leurs packages sur
Internet, donc directement au consommateur final (B to C = Business to Consumer).
Les tour-opérateurs ne se contentent donc plus des relations entre professionnels et développent
aujourd'hui une réelle offre de forfaits touristiques directement aux consommateurs sur Internet.
En 2005, Apres avoir obtenue l’agrément IATA, l’agence a pu acquérir une autonomie
aérienne en signant plusieurs contrat de collaboration avec des compagnies aériennes tel que Air
Algérie, Aigle Azur, Tunis Air, Royale Air Maroc, Air France,…etc
En 2007, Un nouveau point de vente fut aménagé à Bejaïa pour faire face a la demande
croissante des clients,
36
2_Chapitre : Organisme d’accueil
Ce dernier a été transféré à Alger en 2009, d’autres points de ventes sont en phase de
lancement pour les jours qui viennent.
En Mai 2010 Air Plus Tourisme devient un tour opérateur ; une centrale de réservation est
née, elle compte trois représentations exclusives de géant européen de la réservation en ligne GTA,
RESTEL, HOTELBEDS et GOVOVAGES.
Le 01 Décembre 2010, le site Web d’Air Plus Tourisme a vue le jour, une centrale de
réservation Algérienne en ligne, une nouveauté dans le monde du tourisme en Algérie
(www.airplusvoyages.com), a travers lequel nous avons commencé a commercialiser les destinations
et circuits du pays, d’autres destinations des pays voisin ont été intégrées par la suite comme le
Maroc, Tunisie, et Dubaï,…etc, et ceux des pays les plus fréquents à la demande des clients.
En 2013, Air Plus compte désormais plusieurs partenaires a son actif dans la nouvelle
représentation de KUONI Global Travel Services et SIXT pour les transferts, d’où l’élaboration d’un
nouveau plan de mise à niveau et de modernisation de l’entreprise, qui est axé sur :
37
2_Chapitre : Organisme d’accueil
Afin de s’approcher et de servir d’avantage la clientèle Air plus s’est aussi implanté à Alger.
Elle possède donc deux points de vente :
38
2_Chapitre : Organisme d’accueil
Dotée de tous les moyens humains et matériels, son activité est principalement axée sur la
vente d’une gamme de produits touristiques (hôtel, séjour, excursion,…) de qualité.
Membre de l’IATA (International Air Transport Association), elle émet une billetterie aérienne
sur toutes les destinations.
AIR PLUS, est aussi un Tour Opérateur, car elle conçoit et distribue ces produits et ces services
aux différents revendeurs conventionnés (agences de voyages) et aux entreprises.
Pour le grand public (marché local), elle dispose d’un riche éventail de destinations
sélectionnées, tant à l’intérieur qu’à l’extérieur du pays, pour que le séjour des postulants, soit le plus
agréable possible.
Elle est également présente sur le marché international en assistant aux foires et aux salons
du tourisme à l’étranger afin de promouvoir les destinations en Algérie.
39
2_Chapitre : Organisme d’accueil
Les particuliers (la clientèle dit non commerçante) Cette catégorie regroupe :
Profession libérale (médecins, avocats,…etc)
Les particuliers ou salariés
40
2_Chapitre : Organisme d’accueil
GTA Est un système de réservations international dont Air plus à la charge et la gestion et
commercialise un portefeuille de plus de 35.000 hôtels dans le monde, classés en différents
segments en fonction du type d'établissement: Ville, Campagne, Charme et Plage
41
2_Chapitre : Organisme d’accueil
DIRECTEUR
GENERAL
SECRETAIRE CELLULE
COMMUNI-
GENERALE
CATION
DIRECTION BUREAU
QUALITE D’ETUDES
AGENCE ALGER
AGENCE T.O
42
2_Chapitre : Organisme d’accueil
DIRECTION
OUT GOING
DPT ADMINISTRATION ET
ASSISTANT SYSTEME
FINANCES
GOVOYAGES
SEJOURS
LINGUISTIQUE
S GTA
GROUPES
RESTEL
HOTELBEDS
43
2_Chapitre : Organisme d’accueil
Le directeur général de l’agence de voyages est un gestionnaire qui planifie, organise, dirige
et contrôle les activités de l’agence de voyages en vue de satisfaire les besoins et les attentes de la
clientèle et de s’assurer de l’efficacité et de la rentabilité de l’entreprise.
Attributions :
Gérer les ressources financières de l’agence (préparation des budgets, contrôle des coûts de
fonctionnement, etc.) et matérielles (gestion des inventaires, négociations avec les fournisseurs, etc.)
Sélectionner des produits, des services ou des forfaits adaptés aux besoins de la clientèle
44
2_Chapitre : Organisme d’accueil
Attributions :
Attributions :
Établir, appliquer et faire respecter les politiques, les normes et les procédures
relatives à la réalisation des campagnes ou des activités de financement
45
2_Chapitre : Organisme d’accueil
Le responsable du département Out Going se charge des ventes et du marketing c’est aussi un
gestionnaire qui planifie, organise, dirige et contrôle les activités de promotion, de vente et de
marketing des produits et des services de l’entreprise en vue d’y attirer la clientèle pour l'achat des
produits et services. C’est aussi un agent de promotion touristique est un superviseur des services
touristiques dont la fonction consiste à planifier, organiser et réaliser les activités liées à la promotion
et à la commercialisation de produits et services touristiques pour le compte de l’entreprise.
Attributions :
Consulter ou effectuer des études pour cibler les préférences de la clientèle quant aux
produits et aux services offerts
Élaborer des programmes et des activités de promotion pour des produits ou des
services touristiques ou mettre en œuvre ceux déterminés par le directeur des ventes et du
marketing, s’il y a lieu
46
2_Chapitre : Organisme d’accueil
Le responsable s’occupe de régler les problèmes à moindre coût et dans les plus brefs délais,
proposer des solutions informatiques améliorant la rentabilité de l’entreprise. Il s’assure que son
service atteigne les objectifs fixés par la direction des systèmes d'information. Pour cela, il planifie les
activités, anime son équipe et met en place des projets d'évolution en fonction des besoins des
utilisateurs.
Attributions :
47
2_Chapitre : Organisme d’accueil
48
2_Chapitre : Organisme d’accueil
49
2_Chapitre : Organisme d’accueil
L'aspect le plus négatif dans les conditions de travail arrive peut-être avec le contrôle du
travail des employés qui peut se faire au travers de l'ordinateur, au moins pour ceux qui sont
connectés à un moyen ou à un gros système informatique, puisque tout peut s'enregistrer au fur et à
mesure. Le responsable du service est alors à même de juger de la productivité de chacun de ses
employés... et d'attribuer les primes correspondantes à la fin.
En face de ce fait de première importance, on peut défendre deux points de vue. Le point de
vue libéral attend que les meilleurs individus créent par leur dynamisme des emplois ; dans ce
contexte l'informatique est un outil de plus pour accroître leur pouvoir créateur. Ceux qui défendent
le point de vue social reprochent aux premiers de laisser faire une économie qui développera une
classe de plus en plus importante d'exclus, qui accentuera le côté dual de la société. Pour eux, il faut
mettre en œuvre un système permettant réellement le partage du travail. Ce débat n'est pas
nouveau mais l'informatique, par l'importance de la transformation qu'elle entraîne, devient un
révélateur.
Une autre conséquence de l'informatisation est peut-être moins évidente que la réduction
des postes de travail mais elle est bien réelle malgré tout : par sa puissance et sa fragilité, l'ordinateur
induit une société "sécuritaire". On a déjà vu que la création de profils statistiques allait dans ce sens,
mais en plus la complexité des systèmes rend ceux-ci vulnérables aux sabotages et aux risques
naturels.
50
2_Chapitre : Organisme d’accueil
réaliser un logiciel de Gestion du parc informatique en vue d’automatiser et de faciliter les différentes
taches à faire et surtout les différentes recherches.
Imprimante/
Imprimante Réception Brother
DCP-
Néant Mlle
WI0FR30GTR
Scanner/Photocopieuse 195C FENNEK
51
2_Chapitre : Organisme d’accueil
Bureau 3505
HP Windows 7
HP Pro Ordinateur de bureau des série TRF3120 Mlle
Pro 64bits VJG KHAMES
finances MT
Bureau 3505
HP Windows 8
HP Pro Ordinateur de bureau des Série CZC3071 Mlle
Pro 64bits G2X KICHOU
finances MT
Bureau 3505
HP Windows 8
HP Pro Ordinateur de bureau des Série CZC3071 Mr AIT SI
Pro 64bits BD1 ALI
finances MT
Imprima
Bureau FS-
nte Imprimante/Scanner/Photo Kyoce
des 1030M Néant RGTD125
Service
KYOCER copieuse ra GG
finances FP KX
A
52
2_Chapitre : Organisme d’accueil
3505
Ordinateur Bureau Out Windows 8
HP Pro HP Pro Série CZC2498BGP Mr SLAIMI
de bureau Going 64bits
MT
53
2_Chapitre : Organisme d’accueil
on
3505
Ordinateur de Bureau Windows 7 Mlle
HP Pro HP Pro Série TRF3120VJ
BENMERZO
bureau Réceptif 64bits G
MT UK
3505
Ordinateur de Bureau Windows 7
HP Pro HP Pro série TRF3120VV
Mr OUKARA
bureau Réceptif 64bits J
MT
Ordinateur de Bureau Dell Windows 7
Dell 380 Mr
9GVB8BS
bureau Réceptif Optiplex 64bits SEMRANI
Ordinateur de Bureau Dell Windows 7
Dell 380 9GVG1FS Mlle BIDI
bureau Réceptif Optiplex 64bits
Ordinateur de Bureau Dell Windows 7
Dell 380 Mlle
8GVC6CS
bureau Réceptif Optiplex 64bits SADEDDINE
Cooler Ordinateur de Bureau Cooler Elite Windows 7
Mlle
RC344AFO2
Master bureau Réceptif Master 344 64bits BELKALEM
Cooler Ordinateur de Bureau Cooler Elite Windows 7
Mme
RC344BJN8
Master bureau Réceptif Master 344 64bits EMBAREK
3505
Ordinateur de Bureau Windows 7
HP Pro HP Pro Série TRF31278J Mlle
bureau Réceptif 64bits U DLAMA
MT
3505
Ordinateur de Bureau Windows 7
HP Pro HP Pro Série TRF25689F Mlle
bureau Réceptif 64bits RG ADJAOUDI
MT
Impriman
Imprimante/ UF-
te Bureau du Panason
Scanner/Photocopi Néant HGYE1258C
4100- Service
Panasoni Réceptif ic D
euse AV
c
54
2_Chapitre : Organisme d’accueil
ion
Bureau Maxi
maxi Ordinateur Windows 7 SCS 2011 02 25
power Informatiq Powe 4520 Mlle
04 445
de bureau 64bits HANOUTI
ue r
Coole
Bureau
Cooler Ordinateur r Elite Windows 7
Master Informatiq Maste RC343KKN1112210 Mr
de bureau r 344 64bits 1311 AMRANE
ue
Coole
Bureau
Cooler Ordinateur r Elite Windows 7
Master Informatiq Maste RC34kkkn1112210 Mlle
de bureau r 344 64bits 1463 KHAZEM
ue
Coole
Bureau 3505
Cooler Ordinateur r Windows 8 Mlle
Informatiq Série RC 343 KKN
MOUSSA
Master de bureau Maste 64bits 11122101205
ue MT OUI
r
Bureau 3505
Ordinateur de HP Windows 7 Mlle
HP Pro Informatiq Série TRF31658GT OUSADO
bureau Pro 64bits
ue MT U
9. Conclusion :
Dans ce chapitre, nous avons défini les concepts relatifs au tourisme et l’introduction de
l’internet dans l’industrie du tourisme. Nous avons présenté l’agence Air Plus Tourisme et ses
services. Nous avons aussi fait un inventaire du matériel informatique des départements.
55
CHAPITRE III
Les Frameworks
3_Chapitre : Les Frameworks
1. Introduction :
Travailler dans les deux univers que sont l’orienté objet et la base de données
relationnelle peut être lourd et consommateur en temps dans le monde de l’entreprise
d’aujourd’hui, Pour y remédier on utilise les « Framework ».
L’objectif de ce chapitre est d’expliquer ce qu’est un Framework et d’exposé
l'intérêt, les avantages et les inconvénients de l'utilisation d'un tel outil.
2.1. Définition :
Le Framework désigne le cadre dans lequel va s’insérer une application. En
programmation orientée objet, il désigne l’infrastructure logicielle qui facilite la conception
des applications par l’utilisateur de bibliothèques de classes ou de générateurs de
programmes.
56
3_Chapitre : Les Frameworks
Par exemple il existe dans Symfony2 un composant qui gère les formulaires HTML :
leur affichage, leur validation, etc. Le développeur qui l'utilise se concentre sur l'essentiel
dans son application : chaque formulaire effectue une action, et c'est cette action qui est
importante, pas les formulaires. Étendez ce principe à toute une application ou tout un site
internet, et vous comprenez l'intérêt d'un framework. Autrement dit, le framework s'occupe
de la forme et permet au développeur de se concentrer sur le fond.
Tout d'abord, un framework aide à réaliser un « bon code ». Par « bon code », on
veut dire qu'il nous incite, de par sa propre architecture, à bien organiser notre code. Et un
code bien organisé est un code facilement maintenable et évolutif. De plus, un framework
offre des briques prêtes à être utilisées (le composant Formulaire de Symfony2 par
exemple), ce qui nous évite de réinventer la roue, et surtout qui nous permet d'utiliser des
briques puissantes et éprouvées. En effet, ces briques sont développées par des équipes de
développeurs chevronnés, elles sont donc très flexibles et très robustes. Nous économisons
ainsi des heures de développement.
Ensuite, un framework améliore la façon dont nous travaillons. En effet, dans le cas
d'un site internet, nous travaillons souvent avec d'autres développeurs PHP et un designer.
Un framework nous aide doublement dans ce travail en équipe. D'une part, un framework
utilise presque toujours l'architecture MVC ; c'est une façon d'organiser son code qui sépare
le code PHP du code HTML. Ainsi, notre designer peut travailler sur des fichiers différents
57
3_Chapitre : Les Frameworks
des nôtres, fini les problèmes d'édition simultanée d'un même fichier. D'autre part, un
framework a une structure et des conventions de code connues.
Notez également que pour les frameworks les plus récents, tels que Symfony2
justement, il faut également être au courant des dernières nouveautés de PHP. Je pense
notamment à la programmation orientée objet et aux namespaces. De plus, connaître
certaines bonnes pratiques telles que l'architecture MVC est un plus.
58
3_Chapitre : Les Frameworks
WORDPRESS
DRUPAL
JOOMLA
DJANGO en Python
SYMFONY, ZEND en php
RUBY ON RAIL en Ruby
5.2. Que choisir?
Le choix de l’outil dépend principalement de deux facteurs :
En général, pour un projet de plus d’une vingtaine de jours, il est plus avantageux de
construire l’application / site autour d’un framework. Un délai plus long sur un CMS implique
59
3_Chapitre : Les Frameworks
des développements et des besoins d’adaptation conséquents qui vont au-delà de la simple
installation de modules et de l’intégration du design interactif. Dans ce cas, un framework
sera dans la majorité des cas aussi rapide à mettre en place. Il offrira, en outre, des
avantages conséquents de flexibilité, de stabilité et de performances.
Il est très important de prendre aussi en compte le fait que la plupart du temps, on a
tendance à ne voir que le coût de développement initial. Or, si un site se développe en
quelques mois, sa durée de vie se compte en années, au cours desquelles de nouvelles
fonctionnalités devront être implantées. Il faut s’assurer que si on part sur un CMS les mises
à jours seront peu complexes à mettre en place. Ce qui est rarement le cas.
Enfin, il faut aussi étudier le besoin de performances de son site. Si on prévoit un gros
volume d’accès, les possibilités de caching et l’architecture plus puissantes des frameworks
répondront mieux à la demande. Certes un CMS est capable de tenir des grosses montées en
charge, mais cela implique souvent un coût en infrastructure serveur supérieur, qui à terme
le rend plus coûteux qu’un framework. [12]
Framework Définition
Agavi un framework open-source écrit en PHP5
Atomik Framework un micro framework open-source écrit en PHP5
CakePHP un framework web open-source écrit en PHP
un framework écrit en PHP basé sur Zend Framework orienté CMF
Centurion
version actuel 1.0
un framework écrit en PHP utilisant le modèle MVC version
CodeIgniter
actuelle 2.1.4
framework pour le développement d'applications relatives aux
Cerebral Cortex
oscillations neurales
Dynacase Platform une plateforme PHP pour la construction d'applications métier
Fat-Free Framework un framework super léger orienté vitesse de développement et
(F3) facilité d'utilisation
60
3_Chapitre : Les Frameworks
61
3_Chapitre : Les Frameworks
62
3_Chapitre : Les Frameworks
7.2. CakePHP :
Coté développement rapide d’applications, la version 2.4 de CakePHP tient toutes ses
promesses. Malgré des erreurs liées aux versions précédentes du framework, notamment la
version 1 qui était compatible PHP 4 et PHP 5, Cake parvient à proposer des composants
fiables et une structure de plus en plus modulaire. La version 3 de CakePHP pemet :
Ce tableau comparatif des frameworks PHP aide à choisir le framework le plus adapté
à ses besoins car il n'y a pas réellement de meilleur framework PHP, cela dépends beaucoup
de ce qu'on l'on recherche (fonctionnalités, simplicité d'utilisation, performance, qualité du
code...).
7.4. Fonctionnalités :
Cette partie du tableau comparatif essaie de résumer les caractéristiques
importantes et principales du framework PHP.
Object-relational mapping (ORM) sont des composants qui vous aide à transformer votre
accès bases de données de façon conviviale en un accès orientée objet. Au lieu de manipuler
des lignes de base de données (enregistrements / "records"), vous manipulez des objets et
pouvez la plupart du temps oublier tous les requêtes SQL utilisés en arrière plan.
La Génération de code rend la vie plus facile aux développeurs en créant des fichiers et du
contenu automatiquement par défaut afin de n'avoir pas besoin de le faire.
Edge Side Includes (ESI) permet, avec un cache de passerelle conforme, de mettre en cache
une page entièrement et de mettre à jour que des parties de la page qui ont changé. [13]
63
3_Chapitre : Les Frameworks
Zend
Fonctionnalité Symfony2 CakePHP Yii
Framework
XML (XLIFF,
TBX, TMX, QT,
Gettext
Internationalisatio XML (XLIFF) PHP YAML XmlTm)
gettext database
n I18N / L10n MySQL (via Bundle) gettext PHP
PHP array
array INI file
CSV file
Database
Access
Zend_Db_Tabl
Objects
ORM Doctrine 2 ou Propel e, Doctrine,
(DAO),
Propel
Active
Record (AR)
APC, File,
APC,
Memcache,
Database,
SQLite, Static
eAccelerato,
(generate
HTTP 1.1 Memcache APC, File, File,
static file),
Type de cache Filesystem AS3 APC, Memcach Memcache,
TwoLevels
eAccelerator, XCache e, XCache WinCache,
(combine
XCache,
quick and
ZendPlatfor
slow), XCache,
m
ZendPlatform
Génération de Yii CLI, Gii
CLI Zend Tool, CLI
code (Web based)
GData
(Google),
Technorati,
SOAP / Flickr, Twitter,
Services WebService Yahoo,
s Amazon,
OpenID,
OAuth, and
many more
PHP and
Prado's -
Several
Systèmes de others using
PHP, Twig
templates Extensions
(Razor,
Smarty,
Twig, etc)
built-in Dojo, jQuery,
Web2.0
jQuery, XHR Context
64
3_Chapitre : Les Frameworks
MFC est donc une bibliothèque de classes C++ fournissant un cadre général pour la
programmation sous Windows. MFC encapsule une grande partie des fonctions API
Windows et améliore la logique de la création des interfaces.
L’objet principal du MFC est donc de fournir un cadre général pour développer
facilement des interfaces graphiques. Pour cela, il fournit une architecture de programme
basée sur la notion de document et vue. Pour les MFC, une interface graphique est un
moyen parmi d’autres de visualiser des données (document) ; cette visualisation (vue)
s’effectuant dans une fenêtre cadre elle-même pilotée par un programme principal. [13]
Le cœur du Framework Struts est une couche contrôleur basée sur les technologies
les plus acceptées comme la JSP, le JavaBeans, et le XML. Struts encourage les architectures
basées sur l’approche Model 2, qui est variante du modèle classique MVC. Struts fournit son
propre composant contrôleur et intègre d’autres technologies d’accès aux données comme
65
3_Chapitre : Les Frameworks
les EJB, le JDBC. Pour la vue, Struts fonctionne bien avec les JSP, les Velocity Templates et
d’autres systèmes de présentation.
8.3. Spring :
Spring est un conteneur dit « léger », c’est-à-dire une infrastructure similaire à un
serveur d’application J2EE. Il prend donc en charge la création d’objets et leurs mises en
relation par l’intermédiaire d’un fichier de configuration qui décrit les objets à fabriquer et
les relations de dépendances entre ceux-ci.
Le gros avantage par rapport aux serveurs d’application est qu’avec Spring, vos
classes n’ont pas besoin d’implémenter une quelconque interface pour être prises en charge
par le Framework (au contraire des serveurs d’applications J2EE et des EJBs). C’est en ce sens
que Spring est qualifié de conteneur « léger ». [12]
Le mode transactionnel.
L’appel d’EJB.
La création d’EJB.
La persistance d’objets.
La création d’une interface Web.
L’appel et la création de WebServices.
Pour réaliser tout ceci, Spring s’appuie sur les principes du design pattern IoC et sur la
programmation par aspects (AOP).
Hibernate est un Framework en open source, gérant la persistance des objets (qui
peuvent être défini par les propriétés, les méthodes ou les évènements qu’il est susceptible
de déclencher) dans une base de données relationnelle. La persistance des objets représente
la possibilité d’enregistrement de l’état d’un objet, par exemple dans une base de données,
afin de pouvoir le recréer plus tard. Quant à la base de données relationnelle, elle contient
de nombreuses tables et l’information est organisée par différentes relations entre tables.
Pour information, on appelle SGBDR un logiciel mettant en œuvre une telle base de
données.
66
3_Chapitre : Les Frameworks
Pourquoi ajouter une couche entre l’application et la base de données ? L’objectif est
de réduire le temps de développement de l’application en éliminant une grande partie du
code SQL à écrire pour interagir avec la base de données et en encapsulant le code SQL
résiduel. Les développeurs manipulent les classes dont les données doivent être persistantes
comme des classes Java normales. Seule une initialisation correcte d’Hibernate doit être
effectuée, et quelques règles respectées lors de l’écriture et de la manipulation des classes
persistantes.
Hibernate se place à un autre niveau que le Framework Struts qui lui gère l’interface
homme-machine et se base sur l’architecture MVC. Hibernate est agnostique en terme
d’architecture, il peut donc être utilisé aussi bien dans un développement client lourd que
dans un environnement Web léger de type Tomcat (Apache) ou dans un environnement J2EE
complet (Weblogic, Websphere, JBoss).
Non seulement, Hibernate s’occupe du transfert des classes Java dans les tables de la
base de données (et des types de données Java dans les types de données SQL), mais il
permet de faire des requêtes sur les données et propose des moyens de les récupérer. Il
peut donc réduire de manière significative le temps de développement qui aurait été
dépensé autrement dans une manipulation manuelle des données via SQL et JDBC. Le but
d’Hibernate est de libérer le développeur de 95% des tâches de programmation liées à la
persistance des données communes. Hibernate n’est probablement pas la meilleurs solution
pour les applications centrées sur les données qui n’utilisent que les procédures stockées
pour implémenter la logique métier dans la base de données, il est plus utile dans les
modèles métier orientés objets dont la logique métier est implémentée dans la couche Java
dite intermédiaire. Cependant, Hibernate aide à supprimer ou à encapsuler le code SQL
spécifique à la base de données et aide sur la tâche commune qu’est la transformation des
données d’une représentation tabulaire à une représentation sous forme de graphe
d’objets. [14]
67
3_Chapitre : Les Frameworks
Hibernate est beaucoup plus utilisé que JDO, une norme qui gère la persistance des
objets. Par contre JDO ne se limite pas seulement aux bases de données relationnelles ; il
peut gérer notamment le XML.
Hibernate ne respecte pas les specs JDO. Il ne le fera d’ailleurs jamais, car Hibernate
constitue l’implémentation de référence qui a servi à monter les specs EJB 3.0.
Hibernate est beaucoup moins lourd à développer et à administrer que les EJB entité
dans les versions 2. La norme EJB 3 en phase d’élaboration, reprend les expériences et le
68
3_Chapitre : Les Frameworks
9. Framework utilisé :
Cependant dans notre travail nous avons utilisé le Framework PHP qu’on déjà cité
précédemment qui est Symfony2. Qu'est-ce que Symfony2 ?
Symfony2 est donc un framework PHP. Le choix d'un framework est assez personnel,
et doit être adapté au projet engagé. Pour cela, Symfony2 est l'un des plus flexibles et des
plus puissants.
Un framework populaire
Symfony est très populaire. C'est un des frameworks les plus utilisés dans le monde,
notamment dans les entreprises. Il est utilisé par Dailymotion par exemple ! La première
version de Symfony est sortie en 2005 et est aujourd'hui toujours très utilisée. Cela lui
apporte un retour d'expérience et une notoriété exceptionnels. Aujourd'hui, beaucoup
d'entreprises dans le domaine de l'internet recrutent des développeurs capables de
travailler sous ce framework. Ces développeurs pourront ainsi se greffer aux projets de
l'entreprise très rapidement, car ils en connaîtront déjà les grandes lignes.
La deuxième version, est sortie en août 2011. Elle est encore jeune, son
développement a été fulgurant grâce à une communauté de développeurs dévoués. Bien
que différente dans sa conception, cette deuxième version est plus rapide et plus souple que
la première. Il y a fort à parier que très rapidement beaucoup d'entreprises s'arracheront les
compétences des premiers développeurs Symfony2.
Symfony2, l'un des meilleurs frameworks PHP au monde, est un framework français.
Il est édité par la société SensioLabs, dont le créateur est Fabien Potencier. Mais Symfony2
étant un script open source, il a également été écrit par toute la communauté : beaucoup de
Français, mais aussi des développeurs de tous horizons : Europe, États-Unis, etc. C'est grâce
au talent de Fabien et à la générosité de la communauté que Symfony2 a vu le jour.
Télécharger Symfony2
Obtenir Symfony2
Il existe de nombreux moyens d'obtenir Symfony2. Nous allons voir ici la méthode la
plus simple : télécharger la distribution standard. Pour cela, rien de plus simple, nous nous
sommes rendus sur le site de Symfony2, rubrique Download, et nous avons téléchargé la
version « Symfony Standard (.zip) ».
69
3_Chapitre : Les Frameworks
Une fois l'archive téléchargée, nous avons décompressé les fichiers dans notre
répertoire web habituel, par exemple C:\wamp\www pour Windows.
Configuration de PHP
Une fois Symfony2 installé nous nous sommes Rendus sur la page
http://localhost/Symfony/web/app_dev.php, la figure suivante s’est affichée :
70
3_Chapitre : Les Frameworks
10. Conclusion :
Les applications web s’orientent de plus en plus vers des architectures 3-tiers. Les
Frameworks qui se sont créés autour offrent beaucoup d’outils pour répondre aux besoins
modernes.
Dans cette partie, nous nous sommes intéressés aux Frameworks les plus populaires
pour PHP notamment celle qu’on a utilisée appelée Symfony qui est à l’heure actuelle parmi
les plus puissants, les plus complets, et surtout les plus utilisé dans le monde professionnel.
71
CHAPITRE IV
Analyse et Conception
4_Chapitre : Analyse et Conception
1. Introduction :
Nous présentons dans ce chapitre « analyse et conception » notre travail qui consiste
à développer une application web pour la gestion d’un parc informatique.
Nous commencerons par présenter les fonctionnalités de notre projet. Ensuite nous
consacrerons une large place pour la modélisation de notre application en orienté objet à
l’aide du langage UML (Unified Modeling Languge) qui permet de bien représenter les
aspects statiques et dynamiques de notre projet par la série des diagrammes qu’il offre. Nous
terminons par la conception de la base de données utile à notre application en spécifiant les
tables à utiliser et leurs structures.
UML est riche (il couvre toutes les phases d’un cycle de développement) ;
UML est ouvert (il est indépendant du domaine d’application et des langages
d’implémentations) ;
Sa notation graphique permet d’exprimer visuellement une solution objet ;
L’aspect formel de sa notation limite les ambigüités et les incompréhensions ;
Son aspect visuel facilite la comparaison et l’évaluation des solutions ;
Il facilite la compréhension des représentations abstraites, complexes ;
Son caractère polyvalent et sa souplesse en font un langage universel.
72
4_Chapitre : Analyse et Conception
C’est principalement pour ces raisons que l’OMG (Objet Management Group) groupe
de gestion de l’objet a adopté les spécifications UML comme standard et langue commune à
la modélisation, (U comme unifié mais surtout comme Universelle).
La modélisation UML : Le méta modèle UML fournit une panoplie d'outils permettant
de représenter l'ensemble des éléments du monde objet (classes, objets, ...) ainsi que les liens
qui les relies.
Toutefois, étant donné qu'une seule représentation est trop subjective, UML fournit
un moyen astucieux permettant de représenter diverses projections d'une même
représentation grâce aux vues.
Une vue est constituée d'un ou plusieurs diagrammes. On distingue deux types de
vues:
Diagrammes d'objets ;
Diagrammes de classes ;
Diagrammes de cas d'utilisation ;
Diagrammes de composants ;
Diagrammes de déploiement.
Diagrammes de séquence ;
Diagrammes de collaboration ;
Diagrammes d'états-transitions ;
73
4_Chapitre : Analyse et Conception
Diagrammes d'activités.
3. Démarche à suivre :
Vu que l’UML ne propose de démarche de développement nous allons suivre la
démarche suivante : analyse, conception et réalisation mais avant de commencer le processus
d’analyse et conception nous allons opter à représenter les objectifs et les fonctionnalités
attendues de notre application.
4. Analyse :
4.1. Objectifs de notre application :
Avant de réaliser l’application, il est nécessaire de préciser les objectifs de
l’entreprise.
74
4_Chapitre : Analyse et Conception
Pour notre acteur nous spécifierons les tâches qu’il assure. Le tableau suivant résume ces
tâches :
Acteur Tâches
T01 : S’authentifier.
T02 : Accéder à l’espace administrateur.
T03 : Gérer le matériel et les périphériques.
T04 : Gérer les invités.
Administrateur
T05 : Gérer les réservations.
T06 : Edition des documents.
T7 : Enregistrer les demandes de réservations.
T8 : Changer le profil.
T9 : Se déconnecter.
T10 : S’authentifier.
T11 : Accéder a l’espace personnel.
Invité
T12 : Réserver un matériel ou un périphérique.
T13 : Se déconnecter.
75
4_Chapitre : Analyse et Conception
Les scénarios décrivant chacune des tâches définies auparavant sont représentés dans
le tableau suivant :
76
4_Chapitre : Analyse et Conception
77
4_Chapitre : Analyse et Conception
Les cas d’utilisation (en anglais use cases) constituent une technique qui permet de
déterminer les besoins des utilisateurs et de capturer les exigences fonctionnelles d’un
système. En d’autres termes, ils décrivent le comportement d’un système du point de vue de
ses utilisateurs. Ils décrivent les interactions entre les utilisateurs d’un système lui même. [16]
Les figures qui suivent représentent une description de certains cas d’utilisation de
notre système :
Utilisation : S’authentifier.
Scenarios : .
Acteur : Administrateur, invité.
Résumé : Cette fonctionnalité permet à l’administrateur et aux invités d’accéder à
leurs espaces personnels.
Description :
1. Accéder à l’application.
2. Le système affiche la page d’accueil.
3. L’administrateur saisie le login et le mot de passe puis valide en cliquant sur le
bouton « Connexion».
4. Le système vérifie les données, les compare avec celles de la base de données
puis affiche l’interface correspondante, ou renvoie un message d’erreur si le
login et/ou le mot de passe ne sont pas valides.
78
4_Chapitre : Analyse et Conception
79
4_Chapitre : Analyse et Conception
Un cas d’utilisation (use case) modélise une interaction entre le système informatique à
développer et un utilisateur ou acteur interagissant avec le système.
Plus précisément, un cas d’utilisation décrit une séquence d’actions réalisées par le
système qui produit un résultat observable pour un acteur.
Les acteurs.
Les scénarios.
L’interaction entre l’acteur et le cas d’utilisation.
Les interactions entre les cas d’utilisations peuvent être décrites par trois relations.
1. Relation d’inclusion (includ) : Elle est employée quand deux cas d’utilisation
ont en commun une même fonctionnalité et que l’on souhaite factoriser celle-ci en
créant un sous cas, ou cas intermédiaire, afin de marquer les différences d’utilisation.
2. Relation d’extension « étend » : Schématiquement, nous dirons qu’il a
extension d’un cas d’utilisation quand un cas est globalement similaire à un autre,
tout en effectuant un peu plus de travail (voire un travail plus spécifique).
Cette notion à utiliser avec discernement-permet d’identifier des cas particulier
(comme des procédures à suivre en cas d’incident) dés le début ou lorsque l’attitude
face à un utilisateur spécifique du système doit être spécialisée ou adaptée. Il s’agit
grosso modo d’une variation du cas d’utilisation normale. [17]
80
4_Chapitre : Analyse et Conception
Invité
Extend S’authentifier
Accéder
extend
Changer le profil
extend
Edition des
extend documents
Réserver un matériel
ou un périphérique
Admin
Extend S’authentifier
Accéder
extend
Changer le profil
extend
Edition des
extend documents
Réserver un matériel
ou un périphérique
81
4_Chapitre : Analyse et Conception
5. Conception :
Dans cette étape, une nouvelle vue du modèle fait son apparition. Cette vue exprime
les modules et les exécutables physiques sans aller à la réalisation concrète du système.
Après avoir décrit textuellement les différents cas d’utilisation de notre système,
nous allons les présenter formellement à l’aide des diagrammes de séquences.
82
4_Chapitre : Analyse et Conception
Formulaire Page
Calcul et Page
d’authentif d’accueil
vérification
ication Utilisateur
Utilisateur
Atteint
1.
Affiche
2.
Saisit
3.
Remplir & valider
4. Soumettre
Vérification
Intéragir
Récupérer
atteindre
Affichage
83
4_Chapitre : Analyse et Conception
Page Base de
Page Formulaire Validation
De De données
d’accueil
réservation réservation
Utilisateur
Atteint
1.
Afficher
2.
Sélectionner
3.
Afficher
4 Remplir
Soumettre Vérification
.
5
. Ajouter
6
.7. Résultat
ajout
8
Affiche message Atteint
De confirmation
84
4_Chapitre : Analyse et Conception
Page Base de
Page Formulaire Validation
d’édition des données
d’accueil
documents D’édition
Utilisateur
Atteint
1.
Afficher
2.
Sélectionner
3.
Afficher
4 Remplir
Soumettre Vérification
.
5
. Ajouter
6
.7. Résultat
ajout
8
Affiche message Atteint
De confirmation
85
4_Chapitre : Analyse et Conception
Authentification :
Demande d’accès
Page d’authentification
vide
Saisir Login
Page d’authentification
remplie
Connexion
Entrer
Refuser
86
4_Chapitre : Analyse et Conception
Accès à la page
d’accueil
Attendre le formulaire
d’édition des documents
Remplir et valider le
formulaire
Afficher message
d’erreur Ajout à la BDD
Afficher page de
confirmation
87
4_Chapitre : Analyse et Conception
Accès à la page
d’accueil
Attendre le formulaire de
réservation
Remplir et valider le
formulaire
Afficher message
d’erreur Ajout à la BDD
Afficher page de
confirmation
88
4_Chapitre : Analyse et Conception
Un diagramme de classe n’exprime rien de particulier sur les liens d’un objet donné,
mais décrit de manière abstraite les liens potentiels d’un objet vers d’autres objets .c’est le
diagramme pivot de l’ensemble de la modélisation d’un système, en intégrant dans chaque
classe la partie dédiée aux données et celle consacrée aux traitements.
Dans ce qui suit nous allons présenter quelques diagrammes de classes sur quelques
cas d’utilisations.
Le lien « Link » : C’est association entre une page client et une autre page client
ou serveur.
Construit « build » : L’association « build » identifie quelques pages serveurs
est responsables de la création d’une page client.
Une page client ne peut être construite que par une page serveur.
89
4_Chapitre : Analyse et Conception
Utilisateur
<link> <Submit>
<build>
Page d’accueil Formulaire Vérification Page d’accueil
d’authentification Mot de passe
<redirect>
<redirect>
<build> Construire un
Message
message d’erreur
d’erreur
Documents
<link> <Submit>
<build>
Page d’accueil Formulaire édition Vérification Message de
document donnée saisie confirmation
<redirect>
<redirect>
<build> Construire un
Message
message d’erreur
d’erreur
90
4_Chapitre : Analyse et Conception
Matériel/péri
phérique
<link> <Submit>
<build>
Page d’accueil Formulaire de Vérification Message de
réservation donnée saisie confirmation
<redirect>
<redirect>
<build> Construire un
Message
message d’erreur
d’erreur
91
4_Chapitre : Analyse et Conception
Recherche
Consulter ( )
Retrouver ( )
Retourne
Effectuer ( )
Partager ( )
Consulter ( ) Modifier ( )
Supprimer ( ) Consulter
Consulter
S’enregistrer ( ) Supprimer ( )
Documents
Base de données
Périphérique
Consulter ( )
Consulter ( )
Consulter ( ) Mettre a jour ( )
Mettre a jour ( )
Mettre a jour ( ) Imprimer ()
Après avoir modélisé notre application Web avec les différents diagrammes offerts par le
langage de modélisation UML, une mise en œuvre d’une base de données sur un serveur Web
est nécessaire car elle permet d’étendre les possibilités d’interactions avec l’utilisateur et de
mettre des données à la disposition de ce dernier pour une consultation, une saisie ou une
mise à jour tout en s’assurant des droits qui lui sont accordés. [18]
Table docs :
Nom du Champs Type Taille Description Clé
Id Int 10 Primaire
Entreprise_id Int 5
Reference Varchar 100
Type_id Int 3
Date Varchar 25
Agence_id Int 3
Commentaire Text Primaire
Path Varchar 255
Table docs_type :
Nom du Champs Type Taille Description Clé
93
4_Chapitre : Analyse et Conception
Id Int 3 Primaire
Libelle Varchar 255
Table emplacement :
Nom du Champs Type Taille Description Clé
Id Int 10 Primaire
Agence_id Int 3
Libelle Varchar 255
Table hardware :
Nom du Champs Type Taille Description Clé
Id Int 10 Primaire
Num_serie Varchar 255
Marque_id Int 3
Modele_id Int 3
Type_id Int 3
Nom Varchar 255
Os_id Int 3
Service_pack Int 2
User_id Int 5
Agence_id Int 3
Emplacement_id Int 10
Ip Varchar 25
Reservable Int 1
Suivi_rebus Text Primaire
Commentaire Text Primaire
Creation_date Varchar 255
Table hard_soft :
Nom du champ Type Taille Description Clé
Id Int 10 Primaire
Hardware_id Int 10
Software_id Int 10
Varsion_date_maj Varchar 20
Version_num Varchar 20
User_maj_id Int 4
Table ha_marque :
Nom du Champs Type Taille Description Clé
Id Int 3 Primaire
94
4_Chapitre : Analyse et Conception
Table ha_modele :
Nom du Champs Type Taille Description Clé
Id Int 3 Primaire
Marque_id Int 3
Libelle Varchar 255
Table os :
Nom du Champs Type Taille Description Clé
Id Int 3 Primaire
Libelle Varchar 255
Table ha_type :
Nom du Champs Type Taille Description Clé
Id Int 3 Primaire
Libelle Varchar 255
Conex_http Int 1
Conex_vnc Int 1
Verrou Int 1
Table liaison_docs :
Nom du Champs Type Taille Description Clé
Id Int 10 Primaire
Doc_id Int 10
Hardware_id Int 10
Periph_id Int 10
Software_id Int 10
Table périphérique :
Nom du Champs Type Taille Description Clé
Id Int 10 Primaire
Num_serie Varchar 255
Marque_id Int 3
Modele_id Int 3
Type_id Int 3
Nom Varchar 255
Hard_id Int 10
Agence_id Int 3
95
4_Chapitre : Analyse et Conception
Reservable Int 1
Suivi_rebus Text
Commentaire Text
Creation_date Varchar 255
Ocs_id Int 11
Ocs_type Varchar 255
Table pe_modele :
Nom du Champs Type Taille Description Clé
Id Int 3 Primaire
Marque_id Int 3
Libelle Varchar 255
Table ha_modele :
Nom du Champs Type Taille Description Clé
Id Int 3 Primaire
Libelle Varchar 255
Verrou Int 1
Table reservation :
Nom du Champs Type Taille Description Clé
Id Int 11 Primaire
User_id Int 4
Hard_id Int 10
Periph_id Int 10
Object Varchar 255
Date_deb Varchar 20
Date_fin Varchar 20
Table software :
Nom du Champs Type Taille Description Clé
Id Int 10 Primaire
Marque_id Int 3
Nom Varchar 255
Dern_version_num Varchar 20
Dern_version_date Varchar 20
Agence_id Int 1
96
4_Chapitre : Analyse et Conception
Commentaire Text
Table ha_modele :
Nom du Champs Type Taille Description Clé
Id Int 3 Primaire
Marque_id Int 3
Libelle Varchar 255
Table so_licence :
Nom du Champs Type Taille Description Clé
Id Int 10 Primaire
Hardware_id Int 3
Software_id Int 10
Serial Varchar 255
Table utilisateur :
Nom du Champs Type Taille Description Clé
Id Int 4 Primaire
Nom Varchar 255
Prenom Varchar 255
Mail Varchar 255
Groupe_id Int 2
Agence_id Int 3
Login Varchar 10
Mdp Varchar 255
Login_win Varchar 255
Langue Varchar 2
Locked Int 1
Rights Varchar 255
Table ut_groupe :
Nom du Champs Type Taille Description Clé
Id Int 3 Primaire
Libelle Varchar 255
Rights Varchar 255
Locked Int 1
Table ut_personallinks :
97
4_Chapitre : Analyse et Conception
6. Conclusion :
Durant l’étape d’analyse et de conception les besoins auxquels doit répondre le système
ont été décrits, et analyser à l’aide des différents diagrammes proposés par le langage UML
avec la représentation des centres d’intérêts du profil d’un utilisateur sous forme d’ontologie
afin de l’utiliser dans le module de recherche en citant en détaille la construction de cet
l’ontologie. Par la suite la conception du système, a permis d’exposer l’ensemble des
fonctionnalités qu’on lui a défini, ce qui permettra de répondre à tous ces besoins, le chapitre
suivant sera dédier à la réalisation du système en explicitant les plates formes utilisées ainsi
que les moyens mise en œuvre pour sa conception.
98
CHAPITRE V
Réalisation et
implémentation
5_Chapitre : Réalisation et implémentation
1. Introduction
La réalisation est la partie finale du développement logiciel, elle aborde les détails de
codage en employant un langage de programmation.
2. Architecture technique
L’architecture technique (communément appelée architecture physique) décrit
l’ensemble des composants matériels supportant une application.
et enfin l'accès aux données persistantes : correspondant aux données qui sont
destinées à être conservées sur la durée, voire de manière définitive. [18]
Voici dans ce qui suit, la description des différents nœuds ainsi que leurs composants:
a. Le poste client
Il s’agit des postes de travail des différents utilisateurs et visiteurs du portail. Ce sont
de simple PC devant être équipés d’un navigateur web (FireFox, Opéra, Internet Explorer).
c. Serveur
Ce serveur héberge notre serveur d’application(Apache) ainsi que le composant du
site.
98
5_Chapitre : Réalisation et implémentation
3. L’environnement de développement
Dans cette section nous allons présenter les différents langages et outils utilisés pour le
développement de notre portail web. Ainsi nous commencerons par les aspects du coté
serveur puis coté client et nous finirons par des API que nous avons intégré.
99
5_Chapitre : Réalisation et implémentation
Symbole d’Apache
Il s’agit d’un serveur sécurisé, performant et évolutif donnant accès aux services
HTTP en accord avec les derniers standards de ce protocole. Ainsi ses performances, sa
robustesse, son utilisation aisée, et sa licence en font le serveur web le plus populaire au
monde depuis mars 1997.
Mascotte de PHP
PHP est un langage de scripts. Il est interprété, par conséquent il ne nécessite
pas d'être compilé pour obtenir un objet, un exécutable avant d'être utilisable.
Un de ses grands avantages est l'intégration dans la même page du code HTML
« brut » et du code PHP. Il s'imbrique dans le code HTML en étant délimité
comme tel. Ainsi, les scripts PHP ne nécessitent pas de répertoires spéciaux.
PHP est un module supporté par le serveur web Apache, il est donc développé
pour être facilement utilisable via ce serveur (il fonctionne évidemment avec
d'autres serveurs web comme IPlanet, IIS...).
PHP reconnait l'essentiel des protocoles et formats disponibles sur Internet et
intranet : TCP, HTTP, SMTP, LDAP, IMAP, POP, SSl, Soap, XML, PDF.
100
5_Chapitre : Réalisation et implémentation
Selon le type d'application, sa licence est libre ou propriétaire. Il fait partie des
logiciels de gestion de base de données les plus utilisés au monde, autant par le grand public
(applications web principalement) que par des professionnels, en concurrence avec Oracle et
Microsoft SQL Server. Ses principaux avantages sont sa:
Pour conclure, le couple PHP/MySQL est très utilisé par les sites Web et proposé par
la majorité des hébergeurs. Apache étant le plus souvent utilisé conjointement avec PHP et
MySQL. [19]
Logo MySQL
L'API JSP fait partie de J2EE (Java 2 Entreprise Edition), elle donne aux développeurs les
moyens de développer des applications Web de façon simple et puissante.
JSP permet de séparer la logique programmatique (le code java) de la présentation (les
balises HTML.
Exécution d'une JSP Un conteneur de JSP (JSP container) fournit les services réseaux par
lesquels les requêtes et les réponses sont émises, il décode également les requêtes et
formate les réponses dans le format approprié. Tous les conteneurs doivent supporter le
protocole HTTP. [19]
101
5_Chapitre : Réalisation et implémentation
JavaScript sert à contrôler les données saisies dans des formulaires HTML, ou à interagir avec
le document HTML via l'interface DOM (Document Object Model), fournie par le navigateur
(on parle alors de HTML dynamique ou DHTML).
AJAX (Asynchronous Javascript And XML): « Ajax n’est pas une technologie, il s’agit de
plusieurs technologies se développant chacune de leur côté et combinées pour donner des
résultats aussi nouveaux que puissants. Ajax comporte :
102
5_Chapitre : Réalisation et implémentation
Page d’authentification
103
5_Chapitre : Réalisation et implémentation
La page d’accueil : C’est la première page visualisé par l’utilisateur après son
authentification. Elle offre des liens vers les différentes pages que comporte
l’application (celle de l’administrateur et de l’invité différent).
104
5_Chapitre : Réalisation et implémentation
105
5_Chapitre : Réalisation et implémentation
106
5_Chapitre : Réalisation et implémentation
107
5_Chapitre : Réalisation et implémentation
108
5_Chapitre : Réalisation et implémentation
Page « gestion des logiciels » : L’administrateur accède à cette page en cliquant sue
le lien ‘logiciels’. Elle contient tous les logiciels disponibles, et permet de visualiser les
détails de chaque logiciel, de les éditer, d’ajouter ou de supprimer un logiciel.
109
5_Chapitre : Réalisation et implémentation
110
5_Chapitre : Réalisation et implémentation
5. Conclusion :
Ce chapitre a décrit la dernière étape du développement qui est celle de la réalisation
et la mise en œuvre du projet. Nous avons pu voir les exigences techniques du système
avant de présenter l’environnement et les outils choisis.
Par la suite, nous avons donné un aperçu de l’application réalisée.
111
Conclusion Générale
Conclusion Générale
Parce que l’informatique devient de jour en jour un support incontestable de la quasi-
totalité des domaines en offrant des services susceptibles d’améliorer et de faciliter la vie
quotidienne, le thème de notre mémoire s’est porté sur le développement d’une application
web pour la gestion d’un parc informatique, permettant ainsi aux futurs utilisateurs de
consulter les différents matériaux insérés dans notre base de données et gérer leur matériel
informatique, et tout ça où qu’ils se trouvent sans être obligés de ce déplacer.
Nous estimons avoir réalisé un système répondant à l’objectif que nous nous sommes
fixés au départ, à savoir la mise en place d’un système pour la gestion d’un parc informatique
permettant ainsi aux employés d’organiser leurs parc informatique, en sachant quel sont les
matériaux mis a leur disposition et de réserver sur l’application ce dont ils ont besoin.
Bibliographie
[01] : Richard Grin, Introduction à l'utilisation des réseaux informatiques, Université de
Nice Sofia-antrpolis.
[02]: http://fr.wikipedia.org/wiki.
[03]: http://www.commentcamarche.com.
[04]: http://www.dictionnaire.phpmyvisites.net
[05]: http://www.lexique-immobilier.com.
[06] : http://www.wampserver.com/
[07] : Chantal Morley & Jean Hugues & Bernard Leblanc, UML pour l'analyse d'un système
informatique, DUNOD.
[08] : http://www.developpez.com.
[09] : http//www.easyphp.org
[10]
:http://www.erectourisme.gov/fr/z2/prof/touristique/sectactiv.voyage/agances/definition
[11] : http://www.commentcamarche.net
[12] :
[15] : Robert ORFALI , dan HARKEY et Jerry EDWARDS , client/serveur Guide de service,
Edition originale : Jhon WILLYZ SONS , INC 1999.
[17] : Joseph GABAY et David GABAY , UML 2 Analyse et conception Edition DUNOD 2009.
[19] : Conception et réalisation d’une application Client/serveur sous Oracle. Cas : Gestion
de l’approvisionnement de L’électro-industries. AZAZGA Tizi-Ouzou réalisé par BELKEBIR
NAZIM , ZOUKOULOU KHELIFA , 2008/2009
Les sites :
[15] : www.devellopper.com
[16] : www.postgresql.org
[17] http//www.macromedia.net
En effet, maîtriser la notation graphique d'UML n'est pas une fin en soi. Ce qui est
primordial, c'est d'utiliser les concepts objet à bon escient et d'appliquer la démarche
d'analyse correspondante.
Cette présentation a donc pour objectif, d'une part, de montrer en quoi l'approche
objet et UML constituent un "plus" et d'autre part, d'exposer comment utiliser UML dans la
pratique, c'est-à-dire comment intégrer UML dans un processus de développement et
comment modéliser avec UML
C’est un langage conçu pour l’écriture de plan pour une élaboration des logiciels, il
présente des diagrammes qui permettent de décrire une partie du système ou de décrire le
système selon un point de vue particulier en fournissant un ensemble de règles d’écriture ou
de représentation graphiques normalisée.
III.1 Introduction :
Les difficultés de mise en œuvre d’une approche « réellement objet » ont engendré
bien souvent des déceptions ce qui a longtemps constitué un obstacle important à l’essor
des technologies objet. Beaucoup ont cédé au leurre des langages de programmation
orientés objet et oublié que le code n’est qu’un « moyen », le respect des concepts de
l’approche objet prime sur la manière dont on les implémente. Pour sortir les technologies
objet de cette impasse fatale, l’OMG (Object Management Group) a proposé UML.
a) Métamodèle UML :
-2-
Pour faciliter l’unification et la compréhension des diffèrent concepts objet, ces
concepts ont été tous eux-mêmes modélisés avec UML. Cette définition récursive appelée
métamodélisation, présente le double avantage de permettre de classer les concepts par
niveau d’abstraction, de complexité et de domaine d’application, et aussi de faire la preuve
de la puissance d’expression de la notation, capable entre autres de se représenter elle-
même.
Ainsi donc le métamodèle UML n’étant pas certes à l’origine des concepts objets, il
reste qu’il constitue une étape majeure de la programmation objet car grâce à la
métamodélisation il unifie les différentes approches et normalise les concepts objets et en
donne une définition plus formelle.
b) La notation UML :
La notation UML est une fusion des notations de Booch, OMT, OOSE et d’autres
notations [34]. UML est intuitive, homogène et cohérent. Les concepteurs de la méthode ont
recherché avant tout la simplicité, les symboles embrouillés, redondants ou superflus ont
été éliminés en faveur d’un meilleur rendu visuel.
Une autre caractéristique importante d’UML, est qu’il cadre l’analyse. UML permet
de représenter un système selon différentes vues complémentaire : les diagrammes, chaque
type de diagramme possédé une structure et véhicule une sémantique précise. Combinés,
les différents types de diagrammes UML offrent une vue complète des aspects statiques et
dynamique d’un système.
UML opte pour l’élaboration des modèles, ce qui signifie que UML n’introduit pas
d’éléments de modélisation propres a une activité (analyse, conception..) ; le langage reste
le même à tous les niveaux d’abstractions, ce qui permet de faciliter le passage et les retours
en arrière entre les différents niveaux d’abstractions.
-3-
Ainsi donc UML favorise le prototypage, et c’est là une de ses forces. En effet
modéliser une application n’est pas une activité linéaire, il s’agit d’une tache très complexe
qui nécessite une approche itérative, car il est plus efficace de construire et valider par
étapes ce qui est difficile à cerner et maitriser.
Les diagrammes de collaboration qui sont une représentation spatiale des objets, des
liens et des interactions.
-4-
Les diagrammes de déploiement qui représentent le déploiement des composants sur
les dispositifs matériels.
Les diagrammes de séquences qui sont une représentation temporelle des objets et
de leurs interactions.
IV. Conclusion :
UML est donc bien plus qu’un simple outil qui permet de dessiner des
représentations mentales, il permet de parler un langage commun, normalisé mais
accessible car visuel. Il représente un juste milieu entre langage mathématique et naturel,
pas trop complexe mais suffisamment rigoureux.
-5-