WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Site web de e-commerce avec haute disponibilité et payement en ligne avec express union mobile.

( Télécharger le fichier original )
par Etienne Borel NZOGANG SOH
Institut Universitaire des Technologies Fotso Victor de Bandjoun - Licence Technologique en Ingenierie des réseaux et des Télécommmunications 2013
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

SITE WEB DE E-COMMERCE AVEC HAUTE DISPONIBILITE ET PAIEMENT EN LIGNE AVEC EXPRESS UNION MOBILE.

EPIGRAPHIE

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel I

« Un homme savant a compris un certain nombre de vérités, et un homme
cultivé a compris un certain nombre d'erreurs. »

Alain

Vigiles de l'esprit

SITE WEB DE E-COMMERCE AVEC HAUTE DISPONIBILITE ET PAIEMENT EN LIGNE AVEC EXPRESS UNION MOBILE.

DEDICACE

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel II

SITE WEB DE E-COMMERCE AVEC HAUTE DISPONIBILITE ET PAIEMENT EN LIGNE AVEC EXPRESS UNION MOBILE.

AVANT PROPOS

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel III

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel IV

La réforme universitaire de 1993 fit naître sur le territoire national camerounais de multiples universités parmi lesquels l'université de Dschang, qui comprend en son sein en plus du campus principale, quelques grandes écoles à l'instar de l'Institut Universitaire de Technologie (IUT) FOTSO Victor de BANDJOUN qui est née suite cette réforme universitaire de 1993, suivant l'arrêté présidentielle n° 008 /CAR/PR du 19 janvier 1993. Cet institut donc les bâtiments ont été offert par Mr FOTSO Victor à l'Etat camerounais, est une école de formation professionnelle qui recrute les titulaires du baccalauréat et leur offre deux cycles de formation de 02 ans au terme duquel, on obtient soit un BTS (Brevet de Technicien Supérieur), soit un DUT (Diplôme Universitaire de Technologie).

? Un cycle Brevet des Techniciens Supérieurs (BTS) sanctionnant deux années

d'étude réussi couronné par un examen national ;

? Un cycle du Diplôme Universitaire technologie (DUT) sanctionnant également
deux années d'étude réussies suivi par un diplôme.

L'IUT FOTSO Victor offre également aux titulaires de DUT et de BTS un cycle de

licence technologie et professionnelle. Cette licence sanctionne une année d'étude réussie.

L'Institut offre ainsi dans ces différents cycles de formation une multitude de filières.

Les études à l'IUT-FV sont sanctionnées par les diplômes du Système LMD :

? Brevet de Technicien Supérieur (BTS), options :

- Banque (Bq);

- Comptabilité et Gestion des Entreprises (CGE);

- Secrétariat de Direction (SD) ;

- Action Commerciale (Aco);

- Génie Civil (GC);

- Electronique (EN);

- Electrotechnique (EL).

? Diplôme Universitaire de technologie (DUT), options :

- Génie Informatique (GI);

- Génie Electrique (GE), Parcours : Electronique (EN) et Electrotechnique (EL) ;

- Génie des Télécommunications et Réseaux (GTR);

SITE WEB DE E-COMMERCE AVEC HAUTE DISPONIBILITE ET PAIEMENT EN LIGNE AVEC EXPRESS UNION MOBILE.

- Génie Mécanique et Productique (GMP), Parcours : Maintenance Industrielle et

Productique (MIP) ;

- Génie Civil (GC).

? Licences Professionnelles (LP), options :

- Commerce Marketing (CM), Parcours : Marketing Manager opérationnel

(MMO) ; Banque gestion des relations Clientèle (BGRC) ;

- Gestion Comptable et Financière (GCF);

- Gestion Administrative, Management des Organisations (GAMO).

? Licences de Technologies (LT), options :

- Gestion et Maintenance des Installations Energétique (GMIE) ;

- Informatique et Réseaux (IR), Parcours Concepteur et Développeur Réseaux

Internet (CDRI) ;

- Génie Electrique (GE) ;

- Génie Civil (GC) ;

- Maintenance Industrielle et productique (MIP) ;

- Ingénierie des Réseaux et Télécommunications (IRT) ;

- Génie Géomatique (GG).

? L'IUT-FV offre plusieurs types de formations :

- La formation Initiale ;

- La formation Continue ;

- La formation à distance ;

- L'Académie régionale CISCO.

Au cours de chaque cycle, les étudiants sont appelés à intégrer le milieu professionnel

afin de cultiver leur personnalité, de développer le sens des relations humaines et surtout de mettre en pratique les connaissances acquises durant leur formation. En licence, les étudiants sont appelés à mettre sur pieds un projet de fin d'étude sanctionné par une rédaction de mémoire qu'ils présenteront devant un jury.

SITE WEB DE E-COMMERCE AVEC HAUTE DISPONIBILITE ET PAIEMENT EN LIGNE AVEC EXPRESS UNION MOBILE.

REMERCIEMENTS

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel V

Nous ne saurons entamer la rédaction de ce projet sans dire un grand merci à tous ceux qui de près ou de loin ont contribué au déroulement de notre formation, nous pensons particulièrement :

? Avant tout au bon DIEU pour le souffle, la santé, la force, l'intelligence et le courage pour la réalisation de ce projet.

? A monsieur et madame NZOGANG et à monsieur et madame WANSI qui n'ont cessés de nous prodiguer de bons conseils, nous sommes reconnaissants du soutien moral, financier et matériel.

? Au Directeur de L'IUT FOTSO-VICTOR Pr FOGUE Médard pour nous avoir acceptés dans son établissement comme étudiant.

? Au chef de département de Génie des télécommunications et de réseaux Dr KAPCHE pour nous avoir encadrés tout au long de cette année académique.

? A M. LIENOU Jean-Pierre notre encadreur, pour sa disponibilité, son suivi, ses encouragements, ses conseils.

? A toute l'équipe pédagogique de l'IUT FOTSO-VICTOR de Bandjoun pour l'encadrement et les connaissances reçues.

? A toutes nos familles principalement nos frère et soeurs pour leur soutien moral, financier et matériel.

? A tous nos camarades de classe de l'IUT-FV de Bandjoun pour leur solidarité.

? A toutes nos connaissances bien aimées dont les noms ne figurent pas ici, nous leur disons merci.

Merci pour tous ces efforts déployés afin qu'on devienne des hommes responsables et dynamiques. Que le seigneur vous remette tous ceci au centuple.

SITE WEB DE E-COMMERCE AVEC HAUTE DISPONIBILITE ET PAIEMENT EN LIGNE AVEC EXPRESS UNION MOBILE.

RESUME

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel VI

Ce projet qui s'inscrit dans notre formation en Licence technologique, doit nous permettre à la fois d'approfondir nos connaissances dans des sujets étudiés au cours de notre formation, mais aussi d'acquérir de nouvelles compétences et de découvrir des solutions réseaux que nous pourrions être amenés à mettre en place dans notre future vie professionnelle. En effet, ce projet qui porte sur le thème « site web de e-commerce avec haute disponibilité et payement en ligne avec express union mobile » aborde des notions de programmation web, de bases de données et de réseaux concrètes, telles que le HTML, PHP, SQL et la mise en place de règles de routage ou l'utilisation de script, ce qui correspond à notre domaine de prédilection. Dans ce projet, nous avons créé un site web pour le commerce via internet qui appartient à un super marché et qui permet à ce dernier de gérer son stock, ses clients et ses commandes. En plus de cela, il permet aux clients de passer les commandes et de les payer en ligne tout en intégrant un système de livraison et de paiement adapté au contexte camerounais. Ensuite, nous avons rendu le site hautement disponible. Tout ceci, grâce à l'utilisation de plusieurs outils matériels, logiciels, et à une gestion de la répartition des charges et de la haute disponibilité. Pendant la réalisation de ce projet, nous avons rencontré quelques difficultés notamment pour entrer en possession des différents outils matériels et surtout logiciels que nous avons surmontées grâce à un travail acharné et à un bon encadrement.

SITE WEB DE E-COMMERCE AVEC HAUTE DISPONIBILITE ET PAIEMENT EN LIGNE AVEC EXPRESS UNION MOBILE.

ABSTRACT

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel VII

This project which registered in our training in degree on technology have to permits at the same time to further our knowledge in the subjects studied during our training, and also to acquire new shills and to discover network solutions which we can be call to put in place in our professional future life. Furthermore, this project which is aimed at the creation of «web site of e-commerce with higher availability and an online payment with express union mobile» resolve the notions of web programmation of the bases of data and of concrete networks. Such as the HTML, PHP, SQL and the putting in place of the rules of routing or the usage of script which corresponds to our domain of choiced. In this project, we want to create a web site for the trade via internet which will belong to a super market and which will make it possible this last to manage his stock, his customers and his orders. To allow the customers to place the orders and to pay them on line while integrating a system of delivery and payment adapted to the Cameroonian context. Then, we must make the site highly available. All this, thanks to the use of several material and software tools, and with a management of the burden-sharing and high availability. At the end of this project, we must have a dynamic web site accessible from everywhere in Cameroon and even in the world, pleasant with navigation and the visual one, and offering a rate of suitable access for the users some is their number.

SITE WEB DE E-COMMERCE AVEC HAUTE DISPONIBILITE ET PAIEMENT EN LIGNE AVEC EXPRESS UNION MOBILE.

SOMMAIRE

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel VIII

EPIGRAPHIE i

DEDICACE ii

AVANT PROPOS iii

REMERCIEMENTS v

RESUME vi

ABSTRACT vii

SOMMAIRE viii

LISTE DES ABREVIATIONS x

LISTE DES FIGURES ET DES TABLEAUX xi

INTRODUCTION GENERALE 1

PARTIE I: CREATION DU SITE DE E-COMMERCE 2

PRESENTATION DU SITE 3

I) FONCTIONNALITE ET PROBLEMES 3

II) LES BESOINS ET LES OBJECTIFS 4

CONCEPTION DE L'APPLICATION 5

I) LA METHODE MERISE [1] 5

II) LES DIFFERENTS MODELES DE MERISE 5

IMPLEMENTATION DE L'APPLICATION 12

I) Environnement de developpement 12

II) Plan de navigation 13

III) Les principales interfaces 15

PARTIE II: HAUTE DISPONIBILITE ET REPARTITION DES CHARGES 30

CHAPITRE IV: PRESENTATION GENERALE 31

I) LA HAUTE DISPONIBILITE [3] 31

II) LA REPARTITION DE CHARGE 32

III) LES ARCHITECTURES 33

SOLUTIONS DE LA REPARTITION DES CHARGES INTEGREE A LA HAUTE

DISPONIBILITE 35

I) SOLUTIONS DE LA HAUTE DISPONIBILITE 35

II) SOLUTION POUR REPARTIR LES CHARGES 37

SITE WEB DE E-COMMERCE AVEC HAUTE DISPONIBILITE ET PAIEMENT EN LIGNE AVEC EXPRESS UNION MOBILE.

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel IX

IMPLEMENTATION DE LA HAUTE DISPONIBILITE ET DE LA REPARTITION

DES CHARGES 46

I) ENVIRONNEMENT DE DEVELOPPEMENT 46

II) CONFIGURATIONS 47

TEST ET OUTILS DE TEST 54

I) TEST DE L'ARCHITECTURE 54

II) OUTILS DE TEST 54

CONCLUSION GENERALE 56

BIBLIOGRAPHIE & WEBOGRAPHIE 57

ANNEXES 59

TABLE DES MATIERES 63

SITE WEB DE E-COMMERCE AVEC HAUTE DISPONIBILITE ET PAIEMENT EN LIGNE AVEC EXPRESS UNION MOBILE.

LISTE DES ABREVIATIONS

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel X

ASP: Active Server Page

EDI: Environnement de Développement Intégré

EUM: Express Union Mobile

FTP: File Transfer Protocol

HA: Higher Availability

HTML: HyperText Markup Language

HTTP: HyperText Transfer Protocol

IPIN: Internet Personal Identity Number

MCC: Modèle Conceptuel de Communication

MCD: Modèle Conceptuel de Données

MCT: Modèle Conceptuel de Traitement

MLD: Modèle Logique de Données

