Agoralib est un outil informatique qui va permettre à un développeur d'application informatique d'intégrer facilement des fonctionnalités de communication dans un logiciel.
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éos, 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, a partir du moment ou 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 jeux vidéo (jeux vidéo intégrant les fonctionnalités Agora). Cette communication s'étendra à autant de personnes utilisant des applications pourvu 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 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…
Le flux ainsi capturé est transformé dans un format de données optimisées selon le codecSpeex 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.
agoralib.
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.
agoralib.
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ée 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 réceptionne 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 transmit 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…