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.