M1 : Ingénierie du Logiciel

Documents pareils
M1 : Ingénierie du Logiciel

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

FTP & SMTP. File Transfert Protocol. Deux applications fondamentales pour le réseau Internet. Un protocole d échange de fichier «au dessus» de TCP :

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Couche application. La couche application est la plus élevée du modèle de référence.

FTP & SMTP. Deux applications fondamentales pour le réseau Internet.

Utiliser Améliorer Prêcher. Introduction à LDAP

Chapitre VI- La validation de la composition.

Oléane VPN : Les nouvelles fonctions de gestion de réseaux. Orange Business Services

SOMMAIRE. 3. Comment Faire? Description détaillée des étapes de configuration en fonction du logiciel de messagerie... 3

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Travaux Pratiques Introduction aux réseaux IP

Gestion distribuée (par sockets) de banque en Java

modules & compilation

Créer et partager des fichiers

Comment paramétrer manuellement mon mobile pour accéder à la 2G/3G+ et configurer mes s?

OCL - Object Constraint Language

Plateforme PAYZEN. Définition de Web-services

Configuration de Outlook Express 6 pour utilisation avec belgacom.net

Bases de programmation. Cours 5. Structurer les données

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

GOL502 Industries de services

TAGREROUT Seyf Allah TMRIM

Ingénierie des Modèles. Méta-modélisation

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Nom de l application

Messagerie. Dominique MARANT CRI Lille 1. Octobre 2006

INFO 364 : Bases de Données Projet Professeur : Esteban Zimányi Assistants : Pierre Stadnik et Mohammed Minout Année Académique :

Quelques propositions pour une organisation des ressources réseaux prenant en compte les besoins du LACL

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Sélection du contrôleur

Divers éléments. Protocoles d'applications. Un agent Utilisateur. MUA - Agents Utilisateurs de Courriel. Simple Mail Transfer Protocol

RMI le langage Java XII-1 JMF

TP Protocoles SMTP et POP3 avec Pratiquer l algorithmique

Introduction. Adresses

Patrons de Conception (Design Patterns)

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Industrialiser la chaîne complète de fabrication 1ère partie - Les bénéfices de la solution logicielle IBM VisualAge Pacbase / Rational

Ingénérie logicielle dirigée par les modèles

ASR3. Partie 2 Active Directory. 1 Arnaud Clérentin, IUT d Amiens, département Informatique,

Chapitre 2. Classes et objets

Thermotrack Webserve

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

L3 informatique TP n o 2 : Les applications réseau

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

V - Les applications. V.1 - Le Domain Name System. V Organisation de l espace. Annuaire distribué. Définition. Utilisation par le resolver

La VOIP :Les protocoles H.323 et SIP

Module http MMS AllMySMS.com Manuel d intégration

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Configuration de base de Jana server2. Sommaire

PROJET 1 : BASE DE DONNÉES REPARTIES

Création de votre compte de messagerie IMAP

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Université de Bangui. Modélisons en UML

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Manuel Utilisateur Version 1.6 Décembre 2001

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Pré-conditions : Evénement déclencheur : le client souhaite un virement. Description du déroulement du cas : Description des Use cases

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

BONY Simon IR1. Services Réseaux TP3. BONY Simon

Quelques protocoles et outils réseaux

Projet de programmation (IK3) : TP n 1 Correction

Cours 1 : La compilation

Remote Method Invocation (RMI)

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Nagios 3 pour la supervision et la métrologie

Outil d envoi de courrier électronique. STILOG I.S.T. et Claude Mayer Tous droits réservés

Topologies et Outils d Alertesd

Messagerie électronique

Microsoft Hosted Exchange 2010 DOCUMENT D EXPLOITATION

Déploiement d un serveur courriel dédié pour entreprise

INSTALLATION DE PEGASUS MAIL 3.12 c FR Avec l interface Harp

Utilisation du plugin AppliDis SLB (Smart Load Balancing)

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

PARAMETRER INTERNET EXPLORER 9

Avertissement : ceci est un corrigé indicatif qui n engage que son auteur

Création et Gestion des tables

Architectures en couches pour applications web Rappel : Architecture en couches

Le courrier électronique

Connexion à SQL server

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

SSH, le shell sécurisé

Guide administrateur AMSP

Initiation à l informatique. Module 7 : Le courrier électronique ( , mail)

Bases de données. Chapitre 1. Introduction

Accès aux ressources informatiques de l ENSEEIHT à distance

Récupérer les documents stockés sur l ENTG

TASK Santé : Le protocole Pésit /TCP-IP

Développement d un interpréteur OCL pour une machine virtuelle UML.

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Premiers Pas en Programmation Objet : les Classes et les Objets

CORBA haute performance

Ch2 La modélisation théorique du réseau : OSI Dernière maj : jeudi 12 juillet 2007

AJOUTER UN COMPTE DE MESSAGERIE SUR UNE TABLETTE

CASE-LINUX MAIL. Introduction. CHARLES ARNAUD Linux MAIL

Guide de prise en main

