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


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

 > 

Etude et développement d'une application de messagerie électronique

( Télécharger le fichier original )
par Abdelkerim Douiri
Ecole Nationale des Sciences de L'Informatique - Ingénieur informatique 2010
  

précédent sommaire suivant

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

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.

précédent sommaire suivant






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








"Qui vit sans folie n'est pas si sage qu'il croit."   La Rochefoucault