Câbles de portlets

Les connexions de portlets servent à diriger le flux d'informations entre des portlets qui communiquent à l'aide d'événements de portlets JSR 286 ou de l'API de portlets coopératifs WebSphere Portal.

Une connexion connecte un événement de publication JSR 286 ou une propriété de sortie d'un portlet coopératif à un événement de traitement JSR 286 ou une action de portlet coopératif d'un autre portlet. Lorsque le portlet source lance un événement ou génère une propriété et que l'événement source ou la propriété possèdent des connexions sortantes, les informations sont propagées vers le ou les portlets cible. En parallèle, le code du gestionnaire correspondant processAction ou processEvent est appelé. A l'inverse, si un événement est généré mais n'est connecté à aucune cible, il est simplement supprimé.

La création de connexions fait partie de l'administration des pages et demande des droits d'accès appropriés. Elle est distincte du développement et du déploiement de portlets, donc le développeur de portlets n'a pas besoin de connaître la structure réelle de la communication entre les portlets. Les portlets qui communiquent peuvent être développés de façon indépendante des autres tant qu'ils acceptent le même type de données et la même sémantique pour l'échange de données. Les connexions entre les portlets sont généralement créées à l'aide de l'utilitaire de connexion de portlets. Il est disponible dans un onglet de l'interface utilisateur Editer la page.

Création de connexions

Vous pouvez uniquement créer des connexions entre des portlets du même type d'API, basés sur une API standard ou HCL. Pour la communication entre les portlets standard et HCL, vous devez procéder d'une autre façon, par exemple avec des liaisons entre les pages. Toutefois, vous pouvez créer des connexions entre des portlets JSR 168 et JSR 286, ce qui vous permet de mettre à niveau l'API de portlets collaboratifs de propriété avec les nouveaux événements de portlets standard.

Pour créer une connexion entre deux portlets, la sortie que le portlet source déclare doit correspondre à l'entrée que le portlet cible déclare. Cette correspondance peut être à l'un des deux niveaux suivants :
  1. Le nom XML qui décrit le contenu sémantique des données :
    1. Pour les événements JSR 286, il est représenté par les noms d'événements déclarés dans portlet.xml.
    2. Pour les portlets collaboratifs, il est représenté par le nom XML du type de propriété déclaré dans le descripteur WSDL du portlet collaboratif.
  2. La représentation de la classe Java des données data.

Par défaut, l'outil de connexion requiert une correspondance du nom XML sémantique. Pour éviter cette obligation pour un espace de nom global coordonné, les portlets JSR 286 peuvent déclarer plusieurs noms d'alias pour un événement. Cela permet à un portlet de se connecter à plusieurs autres utilisant des conventions d'attribution de noms distinctes. Si le nom XML sémantique dans la section portlet de portlet.xml se termine par un point (.), il est considéré comme un caractère générique. Vous pouvez l'utiliser pour qu'il corresponde aux autres noms XML sémantiques définis dans la section relative à l'application de portlet du fichier portlet.xml et qui sont dotés du même préfixe. Ce schéma de correspondance peut être utile pour la gestion d'un groupe d'événements de portlets similaires qui ont le même format de charge d'une façon uniforme.

Si vous savez que deux portlets utilisant le même format de données ont des noms XML déclarés différents, par exemple des formats courants comme des adresses électroniques, vous pouvez changer la correspondance pour le type de charge, ce qui vous permet de créer des connexions entre des sources et des cibles quel que soit le nom sémantique XML. Ceci peut aussi être utile pour des portlets cible très génériques qui peuvent accepter n'importe quelle chaîne comme entrée.

Outre l'utilitaire de connexion de portlets, vous pouvez créer des connexions à l'aide de l'interface de configuration du portail (XmlAccess). Cette interface ne réalise aucune vérification de cohérence des données de sortie ou d'entrée déclarées. L'option de créer une connexion n'implique bien sûr pas forcément que les portlets communiqueront comme prévu. Par exemple, si les portlets font différentes suppositions sur le format de la charge, des exceptions d'exécution sont lancées à l'exécution de la connexion.

Support de portlets distants

Le portail vous permet aussi de créer des connexions entre des portlets distants qui utilisent le protocole WSRP 2.0 pour le transfert d'événements. Vous pouvez connecter des portlets distants qui ont été intégrés dans le portail et placés dans des pages, même s'ils ont été exploités depuis différents fournisseurs. Vous pouvez aussi connecter des portlets distants à des portlets standard locaux.

Les données de charge pour les événements distants sont transportées sous forme de contenu XML. Les portlets locaux souhaitant communiquer avec des portlets distants doivent donc déclarer des charges d'événements avec les définitions de sérialisation XML appropriées en utilisant la structure JAXB (Java XML Binding framework), ou bien traiter les chaînes XML brutes. Si le portlet distant Fournisseur est aussi un portail HCL Portal version 8.5 ou compatible JSR 286 et que des portlets locaux et distants utilisent les mêmes définitions JAXB, les traductions XML correctes se produisent automatiquement.