MPIN: Mobile Personal Identity Number

NAS: Network Attached Storage

NAT: Network Address Translate

PHP: Personal Home Page

RAID: Redundant Array of Inexpensive Disks

SAN: Storage Area Network

SQL: Structured Query Language

SSL: Secure Socket Layer

TCP: Transfer Control Protocol

UDP: User Datagram Protocol

VRRP3: Virtual Router Redundancy Protocol 3

SITE WEB DE E-COMMERCE AVEC HAUTE DISPONIBILITE ET PAIEMENT EN LIGNE AVEC EXPRESS UNION MOBILE.

LISTE DES FIGURES ET DES

TABLEAUX

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel XI

Figure 1: Modèle conceptuel de communication du site 6

Figure 2 : MCT client-administrateur 7

Tableau 1 : Dictionnaire des données 9

Figure 3 : MCD client-administrateur 10

Figure 4 : Plan de navigation 14

Figure 5 : Présentation de l'Accueil du site 15

Figure 6 : Présentation du Catalogue d'articles 16

Figure 7 : Présentation des articles en promotion du site 16

Figure 8 : Présentation de la fiche d'un article 17

Figure 9 : Présentation du panier virtuel 18

Figure 10 : Présentation du login des clients 18

Figure 11 : Présentation de la page d'inscription d'un nouveau client 19

Figure 12 : Vérification de la redondance de l'email 19

Figure 13 : Présentation des commandes d'un client 20

Figure 14 : Explication du mode de paiement d'EUM 22

Figure 15 : Présentation de la page de confirmation de paiement 23

Figure 16 : Présentation de la page de remerciement 24

Figure 17 : Présentation du login administrateur 24

Figure 18 : Présentation de la page erreur de login 25

Figure 19 : Présentation de l'accueil de l'espace administrateur 25

Figure 20 : Présentation de la page gestion des articles 26

Figure 20 : Présentation de la page gestion des clients 26

Figure 21 : Présentation de la page gestion des commandes 27

SITE WEB DE E-COMMERCE AVEC HAUTE DISPONIBILITE ET PAIEMENT EN LIGNE AVEC EXPRESS UNION MOBILE.

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel XII

Figure 21 : Présentation de la page de modification de l'état d'une commande 28

Figure 22 : Présentation de la page de vérification des payements 29

Figure 23 : Architecture générale avec un répartiteur de charge 34

Figure 24 : Architecture de la haute disponibilité avec 2 serveurs 34

Figure 25 : Architecture de la HA avec un serveur virtuel 35

Figure 26 : Architecture de la HA avec le logiciel Heartbeat 36

Figure 27 : Schéma explication du iptables 36

Figure 28: phase 1 du DNS RR 39

Figure 29 : Phase 2 du DNS RR 39

Figure 30 : Phase 3 du DNS RR 39

Figure 31 : Configuration des cartes réseaux 47

Figure 32 : Illustration de la répartition des charges par le DNS-RR 52

Figure 33 : illustration du basculement 53

SITE WEB DE E-COMMERCE AVEC HAUTE DISPONIBILITE ET PAIEMENT EN LIGNE AVEC EXPRESS UNION MOBILE.

INTRODUCTION GENERALE

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 1

Le commerce électronique ou vente en ligne désigne l'échange de biens et de services entre deux entités sur le réseau informatique notamment internet. Contrairement au reste du monde la majorité des entreprises commerciales de l'Afrique et du Cameroun en particulier n'intègrent pas encore le e-commerce dans leurs systèmes informatiques. Le réseau informatique du Cameroun étant de plus en plus dense et large, grâce au développement de nouvelles techniques de paiement mobile notamment Express Union Mobile, il semble judicieux pour ceux-ci de suivre la voie de la mondialisation. En effet, le e-commerce présente de nombreux avantages car, il permet à l'entreprise une gestion facile des articles, des commandes, des clients et permet aussi de faciliter la vie de ces derniers.

Mais, depuis le lancement d'Internet, la demande en contenu web n'a cessé d'augmenter. Au commencement, les pages web étaient statiques, donc les abonnés consultaient seulement les sites sans interagir avec eux. Puis, le web est devenu dynamique, avec des contenus permettant d'ajouter ses idées, ses travaux, de faire des jeux, de regarder des vidéos, et surtout de faire ses achats. Les sites de forum, de jeux en ligne, de streaming vidéo de réseaux sociaux et même de e-commerce ont donc explosés, entrainant avec eux une demande plus forte en termes de bande passante et de ressources physiques. Les notions de répartition de charges intégrées à la haute disponibilité ont alors fait leurs apparitions, dans le but d'optimiser les ressources disponibles et permettre l'utilisation d'un parc de servers.

Le présent projet qui expose ce travail c'est-à-dire « site web de e-commerce avec haute disponibilité et payement en ligne avec express union mobile. » présente la conception d'un site de commerce électronique (Partie I) et les solutions de la haute disponibilité (Partie II).

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 2

PARTIE I : CREATION DU SITE DE E-COMMERCE

PARTIE I: CREATION DU SITE DE E-COMMERCE

Introduction :

Le e-commerce ne se limite pas au seul réseau Internet. Dans le cadre du commerce inter-entreprises, on utilise depuis de nombreuses années des réseaux de types EDI et on a également des transactions électroniques se réalisant sur les réseaux téléphoniques mobiles : on parle de m-commerce (commerce mobile). La création d'un site dynamique pour le commerce électronique est relativement complexe et nécessite plusieurs étapes : dans un premier temps il est important de présenter le site (CHAP I), dans un second temps de faire une analyse informatique complète de l'application (CHAP II), avant de passer à l'implémentation du site (CHAP III).

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 3

CHAPITRE 1 : PRESENTATION DU SITE

 

PRESENTATION DU SITE

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Nous exposons dans ce chapitre une brève description du fonctionnement du site ainsi que les problèmes que le site devra résoudre. Puis nous listerons quelques besoins important des clients ainsi que les objectifs à atteindre.

I) FONCTIONNALITE ET PROBLEMES

I.1. Fonctionnalités

Grace à une boutique en ligne, on peut choisir et payer des articles comme dans un magasin réel. Pour acheter un produit dans un supermarché, il suffit le plus souvent de choisir les produits désirés puis de les mettre dans un cadi (panier). L'acheteur peut ensuite allé payer en espèce ou par un autre moyen de paiement. Les achats peuvent être livrés au domicile (zone) du client s'il le désire.

Ce site web devra donc fonctionner comme un supermarché. Il appartient à l'entreprise, qui vend et livre des produits divers notamment les produits vivriers, les produits informatiques, les téléphones, à des détaillants ou des particuliers. Ces derniers passeront leurs commandes via le site et l'administrateur qui travaille dans l'entreprise devra enregistrer et entamer la procédure de satisfaction de ces commandes.

I.2. Problèmes posés

Ce site devra résoudre plusieurs problèmes à savoir :

? Publicité à grande échelle : faire la publicité des produits fournit par l'entreprise ainsi que des prix et des promotions auprès de tous les internautes.

? Paiement facile en ligne : mettre en place un nouveau système de paiement en ligne adapté à l'environnement camerounais. (vu le nombre de camerounais qui ont un compte bancaire.)

? Abondance de documents : ce problème est très sérieux dans les entreprises car il peut causer des mélanges d'informations, le ralentissement du service et surtout la perte des documents.

? La mobilité : dans la plupart des entreprises les données sont centralisées sur un ordinateur en particulier et ce dernier n'est pas à l'abri de pannes sérieuses

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 4

CHAPITRE 1 : PRESENTATION DU SITE

ce qui peut paralyser l'entreprise en plus du fait qu'il faille toujours se déplacer au lieu où se trouve cet ordinateur pour faire les mises à jour des données.

> Problème de panne : le système informatique mis en place n'étant pas à l'abri de pannes (matériels ou logiciels) surtout au niveau du serveur, il est donc important de mettre en place un moyen de contournement.

II) LES BESOINS ET LES OBJECTIFS

II.1. Les besoins

Le site devra également satisfaire plusieurs besoins qui se situent au niveau de la clientèle.

> Sécurité : sécuriser les informations personnelles et surtout les paiements en ligne en mettant sur pieds un système de sécurité informatique.

> Paiement facile en ligne : l'intégration dans le site d'un système de payement en ligne mieux adapté au contexte camerounais (Express Union Mobile)

> Interface graphique agréable : en effet l'interface du site doit être très agréable à la visibilité et la navigation doit être facile.

> Livraison à domicile (par zone) : vue la difficulté dans la précision géographique des domiciles au Cameroun, la livraison par zone semble être la mieux adaptée dans notre contexte.

> Bonne accessibilité du site : le site devra toujours être accessible quelques soit le nombre de personnes connectées simultanément.

II.2. Les objectifs

L'objectif final de cette partie consiste donc à développer un site web dynamique d'une boutique polyvalente.

Ce site permettra de réaliser les opérations suivantes :

> Gestion des produits : permettre à l'administrateur d'ajouter, modifier, et supprimer des informations sur des articles de n'importe quel endroit (dans le Cameroun).

> Gestion des clients : permettre à l'administrateur de supprimer des clients malhonnêtes de la base de données et aussi de modifier les informations sur les clients qui en font la demande (lieu de résidence, numéro de tel, zone de

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 5

CHAPITRE 1 : PRESENTATION DU SITE

livraison...) et enfin permettre la gestion de la relation entre les clients et l'entreprise et tout ceci à n'importe quel endroit.

? Gestion des commandes : permettre la vérification de la quantité de chaque commande, le seuil de commande pour chaque produit, le prix de chaque commande...

? Gestion des livraisons : permettre de faire savoir aux clients quand, où, et comment doit avoir lieu une livraison ainsi que les délais de livraison...

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 5

CHAPITRE 2 : CONCEPTION DE L'APPLICATION

 

CONCEPTION DE L'APPLICATION

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Ce chapitre devra répondre à la question : comment faire ? La structure de ce chapitre dépend de la nature de ce projet. Nous avons conçu la phase de conception d'un système d'information qui nécessite des méthodes permettant de mettre en place un modèle. Il existe plusieurs méthodes d'analyse, la plus utilisée étant MERISE.

I. LA METHODE MERISE [1]

Pour modéliser les fonctionnalités, que doit offrir ce système, nous avons choisi la méthode MERISE.

MERISE étant une méthode de conception et de développement d'un système d'information, représentant les interactions entre ses différents composants et d'en proposer une description formelle. La méthode MERISE préconise 3 niveaux d'abstraction :

- Le niveau conceptuel : qui décrit la statique et la dynamique du système d'information en se préoccupant uniquement du point de vue du gestionnaire.

- Le niveau organisationnel : qui décrit la nature des ressources qui sont utilisées pour supporter la description statique et dynamique du système d'information. Ces ressources peuvent être humaines et/ou matérielles et logicielles.

- Le niveau opérationnel : dans lequel on choisit les techniques d'implantation du système d'information (données et traitement).

II. LES DIFFERENTS MODELES DE MERISE

II.1) Le modèle conceptuel de communication

II.1.1) définition

Ce modèle, appelé aussi diagramme conceptuel de flux, permet de représenter les flux d'informations (représentés par des flèches dont l'orientation désigne le sens du flux d'information) entre les acteurs pouvant être externes (représentés par des ellipses en traits interrompus) : c'est-à-dire un élément émetteur ou récepteur de données, situé hors du système d'information étudié (le site de e-commerce), ou internes (représentés par des ellipses).

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 6

CHAPITRE 2 : CONCEPTION DE L'APPLICATION

II.1.2) Le MCC

Le visiteur, qui souhaite éventuellement effectuer des achats aura un panier virtuel où il pourra gérer les articles. Nous avons décidé de ne pas faire de distinction entre un client et un visiteur. Néanmoins, il faut absolument s'enregistrer dans la base de données pour pouvoir faire, afficher et payer une commande.

Quant à l'administrateur, il a pour rôle de gérer intégralement le bon fonctionnement du site. Il est chargé de la gestion des articles, des commandes, des paiements, des clients, des livraisons. Mais doit absolument se loguer.

Acteur interne : Administrateur

Acteur externe : Clients, Server EUM

Flux : 1- passe une commande

