Chamada Dinâmica de Enterprise Information Systems Usando Fluxos de Mediação WebSphere ESB em WebSphere Adapters

Este artigo mostra como chamar dinamicamente enterprise information systems (EIS) usando WebSphere Adapters e fluxos de medição de WebSphere ESB e como aplicar esse modelo a vários cenários de negócios.

Jeffrey I S Dare, Software Engineer, IBM

Jeffrey I S Dare é engenheiro de software no IBM India Software Lab em Bangalore, Índia. Ele em três anos de experiência com WebSphere Adapters e está atualmente trabalhando em Support and Development para adaptadores de recursos baseados em arquivos e adaptadores de recursos de ECM. O email de Jeffrey é jeffdare@in.ibm.com.



Ramya Rajendiran, Staff Software Engineer, IBM

Ramya Rajendiran é engenheira de software no IBM India Software Lab em Bangalore, Índia. Ela tem cinco anos de experiência com WebSphere Commerce e WebSphere Adapters e está trabalhando atualmente em suporte e desenvolvimento para adaptadores de recursos baseados em arquivos. É autora do IBM Redbook "WebSphere Commerce Line-Of-Business Tooling Customization". O email de Ramya é ramya.raji@in.ibm.com.



Ramkumar Ramalingam, Software Developer, IBM  

Ramkumar RamalingamRamkumar Ramalingam é Advisory Software Engineer no IBM India Software Lab em Bangalore, Índia. Ele é comitter e membro do Comitê de Gerenciamento do projeto Apache Tuscany e membro da Comunidade de Especificação Java OASIS SCA. O email de Ramkumar é ramkumar_rj@in.ibm.com.



30/Out/2012

Introdução

A família IBM® WebSphere® Adapter consiste em diversos adaptadores de tecnologia e de aplicativo baseados na norma JCA 1.5. Esses adaptadores permitem que desenvolvedores de integração integrem diversos tempos de execução -- como WebSphere Application Server, WebSphere ESB e IBM Process Manager -- com vários EIS -- como SAP, Siebel, Oracle, PeopleSoft, JD Edwards, Lotus Domino, bancos de dados JDBC, protocolos FTP/FTPS/SFTP, sistemas de arquivo simples e servidores de email.

WebSphere Adapters são usados no centro da lógica de integração de negócios em vários sistemas de negócios complexos. Sua funcionalidade de saída é usada quando os fluxos de negócios precisam chamar algumas funções de EIS. Em muitos cenários, os Adapters precisam conectar-se a diferentes instâncias de EIS dinamicamente, com base em critérios de roteamento -- como dados de negócios ou condições -- que são conhecidos apenas no tempo de execução. Este artigo oferece uma solução ao desafio enfrentado por usuários de WebSphere Adapter quando a lógica de negócios requer que o aplicativo chame dinamicamente diferentes EIS no tempo de execução. A solução usa fluxos de mediação de WebSphere ESB em uma abordagem "sem código", que reduz a complexidade, duplicação e manutenção.

Cenários de negócios para chamada dinâmica

Aqui estão alguns casos de uso para chamada dinâmica de EIS:

  • Para todos os WebSphere Adapters: Quando o EIS não oferece balanceamento de carga e o cliente quer implementar balanceamento de carga baseado em adaptador.
  • Para todos os WebSphere Adapters: Quando uma instância de EIS está inativa e o aplicativo precisa realizar failover para uma instância diferente dinamicamente.
  • Para WebSphere Adapter para Email: Quando o aplicativo do cliente que está usando o adaptador quer direcionar mensagens de email recebidas para um servidor de correio específico com base em algum valor. Esse recurso é uma limitação com WebSphere JCA Adapter.
  • Para WebSphere Adapter para FTP: Quando o fluxo de mediação precisa conectar-se a diferentes servidores FTP dinamicamente, baseado em quais usuários fazem login.

Limitações com Websphere JCA Adapters

A estrutura atual de WebSphere Adapters não permite configuração de adaptador para conexão dinâmica a diferentes instâncias de EIS. Além disso, a especificação de JCA não tem suporte para conexão dinâmica. Por isso, é difícil para WebSphere Adapters oferecerem esse recurso, e os casos de uso listados acima em "Cenários de negócios para chamada dinâmica" atualmente não podem ser implementados de forma simples. Em vez disso, os usuários precisam desenvolver e implementar várias instâncias de adaptador, o que cria os seguintes problemas:

  • Maior duplicação de ativos e código
  • Maior complexidade da lógica de negócios
  • Maior tempo de desenvolvimento
  • Maior tempo de manutenção

Chamada dinâmica usando WebSphere ESB

WebSphere ESB tem suporte para reencaminhamento de mensagens por meio de substituição dinâmica de terminais com definição estática, ou chamada dinâmica usando uma importação de destino. WebSphere ESB também tem suporte para redirecionamento dinâmico de mensagens de resposta. Quando um módulo de mediação é desenvolvido e implementado, o fluxo de mensagens através do módulo usa informações estáticas. É possível inserir valores fixos descrevendo as importações, ligações e destinos usando WebSphere Integration Developer. Mensagens que passam pelo módulo de mediação usam esses valores.

