« Réunion du 26-03-2024 » : différence entre les versions

De OSWiki
Aller à la navigation Aller à la recherche
Balise : wikieditor
Balise : wikieditor
 
(48 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
= Changements du code de la semaine=
= Changements du code de la semaine=
===osGetLinkInventoryKey===
===osGetLinkInventoryKey===
* Nouvelle fonction OSSL développée par '''Jeff Kelley''' [http://opensimulator.org/viewgit/?a=commit&p=opensim&h=1aa7bea608301021e8dc7c52779b14df5fe171d6][http://opensimulator.org/viewgit/?a=commit&p=opensim&h=7c63ff11509110398910df94cfe4b023b331c7e4][http://opensimulator.org/viewgit/?a=commit&p=opensim&h=782bad994446b473b33e8b32ae4954418c5270a8]
* Nouvelle fonction OSSL développée par '''Jeff Kelley''' [http://opensimulator.org/mantis/view.php?id=9119 Mantis 0009119] [http://opensimulator.org/viewgit/?a=commit&p=opensim&h=1aa7bea608301021e8dc7c52779b14df5fe171d6][http://opensimulator.org/viewgit/?a=commit&p=opensim&h=7c63ff11509110398910df94cfe4b023b331c7e4][http://opensimulator.org/viewgit/?a=commit&p=opensim&h=782bad994446b473b33e8b32ae4954418c5270a8]  
* Seule information pour l'instant, cette fonction est cohérente avec la fonction LSL [https://wiki.secondlife.com/wiki/LlGetInventoryKey/fr lGetInventoryKey] qui renvoie l'UUID de l'objet de  l'inventaire à partir de son nom.
* [[Réunion_du_26-03-2024#osGetLinkInventoryKey_2 | Plus d'informations au chapitre Script]]
* Prototype de la fonction osGetLinkInventoryKey déduit du code donc il faut peut être attendre la documentation sur le wiki 😉 :
=== Changement de runprebuild.bat pour Windows ===
'''key osGetLinkInventoryKey(integer linkNumber, string name, integer type);'''
* Git n'inclut plus par défaut System.Drawing.Common.dll  pour Windows.
* Maintenant, runprebuild.bat copie system_drawing également pour Windows [http://opensimulator.org/viewgit/?a=commit&p=opensim&h=4a8d4414bd158d9387dc4ada36f46d5440d9653f]


= Avertissement =
= Avertissement =
{{Avertissement_résumé|fond=pink |bord=red |message = Ce résumé existe pour orienter vos recherches. Des erreurs d'interprétation ne sont pas à exclure. Pour plus de précisions, veuillez vous référer aux sources ou vous adresser directement aux développeurs d'OpenSimulator en assistant aux [http://opensimulator.org/wiki/Office_hours réunions du mardi] ou  sur [http://opensimulator.org/wiki/IRC le canal IRC]. Je ne fais pas partie des développeurs, ne vous adressez pas à moi pour les joindre. Merci.😉}}
{{Avertissement_résumé|fond=pink |bord=red |message = Ce résumé existe pour orienter vos recherches. Des erreurs d'interprétation ne sont pas à exclure. Pour plus de précisions, veuillez vous référer aux sources ou vous adresser directement aux développeurs d'OpenSimulator en assistant aux [http://opensimulator.org/wiki/Office_hours réunions du mardi] ou  sur [http://opensimulator.org/wiki/IRC le canal IRC]. Je ne fais pas partie des développeurs, ne vous adressez pas à moi pour les joindre. Merci.😉}}
= Noyau=
= Scripts=
= Scripts=
===osGetLinkInventoryKey===
* Cette fonction est apparentée à la fonction LSL [https://wiki.secondlife.com/wiki/LlGetInventoryKey/fr llGetInventoryKey] qui renvoie l'UUID de l'objet de  l'inventaire à partir de son nom.
* Prototype de la fonction osGetLinkInventoryKey déduit du code donc il faut peut être attendre la documentation sur le wiki 😉 :
'''key osGetLinkInventoryKey(integer linkNumber, string name, integer type);'''
* Problème possible de la fonction SL llGetInventoryKey : plusieurs éléments de l'inventaire peuvent avoir le même nom mais, un type différent.
* La fonction a été renommée deux fois. Au départ, Jeff Kelley l'a nommée osGetLinkInventoryAssetKey. Ubit Umarov l'a renommée osGetLinkInventoryItemAssetKey. Finalement, il  l'a (re)renommée osGetLinkInventoryKey pour être cohérent avec le nom de la fonction llGetInventoryKey de LSL.
===Problème de nommage des fonctions OSSL ===
* Vincent Sylvester rappelle qu'Opensim doit suivre les spécifications de LSL au fur et à mesure qu'elles changent même si elles n'ont pas toujours de sens.
* Problème de nommage des les fonctions OSSL en cohérence avec le nommage des fonctions LSL.
* Solution envisagée par Vincent Sylvester : '''ajouter une surcharge de langage plus concise''' dans le shéma de nommage, en supprimants les préfixes "ll" et "os" dans les noms des fonctions et en  les remplaçants par autre chose avec un nom de fonction logique. Mais, il ne pense pas que cela puisse être adopté partout et que tout le monde arrive à se mettre d'accord sur un schéma. '''L'ancien code pourrait rester en place''', il suffirait d'ajouter un nouveau stub (morceau de code qui convertit les paramètres passés entre le client et le serveur  lors d'un appel de procédure à distance [https://fr.abcdef.wiki/wiki/Stub_%28distributed_computing%29] ) et de pointer vers l'ancien code.
= Base de données =
= Base de données =
===Système de migration ===
* '''Nouvelle avancée''' : la version de la table est déterminée à partir des fichiers de schéma de version et les migrations sont appliquées en conséquence. Vincent Sylvester pense que c'est la solution la plus susceptible de fonctionner.
* '''SQLite''' va nécessiter sa propre logique car il ne supporte pas information_schema [https://en.wikipedia.org/wiki/Information_schema](en).
===PostgreSQL ===
* '''Problème'''  : ne fonctionne pas localement pour le moment.  Il n'y a personne pour le maintenir pour OpenSim. Sous Windows, impossible d'utiliser le plugin d'authentification et le connecteur utilisé ne fonctionne pas  avec la dernière version sur GNU/Linux. Il serait bon de savoir si cela vaut la peine de le supporter à l'avenir , si quelqu'un l'utilise encore, ou si le temps ne serait pas mieux dépensé en améliorant MySQL/MariaDB.
*[http://opensimulator.org/mantis/view.php?id=8959  Mantis 0008959] : Postgresql ne se charge pas, quelque chose avec un certificatecallback
=== MySQL/MariaDB===
* Ubit Umarov va peut-être remplacer le connecteur actuel  par un connecteur opensource c'est à dire pas Oracle. Cela pourrait signifier la séparation MySQL/MariaDB ce qui ferait un moteur de base de données supplémentaire à maintenir. Le connecteur opensource (le nom ?) a été fait avec l'idée que MariaDB et MySQL d'Oracle sont différents.
* Pour l'essentiel, les deux  systèmes de gestion de base de données sont toujours similaires, mais les deux ajoutent leur propre syntaxe et leurs propres fonctions. Tant qu'OpenSim respecte les règles de base de SQL, il ne devrait pas y avoir de problème.
= Modules =
= Modules =
= Bugs =
=== Module de chat vocal ===
= Tests =
==== Chez Linden Lab ====
= Projets en cours / Infos=
* Linden Lab remplace Vivox par un service interne, construit autour des parties opensource de WEBRTC et de code propre à Linden Lab.  Ils ont rendu public toutes les librairies opensource qu'ils utilisent. Les solutions opensource utilisées n'ont que des versions pour Linux, il n'y a pas de version pour Windows.
* Ils ont trois types de serveurs audio : ceux de la voix spatiale par région, les serveurs "peer to peer" pour le chat, ceux des conversations pour le chat de groupe.
* Les serveurs "peer to peer" semblent être un protocole STUN [https://fr.wikipedia.org/wiki/Simple_Traversal_of_UDP_through_NATs] ce ne sont pas de vrais p2p pour protéger les IP des utilisateurs.
* Beq a partagé avec nous les informations qu'elle a obtenues de Linden Lab : [http://opensimulator.org/mantis/view.php?id=8899 Mantis 8899]
 
==== Côté viewer ====
Naturellement, le code du viewer  est sous licence GPL (logiciel libre / Richard Stallman)[https://fr.wikipedia.org/wiki/Licence_publique_g%C3%A9n%C3%A9rale_GNU], donc les développeurs de viewers tiers l'auront. Ubit Umarov va attendre que les viewers opensim implémentent le nouveau chat vocal.
==== Côté serveur OpenSim ====
* Pour OpenSim, côté serveur, il faut créer un nouveau module, pour la partie proxy. Le backend pourrait être difficile pour la partie audio spatiale car il n'est pas ouvert pour le moment. Le codec spatial pour le serveur audio est propre à Linden Lab. Ils sont encore en train de réfléchir s'ils vont le publier en opensource ou le garder fermé.
* Autre problème à résoudre : comment faire fonctionner le codec avec le viewer une fois connecté.
* Le coût de bons serveurs à faible latence sera un problème. Les serveurs en cloud sont un exemple d'utilisation pour les serveurs vocaux. La charge est imprévisible le nombre de serveurs nécessaires peut augmenter uniquement pendant les heures de pointe.
* Ubit Umarov  pense que même si OpenSim arrive à faire fonctionner la voice, les performances de Vivox ne pourront pas être atteintes.
 
==== Sécurité ====
* Autre question : faut-il  mettre le serveur WEBRTC dans OpenSim ou le garder comme un service à part entière.  Il existe  des arguments pour chaque solution.
* WEBRTC sans SSL ajouterait des vulnérabilités c'est pourquoi  Vincent Sylvester s'orienterait préférentiellement vers une approche de service autonome plutôt que de choisir d'intégrer le service à OpenSim. Ce serait un service par proxy (intermédiaire) sécurisé correctement.
* Si OpenSim fonctionne comme un proxy pour la voix, c'est plus sûr et cela permet des personnalisations poussées. Le client ne reçoit que l'IP d'OpenSim et pas les autres IP.
 
==== Voir aussi ====
* [[Réunion_du_19-03-2024#Chat_vocal |Même sujet développé pendant la réunion du 19 mars 2024]]
=Informations=
* Changement d'heure la semaine prochaine sur l'Union Européenne.
= Viewers=
= Viewers=
=== Sharpview ===
=== Sharpview ===
* Il y a encore '''quelques problèmes de traversé de frontière de région avec un véhicule ''' sur OpenSim. Parfois, des parties du véhicule disparaissent jusqu'au prochain croisement de régions, certaines mises à jour d'objets sont perdues.
* Il y a encore '''quelques problèmes de traversé de frontière de région avec un véhicule ''' sur OpenSim. Parfois, des parties du véhicule disparaissent jusqu'au prochain croisement de régions, certaines mises à jour d'objets sont perdues.
* Sharpview effectue une reconstruction complète chaque fois qu'un objet traverse des régions alors que Firestorm  doit recopier les objets à partir de la simulation quittée. Joe Magarac signal que Sharview fonctionne actuellement avec des données provisoires, elles seront bientôt plus fournies. Avec une bonne collecte de données du côté du serveur et utilisateur, ''' les problèmes devraient être résolus ''' dans ce domaine. Il aimerait  aller jusqu'au bout de cette démarche.
* Sharpview effectue une reconstruction complète chaque fois qu'un objet traverse des régions alors que Firestorm  doit recopier les objets à partir de la simulation quittée. Joe Magarac signal que Sharpview fonctionne actuellement avec des données provisoires, elles seront bientôt plus fournies. Avec une bonne collecte de données du côté du serveur et utilisateur, ''' les problèmes devraient être résolus ''' dans ce domaine. Il aimerait  aller jusqu'au bout de cette démarche.
* Si les régions ne sont pas sur le même serveur, '''la latence accentuent les problèmes'''. En utilisant un délai réseau sur un système GNU/Linux pourrait simuler cet état. Dans Sharpview l'échange permet au maximum 5 secondes d'échange de connexion et certains serveurs sont très lents.
* Si les régions ne sont pas sur le même serveur, '''la latence accentuent les problèmes'''. En utilisant un délai réseau sur un système GNU/Linux pourrait simuler cet état. Sharpview permet au maximum 5 secondes d'échange de connexion et certains serveurs sont très lents.
* '''Le nouveau Sharpview devrait sortir la semaine prochaine''' et dvrait permettre de s'asseoir. D'autres personnes pourront le tester.
* '''Le nouveau Sharpview devrait sortir la semaine prochaine''' et devrait permettre de s'asseoir. D'autres personnes pourront le tester.


= Source=
= Source=
http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2024-03-26
http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2024-03-26

Dernière version du 27 mars 2024 à 14:55

Changements du code de la semaine

osGetLinkInventoryKey

Changement de runprebuild.bat pour Windows

  • Git n'inclut plus par défaut System.Drawing.Common.dll pour Windows.
  • Maintenant, runprebuild.bat copie system_drawing également pour Windows [4]

Avertissement

Attention : Ce résumé existe pour orienter vos recherches. Des erreurs d'interprétation ne sont pas à exclure. Pour plus de précisions, veuillez vous référer aux sources ou vous adresser directement aux développeurs d'OpenSimulator en assistant aux réunions du mardi ou sur le canal IRC. Je ne fais pas partie des développeurs, ne vous adressez pas à moi pour les joindre. Merci.😉


Scripts

osGetLinkInventoryKey

  • Cette fonction est apparentée à la fonction LSL llGetInventoryKey qui renvoie l'UUID de l'objet de l'inventaire à partir de son nom.
  • Prototype de la fonction osGetLinkInventoryKey déduit du code donc il faut peut être attendre la documentation sur le wiki 😉 :
key osGetLinkInventoryKey(integer linkNumber, string name, integer type);
  • Problème possible de la fonction SL llGetInventoryKey : plusieurs éléments de l'inventaire peuvent avoir le même nom mais, un type différent.
  • La fonction a été renommée deux fois. Au départ, Jeff Kelley l'a nommée osGetLinkInventoryAssetKey. Ubit Umarov l'a renommée osGetLinkInventoryItemAssetKey. Finalement, il l'a (re)renommée osGetLinkInventoryKey pour être cohérent avec le nom de la fonction llGetInventoryKey de LSL.

Problème de nommage des fonctions OSSL

  • Vincent Sylvester rappelle qu'Opensim doit suivre les spécifications de LSL au fur et à mesure qu'elles changent même si elles n'ont pas toujours de sens.
  • Problème de nommage des les fonctions OSSL en cohérence avec le nommage des fonctions LSL.
  • Solution envisagée par Vincent Sylvester : ajouter une surcharge de langage plus concise dans le shéma de nommage, en supprimants les préfixes "ll" et "os" dans les noms des fonctions et en les remplaçants par autre chose avec un nom de fonction logique. Mais, il ne pense pas que cela puisse être adopté partout et que tout le monde arrive à se mettre d'accord sur un schéma. L'ancien code pourrait rester en place, il suffirait d'ajouter un nouveau stub (morceau de code qui convertit les paramètres passés entre le client et le serveur lors d'un appel de procédure à distance [5] ) et de pointer vers l'ancien code.

Base de données

Système de migration

  • Nouvelle avancée : la version de la table est déterminée à partir des fichiers de schéma de version et les migrations sont appliquées en conséquence. Vincent Sylvester pense que c'est la solution la plus susceptible de fonctionner.
  • SQLite va nécessiter sa propre logique car il ne supporte pas information_schema [6](en).

PostgreSQL

  • Problème  : ne fonctionne pas localement pour le moment. Il n'y a personne pour le maintenir pour OpenSim. Sous Windows, impossible d'utiliser le plugin d'authentification et le connecteur utilisé ne fonctionne pas avec la dernière version sur GNU/Linux. Il serait bon de savoir si cela vaut la peine de le supporter à l'avenir , si quelqu'un l'utilise encore, ou si le temps ne serait pas mieux dépensé en améliorant MySQL/MariaDB.
  • Mantis 0008959 : Postgresql ne se charge pas, quelque chose avec un certificatecallback

MySQL/MariaDB

  • Ubit Umarov va peut-être remplacer le connecteur actuel par un connecteur opensource c'est à dire pas Oracle. Cela pourrait signifier la séparation MySQL/MariaDB ce qui ferait un moteur de base de données supplémentaire à maintenir. Le connecteur opensource (le nom ?) a été fait avec l'idée que MariaDB et MySQL d'Oracle sont différents.
  • Pour l'essentiel, les deux systèmes de gestion de base de données sont toujours similaires, mais les deux ajoutent leur propre syntaxe et leurs propres fonctions. Tant qu'OpenSim respecte les règles de base de SQL, il ne devrait pas y avoir de problème.

Modules

Module de chat vocal

Chez Linden Lab

  • Linden Lab remplace Vivox par un service interne, construit autour des parties opensource de WEBRTC et de code propre à Linden Lab. Ils ont rendu public toutes les librairies opensource qu'ils utilisent. Les solutions opensource utilisées n'ont que des versions pour Linux, il n'y a pas de version pour Windows.
  • Ils ont trois types de serveurs audio : ceux de la voix spatiale par région, les serveurs "peer to peer" pour le chat, ceux des conversations pour le chat de groupe.
  • Les serveurs "peer to peer" semblent être un protocole STUN [7] ce ne sont pas de vrais p2p pour protéger les IP des utilisateurs.
  • Beq a partagé avec nous les informations qu'elle a obtenues de Linden Lab : Mantis 8899

Côté viewer

Naturellement, le code du viewer est sous licence GPL (logiciel libre / Richard Stallman)[8], donc les développeurs de viewers tiers l'auront. Ubit Umarov va attendre que les viewers opensim implémentent le nouveau chat vocal.

Côté serveur OpenSim

  • Pour OpenSim, côté serveur, il faut créer un nouveau module, pour la partie proxy. Le backend pourrait être difficile pour la partie audio spatiale car il n'est pas ouvert pour le moment. Le codec spatial pour le serveur audio est propre à Linden Lab. Ils sont encore en train de réfléchir s'ils vont le publier en opensource ou le garder fermé.
  • Autre problème à résoudre : comment faire fonctionner le codec avec le viewer une fois connecté.
  • Le coût de bons serveurs à faible latence sera un problème. Les serveurs en cloud sont un exemple d'utilisation pour les serveurs vocaux. La charge est imprévisible le nombre de serveurs nécessaires peut augmenter uniquement pendant les heures de pointe.
  • Ubit Umarov pense que même si OpenSim arrive à faire fonctionner la voice, les performances de Vivox ne pourront pas être atteintes.

Sécurité

  • Autre question : faut-il mettre le serveur WEBRTC dans OpenSim ou le garder comme un service à part entière. Il existe des arguments pour chaque solution.
  • WEBRTC sans SSL ajouterait des vulnérabilités c'est pourquoi Vincent Sylvester s'orienterait préférentiellement vers une approche de service autonome plutôt que de choisir d'intégrer le service à OpenSim. Ce serait un service par proxy (intermédiaire) sécurisé correctement.
  • Si OpenSim fonctionne comme un proxy pour la voix, c'est plus sûr et cela permet des personnalisations poussées. Le client ne reçoit que l'IP d'OpenSim et pas les autres IP.

Voir aussi

Informations

  • Changement d'heure la semaine prochaine sur l'Union Européenne.

Viewers

Sharpview

  • Il y a encore quelques problèmes de traversé de frontière de région avec un véhicule sur OpenSim. Parfois, des parties du véhicule disparaissent jusqu'au prochain croisement de régions, certaines mises à jour d'objets sont perdues.
  • Sharpview effectue une reconstruction complète chaque fois qu'un objet traverse des régions alors que Firestorm doit recopier les objets à partir de la simulation quittée. Joe Magarac signal que Sharpview fonctionne actuellement avec des données provisoires, elles seront bientôt plus fournies. Avec une bonne collecte de données du côté du serveur et utilisateur, les problèmes devraient être résolus dans ce domaine. Il aimerait aller jusqu'au bout de cette démarche.
  • Si les régions ne sont pas sur le même serveur, la latence accentuent les problèmes. En utilisant un délai réseau sur un système GNU/Linux pourrait simuler cet état. Sharpview permet au maximum 5 secondes d'échange de connexion et certains serveurs sont très lents.
  • Le nouveau Sharpview devrait sortir la semaine prochaine et devrait permettre de s'asseoir. D'autres personnes pourront le tester.

Source

http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2024-03-26