2- entre les informations de paiement

3- Livraison

4- fourniture de la facture

5- Envoie du SMS

SITE WEB (entreprise)

Server EUM

Clients

Administrateur

1

5

2

3

4

Figure 1: Modèle conceptuel de communication du site

II.2) Modèle conceptuel de traitement [2]

II.2.1) Définition

Le MCT modélise les activités du domaine, activités conditionnées par les échanges avec l'environnement, sans prise en compte de l'organisation. Ainsi chaque activité (nommée

CHAPITRE 2 : CONCEPTION DE L'APPLICATION

opération) regroupe un ensemble d'activités élémentaires réalisables au sein du domaine, sans autres informations extérieures (on n'a pas besoin de s'arrêter pour attendre des informations extérieures).

II.2.2) Le MCI

Il montre ce que doit faire l'administrateur face à la demande du client. Il répond aux questions comment réagir face aux différents évènements possibles ? Quel(s) résultat(s) attendre face à un processus ? Et pourquoi choisir ce résultat plus tôt qu'un autre ?

Demande d'articles

Traitement de la demande

Qté

demandée en

stock

Qté

demandée

pas en stock

Seuil atteint

Satisfaction de

la demande

Ordre de réapprovisionnement

Proposition

de produit de

substitution

Ou

Prise de commande

Toujours

Ordre de

livraison

Emission de

facture

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 7

 
 

Attente de réponse

 
 
 

Satisfaction de

Fin du

demande

traitement

Figure 2 : MCT client-administrateur

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 8

CHAPITRE 2 : CONCEPTION DE L'APPLICATION

II.3) Dictionnaire des données

Le dictionnaire des données permet de recenser les informations nécessaires. Il précise le libellé des données, le nom de chaque champ, le type, la dimension et une description si possible classés par tables. On obtient ce tableau :

Nom de
données

Longueur et type

Description

Observation

1

IDclients

N6

Identifiant du client

Automatique

2

Nom

A50

Nom du client

Non auto

3

Prenom

A50

Prénom du client

Non auto

4

Quartier

A50

Quartier du client

Non auto

5

Tel

N8

Téléphone du client

Nom auto

6

Password

A20

Mot de passe du client

Non auto

7

Email

A20

Email du client

Nom auto

8

Statut

A20

Statut du client

Non auto

9

Ville

A30

Ville du client

Nom auto

10

Designation

A50

Désignation de l'article

Non auto

11

Fabrication

A50

Fabriquant de l'article

Nom auto

12

Description

text

Description de l'article

Non auto

13

RubriqueID

A4

Identifiant de la rubrique

Automatique

14

Prix

A11

Prix de l'article

Non auto

15

Photo

A50

Photo de l'article

Backgroud1

16

Reference

A30

Reference de l'article

Non auto

17

IDcatalogue

A1

Identifiant du catalogue

Automatique

18

Theme

A50

Thème du catalogue

Non auto

19

IDcommande

A6

Identifiant de la commande

Nom auto

20

Date

Date

Date de la commande

Non auto

21

Etat

A10

Etat de la commande

Non auto

22

Total

N8

Total du prix de la commande

Non auto

23

IDliste

A6

Identifiant de la liste

Automatique

24

Quantite

N4

Quantité de la liste

Non auto

25

IDpayement

A6

Identifiant du payement

Automatique

26

TelAdmin

N8

Téléphone du site web

Automatique

27

TelClient

N8

Numéro de téléphone avec lequel
le client fait le paiement

Non auto

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 9

CHAPITRE 2 : CONCEPTION DE L'APPLICATION

28

NumCompte

A20

Numéro de compte

Automatique

29

Bordereau

A15

Numéro de bordereau fournit par
EUM au client après le paiement

Non auto

30

DatePayement

Date

Date du payement

Non auto

31

IDpromotion

A6

Identifiant de la promotion

Automatique

32

AncienPrix

N11

Ancien prix

Non auto

33

NouveauPrix

N11

Nouveau prix

Nom auto

34

IdSMS

A6

Identifiant du message d'EUM

Automatique

35

BordereauSMS

A15

Numéro de bordereau du SMS
d'EUM

Automatique

36

SommeVersee

N8

Somme versée par le client

Automatique

37

Date

Date

Date de réception du SMS

Nom auto

Tableau 1 : Dictionnaire des données

II.4) Modèle conceptuel des données

II.4.1) Définition

Un modèle conceptuel de données est la formalisation de la structure et de la signification des informations décrivant des objets et des associations perçus dans le domaine étudié, en faisant abstraction aux solutions et aux contraintes techniques et informatiques d'implantation en base de données. Un MCD est exprimé en entité-relation MERISE qui comporte les concepts basiques suivants :

? Entité : modélisation d'un objet d'intérêt (en termes de gestion) pour l'utilisateur.

? Relation : modélisation d'une association entre deux ou plusieurs entités.

? Cardinalités : modélisation des participations mini et maxi d'une entité à une relation.

? Propriétés : modélisation des informations descriptives rattachées à une entité ou une relation.

? Identifiant : modélisation des propriétés contribuant à la détermination unique d'une occurrence d'une entité.

Le MCD permet donc de regrouper et d'ordonner les données nécessaires à la gestion d'un ensemble d'entités dans un système d'information.

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 10

CHAPITRE 2 : CONCEPTION DE L'APPLICATION

II.4.2) Le MCD

Notre MCD comporte 7 entités et 6 relations et se présente comme suit :

Figure 3 : MCD client-administrateur

II.5) Modèle logique des données

Le modèle logique de données (MLD) décrit les structures de données indépendamment de la gestion physique des bases de données. Il est une étape intermédiaire, intellectuellement très satisfaisante vers le modèle physique de données.

Ainsi pour notre application, nous aurons le MLD suivant :

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 11

CHAPITRE 2 : CONCEPTION DE L'APPLICATION

CATALOGUE (IDcatalogue, Theme)

ARTICLE (Reference, #IDcatalogue, Designation, Fabrication, Description, Prix, Photo)

CATALOGUER (IDcatalogue, Reference)

PROMOTION (IDpromotion, #Reference, AncienPrix, NouveauPrix)

LISTE (IDliste, #IDcommande, #Reference, Quantite, PrixArticle)

COMMANDE (IDcommande, #IDclient, date, Etat, Total)

CLIENT (IDclient, #IDsms, Nom, Prenom, Quartier, tel, Password, Email, Statut, Ville)

ACHETER (Reference, IDclient)

PAYEMENT (IDpayement, #IDcommande, #IDclient, NumCompte, SommeVersee,

TelAdmin, TelClient, DatePayement)

SMS (IDsms, BordereauSMS, SommeVersee, Date)

En définitive nous avons vu que la phase conceptuelle est une étape fondamentale pour la réalisation de n'importe quel projet. Elle permet de faciliter le système d'information et réaliser l'implémentation de la base de données et le traitement. Par la suite, nous allons chercher les moyens et les outils possibles pour développer l'application, ce que nous allons présenter dans le chapitre suivant.

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 12

CHAPITRE 3 : IMPLEMENTATION DE L'APPLICATION

 

IMPLEMENTATION DE L'APPLICATION

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Ce chapitre a pour objectif majeur de présenter le produit final. C'est la phase de réalisation de ce site web dynamique destiné au commerce électronique et qui utilise des technologies spécifiques. Pour donc remplir cet objectif majeur, nous allons dans un premier temps présenter l'environnement de développement, puis dans un second temps établir le plan de navigation du site et enfin nous présenterons les différentes interfaces de l'application. Il serait intéressant de regarder en annexe les codes de quelques pages qui nous ont semblées complexes à la réalisation.

I) ENVIRONNEMENT DE DEVELOPPEMENT

I.1. Environnement matériel

Pour développer cette application nous avons utilisé une machine (client/serveur)

configurée comme suit :

Machine

> Mémoire vive (RAM) : 2Go

> Disque dur : 160Go

> Processeur : Intel ® Core TM 2 duo (1.7Ghz X 2)

> Système d'exploitation : Windows 7 édition intégrale 32bits

I.2. Environnement logiciel [1]

Lors du développement de ce site, nous avons utilisé plusieurs logiciels à savoir : > Adobe Dreamweaver 8:

C'est un éditeur de site web de type WYSIWYG (What You See Is What You Get). Il fut l'un des premiers éditeurs HTML de type « tel affichage, tel résultat » il peut être utilisé avec des langages web dynamiques (ASP, PHP) à l'aide d'outils relativement simples d'utilisation. Il nous a ainsi permet de développer les pages que comporte notre application dynamique.

> WampServer 2:

WampServer 2 est une plateforme de développement web de type WAMP, permettant de faire fonctionner localement (sans se connecter à un serveur externe) des scripts PHP. WampServer n'est pas en soi un logiciel, mais un environnement comprenant deux serveurs

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 13

CHAPITRE 3 : IMPLEMENTATION DE L'APPLICATION

(Apache et MySQL), un interpréteur de script (PHP), et ainsi que PHPMYADMIN pour l'administration web des bases MySQL.

? Serveur Apache :

Est un serveur HTTP non seulement libre, mais est aussi parmi les meilleurs et les plus répandus au monde. Il nous permet donc de servir nos pages web aux clients (navigateur). ? Serveur MySQL :

C'est un système de gestion de base de données (SGBD). Il fait partie des logiciels de gestion de base de données les plus utilisés au monde, autant par le grand public que par des professionnels, en concurrence avec Oracle et Microsoft SQL server. Il utilise le langage de programmation SQL et nous permet d'exécuter nos requêtes.

? Win'Design :

C'est un logiciel de modélisation qui permet de modéliser ou tout simplement de dessiner les différents modèles dont nous avons fait la présentation dans le chapitre précédent.

II) PLAN DE NAVIGATION

II.1. définition

Le plan de navigation permet d'avoir une vue d'ensemble du site et des liaisons inter-écrans qui relient chacune des pages. On peut aussi identifier clairement les différents espaces créés et les pages qui leur sont rattachées. Cependant, il est toujours indispensable d'établir un plan de navigation au préalable, afin de bien appréhender la structure du site qu'on désire construire.

II.2. Plan de navigation du site web

Le schéma qui suit présente donc la vue d'ensemble du site et permet de comprendre comment le site fonctionne.

ACCUEIL DU SITE

index.php

CHAPITRE 3 : IMPLEMENTATION DE L'APPLICATION

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 14

Figure 4 : Plan de navigation

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 15

CHAPITRE 3 : IMPLEMENTATION DE L'APPLICATION

III) LES PRINCIPALES INTERFACES

III.1) Les interfaces publiques [1]

Dans les paragraphes qui suivent nous allons présenter les pages web que le client pourrait rencontrer.

III.1.1) index (Accueil)

Contrairement à toutes les autres pages, la page index est située à la racine du site. Sa réalisation est très rapide, car elle ne comporte qu'une seule image cliquable, qui permet d'orienter les utilisateurs directement vers la page catalogue située dans le répertoire public.

Figure 5 : Présentation de l'Accueil du site

III.1.2) Catalogue

La page catalogue permet au client de réaliser son choix. Il peut faire une première sélection selon des thèmes définis (produits vivriers, ordinateurs...). Dans ce cas, la liste des résultats affiche uniquement les articles qui appartiennent au thème retenu. Il est aussi possible pour le client de rechercher un article en saisissant son nom ou une partie de son nom dans un champ de l'écran Catalogue.

Lorsque la liste des résultats apparaît, le client peut afficher la fiche de chaque article en cliquant sur le nom correspondant.

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 16

CHAPITRE 3 : IMPLEMENTATION DE L'APPLICATION

Figure 6 : Présentation du Catalogue d'articles

Cette page présente également les articles en promotion du site :

Figure 7 : Présentation des articles en promotion du site

III.1.3) Fiche

La page de la fiche produit est appelée grâce au lien hypertexte que nous venons de créer dans la page catalogue. Le produit affiché dans la fiche est identifié par un paramètre passé dans l'URL (reference), lors de l'appel de la fiche.

À partir de cette variable reference, nous avons écrire une requête SQL qui récupère toutes les données concernant le produit sélectionné. Ces données seront mises en forme et

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 17

CHAPITRE 3 : IMPLEMENTATION DE L'APPLICATION

