SOA: Avaliação sobre os modelos de maturidade SOAMM e OSIMM

8
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.

Transcript of SOA: Avaliação sobre os modelos de maturidade SOAMM e OSIMM

Page 1: SOA: Avaliação sobre os modelos de maturidade SOAMM e OSIMM

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.

Page 2: SOA: Avaliação sobre os modelos de maturidade SOAMM e OSIMM

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.

Page 3: SOA: Avaliação sobre os modelos de maturidade SOAMM e OSIMM

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

Page 4: SOA: Avaliação sobre os modelos de maturidade SOAMM e OSIMM

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.

Page 5: SOA: Avaliação sobre os modelos de maturidade SOAMM e OSIMM

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;

Page 6: SOA: Avaliação sobre os modelos de maturidade SOAMM e OSIMM

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.

Page 7: SOA: Avaliação sobre os modelos de maturidade SOAMM e OSIMM

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

Page 8: SOA: Avaliação sobre os modelos de maturidade SOAMM e OSIMM

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.