WebSocket soutenance de stage

25
MESSAGERIE PAR WEBSOCKET SOUTENANCE DE STAGE Manavai TEIKITUHAAHAA Juin 2014 A l’attention de: D.BRULIN F.PEYRARD G.AUBONNET

description

My WebSocket project formy training in Marama Nui

Transcript of WebSocket soutenance de stage

Page 1: WebSocket   soutenance de stage

MESSAGERIE PAR WEBSOCKET

SOUTENANCE DE STAGE

Manavai TEIKITUHAAHAA Juin 2014

A l’attention de:

D.BRULIN

F.PEYRARD

G.AUBONNET

Page 2: WebSocket   soutenance de stage

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

Page 3: WebSocket   soutenance de stage

3

I. CAHIER DES CHARGES

06/2014

Page 4: WebSocket   soutenance de stage

4

Tâches et Analyse

Mettre en œuvre un serveur WebSocket:

Valider -> Service WS*

Mise à niveau -> Messagerie

Analyse de performance

WS: WebSocket06/2014

Page 5: WebSocket   soutenance de stage

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

Page 6: WebSocket   soutenance de stage

6

II. HTTP & WebSocket

06/2014

Page 7: WebSocket   soutenance de stage

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

Page 8: WebSocket   soutenance de stage

8

HTTP 1.0CLIENT

SERVEUR

REQUÊTE 1 + REPONSE 1

REQUÊTE 2 + REPONSE 2

06/2014

Page 9: WebSocket   soutenance de stage

9

HTTP 1.1CLIENT

SERVEUR

REQUÊTE 1 + REPONSE 1

REQUÊTE 2 + REPONSE 2

06/2014

KeepAlive

KeepAlive

Page 10: WebSocket   soutenance de stage

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

Page 11: WebSocket   soutenance de stage

11

III. L’EXISTANT

06/2014

Page 12: WebSocket   soutenance de stage

12

Application Web

Télé-conduite + Supervision Turbines

Développé en langage C

06/2014

Page 13: WebSocket   soutenance de stage

13

1 min

Nouveau message ?

OUI

06/2014

Page 14: WebSocket   soutenance de stage

14

IV. MISE A NIVEAU

06/2014

Page 15: WebSocket   soutenance de stage

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

Page 16: WebSocket   soutenance de stage

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

Page 17: WebSocket   soutenance de stage

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

Page 18: WebSocket   soutenance de stage

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

Page 19: WebSocket   soutenance de stage

19

Synoptique mise à niveau

06/2014

Page 20: WebSocket   soutenance de stage

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

Page 21: WebSocket   soutenance de stage

21

PERSPECTIVES D’AVENIR & IDÉES D’OPTIMISATION

06/2014

Page 22: WebSocket   soutenance de stage

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

Page 23: WebSocket   soutenance de stage

23

BILAN DE STAGE

06/2014

Page 24: WebSocket   soutenance de stage

24

Temps projet 5 semaines

Cahier des charges Respecté

Social intégré à l’entreprise

POST DUT STRI formation initial.

06/2014

Page 25: WebSocket   soutenance de stage

25

06/2014

MERCI DE VOTRE ATTENTION

A l’écoute de vos question …