Trace Server

Introduction

Trace Server est une solution offrant des fonctionnalités de gestion de traces dans un environnement distribué. Trace Server est développé au dessus du framework .NET et se base sur l'infrastructure standard de gestion des traces .NET.

Il est ainsi possible de se connecter depuis un poste unique à plusieurs applications distantes pouvant être réparties sur plusieurs serveurs afin d'analyser les traces émises.

Le scénario

Problème

Mido, un architecte logiciel chez VirtualPlane Inc., société spécialisée dans la conception d'avions, travaille sur un projet complexe de développement. Afin de respecter les standards .NET, un framework "entreprise" contenant des classes évoluées pour gérer les traces a été développé et sert de socle à toutes nouvelles applications en cours de développement dont le projet sur lequel travaille Mido. La phase d'intégration ayant débuté, la nouvelle application doit être déployée sur plusieurs serveurs physiques afin de réaliser des tests de montée en charge dans un environnement très proche de celui de production.

Mido fait rapidement face au problème suivant: comment centraliser le plus efficacement possible les traces émises par l'application qui est déployée sur plusieurs serveurs physiques? Après quelques recherches sur le net, il tombe sur Trace Server.

Solution

La solution est composée des briques suivantes:

  • TraceServerLibrary: une « assembly » .NET représentant le cœur de la solution et implémentant un « trace listener » standard.
  • TraceServerClient: une application graphique WinForm permettant de visualiser l'agrégat de traces provenant des applications distantes.
  • TraceServerClientConsole: une application en mode console permettant de visualiser l'agrégat de traces provenant des applications distantes.
  • TraceServerConsole: un serveur socket TCP en mode console.
  • TraceServerService: un serveur socket TCP en mode service windows.

Mido déploie TraceServerLibrary.dll et TraceServerService.exe sur chaque serveur hébergeant l' application. Comme le « listener » de TraceServer s'appuiesur la classe System.Diagnostics.TraceListener native au framework .NET, il peut être utilisé dans n'importe quel fichier de configuration (web.config ou monAppli.exe.config) au même titre que les autres composants de trace .NET.

<configuration> <system.diagnostics> <traceautoflush="false"indentsize="4"> <listeners> <addname="myListener"type="TraceServer.TraceListener, TraceServerLibrary"initializeData="udp://224.1.0.0:800/needfileinfo=true;"/> </listeners> </trace> </system.diagnostics> </configuration>

Conclusion

Trace Server est un puissant outil de centralisation des traces émises par des applications distantes pour peu qu'elles utilisent déjà un mécanisme de traçage basé sur le framework .NET.

Trace Server a été développé de manière à rapidement fournir de la valeur aux développeurs sans avoir à modifier le code existant.

Et avantage non négligeable: Trace Server est gratuit et est disponible avec le code source:). Le fichier zip contient par ailleurs une documentation détaillée sur le fonctionnement et l'installation de l'outil.

Télécharger le code d'exemple

Omid Bayani & Simon Mourier

Retour