Determinando o conjunto de destinos de mensagens em tempo de execução no aplicativo BizTalk

StackOverflow https://stackoverflow.com/questions/3821517

  •  26-09-2019
  •  | 
  •  

Pergunta

Sou um novato completo no BizTalk e preciso criar um aplicativo BizTalk 2006 que transmita mensagens de uma maneira específica. Não estou pedindo uma solução completa, mas para conselhos e diretrizes, quais capacidades do BizTalk eu deveria usar.

Há uma fonte de mensagem, para simplificar, digamos, um diretório em que o usuário adiciona arquivos para publicá -los. Existem vários assinantes, cada um com um diretório para receber arquivos publicados. O número de assinantes pode variar no curso da exploração do programa. Existem também algumas regras que determinam se um assinante específico precisa receber um arquivo específico, com base no nome do arquivo. Por exemplo, cada assinante possui um padrão ou máscara de nome do arquivo quais arquivos que eles recebem devem corresponder. Essas regras (por exemplo, padrões) também podem mudar no tempo.

Eu não sei como fazer isso. Crie um conjunto de portas de envio em tempo de execução, cada uma para cada destino? É possível? Use uma porta alterando sua ligação? Funcionaria corretamente com envios simultâneos? Existem outras maneiras?

EDITAR

Percebi que minha pergunta pode ser obscurecer e general para preferir uma resposta a outra para aceitar. Então eu apenas os votei.

Foi útil?

Solução

Se as alterações no destino forem frequentes, você estará certo na busca de uma solução mais dinâmica. Uma boa solução é usar portas de envio dinâmico e o mecanismo de regras de negócios. Você cria regras definidas para as mensagens que está recebendo. Isso pode ser baseado em uma propriedade de destino ou ID do cliente na mensagem. Usando esses fatos, o mecanismo de regras pode retornar um monte de informações, como máscara de arquivo, nome do servidor, endereço IP do Deleiver Server etc. Você pode usar essas informações para configurar o envio dinâmico na orquestração. O verdadeiro bom aqui é que você pode atualizar a regra definida no mecanismo de regras sem reimplementar toda a solução. Como um Newb, esses são alguns conceitos avançados, mas não tão difíceis quanto você imagina.

Para uma solução mais simples, convém definir as propriedades dos adaptadores de envio de arquivo por meio de seu esquema de propriedade (isto é, nome do arquivo, diretório etc.). Você pode extrair esses valores de um banco de dados com uma classe auxiliar dentro de uma forma de expresenison. Em cada mensagem Ogig Out, use a propriedade Shcema para definir onde a mensagem será enviada e nomeada. Dessa forma, você apenas atualiza o banco de dados à medida que as coisas mudam.

Boa sorte!

Outras dicas

Você pode procurar usar portas de envio dinâmico para conseguir isso - se seus assinantes forem realmente dinâmicos. Isso introduz um pouco de complexidade, pois você precisará usar uma orquestração para configurar as propriedades da porta de envio com base em suas regras.

Se puder, tente remover a complexidade. Se você sabe que não precisa ser verdadeiramente dinâmico ao adicionar assinantes (ou seja, um assinante e suas regras podem ser configuradas apenas uma vez) e você tem um número gerenciável de assinantes, sugiro a configuração de cada assinante usando sua própria porta de envio e use um filtro para criar assinaturas com base nas propriedades do contexto da mensagem. A beleza dessa abordagem é que você não precisa criar e implantar uma orquestração e isso se torna uma solução altamente performante e escalável.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top