SOA
Service Oriented Architecture
Maxmiliano Franco Braga
Agenda
O


que é?
SOA
Glossário de SOA
Vantagens
e Cuidados
Exemplos
 Viagem
 Restaurante
 Processos do MP
O que é SOA? [1]
Service Oriented Architecture
 Em português: Arquitetura Orientada a Serviços
Um
conceito
Orientação a Serviços
 Separação do software em porções (serviços)
Arquitetura de Software
 Orientações e Regras para Design e Implementação
 Boas práticas
O que é SOA? [2]
SOA está relacionada
 Projeto
 Implementação
 Administração
SOA abrange:
 Questões tecnológicas
 Princípios organizacionais
 Princípios de processos
a:
O que é SOA? [3]
Protocolos:
 SOAP (Simple Object Access Protocol)






REST (Representational State Transfer)





Padrão W3C
Conceito chave: WSDL
Forte validação de tipos
Envio de XML em envelopes
Utilizado pelo Google, Amazon
Está em franca ascenção
Conceito chave: URI
É de fácil compreensão aos seres humanos
Utilizado pelo Yahoo, Amazon, eBay
RPC (Remote Procedure Call)

Forma mais 'crua' de tratar serviços
Glossário SOA: Serviço
Unidade
significativa de Software
Abstração
Pode
de processo de negócio
ser compartilhado e reutilizado
Possui
interface/protocolo bem definido
Stateless
(sem estado)
Princípios para criação de Serviços
Nomes
devem facilitar o consumo
Granularidade
Serviços
devem ser coesos e completos
Encapsular
Permitir
deve ser bem definida
detalhes da implementação
diferentes padrões de chamada
Independência
de estado
Glossário SOA: Orchestration
Camada
Cria
consumidora de Serviços
soluções a partir de Serviços
Define
fluxo de dados e de funções
Adiciona
Maior
lógica adicional necessária
volatilidade facilita mudanças
Modelo Conceitual
Vantagens de SOA
Reutilização de Software
 Serviços são utilizados por diferentes sistemas
 Cuidado: serviços devem ser conhecidos e publicados
Aumento
de produtividade
Maior agilidade
 Facilita manutenção
Maior
proximidade com Negócio
Dificuldades em SOA
Identificar partes reutilizáveis
 Pontos de vista diferentes:


de Negócio
Negócio x TI
Negócio x Negócio
Criar serviços comuns e genéricos
 Granularidade
 Generalização x Especialização
Divulgação de serviços
 É preciso conhecer para utilizar
Exemplo – Viagem [1]
Considere
uma hipotética apresentação de
um sistema da SINFO à área de TI do
Ministério Público do Maranhão
Cenário:
 O MP-GO não possui linhas aéreas
 O MP-GO não possui frota de táxi
 O MP-GO não possui rede hoteleira
Exemplo – Viagem [2]
Será consumido um serviço de CIA Aérea
 Integrantes do MP não conhecem o Negócio Aviação
 Integrantes do MP não sabem pilotar um avião
 Só é preciso informar o destino do vôo e viajar
Será consumido um serviço de Táxi
 Integrantes do MP não conhecem caminho do aeroporto
para o Hotel
 Integrantes do MP não conhecem as ruas de São Luís
 Só é preciso informar o destino da corrida e relaxar
Exemplo – Viagem [3]
Será consumido um serviço de Hotel
 Os viajantes não conhecem o Negócio Hotel
 Ninguém precisa, sequer, saber arrumar cama
 Só é preciso fazer a reserva, informando os parâmetros,
e 'consumir' o quarto
Exemplo – Rede de Restaurantes [1]
Considere um restaurante
 Pedidos são feitos
 O pedido é preparado e entregue ao cliente
 O cliente paga pela refeição
Serviços identificados:
 RegistrarPedido()
 EntregarPedido()
 EfetuarPagamento()
Exemplo – Rede de Restaurantes [2]
Nosso
restaurante, no cenário atual,
orquestrou os serviços na seguinte ordem:



RegistrarPedido()
EntregarPedido()
EfetuarPagamento()
Estes serviços podem ser
 Outros sistemas do restaurante
 Filiais em outras localidades
reutilizados
Exemplo – Rede de Restaurantes [3]
O
restaurante abriu uma filial no shopping,
que trabalhará como um fast-food
Para
atender à nova demanda, os serviços
são orquestrados na seguinte ordem:



RegistrarPedido()
EfetuarPagamento()
EntregarPedido()
Exemplo – Rede de Restaurantes [4]
Outras possibilidades
 Delivery / Entregas
 Buffet
 Self-Service por quilo
 Empório
 Loja de Conveniência
Novos
de reutilização
serviços podem ser criados
Diferentes
orquestrações podem ser
realizadas para novas demandas
Exemplo – Processos do MP [1]
Considere
que o MPGO desenvolve
webservices para a sociedade:

Obter lista de processos

Obter informações detalhadas de um processo

Registrar denúncia
Exemplo – Processos do MP [2]
Obter lista de processos
 Recurso: Processo
 URL: http://www.mp.go.gov.br/processos/
 Retorno:
<?xml version="1.0"?>
<p:Processos xmlns:p="http://www.mp.go.gov.br"
xmlns:xlink="http://www.w3.org/1999/xlink">
<Processo id="00345"
xlink:href="http://www.mp.go.gov.br/processos/00345"/>
<Processo id="00346"
xlink:href="http://www.mp.go.gov.br/processos/00346"/>
<Processo id="00347"
xlink:href="http://www.mp.go.gov.br/processos/00347"/>
<Processo id="00348"
xlink:href="http://www.mp.go.gov.br/processos/00348"/>
</p:Processos>
Exemplo – Processos do MP [3]
Obter informações de um processo
 Recurso: Processo
 URL: http://www.mp.go.gov.br/processos/00345
 Retorno:
<?xml version="1.0"?>
<p:Processo xmlns:p="http://www.mp.go.gov.br"
xmlns:xlink="http://www.w3.org/1999/xlink">
<Processo-ID>00345</Processo-ID>
<Descricao>Deúncia contra fulano de
tal...</Descricao>
<Promotor
xlink:href="http://www.mp.go.gov.br/processos/00345/prom
otor" />
</p:Processo>
Exemplo – Processos do MP [4]
Registrar Denúncia
 Recurso: Denúncia
 URL: http://www.mp.go.gov.br/denuncia
 Cliente cria uma instância de Denúncia
 Envio através de HTTP POST
 É atribuído uma URL para a Denúncia criada

Ex.: http://www.mp.go.gov.br/denuncia/00005
Dúvidas?
Perguntas
podem ser feitas neste momento
Respostas
podem ser dadas, ou não
Respostas
dadas não são garantidas
Obrigado!
Agradeço
a todos os presentes
A
quem contribui com a apresentação
E
aos ausentes, também
Enfim...
Obrigado a todos!
Download

Service Oriented Architecture