Artigo: SOA? Não se esqueça da Governança!

  • Home
  • Blog
  • SOA? Não se esqueça da Governança!

2013

14/out

img SOA? Não se esqueça da Governança!É impressionante a quantidade de empresas que ao adotar SOA se deparam com dificuldades que, muito frequentemente, fazem com que a nova arquitetura já nasça desacreditada, perdendo a credibilidade não só dos responsáveis pela construção e manutenção dos artefatos, como também dos próprios envolvidos na decisão de adoção da arquitetura.

Outro fato comum é a crença de que um único produto – ou suíte de produtos – será suficiente para promover a suave entrada da empresa no mundo dos serviços. Isso não é verdade! Existem diversos fatores que devem ser observados para que a SOA seja implantada de forma eficiente e possa produzir os benefícios que motivaram a adoção pela empresa de uma arquitetura orientada a serviços.

SOA na Empresa

Uma das maiores motivações para a criação do SOA é a necessidades de padronização para a comunicação entre sistemas de informação heterogêneos. Se o SOA deve facilitar a comunicação entre diferente sistemas, então é sensato concluir que estes sistemas sejam geridos e mantidos por diferentes pessoas, ou diferentes equipes, eventualmente em departamentos ou até em filiais e empresas diferentes.

Um fator que pode condenar ao fracasso um projeto de SOA é a localização organizacional dos responsáveis pela gestão, concepção e manutenção dos ativos relacionados à arquitetura. O problema reside no fato de que, como as soluções em SOA permeiam o negócio da organização, estas devem ser geridas a partir de uma visão global e de uma forma que incentive a cooperação entre as equipes responsáveis pelos diversos sistemas da empresa.

Quando a gestão dos artefatos SOA não é centralizada ou é mal definida, passa a ser comum o “jogo de empurra”, em que cada equipe procura se desvencilhar da responsabilidade por determinado problema, atribuindo geralmente a culpa à camada de infraestrutura. Outra ocorrência bastante comum é a que podemos chamar de “problema sem causa aparente”: imagine que o sistema X precisa de uma informação que reside no sistema Y. Já que é uma necessidade do sistema X, a equipe X fica incumbida de desenvolver a consulta ao sistema Y (com alto custo, já que a equipe X não conhece bem o sistema Y). Como a equipe Y não tem envolvimento com este processo e desconhece o trabalho realizado pela equipe X, em algum momento ela atualiza o sistema Y, alterando a geração da informação agora consumida pela sistema X, causando um impacto neste sistema que será bastante difícil de ser localizado.

Para prevenir estes e outros problemas, é necessário que a empresa implemente uma política de Governança SOA, procurando garantir a maturidade dos seguintes fundamentos:

Rastreabilidade

Diferentemente do que acontece com uma aplicação, serviços podem não ser centralizados, podem não possuir uma interface visual e sua execução normalmente acontece em segundo plano. Além disso, podem ser executados de forma assíncrona, ou one-way, não havendo retorno imediato sobre sua execução sendo passado ao sistema cliente e, consequentemente, ao usuário. Mesmo assim, se algum comportamento não planejado ocorrer após a solicitação do cliente, os responsáveis pelos processos SOA devem ser capazes de rastrear e identificar estes desvios, localizando onde ocorreram, providenciando a resposta e indicando a equipe que deverá trabalhar para a solução.

Reuso e Planejamento dos Ativos

A necessidade de desenvolvimento de novos serviços deve ser tratada de uma forma global pela empresa. Os serviços só farão parte do portfólio de serviços se forem devidamente conhecidos e gerenciados de forma centralizada.

Quando um sistema, ou uma equipe, disponibiliza um serviço e não comunica ao resto da empresa de forma clara e padronizada a sua existência e função, a utilização do novo serviço será fatalmente restrita e local. Um serviço desconhecido pela empresa não pode ser reutilizado e, ainda pior, pode ser novamente desenvolvido por outra equipe que o necessite, gerando redundância e desperdício de recursos. Da mesma forma, quando a construção de um novo serviço se mostra necessária, é importante que este seja projetado levando-se em consideração as necessidades de toda a organização e construído de forma a maximizar o seu reuso.

Dependências

Deve ser possível identificar de forma simples as interdependências entre os diversos artefatos que compõem uma solução. Na medida que o portfolio de serviços de uma organização cresce, cada vez mais se torna comum a composição de serviços.

A possibilidade de implementar a composição de serviços é uma das maiores vantagens do SOA.  É ela que flexibiliza os serviços existentes transformando uma funcionalidade básica em algo maior. A composição de serviços também possibilita, em caso de mudanças no negócio, uma reestruturação mais rápida do processo.

Apesar destas características serem as principais vantagens do SOA, elas também criam uma grande dependência entre artefatos diferentes, globalizando problemas e indisponibilidades. Portanto, é fundamental para a empresa compreender bem as dependências entre os diversos artefatos de seu portfólio, de modo a maximizar os benefícios que o SOA pode proporcionar, minimizando as contrapartidas.

Ciclo de Vida

Serviços, da mesma forma que aplicações e sistemas, também possuem ciclos de vida. É imprescindível para uma organização conhecer em que fase de seu ciclo de vida cada serviço se encontra.

Um ciclo de vida simplificado de um serviço poderia ser, por exemplo: projetado, desenvolvimento, produção, desaconselhável (deprecated) e aposentado.

A gestão do ciclo de vida em uma organização com uma vasta carteira de serviços, por si só, não é uma tarefa simples. Esta tarefa torna-se ainda mais complexa se levarmos em consideração o fato de que serviços podem ser versionados. Esta característica faz com que serviços possam existir simultaneamente em mais de uma fase de seu ciclo de vida, como no exemplo a seguir: um serviço X pode estar na fase “aposentado” na versão 1.0, pode estar na fase “deprecated” na versão 1.1, pode estar na fase “produção” na versão 2.0, pode estar na fase “desenvolvimento” na 2.1 e pode estar na fase “projetado” na versão 3.0. Isso significa que este mesmo serviço existe em 3 planos diferentes. Ele deixou de existir nas versões inferiores a 1.1; existe funcionalmente nas versões 1.1 e 2.0 e está em confecção nas versões acima de 2.1.

Segurança

É extremamente importante para a governança de serviços que estes serviços sejam utilizados por quem e da forma que foram planejados. É imprescindível que a organização tenha total controle sobre o seu portfólio de serviços.

Uma organização deve certificar-se que as informações que trafegam em seus serviços só devem ser acessadas por clientes autorizados. Deve garantir que a informação permaneça íntegra e que só seja alterada ou modificada por clientes que tenham o devido privilégio para isto. Além disso, deve garantir que o acesso aos clientes autorizados não seja negado por conta de uma ação maliciosa (por exemplo, ataque DoS).

Confiabilidade

Os processos desenvolvidos através de serviços normalmente são executados no backstage e não são facilmente visíveis na organização. Esta falta de visibilidade obriga que sua implementação seja confiável e preveja a ocorrência de possíveis problemas, implementando métodos de recuperação e notificação em caso de falhas. Cuidados simples e atenção neste sentido facilitam a recuperação de um processo falho, seja automaticamente, seja informando ao responsável pelo monitoramento do processo que um erro ocorreu e onde, agilizando e simplificando uma intervenção manual.

SLA

É fundamental para a governança SOA que os seus artefatos tenham definidas suas metas de nível de serviço, além dos papéis e responsabilidades das partes envolvidas. Esta definição deve ser adequada ao atendimento das necessidades de negócio da organização.

O SLA é de fundamental importância neste contexto, pois é nele que estarão definidos, aceitos e formalizados os níveis de serviço esperados pelos clientes.

Monitoramento

O monitoramento contínuo dos ambientes onde os serviços estão disponibilizados também é um fator fundamental para a governança. É imprescindível conhecer em detalhes o funcionamento dos diversos ativos possibilitando a prevenção de problemas ou, quando isso não for possível, analisar causas e evitando novas ocorrências.

Como pudemos ver, ao analisarmos o que é necessário para a adoção do SOA, percebemos que o primeiro e maior objetivo a ser alcançado deve ser a adequação da cultura corporativa.
A partir daí poderemos observar em detalhes quais fundamentos estão deficientes na organização e precisam de mais atenção e/ou investimentos, sejam internos em metodologia, arquitetura ou  pessoal, ou externos, como em novos produtos, mentoring ou consultoria.

Não existe mágica e nem tudo são flores, mas a entrada no universo SOA será bem menos turbulenta e muito mais assertiva para uma organização que conhece bem os princípios do SOA e sabe o que esperar e onde precisa investir.

Até a próxima…  Tchau!

José Gomez

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Contato

Download de arquivo

* Todos os campos são obrigatórios.