MaDViWorld (Massively Distributed Virtual Worlds) est un projet original développé au sein du groupe "Software Engineering" de l’Université de Fribourg. Il représente une architecture logicielle, un "framework", qui supporte des systèmes de mondes virtuels massivement répartis.
Ce "framework" est basé sur un modèle client-serveur, à la différence qu’il ne comporte aucun serveur centralisé, puisque le côté serveur peut être distribué sur plusieurs machines. C’est le principal argument de cette approche.
Un monde virtuel se compose de salles et d’objets actifs, distribués sur plusieurs machines qui exécutent des applications "serveur".
Les salles, peuvent être reliées entre elles, par de simples portes, et peuvent contenir plusieurs objets, mais elles ne peuvent, en aucun cas, être distribuées sur plusieurs machines, car elle représentent l’unité de décomposition atomique côté serveur.
Quant aux avatars, représentés par les applications "client", permettent la visite des salles ainsi que l’interaction entre les objets actifs et les utilisateurs.
Le "framework" MaDViWorld est implémenté en Java (Sun™ JDK 1.4) et est basé sur les technologies RMI (Remote Method Invocation) et JINI (Extensible Remote Invocation).
Le travail effectué de ce mémoire de master est décomposé en deux grandes parties:
Tout d’abord, il a été impératif de se familiariser avec le "framework", afin de comprendre ses concepts et la manière dont il fonctionne, pour ensuite pouvoir commencer l’implémentation d’un objet original et surtout utile dans le contexte général d'un monde virtuel. Dans le cadre de ce travail, l’objet en question est un "chat", plus souvent connu sous le nom de "centre de discussion", qui permet à plusieurs utilisateurs de tisser des liens, non pas par la parole, mais par le dialogue textuel synchrone, contrairement au "email" qui se déroule de manière asynchrone. La conception de l'objet chat a été réalisée avec beaucoup de soin afin de permettre à des avatars partageant une même salle d'interagir de manière structurée et conviviale.
Cette partie du travail permet de faire le lien entre le "framework" et la technologie XML (eXtended Markup Language). Le but de cette partie, est de créer un utilitaire, capable de créer un monde – distribution des pièces, portes entre les pièces et répartition des objes - à partir d'un objet "world", défini en XML. En d'autres termes, de pouvoir créer un monde depuis un fichier XML, généré, soit manuellement ou soit par un utilitaire graphique développé en parallèle par un autre étudiant, en laissant de côté la création manuelle de ce monde, comme dans les premières versions du projet "MaDViWorld".