Activation des tunnels HTTP

Les tunnels HTTP permettent aux clients qui se trouvent hors du pare-feu de regrouper toutes les informations que l'ORB (Object Request Broker) côté client a besoin d'envoyer à l'ORB côté serveur dans une requête HTTP standard. Cette requête peut ensuite être envoyée au serveur sur le port 80, comme n'importe quelle autre requête HTTP.

Avant de commencer

Vérifiez que la fonction ORB côté client est une fonction ORB d'IBM®. Les tunnels ne fonctionnent pas si vous utilisez un ORB non IBM sur le client.

De plus, si la sécurité SSL (Secure Sockets Layer) est requise pour l'établissement de tunnels, vérifiez que les fichiers de clés et les certificats nécessaires sont configurés.

Pourquoi et quand exécuter cette tâche

Parfois, les clients qui sont exclus du pare-feu doivent communiquer avec des modules, tels que des modules EJB, qui se trouvent sur un serveur à l'intérieur du pare-feu. Les ORB côté client et côté serveur gèrent cette interaction entre le client et le serveur. Toutefois, les pare-feux bloquent généralement les ports qu'un client utilise pour communiquer avec l'ORB côté serveur. Si votre installation utilise un tel pare-feu, il est nécessaire de configurer des tunnels HTTP.

