Modelagem de serviços com UML

Este artigo discute como a UML pode apoiar a modelagem de serviços em projetos SOA, facilitando a comunicação no seu time nos processos de identificação, especificação e realização de serviços.

Fique por dentro
Este artigo tratará do uso da linguagem UML para a modelagem de serviços em projetos SOA. O artigo descreve como um projetista pode se apoiar nos recursos visuais e facilidade de modelagem da UML para facilitar a comunicação no seu time nos processos de identificação, especificação e realização de serviços.

O artigo é útil para analistas, arquitetos, desenvolvedores que estejam trabalhando em projetos centrados em serviços com o uso de arquiteturas SOA para que estes realizem o processo de modelagem com maior maturidade. O artigo também é útil para estudantes de graduação e especializações que desejem conhecer o estilo arquitetural SOA e os seus benefícios sobre as abordagens tradicionais monolíticas.

A arquitetura orientada por serviços é um estilo arquitetural para o desenvolvimento de aplicações baseadas em pequenos ativos reusáveis, chamados de serviços.

Esta abordagem busca ofertar diversas vantagens sobre as abordagens monolíticas tradicionais, que entregam aplicações em grandes sistemas executáveis com grande acoplamento entre suas partes. Algumas destas vantagens incluem:

A Figura 1 apresenta um esquema deste modelo, onde cada um dos serviços, bem como dos clientes que os consomem, podem ser implementados em tecnologias distintas.

Figura 1. Visão Geral de uma Arquitetura Centrada em Serviços.

Para que times construam sistemas de software centrados em serviços, eles devem identificar e especificar serviços e realizar tarefas de modelagem. Este artigo descreve como a linguagem de modelagem UML pode apoiar desenvolvedores e projetistas nestas atividades.

O ciclo de vida de projetos SOA

Projetos SOA (Service Oriented Architecture) requerem, tipicamente, que os estágios da Figura 2 sejam executados.

Figura 2. Ciclo de Vida de Projetos SOA.

A identificação de serviços tem por objetivo gerar uma lista de serviços candidatos a partir da análise de metas de negócio, processos de negócio e ativos já existentes na organização.

A especificação tem por objetivo selecionar, a partir da lista de serviços candidatos, os serviços que serão implementados e gerar uma especificação destes.

A especificação gera um contrato técnico que define as operações, mensagens e contratos de um serviço e as políticas a ele aplicadas. Finalmente, a realização tem por objetivo implementar e testar um serviço em conformidade com os padrões arquiteturais estabelecidos na organização. Exemplos destes padrões incluem o WS-* ou RS-*.

Normalmente, a etapa de identificação gera um lote de serviços candidatos que são então organizados em pequenos projetos. Cada projeto entrega poucos serviços através da especificação e realização de forma iterativa e incremental.

O trabalho resultante da especificação é organizado em um ou mais modelos de serviço, que podem ser documentos puramente textuais ou documentos mais leves que façam uso de desenhos e diagramas.

Observamos da nossa experiência em projetos que documentos textuais e longos não são lidos e geram grande desperdício de esforço e tempo dos projetistas. A UML, neste sentido, se mostra uma ferramenta eficaz para reduzir o tempo de documentação, pois utiliza a linguagem visual para melhorar a comunicação entre analistas de negócio, arquitetos, desenvolvedores e analistas de teste.

A evolução da modelagem em sistemas de TI

A modelagem de sistemas SOA é uma evolução natural dos mecanismos de modelagem de sistemas existentes na TI desde os anos 70. No modelo de maturidade OSIMM (Open Group Service Integration Maturity Model) os níveis de maturidade de modelagem são apresentados (ver Figura 3).

Figura 3. Níveis de maturidade de modelagem.

Modelagem de serviços e a linguagem UML

Conhecer as características de um serviço nos ajuda a modelá-lo com maior precisão. Estas características incluem:

A UML, através de diagramas de classes, fornece instrumentos precisos para expressar contratos e avaliar quantitativamente o acoplamento entre serviços. Os diagramas de componentes e implantação da UML permitem expressar a alocação de serviços a componentes e expressar, portanto, a sua operação autônoma.

Finalmente, diagramas de casos de uso permitem expressar as funcionalidades de negócio e apoiar na correta identificação da granularidade destes serviços." [...] continue lendo...

Artigos relacionados