1. Structure d'un programme FORTRAN 95

Transcription:

M1 : Ingénierie du Logiciel UNIVERSITE PIERRE & MARIE CURIE (PARIS VI) Examen Réparti 2eme partie 9 Janvier 2014 (2 heures avec documents : tous SAUF ANNALES CORRIGEES). Barème indicatif sur 24 points (donne le poids relatif des questions) (max 20/20). 1. Questions de cours [2 Pts] Répondez de façon précise et concise aux questions. Barème : VALABLE sur toutes les questions de cours : -25 à -50% si la réponse inclut la bonne idée, mais qu elle est noyée dans des infos ou autres réponses fausses/inappropriées. Q1.1 : a) Comment réaliser une transformation modèle à modèle M2M, pour passer d un modèle MA exprimé dans un langage A à un modèle MB exprimé dans un langage B? Quels méta-modèles faut-il manipuler et de quelle manière? b) Quelles transformations T2M ou M2T faut-il ajouter si les modèles MA et MB sont exprimés dans les syntaxes concrètes de A et B (et pas directement en XMI). a) Sur 70% Il faut avoir MMA et MMB, les méta-modèles des langages : MA se conforme à MMA, MB se conforme à MMB. On manipule ensuite MMA en lecture (naviguer sur MA) et MMB en écriture (construire MB). En général on exprime une relation source -> cible entre les éléments des métamodèles source et destination (e.g opérationuml -> méthodejava) Le diagramme du cours qui résume la situation donne les 70%. b) Sur 30%, 15% si on n est pas explicite (parse/sérialisation) On Parse MA pour avoir une instance de MMA en entrée. Si nécessaire on dump la sortie => sérialisation de MB. 2. Problème: Conception d un Mailer POP [Barème sur 22 Pts] Le protocole POP (Post Office Protocol) est un des standards permettant la communication par email. C est un protocole textuel (ASCII) qu offrent les serveurs de mail de façon standard sur le port 110. Pour interagir avec le serveur, il faut d abord s'identifier et s'authentifier : USER nom_de_votre_compte : généralement, ce qui se trouve avant le «@» de l'adresse électronique (erreur si le nom de compte est inconnu) PASS mot_de_passe :le mot de passe pour accéder à la boîte de courrier (erreur si le mot de passe est incorrect ou si la commande précédente n était pas USER) Puis, il est possible d'utiliser l'une des commandes POP3 listées ci-dessous (elles rendent toutes une erreur si l utilisateur n est pas correctement connecté).

LIST : sans argument; donne sur une ligne le nombre n de messages et la taille totale k des messages, puis sur n lignes pour chaque message son identifiant et sa taille. LIST numéro_du_message : donne la taille du message (erreur si le message n existe pas ou plus) RETR numéro_du_message : récupère le message indiqué et l affiche (erreur si indice de message inexistant); DELE numéro_du_message : efface le message spécifié (erreur si message inexistant); QUIT : quitter la session en cours On considère un protocole simplifié dans cet énoncé où les autres commandes POP3 ne seront pas utilisées. Les divers arguments sont passés sous la forme de chaînes de caractères. Les réponses du serveur sont également des chaînes de caractère. Les réponses en plusieurs lignes (LIST sans argument, RETR) sont terminées par une ligne comportant seulement la chaîne «.\n». Le serveur débute chaque réponse par la ligne «+OK commentaire» (nominal, suivi de la réponse à la commande) ou «-Error commentaire» (problème, pas de réponse possible). Le commentaire explique le message. Modélisation POP3 (6 points) Question 2.1 : (2 pts) Proposez une interface IPOP3 qui permette de capturer la fonctionnalité d un serveur de mail. On construira des signatures pour toutes les opérations qui capturent le cas nominal ; les erreurs seront traitées via une hiérarchie de POPProtocolException qu on ne demande pas de modéliser. On utilisera des entiers pour typer les identifiants de message ; les réponses multi-lignes seront traitées par un ensemble de chaînes de caractère. On doit trouver une opération par trame/ordre ci-dessus en gros. On peut comme ici fusionner USER/PASS ou pas. On donne les points si signatures cohérentes, même si on utilise String partout. On accepte les valeurs de retour bool sur login, quit,delete 20% login, un ou deux messages 20% les deux variantes de list 20% retr 20% dele et quit 20% les signatures utilisent integer pour les idmsg Question 2.2 : (1 pt) a) Représentez un composant représentant un serveur de mail sur un diagramme de composants. Représentez également un composant représentant un client pour le service (un outil pour lire ses mails par exemple). b) Représentez sur un diagramme de structure interne une instanciation de ces composants qui les met en communication. Page 2

