09 de April de 2008

Adoção de SOA

Estágios, dicas e boas práticas para uma estratégia de sucesso

Há alguns anos, o termo SOA (Service Oriented Architecture ou Arquitetura Orientada a Serviços)surgiu como uma buzzword, chamando cada vez mais a atenção dos executivos de TI. Para alguns, SOA é apenas um conjunto de novas siglas para tecnologias que já estão disponíveis. Para outros, SOA é a bala de p

rata que irá resolver os problemas de TI de hoje. Para mim: nem uma coisa, nem outra.Uma simples pesquisa no G

oogle das palavras “SOA Benefits” traz mais de 2 milhões de ocorrências. Seus benefícios são ponto pacífico. Mas vale retomar algumas reflexões que me ajudaram muito no entendimento e nos primeiros passos com relação a SOA.

SOA permite a criação de serviços de negócio interoperáveis, que podem facilmente ser reutilizados e compartilhados entre aplicações e empresas.

Na definição acima, é importante salientar algumas palavras-chave relacionadas a SOA que ajudam a determinar as principais características dessa abordagem:

  • SOA é uma abordagem arquitetural corporativa: ou seja, não é um produto ou uma tecnologia. Dessa forma, ninguém pode simplesmente vender SOA. Além disso, é corporativa, ou seja, não é a arquitetura de uma aplicação, mas sim uma abordagem para a empresa toda. Porém, cuidado! É importante salientar que “para a empresa toda” é um termo perigoso. Gosto muito de uma frase do Frank Kenney, do Gartner: “don’t try to boil the ocean”. Ou seja, embora SOA seja destinada a uma aplicação corporativa, muitas empresas esquecem o mais importante: abordagem incremental, pensar grande, começar pequeno e avançar rápido!
  • Serviços de negócio: ao contrário de iniciativas anteriores para serviços distribuídos como CORBA, por exemplo, SOA tem como grande diferencial o foco no “valor para o negócio”. Ou seja, quando falamos em Serviços de Negócio, estamos falando em serviços como “Análise de Risco”, “Aplicação de promoções”, Recuperação de dados da apólice” e “Tracking da localização do pacote que está sendo entregue”, para citar alguns exemplos que conseguem ser facilmente mapeados para o negócio das empresas.
  • Interoperáveis: isso significa ser baseados em tecnologias padronizadas. O objetivo é permitir que serviços desenvolvidos em uma determinada plataforma, JEE, por exemplo, possam ser acessados por outras aplicações (da própria empresa ou de terceiros) e também desenvolvidos em outras tecnologias, como MS.NET, por exemplo.
  • Reutilização: o reúso dos serviços desenvolvidos é vital em uma iniciativa SOA e essa característica deve guiar as decisões arquiteturais tomadas durante o processo de implantação desse conceito.

Normalmente, temos visto as empresas vivendo quatro estágios diferentes de adoção de SOA:

  • Iniciação: quando a empresa está explorando os conceitos, se capacitando, verificando como SOA pode trazer benefícios, fazendo análise de GAP e “vendendo” o business case internamente.
  • Planejamento e design: quando a empresa já tem funding, normalmente atrelado a um determinado projeto-piloto, e está planejando os processos de governança, nivelando os conhecimentos das equipes envolvidas, desenhando a arquitetura de referência para a construção dos serviços, selecionando as ferramentas e a infra-estrutura de execução SOA e desenhando as fases do projeto piloto.
  • Implementação: quando a empresa está realizando os serviços do projeto-piloto, implantando a infra-estrutura SOA selecionada e verificando outros serviços já existentes na empresa que possam ser reutilizados.
  • Melhoria e acompanhamento: quando a empresa começa a analisar criticamente os resultados alcançados nessa primeira fase e realimenta os processos e as decisões tecnológicas tomadas na fase de planejamento e design. Trata-se de um ciclo contínuo que levará a empresa a níveis mais elevados de maturidade.

Tenho visto no Brasil um interesse muito grande por SOA, mas as empresas, salvo raras exceções, ainda estão no estágio do entendimento. Normalmente, os executivos de TI já estão sensibilizados sobre o “discurso SOA” e interessados na sua implantação, mas ainda não conhecem ao certo seus benefícios. Para a empresa embarcar na onda SOA é preciso fazer um roadmap que determine a motivação, benefícios esperados e investimentos necessários, tudo isso dividido em fases, de forma a minimizar os riscos e potencializar os resultados.
Em cenários mais complexos de integração, a existência de processos de governança que determinem papéis e responsabilidades ao longo do ciclo de vida dos serviços é fator crítico para o sucesso da iniciativa SOA.

– Kleber Bacili

Responses

Realmente existe muito interesse por SOA, mas poucos procuram entender realmente os benefícios e estratégias explicados neste artigo.

Algumas abordagens que deveriam organizar a casa para SOA nem foram consolidadas ainda no Brasil como, por exemplo, CBD – poucos buscam realmente entender os conceitos e os reais retornos – e muitos já estão comentando os mesmos erros com SOA, ou seja, sair fazendo sem estudar os conceitos que deveriam nortear esse mundo de ferramentas e iniciativas de vendedores.

Algumas boas iniciativas são “queimadas” no mercado, assim, por exemplo, o RUP, muitos utilizaram apenas os templates e não procuraram entender os conceitos básicos: foco na arquitetura; desenvolvimento iterativo; e dirigido por caso de uso.

Aplicar o conceito principal de SOA e saber de suas possíveis vantagens é conhecimento comum para a grande maioria de profissionais da área de TI. Até de fácil aprendizado implementar um serviço(Web Service, por exemplo), a dificuldade maior está em encontrar ou maturar as práticas necessárias para que estas inúmeras vantagens realmente apareçam. O desenvolvimento ou esquecimento da SOA depende em muito de experiências maturadas. Enumerar erros e estágios ‘um bom começo. Um processo de desenvolvimento que norteie os usuários talvez fosse uma boa idéia. O que acham? ( Puxando a discurssão )

Leave a response

Your response: