segunda-feira, 14 de março de 2011

SOA não pode ser um fim em si mesmo

A concepção de coisas como SOA não tem objetivo diferente daquele de qualquer outra tecnologia: atender alguma necessidade corporativa. Seja ela reduzir custos através do reaproveitamente de funcionalidades já existentes em aplicações legadas, implementação de federações de empresas para ofertas de novos produtos e serviços, etc, etc, etc. A construção de uma arquitetura de servíços, em tese, auxilia, e muito, a materialização das respostas a destas demandas.

A questão principal é que um projeto SOA deve ter um propósito. E não pode ser tecnológico. SOA deve ser construído para atingir algum objetivo de negócio de uma companhia.

SOA é uma arquitetura de serviços de negócios. Um serviço de negócio é aquele com a maior afinidade possível com os requerimentos de uma empresa. Este é o nível de abstração que um projeto de Arquitetura Orientada a Serviços deve atingir. Caso contrário poderíamos chamar tal projeto de integração de sistemas ou de qualquer outro nome. Menos de SOA.

E um projeto para a elaboração e construção de SOA deverá não somente entender o quão complexo são os temas pertinentes ao negócio da companhia como deverá também desenhar e modelar os seus serviços. Identificá-los. Especificá-los. Definir o seu relacionamento.

Este projeto, então, deveria contar com a participação de profissionais que entendem as necessidades do negócio da companhia e, mais importante ainda, percebem e requerem novas qualidades e funcionalidades. Daí outra observação: é bastante difícil a definição e implementação de uma Arquitetura de Serviços sem a presença de profissionais que entendem os temas não somente da indústria à qual a empresa trabalha como as especializações necessárias à empresa em questão. Em outras palavras: para implementar SOA na sua plenitude é necessário que façam parte do projeto analistas de negócio que não somente entendem requerimentos de indústria como os seus detalhes dentro da companhia. O serviço de "Convergent Billing" não é somente específico à indústria de telecomunicações mas também difere entre as empresas deste mercado.

A máxima "SOA promove o alinhamento entre TI e áreas de negócio" tem sido repetida exaustivamente nos últimos anos. Acredito que o correto seja sutilmente diferente mas que produz objetivos bem distintos: "O alinhamento entre TI e áreas de negócio é que promoverá SOA".

 Igualmente importante é a noção que SOA não é a resposta ideal para todos os problemas. A propósito, atualmente, muito se fala sobre "soluções" de tecnologia para negócio. É necessário que notemos que a palavra "solução" carrega, intrinsecamente, um problema a ser resolvido. Para apresentar uma "solução", seja ela qual for, é necessário que saibamos, antes de tudo, qual o problema que se apresenta.
O mesmo vale para SOA: há situações onde simplesmente SOA não é a melhor solução, ou ainda pior, uma solução ruim. Jason Bloomberg, analista do ZapThink um dos autores junto com Ronald Schmelzer do livro "Service Orient or Be Doomed!: How Service Orientation Will Change Your Business",  escreveu em 2004 um artigo chamado "When Not to Use an SOA" sobre este tema. Recomendo não somente a leitura do artigo mas também o registro no "site".

Nenhum comentário:

Postar um comentário