SOA: Avaliação sobre os modelos de maturidade SOAMM e OSIMM
1. SOA: AVALIAÇÃO SOBRE OS MODELOS DE MATURIDADE
SOAMM E OSIMM
Rafael Hernane Ramalho
Resumo
Este documento apresenta uma breve descrição e comparação dos modelos de maturidade SOA,
SOAMM e OSIMM. Nele poderão ser encontradas as características principais de cada modelo,
suas subdivisões, vantagens e desvantagens, além da aplicabilidade segundo análise do autor.
Palavras-chave: Artigo, SOA, SOAMM, OSIMM, Modelo, Maturidade
1. Introdução
A sociedade vive um momento de grande dependência tecnológica. Graças à internet e ao
desenvolvimento de redes e dispositivos móveis, há um consumo cada vez maior de novas
tecnologias e, principalmente, de informação. A necessidade de informação é tamanha que uma
simples falha no acesso à internet pode gerar um absoluto caos nas grandes cidades em questão
de poucas horas.
Neste contexto, as empresas se deparam com um grande desafio: gerenciar os seus sistemas
de TI para que eles trabalhem entre si de modo a prover informações de negócio rapidamente e
de forma competitiva, resultando nos produtos e serviços que atendem aos seus clientes.
Entretanto esta não é uma tarefa fácil. Há alguns fatores que geram complicações no dia-a-dia
de TI. Existência de sistemas legados, arquiteturas heterogêneas, segregação de informações
em aplicações distintas, necessidade de comunicação com fornecedores e parceiros externos e
alterações de negócio decorrentes de mercado ou regulamentação, são apenas alguns dos pontos
que podem dificultar o desenvolvimento de sistemas em TI de forma ágil e coesa.
Para apoiar na tarefa de criar softwares de forma competitiva, surgiu em TI um modelo
arquitetural de desenvolvimento de software chamado Arquitetura Orientada a Serviços, ou
SOA (do acrônimo em inglês). Este modelo propõe uma aproximação maior de TI e negócio
graças à adoção de um componente fundamental chamado serviço.
2. 2
Em linhas gerais, um serviço pode ser traduzido como uma função de negócio, uma ação
que pode ser executada nas aplicações de uma empresa para atender a um processo vigente ou
para obter determinada informação. Tal conceito gera um ganho considerável na velocidade do
desenvolvimento de sistemas, uma vez que este serviço pode ser reaproveitado por várias
aplicações, independente de plataforma ou linguagem de programação. Isso gera uma redução
de custos operacionais e simplifica o relacionamento entre os sistemas corporativos.
Além disso, esta abordagem de desenvolvimento trazida pelo SOA permite padronizar a
forma como as empresas trocam informações entre si, aumentando a confiabilidade e agilidade.
Um exemplo prático de desenvolvimento no modelo proposto por SOA: em uma
determinada empresa, os sistemas de relacionamento com clientes (CRM) e de logística
precisam consultar o endereço de um cliente a partir de seu CEP. Através do conceito de
serviços proposto pelo SOA, o time de desenvolvimento de software dessa empresa pode criar
uma única aplicação que consulte o endereço a partir de um CEP diretamente na base de dados
dos Correios.
Dessa forma esta aplicação, chamada de serviço, pode ser utilizada não só pelas aplicações de
CRM e logística, mas por qualquer outra que tenha a necessidade de saber o endereço de alguém
a partir do código postal.
Esta simplificação de desenvolvimento proporcionará para a empresa uma grande economia de
tempo e dinheiro caso precise criar uma nova aplicação ou alterar aplicações já existentes, uma
vez que o serviço que consulta endereço através do CEP está criado e precisa ser apenas
acionado pelas aplicações para cumprir sua função.
Quando o desenvolvimento de aplicações é baseado no modelo SOA, um passo natural a ser
dado é a implementação de governança para este modelo, ou seja, a prática da gestão adequada
sobre os componentes desenvolvidos, a fim de maximizar a reutilização de serviços e garantir
a redução de tempo e custo.
Com relação à governança, é importante avaliar os modelos de maturidade SOA que podem
ser utilizados. A seguir serão apresentados os modelos SOAMM e OSIMM.
3. 3
2. SOAMM
A sigla SOAMM é o acrônimo em inglês para SOA Maturity Model, um modelo de
maturidade SOA que foi desenvolvido pela Microsoft e baseado no CMM. Ele apresenta 4
níveis de maturidade, apresentados em ordem crescente:
Básico: nível de maturidade onde a empresa ou não implementou ainda nenhum serviço ou
apresenta uma pequena quantidade de serviços desenvolvidos;
Padronizado: a empresa já está desenvolvendo uma quantidade satisfatória de serviços para
atender a demandas de negócio, porém ainda não possui padrões de design bem definidos;
Avançado: a empresa já está em pleno desenvolvimento de serviços e as demandas de negócio
não causam grandes problemas de implementação. A empresa já possui uma arquitetura SOA
bem definida e práticas de design;
Dinâmico: comporta empresas que são capazes de criar, alterar e reaproveitar processos e
serviços de forma rápida, atendendo às necessidades de negócio.
Os 4 níveis de maturidade do SOAMM abrigam 36 capacidades tecnológicas que guiarão os
times de desenvolvimento durante a implementação de SOA.
A figura a seguir apresenta os níveis de maturidade e suas respectivas capacidades.
Figura 1: Níveis de maturidade do SOAMM
Fonte: Microsoft, 2007
4. 4
As capacidades são agrupadas em 3 perspectivas: administração, consumo e implementação.
Na perspectiva de administração, encontram-se as capacidades de uma empresa em suportar
aspectos operacionais da abordagem de serviços e a governança deste modelo de forma geral.
A perspectiva de consumo apresenta as capacidades de uma empresa em adotar e promover o
uso de serviços. Estas capacidades são base para suportar e desenvolver o consumo de serviços
em um nível maior de complexidade.
Por fim, a perspectiva de implementação apresenta as capacidades de uma empresa em criar
boas práticas e padrões na criação de serviços, otimizando o desenvolvimento de software e
assim atingindo ao máximo o benefício pregado pelo SOA.
3. OSIMM
O OSIMM, sigla em inglês para Open Group Service Integration Maturity Model, é um
modelo de maturidade SOA criado de forma independente a fornecedores de mercado, ou seja,
é um modelo aberto e neutro mantido pelo Open Group, um consórcio que tem por objetivo a
melhoria do desenvolvimento de softwares através da adoção de padrões.
Diferente de outros modelos de maturidade, o OSIMM vai além das avaliações ligadas a
padrões, arquiteturas e processos de TI. Ele pode alcançar pontos que também tangem
diretamente o negócio da empresa. Dessa forma, trata-se de um modelo mais amplo, que
contempla outras dimensões em sua avaliação.
Ao todo existem 7 dimensões no OSIMM: Negócios, Organização e Governança, Métodos,
Aplicações, Arquitetura, Informação e Infraestrutura e Gerenciamento. Estas dimensões, por
sua vez, são divididas em níveis de maturidade crescente. A figura a seguir apresenta a matriz
de avaliação do OSIMM.
5. 5
Figura 2: Matriz de avaliação OSIMM
Fonte: The Open Group, 2015
Na matriz acima, verifica-se que os níveis de maturidade estão dispostos em colunas e
organizados, de forma crescente da esquerda para a direita.
Dessa forma, pode-se descrever os seguintes níveis de maturidade:
Nível 1 – Silo: cada setor da empresa desenvolve suas próprias aplicações, sem preocupação
com integração de dados ou adoção de padrões de software;
Nível 2 – Integrado: há um esforço para integrar as aplicações e dados, porém as informações
não são padronizadas e por isso é necessário realizar a conversão de informação;
Nível 3 – Componentizado: os sistemas já são decompostos em partes menores
(componentes), porém a integração deles ainda possui alta dependência e por isso há muita
redundância de funções e informação;
Nível 4 – Serviço: já existe a utilização de serviços no desenvolvimento de aplicações e estes
são desenvolvidos nos moldes previstos pelo SOA;
6. 6
Nível 5 – Serviços Compostos: as aplicações utilizam plenamente a interação entre vários
serviços através da linguagem de modelagem de processos de negócio;
Nível 6 – Serviços virtualizados: os serviços possuem baixa dependência da sua infraestrutura,
permitindo aumentar a complexidade na composição de serviços.
Nível 7 – Serviços Reconfigurados Dinamicamente: permite que os serviços sejam
localizados e compostos dinamicamente, sem ação do time de desenvolvimento.
Com base nos níveis de maturidade e dimensões analisadas pelo OSIMM é possível ter ao final
do processo de avaliação a classificação efetiva da maturidade que a empresa apresenta na
implementação de SOA e o conjunto de GAP’s levantados para tratamento futuro.
4. Comparação entre os modelos SOAMM e OSIMM
Após analisar as características dos modelos SOAMM e OSIMM é possível realizar uma
comparação objetiva entre os dois modelos usando como referências suas características
principais.
O SOAMM é um modelo proprietário, ou seja, sustentado por um fornecedor de software -
a Microsoft. Este fato pode torna-lo em algum momento um modelo tendencioso,
principalmente em relação à escolha dos softwares e plataforma para implementação de SOA.
O OSIMM, por outro lado, é um padrão que não está atrelado a nenhum fabricante de
software, o que lhe concede maior neutralidade.
Além disso, o OSIMM apresenta uma profundidade maior em sua avaliação. Enquanto o
SOAMM apresenta pontos intrínsecos a TI, o OSIMM permite abstrair a avaliação da empresa
para as áreas e processos de negócio, gerando maior valor no processo de implementação do
SOA, não só quanto à evolução no desenvolvimento de software orientado a serviços, mas
também na aproximação entre TI e negócio.
Entretanto, vale destacar que a avaliação de maturidade através do modelo SOAMM permite
a obtenção de resultados num menor tempo e com o foco na definição de roadmap.
Portanto, cabe a cada organização definir suas expectativas em relação à avaliação de
maturidade SOA e assim eleger o melhor modelo para ajudá-la a atingir seus objetivos.
7. 7
5. Conclusões e considerações
Após avaliar os modelos de maturidade SOAMM e OSIMM é possível identificar que ambos
possuem grande valor para as empresas, porém diferenciam-se entre si por suas características
fundamentais.
O modelo SOAMM é mais prático, enxuto e focado nas questões de TI. Com base em sua
estruturação recomenda-se o uso por empresas que querem uma avaliação mais rápida e
superficial da aplicação de SOA. Com esta avaliação a definição do roadmap de melhorias
também tende a ser mais rápido. Este modelo pode ser indicado para fábricas de software,
empresas prestadoras de serviço de TI ou organizações de menor porte que tenham processos
de negócio mais simples.
O modelo OSIMM é mais denso, completo e focado em questões de negócio. Sua utilização
implica numa avaliação minuciosa não só de TI, mas também das áreas de negócio que acabam
demandando trabalho para a TI. O resultado da avaliação é um material com diretrizes que
desencadearão mudanças consideráveis nas principais áreas da empresa.
Dessa forma, pode-se indicar este modelo para organizações que almejam utilizar o modelo
SOA como uma de suas principais engrenagens. Este modelo tem grande chance de ser bem-
sucedido em grandes empresas, cujos processos de negócio sofrem grandes variações devido a
necessidades de mercado e a questões regulatórias ou que tenham processos com maior nível
de complexidade.
6. Bibliografia Consultada
HURWITZ, Judith; BLOOR, Robin; KAUFMAN, Marcia; HALPER, Dr. Fern. Service
Oriented Architecture for Dummies. Indianapolis: Wiley Publishing Inc., 2009.
MARZULLO, Fabio Perez. SOA na prática: inovando seu negócio por meio de soluções
orientadas a serviços. São Paulo: Novatec, 2009.
WIKIPEDIA. Service Oriented Architeture. São Paulo, 2015. Disponível em:
<https://pt.wikipedia.org/wiki/Service-oriented_architecture>. Acesso em: 29/12/2015
8. 8
INFOQ. Maturidade em Governança SOA - A Visão de um Arquiteto. São Paulo, 2016.
Disponível em: <http://www.infoq.com/br/articles/soa-gov-architect-s-view>. Acesso em:
05/01/2016.
INFOQ. Contract Versioning, Compatibility and Composability. São Paulo, 2016. Disponível
em: <http://www.infoq.com/articles/contract-versioning-comp2>. Acesso em: 05/01/2016.
INFOQ. SOA Contract Maturity Model. São Paulo, 2016. Disponível em:
<http://www.infoq.com/articles/soa-contract-maturity-model>. Acesso em: 05/01/2016.
ORACLE. Oracle SOA - Service-Oriented Architecture. São Paulo, 2016. Disponível em:
<http://www.oracle.com/br/products/middleware/soa/overview/index.html>. Acesso em:
05/01/2016.
SENAC. SOA – Arquitetura orientada a serviços. São Paulo, 2015. Disponível em:
<http://www.edilms.eti.br/uploads/file/infrasft/unid05-is-soa.pdf>. Acesso em: 29/12/2015.
SENSEDIA. OSIMM – Modelo de maturidade SOA aberto. São Paulo, 2015. Disponível em:
http://sensedia.com/blog/soa/osimm-modelo-de-maturidade-soa-aberto/. Acesso em:
29/12/2015.
MICROSOFT. Assessment and Roadmap for Service Oriented Architecture. São Paulo, 2015.
Disponível em: <http://download.microsoft.com/download/9/d/1/9d1b5243-21f6-4155-8a95-
1f52e3caeeaa/SOA_Assessment-and-Roadmap_Datasheet_2007.pdf>. Acesso em:
29/12/2015.
THE OPEN GROUP. OSIMM Version 2 Technical Standard: The Model. São Paulo, 2015.
Disponível em: http://www.opengroup.org/soa/source-book/osimmv2/model.htm. Acesso em:
09/01/2016.