Usando o WebSphere DataPower e o WebSphere MQ File Transfer Edition para Gerenciar a Transferência de Arquivos

O firmware WebSphere DataPower V4.x® introduziu um novo manipulador de protocolos específico para o WebSphere MQ File Transfer Edition que permite uma integração melhor entre os dois produtos. O firmware V5.x introduziu o suporte à memória estendida, eliminando algumas das limitações referentes a arquivos grandes. Este artigo mostra como integrar o DataPower e o WebSphere MQ FTE.

Stefano Zampieri, Solution Architect, IBM

Photo of Stefano ZampieriStefano Zampieri é arquiteto de soluções e especialista em WebSphere. Tem mais de 12 anos de experiência em J2EE e nos produtos WebSphere de base, como o WebSphere Application Server e o WebSphere MQ. Desempenhou muitas funções diferentes em diversas unidades da IBM, de IT Specialist a IT Architect. Stefano agora trabalha com o IBM Software Services for WebSphere. Nos últimos quatro anos, concentrou-se principalmente no WebSphere DataPower, B2B, SOA e Enterprise Application Integration.



Phil J. Bareham, Senior IT Specialist, IBM

Photo of Phil BarehamPhil Bareham é IT Specialist senior e trabalha com o WebSphere MQ FTE desde o primeiro release. Atua na área de TI há 27 anos — 17 deles na IBM. Ao longo dos anos, desempenhou várias funções, desde o código do aplicativo CICS até a configuração do WebSphere Application Server e do WebSphere Process Server. Nos últimos 10 anos, trabalhou principalmente com o WebSphere MQ, WebSphere Message Broker, WebSphere Business Events e WebSphere Process Server no Windows, Unix e z/OS.



17/Set/2012

Introdução

Este artigo mostra como integrar o WebSphere DataPower e o WebSphere MQ File Transfer Edition (FTE). Na época em que este artigo foi escrito, a maior parte da documentação disponível estava desatualizada e tratava principalmente do uso da transferência de arquivos gerenciada no contexto do B2B. O firmware DataPower V4.x introduziu um novo manipulador de protocolos específico para o WebSphere MQ FTE Edition que permite uma integração melhor entre os dois produtos. O firmware V5.x introduziu o suporte à memória estendida, eliminando algumas das limitações referentes a arquivos grandes.

O WebSphere MQ FTE e o DataPower são complementares, já que o DataPower se destina a gerenciar de forma central as transferências de arquivos dentro do domínio corporativo seguro, ao passo que o WebSphere MQ FTE atua como um gateway seguro e estende a conectividade a diversos domínios de segurança. A Figura 1 mostra a implementação de rede típica do DataPower, em que o DataPower está localizado em uma DMZ e atua como um gateway entre a rede do WebSphere MQ e os parceiros externos.

Figura 1. Implementação de rede do DataPower
Implementação de rede do DataPower

Serviço de gateway B2B vs. gateway multiprotocolo no contexto da transferência de arquivos gerenciada

Antes do firmware 4.0.0, a integração entre o DataPower e o WebSphere MQ FTE se baseava principalmente em sistemas de arquivos compartilhados. Essa integração era suficiente em muitos contextos, mas não aproveitava nenhum recurso especial do WebSphere MQ, como a transacionalidade e a entrega garantida. Além disso, o B2B Transaction Viewer não se integrava totalmente ao WebSphere MQ FTE.

Na atualidade, o FTP e o SFTP são usados frequentemente para transportar documentos B2B. Portanto, integrar o WebSphere MQ FTE e o DataPower por meio de um gateway de B2B é o caso de uso maus comum. Para obter mais informações, consulte este documento: WebSphere DataPower Release 4.0.1 B2B MQFTE.

O B2B Gateway Service (B2BGW) só está disponível no modelo “XB*” e suporta os protocolos de mensagens bastante conhecidos de B2B, como EDIINT AS1, AS2 e AS3, bem como o ebMS v2.0. Fornece a capacidade de gerenciar adequadamente as transferências de arquivos como parte de uma transação B2B, registrar a operação em um armazenamento persistente e integrar os metadados de FTE ao B2B Transaction Viewer.

O B2B também fornece a capacidade de organizar o roteamento de arquivos por meio dos objetos “Business Partner”. Essa construção é uma abstração que permite armazenar as informações de parceiros de negócios em um perfil de parceiro comercial e é usada para fazer cumprir os contratos de parceiro comercial entre duas partes e fornecer um link lógico entre a identidade do parceiro e uma URLs de destino ou mais.

Os principais pontos são que, nessa configuração, o fluxo não é possível e os arquivos são sempre armazenados em buffer na memória. Mesmo quando um arquivo grande é segmentado em várias mensagens do WebSphere MQ, o B2BGW reconstrói o arquivo inteiro na memória antes de processá-lo.

Dadas as características de um B2BGW, há alguns aspectos críticos a serem levados em conta na fase de design:

  • Protocolos
  • Integração ao B2BViewer
  • Tamanho do arquivo
  • Auditoria
  • Taxa de transações
  • Transacionalidade e manipulação de erros
  • Planejamento de capacidade e períodos de retenção dos metadados de B2B e da carga útil

Os protocolos são críticos porque, se os parceiros externos usam protocolos específicos de B2B — como os protocolos AS/1/2/3 — não há alternativa ao serviço de gateway de B2B. Isso também acontece se a integração ao B2BViewer é um requisito chave para a solução ou se o cliente quer usar o gerenciamento de perfil ou os recursos de visualização exclusivos do serviço de B2BGW.

O tamanho do arquivo é outro elemento importante a ser levado em conta. Para arquivos muito grandes, o gateway multiprotocolo (MPGW) geralmente é uma opção melhor, porque suporta o fluxo e, por padrão, não tem cargas úteis de mensagens. No entanto, o MPGW não tem a capacidade de oferecer uma visualização que mostra o estado da transação, nem de usar o gerenciamento de perfil.

Esse último ponto leva à próxima questão: auditoria. Como já foi mencionado, os B2BGWs se destinam a transações críticas de B2B. Fornecem, por padrão, um conjunto rico de funcionalidades — como auditoria de transação — e oferecem meta informações para o B2B Transaction Viewer.

Os MPGWs são objetos mais simples, sem o recurso de auditoria integrada. Qualquer procedimento, inclusive a criação de log e a auditoria, requer configuração explícita e, no final, um pouco de codificação em XSLT (geralmente mínima) XSLT.

Além da capacidade de trabalhar com fluxo, a simplicidade e a flexibilidade dos MPGWs proporcionam outro benefício ao suportar taxas de transações altas. Os MPGWs geralmente tem um desempenho melhor que o dos B2BGWs porque não persistem metadados nem cargas úteis

O último aspecto a ser levado em conta é a necessidade da transacionalidade e da manipulação de erros, que agora pode contar com os tradicionais recursos de integração DataPower-MQ, como as configurações de unidade de trabalho e retorno. Os detalhes específicos da transacionalidade e da manipulação de erros mudam de acordo com a direção da transferência (se o WebSphere MQ é a origem ou destino do arquivo) e serão abordados detalhadamente neste artigo.

A Tabela 1 resume os principais elementos a serem levados em conta ao escolher um gateway B2B ou um gateway multiprotocolo e integrar o DataPower e o WebSphere MQ FTE.

Tabela 1. Escolhendo o B2BGW vs. MPGW
B2BGW (somente o modo de armazenamento em buffer)MPGW (modo de armazenamento em buffer)MPGW (modo de fluxo)
Suporte para os protocolos de B2B, como EDIINT AS1, AS2 e AS3, bem como o ebMS v2.0.Plataformas que suportam o protocolo WebSphere MQ FTE, mas o B2BGW não está disponível (XI* e XG*).Latência alta da rede
Quer usar o B2B Transaction ViewerTaxa de transação altaO “suporte à memória estendida” não está disponível, e o tamanho do arquivo é superior a 100 MB.
Auditoria integradaOu “suporte à memória estendida” está disponível e o tamanho do arquivo é superior a 3 GB.
Limitações
O BB2GW pode ser mais lento que o MPGW para uma carga de trabalho altamente transacionais (muitas mensagens pequenas)Sem B2B Transaction ViewerSem B2B Transaction Viewer
Não há suporte para fluxo.Não há suporte para AS1/2/3.Não há suporte para AS1/2/3 e ebMS.
Disponível somente no XB*A auditoria deve ser implementada na política de processamentoAs políticas complexas de processamento podem quebrar o fluxo, capacidade de auditoria limitada
A HA e a DR são mais complexas para o B2BGW que para o MPGW

Transacionalidade e persistência de mensagem

O WebSphere MQ FTE usa a infraestrutura do WebSphere MQ para mover arquivos para a empresa. Por motivos de desempenho, ele foi projetado para mover arquivos de forma confiável usando mensagens não persistentes referentes aos dados de transferência de arquivo. As mensagens persistentes são usadas para o agente inicial do WebSphere MQ FTE para o handshake do agente e também para transferir mensagens de reinício entre os agentes. Ao mover um arquivo para uma fila usando o comando “fteCreateTransfer”, por padrão, as mensagens são persistentes. Nesse ponto, a transferência está concluída sob o ponto de vista do WebSphere MQ FTE. Se as mensagens não eram persistentes e o Queue Manager falhou depois que a transferência do FTE foi concluída e antes do início da transferência do DataPower, o arquivo desaparece do sistema sem nenhum erro explícito de transferência.

O uso das mensagens persistentes tem uma implicação importante em termos de ajuste do Queue Manager conforme o descrito no artigo Configurando e ajustando o WebSphere MQ para desempenho no Windows e UNIX, que menciona especificamente que as mensagens persistentes requerem ajuste adequado dos logs do Queue Manager. Isso é crítico porque, na nossa experiência, o espaço de log insuficiente no Queue Manager é a causa de erro mais comum.

O fato de que em um contexto de B2B as mensagens normalmente são consumidas dentro de uma transação é outro motivo para ajustar os logs do Queue Manager. Isso significa que a confirmação final só acontece quando o DataPower tiver concluído a transferência de arquivo para o sistema de destino, mantendo as transações potencialmente pendentes por um período longo, dependendo do tamanho total do arquivo e da latência da rede.

Finalmente, observe que é importante escolher a configuração correta de persistência para cada fila porque, por padrão, o DataPower configura a persistência de mensagens de acordo com a configuração da fila. Para um controle mais rigoroso, o comportamento padrão do DataPower pode ser sobrescrito pela configuração explícita do sinalizador de persistência no cabeçalho do MQ Message Descriptor (MQMD) na política de processamento. A persistência padrão da fila não é crítica para o WebSphere MQ FTE porque ela se destina a otimizar o uso de mensagens persistentes.

Exemplos de configuração

Este artigo irá focar vários casos de uso típicos:

Este artigo fará referência à seguinte configuração básica:

  • Um DataPower XB62 com um gateway de B2B e um gateway de multiprotocolo
  • Uma imagem de VMware com a instalação do WMQFTE atuando com o parceiro interno
  • Uma imagem adicional de VMware com o servidor FTP e o cliente atuando como o parceiro externo

Por causa dessa configuração, usaremos protocolos simples. Em um ambiente real de produção, toda a comunicação é protegida por criptografia.

Essa configuração do DataPower é extremamente simples e alguns dos seus detalhes serão destacados durante a explicação sobre os casos de uso.

Configuração do WebSphere MQ FTE

Em qualquer configuração do WebSphere MQ FTE, é preciso ter:

  • Um WebSphere MQ Queue Manager designado como o gerenciador de filas de coordenação do WebSphere MQ FTE. O gerenciador de filas de coordenação usa as filas do WebSphere MQ para processar transferências de arquivos e a publicação/assinatura do WebSphere MQ para armazenar informações relacionadas aos agentes do WebSphere MQ FTE associados a essa configuração. O gerenciador de filas de coordenação do WebSphere MQ FTE deve usar a versão 7 ou superior do WebSphere MQ para a funcionalidade necessária de publicação/assinatura.
  • Um Gerenciador de Filas ou mais do WebSphere MQ que atua como o gerenciador da fila de comandos WebSphere MQ FTE. O gerenciador de fila de comandos é usado para passar solicitações de comandos para o WebSphere MQ FTE.
  • Um ou mais WebSphere MQ Queue Managers que atuam como gerenciadores das filas de agentes do WebSphere MQ FTE. Os Agent Queue Managers fornecem as filas do WebSphere MQ necessárias para suportar a transferência de arquivos entre os agentes usando mensagens do WebSphere MQ.
  • Um agente do WebSphere MQ FTE (ou mais) que realiza transferências de arquivos. Cada agente se conecta a um Agent Queue Manager. O Agent Queue Manager pode suportar vários agentes.

Nossa configuração do WebSphere MQ FTE usou o WebSphere MQ V7.0.1.8 e o WebSphere MQ FTE V7.0.4.1. Todos os componentes do WebSphere MQ e do WebSphere MQ FTE executaram no Windows®. Com o anúncio do WebSphere MQ V7.5, o WebSphere MQ FTE se tornou um componente opcional do WebSphere MQ 7.5 e será conhecido como "WebSphere Managed File Transfer".

Usamos uma configuração simples do WebSphere MQ FTE no Windows para testar os casos de uso do DataPower para o WebSphere MQ FTE descritos acima. Essa configuração consistiu em um único gerenciador de fila do WebSphere MQ Queue chamado FTE_QM. Esse gerenciador desempenhou as funções de coordenação, comando e gerenciador de filas de agentes descritos acima. O FTE_QM foi criado com a alocação padrão de log circular de três arquivos de log primários e dois secundários. Detectamos que tínhamos que corrigir isso quando começamos a transferir arquivos grandes. Em uma configuração de produção, seria mais normal ter agentes conectados a vários gerenciadores de filas de agentes diferentes.

No FTE_QM, definimos duas filas do WebSphere MQ como "FTE_TO_B2BGW" e "FTE_TO_MPGW". Essas filas foram usadas como a fila de destino para as transferências de arquivo para fila iniciadas entre o AGT1_FTE_FROM_FILE e o AGT3_DP_FTE_QM. Em seguida, as mensagens colocadas nessas filas foram lidas pelo DataPower para serem transferidas para o destino final. Cada fila tinha uma fila de restauração: "B2B_BACKOUT" para o FTE_TO_B2B e "MPGW_BACKOUT" para o FTE_TO_MPGW.

Foi criada uma fila adicional chamada "DP_TO_FTE" para as transferências entre o DataPower e o FTE. O sinalizador de persistência padrão para essa fila foi configurado como “persistent”.

Em seguida, criamos três agentes WMQ_FTE na mesma máquina Windows, da seguinte forma:

  • AGT1_FTE_FROM_FILE: é o agente de origem para transferências do WebSphere MQ FTE para o DataPower. Esse agente foi usado para ler a origem a ser transferida a partir do sistema de arquivos do Windows.
  • AGT2_FTE_TO_QUEUE_FOR_DP: é o agente de destino para transferências do WebSphere MQ FTE para o DataPower. Os arquivos transferidos do AGT1_FTE_FROM_FILE foram enviados para esse agente como uma transferência de arquivo para fila. Como resultado disso, o arquivo chegou como um grupo de mensagens do WebSphere MQ na fila de destino. Essa fila era monitorada pela caixa do DataPower e, após a chegada de todas as mensagens do grupo, o DataPower processava a transferência para o destino final definido no DataPower. No nosso caso, o destino final do WebSphere MQ FTE para o DataPower foi um servidor FTP executando em uma máquina Windows separada do WebSphere MQ e do WebSphere MQ FTE. Para habilitar as transferências de fila para fila, a propriedade enableQueueInputOutput foi configurada como "true" no arquivo agent.properties do AGT3_DP_FTE.
  • AGT3_DP_TO_FTE: é o agente de origem para as transferências do DataPower para o WebSphere MQ FTE. O arquivo é lido pelo DataPower e, em seguida, enviado como uma das mensagens do WebSphere MQ para uma fila do WebSphere MQ. Essa fila é monitorada por um monitor do WebSphere MQ FTE. Em seguida, ele inicia uma transferência do WebSphere MQ FTE quando as mensagens chegam à fila. Esse agente é o agente de origem nessa transferência acionada e AGT1_FTE_FROM_FILE é o destino.

