Comportement lors de l'exécution
Le sous-système de courtier d'événements du portail offre un support pour la communication entre portlets, avec des notifications actives via des événements de portlets ou le modèle de programmation coopératif.
Le courtier d'événements se base sur un modèle de communication de publication/abonnement associé : les portlets participants déclarent les messages ou les types de données qu'ils peuvent publier ou consommer, sans besoin de connaître la structure de communication réelle.
La distribution des messages entre des portlets est déterminée par les connexions de portlets définies dans le cadre de l'édition de la page. Les connexions de portlets relient la sortie définie d'un portlet dans une page à la sortie définie d'un autre portlet dans la même page ou dans une autre.
L'étape de connexion est séparée du développement et du déploiement. Ceci permet un développement indépendant des portlets source et cible, tant que ces portlets utilisent des types de données et des sémantiques en commun pour l'échange d'informations. Les portlets peuvent fonctionner de façon autonome, et quand des portlets partenaires pour la communication sont ajoutés en modifiant des pages, ils peuvent échanger des informations et réagir de façon coordonnée, ce qui améliore l'expérience de l'utilisateur. A l'inverse, lorsque des portlets sont supprimés, ceux qui restent continuent à fonctionner correctement.
Phases d'action/événement et de rendu
Le cycle de traitement d'une demande de portail comporte une phase d'action/événement qui traite l'entrée utilisateur, et une phase de rendu qui génère la sortie du marquage. L'activité du sous-système de courtier d'événements se produit lors de la phase d'action/événement. Le traitement des événements commence généralement par une action du portlet codée dans l'URL de demande en cours. Par exemple, il peut s'agir d'une URL d'action de portlet ou d'une URL générée par une menu click-to-action. Pour des demandes qui n'ont pas besoin de l'activité du portlet et ne font que produire la sortie, la phase d'action/événement peut être totalement ignorée.
Si la demande indique une action de portlet, celle-ci sera exécutée et pourra publier elle-même une sortie, soit en tant qu'événement JSR 286, soit comme propriété de portlet coopératif. Si cette sortie est liée à celle d'un ou plusieurs autres portlets, un appel des méthodes de traitement de ces portlets est placé dans la file d'attente d'événements. Lorsque la première action de portlet s'achève, l'événement suivant est pris de la file d'attente et le portlet cible est appelé. Au cours du traitement des événements, le portlet cible peut déclencher d'autres appels de communication qui sont alors également mis file en attente. Ce processus se répète tant que la file d'attente n'est pas vide.
- Transfert de l'ID de commande au portlet Détails de la commande.
- Cette première étape lance aussi le transfert de l'ID de suivi pour la commande au portlet Détails du suivi.
- Le portlet Détails du suivi déclenche à son tour le transfert au portlet Détails du client du nom du client associé à la commande.
- Par conséquent, les trois portlets affichent des informations appartenant à une même commande.