Os componentes do fluxo de mediação operam em fluxos de mensagens entre
componentes de serviço. Os recursos de um componente de mediação são implementados pelas primitivas de mediação, que implementam tipos de implementação de serviço padrão.
Um componente do fluxo de mediação possui um ou mais fluxos. Por exemplo, um para pedido
e um para resposta.
O WebSphere ESB suporta
um conjunto fornecido de primitivas de mediação,
que implementam os recursos de mediação padrão para módulos de mediação implementados no WebSphere ESB. Se você precisar de recursos de mediação especiais, poderá desenvolver suas próprias primitivas de mediação customizadas.
Uma primitiva de mediação define uma operação de "entrada" que processa ou
manipula mensagens que são representadas por SMOs (Service Message Objects). Uma primitiva
de mediação também pode definir operações de "saída" que enviam mensagens
para outro componente ou módulo.
Figura 1. Módulo de Mediação Contendo Três Primitivas de Mediação
Você pode utilizar o WebSphere Integration Developer para
configurar primitivas de mediação e configurar suas propriedades. Algumas destas propriedades
podem ficar visíveis para o administrador de tempo de execução sendo promovidas. Qualquer
propriedade de primitiva de mediação que pode ser promovida também pode ser uma propriedade dinâmica. Uma propriedade dinâmica pode ser substituída, no tempo de execução, utilizando um arquivo de políticas.
O WebSphere Integration Developer também permite
modelar e montar graficamente componentes do fluxo de mediação a partir de primitivas de mediação e montar
módulos de mediação a
partir de componentes do fluxo de mediação. O console administrativo
refere-se a módulos de mediação como módulos SCA.
WebSphere Integration Developer também permite
a definição de subflixos nos módulos ou em suas bibliotecas dependentes.
Um subfluxo pode conter qualquer primitiva de mediação, exceto para a primitiva
de mediação Resolução de Política. Um subfluxo é chamado a partir de um fluxo
de pedido ou resposta ou de outro subfluxo utilizando a primitiva de mediação
Subfluxo. As propriedades promovidas a partir das primitivas de mediação em um subfluxo
são expostas como propriedades nas primitivas de mediação Subfluxo. Elas podem, então, ser promovidas novamente até que alcancem o nível do módulo;
nesse ponto elas poderão ser modificadas pelo administrador de tempo de execução.
Primitivas de Mediação Suportadas
O seguinte conjunto
de
primitivas de mediação é
suportado pelo
WebSphere ESB:
- Mapa do Objeto de Negócios
- Transforma mensagens.
- Define transformações de mensagens utilizando um mapa de objetos de negócios,
que pode ser reutilizado.
- Permite definir transformações de mensagens graficamente, utilizando o editor de mapas
de objetos de negócios.
- Pode alterar o conteúdo de uma mensagem.
- Pode transformar um tipo de mensagem de entrada em um tipo de mensagem de saída diferente.
- Mediação Customizada
- Permite implementar sua própria lógica de mediação no código Java™. A primitiva de Mediação Customizada combina a flexibilidade de uma
primitiva de mediação definida pelo usuário, com a simplicidade de
uma primitiva de mediação predefinida. É possível criar transformações complexas e padrões de roteamento:
- Criando código Java.
- Criando suas próprias propriedades.
- Incluindo novos terminais.
É possível chamar um serviço
a partir de uma primitiva de Mediação Customizada, mas a primitiva de
mediação Chamada de Serviço foi projetada para chamar serviços e
fornece funcionalidade adicional, como uma nova tentativa.
- Manipulador de Dados
- Permite transformar uma parte de uma mensagem. É utilizado para converter um elemento de
uma mensagem de um formato físico em uma estrutura lógica ou de uma estrutura lógica
em um formato físico. O principal uso da primitiva é converter um formato físico,
como uma cadeia de Texto em um objeto de Mensagem de Texto JMS,
em uma estrutura lógica do Objeto de Negócios e fazer a conversão de volta. Esta mediação é
comumente utilizada para:
- Transformar uma seção da mensagem de entrada de uma estrutura definida em outra
- um exemplo disto seria quando o SMO inclui um valor de cadeia delimitado por vírgula
e você deseja analisar isto para um Objeto de Negócios específico.
- Alterar o tipo de mensagem – um exemplo disto seria quando uma exportação JMS tiver sido
configurada para utilizar uma ligação de dados básica categorizada por JMS e, no módulo de mediação,
o desenvolvedor de integração decide se o conteúdo deve ser expandido
para uma estrutura de BO específica.
- Consulta ao Banco de Dados
- Modifica mensagens, utilizando informações de um banco de dados fornecido pelo usuário.
- Você deve configurar um banco de dados, origem de dados e quaisquer definições
de autenticação do servidor para a primitiva de mediação de
Consulta ao Banco de Dados utilizar. Utilize o console administrativo
para ajudá-lo a fazer isso.
- A primitiva de mediação de Consulta ao Banco de Dados pode
ler a partir de apenas uma tabela.
- A coluna-chave especificada deve conter um valor exclusivo.
- Os dados nas colunas de valor devem ter um tipo de esquema XML simples ou um
tipo de esquema XML que estende um tipo de esquema XML simples.
- Consulta do Terminal
- Permite o roteamento dinâmico de pedidos, procurando terminais de serviço
em um repositório.
- As informações do terminal em serviço são recuperadas de um WebSphere Service Registry and Repository
(WSRR). O registro WSRR pode ser local ou remoto.
- Você faz alterações no registro a partir do console
administrativo do WSRR.
- O
WebSphere ESB
precisa saber qual registro utilizar, portanto, é necessário criar
definições de acesso de WSRR utilizando o console administrativo do
WebSphere ESB.
- Emissor de Eventos
- Melhora o monitoramento permitindo o envio de eventos de dentro de um componente
do fluxo de mediação.
- É possível suspender a ação de mediação ao desmarcar a caixa de opção.
- Você pode visualizar eventos do Emissor de Eventos utilizando o
navegador CBE (Common Base Events) no
WebSphere ESB.
- Você deve enviar apenas eventos em um ponto significativo em um
fluxo de mediação, por motivos de desempenho.
- É possível definir as partes da mensagem contidas no evento.
- Os eventos são enviados em forma de Common Base
Events e são enviados para um servidor Common Event Infrastructure.
- Para utilizar totalmente as informações do
Emissor de Eventos, os consumidores de eventos precisam entender a
estrutura dos Common Base Events. Os Common Base Events possuem um
esquema geral, mas isto não modela os dados específicos do
aplicativo, que estão contidos nos elementos de dados estendidos. Para modelar os elementos de dados estendidos, as ferramentas do
WebSphere Integration Developer
geram um arquivo de definição do catálogo de eventos do Common Event
Infrastructure para cada uma das
primitivas de mediação
do Emissor de Eventos configurado.
Os arquivos de definição do catálogo de eventos são artefatos de
exportação fornecidos para ajudá-lo; eles não são utilizados pelo
tempo de execução do
WebSphere Integration Developer
ou do
WebSphere ESB.
Você deve consultar os arquivos de definição do catálogo de eventos ao criar aplicativos
para consumir eventos do Emissor de Eventos.
- Você pode especificar outro monitoramento no WebSphere ESB. Por exemplo, você pode monitorar eventos a serem emitidos a partir de importações e exportações.
- Falha
- Pára um caminho específico no fluxo e gera uma exceção.
- Fan In
- Ajuda a agregar (combinar) mensagens.
- Pode ser utilizado apenas em combinação com a primitiva de
mediação Fan Out.
- Juntas, as primitivas de mediação Fan Out e Fan In permitem a
agregação de dados em uma mensagem de saída.
- A primitiva de mediação Fan In recebe mensagens até que um
ponto de decisão seja alcançado, em seguida, ocorre uma saída de
mensagem.
- O contexto compartilhado deve ser utilizado para conter dados de
agregação.
- Fan Out
- Ajuda a dividir e agregar (combinar) mensagens.
- Juntas, as primitivas de mediação Fan Out e Fan In permitem a
agregação de dados em uma mensagem de saída.
- No modo de iteração, a primitiva de mediação Fan Out permite
iterar através de uma única mensagem de entrada que contém o elemento
de repetição.
Para cada ocorrência do elemento de repetição, é
enviada uma mensagem.
- O contexto compartilhado deve ser utilizado para conter dados de
agregação.
- Configurador de Cabeçalho HTTP
- Fornece um mecanismo para gerenciar cabeçalhos em mensagens HTTP.
- Pode criar, configurar, copiar ou excluir cabeçalhos da mensagem HTTP.
- Pode configurar várias ações para alterar vários cabeçalhos HTTP.
- Configurador de Cabeçalho MQ
- Fornece um mecanismo para gerenciar cabeçalhos em mensagens do MQ.
- Pode criar, configurar, copiar ou excluir cabeçalhos da mensagem do MQ.
- Pode configurar várias ações para alterar vários cabeçalhos do MQ.
- Configurador de Cabeçalho SOAP
- Fornece um mecanismo para gerenciar cabeçalhos em mensagens SOAP.
- Pode criar, configurar, copiar ou excluir cabeçalhos da mensagem SOAP.
- Pode configurar várias ações para alterar vários cabeçalhos SOAP.
- Configurador do Elemento de Mensagem
- Fornece um mecanismo simples de configurar o conteúdo de
mensagens.
- Pode alterar, incluir ou excluir elementos de mensagem.
- Não altera o tipo da mensagem.
- Os dados nas colunas de valor devem ter um tipo de esquema XML simples ou um
tipo de esquema XML que estende um tipo de esquema XML simples.
- Filtro de Mensagem
- Roteia mensagens por diferentes caminhos, com base no conteúdo da mensagem.
- É possível suspender a ação de mediação ao desmarcar a caixa de opção.
- Registrador de Mensagem
- Registra mensagens em um banco de dados relacional ou através de seu próprio criador de log. As mensagens
são armazenadas como XML, portanto, os dados podem ser
pós-processados por aplicativos identificados por XML.
- É possível suspender a ação de mediação ao desmarcar a caixa de opção.
- O esquema do banco de dados racional (estrutura de tabela) é definido pela IBM.
- Por padrão, a primitiva de mediação Message Logger utiliza o
banco de dados Comum. O tempo de execução mapeia a origem de dados em
jdbc/mediation/messageLog para o banco de dados
Comum.
- Você pode configurar classes de implementação do Manipulador para customizar o comportamento
do criador de log customizado. Opcionalmente, é possível fornecer classes de implementação do Formatador,
classes de implementação do Filtro ou ambas para customizar o comportamento do criador de log customizado.
- Resolução de Política
- Permite a configuração dinâmica de pedidos, procurando terminais em serviço
e arquivos de políticas associados, em um repositório.
- É possível utilizar um arquivo de políticas para substituir dinamicamente as propriedades promovidas
de outras primitivas de mediação.
- As informações do terminal em serviço e as informações de política são recuperadas
de um WebSphere Service
Registry and Repository (WSRR). O registro WSRR pode ser local ou remoto.
- Você faz alterações no registro a partir do console
administrativo do WSRR.
- O
WebSphere ESB
precisa saber qual registro utilizar, portanto, é necessário criar
definições de acesso de WSRR utilizando o console administrativo do
WebSphere ESB.
- Invocar Serviço
- Chama um serviço a partir de um fluxo de mediação em vez de
aguardar até o final do fluxo de mediação e utiliza o mecanismo
callout.
- Se o serviço retorna uma falha, você pode tentar novamente o mesmo serviço ou solicitar outro.
- A primitiva de mediação Chamada de Serviço é uma poderosa
primitiva de mediação que pode ser utilizada para chamadas de serviço
simples, ou em combinação com outras primitivas de mediação para
mediações complexas.
- Configurar Tipo de Mensagem
- Durante o desenvolvimento de integração, permite tratar campos de
mensagens de texto simples como se fossem de texto restrito. Um campo é
de texto simples se puder conter mais de um tipo de dados. Um campo é
de texto restrito se seu tipo de estrutura interna forem conhecidos.
- No tempo de execução, a primitiva de mediação Tipo de Mensagem
Configurado permite verificar se o conteúdo de uma mensagem
corresponde aos tipos de dados esperados.
- Parar
- Pára um caminho específico no fluxo, sem gerar uma exceção.
- Filtro de Tipo
- Permite direcionar mensagens para um caminho diferente de um fluxo,
com base em seu tipo.
- Transformação XSL
- Transforma mensagens.
- Permite desempenhar transformações XSL (Extensible Stylesheet
Language).
- Você transforma mensagens utilizando uma transformação XSLT 1.0. A transformação funciona em uma serialização XML da mensagem.