Plateforme de gestion des réservations d'une compagnie de transport.par N. Dieuleveu AHOUISSOU Institut CERCO au Bénin - Licence professionnelle en informatique de gestion 2017 |
I-4. SERVEURS ET SGBD CHOISISPrésentation et justification du serveur de base de données MySQL Depuis quelques années PHP/MySQL est devenu le couple le plus mythique du Web et ceci pour des raisons très claires et diversement motivées. On doit ce succès sans précédent dans le monde informatique aux développeurs d'applications libres qui ont su par leur habileté et leur sens aigu de créativité développer d'un côté PHP et de l'autre MySQL ; mais aussi et surtout aux utilisateurs qui les ontapprécié à leur juste valeur. Ce sont donc ces succès qui restent en tout point motivants qui ont favorisé cet essor et ce mariage efficace entre PHP et MySQL dont nous avons usé précieusement dans la réalisation de ce projet. Mais avant toutes choses, il nous parait important de définir préalablement les termes « Bases de Données » et « Système de gestion des Bases de Données ». Base de données et systèmes de gestion de base de données Les Bases de Données sont actuellement le noyau de tous les systèmes d'information dans les entreprises. Les SGBD, initialement disponibles uniquement sur les (( mainframes », peuvent maintenant être installés sur tous les types d'ordinateurs y compris les ordinateurs personnels (Personal Computer (PC) en anglais). Mais souvent on désigne, par abus de langage sous le nom de « Base de Données » des ensembles de données qui n'en sont pas. Qu'est-ce donc qu'une base de données ? Et que peut-on attendre d'un système de gestion de base de données ? On peut définir une base de données comme étant un ensemble ou une entité de données structurées et organisées, qui peuvent être utilisées par des programmes, par des utilisateurs. Quant au Système de Gestion de Base de Données (S.G.B.D), il peut être appréhendé comme un logiciel qui prend en charge la structuration, le stockage, la mise à jour et la maintenance des données. Autrement dit, les SGBD gèrent les bases de données en cachant aux programmeurs utilisateurs la complexité des implantations physiques en mémoires secondaires pour leur donner une vision logique permettant un accès facile et contrôlé par des droits d'accès. C'est en fait l'interface entre la base de données et les utilisateurs ou leurs programmes. Les objectifs principaux qui guident la mise au point d'une base de données sont : L'indépendance logique et physique des données, La cohérence des données stockées; La non redondance des données, Le partage des données ; La sécurité des informations. Pour finir, doit-on retenir que la conception des systèmes d'information implique indéniablement la conception de bases de données modélisant les réalités d'une entreprise en fonction des besoins utiles. Le serveur Web Apache Qu'est-ce qu'un serveur Web ? Tout d'abord, un serveur en informatique est un dispositif informatique matériel ou logiciel qui offre des services à différents clients. Les services les plus courants sont : Le partage de fichiers ; L'accès aux informations des pages Web ; Le partage d'imprimantes ; Le stockage en base de données ; Le jeu et la mise à disposition de logiciels applicatifs (optique software as a service). Ainsi un serveur web offre l'accès aux informations des pages web, c'est à dire des fichiers au format HTML à partir d'un navigateur (aussi appelé browser) installé sur leur ordinateur distant. Il est donc un « simple » logiciel capable d'interpréter les requêtes HTTP arrivant sur le port associé au protocole HTTP (par défaut le port 80), et de fournir une réponse avec ce même protocole. Le serveur Web Apache Apache est le serveur libre le plus répandu sur Internet. Il s'agit d'une application fonctionnant à la base sur les systèmes d'exploitation de type Unix, mais il a désormais été porté sur de nombreux systèmes, dont Microsoft Windows. Grâce à sa convivialité et sa facilité d'utilisation, il est devenu l'un des piliers du succès du trio Apache/MySQL/PHP de développement Web. Apache (ou bien pour les puristes à l'anglophone « Apatch ») tire son nom de la façon dont il a été mis au point (« Apatch server » qui veut dire « un serveur rafistolé ») car il est le fruit d'une multitude de correctifs logiciels afin d'en faire une solution très sûre. Fonctionnement d'un serveur web Le Web et le TCP/IP Nous allons tout d'abord expliquer le principe de fonctionnement d'un serveur web dans un cadre classique de client et serveur situés sur des machines séparées. C'est par exemple le cas lorsque nous accédons à un serveur web sur l'internet depuis notre machine située à domicile. Le schéma ci-dessous résume ce cas de figure. Figure 5 : Connexion client-serveur à distance Si l'on détaille les échanges entre le client et le serveur du schéma ci-dessus, on peut résumer les échanges par le schéma ci-dessous : Figure 6 : Echange entre client et serveur Web (1) L'application Internet Explorer située sur la machine cliente passe la requête https://www.google.comau protocole TCP/IP qui se chargera de la faire parvenir au serveur. Si nous regardons attentivement le deuxième schéma, nous voyons un numéro précisé à la suite de l'adresse IP (séparé par le caractère ":"). Ce numéro existe aussi bien du côté client que du côté serveur. Il s'appelle numéro de port. Ce numéro de port est tout aussi indispensable que l'adresse IP de la machine. Il sert à aiguiller les informations échangées vers les bonnes applications. Imaginons le cas suivant, nous ouvrons 2 fenêtres d'Internet Explorer et nous explorons simultanément 2 sites Web. Seul le numéro de port permet à TCP/IP d'envoyer les informations provenant d'Internet vers la bonne fenêtre d'Internet Explorer de notre machine. Figure 7 : Echange entre client et serveur Web (2) Dans l'exemple ci-dessus, les numéros de port 1031 et 1047 permettent d'aiguiller le retour des informations. Les applications serveurs de l'Internet comme le web ont des numéros de port réservés. Lorsque nous consultons un serveur web sans préciser de numéro de port, nous aboutissons sur le port n° 80. Si nous devons travailler avec un serveur web installé localement sur notre propre machine, comment les échanges entre nos applications clientes (Internet Explorer, Netscape...) et notre serveur Apache vont être gérée par le protocole TCP/IP ? Le schéma ci-dessous nous donne une idée de ce qui ce passe. Figure 8 : Connexion client/serveur sur un même poste L'adresse 127.0.0.1 s'appelle adresse de boucle locale. Si nous utilisons cette adresse, TCP/IP ne passe plus les informations aux périphériques réseau mais reste au niveau local. C'est ce mode de fonctionnement qui va nous permettre de réaliser nos tests sur notre machine. Dans le schéma ci-dessus, une fenêtre d'Internet Explorer est cliente du serveur web Apache. La connexion est définie par la socket 127.0.01:1031 - 127.0.0.1:80. Le Web et le http Le http (HyperText Transfert Protocol) est le protocole (règles de conversation) qui régit les échanges entre clients web (Internet Explorer, Netscape, Opéra...) et serveurs web (Apache, IIS ...). L'application cliente envoie des requêtes en mode texte au serveur web. Les requêtes sont au format suivant : [Type de requête] [Désignation de la page sur le serveur] [Type de protocole] [Options] Un exemple : GET / HTTP/1.0Signifie que l'on veut télécharger (GET) la page d'accueil du serveur (/) et que cette requête utilise la version 1.0 du protocole http (HTTP/1.0). Le serveur web est alors censé renvoyer le contenu, au format HTML, de la page d'accueil des documents. Le schéma suivant illustre les échanges entre le logiciel client (Internet Explorer) et le logiciel serveur(Apache). Figure 9 : Interaction client/serveur sur un même poste SGBD MySQL Dans le souci de mettre en oeuvre une plateforme conciliant les exigences d'une plateforme dynamique, notre choix a porté sur MySQL un SGBD libre tant sous Linux que Windows. Il dérive directement de SQL (Structured Query Language) qui est un langage de requête vers les bases de données. Il en reprend la syntaxe mais n'en conserve pas toute la puissance puisque de certaines fonctionnalités de SQL n'apparaissent pas dans MySQL (sélections imbriquées, clés étrangères, etc.). Toutefois on note certains manquements : il ne permet pas la gestion des transactions, des procédures stockées, des intégrités de références, et ne supporte non plus les requêtes imbriquées, et la charge (40 à 50 connections concurrentes) comme le fait PostgreSQL un de ses concurrents dans le monde des SGBD. En dépit de ces inconvénients qui sont masqués la plupart des temps par de multiples avantages, MySQL demeure un SGBD indiscutable et très réputé pour sa forte présence dans le domaine des bases de données. MySQL offre comme avantages principaux : Sa compatibilité avec le langage de création de pages web dynamiques PHP ; Sa caractéristique d'être multiutilisateurs et multitraitements ; Il possède un optimisateur de jointures. Par conséquent, il offre une étonnante rapidité de traitement des requêtes. MySQL réserve des espaces considérables (jusqu'à 4 Go et même plus) pour la gestion de données par table. Il dispose de plusieurs outils tels que PhpAdmin et SQL permettant d'administrer une base de données MySQL, Plusieurs sites web lui sont consacrés. De ce fait, il bénéficie d'une large documentation et d'importants groupes de discussion qui favorisent les échanges entre les membres de la communauté qui l'utilise. De plus, il est multilingue et est doté d'un système de droit qui favorise l'authentification qui relève le niveau de sécurité. En fin, MySQL présente une facilité d'installation puisqu'il est livré avec beaucoup de logiciel notamment EasyPHP, WAMP, Apache2Triad etc. |
|