04 - Felipe Oliveira - Think Decoupled! (SOA)
-
Upload
dnad -
Category
Technology
-
view
2.208 -
download
2
description
Transcript of 04 - Felipe Oliveira - Think Decoupled! (SOA)
![Page 2: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/2.jpg)
Agenda Introdução { Princípios, Benefícios, Evolução e História, Encapsulamento, Mitos}
Desafios do mundo corporativo {Arquitetura Distribuída, Ótica de Negócios}
SOA Services { Providers, WebServices, Operações Síncronas, Operações Assíncronas, SOAP, WS(*) – Overview}
Stack Plataforma {Management, Composição, Governança, ESB, BAM }
Modelagem Granularidade {Task Services, Entity Services, DDD e sua relação com SOA}
RESTFul Style / WebHumana {Recursos, Interfaces, Comparativo com WS(*)}
![Page 3: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/3.jpg)
O que é SOA ?
”Arquitetura Orientada a Serviços (SOA) é um framework organizacional e técnico que permite uma empresa distribuir suas funcionalidades de negócio, independente de plataforma tecnológica, como peças para construção de aplicações “ – Carl August Simon
![Page 4: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/4.jpg)
E porque utilizar ?
![Page 5: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/5.jpg)
Benefícios Chave
Oferecer uma melhor produtividade, agilidade tanto para área de negócios quanto TI
Permitir que a equipe de TI desenvolva serviços em alinhamento às expectativas do negócio
Excelente tempo de resposta, melhorando a experiência do usuário final do software (SOA ebay)
Encapsular a complexidade tecnológica de integrações entre as mais diferentes plataformas da empresa, segurança e gestão de SLA
![Page 6: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/6.jpg)
Evolução História – Same Old Architecture
Década Unidade de Reúso Escopo
1960 Funções Programas
1980 Objetos Packages
1990 Componentes Aplicações
>2000 Serviços Empresas
Interface-Driven Design : CORBA – EJBs
![Page 7: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/7.jpg)
Desafios do Mundo Corporativo
Desenvolvimento de aplicações e problemas de integração:
Falta de flexibilidade
Falta de padrões
Projetos com custos altos e de longa duração
Metodologias tradicionais:
Point-to-point
Ferramentas Integradoras (Tuxedo,MQSeries)/middleware/EAI
Business process-based integration
![Page 8: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/8.jpg)
Visão Point-to-Point
![Page 9: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/9.jpg)
Expandindo apenas um bit ….
![Page 10: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/10.jpg)
Eletronic Data Interchange
![Page 11: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/11.jpg)
Cenário comum de Integração
![Page 12: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/12.jpg)
Primeira Geração de Integração - EAI
![Page 13: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/13.jpg)
Do XML para WebServices
XML uma derivação do SGML – Standard Generalized Markup Language, anos 60.
XML ganha popularidade nos anos 90 , movimento e-business.
Schema Definition Language (XSD) e XSL-XSLT ( Transformation Language), são pontos chave da tecnologia XML.
![Page 14: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/14.jpg)
SOA Services
-Contrato
-Interface
-Implementação
-Business Logic
-Data
![Page 15: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/15.jpg)
WebServices breve histórico
Em 2000 o W3C recebeu uma submissão do SOAP – Simple Object Protocol.
Muitas companhias viram o potencial para avançar o estado da tecnologia de e-business, criando uma forma de se comunicar através da internet.
A peça central do conceito é a Interface Pública, que permite sua invocação através de assinatura e identificação – WSDL ( Web Service Description Language) – 2001.
![Page 16: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/16.jpg)
WebServices breve histórico
Em 2000 o W3C recebeu uma submissão do SOAP – Simple Object Protocol.
Muitas companhias viram o potencial para avançar o estado da tecnologia de e-business, criando uma forma de se comunicar através da internet.
A peça central do conceito é a Interface Pública, que permite sua invocação através de assinatura e identificação – WSDL ( Web Service Description Language) – 2001.
![Page 17: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/17.jpg)
WebServices breve histórico a Revanche !
Outros formatos como XML-RPC foram considerados, mas a indútria acabou adotando o SOAP como padrão.
Primeira geração trazia ainda a especificação UDDI , originalmente desenvolvida pela UDDI.org
Início das plataformas de produtos MOMS – Messaging Oriented Middleware.
WebServices começam de fato a facilitar a troca de informações em sistemas B2B e segue como alternativa ao EDI – Eletronic Data Interchange.
![Page 18: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/18.jpg)
Papéis do WebService
![Page 19: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/19.jpg)
Como os serviços são desenhados ?
![Page 20: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/20.jpg)
Como os serviços encapsulam a lógica ?
![Page 21: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/21.jpg)
WebService Funcionando
![Page 22: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/22.jpg)
Operações Síncronas Exemplo
![Page 23: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/23.jpg)
Operações Síncronas
Lembra bastante a forma de invocação RPC
Fortemente acoplada entre o cliente e a camada de negócios
São ideais para operações de negócios rápidas com retorno de resultados
São melhor usadas pelas aplicações da própria companhia.
![Page 24: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/24.jpg)
Operações Assíncronas
Retorna uma resposta SOAP vazia, se a resposta for requerida.
Desacopla o cliente do processamento de negócio
Promove o desacoplamento e melhor uso dos recursos
É ideal para integração com parceiros externos à companhia
![Page 25: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/25.jpg)
Padrões WebService
Simple Object Access Protocol (SOAP) descreve o formato de comunicação da mensagem entre as partes envolvidas num Web Service.
Web Services Description Language (WSDL) define um mecanismo para descrever as operações de um Web Service de uma forma neutra às plataformas.
Universal Description, Discovery and Integration (UDDI), facilita o registro e busca dos Web Services transformando as descrições em hierarquia, facilitando assim a busca.
![Page 26: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/26.jpg)
SOAP - Simple Access Protocol
Solução testada, há 10 anos no mercado garantindo interoperabilidade entre as diferentes plataformas e sistemas.
Protocolo lógico, que navega em cima de outros protocolos, desacoplado das camadas de transporte !
![Page 27: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/27.jpg)
SOAP – Body exemplo
SOAP Carregando JSON !! <s:Body>[{“FirstName":"Foo","LastName":"Bar"}]</s:Body>
![Page 28: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/28.jpg)
WebServices sozinhos não implicam em SOA !
![Page 29: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/29.jpg)
SOA Platform
![Page 30: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/30.jpg)
SOA Conceitos
Web Services
Request-Driven Event-Driven
REST RSS,
Atom
WOA Messaging
Queuing PubSub
![Page 31: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/31.jpg)
Enterprise Service Bus
![Page 32: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/32.jpg)
ESB Características 2a geração
- Suporte às tecnologias heterogêneas - Suporte aos diferentes paradigmas de comunicação (Assíncrono, Síncrono) - Transparência de localização - Mediação - Transformação de mensagens - Roteamento de mensagens - Enriquecimento de mensagens - Agregação de Serviços -Balanceamento de carga (Load Balance)
- Administração da demanda de processamento (Throttling) - Reforço de Segurança - Monitoria de Qualidade do Serviço (SLA e QoS) - REST / Representational State Transfer e JSON em cima do ESB
![Page 33: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/33.jpg)
BPEL - Composição de Serviços
Os webservices podem ser combinados de duas maneiras:
Orquestração
Coreografia
O BPEL se preocupa com: Manter estado da transação por longo período, paralelizar o processo e compensação em casos de falha
![Page 34: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/34.jpg)
Business Analysis Monitoring - BAM
![Page 35: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/35.jpg)
Domain-Driven Design & SOA
![Page 36: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/36.jpg)
Representational State Transfer
REST é uma um estilo arquitetural Request-driven, baseado na Web – http
Criado por um dos principais autores do HTTP – Roy Fielding
É uma maneira de encarar seu ativo de software como “Recursos”
Distribui o estado desses recursos através de hypermedia
![Page 37: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/37.jpg)
Recursos
Podem ser praticamente qualquer coisa:
Uma transação
Um post num blog
Um cliente
• Recurso é acessado através de Representações !
• Cada recurso implementa uma interface padrão (uniform interface)
• Recursos possuem nomes e endereços (URIs)
![Page 38: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/38.jpg)
Recursos exemplos:
http://soaexpert.com.br/cursos | Todos os cursos
http://soaexpert.com.br/cursos/1 | SOA Foundation
http://soaexpert.com.br/cursos/2 | Integration Specialist
![Page 39: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/39.jpg)
Representações
Tornado seu sistema mais amigável para integrações:
- A idéia é substituir a exposição de “Recursos” por “endpoints”
- Cada Recurso, pode ter uma ou mais representação como: XML ou JSON
![Page 40: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/40.jpg)
Interface Uniforme
http://soaexpert.com.br /cursos/1
GET() - obtém os detalhes de um curso específico
PUT () - atualiza um curso
POST() - adiciona um item no curso
DELETE() – apaga um curso
![Page 41: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/41.jpg)
Princípios Chave do REST
Dê a todas as coisas um Identificador (ID)
Vincule as “coisas”
Utiize métodos padronizados (Uniform Interface)
Recursos com múltiplas representações (XML, JSON..)
Comunique sem estado (Stateless)
![Page 42: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/42.jpg)
Dê a todas as coisas um ID
Trabalhando com conjuntos individuais http://soaexpert.com.br/pedidos/2007/11 http://soaexpert.com.br/produtos?cor=verde
Alguns exemplos de URIs que poderíamos ter: http://soaexpert.com.br/clientes/1234 http://soaexpert.com.br/pedidos/2007/10/776654 http://soaexpert.com.br/produtos/4554 http://soaexpert.com.br/processos/aumento-salario-234
![Page 43: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/43.jpg)
Vincule as coisas - HATEOAS
Significa: “Hipermídia como motor do estado do aplicativo”.
<pedido self="http://soaexpert.com.br/clientes/1234">
<valor>23</valor>
<produto ref="http://soaexpert.com.br/produtos/4554"></produto>
<cliente ref="http://soaexpert.com.br/clientes/1234"></cliente>
</pedido>
![Page 44: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/44.jpg)
Utilize os métodos padrão
![Page 45: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/45.jpg)
Utilize os métodos padrão a Revanche !!
![Page 46: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/46.jpg)
Utilize os métodos padrão Ultimate !!
![Page 47: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/47.jpg)
Recursos com múltiplas Representações
![Page 48: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/48.jpg)
Modelo de Maturidade REST
![Page 49: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/49.jpg)
Modelo de Maturidade REST
![Page 50: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/50.jpg)
RESTful Stack
![Page 51: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/51.jpg)
WS-(*) vs RESTful
![Page 52: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/52.jpg)
Gerenciando estado
![Page 53: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/53.jpg)
Descrição dos serviços
![Page 54: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/54.jpg)
Serviços Assíncronos
![Page 55: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/55.jpg)
Não contavam com minha Astúcia
![Page 56: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/56.jpg)
Para onde estamos indo ?
![Page 57: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/57.jpg)
E porque o design orientado a Web ?
![Page 58: 04 - Felipe Oliveira - Think Decoupled! (SOA)](https://reader034.fdocument.pub/reader034/viewer/2022042713/547a3c815906b502358b465d/html5/thumbnails/58.jpg)
Obrigado !! “Quer conhecer mais de SOA e Cloud ? Visitem –
www.soacloud.com.br“