affichées dans un tableau, ainsi que la photo de l'article. Enfin, l'ajout du produit dans le panier virtuel se fait juste en cliquant sur l'icône acheter.

Figure 8 : Présentation de la fiche d'un article

III.1.4) Panier

Le panier virtuel permet au client de stocker des articles sélectionnés sans nécessiter son identification. On note en plus la présence tout d'abord d'un bouton ACTUALISER qui permet au client d'actualiser automatiquement la quantité et le prix total chaque fois qu'il ajoute ou supprime un article. Ensuite d'une icône SUPPRIMER qui supprime l'article du panier si le client ne souhaite plus le commander. Et enfin nous avons la présence d'un bouton COMMANDER qui permet d'enregistrer la commande. Nous vous renverrons en annexe consulté les codes de la page panier qui fût l'un des codes les plus complexes.

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 18

CHAPITRE 3 : IMPLEMENTATION DE L'APPLICATION

Figure 9 : Présentation du panier virtuel

III.1.5) Login

Dès que le client clique sur le bouton Commander depuis l'écran du panier, la page commande est appelée. Cette page étant protégée, l'utilisateur est redirigé vers la page login afin qu'il s'identifie. La page login est constituée d'un formulaire d'identification. Il comporte deux champs email et password qui permettront à l'utilisateur de saisir ses paramètres s'il est déjà enregistré dans la base de données. Une icône permet à l'utilisateur d'accéder à la page inscription, pour qu'il s'inscrive dans le cas d'une première commande.

Figure 10 : Présentation du login des clients

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 19

CHAPITRE 3 : IMPLEMENTATION DE L'APPLICATION

III.1.6) Inscription

La page d'inscription permet à un nouvel utilisateur de s'inscrire afin de créer son compte client. Dans cette page le choix du quartier est primordial car ce sera la zone de livraison des futures commandes que le client effectuera. Cependant, comme il n'est pas possible d'avoir deux login identiques dans la table clients, il convient de s'assurer que l'e-mail de l'utilisateur n'est pas déjà présent dans la base. Si c'est le cas, le compte est créé et tous les paramètres du formulaire sont enregistrés dans la base.

Figure 11 : Présentation de la page d'inscription d'un nouveau client

Sinon, un message doit s'afficher à l'écran pour informer l'utilisateur de l'existence d'un compte utilisant un e-mail identique, et pour l'inviter à renouveler son inscription avec une autre adresse électronique.

Figure 12 : Vérification de la redondance de l'email

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 20

CHAPITRE 3 : IMPLEMENTATION DE L'APPLICATION

III.1.7) Commande

Lors de son appel, la page commande affiche, dans un premier temps, un menu qui permet au client de sélectionner la commande à afficher (il peut s'agir de la commande qui vient d'être passée, mais aussi d'une ancienne commande déjà enregistrée). Il est à noter que si le client se connecte sur la page commande sans avoir enregistré de commande au préalable, un message l'en informe et l'invite à se rendre à la page catalogue pour procéder d'abord à une sélection d'articles. Lorsque le client a choisi sa commande dans le menu, sa sélection est soumise à la même page qui montre alors toutes les informations liées à la commande et aux articles s'y rapportant. On note également la présence d'une image concernant Express Union Mobile sur laquelle le client devra cliquer pour effectuer son payement.

Figure 13 : Présentation des commandes d'un client

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 21

CHAPITRE 3 : IMPLEMENTATION DE L'APPLICATION

III.1.8) Payement

? Express Union Mobile

Express Union Mobile est un service offert par Express Union, vous permettant d'effectuer tous vos transferts d'argent où que vous soyez, par téléphone portable.

EUM à des avantages multiples à savoir:

- Vous effectuez vos transferts sans vous déplacer.

- A tout moment et partout, vous pouvez effectuer vos transferts.

- Les risques de perte d'argent sont évités.

- Les frais sont égaux à ceux du guichet classique.

- C'est simple et pratique.

L'ouverture d'un compte EUM est très simple, vous vous rendez dans l'agence EXPRESS UNION la plus proche, muni de la photocopie de votre CNI, de deux demies cartes photos 4x4 et un minimum de 1000 FCFA pour approvisionnement initial. Après avoir fourni ces deux éléments, vous devez remplir un contrat en trois exemplaires. Après signature et cachet du Chef d'Agence, un exemplaire vous est remis, ce qui justifie le lien contractuel entre vous et Express Union. Après cette étape, votre compte est ouvert et activé; un message vous est envoyé vous confirmant de votre MPIN et de votre IPIN.

Le MPIN (Mobile Personal Identity Number) est une succession de 4 chiffres vous permettant de valider tous vos transferts d'argent, effectués via votre téléphone portable.

L'IPIN (Internet Personal Identity Number) est une succession de 8 à 12 caractères vous permettant de valider vos transferts via le portail Web Express Union Mobile. Le MPIN ou IPIN est absolument confidentiel, vous ne devez en aucun cas les communiquer à une tierce personne fut-il un responsable Express Union. Vous ne devez non plus les mentionner nulle part.

Pour approvisionner votre compte vous devez vous rendre dans l'une des agences Express Union et remplir le papillon des opérations Express Union Mobile que vous allez acheminer à la caisse avec le montant d'approvisionnement. Express Union met également à votre disposition des cartes de recharge vous permettant de recharger votre compte directement à partir de votre téléphone portable sans être obligé de vous déplacer.

Pour retirer de l'argent dans votre compte c'est très simple :

Si vous êtes dans l'agence de domiciliation de votre compte Express Union Mobile, vous devez simplement remplir le papillon des opérations Express Union Mobile, en cochant la mention retrait, que vous devez acheminer à la caisse accompagné de votre CNI.

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 22

CHAPITRE 3 : IMPLEMENTATION DE L'APPLICATION

Si vous êtes dans une agence autre que celle de domiciliation de votre compte EUM, vous devez initier un retrait suivant les orientations de l'agent de guichet. Après réception du message, renseigner les informations sur le papillon des opérations EUM que vous enverrez à la caisse avec votre CNI.

Express Union vous offre plusieurs options de transfert d'argent par téléphone portable : vous pouvez envoyer de l'argent à un titulaire de compte ; vous pouvez envoyer de l'argent vers un numéro de téléphone ; vous pouvez envoyer de l'argent vers un non titulaire de téléphone via son nom.

Vous pouvez utiliser plusieurs supports pour faire vos transferts:

- Effectuer des transferts à partir de votre téléphone portable via des SMS. - Utiliser l'application Express Union Mobile dans votre téléphone si celui-ci est compatible.

- Utiliser le Portail Web.

Pour retirer un transfert EUM, c'est très simple, il suffit de vous rendre dans une des agences Express Union de votre ville, et de remplir le papillon des opérations Express Union Mobile, en cochant la case décharge que vous allez soumettre à la caisse accompagné de votre CNI.

Figure 14 : Explication du mode de paiement d'EUM

Cette page explique donc comment le paiement s'effectue avec EUM. Le client peut ensuite cliquer sur « cliquez ici » pour remplir les informations de paiement.

Il est également à noter que si le client n'a pas encore de compte EUM il peut cliquer sur l'onglet d'Express Union qui le redirige immédiatement sur www.expressunion.org pour commencer la création d'un compte.

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 23

CHAPITRE 3 : IMPLEMENTATION DE L'APPLICATION

? Page d'information

Cette page est très importante car elle regroupe toutes les informations clés concernant une commande et le client associé à cette commande. L'administrateur utilisera ces informations pour vérifier le paiement.

Après avoir cliqué sur le lien « Cliquez ici » le client est dirigé vers cette page. Où il doit choisir la commande qu'il souhaite payer puis cliquer sur le bouton Afficher, ensuite il doit remplir le seul champ vide qu'est le Numéro de bordereau et modifier les champs qui ne sont pas corrects (son téléphone, la date de paiement...) du formulaire situé en bas de page. Et il ne reste plus qu'au client de cliquer sur le bouton de confirmation de paiement.

Figure 15 : Présentation de la page de confirmation de paiement

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 24

CHAPITRE 3 : IMPLEMENTATION DE L'APPLICATION

? Remerciement

Cette page est la dernière page que le client voit. Elle met un terme à l'opération et indique dans combien de temps le client recevra sa commande dans la zone de livraison et indique également au client de se déconnecter avant de quitter le site.

Figure 16 : Présentation de la page de remerciement

III.2) Les interfaces administrateur [2]

III.2.1) Login

Hormis son interface et ses couleurs, la page login de l'espace administrateur est semblable à celle de l'espace public. Dès qu'il est identifié, l'administrateur est redirigé vers la page index du répertoire administrateur. Dans le cas où l'identification se révélerait négative, l'administrateur est redirigé vers une page erreur_login.

Figure 17 : Présentation du login administrateur

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 25

CHAPITRE 3 : IMPLEMENTATION DE L'APPLICATION

Figure 18 : Présentation de la page erreur de login

Figure 19 : Présentation de l'accueil de l'espace administrateur

III.2.2) Gestion des articles

La page ArticlesGestion.php sert à gérer les articles du catalogue (ajout, suppression, modification). Elle est constituée d'un tableau listant tous les articles du catalogue avec, en regard de chaque ligne, un lien hypertexte qui permet de supprimer ou modifier l'article. Pour l'addition d'un nouveau produit, un lien spécifique est intégré en bas du tableau afin d'afficher le formulaire d'ajout. Le nombre d'articles pouvant devenir important, une barre de navigation limite l'affichage à deux éléments par page.

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 26

CHAPITRE 3 : IMPLEMENTATION DE L'APPLICATION

Figure 20 : Présentation de la page gestion des articles

III.2.3) Gestion des clients

La page de gestion des clients permet de modifier ou de supprimer un compte client (les ajouts de compte étant réalisés dans l'espace public par le client lui-même). La procédure de réalisation de cette page est semblable à celle de la page ArticlesGestion.php, sauf que nous ne gérons pas les ajouts d'enregistrements dans le cas des clients.

Figure 20 : Présentation de la page gestion des clients

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 27

CHAPITRE 3 : IMPLEMENTATION DE L'APPLICATION

III.2.4) Gestion des commandes

La page de gestion des commandes permet de mettre à jour les informations des différentes commandes de la boutique. La procédure de réalisation de cette page est semblable à celle des pages de gestion des clients et de gestion des articles. Elle présente donc toutes les commandes effectuées avec les noms des clients qui les ont effectuées, les différentes dates de commande et les états (attente ou livrée). Un lien image est également visible pour permettre de consulter les paiements déjà effectués et faire les vérifications.

Figure 21 : Présentation de la page gestion des commandes

III.2.5) Modification des commandes

La page modification des commandes permet à l'administrateur de prendre connaissance de la liste des articles commandés et de l'adresse du client (il peut l'imprimer pour préparer la commande). L'administrateur l'utilise aussi pour modifier l'état de la commande afin d'indiquer si elle a été livrée.

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 28

CHAPITRE 3 : IMPLEMENTATION DE L'APPLICATION

Figure 21 : Présentation de la page de modification de l'état d'une commande

III.2.6) Vérification des commandes

Avant de modifier l'état d'une commande l'administrateur doit vérifier si le payement a vraiment été effectué. Cette tâche de vérification est effectuée automatiquement par un ensemble de scripts. En effet dès la réception du message d'EUM par le téléphone du site, un premier script se charge d'extraire du message le numéro de bordereau, la somme versée, et la date du jour. Ensuite un second script va se charger de faire une première comparaison entre le numéro de bordereau du SMS et celui que le client a fourni ; puis, une seconde comparaison sera faite entre la somme versée du SMS et le montant total de la commande que le client a sélectionnée. Enfin un troisième script va se chargé d'indiquer à l'administrateur si oui ou non il faut effectuer la livraison et ainsi changer l'état de la commande.

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 29

CHAPITRE 3 : IMPLEMENTATION DE L'APPLICATION

Figure 22 : Présentation de la page de vérification des payements

Conclusion :

