Conception et développement d’un moteur de monitoring web configurable

Institut National des Sciences Appliquées et de Technologie (INSAT)
1/35
100%
Rendu du PDF...
Page 1 sur 35Lecteur de document UniversityLib

Conception et développement d’un moteur de monitoring web configurable

Institut National des Sciences Appliquées et de Technologie (INSAT) · Programming, Web Monitoring, Software Development · textbook

<!-- Slide number: 1 -->

![](Picture11.jpg)

![](Picture5.jpg) Université du 7 Novembre à Carthage Institut National des Sciences Appliquées et de Technologie # Conception et développement d’un moteur de monitoring web configurable

Réalisé par: Mohamed Haythem ZAYANI

Encadré par: Mohamed ROMDHANI (INSAT) Wilfried KAMWA (DATAVANCE)

Notes: Mme. la présidente, M. membres du jury, j’ai l’honneur de vous présenter mon projet de fin d’études intitulé « conception et développement d’un moteur de monitoring web configurable » encadré par M. Mohamed Romdhani et M. Wilfried KAMWA et effectué au sein de l’entreprise expedia corporate travet entrerise cliente de DATAVANCE informatique

<!-- Slide number: 2 --> # Plan

Introduction Mise en contexte Analyse et Conception Réalisation Conclusions et Perspectives 2 10/01/2009 Conception et développement d’un moteur de monitoring web

Notes: Nous allons entamer cette présentation par l’énonciation des problématiques posées durant ce projet ainsi que les motivations soulevées. Nous nous attarderons ensuite sur la notion de monitoring web et les différents types de monitoring. Nous exposerons la méthodologie adoptée pour concevoir notre solution et nous mettrons en exergue les caractéristiques de notre applicatif. Nous clôturerons par une conclusion et des perspectives.

<!-- Slide number: 3 --> # Introduction 3 10/01/2009 Conception et développement d’un moteur de monitoring web

<!-- Slide number: 4 --> # Introduction

Généralisation de l’Internet et des sites de e-commerce et de e-business.

Des entreprises de plus en plus présentes sur la toile.

Secteur des services en ligne en pleine expansion. (55% de progression en Europe entre 2005 et 2006).

4 10/01/2009 Conception et développement d’un moteur de monitoring web

Notes: Encore boudé par les consommateurs il y a quelques années, le secteur des achats en ligne est actuellement en plein développement. En effet, avec la généralisation de l’Internet et des sites d’e-commerce, de plus en plus de consommateurs sont tentés de franchir le pas et d’acheter en ligne. Et de plus en plus d’entreprises sont présentes sur la toile. Cette présence s’inscrit dans la stratégie de l’entreprise Expedia Corporate Travel qui se doit de garantir Une service continu (sans interruption) et qui se doit aussi de veiller sur le bon fonctionnement de son portail. Qui constitue la vitrine de l’entreprise.

<!-- Slide number: 5 --> # Problématiques et motivations

Comment garantir la disponibilité d’un site web?

Quels sont les moyens de détection des pannes matérielles et des bugs transactionnels?

Comment mettre en œuvre les tests d’évaluation?

5 10/01/2009 Conception et développement d’un moteur de monitoring web

Notes: La problématique consiste donc à se poser les questions suivantes : Comment garantir la disponibilité d’un site web? Quels sont les moyens de détection des pannes matérielles et des bugs transactionnels? Comment pouvons nous mettre en œuvre les tests d’évaluation? … La problématique concerne aussi la manière avec laquelle nous allons réaliser notre applicatif afin De répondre aux besoin spécifique de l’entreprise.

<!-- Slide number: 6 --> # Objectif du travail

Concevoir et développer un moteur de monitoring web.

Le moteur sera adaptable.

Le moteur permettra : L’exécution des tests de performance. La génération d’arbre de navigation. L’édition et l’exécution de scénarii de test. Génération des déployables de test. 6 10/01/2009 Conception et développement d’un moteur de monitoring web