Em alguns aplicativos, é possível substituir ou alterar alguns desses valores estáticos no tempo de execução. É possível fazer dinamicamente, substituindo um valor especificado para um endereço de terminal, ou selecionando uma nova importação de destino. Nesse caso, o fluxo de mensagem é alterado de acordo com as informações na mensagem. Para obter mais informações, consulte Dynamic invocation no centro de informações de WebSphere ESB. Este artigo explica como é possível chamar dinamicamente EIS usando WebSphere Adapters e o recurso de chamada dinâmica de fluxos de mediação de WebSphere ESB.

Pré-requisitos

  • IBM Integration Developer
  • Conhecimento de trabalho sobre fluxos de mediação
  • Conhecimento de trabalho sobre WebSphere Adapters

Suposições

  • São usados WebSphere Adapter para FTP e sua operação Create.
  • WebSphere Adapter para FTP é implementado no nível de nó de WebSphere Application Server.
  • Diferentes connection factories gerenciados são definidos, cada um referenciado por seu JNDI.

Etapas de chamada dinâmica

As etapas abaixo configuram WebSphere Adapter para FTP para uma operação Create de saída, mas aplicam-se a qualquer configuração de adaptador de saída. Em um cenário normal, FTPImport pode usar apenas um conjunto de propriedades definidas em Managed Connection Factory (MCF). As etapas a seguir mostram como o mesmo FTPImport pode ser usado com diferentes conjuntos de propriedades para se conectar a diferentes servidores FTP dinamicamente.

  1. Arraste e solte FTP Outbound Adapter da paleta para criar um FTPImport usando o assistente External Service. Selecione FTPImport para configurar uma operação Create e insira as propriedades necessárias:
    Figura 1. Criar FTPImport no assistente
    Criar FTPImport no assistente
  2. Na paleta, clique em Componentse, em seguida, arraste o componente Mediation Flow para o diagrama de conjunto:
    Figura 2. Criar componente Mediation Flow
    Criar componente Mediation Flow
  3. Agora é necessário um novo business object (BO), que assume o nome do JNDI do connection factory gerenciado (MCF). Crie um BO que assume todas as propriedades necessárias para o FTP de saída e o nome do JNDI para o MCF:
    Figura 3. Criar um novo business object
    Criar um novo business object
  4. Crie uma interface e inclua a operação Request and Response, que tem o BO criado na etapa anterior:
    Figura 4. Criar uma operação Request and Response
    Criar uma operação Request and Response
  5. Inclua essa interface no fluxo de mediação e ligue a FTPImport:
    Figura 5. Ligue o fluxo de mediação a FTPImport
    Ligue o fluxo de mediação a FTPImport
  6. Clique duas vezes em Mediation Flow e clique em Operation Map para mapear as operações dessas duas interfaces:
    • A interface de entrada que você criou na Etapa 4
    • A interface criada por FTP Adapter
    Figura 6. Mapear as operações das duas interfaces
    Mapear as operações das duas interfaces
  7. A Etapa 6 cria um input_map entre as duas operações, como mostra a Figura 7:
    Figura 7. Mapa de medição das duas interfaces
    Mapa de medição das duas interfaces
  8. Clique duas vezes em input_map para mapear todos os campos necessários de acordo com as necessidades de negócios:
    (Clique aqui para ampliar a imagem.)
    Figura 8. Mapear todos os campos necessários
    Mapear todos os campos necessários
  9. Para chamar dinamicamente o EIS, é necessário apenas mapear o campo de endereço de destino em SMOHeader, que está disponível no caminho smo/headers/SMOHeader/Target/address da estrutura em árvore:
    (Clique aqui para ampliar a imagem.)
    Figura 9. Mapear o campo de endereço de destino
    Mapear o campo de endereço de destino
  10. 10 Com base na entrada fornecida em MCF_JNDI, a solicitação será executando usando esse MCF.
  11. Informe o JNDI do MCF no seguinte formato de URI: jca:jndi:<JNDI of the MCF>.

Exemplos

Aqui estão alguns exemplos que demonstram o uso de JNDI de MCF como parte da solicitação de saída. Nesses exemplos, com um único FTPImport configurado, é possível chamar dinamicamente EIS diferentes por meio da solicitação de saída.

Exemplo 1

Solicitação de saída Create para o MCF referenciado por jca:jndi:jndi/ftp1 usando FTPImport:

Figura 10. Solicitação do Exemplo 1
Solicitação do Exemplo 1
Figura 11. Resposta do Exemplo 1
Resposta do Exemplo 1

Exemplo 2

Solicitação de saída Create para o MCF referenciado por jca:jndi:jndi/ftp2 usando o mesmo FTPImport:

Figura 12. Solicitação do Exemplo 2
Solicitação do Exemplo 2
Figura 13. Resposta do Exemplo 2
Resposta do Exemplo 2

Os dois exemplos acima mostram que, usando apenas um único FTPImport, foi possível enviar solicitações a dois servidores FTP diferentes com base em dois MCFs diferentes jndi/ftp1 e jndi/ftp2

Conclusão

Neste artigo, você aprendeu uma técnica e uma abordagem de solução para chamar dinamicamente EIS diferentes no tempo de execução, usando WebSphere Adapters e fluxos de mediação de WebSphere ESB. Essa abordagem "sem código" permite lidar com os casos de uso listados acima em Cenários de negócios para chamada dinâmica.

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=843446
ArticleTitle=Chamada Dinâmica de Enterprise Information Systems Usando Fluxos de Mediação WebSphere ESB em WebSphere Adapters
publish-date=10302012