Escolar Documentos
Profissional Documentos
Cultura Documentos
DEVMEDIA
Buscar
comentrios
Gostei
(3)
Curtir
(0)
A
arquitetura orientada por servios um estilo arquitetural para o
desenvolvimento de aplicaes
baseadas em pequenos ativos reusveis, chamados
de servios.
Esta abordagem busca ofertar diversas vantagens sobre as
abordagens monolticas tradicionais, que
entregam aplicaes em grandes
sistemas executveis com grande acoplamento entre suas partes.
Algumas destas
vantagens incluem:
entrega iterativa e
incremental, que possibilita ciclos de projetos mais curtos e melhor retorno
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
O
ciclo de vida de projetos SOA
Projetos
SOA (Service Oriented Architecture) requerem, tipicamente, que os estgios da Figura 2
sejam executados.
Figura 2.
Ciclo de Vida de Projetos SOA.
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
A
identificao de servios tem por objetivo gerar uma lista de servios
candidatos a partir da
anlise de metas de negcio, processos de negcio e
ativos j existentes na organizao.
A especificao tem por objetivo
selecionar, a partir da lista de servios candidatos, os servios que
sero
implementados e gerar uma especificao destes.
A especificao gera um
contrato tcnico que define as operaes, mensagens e contratos de um
servio e
as polticas a ele aplicadas. Finalmente, a realizao tem por objetivo
implementar e
testar um servio em conformidade com os padres arquiteturais
estabelecidos na organizao.
Exemplos destes padres incluem o WS-* ou RS-*.
Normalmente,
a etapa de identificao gera um lote de servios candidatos que so ento
A evoluo
da modelagem em sistemas de TI
A
modelagem de sistemas SOA uma evoluo 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 nveis de maturidade de modelagem
so apresentados (ver Figura
3).
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
Modelagem
de servios e a linguagem UML
Conhecer
as caractersticas de um servio nos ajuda a model-lo com maior preciso.
Estas
caractersticas incluem:
contratos de servios
padronizados: refere-se definio da interface, ou conjunto de
granularidade em nvel de
capacidades de negcio: refere-se a garantir que a API de um servio
possua um
tamanho apropriado e orientado aos mdulos de negcio de uma organizao;
composibilidade: refere-se a
permitir que servios possam ser compostos para formar servios de
Identificao
de servios e modelagem UML
Servios
podem ser identificados atravs de fontes diversas, sendo que as mais comuns
so
processos de negcio, modelos de domnio corporativos e ativos de software
que rodem em
ambiente de produo.
Exemplos destes elementos so mostrados nas Figuras 4 a 6, em
notao UML, para um exemplo
didtico de um sistema acadmico. Observe que um
processo de negcio pode ser representado na
UML atravs de um caso de uso
estereotipado com o adjetivo <<Processo de Negcio>>.
Note tambm
que conceitos podem ser representados na UML atravs de classes estereotipadas.
Figura 4. Exemplos de
processos de negcio em um sistema acadmico.
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
Figura 5.Exemplos de
conceitos de um domnio corporativo em um sistema acadmico.
Figura 6. Exemplo de
ativo legado em um contexto fictcio de uma universidade para um software
que
foi identificado para reuso binrio.
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
Figura 8. Servios de
dados para manter entidades do domnio corporativo (Aluno e Matrcula).
Uma
outra fonte comum para a identificao de servios so ativos legados, ou seja,
softwares j
existentes que operem normalmente e que podem ser reusados
binariamente.
Neste caso, uma boa prtica o uso de um padro de desenho
chamado fachada para a criao de
um servio de acesso ao cdigo legado. O
servio de fachada consiste na criao de um contrato
simplificado (API) que
isole a complexidade de operao do software legado.
No exemplo do software COBOL
j existente para a comunicao da universidade com o MEC,
podemos fazer a
modelagem do servio conforme mostrado na Figura 9.
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
Figura 9. Servios de
fachada para um componente de software j existente.
O
projetista SOA pode escolher, para melhor comunicao e rastreabilidade, ligar
os servios s
suas fontes (processos de negcio, entidades corporativas ou
componentes de software legados).
Se o fizer, o desenho resultante e as
relaes so mostrados na Figura 10.
Dicas
para as sesses de modelagem de servios
A
identificao de servios talvez seja o estgio mais subjetivo do processo de
construo de
servios. Algumas perguntas tpicas que surgem neste estgio so:
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
construdo apropriadamente.
comunicados.
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
apropriado:
Aplicao
de tipos aos servios
Na
modelagem de servios, pode ser til comunicar o tipo associado a um
determinado servio.
Embora a tipologia de servios SOA no seja fixa, uma
possvel classificao fornecida aqui para
apoio aos projetistas SOA. Observe
a Tabela 1.
Servios de
Dados
Tem por
objetivo manter informaes de uma entidade do
domnio corporativo. Tambm
chamados de servios CRUD,
normalmente possuem operaes bsicas para
incluso,
remoo, alterao e pesquisa de informaes
Servios de
Regras de Negcio
Implementam
uma coleo de regras de negcio e algoritmos
nucleares ao domnio sob
modelagem
Servios de
Deciso
Categoria
especial de servios de regras de negcio, normalmente
implementam dezenas ou
at mesmo centenas de regras de
negcio volteis, organizadas como tabelas de
deciso, fluxos de
regras ou linguagens especficas de domnio (DSL)
Servios de
Integrao
So
dedicados modelagem da interoperabilidade do domnio sob
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
modelagem com
informaes existentes em outras reas ou em
outras empresas.
Servios de
Mediao
Cuidam da
extrao, enriquecimento, transformao e
roteamento de informaes entre
fontes de dados distintas,
normalmente com converses de protocolos.
Servios de
Interao Humana
So
responsveis pela disponibilizao de informaes para seres
humanos em
interfaces de portais. Tecnologias com Java Portlets
e Microsoft
WebParts so normalmente usadas para consumir as
informaes destes
servios
Servios
Compostos
Agregam
contratos de dois ou mais servios base e normalmente
so usados em empresas
que possuem implementaes SOA
maduras, onde existem tantos servios
disponveis que eles
comeam a ser usados para criar servios de mais alto
nvel.
Polticas
de servios
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
Um
aspecto chave de implementaes SOA que servios devem ser governados.
Polticas so
instrumentos usados para fornecer governana e so derivadas dos
requisitos de negcio e
requisitos tcnicos.
Alm disso, polticas tm por
objetivo orientar como servios sero construdos e geridos em
ambiente de
produo. Os tipos mais comuns de polticas incluem:
Conformidade a padres
tecnolgicos: Endeream padres tcnicos diversos tais como WS-I para
Governana
de servios atravs de polticas
Embora
nem todo aspecto de governana possa ser automatizado, as polticas de QoS
(negcio ou
segurana) de um servio podem ser descritas atravs da UML e
eventualmente automatizadas.
Considere
como exemplo de um servio (Self-Service Aluno) que precise operar com
disponibilidade de 99% e que requeira transporte seguro para trfego das suas
informaes.
Os dois atributos de qualidade (disponibilidade e transporte
seguro) so definidos como polticas e
ento aplicadas sobre um determinado
servio. A Figura 12
mostra este caso, onde um
determinado servio possui dependncias de duas
polticas.
Quando um servio depende de uma poltica, podemos tambm dizer que
esta poltica aplicada
em tempo de execuo sobre aquele servio. Caso exista
alguma falha no atendimento do atributo
de qualidade, ento o servio tem o seu
QoS comprometido.
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
Poltica
Descrio
Alta
O
servio deve operar com alta disponibilidade, definida em base diria,
Disponibilidade
mensal
ou anual. Se medido em base diria, o servio no pode ficar mais
(99%)
que 14
minutos fora do ar, somando-se as interrupes no perodo.
Se medido em base
mensal, no pode ficar mais que sete horas fora do ar
em cada ms. Se medido
em base anual, no pode ficar mais que quatro
dias fora do ar no ano.
Auditoria
simples
As
operaes de um servio que promovem modificao em dados devem ser
auditadas.
Auditoria
ampla
Todas
as operaes (inclusive de leitura) de um servio devem ser auditadas.
(no-repdio)
Autenticao
A
invocao a um servio deve ser validada atravs das credenciais do
solicitante.
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
Autorizao
As
operaes a um servio devem ser validadas atravs uma lista de controle
de
acesso (ACL), para avaliar a permisso apropriada do solicitante.
Banda
de
passagem alta
Endereamento
Virtual
Tempo
de
Resposta
O
volume de mensagens servidas por unidade de tempo por servio deve ser
de
pelo menos 1.000.000 de mensagens por dia.
O
endereo (URL) do servio deve ser virtualizado para a reduo da
dependncia
entre o fornecedor e o consumidor de servios.
O
tempo mdio (estatisticamente) das operaes de um servio no deve ser
maior
que 0.1 segundos.
Instantneo
Tempo
de
Resposta Rpido
Tempo
de
Resposta Bom
Transporte
seguro
O
tempo mdio das operaes de um servio no deve ser maior que um
segundo.
O
tempo mdio das operaes de um servio no deve ser maior que seis
segundos.
As
mensagens dos parmetros e resposta das operaes do servio devem
ser
enviadas com confidencialidade e integridade.
Tabela 2. Catlogo de
Polticas SOA.
Definio
de dependncias entre servios
Servios
podem possuir dependncias de operaes de outros servios e estas relaes
tambm
podem ser comunicadas pelos projetistas para o seu time.
Estas
dependncias permitem que servios de mais alto nvel estejam baseados em
servios de
mais baixo nvel, faam reuso de operaes j criadas anteriormente
e tambm promovam a
reusabilidade em um nvel mais elevado.
Como
exemplo, consideremos um servio de efetivao de matrcula semestral de aluno
que use as
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
Especificao
de contratos de operaes e dados de
servios
Uma
vez que servios sejam identificados, tenham suas dependncias definidas e
polticas
aplicadas, eles podem ser especificados.
A especificao define o
contrato de operaes, onde cada operao recebe um ou mais objetos e
retorna
um objeto ou uma falha (exceo). Contratos devem exigir um forte cuidado pelo
projetista
e talvez sejam o ponto mais importante para a construo de servios
reusveis.
A
especificao de um bom contrato (ou API) deve obedecer s seguintes
propriedades:
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
Considerar as implicaes de
desempenho do desenho dos contratos;
um determinado aluno.
A Figura 14
exibe a especificao de um servio, com o seu contrato de operaes e os tipos
de
dados referenciados como parmetros ou com falhas/excees.
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
Aplicao
de padres SOA para contratos de servios
Hoje
se h conhecimento acerca de um conjunto de cinco padres de projeto que podem
promover
uma melhor modelagem de contratos:
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
Subtrao: A subtrao de
servios remove um fragmento do contrato original e, portanto, altera
a
funcionalidade original do servio. Ela deve ser usada quando o contrato
possuir operaes
excessivas que no agregam funcionalidade de negcio e
remetem mais a um desenho OO do que
um desenho centrado em servios.
Decises
de implementao sobre servios
Servios
SOA devem ser implementados em alguma tecnologia e ter o seu contrato
estabelecido em
um padro.
O projetista, no seu desenho SOA, pode indicar
algumas decises tecnolgicas e o padro a ser
usado para externalizar o
contrato de seus servios. Os padres mais comuns para a
implementao de
servios so apresentados na Tabela 3.
WS-*
RS-* (REST)
SCA (Service
Component
Architecture)
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
WCF (Windows
Communication
abstrao
da tecnologia de implementao e tambm
de protocolos de
Foundation)
transporte.
Alocao
de servios a componentes e nodos
Servios, embora agnsticos de
tecnologia pelo padro de desenho interface, devem ser
implementados em alguma
tecnologia alvo. Portanto, um servio realizado atravs de
componentes de
software, que so normalmente empacotados em tecnologias como LIBs, DLLs,
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
Modelagem
de servios de infraestrutura
Finalmente,
o projetista SOA pode representar uma camada mais nuclear de servios que tem
por
papel suportar os servios de nvel mais alto. Normalmente, estes servios
no tm ligao direta
com o negcio, embora tenham papel central na manuteno
de atributos de qualidade ou na
facilitao da orquestrao dos servios.
Estes
servios podem ser classificados nos seguintes tipos:
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
Barramento de Servios: um
tipo de servio de middleware que promove um conjunto variado
de
funcionalidades para gerir mensagens, controle do trfego e abstrao de
protocolos e
localizaes.
So normalmente implementados por produtos muito
complexos e em implementaes SOA de
grande porte (ex. ESBs da IBM, Oracle ou
TIBCO), embora estejamos observando barramentos
leves como o Apache Camel ou o
Microsoft WCF comearem a ser usados em implementaes SOA
leves;
Intermedirios (Proxies): So
interceptadores de mensagens que promovem funes mais
elementares de
transmisso, roteamento ou manipulao de dados. Um uso comum para estes
servios
para a implementao de polticas de transporte seguro ou auditoria;
Motores de regras: So
middlewares dedicados a execuo de regras de negcio descritas em
linguagem de
alto nvel (DSLs) em servios de deciso. So chamados no mercado como BRMS
(Business
Rule Management Suites);
Conectores de Adaptao: So
peas dedicadas ligao de um servio a um recurso nativo.
Exemplos envolvem
conectores JDBC ou ADO.NET a banco de dados ou mesmo conectores ao SAP
ECC ou a
CICS COBOL;
Conectores de Roteamento: So
peas dedicadas ao roteamento de mensagens entre servios e
que promovem
conectividade entre consumidores e fornecedores de servios;
Adaptadores de Transformadores:
Peas dedicadas ao enriquecimento de mensagens atravs da
traduo do seu
formato entre consumidores e fornecedores de mensagens.
Os
diagramas de componentes e implantao podem apoiar o projetista a mostrar
estes elementos
da infraestrutura SOA e comunicar como arquiteturas fsicas SOA
sero implementadas em
empresas.
Os retornos
da modelagem de servios
A modelagem
de servios aqui proposta faz uso de diagramas de caso de uso, classes,
componentes
e implantao. Embora seja uma abordagem mais leve do que modelos
formais como o IBM UML
Profile for Software Services e a linguagem Open Group
Archimate, ela deve ser usada
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
moderadamente.
Se o
esforo da modelagem no for dimensionado apropriadamente, ela pode ser muito
demorada e
reduzir o seu benefcio em projetos de software.
A Figura 17
fornece um esquema que relaciona o valor da modelagem e o tempo nela investido
(o
eixo X representa o esforo em horas para a modelagem e o eixo Y o retorno
do esforo de
modelagem.).
Embora este valor no possa ser quantificado em
esforo ou prazo, ele deve ser analisado conforme
a realidade de cada
organizao e os fatores de cada projeto (tamanho, necessidades contratuais e
tratamento diferenciado de
acordo com o valor e complexidade de cada servio. Servios mais
crticos
requerem um maior investimento em modelagem e, ento, maior profundidade de
anlise;
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
Passo
01.
Identificao de Conceitos
Corporativos
Produto UML
Diagrama de
classes com nomes, onde cada nome
um elemento do modelo de domnio
corporativo.
02.
Identificao de Processos
de Negcio
Diagrama de
casos de uso de negcio. Cada caso
de uso de negcio corresponde a um
processo de
negcio.
03.
Identificao de Ativos
Existentes
Diagrama de
componentes onde cada componente
corresponde a um ativo organizacional
potencialmente reusvel.
04.
Identificao de Servios
Diagrama de classes
(sem atributos e
comportamentos) com uma classe para cada
servio.
05. Aplicao
de Tipos aos
Diagrama de
classes com esteretipos.
Servios
06.
Governana de Servios
Atravs de Polticas
07. Definio
de Dependncia
entre Servios
08.
Especificao de Contratos
Diagrama de
classes para servios e classes para
polticas.
Diagrama de
classes com relaes de
dependncias entre servios.
Diagrama de
classes com servios onde os
de Operaes e Dados de
Servios
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
09. Anlise
da Granularidade
dos Servios
Diagrama de
classes refatorado com mtodos ou
classes movimentadas atravs de operaes
lgicas diversas.
10. Alocao
de Servios a
Componentes e Nodos
Diagrama de
classes com componentes e nodos
que mostrem o local fsico onde os servios
iro
operar.
11. Modelagem
de Servios de
Infraestrutura
Diagrama de
componentes com servios de
infraestrutura que cuidam de funes mais
fundamentais para atender uma arquitetura SOA.
Tabela 4. Passos da
modelagem UML para servios
Os passos 1 a 4 so normalmente
realizados como um esforo anterior aos projetos SOA (pr-game
em mtodos
geis). Os passos 5 a 11 so realizados repetidamente em pequenos projetos, que
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
Referncias
[1] Dias Jr, J. J. L., Oliveira, J., & Meira, S. R. L. (2012). Pontos
Chaves para Adoo de Uma
Arquitetura Orientada a Servios: Uma Anlise
Comparativa de Modelos de Maturidade SOA da
Indstria. In VII Simpsio
Brasileiro de Sistemas de Informao.
[2] Erl, T. (2009). SOA Design Patterns (p. 800).
[3] Group,
T. O. (2009). Service Integration Maturity Model.
https://www.opengroup.org/projects/osimm/uploads/40/17990/OSIMM_v0.3a.pdf
[4] Johnston,
S. (2005). UML profile for software services. IBM DeveloperWorks.
http://www-128.ibm.com/developerworks/rational/library/05/419_soa/
[5] Jonkers,
H., van den Berg, H., Iacob, M. E., & Quartel, D. (2010). ArchiMate
Extension for
Modeling TOGAFs Implementation and Migration phases. Reading,
Berkshire: Whitepaper, The
Open Group.
(0)
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
No h comentrios
Meus comentarios
Publicidade
Servios
Inclua um comentrio
+Engenharia
Mais posts
Artigo
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]
DevMedia
Curtir
http://www.devmedia.com.br/modelagem-de-servicos-com-uml/32496[28/05/2015 20:09:56]