SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
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 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(*)}
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
E porque utilizar ?
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
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
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
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 popularidade nos anos 90 , movimento e-business.

   Schema Definition Language (XSD) e XSL-XSLT ( Transformation Language),
    são pontos chave da tecnologia XML.
SOA Services

               -Contrato

               -Interface

               -Implementação

               -Business Logic

               -Data
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.
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.
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.
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ó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.
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
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.
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 !
SOAP – Body exemplo




       SOAP Carregando JSON !! 
       <s:Body>[{“FirstName":"Foo","LastName":"Bar"}]</s:Body>
WebServices sozinhos não implicam em
SOA !
SOA Platform
SOA Conceitos

        Request-Driven                  Event-Driven




                           WOA                         Messaging
   Web Services                  RSS,
                         REST                    Queuing    PubSub
                                 Atom
Enterprise Service Bus
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)
BPEL - Composição de Serviços
Os 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
Business Analysis Monitoring - BAM
Domain-Driven Design & SOA
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
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)
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
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
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
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)
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
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>
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“

Mais conteúdo relacionado

Mais procurados

SOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a ServiçosSOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a Serviçosalinebicudo
 
Web services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, APIWeb services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, APINuno Pereira
 
AERio 2011 - BPM e SOA - Leonardo Azevedo
AERio 2011 - BPM e SOA - Leonardo AzevedoAERio 2011 - BPM e SOA - Leonardo Azevedo
AERio 2011 - BPM e SOA - Leonardo AzevedoFernando Botafogo
 
ESB TOTVS - Integração de Sistemas
ESB TOTVS - Integração de SistemasESB TOTVS - Integração de Sistemas
ESB TOTVS - Integração de SistemasBRAVA Tecnologia
 
Soa – Woa Rest Arquiteturas
Soa – Woa   Rest ArquiteturasSoa – Woa   Rest Arquiteturas
Soa – Woa Rest Arquiteturasrafaslide
 
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesSistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesAdriano Teixeira de Souza
 
Palestra sobre a SOA foi destaque no Ciasc
Palestra sobre a SOA foi destaque no Ciasc  Palestra sobre a SOA foi destaque no Ciasc
Palestra sobre a SOA foi destaque no Ciasc guest880159
 
AAB305 - Service Oriented Architecture - wcamb
AAB305 - Service Oriented Architecture - wcambAAB305 - Service Oriented Architecture - wcamb
AAB305 - Service Oriented Architecture - wcambMicrosoft Brasil
 
AAB306 - Wcf Services Best Practices - wcamb
AAB306 - Wcf Services Best Practices - wcambAAB306 - Wcf Services Best Practices - wcamb
AAB306 - Wcf Services Best Practices - wcambMicrosoft Brasil
 
Webservices e Xml
Webservices e XmlWebservices e Xml
Webservices e Xmlsys10
 
AAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambAAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambguest34ed8ec
 
Arquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e RESTArquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e RESTlucasbarsand
 

Mais procurados (20)

Web Services
Web ServicesWeb Services
Web Services
 
Web services
Web servicesWeb services
Web services
 
SOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a ServiçosSOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a Serviços
 
Web services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, APIWeb services, aplicações, acesso a aplicações, XML, API
Web services, aplicações, acesso a aplicações, XML, API
 
AERio 2011 - BPM e SOA - Leonardo Azevedo
AERio 2011 - BPM e SOA - Leonardo AzevedoAERio 2011 - BPM e SOA - Leonardo Azevedo
AERio 2011 - BPM e SOA - Leonardo Azevedo
 
ESB TOTVS - Integração de Sistemas
ESB TOTVS - Integração de SistemasESB TOTVS - Integração de Sistemas
ESB TOTVS - Integração de Sistemas
 
Soa – Woa Rest Arquiteturas
Soa – Woa   Rest ArquiteturasSoa – Woa   Rest Arquiteturas
Soa – Woa Rest Arquiteturas
 
Sistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web ServicesSistemas Distribuídos - Comunicação Distribuída – Web Services
Sistemas Distribuídos - Comunicação Distribuída – Web Services
 
Palestra sobre a SOA foi destaque no Ciasc
Palestra sobre a SOA foi destaque no Ciasc  Palestra sobre a SOA foi destaque no Ciasc
Palestra sobre a SOA foi destaque no Ciasc
 
AAB305 - Service Oriented Architecture - wcamb
AAB305 - Service Oriented Architecture - wcambAAB305 - Service Oriented Architecture - wcamb
AAB305 - Service Oriented Architecture - wcamb
 
A Estrutura de um Web Service
A Estrutura de um Web ServiceA Estrutura de um Web Service
A Estrutura de um Web Service
 
AAB306 - Wcf Services Best Practices - wcamb
AAB306 - Wcf Services Best Practices - wcambAAB306 - Wcf Services Best Practices - wcamb
AAB306 - Wcf Services Best Practices - wcamb
 
Web Services XML - .NET framework
Web Services XML - .NET frameworkWeb Services XML - .NET framework
Web Services XML - .NET framework
 
WebServices-XML
WebServices-XMLWebServices-XML
WebServices-XML
 
Soa conceitos
Soa conceitosSoa conceitos
Soa conceitos
 
Webservices e Xml
Webservices e XmlWebservices e Xml
Webservices e Xml
 
TOTVS ESB
TOTVS ESBTOTVS ESB
TOTVS ESB
 
Soa Woa Rest
Soa Woa RestSoa Woa Rest
Soa Woa Rest
 
AAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcambAAB309 - SQL Azure Database - wcamb
AAB309 - SQL Azure Database - wcamb
 
Arquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e RESTArquiteturas SOA, WOA e REST
Arquiteturas SOA, WOA e REST
 

Semelhante a 04 - Felipe Oliveira - Think Decoupled! (SOA)

Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETRenato Groff
 
Web Services - Grupo F
Web Services - Grupo FWeb Services - Grupo F
Web Services - Grupo Fmdmansur
 
Arquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerArquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerMarkus Christen
 
Engenharia de software orientada a servicos
Engenharia de software orientada a servicosEngenharia de software orientada a servicos
Engenharia de software orientada a servicosLeonardo Eloy
 
Web Services Xml
Web Services XmlWeb Services Xml
Web Services XmlUFMG
 
O básico do uso de rest vs soap
O básico do uso de rest vs soapO básico do uso de rest vs soap
O básico do uso de rest vs soapJeison Barros
 
