EXAMEN ARCHITECTURE WEB FA3BIA



Documents pareils
Mise en œuvre des serveurs d application

Environnements de Développement

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Refonte front-office / back-office - Architecture & Conception -

Java pour le Web. Cours Java - F. Michel

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

1. Installation d'un serveur d'application JBoss:

Formation en Logiciels Libres. Fiche d inscription

Développement des Systèmes d Information

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Compte Rendu d intégration d application

Application web de gestion de comptes en banques

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

SITE WEB E-COMMERCE ET VENTE A DISTANCE

JavaServer Pages (JSP)

Catalogue des Formations Techniques

Nouvelles Plateformes Technologiques

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Le passage à l échelle de serveur J2EE : le cas des EJB

Introduction à la plateforme J2EE

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

10. Base de données et Web. OlivierCuré

Authentification avec CAS sous PRONOTE.net Version du lundi 19 septembre 2011

Qu'est-ce que le BPM?

Web Tier : déploiement de servlets

JOnAS 5. Serveur d application d

Public Key Infrastructure (PKI)

Hébergement de sites Web

Architecture d'entreprise : Guide Pratique de l'architecture Logique

TD sur JMS ) Qu est-ce qu un middleware orienté message (MOM)? Quelles différences faites-vous entre un MOM et JMS?

Business Intelligence avec SQL Server 2012

Cours en ligne Développement Java pour le web

Application Web et J2EE

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

Single Sign On. Nicolas Dewaele. Single Sign On. Page 1. et Web SSO

Module BD et sites WEB

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)

J2EE - Introduction. Développement web - Java. Plan du chapitre

Chapitre 2. Classes et objets

Programmation Web. Introduction

Guide d'initiation aux. certificats SSL. Faire le bon choix parmi les options qui s'offrent à vous en matière de sécurité en ligne. Document technique

InfraCenter Introduction

Architectures en couches pour applications web Rappel : Architecture en couches

Auto-évaluation Aperçu de l architecture Java EE

Plateforme PAYZEN. Définition de Web-services

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

CQP Développeur Nouvelles Technologies (DNT)

A. Architecture du serveur Tomcat 6

Qu'est ce qu'une Fédération d'identités? Définitions Fonctionnement de base Fonctionnement détaillé Les principaux composants

RMI le langage Java XII-1 JMF

25 septembre Migration des accès au Registre national en protocole X.25 vers le protocole TCP/IP, pour les utilisateurs du Registre national

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Messagerie asynchrone et Services Web

Manuel d'utilisation du navigateur WAP Palm

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Projet de Veille Technologique

Single Sign-On open source avec CAS (Central Authentication Service)

Outil de planification en ligne pour des créations de rendez-vous ou de sondage

Guide d'inscription pour obtenir un certificat ssl thawte

Windows Server Chapitre 3 : Le service d annuaire Active Directory: Concepts de base

Les messages d erreur d'applidis Client

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

Documentation de la plate forme JOnAS

Définition des Webservices Ordre de paiement par . Version 1.0

Introduction aux applications réparties

2 Chapitre 1 Introduction

Programmation Web. Madalina Croitoru IUT Montpellier

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

WebSSO, synchronisation et contrôle des accès via LDAP

Documentation de la plate forme JOnAS. Frederic Maistre

4. Groupement d objets

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Ajouter le moyen de paiement e-chèque-vacances (ANCV) Systempay 2.3

Shibboleth. David Verdin - JOSY "Authentification centralisée pour les applications web" - Paris - 4 février mai

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

RENDRE VOS APPLICATIONS JAVA PLUS EFFICACES Ce qu'il faut savoir

1.Choix technologiques

Les tableaux de bord de pilotage de nouvelle génération. Copyright PRELYTIS

Ré-architecture et migration d une application standalone vers un serveur applicatif multi-tiers dans un contexte JAVA-SAP

TP architecture N-tiers en Java EE ou Java EE, Android : la synthèse. Le serveur GereCompteBancaireServlet

TD/TP PAC - Programmation n 3

Diagramme de déploiement

Introduction : présentation de la Business Intelligence

Objectif. Participant. Prérequis. Oracle BI Suite EE 10g R3 - Développer des référentiels. 5 Jours [35 Heures]

TECHNOLOGIE SOFTWARE DU FUTUR. Logiciel de gestion d entreprise pour le Web

Architectures web/bases de données

7 villa de la citadelle Né le 13 mai Arcueil Nationalité : Française. Développeur Web JEE COMPÉTENCES

Etude de cas : PGE JEE V2

Sage CRM. 7.2 Guide de Portail Client

Construction d'une application MVC distribuée avec Spring Remoting. Partie 1 : HttpInvoker, Hessian, Burlap, RMI

Transcription:

EXAMEN ARCHITECTURE WEB FA3BIA Note: Cet examen est divisé en 4 parties. La notation ainsi que le temps maximum est indiqué à tire d'informations : Questions de cours (2,5 mn/question). Il est conseillé de ne pas dépasser 30 mn pour répondre à l'ensemble des question de cours. Exercice de cryptologie (30 mn) Exercice d'analyse sur les architectures J2EE à base de Servlet et d'ejb (30mn) Une étude cas de SI pour le commerce électronique à implanter (1h30) I- Questions de cours (6 pt, 0,5/réponse) La notation des questions de cours dépendra de leur précision et de leur concision. a- Qu'est-ce qu'un objet métier? Donnez un exemple. b- Expliquez comment un serveur Web peut connaître le type de navigateur utilisé par un client pour envoyer sa requête? c- Quel est le type de la requête HTTP envoyé par un navigateur Web lorsque l'utilisateur demande l'url http://www.univ-paris12.fr? Indiquez en détail la requête envoyée par votre navigateur. d- Quels sont les deux types de requêtes HTTP utilisés pour soumettre un formulaire HTML à un serveur? e- Par quel moyen un serveur Web avertit-il le client lorsque ce dernier lui demande une page inexistante? f- Quel est le mécanisme le plus simple et le plus ancien utilisé par les serveurs Web pour lancer l'exécution de programmes externes en réponse à certaines requêtes? Expliquez en détail comment ces programmes peuvent recevoir des arguments (ou paramètres) envoyés par le client (que doit envoyer le client et comment le programme y accède-t-il?) g- Citez au moins deux avantages de l'utilisation des Servlets/JSP par rapport au CGI? h- Indiquez le code HTML de la page qui affiche dans un navigateur «Vive la MIAGE» i- Donnez l'acronyme et la signification d'un cryptosystème couramment utilisé dans le commerce électronique. Où se place cette couche dans le modèle en couche de TCP/IP? j- D'après-vous quel est l'avantage d'utiliser une architecture à base de WebServices par rapport à une architecture J2EE (EJB) ou.net pour le debuggage et l'indexation dans un moteur de recherche? Justifiez. k- Est-ce que les architectures J2EE (EJB) et.net sont interopérables? Justifiez. 1

l- Citez les 5 besoins fondamentaux de la sécurité que permettent d'assurer les cryptosystèmes. Complétez ce postulat: une chaîne de sécurité casse toujours par le maillon le plus... Donnez un synonyme emprunté au langage employé en sécurité à la place? Donnez un exemple concret en 3 mots maximum. II- Exercice de Cryptologie - SET (Secure Electronic Transactions) (3 pt) SET est un protocole qui a pour objectif de sécuriser l'interface monétique d'un Serveur Web. C'est un système classé dans les autres moyens de paiements que la carte bancaire car le serveur Web commerçant a seulement une information sur l'article acheté, son coût et si le paiement est approuvé par la banque. Généralement, on utilise la carte bancaire avec SET mais l'avantage par rapport aux autres moyens de paiements sécurisés par CB est que le Site Web commercial n'a aucune possibilité de connaître le moyen de paiement employé par le client, ni son numéro de CB du client. Les entités en jeux lors d'une transaction avec SET sont: Le client (navigateur Web) Le site Web de commerce électronique ou commerçant L'organisme de carte bancaire (CB) La banque du client Le cryptosystème utilisé est à base de clé publique/clé privée. Le client et le site Web commerçant possède un certificat délivré par un CA (Certification Authority) Phase initiale (1) : Le client obtient une carte de crédit de sa banque référencée auprès de l'organisme de carte de crédit (MasterCard, Visa, etc). Le client obtient un certificat de l'organisme de certification. Le site Web commerçant obtient également un certificat. Les certificats ont le même objectif que celui vu en cours, c est-à-dire, assurer que la clé publique appartient bien à celui qui en est le détenteur légitime. Phase initiale avant la transaction (2) : Le client (navigateur Web) contacte le site web commerçant pour obtenir le prix de l'article souhaité. Le client vérifie la validité du certificat du site web commerçant auprès de l'organisme de certification. a(0,5 pt)- Que doit posséder le client pour authentifier le commerçant? Qu'est-ce qui n'est pas précisé à la première étape du (2) et qui est envoyé par le commerçant au client? b(0,5 pt)- Que doit posséder le navigateur web pour s'assurer que le dialogue entre lui et l'organisme de certification soit sécurisé? Justifiez. 2

