domingo, 3 de agosto de 2008

WebServices - Integração X SOA

(Depois de um longo tempo sem postar, mas acumulando muita informação, vamos retomar o compartilhamento.)

Uma das primeiras dúvidas que surge quando se inicia o estudo de SOA é se "WebServices e Serviços em SOA" são a mesma coisa. A dúvida é natural, até mesmo por conta do termo "serviço".

Nota: Aliás, o termo "serviço" gera confusões a todo momento, não somente com relação a WebServices, mas porque se trata de um termo com aplicabilidade em vários contextos. E (felizmente ou infelizmente) não costumamos empregar "namespaces" ao estabelecermos diálogos. Assim, enquanto a adoção de SOA se encontra em processo de disseminação na empresa, conversas do tipo "melhorar a eficiência dos serviços da empresa" geram dúvidas sobre se estes "serviços" têm relação com SOA ou não. Pode ser que haja a relação, caso se trate de um processo de negócio automatizado, ou em vias de ser automatizado, que demandará o uso de Tecnologia da Informação para acesso a alguma funcionalidade de negócio, como por exemplo uma "reserva de tickets". Mas, pode ser que os "serviços" a serem melhorados sejam trabalhos operacionais que envolvam, por exemplo, a redistribuição de tarefas entre funcionários. Parece estranho, mas acontece. Vez por outra você estará questionando ou explicando que o "serviço" em questão trata-se ou não de SOA. E não raramente, passará a usar de termos como "Serviços SOA".

Um dos erros mais comuns é achar que o uso de WebService (WS) significa adotar SOA. SOA não se trata de uma tecnologia ou linguagem, mas uma mistura de um estilo arquitetural e método de desenvolvimento refletindo uma estratégia de negócio.

Alguns projetos requerem a integração entre aplicações de diferentes tecnologias. Isto pode ser realizado através de WS. Para projetos suportados por uma estratégia SOA, WS também podem ser utilizados como tecnologia para "concretização" dos serviços.

Segue um quadro comparativo do uso da tecnologia de WebServices nestas abordagens:

 

WS para Integração

WS em SOA

Foco

Técnico

Negócio

Requisitos

Interoperabilidade

Consumo (ou exposição) de funcionalidade de negócio

Desafios

Governança TI, Versionamento

Governança SOA, Versionamento, Granularidade

Benefícios

Flexibilidade para alterações na camada de integração

Interoperabilidade, Agilidade na mudança de processos de negócio

Ferramentas

UUDI, ESB

Registry, ESB, BPMS

WS - Integração X SOA

Algumas diferenças são sutis, como a questão da interoperabildiade. Em um problema de integração a interoperabilidade surge como um requisito, uma condição que deve ser atendida. Apesar de também ser importante em SOA, a interoperabilidade, ao utilizar WS, surge mais como um benefício.

A relação entre estas abordagens permeia entre a estratégia de negócio e o uso de tecnologia. Um problema de integração pode não demandar qualquer estratégia orientada a serviços. Entretanto, uma SOA tratará a integração como um de seus pilares.

 

Pensamentos Finais

Há uma diferença crucial na estratégia de uso da tecnologia WebServices para realização de Serviços em SOA e para Integração: "Meio e Fim". Enquanto que para Integração, WS pode ser a solução (fim). Para SOA, WS é o caminho mais apropriado atualmente (meio).