Os três agentes do WebSphere MQ FTE são conectados ao gerenciador de filas de agentes do FTE_QM usando conexões de memória cruzada – ou ligações – e não uma conexão de cliente do WebSphere MQ. Todos os três agentes foram definidos para executar como um serviço do Windows. A Figura 2 mostra a configuração do WebSphere MQ FTE, destacando os agentes, o gerenciador de filas e as filas.

Figura 2. Configuração do WebSphere MQ FTE
Configuração do WebSphere MQ FTE

A interação do WebSphere MQ FTE para o MPGW é semelhante. A diferença é que a fila do WebSphere MQ usada para as transferências de saída é "FTE_TO_MPGW".

Caso de uso 1: transferência de arquivos de saída usando um B2BGW

Agora o roteamento do B2BGW está bem definido e descrito no documento WebSphere DataPower Release 4.0.1 B2B MQFTE .

A primeira etapa é a criação de um parceiro interno e externo. Para o parceiro externo, inclua um destino de FTP. Para o parceiro interno, inclua um destino do WebSphere MQ FTE.

É uma boa prática gerenciar transferências parciais de arquivos habilitando a transacionalidade na URL de destino do WebSphere MQ FTE e renomeando o arquivo depois da transferência para o destino de FTP.

Da mesma forma, crie um manipulador frontal do WebSphere MQ FTE para pegar arquivos do parceiro interno e um FSH do servidor de HTTP para aceitar arquivos do parceiro externo.

A última etapa é criar um B2BGW adicionando os dois manipuladores frontais e os dois parceiros de negócios.

A transferência de arquivos do WebSphere MQ FTE incluirá os dois cabeçalhos a seguir:

  • DPMQFTESenderID: ID comercial do parceiro interno
  • DPMQFTEReceiverID: ID comercial do parceiro interno
  • DPMQFTEContentType: tipo de conteúdo da carga útil da mensagem

A Listagem 1 mostra um exemplo.

Listagem 1. fteCreateTransfer que inclui os cabeçalhos do DPMMQFTE
fteCreateTransfer -sa AGT1_FTE_FROM_FILE -da AGT2_FTE_TO_QUEUE_FOR_DP -dm FTE_QM
-dq FTE_TO_B2BGWGW@FTE_QM -dqp true -qmp true -md DPMQFTESenderId=InternalPartner,
DPMQFTEReceiverId=ExternalPartner,DPMQFTEContentType=application/binary -qs 1M
-t binary c:\temp\file03.bin

No comando fteCreateTransfer mostrado na Listagem 1, –sa e –da são os agentes do WebSphere MQ FTE de origem (AGT1_FTE_FROM_FILE) e destino (AGT2_FTE_TO_QUEUE_FOR_DP), respectivamente. -dm denota o gerenciador da fila de destino (FTE_QM)e -dq, o nome da fila de destino (FTE_TO_B2BGW), que também determina se a transferência é de arquivo para a fila. "-dqp true" determina que as mensagens colocadas na fila de destino sejam persistentes. "-qmp true" implica que a primeira mensagem gravada na fila de destino terá as propriedades de mensagem configuradas.

Os valores depois de –md são pares nome-valor que são passados para o WebSphere MQ FTE. Finalmente, "-qs 1m" é usado para instruir o WebSphere MQ FTE a dividir a transferência em várias mensagens que formam um grupo de mensagens do WebSphere MQ. O tamanho máximo das mensagens desse grupo é 1 MB. Detectamos que, se não usarmos a configuração –qs para os arquivos grandes, a transferência do WebSphere MQ FTE falhará com o código de razão 2030, que é MQRC_MSG_TOO_BIG_FOR_Q. Para evitar esse erro, ajustamos as configurações de tamanho máximo da mensagem no gerenciador de filas FTE_QM e na fila FTE_TO_B2BGW. Trata-se da configuração MAXMSGL, que adota 4 Mb como padrão. Você encontra recomendações sobre a alteração das configurações do WebSphere MQ MAXMSGL e da propriedade do agente do WebSphere MQ FTE maxInputOutputMessageLength em Guidance for setting WebSphere MQ and WebSphere MQ File Transfer Edition properties associated with message size.

