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

Ce travail s'inscrit dans le domaine de l'informatique appliquée à la surveillance des sites web, un enjeu crucial pour les entreprises disposant d'une présence en ligne.

D'après le document Conception et développement d’un moteur de monitoring web configurable

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source

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

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

Consulter le document original →

Ce travail s'inscrit dans le domaine de l'informatique appliquée à la surveillance des sites web, un enjeu crucial pour les entreprises disposant d'une présence en ligne. Il intéressera particulièrement les étudiants et professionnels souhaitant comprendre comment concevoir un moteur de monitoring web configurable, capable d'assurer la disponibilité et la performance d'un site, notamment dans le contexte du e-commerce et des services en ligne.

La question

Le projet aborde la problématique suivante : comment garantir la disponibilité d’un site web tout en détectant efficacement les pannes matérielles et les bugs transactionnels ? Il s'agit aussi de déterminer comment mettre en œuvre des tests d’évaluation adaptés aux besoins spécifiques d’une entreprise, ici Expedia Corporate Travel, afin d'assurer un service continu et fiable. La question est d’autant plus pertinente que la croissance du commerce en ligne impose une surveillance rigoureuse des portails web pour éviter toute interruption ou dysfonctionnement pouvant nuire à l’expérience utilisateur et à la réputation de l’entreprise.

Concepts de base

Le monitoring web, ou surveillance de site web, consiste à assurer la supervision des sites en ligne via une série de tests simulant la navigation d’un internaute. Ces tests permettent d’évaluer les temps de réponse des serveurs et de générer des rapports détaillés pour chaque action effectuée. La surveillance est souvent réalisée par des serveurs répartis géographiquement, à des fréquences variables, afin de garantir une visibilité maximale du site sur Internet.

Le taux de disponibilité d’un site est un indicateur clé, exprimé en pourcentage du temps pendant lequel le site est accessible. Par exemple, un taux de 95% correspond à 438 heures d’indisponibilité sur une année, tandis qu’un taux de 99,999% ne laisse que 5 minutes d’indisponibilité. Cette mesure illustre l’importance de viser des taux très élevés pour minimiser les interruptions.

Il existe plusieurs types de monitoring :

  • Monitoring applicatif : il détecte les problèmes matériels, évalue les temps de réponse et analyse la disponibilité des services. Il teste aussi différents protocoles comme FTP, SMTP ou POP.
  • Monitoring transactionnel : il simule un utilisateur réel, analyse les processus métier (workflow), l’accès aux ressources externes et l’aboutissement des requêtes. Ce type est particulièrement utile pour valider les chaînes d’actions critiques, comme une commande en ligne.

Approche

Pour concevoir ce moteur de monitoring web configurable, l’auteur a adopté la méthode 2TUP (Two Track Unified Process). Ce processus unifié est itératif, centré sur l’architecture et sépare clairement les besoins fonctionnels des besoins technologiques, ce qui facilite la gestion du projet et l’intégration des technologies.

Les besoins fonctionnels ont été définis à travers des diagrammes d’utilisation, tandis que les besoins techniques ont conduit au choix de la plateforme Java JEE et de plusieurs frameworks :

  • HtmlUnit : un navigateur simulé pour les programmes Java, avec un support étendu de JavaScript, utilisé comme base pour les tests unitaires côté présentation.
  • JWebUnit : un framework basé sur HtmlUnit, offrant une API plus concise et orientée utilisateur.
  • JPerfUnit : une collection de tests JUnit pour mesurer les performances, avec des décorateurs comme TimedTest (mesure du temps d’exécution) et LoadTest (simulation d’utilisateurs multiples).
  • Wicket : un framework web orienté composants, simplifiant la gestion de l’état des composants côté serveur sans nécessiter de code HTML spécifique ou de fichiers XML complexes. Il facilite la séparation entre logique et présentation et propose une bibliothèque Ajax intégrée.
  • Hibernate : pour la persistance des données.
  • Log4J : pour la journalisation.

L’architecture de la solution repose sur ces technologies. Le moteur de test s’appuie principalement sur les frameworks unitaires pour simuler les utilisateurs et exécuter les tests. Un module de parsing est utilisé pour générer les arbres de navigation et alimenter l’éditeur de scénarii. Les tests de performance exploitent JPerfUnit, tandis que le générateur de déployables, commandé par l’éditeur, produit des modules prêts à être déployés sur un serveur de test jouant le rôle de sonde.

Résultats

Le projet a abouti à la réalisation d’un moteur de monitoring web complet et configurable, comprenant :

  • Un moteur de monitoring capable d’exécuter différents types de tests.
  • Un éditeur de scénarii permettant la création et la modification des tests.
  • Un moteur de génération d’arbre de navigation pour modéliser les parcours utilisateurs.
  • Un simulateur de connexions multi-utilisateurs dédié aux tests de performance.
  • Un générateur de code produisant les cœurs déployables pour les tests.
  • Un couplage avec une base de données MySQL pour la gestion des données.

Ces éléments permettent de couvrir tout le cycle de définition, d’exécution et d’analyse des tests, incluant la génération de rapports détaillés. L’introduction de la notion de configuration rend l’outil générique et adaptable aux besoins spécifiques de différents sites web.

Limitations et questions ouvertes

Plusieurs contraintes techniques ont été rencontrées :

  • La gestion de la sérialisation des composants HtmlUnit, essentielle pour la persistance et la transmission des états des tests.
  • La complexité des conditions triviales dans les algorithmes récursifs du moteur de génération d’arbre, qui nécessitent une attention particulière pour garantir leur bon fonctionnement.
  • La mise en place d’une interface de configuration générique, afin de rendre le moteur adaptable tout en restant simple d’utilisation.
  • La manipulation des composants, notamment dans le cadre de l’intégration avec les frameworks choisis.

Par ailleurs, des perspectives d’amélioration sont envisagées, notamment l’intégration de nouvelles versions des frameworks Wicket et JWebUnit, le développement d’interfaces de configuration plus ergonomiques, ainsi que l’introduction à moyen terme d’un module d’intelligence artificielle et d’une interface de déploiement.

Glossaire

  • Monitoring web : Surveillance des sites internet par des tests simulant la navigation d’un utilisateur.
  • 2TUP (Two Track Unified Process) : Méthode de développement itérative séparant besoins fonctionnels et technologiques.
  • HtmlUnit : Framework Java simulant un navigateur web, avec support JavaScript.
  • JWebUnit : Framework de test basé sur HtmlUnit, offrant une API plus concise.
  • JPerfUnit : Extension de JUnit pour les tests de performance.
  • Wicket : Framework web Java orienté composants, simplifiant la gestion de l’état serveur et la séparation logique-présentation.
  • Hibernate : Framework de persistance des données en Java.
  • Log4J : Framework de journalisation pour applications Java.
  • Scénarii de test : Suites d’actions simulant des interactions utilisateur pour valider un site web.
  • Arbre de navigation : Représentation des parcours possibles d’un utilisateur sur un site.
  • Déployable : Module de test prêt à être installé sur un serveur de test.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions