Analisar Serviços
Vítor Braga – [email protected]
Objetivos da aula
 Apresentar
os passos necessários para
realizar a atividade analisar Serviços
 Discutir e mostrar o passo a passo para a
construção dos artefatos
Relembrando ...
Visão geral (Exemplo: RUP)
Visão geral
Requisitos
Modelagem do
Negócio
Especificação do modelo
de negócios
Analisar serviços
Planejamento
Projetar Serviços
Planejamento
Inicial
Implementação
Avaliação
Teste
Platform
Platform
Specific
Independent
Model (PSM) Model (PIM)
Computation
Independent
Model (CIM)
MDA
Terms
S
O
A
M
D
E
Fluxo de Atividades
Visão Geral dos Artefatos
Platform
Platform
Specific
Independent
Model (PSM) Model (PIM)
Computation
Independent
Model (CIM)
MDA
Terms
S
O
A
M
D
E
SOA
É
um estilo de arquitetura que promove a
integração entre o negócio e a TI através
de serviços. O serviço é o principal
componente desta arquitetura.
 maior
agilidade para atender as novas
demandas,
 flexibilidade para atender as mudanças,
 redução de custo e reuso de ativos (serviços).
O que são serviços ?
 Serviço
é um componente que atende a
uma função de negócio (business
function). Ele pode receber e responder
requisições ocultando os detalhes de sua
implementação.
 Desacoplados
em relação ao
cliente/consumidor
 Descritos através de contratos de operações
Serviços são coleções de
“capacidade”
Assim como pessoas, um serviço pode prover múltiplas
capacidades.
Classificação dos Serviços
 Quando
estamos modelando os serviços,
fica evidente que podemos classifica-los
em função:



Tipo de logica que encapsulam
Potencial de Reuso
Como a logica implementada se relaciona
com o domínio da aplicação
 Por



isso, podemos classificar os serviços:
Serviços de entidades
Serviços de tarefas
Serviços de utilidade
Service Layers
Analisar Serviços
Analisar serviços
Visão
inicial da arquitetura do
Sistema
Sistemática para identificação
dos serviços e componentes
 “Análise”
diferente do RUP
Fluxo de Atividades
Visão Geral dos Artefatos
Fluxo de Atividades
Passos para Identificar Serviços
1. Empacotar Casos de Uso
2. Construir Arquitetura de Serviços
3. Identificar Serviços de Entidades
5. Revisar Resultados
Exemplo do QIB
Desbloquear Talões
de Cheque
Efetuar Login
Solicitar Talões de Cheque
Alterar Senha
Consultar Cheques
ClienteAtor
Consultar Saldo
<<include>>
<<include>>
Realizar DOC
Consultar Extrato
Realizar Transferência
Consultar Qualiti Card
Efetuar Pagamento do
Qualiti Card
Operadora do DOC
Operadora Cartão de
Crédito
Mostrar Dados da
Consulta
1. Empacotar Casos de Uso
 Casos
de usos “semelhantes”
deverão ser empacotados dentro
de um pacote de casos de uso
Desbloquear Talões
de Cheque
Efetuar Login
Solicitar Talões de Cheque
Alterar Senha
Consultar Cheques
ClienteAtor
Consultar Saldo
<<include>>
<<include>>
Realizar DOC
Consultar Extrato
Realizar Transferência
Consultar Qualiti Card
Efetuar Pagamento do
Qualiti Card
Operadora do DOC
Operadora Cartão de
Crédito
Mostrar Dados da
Consulta
Controle de Acesso
Controle Cheque
Controle Conta
Realizar Transferência
ClienteAtor
Realizar Doc
Operadora Doc
Controle Qualit Card
Operadora de Cartão de Crédito
2. Construir Arquitetura de Serviços
 Arquitetura
de Serviços (Service
Architecture) é gerada a partir do modelo
de casos de uso
 Passo inicial para identificação dos serviços
do sistema
 SOAML (Profile UML para modelar SOA)
Exemplo
Order
Conformation
Shipped
Ship Req
Shipped
Delivered
Arquitetura de Serviços
Dealer
Participant –
provides and
uses services
Ship Status
service
Purchasing
service
Manufacturer
Participant –
provides and
uses services
Shipping
service
Arquitetura de Serviços
 Services
