Think Decoupled Felipe Olivera - felipe.oliveira@soaexpert.com.br               Twitter: @soaexpertbr
Agenda   Introdução { Princípios, Benefícios, Evolução e História, Encapsulamento, Mitos}   Desafios do mundo corporativ...
O que é SOA ?   ”Arquitetura Orientada a Serviços (SOA) é um framework organizacional   e técnico que permite uma empresa ...
E porque utilizar ?
Benefícios Chave   Oferecer uma melhor produtividade, agilidade tanto para área de negócios    quanto TI   Permitir que ...
Evolução História – Same Old ArchitectureDécada                      Unidade de Reúso   Escopo1960                        ...
Desafios do Mundo Corporativo   Desenvolvimento de aplicações e problemas de integração:       Falta de flexibilidade   ...
Visão Point-to-Point
Expandindo apenas um bit ….
Eletronic Data Interchange
Cenário comum de Integração
Primeira Geração de Integração - EAI
Do XML para WebServices   XML uma derivação do SGML – Standard Generalized Markup Language,    anos 60.   XML ganha popu...
SOA Services               -Contrato               -Interface               -Implementação               -Business Logic  ...
WebServices breve histórico   Em 2000 o W3C recebeu uma submissão do SOAP – Simple Object Protocol.   Muitas companhias ...
WebServices breve histórico   Em 2000 o W3C recebeu uma submissão do SOAP – Simple Object Protocol.   Muitas companhias ...
WebServices breve histórico a Revanche !   Outros formatos como XML-RPC foram considerados, mas a indútria acabou    adot...
Papéis do WebService
Como os serviços são desenhados ?
Como os serviços encapsulam a lógica ?
WebService Funcionando
Operações Síncronas Exemplo
Operações Síncronas   Lembra bastante a forma de invocação RPC   Fortemente acoplada entre o cliente e a camada de negóc...
Operações Assíncronas   Retorna uma resposta SOAP vazia, se a resposta for requerida.   Desacopla o cliente do processam...
Padrões WebService   Simple Object Access Protocol (SOAP) descreve o formato de comunicação    da mensagem entre as parte...
SOAP - Simple Access Protocol   Solução testada, há 10 anos no mercado garantindo interoperabilidade    entre as diferent...
SOAP – Body exemplo       SOAP Carregando JSON !!        <s:Body>[{“FirstName":"Foo","LastName":"Bar"}]</s:Body>
WebServices sozinhos não implicam emSOA !
SOA Platform
SOA Conceitos        Request-Driven                  Event-Driven                           WOA                         Me...
Enterprise Service Bus
ESB Características 2a geração- Suporte às tecnologias heterogêneas    - Administração da demanda de- Suporte aos diferent...
BPEL - Composição de ServiçosOs webservices podem ser combinados de duas maneiras:     Orquestração                      ...
Business Analysis Monitoring - BAM
Domain-Driven Design & SOA
Representational State Transfer   REST é uma um estilo arquitetural Request-driven, baseado na Web – http   Criado por u...
Recursos   Podem ser praticamente qualquer coisa:       Uma transação       Um post num blog       Um cliente    •   R...
Recursos exemplos:   http://soaexpert.com.br/cursos    | Todos os cursos   http://soaexpert.com.br/cursos/1 | SOA Founda...
RepresentaçõesTornado seu sistema mais amigável para integrações:-   A idéia é substituir a exposição de “Recursos” por “e...
Interface Uniforme   http://soaexpert.com.br /cursos/1   GET() - obtém os detalhes de um curso específico   PUT () - at...
Princípios Chave do REST   Dê a todas as coisas um Identificador (ID)   Vincule as “coisas”   Utiize métodos padronizad...
Dê a todas as coisas um ID Alguns exemplos de URIs que poderíamos ter: http://soaexpert.com.br/clientes/1234 http://soaexp...
Vincule as coisas - HATEOAS   Significa: “Hipermídia como motor do estado do aplicativo”.<pedido self="http://soaexpert.c...
Utilize os métodos padrão
Utilize os métodos padrão a Revanche !!
Utilize os métodos padrão Ultimate !!
Recursos com múltiplas Representações
Modelo de Maturidade REST
Modelo de Maturidade REST
RESTful Stack
WS-(*) vs RESTful
Gerenciando estado
Descrição dos serviços
Serviços Assíncronos
Não contavam com minha Astúcia
Para onde estamos indo ?
E porque o design orientado a Web ?
Obrigado !!“Quer conhecer mais de SOA e Cloud ? Visitem –                       www.soacloud.com.br“
Próximos SlideShares
Carregando em…5
×

04 - Felipe Oliveira - Think Decoupled! (SOA)

2.140 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
5 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.140
No SlideShare
0
A partir de incorporações
0
Número de incorporações
377
Ações
Compartilhamentos
0
Downloads
37
Comentários
0
Gostaram
5
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

04 - Felipe Oliveira - Think Decoupled! (SOA)

  1. 1. Think Decoupled Felipe Olivera - felipe.oliveira@soaexpert.com.br Twitter: @soaexpertbr
  2. 2. 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(*)}
  3. 3. 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
  4. 4. E porque utilizar ?
  5. 5. 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
  6. 6. Evolução História – Same Old ArchitectureDécada Unidade de Reúso Escopo1960 Funções Programas1980 Objetos Packages1990 Componentes Aplicações>2000 Serviços EmpresasInterface-Driven Design : CORBA – EJBs
  7. 7. 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
  8. 8. Visão Point-to-Point
  9. 9. Expandindo apenas um bit ….
  10. 10. Eletronic Data Interchange
  11. 11. Cenário comum de Integração
  12. 12. Primeira Geração de Integração - EAI
  13. 13. 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.
  14. 14. SOA Services -Contrato -Interface -Implementação -Business Logic -Data
  15. 15. 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.
  16. 16. 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.
  17. 17. 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.
  18. 18. Papéis do WebService
  19. 19. Como os serviços são desenhados ?
  20. 20. Como os serviços encapsulam a lógica ?
  21. 21. WebService Funcionando
  22. 22. Operações Síncronas Exemplo
  23. 23. 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.
  24. 24. 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
  25. 25. 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.
  26. 26. 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 !
  27. 27. SOAP – Body exemplo SOAP Carregando JSON !!  <s:Body>[{“FirstName":"Foo","LastName":"Bar"}]</s:Body>
  28. 28. WebServices sozinhos não implicam emSOA !
  29. 29. SOA Platform
  30. 30. SOA Conceitos Request-Driven Event-Driven WOA Messaging Web Services RSS, REST Queuing PubSub Atom
  31. 31. Enterprise Service Bus
  32. 32. ESB Características 2a geração- Suporte às tecnologias heterogêneas - Administração da demanda de- Suporte aos diferentes paradigmas de processamento (Throttling)comunicação (Assíncrono, Síncrono) - Reforço de Segurança- Transparência de localização - Monitoria de Qualidade do Serviço (SLA- Mediação e QoS)- Transformação de mensagens - REST / Representational State Transfer e- Roteamento de mensagens JSON em cima do ESB- Enriquecimento de mensagens- Agregação de Serviços-Balanceamento de carga (Load Balance)
  33. 33. BPEL - Composição de ServiçosOs webservices podem ser combinados de duas maneiras:  Orquestração O BPEL se preocupa com: Manter estado da transação por longo período, paralelizar o processo e compensação em casos de falha  Coreografia
  34. 34. Business Analysis Monitoring - BAM
  35. 35. Domain-Driven Design & SOA
  36. 36. 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
  37. 37. 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)
  38. 38. 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
  39. 39. RepresentaçõesTornado 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
  40. 40. 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
  41. 41. 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)
  42. 42. Dê a todas as coisas um ID 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 Trabalhando com conjuntos individuais http://soaexpert.com.br/pedidos/2007/11 http://soaexpert.com.br/produtos?cor=verde
  43. 43. 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>
  44. 44. Utilize os métodos padrão
  45. 45. Utilize os métodos padrão a Revanche !!
  46. 46. Utilize os métodos padrão Ultimate !!
  47. 47. Recursos com múltiplas Representações
  48. 48. Modelo de Maturidade REST
  49. 49. Modelo de Maturidade REST
  50. 50. RESTful Stack
  51. 51. WS-(*) vs RESTful
  52. 52. Gerenciando estado
  53. 53. Descrição dos serviços
  54. 54. Serviços Assíncronos
  55. 55. Não contavam com minha Astúcia
  56. 56. Para onde estamos indo ?
  57. 57. E porque o design orientado a Web ?
  58. 58. Obrigado !!“Quer conhecer mais de SOA e Cloud ? Visitem – www.soacloud.com.br“

×