A unidade de trabalho (UOW) é habilitada no objeto DataPower Queue Manager (veja a Figura 3). Em caso de erro, a transferência é tentada novamente até que se atinja a contagem de restauração e, em seguida, o arquivo é movido para a fila de restauração. Considerando que o arquivo primeiro é montado na memória e depois enviado por push para a fila de restauração, não é de se admirar que as mensagens na nessa fila possam ter um tamanho diferente do tamanho das mensagens na fila de solicitação.

Figura 3. Configuração da unidade de trabalho do DataPower
Configuração da unidade de trabalho do DataPower

Finalmente, vale a pena ressaltar que as configurações de GMO no manipulador de protocolos do WebSphere MQ FTE são sobrescritas pelas configurações no objeto DataPower Queue Manager. Quando a UOW é habilitada, as mensagens são consumidas sob ponto de sincronização, não importando a sua persistência e vice-versa.

Opcionalmente, o WebSphere MQ FTE pode registrar os detalhes da transferência em um banco de dados. O DataPower B2B Transaction Viewer pode recuperar e visualizar essas informações como parte da transferência de arquivo configurando o objeto DataSource no painel avançado no gateway B2B.

Já que somente um DB criador de logs pode ser referenciado por um B2BGW, tanto os fluxos de entrada quanto os de saída que passam pelo mesmo serviço do DataPower são registrados no mesmo criador de logs.

Caso de uso 2: a transferência de arquivos de saída usando um MPGW (fluxo)

Essa é provavelmente a configuração mais simples. No lado do DataPower, há um gateway de multiprotocolo com um backend dinâmico e um manipulador de protocolos na parte frontal do WebSphere MQ FTE.

Já que o objetivo dessa configuração é fazer o fluxo de arquivos grandes, a política de processamento, de modo geral, é extremamente simples, como mostra a Figura 4.

Figura 4. Definição de regras do DataPower
Definição de regras do DataPower

O processamento mínimo necessário é configurar um destino. O agente do WebSphere MQ FTE pode passar os metadados para o DataPower usando cabeçalhos de RFH que o DataPower pode usar para definir o destino.

O exemplo mostrado na Listagem 2 usa um cabeçalho customizado chamado “DPMQFTEDestination”. O MQFTE transfere arquivos para filas usando o comando mostrado na Listagem 2.

Listagem 2. fteCreateTransfer que usa o cabeçalho do DPMQFTEDestination
fteCreateTransfer -sa AGT1_FTE_FROM_FILE -da AGT2_FTE_TO_QUEUE_FOR_DP  -dm FTE_QM
-dq FTE_TO_MPGW@FTE_QM -dqp true -qmp true 
-md DPMQFTEDestination=ftp://user:password@xx.xx.xx.xx/foo.Part?Rename=Foo.Complete
-qs 1M -t binary c:\temp\file01.bin

Para evitar falhas não detectadas, as mensagens na fila do WebSphere MQ, que é o destino da transferência do WebSphere MQ FTE, são persistentes.

Ao realizar o fluxo das mensagens segmentadas do WebSphere MQ FTE, é uma boa prática manter o tamanho da mensagem relativamente pequeno (menos de 1 MB).

Nesse exemplo, o cabeçalho DPMQFTEDestination é configurado para um servidor do FTP, que é acessado usando um ID do usuário chamado “user” e a senha “password”. O servidor FTP está localizado no endereço IP xx.xx.xx.xx. O arquivo é transferido em partes, com o prefixo do nome de “foo.part”. Quando a transferência é concluída, o arquivo é "Foo.Complete".

A ação de rota na folha de estilo do DataPower usa esse cabeçalho para configurar o destino real, como mostra a Listagem 3.

Listagem 3. Folha de estilo XML do DataPower para o roteamento do MPGW
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	version="1.0" xmlns:dp="http://www.datapower.com/extensions"
	extension-element-prefixes="dp" exclude-result-prefixes="dp">
	<xsl:template match="/">
		<!-- Get the MQRFH2 headers -->
		<xsl:variable name="MQRFH2" select="dp:request-header('MQRFH2')" />
		<!-- Parse the MQRFH2 headers to XML format -->
		<xsl:variable name="parsedMQRFH2" select="dp:parse($MQRFH2)" />

		<!-- log MQRFH2 -->
		<xsl:message dp:priority="debug">
			<xsl:copy-of select="$parsedMQRFH2" />
		</xsl:message>
		
		<!-- extract destination URL -->
		<xsl:variable name="finalDestination"
		select="$parsedMQRFH2//DPMQFTEDestination"></xsl:variable>

		<!-- set destination -->
		<dp:set-variable name="'var://service/routing-url'"
		value="$finalDestination" />
	</xsl:template>
