Loading s7crs_l11_http_perfs...

enib_small.png S7-CRS L11_HttpPerfs — HTTP et performances

Les fichiers servant de support à cette expérimentation seront obtenus par la commande $ cp -r /home/TP/sujets/CRS_L11_HttpPerfs . depuis les salles de Labo de l'ENIB, ou par la commande $ sftp -P 55555 -r votre_identifiant@sftp.enib.fr:/home/TP/sujets/CRS_L11_HttpPerfs . depuis l'extérieur de l'ENIB.

Cet exercice sert principalement d'entraînement pour réutiliser des notions déjà découvertes dans les sujets précédents.
Toutefois, il apporte un éclairage différent sur les techniques de communication utilisées jusqu'alors.
Effectivement, nous nous proposons d'évaluer le coût en temps et en énergie de diverses stratégies de transfert d'information dans une application client/serveur utilisant HTTP.

Le client sera le navigateur (firefox) ; il obtiendra, depuis le serveur que vous réaliserez, une page HTML (déjà fournie) dont le code javascript décrira une application simpliste.
Celle-ci produira de manière répétée un bloc de données binaires qui sera transmis à votre serveur, qui en modifiera le contenu et le renverra au client.
Selon les étapes, la communication reposera essentiellement sur des requêtes et réponses en HTTP, ou également sur le protocole websocket.

  • Nous nous intéressons ici aux performances des diverses solutions explorées.
  • Les mesures de performances n'ont de sens que si le code est compilé en mode “optimisé” ; toutes les options de mise au point sont alors désactivées.
  • Pour tester le fonctionnement de vos programme pendant la mise au point, vous pourrez vous contenter de les fabriquer avec make.
  • En revanche, pour relever les performances il faudra refabriquer l'ensemble avec make rebuild opt=1 pour activer les optimisations.
{1 #http } Utilisation exclusive de HTTP
{2 #websocket } Utilisation de websocket

À travers cette expérimentation, nous venons de mettre en évidence le fait que le protocole websocket, au delà de la simplification des échanges, permettait de réduire le coût en temps et en énergie des transferts de données dans les applications s'appuyant sur HTTP.
Son utilisation, liée au fait de s'échanger des données binaires (et non textuelles), permet d'approcher une situation dans laquelle le coût de la communication est réduit au strict nécessaire.