Académique Documents
Professionnel Documents
Culture Documents
d
RÉALISATION D’UNE APPLICATION WEB DE
COMMUNICATION EN TEMPS RÉEL DANS UN RÉSEAU
D’ENTREPRISE AVEC LA TECHNOLOGIE WEBRTC
Il n’y a pas de doute que la VoIP (Voix sur IP) est une technologie qui est en train
de modifier complètement le système de communication des entreprises. Elle convertit la voix
en paquets de données permettant ainsi la transmission, sur Internet et de bénéficier d’une
téléphonie plus efficace avec de nombreuses prestations et une meilleure qualité. Cependant, Si
vous avez déjà visité le réseau de communication interne, de la plupart d'entreprise vous
constaterez que celui-ci est réalisé moyennant le SIP (Session Initiation Protocole) mais l'ennuie
c'est que Le SIP présente des défauts, sur le plan coût de l'infrastructure à mettre en place pour
assurer une communication de haute qualité entre personnels de l'entreprise , en plus au niveau
de la flexibilité cad le SIP n’est pas multi plateforme car il n’est pas nativement supporte par les
ordinateurs. Il nécessite les téléphones IP, des adaptateurs pour assurer la compatibilité entre les
équipements, il nécessite une installation ce qui nécessitera une main d’œuvre qualifier c’est
coûteux, des investissements en matériel physique et en logiciel sont nécessaires. Les
applications populaires de chat comme Skype, Instagram, Messenger ou WhatsApp sont dans le
top 10 des applications mobiles, les plus utilisé dans le monde, et selon les derniers statistiques,
plus de 4 milliards des personnes les utilisent. Il n’est donc pas rare que, par soucis de
simplicité, les entreprises fassent recours a celles-ci dans les échanges avec leurs clients pour
établir un appel vidéo, ou une discussion instantanée des messages en dépit du fait que ces
applications n’aient pas vocation à être utilisées à des fins professionnelles suite aux haut risque
d’enregistrement des données des employés par l’entreprise propriétaire de l‘application
mobile, la sécurisation et confidentialité des données ne sont pas garanties , autres chose c’est
que les fonctionnalités ne peuvent pas être personnalisées à volonté, car on est limité par ce que
l’entreprise propriétaire de l’application à implémenter. Les applications gratuites fournissant
une communication en temps réel sont donc largement répandues, mais sont nombreuses et
inadaptées au contexte professionnel1.
1
https://urgentime.com/les-benefices-du-webrtc-pour-de-lappel-video/
1.2 PROBLÉMATIQUE
Malgré la multiplicité des systèmes proposant des communications dans une organisation, Les
problèmes de communication demeure dans les entreprises. Ne pas les résoudre peut causer des
dommages au sein de l’organisation : perte de temps et d’argent, baisse de la productivité mais
surtout un désengagement de la part des employés concernés voir même des clients de l'entreprise2.
De nos jours dans la plupart d'entreprise la communication en entreprise que ça soit dans
l'intranet ou sur internet, elle est réalisée moyennant le protocole SIP Mais alors le SIP affiche des
faiblesses et limites suite à l'évolution des modes de communication moderne à l'exemple de la
visioconférence, dont la mise en place, s’avère complexe avec le SIP. Voici quelques difficultés du
protocole SIP, les plus remarquables :
La mise en place est très coûteuse pour une couverture en étendu souhaité. Pour
pouvoir l’utiliser, l’achat d’un ensemble des nouveaux équipements comme les
téléphones IP, IPBX, serveur SIP auxquels j’ajoute l’installation d’un software
spécialisé, coûtant souvent très cher.
Ainsi, les défaillances ci-haut nous ont poussé à nous poser les questions suivantes :
2
https://www.journaldunet.com/management/efficacite-personnelle/1208295-et-les-cinq-plus-gros-problemes-
de-communication-en-entreprise-sont/
que le transfert de fichier, appel vidéo (avec possibilité facile de faire une vidéoconférence),
sans avoir besoin d'installer un nouvel équipement qui pourrait le pénaliser au niveau coût
de mise en place ?
Comme pour tout entreprise, les données étant d’importance capitale de telle sorte que leurs
sécurités ainsi que leurs confidentialités étant impérieuse : quelle serait une solution
d’entreprise d'échange des données entres les terminaux, fiables du point de vue sécurité et
confidentialité en communication ?
1.3 HYPOTHÈSE
Par rapport aux questions ci – haut posées nous avons quantitativement formule des réponses
suivantes
Le WebRTC posséderait un avantage considérable sur la plupart des services VoIP dans le
domaine de la sécurité et confidentialité, il est fiable.
Nous réaliserons une application web grâce au Framework WebRTC, qui s’exécutera dans un
navigateur standard.
Notre choix s'est porté sur ce sujet suite aux multiples difficultés rencontre souvent
en entreprise lors de la réalisation d’un système de communication VoIP permettant une
collaboration efficace entre personnels à coût moindre.
Intérêt social :
Pour l’entreprise : Le système permettra une économie financière pour l’entreprise, un gain en
productivité mais aussi une autonomie dans ses moyens de communications.
Intérêt personnel :
Non seulement le choix du travail a été motivé par l’opportunité d’implémentation d’un
système avec une technologie peu connue dans nos milieux, mais aussi le présent travail constitue une
opportunité de mise en pratique de certaines théories apprises durant notre parcourt académiques
en premier cycle de Licence LMD.
Intérêt scientifique :
Ce travail servira de base pour les chercheurs qui voudront traiter un sujet en rapport
avec les communications du type VoIP utilisant le Framework WebRTC comme technologie.
1.6 DELIMITATION
Vue la complexité d'une mise en place d'un système de communication moderne et surtout
du type pair à pair, notre travail sera limité par rapport au contenu, espace et par rapport au temps :
Par rapport au contenu :
Notre travail consistera à mettre en place une application web pour une entreprise ou
organisation pour son intranet, qui permettra aux personnels se trouvant dans des lieux différents
d’initier ou de rejoindre une communication du type pair à pair.
Nous nous sommes situés par rapport aux réalités de la province du NORD-KIVU en
République Démocratique du Congo dans la ville de Beni et surtout à toute entreprise ou
organisation de la place, désirant un système de communication à faible coût propre à
l’organisation.
Ce travail de recherche s’étend sur une période allant du début du mois d’Octobre 2020
jusqu’à Mai 2021.
1.7 SUBDIVISION
Hormis la partie introductive ainsi que, de la conclusion, ce travail est structuré en quatre chapitres
qui sont :
Dans ce chapitre nous présentons la méthodologie utilisée pour la réalisation de ce travail. Nous
présentons également les outils ou technologie à utiliser pour la réalisation de l'application.
2.1 GENERALITE
2.1.1 Introduction
Les communications vidéo et audio font désormais partie intégrante de toutes les sphères de
la vie. Deux protocoles de communication en temps réel couramment utilisés pour les
communications vidéo et audio IP sont le protocole d'initiation de session (SIP) et les
communications en temps réel sur le Web (WebRTC). Ces deux protocoles sont largement utilisés
dans les applications de téléphonie logicielle et de visioconférence.
Étant donné qu’un travail scientifique a toujours ses terminologies appropriées, Après avoir
présenté l’introduction générale dans la partie précédente, il est important, dans cette partie, que
nous définissions et détaillions les différents concepts constituant le cadre de notre travail. Nous
passerons également en revue les travaux des chercheurs qui se sont lancés dans le domaine du
Voice Over IP tout particulièrement ceux qui ont utilisé la technologie WebRTC pour enfin dégager
l’originalité de notre recherche. Enfin, nous présentons la spécification d’exigences logicielles qui
décrira le comportement externe de l’application à concevoir.
2.1.2 Réseau d’entreprise
a) Définition
Le réseau d’entreprise permet de relier chaque ordinateur d’une entreprise entre eux via un
serveur qui va gérer l’accès à Internet, les e-mails, les droits d’accès aux documents partagés et le
travail collaboratif. Chaque utilisateur du réseau se connecte avec un nom d’utilisateur et un mot de
passe et est authentifié par le serveur. L’utilisateur peut accéder à ses données et au partage de
fichiers. Le réseau en entreprise permet à l’entreprise de centraliser ses données, les sécuriser et de
travailler en équipe de manière productive3.
Dans une entreprise, il existe une hiérarchie au niveau des employés. C’est la même chose
au niveau des ordinateurs : l’un des ordinateurs va jouer le rôle du patron, on l’appelle le serveur
d’entreprise. C’est une machine plus puissante que les autres et qui a beaucoup de responsabilités.
Ce serveur est géré par le service des systèmes d’information (SSI) ou service informatique. La
personne en charge de ce serveur est l’administrateur et il est le seul à avoir accès à la salle des
serveurs.
3
https://cours-informatique-gratuit.fr/cours/reseau-informatique-entreprise/
2.1.3 Qu’est-ce que le p2p dans le contexte de WebRTC
Un email n’est PAS une communication en temps réel (pas nécessite de réponse a l’immédiat), un
appel téléphonique, par contre, lui l’est.
Par définition, la communication en temps réel est toute forme de télécommunication par laquelle
tous les utilisateurs peuvent échanger des informations instantanément ou avec une latence
négligeable. Le temps réel est également synonyme du “Live”.
Figure 1 Architecture générale de la communication en temps réel
a) Définition
Le SIP (Session Initiation Protocol) est un protocole de signalement utilisé pour établir une
“session” entre deux ou plus de participants, modifier cette session, et finalement terminer cette
session. Son utilisation est devenue MAJEURE dans le monde de la téléphonie IP. Le fait que le
SIP est un standard ouvert a généré un intérêt énorme sur le marché de la téléphonie, et les
constructeurs de téléphones SIP ont connu une croissance phénoménale dans ce secteur.
2.1.6
4
https://www.3cx.fr/voip-sip/sip/
b) Avantages et usage du protocole RTP
Comme son nom l’indique, le but principal du protocole RTP est la transmission en temps réel
de données liées au média, de bout en bout. Le RTP inclut des mécanismes pour la détection des
pertes de paquets, ainsi que la délivrance de paquets hors d’usage, des problèmes qui sont
particulièrement communs avec les transmissions UDP (User Datagram Protocol) via IP. Parce que
le RTP permet le transfert de données à des destinations multiples en parallèle via multicast IP,
c’est le standard principal employé pour les transferts IP audio et vidéo.
Des applications comme la VoIP qui ont besoin de transmettre des données multimédia en
temps réel ont une tolérance variable en termes de pertes de paquets. Par exemple, la perte de
paquets audio dans une application VoIP peut faire perdre quelques millisecondes de données
audios. Cette perte peut être correctement gérée par des algorithmes de compensation d’erreur pour
que ces pertes soient imperceptibles pour les interlocuteurs de l’appel. Le TCP (Transmission
Control Protocol) est aussi standardisé pour un usage RTP, bien qu’il ne soit pas typiquement
employé dans les applications à cause d’un mécanisme de contrôle des erreurs qui peut créer des
délais et gêner la livraison des paquets en temps et en heure. Pour cette raison, la plupart des
applications RTP doivent en général baser leur implémentation sur l’UDP5.
Le Datagram Transport Layer Security (DTLS) est un protocole conçu pour protéger les
données privées en prévenant la falsification, les écoutes, et la contrefaçon dans les
communications. Il est basé sur le Transport Layer Security (TLS), qui est un protocole qui sécurise
les réseaux de communications informatiques. La différence principale entre le DTLS et le TLS est
que le DTLS utilise l’UDP et le TLS utilise le TCP. Il est utilisé via la navigation web, le mail, la
messagerie instantanée et la VoIP. Le DTLS, tout comme le SRTP, est l’un des protocoles de
sécurité utilisé pour la technologie WebRTC6.
Le SRTP -Secure Real -Time Transport Protocol Le SRTP aussi connu sous le nom de
Secure Real – Time Transport Protocol, est une extension d’un profil de RTP (Real-Time Transport
Protocol) qui ajoute davantage de fonctions de sécurité, comme le message d’authentification, la
confidentialité et la protection anti-replay, principalement prévues pour les communications VoIP.
Ce protocole utilise l’authentification et l’encodage afin de minimiser les risques d’attaques comme
5
https://www.3cx.fr/voip-sip/rtp/, visite le 20 mars 2021 19h 33
6
https://www.3cx.fr/voip-sip/dtls/, visite le 20 mars 2021 17h 44
celles par déni de service. Il a été publié en 2004 par l’IETF (Internet Engineering Task Force) en
tant que RFC 3711. Ce protocole, tout comme le DTLS est l’un des protocoles de sécurité utilisé
par la technologie WebRTC7.
Fiabilité - si j'envoie un paquet - est-ce que j'ai la confiance (reconnaît) qu'il a été
reçu à l'autre extrémité ?
Livraison - si je reçois 2 paquets - suis-je sûr que l'ordre dans lequel ils ont été reçus
est celui dans lequel ils ont été envoyés ?
7
https://www.3cx.fr/voip-sip/srtp/, visite le 21 mars 2021 20h 53
Contrôle de flux / contrôle de la congestion - le protocole lui-même agit-il de
manière responsable et traite-t-il seul les réseaux congestionnés ?
Pour SCTP, la fiabilité et la livraison sont configurables - je peux décider si je veux ces
caractéristiques ou non. Pourquoi est-ce que je n'en veux pas ? Tout a un prix. Dans ce cas, latence
et hypothèses faites sur mon cas d'utilisation.
Il y a donc des moments où je voudrais plus de contrôle, ce qui penche vers UDP. Mais je veux
aussi faire la vie aux développeurs, donc je préfère faire allusion au protocole sur mes besoins et le
laisser s'en occuper.
Le Data Channel est conçu pour l'innovation. Et dans ce cas, utiliser un outil ancien et inutilisé était
la meilleure approche8.
Compression avec perte : Un algorithme de données qui élimine certaines données pour
faciliter la transmission. Cela est surtout utilisé quand la connexion réseau n’est pas idéale.
Cette compression est surtout reconnaissable avec des fichiers vidéo qui ressortent pixélisés.
8
https://bloggeek.me/sctp-data-channel/,visite le 25 mai 2021
Avec les fichiers audio et visuels, il existe une interaction complexe entre la qualité de la vidéo,
le bit rate, le codage et décodage des algorithmes, la réactivité à la perte de données et la latence. Le
WebRTC a besoin d’un codeur/décodeur efficace pour enfin transmettre le flux audio et vidéo
recueilli respectivement depuis la caméra et au microphone. Ceci limite l’utilisation de la bande
passante du canal de transmission9.
WebRTC ne vise pas à intégrer dans le navigateur des services de haut niveau de
type softphone (Skype,Messenger, WhatsApp). L’idée est plutôt de spécifier les primitives
nécessaires à la mise en œuvre de tel service en conjonction avec des serveurs externes. En
particulier, l’objectif est de permettre à ce qu’une application JavaScript intégrée au sein d’une page
Web et s’exécutant dans un navigateur standard puisse établir une communication utilisant des
canaux audio, vidéos et de données et ce, sans contrainte sur le type de service fourni par
l’application Web. Un service de type softphone pourra ainsi être fourni par une application
JavaScript implémentant un widget téléphone et mettant en œuvre un protocole de signalisation
basé par exemple sur les WebSockets. Cette application utilisera les primitives WebRTC pour
capturer les flux audio et vidéo de la webcam, les encoder et les transmettre au correspondant [3].
9
https://bloggeek.me/sctp-data-channel/, visite le 25 mai 2021
Figure 3-Architecture générale du WebRTC 2.1.13
Exigences pour WebRTC du point de vue du développeur
Pour réaliser une application WebRTC, il faut établir une connexion entre les
navigateurs qui veulent communiquer. WebRTC fournit la solution juste pour l’échange des médias
mais n’implémente pas la signalisation, c’est-à-dire comment les informations d’un client devrait
être envoyé aux pairs distants afin d'initier une connexion paire à pair. Cette étape d’initialisation
est appelée signalisation. La signalisation peut être mise en œuvre de plusieurs manières et c'est
donc aux développeurs eux-mêmes de choisir une solution pour cela. Une solution efficace pourrait
être un serveur utilisant WebSockets. WebSockets crée une connexion bidirectionnelle entre un
navigateur et un serveur. Cela signifie que le navigateur et l'interaction avec le serveur est basée sur
les événements et le navigateur n'a pas à interroger le serveur pour une réponse chaque fois que des
données doivent être échangées contrairement au protocole HTTP pour qui le serveur doit
nécessairement recevoir une requête avant de générer une réponse correspondante [4]. Il en résulte
une communication rapide et interactive qui convient très bien à un serveur de signalisation.
Les informations recueillies avec STUN peuvent ensuite être exploiter ou manipuler avec le
Framework ICE (Interactive Connectivity Establishment) pour coordonner la connexion entre les
clients [5]. ICE est un Framework utilisé par WebRTC et ICE décrit comment la connexion doit
fonctionne et aide le client à découvrir des informations afin qu'une connexion d'égal à égal puisse
être établi. Sous le capot, ce que ICE résout pour nous, c'est d'essayer systématiquement toutes les
possibilités de connexions entre les pairs désirant communiquer grâce à ce qu’on appelle «
candidats » ou « ICE candidate » (utilisant les informations reçues du serveur STUN). ICE
Essaiera de découvrir quelle paire d’adresses IP et port des utilisateurs fonctionnera lors d’une mise
en contact (P2P). En pratique, de nombreuses combinaisons d’informations reçues par le
Framework ICE ne fonctionneront pas et c’est pourquoi ICE aide à résoudre ce problème [6].
Figure 5-Une architecture WebRTC : La traversée du NAT
Signalons que pour ce travaille nous ne ferons pas recours aux serveurs STUN et TURN du fait que
nous implémenterons ce système dans un réseau local. L’agent ICE n’aura pas besoin d ‘interroger
le serveur STUN a la recherche de l’adresse IP des pairs. Une connexion UDP suffira pour établir la
connexion. Si dans le réseau de l’entreprise il y a des pares-feux il faudra autorise les ports UDP
utilise par la connections des pairs.
Dans le modèle WebRTC en Trapèze, les deux navigateurs sont en cours d'exécution d'une
application Web, qui est téléchargée à partir d'un serveur Web différent. Les messages de
signalisation sont utilisés pour mettre en place et mettre fin à la communication. Ils sont transportés
par le protocole HTTP ou WebSocket via des serveurs Web qui peuvent modifier, traduire, ou gérer
selon le besoin.
Le principal avantage de WebRTC par rapport aux autres frameworks est qu'il inclut
l'établissement de connexion interactive (ICE) [9] [10].
Pour que la communication débute entre avant tout les pairs ont besoin d'un moyen
d'échanger des informations sur la configuration des appels. C'est là que SDP entre en jeu. SDP
contient métadonnées sur un navigateur avant la connexion de l'homologue (pair).
Les nouvelles sessions sont annoncées par initiation, invitation et échange d'informations.
L'information à échanger comprennent ; Médias vidéo et audio capacités, informations sur les
codecs, informations sur l'utilisateur qui incluent l'adresse IP et les numéros de port, sécurisés
Protocole de transmission de données RTP P2P, disponible bande passante, fonctionnalités de
session telles que nom, identifiant et le temps actif [11].
2.1.17.2 STURN server
Un serveur STUN a une tâche simple, vérifier l'adresse IP et le port d'une requête
entrante à partir d'une application qui s'exécute derrière un NAT et renvoyer cette adresse en
tant que réponse. Les applications WebRTC peuvent utiliser un serveur STUN pour découvrir
le <IP>: <port> à partir d'un perspective. Cela permet à un pair d'obtenir sa propre adresse
accessible au public, puis de la transmettre à un autre pair via un serveur de signalisation afin
d'établir une liaison directe [14].
Figure 10-Utilisation du serveur STUN
La traversée à l'aide de relais autour des serveurs NAT (TURN) est le dernier recours lors de
la tentative de création d’une connexion P2P avec WebRTC. Si un hôte se trouve derrière des
proxys, des pares-feux ou des NAT stricts et STUN ne parvient pas à obtenir l'adresse IP publique
d'un pair, il est alors impossible d'établir une connexion P2P. Lorsque cela se produit, au lieu
d’échouer, la connexion WebRTC se replie pour utiliser les serveurs TURN pour relayer les
données entre les deux hôtes.
Figure 11- Ce diagramme montre TURN en action : le STUN pur n'a pas réussi, donc chaque
pair utilise un serveur TURN pour échanger des médias
Si WebRTC a besoin d'utiliser un serveur TURN pour relayer les données, la communication
ne sera pas P2P mais en l'utilisant comme solution de secours. WebRTC augmente les chances
d'établir des connexions avec succès pour une grande variété d'appareils, comme le montre Les
serveurs TURN ont une adresse publique afin qu'ils puissent être contactés par des pairs même si le
pair est derrière un pare-feu ou un proxy. Ils ont une tâche théoriquement simple, relayer des
données entre deux pairs. Mais contrairement aux serveurs STUN, ils auront une énorme charge de
bande passante qui les entraîne doit être plus robuste que les serveurs STUN. Les serveurs TURN à
utiliser par l'application est spécifié dans IceConfiguration à l'objet PeerConnection.
Le WebRTC W3C 1.0 API permet à une application JavaScript de profiter des capacités en
temps réel du navigateur. La fonction de navigation en temps réel mis en œuvre dans le noyau du
navigateur fournit les fonctionnalités nécessaires pour établir la communication audio, vidéo et les
canaux de données. Tous les médias et les flux de données sont cryptés en utilisant DTLS.1 Pour
assurer un niveau d'interopérabilité entre les différentes fonctions du navigateur implémentant le
temps réel, l'IETF travaille sur la sélection d'un ensemble minimal d’obligation pour soutenir le
codec audio et vidéo. Opus (RFC 6716) et G.711 ont été sélectionnés pour les codecs audio et VP8
et dernièrement VP9 pour les vidéos. L'API est conçue autour de trois concepts principaux :
MediaStream, PeerConnection, et DataChannel.
2.1.18.1 MediaStreams
Un MediaStream est une représentation d'un flux de données spécifique audio ou vidéo.
Il permet la prise en charge des actions sur le flux média telles que l'affichage, l'enregistrement et
l'envoi à un pair distant. Un MediaStream peut être local ou distant. L'API MediaStream gère les
flux audio et vidéo et indique à l'application qu'elle doit donner accès à la webcam, aux haut-
parleurs et au microphone. Structure de la pile de protocoles utilisée par WebRTC dans un échange
de médias : Afin d'être utilisé, un MediaStream local doit demander l'accès aux ressources
multimédia de l'utilisateur via la fonction getUserMedia (). L'application spécifie le type de média
(audio ou vidéo) auquel elle souhaite accéder et le navigateur autorise ou refuse l'accès à la
ressource demandée. Une fois que le média n'est plus utilisé, l'application peut révoquer son propre
accès avec la méthode stop () sur le flux média local.
Les flux médias sont transportés par le biais du protocole RTP, utilisable sur tout protocole de
transport implémentant une abstraction de datagram. La confidentialité, l’authentification des
messages et la protection contre les répétitions sont assurées par SRTP.
Figure 12-Structure de la pile de protocoles utilisée par WebRTC dans un échange de
médias.
La gestion des clés pour SRTP est assurée par DTLS et donc par le flux de
données. Il est donc impossible d'avoir un flux média indépendant d'un flux de données là où
l'inverse est envisageable. Il est possible d'associer plusieurs flux médias sur une même connexion
SRTP qui utiliseront des ressources médias différentes ou non. Dans ce cas, les sources de chaque
flux (audio et vidéo) sont clairement identifiées comme des SSRC (Synchronization Source) [8].
2.1.18.2 PeerConnection
L'API RTCPeerconnection représente le lien établi avec un navigateur distant, reposant sur
le protocole UDP (habituellement une autre instance de la même application JavaScript s’exécutant
sur le client distant). Afin d'établir cette connexion paire à pair, il est nécessaire de s'appuyer sur un
canal de communication établi par un serveur web et utilisant par exemple un objet
XMLHttpRequest ou une WebSockets. Une fois la connexion établie par les pairs, les flux de
médias peuvent être envoyés directement dans le navigateur distant.
Pour obtenir une connexion, l'un des pairs doit obtenir les informations locales (telles que les
protocoles supportés pour l'audio ou la vidéo). Cette étape est permise par l'API
RTCPeerconnection via Session Description Protocol. SDP se base sur la RFC 3264 de l'IETF
définissant une approche requête / réponse. Lors de l'établissement d'une session, un pair crée une
requête qui décrit ce qu'il désire faire et l'autre répond en spécifiant les options qui ont été
sélectionnées [15].
ICE est utilisé pour activer les pairs participants pour comprendre comment
échanger Données multimédias. ICE détermine la meilleure voie pour de tels communication
basée sur les informations échangées entre pairs via filaire ou sans fil Interfaces réseau. En
essayant de simplifier le processus de trouver le meilleur chemin à travers NAT, ICE choisit le
l'algorithme le plus efficace pour NAT lorsqu'il tente de créer une connexion à l'aide de
l'adresse IP et du port de l'hôte obtenu via le système d'exploitation et l'appareil Carte
d'interface de réseau. Si cette tentative échoue en raison d’homologue derrière NAT, dans ce
cas, ICE utilise STUN serveur pour générer une adresse IP publique ou externe équivalente
adresse. Et si cela échoue également, un serveur TURN sera utilisé pour acheminer l'adresse IP
publique sur l'appareil de l'autre pair. NAT convertit dynamiquement l'adresse IP privée en une
adresse IP publique lorsqu'une demande sortante est transmise par. De même, les demandes
entrantes vers une adresse IP publique sont reconverties en une adresse IP privée pour garantir
un routage sur le réseau interne. Cela implique que le privé Les adresses IP à elles seules ne
suffisent souvent pas à établir une connexion à un autre pair [16].
2.1.18.4 DataChannel
Afin d'assurer la confidentialité et l'authenticité des paquets SCTP échangés, chaque flux repose sur
le protocole DTLS. Au sein d'un canal de données, les applications peuvent transmettre des
messages de façon ordonnée ou désordonnée. L'ordre de remise est préservé uniquement dans le cas
d'une transmission de paquets ordonnés envoyés sur le même lien de données. Un flux de données
est créé lorsque l'un des pairs appelle une méthode CreateDataChannel () pour la première fois
après avoir créé un objet PeerConnection. Chaque appel suivant à CreateDataChannel () créera un
nouveau flux de données au sein de la connexion SCTP existante.
Le protocole DTLS n'a pas pour seul rôle d'encapsuler les paquets SCTP. Dans le cadre d'un
multiplexage avec des flux médias, le protocole DTLS encapsule la gestion des clés et la
négociation des paramètres pour le protocole SRTP, utilisé pour la gestion des flux médias. Il y a
donc dépendance du flux média vis-à-vis du flux de données. C'est un canal bidirectionnel et réside
en tant que composant de l'API PeerConnection [8]. Chaque application utilisant le DataChannel,
on peut le configurer pour fournir les éléments suivants :
Le WebRTC est un travail en cours, avec des implémentations avancées sur les navigateurs
Chrome et Firefox. La raison de la création du WebRTC est de s’attaquer aux questions de
confidentialité qui se posent en exposant les parties locales de l’ordinateur, ou en espionnant depuis
l’extérieur les données échangées.
Une application web WebRTC (généralement écrit en HTML et JavaScript) interagit avec des
navigateurs Web par le biais de l'API WebRTC standardisé, ce qui lui permet de bien exploiter et
contrôler la fonction de navigateur en temps réel.
L'API WebRTC doit donc fournir une large fonctionnalité, comme la gestion de connexion (dans un
mode peer-to-peer), l'encodage/décodage pour la capacité de négociation de la connexion, la
sélection et le contrôle, le contrôle des médias, le pare-feu et la traversée du NAT [9].
Figure 14- La communication en temp réel dans le navigateur
2.1.19.1 Chrome
Mozilla Firefox : Mozilla a fait une démonstration en avril 2012. Le 8 janvier 2013, Firefox
18 a fait l'objet d'une implémentation préliminaire du WebRTC. La fondation a fait plusieurs
démonstrations de cette fonction au sein de son navigateur. Mozilla a activé, par défaut, WebRTC
dans Firefox 22 sorti le 25 juin 2013. La prise en charge de WebRTC dans Firefox mobile sur la
plateforme Android est incluse depuis la version 24. [9]
Les choses se font plus sérieuses chez Mozilla autour de WebRTC. Cette technologie doit permettre
les communications de type audio et vidéo entre les produits qui l’utilisent. À la différence toutefois
d’un Skype ou de nombreux autres produits pensés pour communiquer, WebRTC peut s’utiliser
sans requérir la moindre création de compte. Un argument d’ailleurs mis en avant par Mozilla dans
son annonce [16].
Figure 16-Logo Firefox avec WebRTC
2.1.19.3 Interopérabilité
L’internet n’arrête pas de nous surprendre. En effet, aujourd’hui, pour la première fois depuis
la création de l’univers, les navigateurs peuvent communiquer directement entre eux et ce
nativement, sans “plugin”. Voici les 3 grandes fonctionnalités de WebRTC :
Sécurité
Pour que le WebRTC fasse transiter des données en temps réel, celles-ci sont d’abord cryptées en
utilisant le protocole DTLS (Datagram Transport Layer Security). C’est un protocole inclut dans
tous les navigateurs supportant le WebRTC (Chrome, Firefox et Opera). Sur une connexion
encryptée l’écoute et la falsification d’informations ne peuvent être appliquées. En plus du DTLS, le
WebRTC crypte l’audio et la vidéo via le protocole SRTP (Secure Real-Time Protocol) s’assurant
que les communications IP – votre flux voix et vidéo – ne peuvent être vues ou écoutées par des
tiers. Comme tous ce que vous faites en ligne, comme télécharger une application VoIP du type
Skype, un film, ou même transférer des fichiers par mails, cela présente un risque d’intrusions.
Toutefois, la Technologie WebRTC sécurise la transmission de données sensibles comme expliqué
précédemment, assurant une sécurisation en temps réel des communications. Notons aussi les
composant du WebRTC sont toujours exécuter sur les navigateurs dans un SandBox [19]
Compatibilité
Les versions à jour de Chrome et Firefox supportent l’API. Bien que la spécification
WebRTC soit relativement stable, tous les navigateurs n'ont pas entièrement implémenté toutes ses
fonctionnalités. De plus, certains navigateurs ont encore des préfixes sur certaines ou toutes les API
WebRTC. Bien que vous puissiez coder manuellement pour résoudre ces problèmes, il existe un
moyen plus simple. L'organisation WebRTC fournit sur GitHub l'adaptateur WebRTC pour
contourner les problèmes de compatibilité dans les implémentations WebRTC de différents
navigateurs. L'adaptateur est un code JavaScript qui permet à votre code d'être écrit selon la
spécification afin qu'il "fonctionne simplement" dans tous les navigateurs prenant en charge
WebRTC. Il n'est pas nécessaire d'utiliser conditionnellement des API préfixées ou d'implémenter
d'autres solutions de contournement. Pour chaque version de chaque navigateur prenant en charge
WebRTC, adapter.js implémente les polyfills nécessaires, établit les noms non préfixés des API et
applique toutes les autres modifications nécessaires pour que le code d'exécution du navigateur soit
écrit selon la spécification WebRTC peut importer le niveau d’incompatibilité du navigateur par
rapport à la Technologie WebRTC10.
10
https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/adapter.js?language=en-US
Figure 18- Compatibilité des navigateurs avec WebRTC
Mesh est l’approche par défaut, à savoir que chaque participant va envoyer son média à
chacun des autres participants. Cette approche échoue rapidement au-delà de 3-4 participants, en
termes de limite de la bande passante et de nombre de connexions. Un participant devra
téléverser(Upload) son média à chacun des autres participants et télécharger (Download) le média
de chacun de ceux-ci.
Figure 19-Illustration du modèle Mesh
MCU pour Multipoint Conferencing Unit ou Multipoint conferencing unit est l’approche
dans laquelle les différents participants vont tous communiquer avec une unité centrale (un serveur
de media) qui va s’occuper de décoder et encoder les flux audio et/ou vidéo puis mixer ou composer
les différents flux en un seul flux audio-vidéo (mais un seul sera envoyé aux participants). C’est
définitivement la meilleure approche en termes de charge sur le réseau et de nombre de connexions.
Cette approche limite à une connexion entrante et sortante entre le client et le serveur, peu importe
le nombre de participants. Quand le nombre de clients augmente, la complexité de la mise en œuvre
augmente également. Alors en fin de compte, nous obtenons une vidéo de haute qualité en même
temps que cela coûte cher par rapport à d’autres architectures car le serveur de media doit être
puissant en termes de ressources[20].
Figure 20-Modèle Multiparting Conferencing Unit (MCU).
Par ailleurs, la troisième approche SFU propose que chaque participant envoie son média à
un serveur central (le serveur de media) qui s’occupe de le rediriger (router) aux autres participants
si ceux-ci en font la demande. On limite ainsi à un le nombre de téléversement (upload) par rapport
à Mesh (n participants), mais on garde le nombre de téléchargements de flux égal au nombre de
participants, ce qui entraîne une consommation de plus de bande passante pour la liaison
descendante que la
liaison montante.
Si on peut croire que MCU est le modèle le plus intéressant, il faut savoir qu’un tel
serveur central doit s’occuper de tous les traitements, à savoir la réception, le décodage des flux, la
composition du nouveau flux, le ré encodage des différents flux et l’envoi : tous des traitements
extrêmement exigeants côté CPU. Plus la taille des flux vidéo augmentera (4k, mais bientôt 8k),
plus ce temps de traitement croîtra largement avec cette approche et un déploiement à grande
échelle basé sur le modèle MCU demande des dizaines, voire des centaines de machines
supplémentaires par rapport à SFU [20].
En fait, c’est l’approche SFU qui est de plus en plus privilégiée dans le contexte
WebRTC, quoique les différentes solutions offrent souvent des modèles hybrides. WebRTC étant
multi-flux par nature, le modèle SFU s’inscrit parfaitement dans cette logique : le client reçoit de
multiples flux audio et vidéo qu’il doit décoder individuellement et afficher à l’écran. SFU limite le
serveur intermédiaire aux tâches simples et peu exigeantes à savoir la réception, la sélection et
l’envoi des flux.
L’autre option est d’utiliser un codec supportant l’extensibilité (H.264 SVC / Scalable VP9) ou le
Simulcast pour bénéficier d’une architecture purement SFU avec l’adaptation de contenu. Dans un
tel modèle SFU [20].
2.2 REVUE DE LITTERATURE
Une fois cet objet PeerConnection créé par « A », le navigateur envoie au serveur
d’application, un paquet contenant les informations sur les médias partagés ainsi qu'une empreinte
liant la connexion à « A ». Le serveur va décoder ce paquet et identifier qu'il s'agit d'une
communication à destination de B et enverra donc un signal à « B ». « B » est notifié du souhait de
A d'établir une connexion et accepte ou non sa requête. Si elle est acceptée, le même processus a
lieu entre « B » et « A » cette fois afin d'établir la connexion bidirectionnelle. Une fois celle-ci
établie, les flux de médias ou de données peuvent être ajoutés à la connexion librement. La
démarche est résumée comme suit :
Enfin qu’un personnel de l’entreprise puisse avoir accès au système il devra avant tout, créer
un compte utilisateur. Pour que le personnel puisse être capable de lancer ou de rejoindre un appel
vers les autres personnels de l’entreprise, il faudra que ceux-ci se loguent enfin que l’on sache ceux
qui sont connectés voir même appliquer certain droit d'accès sur certaines ressources. Signalons que
l’initiateur de l’appel sera d’office l’administrateur. Après s’être logue le personnel pourra initier ou
rejoindre un appel vocal, une discussion instantanée, effectuer un appel vidéo, rejoindre une vidéo
conférence entre les personnels, effectuer un transfert de fichier, suivant leurs domaines de service
(service financier, économie, administration …), avec ses confrères grâce à un navigateur web. Les
personnels avec leurs domaines de service ainsi que les conversations texte des personnels seront
enregistré dans la base de données.
Une fois réalisé cette application web qui permet une communication entre deux
ou plusieurs personne sera utilisable dans toute entreprise ou organisation désirant son propre
système de communication à faible coût. L’entreprise ou organisation qui adoptera ce système
doit être équipe d’ordinateurs sur les postes de travail de personnels ou appareil ayant un
navigateur installe, au besoin il doit être à jour. Le système exige que les employés sachent
comment naviguer sur un site internet avec un navigateur.
Avant tout il faudra s’assurer que le serveur d’application qui héberge l’application
JavaScript est en marche si non l’application web ne sera pas disponible sur le réseau. De même
le serveur de base de données doit avoir été démarré car c’est lui qui stocke les informations du
système de communication. Quant au navigateur des appareils informatiques, ils devront être à
jour enfin de bénéficier des dernières fonctionnalités de la technologie WebRTC et éviter des
bugs qui pourrait exister avec les versions précédentes du navigateur.
Le cas où les personnels voudront collaborer entre eux via internet ou établir une
communication avec une personne de l’extérieur via internet sera ajouté dans la version
ultérieure de cette application.
2.3.2 Performance
Notre travail utilisera la technologie WebRTC pour atteindre l’objectif qu’on s’était fixe, c’est
pourquoi le système a réalisé d’office héritera des performances du WebRTC. Compte tenu des
nombreux avantages que WebRTC offre aux utilisateurs et aux développeurs, il est logique de
savoir pourquoi il y a tant de battage médiatique autour de lui. Tout, de la livraison à faible
latence à l'interopérabilité, en fait un choix attrayant11.
WebRTC utilise le codec audio Opus qui produit une voix haute-fidélité. Le codec
Opus est basé sur la technologie de codec SILK de Skype. Le codec VP8 est utilisé pour la
vidéo. Ces sélections garantissent l'interopérabilité et évitent d’avoir à télécharger des codecs
susceptibles de contenir du code malveillant12.
Il fonctionnera bien sur les vieux ordinateurs. Avec l’architecture Mesh du WebRTC,
qui est par défaut lorsque le navigateur capture une vidéo brute à partir d'une caméra Web, il
doit l'encoder dans un format compact et l'envoyer au réseau et cela à tous les pairs en
12
https://www.networkcomputing.com/networking/9-advantages-webrtc
communication. De plus, lorsque vous recevez un flux vidéo / audio venant d’autres
utilisateurs, vous devez le décoder et le lire sur votre écran / casque. Cette architecture est
réalisable tant que le nombre de participants est petit au maximum 3-6 utilisateurs selon la
bande passante ou la puissance de calcul disponible. Mais cette architecture est avantageuse en
termes de coût du fait que la connexion est directe de bout à bout sans serveur central. Pour que
le mécanisme d'encodage / décodage consomme du CPU. Plus la qualité vidéo est élevée, plus
la charge du processeur est importante. Plus vous avez besoin de vidéos à traiter, plus la charge
du processeur est importante. On résout ce problème en faisant recours à un serveur de media
qui se charge d’envoyer les media des différents utilisateur une fois reçu en provenance de
chacun des utilisateurs. La limite maximale de connexions homologues est de 256 (sur
chrome). Cela signifie que 256 utilisateurs peuvent être interconnectés. Mais L'établissement de
plusieurs connections entraînera une utilisation énorme du processeur et de la bande passante.
2.5 Sécurité
13
https://blog.wildix.com/webrtc-real-time-communications/
Av
optionnelles. Toutes les données transmises sont toujours cryptées en utilisant les protocoles
DTLS et SRTP. Les données transmises ne peuvent donc être ni lues ni vues ni écoutées ou
falsifiées par un tiers. Les données sont partagées en Peer-to-peer, c’est-à-dire directement
entre les interlocuteurs sans passer par un serveur intermédiaire. Il n’y a aucun moyen
d’utiliser le WebRTC sur des sites Web non desservis par HTTPS. Cela signifie que le
WebRTC oblige les développeurs à utiliser des connexions sécurisées. Le WebRTC requiert
que l’utilisateur autorise explicitement l’accès à sa caméra et à son microphone, assurant que
l’utilisateur soit bien informé que ces périphériques sont activés. Il ne requiert pas de
télécharger un logiciel, ce qui réduit les risques d’intrusion Dernier point, mais non des
moindres : étant une technologie en Open-source, le WebRTC tirerait avantage au quotidien de
la collaboration de milliers de développeurs de la communauté internet ce qui facilite la
détection d’un code malveillant s’il y en a. Couplez cela au fait que tous les navigateurs l’ont
intégré : vous obtiendriez une qualité de maintenance et d’amélioration hors du commun,
continue, et gratuite.
2.6 Portabilité
Le fait que la technologie WebRTC soit intégrée dans une application web fait à ce que
le système de communication que nous allons réaliser soit portable. Cad on pourra l’héberger
sur n’importe quel serveur de l’entreprise dédié pour recevoir l’application Web sans se soucie
de son environnement ni de son système.
Dans ce chapitre nous avons tout d’abord défini certains concepts clés de notre travail,
ainsi que passé en revue la littérature et enfin chuté par les exigences logicielles.
Les outils, quant à eux, nous ont permis de s’assurer de la bonne évolution de notre
travail en tenant compte des limites de notre sujet de recherche enfin de concevoir et réaliser
notre système.
3.1.1 METHODES
Étant donné que nous ne sommes pas le seul à traiter un sujet du domaine de la
communication en temps réel, et que dans le passé plusieurs autres chercheurs ont déjà abordé
ce concept de différentes façons. Pour épingler la richesse et l’originalité du présent travaille
nous avons procédé par la collecte et la lecture d’un certain nombre d’ouvrages traitant la
communication en temps réel en usant la technologie WebRTC. En effet, cette revue, vue la
surabondance des données et la variété des supports, nous a permis non seulement à mieux
énoncer la problématique de notre travail par rapport aux recherches précédentes, mais aussi à
identifier des documents fiables que nous avons consultés. Elle nous a, essentiellement, été utile
lors de la rédaction de ce travail en entièreté et elle nous a également permis de mieux
comprendre le fonctionnement de la technologie que nous voulons utiliser pour résoudre le
problème évoqué ci-haut.
3.1.1.2 Modélisation
Pour mieux maîtriser la complexité de notre système nous nous sommes servis de la
méthode de modélisation. Cette méthode nous a permis de réduire la complexité du système à
réaliser en éliminant les détails qui n'influencent pas son comportement de significative. Pour la
construction de notre système nous avons utilisé le langage de modélisation UML. (Langage de
Modélisation Unifié). Le langage UML est né de la fusion des trois méthodes qui ont
influencé la modélisation objet au milieu des années 90 : OMT, Booch, OOSE. Il est à présent
un standard défini par l’Object Management Group (OMG). UML est un langage visuel
constitué d’un ensemble de schéma, appelés des diagrammes, qui donnent chacun une vision
différente du projet à traiter [22].
Nous avons porté notre choix sur le langage UML, car ce dernier renferme un
certain nombre d’avantages14 : « UML c’est un langage formel et normalisé, il permet un gain
de précision et de stabilité. Il permet également, grâce à sa représentation graphique, d’exprimer
visuellement une solution objet, de faciliter la comparaison et l’évolution de solution. Son
caractère polyvalent et sa souplesse en font un langage universel » [24]
14
https://www.memoireonline.com/12/09/2917/m_Algorithmes-dapprentissage-pour-la-classification-de-
documents3.html/
Figure 22-Les axes du Langage UML
L’axe fonctionnel nous permettra de représenter les différents cas d’utilisation, les
interactions entre les acteurs et voir qui fait quoi dans le système. A part cela dans cet axe il
existe aussi le diagramme de séquence ou d’activité pour la représentation des acteurs et leur
fonction dans le système.
Cet axe nous aidera a représenté les objets et entités du système. Par cette
représentation on sera en mesure d’élaborer le diagramme de classes, de paquetage, de
déploiement et le diagramme de structure composite. Notons que ce dernier ne sera pas abordé
Le diagramme de classe est le point central dans un développement orienté objet. Cet ainsi que
l’axe statique de notre système sera centré sur le diagramme de classe car ce diagramme met en
œuvre des classes, qui sont constitués des attributs et des opérations, et reliées par des
associations, dans le but d’avoir une idée claire sur le code qui constituera la partie logicielle de
notre système.
Cet axe nous donne un aperçu sur le diagramme d’activité étant le point central dans
l’axe dynamique. Ce diagramme est un ensemble de scénarios alternatifs avec exceptions si
elles existent. Car avec le diagramme de cas d’utilisation il est souvent difficile de représenter
toutes les actions d’un acteur.
3.1.1.3 Simulation
3.1.1.4 Expérimentation
Sachant que l’expérimentation faisant référence au fait d’apprendre ou de découvrir
par la pratique et l'expérience, personnelle ou scientifique. L’expérimentation est une méthode
bien adaptée aux travaux de simulation. Plusieurs tests de notre application nous ont permis
d’expérimenter la solution car en seul l’observation ne suffit pas. Cette méthode permet
également de comprendre les exigences ou contraintes du système comme par exemple le type
de serveur, logiciel à utiliser, l’environnement qu’il faut surtout pour notre cas la version du
navigateur a utilisé. Par cette méthode nous avions effectué le teste de nos hypothèses pour voir
s’ils sont valides ou non. Après plusieurs tests de notre application nous avons réalisé que la
solution de notre application a atteint son objectif.
3.1.2 TECHNIQUES
C’est une technique permettant de consulter tous les documents nécessaires en vue
de l’obtention des informations fiables. Ces documents peuvent être des natures très variées
comme par exemple des livres, des travaux de fin d’étude, des ouvrages, des revues et différents
sites web pour une bonne compréhension de notre sujet.
Ordinateur : l’ensemble des outils présentés ci-haut ont été exécuté sur un
ordinateur de marque HP Probook ayant :
- Mémoire RAM : 4 Go
Téléphone : Sachant que l’application web que nous avons développé doit
fonctionner sur un téléphone mobile via son navigateur elle a été testée sur un
téléphone Android de marque TECNO K7 en utilisant le navigateur Chrome et
Firefox
Système d’exploitation Linux Debian x 64 : Debian est un système d'exploitation libre,
gratuit et communautaire, basé sur le noyau Linux et démarré en 1993 par Ian Murdock avec
le soutien de la Free Software Foundation. Avec l'une des plus grandes communautés open
source au monde (plus de 1600 développeurs), le projet Debian est la distribution la plus
complète disponible, avec près de 30 000 packages dans la version 6. La distribution est
éditée en accord avec la philosophie communautaire qui a donné naissance au logiciel libre,
et constitue une référence en termes de qualité et de stabilité. Debian est une distribution
GNU/Linux non commerciale 15.
Visual studio code : Visual Studio Code est un éditeur de code source créé par Microsoft
pour Windows, Linux, MacOs. Les fonctionnalités incluent la prise en charge du débogage,
15
https://www.debian.org/index.fr.html
16
https://www.tutorialspoint.com/nodejs/nodejs_introduction.htm
de la coloration syntaxique, de la complétion intelligente du code, Les utilisateurs peuvent
modifier le thème, les raccourcis clavier les préférences et installer des extensions qui ajoutent
des fonctionnalités supplémentaires. Cet outil nous a aidé à faire la saisie des codes de
langages de programmation, notamment, le HTML, le CSS et le JavaScript.
Nginx : Nginx est un logiciel open source pour le service Web, le proxy inverse, la mise en
cache, l'équilibrage de charge (load balancing), la diffusion multimédia en continu
(Streaming), etc. Il a commencé comme un serveur Web conçu pour des performances et
une stabilité maximale17.Nous avons utilise Nginx suite a sa performance dans le media
streaming sa latence est faible par rapport à son concurrent apache.
Astah Community : Nous avons utilisé cet outil dans la conception des modèles qui
constituent notre système. Par cet outil, nous avons réalisé les différents diagrammes
représentant le fonctionnement de notre système.
JavaScript : est un langage de programmation employé dans les pages web Interactives
mais aussi pour les serveurs avec utilisation (par exemple) de Node.js. C’est un langage orienté
objet en prototype, c’est-à-dire que les bases du langage et ses principales interfaces sont
fournies par des objets qui ne sont pas des instances de classes, mais qui sont chacun équipés
17
https://www.nginx.com/resources/glossary/nginx/
des constructeurs permettant de créer leurs propriétés, et notamment une propriété de
prototypage qui permet d’en créer des objets héritiers personnalisés18.
HTML : est un langage utilisé pour créer de pages web. Il est supporté et développé par
L’organisationW3C.
CSS : CSS est l'acronyme de « Cascading Style Sheets » ce qui signifie « feuille de style en
cascade ». Le CSS correspond à un langage informatique permettant de mettre en forme des
pages web (HTML).
A. Du côté matériel
18
https://googleweblight.com/i?u=https://fr.m.wikipedia.org/wiki/JavaScript
moyens matériel comme un ordinateur par poste de travail (sur lequel est installé un navigateur
qui doit être à jour), un réseau local (avoir des équipements comme des routeurs, points d’accès
ou même des commutateur-Switch) pour permettre à un grand nombre de personnel de se
connecter au système. Notons qu’un serveur de media est nécessaire pour accroître le nombre
des personnels qui doivent participer à une vidéo conférence (SFU).
B. Du cote Logiciel
Échange des messages textuels : Ceci permettra à l’utilisateur d’échanger des messages en
temps réel entre utilisateurs connectée au réseau.
Initier une vidéo conférence: La tenue d’une réunion virtuelle étant un besoin plus que
souhaité dans la plupart des organisations moderne notre système possédera cette
fonctionnalité en vue de satisfaire ce désir , en plus étant dans une période de pandémie et
sachant que parmi les mesures barrière à observer figure la distanciation entre les gens, cette
fonctionnalité de vidéo conférence viendra en renfort aux mesures barrière dans le milieux
d’organisation du fait que la réunion pourra se dérouler sans la présence physique des
participants dans une même pièce.
Consulter la liste des réunions en cours : Les personnels connectée auront la possibilité
de consulter la liste des réunions virtuel qui sont en cours et celles qui ont été planifiée par le
chef de service ou dans l’organisation entière.
Acteur : c’est un utilisateur ayant la même attitude dans un cas d’utilisation et selon le
rôle qu’il joue dans le système. Il n’est pas nécessairement une personne, il peut aussi s’agir
d’un autre système considéré comme externe. Un acteur est représenté par un bonhomme.
Cas d’utilisation : c’est un ensemble d’actions ou d’évènements que le système doit faire
à une requête de l’utilisateur.
Interaction : c’est une description de la communication entre l’acteur et le cas
d’utilisation.
3.2.3 VUE DYNAMIQUE
Diagrammes d’activités
Ce diagramme donne une idée sur l’enchaînement des activités propres à une
opération ou un cas d’utilisation. Le diagramme d’activité est attaché à une catégorie des
classes et décrit le déroulement des activités de cette catégorie. Le déroulement s’appelle « flot
de contrôle ». Il indique la part prise par chaque objet dans l’exécution du travail. Il sera enrichi
par les conditions de séquence [26].
Commentaire : Pour initier ou participer à un échange avec ses collaborateurs, l’utilisateur qui
est un personnel de l’organisation doit d’abord s’authentifier et une fois que l’authentification
est correcte, le système va lui afficher une page d’accueil. Depuis sa page d’accueil le personnel
pourra initier un échange vidéo, le partage d’écran, message textuel, un transfert de fichiers.
Les diagrammes de séquence
Certaines notions de base sont très capitales sur le digramme de séquences parmi
lesquels on peut citer [25] :
Scenario : une liste d’actions qui décrivent une interaction entre un acteur et système.
Diagramme de classes
C’est une collection d’éléments de modèle statique, tels que des classes, des
interfaces et leurs relations, connectés entre elles comme un graphe [27].
Des méthodes ou opération de la classe : elles décrivent les opérations qui peuvent
s’appliquer aux instances de la classe.
Pour décrire les connexions structurelles entre les instances de classe qu’un diagramme de
classe possède, celle-ci utilise différentes associations, parmi lesquelles nous citons :
L’agrégation : c’est une association qui correspond à une relation qui se lit « « est
une partie de » lorsqu’elle est lue dans un sens et « est composé de », lorsqu’elle se lit
dans l’autre sens.
La composition : elle est aussi appelée agrégation composite ; elle décrit contenance
structurelle entre instance comme l’agrégation à la différence que la destruction de l’objet
composite implique la destruction de ses composants. Une instance de la partie appartient
toujours à au plus une instance de l’élément composite.
Diagrammes de déploiement
Un diagramme de déploiement est un type de diagramme UML qui montre
l’architecture d’exécution d’un système, y compris les nœuds tels que les environnements
d’exécution matériels ou logiciels, et l’intergiciel qui les relie. Les diagrammes de
déploiement sont généralement utilisés pour visualiser le matériel physique et les logiciels
d’un système. En l’utilisant, vous pouvez comprendre comment le système sera
physiquement déployé sur le matériel. Les diagrammes de déploiement aident à modéliser
la topologie matérielle d’un système par rapport à d’autres types de diagrammes UML qui
décrivent principalement les composants logiques d’un système [30].
Une base de données est une collection d’informations organisées selon différents
types et pouvant être facilement consultables, gérables et mises à jour. Pour les bases de
données relationnel Les données sont stocke dans des tableaux (des donnes ) qui sont constitués
des lignes et des colonne contrairement aux base des données No-SQL qui stocke les données
sous format clé-valeur dans des documents . La création d’une base des données se fait suivant
trois grands niveaux :
- Utilisateur [id_user, nom, matricule, email, fonction, password, role, pathPhoto, #fK_service]
Dans ce chapitre, nous avons parlé de différents besoins que doit répondre notre
système. A part cela, pour la conception de notre système du côté logiciel, nous nous sommes
servis du langage UML qui regorge différents diagrammes pouvant nous permettre de
modéliser ou représenter toutes les fonctionnalités de notre système. Dans le chapitre suivant,
nous allons implémenter notre système et voir les résultats.
Références
[1] S. Loreto, S. P. Romano, S. S. Laurent, and A. MacDonald, Real-time communication with WebRTC,
Beijing: O'Reilly, 2014.
[2] «WebRTC Home,» WebRTC, [En ligne]. Available: https://webrtc.org/. [Accès le 20 02 2021].
[3] «Des fonctions de communications dans le navigateur Web,» nex, [En ligne]. Available:
http://www.nexcom.fr/tag/webrtc/. [Accès le 15 02 2021].
[4] «Signaling and video calling,» MDN Web Docs, [En ligne]. Available: https://developer.mozilla.org/en-
US/docs/Web/API/WebRTC_API/Signaling_and_video_calling. [Accès le 25 02 2021].
[5] «What are STUN, TURN, and ICE?,» Twilio, [En ligne]. Available: https://www.twilio.com/docs/stun-
turn/faq. [Accès le 26 02 2021].
[6] «“Overview of ICE,” Interactive Connectivity Establishment (ICE): A Protocol for Network Address
Translator (NAT) Traversal,» [En ligne]. Available: https://tools.ietf.org/id/draft-ietf-ice-rfc5245bis-
13.html#rfc.section.2. [Accès le 26 02 2021].
[9] H. Arslan, S. Tüncel, and A. G. Yüksek, «Comparison of the Web based multimedia,» chez Signal
Processing and Communications Applications Conference, 2015, pp. 915-918.
[10] D. Johansson and M. Holmgren,, «Towards Implementing Web-Based Adaptive Application Mobility
Using Web Real-Time Communications,,» chez Eighth International Conference on Innovative Mobile
and Internet Services in Ubiquitous, 2014, p. 483–486.
[11] «Session Description Protocol,» chez Wikipedia, the free encyclopedia, 2021.
[12] «Based on 1.5 million minutes of video calls done with WebRTC».
[13] Jonathan, Rosenberg, «Session traversal utilities for nat (stun),» October 2008. [En ligne]. Available:
http://tools.ietf.org/html/rfc5389. [Accès le 15 03 2021].
[14] S. Dutton., «Webrtc in the real world: Stun, turn and signaling,» 2013. [En ligne]. Available:
http://www.html5rocks.com/en/tutorials/webrtc/infrastructure/. [Accès le 15 03 2021].
[15] Daniel Burnett, Adam Bergkvist, «WebRTC 1.0: Real-time Communication Between Browsers,» Mars
2015 . [En ligne]. Available: http://w3c.github.io/webrtc-pc/archives/20150306/webrtc.html. [Accès le
20 03 2021].
[16] J. Rosenberg., «Interactive connectivity establishment (ICE),» Avril 2010. [En ligne]. Available:
https://tools.ietf.org/html/rfc5245.
[17] «Mozilla veut vous faire tester les communications WebRTC dans Firefox,» Mozilla, [En ligne].
Available: http://www.nextinpact.com/news/89710-mozilla-veut-vous-faire-tester-communications-
webrtc-dans-firefox.htm. [Accès le 17 03 2021].
[18] «Mozilla, Google apporte l’interopérabilité WebRTC à Firefox et Chrome,,» Mozilla, [En ligne].
Available: http://www.blog-nouvelles-technologies.fr/24036/mozilla-google-apporte-linteroperabilite-
webrtc-a-firefox-et-chrome/. [Accès le 17 03 2021].
[19] «Transferts entre navigateurs sans serveur avec WebRTC,» [En ligne]. Available:
http://www.reptiletech.com/blogue/developpement-web/transferts-entre-navigateurs-sans-serveur-
avec-webrtc/. [Accès le 18 03 2021].
[20] Ilya Grigorik, «High Performance Browser Networking,,» O’Reilly Media, 2013.
[21] «Architecture de Video conference avec WebRTC,» [En ligne]. Available: https://cloudeezy.com/blog-
nextcloud/webrtc-p2p-sfu-mcu.html. [Accès le 5 03 2021].
[23] L. (. J. Louis, «Initiation aux méthodes de recherches en sciences sociales,» Paris, L’Harmattan, 2000, p.
p. 120. 20.
[24] GRAWITZ, Madeleine, «Méthodes de recherche en sciences sociales,» Paris, Dalloz, 2001, p. p.35.
[26] Pascal PARE Camille ROSENTHAL-SABROUX Nasser KETTANI, Dominique MIGNET, «De Merise à UML,»
france edition éd., Eryolles, Octobre 2001.
[28] J. GABAY, «Merise et UML pour la modélisation des systèmes d'information,» Dunod éd., mars 2004.
[29] J.-P. LATOUR, «Les diagrammes UML ; les conséquences du passage à l'OO,» Février 2001.
RR