</xsl:stylesheet>

Em relação às configurações do MPGW, o tipo de solicitação é NON-XML, a resposta é configurada como “Pass-Thru”, o controle de fluxo está habilitado e tanto a solicitação quanto a resposta são transmitidas em fluxo, como mostra a Figura 5.

Figura 5. Configuração do DataPower para o fluxo
Configuração do DataPower para o fluxo

Como já foi mencionado, o firmware do DataPower V5.x introduziu o suporte à memória estendida, que reduz bastante a necessidade de fluxo. Entretanto, para arquivos muito grandes (com mais de 1 GB), o fluxo ainda pode ser a melhor opção. É necessário levar em conta que, no modo de armazenamento em buffer, as duas transferências do FTE para o DataPower e do DataPower para o servidor FTP são estritamente sequenciais. No entanto, no modo de fluxo, as duas transferências de arquivos acontecem, em sua maioria, em paralelo, diminuindo a latência geral.

Finalmente, esse serviço não está integrado ao B2BViewer.

Caso de uso 3: transferência de arquivos de entrada usando um B2BGW

A configuração do DataPower é a mesma que foi descrita no caso de uso 1.

Nesta ocasião, o roteamento, como a identificação dos partnerIDs, segue o esquema usual do B2BGW. Em relação aos arquivos binários genéricos, a folha de estilo do b2b-routing deve ser customizada. No nosso exemplo, identificaremos o parceiro externo com base no IP de origem e o parceiro interno com base no diretório de destino.

O destino do parceiro interno é uma URL do WebSphere MQ FTE. Observe que o DataPower inclui na mensagem o destino final dentro da rede do WebSphere MQ FTE. Um destino típico do WebSphere MQ FTE é semelhante à Listagem 4.

Listagem 4. URL de backend do mqfte ao usar um objeto Q-Manager do DataPower MQ
dpmqfte://FTE-QM/?RequestQueue=DP_TO_FTE&DestAgent= 
AGT3_DP_TO_FTE&DestQM=FTE_QM&DestFile=dummyPath&Transactional=true

Os parâmetros necessários de URL são:

  • DestAgent: o agente de destino na rede do WebSphere MQ FTE que recebe uma mensagem.
  • DestQM: o gerenciador de filas de destino para o qual o agente de origem envia uma mensagem.
  • DestFile: o nome do arquivo onde o agente de destino armazena uma mensagem recebida.

Para esse caso de uso, criamos um terceiro agente do WebSphere MQ FTE chamado "AGT3_DP_TO_FTE", executando também como um serviço do Windows e com "enableQueueInputOutput=true" no arquivo agent.properties para habilitar ferramentas de fila para arquivo. O WebSphere MQ FTE precisa monitorar a fila de destino do WebSphere MQ na qual o DataPower grava e acionar uma transferência do WebSphere MQ FTE para processar o arquivo. Para fazer isso, criamos um monitor do WebSphere MQ FTE usando o comando fteCreateMonitor mostrado na Listagem 5.

Listagem 5. Comando fteCreateMonitor para o caso de uso 3
FteCreateMonitor.cmd -ma  AGT3_DP_TO_FTE   -mq DP_TO_FTE -mn XB62_Monitor 
-mt D:\Products\WMQFTE\Datapower\Stefano\XB62_Monitor.xml -pi 10 -pu seconds
-tr completeGroups

Nesse comando, –ma indica o nome do agente de monitoramento, que está configurado para "AGT3_DP_FTE_QM". O agente que criamos para esse caso de uso é utilizado como o agente de origem para a transferência acionada. O valor –mq de DP_TO_FTE é o nome da fila do WebSphere MQ a ser monitorada, que é o destino da transferência do DataPower.