En définitive il a été question pour nous dans cette première partie de créer un site de e-commerce pour une entreprise commerciale de produits divers au Cameroun. Pour se faire nous avons tout d'abord fait une présentation du site où nous avons présenté les fonctionnalités, les problèmes, les besoins et les objectifs. Ensuite nous sommes passés à la conception de l'application où nous avons fait l'analyse informatique du projet avec la méthode MERISE. Et enfin, nous avons présenté la réalisation du site avec l'environnement de développement, le plan de navigation et les interfaces. Mais il est important pour notre site d'être compétitif et pour cela il doit être toujours accessible surtout lorsque le nombre de personnes connectées simultanément est très important. Donc, il est important de configurer la haute disponibilité sur notre serveur Apache.

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 30

PARTIE II : HAUTE DISPONIBILITE ET REPARTITION DES CHARGES

PARTIE II: HAUTE DISPONIBILITE ET

REPARTITION DES CHARGES

Introduction

L'évolution d'Internet ayant entrainé la création de sites Web particulièrement sollicités, l'utilisation de serveur solitaire est rapidement devenue impossible pour certains hébergeurs, les machines ou les liens réseaux se trouvant surchargé. Il est donc important de mettre en place des solutions permettant aux serveurs de répondre aux innombrables requêtes des clients. Et pour se faire, on doit configurer la haute disponibilité et répartir les charges. Mais il est important de comprendre que la haute disponibilité reste efficace que lorsqu'elle est associée à la répartition des charges. Dans cette partie nous allons tout d'abord faire une présentation générale (CHAP 4) de ce qu'est la haute disponibilité et la répartition des charges. Puis, nous mettrons en évidence les solutions possibles à la haute disponibilité et à la répartition des charges (CHAP 5), ensuite nous implémenterons (CHAP 6) la répartition des charges intégrées à la haute disponibilité et enfin nous ferons les tests (CHAP 7) et parlerons de quelques outils de tests.

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 31

CHAPITRE 4 : PRESENTATION GENERALE

CHAPITRE IV: PRESENTATION GENERALE

Ce chapitre est un chapitre explicatif : car nous y expliquerons les termes importants (haute disponibilité, répartition des charges...), nous parlerons des différents principes, et donnerons plusieurs définitions nécessaires.

I) LA HAUTE DISPONIBILITE [3]

I.1. Définition

La haute disponibilité consiste à offrir un taux d'accès convenable pour les utilisateurs à des services informatiques. C'est aujourd'hui un enjeu important pour les entreprises, particulièrement dans le domaine de l'industrie où l'arrêt d'une chaîne de production peut avoir un effet dévastateur.

I.2. Le principe de redondance

La redondance a pour but d'augmenter les performances et/ou diminuer les risques de pannes. Il faut mettre en place des configurations matérielles et logicielles identiques afin de relayer des serveurs défaillants ou de partager les différentes tâches.

I.3. Sécurisation de données

La possibilité de réimplanter les données rapidement et sans corruption de celles-ci. On peut utiliser les technologies de RAID, le stockage des copies des données sur un NAS ou serveur de sauvegarde.

I.4. Principe théorique

Concrètement, cela se traduit par la mise en place d'une infrastructure matérielle dédiée, généralement en se basant sur de la redondance matérielle. Dans notre cas, la haute disponibilité consiste à la mise en place d'un deuxième serveur ou mieux de deux serveurs qui doivent prendre le relai en cas de chute ou saturation du premier, tout en réimplantant les données rapidement et sans corruption de celles-ci. Il s'agit donc de mettre en place une architecture sécurisée qui va pouvoir gérer les requêtes des clients qui demandent nos pages web à partir du serveur primaire, tout en étant capable de basculer sur le secondaire ou sur le

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 32

CHAPITRE 4 : PRESENTATION GENERALE

tertiaire si le lien Wifi reliant le premier serveur au routeur vient à être saturé, et plus généralement si l'accès au serveur Apache ne peut plus être assuré.

II) LA REPARTITION DE CHARGE

II.1. Principe de répartition de charge

La répartition de charge est de pouvoir distribuer un travail entre plusieurs ressources afin d'obtenir un gain de performances.

II.2. Explication

La répartition de charge consiste à mettre un système entre les clients (demandeurs de ressources) et les ressources. Ce système se chargera de désigner le fournisseur le moins occupé au moment de la demande pour servir le client. Les demandes seront alors réparties sur plusieurs fournisseurs de ressources au lieu d'un seul.

Dans une architecture classique, c'est-à-dire une connexion direct entres les clients et le serveur, lors de fortes activités, ce serveur ne pourra pas servir tout le monde et l'accès aux ressources sera bloqué. C'est ce qu'on appelle le déni de service (DOS : Deny of service). La répartition de charge permet d'optimiser le trafic et de répartir les charges sur un ensemble de serveurs. La capacité totale de traitement est alors plus importante.

Il est donc possible d'augmenter la capacité de connexion et de traitement en augmentant le nombre de machines du pool (groupe) pour augmenter sa capacité.

Dans une architecture classique, l'augmentation de la capacité nécessite un changement matériel sur le serveur (RAM, Processeur...) et donc un arrêt temporaire du service et un coût important suivant les caractéristiques des serveurs.

II.3. Les algorithmes [3]

Il faut savoir qu'il existe différents algorithmes permettant de répartir les charges aux ressources qui sont disponibles. Voici les principaux :

? Round robin : Le round robin ou tourniquet est un algorithme pour sélectionner tous les éléments d'un groupe équitablement en commençant par le premier élément de la liste jusqu'à arriver à la fin et recommencer à nouveau depuis le premier élément.

? Least connection : Le répartiteur renvoie la requête vers le serveur le moins chargé. Si en théorie il semble le plus adapté, en réalité dans le cadre du web dynamique, un serveur

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 33

CHAPITRE 4 : PRESENTATION GENERALE

peut être considéré comme chargé alors que les processus sont en attente d'une requête vers une base de données.

?

First response : Les requêtes clients sont envoyées simultanément à tous les serveurs et le premier qui répond sera chargé de la connexion. (Rarement employé).

Ces algorithmes sont à configurer dans le répartiteur de charge (load balancer) le plus adapté étant le round robin.

II.4) La persistance [3]

On définit la persistance comme le mécanisme responsable de la sauvegarde et la restauration de données afin qu'un programme puisse se terminer sans que ses données ni son état ne soient perdus. Par exemple si un utilisateur démarre une session sur un des serveurs du groupe, il faut que ce serveur soit utilisé pendant tout au long de la durée de la session, pour ne pas perdre la connexion et les données qui y sont raccrochées.

Voici des méthodes de persistance sur les équilibreurs de charge :

Cookies : Le serveur cible émet un « cookie » contenant un identifiant vers le client. L'équilibreur de charge pourra ensuite retrouver le serveur initial lorsque le client lui présentera le « cookie ».

Espace disque commun en réseau : Dans le cas de load-balancing où plusieurs serveurs cohabitent sur le même réseau local, il est avantageux de leur permettre de partager des fichiers. C'est ce que permettent les systèmes de fichiers en réseau tel que NFS (Network File System) pour les systèmes Unix.

Stockage des sessions en base de données : Cette solution permet de garder les données de session dans une base de données. En général, cela est mauvais pour la performance, car la charge sur la base de données augmente. Pour éviter à une base de données de devenir un point de défaillance, il est possible d'utiliser un load-balancer pour la base de données.

III) LES ARCHITECTURES

III.1) Architecture générale

Voici donc un schéma d'une infrastructure dédiée à la répartition des charges avec plusieurs serveurs Web :

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 34

CHAPITRE 4 : PRESENTATION GENERALE

Figure 23 : Architecture générale avec un répartiteur de charge

III.2) Plus de détails

Il est important d'installer une version de linux sur les serveurs. Une liaison est mise en place entre les deux serveurs pour permettre la synchronisation, ils sont aussi connectés à la passerelle, le primaire en Wifi et le secondaire en Ethernet. Le Switch va permettre de connecter plusieurs clients selon les besoins pour les tests.

Figure 24 : Architecture de la haute disponibilité avec 2 serveurs

La configuration de la passerelle est une configuration de base qui permet le routage entre les différents réseaux. La mise en place du NAT sur une interface reliée au réseau privé est nécessaire afin de donner l'accès à Internet aux serveurs pour pouvoir ajouter les différents paquets nécessaires. Le terme d'adresse IP publique représentera l'interface auquel seront connectés les clients (adresses réseau privé dans notre cas). Le script de configuration est disponible en annexe.

CHAPITRE 5 : SOLUTION DE LA REPARTITION DES CHARGES
INTEGREE A LA HAUTE DISPONIBILITE

SOLUTIONS DE LA REPARTITION DES

CHARGES INTEGREE A LA HAUTE

DISPONIBILITE

Nous devons comprendre que la haute disponibilité matérialise la répartition des charges. En d'autres termes qui dit haute disponibilité dit redondance de matériels et qui dit redondance du matériels dit répartition des charges. Dans ce chapitre nous allons présenter les solutions possibles. Tout en précisant ceux qui sont plus efficaces. Et nous ne manquerons pas de faire les schémas des architectures possibles.

I) SOLUTIONS DE LA HAUTE DISPONIBILITE

I.1) VIRTUALISATION D'UN SERVEUR [4]

Une des premières solutions est la mise en place d'un serveur virtuel, qui aurait permis de diffuser le flux de pages web à partir des deux serveurs physique. En cas de chute d'un de ces derniers ou de saturation d'un lien, la diffusion pourrait alors être assurée par le serveur virtuel à partir de la deuxième machine.

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 35

Figure 25 : Architecture de la HA avec un serveur virtuel

Plusieurs solutions libres sont accessible depuis Internet, notamment les logiciel XEN, Linux Server, Virtual Box ou VMware. Cependant cette solution est très complexe à mettre en

CHAPITRE 5 : SOLUTION DE LA REPARTITION DES CHARGES
INTEGREE A LA HAUTE DISPONIBILITE

place et nécessitant la pris en charge de l'adresse virtuelle par la passerelle, elle semble très difficile à rendre fonctionnelle.

I.2) UTILISATION D'HEARTBEAT [4]

Une deuxième solution et qui semble la mieux adaptée est l'utilisation d'Hearbeat, un logiciel utilisé pour la mise en place de haute disponibilité dans un cluster. Nous revoyons dans l'annexe 2 pour plus de détail.

Serveur
primaire

 
 
 
 
 
 
 
 

Adresse IP virtuelle

 
 
 
 

Serveur secondaire

 
 
 

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 36

Figure 26 : Architecture de la HA avec le logiciel Heartbeat

I.3) MISE EN PLACE D'IPTABLES [4]

La solution la plus efficace et évidente à mettre en place assez rapidement est basée sur la redirection de paquets à partir de règles Iptables configurées sur la machine utilisée comme passerelle.

Figure 27 : Schéma explication du iptables

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 37

CHAPITRE 5 : SOLUTION DE LA REPARTITION DES CHARGES
INTEGREE A LA HAUTE DISPONIBILITE

Voici les différentes étapes lors d'une connexion client pour une page web :

? Flèche 1 : Le client se connecte sur l'adresse IP dite « publique » (dans notre cas adresse IP privé utilisé)

? Flèche 2 : Le routeur par défaut va rediriger la requête du client lui arrivant sur l'interface correspondante à celle d'Internet vers le serveur primaire

? Flèche 3 : Si jamais le lien Wifi (la flèche 2) est tombé, le routeur par le biais d'un script va changer la règle NAT afin de rediriger la requête du client vers le serveur secondaire

I.4) DRBD [3] [5]

DRBD (Distributed Replicated Block Device) est un mécanisme de réplication de données localisées sur deux serveurs distincts par voie réseau. Quand une écriture a lieu sur le disque du serveur maître, l'écriture est simultanément réalisée sur le serveur esclave. La synchronisation est faite au niveau de la partition. Le mécanisme DRBD fournit une approche du périphérique partagé, mais ne nécessite aucun matériel spécifique. En effet, il utilise simplement le protocole IP pour le transport des données, ce qui s'avère moins coûteux en matériels que les périphériques de stockage réseau (NAS, SAN).

Avantages :

? Maintenance des serveurs sans coupure de services,

? Indépendant du type de système de fichiers utilisé sur le serveur.