architecture descreve como os
participantes que consomem e fornecem serviços
para atender aos requisitos do negócio.
 Participant representa uma “parte” que consomem
e/ou fornecem serviços. Podem representar
pessoas, organizações ou sistemas.
 A service contract é a especificação do acordo
entre provedores e consumidores de um serviço
quanto às informações trocadas entre
participantes.
QIB
Controle de Acesso
Controle Cheque
Controle Conta
Realizar Transferência
ClienteAtor
Realizar Doc
Operadora Doc
Controle Qualit Card
Operadora de Cartão de Crédito
Sistemática para construir a
Arquitetura de Serviços
•
Gerada estaticamente a partir do modelo
de casos de uso “empacotado”:
 Atores => participant
 Sistema => participant
 Pacote de casos de uso => Service
Contract
 Relação na direção caso de uso – ator
=> Service Contract
 Casos de uso no modelo principal=>
Service Contract
Participants
<<consumer>>
Cliente Front-end
Controle de Acesso
Controle Cheque
Controle Conta
<<participant>>
Sistema back-end
Realizar Transferência
ClienteAtor
Realizar Doc
Controle Qualit Card
<<participant>>
Operadora DOC
<<participant>>
Operadora Cartão
Operadora Doc
Operadora de Cartão de Crédito
Services Contracts
<<Service Contract>>
Controle de Acesso
<<Service Contract>>
Controle de Cheque
<<Service Contract>>
Controle de Conta
Controle de Acesso
Controle Cheque
Controle Conta
<<Service Contract>>
Realiazr Transferencia
Realizar Transferência
ClienteAtor
Realizar Doc
Controle Qualit Card
<<Service Contract>>
Controle Qualiti Card
<<Service Contract>>
Relizar Doc
<<Service Contract>>
Servico Operadora Doc
Operadora Doc
Operadora de Cartão de Crédito
<<Service Contract>>
Servico Operadora Cartao
Services Contracts
<<Service Contract>>
Controle de Cheque
consumer
<<Service Contract>>
Realiazar Transferencia
consumer
consumer
<<participant>>
Operadora Cartão
provider
<<participant>>
Sistema back-end
provider
consumer
consumer
provider
comsumer
<<Service Contract>>
Controle de Acesso
<<consumer>>
Cliente Front-end
<<Service Contract>>
Servico Operadora Cartao
provider
<<Service Contract>>
Controle de Conta
provider
<<Service Contract>>
Servico Operadora Doc
provider
<<Service Contract>>
Controle Qualiti Card
<<Service Contract>>
Relizar Doc
consumer
provider
<<participant>>
Operadora DOC
3. Identificar Serviços de entidades
Um
tipo de serviço que é derivado
de um ou mais entidades de
negócio relacionadas.
 São
altamente reutilizável e usados
por vários serviços
Exemplo:
Serviços para fazer CRUD
3. Identificar Serviços de entidades
Conta
<<Service Contract>>
Serviço Conta
ContaintInternet
<<Service Contract>>
Serviço Conta Internet
PagamentoCartão
Comprovante
<<Service Contract>>
Serviço PagamentoCartão
Fluxo de Atividades
Interação dos Serviços
 Sistemática
“semelhante” Distribuir
comportamento entre as classes
 Para cada Serviço (service contract)
 Diagrama
de seqüência (coreografia dos
serviços)
 Surgimento de novas entidades
 Atualizar
negócio
o Modelo de Informação do
Interação dos Serviços
 Levar
em consideração TODOS os casos
de uso envolvidos
 Diagrama de interação único*
 Não possuem mensagens reflexivas
 Por
que?
Controle de Acesso
Controle Cheque
Controle Conta
Realizar Transferência
ClienteAtor
Realizar Doc
Operadora Doc
Controle Qualit Card
Operadora de Cartão de Crédito
: Serviço Conta Internet
: Controle de Acesso
: Cliente Front-end
1 : logar(login,senha)
2 : existe(login, senha)
3 : ContaInternet
4 : sessão
Mensagens de retorno
5 : alterarSenha(login,senhaAntiga, SenhaNova)
6 : existe(login,senha)
7 : ContaInternet
8 : atualizar(ContaInternet)
9 : Conta Internet
10 : sessão
Exercício
 Fazer
