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
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.
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 !
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>