SOA, ecologia e yin-yang

O SOA é uma visão de ecológica da TI? Não olhamos mais o como as aplicações são feitas, mas em como elas interagem

Existem várias dimensões a serem consideradas nesta arquitetura e gosto de pensar em uma hierarquia de necessidades (ver Maslow).

Em baixo da pirâmide, as necessidades básicas: identidade, instrumentação, desempenho e funcionalidade.

Identidade é a mais simples: todos queremos garantir que usa um serviço só quem tem direito a ele.

Instrumentação é, talvez, o mais esquecido: poucos se lembram que o maior custo de um software está na sua manutenção. Sempre vejo a instrumentação também como oportunidade: chamadas a interfaces são sempre um bom lugar para coletar dados muitas vezes difíceis de resgatar de dentro dos softwares legados.

O baixo desempenho é um dos principais fatores que fazem uma arquitetura SOA falhar. Existe uma hierarquia natural na intercomunicação: quão mais longe a distância entre as partes, menor a velocidade e maior a latência. Chamar funções dentro de um mesmo processo tem muito melhor desempenho do que chamar um fora. Quão mais longe, pior. Mesma máquina >> máquinas distribuídas. Se não contarmos com esta natureza da intercomunicação fracassaremos. Velocidade da banda e latência da intercomunicação - estes são os nomes dos vilões.

E a funcionalidade? Esta é a que traz mais discussões.

Já existe uma Gestalt em todo processo de análise.

Gestalt?

“A collection of physical, biological, psychological or symbolic entities that creates a unified concept, configuration or pattern which is greater than the sum of its parts.”

É o que diz a Wikipedia: entidades que criam um conceito, configuração ou padrão que é maior que a soma das partes.

Na SOA isto significa ter uma discussão que leva em conta não só as características funcionais (o que o serviço tem de fazer), mas também a estrutura da intercomunicação. Na SOA os dois andam irremediavelmente juntos. Quão mais distante a intercomunicação, menos interação e dependência entre o tempo de resposta precisamos ter, e isto muda a natureza do serviço.

Funcionalidade e desempenho: o yin e o yang da SOA?