Distributeur de requêtes à distance
RRD (Remote Request Dispatcher) est une extension enfichable du conteneur Web des infrastructures d'application, des servlets et des JavaServer Pages pour inclure le contenu depuis l'extérieur de la JVM (Java™ virtual machine) actuelle de la ressource dans la réponse envoyée au client.
RDD (Remote request dispatcher) est une infrastructure extensible pour d'autres composants et produits de pile pour ajouter des extensions personnalisées, telles que des générateurs et des gestionnaires, à l'extension RRD. L'extension RRD (remote request dispatcher) améliore l'implémentation standard Java Platform, Enterprise Edition (Java EE) javax.servlet.RequestDispatcher pour localiser les ressources distantes à l'aide des services Web pour communiquer entre les machines d'un groupe central WebSphere Application Server, Network Deployment (ND). L'extension de distributeur de requêtes à distance consigne sur le serveur d'origine toutes les erreurs qui se produisent sur le serveur distant. Elle peut aussi utiliser SSL pour sécuriser les communications et la propagation de contexte de sécurité WS-Security entre les serveurs. Voir la rubrique sur le fichier rrdSecurity.props pour plus d'informations.
Le portlet RRD reporte le concept RRD (remote request dispatcher) aux portlets et améliore le conteneur de portlet pour l'appel des portlets en dehors de la ressource JVM en cours.
En utilisant l'extension RRD, vous pouvez partager la charge des demandes entre plusieurs machines et JVM en incluant des serveurs distants dans la cellule. Si la ressource RRD requiert beaucoup de mémoire ou de capacités processeur, la ressource appelante n'est pas autant affectée qu'un distributeur de requêtes standard exécuté sur la même JVM. Le RRD résout ce problème en séparant les ressources en différentes JVM.
Fonctions
- Les requêtes sur serveur distant sont traitées comme des requêtes d'inclusion. Les filtres et les progammes d'écoute des demandes sont démarrés comme si le type de répartition est INCLUDE.
- Les attributs de requête sérialisables et les paramètres de requête sont envoyés au serveur distant.
- Le contexte de sécurité est envoyé à un serveur distant via des jetons LTPA.
- Paramètres de servlet et flux en sortie
Les paramètres de requête sont transmis à un serveur distant.
- Les en-têtes de réponse définis par la ressource incluse à distance sont ignorés de façon similaire à l'inclusion sur un serveur local. Les en-têtes internes tels que Set-Cookie peuvent toujours être définis et retransmis (retour).
- Tous les en-têtes de requête d'origine sont transmis au serveur distant.
- Similaire au plug-in pour WebSphere Application Server.
- Les appels de méthode renvoient l'état comme s'ils se trouvaient sur un serveur local. Par exemple, getServer retourne le nom du serveur local ou isSecure indique si la demande vers le serveur ‘local' a été sécurisée.
- Cookies et sessions
- Les cookies sont transmis au serveur distant comme élément d'en-têtes.
- Les sessions sur les serveurs locaux et distants utilisent le même ID de cookie et de session pour un client donné, ce qui est similaire à includes dans le même serveur. Si une session existe sur un serveur distant, le cookie de session contient les informations des deux serveurs, afin de conserver l'affinité avec le serveur distant.
- Exceptions
- Si une exception est générée sur le serveur distant, le serveur retourne une erreur de services Web RRD qui encapsule l'exception d'origine créée par l'application.
- Essayez de recréer l'exception d'origine sur le serveur local si la classe d'exception existe sur les deux serveurs. Si l'exception d'origne ne peut pas être recréée, une exception ServletException RRD est construite et utilisée à la place.
- L'exception est recréée par le serveur local à des fins de gestion des erreurs.
- Mémoire cache dynamique
Lorsque le cache dynamique est activé, la mise en cache est effectuée sur les machines locale et distante.
- Sécurité
Vous pouvez utiliser SSL pour chiffrer les messages entre les serveurs d'applications. SSL est activé par défaut. Toutefois, vous devez également envoyer les besoins de contexte de sécurité via RRD pour que l'état de sécurité soit disponible dans la machine distante. RRD utilise WS-Security pour envoyer ces informations, mais cette propagation du contexte de sécurité est désactivée par défaut. Voir la rubrique sur le fichier rrdSecurity.props pour plus d'informations.