Notes: Le but général de ce travail est de concevoir et de développer un moteur de monitoring web. de le rendre, ce dernier, configurable afin de pouvoir tester de manière spécifique le workflow du site. Le moteur permettra de réaliser les tests suivant: Tests de performances, tests des points mort sur le site, test du workflow. En ce qui concerna ce dernier test, nous aurons en output un déployable prêt à etes hebergé sur un serveur de test qui jouera le role de sonde.

<!-- Slide number: 7 --> # Entreprises d’accueil

DATAVANCE Informatique SSII française Fondée en 1990. Spécialisée dans les prestations intellectuelles de haut niveau technologique. Compte environ 800 collaborateurs.

Expedia Corporate Travel Client chez DATAVANCE. Agence de voyage en ligne. Opère sur le secteur de voyages d’affaires. Leader mondial dans la réservation des nuits d’hotel. CA 16 million de dollars.

7 10/01/2009 Conception et développement d’un moteur de monitoring web

Notes: Le stage s’est effectué au sein l’entreprise Datavance et s’est déroulé en forfait chez son client Expedia.

Qui est une SSII fancaise fondée en 1990 et qui est spécialisée dans les prestation intellectuelles de haut niveau technologique. Elle opére sur les secteurs financier, telecom et de e_commerce. En ce qui concerne son client, expédia est une agence de voyages en ligne et opère sur le secteur des voyages d’affaires.

<!-- Slide number: 8 --> # Mise en contexte 8 10/01/2009 Conception et développement d’un moteur de monitoring web

<!-- Slide number: 9 --> # Le monitoring (1)

Le monitoring web vise à assurer la surveillance des sites en ligne.

Il s'agit généralement d'une série de tests simulant la venue d'un internaute.

Le monitoring permet d’évaluer les temps de réponses des serveurs.

Génère des rapports détaillés pour chaque test. 9 10/01/2009 Conception et développement d’un moteur de monitoring web

Notes: Le monitoring de site web (francisé en surveillance) vise à assurer la surveillance d'un site Web. Le système de surveillance est généralement mis en place par une société externe et permet de vérifier la qualité d'un produit/service. Il s'agit généralement d'une série de tests simulant la venue d'un internaute. On utilise un cahier d'actions à effectuer sur le site dont le résultat est comparé à un cahier de résultats attendus.

Par exemple, on peut souhaiter valider la chaîne d'action permettant de réaliser une commande. Afin de vérifier la bonne visibilité du site sur la plus grande partie d'internet, les tests sont effectués par des serveurs répartis dans le monde, Et réalisées à une fréquence variable, allant d'une minute à une journée. Si une erreur est détectée sur un des serveurs, une contre-mesure est effectuée par un ou plusieurs autres serveurs. Lorsqu'une erreur est confirmée, une alerte est alors envoyée au responsable du site (mini-message, courriel, messagerie instantanée ou téléphone) afin qu'il puisse réparer la panne. Les seuils d'erreurs et d'alertes sont établis selon un cahier des charges fournis par le client. Ces tests font l'objet de rapports aux fréquences variables (heure, jour, mois) et permettent de faire évoluer l'architecture technique du site. Ces rapports indiquent pour chaque action un taux de disponibilité.

<!-- Slide number: 10 --> # Le monitoring (2)

| S’il est disponible à | Il est non fonctionnel, sur un an, pendant | | --- | --- | | 90% | 876 heures | | 95% | 438 heures | | 99% | 87 heures, 36 minutes | | 99,9% | 8 heures, 45 minutes, 36 secondes | | 99,99% | 52 minutes, 33,6 secondes | | 99,999% | 5 minutes, 15,36 secondes | | 99,9999% | 31,68 secondes | 10 10/01/2009 Conception et développement d’un moteur de monitoring web

Notes: Le taux de disponibilité est généralement traduit en nombre d’heure d’indisponibilité sur une année. Par exemple pour un taux de disponibilité égale à 95% nous auront 438 heures d’indisponibilité sur l’année. Nous remarquons aussi, que aussi faible le taux soit il, il représente une période d’indisponibilité non négligeable. Par exemple entre les taux 99,99% et 99, 999% 0,009% de différence représente environ 45 minutes d’indisponibilité Sur l’année (plus que 2 jours).