c(0,5 pt)- Par un diagramme, représentez l'intégralité des deux étapes de la phase initiale (2). Phase de commande (3): Le client envoie au site Web commerçant: Sa commande chiffrée avec la clé publique du fournisseur. Un ordre de paiement chiffré avec la clé publique de l'organisme de carte de crédit. Cet ordre de paiement contient le numéro de CB du client ainsi qu'une référence à l'article acheté et son prix. Attention: le client ne communique par directement avec l'organisme de carte de crédit mais uniquement avec le site Web commerçant. Ces deux informations sont signées au moyen d'une signature. d(0,5 pt)- D'où provient ou plutôt où faut-il chercher l information pour obtenir la clé publique utilisée pour chiffrer l'ordre de paiement? e(0,5 pt)- Indiquez pourquoi le commerçant ne peut lire les informations de l'ordre de paiement envoyé par son client? Le commerçant: Vérifie le certificat du client. Le commerçant envoie un message de paiement à l'organisme de carte bancaire chiffré avec la clé publique de l'organisme de CB contenant: l'ordre de paiement qui lui a été envoyé par le client son certificat (certificat du commerçant) L'organisme de carte de crédit vérifie: L'identité du fournisseur. L'ordre de paiement initialement envoyé par le client et les informations qu'il contient. La solvabilité du client auprès de sa banque. L'organisme de carte de crédit renvoie une autorisation au fournisseur qui valide alors la commande f(0,5 pt)- Donnez un moyen vu en cours afin d'assurer que l'autorisation envoyée par l'organisme de carte bancaire au commerçant permet d'être sûr qu'elle est bien envoyée par ce premier. Ce moyen doit assurer la confidentialité ET l'authentification (plus intégrité). Justifiez votre réponse. 3

III- Servlets/JSP et EJB - Comparaison des performances des architectures (3 pt) L'étude présentée dans cet exercice compare l'utilisation, d une part, des Servlets et des EJB et d autre part, différents serveurs d'applications entre eux (JBoss et Jonas). Cette étude a consisté à réaliser la même application sur 4 architectures différentes. L'application implantée est une application classique de commerce électronique avec une partie présentation, une partie business et une partie données. Les 4 architectures sont les suivantes: Architecture 1 : les parties présentation et business sont codées dans les Servlets Java. La partie donnée est dans une base de données. Les accès à la base de données sont codés directement dans les Servlets. Architecture 2 : la partie présentation est codée dans les Servlets. La partie business est codée dans des Bean Session. La partie données est dans une base de données. Les accès à la base de données sont codés directement dans les Bean Session. Architecture 3 : les parties présentation et business sont codées dans des Servlet. La partie données est dans les EJB Entity CMP (Container Managed Persistence). Les accès à la base de données sont faits dans les Servlet via les Bean Entity CMP. Architecture 4 : la partie présentation est codée dans des Servlets. La partie business est codée dans des Bean Session. La partie donnée est dans des Bean Entity CMP. Les accès à la base de données sont faits dans les Bean Session via les Bean Entity CMP. NB: Aidez-vous d'un tableau pour résumer toutes ces informations. La première courbe compare l'architecture 1 avec l'architecture 2. Les autres courbes et les histogrammes comparent uniquement les différents serveurs d'applications entre eux. On s'intéresse uniquement dans cet exercice à la comparaison des différentes architectures (et pas des serveurs applicatifs entre eux pour une même architecture). Les flèches vous indiquent ce qu'il est important de comparer. Les informations suivantes sont des rappels du cours: La communication représente le temps passé pour la communication par messages entre les composants par exemple entre une Servlet et la base de données pour l architecture 1. Le container qui héberge les Bean peut être plus ou moins sollicité en fonction des services qu'on lui demande (ex: persistance) par contre le conteneur est généralement optimisé pour gérer les services qu'il fournit comme la persistance par exemple. La conséquence est qu il y a moins de messages en règle générale. a(1 pt)- Justifiez le choix de la méthodologie employée pour comparer les 4 architectures. Que peut-on comparer comme architecture entre-elles? Justifiez. b(1 pt)- Commentez et comparez les courbes qui montrent le nombre de requêtes traitées par minute en fonction du nombre de clients. c(1 pt)- Commentez et comparez les histogrammes en ne prenant en compte que les résultats du serveur d'application JOnAs Jeremie. Attention : on ne peut pas comparer directement deux histogrammes de deux architectures différentes car pour une même architecture, les histogrammes des différents serveurs applicatifs se basent sur un histogramme de référence qui est le premier en partant de la gauche. 4

IV- Servlets et JSP - Mise en place d'une application Web de commerce électronique (8 pt) Dans cet exercice, il vous est demandé de compléter le code de la page d accueil d un site web de commerce électronique afin de pouvoir interagir avec une Servlet que vous devez coder entièrement. L architecture mise en place pour ce site repose sur un serveur de rendu HTLM (Apache) et un serveur de Servlet/JSP tel que TOMCAT. Le code de la page d accueil, form.jsp est fourni. Le code des classes Article, Catalogue(hérite de la classe vecteur) et du Caddy sont fournis. Le code de la classe Article est le suivant : ----------------------------------------------Article.java----------------------------------------------------- package org.univparis12.archweb.examen; public class Article { String nom; int prix; int ref; public Article() { public String getnom() { return this.nom; public int getprix() { return this.prix; public int getref() { return this.ref; public void setnom(string s) { this.nom = s;; public void setprix(int i) { this.prix = i; public void setref(int i) { this.ref = i; ----------------------------------------------------------------------------------------------------------------- 5