Il existe encore plusieurs autres solutions de haute disponibilité on peut citer entre autres KeepAlived, UltraMonkey, Mon, Mysql Replication, Ldirectord. Mais ces logiciels sont bien souvent dépendant de ceux de la répartition des charges.

II) SOLUTION POUR REPARTIR LES CHARGES

L'équilibrage de charge utilise essentiellement deux techniques qui sont le DNS et le load-balancing. Pour réaliser de l'équilibrage de charge plusieurs solutions sont possibles, le plus simple est l'utilisation d'un DNS. Dans le cas du DNS, c'est ce serveur qui va rediriger le client vers une adresse différente appartenant au même nom de domaine du site désiré. Nous nous attarderons essentiellement sur le DNS comme solution.

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 38

CHAPITRE 5 : SOLUTION DE LA REPARTITION DES CHARGES
INTEGREE A LA HAUTE DISPONIBILITE

II.1) Le DNS [3] [6]

II.1.1) Principe de fonctionnement

La répartition de charge de niveau DNS intervient dans l'association d'une adresse IP à un nom de serveur.

Lorsque le navigateur doit accéder à un serveur dont il connaît le nom, par exemple www.google.fr, il commence par rechercher l'adresse IP correspondant à ce serveur www sur le domaine google.fr. Il adresse une requête à son serveur DNS, qui lui-même, s'il ne dispose pas de l'information, interrogera d'autres serveurs DNS, de manière récursive.

Une fois que le poste client a obtenu l'adresse IP, il la conserve en cache selon différentes règles, généralement de l'ordre d'une demi-heure.

C'est dans cette phase d'association entre un nom de serveur et une adresse IP, c'est à dire un serveur Web, qu'intervient la répartition de charge de niveau DNS, simplement en fournissant différentes adresses IP pour un même nom de serveur.

Il existe trois types de solutions de répartition de niveau DNS : DNS Round-Robin, GeoDNS et Anycast.

La première est la seule qui soit totalement standard, compatible avec n'importe quel DNS et la seule sur laquelle nous nous attarderons.

Les deux suivantes requièrent un serveur DNS spécifique et sont donc sensiblement plus complexes à mettre en oeuvre.

II.1.2) Le DNS Round-Robin [3]

La technique de répartition DNS la plus simple et la plus couramment utilisée est celle du DNS Round-Robin, ou DNS-RR.

Lorsqu'un serveur DNS répond à un client, il peut fournir non pas une adresse IP, mais une liste d'adresses IP, dans un certain ordre. La première adresse est celle qu'il faut utiliser en premier lieu, les autres sont des adresses de secours. Si l'on dispose de trois serveurs S1, S2, S3 capables de traiter les requêtes, alors le serveur DNS pourra répondre {S1, S2, S3}, dans cet ordre. Rappelons qu'ici Si désigne l'adresse IP du serveur i. Le principe du DNS-RR consiste à répondre en indiquant les serveurs en permutation circulaire : {S1, S2, S3}, puis {S2, S3, S1}, puis {S3, S1, S2} et ainsi de suite. Le premier client, s'adressera donc à S1, le second à S2, le troisième à S3. Et si S1 ne répond pas, alors le premier s'adressera à S2 en secours.

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 39

CHAPITRE 5 : SOLUTION DE LA REPARTITION DES CHARGES
INTEGREE A LA HAUTE DISPONIBILITE

Voici un schéma pour chacune des 3 phases qui constituent le processus de répartition dans le cas d'un cluster de 3 serveurs Web. Quand la phase 3 est atteinte, on reprend à la phase 1.

Figure 28: phase 1 du DNS RR

Figure 29 : Phase 2 du DNS RR

Figure 30 : Phase 3 du DNS RR

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 40

CHAPITRE 5 : SOLUTION DE LA REPARTITION DES CHARGES
INTEGREE A LA HAUTE DISPONIBILITE

Cette technique a le mérite d'être très simple à mettre en oeuvre, et ne requiert pas un DNS spécifique, le Round-Robin est supporté par tous les serveurs DNS de l'Internet. On met en oeuvre également le DNS-RR lorsqu'on vise un hébergement low-cost, qui ne permet pas d'insérer de load-balancer.

L'utilisation de DNS ne permet pas de prendre en compte les capacités ou disponibilités des machines, ainsi une autre solution utilisée est celle du load-balancing.

II.2) Le Load-balancing [5]

Le load balancing est une solution de répartition des charges qui a été implémentée dans plusieurs logiciels tels que :

? LVS (Linux Virtual Server) [5]

? Apache - mod_proxy_balancer [5]

? Pen : Il intègre un dispositif simple de haute disponibilité qui, si un serveur est hors service, envoie la requête vers un autre.

? HaProxy : Il permet de répartir les connexions reçues d'un protocole sur plusieurs serveurs. Il permet aussi de détecter l'indisponibilité d'un des serveurs.

On peut également citer entre autres Balance, Nginx, OSCAR, CLIC, POUND.

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 46

CHAPITRE 6 : IMPLEMENTATION DE LA HAUTE DISPONIBILITE ET DE
LA REPARTITION DES CHARGES

IMPLEMENTATION DE LA HAUTE

DISPONIBILITE ET DE LA REPARTITION

DES CHARGES

A présent que nous savons ce qu'est la haute disponibilité, la répartition des charges ainsi que leurs solutions, il est important pour nous de sur pieds une architecture réseau qui va rendre notre site de e-commerce hautement disponible tout en répartissant les charges sur des serveurs. Pour se faire nous allons tout d'abord décrire l'environnement matériels et logiciels et après présenter les différentes configurations.

I) ENVIRONNEMENT DE DEVELOPPEMENT

I.1) Environnement matériels

Pour mettre sur pieds cette architecture nous avons eu à notre disposition : ? 3 ordinateurs portables :

· 2 duals core de 2Ghz de processeurs et 2Go de RAM chacun qui serviront de serveur apache et MySQL,

· Le dernier servira de machine cliente.

? Un desktop pentium 4 de 2.8Ghz de processeur, de 512Mo de RAM et ayant 2 cartes réseaux, qui servira de répartiteur de charges,

? Un Switch afin de pouvoir connecter les serveurs à la passerelle,

? Plusieurs câbles réseaux fastEthernet 100MBps de débit.

I.2) Environnement logiciels

? Les serveurs

- Système d'exploitation : Debian Lenny (2.6.26.13)

- Apache2 (2.2.9) [8]

- DRBD et ses dépendances [6]

- MySQL (5.0.32) [6] [9]

- PHP5 [6]

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 47

CHAPITRE 6 : IMPLEMENTATION DE LA HAUTE DISPONIBILITE ET DE
LA REPARTITION DES CHARGES

? Le répartiteur de charges

- Système d'exploitation : Debian Lenny (2.6.26.13) - Bind9 (server DNS)

- Pound

? Le Client

N'importe quelle configuration.

II) CONFIGURATIONS

Les configurations sont assez longue et fastidieuses mais simple le plus dur est de trouver les packages et leurs dépendances.

II.1) Architecture et configuration des cartes réseaux

Avant tout il est important d'adresser les cartes réseaux avant de passer aux installations. Voici une figure montrant nos configurations réseaux.

Figure 31 : Configuration des cartes réseaux

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 48

CHAPITRE 6 : IMPLEMENTATION DE LA HAUTE DISPONIBILITE ET DE
LA REPARTITION DES CHARGES

II.2) Configuration des logiciels

II.2.1) Au niveau des serveurs

Après avoir terminé l'installation de Debian Lenny allé dans le terminal en mode super utilisateur.

Installation et configuration d'apache {8] {10]

Pour installer apache il suffit de taper :

# apt-get install apache2

Ensuite on passe aux configurations des cartes réseaux et des fichiers on doit adresser

le serveur 1 au 192.168.10.1 et le serveur 2 au 192.168.10.2.

#ifconfig eth0 192.168.10.1 netmask 255.255.255.0 up (pareils pour le serveur 2)

On copie le répertoire du site dans /var/www/ (var/www/SITEecommerce) et on crée

un site virtuel en tapant ces commandes.

# cd /etc/apaches2/sites-availaible

# cp default SITEecommerce (il faut créer le répertoire SITEecommerce avec mkdir)

On configure le fichier du site virtuel en ajoutant:

DocumentRoot «/var/www/SITEecommerce»

ServerName «192.168.10.1»

<Directory «/var/www/SITEecommerce»>

Errorlog /var/log/apache2/SITEecommerce.log

CustomLog /var/log/apache2/SITEecommerce-access.log combined

ServerSignature off

On active le site et on le met comme le site par défaut avec cette commande

# a2ensite SITEecommerce

# cd /etc/apache2/sites-enabled/ # rm -rf 000-default

Installation et configuration de PHP5 {10]

Comme notre site web ne contient que des pages dynamiques il est important d'avoir php de notre côté. Donc on l'installe avec quelques de ses modules qui seront nécessaires. # apt-get install libapache2-mod-php5 php5 php5-common php5-mysql

On configure php5 en retouchant le fichier qui s'appelle php.ini # nano /etc/php5/apache2/php.ini

Ligne 83

