análise e projeto em soa (service oriented architecture)bacala/soa/soa02-análise e projeto em...

72
Análise e Projeto em SOA (Service Oriented Architecture)

Upload: vuongnhi

Post on 09-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Análise e Projeto em SOA

(Service Oriented Architecture)

Análise e Projeto em SOA (Service Oriented Architecture)

Especificação do

modelo de negócios

Analisar serviços

Implementação

Teste

Avaliação

Planejamento

Inicial

Planejamento

Modelagem do

Negócio

Requisitos

Projetar Serviços

Arquiteto de Informação

Análise e Projeto OO

com UML e Padrões| 3

Analisar Casos de Uso

Revisar Projeto

Projetar Arquitetura

Projetista de Banco de Dados

Arquiteto de

Software

Revisor de projeto

Projetar Casos de Uso

Projetar Subsistemas/ componentes

Projetar Base de Dados

Analista de Sistemas

Projetar classes

Prototipar Interface gráfica

Analisar Serviços

Projetar Serviços

Prototipar Interface Gráfica

Arquiteto de Informação

Análise e Projeto OO

com UML e Padrões| 5

Analisar Casos de Uso

Revisar Projeto

Projetar Arquitetura

Projetista de Banco de Dados

Arquiteto de

Software

Revisor de projeto

Projetar Casos de Uso

Projetar Subsistemas/ componentes

Projetar Base de Dados

Analista de Sistemas

Projetar classes

Prototipar Interface gráfica

Analisar Serviços

Projetar Serviços

Analisar caso de uso |

6

Objetivos desta atividade

Gerar artefatos para facilitar e alinhar o entendimento entre os stakeholders

Prototipação e avaliação da GUI

– Organização das informações

– Input para Designers

– Teste de usabilidade

Analisar caso de uso |

7

Visão geral dos artefatos

Arquiteto da

informação

Prototipar Interface

Gráfica

Glossário Modelo de

Casos de Uso

Modelo de

Informação do

Negócio

Protótipo da

Interface Gráfica

Modelo

Navegacional

Documento de

Requisitos

Documento da

Arquitetura

Prototipação da

Interface Gráfica

Analisar caso de uso |

8

Passos para Prototipar a GUI

1. Modelar conceitos de negócios

- Modelo de Informação do Negócio

2. Projetar Fluxo de Informação

- Modelo Navegacional

3. Elaborar Protótipo de Interface

- Protótipo de Interface Gráfica

Analisar caso de uso |

9

1. Modelar conceitos de negócios

Modelo conceitual das informações/entidades manipuladas pelo sistema

Pré modelo E-R

Vai ajudar na organização das informações

Multiplicidade é opcional

Modelo independente de computação (CIM)

Actor A

UC 01

UC 02

UC 03

UC 04

I 1 I2

10..1

I2 I31 1..*

I 1 I2

10..1

I 1 I2

10..1

I 1 I2

10..1

I31 1..*

1. Modelar conceitos de negócios

QIB - Diagrama de Casos de Uso Usaremos o QIB como exemplo

Operadora do DOC

Desbloquear Talões

de 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 da

Consulta

<<include>>

<<include>>

Modelo de Informação do negócio

Pagmento CartãoConta

Comprovante

Cliente

Analisar caso de uso |

13

2. Projetar Fluxo de Informação

Gerar o modelo navegacional do sistema

– Fluxo de informação do sistema

Pode ser:

– Sitemap

– Interface flow diagram (Diagrama de fluxo)

– Screen Flow (Fluxo de Tela)

Modelo independente de computação (CIM)

Analisar caso de uso |

15

Modelo Navegacional do QIB

Home

Minha página

Conta corrente

Cartões Serviços

DOC

Analisar caso de uso |

16

3. Elaborar Protótipo de Interface

Modelo Navegacional + Modelo de Informação do negócio = “wireframe detalhado”

Layout completo das telas do sistema:

– Organização das informações

– Ações de links e botões

– Tratamento de erros e fluxos secundários

É útil?

Wireframe

Como criar os artefatos?

Ferramentas:

– Axure RP(wireframe), Smartdraw (sitemap), Netbeans (Fluxo de telas)

Exemplos:

– www.cin.ufpe.br/~vtb/wireframes

– http://www.axure.com/Samples/AxureRPFeaturesSample/AxureRPFeaturesSample_Start.html

– http://www.axure.com/Samples/RegistrationSample/RegistrationSample_Start.html

Prototipar Interface Gráfica

Exercício: – Baseado no Modelo Navegacional e no modelo de

informação, construa o protótipo da interface

Sugestão: Axure RP – http://www.axure.com/downloads.aspx

– http://www.axure.com/downloadThanks.aspx?version=50

– http://www.youtube.com/watch?v=xgUE3BuaKZ4&feature=related

– http://www.youtube.com/watch?v=sieYeDepdzA&feature=related

– http://www.youtube.com/watch?v=-NwsjE5LY1M&feature=related

Analisar Serviços

Contexto

Arquiteto de Informação

Analisar Casos de Uso

Revisar Projeto

Projetar Arquitetura

Projetista de Banco de Dados

Arquiteto de Software

Revisor de projeto

Projetar Casos de Uso

Projetar Subsistemas

Projetar

Base de Dados

Analista de Sistemas

decisões do arquiteto

<<subsystem>>

Check List bla bla

bla

blabla

Projetar classes

Prototipar Interface gráfica

Analisar Serviços

Projetar Serviços

»Visão inicial da arquitetura (orientada a serviços) do sistema

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

“Análise” diferente do RUP

Objetivos

Passo a Passo

Visão Geral dos Artefatos

<<entrada para esta atividade>>

<<entrada para esta atividade>>

Para Identificar Serviços:

1. Empacotar Casos de Uso

2. Construir Arquitetura de Serviços

3. Identificar Serviços de Entidade

4. Revisar Resultados

Para Identificar Serviços:

1. Empacotar Casos de Uso

2. Construir Arquitetura de Serviços

3. Identificar Serviços de Entidades

4. Revisar Resultados

Analisa

r Serv

iços

Exem

plo

do Q

IB

Operadora do DOC

Desbloquear Talões

de 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 da

Consulta

<<include>>

<<include>>

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

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)

Arquitetura de Serviços

Services architecture descreve como os participantes consomem e fornecem serviços para atender aos requisitos do negócio

Participant representa uma “parte” que consome e/ou fornece serviços. Pode 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

• Gerada estaticamente a partir do modelo de casos de uso “empacotados”:

• 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

Ator 1Ator 2

Pacote 1

Pacote 2

UC 1

UC2

UC3

UC 4

UC 5

Analisa

r Serv

iços

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

Arq

uit

etu

ra d

e S

erv

iç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>>

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

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

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áveis e usados por vários serviços

– Gerados a partir do Modelo de Informação do Negócio

Exemplo: Serviços para fazer CRUD

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

Fluxo de Atividades

Interação dos Serviços

Sistemática “semelhante” a Distribuir comportamento entre as classes

Para cada Serviço (service contract)

– Diagrama de seqüência (coreografia dos serviços)

– Surgimento de novas entidades

Atualizar as classes com atributos

Interação dos Serviços

Levar em consideração TODOS os casos de uso envolvidos

Diagrama de interação único

– Pelo menos 2 casos de uso por diagrama

Não possuem mensagens reflexivas – Por que?

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

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 Internet

10 : sessão

Exercício

Fazer diagrama de interação para o pacote Controle Qualit Card

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 Refinado

ContaintInternet

+login+senha

Conta

+numero+saldo

PagamentoCartão

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

Fluxo de Atividades

Identificação de componentes

Sistemática para identificar os componentes

– Identificar os participants provedores

– Componentes “provedores” implementam os contratos de serviços

– Definir relacionamento entre componentes

Identi

ficar

Com

ponente

s 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

Projetar Serviços

Arquiteto de Informação

Análise e Projeto OO

com UML e Padrões|

51

Analisar Casos de Uso

Revisar Projeto

Projetar Arquitetura

Projetista de Banco de Dados

Arquiteto de

Software

Revisor de projeto

Projetar Casos de Uso

Projetar Subsistemas/ componentes

Projetar Base de Dados

Analista de Sistemas

Projetar classes

Prototipar Interface gráfica

Analisar Serviços

Projetar Serviços

Fluxo de Atividades

Projetar Arquitetura

1. Refinar Análise de Serviços

2. Definir Padrão de Arquitetura

Identi

ficar

Com

ponente

s 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

Lembrando o resultado

de Analisar Serviços …

1. Refinar Análise de Serviços

Baseado no: – Conhecimento do negócio – Modelo de interação dos serviços – Modelo de Componentes dos serviços

Analisar os contratos de serviços e componentes identificados até o momento – Empacotamento foi correto? – Todos os componentes de front-end foram

identificados? – Podemos “agrupar” serviços semelhantes? – Todas as funcionalidades foram identificadas?

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

ClienteAtor

Realizar Doc

Operadora Doc

Controle Cheque

Controle de Acesso

Controle Conta

Controle Qualit Card

Operadora de Cartão de Crédito

ServiçoControleAcesso<<Service Contract>>

+logar(login, senha)+alterarSenha(login, senhaAntiga, senhaNova)

Servico Cadastro ContaInternet<<Service Contract>>

+existe(login, senha)+atualizar(login, senha)

ServicoQualitiCard<<Service Contract>>

+EfetuarpagamentoQualitCard()

Componente ContaInternet

Componente Controle de Acesso

Componente Qualiti Card

Componente Cliente Front-end

Servico Operadora Cartao<<Service Contract>>

+enviar()

Serviço Pagamento cartão<<Service Contract>>

Compoente Operadora Cartão

Componente Pagamento cartão

Componente Cadastro ContaBancariaServiço Cadastro ContaBancaria

<<Service Contract>>

ServiçoControleAcesso<<Service Contract>>

+logar(login, senha)+alterarSenha(login, senhaAntiga, senhaNova)

Servico Cadastro ContaInternet<<Service Contract>>

+existe(login, senha)+atualizar(login, senha)

ServicoQualitiCard<<Service Contract>>

+EfetuarpagamentoQualitCard()

Componente ContaInternet

Componente Controle de AcessoComponente Qualiti Card

Componente Cliente Front-end

Servico Operadora Cartao<<Service Contract>>

+enviar()

Serviço Pagamento cartão<<Service Contract>>

Compoente Operadora Cartão

Componente Pagamento cartão Componente Cadastro ContaBancaria

Serviço Cadastro ContaBancaria<<Service Contract>>

Projetar Arquitetura

1. Refinar Análise de Serviços

2. Definir Padrão de Arquitetura

2. Definir Padrão de Arquitetura

O arquiteto pode seguir um padrão existente para estruturar a aplicação

O arquiteto também pode definir novos padrões ou atualizar orientações existentes

Identificar oportunidades de reuso: – serviços e componentes disponíveis no mercado

– Serviços e componentes de aplicações já desenvolvidas

– Serviços e componentes que podem se tornar reusáveis para outros projetos

2. Definir Padrão de Arquitetura

O Arquiteto deve levar em consideração as tecnologias que serão usadas:

– Ex: .net, java, flash, C++

– Como será a integração do Front e back-end

Necessidades do

negócio

Além do sistema web

– Acessado por celular e desktop (windows, mac e linux)

– O ambiente de produção é Windows Server 2003 com .net framework 2.0 e banco de dados sql server 2005

Definição da Arquitetura

Interface web=> ASP.NET Dispositivos Móveis => Iphone (iOS) Desktop=> aplicação Java Integração com o front-end será feita via

web service Os componentes serão todos

implementados (e não adquiridos) Os componentes de acesso a dados deverão

implementar o padrão Bridge

Componente ContaInternet

Componente Controle de AcessoComponente Qualiti Card

Compoente Operadora Cartão

Compoente CadastrotransacaoComponente Cadastro ContaBancaria

Front-end Iphone<<front-end>>

Desktop<<Front-end>>

Front-end Web<<Front-end>>

IServicoQualitCard

+EfetuarpagamentoQualitCard()

ICadastroTransacao

+ConsultarSaldo()+ConsultarExtrato()+RealizarTransferencia()

IServicoControleAcesso

+logar(login, senha)+alterarSenha(login, senhaAtual, SenhaNova)

ICadastroContaBancaria

+inserir()+remover()+atualizar()+consultar()

IServicoOperadoraCartao

+enviar()

ICadastroContaInternet

+inserir(ContaInternet)+remover(ContaInternet)+atualizar(ContaInternet)+existe(login, senha)

FachadaWebservice

IFachadaWebServices

Fluxo de Atividades

Projetar Back-end

• Envolve o projeto dos componentes do back-end

• Coincide com a atividade “Projetar Subsistemas” do RUP

• Será detalhada posteriomente (atividades comuns a RUP e SOA)

Fluxo de Atividades

Projetar Front-end

Baseado no protótipo da interface, tecnologias utilizadas e integração front-back end

Front-end Iphone<<front-end>>

Desktop<<Front-end>>

Front-end Web<<Front-end>>

FachadaWebservice

IFachadaWebServices

Front-end - Exemplo

TelaLogin

+loginText: TextBox+senhaText: TextBox+entrarButton: Button

+efetuarlogin()

Exercício: QIB

Exercício:

– Baseado no Modelo Navegacional e no modelo de informação, construa o protótipo da interface

– Fazer diagrama de interação para o pacote Controle Qualit Card

– Projetar os serviços do Controle Qualiti Card

– Projetar o back-end e o front-end para o pacote Qualit Card