• Aucun résultat trouvé

Cycle de vie détaillé d'une correspondance électronique

6. Le concept de correspondance électronique

6.4 Modèle de la correspondance électronique

6.4.2 Cycle de vie détaillé d'une correspondance électronique

Afin de définir de manière détaillée le cycle de vie d'un message, nous proposons deux descriptions du cycle de vie : une décomposition hiérarchique et une décomposition globale. Pour des raisons de lisibilité, les cycles de vie proposés comportent uniquement les évènements. Une description détaillée du cycle de vie avec les objets échangés est proposée en annexe I. Afin d'être le proche des standards, les noms des évènements sont en anglais.

6.4.2.1 Décomposition hiérarchique

Le cycle de vie macroscopique, illustré dans la Figure 25, est composé de trois évènements :

Creation, Transmission et Display.

Figure 25 : Cycle de vie macroscopique d'un message

Nous faisons la supposition suivante : l'intention de communication de l'utilisateur est injectée dans le système de messagerie à partir de l'évènement Creation puis extrait du système à partir de l'évènement Display. Creation réalise la génération du message en fonction des données saisies, des propriétés sélectionnées par l'auteur du message et de la politique locale. Display permet la visualisation du message et la vérification des propriétés présentes dans le message ainsi que le contrôle de la politique locale. Ces deux évènements correspondent à un échange dit de bout en bout. Le message est acheminé à travers le système via l'évènement Transmission. Le niveau d'abstraction de ce modèle permet d'envisager différents mécanismes de transmission comme le système de messagerie bien sur mais aussi le transfert de fichier ou encore l'utilisation d'un support amovible (clé USB par exemple).

L’évènement Transmission est une composition des évènements Routing et Retrieving (cf. Figure 26). Routing permet la transmission du message jusqu’à la boite aux lettres de l’utilisateur.

Retrieving correspond au téléchargement du message à partir de la boite aux lettres de l'utilisateur.

Figure 26 : Décomposition de l'évènement Transmission

La Figure 27 décrit l’évènement Routing, composé de trois évènements : Submission , Relay et

Delivery. L’évènement submission est associé à un transfert de responsabilité entre

l’environnement de l’émetteur du message et le système de messagerie. Il permet la soumission du message vers le système. L’évènement delivery correspond, pour sa part, à un transfert de

Creation Transmission Display

Transmission Routing Retrieving

91

responsabilité entre système de messagerie et l’environnement du destinataire du message. Il correspond à la remise du message en boite aux lettres. Ces transferts de responsabilité sont décrits dans les travaux IMA [6].

Figure 27 : Décomposition de l'évènement Routing

Il existe une particularité en ce qui concerne l’évènement Retrieving. En fonction du mode de transmission, cet évènement peut être basé sur deux mécanismes de transmission différents (décrits dans IMA, chapitre 4.4) : le mode push et le mode pull. Dans le cas d’un mode push, le message est transmis à l’aide du protocole SMTP jusqu’au MS puis le MS transmet le message au MUA destinataire à partir du mécanisme IDLE [149] (extension du standard IMAP). Le destinataire n’a pas besoin de procéder à la récupération du message. Dans le cas d’un mode

pull, le message est transmis à l’aide du protocole SMTP jusqu’au MS et mis en boite aux lettres.

Ensuite, le MUA destinataire procède à la récupération du message à l’aide du protocole IMAP. Le modèle présenté dans ce rapport se base sur le mode pull.

L’évènement Relay est composé d’un sous-ensemble constitué des évènements InitTransfer,

Transfer et FinalTransfer. Cette décomposition d’évènements (cf. Figure 28) permet de réaliser des

échanges de messages au sein d’une même ADMD (échange intra-ADMD) ou entre plusieurs ADMDs (échange inter-ADMD). Ces échanges inter-ADMD sont possibles grâce à l’évènement Transfer qui permet les échanges entre serveurs BMTA.

Figure 28 : Décomposition de l'évènement Relay

De manière synthétique, le cycle de vie d’un message est constitué des étapes suivantes :

 Creation (Création)

 Transmission (Acheminement) o Submission (Soumission) o Relay (Relayage)

 InitTransfer (Transfert initial)  (Transfer)* (Transfert)

 FinalTransfer (Transfert final) o Delivery (Remise)

Routing

Submission Relay Delivery

Relay

92

o Retrieving (Récupération)

 Display (Affichage)