Publicité

<!-- Slide number: 11 --> # Le monitoring (3)

Le monitoring applicatif

Détecte les problèmes matériels.

Évalue les temps de réponses.

Analyse la disponibilité.

Les protocoles qui font objet de test sont : FTP, SMTP, POP…

11 10/01/2009 Conception et développement d’un moteur de monitoring web

Notes: Pour ce qui est des types de monitoring Nous pouvons citer le monitoring transactionnel (qui analyse chaque étape d’un processus de vente par exemple). Ou dans le cadre de l'informatique : le monitoring réseau ou applicatif. Ce type de monitoring permet de : Détecte les problèmes matériels. Évalue les temps de réponses. Analyse la disponibilité. Et même d’exécuter des test visant à évaluer les incidents ou les performances sur un protocole.

<!-- Slide number: 12 --> # Le monitoring (4)

Le monitoring transactionnel

Simule un utilisateur.

Analyse des processus.

Analyse l’accès aux ressources externes.

Évalue l’aboutissement des requêtes. 12 10/01/2009 Conception et développement d’un moteur de monitoring web

Notes: Quant au deuxième type, le monitoring transactionnel permet de simuler un utilisateur et fourni : Analyse un workflow. Analyse l’accès aux ressources externes.

<!-- Slide number: 13 --> # Analyse et conception 13 10/01/2009 Conception et développement d’un moteur de monitoring web

<!-- Slide number: 14 --> # Analyse et conception

Utilisation de 2TUP : Two Track Unified Process

Pourquoi 2TUP? Sépare les besoins technologiques des besoins fonctionnels. Itératif. Fait une large place à la technologie. Centré sur l’architecture. 14 10/01/2009 Conception et développement d’un moteur de monitoring web

Notes: Le processus unifié 2TUP, a été adpté tout au long du cycle d’analyse et de conception. Pourquoi 2TUP: Parce que il permet d’effectuer une étude qui sépare les besoins technologiques de ceux fonctionnels, il est itératif, centré sur l’architecture et fait une large place à la technologie.

<!-- Slide number: 15 --> # Les besoins fonctionnels

![](Picture5.jpg) 15 10/01/2009 Conception et développement d’un moteur de monitoring web

Notes: Les besoins fonctionnels s’illustrent à travers le diagramme d’utilisation suivant

<!-- Slide number: 16 --> # Les besoins techniques

La platforme JAVA JEE et sa composante JSE.

Les frameworks techniques utilisés sont :

Les frameworks « unit » : JUnit, JWebUnit, HtmlUnit et JPerfUnit.

Framework web : Wicket.

Framework de persistance : Hibernate.

Framework de journalisation : Log4J. 16 10/01/2009 Conception et développement d’un moteur de monitoring web

<!-- Slide number: 17 --> # Les frameworks « unit » (1)

HtmlUnit

« un navigateur pour les programmes java ».

N’est pas un outil de test.

Propose une API de bas niveau.

Supporte le JavaScript

17 10/01/2009 Conception et développement d’un moteur de monitoring web

Notes: HtmlUnit est selon les explications du site officiel « un navigateur pour les programmes java ». Ce n’est pas au départ un outil de tests, mais un ensemble API de « bas niveau » de simulation des navigateurs web. On peut imaginer de nombreuses utilisations. Utilisé avec le Framework de test java JUnit, il devient un outil de test unitaire côtés présentation. Son point fort par rapport à HttpUnit est son large support pour javascript.

<!-- Slide number: 18 --> # Les frameworks « unit » (2) JWebUnit Approche différente de HtmlUnit Propose un code plus concis que HtmlUnit. Est basé sur HtmlUnit.

![](Picture4.jpg) 18 10/01/2009 Conception et développement d’un moteur de monitoring web

Notes: Il s’agit d’une approche différente du htmlUnit plus proche d’un utilisateur web avec une API de plus haut niveau. Le code avec JWebUnit est deux fois plus concis qu’avec HtmlUnit.

