- AgoraLib
-
Agoralib est un composant logiciel de type framework qui met en œuvre des fonctionnalités de communication dans des applications informatique.
Sommaire
Introduction
Le projet Agora est une bibliothèque logicielle de fonctions de communication audio facilement intégrable dans tous types d'applications (applications bureautiques, jeux vidéo, applications de communication, etc.). Agora permet donc la communication entre plusieurs utilisateurs (communication en mode conférence) via un serveur, indépendamment de l'application qu'ils utilisent. Cette bibliothèque peut être utilisée aussi bien pour l'implémentation des fonctions de communication que pour l'implémentation des fonctions de l'application serveur.
Concrètement, un logiciel n'ayant à l'origine aucun système de communication pourra, une fois les fonctionnalités d'Agora rajoutées, dialoguer avec une autre application pourvu elle aussi des fonctionnalités Agora. La communication des différents interlocuteurs se fera indépendant de l'application que chacun utilise, à partir du moment où ces applications contiennent les fonctionnalités de la bibliothèque Agora.
Par exemple, un utilisateur 'A' utilisant un logiciel de traitement de texte (pourvu des fonctionnalités Agora), aura la possibilité de dialoguer avec un utilisateur 'B' jouant à un jeu vidéo (jeux vidéo intégrant les fonctionnalités Agora). Cette communication s'étendra à autant de personnes utilisant des applications pourvues des fonctionnalités du projet Agora.
Ce projet s’inscrit dans le cadre des Epitech Innovative Project, qui sont les projets de fin d’études des étudiants de l’école d’informatique Epitech.
La bibliothèque Agora s’adresse aux développeurs d’applications confirmés comme débutants grâce à sa facilité de déploiement ; particuliers comme professionnels.
Diagramme global
Le projet Agora permet la communication entre deux ou plusieurs intervenants entre eux. Le fonctionnement de ce projet se présente comme suit.
Les logiciels intégrant la bibliothèque Agora permettent aux utilisateurs de communiquer entre eux, et ce bien que les logiciels de départ ne soient pas obligatoirement les mêmes. Les communications transitent par un serveur sur le réseau (développé à l'aide de la bibliothèque Agora) qui les traite et les relaie.
La bibliothèque intègre une base de données SQLite1 située sur ce serveur afin de gérer les différents canaux d’échanges et différents droits relatifs aux communications et aux utilisateurs. La bibliothèque d'encodage Speex sert de support par défaut pour l'encodage des communications. La bibliothèque OpenAL est utilisé pour faire l'interface entre l'utilisateur et l'application utilisant Agora lors de l'acquisition et de la restitution du flux sonore.
Environnement technologique
Pour être utilisables, les fonctionnalités de la bibliothèque Agora doivent être implémentées dans une application dite cliente (application installée sur l'ordinateur de l'utilisateur), développée en C ou C++. L'ordinateur sur lequel cette application utilisant Agora s'exécute doit être équipé d'une carte son ainsi que d'un micro et des haut-parleurs (ou un quelconque système de restitution sonore tel un casque, une oreillette bluetooth, etc.). Enfin, il faut que cet ordinateur soit relié au réseau (internet ou local) sur lequel se situent les correspondants avec qui l'utilisateur souhaite dialoguer.
Limitations particulières
Comme tout projet informatique, le projet Agora connait certaines limites.
Le nombre d'utilisateurs simultané sur un même canal. Cette limitation se fera en fonction de différents critères :
- le débit de la bande passante : plus la bande passante est importante, plus la capacité d'accueil de connexions simultanées sera importante
- la qualité de la communication : selon le taux de compression du codec choisi, plus ou moins de bande passante seront consommées (plus l'amplitude de la fréquence vocale est importante, plus la bande passante consommée est importante)
L'application utilisant les fonctionnalités d'Agora devra être développée en C ou C++ afin d'être compatible. Dans sa version 0.3, la bibliothèque Agora est limitée à une quinzaine d'utilisateur pour une qualité audio moyenne avec une connexion au réseau classique (1 Méga).
Le projet Agora est développé dans une optique multiplate-forme. Ainsi, les univers UNIX et Microsoft Windows sont pris en charge.
Diagramme de communication
Afin d’assurer l’intégrité des informations et le bon déroulement des communications, la bibliothèque Agora accomplit différents processus en suivant une chronologie illustrée par le schéma suivant.
Ce digramme de communication représente toutes les étapes par lesquelles les informations de communications vont transiter entre les interlocuteurs, par ordre chronologique. Ces étapes peuvent être regroupées en 3 parties (décrites dans les sous parties suivantes) :
- Une partie émission, qui regroupe les étapes avant le transfert sur le réseau
- Une partie transport et administration, qui regroupe les étapes ayant lieu sur le réseau
- Une partie réception, qui regroupe les étapes après le transfert sur le réseau
L'émission
- La première étape consiste en la capture d’un flux audio ou d’un message (ACQUERIR) soit depuis un fichier soit depuis un périphérique d’acquisition, tel un micro ou un clavier…
- L'acquisition se fait grâce a OpenAL.
- Le flux ainsi capturé est transformé dans un format de données optimisées selon le codec Speex pour le transport via le réseau (ENCODER).
- Ces données sont placées dans un paquet avec entête afin d’assurer l’intégrité et le bon routage des informations sur le réseau (EMPAQUETER).
- L'empaquetage se fait selon une norme définie et permet de créer des « paquet Agora » comme décrit dans le schéma suivant.
Il existe trois types de paquet Agora :
- les paquets Agora « audio », pour les communications audio
- les paquets Agora « texte », pour les communications texte
- les paquets Agora « d'administration », pour l'administration des utilisateurs ou des canaux
Le transport et l'administration
Le transport (selon le protocole TCP) et l’administration des données suivent le schéma suivant.
Les différentes étapes représentées par le schéma ci-dessus s'expliquent comme suit :
- Les informations précédemment empaquetées en provenance de l’émetteur sont transmises sur le réseau (ENVOYER SUR LE RESEAU).
- Le réseau à l’écoute des connexions récupère ce paquet (RECUPERER TRAME DANS L’HOTE).
- L'entête de ce paquet est analysé afin de déterminer le type d’actions suivantes à effectuer (ANALYSE PAQUET) :
- Actions d’administration : la commande d’administration est exécutée (EXECUTER COMMANDE), puis un paquet d’informations Agora contenant la réponse à cette commande est créé (CREER PAQUET AGORA). Les informations d'administrations son enregistrées dans la base de données SQLite.
- Action de communication : le chemin d’accès au(x) destinataire(s) de la communication est déterminé (TRAITEMENT DESTINATIONS).
- Le(s) paquet(s) de communication transite(nt) sur le réseau vers le client destinataire (ENVOYER AU CLIENT).
- L’application destinataire reçoit les données en vue d’un traitement (RECEPTIONNER).
La réception
- L’entête du paquet arrivant du réseau est consulté ; selon les informations présentes il est transmis au décodeur adéquat (DEPAQUETER).
- Le décodeur ainsi sélectionné va retranscrire les informations du paquet dans un format utilisable par l’application destinataire (DECODER).
- En fonction du type d’informations décodées, les actions adéquates seront déclenchées sur le poste destinataire, telle la diffusion du son, la restitution d’un message texte, l’administration d’un canal…
Voir aussi
Liens externes
Wikimedia Foundation. 2010.