–mn é o nome do monitor a ser criado, que nesse caso é "XB62_Monitor". –pu é definido em segundos; em seguida, o valor 10 de –pi define um intervalo de pesquisa de segundos. O valor –tr de completeGroups especifica que o comando de transferência do WebSphere MQ FTE definido no valor –mt só é iniciado quando um grupo completo de mensagens do WebSphere MQ chega à fila monitorada. O comando de transferência do WebSphereMQ FTE, enviado quando o grupo de mensagens está completo, é definido no arquivo de definição da tarefa de monitor especificado por meio do parâmetro –mt. Trata-se de um arquivo XML que, no nosso cenário, continha o seguinte, mostrado na Listagem 6.

Listagem 6. XML da definição da tarefa de monitor do FTE
<?xml version="1.0" encoding="UTF-8"?>
<request version="5.00" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="FileTransfer.xsd">
  <managedTransfer>
    <originator>
      <hostName>xxx.xxx.xxx.xxx</hostName>
      <userID>fteuser</userID>
    </originator>
    <sourceAgent QMgr="FTE_QM" agent="AGT3_DP_FTE_QM"/>
    <destinationAgent QMgr="${DPMQFTEDestinationQM}" agent="${DPMQFTEDestinationAgent}"/>
    <transferSet>
      <item checksumMethod="MD5" mode="binary">
        <source disposition="delete" recursive="false" type="queue">
          <queue>DP_TO_FTE</queue>
        </source>
        <destination exist="overwrite" type="file">
          <file>d:\temp\FromXB62\${DPMQFTEDestinationFile}</file>
        </destination>
      </item>
    </transferSet>
  </managedTransfer>
</request>

Esse arquivo foi criado usando a opção –gt no comando fteCreateTransfer. Usar a opção –gt para criar esse arquivo é a forma mais fácil de garantir que o formato esteja correto. Em seguida, o arquivo de definição de tarefa que foi gerado pode ser modificado conforme a necessidade, principalmente para substituição de variáveis.

No arquivo de definição de tarefa acima, sourceAgent define o agente de origem do WebSphere MQ FTE. É associado ao Queue Manager para a transferência que deve ser iniciada quando um grupo de mensagens chega do DataPower. Nesse caso, são AGT3_DP_TO_FTE e FTE_QM, respectivamente. O destinationAgent define o nome do agente de destino e é o Gerenciador de Filas para a transferência. No exemplo acima, o Gerenciador de Filas é configurado como “${DPMQFTEDestinationQM}” e o agente, para “${DPMQFTEDestinationAgent}”. Esses valores são substituídos no tempo de execução pelo valor das variáveis DPMQFTEDestinationQM e DPMQFTEDestinationAgent definidas pelo DataPower.

Finalmente, o nome do arquivo de destino é definido na tag de XML “file”. Dessa vez, o caminho é fixado no código como “d:\temp\FromXB62\”, mas nome do arquivo propriamente dito é definido pela variável DPMQFTEDestinationFile.

É importante ressaltar que o DataPower, por padrão, coloca as mensagens usando a persistência de fila padrão. Portanto, isso deve ser configurado com cuidado.

As mensagens persistentes requerem o ajuste cuidadoso dos logs do Queue Manager, mas podem sobreviver a um travamento do gerenciador. As mensagens não persistentes, por outro lado, têm um desempenho melhor, mas é possível que um arquivo desapareça sem nenhum erro claro.

Caso de uso 4: transferência de arquivos de entrada usando um MPGW (fluxo)

A configuração do WebSphere MQ FTE, nesse cenário, é exatamente igual à anterior.

A principal diferença é que o roteamento do DataPower não mais se baseia nos IDs dos parceiros de negócios, mas em alguma lógica na política de processamento.

Essa configuração suporta o fluxo para arquivos de entrada e é adequada para transferências de arquivos muito grandes.

Conclusão

Este artigo descreveu um critério claro para a escolha entre B2BGWs e MPGWs ao integrar o DataPower e o WebSphere MQ FTE. Também deu exemplos concisos de configurações funcionais.

Agradecimentos

Os autores gostariam de agradecer a Richard Kinard e Adrian Preston pelas contribuições e revisões deste artigo.

Recursos

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=WebSphere
ArticleID=834895
ArticleTitle=Usando o WebSphere DataPower e o WebSphere MQ File Transfer Edition para Gerenciar a Transferência de Arquivos
publish-date=09172012