Ativando o Túnel HTTP

O túnel HTTP possibilita que os clientes, que residem fora de um firewall, empacote todas as informações, que o ORB (Object Request Broker) do lado do cliente precisa para enviar ao ORB do lado do servidor, em um pedido de HTTP normal. Por conseguinte, este pedido pode ser enviado para o servidor na porta 80, exatamente como qualquer outro pedido de HTTP.

Antes de Iniciar

Certifique-se de que o ORB do lado do cliente seja um ORB IBM®. O túnel não funcionará se você estiver utilizando um ORB não-IBM no cliente.

Além disso, se a segurança SSL (Secure Sockets Layer) for necessária para o túnel, certifique-se de que os certificados necessários e os arquivos de chave estejam configurados.

Sobre Esta Tarefa

Às vezes os clientes que residem fora de um firewall precisam se comunicar com módulos, tais como os módulos EJB, que residem em um servidor dentro do firewall. Os ORBs do lado do cliente e do lado do servidor gerenciam esta interação entre o cliente e o servidor. Entretanto, normalmente os firewalls bloqueiam as portas que um cliente utiliza para conversar com o ORB do lado do servidor. Portanto, se a sua instalação usar um firewall que bloqueia as portas que um cliente utiliza para conversar com o ORB do lado do servidor, você deverá configurar o túnel HTTP.

O IIOPTunnelServlet, que é enviado com o produto como arquivo de classe com.ibm.CORBA.services.IIOPTunnelServlet.class, permite que um cliente HTTP, como um cliente Java™, que está integrado ao RMI-IIOP, comunique-se com um servidor que reside dentro de um firewall. Este arquivo de classe, junto com os três arquivos de classe a seguir, são empacotados dentro do arquivo WAS_HOME/plugins/com.ibm.ws.runtime_9.0.jar. Estes arquivos de classe adicionais melhoram os recursos do servlet.

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

Quando o túnel está ativado, o servlet IIOPTunnelServlet no servidor recebe o pedido de HTTP e desempacota todas as informações do ORB. O servlet chama, então, o ORB do lado do servidor em nome do cliente. O ORB do lado do servidor trata o pedido como trataria qualquer pedido de ORB normal e responde ao servlet. O servlet compacta a resposta de ORB em uma resposta de HTTP e envia a resposta de volta para o ORB do lado do cliente, por meio do firewall. O ORB do lado do cliente desempacota a resposta de HTTP e puxa-a.

O túnel pode operar por meio de HTTPS e também de HTTP. Portanto, é possível usar a segurança SSL (Secure Sockets Layer) para proteger seus clientes de túnel, se seus procedimentos de segurança necessitarem que toda a comunicação com os servidores seja protegida por SSL.

