Upload
dnad
View
2.211
Download
2
Embed Size (px)
DESCRIPTION
Citation preview
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
Web Services
Request-Driven Event-Driven
REST RSS,
Atom
WOA Messaging
Queuing PubSub
Enterprise Service Bus
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
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
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
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
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“