Le code de la page d accueil est le suivant : ----------------------------------------------jsp.form--------------------------------------------------------- <%@ page import="java.util.vector" %> <%@ page import="java.util.iterator" %> <%@ page import="org.univparis12.archweb.examen.article" %> <jsp:usebean id="art1" class="org.univparis12.archweb.examen.article"> <jsp:setproperty name="art1" property="nom" value="cours de Java"/> <jsp:setproperty name="art1" property="prix" value="25"/> </jsp:usebean> <jsp:usebean id="art2" class="org.univparis12.archweb.examen.article"> <jsp:setproperty name="art2" property="nom" value="cours d'architecture Web"/> <jsp:setproperty name="art2" property="prix" value="50"/> </jsp:usebean> <jsp:usebean id="art3" class="org.univparis12.archweb.examen.article"> <jsp:setproperty name="art3" property="nom" value="cours de Reseau"/> <jsp:setproperty name="art3" property="prix" value="45"/> </jsp:usebean> <jsp:usebean id="catalogue" class="org.univparis12.archweb.examen.catalogue"/> <table border="0"> <tr bgcolor="#aaaaaa"> <td>nom</td> <td>prix</td> </tr> <% catalogue.add(art1); catalogue.add(art2); catalogue.add(art3); Article item; Iterator ite = catalogue.iterator(); while(ite.hasnext()) { item = (Article) ite.next(); %> <tr bgcolor="#dddddd"> <td><%=item.getnom()%></td> <td><%=item.getprix()%></td> </tr> <% %> </table> ----------------------------------------------------------------------------------------------------------------- 6

Le code des classes Catalogue et Caddy est le suivant : ----------------------------------------------Catalogue.java------------------------------------------------- package org.univparis12.archweb.examen; public class Catalogue extends java.util.vector { ----------------------------------------------------------------------------------------------------------------- ----------------------------------------------Caddy.java_---------------------------------------------------- package org.univparis12.archweb.examen; import java.util.vector; public class Caddy { String sessionid; Vector listarticles; public Caddy(String s) { this.sessionid = s; listarticles = new Vector(); public String getsessionid() { return this.sessionid; public Vector getlistarticles() { return this.listarticles; ----------------------------------------------------------------------------------------------------------------- 7

QUESTIONS : a- (0,5 pt) Qu affiche la page d accueil? A quoi servent les trois premiers usebean? b- (0,5 pt) Indiquez ce qu il faut rajouter aux trois premiers usebean pour que chaque article est une référence unique? Que choisiriez-vous comme référence pour s assurer de l unicité de chaque référence? c- (1 pt) Modifiez le code de la page d accueil form.jsp afin qu un formulaire puisse être envoyé avec la méthode POST pour ajouter des articles au caddy. Le formulaire doit englober le tableau. Pour ce faire, rajoutez la form action et utilisez les checkbox du HTML qui se codent en html: <input type="checkbox" name=<nom_de_la_checkbox> value=<a_vous_de_deviner> d- (1,5 pt) Implantez la méthode dopost dans la Servlet appelée par le formulaire que vous avez codé dans form.jsp modifié par vos soins. e- (0,5 pt) Rajoutez un lien à form.jsp modifié qui va permettre de visionner le contenu du caddy et son total et qui appelle la même Servlet indiquée à la question d. Quelle méthode de la Servlet, votre lien va-t-il appeler? f- (2 pt) Codez le code de la nouvelle méthode de votre Servlet? Si besoin, veuillez également coder les méthodes manquantes des classes fournies. g- (0,5 pt) Dans cette implantation, il n y a pas de support de la session avec un client. Quelle(s) méthode(s) préconisez-vous d utiliser? A quoi sert la chaîne de caractère en paramètre du constructeur du caddy? h- (0,5 pt) Implantez le code du fichier web.xml afin de déployer correctement votre Servlet. i- (1 pt) Indiquer les composants EJB que vous auriez utilisé si l architecture déployée reposait sur un serveur d applications J2EE (à titre d exemple, où stockeriez-vous le catalogue)? Quels services des conteneurs utiliseriez-vous et à quelle fin? Indiquez pour chaque classe, sa correspondance dans le monde EJB. Par un schéma, représentez l architecture N-Tiers J2EE du site web reconçu avec les EJB. Indiquez pour chaque couche les technologies employées. 8