Procedimento

  1. Crie um arquivo IIOPTunnel.ear instalável que inclua o servlet IIOPTunnelServlet.

    Antes de poder executar o servlet IIOPTunnelServlet no servidor, você deve torná-lo parte de um aplicativo que possa ser instalado no servidor. É possível usar uma ferramenta de montagem de aplicativos para criar um arquivo IIOPTunnel.ear instalável que inclua este servlet. Por exemplo, se você usar a ferramenta de montagem fornecida com o produto:

    1. Inicie a ferramenta.
    2. Abra a perspectiva WEB.
    3. Na visualização Explorador de Projetos, clique com o botão direito em uma área de janela vazia e selecione Novo > Projeto da Web Dinâmico.
    4. No assistente para Criar Projeto Dinâmico da Web, altere o nome do projeto para IIOPTunnel, ou para um outro nome que seja significativo para você. Por padrão, a opção Incluir Módulo em um Projeto EAR está selecionada, o nome do projeto EAR está configurado como IIOPTunnelEAR e a Raiz de Contexto está configurada como IIOPTunnel.
    5. Mantenha essas configurações padrão e clique em Concluir.
    6. Inclua o arquivo com.ibm.ws.runtime_9.0.jar no Caminho de Construção do Projeto da Web.

      Antes de poder registrar o novo servlet no Descritor de Implementação da Web, deve-se incluir o servlet IIOPTunnelServlet, que reside no arquivo WAS_HOME/lib/plugins/com.ibm.ws.runtime_9.0.jar, em seu caminho de construção.

      1. Clique com o botão direito no Projeto da Web IIOPTunnel e selecione Propriedades > Caminho de Construção Java.
      2. Selecione a guia Bibliotecas e pressione o botão Incluir JARs Externos.
      3. Inclua o arquivo com.ibm.ws.runtime_9.0.jar e, em seguida, clique em OK.
  2. Exporte o arquivo EAR.
    1. Clique com o botão direito do mouse no projeto IIOPTunnelEAR.
    2. Clique em Exportar > Arquivo EAR, procure seu diretório de destino selecionado e especifique o nome do arquivo EAR como IIOPTunnel.ear, ou o nome do arquivo que você especificou na Etapa 1d.
    3. Clique em Concluir.

      Você obtém seu arquivo IIOPTunnel.ear, que está pronto para ser implementado.

  3. Instale o arquivo IIOPTunnel.ear em seu servidor de aplicativos de destino. Você pode aceitar todos os valores padrão durante a instalação.

    Lembre-se de ajustar o tunnelAgentURL no cliente para refletir o local real do IIOPTunnelServlet em seu servidor.

    Explicação detalhada do formato URL do túnel:
    http(s)://host_name:port/context_root/Servlet_URLmapping

    O host_name:port é o nome do host e a porta designada ao servidor no qual o IIOPTunnelServlet reside. A porta pode ser HTTP ou HTTPS, dependendo de seus requisitos de segurança.

    Os valores context_root e Servlet_URLmapping devem corresponder aos valores definidos para os elementos context-root e servlet-URLmapping no arquivo web.xml do servlet.

    Por exemplo, se o servlet for instalado no servidor padrão e context-root=iioptunnel e Servlet-URLmapping=tunnel, a seguinte URL deverá ser especificada para o tunnelAgentURL no cliente:
    http://localhost:9080/IIOPTunnel/IIOPTunnelServlet

    Para verificar se o servlet está implementado e sendo executado com êxito, você pode abrir um navegador e apontar para http:// hostname:9080/iioptunnel/tunnel. Se o servlet estiver funcionando, o navegador tentará fazer download dele como se fosse apenas um arquivo normal. Você pode, então, cancelar o download.

  4. Verifique se o servlet está implementado e sendo executado com êxito

    Para verificar se o servlet está implementado e sendo executado com êxito, você pode abrir um navegador e apontar para http:// hostname:9080/IIOPTunnel/IIOPTunnelServlet. Se o servlet estiver funcionando, o navegador tentará fazer download dele como se fosse apenas um arquivo normal. Simplesmente cancele o download.

    Especifique os parâmetros a seguir se você encontrar um problema ao implementar e executar o servlet.
    -Dcom.ibm.CORBA.TunnelAgentURL=https://localhost:9080/IIOPTunnel/IIOPTunnelServlet?debug=true 
  5. Configure o Serviço ORB de forma que o ORB do lado do cliente ative o túnel
    O cliente determina se o túnel IIOP e HTTP padrão deve ser utilizado para a comunicação com o ORB do lado do servidor. Portanto, você deve configurar propriedades do ORB a seguir no cliente.
    com.ibm.CORBA.ForceTunnel=ALWAYS
    com.ibm.CORBA.TunnelAgentURL=http://host_name:9080/IIOPTunnel/IIOPTunnelServlet com.ibm.CORBA.FragmentSize=0
    Para o túnel ativado no ORB do cliente, a propriedade com.ibm.CORBA.ForceTunnel deve ser configurada para ALWAYS. Esta configuração indica que esse cliente está sempre indo para o túnel. Outros valores que podem ser especificados para a propriedade com.ibm.CORBA.ForceTunnel são:
    • NEVER, que indica que você deseja desativar o túnel HTTP. Se uma conexão TCP falhar, ocorrerá uma exceção do sistema CORBA (COMM_FAILURE).
    • WHENREQUIRED, que indica que você deseja utilizar o túnel HTTP se as conexões TCP falharem.

    A segunda propriedade especifica a URL completa em que o servlet de túnel é alcançado. A porta 9080 é a porta WC_defaulthost do servidor. O número da porta especificado deve corresponder ao número da porta especificado no arquivo de configuração, serverindex.xml, para o servidor no qual o servlet IIOPTunnelServlet reside.

    A terceira propriedade s desativa a fragmentação do ORB. Normalmente, o ORB divide a comunicação em fragmentos para melhorar o desempenho, mas o túnel não funcionará se o ORB estiver fragmentando.

    Você também pode configurar estas propriedades incluindo-as como parâmetros na linha de comandos da JVM:
    -Dcom.ibm.CORBA.ForceTunnel=always 
    -Dcom.ibm.CORBA.TunnelAgentURL=http://host_name:9080/iioptunnel/tunnel 
    -Dcom.ibm.CORBA.FragmentSize=0
    Opcionalmente, você também poderá configurar a seguinte propriedade se desejar especificar configurações de segurança do lado do cliente:
    -Dcom.ibm.CORBA.ConfigURL=file:PROFILE_ROOT/properties/sas.client.props
  6. Desative a fragmentação no ORB do lado do servidor. A única propriedade que deve ser configurada para o ORB do lado do servidor para ativar o túnel é a propriedade com.ibm.CORBA.FragmentSize. Esta propriedade deve ser configurada como 0 para desativar a fragmentação.
    1. No console administrativo, clique em Servidores > Tipos de servidores > WebSphere Application Servers e clique no servidor no qual o servlet de tunelamento está instalado.
    2. Clique em Serviço ORB, em seguida, clique em Propriedades Customizadas.
    3. Clique em Novo e especifique com.ibm.CORBA.FragmentSize no campo Nome e 0 no campo Valor.
    4. Clique em OK e salve as mudanças.
  7. Pare e inicie novamente o servidor de aplicativos.

O que Fazer Depois

O cliente pode iniciar o envio de pedidos através do firewall ao servidor configurado para o túnel HTTP.

Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=torb_tunnel
Nome do arquivo: torb_tunnel.html