Resumé :
Les requérants se présentent devant le commis
chargé de mariage pour
s'enregistrer.
Pré-condition :
- Demande du montant exigé pour l'octroi de la fiche,
- la fiche d'enregistrement est imprimée et remit aux
requérants.
Scénario :
- Le commis chargé de mariage reçoit les
requérants,
- Il leurs exige le paiement d'un montant fixé pour la
fiche
d'enregistrement
- Les requérants paient la somme exigé
Post-condition :
- Paiement frais de la fiche validé.
- Remise de la fiche.
b) Cas d'utilisation : Enregistrer fiche
extrait mariage Acteur : Commis chargé de mariage,
Requérants
Résumé :
- Après paiement du montant exigé pour la fiche de
mariage,
- le commis chargé de mariage demande les
identités des requérants pour enregistrement.
Pré-condition :
- Fiche reçue par les requérants pour remplir
Scénario :
- Frais de la fiche payé,
- le commis leurs montre comment remplir les renseignements dont
l'état-civil aura besoin pour leur mariage.
44
Post-condition :
- Identités enregistrées dans le registre de
mariage.
- Il transmet à l'officier de l'état-civil pour
célébration du mariage.
c) Cas d'utilisation : Livrer fiche extrait de
mariage Acteurs: Requérants, Officier de
l'état-civil
Résumé :
- Les requérants après avoir rempli les
renseignements nécessaires sur la fiche projet de mariage avec le commis
chargé de mariage,
- Le commis chargé de mariage remet à l'officier
de l'état-civil pour l'enregistrement dans le registre de mariage avant
de passer à la livraison de la fiche extrait ou acte de mariage.
Pré-condition :
- La fiche de projet mariage est remplit par les
requérants,
- Le commis en charge de mariage fait son rapport et
dépose au bureau de l'officier de l'état-civil
Scénario :
- Le commis chargé de mariage se rassure que les
renseignements sur la fiche est conforme aux informations des
requérants,
- Puis fait rapport à l'officier de l'état-civil
pour la remise de la fiche extrait de mariage aux requérants
après célébration du mariage.
Post-condition :
- L'officier après célébration du mariage
- remet la fiche extrait de mariage aux requérants.
45
II.4. CRITIQUES DE L'EXISTANT ET
DIAGNOSTIQUE
II.4.1. POINT FORT
Après analyse, nous pouvons dire que le système
existant a comme point fort l'enregistrement au manuscrit avant encodage des
requérants sollicitant la fiche de mariage. C'est-à-dire que
chaque détenteur d'une fiche de mariage a un numéro qui lui est
attribué pour permettre un bon suivi selon le numéro d'ordre.
II.4.2. POINTS FAIBLES
Les points faibles du système existant sont les suivants
:
? La lenteur dans le processus de sollicitation et
réplique des fiches d'extrait mariage au bureau de l'officier de
l'état-civil;
? Manque de suivi après enregistrement d'un couple
dans une commune, une ville voire même au niveau du pays ;
? Aucun moyen disponible pour les autres bureaux de
l'état-civil que sa soit au niveau provincial ou national pour pouvoir
consulter les certificats de mariage des sujets congolais
enregistrés.
II.5. PREPARATION DE LA SOLUTION
Après comparaison entre les différents points
forts et les points faibles du système existant, il est important de
trouver un moyen d'atténuation des vices qui prévalent plus sur
les qualités. Ainsi, nous proposons de passer à une solution
automatisée de ce processus existant.
46
II.6. MODELISATION DU NOUVEAU SYSTEME
Diagramme de cas d'utilisation du futur système :
Enregistrer Extrait Mariage
«include»
S'authentifier
Consulter extrait mariage
Livrer fiche extrait mariage
«include»
«include»
Gerer système informatique
Administrateur
Commiss. Chargé mariage
Officier de l'Etat
47
Pré-conditions :
· Affichage de la page d'accueil
· Choix sur le menu d'édition d'un extrait de
mariage
Post-condition :
· L'interface d'édition de l'extrait de mariage est
affichée
· Contrat d'opération-système : «
échec authentification » Spécifications :
Nom : échec Authentification
Responsabilité : Lorsqu'il y a
échec d'authentification, le système restitue la page d'accueil
avec un message d'erreur.
Référence : Cas d'utilisation
« solliciter un extrait de mariage ))
Pré-condition :
· Login et/ou mot de passe non enregistré dans
l'application web ou encore mal saisi.
Post-condition :
· Page d'accueil restituée
· Contrat d'opération : « Solliciter un
extrait de mariage » Spécifications :
Nom : solliciter extrait de mariage
Responsabilité : L'extrait de mariage est
édité par un bureau de l'état-civil de la province ou du
pays.
Référence : Cas d'utilisation
« solliciter un extrait de mariage ))
Pré-conditions :
Authentification réussie avec privilège d'un
parquet
Choix désigné sur le menu d'édition d'un
bulletin de condamnation
Post-condition :
Le certificat de mariage est édité avec les
attributs suivants :
48
a) Pour l'homme : code_hom, nomhom, postnomhom, prenomhom,
nomdupere, nomdelamere, nationalite, professionhom, provinceorigine,
territoire, district, village, provinceactuelle, ville, commune, quartier,
avenue, numero, montantdot, restedot, numerotelephone, nomtemoinhom,
nomtemoinfem.
b) Pour la femme :
Code_fem,nom_fem, postnom_fem, prenom_fem, nomdupere,
nomdelamere, nationalite, profession_fem, provinceorigine, territoire,
district, village, provinceactuelle, ville, commune, quartier, avenue, numero,
numerotelephone, nom_temoin_hom, nom_temoin_fem.
Nom : Enregistrer
Responsabilité :
Un bureau de l'état-civil enregistre toutes les
Identités des requérants
sur l'interface d'édition de certificat de mariage, ces
informations vont dans la
base de données, une fois validé via le bouton
d'enregistrement.
Référence :
Cas d'utilisation « solliciter extrait de mariage »
Pré-condition :
Edition des informations sur l'interface d'édition d'un
certificat de mariage
Post-condition :
Les identités liées à un couple
(requérant) sont enregistrées dans la base de
données.
Itération 2 : Cas d'utilisation « Délivrer
extrait de mariage »
Contrat d'opération : « Saisir les informations
de l'extrait de mariage» Spécification :
Nom : Saisir les informations concernant
l'extrait de mariage et faire signer par l'officier de l'état-civil
»
Responsabilité : Le
préposé l'état-civil saisit les données de
l'extrait de mariage à la demande des requérants de l'extrait de
mariage et l'envoie au bureau de l'officier de l'état-civil pour
signature.
49
Référence : cas d'utilisation :
« Délivrer extrait de mariage »
Pré-conditions :
> Interface de saisie d'extrait de mariage est
présente
> Authentification réussie.
> saisie terminée
> Interface d'impression s'affiche
Post-condition :
> Saisie terminée et l'extrait de mariage est
imprimée puis amené au bureau de l'officier de
l'état-civil pour la signature.
Itération 3: Cas d'utilisation : «Gérer le
système informatique»
Parmi tous les scénarios possibles du cas d'utilisation
(C.U.) Gérer le système informatique nous nous
intéresserons aux scénarios (opérations système)
suivants :
? Créer utilisateur {créer utilisateur,
créer login, créer mot de passe et privilège}
? Modifier utilisateur {modifier utilisateur, modifier login,
modifier mot de passe et privilège}
? Supprimer utilisateur {Supprimer utilisateur, supprimer
login, supprimer mot de passe, supprimer privilège}
a. Opération système «
Créer utilisateur » :
> Responsabilité : créer un nom et un mot de
passe d'authentification pour chaque utilisateur du système en vue de
veiller sur la sécurité et la fiabilité de ce dernier.
> Référence : cas d'utilisation gérer le
système informatique
50
> Pré conditions :
- L'administrateur est connecté
- L'administrateur est authentifié > Scénario
Nominal
1. L'administrateur attribue un mot de passe et un nom
d'identification
2. Il saisie les coordonnées du nouveau compte
d'utilisateur
3. Il octroi des privilèges au nouveau utilisateur
4. Il valide la création du compte
> Scénario d'erreur
En cas d'un compte qui existe déjà, un message
d'erreur est affiché à l'écran de l'administrateur lui
avertissant qu'un compte existant porte le même nom et lui recommande de
ressaisir les informations de création du compte et le cas d'utilisation
reprend à l'étape 2 su scénario nominal.
> Post conditions
· Une instance de la classe compte utilisateur cu est
crée avec ses attributs (numero, datecreation, login, motdepasse, type,
privilège)
> Exigences non fonctionnelles
· Le compte ainsi que ses informations sont bien
sécurisé et durant la session de travail de l'administrateur
· Le système est fiable, robuste > Description
formelle
Pour une bonne modélisation de ce scénario nous
allons y faire collaborer les objets suivants :
· Un acteur administrateur qui sera devant
l'écran
· Un objet compte qui est crée en cours du
scénario
· Un contrôleur de compte
· Un objet écran
51
II.6.2. DIAGRAMMES DES SEQUENCES DES DIFFERENTES
ITERATIONS :
Le diagramme de séquences représente la
succession chronologique des différentes opérations que
réalise un acteur. Le diagramme de séquence décrit le
dynamique du système ; à moins de modéliser un très
petit système.
Il est difficile de représenter tout le système
dynamique dans un seul diagramme de séquence, chacun étant
généralement lié à une sous-fonction du
système. Le diagramme de séquence décrit les interactions
entre un groupe d'objets en montrant, de façon séquentielle les
envois de messages qui interviennent entre les objets.
Le diagramme peut également montrer les flux de
données échangées lors des envois de messages. Les
diagrammes de séquences des itérations citées ci-haut sont
les suivantes :
Affichage interface consultaion mariage en cours
msg: impossible car dejà marié ou
divorsé
OPT
Affichage interface consultaion mariage en cours
S'authentifier
OPT
Demande certificat mariage
Message Erreur
mariage
Saisie Authentification
verifier si pas encore marié ou
divorsé
Afficher
Afficher
Enregistrer
Requerant
create()
Verification en cours
Create()
er Authentification
Enregistrement
52
II,6,2,1, ENREGISTRER FICHE DEMANDE DE
MARIAGE
Comiss chargé mariage Page Accueil Form
consultation
|
Form demande mariage Ctrl DM DM:
demande_Mariage
|
53
II,6,2,2, DELIVRER UN EXTRAIT DE
MARIAGE
Préposé Etat civil Page Accueil Frm
consult. certificat
S'authentifier
OPT
interface consultation certificat mariage
affiché
saisir identité des mariés
Erreur!! Réquerant non reconnus
Identité des mariés affichées
Message Erreur
Imprimer certificat de mariage
impression affectué avec succès Impression
en cours
mariage
Saisie Authentification
OPT
information affichées
Frm cetificat mariage Ctrl M M: Mariage
Verifier
Afficher
Recherche identité mariés
54
II.6.3. GERER LE SYSTEME INFORMATIQUE
II.6.3.1. DIAGRAMME DE COMMUNICATION DE L'OPERATION
SYSTEME « CREER UTILISATEUR »
1.CreerCompte ()
: EcranGeneral
a.
Administrateur
2. Saisicompte(login, passwd, privilege)
1.1. Activer
1.2. Ecran afficher
2.2.Create(login, pwd, privilege)
2.4. Félicitation
2.1.Init(login, pwd, privilege)
: EcranCompte 2.3. Afficher
controlCompte
c: Compte
Opération système «
Modifier compte »
II.6.3.2. DIAGRAMME DE COMMUNICATION « MODIFIER
UTILISATEUR »
b.
1.ModifierCompte ()
: EcranGeneral
Administrateur
2. Saisimodifcompte(login, passwd, privilege)
1.1. Activer
1.2. Ecran afficher
2.2.Update(login, pwd, privilege)
2.4. Félicitation
2.1.Init(login, pwd, privilege)
2.3. Afficher
: EcranCompte controlCompte
c: Compte
Opération système « supprimer utilisateur
»
55
II.6.3.3. DIAGRAMME DE COMMUNICATION « SUPPRIMER
UTILISATEUR »
1.SupprimerCompte ()
: EcranGeneral
Administrateur
2. SuppCompte(c)
1.2. Ecran afficher
2.4. Félicitation
1.1. Activer
2.1.Init(c)
2.2. Destroy (c)
c: Compte
: EcranCompte 2.3. Afficher
controlCompte
II.6.3.4. DIAGRAMME DE CLASSES DE CONCEPTION « COMPOSANT
: GERER SYSTEME INFORMATIQUE »
-Numero : input -login :
input
-mot de passe : input
+creer($numero,$login,$mopass,$type)
+modifier($compte)
+supprimer($compte)
ECRAN_CONSULTATION
1..*
+creercompte(numero,login,mopass,type)
+modifiercompte() +supprimercompte()
Affichertout()
Controleurcompte
«Paramettre»
Administrateur
Figure 1 diagramme de classe de conception
Compte
-numero: int -login: string -mopass:
password -type: string
|
+getinfo()
+creer()
+modifier()
56
II.6.3.5. DIAGRAMME DE COMPOSANTS
Le diagramme de composant permet de représenter les
composants logiciels d'un système ainsi que les liens existant entre ces
composants.19
Ce diagramme montre les unités logicielles à
partir desquelles on a construit les systèmes informatiques, ainsi que
leur dépendance ; il représente aussi les concepts connus de
l'existant pour installer et dépanner le système. Il s'agit de
déterminer la structure des composants d'exploitation que sont les
librairies dynamique, les instances de base de données, les
applications, les pros logiciels, les objets distribués, les
exécutables, etc.20 Ainsi un composant représente une
entité logicielle d'un système. (Fichier de code source,
programmes, documents, fichiers de ressource .etc.).
Un composant est représenté par une boîte
rectangulaire, avec deux rectangles dépassant du côté
gauche.
Chaque composant est assimilé à un
élément exécutable du système. Il est
caractérisé par :
? un nom ;
? une spécification externe sous forme soit d'une ou
plusieurs interfaces requises, soit d'une ou plusieurs interfaces fournies;
? Un port de connexion.
Le port d'un composant représente le point de connexion
entre le composant et une interface. L'identification d'un port permet
d'assurer une certaine indépendance entre le composant et son
environnement extérieur.
Un composant est représenté par un classeur avec
le mot-clé « composant » ou bien par un classeur comportant
une icône représentant un module.
19 Joseph GABAY, UML2 Analyse et Conception, DUNOD,
Paris, 2008
20 P. ROQUES et Franck VALLEE, UML en Action : De
l'Analyse des besoins à la Conception, Ed. EYROLLES
57
Figure 2 Diagramme de composant du nouveau
système
II.7. DEPLOIEMENT DU SYSTEME
Dans cette partie nous allons décrire l'implantation
physique de notre application grâce à un diagramme proposé
par UML : le diagramme de déploiement.
Le diagramme de déploiement permet de
représenter l'architecture physique supportant l'exploitation du
système. Cette architecture comprend des noeuds correspondant aux
supports physiques (serveurs, routeurs...) ainsi que la répartition des
artefacts logiciels (bibliothèques, exécutables...) sur ces
noeuds. C'est un véritable réseau constitué de noeuds et
de connexions entre ces noeuds qui modélise cette
architecture.21
? Un noeud correspond à une ressource
matérielle de traitement sur laquelle des artefacts seront mis en oeuvre
pour l'exploitation du
21 J. GABAY, UML2 Analyse et Conception, Dunod, Paris,
2008, p50
58
système. Les noeuds peuvent être
interconnectés pour former un réseau d'éléments
physiques.
? Un artefact est la spécification
d'un élément physique qui est utilisé ou produit par le
processus de développement du logiciel ou par le déploiement du
système. C'est donc un élément concret comme par exemple :
un fichier, un exécutable ou une table d'une base de données.
nom :Mozila Firefox
nom :Mozila Firefox
Noeud Commis chargé mariage
Noeud Bourgoumestre
«Artefact»
Navigateur
«Artefact»
Navigateur
http
http
nom : Appache
version Apache/2.2.11 (Win32) PHP/5.3.0
Version du client MySQL: mysqlnd 5.0.7-dev
Extension PHP: mysql
nom :Mozila Firefox
nom : MySQL
Version : 5.1.36-community-log version protocol
: 10
Serveur: IP via TCP/IP
http*
Noeud Administrateur
«Artefact»
Navigateur
HEBERGEUR
«artefect»
webServer
«artefect»
DBServer
Figure 3 diagramme de déploiement du
système
II.7.1. CONCEPTION DE LA PERSISTANCE
La question ici est de savoir comment seront stockées
les informations de notre base de données. Les bases de données
relationnelles sont au centre des systèmes d'information modernes. La
standardisation du langage SQL en 1987 et la mise en réseaux des postes
de travail mettent à la disposition de tous, les données de
l'entreprise pour être analysées, mise en page,
médiatisées...
Pour effectuer ce passage du fichier à la relation, du
programme à la requête, nous tiendrons compte des concepts de
bases du modèle relationnel et sa mise en application avec le langage
SQL.
59
La notation UML (Rational Rose parle de profil UML pour les
bases de données) permet de modéliser un schéma
relationnel (le diagramme de classes représentant un ensemble de
tables). Pour préciser qu'une classe représentera une table, on
utilise le stéréotype <<Table>>. La classe contient
des attributs. On peut relier plusieurs classes entre elles en prenant garde
d'insérer convenablement les clés étrangères. Il
est aussi possible d'utiliser les agrégations pour renforcer le couplage
d'une association.
-id_adr : int PK
-provinceorigine : (20) -territoire:
varchar(15) -district : varchar(15) -village:
varchar(15) -provinceactuelle :varchar(15) -ville:
varchar(15)
-commune : varchar(15) -quartier
: varchar(15) -avenu : varchar(20)
-numparcelle :int
adresse_requerant
voir
1
requerant
-idreq: int PK
-coderequerent: varchar (8) PK
-nom:varchar(15)
-postnom : varchar(15) -prenom:
varchar(15) -nomconjoint : varchar (15)
-nationalite : varchar(20) -profession:
varchar(15) -montantdot :int
-restdot: int
-numtelephone : int
-nomtemoin: varchar(15)
-nud id : int PK
-nomhom :varchar(15) -postnomhom :
varchar(15) 1 -prenomhom: varchar(15) -nomfem
:varchar(15) -postnomfem : varchar(15)
-prenomfem : varchar(15) -datecelebration
parent_marie -idparent : int PK
-codrequerent : varchar (8) -nompere:
varchar(30) -nommere:varchar(30)
certificat_mariage
figurer
1..*
celebrer 1..*
agent_etat_civil
-id int (5) PK
-matriculagent varchar (10) PK -nom: varchar
(15) -postnom : varchar (15) -province :
varchar (15) -ville : varchar (15)
-commune : varchar (15)
Figure 4 Diagramme de classe de persistance
II.7.2. DERIVATION DU MODEL LOGIQUE DES
DONNEES.
Nous décrivons dans cette phase les transformations
à effectuer afin de dériver un schéma logique relationnel
ou objet.
Le modèle relationnel est à l'origine du
succès que connaissent aujourd'hui les grands éditeurs de SGBD
(système de gestion de bases de données), à savoir Oracle,
IBM, Microsoft, Informix, Sybase et CA-Ingres. Le
60
but initial de ce modèle était
d'améliorer l'indépendance données/
traitements.22
Règles de transformation :
? Chaque entité devient une relation.
? L'identifiant de l'entité devient clé primaire
pour la relation.
? Chaque classe du diagramme UML devient une relation.
? Il faut choisir un attribut de la classe pouvant jouer le
rôle d'identifiant
? Si aucun attribut ne convient en tant qu'identifiant, il faut
en ajouter
un de telle sorte que la relation dispose d'une clé
primaire (les outils
proposent l'ajout de tels attributs).
? Transformation des associations
Les règles de transformation que nous allons voir
dépendent des
cardinalités/multiplicités maximales des
associations. Nous distinguons
trois familles d'associations :
? un-a-plusieurs ;
? plusieurs-a-plusieurs ou classes-associations, et n-aires ;
? un-a-un.
Associations un-à-plusieurs
Il faut ajouter un attribut de type clé
étrangère(FK) dans la relation fils de l'association. L'attribut
porte le nom de la clé primaire de la relation père de
l'association. On peut se rappeler cette règle de la manière
suivante : la clé de la relation père migre dans la relation
fils.
Associations un-à-un
La règle est la suivante, elle permet d'éviter
les valeurs NULL dans la base de données. Il faut ajouter un attribut
clé étrangère dans la relation dérivée de
l'entité ayant la cardinalité minimale égale à
zéro. Dans le cas d'UML, il faut ajouter un attribut clé
étrangère dans la relation dérivée de la
22 Christian SOUTOU : UML2 pour les Bases de
données, Ed. Eyrolles, p 103-104
agent_etat_civil
-id int (5) PK
-matriculagent varchar (10) PK
-nom: varchar (15)
-postnom : varchar (15)
-province : varchar (15)
-ville : varchar (15)
-commune : varchar (15)
+ajouter
+supprimer
+modifier
parent_marie -idparent : int PK
-codrequerent : varchar (8) -nompere:
varchar(30) -nommere:varchar(30) +ajouter
+supprimer
+modifier
.*
celebrer
figurer
1..*
certificat_mariage
-nud id : int PK
-nomhom :varchar(15) -idparent : int
FK -matriculagent: varchar FK -postnomhom :
varchar(15) -prenomhom: varchar(15) -nomfem
:varchar(15) -postnomfem : varchar(15)
-prenomfem : varchar(15) -datecelebration
+ajouter
+supprimer
+modifier
requerant
-idreq: int PK
-coderequerent: varchar (8) PK
-id_adre : int FK
-nom:varchar(15)
-postnom : varchar(15) -prenom:
varchar(15) -nomconjoint : varchar (15)
-nationalite : varchar(20) -profession:
varchar(15) -montantdot :int
-restdot: int
-numtelephone : int
-nomtemoin: varchar(15)
+ajouter
+supprimer
+modifier
voir
adresse_requerant -id adr : int
PK -provinceorigine : (20) -territoire:
varchar(15) -district : varchar(15) -village:
varchar(15) -provinceactuelle :varchar(15) -ville:
varchar(15)
-commune : varchar(15) -quartier
: varchar(15) -avenu : varchar(20)
-numparcelle :int
+ajouter
+supprimer
+modifier
61
classe ayant la multiplicité minimale égale
à un. L'attribut porte le nom de la clé primaire de la relation
dérivée de l'entité (classe) connectée à
l'association.
62
CHAPITRE TROISIEME : CARACTERISTIQUES
TECHNIQUES ET DEVELOPPEMENT DE L'APPLICATION
III.1. PRESENTATION ET MOTIVATIONS DE CHOIX DU LANGAGE
PHP III.1.1. CHOIX DU LANGAGE DE PROGRAMMATION A UTILISER
La programmation est définit comme un ensemble des
tâches à effectuer à partir d'un ordinateur pour
réaliser un programme. Il faudra d'abord analyser le problème
à traiter qui doit aboutir à l'élaboration d'un algorithme
interprétable dans un langage compréhensible pour la machine
(l'ordinateur).
Un langage de programmation est un langage informatique,
permettant à un être humain d'écrire un code source qui
sera analysé par une machine, généralement un ordinateur.
Le code source subit ensuite une transformation ou une évaluation dans
une forme exploitable par la machine, ce qui permet d'obtenir un programme. Les
langages permettent souvent de faire abstraction des mécanismes de bas
niveau de la machine, de sorte que le code source représentant une
solution puisse être écrit et compris par un être humain.
L'activité de rédaction du code source d'un
programme est nommée programmation. Elle consiste en la mise en oeuvre
de techniques d'écriture et de résolution d'algorithmes
informatiques. A ce titre, un langage de programmation se distingue du langage
mathématique par sa visée opérationnelle (une fonction et
par extension, un programme, doit retourner une valeur), de sorte qu'un «
langage de programmation est toujours un compromis entre la puissance
d'expression et la possibilité d'exécution».
Un programme est une suite d'instructions
rédigées dans un langage particulier et utiliser par l'ordinateur
pour effectuer un traitement bien déterminer.
63
a) ARCHITECTURE MATERIELLE
La conception de notre application devra respecter
l'architecture trois tiers du fait qu'il aura à faire une interaction
entre les interfaces (Client), la base de données (Serveurs) et les
différents programmes (Applications).
Fig. 11 : Echange client-serveur 3-tiers
Pour faire tourner cette application il faudra disposer d'une
machine (ordinateur) ayant les caractéristiques minimum suivantes : CPU
1 GHz, HDD 10 Go, RAM 512 Mo, sur la quelle sera installée le
système d'exploitation Windows Serveur 2008 ou plus a défaut
Windows serveur 2003.
Cette machine fera office d'un serveur, c'est-à-dire
elle devra être configurée comme un serveur avec : le serveur
Apache, le serveur MySQL et le PHP qui doivent être installés
dessus. Il faudra aussi disposer d'un routeur et d'un Switch pour une bonne
configuration de l'intranet ainsi que le réseau LAN.
b) CHOIX DU LANGAGE DE PROGRAMMATION
Notre choix est porté sur le langage HTML (Hyper Text
Markup Language) qui définit la structure logique d'un document
web composé d'un ensemble de commandes de formatage basé sur la
notion d'environnement possédant un début et une fin
appelé délimiteur (tags ou marqueurs), accompagné
du langage PHP qui est un langage de script côté serveur;
embarqué dans les pages HTML ayant une syntaxe héritée du
C et du Perl. Il est extensible (nombreuses bibliothèques) et supporte
pratiquement tous les standards du web.
64
Le PHP est un logiciel Open Source (Licence PHP de type BSD),
qui sera aussi associé au JavaScript qui est un langage de script qui
s'exécute du côté client.
En guise de présentation, le langage PHP
(historiquement Personal Home Page, officiellement acronyme récursif de
PHP : Hyper text Preprocessor) a été créé par
RASMUS LERDORF en 1994, pour ses besoins
personnels.
Comme dans beaucoup d'autres cas, la mise à disposition
du langage sur l'Internet est à l'origine de son développement
par d'autres utilisateurs qui y ont vu un outil propre à satisfaire
leurs besoins. Après plusieurs évolutions importantes ; PHP le
plus souvent associé à MySQL est à l'heure actuelle le
plus répandu des langages de programmation pour les sites web.
PHP est un langage de programmation web, très proche
syntaxiquement du langage C, destiné à être
intégré dans des pages HTML. Contrairement à d'autres
langages, PHP est principalement dédié à la production des
pages HTML générées dynamiquement.
Le langage PHP donne lieu à un dynamisme dans la
conception des applications web. Un script PHP est exécuté par un
interpréteur situé du côté serveur. En cela, PHP est
complètement différent d'un langage comme JavaScript, qui
s'exécute sur le navigateur. En général,
l'interpréteur PHP est intégré à Apache sous forme
de module, et le mode d'exécution est alors très simple.
Quand un fichier avec une extension .php est
demandé au serveur web, ce dernier le charge en mémoire et y
cherche tous les scripts PHP qu'il
transmet à l'interpréteur. L'interpréteur
exécute le script, ce qui a pour effet de produire du code HTML qui
vient remplacer le script PHP dans le document finalement fourni au navigateur.
Ce dernier reçoit donc du HTML pur et ne voit jamais la moindre
instruction PHP23.
23 Rigaux P., Pratique de MySQL et PHP : Conception et
réalisation des sites web dynamiques, 4e éd., Dunod, Paris, 2009,
pp. 20 à 23.
65
En particulier, il est possible à partir d'un script
PHP, de se connecter à un serveur MySQL pour récupérer des
données que l'on va ensuite afficher dans des documents HTML.
c) LES AVANTAGES DE PHP
Les avantages du langage PHP sont nombreux, nous citerons
quelques uns entre autre :
· le client n'a pas accès au code source puisque
celui-ci est interprété avant envoi,
· Le client ne reçoit que le résultat de
l'exécution du script. On peut configurer le serveur HTTP pour masquer
complètement la qualité dynamique des pages, le code n'est pas
alourdi par des commandes destinées à générer la
page HTML.
Le langage possède également des nombreuses
bibliothèques ou modules pour :
· Le calcul mathématique,
· La création dynamique d'images,
· La gestion de sessions,
· Les connexions sécurisées (SSL),
· L'accès à la plupart des SGBD,
· L'accès aux bases LDAP...
d) LES INCONVENIENTS DE PHP
Le langage PHP n'est pas aussi rapide que le langage PERLE ou
certains CGI mais plus portable, pas aussi simple que ASP, VB Script mais plus
respectueux des standards web et sous licence Open Source (plus facilement
extensible), pas d'interactivité au niveau du client (on doit quand
même utiliser du JavaScript dans ces cas là).
66
III. 1.2. PLATES FORMES DE FONCTIONNEMENT DE
L'APPLICATION
A la question de savoir sur quelle plate forme notre
application pourrait fonctionner, nous répondons comme suit: Vu que le
PHP est un langage multi plates formes cette application aura à
fonctionner sur n'importe quelle plate forme mais seulement il faudra avoir une
meilleure version du serveur MySQL, le serveur Apache et le PHP
appropriée à chacune de plates formes.
III.1.3. PRESENTATION ET MOTIVATIONS DU SGBD
MYSQL
Les systèmes de gestion de base des données que
nous avons analysés ont chacun leur force et leur faiblesse. Si la
décision n'est pas déjà prise, ou même si elle
l'est, chacune sera prise en considération.
C'est ainsi que nous avons conclu que les systèmes de
gestion de base des données en accès libre (freeware), telles
MySQL et PostgreSQL, sont de très bonnes solutions d'entrée de
gamme. Le coût en est très abordable, ils sont gratuits ; ces
systèmes de gestion de base des données sont faciles à
installer et à maintenir.
Ces deux Systèmes de gestion de base des données
reposent sur le modèle du développement de logiciel le plus
récent, qui est l'Open Source. Il a le grand avantage de reposer sur une
communauté de développement.
Il y a normalement un ou des responsables du code en nombre
restreint, mais tout l'Internet comme équipe de développement
potentielle. Pour sortir du choix embarrassant de MySQL ou de PostgreSQL, nous
avons constaté que MySQL est plus supporté par des plates-formes
de conception qui sont à notre porté telle que : WAMP, EASY-PHP,
MOV'AMP, LAMP et XAMP. Ainsi donc, nous avons pu choisir MySQL en fin de compte
pour le développement et la gestion de notre base des données.
MySQL est un logiciel libre développé sous
licence GNU General Public License. Il a été conçu et est
maintenu par une société suédoise MySQL AB
fondée par deux Suédois et un Finlandais.
67
MySQL fonctionne sur beaucoup de plates-formes
différentes, incluant AIX, BSDi, FreeBSD, HP-UX, Linux, Mac OS X,
NetBSD, OpenBSD, OS/2 Warp, SGI Irix, Solaris, SunOS, SCO OpenServer, SCO
UnixWare, Tru64 Unix, Windows 95, 98, NT, 2000 et XP.
Les bases de données MySQL sont accessibles en
utilisant les langages de programmation entre autre le C, C++, Eiffel, Java,
Perl, PHP, Python, et Tcl; une API spécifique est disponible pour chacun
d'entre eux.
III. 2. CONCEPTION PROPREMENT DITE DE L'APPLICATION ET
PRESENTATION DE LA MAQUETTE
Une maquette est une représentation partielle d'un
système ou d'un objet donnant aux utilisateurs une vue concrète
mais non définitive de la future interface de l'application. Cela peut
consister en un ensemble de dessins réalisés avec des outils
spécialisés tels que Dreamweaver, Adobe Illustrator ou plus
simplement avec Powerpoint et voire même Word.
Par la suite, la maquette intégrera des
fonctionnalités de navigation pour que l'utilisateur puisse tester
l'enchaînement des écrans, même si les
fonctionnalités restent fictives. Elle est développée
rapidement afin de provoquer des retours de la part des utilisateurs. Elle
permet ainsi d'améliorer la relation développeur-client.
La plupart du temps, la maquette est considérée
comme jetable, c'est-à-dire que la technologie informatique
employée pour la réaliser n'est pas forcément assez
robuste et évolutive pour être intégrée telle
quelle.
Sur base des cas d'utilisation, des objets et des classes de
l'application, nous sommes parvenus à présenter les interfaces
suivantes selon l'attente du système mis en place:
68
Interface d'accueil
Interface 1 : page d'accueil
L'interface ci-dessus représente l'interface d'accueil,
il faudrait une d'authentification pour accéder à la page qui
correspond au profil de l'utilisateur de l'application :
? si l'utilisateur a le profil d'un commis chargé de
mariage ou d'un officier de l'état-civil, après authentification,
une interface d'édition de acte de mariage apparaît ;
? si l'utilisateur est à un bureau de
l'état-civil au niveau provincial ou national, après
authentification réussie, cet utilisateur apercevra une interface
d'édition où un menu de sollicitation d'extrait de mariage ou
acte de mariage apparait ;
? si l'utilisateur est l'administrateur-système de
l'application, c'est l'interface de création des utilisateurs qui
apparaîtra.
69
Interface d'enregistrement de couple
Interface 2 : page
d'enregistrement
Il s'agit de l'interface d'édition d'un acte de mariage
pour le couple présent, cette interface est l'apanage du commis
chargé du mariage pour enregistrement de différents couples qui
se présenteront devant lui.
70
Interface de recherche d'un couple déjà
enregistré
Interface 3 : page de recherche d'un couple
L'interface ci-dessus nous donne l'état d'enregistrement
d'un couple
c'est-à-dire si ce dernier a déjà
été enregistré auparavant. Elle nous permet aussi
d'éviter un double enregistrement.
71
Interface d'inscription des utilisateurs du
système
Cette interface devra être manipulée uniquement
par l'administrateur du système informatique. Il a possibilité de
créer un utilisateur est lui donner le droit qui lui convient.
Ce dernier scenario est celui des applications web dynamique,
qui coïncide à notre cas. Il s'agira donc des trois entités
qui communiquent : le
72
CHAPITRE QUATRIEME : ETUDE DEPLOIMENT DE
L'APPLICATION ET CONFIGURATIONS TECHNOLOGIQUES
IV. 1 INTRODUCTION
On entend par déploiement le fait de mettre en place un
nouveau système ou un nouveau logiciel. C'est aussi l'opération
permettant de partager une application (Logiciel) dans un réseau
informatique.
IV.2 PLATE FORME DE DEPLOIEMENT
En ce qui concerne la plate forme à utiliser pour faire
tournée notre application, la réponse est claire et simple
à donner ; Notre choix est porté sur la plate forme Windows car
elle est facile à trouver, facile à installer, facile à
configurer et simple à manipuler pour nous qui avons eu une formation
sur l'administration d'un réseau local avec le Windows 2003 Serveur tout
au long de notre cursus académique. Exceptionnellement pour ce travail
nous utiliserons le Windows serveur 2008.
IV. 3. CONFIGURATION DU SERVEUR WEB (APPACHE ET
MYSQL)
Un site web ou une application web est constituée,
matériellement, d'un ordinateur connecté à l'Internet (ou
à un intranet), et d'un logiciel tournant en permanence sur cet
ordinateur, le serveur.
Le logiciel serveur est en attente de requêtes
transmises à son attention sur le réseau par un logiciel client
(représenté par un navigateur). Quand une requête est
reçue, le logiciel serveur l'analyse afin de déterminer quel est
le document demandé, recherche ce document et le transmet au logiciel
client.
Un autre type important d'interaction consiste pour le
logiciel client à demander au logiciel serveur d'exécuter un
logiciel, en fonction de paramètres, et de lui transmettre le
résultat.
73
logiciel client, le logiciel serveur et un autre logiciel
appelé logiciel d'application.
Dans le jargon informatique, le logiciel serveur sera
simplement désigné par le terme « serveur web » ou par
le nom du logiciel particulier qu'on peut utiliser, par exemple : Apache, IIS
(Internet Information Server). Les termes « navigateur » et «
client » désigneront tous deux le logiciel client (Firefox, Safari,
Internet Explorer, etc.).
Ceci expliqué, nous allons donc pouvoir configurer un
serveur web pour
une application dynamique comme c'est notre cas. Nous aurons
donc à installer et à configurer :
? Apache : un serveur web open source
? MySQL : un système de gestion des bases de
données
IV.3.1. INSTALLATION ET CONFIGURATION WINDOWS SERVEUR
2008
Windows Server 2008 propose un meilleur contrôle de
l'information afin de garantir une meilleure efficacité d'administration
et par conséquent une meilleure productivité.
Afin d'augmenter cette qualité d'administration,
Windows Server 2008 possède la capacité de scripts et
d'automatisation de tâches accrues grâce à son nouveau
langage de script Microsoft Windows Powershell. L'automatisation des
tâches courantes d'administration se voit ainsi grandement
améliorée et flexible grâce à cette nouvelle
fonctionnalité.
L'installation basée sur les rôles et
fonctionnalités grâce à la console unique gestionnaire de
serveur facilite l'administration. Les assistants disponibles permettent de
limiter au maximum les erreurs de configuration grâce aux nombreuses
explications qui viennent accompagner l'administration lors de l'installation
d'un composant Windows. Microsoft propose également la
possibilité d'installer une version minimale de Windows Server 2008,
connue aussi sous le nom de Windows Server Core. Windows Server 2008 fonctionne
alors sans interface graphique et tout doit donc être configuré en
ligne de commande. L'avantage majeur de ce type d'installation
74
réside dans le fait que la surface d'attaque est
réduite de par le fait que le strict minimum est installé sur le
serveur. Les administrateurs viendront alors ajouter les rôles de leurs
choix. Afin de ne pas trop exposer ces serveurs, le .NET Framework n'est pas
installé et l'exécution de code comme PowerShell n'est donc pas
possible.
Des nouvelles consoles comme le moniteur de performance et de
fiabilité permettent également de détecter en amont des
problèmes de configuration sur vos systèmes d'exploitation et
d'en informer automatiquement le service informatique. Il offre
également beaucoup d'informations précises sur l'utilisation des
composants système de votre choix.
Enfin, il offre, une meilleure gestion de l'impression est
désormais possible ! En effet, les imprimantes peuvent être
automatiquement installées sur les ordinateurs des utilisateurs à
l'aide de stratégies de groupe. Une nouvelle console MMC vous permet de
mieux gérer, contrôler et dépanner les imprimantes de votre
domaine.
Ainsi nous avons créé un domaine (DNS Domaine Name
Service) qui permet la résolution des noms de machines et leurs adresses
IP, installé et la configuration d'Active Directory, installé et
configurer le serveur DHCP qui permet d'attribuer automatiquement des adresses
IP aux machines clientes, puis créé des utilisateurs dans le
domaine.
Nous somme allé sur la barre de tâche, nous avons
cliqué deux fois sur l'icône de la connexion, clic droit sur la
connexion réseau local, propriété, nous
sélectionnons protocole TCP/IP, prendre Propriété,
utiliser les adresses IP puis tapez les adresses et valider avec Ok.
Remarque :
Pour terminer la configuration du Serveur, il faudra installer
et configurer le serveur Apache, le serveur MySQL et PHP pour la prise en
charge et le fonctionnement de l'application.
75
En suite il faudra configurer l'option Internet pour avoir
comme page par défaut la page d'accueil de l'application.
IV.3.2. CONFIGURATION DES MACHINES CLIENTES
Il faudra configurer de prime à bord les adresses IP
sur chaque machine cliente en le mettant dans une même classe et un
même sous réseau.
Une autre possibilité est celle de cocher l'obtention
automatique d'une adresse IP et celui du serveur DNS du fait que sur le serveur
nous avons déjà installé et configurer le serveur DCHP qui
attribue des adresses IP automatiquement.
Les étapes suivantes nous permettent d'Intégrer
la machine dans un
domaine:
V' Poste de travail clic droit,
V' Propriété,
V' Puis cliquer sur Modifier,
V' Cochez sur Domaine,
V' Saisir le nom du domaine de votre travail,
V' Pour notre cas, notre domaine porte le nom : «
mariagedrc.cd »,
V' cliquer sur OK
Un message de bien venue dans le Domaine vous sera
affiché et
redémarrer la machine pour la prise en charge de la
configuration.
Pour l'utilisation, s'authentifier avec un nom d'utilisateur
créé déjà dans ce domaine ou soit allé dans
la barre d'adresse et saisir l'adresse IP ou le nom du serveur.
IV.4. MISE AU POINT D'UN VPN POUR L'INTECONNEXION DES
DIFFERENTES COMMUNES ET MAIRIES
La technologie des VPN (Virtual Private Network) consiste
à mettre en oeuvre les techniques de chiffrement nécessaire
à la sécurisation des communications pour l'authentification et
la confidentialité des données, non plus à un niveau
applicatif comme c'est le cas avec SSL et SSH, mais au
76
niveau de la couche réseau, afin que leur utilisation
devienne transparente pour les services réseau de haut niveau.(24)
IV.4.1. DANS QUEL DOMAINE PEUT-ON UTILISE LE V.P.N
:
Le VPN peut être utilisé dans les domaines suivants
:
? Le télétravail :
Il existe des entreprises sans locaux, où les
employés n'ont pas besoin de se déplacer pour joindre un lieu de
travail à partir de leurs domiciles peuvent travailler en réseau
sur leur travail.
Le VPN apporte la possibilité pour tous ses
employés de travailler sur un même réseau privé
virtuel. Il doit alors évidement disposer d'une connexion internet qui
lui permet de travailler à distance, et d'utiliser les différents
services du réseau, et même exploiter des outils de travail
collaboratif.
? connexion de sites distants :
Pour une entreprise possédant plusieurs sites ou
filiales, il est parfois avantageux de les relier. Une première solution
serait d'utiliser une ligne spécialisée ou allouée. Mais
cette solution a un coût, et le VPN est un palliatif dans ce type de
problématique où il y a besoin d'interconnexion, en même
temps recherche de minimisation des coûts.
IV.4.2. PRESENTATION DES TERMES
Le VPN ne représente donc qu'un concept,
derrière lui, plusieurs implémentations ont vu le jour, selon
l'utilisation que l'on veut en faire, le niveau de sécurité, la
taille du réseau.
Plusieurs moyens techniques peuvent être utilisés
et couplés pour mettre en oeuvre des réseaux VPN: le chiffrement,
l'authentification, le contrôle d'intégrité et les
tunnels.
Chiffrement : Utilisé pour
que les données traversant le réseau ne puissent pas être
lues par une autre personne. On utilise pour cela notre
24 Boutherin, B. et Delaunay, B., Cahier de l'Admin
Linux : Sécuriser un réseau, 3e éd., Eyrolles, Paris,
2007, p.82
77
baguage mathématique et surtout arithmétique.
Les deux principaux types de cryptage utilisés sont : le
chiffrement asymétrique et
symétrique. Le chiffrement symétrique
utilise la même clé pour chiffrer et pour déchiffrer.
Comme inconvénient, chaque expéditeur de la
communication devra avoir sa propre clé, et la communiquer à la
partie bénéficiaire sans que les autres puissent la
récupérer.
Plusieurs algorithmes de cryptage peuvent être
utilisés : DES, AES. Le cryptage
asymétrique n'a pas cet inconvénient là. Deux clés
sont utilisées : une clé publique et une clé
privée. La clé publique est disponible par tout le monde. Elle
sert à crypter des données.
Si on veut communiquer avec un autre, on doit
récupérer sa clé publique et seul, celui qui la
détient pourra la décrypter avec sa clé privée.
Bien sûr le cryptage et le décryptage se font de manière
précise suivant la méthode utilisée. La plus connue est la
méthode RSA, acronyme des chercheurs qui ont
publié cette méthode : RIVEST, SHAMIR et ADLEMAN. Le chiffrement
est utilisé dans le contexte du VPN pour garantir la
confidentialité des données circulant sur le réseau public
qui est internet.
En effet, le réseau privé n'est que virtuellement
coupé du réseau public. Authentification
: On veut garantir qu'a chaque instant de la
communication, on parle au bon destinataire. Dans le cadre du VPN, on parle des
deux passerelles qui sont séparées par internet.
Contrôle d'intégrité
: il garantit que les données transmises entre
les interlocuteurs n'ont pas été modifiées.
Tunnel : le tunnel consiste
à établir un canal entre deux points sans se soucier de la
problématique d'interconnexion.
Finalement il n'y a pas qu'une seule façon de
déployer un VPN : dans la plupart des cas, le protocole IP
Sec est utilisé. Mais il n'est pas le seul. Les
spécifications d'un VPN dépendront aussi de l'utilisation qu'on
peut en faire.
78
Ainsi donc, l'image ci-dessous nous présente
l'architecture VPN et sa mise en oeuvre qui permettra à nos lecteurs de
comprendre la représentation intégrale de toute l'architecture
réseau VPN que nous souhaiterions déployer.
1. ARCHITECTURE RESEAU VPN DE LA VILLE DE LUBUMBASHI
79
2. ARCHITECTURE RESEAU VPN DE TOUTE LA REPUBLIQUE
80
|