Dédicaces
A mon père Nasser El Dine et ma mère
Fatheya A qui je dois ce que je suis Qu'ils trouvent dans ce
travail, le fruit de leurs sacrifices consentis pour mon
éducation, l'expression de mon amour et ma gratitude pour la
bienveillance avec laquelle ils m'ont toujours entouré. Que Dieu
leur préserve bonne santé et longue vie. A mes trois
frères Amine, Souheil et Hakou A mes chers amis Souheil et Meyssa qui
m'ont tant aidé et soutenue pour effectuer ce travail. A tous mes
meilleurs ami(e)s.
Remerciements
Il m'est spécialement agréable, d'exprimer toute ma
reconnaissance envers les personnes qui de près ou de loin m'ont
apporté leur soutien dans la réalisation de ce projet.
Au premier rang mon encadrant Monsieur Taieb
Mohamed, son aide, ses conseils précieux, ses critiques
constructives, ses explications et suggestions pertinentes qui m'ont
donné un coup d'aide pour réaliser mon application
convenablement, ainsi que Monsieur Leslie Sauvage de m'avoir
accordé la chance d'effectuer mon stage au sein de leur entreprise
Myiweb.
Je tiens à remercier mon superviseur à l'Ecole
Nationale des Sciences de l'Informatique Monsieur Tarak
chneyna, souhaitant qu'il trouve ici l'expression de mon gratitude
pour sa patience, sa disponibilité, ses critiques, son assistance et
suivi incessant par ses directives.
Je remercie de même ma famille pour leur grande
attention, leur grand soutien et encouragement tout au long de
l'évolution de ce travail, et de l'énorme intérêt
qu'ils ont montré envers ce sujet. Enfin ma gratitude s'exprime pour les
membres de jury pour avoir accepté de juger mon travail.
Table des matières
Introduction générale
1 Cadre Général
|
1
3
|
|
1.1
|
Présentation générale de l'organisme
|
3
|
|
1.2
|
Présentation du cadre du sujet
|
4
|
|
|
1.2.1 Critique de l'existant
|
4
|
|
|
1.2.2 Les solutions proposées
|
5
|
|
|
1.2.3 La messagerie Web 2.0
|
6
|
|
|
1.2.4 La Solution retenue et le travail demandé
|
9
|
|
|
1.2.5 Cycle de développement
|
9
|
2
|
Étude Théorique
|
11
|
|
2.1
|
Le service de messagerie
|
11
|
|
|
2.1.1 Définitions
|
11
|
|
|
2.1.2 Les différents agents d'un serveur de messagerie
|
12
|
|
2.2
|
Structure générale et format d'un message
|
12
|
|
|
2.2.1 Structure d'un message
|
12
|
|
|
2.2.2 Les formats standards de messages : la norme MIME
|
14
|
|
|
2.2.3 Les principaux types de MIME
|
15
|
|
|
2.2.4 Les types de codage
|
15
|
|
2.3
|
Les différents protocoles utilisés
|
15
|
|
|
2.3.1 Le protocole Simple Mail Transfert Protocol (SMTP)
|
16
|
|
|
2.3.2 Les protocoles Post Office Protocol (POP) et Internet
Message Access
|
|
|
|
Protocol (IMAP)
|
16
|
|
|
2.3.3 Le protocole Secure Socket Layer (SSL)
|
17
|
3
|
Analyse et spécification des besoins
|
19
|
3.1 Analyse Fonctionnelle 19
3.1.1 Les besoins de l'internaute 19
3.1.2 Les besoins de l'administrateur 21
3.2 Analyse Non Fonctionnelle 21
3.3 Spécification détaillée 22
3.3.1 Les diagrammes de cas d'utilisation 22
3.3.2 Diagrammes de séquences 26
4 Conception 35
4.1 Conception architecturale 35
4.1.1 Architecture trois-tiers 35
4.1.2 Architecture MVC 37
4.2 La correspondance entre le modèle MVC et l'application
39
4.3 Conception détaillée 40
4.3.1 Conception de la base de données 40
4.3.2 Décomposition en paquetage 42
4.3.3 Diagrammes des classes 43
4.3.4 Cinétique de l'application 49
5 Réalisation 51
5.1 Environnement de travail 51
5.1.1 Environnement matériel 51
5.1.2 Environnement logiciel 51
5.2 Choix techniques 52
5.2.1 Choix d'Aptana 52
5.2.2 Choix du PHP5 (PHP Hypertext Preprocessor) 52
5.2.3 Choix d'AJAX 53
5.2.4 Script SHELL 53
5.2.5 Choix de Mysql 53
5.3 Diagramme de déploiement 54
5.4 Implémentation 55
5.4.1 Interfaces de l'application 55
5.5 Chronogramme 63
Netographie 66
Annexes 68
A Le protocole LDAP 68
A.1 Introduction à LDAP 68
A.2 Présentation de LDAP 68
A.3 L'arborescence d'informations (DIT) 69
A.4 Les attributs des entrées 69
A.5 Consulter les données 70
B RSS - Syndication de contenu 71
B.1 Introduction au RSS 71
B.2 Utilisation de canaux RSS 71
B.3 Proposer un fll RSS 72
B.4 Exploiter les flls RSS sur un site 72
Liste des figures
1.1 Du Web 1.0 au Web 2.0 7
1.2 Le modèle Incrémental 10
2.1 Acheminement d'un message électronique 13
2.2 La couche protocolaire TCP/IP 16
2.3 Pile protocolaire TCP/IP avec SSL 17
3.1 Diagramme de cas d'utilisation de gestion des e-mails 23
3.2 Diagramme de cas d'utilisation des services secondaires
24
3.3 Diagramme de cas d'utilisation de l'administrateur 26
3.4 Diagramme de séquence de navigation entre les pages
sécurisées 27
3.5 Diagramme de séquence de l'authentification d'un
utilisateur 28
3.6 Diagramme de séquence de l'inscription d'un internaute
29
3.7 Diagramme de séquence de présentation des
courbes de statistique 30
3.8 Diagramme de séquence de la modification d'un profil
31
3.9 Diagramme de séquence d'envoi des e-mails 32
3.10 Diagramme de séquence de calcul des statistiques
33
3.11 Diagramme de séquence de la planification du robot
d'envoi 33
4.1 Les couches d une architecture trois tiers 36
4.2 Interactions entre le modèle, la vue et le
contrôleur[N9] 38
4.3 L'application en MVC 39
4.4 Modèle Entité Association 41
4.5 Diagramme de paquetage 42
4.6 Diagramme de classe : Gestion des interfaces 44
4.7 Diagramme de classe : Gestion des données 46
4.8 Diagramme de classe : gestion des processus 48
4.9 Diagramme de transition de la partie client 49
4.10 Diagramme de transition de la partie administrative 50
5.1 Diagramme de déploiement 54
5.2 Interface d'authentification de l'internaute 55
5.3 Interface d'inscription rapide 56
5.4 Interface d'inscription complète 57
5.5 Interface d'accueil 58
5.6 Interface de la boite de réception 59
5.7 Interface du Carnet d'adresse 60
5.8 Interface du calendrier 61
5.9 Interface de gestion des paramètres 62
5.10 Chronogramme 63
Liste des tableaux
1.1
|
Comparaison le type d'usage
|
5
|
1.2
|
Comparaison selon les caractéristiques techniques
|
6
|
1.3
|
Comparaison selon sur le plan technique [N2]
|
8
|
A.1
|
Les principales opérations de LDAP
|
70
|
Introduction générale
I
L ne fait désormais plus aucun doute que les
technologies de l'information et de la communication représentent la
révolution la plus importante et la plus innovante qui a marqué
la vie de l'humanité en ce siècle passé. En effet, loin
d'être un éphémère phénomène de mode,
ou une tendance passagère, ces technologies viennent nous
apporter de multiples conforts à notre mode de vie, car
ils ont révolutionné le travail des individus par leur
capacité de traitement d'information, d'une part, et de rapprochement
des dimensions espace/temps, d'une autre.
Parmi ces TIC (Technologies de l'information et de la
communication), la messagerie électronique est rapidement
développée dans les organisations aux cours de ces dix
dernières années, par sa facilité d'utilisation et son
utilité perçue. Désormais, elle représente l'outil
de travail le plus utilisé.
Voulant profiter des divers avantages de cette technologie, la
société Myiweb a décidé d'offrir à ses
clients (plus de six milles inscris) un service de messagerie.
C'est dans ce cadre que s'intègre ce projet qui
consiste dans l'étude, la conception et le développement d'un
système de messagerie électronique destinée au public. Le
but principal de ce service est de garantir l'écriture ou la lecture des
courriers et de permettre aux utilisateurs d'accéder facilement à
leurs comptes.
Puisque l'administration de cette application de messagerie est
importante, nous avons conçu à développer une application
web qui permet de gérer tout le système.
Le présent rapport s'articule autour de cinq chapitres.
Dans le premier chapitre, nous présentons le cadre général
de notre application et les différentes solutions proposées en
partant d'une étude approfondie de l'existant. Le deuxième
chapitre, s'intéresse à l'étude des applications de
messagerie électronique ainsi les différents protocoles de
communication. Nous consacrons le troisième chapitre à la partie
analyse et spécification d'opportunité qui comporte une
illustration des besoins fonctionnels et non fonctionnels et une
spécification en se basant sur le langage UML(Unified Modeling
Language).
réalisation, précise l'environnement du travail
et présente les principales interfaces de l'application. Finalement nous
clôturons le rapport par une conclusion générale qui
présente le bilan de ce projet et les éventuelles perspectives.
Des annexes nécessaires pour une meilleure compréhension du
contenu et pour un meilleur repérage des mots clefs sont aussi
disponibles.
Introduction
Dans le cadre de la préparation à
l'intégration au milieu professionnel, ce stage a été
lancé. Il s'agit d'un projet de fin d'études de l'École
Nationale des Sciences de l'informatique(ENSI).Ce projet s'est
déroule au sein de Myiweb en une période de
quatre mois.
Dans ce chapitre nous mettons notre travail dans son contexte.
En premier lieu nous présentons une vue globale sur l'organisme
d'accueil, ensuite nous introduisons brièvement le sujet en expliquant
le travail demandé.
1.1 Présentation générale de
l'organisme
Myiweb est une entreprise
spécialisée dans l'édition et la mise en oeuvre de
logiciels et de progiciels fondé en France en 2002 sous le nom du
CyberCreate. Elle poursuit ses activités en Tunisie en
juin 2008 sous le nom de Myiweb.
Elle conçoit, développe et commercialise des
solutions Extranet et Intranet qui aident à développer
graduellement ses activités dans le domaine de chat et de messagerie.
Cette entreprise mène depuis plusieurs années
des actions visant à l'expérimentation et au déploiement
des outils de Messagerie Instantanée et l'Internet Relay Chat dans son
réseau de communication virtuelle et de messagerie.
Elle a dominé le secteur de chat par une architecture
web fermée. En effet, son développement commercial a
été accéléré par son réseau de
rencontre dans le site web Chat-Land. Etant donné que l'activité
de l'entreprise est totalement orientée dans le développement et
l'amélioration de qualité de service offerte par son site,
MYIWEB a adopté une organisation souple adaptée
aux enjeux de l'entreprise, formée de sept équipes :
· Staff AJAX (Notre équipe)
Améliore durablement la qualité de service offerte par
le site de l'entreprise. Il corrige les bugs découverts, conçoit
et développe des applications Intranet et Extranet.
· Staff JAVA Suivre l'évolution
des technologies java, développe des modules optimisant l'Applet,
cherche des solutions efficaces réduisant les problèmes java
rencontrés par les chateurs.
· Staff TCL Surveille les serveurs IRC
de l'entreprise, développe des robots intelligents et animateurs des
salons de chat. Il se charge aussi de l'implémentation des modules de
statistiques sur IRC.
· Staff Marketing Concevoir des
stratégies et des outils commerciaux augmentant le nombre de
connectés et augmentant le chiffre d'affaire de l'entreprise.
· Staff Service contrôle qualité
Teste et vérifie la stabilité et la conformité de
toutes les applications développées avec les exigences des
cahiers de charge.
· Staff Référencement Adapte
des stratégies gardant un bon référencement du site dans
les annuaires de l'internet.
· Staff juridique Gère le dossier
juridique de l'entreprise (les contrôles, les ressources humaines, les
différents noms de domaine, les abus sur le site, etc.)
1.2 Présentation du cadre du sujet
1.2.1 Critique de l'existant
Actuellement, l'entreprise Myiweb utilise le
système de messagerie Afterlogic. Il s'agit d'un client webmail
Open Source, basé sur la nouvelle technologie AJAX et un SGBD de type
MySQL. Il est indéniable que cette solution peut satisfaire d'une part
les besoins de l'entreprise et de l'internaute d'une autre.
Cependant, il existe plusieurs contraintes de tenir cette
solution. En premier lieu, elle est assez lente de point de vue temps
d'exécution. Elle n'est pas capable de servir un grand nombre
d'internautes. Également, elle est ni stable et ni maintenable.
Par ailleurs, cette solution ne possède pas une
interface d'administration et manque de confidentialité de certains
comptes. En second lieu, l'entreprise paye plus de cinq milles euro par an pour
corriger les bugs de ce webmail.
Le but de ce projet est, ainsi, d'étudier et de
développer une application de mailing accessible par internet. Pour ce
faire il faut d'abord étudier les différentes solutions possibles
et les comparer pour connaitre les points forts et faibles de chacune.
1.2.2 Les solutions proposées
Il existe deux solutions possibles pour notre
problème, la première consiste dans un client léger (une
messagerie web) tandis que la deuxième est un client lourd (un logiciel
de messagerie). En dépit des points communs qu'ont ces deux
alternatives, elles diffèrent l'une de l'autre. La principale
différence entre un webmail et un logiciel de messagerie est la suivante
:
Lors de l'utilisation d'une messagerie Web, par exemple un
compte Yahoo! Mail, nous pouvons simplement accéder
à ce site, à l'aide d'un navigateur et à partir de
n'importe quel ordinateur disposant d'une connexion Internet, autrement dit
dans le monde entier.
Par contre l'utilisation d'un logiciel de messagerie est plus
compliquée et elle nécessite un niveau peu avancé en
informatique. D'abord l'utilisateur doit installer ce logiciel, est le
configure avec les serveurs IMAP et SMTP. Nous notons à titre d'exemple
des logiciels de messagerie << Microsoft Outlook/Outlook Express,
Eudora ou Netscape Mail>>
1.2.2.1 Comparatif entre les clients de
messagerie
Il existe plusieurs logiciels de courrier
électronique. Tous ces derniers sont semblables pour ce qui est des
fonctions essentielles (écrire, envoyer et recevoir des e-mails). Les
différences se font notamment sur les points suivant :
· La plateforme supportée (Windows, Mac ou
Linux).
· Le prix.
· La lourdeur du programme et la facilité
d'utilisation.
· Quelques fonctions avancées telles que la
planification des tâches, le partage d'agenda ou la gestion de listes de
diffusion. Enfin chacun a son propre style et sa propre interface.
Nous avons comparé les principaux logiciels, selon le
type d'usage et les caractéristiques techniques qui nous paraissent les
plus importantes.
Type d'usage
|
Logiciels de messagerie
|
Usage normal
|
Windows Live Mail
|
Thunderbird
|
Usage poussé
|
The Bat!
|
|
IncrediMail
|
Usage professionnel
|
Outlook
|
Pegasus Mail
|
|
Tableau 1.1 -- Comparaison le type d'usage
|
Win
|
Mac
|
Linux
|
Prix
|
IMAP
|
Confid
|
RSS
|
Cal
|
News
|
Windows Live Mail
|
X
|
|
|
g
|
X
|
|
X
|
X
|
X
|
Outlook Express
|
X
|
X
|
|
g
|
X
|
|
|
|
X
|
Outlook
|
X
|
X
|
|
p
|
X
|
X
|
X
|
X
|
|
Thunderbird
|
X
|
X
|
X
|
g
|
X
|
|
X
|
X
|
X
|
Eudora
|
X
|
X
|
|
g
|
X
|
|
|
|
|
FoxMail
|
X
|
|
|
g
|
X
|
X
|
|
|
|
The Bat!
|
X
|
|
|
p
|
X
|
|
|
|
|
IncrediMail
|
X
|
|
|
g/p
|
X
|
|
|
|
|
Pegasus Mail
|
X
|
|
|
g
|
X
|
|
X
|
|
|
Opera Mail
|
X
|
X
|
X
|
g
|
X
|
|
|
|
X
|
Postbox
|
X
|
X
|
X
|
p
|
X
|
|
|
X
|
|
|
Tableau 1.2 -- Comparaison selon les
caractéristiques techniques
· Confid : protection des comptes ou des mails par mot de
passe.
· Cal : fonction calendrier- agenda.
· g :gratuit.
· p : payant.
1.2.3 La messagerie Web 2.0
D'abord nous introduisons le web2.0 et les nouveaux avantages
des applications web. 1.2.3.1 Le web 2.0
Initialement, le monde du web était restreint à
des pages web dites statiques autrement dit à contenu presque constant
ou simplement Web1.0. Ceci satisfaisait les besoins de l'internaute qui se
connectait à internet pour consulter des informations et rarement pour
en ajouter lui-même. Le web 1.5 ou web dynamique fut apparut comme une
première évolution à travers des pages
générées à partir d'une base de données en
constante mise à jour. Une première évolution qui a
ultérieurement offert le fameux Web 2.0 ou plus proprement appelé
le Web Social.
La figure(1.1) illustre bien l'évolution du web1.0 au
web 2.0 depuis les années 90 jusqu'aux années 2000. Nous
constatons une notable évolution du flux d'informations, du nombre
d'internautes et plus précisément ceux qui contribuent à
la construction des données, et un taux d'échange saillant
[N1].
Figure 1.1 -- Du Web 1.0 au Web 2.0
1.2.3.2 Comparatif entre les messageries web
existant
Personne ne peut nier ou même négliger le grand
progrès du service web de messagerie électronique ces
dernières années, tant au point de vue fonctionnalités
qu'au point de vue ergonomie. Les raisons de cet essor sont les miracles des
technologies nouvellement utilisées dans le Web2.0, comme le
Javascript et ses déclinaisons parmi lesquelles le fameux
AJAX.
En effet, ces innovations ajoutent des fonctionnalités
proches d'une application de messagerie. Des courriels qui s'affichent d'un
simple clic, sans qu'il ait besoin de recharger entièrement la page, la
possibilité d'effectuer des glisser-déposer à la souris
d'un dossier à l'autre, la généralisation des actions
accessibles par un clic droit de la souris : tout semble désormais
permis dans ce navigateur Web qui était, il n'y a pas si longtemps que
ça, si statique.
Au cours d'une étude comparative, nous visons les
trois leaders du Web : Yahoo, Microsoft et Google. Cette
comparaison entre les webmail publique est basée sur le plan technique,
l'ergonomie, l'efficacité, le design et les fonctions
additionnelles[N2] :
les PDA1 (iPhone, telephone mobiles de 3G), leurs
capacités de stockage et des services divers tels que le service
autorisant la redirection automatique.
Webmail
|
POP
|
IMAP
|
SMTP
|
Red
|
Mob
|
iPhone
|
PJ
|
Cap
|
Yahoo! Mail
|
X
|
|
X
|
X
|
X
|
X
|
25Mo
|
Illimitée
|
Gmail
|
X
|
X
|
X
|
X
|
X
|
|
25Mo
|
7 Go
|
Hotmail
|
X
|
|
X
|
|
X
|
|
10Mo
|
1Go
|
|
Tableau 1.3 -- Comparaison selon sur le plan
technique [N2]
· POP : boîte consultable avec un logiciel de
messagerie, par le protocole POP.
· IMAP : boîte consultable avec un logiciel de
messagerie, par le protocole IMAP.
· SMTP : service doté d'un serveur SMTP.
· Red. : Service autorisant la redirection automatique
(transfert ou forwarding) des messages vers une autre adresse e-mail. Pratique
si vous devez changer d'adresse.
· Mob. : le webmail dispose d'une version adaptée
pour téléphone mobile.
· iPhone : une application iPhone dédiée est
disponible.
· PJ. : taille maximale des pièces jointes à
l'envoi.
· Cap. : capacité maximale (messages et
pièces jointes) stockée sur le compte.
· Ergonomie :
L'ergonomie a pour objectif de s'assurer que ce qui
apparaît sur l'écran, via l'interface graphique, est
compréhensible pour l'utilisateur, voire agréable.
Gmail : En arrivant sur le marché en
2004, Google a joué la carte de l'innovation, en privilégiant la
simplicité et en remplaçant le classement des courriels par
dossiers par un système plus souple d'étiquettes. Tout aussi
efficace, cette organisation peut cependant déstabiliser.
Yahoo : inspire ses interfaces classiques
d'un logiciel de messagerie en autorisant l'ouverture simultanée de
plusieurs messages, les clics droits de la souris et les
glisserdéposer.
Microsoft : l'agencement des fenêtres,
volets et bandeaux de publicité sème la confusion. Et les
redimensionnements de page s'avèrent catastrophiques. La plupart des
usagers avouent d'ailleurs préférer l'ancienne version
Hotmail[N2].
· Design:
Il faut ici vraiment parler de l'interface de Windows Live
Hotmail (le webmail de Microsoft), ce service intègre des
désignes et des effets artistiques, il nous offre la possibilité
de personnaliser les couleurs des fonds, les emplacements des composants et les
styles de navigation entre les pages. Au contraire de celle de Gmail, qui n'est
pas renversante, mais elle a le mérite d'être claire, propre et
cohérente. Nous avouons un petit faible pour l'interface de Yahoo! Mail
bêta, qui ne fait aucune faute de goût: sobre
1. Un PDA (Personal Digital Assistant, littéralement
assistant numérique personnel, aussi appelé organiseur) est un
ordinateur de poche composé d'un processeur, de mémoire vive,
d'un écran tactile et de fonctionnalités réseau dans un
boîtier compact d'extrêmement petite taille.
et élégante.
· Fonctions inédites :
L'apport du webmail2.0 ne se limite heureusement pas à
l'interface. Certaines fonctionnalités, comme la correction
orthographique directement depuis le champ de saisie des messages, ont ainsi
fait leur apparition. C'est Microsoft qui propose l'outil le plus
évolué dans le domaine, puisque le correcteur agit en temps
réel comme dans Word, alors qu'il faut demander son intervention chez
les concurrents après avoir tapé son texte. Autres fonctions : la
lecture de fils RSS (Yahoo!) ou l'intégration d'un service de chat
(Gmail). Chacun affiche ainsi sa petite particularité.
1.2.4 La Solution retenue et le travail
demandé
Nous avons choisi le webmail plutôt qu'une solution
logicielle car ses avantages sont multiples. Il s'agit tout d'abord la
liberté d'accéder à vos mails depuis n'importe quel poste,
n'importe quel FAI (Fournisseur accès Internet), n'importe quel
pays dans le monde. C'est aussi la sécurité de savoir ses
données (pièces jointes) et sa correspondance stockés sur
des serveurs à distance.
Notre but est l'étude, la conception et le
développement d'une application web de messagerie destinée au
public.
Ce système doit, en premier lieu, fournir toutes les
fonctionnalités de base d'un webmail telles que l'envoie et la
réception des e-mails. Pourtant, il doit mettre à la disposition
de l'utilisateur d'autres services additionnels pour que notre
système pour faire puisse entrainer les internautes.
En second lieu, il doit avoir la capacité de
gérer un grand nombre des connectés en même temps, pour
cela il faut prendre en considération les règles d'optimisation
afin de réduire le temps de réponse et d'alléger la charge
des serveurs de l'entreprise.
En outre, notre webmail doit avoir un espace d'administration
qui facilite la gestion des ressources telles que les comptes utilisateurs et
les boites mails, ainsi que l'impression des courbes de statistique, la
configuration du système, la distribution de charge entre les serveurs
d'envois et le filtrage des flux entrant et sortant (antispameur).
1.2.5 Cycle de développement
Nous avons choisi le modèle Incrémental pour
gérer le cycle de vie de notre projet parce qu'il permet de gérer
les projets de développement de grands systèmes. Il
découpe le système en domaines qui sont traités
individuellement sur le modèle en cascade.
Figure 1.2 -- Le modèle Incrémental
Conclusion
Tout au long de ce chapitre, nous avons essayé de
mettre au point le cadre général de notre travail. Pour ce faire
nous avons tout d'abord précisé l'organisme d'accueil qui
s'avère un élément fondamental dans l'environnement du
projet et dont s'ensuit une étude comparative entre les solutions du
mailing existantes. Finalement nous avons exposé la Travail
demandé.
CHAPITRE2
|
|
Étude Théorique
|
Introduction
L'échange de courriers électroniques est
certainement l'un des plus vieux et des plus utilisés de tous les
services offerts sur Internet. Dans ce chapitre, nous allons faire
l'état de l'art de ce service. Une première partie sera
consacrée à la définition de quelques notions relatives au
service de messagerie, sa structure et les différents agents
intervenants. En une seconde partie, nous allons nous intéresser aux
différents protocoles régulant la messagerie
électronique.
2.1 Le service de messagerie 2.1.1
Définitions
Un service de messagerie, dans sa forme la plus basique, est
un service permettant essentiellement l'échange de messages textuels
entre les différents utilisateurs enregistrés (ayant une adresse
électronique valide) et connectés à un réseau
informatique, que ce soit en local ou sur internet.
Mais, actuellement, les services de messagerie sont beaucoup
plus riches et présentent beaucoup plus de fonctionnalités;
à savoir l'intégration des pièces jointes (joindre un
fichier quelconque au message envoyé), la gestion du courrier
indésirable (les spams) et la manipulation des listes de diffusion
(permettre l'envoi multiple).
Cet échange de messages peut s'effectuer en
différé, c'est-à-dire il n'est pas nécessaire que
le destinataire soit connecté au moment de l'envoi, son message sera
enregistré sur un serveur et il pourra le consulter
ultérieurement. On parle à ce moment de la messagerie
électronique simple.
Par ailleurs, l'échange peut aussi se faire en temps
réel et on parle à ce moment de la messagerie
instantanée.
logiciel qui assure les différentes fonctionnalités
du service de messagerie. Dans la partie suivante nous allons présenter
les différents agents constituant un service de messagerie.
2.1.2 Les différents agents d'un serveur de
messagerie
2.1.2.1 Le Mail User Agent (MUA)
Le MUA est un programme qui sert à lire, écrire,
répondre, recevoir des messages [B1]. Il présente
généralement une interface graphique riche à la
disposition de l'utilisateur. Le MUA ne permet pas de transférer le
message au destinataire, pour cela il fait appel à un MTA.
2.1.2.2 Le Mail Transfert Agent (MTA)
Le MTA est un programme dédié à la
transmission des messages entre utilisateurs que ce soit en local ou sur des
machines distantes. En général on a un seul MTA par
machine[B1]. Un MTA reçoit, habituellement par le protocole
SMTP 1, les emails envoyés soit par des clients de messagerie
électronique (MUA), soit par d'autres MTA. Son rôle est de
redistribuer ces courriers à des Mail Delivery Agent (MDA) et/ou
d'autres MTA.
Parmi les principaux MTA on trouve Qmail, Postfix, Sun ONE
Messaging Server, Send-mail et Sendmail Switch (version commerciale de
Sendmail).
2.1.2.3 Le Mail Delivery Agent (MDA)
Un Mail Delivery Agent marque la fin de l'acheminement du mail
vers la destination[B1]. C'est le MDA qui reçoit le message du
MTA et se charge de le placer dans la boite aux lettres de l'utilisateur. Il
doit donc gérer les éventuels problèmes tels qu'un disque
plein ou une boite aux lettres corrompue et doit impérativement signaler
au MTA toute erreur de délivrance. Parmi les MDA connus nous citons :
Procmail2, maildrop, etc. La figure (2.1) présente le chemin
suivi par un message
2.2 Structure générale et format d'un
message
2.2.1 Structure d'un message
Les messages électroniques échangés
obéissent à une structure bien définie. Ils sont
organisés en trois parties, à savoir : L'entête : elle
comporte plusieurs informations générales mais très utiles
lors de l'envoi du message. Voici quelques exemples des champs de
l'entête :
1. Le Simple Mail Transfer Protocol (littéralement
<< Protocole simple de transfert de courrier >>),
généralement abrégé SMTP, est un protocole de
communication utilisé pour transférer le courrier
électronique vers les serveurs de messagerie électronique.
2. Procmail est un outil permettant principalement de filtrer
des messages électroniques
Figure 2.1 -- Acheminement d'un message
électronique
· Le champ FROM : contient l'adresse
source du message.
· Le champ RECEIVED : chaque machine qui
reçoit un message ajoute son adresse dans ce champ.
· Le champ DATE : contient la date d'envoi
du message.
· Le champ TO : contient la liste des
destinataires séparés par des virgules.
· Le corps : il contient les
données utiles, c'est à dire le contenu du message à
transmettre. Il doit être impérativement séparé de
l'entête par une ligne vide. Il faut faire attention à ne pas
insérer des caractères non imprimables tels que les espaces ou
les tabulations sinon la structure du message sera erronée.
· L'enveloppe : par analogie avec
l'enveloppe du courrier traditionnel, elle contient
essentiellement des informations concernant le destinataire
et l'expéditeur. Si le message est destiné à plusieurs
destinataires, chacun a sa propre enveloppe mais la même entête et
le même corps du message. L'enveloppe est envoyée
séparément du reste du message. Elle sert à router le
message vers une destination bien déterminée.
2.2.2 Les formats standards de messages : la norme
MIME
Pour des raisons de compatibilité, plusieurs normes
ont été élaborées afin d'uniformiser la structure
des messages et de définir des formats standards. Parmi ces standards
nous citons Multipurpose Internet Mail Extension ou MIME. Les principaux
apports du standard MIME [N3] sont :
· Possibilité d'avoir plusieurs objets
(pièces jointes) dans un même message.
· Une longueur de message illimitée.
· L'utilisation de jeux de caractères (alphabets)
autres que le code ASCII.
· L'utilisation de texte enrichi (mise en forme des
messages, polices de caractères, couleurs, etc.)
· Des pièces jointes binaires (exécutables,
images, fichiers audio ou vidéo, etc.) comportant éventuellement
plusieurs parties.
MIME utilise des directives d'entête spécifiques
pour décrire le format utilisé dans le corps d'un message, afin
de permettre au client de messagerie de pouvoir l'interpréter
correctement :
· MIME-Version : Il s'agit de version du
standard MIME utilisée dans le message. Actuellement seule la version
1.0 existe.
· Content-type : Décrit le type et
les sous-types des données.
· Content-Transfer-Encoding :
Définit l'encodage utilisé dans le corps du message.
· Content-ID : Représente un
identificateur unique de partie de message.
· Content-Description : Donne des
informations complémentaires sur le contenu du message.
· Content-Disposition : Définit les
paramètres de la pièce jointe, notamment le nom associé au
fichier grâce à l'attribut filename.
2.2.3 Les principaux types de MIME
Le type MIME, utilisé dans l'entête
Content-Type, est utilisé pour typer les documents attachés
à un courrier[N3]. Les principaux types de données,
appelés parfois " types de données discrets ", sont les suivants
:
· text: données textuelles
lisibles. text/rfc822 [RFC822] ; text/plain [RF646] ; text/html [RF854].
· image: données binaires
représentant des images numériques image/jpeg , image/gif ,
image/png.
· audio : données numériques
sonores audio/basic; audio/wav.
· video : données vidéos :
video/mpeg.
· application : données binaires
autres; application/octet-stream; application/pdf
2.2.4 Les types de codage
Pour transférer des données binaires, MIME propose
cinq formats de codage pouvant être utilisé dans l'entête
Transfer-encoding:
· 7bit : format texte codé sur 7
bits (pour les messages non accentués).
· 8bit : format texte 8 bits.
· quoted-printable : format
Quoted-Printable, recommandé pour les messages utilisant un alphabet
codé sur plus de 7 bits (présence d'accents par exemple).
· base64 : format Base 64,
recommandé pour l'envoi de fichiers binaires en pièce jointe.
· binary: format binaire.
2.3 Les différents protocoles
utilisés
Figure 2.2 -- La couche protocolaire TCP/IP
2.3.1 Le protocole Simple Mail Transfert Protocol
(SMTP)
C'est un protocole de communication utilisé pour
transférer le courrier [N4] vers les serveurs de messagerie
électronique. Il est dédié exclusivement à l'envoi
des messages vers un serveur mais pas à la réception. Comme son
nom l'indique, il s'agit d'un protocole simple à utiliser.
On doit commencer par spécifier l'expéditeur du
message puis, la ou les destinations. Après vérification de leur
existence, le corps du message est transféré. SMTP utilise par
défaut le port 25 pour ses échanges.
Le logiciel sendmail est l'un des premiers serveurs de
messagerie électronique à utiliser SMTP. Aujourd'hui, la
quasi-totalité des clients email peuvent utiliser SMTP pour envoyer
leurs messages.
2.3.2 Les protocoles Post Office Protocol (POP) et
Internet Message Access Protocol (IMAP)
Bien qu'ils assurent la même finalité, leurs
manières de procéder par défaut diffèrent. Pour
POP, il se connecte au serveur, télécharge tout les messages sur
la machine locale en les marquant comme nouveaux messages, les efface du
serveur et se déconnecte. L'utilisateur peut alors consulter ses
messages hors connexion.
Pour IMAP, la consultation des messages se fait sur le serveur,
rien n'est téléchargé en local et rien n'est effacé
du serveur sauf suite à la demande explicite de l'utilisateur.
2.3.3 Le protocole Secure Socket Layer (SSL)
Á la différence des protocoles
précédents, SSL n'est pas spécifique aux applications de
messagerie. Il s'agit d'un protocole de sécurisation des communications
sur un réseau informatique, notamment internet. En effet, avec le
développement d'internet et l'apparition de nouveaux domaines
d'activités assez sensibles tels que les transactions bancaires et le
e-commerce, le besoin d'une communication confidentielle et
sécurisée s'est fait sentir. Dès lors, plusieurs
mécanismes et protocoles de sécurisation ont vu le jour. L'un des
premiers à être développé et des plus
répandus aujourd'hui est SSL.
Développé à l'origine par Netscape
3, il a été nommé TLS pour Transport Layer
Security par l'IETF (Internet Engineering Task Force) après le
rachat du brevet de Netscape en 2001. Par abus de langage on parle aujourd'hui
de SSL pour désigner indifféremment SSL ou TLS. Le protocole SSL
s'intercale entre la couche transport et la couche application de la pile
protocolaire TCP/IP (figure 2.3).
Figure 2.3 -- Pile protocolaire TCP/IP avec SSL
3. Netscape est une entreprise d'informatique
américaine qui a été pionnière du World Wide Web
avec son navigateur Web Netscape Navigator. L'entreprise a existé
uniquement de 1994 à 2003, et en tant que filiale d'AOL à la
fin.
Situé au dessous de la couche applicative, SSL peut
être utilisé indépendamment du type d'application. Il peut
être utilisé au dessous de http pour sécuriser simplement
des pages inter-net, au dessous de SMTP, IMAP ou POP pour sécuriser les
échanges de messagerie,etc.
Bref, c'est un protocole de sécurisation de toute sorte
de trafic de données sur un réseau. SSL fonctionne suivant un
mode client-serveur. Il fournit quatre objectifs de sécurité
importants :
· L'authentification du serveur.
· La confidentialité des données
échangées (session chiffrée).
· L'intégrité des données
échangées.
· De manière optionnelle, l'authentification du
client avec un certificat numérique.
Pour son fonctionnement, SSL utilise une combinaison de
systèmes de cryptologie4 à clé
symétrique et à clé publique. Le premier système
est beaucoup plus rapide mais le second offre un meilleur niveau de
sécurité. Ainsi, SSL tire profil des deux. Une session SSL
commence avec un échange de messages appelé la phase de "
handshake ". Cette phase permet, en premier temps, au serveur de s'authentifier
auprès du client moyennant sa clé publique, puis le client et le
serveur coopèrent pour produire une clé symétrique qui
sera utilisée pour crypter, décrypter tout les échanges de
la session en cours.
Conclusion
Ainsi nous avons fait le tour des différents
éléments théoriques impliqués dans la
réalisation d'une solution de messagerie. Nous avons commencé par
présenter qu'est ce qu'un service de messagerie électronique, son
architecture et les différents agents intervenant dans son
fonctionnement. Nous avons ensuite étudié le format d'un message
électronique et présenté le standard MIME qui normalise la
structure et le codage des messages. Et finalement, nous avons
présenté une multitude de protocoles intervenant dans les
communications entre les différents agents du service de messagerie.
Maintenant, il reste à voir les différents outils technologiques
offerts pour la réalisation d'une telle solution.
CHAPITRE3Analyse et spécification des
besoins
Introduction
Afin de garantir la réussite et l'efficacité de
notre projet, il faut à ce stade du travail définir avec
précision la bordure de la solution à développer. Ceci
inclut l'énumération des différents services que notre
système est supposé offrir aux différents utilisateurs.
Dans ce chapitre, nous commençons par définir
les besoins fonctionnels et non fonctionnels de notre solution. Puis, en se
basant sur cette analyse, nous dégageons une spécification
détaillée de la solution retenue.
3.1 Analyse Fonctionnelle
Nous distinguons deux types des acteurs : L'internaute et
l'administrateur. Nous présentons dans ce qui suit les besoins de chaque
type d'acteur
3.1.1 Les besoins de l'internaute
Le client doit pouvoir jouir des fonctionnalités
suivantes :
· S'authentifier selon le Protocol LDAP 1
(Lightweight Directory Access Protocol).
· Récupérer le mot de passe oublié. Si
l'internaute oublie son mot de passe, il sera automatiquement redirigé
vers une page de récupération de ce dernier.
· Envoyer des messages selon le protocole POSTFIX 2.
1. Voir annexes
2. Postfix est un serveur de messagerie électronique
et un logiciel libre développé par Wietse Venema et plusieurs
contributeurs. Il se charge de la livraison de courriers électroniques
(courriels) et a été conçu comme une alternative plus
rapide, plus facile à administrer et plus sécurisée que
l'historique Sendmail.
· Joindre plus qu'un fichier de types différents.
· Composer des messages en html.
· Sauvegarder automatiquement des mails et des contacts
dans des dossiers personnalisés.
· Envoyer des e-mails à des adresses multiples (TO,
CC et BCC).
· Organiser et personnaliser les dossiers de messagerie.
· Glisser-déposer (drag 'n drop) de message d'un
répertoire à un autre.
· Marquer les messages (lu/non lu/pièce
jointe/récent).
· Recevoir et visualiser des messages à travers le
protocole IMAP avec un rafraichissement automatique de la boite de
réception.
· Créer des carnets d'adresse (Adresse book)
interactifs (Enregistrement automatique des contacts, création des
groupes, importation et exportation des carnets d'adresse de différents
formats).
· Créer et partager un agenda personnel ou un agenda
d'un groupe.
· Convertir les e-mails en des taches ou des
rendez-vous.
· Avoir un service de messagerie Instantanée.
· Avoir un espace de profil où le client peut mettre
des informations supplémentaires telles que ses photos et son statut.
· Avoir l'accès aux profils de ses amis.
· Avoir un moteur de recherche sur les profils dans les
serveurs IM (Instant messaging) propre à l'entreprise Myiweb
ainsi que sur les autres serveurs existants.
· Intégrer des informations provenant des autres
sites grâce aux flux RSS (Rich Site Summary) , c'est la technologie qui
permet d'exporter automatiquement les nouveautés diffusées sur un
site choisi précédemment.
· Avoir un affichage de la météo via le web
service "The Weather Channel Interactive" 3.
3.1.2 Les besoins de l'administrateur
Toujours après authentification, l'administrateur devra
avoir accès aux opérations suivantes :
· Installer et configurer le webmail : L'administrateur
peut consulter les fichiers de configuration à travers des interfaces
web et y introduire les modifications nécessaires selon ses besoins sans
tenir compte de la régénération des fichiers de
configurations ni du redémarrage de service.
· Gérer les noms des domaines sachant que
l'administrateur peut créer plus qu'un domaine.
· Faire un "mapping" d'adresse. En effet,
l'administrateur peut créer un alias sur une boite aux lettres de telle
sorte que les mails qui sont envoyés vers cette boite sont
redirigés vers la boite alias.
· Contrôler manuellement la sécurité.
En d'autre termes, l'administrateur peut effectuer un filtrage implicite sur
des domaines ou également des adresses IP (Internet
Protocol).
· Gérer les comptes des inscrits.
· Offrir la possibilité de créer des boites
aux lettres pour les utilisateurs tout en fixant un quota sur disque.
· Supprimer des boites aux lettres.
· Modifier le quota d'une boite aux lettres.
· Créer un nouveau groupe et associer un utilisateur
au groupe désiré.
· Avoir une liste noire dans laquelle il met les adresses
IP correspondant à des clients indésirables.
3.2 Analyse Non Fonctionnelle
Un besoin non fonctionnel est une restriction ou une
contrainte qui pèse sur un service du système, telle que les
contraintes liées à l'environnement et à
l'implémentation, les exigences en matière de performances, les
dépendances de plate-forme, la facilité de maintenance,
l'extensibilité et la fiabilité.
· L'ergonomie des interfaces:
La solution doit présenter une interface ergonomique
englobant toutes les fonctionnalités offertes. La manipulation de
l'interface ne doit pas nécessiter des connaissances poussées
en informatique, elle doit être simple et claire afin de
s'adapter aux connaissances informatiques de notre utilisateur.
· Robustesse et maintenabilité :
L'application doit permettre le stockage des informations
concernant tous les internautes inscrits et les différents traitements
utiles pour le fonctionnement correct, ainsi qu'assurer une gestion exhaustive
des erreurs.
· Sécurité :
Notre application doit garantir à l'utilisateur
l'intégrité des données c'est-à-dire qu'elles
gardent leur forme et leur contenu original. En outre, elle doit
protéger la confidentialité en assurant la validité de
l'identité de l'utilisateur. Ceci peut se faire entre autres par le
moyen d'un mot de passe assurant le contrôle d'accès. Notre
système doit également certifier la disponibilité qui
s'avère primordiale pour bon fonctionnement.
· Fiabilité et rapidité :
Notre système doit garantir la rapidité et la
fiabilité de la recherche des informations, ainsi qu'une gestion
optimale des ressources.
3.3 Spécification
détaillée
Afin de détailler les besoins
précédemment spécifiés, une bonne réflexion
autour du développement de notre application par un langage de
modélisation comme l'UML (Unified Modeling Language)
s'avère nécessaire. Nous utilisons alors dans la suite les
diagrammes des cas d'utilisation et les diagrammes de séquences comme
moyens de notre spécification.
3.3.1 Les diagrammes de cas d'utilisation
Les diagrammes de cas d'utilisation illustre les relations
entre les cas d'utilisation du système et l'ensemble des acteurs qui
agissent sur le système[B2]. Ainsi ces diagrammes permettent de
décrire le comportement du système de point de vue
utilisateur.
Une première réflexion pour La
réalisation des diagrammes de cas d'utilisation pour notre
application, nous amène à distinguer entre deux acteurs :
L'internaute et l'administrateur.
3.3.1.1 Diagramme de cas d'utilisation de
l'internaute
Pour des raisons de visibilité, nous avons opté
pour la séparation des cas d'utilisation pour les fonctions principales
(voir figure 3.1) et un autre pour les fonctions secondaires (voir figure
3.2).
Figure 3.1 -- Diagramme de cas d'utilisation de
gestion des e-mails
La gestion des e-mails: La
fonctionnalité principale du système est l'échange des
messages. Ainsi, un utilisateur peut écrire un message et l'envoyer
directement à la liste des destinations choisies, dans ce cas il peut
aussi en garder une copie (l'enregistrer), il a également la
possibilité d'écrire un message et l'enregistrer pour un envoi
ultérieur. Une fois un message reçu, l'utilisateur peut
visualiser son contenu (le lire) et éventuellement envoyer une
réponse. Il doit pouvoir distinguer entre les messages lus et les
messages non lus. Un utilisateur gère aussi sa boite aux lettres en
créant ses propres dossiers personnels et en y archivant ses messages
à sa
guise. Évidemment, il peut déplacer les mails
de la boite de réception vers un dossier ou les déplacer d'un
dossier à un autre. Il peut, par ailleurs, supprimer des mails
temporairement (vers la corbeille) ou définitivement.
Figure 3.2 -- Diagramme de cas d'utilisation des
services secondaires
Les services secondaires : Pour que notre
webmail procure plus d'interactivité, il faut qu'il fournisse d'autres
fonctionnalités additionnelles, utiles et pratiques telles que le carnet
d'adresse, le calendrier, l'espace profil, la météo et les news.
L'utilisateur peut créer un carnet d'adresse qui lui permet de conserver
des informations sur des personnes ou des groupes.
Chaque entrée du carnet d'adresses comprend, au moins,
le pseudonyme d'une personne ou d'un groupe et son adresse électronique
complète. Le carnet d'adresses permet également d'inclure un
pseudonyme dans la liste des destinataires, et d'envoyer un nouveau message.
L'internaute éprouve également le besoin d'un calendrier
personnalisable, performant et simple à utiliser. Le calendrier est
imprimable ou exportable vers le format PDF (Portable Document
Format).
Il lui permet de gérer facilement tous ses rendez vous
et ses taches, et de bien organiser le planning d'une journée, d'une
semaine ou d'un mois complet. Affin de lui garantir une communication plus
rapide et conviviale, un utilisateur a une liste des amis qu'avec les quels il
peut échanger des messages instantanés. Bien évidemment
tous les cas d'utilisations cités dans figure 3.2 requièrent au
préalable une phase d'authentification. Un utilisateur sans compte
valide n'a accès à aucun service.
Pour obtenir la météo en temps réel
d'une ville donnée, l'utilisateur doit sélectionner la ville, le
Web service
Weather.com retourne alors les
données météo qu'il fait présentement dans la ville
choisie.
Enfin l'internaute a la possibilité de suivre les
actualités dans les domaines qui lui intéressent (politique,
monde, société, sports, écologie), consulter et rechercher
dans des différentes sources d'information.
La technologie RSS permet de concentrer les sources
d'information et de filtrer les données pour ne garder que les
informations utiles. Pour ce faire, l'utilisateur mentionne simplement
l'adresse URL du fichier RSS de chaque site, et définit les filtres afin
que celui-ci n'affiche que les articles intéressants 4.
3.3.1.2 Diagramme de cas d'utilisation de
l'administrateur
L'administrateur est un utilisateur distingué. Il
jouit, exclusivement des privilèges différents de celle de
l'internaute. Il est le seul à pouvoir filtrer les comptes utilisateurs.
Certaines informations sont modifiables uniquement par l'administrateur tel que
les noms de domaines, les valeurs de quota et les configurations des
serveurs.
Les privilèges de l'administrateur lui accordent aussi
le droit exclusif de configurer le robot d'envoi. Il est à noter que les
différentes tâches que l'administrateur est supposé
réaliser s'accomplissent intégralement sur le serveur. Bien
évidemment, l'administrateur doit être aussi identifié par
un login et un mot de passe (voir la figure 3.3).
Figure 3.3 -- Diagramme de cas d'utilisation de
l'administrateur
3.3.2 Diagrammes de séquences
Ces diagrammes sont la représentation graphique des
interactions entre les acteurs et le système selon un ordre
chronologique. Ces interactions sont ainsi montrées dans le cadre d'un
scénario d'un diagramme des cas d'utilisation et ils ont pour but de
décrire comment se déroule les actions entre les acteurs ou
objets[B2].
Ainsi, plusieurs diagrammes de séquences peuvent
être représentés pour décrire le déroulement
des différentes actions entre nos acteurs. D'autre coté,
plusieurs diagrammes de séquences peuvent se rassembler, nous nous
contenterons alors de présenter uniquement les diagrammes de
séquences distincts.
3.3.2.1 Scénario de navigation entre les pages
sécurisées
Le diagramme de séquence intitulé <<
navigation entre les pages sécurisées >> et
illustré par la figure 3.4 clarifie bien le scénario d'une
navigation sécurisée entre les pages protégés
telles que la page d'authentification. Le navigateur joue le rôle de
l'intermédiaire entre l'internaute et notre système. Il constitue
la plateforme qu'à travers laquelle le client exprime sa volonté
d'exécuter une action. En contre partie, c'est au système de
lancer les différentes requêtes et d'en renvoyer le
résultat à travers le navigateur.
Le client initie le scénario d'une navigation par la
demande d'une page html. Le navigateur envoie ainsi une requête https
à la couche ssl (Secure Socket Layer) ayant le rôle
de chiffrer et de protéger la confidentialité des données
qui. A son tour, cette couche lance une connexion du serveur Apach5.
Ce dernier se charge de trouver la page demandée et de la renvoyer au
navigateur ou elle s'affiche au client.
Figure 3.4 -- Diagramme de séquence de
navigation entre les pages sécurisées
5. Apache HTTP Server, souvent appelé Apache, est un
logiciel de serveur HTTP produit par l'Apache Software Foundation. C'est le
serveur HTTP le plus populaire du Web. C'est un logiciel libre avec un type
spécifique de licence, nommée licence Apache.
3.3.2.2 Scénario de l'authentification d'un
utilisateur
Figure 3.5 -- Diagramme de séquence de
l'authentification d'un utilisateur
L'accès au système se fait par le biais d'une
adresse mail et d'un mot de passe. Ainsi, lors de l'appel de l'application, la
page d'authentification se charge. L'utilisateur saisie ses paramètres
personnels qui, après la validation, sont envoyés par l'objet
<<Auth-session >> vers l'objet <<Pear-db
>>.
Ce dernier a comme rôle de filtrer et d'exécuter
la requête. Par la suite, deux cas de figure se posent : L'échec
ou la réussite de l'authentification. Dans le premier cas, l'internaute
sera directement rediriger vers la page << mot-passe-oublier
>>, à travers cette page il peut récupérer son
mot de passe en répondant à son question de
sécurité. S'il a encore échouer l sera automatiquement
rediriger vers la page d'inscription.
3.3.2.3 Scénario de l'inscription d'un
internaute
L'internaute doit choisir un des deux types d'inscription,
rapide ou complète. Une inscription rapide consiste à remplir un
formulaire qui demande le minimum d'informations, telles que le nom,
l'âge et le sexe. Cependant, une inscription complète exige des
informations additionnelles, telles que la question secrète et sa
réponse, une photo, le numéro de téléphone.
Figure 3.6 -- Diagramme de séquence de
l'inscription d'un internaute
3.3.2.4 Présentation des courbes de
statistique
Figure 3.7 -- Diagramme de séquence de
présentation des courbes de statistique
L'administrateur peut consulter les différentes
statistiques effectuées sur plusieurs événements tels que
les trafics d'envoi et de réception des e-mails, le pourcentage des
clients actifs et les taux d'envoi du robot.
Pour faciliter cette tache, nous avons consacré toute une
interface dédiée à la représentation des courbes de
statistiques d'une manière plus lisible et compréhensible que les
tableaux.
Derrière cette interface, il existe un traitement
effectué par les objets Collecteur, Statcompteur et
Analiseur-courbe.
Le Collecteur est responsable de la collection des informations
prévenant d'une base de données ou des fichiers log.
Le stat-compteur a le rôle de centraliser les
calculs ainsi que d'effectuer les opérations convenables pour avoir des
résultats utiles à l administrateur.
3.3.2.5 Scénario de la modification d'un
profil
Figure 3.8 -- Diagramme de séquence de la
modification d'un profil
L'utilisateur a la possibilité de modifier ses
informations personnelles. Pour ce faire, il saisit les changements à
effectuer et en validant le changement, ses paramètres seront
modifiés automatiquement sans l'intervention de l'administrateur.
3.3.2.6 Scénario d'envoi des e-mails
Ce diagramme de séquence illustre les interactions
d'un utilisateur avec le système lors de l'envoi d'un message.
Après l'écriture d'un message, l'utilisateur choisit les
destinataires qui peuvent être choisis depuis le carnet d'adresses. Lors
de la confirmation d'envoi d'un message, le serveur SMTP/POP vérifie
l'existence du destinataire et stocke le message dans un répertoire soit
la boite de réception du destinataire.
Figure 3.9 -- Diagramme de séquence d'envoi
des e-mails
3.3.2.7 Scénario de calcul des
statistiques
L'administrateur peut consulter les statistiques
effectuées sur les activités de l'internaute. Nous tenons par
exemple dans la figure 3.10, le robot envoi des e-mails à l'internaute.
Lorsque l'internaute ouvre sa boite de réception, nous détectons
les actions qu'il effectue, telles que l'ouverture, le déplacement ou la
suppression de cet e-mail. L'administrateur a l'intérêt de savoir
tous ces types d'actions donc nous les sauvegardons.
Figure 3.10 -- Diagramme de séquence de calcul
des statistiques
3.3.2.8 Scénario de la planification du robot
d'envoi
Figure 3.11 -- Diagramme de séquence de la
planification du robot d'envoi
ce dernier. L'objet <<crontab>>
est une instance de la classe responsable de l'interaction entre ces deux
acteurs. Cette classe simule les crontab6 sur le système
linux.
Conclusion
Dans ce chapitre, nous avons cerné les objectifs du
système cible. Ces objectifs doivent tenir compte des problèmes
de la solution existante. Cette phase va nous utile pour bien élaborer
le modèle de conception de l'application. Dans le prochain chapitre nous
aborderons la partie conception décrivant la modélisation des
besoins exprimés dans cette section.
6. Crontab est le nom du programme sous Unix (ou Linux) qui
permet d'éditer des tables de configuration du programme cron. Par
extension, on appelle souvent cron (ou cron job en anglais) toute application
lancée à horaire fixe.
Introduction
Après avoir achevé la phase d'analyse et
spécifications, nous entamons maintenant la phase de conception. Cette
étape s'avère primordiale pour le déroulement du projet et
à pour but de détailler les tâches à entreprendre
ainsi que de préparer le terrain pour l'étape de
réalisation.
Pour ce faire, nous présentons une conception
générale de l'application suivie d'une conception plus
détaillée présentant le schéma de la base de
données utilisée. Ensuite nous détaillons les
différents modules de l'application aussi bien que les relations entre
ces modules moyennant un diagramme de paquetage et un diagramme de classe.
Enfin, nous exposons la cinétique de l'application.
4.1 Conception architecturale
Tout système d'informations nécessite la
réalisation de trois groupes de fonctions : le stockage des
données, la logique applicative et la présentation. Ces trois
parties sont indépendantes l'une de l'autre : nous pouvons ainsi
modifier la présentation sans modifier la logique applicative.
La conception de chaque partie doit également être
indépendante. Toutefois la conception de la couche la plus basse est
utilisée dans la couche supérieure.
Ainsi, la conception de la logique applicative se base sur le
modèle de données, alors que la conception de la
présentation dépend de la logique applicative.
4.1.1 Architecture trois-tiers
Le principe d'une architecture trois-tiers consiste à
séparer la réalisation des trois parties vues
précédemment (stockage des données, logique applicative et
présentation)[N5].
permettant la réalisation classique d'un système
en architecture trois tiers sont les suivants :
· Système de base de données relationnel
(SGBDR) pour le stockage des données.
· Serveur applicatif pour la logique applicative.
· Navigateur web pour la présentation.
Figure 4.1 -- Les couches d une architecture trois
tiers
4.1.1.1 Couche de présentation
La présentation est la partie la plus
immédiatement visible par l'utilisateur. Au niveau de cette couche se
fait l'enregistrement, la récupération et la gestion des
données persistantes dans une base de données.
4.1.1.2 Couche Services
Cette couche réunit les traitements techniques, non
fonctionnels qui sont pris en charge par le Framework de
développement.
4.1.1.3 Objets métiers
Ces objets font le travail essentiel lié au domaine de
l'application. Ils nécessitent les traitements techniques, non
fonctionnels de la couche service pour gérer la sécurité,
le transactionnel, la concurrence.
4.1.1.4 La couche de persistance
Elle est composée de la base de données. Le
plus souvent on y ajoute une couche qui effectue la correspondance entre les
objets et la base de données. Souvent cette couche sert aussi de cache
pour les objets récupérés dans la base de données
et améliore donc les performances.
4.1.1.5 Avantages de l'architecture trois tiers
L'application trois tiers présente divers avantages à
savoir :
· La logique applicative est déplacée au
niveau du serveur d'application mais reste programmée à l'aide
des mêmes technologies liées aux bases de données
relationnelles.
· L'application trois tiers présente divers
avantages à savoir : La logique applicative est déplacée
au niveau du serveur d'application mais reste programmée à l'aide
des mêmes technologies liées aux bases de données
relationnelles.
· La facilité de déploiement.
L'application en elle même n'est déployée que sur la partie
serveur (serveur applicatif et serveur de base de données). Le client ne
nécessite qu'une installation et une configuration minime. En effet, il
sufit d'installer un navigateur web compatible avec l'application pour que le
client puisse accéder à l'application. Cette facilité de
déploiement aura pour conséquence non seulement de réduire
le coût de déploiement mais aussi de permettre une
évolution régulière du système. Cette
évolution ne nécessitera que la mise à jour de
l'application sur le serveur applicatif.
· L'amélioration de la sécurité.
Avec une architecture trois-tiers l'accès à la base n'est
effectué que par le serveur applicatif. Ce serveur est le seul à
connaitre la façon de se connecter à cette base. Il ne partage
aucune des informations permettant l'accès aux données, en
particulier le login et le password de la base. Il est alors possible de
gérer la sécurité au niveau de ce serveur applicatif, par
exemple en maintenant la liste des utilisateurs avec leurs mots de passe ainsi
que leurs droits d'accès aux fonctions du système. On peut
même améliorer encore la sécurité par la mise en
place d'une architecture réseau interdisant totalement l'accès au
serveur de base de données pour les utilisateurs finaux[N6].
4.1.2 Architecture MVC
Le modèle MVC (Model/View/Controller) est un
schéma de programmation qui prend en compte toute l'architecture d'un
programme et classe les différents types d'objets qui composent
l'application dans 3 catégories:
4.1.2.1 La vue
ne doit être effectué dans cette partie. Mais, en
contre partie ils affichent les résultats provenant des objets "model"
et s'assurent que ces données sont correctement
affichées.[N7]
4.1.2.2 Le modèle
Les modèles représentent les données de
l'application (les bases de données en faisant par-tie) et
définissent la logique de manipulation de ces données. C'est dans
cette partie que vont s'effectuer les traitements, on ne s'occupe absolument
pas de la mise en forme mais bien des données seules. Dans une
application respectant les règles du modèle MVC, les
données les plus importantes seront encapsulées dans les objets
modèles.[N7]
4.1.2.3 Le contrôleur
Le contrôleur gère l'interaction avec
l'utilisateur. Ainsi c'est dans cette partie que va se réaliser
l'interaction entre la vue et le modèle. En effet, les objets
contrôleur reçoivent les requêtes utilisateur puis
détermine quelles parties des objets vues et modèles sont
requises. Ils constituent donc l'intermédiaire entre les deux autres
types d'objets.[N7]
4.1.2.4 Avantages du modèle MVC
Le modèle MVC impose donc une séparation totale
entre le traitement, l'interface et la communication entre ces deux parties.
Cela permet d'avoir non seulement des objets réutilisables pour d'autres
applications, mais aussi de pouvoir faire évoluer aisément son
programme. Ainsi, si l'on souhaite modifier sa base de données il suffit
de revoir son "model" et cela est valable pour le cas ou l'on souhaite changer
d'interface. Les 3 parties du model MVC sont réellement autonomes.
Aucunes d'elles ne s'occupent du fonctionnement de l'autre.[N8]
4.2 La correspondance entre le modèle MVC et
l'application
Grâce à la séparation en couches, la
souplesse, la maintenance et le développement de l'application se
trouveront grandement améliorés. Dans ce cadre, la figure 4.3 met
en évidence la conformité de notre application vis-à-vis
du modèle MVC. Le serveur SMTP/POP (couche métier) qu'on a
implémenté à l'aide des sockets 1, qui sont des
points de connexion pour la communication client-serveur, reçoit deux
types de requêtes.
· Le premier type consiste à la gestion des
messages à l'aide de PHPMAILER 2. Le Serveur
stocke les messages dans le disque dur qui est l'un des parties de la couche de
persistance.
· Le deuxième type consiste en des requêtes
SQL afin de garantir les différentes fonctionnalités
d'administration. Le serveur traite ces requêtes à l'aide de l'API
(Application Programmable Interface) Pear.MDB2 » 3 et
réalise les modifications dans la base de données.
Figure 4.3 -- L'application en MVC
1. Il s'agit d'un modèle permettant la communication
inter processus (IPC - Inter Process Communication) afin de permettre à
divers processus de communiquer aussi bien sur une même machine
qu'à travers un réseau TCP/IP.
2. La librairie PHPMailer permet d'envoyer des courriers
électroniques depuis une application PHP. Lorsqu'elle est
configurée pour utiliser la commande sendmail, une
vulnérabilité au niveau de la validation des champs saisis permet
l'exécution de code arbitraire à distance.
3. L'extension PEAR DB fournit une gamme de fonctions de
gestion de base de données permettant d'utiliser le même code quel
que soit la base de données. Cela permet, si vous décidez de
changer de BDD de ne pas être obligé de modifier de nouveau tous
vos scripts. Un simple changement de variable vous permettra de passer de MySQL
à Oracle par exemple.
4.3 Conception détaillée
Dans cette partie nous commençons par définir en
détail la base de données. Nous présentons par la suite
les différents modules du système avant d'exposer les diagrammes
des classes. Nous finissons par introduire la cinétique de
l'application.
4.3.1 Conception de la base de données
Le schéma 4.4 explique la conception de la base en
illustrant les relations entre les tables. L'entité USER
décrite par un id et un e-mail, le nom et le prénom de
l'internaute ainsi qu'un mot de passe pour l'authentification contient
également d'autres informations supplémentaires.
L'internaute peut consulter sa boite aux lettres (via la table
Mail), son calendrier (via la table
Calendrier) ainsi que le carnet d'adresse (via la table
Carnet-adresse).
Il peut également configurer des paramètres tels
que le langage et les couleurs du fond (par le biais de la table
Configuration), ou bien consulter l'historique des
commentaires. En outre, il peut créer ou joindre des groupes (via la
table Associa-groupe-client).
L'administrateur à son tour peut consulter certaines
tables à travers des interfaces web pour contrôler et gérer
l'application.
Présentation des tables:
· Table Mailbox : regroupe la liste des
boites de réception des clients.
· Table Mail: sauvegarde les emails
échangés par les internautes.
· Table Joindre : contient la liste des
jointures des fichiers de chaque utilisateur.
· ]Table Fichier : regroupe les fichiers
échangés entre les différents utilisateurs.
· ]Table Commentaire : enregistre les
commentaires et les statuts de chaque utilisateur.
· Table Calendrier : contient les
événements créés par les utilisateurs.
· Table Carnet-adresse : regroupe les
listes des contacte de chaque internaute.
· Table Configuration: sauvegarde les
paramètres de l'application choisis par l'utilisateur.
· Table Associa-groupe-client :
Représente l'association groupe client.
· Table Groupe : Contient la liste des
groupes utilisateur.
· Table Session: Sauvegarde la session
utilisateur.
Figure 4.4 -- Modèle Entité
Association
4.3.2 Décomposition en paquetage
Pour passer à la conception, nous nous fondons sur les
principes de l'approche orientée objet. À cet effet, nous passons
d'une structuration fonctionnelle via les cas d'utilisation, à une
structuration objet via les classes et les paquetages.
Vu le nombre de classes candidates défini dans notre
application, il s'avère important de les découper en paquetages
pour mieux comprendre le rôle global de chaque partie et faciliter la
maintenance du code. Pour identifier les paquetages, nous nous sommes
basés sur deux critères : cohérence et
indépendance.
Concernant le premier critère, nous avons
essayé de regrouper les classes qui ont une forte corrélation
entre elles et qui appartiennent au même domaine fonctionnel. Elles
doivent rendre des services de même nature aux utilisateurs. Tandis que
pour le deuxième critère, nous avons essayé de minimiser
les dépendances entre les paquetages en minimisant au maximum le nombre
de relations qui les traversent. Le diagramme de paquetage de notre application
est représenté dans la figure 4.5.
Figure 4.5 -- Diagramme de paquetage
· Package gestion des sources de données : il
comprend les interfaces de connexion, d'ajout et de suppression des sources de
données.
· Package gestion des processus : représente le
noyau de l'application, il regroupe les classes qui gèrent les actions
exécuté par l'utilisateur tel que l'envoie des e-mails.
· Package gestion des interfaces : C'est le module qui
contient tout ce qui est nécessaire pour la gestion des interfaces web
et la génération des templates.
4.3.3 Diagrammes des classes
La modélisation statique permet d'identifier,
d'affiner et de compléter les différentes classes relatives aux
paquetages de la section précédente. Elle consiste à
rechercher les relations entre les classes et les compléter par leurs
attributs spécifiques. Le diagramme de classes est le point central dans
un développement orienté objet. Dans ce paragraphe, on va
présenter les diagrammes de classes par composant.
4.3.3.1 Package gestion des interfaces
Ce diagramme de classe, présenté par la figure
4.6, illustre la couche présentation (View) de notre
application, dont le but est de simplifier la création et la
modification des interfaces. Ce motif répond à la
problématique de génération des Template. Par
conséquence, notre client peut par un simple clique de modifier et de
personnaliser son propre interface.
Nous notons aussi que l'un des avantages les plus important
de la séparation de cette couche c'est que le processus de
génération des interfaces devient plus optimisé est non
redondant ce qui réduit le temps de réponse.
Voici une description de quelques classes de ce diagramme :
· La classe Html-composant : C'est la
classe mère des différents composants graphiques tels que
Html-select, Html-table et Html-textarea.
· La classe Face-html : C'est la classe
qui modélise les différentes interfaces de notre application, il
est composé par des instances de la classe
.Html-composant».
· La classe Template : Cette classe
regroupe tous les vues de l'application.
· La classe Navigateur : Puisque les
applications web2.0 souffrent des problèmes de compatibilités
avec les différents types de navigateur (Internet explorer, FireFox et
googleChrome) donc cette classe teste la compatibilité par la
méthode .test-compatibilité».
Figure 4.6 -- Diagramme de classe : Gestion des
interfaces
4.3.3.2 Package Gestion des données
Ce package présente la couche persistances des
données, elle modélise la façon de traitements des
ressources et l'interaction avec la base de données.
Le but de cette couche est d'assurer la gestion souple et
facile des données, garantit leur intégrité et d'adapter
l'application sur n'importe quelle source des données. Elle offre des
méthodes pour mettre à jour ces données (insertion,
suppression, changement de valeur). Elle offre aussi des méthodes pour
récupérer ces données.
Voici une description de quelques classes de ce diagramme :
· La classe Mdata-base : c'est la
classe principale qui gère la connexion à n'importe quel type de
base de données (Mysql, PostegerSQL, Oracle, etc), également elle
possède des méthode de gestion des enregistrements.
· La classe Output: Dans le cas ou les
sources de données sont des fichiers structuré tels que des
fichiers xml ou des fichiers json, cette classe a pour mission de fournir une
lecture et écriture simple de données.
Figure 4.7 -- Diagramme de classe : Gestion des
données
4.3.3.3 Package gestion des processus
Cette couche prend en charge la gestion des
événements d'interaction entre les packages « gestion des
données » et «gestion des interfaces ». Elle
reçoit tous les requêtes de l'utilisateur et exécute les
actions convenables.
Par exemple, si une action d'envoie d'un e-mail est
déclenché, la classe « mailler » reçoit
cette requête, ill'analyse sa structure, puis la classe « SMTP
» prendre la charge d'envoie grâce à la méthode
« send-mail ».
Ce module regroupe les classes suivantes :
· La classe Mailler : C'est la classe
singletons, nous avons besoin d'exactement une unique instance pour coordonner
les opérations dans notre système. Nous avons
implémenté ce singleton en écrivant une méthode qui
crée une instance uniquement s'il n'en existe pas encore. Sinon elle
renvoie une référence vers l'objet qui existe déjà.
Le constructeur de cette classe doit être privé.
· Les classes << IMAP
>> et << SMTP >> :
Ces deux classes présentent les deux protocoles d'envoi et de
réception. Elle contient des appels aux différentes commandes
déjà implémenté dans ces deux derniers.
· La classe
<<LDAP>> : Présente les
méthodes d'authentification des utilisateurs selon le protocole LDAP
(voire annexe).
· La classe <<
Mail>> : Cette classe permet de traiter les e-mails
entrants et sortants.
· La classe << Calender
>> : Cette classe permet de gérer les calendriers des
clients.
· La classe << Meteo
>> : C'est la classe responsable à la consultation de
webservice du météo et l'affichage des résultats.
· La classe << Feed-Rss
>> : En communiquant avec les différents serveurs des
flux RSS (Voir Annexe), cette classe ramène les informations et les
news, pour les afficher sur la page d'accueil de l'internaute.
Figure 4.8 -- Diagramme de classe : gestion des
processus
4.3.4 Cinétique de l'application
Nous présentons la cinétique de l'application par
le baise d'un diagramme de transition.
4.3.4.1 Diagramme de transition de la partie
client
Lors du lancement de l'application, l'utilisateur est
redirigé vers la page d'authentification pour accéder à
profil. S'il n'est pas déjà inscrit il sera appelé
à s'inscrire via la page d'inscription rapide ou la page d'inscription
complète. Étant authentifier, et depuis la page d'accueil, le
client peut accéder aux différentes fonctionnalités du
système. Il aura la possibilité de consulter sa boite de
réception en temps réel, d'envoyer un e-mail à destination
unique ou multiple. Il peut également gérer son calendrier,
convertir des e-mails en rendez-vous, partager des événements
avec des amis et être notifié d'une tache planifié. Comme
il possède un carnet d'adresse pour collecter les informations et les
cordonnées de ses contacts, l'ajout des amis et la suppression des
informations redondons sera automatique.
Figure 4.9 -- Diagramme de transition de la partie
client
4.3.4.2 Diagramme de transition de la partie
administrative
d'envoi, te configurer le robot. Il peut configurer les
serveurs ou restaurer d'anciennes configurations. S'il opte pour le
paramétrage, il a le choix entre la gestion des privilèges
utilisateur ou le paramétrage du compte Admin.
Depuis l'interface dédiée à la gestion des
clients, il peut les gérer individuellement ou au sein des groupes
Figure 4.10 -- Diagramme de transition de la partie
administrative
Conclusion
Tout au long de ce chapitre, nous avons
développé la conception de notre application afin d'avoir le
passage souple et facile à l'étape suivante. Pour ce faire, nous
avons présenté en premier lieu l'architecture trois tiers ainsi
que le modèle MVC. En second lieu, nous avons décrit
l'architecture de notre application. Puis nous avons mis en exergue la base de
données en exposant le modèle entité association. Ensuite
nous avons présenté les diagrammes des classes. Finalement nous
avons présenté la cinétique de l'application par des
digrammes de transitions.
CHAPITRE5Réalisation
Introduction
Ce chapitre constitue l'âme du processus de
développement du logiciel et a pour objectif la mise en oeuvre de chacun
des modules décrits dans le chapitre précédent. Nous
consacrons la première partie à la présentation de
l'environnement de l'application. Par la suite, nous exposerons quelques
interfaces homme machine qui concordent avec les fonctionnalités du
système. Enfin, nous décrivons le chrono-gramme.
5.1 Environnement de travail
5.1.1 Environnement matériel
Nous avons eu besoin d'un petit parc informatique
(réseau local assez développé : trois machines minimum et
un serveur) pour les tests initiaux. Par la suite, une connexion Internet pour
chacun suffira.Des connections à débit différent nous
permettront de connaître les performances de l'application. Dans tous les
cas, il nous faudra un serveur, tournant sous Unix, assez performant
(multiprocesseur, grande capacité de mémoire vivre) pour
supporter tous les utilisateurs connectés ainsi qu'une connexion
Internet assez puissante.
Pour le développement nous avons utilisé une
machine à puissance moyenne : un PC de bureau Pentium dual-core avec 2Mo
de mémoire cache et 2Go de mémoire vive.
5.1.2 Environnement logiciel
Le long de la phase de développement, nous avons
utilisé l'environnement logiciel suivant :
· Système d'exploitation :
Microsoft Windows XP Pro SP2, Debian 4.0 version server.
· Outils de développement : Aptana
Studio 1.5 (développement PHP5, AJAX).
· Serveur d'application : Apache 2.2.
· Data Base Server : MYSQL Server 5 pour
la gestion de la base de données.
· Conception et modélisation en UML 2.1 :
Power AMC v11: est un outil de conception
et de modélisation d'applications informatiques. Il
permet aussi la modélisation des bases de données et la
génération du code à partir des données de
modélisation.
· Redaction du rapport Texmaker est un
éditeur LaTeX libre et gratuit. Il intègre un éditeur
spécialisé facilitant la rédaction des documents LaTeX et
le moyen de les compiler rapidement.
5.2 Choix techniques
Choisir un IDE (Integrated Development Environment),
constitue une étape critique du projet puisque ce choix entraînera
ou non des gains en temps et en effort, donc en coût de
développement. Nous avons opté pour Aptana Studio comme
environnement de développement pour l'application. Durant ce cycle de
développement, nous avons eu recours à cinq principaux outils
à savoir PHP5, MySQL, Shell, Ajax, JAVA Script et sa
célèbre librairie jQuery comme outils de travail.
5.2.1 Choix d'Aptana
Aptana est un Environnement de Développement
Intégré multi-plateforme et orienté JavaScript.
Doté d'une interface claire et entièrement personnalisable ainsi
que d'aides à la saisie du code (Javascript, HTML et CSS), le programme
facilitera le développement des applications web et nous fera gagner un
temps précieux. Les plugins d'Aptana fournis permettent le
développement PHP, Ruby on Rails, XML/XSL, pour la plateforme Adobe AIR,
pour les iPhone etc.
5.2.2 Choix du PHP5 (PHP Hypertext
Preprocessor)
PHP 5 est sorti en juillet 2004. Il propose un nouveau moteur,
Zend Engine II, optimisé pour les nouvelles fonctionnalités que
nous lui connaissons, notamment l'approche objet.
Sa popularité ne cesse d'augmenter. Sa souplesse et sa
grande simplicité d'utilisation séduisent un très grand
nombre de développeurs.
En revanche, exploiter l'étendue de ses
possibilités nécessite, au même titre que n'importe quelle
plate-forme de développement complète, de bonnes connaissances
théoriques.
PHP est une plate-forme composée d'un langage de
programmation très complet et de nombreux outils pour le
développement. Elle s'adapte très rapidement aux technologies
émergentes et se voit de plus en plus utilisée dans des
développements web dynamiques professionnels et Open
Source.[N10]
Nous présentons dans ce qui suit ses
caractéristiques principales :
· Un très bon compromis entre fiabilité et
rapidité d'exécution;
· Une plate-forme avant tout spécialisée
pour le développement de sites web dynamiques de toute taille.
· Une plate-forme pratique et complète
adaptée aux applications en ligne de commande.
· Un langage procédural et un langage orienté
objet.
· Un outil très complet, doté de nombreuses
fonctionnalités, extensions et bibliothèques. PHP 5 et ses
nouveautés propulse PHP dans le monde des plates-formes d'entreprises
comme .Net ou J2EE.
5.2.3 Choix d'AJAX
Ajax est un acronyme pour Asynchronous JavaScript and XML
(<< XML et Javascript asynchrones >>) et désignant une
solution informatique libre pour le développement de pages dynamiques et
d'applications Web.
Le principal attrait d'Ajax réside dans le rendu
dynamique des pages et une interactivité qui n'est pas sans rappeler le
mode d'interaction du client lourd. L'avènement des interfaces riches
(Rich Internet Application) permet au Web de fournir des sites
associant une interactivité plus riche, jusque là
réservée au client lourd, tout en gardant une facilité de
consultation qui leur sont propres.
Pour expliquer le concept d'AJAX en quelques mots, il s'agit
de permettre l'échange d'informations entre le navigateur web (sur le
poste de l'utilisateur) et le serveur web (chez l'hébergeur) sans
recharger l'ensemble de la page web utilisée. Ces échanges
s'effectuent de façon asynchrone (le mode synchrone est aussi possible)
à l'aide de fonctions développées en langage
Javascript[B7].
5.2.4 Script SHELL
Le shell n'est pas qu'un simple interpréteur de
commandes, mais dispose d'un véritable langage de programmation avec
notamment une gestion des variables, des tests et des boucles, des
opérations sur variables, des fonctions.
Nous avons recoure à utiliser cet outil parce que nous
avons besoin d'exécuter des appels système sur le serveur par
exemple la planification des processus d'envois en masse des e-mails.
5.2.5 Choix de Mysql
MySQL est très facile à faire évoluer et
à administrer. Il prend en charge les API (Application Programming
Interface) clients de nombreux langages de programmation (Perl, C, PHP,
etc) ce qui permet d'écrire facilement les programmes clients qui
doivent accéder aux données d'une base MySQL.
Le besoin d'une base de données, est motivé non
seulement par le besoin de servir des documents créés de
manière dynamique mais aussi d'accéder quotidiennement à
des informations en modification constante, à laide d'une interface
simple et unifiée, d'un serveur de base de données MySQL et des
scriptes PHP.
5.3 Diagramme de déploiement
Ce diagramme indique l'organisation matérielle de
l'application à concevoir, il spécifie les composants
nécessaires à notre application. Dans notre cas nous avons besoin
d'un serveur SMTP pour l'envoie des e-mails et un serveur POP pour la
consultation des boites de réceptions.
L'entreprise possède des serveurs ultra puissant qui ont
la capacité de supporté le trafic d'un grand nombre
d'internaute[B2].
Figure 5.1 -- Diagramme de déploiement
5.4 Implémentation
L'interface graphique s'avers sans aucun doute la partie la
plus cruciale dans une application web. Elle contribue à la construction
de la première impression qu'à l'internaute du système. En
effet, elle constitue un critère qui peut crées la
différence entre deux applications web bien qu'elles aient les
mêmes fonctionnalités.
5.4.1 Interfaces de l'application
La figure 5.2 illustre l'interface qui s'affiche à
l'internaute désirant jouir des fonctionnalités de notre
système. S'il dispose déjà d'un compte, il n'a qu'à
fournir ses paramètres, à savoir mot de passe et nom utilisateur,
pour accéder à son profile. Dans le cas contraire, l'internaute
est invité à s'inscrire gratuitement à notre
réseau. Ceci peut se faire de deux manières distinctes soient
inscription rapide et inscription complète. Le premier mode
d'inscription est présenté par la figure 5.3
Figure 5.2 -- Interface d'authentification de
l'internaute
Comme le montre la figure citée, l'inscription rapide
est restreinte à un nombre réduit de champs dans le formulaire
d'inscription. Notre but par ceci est de faciliter l'inscription de
l'internaute ainsi que lui inciter à avoir un compte dans notre
réseau d'une manière simple et rapide. Cependant son profile
reste incomplet suite à une telle opération. Il sera
ultérieurement invité à compléter les informations
manquantes.
Figure 5.3 -- Interface d'inscription rapide
La liste exhaustive des champs à remplir est
présentée dans la figure 5.4. Cette figure illustre l'interface
qui apparait à l'utilisateur dans le cas d'une inscription rapide. Elle
exige des informations supplémentaires telles que le prénom, le
pays, la réponse sur une question secrète, etc.
Évidemment, l'internaute doit valider l'inscription par l'acceptation
des règles d'utilisation et de la confidentialité.
Figure 5.4 -- Interface d'inscription
complète
Dans le cas ou l'utilisateur est déjà un membre
de notre réseau, il accède à son profile après
l'authentification. Une page d'accueil lui est ainsi affichée 5.5. Cette
dernière contient un espace de partage des statuts et des commentaires.
Elle contient également une zone qui indique par le biais des icones
significatives l'état météorologique d'une ville
donnée (température maximale, minimale, diurne et nocturne). Au
dessous, elle inclut une barre d'actualité qui est entièrement
personnalisable.
Figure 5.5 -- Interface d'accueil
Depuis cette page l'internaute peut, d'un simple click,
consulter le courrier reçu. Comme l'illustre la figure 5.6, les messages
sont tries selon leur ordre de réception. Un message est
représenté par son objet, son émetteur, sa date de
réception ainsi que les éventuels fichiers joints. Il peut
être marqué comme lu ou suivi. Par respect aux règles
d'ergonomie, notre application fournit une navigation aisée par
l'intermédiaire des onglets.
Figure 5.6 -- Interface de la boite de
réception
La figure 5.7 montre l'aspect d'un carnet d'adresses. Ce
dernier contient la liste des amis tries selon un critère donné
(nom, prénom ou groupe). L'internaute peut effectuer la recherche d'un
ami bien déterminé. Lorsqu'il clique sur le nom d'un contact,
toutes les informations lui concernant (nom, adresse e-mail, photo, etc) seront
affichées à droite. Il peut ainsi modifier ces informations
déplacer le contact vers un groupe, lui envoyer un message ou lui
supprimer de sa liste.
Figure 5.7--Interface du Carnet d'adresse
L'outil calendrier est l'espace offert à l'internaute
pour y mettre et planifier ses taches. Elles seront ultérieurement
consultées sous la forme d'événements (voir figure 5.8).
Cet affichage peut se faire par jour, par semaine, par mois ou même par
années.
Figure 5.8 -- Interface du calendrier
Afin de satisfaire le client, nous mettons à sa
disposition un espace pour paramètre l'application. Comme le clarifie la
figure 5.9, l'utilisateur peut adapter selon ses préférences,
l'interface, l'affichage du courrier et des messages, les paramètres du
serveur, etc. Nous garantissons ainsi une application personnalisable et
paramétrable.
Figure 5.9 -- Interface de gestion des
paramètres
5.5 Chronogramme
Ce projet a été réalisé du 8
février au 8 juin 2010. Nous avons tout d'abord commencé par une
étude approfondie de l'existant pour pouvoir comprendre les besoins et
débuter le travail. Ensuite, après avoir dégagé et
compris ce qui est demandé, nous avons pu relever les besoins
fonctionnels et non fonctionnels. Puis nous avons entamé la phase de
conception et implémenté le module demandé après
avoir passé par une phase de documentation sur les technologies à
utiliser. Dans un souci d'organisation et afin de mener à bien le
projet, nous avons établi un chronogramme détaillé des
différentes tâches qui constituent le projet.
Figure 5.10 -- Chronogramme
Conclusion
Dans ce chapitre, nous avons présenté
l'environnement de développement matériel et l'environnement
logiciel avec lesquels ce projet a été réalisé.
Nous avons présenté aussi une vue de l'application finale via
quelques imprimés d'écrans ainsi que le chronogramme des
tâches accomplies durant ce travail.
Conclusion générale
C
E projet était une bonne occasion pour sortir du cadre
théorique et appliquer les connaissances acquises lors des études
universitaires dans un environnement réel de travail qui nous a permis
d'initier dans le domaine professionnel et d'apprendre plusieurs attitudes et
habitudes sociales telles que le travail en groupe et la collecte
d'informations pour extraire les besoins des acteurs du
système à mettre en oeuvre ainsi que les règles de
communication au sein d'une hiérarchie administrative stricte.
Sur le plan technique, ce travail nous a fait découvrir de
nouveaux concepts et technologies liées aux applications Web2.0 et les
architectures des webmail.
Le profit essentiel étant d'apprendre comment utiliser
une technologie existante et la faire intégrer dans notre application en
respectant des contraintes temporelles qui ne sont pas toujours simples
à respecter.
La contrainte de temps ainsi évoquée nous a
empêchés d'ajouter d'autres fonctionnalités à notre
application qu'on a estimée faisables techniquement, parmi lesquels nous
citons la possibilité d'intégrer notre application sur les
appareils mobiles telles que les PDA (Personal Digital Assistant), les
Iphone1 et les Ipad 2, ajouter un espace de partage des
médias tels que les livres et les vidéos ainsi que d'optimiser le
code afin de réduire le temps de réponse.
Dans ce rapport nous avons développé cinq
chapitres. Dans le premier, nous avons présenté le cadre
général de notre application et les différentes solutions
choisies vis-à-vis la problématique dégagée. Dans
le deuxième chapitre nous avons étudié les
différents protocoles et techniques utilisés dans la construction
d'un client web de messagerie électronique ainsi que la structure
générale d'un message électronique. Ensuite, l'analyse
fonctionnelle et non fonctionnelle ainsi que la spécification des
besoins ont été élaborées dans le troisième
chapitre. La partie conception a été analysée dans le
quatrième chapitre. Nous avons clôturé le rapport par la
partie réalisation renfermant les principales interfaces de
l'application.
1. L'iPhone est une famille de smartphones conçue et
commercialisée par Apple Inc. depuis 2007.
2. L'iPad est un micro-ordinateur développé par
Apple. Il consiste en un écran tactile multitouch de type capacitif
(jusqu'à onze doigts simultanément) et est dépourvu de
clavier, ce qui le définit comme un tablet PC de type ardoise.
Bibliographie
[B1] B. Costales, G. Jansen et C. Assmann, "Sendmail ",
O'Reilly, Etats Unis d'Amérique , 2007.
[B2] Jim Conallen, "Concevoir des applications Web avec
UML", Eyrolles, Septembre 2000.
[B3] Julie Denouël-Granjon, "Les interactions
médiatisées en messagerie instantanée", s.n, 2008.
[B4] Meredith G. Farkas, "Social software in libraries
: building collaboration, communication, and community Online", Information
Today, Inc., 2007.
[B5] Knut Andreas Ruud, "User experience design
patterns for Web 2.0 applications", K.A. Ruud, 2009.
[B6] Brice-Arnaud Guérin, "PHP 5, MySQL 5, AJAX:
entraînez-vous à créer des applications professionnelles",
2007.
[B7] Nicholas C. Zakas, Jeremy McPeak, Joe Fawcett,
"Professional Ajax", John Wiley and Sons, 2007.
[B8] Jean-Noël Anderruthy, "Web 2.0 :
révolutions et nouveaux services d'Internet", Editions ENI, 2007.
Netographie
[N1]
www.journaldunet.com/solutions/0601/060105-tribune-sqli-web-20.shtml
(consulté le 03/02/2010).
[N2]
www.arobase.org/gratuit/webmails-2.0.htm
(consulté le 03/07/2010).
[N3]
www.commentcamarche.net/contents/courrier-electronique/mime.php3
(consulté le 03/02/2010).
[N4]
www.arobase.org/ecole/smtp.htm
(consulté le 10/02/2010).
[N5]
www.msdn.microsoft.com/fr-fr/embedded/bb404133.aspx
(consulté le 25/04/2010).
[N6]
www.astove.com/dossiers/applications-mobiles.pdf
(consulté le 8/03/2010).
[N7] //
webilus.com/wp-content/uploads/2007/10/mvc
consulté le 01/06/2010).
[N8]
www.lafabrick.com/labz/reflex/images/MVCReflex
(consulté le 17/03/2010).
[N9]
www.grappa.univ-lille3.fr/polys/frime/sortie002.html
(consulté le 07/04/2010).
[N10]
http://www.php.net (consulté le
15/04/2010).
Annexes
ANNEXEA
|
|
Le protocole LDAP
|
A.1 Introduction à LDAP
LDAP (Lightweight Directory Access
Protocol), est un protocole standard permettant de gérer des
annuaires, c'est-à-dire d'accéder à des bases
d'informations sur les utilisateurs d'un réseau par
l'intermédiaire de protocoles TCP/IP.
Les bases d'informations sont généralement
relatives à des utilisateurs, mais elles sont parfois utilisées
à d'autres fins comme pour gérer du matériel dans une
entreprise.
Le protocole LDAP, développé en 1993 par
l'université du Michigan, avait pour but de supplanter le protocole DAP
(servant à accéder au service d'annuaire X.500 de l'OSI), en
l'intégrant à la suite TCP/IP. A partir de 1995, LDAP est devenu
un annuaire natif (standalone LDAP), afin de ne plus servir uniquement à
accéder à des annuaires de type X500. LDAP est ainsi une version
allégée du protocole DAP, d'où son nom de Lightweight
Directory Access Protocol.
A.2 Présentation de LDAP
Le protocole LDAP définit la méthode d'accès
aux données sur le serveur au niveau du client, et non la manière
de laquelle les informations sont stockées.
Le protocole LDAP en est actuellement à la version 3 et
a été normalisé par l'IETF (Internet Engineering Task
Force). Ainsi, il existe une RFC pour chaque version de LDAP, constituant un
document de référence :
· RFC 1777 pour LDAP v.2 standard
· RFC 2251 pour LDAP v.3 standard
Ainsi LDAP fournit à l'utilisateur des méthodes
lui permettant de :
· se connecter
· se déconnecter
· rechercher des informations
· comparer des informations
· insérer des entrées
· modifier des entrées
· supprimer des entrées
D'autre part le protocole LDAP (dans sa version 3) propose
des mécanismes de chiffrement (SSL) et d'authentification (SASL)
permettant de sécuriser l'accès aux informations stockées
dans la base.
A.3 L'arborescence d'informations (DIT)
LDAP présente les informations sous forme d'une
arborescence d'informations hiérarchique appelée DIT (Directory
Information Tree), dans laquelle les informations, appelées
entrées (ou encore DSE, Directory Service Entry), sont
représentées sous forme de branches. Une branche située
à la racine d'une ramification est appelée racine ou suffixe (en
anglais root entry).
Chaque entrée de l'annuaire LDAP correspond à un
objet abstrait ou réel (par exemple une personne, un objet
matériel, des paramètres, etc).
Chaque entrée est constituée d'un ensemble de
paires clés/valeurs appelées attributs.
A.4 Les attributs des entrées
Chaque entrée est constituée d'un ensemble
d'attributs (paires clé/valeur) permettant de caractériser
l'objet que l'entrée définit. Il existe deux types d'attributs
:
· Les attributs normaux : ceux-ci sont les attributs
habituels (nom, prénom, ...) caractérisant l'objet
· Les attributs opérationnels : ceux-ci sont des
attributs auxquels seul le serveur peut accéder afin de manipuler les
données de l'annuaire (dates de modification, etc).
Une entrée est indexée par un nom distinct (DN,
distinguished name) permettant d'identifier de manière unique un
élément de l'arborescence.
Un DN se construit en prenant le nom de
l'élément, appelé Relative Distinguished Name (RDN,
c'est-à-dire le chemin de l'entrée par rapport à un de ses
parents), et en lui ajoutant l'ensemble des nom des entrées parentes. Il
s'agit d'utiliser une série de paires clé/valeur permettant de
repérer une entrée de manière unique. Voici une
série de clés généralement utilisées :
· uid (userid), il s'agit d'un identifiant unique
obligatoire.
· cn (common name), il s'agit du nom de la personne.
· givenname, il s'agit du prénom de la personne.
· sn (surname), il s'agit du surnom de la personne.
· o (organization), il s'agit de l'entreprise de la
personne.
· u (organizational unit), il s'agit du service de
l'entreprise dans laquelle la personne travaille.
· mail, il s'agit de l'adresse de courrier
électronique de la personne (bien évidemment). Ainsi, on appelle
schéma l'ensemble des définitions d'objets et d'attributs qu'un
serveur LDAP peut gérer. Cela permet par exemple de définir si un
attribut peut posséder une ou plusieurs valeurs. D'autre part, un
attribut nommé objectclass permet de définir les attributs
étant obligatoires ou facultatifs.
A.5 Consulter les données
LDAP fournit un ensemble de fonctions (procédures) pour
effectuer des requêtes sur les données afin de rechercher,
modifier, effacer des entrées dans les répertoires.
Voici la liste des principales opérations que LDAP peut
effectuer :
Opération
|
Description
|
Add
|
Ajoute une entrée au répertoire
|
Bind
|
Initie une nouvelle session sur le serveur LDAP
|
Compare
|
Compare les entrées d'un répertoire selon des
critères
|
Delete
|
Supprime une entrée d'un répertoire
|
Extended
|
Effectue des opérations étendues
|
Rename
|
Modifie le nom d'une entrée
|
Search
|
Recherche des entrées d'un répertoire
|
Unbind
|
Termine une session sur le serveur LDAP
|
Tableau A.1 -- Les principales opérations de
LDAP
ANNEXE1E3
|
|
RSS - Syndication de
contenu
|
B.1 Introduction au RSS
Le standard RSS représente un moyen simple d'être
tenu informé des nouveaux contenus d'un site web, sans avoir à le
consulter.
Le format << RSS >> (traduisez << Really
Simple Syndication >>) permet ainsi de décrire de façon
synthétique le contenu d'un site web, dans un fichier au format XML,
afin de permettre son exploitation par des tiers. Le fichier RSS, appelé
également flux RSS, canal RSS ou fil RSS, contenant les informations
à diffuser, est maintenu à jour afin de constamment contenir les
dernières informations à publier.
Basiquement, un fil RSS est un fichier contenant le titre de
l'information, une courte description et un lien vers une page décrivant
plus en détail l'information. Cela permet à un site web de
diffuser largement ses actualités tout en récupérant un
grand nombre de visiteurs grâce au lien hypertexte permettant au lecteur
de lire la suite de l'actualité en ligne.
Les sites proposant un ou plusieurs fils d'actualités au
format RSS arborent parfois un des logos suivants :
B.2 Utilisation de canaux RSS
Il existe typiquement deux façons d'utiliser RSS :
· L'utilisation des fils RSS par un
particulier pour son information personnelle. Il est alors
nécessaire de disposer d'un outil spécifique, appelé
<< lecteur RSS >> ou encore << agrégateur RSS
>>, afin d'exploiter les fils RSS. Ainsi, l'utilisateur d'un lecteur RSS
peut consulter en un seul endroit les dernières actualités de
dizaines, et parfois de centaines
de sites web, sans avoir à les visiter et sans avoir
à communiquer d'informations personnelles.
· L'utilisation des flls RSS par un webmaster
afin de syndiquer du contenu, c'est-à-dire
publier automatique sur son propre site diverses informations
émanant d'autres sites.
B.3 Proposer un fll RSS
Pour proposer un flux RSS sur son site et mettre ainsi une
partie de son contenu à disposition des autres webmasters, il suffit de
créer un script chargé de récupérer les
informations à inclure dans le flux RSS et de les écrire dans un
fichier XML au format RSS.
B.4 Exploiter les flls RSS sur un site
N'importe quel webmaster, pour peu qu'il dispose des outils
adéquats, peut ainsi utiliser le flux RSS d'un autre site web afin
d'afficher automatiquement sur son site les informations mises à sa
disposition. Qui plus est, dans la mesure où les informations sont au
format XML, il est possible de personnaliser l'affichage des données
selon sa propre charte graphique et il est également possible
d'agréger de multiples fils RSS au sein d'une même page: on parle
ainsi de <<syndication de contenu>>.
Afin d'exploiter un fil RSS proposé par un site, il est
nécessaire de disposer d'un outil capable d'analyser le XML (un parseur
XML) afin de le convertir en XML. Il existe un grand nombre d'outils dans la
plupart des langages permettant d'exploiter facilement des canaux RSS. L'outil
MagPie RSS permet par exemple de parser les fils RSS, quelle que soit la
version du standard utilisée, avec un simple script en langage PHP.
|