<!-- Slide number: 19 --> # Les frameworks « unit » (3)

JPerfUnit

Collection de test JUnit pour les tests de performance.

Publicité

Propose les décorateurs suivants:

TimedTest Mesure le temps d’exécution. Échoue si le temps réservé est dépassé.

LoadTest Exécute des tests avec simulation d’utilisateurs.

19 10/01/2009 Conception et développement d’un moteur de monitoring web

Notes: Le framework JUnitPerf est une collection de test JUnit utilisée afin de mesurer les performances et l’évolutivité des fonctionnalités analysées avec des tests JUnit existants. Il propose deux décorateurs Timed test pour les mesures des temps d’exécutions et LoadTest pour les tests avec simulations.

<!-- Slide number: 20 --> # Le framework Wicket

Framework orienté composant.

Ne nécessite pas de code HTML spécifique ni de fichier de configuration XML compliqué.

Maintient automatiquement l'état des composants sur le serveur.

Est bâti sur la notion de modèle Wicket.

Propose une bibliothèque Ajax.

20 10/01/2009 Conception et développement d’un moteur de monitoring web

Notes: Malgré son succès pour le déploiement d'applications web côté serveur, Java souffre d'une réputation de technologie compliquée et difficile à mettre en oeuvre. Cette constatation est parfaitement vraie dans le cas de Java Enterprise Edition, conçue pour soutenir de très grosses applications réparties sur plusieurs machines. La plateforme Java SE suffit cependant pour construire des applications web grâce aux servlets, aux Java Server Pages (JSP) et à un simple serveur comme Tomcat, également appelé conteneur de servlet. Les JSP et servlets ne constituent que la couche de plus bas niveau des applications web écrites en Java. Pour simplifier et accélérer les développements, de nombreux frameworks sont disponibles, proposant tous des fonctionnalités et des concepts très différents.

Certains de ces frameworks, comme Spring, Turbine, Tapestry, Cocoon ou encore le fameux Struts, sont largement répandus et utilisés par de nombreuses entreprises. Bien que Wicket ne soit à première vue qu'un framework de plus dans cet univers déjà surchargé, les motivations de ses auteurs sont très claires. Contrairement aux offres existantes, Wicket est simple à apprendre, ne nécessite pas de code HTML spécifique ni de fichier de configuration XML compliqué et repose sur une API semblable à Swing. A l'instar des Java Server Faces (JSF) ou d'ASP.NET, Wicket maintient en outre automatiquement l'état des composants sur le serveur. Un champ texte d'une page HTML est par exemple lié à un composant et à un modèle Java du côté serveur. Cette solution permet de vous affranchir d'une grande partie de la gestion des sessions utilisateurs. Enfin, comme nous allons le voir, Wicket rend très facile la séparation entre la logique et la présentation.

<!-- Slide number: 21 --> # Architecture de la solution proposée

![](Picture15.jpg) 21 10/01/2009 Conception et développement d’un moteur de monitoring web

Notes: L’architecture de notre solution est illustrée par la figure suivante. En vert nous retrouvons les technologies utilisée pour effectuer les tests et simuler un utilisateur. En bleu nous retrouvons les composants que nous avons crée et qui se basent sur les technologies unit & le framework de persistance Hibernate. Nous remarquons que la couche hibernate est représentée par deux couleur…La verte pour dire que nous avons utilisé les primitives de ce framework et la bleu pour montrer que la persistance s’exécute au niveau de nos implémentations. Le cœur du moteur de test s’appui sur les techno unit de test. Et dessus nous avons greffé un module de parsing utilisé par le gen d’arbre de navigation et par l’editeur. Les tests de performance, utilisent exclusivement la couche Jperfunit et tout au dessus nous avon le générateur de déployable qui est commendable au nivo de l’editeur.

<!-- Slide number: 22 --> # Création de scénarii de test

![](Picture33.jpg)

![](Picture39.jpg)

![](Picture40.jpg)

![](Picture23.jpg)

![](Picture21.jpg)