(Transfer)* représente l'occurrence de zéro ou plusieurs évènements Transfer. Dans le reste de ce document, nous prenons comme convention que dans le cas intra-ADMD, nous n'avons aucune occurrence de l'évènement Transfer, alors que dans le cas inter-ADMD et de la présence de BMTA, nous avons au moins trois occurrences de l'évènement Transfer.

Une première description du cycle de vie a été développé à l'aide du langage IOA [150] (Input/Output Automata). Elle est fournie en annexe IV.

Il est important de noter que dans certains cas, le cycle de vie peut ne pas dérouler la totalité des évènements et s’arrêter prématurément. C’est le cas par exemple des messages rejetés en raison d’une non-conformité à une politique (anti-virus, anti-spam…) ou d'un dysfonctionnement du système. Cet arrêt prématuré devrait entrainer la génération d’un nouveau message sous la forme d’une notification à destination de l’émetteur du message. Ce type de message prend en général la forme d’un DSN (Delivery Status Notification)[32][31]. Ce nouveau message ne suit pas nécessairement le même cycle de vie que les messages émis par un utilisateur. Par exemple, un DSN émis par le MTA en charge du transfert initial déroulera un cycle de vie limité n'incluant pas de soumission. Nous ne traiterons pas plus en détail dans cette thèse les aspects du cycle de vie des notifications.

6.4.2.2 Décomposition globale

La Figure 29 propose une décomposition globale des évènements du cycle de vie d'un message dans un environnement inter-ADMD.

93

Figure 29 : Décomposition générale du cycle de vie d'un message

6.4.2.3 Exemple d'un cycle de vie

L'exemple décrit dans la Figure 30 illustre les concepts de cycle de vie complets et incomplets. Un utilisateur A envoie un message à trois destinataires B, C et D. Le destinataire B récupère le message et l'affiche. Le destinataire C ne récupère pas le message et le destinataire D est inconnu. La correspondance est composée de trois séquences de cycle de vie (CV). Les évènements génériques sont représentés de la manière suivante :

- C : creation - S : submission - I : initial transfer - T : transfer - F : final transfer - D : delivery - R : retrieving - P : display

Le CV (c1, p1) est complet car il aboutit à un évènement d'affichage p1. Les CV (c1, d1') et (c1, d1'') sont incomplets car ils ne comprennent pas d'évènement d'affichage.

Transmission

Relay Routing

Creation Transmission Display Routing Retrieving Submission Relay Delivery InitTransfer Transfer FinalTransfer

94

Figure 30 : Exemple d'un cycle de vie composé de séquences complètes et incomplètes

6.4.2.4 Cycle de vie du message dans un environnement intra-ADMD

Le cycle de vie d'un message peut être limité à un acheminement dans un environnement intra- ADMD. Dans ce cas, il n'y aura pas d'évènement Transfer. L'évènement InitTransfer transmet le message directement à l'évènement FinalTransfer. Cet exemple est décrit dans la Figure 31.

Figure 31 : Cycle de vie d'un message dans un environnement intra-ADMD

6.4.2.5 Cycle de vie du message dans un environnement inter-ADMD

A la différence d'un cycle de vie dans un environnement intra-ADMD, un cycle de vie dans un environnement inter-ADMD peut comporter un à plusieurs évènements Transfer.

Un exemple permet de décrire en détail la transmission d'un message dans un tel environnement. Dans notre exemple, Alice, en tant qu'auteur, crée un message racine et l'émet à destination de Bob, Charly, Dave et Mark. Alice et Bob appartiennent au domaine d'administration D1, Charly et Dave appartiennent au même domaine D2 et Mark appartient au domaine D3. Nous reprenons dans cet exemple (illustré dans la Figure 32), les évènement génériques précédemment décrits.

Une numérotation est associée à chaque évènement. Par exemple, C1 correspond à l'évènement de création du message par Alice dans le domaine D1. Les évènements d'affichage du message reçu par les destinataires sont mentionnés de la manière suivante; P1 pour Bob, P2' pour Charly, P2'' pour Dave et P3 pour Mark.

c1 s1 i1 f1 d1 d1’’ r1 p1 d1’ A B C Creation InitTransfer FinalTransfer Submission Retrieving Display Delivery

95

Figure 32: Exemple d'un cycle de vie d'un message dans un environnement inter-ADMD

Dans cet exemple, nous pouvons distinguer quatre séquences de cycle de vie du message: CV(C1, P1), CV(C1, P2'), CV(C1, P2''), CV(C1, P3).

Les travaux de cette thèse limiteront la définition du modèle de correspondance à un environnement intra-ADMD.