Objectifs :

  1. Développer un interface qui permette et une communication littérale (un chat) et surtout un interface type tableau blanc.
  2. Ce tableau doit permettre de dessiner free-hand et linéairement. De plus, il doit permettre d'écrire des commentaires.
  3. Cet interface doit être aussi synchrone que possible
  4. Dernier point, cet interface doit permettre un travail asynchrone, c'est-à-dire qu'il doit conserver le travail effectué et le rétribuer lors d'une session ultérieure.

Résumé de la production :

J'ai d'abord cherché pendant un bon moment les bons codes/librairies pouvant me permettre de créer un whiteboard de base, auquel je rajouterais des outils de dessins. Je suis tombé au travers de mes recherches sur un outil très classe de partage de Map Google. Je m'en suis d'abord inspiré car il intégrait un outil de dessin simple à l'intérieur.

Cette étape ne fut pas la plus simple, car je devais installé un network daemon, ce qui ne m'est pas permis via mon prestataire d'espace web mutualisé.. J'ai donc chercher une solution à un serveur web alternatif et suis tombé naturellement (parce que l'appli Google Map à été porté dessus) sur Cocomo (made by Adobe).

Cocomo est un service génial qui fait office de network daemon pour toute appli made in Adobe. Il faut simplement s'inscrire en tant que développeur pour profiter d'une infinité de "room" et exploiter leurs fonctions collaboratives. Il s'agit également d'un plugin à Flex Builder 3 qui permet d'utiliser toute une série de components déjà créés spécifiquement pour ce service. Juste génial.

J'ai donc en grande partie récupéré du matériel déjà fait que j'ai appliqué à ma sauce. Transformé le chat, planqué le Google Maps (dont j'ai conservé/modifié le code car il pourrait resservir dans un second/troisième temps), bref pris en main les capacités qu'offre le SDK Cocomo. Il me reste encore à bien intégrer un système de microphone partagé, de webcam, d'upload d'images et d'exportation finale du whiteboard sous un format image standard. Mais le résultat est prometteur.

Bref, un outil que vous aurez l'occasion de revoir.... !


Difficultés, auto-évaluation, remarques :

Bon, il me reste des petits conflits de synchronisation au travers de certaines commandes de visibilité (Show/Hide buttons), je dois investiguer un peu plus, d'après moi, il manque un lien symbolique entre certains objets.

Ce qui est sûr, c'est qu'il me reste énormément à apprendre avant de bien maîtriser cet(ces) outil(s) car il offre d'énormes possibilités.

J'avais intégré du code qui me permettais de nommer directement les participants avec leur adresse IP. Mais pour ce faire, j'utilisais du script sur un autre serveur et au travers du passage développement==>production (online), j'ai eu des incompatibilités cross-domain. Je devrais donc également travailler cette complication dans un second tempo.

Conclusion, je suis vraiment satisfait de cette application, ce dernier m'a permis de prendre en main la librairie Cocomo que je réutiliserais sûrement dans des projets postérieurs, notamment pour la création de salle de chat à la volée via ttraitement inter-serveurs, etc.

Seul hic peut-être (parce qu'il faut en mettre un), c'est que cette librairies nous rend quand même assez dépendant de ce que Adobe veut bien mettre à notre disposition en tant que bande passante et d'accès à la modification des composantes.


Continuité :

Maintenant que je dispose d'une bonne architecture pour fabriquer des outils relationnels (a)synchrones, je vais m'efforcer de comprendre les petits bugs que je mets ici et là pour adapter cet outil à des néophytes. J'ai ensuite l'intention de récupérer ce travail et de le développer plus avant dans un système bien plus complexe qui devra créer une salle de chat à la volée en plus de récupérer les salles déjà créer entre différents utilisateurs. Ce travail pourra se faire à l'aide de communication entre différents serveurs configurés à cet effet. Donc, à suivre...


Ressources utilisées, bibliographie :

API de Adobe Cocomo

Cocomo Developer Portal

Site qui m'a mis sur la touche de Cocomo

Collaborative Google Maps in Flex using Cocomo (blog)

Tutoriel pour créer un chat (ancienne méthode)

Source d'une appli web pour traiter l'IP

API de Google Maps

Vous pouvez également consulter le code utilisé en faisant un clic droit sur le flash / Voir la source.