6.5 Implémentation

Nous avons implémenté le serveur en utilisant l'environnement MS-Visual C++. La taille du serveur (version binaire) ne dépasse pas 100 KB, mais il offre toutes les fonctionnalités nécessaires pour justifier son utilisation comme serveur VoD.

Au démarrage, le serveur ajoute une icône à la barre d'outils Windows (Figure 74). A travers un menu contextuel on peut accéder à son interface pour visualiser les clients connectés ou pour changer ses paramètres.

message URL fig74.gif
Figure 74 L'icône montrant que le serveur est démarré

Pour surveiller l'activité du serveur, une fenêtre permet de visualiser les clients connectés et les fichiers auxquels ils accèdent. Sur chaque connexion un certain nombre d'informations supplémentaires sont fournies, comme le débit et le nombre de requêtes effectuées par seconde.

message URL fig75.gif
Figure 75 Visualisation de l'activité du serveur : les connexions ouvertes par les clients et leurs caractéristiques (fichiers, débit, nombre de requêtes par seconde etc.)

Les propriétés du serveur ont été classées en deux catégories : des propriétés générales et des propriétés avancées. Les propriétés générales (Figure 763) sont :

message URL fig76.gif
Figure 76 Propriétés générales du serveur

Le client utilise une interface composée de pages HTML pour accéder au contenu du serveur. Dans le cas où l'interface n'est pas disponible, pour éviter que le client n'introduise l'URL d'un objet en dur, le serveur fournit une page implicite contenant les références vers les objets disponibles (Figure 77).

message URL fig77.gif
Figure 77 Page implicite fournie par le serveur avec le catalogue des objets disponibles

Les propriétés avancées du serveur (Figure 78) concernent le paramétrage pour l'agent de contrôle d'accès du serveur (QoS), la connexion réseau avec le client (TCP) et l'accès au système de stockage (MMIO).

message URL fig78.gif
Figure 78 Propriétés avancées du serveur. Paramétrage pour l'agent de contrôle d'accès du serveur (QoS), la connexion réseau avec le client (TCP) et l'accès au système de stockage (MMIO)

Dans le panel QoS on peut configurer la latence minimale entre deux requêtes, la latence maximale pour répondre à une requête et le temps maximal d'inactivité sur une connexion avant de déconnecter le client HTTP25. Le panel TCP permet de configurer le protocole TCP (taille de la mémoire tampon etc.). Le panel MMIO (MultiMedia Input/Output) permet de configurer la taille d'un bloc pour accéder au système de stockage et la taille de la mémoire tampon utilisée par le serveur pour chaque connexion.

L'implémentation du serveur utilise l'API Windows NT pour une meilleure performance dans le transfert d'un bloc se trouvant sur le système de stockage (la méthode TransmitFile, voir [msdn]). Cette méthode permet de lire et d'envoyer directement sur réseau un bloc se trouvant dans le cache du système de fichiers Windows NT. Cette opération s'effectue d'une manière asynchrone, permettant son utilisation concurrente à l'intérieur de plusieurs threads.

Notes
25.

Nous précisons que la déconnexion d'un client HTTP n'a pas d'effet sur le contenu affiché par le lecteur multimédia du client. Le raison de cette coupure est l'économie de ressources. Dés que le client commence a effectuer des commandes VCR, le lecteur se reconnecte au serveur.