a) 60% Le serveur doit réaliser l interface décrite en 2.1 30% et le client l utilise 30%. b) 40% 10% par composant instancié 20% connecteur orienté correctement. Question 2.3 : (3 pt) En cohérence avec les questions précédentes, représentez par un diagramme de séquence inter-composant le dialogue client-serveur retranscrit ici. S: <en attente de la connexion TCP sur le port 110> C: <ouverture de la connexion sur pop.lip6.fr, port 110> S: +OK POP3 server pop.lip6.fr ready <@lip6.fr> C: USER toto S: +OK User accepted C: PASS soleil S: +OK Pass accepted C: LIST S: +OK 2 messages (320 octets) S: 1 120 S: 2 200 S:. C: RETR 1 S: +OK 120 octets S: From : bob@jmail.com S: <etc le serveur POP3 envoie le message 1> S:. Page 3

C: DELE 1 S: +OK message 1 deleted C: QUIT S: +OK toto POP3 server signing off C: <fermeture de la connexion> S: <en attente de la prochaine connexion> 20% par invocation : opération adaptée, données -20% par faute (instances ) CServeurMail (4 points) Question 2.4 : (4 pt) Représentez sur un diagramme de classes une conception détaillée pour un composant serveur de mail qui stocke et gère effectivement les messages des utilisateurs. On sera aussi détaillé que possible (utilisations de Map si c est approprié, commentaires ). Pensez à correctement gérer l aspect multi-utilisateurs. Les mails eux-même seront modélisés comme des entités très simples de façon à coller au protocole POP. (En pratique le formatage des mails -- émetteur, date, relais, objet, pièces jointes etc -- est le sujet d autres standards, MIME en particulier qui dépassent le cadre de cet énoncé). Barème : 20% on doit voir les données (login, pass, compte) Page 4

20% les emails associés, aux comptes utilisateur). 20% pour les indications de Map. 20% des explications sur la gestion de l authentification. 20% on réalise IPOP3 Proxy (7 points) On s intéresse à présent à la conception d un composant CPOPPRoxy qui joue le rôle de proxy distant pour un serveur mail POP3 conforme au standard. Ce composant qui réalise l interface IPOP3 proposée en 2.1 sera instancié sur la machine du client. Il s appuie lui-même sur une Socket en mode connecté (TCP) décrite par l interface ITCPSocket. Son rôle est de transformer les demandes formulées sur son interface IPOP3 en échange de trames réseau avec un serveur mail qui se conforme au standard POP3. Sur une socket TCP connectée au serveur (via connect) sendline permet d envoyer une ligne de texte au serveur et readline (invocation bloquante) permet de lire une ligne de texte (réponse) envoyée par le serveur. Page 5

Question 2.5 : (1 point) Modélisez sur un diagramme de composant le composant CPOPProxy. 50% par itf Question 2.6 : (1,5 pt) Modélisez à l aide d un diagramme de structure interne les composants instanciés sur la machine client. 20% par composant (*3) 20% par connecteur + orientation Question 2.7 : (3 points) Modélisez l interaction permettant à un utilisateur déjà connecté, de lister les messages, puis d effacer le message 1 (on suppose qu il existe). On utilisera un diagramme de séquence représentant tous les composants instanciés à la question précédente. Page 6

Donc on doit voir que les invocations d opérations deviennent des séquences de send/read Line sur la socket. 10% list 15% sendline avec la commande 35% serie de readline avec boucle ou commentaire 10% dele 15% sendline (DELE 1) 15% readline réponse OK Question 2.8 : (1,5 points) Proposez à l aide d un diagramme de classes une conception détaillée pour la réalisation du composant Proxy. Page 7

La modélisation d un Parser est optionnel. 35% implémente IPOP3 30% classe support 35% utilise une socket Stub (2 points) Question 2.9 : (2 points) On souhaite à présent réaliser un adaptateur CPOPStub qui permette au composant CServeurMail décrit en question 2.4 d être conforme au standard POP3. Cet adaptateur peut être vu comme un Stub réseau pour le composant CServeurMail. Il est instancié sur la machine serveur et attend les connexions sur une socket en mode serveur. On suppose l existence d un composant CServerSocket qui offre une interface IServerSocket dont les opérations (proches mais pas exactement symétriques de ITCPSocket) ne seront pas détaillées dans cet énoncé. Il décode les trames réseau et délègue les traitements sur le CServeurMail. a) Représentez ce composant sur un diagramme de composants. b) Modélisez sur un diagramme de structure interne les composants instanciés sur la machine serveur. a) (40%) 20% par itf utilisée b) (60%) 10% par composant instancié 15% par connecteur orienté Page 8

SMTP (3 points) Question 2.10 : (3 points) a) Que manque-t-il au système pour être réellement opérationnel (par exemple pour permettre d exécuter la séquence caractéristique identifiée en 2.3)? b) Proposez une interface ISMTP et ses opérations pour permettre de compléter notre conception. c) Quel(s) composants parmi ceux déjà définis devraient logiquement réaliser/utiliser cette interface? a) On a une interface en lecture pure + destruction sur le serveur, pas moyen de mettre des mails dans le système! (30%) b) On doit avoir au moins une opération sendmail(adresse : String, contenu :String[*]) (30%) c) Le ServeurMail doit l implémenter (20%), le ClientMail l utilise (20%). Crédits : Certains textes de cet énoncé sont basés sur les descriptions des pages wikipedia dédiées à pop. Page 9