SOA
Service Oriented Architecture
Estilo/padrão de arquitetura onde as
funcionalidades de aplicações
existentes são disponibilizadas na
forma de serviços
É um elemento de Service Oriented
Computing (SOC), um paradigma de
desenvolvimento baseado no conceito
de serviços
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
SOA – Service Oriented Architecture
O que são serviços?
» Serviço é um componente que atende a uma
» Pode receber e responder requisições,
ocultando os detalhes de implementação
Desacoplados em relação ao cliente/consumidor
Descritos através de contratos de operações
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
função de negócio (business function)
Serviços versus Componentes
»
»
»
»
abstrato
ligado ao negócio
desvinculado de um
código
granularidade
“grossa”
pode ser
implementado por
componentes
» Componentes
» elemento concreto
» usado para compor
aplicações
» vinculado a um
código
» Granularidade mais
“fina
Ex.: Uma entity EJB é um componente, não um serviço
Comparação interessante em
http://radovanjanecek.net/blog/archives/296.html
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
» Serviço
» conceito mais
SOA
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
SOA: Vantagens potenciais
Análise e Projeto em SOA
(Service Oriented Architecture)
Requisitos
Modelagem do
Negócio
Analisar serviços
Planejamento
Projetar Serviços
Planejamento
Inicial
Implementação
Avaliação
Teste
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Especificação do
modelo de negócios
Prototipar Interface Gráfica
Analisar
Serviços
Projetar
Arquitetura
Projetar
Serviços
Revisor de
projeto
Prototipar
Interface gráfica
Arquiteto de
Informação
Analisar
Casos de Uso
Projetar
Casos de Uso
Projetar
Subsistemas/
componentes
Analista de
Sistemas
Projetar
classes
Revisar
Projeto
Projetar
Base de Dados
Projetista de
Banco de Dados
Análise e Projeto OO com UML e Padrões| 9
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Arquiteto de
Software
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 | 10
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Objetivos desta atividade
Visão geral dos artefatos
Arquiteto da
informação
Documento da
Arquitetura
Modelo de
Casos de Uso
Prototipar Interface
Gráfica
Modelo de
Informação do
Negócio
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Documento deGlossário
Requisitos
Prototipação da
Interface Gráfica
Modelo
Navegacional
Protótipo da
Interface Gráfica
Analisar caso de uso | 11
Passos para Prototipar a GUI
- 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 | 12
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
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)
Analisar caso de uso | 13
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
1. Modelar conceitos de negócios
1. Modelar conceitos de negócios
I1
I2
1
UC 01
1
I2
1..*
I3
I1
I2
0..1
UC 02
1
1
I1
I2
0..1
UC 03
UC 04
1
I1
I2
0..1
Actor A
1..*
1
I3
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
0..1
QIB - Diagrama de Casos de Uso
Usaremos o QIB como exemplo
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
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Desbloquear Talões
de Cheque
Conta
Cliente
Pagmento Cartão
Comprovante
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Modelo de Informação do negócio
2. Projetar Fluxo de Informação
- 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 | 17
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Gerar o modelo navegacional do sistema
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Home
Minha
página
Conta
corrente
Cartões
Serviços
DOC
Analisar caso de uso | 19
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Modelo Navegacional do QIB
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?
Analisar caso de uso | 20
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
3. Elaborar Protótipo de Interface
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Como criar os artefatos?
Ferramentas:
Netbeans (Fluxo de telas)
Exemplos:
- www.cin.ufpe.br/~vtb/wireframes
- http://www.axure.com/Samples/AxureRPFeature
-
sSample/AxureRPFeaturesSample_Start.html
http://www.axure.com/Samples/RegistrationSam
ple/RegistrationSample_Start.html
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
- Axure RP(wireframe), Smartdraw (sitemap),
Prototipar Interface Gráfica
Exercício:
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&fea
ture=related
http://www.youtube.com/watch?v=sieYeDepdzA&feat
ure=related
http://www.youtube.com/watch?v=NwsjE5LY1M&feature=related
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
- Baseado no Modelo Navegacional e no modelo de
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Analisar Serviços
Contexto
Analisar
Serviços
Projetar
Arquitetura
Projetar
Serviços
Revisor de
projeto
Prototipar
Interface gráfica
Arquiteto de
Informação
Analisar
Casos de Uso
Projetar
Casos de Uso
Analista de
Sistemas
Projetar
Subsistemas
<<subsystem>>
Projetar
classes
decisões do
arquiteto
Projetar
Base de Dados
Projetista de
Banco de Dados
Check
List
 bla bla
 bla
 blabla
Revisar
Projeto
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Arquiteto de
Software
Objetivos
(orientada a serviços) do sistema
» Sistemática para identificação
dos serviços e componentes
“Análise” diferente do RUP
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
» Visão inicial da arquitetura
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Passo a Passo
Visão Geral dos Artefatos
<<entrada para esta atividade>>
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
<<entrada para esta atividade>>
1. Empacotar Casos de Uso
2. Construir Arquitetura de Serviços
3. Identificar Serviços de Entidade
4. Revisar Resultados
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Para Identificar Serviços:
1. Empacotar Casos de Uso
2. Construir Arquitetura de Serviços
3. Identificar Serviços de Entidades
4. Revisar Resultados
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Para Identificar Serviços:
Desbloquear Talões
de Cheque
Efetuar Login
Solicitar Talões de Cheque
Consultar Cheques
ClienteAtor
Analisar Serviços
Exemplo do QIB
Alterar Senha
Consultar Saldo
<<include>>
Realizar DOC
Consultar Extrato
Realizar Transferência
Operadora do DOC
<<include>>
Consultar Qualiti Card
Efetuar Pagamento do
Qualiti Card
Operadora Cartão de
Crédito
Mostrar Dados da
Consulta
Controle de Acesso
Controle Cheque
Exemplo do QIB
Controle Conta
Realizar Transferência
ClienteAtor
Realizar Doc
Operadora Doc
Controle Qualit Card
Operadora de Cartão de Crédito
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)
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
2. Construir 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
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Arquitetura de Serviços
Arquitetura de Serviços
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
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
• Gerada estaticamente a partir do modelo de
Pacote 2
UC 5
UC 4
Pacote 1
UC 1
Ator 2
Ator 1
UC2
Analisar Serviços
Arquitetura de Serviços
UC3
provide
consume
<<Participant>>
Ator1
consume
<<Service Contract>>
UC5-Ator2
<<Service Contract>>
Pacote1
<<Service Contract>>
Pacote2
<<Participant>>
Sistema
provide
consume
provide
<<Service Contract>>
UC5
consume
provide
<<Participant>>
Ator2
Participants
<<consumer>>
Cliente Front-end
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
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Controle de Acesso
Services Contracts
<<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
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
<<Service Contract>>
Controle de Acesso
<<Service Contract>>
Controle de Cheque
Arquitetura de Serviços
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>>
Relizar Doc
consumer
<<Service Contract>>
Servico Operadora Doc
provider
<<Service Contract>>
Controle Qualiti Card
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
<<Service Contract>>
Controle de Cheque
provider
<<participant>>
Operadora DOC
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
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
3. Identificar Serviços de entidades
3. Identificar Serviços de entidades
<<Service Contract>>
Serviço Conta
ContaintInternet
<<Service Contract>>
Serviço Conta Internet
PagamentoCartão
Comprovante
<<Service Contract>>
Serviço PagamentoCartão
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Conta
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Fluxo de Atividades
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
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
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?
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Interação dos Serviços
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
Fazer diagrama de interação para o pacote
Controle Qualit Card
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Exercício
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
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Atualizar atributos das entidades
Conta
+numero
+saldo
ContaintInternet
+login
+senha
PagamentoCartão
+numero da fatura
+data
+valor
+numero da conta
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Modelo de Informação Refinado
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Fluxo de Atividades
Identificação de componentes
-
Identificar os participants provedores
Componentes “provedores” implementam os
contratos de serviços
Definir relacionamento entre componentes
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Sistemática para identificar os componentes
<<Service Contract>>
OperadoraCartao
<<Service Contract>>
ControleAcesso
provider
Identificar Componentes
consumer
<<participant>>
Cliente Front-end
<<Service Contractt>>
ControleConta
consumer
consumer
provider
comsumer
provider
<<participant>>
Sistema back-end
<<participant>>
Operadora Cartão
consumer
<<Service Contract>>
ControleQualitiCard
<<Service Contract>>
ContaInternet
<<Service Contract>>
ContaBancaria
<<Service Contract>>
Transação
<<Front-end>>
Cliente Front-end
IControleAcesso
IControleConta
Controle de Acesso
Controle Conta
IControleCartão
Controle Cartão
IOperadoraCartão
IContaInternet
ContaInternet
IContaBancaria
ContaBancaria
ITrasação
Trasação
OperadoraCartão
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Projetar Serviços
Analisar
Serviços
Projetar
Arquitetura
Projetar
Serviços
Revisor de
projeto
Prototipar
Interface gráfica
Arquiteto de
Informação
Analisar
Casos de Uso
Projetar
Casos de Uso
Projetar
Subsistemas/
componentes
Analista de
Sistemas
Projetar
classes
Revisar
Projeto
Projetar
Base de Dados
Projetista de
Banco de Dados
Análise e Projeto OO com UML e Padrões| 54
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Arquiteto de
Software
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Fluxo de Atividades
1.
2.
Refinar Análise de Serviços
Definir Padrão de Arquitetura
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Projetar Arquitetura
Lembrando o resultado
de Analisar Serviços …
provider
Identificar Componentes
consumer
<<participant>>
Cliente Front-end
<<Service Contract>>
OperadoraCartao
<<Service Contract>>
ControleAcesso
<<Service Contractt>>
ControleConta
consumer
consumer
provider
comsumer
provider
<<participant>>
Sistema back-end
<<participant>>
Operadora Cartão
consumer
<<Service Contract>>
ControleQualitiCard
<<Service Contract>>
ContaInternet
<<Service Contract>>
ContaBancaria
<<Service Contract>>
Transação
<<Front-end>>
Cliente Front-end
IControleAcesso
IControleConta
Controle de Acesso
Controle Conta
IControleCartão
Controle Cartão
IOperadoraCartão
IContaInternet
ContaInternet
IContaBancaria
ContaBancaria
ITrasação
Trasação
OperadoraCartão
1. Refinar Análise de Serviços
- 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?
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Baseado no:
Controle de Acesso
Controle Conta
Realizar Transferência
ClienteAtor
Realizar Doc
Operadora Doc
Controle Qualit Card
Operadora de Cartão de Crédito
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Controle Cheque
Controle de Acesso
Controle Cheque
ClienteAtor
Realizar Doc
Operadora Doc
Controle Qualit Card
Operadora de Cartão de Crédito
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Controle Conta
Componente Controle de Acesso
+logar(login, senha)
+alterarSenha(login, senhaAntiga, senhaNova)
<<Service Contract>>
Servico Cadastro ContaInternet
+existe(login, senha)
+atualizar(login, senha)
Componente Cliente Front-end
<<Service Contract>>
ServicoQualitiCard
+EfetuarpagamentoQualitCard()
Componente Qualiti Card
<<Service Contract>>
Servico Operadora Cartao
+enviar()
<<Service Contract>>
Serviço Cadastro ContaBancaria
<<Service Contract>>
Serviço Pagamento cartão
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
<<Service Contract>>
ServiçoControleAcesso
Com
<<Service Contract>>
ServicoQualitiCard
<<Service Contract>>
ServiçoControleAcesso
+EfetuarpagamentoQualitCard()
+logar(login, senha)
+alterarSenha(login, senhaAntiga, senhaNova)
Componente Qualiti Card
<<Service Contract>>
Serviço Pagamento cartão
Componente Controle de Acesso
<<Service Contract>>
Serviço Cadastro ContaBancaria
<<Service Contract>>
Servico Cadastro ContaInternet
+existe(login, senha)
+atualizar(login, senha)
Componente Pagamento cartão
<<Service Contract>>
Servico Operadora Cartao
+enviar()
Componente Cadastro ContaBancaria
Compoente Operadora Cartão
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Componente Cliente Front-end
Componente ContaInternet
1.
Refinar Análise de Serviços
2. Definir
Padrão de Arquitetura
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Projetar 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
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
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 backend
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
2. Definir Padrão de Arquitetura
Necessidades do negócio
- 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
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Além do sistema web
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
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Definição da Arquitetura
<<Front-end>>
Front-end Web
<<front-end>>
Front-end Iphone
<<Front-end>>
Desktop
IFachadaWebServices
IServicoControleAcesso
IServicoQualitCard
+logar(login, senha)
+alterarSenha(login, senhaAtual, SenhaNov
+EfetuarpagamentoQualitCard()
Componente Qualiti Card
Componente Controle de Acess
IServicoOperadoraCartao
+enviar()
oente Operadora Cartão
ICadastroContaBancaria
+inserir()
+remover()
+atualizar()
+consultar()
Componente Cadastro ContaBancaria
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
FachadaWebservice
ICadastroTransacao
+ConsultarSaldo()
+ConsultarExtrato()
+RealizarTransferencia()
Compoente Cadastrotransacao
ICadastroContaInternet
+inserir(ContaInternet)
+remover(ContaInternet)
+atualizar(ContaInternet)
+existe(login, senha)
Componente ContaInternet
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Fluxo de Atividades
•
•
•
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)
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Projetar Back-end
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Fluxo de Atividades
Baseado no protótipo da interface,
tecnologias utilizadas e integração frontback end
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Projetar Front-end
<<Front-end>>
Front-end Web
<<front-end>>
Front-end Iphone
IFachadaWebServices
FachadaWebservice
<<Front-end>>
Desktop
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
Front-end - Exemplo
+loginText: TextBox
+senhaText: TextBox
+entrarButton: Button
+efetuarlogin()
2006 Qualiti. Todos os direitos reservados.
Copyright © 2008
TelaLogin
Download

to get the file