diagrama para o pacote Controle
de Qualit Card
Atualizar o Modelo de informação
 Atualizar
atributos das entidades
 Possíveis fontes: conhecimento do negócio,
requisitos, glossário, modelo do negócio,
mensagens do modelo de interação etc.
 São propriedades/características das entidades
identificadas


informação cujo valor é o aspecto crucial
informação de propriedade exclusiva do objeto
 Caso
seja identificada nova entidade, verificar
necessidade de criar novo serviço
 Remover entidades desnecessárias
Modelo de informação atualizado
Conta
+numero
+saldo
ContaintInternet
+login
+senha
PagamentoCartão
+numero da fatura
+data
+valor
+numero da conta
Fluxo de Atividades
Identificação de componentes
 Sistemática
1.
2.
3.
para identificar os componentes
Identificar os participants provedores
Componentes “provedores” implementam os
contratos de serviços
Definir relacionamento entre componentes
<<Service Contract>>
Controle de Cheque
consumer
<<Service Contract>>
Realiazar Transferencia
consumer
consumer
<<participant>>
Operadora Cartão
provider
<<participant>>
Sistema back-end
provider
consumer
consumer
provider
comsumer
<<Service Contract>>
Controle de Acesso
<<consumer>>
Cliente Front-end
<<Service Contract>>
Servico Operadora Cartao
provider
<<Service Contract>>
Controle de Conta
provider
<<Service Contract>>
Servico Operadora Doc
provider
<<Service Contract>>
Controle Qualiti Card
<<Service Contract>>
Relizar Doc
consumer
provider
<<participant>>
Operadora DOC
Provedores
<<Service Contract>>
Controle de Conta
Componentes
“provedores”
implementam
os contratos
de serviços
Componente Conta
+existe(login, senha)
+atualizar(login, senha)
<<Service Contract>>
Controle de Acesso
Componente Controle de Acesso
+logar(login, senha)
+alterarSenha(login, senhaAntiga, senhaNova)
<<Service Contract>>
Controle de Cheque
Componente Cheque
+Operation1()
+..()
<<Service Contract>>
Controle Qualiti Card
Componente Qualiti Card
+Operation1()
+..()
<<Service Contract>>
Realiazar Transferencia
Componente Transferencia
+Operation1()
+..()
<<Service Contract>>
Relizar Doc
+Operation1()
Componente Realizar Doc
<<Service Contract>>
Controle de Cheque
consumer
<<Service Contract>>
Realiazar Transferencia
consumer
consumer
<<participant>>
Operadora Cartão
provider
<<participant>>
Sistema back-end
provider
consumer
consumer
provider
comsumer
<<Service Contract>>
Controle de Acesso
<<consumer>>
Cliente Front-end
<<Service Contract>>
Servico Operadora Cartao
provider
<<Service Contract>>
Controle de Conta
provider
<<Service Contract>>
Servico Operadora Doc
provider
<<Service Contract>>
Controle Qualiti Card
<<Service Contract>>
Relizar Doc
consumer
provider
<<participant>>
Operadora DOC
Arquitetura componentizada
<<Service Contract>>
Controle de Acesso
Componente Controle de Acesso
+logar(login, senha)
+alterarSenha(login, senhaAntiga, senhaNova)
<<Service Contract>>
Controle de Cheque
Componente Cliente Front-end
<<
C
+e
+a
Componente Cheque
+Operation1()
+..()
<<Service Contract>>
Controle Qualiti Card
Componente Qualiti Card
<<Servi
Servico Op
+Operation1()
+..()
<<Service Contract>>
Realiazar Transferencia
Componente Transferencia
+Operation1()
+..()
<<Service Contract>>
Relizar Doc
+Operation1()
Componente Realizar Doc
<<Service Cont
Servico Operad
Dúvidas ?
Download

Analisar Serviços - SOA