Arquitetura Orientado a Serviços

44
Arquitetura Orientado a Serviços Análise e Projeto de Sistemas – if718

description

Arquitetura Orientado a Serviços. Análise e Projeto de Sistemas – if718. Objetivo. Mostrar os principais problemas nos processos de desenvolvimento de software Apresentar os principais conceitos de Service Oriented Architecture (SOA) - PowerPoint PPT Presentation

Transcript of Arquitetura Orientado a Serviços

Page 1: Arquitetura Orientado a Serviços

Arquitetura Orientado a Serviços

Análise e Projeto de Sistemas – if718

Page 2: Arquitetura Orientado a Serviços

»Mostrar os principais problemas nos processos de desenvolvimento de software

»Apresentar os principais conceitos de Service Oriented Architecture (SOA)

»Apresentar os passos necessários para realizar a atividade analisar Serviços

Objetivo

Page 3: Arquitetura Orientado a Serviços

POR QUE PROJETOS DE SOFTWARE SÃO COMPLICADOS?

Page 4: Arquitetura Orientado a Serviços

Prob

lem

as» Software é abstrato

» Software é complexo

» Requisitos incompletos

» Tecnologia muda muito rápido

» Mudança é inevitável

Page 5: Arquitetura Orientado a Serviços

» Desenvolvimento Baseado em Componentes

» Desenvolvimento Orientado a Aspectos

» Linhas de Produtos de Software» Desenvolvimento Dirigido a Modelos

(Mode-Driven Development - MDD)» Arquitetura Orientada a Serviços

(Service Oriented Architecture - SOA)

Engenharia de Software

Page 6: Arquitetura Orientado a Serviços

O QUE É ARQUITETURA ORIENTADA A SERVIÇOS ?

Page 7: Arquitetura Orientado a Serviços

SOA

Page 8: Arquitetura Orientado a Serviços

Confusão com o Termo Service Oriented Computing

“SOA é, basicamente, um modelo de arquitetura de que beneficia a eficiência, agilidade e produtividade no desenvolvimento de aplicações e está alinhado com os objetivos de “service oriented computing” Thomas Erl

SOA

Page 9: Arquitetura Orientado a Serviços

Estilo de arquitetura onde as funcionalidades de aplicações existentes são disponibilizadas na forma de serviços

SOA

Page 10: Arquitetura Orientado a 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/consumidorDescritos através de contratos de operações

Page 11: Arquitetura Orientado a Serviços

Como Projetar Serviços?

Page 12: Arquitetura Orientado a Serviços

SOA: Vantagens

Page 13: Arquitetura Orientado a Serviços

Serviços são coleções de “capacidade”

Assim como pessoas, um serviço pode prover múltiplas capacidades.

Page 14: Arquitetura Orientado a Serviços

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

Page 15: Arquitetura Orientado a Serviços

Tipos Serviços

Page 16: Arquitetura Orientado a Serviços

Analisar Serviços

Page 17: Arquitetura Orientado a Serviços

Contexto

Arquiteto de Informação

Analisar Casos de Uso

Revisar Projeto

Projetar Arquitetura

Projetista deBanco de Dados

Arquiteto de Software

Revisor de projeto

Projetar Casos de Uso

Projetar Subsistemas

Projetar Base de Dados

Analista deSistemas

decisões doarquiteto

<<subsystem>>

CheckList bla bla

bla

blabla

Projetar classes

Prototipar Interface gráfica

Analisar Serviços

ProjetarServiços

Page 18: Arquitetura Orientado a Serviços

»Visão inicial da arquitetura do sistema

»Sistemática para identificação dos serviços e componentes

“Análise” diferente do RUP

Objetivos

Page 19: Arquitetura Orientado a Serviços

Passo a Passo

Identificar Serviços [Arquitetura dos Serviços]

Refinar Serviços

[Modelo de Interação dos Serviços]

[Modelo de Informação Refinado]

Identificar Componentes

[Modelo de Componentes dos Serviços]

Page 20: Arquitetura Orientado a Serviços

Para Identificar Serviços:

1. Empacotar Casos de Uso2. Construir Arquitetura de Serviços3. Identificar Serviços de Entidades5. Revisar Resultados

Page 21: Arquitetura Orientado a Serviços

Para Identificar Serviços:

1. Empacotar Casos de Uso2. Construir Arquitetura de Serviços3. Identificar Serviços de Entidades5. Revisar Resultados

Page 22: Arquitetura Orientado a Serviços

Anal

isar

Ser

viço

s

Exem

plo

do Q

IB

Operadora do DOC

Desbloquear Talõesde Cheque

Efetuar Login

Alterar Senha

Consultar Saldo

Consultar Extrato

Consultar Qualiti CardRealizar Transferência

Consultar Cheques

Solicitar Talões de Cheque

Realizar DOC

ClienteAtor

Operadora Cartão de Crédito

Efetuar Pagamento do Qualiti Card

Mostrar Dados daConsulta

<<include>>

<<include>>

Page 23: Arquitetura Orientado a Serviços

Exem

plo

do Q

IB

ClienteAtor

Realizar Doc

Realizar Transferência

Operadora Doc

Controle Cheque

Controle de Acesso

Controle Conta

Controle Qualit Card

Operadora de Cartão de Crédito

Page 24: Arquitetura Orientado a Serviços

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)

Page 25: Arquitetura Orientado a Serviços

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.

Page 26: Arquitetura Orientado a 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

Arquitetura de Serviços

Page 27: Arquitetura Orientado a Serviços

Ator 1Ator 2

Pacote 1

Pacote 2

UC 1

UC2

UC3

UC 4

UC 5

Anal

isar

