Esse é o primeiro post de uma série da qual irei abordar o tema “granularidade de serviços”.
Um dos grandes desafios de SOA refere-se à granularidade de serviços. É muito comum encontrarmos referências como livros ou páginas na Internet, que ressaltam a necessidade da escolha correta do nível de granularidade do serviço, porém, dificilmente elas mencionam técnicas ou métodos que auxiliam nesta tarefa. Além disso, para o Gartner, a granularidade de serviços está entre os cinco erros técnicos mais comuns em projetos de implementação SOA pelas organizações. Vejam em: Bad Technical Implementations and Lack of Governance Increase Risks of Failure in SOA Projects.
Granularidade é um tema extremamente importante para arquiteturas empresariais porque tem impacto direto sobre dois dos principais aspectos da orientação a serviços: a composição de serviços de baixo acoplamento, e o reúso de serviços individualmente em diferentes contextos. Não são os únicos aspectos, mas são os principais. Está diretamente relacionado com o tamanho do serviço.
Já vou adiantando que não existe fórmula mágica para encontrar a granularidade correta de um serviço. Assim como não existe a fórmula que determina o tamanho correto de uma classe ou de um método na orientação a objetos. Enfim, posso afirmar francamente que granularidade de serviço é uma decisão de design. Ou também pode ser considerada uma decisão de análise de equilíbrio (trade-off), onde os ganhos de um aspecto técnico do serviço na escolha de um design podem significar prejuízos em outros aspectos.
Cabe aqui algumas definições importantes:
Granularidade
A palavra granularidade refere-se a condição de granular, ou em outras palavras aquilo que é semelhante ao grão ou composto de pequenos grãos. O termo granularidade é muito utilizado no design de software. A idéia é utilizá-lo como uma escala de medida para comunicar maior ou menor grau de profundidade sobre algum nível de abstração.
Granularidade Fina e Grossa
A próxima definição importante quando abordamos o tema granularidade é a diferença entre granularidade fina e grossa, seus benefícios e desafios. Porém como o assunto é extenso, vamos destrinchá-lo no próximo post da série.
- Fábio Rosato
Enviado por: Fábio Rosato
Posts relacionados:
- Princípios Básicos de SOA – Baixo Acoplamento
- Princípios Básicos de SOA – Serviços são Capazes de se Compor
- Princípos Básicos de SOA – Serviços Abstraem a Lógica
- Os mitos do SOA
Categorias:
Divulgue esse post:
LinkTo 