Le servlet IIOPTunnelServlet, fourni avec le produit en tant que fichier de classe com.ibm.CORBA.services.IIOPTunnelServlet.class, permet à un client HTTP (tel qu'un client Java™) ajouté avec RMI-IIOP de communiquer avec un serveur résidant derrière un pare-feu. Ce fichier classe, ainsi que les trois fichiers classe suivants, sont groupés dans le fichier WAS_HOME/plugins/com.ibm.ws.runtime_9.0.jar. Ces fichiers classe supplémentaires améliorent les fonctions du servlet.

  • com.ibm.CORBA.services.redirector.ConnectionStream.class com.ibm.CORBA.services.redirector.Redirector.class com.ibm.CORBA.services.redirector.RedirectorController.class

Lorsque les tunnels sont activés, le servlet IIOPTunnelServlet du serveur reçoit la requête HTTP et décomprime toutes les informations de l'ORB. Il appelle ensuite l'ORB côté serveur de la part du client. L'ORB côté serveur traite la requête comme une requête ORB standard et répond au servlet. Le servlet comprime la réponse de l'ORB dans une réponse HTTP et l'envoie à l'ORB côté client, à travers le pare-feu. L'ORB côté client décomprime la réponse HTTP et extrait la réponse.

Les tunnels peuvent fonctionner sur HTTPS et sur HTTP. Par conséquent, vous pouvez utiliser la sécurité SSL (Secure Sockets Layer) afin de sécuriser les clients des tunnels si vos procédures de sécurité requièrent la sécurisation par SSL de toutes les communications avec vos serveurs.

Procédure

  1. Créez un fichier IIOPTunnel.ear installable incluant le servlet IIOPTunnelServlet.

    Pour que vous puissiez exécuter le servlet IIOPTunnelServlet sur le serveur, celui-ci doit appartenir à une application pouvant être installée sur le serveur. Vous pouvez utiliser un outil d'assemblage d'application pour créer un fichier IIOPTunnel.ear installable incluant ce servlet. Par exemple, si vous utilisez l'outil d'assemblage livré avec le produit :

    1. Lancez l'outil.
    2. Ouvrez la perspective Web.
    3. Dans la vue Explorateur de projets, cliquez avec le bouton droit de la souris dans une sous-fenêtre vide et sélectionnez Nouveau > Projet Web dynamique.
    4. Dans l'assistant de création d'un projet Web dynamique, remplacez le nom du projet par IIOPTunnel ou le nom de votre choix Par défaut, l'option Ajouter un module à un projet EAR est sélectionnée, le nom du projet EAR est IIOPTunnelEAR et la racine de contexte est IIOPTunnel.
    5. Maintenez ces paramètres par défaut et cliquez sur Terminer.
    6. Ajoutez le fichier com.ibm.ws.runtime_9.0.jar au chemin de génération du projet Web.

      Pour pouvoir enregistrer le nouveau servlet dans le descripteur de déploiement Web, vous devez ajouter le servlet IIOPTunnelServlet qui se trouve dans le fichier WAS_HOME/lib/plugins/com.ibm.ws.runtime_9.0.jar à votre chemin de génération.

      1. Cliquez avec le bouton droit de la souris sur le projet Web IIOPTunnel et sélectionnez Propriétés > Chemin de génération Java.
      2. Sélectionnez l'onglet Bibliothèques et cliquez sur le bouton Ajouter des fichiers JAR externes.
      3. Ajoutez le fichier com.ibm.ws.runtime_9.0.jar, puis cliquez sur OK.
  2. Exportez votre fichier EAR.
    1. Cliquez avec le bouton droit de la souris sur le projet IIOPTunnelEAR.
    2. Cliquez sur Exporter > Fichier EAR, accédez au répertoire de destination choisi et indiquez le nom du fichier EAR comme IIOPTunnel.ear par exemple ou le nom de fichier que vous avez indiqué dans l'étape 1d.
    3. Cliquez sur Terminer.

      Vous obtenez un fichier IIOPTunnel.ear prêt à être déployé.

  3. Installez le fichier IIOPTunnel.ear sur votre serveur d'applications cible. Vous pouvez accepter toutes les valeurs par défaut pendant l'installation.

    N'oubliez pas d'ajuster la valeur de tunnelAgentURL sur le client afin de refléter l'emplacement réel du servlet IIOPTunnelServlet sur votre serveur.

    Explication détaillée sur le format de l'URL de tunnel :
    http(s)://host_name:port/context_root/Servlet_URLmapping

    nom_hôte:port correspond au nom d'hôte et au port associés au serveur sur lequel se trouve le servlet IIOPTunnelServlet. Le port peut être un port HTTP ou HTTPS, selon les exigences de votre système.

    Les valeurs context_root et Servlet_URLmapping doivent correspondre aux valeurs définies pour les éléments context-root et servlet-URLmapping figurant dans le fichier web.xml du servlet.

    Par exemple, si le servlet est installé sur un serveur par défaut et que context-root=iioptunnel et Servlet-URLmapping=tunnel, vous devez spécifier l'URL suivante pour tunnelAgentURL sur le client :
    http://localhost:9080/IIOPTunnel/IIOPTunnelServlet

    Pour vérifier que le servlet est déployé et s'exécute correctement, vous pouvez ouvrir l'adresse http:// hostname:9080/iioptunnel/tunnel dans un navigateur. Si le servlet fonctionne, le navigateur tente de le charger comme s'il s'agissait d'un fichier standard. Vous pouvez alors annuler le téléchargement.

  4. Vérifiez que le servlet est déployé et s'exécute correctement.

    Pour vérifier que le servlet est déployé et s'exécute correctement, ouvrez l'adresse http:// hostname:9080/IIOPTunnel/IIOPTunnelServlet dans un navigateur. Si le servlet fonctionne, le navigateur tente de le charger comme s'il s'agissait d'un fichier standard. Annulez alors simplement le téléchargement.

    Spécifiez les paramètres suivants si un incident survient lors du déploiement et de l'exécution du servlet :
    -Dcom.ibm.CORBA.TunnelAgentURL=https://localhost:9080/IIOPTunnel/IIOPTunnelServlet?debug=true 
  5. Configurez le service ORB pour l'ORB côté client afin d'activer les tunnels.
    Le client détermine si des tunnels HTTP et IIOP standard doivent être utilisés pour la communication avec l'ORB côté serveur. Par conséquent, vous devez définir les propriétés ORB suivantes sur le client :
    com.ibm.CORBA.ForceTunnel=ALWAYS
    com.ibm.CORBA.TunnelAgentURL=http://host_name:9080/IIOPTunnel/IIOPTunnelServlet com.ibm.CORBA.FragmentSize=0
    Pour activer les tunnels sur l'ORB client, vous devez associer la propriété com.ibm.CORBA.ForceTunnel à la valeur ALWAYS. Ce paramètre indique que le client passe toujours par un tunnel. Les autres valeurs admises pour la propriété com.ibm.CORBA.ForceTunnel sont les suivantes :
    • NEVER, qui indique que vous voulez désactiver les tunnels HTTP. En cas d'échec d'une connexion TCP, une exception système CORBA (COMM_FAILURE) est générée.
    • WHENREQUIRED, qui indique que vous voulez utiliser les tunnels HTTP en cas d'échec des connexions TCP.

    La deuxième propriété spécifie l'URL qualifiée complète à laquelle le servlet des tunnels peut être contacté. Le port 9080 est le port WC_defaulthost du serveur. Le numéro de port que vous spécifiez doit correspondre au numéro de port qui figure dans le fichier de configuration, serverindex.xml, pour le serveur sur lequel se trouve le servlet IIOPTunnelServlet.

    La troisième propriété désactive la fragmentation ORB. Normalement, l'ORB divise les communications en fragments afin d'améliorer les performances ; cependant, l'établissement de tunnels n'est pas possible lorsque l'ORB procède à la fragmentation.

    Vous pouvez aussi définir ces propriétés en les ajoutant sous forme de paramètres à la ligne de commande JVM :
    -Dcom.ibm.CORBA.ForceTunnel=always 
    -Dcom.ibm.CORBA.TunnelAgentURL=http://host_name:9080/iioptunnel/tunnel 
    -Dcom.ibm.CORBA.FragmentSize=0
    Si vous le voulez, vous pouvez définir la propriété suivante pour spécifier les paramètres de sécurité côté client :
    -Dcom.ibm.CORBA.ConfigURL=file:PROFILE_ROOT/properties/sas.client.props
  6. Désactivez la fragmentation sur l'ORB côté serveur. com.ibm.CORBA.FragmentSize est la seule propriété à configurer pour l'ORB côté serveur en vue de l'activation des tunnels. Pour désactiver la fragmentation, vous devez associer la propriété à la valeur 0.
    1. Dans la console d'administration, cliquez sur Serveurs > Types de serveurs > Serveurs d'applications WebSphere , puis sur le serveur sur lequel le servlet tunnel est installé.
    2. Cliquez sur Service ORB, puis sur Propriétés personnalisées.
    3. Cliquez sur Nouveau puis spécifiez com.ibm.CORBA.FragmentSize dans la zone Nom et 0 dans la zone Valeur.
    4. Cliquez sur OK, puis sauvegardez vos modifications.
  7. Arrêtez et redémarrez le serveur d'applications.

Que faire ensuite

Le client peut commencer à envoyer des requêtes au serveur configuré pour les tunnels HTTP à travers le pare-feu.

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=torb_tunnel
Nom du fichier : torb_tunnel.html