Ser

viço

s Pacote1<<Service Contract>>

Pacote2<<Service Contract>>

UC5<<Service Contract>>

UC5-Ator2<<Service Contract>>

Ator1<<Participant>> Ator2

<<Participant>>Sistema

<<Participant>>

consume

consume

consume

provide

provide

provide

consume provide

Arqu

itetu

ra d

e Se

rviç

os

Page 28: Arquitetura Orientado a Serviços

Participants

ClienteAtor

Realizar Doc

Realizar Transferência

Operadora Doc

Controle Cheque

Controle de Acesso

Controle Conta

Controle Qualit Card

Operadora de Cartão de Crédito

Sistema back-end<<participant>>

Operadora DOC<<participant>>

Operadora Cartão<<participant>>

Cliente Front-end<<consumer>>

Page 29: Arquitetura Orientado a Serviços

Services Contracts

Realiazr Transferencia<<Service Contract>>

ClienteAtor

Realizar Doc

Realizar Transferência

Operadora Doc

Controle Cheque

Controle de Acesso

Controle Conta

Controle Qualit Card

Operadora de Cartão de Crédito

Relizar Doc<<Service Contract>>

Controle de Acesso<<Service Contract>>

Controle de Cheque<<Service Contract>>

Controle de Conta<<Service Contract>>

Controle Qualiti Card<<Service Contract>>

Servico Operadora Doc<<Service Contract>> Servico Operadora Cartao

<<Service Contract>>

Page 30: Arquitetura Orientado a Serviços

Arquitetura de Serviços

Cliente Front-end<<consumer>>

Sistema back-end<<participant>>

Operadora DOC<<participant>>

Operadora Cartão<<participant>>

Controle de Cheque<<Service Contract>>

Controle de Acesso<<Service Contract>>

Controle de Conta<<Service Contract>>

Controle Qualiti Card<<Service Contract>>

Realiazar Transferencia<<Service Contract>>

Relizar Doc<<Service Contract>>

consumer

consumer

consumer

provider

provider

provider

provider

consumer

consumer

Servico Operadora Cartao<<Service Contract>>

Servico Operadora Doc<<Service Contract>>

provider

comsumer

consumer

provider

provider

Page 31: Arquitetura Orientado a Serviços

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

Page 32: Arquitetura Orientado a Serviços

3. Identificar Serviços de entidades

ContaintInternetConta PagamentoCartãoComprovante

Serviço Conta<<Service Contract>>

Serviço Conta Internet<<Service Contract>>

Serviço PagamentoCartão<<Service Contract>>

Page 33: Arquitetura Orientado a Serviços

Fluxo de Atividades

Identificar Serviços [Arquitetura dos Serviços]

Refinar Serviços

[Modelo de Interação dos Serviços]

[Modelo de Informação Refinado]

Identificar Componentes

[Modelo de Componentes dos Serviços]

Page 34: Arquitetura Orientado a Serviços

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 o Modelo de Informação do negócio

Page 35: Arquitetura Orientado a Serviços

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?

Page 36: Arquitetura Orientado a Serviços

ClienteAtor

Realizar Doc

Realizar Transferência

Operadora Doc

Controle Cheque

Controle de Acesso

Controle Conta

Controle Qualit Card

Operadora de Cartão de Crédito

Page 37: Arquitetura Orientado a Serviços

Mensagens de retorno

: Cliente Front-end : Controle de Acesso

: Serviço Conta Internet

1 : logar(login,senha)

2 : existe(login, senha)

3 : ContaInternet

4 : sessão

5 : alterarSenha(login,senhaAntiga, SenhaNova)

6 : existe(login,senha)

7 : ContaInternet

8 : atualizar(ContaInternet)

9 : Conta Internet10 : sessão

Page 38: Arquitetura Orientado a Serviços

Exercício

• Fazer diagrama para o pacote Controle de Qualit Card

Page 39: Arquitetura Orientado a Serviços

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

Page 40: Arquitetura Orientado a Serviços

Modelo de informação atualizado

ContaintInternet

+login+senha

Conta

+numero+saldo

PagamentoCartão

+numero da fatura+data+valor+numero da conta

Page 41: Arquitetura Orientado a Serviços

Fluxo de Atividades

Identificar Serviços [Arquitetura dos Serviços]

Refinar Serviços

[Modelo de Interação dos Serviços]

[Modelo de Informação Refinado]

Identificar Componentes

[Modelo de Componentes dos Serviços]

Page 42: Arquitetura Orientado a Serviços

Identificação de componentes

• Sistemática para identificar os componentes1. Identificar os participants provedores2. Componentes “provedores” implementam os

contratos de serviços3. Definir relacionamento entre componentes

Page 43: Arquitetura Orientado a Serviços

Iden

tifica

r Com

pone

ntes

Cliente Front-end<<participant>> Sistema back-end

<<participant>>

Operadora Cartão<<participant>>

ControleAcesso<<Service Contract>>

consumerprovider

ControleConta<<Service Contractt>>

consumerprovider

ControleQualitiCard<<Service Contract>>

consumerconsumer

OperadoraCartao<<Service Contract>>

comsumer provider

ContaInternet<<Service Contract>>

Transação<<Service Contract>>

ContaBancaria<<Service Contract>>

Cliente Front-end<<Front-end>>

Controle ContaControle de Acesso Controle Cartão

IControleAcesso IControleConta IControleCartão

Trasação

ITrasaçãoIContaInternet

ContaInternet ContaBancaria

IContaBancaria

IOperadoraCartão

OperadoraCartão

Page 44: Arquitetura Orientado a Serviços

Analisar Serviços

Análise e Projeto de Sistemas – if718