BT

Novidades O InfoQ vem desenvolvendo uma série de novas funcionalidades para melhorar sua experiência com o site. Confira!

Experiências em serviços: lições para obter sucesso em SOA

| por Mark Little , traduzido por Marcelo Cenerino em 19 abr 2013. Tempo estimado de leitura: 4 minutos |

Ao longo dos anos, o InfoQ fez uma cobertura extensa sobre os princípios de SOA e sobre o que pode ajudar ou dificultar na sua adoção. Com mais de sete anos de artigos e notícias escritos sobre o tema, é possível acompanhar a evolução de SOA desde a propaganda inicial exagerada, passando pela adoção empresarial em larga escala, web services e a influência relativamente recente do REST. Ao longo desse período, muitas vezes foi difícil encontrar histórias de sucesso envolvendo SOA. Pesquisas indicam que apenas 20% dos projetos baseados em SOA obtiveram sucesso. Entretanto, a lista de casos de sucesso inclui alguns exemplos notáveis, como CISCO e eBay.

Um dos editores do InfoQ norte-americano, Jean-Jacques Dubray ajudou a acompanhar o SOA durante sua evolução e também teve muito a contribuir. Dubray influenciou o SOA e ajudou a implantar com sucesso muitos sistemas baseados nos seus princípios. É com esse histórico de experiências em mente que Jean-Jacques (ou apenas JJ) publicou recentemente em seu blog quatro princípios que acredita ajudar a obter sucesso com SOA:

1. Interfaces de serviços devem ser desacopladas de suas implementações

2. Toda a lógica de negócio deve ser normalizada

3. Mudar um serviço deve ser simples

- Mudanças devem ser escondidas dos consumidores de serviços até que estejam preparados para elas

- Mudanças devem ser fáceis de consumir, quando o consumidor estiver preparado

4. O versionamento de serviços deve ser baseado em compatibilidade

JJ acredita que, se esses princípios forem seguidos consistentemente através de todas as fases de design e desenvolvimento, as chances de sucesso são muito maiores. Infelizmente ele não entra em mais detalhes sobre esses princípios em sua publicação, embora sejam relativamente simples de entender. Em relação a "interfaces de serviço", JJ complementa:

As pessoas, na sua maioria, falham em SOA porque pensam em serviço como uma abstração, algo parecido com uma "classe" em orientação a objetos. A interface de serviço é um contrato que permite que mudanças sejam explícitas e controladas. [...] Não se preocupe com as fronteiras dos serviços; invista em construir a melhor interface de serviço possível (ou seja, que seja eficiente na gerência de mudanças).

Dubray cobre outros assuntos que causaram preocupações em torno de SOA no passado, inclusive governança. Nessa área, ele sugere:

Não "governe" em excesso. A governança deve permanecer mínima e baseada em senso comum e num horizonte de curto prazo (de três a seis meses). A governança de dados é muito mais importante, uma vez que qualquer mudança no modelo de informações geralmente causa impacto nas interfaces de serviços.

O acoplamento fraco é frequentemente citado como peça fundamental para obter sucesso em SOA. JJ sugere que isso pode ser alcançado quando:

A lógica de negócio implementada por trás da interface do serviço não é envolvida no contexto de interação com o consumidor. Não deve haver nenhuma duplicação da lógica de negócio ao gerenciar os estados de sistemas nos consumidores da interface.

Outra área de SOA que é frequentemente citada como importante, mas indicada como difícil de alcançar, é o reuso de serviços. Em 2009, Richard Watson do Burton Group disse:

Mesmo que um serviço nunca chegue a ser reutilizado, ainda pode agregar valor de outras formas: sendo adaptável e de baixo custo de manutenção; reduzindo a redundância; aumentando a segurança e a conformidade através da aplicação consistente de políticas; entre outros resultados desejados. O foco exclusivo em reuso não nos permite enxergar esses outros valores.

JJ concorda:

Ninguém pode construir um serviço hoje esperando que esteja preparado para ser usado por novos consumidores três anos depois. Isso é absurdo. Se pensar em reuso dessa forma, você irá falhar instantaneamente e chegará a conclusões tolas como "SOA não funciona". Em SOA (e também no mundo real), o reuso funciona de forma inversa: não é um consumidor novo quem está reusando um serviço antigo; é quase exclusivamente uma nova versão de um serviço (alterado para suportar novos consumidores) que pode ser reusada por consumidores antigos sem quebrá-los.

Quanto ao artigo de Richard Watson em 2009, JJ disse o seguinte nos comentários:

O que muitas pessoas ainda não entendem é que "reuso" em SOA não tem o mesmo significado, comparado com o que elas geralmente entendem quando ouvem a palavra "reuso". Reuso em SOA é reuso para a frente ou "para cima". Em SOA, reuso significa que a nova versão de um serviço construído para novos consumidores não quebra os consumidores existentes.

Veja mais opiniões de JJ sobre SOA no seu blog.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT