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.
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.
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 :
le port TCP utilisé pour recevoir les connexions HTTP,
le nom du serveur,
les types des fichiers visible pour les utilisateurs,
les répertoires accessible aux clients avec leurs noms (répertoires virtuels)
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).
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).
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.
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.