sexta-feira, 25 de setembro de 2009

O que é SOA? Uma analogia pode ajudar!

Service Oriented Architecture (Arquitetura Orientada a Serviços) é um estilo de arquitetura de TI que suporta a integração de negócios, através de serviços. Estes serviços são repetições de tarefas de negócios, como: verificar crédito do cliente, abrir conta corrente, etc. Tudo baseado em padrões abertos.

Ok. Acredito que quase todas as pessoas que já estudaram algo sobre SOA já leram algo parecido (ou igual) ao que está escrito na frase acima. Mas, afinal, como traduzir isso para as pessoas que não estão habituadas com esta abordagem? Realmente, o que é SOA?

Uma maneira que eu encontrei para explicar SOA foi de fazer uma analogia entre esta arquitetura com a comunicação entre as pessoas no mundo... Vou tentar explicar:

Há diferentes idiomas e dialetos espalhados pelo mundo. Mas como uma pessoa que fala japonês pode se comunicar com outra pessoa que fala português?

Há algumas alternativas:


  1. Mímica. Vai ser complicado, mas em conversas simples, como saber que horas são ou qual a direção de tal rua as duas partes vão se entender. Agora, complique um pouco. Explique a teoria da relatividade em mímica... Eu não quero nem tentar.
  2. A utilização de uma pessoa como tradutor. A conversa vai ter os seus gaps (pois uma pessoa fala, o tradutor compreende e fala no idioma da outra pessoa e vice-versa). Há pequenos riscos neste método de comunicação, pois o tradutor tem que ser fluente nas duas línguas (e ter bom caráter). Traduções erradas podem levar a conseqüências não muito agradáveis.
  3. Utilização de uma linguagem mais “universal”, com o inglês. Quantas vezes você já não se viu (ou viu alguém) falando em inglês com uma pessoa que falava outra língua, como o japonês e para ambos a língua inglesa não era o idioma nativo. Nesta conversa também temos os riscos de traduções erradas ou mesmo um não conseguir entender o outro (mesmo ambos achando que tem o inglês fluente... sic)

Mas existe uma língua universal para resolver estes problemas? Se formos céticos a resposta vai ser não. Porem ao abrir um pouco mais a mente, temos sim uma linguagem mundial: a “matemática”. Em qualquer lugar do mundo 2 + 2 = 4. e equações de 1º Grau são equações de 1º Grau.

Já que temos uma linguagem universal, podemos dizer que SOA é igual a matemática.

Os serviços são as equações (que utilizam números e operações). As mesmas equações são utilizadas em diversos cálculos para trazer diferentes resultados para diferentes propósitos. A utilização e a
reutilização das equações equivale a uma arquitetura orientada a serviços.

Assim como na matemática, em uma arquitetura orientada a serviços também temos estágios que temos que passar, por exemplo, uma criança não aprende nas suas primeiras aulas de matemática como calcular uma Diferencial. Primeiro ela aprende as operações básicas, depois equações, trigonometria e por ai em diante. Há um grau de maturidade que ela tem que passar.

Importante: Como qualquer analogia, não se deve levar ao pé da letra, ok?

2 comentários:

Fernando disse...

Serviços que não são de negócio não são SOA?

São o q?

Filipe Cotait disse...

Isso é bem polêmico. Mas a resposta é não!

Existem serviços de negócio e serviços tecnológicos. SOA é baseado em serviços de negócios!