Suite du tutorial
- AFCS – Tutorial Introduction à AFCS avec Flex (1)
- AFCS – Tutorial Introduction à AFCS avec Flex (2 – Préparer la room et Flex Builder)
- AFCS – Tutorial Introduction à AFCS avec Flex (3 – Les composants de base Pods)
- AFCS – Tutorial Introduction à AFCS avec Flex (4 – Authentification et Session)
- AFCS – Tutorial Introduction à AFCS avec Flex (5 – Types de Droits Utilisateur)
- AFCS – Tutorial Introduction à AFCS avec Flex (6 – Architecture Globale d'AFCS)
- AFCS – Tutorial Introduction à AFCS avec Flex (7 – Utilisation du Shared Manager UserManager)
- AFCS – Tutorial Introduction à AFCS avec Flex (8 – Données partagées et CollectionNodes)
- AFCS – Tutorial Introduction à AFCS avec Flex (9 – Exemple Simple de CollectionNode)
- AFCS – Tutorial Introduction à AFCS avec Flex (10 – Exemple Simple de SharedProperty)
Traduction de Introduction to Adobe Flash Collaborative Services par Romin Irani.
Dans ce tutorial Adobe Flex avec AFCS, on va voir comment créer une application multi-utilisateur dans laquelle les participants peuvent chercher ensemble une liste de restaurant dans une certaine ville filtré par type de cuisine. N'importe quel utilisateur peut donc mettre à jour la ville et le type de cuisine. La donnée sera partagée entre tous les participants et les résultats de recherches seront les mêmes pour tous les participants pour une synchronisation totale.
Voyons tout d'abord comment se présente l'application pour un utilisateur seul. Une fois enregistré, l'interface se présente comme suit. On a deux Pods, un Pod Roster et un Pod Chat qui sont des Pods standard d'AFCS. L'utilisateur peut entrer une ville et un type de cuisine et ensuite cliquer sur Search. Cela va récupérer tous les restaurants servant ce type de cuisine dans la ville sélectionnée. Les résultats de recherches sont obtenus grâce au service web de Yahoo! et l'intégration se fait via Yahoo Query Language.

Voici un screenshot de l'application sur lequel on peut voir une liste de restaurants servant de la cuisine Chinoise, récupérée depuis Yahoo!. L'utilisateur peut cliquer sur n'importe quel de ces enregistrement pour afficher plus de détail dans le panneau de droite. Il y a aussi 2 liens par lesquels vous pouvez voir la carte Google Maps et un lien vers le site internet le cas échéant.

Si un autre utilisateur s'enregistre sur l'application, il va récupérer la dernière ville entrée, le dernier type de cuisine entré ainsi que les derniers résultats de recherche.
Suite du tutorial
- AFCS – Tutorial Introduction à AFCS avec Flex (1)
- AFCS – Tutorial Introduction à AFCS avec Flex (2 – Préparer la room et Flex Builder)
- AFCS – Tutorial Introduction à AFCS avec Flex (3 – Les composants de base Pods)
- AFCS – Tutorial Introduction à AFCS avec Flex (4 – Authentification et Session)
- AFCS – Tutorial Introduction à AFCS avec Flex (5 – Types de Droits Utilisateur)
- AFCS – Tutorial Introduction à AFCS avec Flex (6 – Architecture Globale d'AFCS)
- AFCS – Tutorial Introduction à AFCS avec Flex (7 – Utilisation du Shared Manager UserManager)
- AFCS – Tutorial Introduction à AFCS avec Flex (8 – Données partagées et CollectionNodes)
Traduction de Introduction to Adobe Flash Collaborative Services par Romin Irani.
Dans le tutorial flex précédent, on a vu comment étaient gérés les CollectionNode, ces entités qui servent à partager de l'information entre les utilisateurs.
Cette fois, on va voir un exemple de création et d'utilisation de CollectionNode. Cet exemple est une application de Chat simplifiée. Cette application va permettre aux utilisateurs de publier des messages (une URL de site internet à partager) vers un CollectionNode. L'application en elle-même est aussi inscrite au CollectionNode est sera ainsi informée lorsqu'un message est publié. On va ensuite récupérer ce message et l'ajouter à la zone de texte (TextArea).
Un point sur les Permissions (droits utilisateur)
Pour pouvoir lancer les exemples de ce tuto flex, souvenez-vous que vous devez vous enregistrer d'abord comme utilisateur OWNER, c'est-à-dire grâce à votre compte AFCS. La première fois que l'application est lancée, il n'y a pas de donnée. Lors de l'envoi du premier message, le CollectionNode doit être crée. Cependant, il faut prendre en comptes les permissions (voir le tuto flex sur les permission AFCS), car seuls les utilisateurs ayant le rôle OWNER peuvent créer des CollectionNode. Une fois que le CollectionNode est crée, les invités peuvent s'enregistrer sans problème.
Au final, il faut se souvenir que dans la plupart des situations, un Admin va devoir entrer dans la room et mettre en place tous les aspects configuration dont les CollectionNodes, etc. Si vous ne le faîtes pas, et que des invités essaient d'entrer pour la première fois, ils auront une Security Exception.
Jetons maintenant un oeil à l'application finale lors de son utilisation. Si vous la lancez pour la première fois, loggez vous avec votre compte AFCS. Une fois enregistré, vous verrez l'application vierge comme ceci:

A ce moment-là, si vous regarder dans la Developer Console, vous trouverez un nouveau CollectionNode nommé "chatMessageList" comme ceci:

Maintenant, rentrez une URL dans votre application (ou bien n'importe quel texte) et cliquez sur "Envoyer". Cela va publier l'item sur la CollectionNode "chatMessageList". Puisque l'application est inscrite sur ce Node, elle va recevoir un évènement (Event) qui va contenir le message que l'on a posté. Cela va simplement mettre à jour la zone de texte comme ceci:

Suite du tutorial
- AFCS – Tutorial Introduction à AFCS avec Flex (1)
- AFCS – Tutorial Introduction à AFCS avec Flex (2 – Préparer la room et Flex Builder)
- AFCS – Tutorial Introduction à AFCS avec Flex (3 – Les composants de base Pods)
- AFCS – Tutorial Introduction à AFCS avec Flex (4 – Authentification et Session)
- AFCS – Tutorial Introduction à AFCS avec Flex (5 – Types de Droits Utilisateur)
- AFCS – Tutorial Introduction à AFCS avec Flex (6 – Architecture Globale d'AFCS)
- AFCS – Tutorial Introduction à AFCS avec Flex (7 – Utilisation du Shared Manager UserManager)
Traduction de Introduction to Adobe Flash Collaborative Services par Romin Irani.
Dans les prochains tutoriaux Flex, on va se plonger dans le système de partage de données utilisateur apporté par AFCS puisque c'est la clé d'une application collaborative.
Regardons tout d'abord plusieurs concepts qui se cachent derrière les composants de partage de données (AFCS Data Sharing components):
- Pour envoyer et recevoir des messages, on utilise une méthode de Publish/Subscrire (publication / inscription). Il est donc naturel de penser à publier /s'inscrire vers une destination.
- Chaque room peut avoir une ou plusieurs destinations
- La destination est gérées par les permissions donc vous devez être au moins un utilisateur PUBLISHER pour publier des messages dans une room. Si vous avez un role VIEWER, vous pouvez vous inscrire aux messages. Un utilisateur OWNER peut même configurer ces destinations
- En termes AFCS, les destinations sont appelées Collection Node. Un CollectionNode contient plusieurs "node" (noeuds). Un CollectionNode peut être pensé comme un conteneur pour une certaine donnée partagée. Il peut avoir plusieurs "nodes" et chaque node peut contenir un ou plusieurs éléments de type Message.
- La donnée que vous envoyez/recevez depuis une destination est connue comme MessageItem. En d'autres termes, un MessageItem est le type de donnée le moins complexe. Les PUBLISHER peuvent publier un MessageItem via la méthode publishItem() d'un CollectionNode. Un inscrit (subscriber) peut recevoir des MessageItem via l'évènement CollectionNodeEvent.ITEM_RECEIVE.
Suite du tutorial
- AFCS – Tutorial Introduction à AFCS avec Flex (1)
- AFCS – Tutorial Introduction à AFCS avec Flex (2 – Préparer la room et Flex Builder)
- AFCS – Tutorial Introduction à AFCS avec Flex (3 – Les composants de base Pods)
- AFCS – Tutorial Introduction à AFCS avec Flex (4 – Authentification et Session)
- AFCS – Tutorial Introduction à AFCS avec Flex (5 – Types de Droits Utilisateur)
Traduction de Introduction to Adobe Flash Collaborative Services par Romin Irani.
Maintenant que vous avez crée une application AFCS simple, il est temps de rentrer dans le détail, et de découvrir les fonctionnalités d'AFCS qui vous permettront de développer des applications collaboratives.
Voici tout d'abord un schéma qui vient de la documentation AFCS. On ne va pas couvrir chaque aspect en détail mais je vais donner une vue d'ensemble pour que vous ayez toutes les pièces en main.

Session and Authentication
Cette couche est responsable de l'authentification utilisateur et de l'établissement des sessions. C'est ici le premier pas dans l'utilisation des services AFCS. Notez que l'on a déjà utilisé la classe Authentication via la classe com.adobe.rtc.authentication.AdobeHSAuthenticator. Ce qui concerne les sessions est présent dans le package com.adobe.rtc.session.
Il y a aussi deux classes primordiales: ConnectSessionContainer que l'on a déjà vu et la classe ConnectSession. Vous pourriez utiliser la classe ConnectSession au lieu de ConnectSessionContainer, la principale différence étant que ConnectSession n'est pas basée sur UIComponent (impossible de l'ajouter à la liste d'affichage donc).
Shared Managers
Les Shared Managers dans AFCS sont des éléments-clé de l'architecture AFCS. Ce sont des classes de type Singleton qui vous donnent la possibilité de gérer les Rooms, User (utilisateurs), Stream (data) et fichiers de votre application grâce à du code. Cela veut dire que vous pouvez faire tout ce qui est possible par l'interface d'administration, avec du code.
Les classes de la catégorie Shared Manager sont présentes dans le package com.adobe.rtc.sharedManagers. Toutes les instances des managers sont disponibles à travers l'instance de session de votre application.