Short_open_tag=On (afin d'utiliser un code portable et compatible)

Ligne 323

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 49

CHAPITRE 6 : IMPLEMENTATION DE LA HAUTE DISPONIBILITE ET DE
LA REPARTITION DES CHARGES

Display_errors=Off (pour ne pas afficher les erreurs dans le navigateur)

Ligne 333

Log_errors=On (enregistre les erreurs dans un fichier log que seul l'Admin peut voir)

Ligne 545

Upload_max_filesSize=8M (on augmente la taille des fichiers charger)

Ligne 267

Max_execution_time=60 (on augmente le temps d'exécution qui est fonction de la taille)

Installation de mysql server et de phpmyadmin [10]

# apt-get install mysql-server mysql-client

# apt-get install phpmyadmin

On part dans le navigateur (epiphany) et on tape dans la barre de navigation : 192.168.10.1/phpmyadmin et on y crée la base de données du site (site_ecommerce_db). On retourne dans le terminal et on entre dans le server mysql :

# mysql -u root -p (on tape le mot de passe du root)

Mysql> show databases ;

Mysql> use site_ecommerce_db ; (on utilise la base de données du site par défaut) Mysql> exit;

On redémarre le server apache pour qu'il prenne en compte toutes les configurations.

# /etc/init.d/apache2 restart

A partir de cet instant le site devrait être disponible dans la machine cliente en tapant l'adresse ip du server auquel on veut se connecter dans la barre de navigation.

Installation et configuration de DRBD [10]

# apt-get install drbd8-utils

Compilation du module (Pour cette étape, il faut disposer des outils de compilation et

des sources du noyau (même numéro de version) utilisé sur les serveurs.)

# m-a a-b drbd8

Le fichier généré est à copier et à installer sur chaque serveur. Et on passe à la configuration du drbd.

Initialisation de la partition

Avant tout, il convient de détruire toute référence à un ancien système de fichiers :

# dd count=512 if=/dev/zero of=/dev/cciss/c0d0p8

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 50

CHAPITRE 6 : IMPLEMENTATION DE LA HAUTE DISPONIBILITE ET DE
LA REPARTITION DES CHARGES

Pour créer le volume DRBD sur /node0/ :

drbdadm create-md drbd0

/etc/init.d/drbd start

drbdadm -- --overwrite-data-of-peer primary drbd0

Ensuite sur /node1/ :

drbdadm create-md drbd0 /etc/init.d/drbd start

Sur /node0/ pour créer un système de fichiers, il suffit de lancer la commande :

# mkfs.ext3 -T largefile4 -E stride=32,stripe-width=64 -m0 /dev/drbd0

Modification des fichiers de configuration

# nano /etc/init.d/fstab/

Il n'est pas recommandé de monter directement les partitions DRBD , ainsi la ligne suivante doit être commentée:

/dev/cciss/c0d0p8 /srv ext3 defaults 0 2

# nano /etc/ha.d/haresources

node0\

IPaddr::192.168.1.102/24/eth0:102 \

drbddisk::r0 Filesystem::/dev/drbd0::/srv::ext3

II.2.2) Au niveau du répartiteur de charges

C'est au niveau du répartiteur qu'on installe et configure le DNS Round Robin. La configuration de ce dernier est presque pareil à celui d'un DNS classique sauf qu'au même nom de domaine on attribut non pas une adresse ip mais deux adresses ip (ceux des servers).

Notre nom de domaine sera pfe.com et à la fin, le client devra se connecter au site non plus avec l'une des adresses ip mais tout simplement avec www.pfe.com

Nous avons déjà expliqué ce qu'est le DNS-RR mais un petit rappel s'impose. Son fonctionnement est très simple : lorsque le client se connecte sur le site avec www.pfe.com, notre répartiteur va lui envoyer 2 adresses la 192.168.10.1 et la 192.168.10.2. Mais la connexion s'établira en priorité avec la 192.168.10.1 et s'il n'est pas disponible, la 192.168.10.2 répondra à la requête du client sans que le client ne s'en rende compte. C'est de la haute disponibilité

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 51

CHAPITRE 6 : IMPLEMENTATION DE LA HAUTE DISPONIBILITE ET DE
LA REPARTITION DES CHARGES

Si un deuxième client se connecte il recevra plutôt la 192.168.10.2 et la 192.168.10.1 C'est la répartition des charges. On voit donc que le DNS Round Robin est très bien capable de faire de la répartition de charges et de la haute disponibilité en même temps.

Installation et configuration du DNS-RR [11]

On commence par installer le server DNS

# apt-get install bind9

Ensuite on passe à la configuration :

# nano /etc/hosts.conf

Order hosts,bind Multi on

# nano /etc/hosts

127.0.0.1 Localhost

192.168.10.3 www.pfe

#nano /etc/resolv.conf

Domain Localhost

Search pfe.com

NameServer 192.168.10.3

On copie deux fichiers à modifier:

# cp /etc/bind/db.local /etc/bind/db.pfe

# cp /etc/bind/db.255 /etc/bind/db.10.168.192 Configuration du fichier db.pfe (zone directe)

# nano /etc/bind/db.pfe

@ IN SOA www.pfe.com. root.www.pfe.com. (

@ IN NS www.pfe.com

@ IN A 192.168.10.3

www IN A 192.168.10.1

www IN A 192.168.10.2

pfe IN CNAME www

pfe.com IN CNAME pfe

@ IN AAAA ::1

Configuration du fichier db.10.168.192 (zone inverse)

#nano /etc/bind/db.10.168.192

@ IN SOA www.pfe.com. root.pfe.com (

@ IN NS www.pfe.com

1 IN PTR www

2 IN PTR www

Configuration du fichier named.conf.local

# nano /etc/bind/named.conf.local

// include «/etc/bind/zones.rfc1918» Zone « pfe.com» {

Type master;

File «/etc/bind/db.pfe» ;

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 52

CHAPITRE 6 : IMPLEMENTATION DE LA HAUTE DISPONIBILITE ET DE
LA REPARTITION DES CHARGES

Forwarders {} ;

} ;

Zone «10.168.192.in-addr.arpa» {

Type master;

file «/etc/bind/db.10.168.192»;

forwarders {};

};

Un petit test pour voir si la configuration est bonne:

# ping www.pfe.com

A partir de cet instant la haute disponibilité intégrée à la répartition des charges est fonctionnelle :

Figure 32 : Illustration de la répartition des charges par le DNS-RR

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 53

CHAPITRE 6 : IMPLEMENTATION DE LA HAUTE DISPONIBILITE ET DE
LA REPARTITION DES CHARGES

Figure 33 : illustration du basculement

Dans ce chapitre nous avons donc mis sur pieds la solution que nous avons choisir pour pouvoir remplir le cahier de charge à savoir le DNS Round Robin. Et nous avons vu que pour que la répartition des charges et haute disponibilité soient fonctionnelles, le DNS-RR a besoin de l'aide de plusieurs autres logiciels. Mais en théorie le cahier de charge est rempli mais est-ce le cas en pratique ?

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 54

CHAPITRE 7 : TEST ET OUTILS DE TEST

 

TEST ET OUTILS DE TEST

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Nous avons donc vu les différentes architectures décrites. Cependant, afin de voir concrètement leur efficacité face à une demande importante entrainant des charges élevées sur les serveurs, il est important d'utiliser divers outils pour tester ces infrastructures. Ces outils consistent à envoyer en boucle des requêtes sur les serveurs tout en rendant des statistiques à la fin pour connaître leur réaction face à une forte demande. Dans cette optique, 2 outils sont particulièrement performant il s'agit de : httperf et siège. Mais avant nous allons faire un test physique de notre architecture.

I) TEST DE L'ARCHITECTURE

L'architecture que nous avons réalisée dans le cadre de ce projet est une architecture assez simple et il en est de même pour le test. Pour un test efficace il faut suivre ces étapes.

1- On retire les câbles réseaux des deux servers et on Ping les servers depuis la machine du client pour voir que ça ne passe effectivement pas.

2- On branche le server1 et on se connecte sur notre site web de e-commerce via la machine cliente en tapant www.pfe.com dans le navigateur.

3- On connecte le server2

4- On débranche à nouveau le server1 du réseau

5- Le server2 doit donc prendre le relais et le client doit toujours être connecté sur le site. Mais ce test ne poussent pas les servers à leurs limites il faut donc utiliser des outils

de test.

II) OUTILS DE TEST

Il existe plusieurs outils de test sous Debian 5 tels que tsung et clif qu'on doit installer sur la machine cliente mais les deux restent httperf et siège.

II.1) HTTPERF

Httperf est donc un outil qui permet de tester les performances d'un serveur web. Différentes options sont possibles afin d'exploiter au maximum les serveurs web et en tirer des résultats significatifs. L'objectif de httperf n'est pas à mettre en oeuvre une référence particulière,

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 55

CHAPITRE 7 : TEST ET OUTILS DE TEST

mais à fournir un outil fiable de haute performance. Les trois caractéristiques distinctives de httperf sont sa robustesse, ce qui comprend la capacité de générer et de maintenir la surcharge des serveurs, support pour les protocoles HTTP/1.1 et SSL, et son extensibilité à de nouveaux générateurs de charge de travail et les mesures du rendement.

II.2) Siège

C'est un outil qui permet de faire des tests de montée en charge des applications web en simulant un grand nombre de connexions simultanées sur une ou plusieurs URLs données.

Siege rapporte le nombre totale de hits enregistrés, de bytes transférés, le temps de réponse, les accès concurrents et retourne le statut du serveur.

Siege supporte les protocoles HTTP/1.0 et 1.1, les méthodes GET et POST, les cookies, les transactions log, et l'authentification basique.

Conclusion :

Au final, cette partie a donc permis à comprendre ce qu'est la haute disponibilité et la répartition des charges. On a pu, toujours dans cette partie rendre le site web que nous avons créés dans la partie précédente hautement disponibilité. En étudiant, plusieurs solutions. Nous avons choisi la solution qui nous semblait la plus efficace dans le temps qui nous était imparti pour ce projet.

CONCLUSION GENERALE

CONCLUSION GENERALE

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 56

En conclusion il était question pour nous de créer un site web de commerce électronique pour la vente de produit divers et intégrant un paiement en ligne avec express union mobile, mais surtout à la fin de rendre ce site toujours disponible quel que soit le nombre de personnes connectées simultanément. En d'autres termes il s'agissait pour nous de faire un site web de e-commerce avec haute disponibilité et payement en ligne avec express union mobile.

Pour se faire, nous nous sommes tout d'abord attaqués à la conception du site. Donc, nous avons établi le cahier de charge pour ressortir les besoins, les problèmes et les objectifs. Puis nous avons fait une analyse informatique afin de ressortir la base de données du site. Et enfin nous sommes passés à l'implémentation. Après la création de notre site nous avons changé d'environnement, nous sommes passés sous un environnement Linux pour répartir les charges du site entre plusieurs servers et le rendre hautement disponible. Et dans cette optique nous avons défini les notions de répartition de charges et de haute disponibilité. Après, nous avons présenté les différentes solutions qui existent. Enfin nous avons fait toutes les configurations nécessaires au bon fonctionnement de ces notions avant de passer aux tests.

Ce projet est un projet très important pour un pays qui veut se développer dans un monde où l'accès aux informations est quasi instantané et où tout ce fait de chez soi. Malgré de nombreuses difficultés rencontrées nous pouvons dire que ce projet est un bon projet d'avenir non seulement pour l'étudiant car il regroupe des notions sur la programmation web et le réseau, mais aussi pour les entreprises qui l'implémenteront.

BIBLIOGRAPHIE ET WEBOGRAPHIE

BIBLIOGRAPHIE &

WEBOGRAPHIE

[1] Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 57

MySQL, « http://dev.mysql.com/doc/refman/5.0/fr/replication.html,»

consulté le 10/01/2014, pour MERISE et les requêtes en langage SQL.

[2] Création du site web, « http://php.developpez.com/faq/,» consulté le 10/01/2014, pour les codes php nécessaires à la création du site.

[3] J.-M. Defrance, «PHP/MySQL avec Dreamweaver 8Eyrolles, « http://www.editions-eyrolles.comconsulté le 03/02/2014, parution 2006, pp. 506-561.

[4] J.-M. Defrance, «PHP/MySQL avec Dreamweaver 8,» Eyrolles, « http://www.editions-eyrolles.comconsulté le 03/02/2014, parution 2006, pp. 561-605.

[5] Majid LAYOUNI, Raphaël MAZOT, Alexandre TRAN «Rapport de projet: Répartition des charges sur serveurs web virtualisés,» « http://www.ceri.fr/cours/,» consulté le 02/02/2014, rédaction 2010/2011, pp. 8-9.

[6] Nicolas FINESTRA, Julien COSMAO, Paul LE LANN «Rapport de stage: Répartition automatique de surcharge réseau« http://www.iupgmi-avignon.fr/projets/,» consulté le 02/02/2014, rédaction 2009/2010, pp. 10-43.

[7] DRBD, «http: // 2005.jres.org/paper/91.pdf,» consulté le 12/02/2014, pour l'installation et la configuration du DRBD.

[8] Packages, « https://packages.debian.org/,» consulté le 05/02/2014, pour télécharger les packages nécessaires pour Debian 5.

[9]

Gatien Gaspard, Rémi Jachniewicz, Julien Lacava, Vincent Meslard «Rapport de stage: Équilibrage de Charge et Haute Disponibilité,» « http://www.iupgmi-avignon.fr/projets/,» consulté le 02/02/2014, parution 22 avril 2009, pp. 05-47.

BIBLIOGRAPHIE ET WEBOGRAPHIE

[10]

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 58

Apache, « http://httpd.apache.org/,» consulté le 05/02/2014, pour l'installation et la configuration d'apache sous Debian 5.

[11] Configuration,

« http://www.lafermeduweb.com/tutoriel/configuration/php5&Apache&m

ysql&phpmyadmin,» consulté le 06/02/2014, pour les configurations d'apache, de php, de mysql et de phpmyadmin.

[12] LYS, « http://www.linuxvirtualserver.org/,» consulté le 20/02/2014, pour la documentation sur LVS et son téléchargement.

[13] SQL, « http://phpmyadmin.sourceforge.net/,» consulté le 06/02/2014, pour
configurer phpmyadmin.

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 59

ANNEXES

ANNEXES

ANNEXE 1 : TERMINOLOGIES

A NAS : Dispositif de stockage lié à un réseau. Serveur dont la fonction principale est de stocker des données pour d'autres machines.

A RAID: Système de stockage de grande capacité et d'une grande sûreté, utilisant le disk mirroring. Il existe différent type de RAID : 0, 1, 3, 4, 5, 6, S, A et 10, chacun ayant ses avantages et ses inconvénients.

A Cluster : Architecture de groupes d'ordinateurs, utilisée pour former de gros serveurs. Chaque machine est un noeud du cluster, l'ensemble est considéré comme une seule et unique machine.

A front-end : Ordinateur, programme ou ensemble de page-écran servant d'interface entre l'utilisateur et un système plus gros. La définition est très vague, car le sens du terme a un peu glissé au fil du temps. On l'utilise maintenant beaucoup pour désigner les interfaces graphiques associées à des programmes en ligne de commande.

ANNEXE 2 : HEARTBEAT

