La consultation d'une ressource en diffusion continue nécessite l'utilisation d'un programme client compatible avec le protocole mis en œuvre par le serveur de streaming. La solution déployée au profit du service de cours en ligne s'appuie sur le protocole « Real Time Messaging Protocol » (RTMP) et exploite des médias au format Flash Vidéo. Pour faciliter l'intégration de la solution au sein de l'existant, j'ai développé une page web spécifique qui affiche un lecteur multimédia compatible avec le protocole RTMP. Ce lecteur se nomme « FLV Player ». Il s'agit d'une application libre développée en langage Flash qui prend en charge la gestion des connexions au serveur et le traitement des flux en streaming. Ce lecteur peut s'intégrer dans une page web en utilisant la balise « <object> » du langage HTML. En l'état, ce mode de fonctionnement présente un problème de flexibilité car l'intégration du lecteur dans la page nécessite de coder en dur le nom de la ressource qu'il doit afficher. En mode statique, il faut donc développer autant de pages web qu'il y a de médias à visualiser.
Pour pallier à ce problème, j'ai développé une page web spécifique qui permet de spécifier le média que l'on veut visualiser directement dans l'URL de la page. Un code JavaScript permet ensuite d'analyser cette URL et d'intégrer en dynamique dans la page web le lecteur multimédia affecté des bons paramètres pour visualiser le média donné. Le formalisme de l'URL correspond au modèle ci- dessous :
http://<nom du serveur>/<nom de la page web>?flv=<nom du fichier du média> Par exemple, si la page web est enregistrée dans le fichier« lecteur.html », qu'elle est stockée sur le serveur « svrstreaming » et que l'on souhaite visualiser en streaming la vidéo «exemple.flv », il faut appeler cette page avec l'URL :
http://svrstreaming/player.html?flv=exemple.flv
Sur appel de cette URL, la page web s'affichera dans le navigateur avec le lecteur multimédia paramétré pour diffuser en streaming la vidéo « exemple.flv ».
Grâce à ce mécanisme, il est possible de visualiser n'importe laquelle des vidéos du service de cours en ligne sans coder de page web spécifique et en utilisant uniquement un mécanisme
simple de construction des URL.
Ci-dessous, le code de la page web développée. Le fichier qui contient le lecteur multimédia et le code JavaScript de gestion des URL doivent être situés dans un répertoire enfant nommé «js». Le fichier de la bibliothèque « JQuery » que j'utilise pour l'analyse de bas niveau des URL doit également être présent dans ce répertoire :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head>
<title>Lecteur multimédia ETRS</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <script type="text/javascript" src="./js/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="./js/jquery.swfobject.1-1-
1.min.js"></script>
<script type="text/javascript" src="./js/script.js"></script> </head>
<body>
<p>Vous lisez ce message car la page web ne peut pas afficher de vidéo.</p>
<p><br/>Vérifiez le formatage de l'URL utilisée.</p>
<p>Vous devez installer le plugin Adobe Flash pour visualiser la ressource.</p>
</div> </body> </html>
Ci-dessous, le code JavaScript qui prend en charge l'analyse des URL et le code d'intégration du lecteur multimédia affecté des paramètres permettant la visualisation de la vidéo souhaitée.
$(function() {
// Initialiser la récupération des paramètres de l'URL $.urlParam = function(name)
{
var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href); if(results == null) return 0;
return results[1] || 0; };
// Instancier et positionner le lecteur multimédia var oflash = $("#flash");
// Récupérer les paramètres var width = $.urlParam('width'); if(width == 0) width = 320;
var height = $.urlParam('height'); if(height == 0) height = 280; oflash.flash( { swf: './resources/player_flv_maxi.swf', play: true, width: width, height: height, flashvars: {
title: "Ecole des Transmissions", flv: $.urlParam('flv'), showstop: '1', showvolume: '1', showtime: '2', netconnection: 'rtmp://stream.ent-etrs.net/oflaDemo', autoplay: '1' } }); });
SIGLES ET ABRÉVIATIONS
Sigle, abréviation Description
BENS Bureau enseignement numérique et simulation
BFAO Bureau de formation assistée par ordinateur
CAN Campus area network
CAS Central authentication service
CDROM Compact disk – read only memory
CIRM Centre informatique de ressources multimédias
CNAM Conservatoire national des arts et métiers
CNED Centre national d'éducation à distance
COMETRS Commandant de l'école des transmissions
CRSICAT Centre de ressources SIC de l'armée de terre
DEP Directeur des études et de la prospective
DGF Direction générale de la formation
DGSIC Direction générale des systèmes d'information et
de communication
DIRISI Direction interarmées des réseaux
d'infrastructure et des systèmes d'information
DMZ Zone démilitarisée
DNS Domain name service
DRHAT Direction des ressources humaines de l'armée de
terre
EAD Enseignement à distance
EAO Enseignement assisté par ordinateur
ENT Espace numérique de travail
ETRS École des transmissions
GT IA EAD Groupe de travail interarmées de l'enseignement
à distance
HTML Hypertext markup language
HTTP Hypertext transfert protocol
HTTPS Hypertext transfert protocol secured
IPSec Internet protocol security
ISCSI Internet small computer system interface
ITIL Information technology infrastructure library
LDAP Lightweight directory access protocol
LMS Learning management system
MSIR Module « systèmes informatiques et réseau »
NAS Network attached storage
PFI Plateforme d'instruction
QCM Questionnaire à choix multiples
QoS Quality of service
RTMP Real time messaging protocol
SCSI Small computer system interface
SDFE Sous-direction de la formation et des écoles
SIC Système d'information et de communication
SIF Système d'information de la formation
SLA Service level agreement
SSO Single sign-on
TICE Technologies de l'information et de
communication pour l'éducation
URL Uniform ressource locator
VLAN Virtual local area network
WAN Wide area network
INDEX DES ILLUSTRATIONS
Illustration 1: Structure organisationnelle de l'ETRS...8
Illustration 2: Planification du projet CAN depuis son lancement...10
Illustration 3: Planification du projet CNAM...11
Illustration 4: Organisation de l'enseignement dans l'armée de Terre...18
Illustration 5: Structure du GT IA EAD...19
Illustration 6: Évolution du nombre de stagiaires en mode présentiel par année scolaire...21
Illustration 7: Évolution du nombre d'auditeurs abonnés au module MSIR par année...23
Illustration 8: Modèle de fonctionnement du système d'information de la formation...28
Illustration 9: Schéma de principe du réseau d'enseignement global...32
Illustration 10: Schéma de principe de l'architecture Internet...33
Illustration 11: Situation géographique du système d'information de la formation...35
Illustration 12: Type de média selon l'approche document...42
Illustration 13: Type de média selon l'approche serveur...43
Illustration 14: Graphique de répartition des tailles de fichier vidéo...46
Illustration 15: Évolution moyenne du temps de latence avant accès à une vidéo...47
Illustration 16: Découpage en zones élémentaires du réseau d'enseignement connecté à l'Internet. .53 Illustration 17: Schéma de principe du double abonnement internet...59
Illustration 18: Installation d'un portail captif en coupure de réseau...62
Illustration 19: Mesures de débit sur la carte réseau interne et externe de l'équipement...64
Illustration 20: Mesure d'activité moyenne des processeurs de l'équipement...65
Illustration 21: Amélioration du service d'accès entre les PFI, les stations cadre et la DMZ...67
Illustration 22: Nouvelle liaison entre les serveurs et l'environnement...69
Illustration 23: Le principe du streaming de ressource audio ou vidéo...73
Illustration 24: Montée en charge des processeurs durant un test de connexions simultanées...76
Illustration 25: Architecture générale de la solution de diffusion des vidéos Flash en streaming...77
Illustration 26: Planning de réalisation de la fonction de filtrage...81
Illustration 27: Principe de fonctionnement de la fonction de filtrage pour système Linux...82
Illustration 28: Planning de réalisation du portail captif...84
Illustration 29: Plate-forme de test pour l'installation du portail captif...85
Illustration 30: Planning de réalisation de la plate-forme de diffusion en streaming...89
Illustration 31: Schéma de principe de la baie de serveurs virtualisés...90
Illustration 32: Page web de statistiques du programme HaProxy...93
INDEX DES TABLEAUX
Tableau 1: Comparatif par critères de choix des types d'enseignement numérique...17
Tableau 2: Avantages et inconvénients de deux réseaux d'enseignement isolés...34
Tableau 3: Le portefeuille de services du projet CAN/ENT...40
Tableau 4: Tableau de répartition des tailles de fichier vidéo du service de cours en ligne...45
Tableau 5: Synthèse de l'expression du besoin...49
Tableau 6: Les services à prendre en compte lors de la conception...52
Tableau 7: État de l'art des solutions de streaming audio et vidéo...74
Tableau 8: Synthèse des solutions à réaliser...79
Tableau 9: Dépendances entre couches de la plate-forme de diffusion en streaming...88
Tableau 10: Synthèse des tests de la plate-forme de diffusion en streaming...97
Tableau 11: Synthèse des solutions réalisées...100
BIBLIOGRAPHIE, WEBOGRAPHIE
- Aspects législatifs de l'obligation de traçabilité
https://www.odebi.org/lct/Leslogspourlesnuls.html
- Wikipédia, l'encyclopédie libre
http://fr.wikipedia.org
- Consortium ESUP-PORTAIL
http://www.esup-portail.org
- Répartiteur de charge HaProxy
http://haproxy.1wt.eu
Fondation Mozilla
http://www.mozilla-europe.org/fr
Testeur d'application web Selenium
http://seleniumhq.org
Solution de streaming Wowza Server
http://www.wowzamedia.com
Librairie de manipulation audio et vidéo ffmpeg
http://www.ffmpeg.org
Lecteur de fichier Flash en streaming FLV Player
http://flv-player.net
Serveur de streaming RED5
http://code.google.com/p/red5
Solution de stockage OpenFiler
http://www.openfiler.com
Solution de virtualisation VMWare
http://www.vmware.com/fr
Autorité de certification SSL
http://www.thawte.fr
Distribution Linux Mandriva
http://www.mandriva.com/fr
Solution de virtualisation VirtualBox
Distribution Linux Ubuntu
http://ubuntu-fr.org
Qualité de service réseau sous Windows
http://www.netlimiter.com
Scanner de réseau NMAP
http://nmap.org
Gestionnaire centralisé de configurations Puppet