Assim como o Modelo Canônico este tema é bastante controverso, principalmente entre os desenvolvedores (por não ter um impacto direto na entrega). Além disso, por ser uma disciplina muito conceitual, não é tão simples responder a primeira parte do título:
O que é Governança SOA?
Governança SOA, também conhecida como Governança de Serviços, é responsável por definir várias políticas e diretrizes para uma boa implantação de uma Arquitetura Orientada a Serviços. Vamos começar por sua definição:
An SOA governance system is the meta-decision system that an organization puts in place to control and constrain decision-making responsibilities related to the adoption and application of sevice-orientation. [Thomas Erl]
Em uma tradução livre seria:
Governança SOA é um sistema de meta-decisão que uma organização utiliza para controlar e restringir as responsabilidades de tomadas de decisão relacionadas à adoção e implantação de orientação a serviços.
Um sistema de decisão pode ser considerado um conjunto de regras pré-definidas. Por sistema de meta-decisão, entende-se que devem ser definidos intervalos e domínios para tais regras. Regras estas que serão úteis na adoção de uma arquitetura orientada a serviços.
Ainda parece muito vago, mas já deve ser possível compreender que não é algo que se pode comprar e sim algo de se deve construir de acordo com a estrutura e cultura da empresa.
Uma outra definição mais focada em seu objetivo:
SOA governance is the combination of people, policies, and processes within your organization that will ensure that the desired behaviors of your strategic SOA initiative are achieved.
Que pode ser traduzido como:
Governança SOA é a combinação de pessoas, políticas, e processos dentro de sua organização com o objetivo de garantir que os objetivos da sua estratégia SOA sejam alcançados.
Para isso ela deve endereçar como os serviços reusáveis são definidos, modelados, criados, acessados, executados e mantidos; incluindo todas as implicações dessas definições;
Porque é necessária?
Apesar de não ser a disciplina responsável por alguns dos itens abaixo, a definição e manutenção da Governança SOA ajuda a garantir que estes serão executados de forma corporativa e padronizada:
• Possibilita pesquisa e descoberta de serviços promovendo o seu reuso;
• Evita duplicação e melhora a sinergia entre projetos;
• Possibilita análise de impacto em alterações;
• Define e mantém padrões arquiteturais;
• Possibilita mensurar o sucesso do uso de SOA na organização;
[:en]
Assim como o Modelo Canônico este tema é bastante controverso, principalmente entre os desenvolvedores (por não ter um impacto direto na entrega). Além disso, por ser uma disciplina muito conceitual, não é tão simples responder a primeira parte do título:
O que é Governança SOA?
Governança SOA, também conhecida como Governança de Serviços, é responsável por definir várias políticas e diretrizes para uma boa implantação de uma Arquitetura Orientada a Serviços. Vamos começar por sua definição:
An SOA governance system is the meta-decision system that an organization puts in place to control and constrain decision-making responsibilities related to the adoption and application of sevice-orientation. [Thomas Erl]
Em uma tradução livre seria:
Governança SOA é um sistema de meta-decisão que uma organização utiliza para controlar e restringir as responsabilidades de tomadas de decisão relacionadas à adoção e implantação de orientação a serviços.
Um sistema de decisão pode ser considerado um conjunto de regras pré-definidas. Por sistema de meta-decisão, entende-se que devem ser definidos intervalos e domínios para tais regras. Regras estas que serão úteis na adoção de uma arquitetura orientada a serviços.
Ainda parece muito vago, mas já deve ser possível compreender que não é algo que se pode comprar e sim algo de se deve construir de acordo com a estrutura e cultura da empresa.
Uma outra definição mais focada em seu objetivo:
SOA governance is the combination of people, policies, and processes within your organization that will ensure that the desired behaviors of your strategic SOA initiative are achieved.
Que pode ser traduzido como:
Governança SOA é a combinação de pessoas, políticas, e processos dentro de sua organização com o objetivo de garantir que os objetivos da sua estratégia SOA sejam alcançados.
Para isso ela deve endereçar como os serviços reusáveis são definidos, modelados, criados, acessados, executados e mantidos; incluindo todas as implicações dessas definições;
Porque é necessária?
Apesar de não ser a disciplina responsável por alguns dos itens abaixo, a definição e manutenção da Governança SOA ajuda a garantir que estes serão executados de forma corporativa e padronizada:
• Possibilita pesquisa e descoberta de serviços promovendo o seu reuso;
• Evita duplicação e melhora a sinergia entre projetos;
• Possibilita análise de impacto em alterações;
• Define e mantém padrões arquiteturais;
• Possibilita mensurar o sucesso do uso de SOA na organização;
Olá Felipe.
Gostei da iniciativa de escrever sobre governança SOA, eu acho que é um tema que é muito falado mas ainda ficamos muito no abstrato.
Eu gosto bastante da segunda definição de govSOA, a mais focada. Acredito que definir os processos e políticas e colocar as pessoas qualificadas e certas para serem donas e responsáveis sobre esses processos e políticas algo quase que vital para a govSOA.
Sobre a parte de porque ela é necessária eu tenho uma ligeira diferença aí, acho que a govSOA tem a responsabilidade de fazer com que aqueles itens (descoberta, evitar duplicação, etc) ocorram, creio que a responsabilidade dela é maior, não acho que ela ajuda a garantir, creio que ela tem que garantir esses itens com as pessoas, processos e políticas.
Agora te pergunto, porque falamos tanto dela mas parece que nunca vemos a GovSOA sendo executada de forma poderosa? Acho que percebi muito boas iniciativas mas nada muito de porte grande, se é que me consegui fazer entender.
Um abraço e siga em frente.
Fala Roger, obrigado pela nova participação!
Realmente é um tema bastante abstrato, com poucos exemplos no nosso dia-a-dia.
Coloquei que ela ajuda a garantir, com receio de ser mal interpretado: “Agora que compramos o repositório xyz, não teremos mais replicação de serviços por aqui”. Da mesma forma que ESB != SOA, Repositório de serviços != Governança SOA. mas você está certo, vou dar uma refinada no texto para deixa-lo mais claro.
Quanto à sua dúvida, porque não vemos governança SOA?, acredito que seja por uma série de motivos, talvez o principal seja não ter impacto direto na entrega, sem ela os serviços vão continuar rodando.
Outro motivo são as ferramentas que não são maduras o suficiente, não vi nenhum repositório de grandes players rodando adequadamente.
[]s