![engrenage_anime](Picture27.jpg)

![](Picture45.jpg)

![](Picture24.jpg)

![](Picture52.jpg)

![](Picture22.jpg)

![engrenage_anime](Picture30.jpg)

![](Picture49.jpg) Création de scénarii Création de déployable Génération de rapport 22 10/01/2009 Conception et développement d’un moteur de monitoring web

Notes: L’animation suivante représente le diagramme de séquence pour la création de scénari.

<!-- Slide number: 23 --> # Diagramme de package TestEngineLight Les « helpers » Wicket

![](Picture4.jpg)

23 10/01/2009 Conception et développement d’un moteur de monitoring web

Notes: Le diagramme complet de package de notre solution est le suivant:

<!-- Slide number: 24 --> # Réalisation

![](Picture5.jpg) 24 10/01/2009 Conception et développement d’un moteur de monitoring web

<!-- Slide number: 25 --> # Bilan des réalisations Le bilan est le suivant: Mise en place de: Un moteur de monitoring.

Un éditeur de scénarii.

Un moteur de génération d’arbre de navigation.

Un simulateur de connexions Multi-Utilisateurs pour le test de performance.

Un générateur de code (les cœurs déployables).

Couplage des éditeurs avec une base de données MySQL. 25 10/01/2009 Conception et développement d’un moteur de monitoring web

Notes:

Publicité

<!-- Slide number: 26 --> # Problèmes rencontrés

Les principales contraintes rencontrées lors de la réalisation sont:

La gestion de la sérialisation des composants HtmlUnit.

Les conditions triviales des algorithmes récursifs du moteur de génération d’arbre.

La mise en place d’une interface de configuration générique.

La manipulation des composants. 26 10/01/2009 Conception et développement d’un moteur de monitoring web

<!-- Slide number: 27 --> # Exemples d’utilisation

Les exemples d’utilisation couvrent :

Le cycle de définition des scénarii. Les tests de performance. La génération d’arbres de navigation. La génération de code. La génération de rapports.

![](Picture4.jpg) 27 10/01/2009 Conception et développement d’un moteur de monitoring web

<!-- Slide number: 28 --> # Éditeur de scénarii

![](Picture8.jpg)

![](Picture11.jpg)

![](Picture4.jpg)

28 10/01/2009 Conception et développement d’un moteur de monitoring web

<!-- Slide number: 29 --> # Génération d’arbre de navigation

![](Picture4.jpg)

![](Picture6.jpg)

29 10/01/2009 Conception et développement d’un moteur de monitoring web

<!-- Slide number: 30 --> # Test de performance

![](Picture4.jpg)

![](Picture6.jpg)

![](Picture8.jpg)

30 10/01/2009 Conception et développement d’un moteur de monitoring web

<!-- Slide number: 31 --> # Génération de rapports

![](Picture4.jpg)

![](Picture6.jpg)

![](Picture8.jpg)

![](Picture10.jpg)

![](Picture9.jpg)

31 10/01/2009 Conception et développement d’un moteur de monitoring web

<!-- Slide number: 32 --> # Conclusions 32 10/01/2009 Conception et développement d’un moteur de monitoring web

<!-- Slide number: 33 --> # Bilan général

Implémentation d’un moteur de monitoring web pour le compte d’Expedia Corporate Travel.

Mise en place d’un ensemble d’éditeurs de création et de pilotage de tests.

Introduction de la notion de configuration.

Généricité de l’outil TestEngine. 33 10/01/2009 Conception et développement d’un moteur de monitoring web

<!-- Slide number: 34 --> # Perspectives

A court terme Améliorer les interfaces de configuration des composants de type formulaire. Intégrer la prochaine version du framework Wicket. Intégrer le nouveau JWebUnit.

A moyen terme Intégrer un module d’intelligence artificielle. Développer une interface de déploiement.

34 10/01/2009 Conception et développement d’un moteur de monitoring web

<!-- Slide number: 35 --> # Merci pour votre attention 35 10/01/2009 Conception et développement d’un moteur de monitoring web