[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e rest[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e restassufmg
 
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)Renato Groff
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...Tchelinux
 
Arquitetura Orientada a Serviços e BPM
Arquitetura Orientada a Serviços e BPMArquitetura Orientada a Serviços e BPM
Arquitetura Orientada a Serviços e BPMRoger Ritter
 
Arquiteturas soa_woa_rest
Arquiteturas soa_woa_restArquiteturas soa_woa_rest
Arquiteturas soa_woa_restapssocial2011
 
Pense Aberto, Pense Linux
Pense Aberto, Pense LinuxPense Aberto, Pense Linux
Pense Aberto, Pense Linuxaviram
 

Semelhante a 04 - Felipe Oliveira - Think Decoupled! (SOA) (20)

Web Service - XML
Web Service - XMLWeb Service - XML
Web Service - XML
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Web Services - Grupo F
Web Services - Grupo FWeb Services - Grupo F
Web Services - Grupo F
 
Arquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerArquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk Server
 
Engenharia de software orientada a servicos
Engenharia de software orientada a servicosEngenharia de software orientada a servicos
Engenharia de software orientada a servicos
 
Real World S O A
Real World S O AReal World S O A
Real World S O A
 
Web Services Xml
Web Services XmlWeb Services Xml
Web Services Xml
 
O básico do uso de rest vs soap
O básico do uso de rest vs soapO básico do uso de rest vs soap
O básico do uso de rest vs soap
 
[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e rest[Ass] arquiteturas soa, woa, e rest
[Ass] arquiteturas soa, woa, e rest
 
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
 
Corbawebserves
CorbawebservesCorbawebserves
Corbawebserves
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
 
Web service
Web serviceWeb service
Web service
 
XML, Webservice e RSS
XML, Webservice e RSSXML, Webservice e RSS
XML, Webservice e RSS
 
Trabalho Final PSDC - Simião
Trabalho Final PSDC - SimiãoTrabalho Final PSDC - Simião
Trabalho Final PSDC - Simião
 
Arquitetura Orientada a Serviços e BPM
Arquitetura Orientada a Serviços e BPMArquitetura Orientada a Serviços e BPM
Arquitetura Orientada a Serviços e BPM
 
Web services
Web  servicesWeb  services
Web services
 
Arquiteturas soa_woa_rest
Arquiteturas soa_woa_restArquiteturas soa_woa_rest
Arquiteturas soa_woa_rest
 
Pense Aberto, Pense Linux
Pense Aberto, Pense LinuxPense Aberto, Pense Linux
Pense Aberto, Pense Linux
 

Mais de DNAD

LT 03 - Juan Lopes - Complexidade algoritmos
LT 03 - Juan Lopes - Complexidade algoritmosLT 03 - Juan Lopes - Complexidade algoritmos
LT 03 - Juan Lopes - Complexidade algoritmosDNAD
 
LT 05 - Ismael Apolinário - Importancia participacao cliente
LT 05 - Ismael Apolinário - Importancia participacao clienteLT 05 - Ismael Apolinário - Importancia participacao cliente
LT 05 - Ismael Apolinário - Importancia participacao clienteDNAD
 
LT 09 - Victor Cavalcante - Arquitetura não é só server side
LT 09 - Victor Cavalcante - Arquitetura não é só server sideLT 09 - Victor Cavalcante - Arquitetura não é só server side
LT 09 - Victor Cavalcante - Arquitetura não é só server sideDNAD
 
LT 08 - Guilherme Silveira - Cache hipermidia
LT 08 - Guilherme Silveira - Cache hipermidiaLT 08 - Guilherme Silveira - Cache hipermidia
LT 08 - Guilherme Silveira - Cache hipermidiaDNAD
 
LT 07 - Glauber de Almeida - DRY
LT 07 - Glauber de Almeida - DRYLT 07 - Glauber de Almeida - DRY
LT 07 - Glauber de Almeida - DRYDNAD
 
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbicaLT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbicaDNAD
 
LT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharpLT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharpDNAD
 
LT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitectureLT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitectureDNAD
 
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnadLT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnadDNAD
 
02a - Leandro Daniel - Examinando a arquitetura evolucionária
02a -  Leandro Daniel - Examinando a arquitetura evolucionária02a -  Leandro Daniel - Examinando a arquitetura evolucionária
02a - Leandro Daniel - Examinando a arquitetura evolucionáriaDNAD
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do railsDNAD
 
07 - Osvaldo Daibert - Cenários para cache de dados distribuidos
07  - Osvaldo Daibert - Cenários para cache de dados distribuidos07  - Osvaldo Daibert - Cenários para cache de dados distribuidos
07 - Osvaldo Daibert - Cenários para cache de dados distribuidosDNAD
 
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?DNAD
 
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDDDNAD
 
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TIDNAD
 
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISSDNAD
 
02b - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b - Elemar Jr. - Examinando a Arquitetura EvolucionáriaDNAD
 
01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - Keynote01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - KeynoteDNAD
 

Mais de DNAD (18)

LT 03 - Juan Lopes - Complexidade algoritmos
LT 03 - Juan Lopes - Complexidade algoritmosLT 03 - Juan Lopes - Complexidade algoritmos
LT 03 - Juan Lopes - Complexidade algoritmos
 
LT 05 - Ismael Apolinário - Importancia participacao cliente
LT 05 - Ismael Apolinário - Importancia participacao clienteLT 05 - Ismael Apolinário - Importancia participacao cliente
LT 05 - Ismael Apolinário - Importancia participacao cliente
 
LT 09 - Victor Cavalcante - Arquitetura não é só server side
LT 09 - Victor Cavalcante - Arquitetura não é só server sideLT 09 - Victor Cavalcante - Arquitetura não é só server side
LT 09 - Victor Cavalcante - Arquitetura não é só server side
 
LT 08 - Guilherme Silveira - Cache hipermidia
LT 08 - Guilherme Silveira - Cache hipermidiaLT 08 - Guilherme Silveira - Cache hipermidia
LT 08 - Guilherme Silveira - Cache hipermidia
 
LT 07 - Glauber de Almeida - DRY
LT 07 - Glauber de Almeida - DRYLT 07 - Glauber de Almeida - DRY
LT 07 - Glauber de Almeida - DRY
 
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbicaLT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
LT 06 - Douglas Aguiar - Quem nao se comunica se trumbica
 
LT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharpLT 02 - Rodrigo Kumpera - Rodando c sharp
LT 02 - Rodrigo Kumpera - Rodando c sharp
 
LT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitectureLT 01 - Rodrigo Yoshima - Business vsarchitecture
LT 01 - Rodrigo Yoshima - Business vsarchitecture
 
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnadLT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
LT 04 - Denis Ferrari - Como lidar com as dificuldades da primeira sprint - dnad
 
02a - Leandro Daniel - Examinando a arquitetura evolucionária
02a -  Leandro Daniel - Examinando a arquitetura evolucionária02a -  Leandro Daniel - Examinando a arquitetura evolucionária
02a - Leandro Daniel - Examinando a arquitetura evolucionária
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails
 
07 - Osvaldo Daibert - Cenários para cache de dados distribuidos
07  - Osvaldo Daibert - Cenários para cache de dados distribuidos07  - Osvaldo Daibert - Cenários para cache de dados distribuidos
07 - Osvaldo Daibert - Cenários para cache de dados distribuidos
 
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
08 - Otavio Pecego - Arquitetura e nuvem: o que muda?
 
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
06 - Giovanni Bassi - CQS, CQRS, DDD, DbC, DDDD
 
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
 
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
02c - Vinicius Quaiato - Over Patternization, YAGNI, KISS
 
02b - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária02b  - Elemar Jr. - Examinando a Arquitetura Evolucionária
02b - Elemar Jr. - Examinando a Arquitetura Evolucionária
 
01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - Keynote01 - Giovanni Bassi - Keynote
01 - Giovanni Bassi - Keynote
 

04 - Felipe Oliveira - Think Decoupled! (SOA)

  • 1. Think Decoupled Felipe Olivera - felipe.oliveira@soaexpert.com.br Twitter: @soaexpertbr
  • 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. 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
  • 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. 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
  • 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
  • 11. Cenário comum de Integração
  • 12. Primeira Geração de Integração - EAI
  • 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. SOA Services -Contrato -Interface -Implementação -Business Logic -Data
  • 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. 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. 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.
  • 19. Como os serviços são desenhados ?
  • 20. Como os serviços encapsulam a lógica ?
  • 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. 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. 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. 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. SOAP – Body exemplo SOAP Carregando JSON !!  <s:Body>[{“FirstName":"Foo","LastName":"Bar"}]</s:Body>
  • 28. WebServices sozinhos não implicam em SOA !
  • 30. SOA Conceitos Request-Driven Event-Driven WOA Messaging Web Services RSS, REST Queuing PubSub Atom
  • 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. BPEL - Composição de Serviços Os 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
  • 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. 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. 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. 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
  • 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. 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. 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. 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>
  • 45. Utilize os métodos padrão a Revanche !!
  • 46. Utilize os métodos padrão Ultimate !!
  • 47. Recursos com múltiplas Representações
  • 55. Não contavam com minha Astúcia
  • 57. E porque o design orientado a Web ?
  • 58. Obrigado !! “Quer conhecer mais de SOA e Cloud ? Visitem – www.soacloud.com.br“