MESSAGERIE PAR WEBSOCKET SOUTENANCE DE STAGE Manavai TEIKITUHAAHAA Juin 2014 A l’attention de: D.BRULIN F.PEYRARD G.AUBONNET
MESSAGERIE PAR WEBSOCKET
SOUTENANCE DE STAGE
Manavai TEIKITUHAAHAA Juin 2014
A l’attention de:
D.BRULIN
F.PEYRARD
G.AUBONNET
2
PLAN I. Cahier des charges
1. Tâches et Analyses 2. Gestion du temps
II. HTTP & WebSocket 1. Présentation HTTP 2. HTTP 1.0 3. HTTP 1.1 4. Fonctionnement WebSocket
III. L’Existant
1. Synoptique de l'existant
IV. Mise à niveau de l’existant 1. Mise en œuvre du Service WS 2. Programmation plugin 3. Programmation JavaScript (JS) 4. Synoptique du résultat 5. Analyses de performance
V. Perspectives avenir du WebSocket
VI. BILAN DE STAGE
3
I. CAHIER DES CHARGES
06/2014
4
Tâches et Analyse
Mettre en œuvre un serveur WebSocket:
Valider -> Service WS*
Mise à niveau -> Messagerie
Analyse de performance
WS: WebSocket06/2014
5
Gestion du temps: méthode agile
Temps (en semaine) S1 S2 S3 S4 S5 S6 S7 S8 S9 S10
Installation des PluginsMise en ligne des pages WebTests, Débogages, validation
Mise en ligne des pages Web de testTests
PARTI II: Application du WebsocketRecherches supplémentaires et étude de l'existantProgrammation des PluiginsProgrammation des pages Web
Tâches
PARTI I: Mise en Œuvre du Serveur WeboscketRecherchesInstallation des Modules WebsocketInstallation des Plugin de test
06/2014
6
II. HTTP & WebSocket
06/2014
7
HTTP
HyperText Transfert Protocol
Développé pour le World Wide Web (WWW)
Transfert de documents HyperText (HTML, CSS, …)
Plusieurs version 0.9 -> 2.0 (En cours …)
06/2014
8
HTTP 1.0CLIENT
SERVEUR
REQUÊTE 1 + REPONSE 1
REQUÊTE 2 + REPONSE 2
06/2014
9
HTTP 1.1CLIENT
SERVEUR
REQUÊTE 1 + REPONSE 1
REQUÊTE 2 + REPONSE 2
06/2014
KeepAlive
KeepAlive
10
SERVEURCLIENT (Navigateur)
Handshake (HTTP upgrade)
Connexion ouverte
Connexion fermé
Fermeture du canal par un des hôtes
Communication FullDuplex
Connexion persistent
WebSocket
Connexion TCP établis
HTTP (Requête + Réponse)
Connexion TCP fermé
06/2014
11
III. L’EXISTANT
06/2014
12
Application Web
Télé-conduite + Supervision Turbines
Développé en langage C
06/2014
13
1 min
Nouveau message ?
OUI
06/2014
14
IV. MISE A NIVEAU
06/2014
15
Mise en œuvre du service WS
Implémentation Apache 1 journée
Module WS -> Protocole WS
Plugin -> Traitement des messages WS
Côté Client -> JavaScript
06/2014
16
Programmation Plugin
Plugin 3 semaines
4 primitives :
on_connect, création d’un thread*: 1 thread /connexion
on_disconnect, destruction du thread
on_message, réception du login structure
on_destroy non-utilisé
Thread: fil06/2014
17
Programmation Plugin: Thread
Attente du login
Ouverture du fichier message
Récupération, traitement et envoi des nouveaux messages
TANT QUE LA CONNEXION EST ACTIVE:
Attente de nouveau message
Traitement et envoi du nouveau message
Fermeture du fichier message
FIN DU THREAD
06/2014
18
Programmation JavaScript
Exemples internet
4 Primitives:
on_open: Envoi du login + affichage graphique
on_close: affichage graphique
on_message: ouverture nouvelle fenêtre
on_error: alerte bloquante
06/2014
19
Synoptique mise à niveau
06/2014
20
Analyses de performance
Au début: charge importante (8% / thread)
Problème: apr_sleep() temps en mS
Solution: apr_sleep() sleep() temps en S
Optimisation possible
06/2014
21
PERSPECTIVES D’AVENIR & IDÉES D’OPTIMISATION
06/2014
22
Perspectives:
Alarmes instantané
Rafraichissement données -> Temps réel
Comment ? Plugin (C) et JavaScript côté client
Optimisations:
Utilisation de signaux envoyé aux thread
Pause processus endormi
06/2014
23
BILAN DE STAGE
06/2014
24
Temps projet 5 semaines
Cahier des charges Respecté
Social intégré à l’entreprise
POST DUT STRI formation initial.
06/2014
25
06/2014
MERCI DE VOTRE ATTENTION
A l’écoute de vos question …