Freigeben über


WCF LOB Adapter SDK : Falando com as aplicações de negócio.

Olá pessoal, tudo certo?

Depois de uma grande discussão sobre o mundo SaaS com o último post, vamos olhar novamente para o mundo SOA. Pode ser? :)

Quando falamos sobre o consumo/exportação de serviços de aplicações de negócio, ou Line-of-Business Applications (LOB), algumas empresas resumem a discussão no uso de um ESB - Enterprise Service Bus. Essa infra-estrutura aparece na arquitetura muitas vezes sem uma visão clara sobre como será seu uso. Questões importantes para a definição de serviços, como o modelo de exportação de exceções, modelo de auditoria, serviços de autenticação, autorização, repositório, segurança, onde estará a lógica de negócio, se haverá uma composição de negócios e serviços, se precisamos de um motor de BPM, etc. são alguns exemplos. Claro, a discussão sobre o uso de um ESB é muito importante e deve ser realmente tratada durante a definição de uma arquitetura corporativa. Pensar sobre o modelo de repositórios, como resolveremos o problema da conexão de serviços ponto-a-ponto, como publicar e administrar os serviços gerados na arquitetura, etc, são determinantes para o sucesso de uma arquitetura SOA.

Mas gostaria de atentar para o fato de que realmente muitas questões mais básicas podem ser tratadas antes da adoção pura de um ESB. Exercitar essas questões de uma forma agnóstica é uma abordagem que pode dar bons resultados.

Lembrando sempre que, algumas aplicações precisam mesmo de um middleware de alto desempenho e não uma composição de serviços, pois latência e respeito ao SLA (Service Level Agreement) são elementos críticos para o sucesso daquela aplicação e o negócio que ela implementa. Uma discussão que aparece é se entendemos bem quando precisamos de um middleware e quando precisamos de uma composição de serviços.

Desse modo, gostaria de sugerir olhar os elementos básicos de uma orientação a serviços. Qual template de serviço WCF será utilizado? Qual o host de serviços que melhor se aplica? Será usado o IIS, o Windows Services, ou um modelo doméstico para o host de serviços? Temos um mapa de bindings necessários para o bom desempenho da aplicação? Finalmente, quais mensagens e serviços estarão presentes na arquitetura final SOA?

Uma ferramenta que tem me ajudado nessa discussão inicial é o conhecido diagrama de sequência do UML 1.x. Ele possui algumas limitações para cenários de interações complexas ou trocas de mensagens com muita variabilidade, porém, consegue representar um desenho inicial sobre o que deveremos esperar das várias interações entre sistemas numa arquitetura SOA. No wikipedia temos uma página inicial interessante sobre esse diagrama:

Sequence Diagram
Ref.: https://en.wikipedia.org/wiki/Sequence_diagram

Só para citar, ter uma visão sobre quais capacidades devem ser suportadas pela arquitetura SOA é também muito importante, como já falamos aqui no post "Service-Oriented Architecture e Modelos de Maturidade - Revisitando o assunto..."

Assim, de volta às bases, podemos pensar num modelo de adaptadores que façam a conexão direta com nossas aplicações de negócio (LOB) que deveremos integrar na arquitetura. Independente do uso de um ESB ou inventário de serviços, vamos precisar conversar com esse legado.

Na plataforma Microsoft, temos disponível o Windows Communication Foundation© (WCF) Line-of-Business (LOB) Adapter SDK, que oferece um modelo simplificado de programação sobre WCF, acrescentando recursos como navegação de metadados, pesquisa e recuperação de funcionalidades publicadas, além de ferramentas de desenvolvimento e geração de testes sobre os adaptadores gerados.

Uma visão sobre a arquitetura proposta é dada a seguir:

image

Da figura acima, notamos que a arquitetura é baseada no modelo de canais do WCF (WCF Channel Model) e já oferece alguns adaptadores out-of-box disponíveis como WCF JMS Adapter (para comunicação com o ambiente J2EE) e o WCF SAP Adpater (para comunicação com o ambiente SAP). Outros adaptadores poderão ser construídos com o Custom WCF LOB Adapter template.

Como todo SDK, alguns samples são instalados com o pacote no diretório "C:\Program Files\WCF LOB Adapter SDK\Documents\Samples". Entre eles o EchoAdapterSamples, onde temos a seguinte solução no Visual Studio:

image ...onde vemos a referência para o Microsoft.ServiceModel.Channels do WCF, conforme comentado.

Finalmente, pensar nas questões básicas que estarão em nossa arquitetura é um exercício importante e pode orientar o uso de muitos frameworks e pacotes de desenvolvimento já disponíveis no mercado. Isso pode economizar muito trabalho de nossas equipes de desenvolvimento ao longo do projeto.

Para o download do WCF LOB Adapter SDK veja os links:

WCF LOB Adapter SDK - download
Ref.: https://www.microsoft.com/downloads/details.aspx?FamilyID=56278FDE-B708-469C-987E-DED9C6C5E580&displaylang=en

WCF LOB Adapter SDK - Service Pack 1
Ref.: https://www.microsoft.com/downloads/details.aspx?FamilyId=0F8007D7-F0C9-4169-8B9C-BA55F8F4C153&displaylang=en

E alguns artigos interessantes já estão na Web:

WCF LOB Adapter SDK Overview
Ref.: https://technet.microsoft.com/en-us/library/bb798126.aspx

WCF LOB Adapter SDK Tutorials
Ref.: https://technet.microsoft.com/en-us/library/bb798114.aspx

Developing adapters using WCF
Ref.: https://blogs.msdn.com/sonuarora/archive/2007/03/26/about-wcf-lob-adapter-sdk.aspx

Por enquanto é só! Até o próximo post :)

Waldemir.

Comments