Accessibilité

Article DevNet

L'architecture du serveur

Fortress est un serveur XMLSocket comprenant des applications et structures intégrées prévues pour faciliter vos efforts de développement d’applications en ligne. Ce serveur fournit :

Macromedia Flash interagit avec Fortress en communiquant avec un jeu d’applications exécutées sur le serveur, tel qu’illustré dans la Figure 5.


Figure 5: applications de Fortress

Fortress comprend quatre applications intégrées à la base de vos efforts de développement

System
Gère le cycle de vie d’une session client et fournit les fonctions d’ouverture de session, de fermeture de session et d’autres fonctions au niveau système

Room
Collaboration en temps réel entre groupes de participants

InstaMatch
Pairage automatique des utilisateurs des salles

Messenger
Messagerie instantanée et listes d’amis

Messages XML

Les conversations entre Macromedia Flash et Fortress sont établies à l’aide de messages unidirectionnels et bidirectionnels. Dans un échange bidirectionnel, l’expéditeur (généralement l’animation Flash) souhaite que le destinataire (généralement le serveur Fortress) fasse quelque chose, et le destinataire répond une fois cette action réalisée (ou impossible, le cas échéant). Par exemple, le client peut demander l’ouverture d’une session sur Fortress avec le message System.Login, Fortress répondant avec System.LoginAccepted ou System.LoginRejected. Les messages unidirectionnels sont envoyés pour informer le destinataire d’un événement d’intérêt. Par exemple, Fortress peut informer toutes les animations Macromedia Flash d’une salle de l’arrivée d’un nouvel utilisateur à l’aide d’un message Room.ParticipantEntered.

Tous les messages échangés entre Macromedia Flash et Fortress sont des documents XML. La balise du document XML indique au destinataire la façon de traiter le message. Chaque application Fortress comprend un ensemble de balises formant son vocabulaire. Ces balises peuvent être consultées et permettent de facilement comprendre l’objectif d’un message. Par exemple :

System.Login
Indique que le client souhaite ouvrir une session

System.Notify
nforme les clients de l’imminence d’une action au niveau du système

Room.Enter
Indique que le client souhaite entrer dans une salle

Room.ParticipantEntered
Informe les participants de l’entrée d’un nouvel utilisateur

Messenger.Note
Transfert un message instantané d’un client à un autre

L’ensemble des messages de chaque application Fortress peut être consulté dans la documentation de Fortress.

Application Room

L’application Room de Fortress est une structure de collaboration en temps réel entre groupes d’utilisateurs. Une « salle » (ou « room ») est une représentation côté serveur qui :

Un site Fortress peut compter n’importe quel nombre de salles et de types de salles : salles de conférence, salles de ventes aux enchères, salles de jeux, salons publics et privés, etc.

L’application Room fournit les messages standard supportant la navigation entre les salles et la participation à ces salles. L’application Room permet à une animation Macromedia Flash:

La Figure 6 présente la relation entre plusieurs utilisateurs et les salles d’un site Fortress. Les utilisateurs peuvent passer d’une salle à l’autre et accéder aux salles lorsqu’ils y sont autorisés. Les utilisateurs peuvent se trouver dans plusieurs salles en même temps.


Figure 6: application Room de Fortress

Activités de l’application Room

Le comportement d’une salle est déterminé par l’occurrence « Activity » qui y est installée. Les animations Macromedia Flash peuvent accéder à cette occurrence par le biais d’un message Room.Action. Les messages Room.Action sont automatiquement transférés à l’occurrence Activity en vue d’un traitement, la salle elle-même ne traitant par les messages Room.Action. L’occurrence Activity la plus simple, un réflecteur, retransmet simplement tous les messages qu’elle reçoit des participants. La Figure 7 présente ce flux de communication.


Figure 7: exemple de l’activité du réflecteur

Les activités peuvent être personnalisées afin d’obtenir toute une panoplie de fonctions. Par exemple: