segunda-feira, 11 de abril de 2011

Governança SOA I

A dinâmica dos serviços em SOA é intensa: novos serviços são definidos a todo instante, serviços são aposentados, serviços sofrem evoluções, etc, etc, etc. A imagem é que os serviços têm vida própria. E toda vida tem um ciclo. Então, é importante controlar o ciclo de vida dos serviços. Desde o seu nascimento até o seu descarte.

Fundamentalmente, é disso que a Governança SOA trata. Acho que uma analogia ajuda. É muito comum a figura de um Administrador de Dados ("DA - Data Administrator") em uma companhia onde o conjunto de informações é complexo.

Tipicamente, um DA conhece a semântica dos dados inseridos normalmente em Gerenciadores de Bancos de Dados. Não é requerido que ele tenha um conhecimento técnico deste software como "tuning", "backups", etc. Isso é tarefa de um DBA ("Data Base Administrator"). Um DA tem como principal tarefa o conhecimento conceitual das informações armazenadas nos SGBDs: o seu significado, relacionamento entre os dados, domínios e "constraints" existentes, lógica de acesso, segurança, etc, etc, etc.

Um DA participa desde a modelagem conceitual dos dados até a confecção de novos sistemas e aplicações, fornecendo informações sobre os dados existentes para a equipe de desenvolvimento. O caminho inverso também acontece: eventualmente, a estrutura dos dados deve ser alterada para satisfazer necessidades dos desenvolvedores.

Pois bem, em Governança SOA temos necessidades semelhantes. É preciso que tenhamos um controle do serviços de negócio existentes, da mesma forma que os DAs exercem esse controle na camada de dados. Alguém deve ser responsável pelo conhecimento das qualidades funcionais e não funcionais dos serviços de negócio. Esse alguém é usualmente chamado de "SOA Governance Officer". Claro que o "Governance Officer" não possui necessariamente conhecimentos técnicos sobre a materialização e implementação dos serviços mas, mais uma vez, acompanha o ciclo de vida dos serviços de negócio conhecendo as suas qualidades e semântica.

Usualmente, os processos de Governança são classificados em dois grupos:
  • Governança a Tempo de Desenho ("Design Time"). Neste momento as preocupações de Governança são focadas em, por exemplo:
    • Determinar quais serviços estão disponíveis e são apropriados para serem expostos aos consumidores.
    • Decidir qual versão de serviços e quais métodos de manutenção e suporte.
    • Decidir qual Contrato de Governança e SLAs (“Service Level Agreements”) aplicar para cada serviço.
    • Governança a Tempo de Execução ("Run Time"). Diferentemente dos DAs em relação aos dados, a arquitetura SOA pode vir a alterar características dos serviços dinamicamente. Por exemplo:
      • Prover um novo mecanismo de consumo de um serviço.
      • Garantir a execução do Contrato de Governança assinado com o usuário.
      • Desabilitar e/ou alterar um serviço quando necessário.

    Nenhum comentário:

    Postar um comentário