BizTalk ESB Toolkit 2.0": Serviço de resolução

Ola ;)

Para garantir o desacoplamento dinâmico entre o provedor e o consumidor dos serviços, o barramento precisa de uma nova capacidade que podemos chamar de “Catálogo ou Registro”. Esta capacidade garante que o consumidor possa descobrir as informações mais relevantes dos serviços. O pacote “BizTalk ESB Toolkit 2.0” vem com vários provedores de resolução: como o UDDI, WS-MEX, BRE, XPATH e o uso de registros estáticos. A melhor solução a escolher será definida de acordo com a aplicação.

O Serviço de Resolução fornece uma interface web service para uso de aplicativos externos. Para consumir um serviço, você precisa disponibilizar no seu código um “ResolverString”. Este “ResolverString” define o tipo de provedor e o nome do serviço do qual você quer resgatar informações. Baseado neste cenário, o “ResolverString” vai ser processado e irá retornar o resultado para o consumidor com as descrições do serviço.

Exemplo de um “ResolverString” com UDDI 3.0: “UDDI3:\\serverUrl=https://localhost/uddi;serviceKey=uddi:esb:purchaseorder”

De modo geral, podemos definir o seguinte cenário: o consumidor quer acessar um serviço de cadastramento de usuários, mas ele não tem as informações necessárias para estabelecer uma conexão direta. O consumidor precisa mandar uma requisição para o serviço de resolução, que vai retornar as informações disponíveis no catálogo de serviços. É importante mencionar que este serviço não passa pela mensageira do servidor BizTalk Server, mas pode ser usado diretamente como descrito ou dentro de um fluxo de interações.

Fluxo do processo de  Resolução       

                   image

Descrição:

      1. Processo encaminha a mensagem com a interação de resolução para o “Enterprise Service Bus”
      2. O anexo da mensagem é processado via o processo de resolução de serviços.
      3. O “Enterprise Service Bus” entrega a mensagem para o serviço de destino.
      4. O “Enterprise Service Bus” recebe a mensagem de retorno do serviço destino.
      5. O “Enterprise Service Bus” retorna a mensagem para o consumidor do serviço.

Exemplo de Código com enpoint : ( https://server/ESB.ResolverServices.WCF/ResolverService.svc)

O serviço de resolução executa este ruleset e traz novamente o valor que o Transformar serviço requer para a conclusão (Valor Mapa).

  • Resolver String = string resolverString = @"BRE:\\policy=Teste.transformacao;version=1.0;useMsg=";
    • Retorno = mapa = resolver.Value;
  • Chamada de Transformação: string resultString = client.Transform(xmlString, mapa);
    • Retorno: String Transformado (ResultString)

 

    2:  ("ResolverEndpoint");
    3:  try
    4:  {
    5:  rClient.ClientCredentials.Windows.AllowedImpersonationLevel =
    6:  System.Security.Principal.TokenImpersonationLevel.Impersonation;
    7:  string resolverString = @"BRE:\\policy=Teste.transformacao;version=1.0;useMsg=";
    8:  Resolver[] resolverCollection = rClient.Resolve(resolverString);
    9:  foreach (Resolver resolver in resolverCollection)
   10:  {
   11:  if (resolver.Name == "Resolver.TransformType")
   12:  {
   13:  mapa = resolver.Value;
   14:  break;
   15:  }
   16:  }
   17:  rClient.Close();
   18:  }
   19:  catch (System.ServiceModel.CommunicationException){client.Abort();}
   20:  catch (System.TimeoutException) { client.Abort(); }
   21:  catch (System.Exception) { client.Abort(); throw; }
   22:  Console.WriteLine("Calling ESB Guidance transform service");
   23:  string resultString = client.Transform(xmlString, mapa);
   24:  Console.WriteLine(resultString);
   25:  client.Close();
   26:  }
   27:  catch (System.ServiceModel.CommunicationException){client.Abort();}
   28:  catch (System.TimeoutException) { client.Abort(); }
   29:  catch (System.Exception) { client.Abort(); throw; }
   30:  Console.WriteLine("done");
   31:  Console.ReadLine();

Na semana que vem, vamos falar mais sobre as outras capacidades do “BizTalk ESB Toolkit 2.0”

Microsoft BizTalk ESB Toolkit 2.0

Ref.: https://msdn.microsoft.com/en-us/dd876606.aspx

O pacote está disponível no link a seguir:

Download BizTalk ESB Toolkit 2.0
Ref.: https://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=bc86cf1e-ef29-4b19-95f7-388f64555090

Artigo MSDN: https://msdn.microsoft.com/pt-br/library/dd920288.aspx

 

Abraço Markus