Heartbeat est un système de gestion de la haute disponibilité sous Linux distribué sous licence GPL. Il met en place un système classique de clustering en haute disponibilité basé sur des "battements de coeur". Il exécute des scripts d'initialisations lorsque une machine tombe (plus d'entente du battement de coeur) ou est à nouveau disponible (battement de coeur retrouvé).

Un trafic UDP est mis en place entre les deux serveurs (Heartbeat est limité à deux machines), en cas de non réponse de l'un d'entre eux, ce dernier va être considéré comme mort est les ressources sont basculées sur l'autre serveur grâce à une IP virtuelle partagée entre les deux machines.

Si on souhaite contrôler certains services en particulier, il faut installer Mon sur les deux serveurs. En cas de défaillance de l'un des services surveillé, Mon va envoyer un argument stop à Heartbeat, ce qui va provoquer un basculement sur l'autre serveur.

ANNEXE 3 : CODE DU PANIER VIRTUEL

<?php

session_start();

// DEBUT d'initialisation des variables
if (!isset($_SESSION['total'])) $_SESSION['total']=0;

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 60

ANNEXES

if(!isset($_GET['ajoutPanier'])) $ajoutPanier="";//initialisation de ajoutPanier si non déclaré

else $ajoutPanier=$_GET['ajoutPanier'];

if(!isset($_GET['modifPanier'])) $modifPanier="";//init de modifPanier si non déclaré

else $modifPanier=$_GET['modifPanier'];

if(!isset($_GET['suppPanier'])) $suppPanier="";//init de suppPanier si non déclaré

else $suppPanier=$_GET['suppPanier'];

if(!isset($_GET['enregistreCommande'])) $enregistreCommande="";//initialisation de

//enregistreCommande si non déclaré

else $enregistreCommande=$_GET['enregistreCommande'];

if(!isset($_GET['article'])) $article="";//initialisation de article si non déclaré

else $article=$_GET['article'];

if (isset($_SESSION['liste'])) $liste=$_SESSION['liste'];//récupération de la liste de la session

// FIN d'initialisation des variables

?>

<? php require_onceÇ../Connections/ConnexionEcommerce.php');?>

<? php

mysql_select_db($database_ConnexionEcommerce, $ConnexionEcommerce);

// AJOUT PANIER
if ($ajoutPanier=="AJOUTER"){ $reference=$_GET['reference']; $nb=1; //par défaut la quantité est = 1 $prix=$_GET['prix'];

$liste[]=array($reference,$nb,$prix,$prix);

$_SESSION['liste']=$liste;

//ajoute un article à la liste}

// SUPP PANIER
if ($suppPanier=="SUPPRIMER"){

$article=$_GET['article'];

for ($i=0;$i<count($liste);$i++){

if($article==$i)

array_splice($liste,$i,1);//suppression de l'article}

$_SESSION['liste']=$liste;//mAj de la liste}

// MODIF PANIER

if ($modifPanier=="ACTUALISER"){

for ($i=0;$i<count($liste);$i++){

$nbi='nb'.$i;

$liste[$i][1]=$_GET["$nbi"];//recup du nbr d'article dans la liste

$liste[$i][3]=$liste[$i][1]*$liste[$i][2];//prixArticle=nbre*prixUnitaire}

$_SESSION['liste']=$liste;//mAj de la liste}

// COMMANDER

if ($enregistreCommande=="COMMANDER"){

if(!isset($_GET['action']))

$_SESSION['action']="ENREGISTRER";//mémorise l'action

header("Location: commande.php");}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns=" http://www.w3.org/1999/xhtml">

<head>

<title>Panier</title>

</head>

<body>

<table width="909" height="297" border="0" align="center"

background="../images/backgroud1.jpg">

<tr align="center" valign="top">

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 61

ANNEXES

<th width="172" height="64" scope="col"><a href="catalogue.php" class="style1"><img

src="../images/bouton-catalogue1.jpg" width="171" height="62" border="0" usemap="#Map6"

/></a></th>

<th width="172" height="64" scope="col"><a href="panier.php" class="style1"><img

src="../images/bouton-panier.png" width="171" height="62" border="0" usemap="#Map7"

/></a></th>

<th width="172" scope="col"><a href="commande.php" class="style1"><img

src="../images/bouton-commande.png" width="171" height="62" border="0" usemap="#Map8"

/></a></th>

<th width="172" scope="col"><span class="style1"><img src="../images/bouton-

administrateur.png" width="171" height="62" border="0" usemap="#Map9" /></span></th>

</tr>

</table>

<table width="913" height="152" border="1" align="center" background="../images/backgroud.jpg">

<tr>

<td height="101" colspan="4" align="center" valign="top"><p class="Style12"><span

class="Style13">PANIER</span>

<?php if(isset($liste)) { //affiche le tableau s'il y a au moins un article ?>

</p>

<p class="Style14">vous pouvez &agrave; tout moment acc&eacute;der &agrave; votre panier et

ainsi consulter les articles qui s'y trouvent d&eacute;ja. Et vous pouvez &eacute;galement ajouter

autant d'articles que vous le voulez dans ce m&ecirc;me panier avant de commander. </p>

<form id="form1" name="form1" action="panier.php" method="get">

<table width="600" border="1">

<tr>

<th width="196" scope="col"><span class="Style5">Noms</span></th>

<th width="84" scope="col"><span class="Style5">Quantit&eacute;s</span></th>

<th width="205" scope="col"><span class="Style5">Prix (Fcfa) </span></th>

<th width="87" scope="col"><span class="Style5">Supprimer</span></th>

</tr>

<?php

$total=0; //initialisation du total de la commande à 0

for ($i=0;$i<count($liste);$i++)

{//debut du bloc for

$query_rsPanier="select * from article where reference='".$liste[$i][0]."'";

$rsPanier=mysql_query($query_rsPanier, $ConnexionEcommerce) or die(mysql_error());

$row_rsPanier=mysql_fetch_assoc($rsPanier);

/*définition et exécution de la requête SQL afin de récupérer les informations de l'article stockées

dans la base (nom, quantité...)*/

?>

<tr>

<td align="center"><span class="Style8"><?php echo $row_rsPanier['designation'] ?></span></td>

<td align="center">

<select name="nb<?php echo $i ?>">

<option value="1" <?php if($liste[$i][1]==1) echo "SELECTED"; ?>>1</option> <option value="2" <?php if($liste[$i][1]==2) echo "SELECTED"; ?>>2</option> <option value="3" <?php if($liste[$i][1]==3) echo "SELECTED"; ?>>3</option> </select>

</td>

<td align="center"><span class="Style8"><?php echo $row_rsPanier['prix'] ?></span></td> <td align="center">

<a href="panier.php?article=<?php echo $i ?>&suppPanier=SUPPRIMER">

<img src="../images/supp.png" width="30" height="25" border="0" /> </a></td>

</tr>

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 62

ANNEXES

<?php

$total+=$row_rsPanier['prix'] * $liste[$i][1];

}//fin du bloc for

$_SESSION['total']=$total;//mémorise le total dans la session

?>

<tr>

<td height="32" colspan="2">&nbsp;</td>

<td colspan="2"><span class="Style11">Total : <?php echo $total ?> Fcfa</span></td>

</tr>

</table>

<table width="407" border="0">

<tr align="center" valign="middle">

<th width="174" scope="col"><label>

<input name="modifPanier" type="submit" class="Style5" value="ACTUALISER" />

</th>

<th width="217" scope="col"><input name="enregistreCommande" type="submit"

class="Style5" value="COMMANDER" />

</th>

</tr>

</table>

</form> </td>

<?php }//fin du test isset($liste) ?>

</tr>

</table>

</body>

</html>

TABLES DES MATIERES

TABLE DES MATIERES

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 63

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 64

INTRODUCTION

 

GENERALE

1

PARTIE I:

 

CREATION DU SITE DE E-COMMERCE

2

 
 

PRESENTATION DU SITE

3

 

I)

FONCTIONNALITE ET PROBLEMES

3

 
 

I.1) Fonctionnalités

3

 
 

I.2) Problèmes posés

3

 

II)

LES BESOINS ET LES OBJECTIFS

4

 
 

II.1) Les besoins

4

 
 

II.2) Les objectifs

4

CONCEPTION DE L'APPLICATION

5

I) LA METHODE MERISE [1]

5

II) LES DIFFERENTS MODELES DE MERISE

5

II.1) Le modèle conceptuel de communication

5

II.1.1) définition

5

II.1.2) Le MCC

6

II.2) Modèle conceptuel de traitement [2]

6

II.2.1) Définition

6

II.2.2) Le MCT

7

II.3) Dictionnaire des données

8

II.4) Modèle conceptuel des données

9

II.4.1) Définition

9

II.4.2) Le MCD

10

II.5) Modèle logique des données

10

IMPLEMENTATION DE L'APPLICATION

12

I) Environnement de developpement

12

I.1) Environnement matériel

12

I.2) Environnement logiciel [1]

12

II) Plan de navigation

13

II.1) définition

13

II.2) Plan de navigation du site web

13

III) Les principales interfaces

15

III.1) Les interfaces publiques [1]

15

III.1.1) index (Accueil)

15

III.1.2) Catalogue

15

III.1.3) Fiche

16

III.1.4) Panier

17

TABLES DES MATIERES

III.1.5) Login 18

III.1.6) Inscription 19

III.1.7) Commande 20

III.1.8) Payement 21

III.2) Les interfaces administrateur [2] 24

III.2.1) Login 24

III.2.2) Gestion des articles 25

III.2.3) Gestion des clients 26

III.2.4) Gestion des commandes 27

III.2.5) Modification des commandes 27

III.2.6) Vérification des commandes 28

PARTIE II: HAUTE DISPONIBILITE ET REPARTITION DES CHARGES 30

CHAPITRE IV: PRESENTATION GENERALE 31

I) LA HAUTE DISPONIBILITE [3] 31

I.1) Définition 31

I.2) Le principe de redondance 31

I.3) Sécurisation de données 31

I.4) Principe théorique 31

II) LA REPARTITION DE CHARGE 32

II.1) Principe de répartition de charge 32

II.2) Explication 32

II.3) Les algorithmes [3] 32

II.4) La persistance [3] 33

III) LES ARCHITECTURES 33

III.1) Architecture générale 33

III.2) Plus de détails 34

SOLUTIONS DE LA REPARTITION DES CHARGES INTEGREE A LA HAUTE

DISPONIBILITE 35

I) SOLUTIONS DE LA HAUTE DISPONIBILITE 35

I.1) VIRTUALISATION D'UN SERVEUR [4] 35

I.2) UTILISATION D'HEARTBEAT [4] 36

I.3) MISE EN PLACE D'IPTABLES [4] 36

I.4) DRBD [3] [5] 37

II) SOLUTION POUR REPARTIR LES CHARGES 37

II.1) Le DNS [3] [6] 38

II.1.1) Principe de fonctionnement 38

II.1.2) Le DNS Round-Robin [3] 38

II.2) Le Load-balancing [5] 40

IMPLEMENTATION DE LA HAUTE DISPONIBILITE ET DE LA REPARTITION

DES CHARGES 46

I) ENVIRONNEMENT DE DEVELOPPEMENT 46

I.1) Environnement matériels 46

Rédigé et Présenté par NZOGANG Borel et FOTSO WANSI Lionel 65

TABLES DES MATIERES

 

I.2) Environnement logiciels

46

II) CONFIGURATIONS

47

II.1) Architecture et configuration des cartes réseaux

47

II.2) Configuration des logiciels

48

II.2.1) Au niveau des serveurs

48

II.2.2) Au niveau du répartiteur de charges

50

TEST ET OUTILS DE TEST

54

I) TEST DE L'ARCHITECTURE

54

II) OUTILS DE TEST

54

 

II.1) HTTPERF

54

II.2) Siège

55

CONCLUSION GENERALE

56

BIBLIOGRAPHIE & WEBOGRAPHIE

57

ANNEXES

59

Annexe 1 : Terminologies

59

Annexe 2 : HeartBeat

59

Annexe 3 : Code du panier virtuel

59

TABLE DES MATIERES

63






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Tu supportes des injustices; Consoles-toi, le vrai malheur est d'en faire"   Démocrite