04 - felipe oliveira - think decoupled! (soa)

58
Think Decoupled Felipe Olivera - [email protected] Twitter: @soaexpertbr

Upload: dnad

Post on 29-Nov-2014

2.211 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Think Decoupled Felipe Olivera - [email protected]

Twitter: @soaexpertbr

Page 2: 04 - Felipe Oliveira - Think Decoupled! (SOA)

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)

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)

E porque utilizar ?

Page 5: 04 - Felipe Oliveira - Think Decoupled! (SOA)

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)

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)

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)

Visão Point-to-Point

Page 9: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Expandindo apenas um bit ….

Page 10: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Eletronic Data Interchange

Page 11: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Cenário comum de Integração

Page 12: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Primeira Geração de Integração - EAI

Page 13: 04 - Felipe Oliveira - Think Decoupled! (SOA)

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)

SOA Services

-Contrato

-Interface

-Implementação

-Business Logic

-Data

Page 15: 04 - Felipe Oliveira - Think Decoupled! (SOA)

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)

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)

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)

Papéis do WebService

Page 19: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Como os serviços são desenhados ?

Page 20: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Como os serviços encapsulam a lógica ?

Page 21: 04 - Felipe Oliveira - Think Decoupled! (SOA)

WebService Funcionando

Page 22: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Operações Síncronas Exemplo

Page 23: 04 - Felipe Oliveira - Think Decoupled! (SOA)

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)

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)

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)

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)

SOAP – Body exemplo

SOAP Carregando JSON !! <s:Body>[{“FirstName":"Foo","LastName":"Bar"}]</s:Body>

Page 28: 04 - Felipe Oliveira - Think Decoupled! (SOA)

WebServices sozinhos não implicam em SOA !

Page 29: 04 - Felipe Oliveira - Think Decoupled! (SOA)

SOA Platform

Page 30: 04 - Felipe Oliveira - Think Decoupled! (SOA)

SOA Conceitos

Web Services

Request-Driven Event-Driven

REST RSS,

Atom

WOA Messaging

Queuing PubSub

Page 31: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Enterprise Service Bus

Page 32: 04 - Felipe Oliveira - Think Decoupled! (SOA)

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)

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)

Business Analysis Monitoring - BAM

Page 35: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Domain-Driven Design & SOA

Page 36: 04 - Felipe Oliveira - Think Decoupled! (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

Page 37: 04 - Felipe Oliveira - Think Decoupled! (SOA)

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)

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)

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)

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)

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)

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)

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)

Utilize os métodos padrão

Page 45: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Utilize os métodos padrão a Revanche !!

Page 46: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Utilize os métodos padrão Ultimate !!

Page 47: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Recursos com múltiplas Representações

Page 48: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Modelo de Maturidade REST

Page 49: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Modelo de Maturidade REST

Page 50: 04 - Felipe Oliveira - Think Decoupled! (SOA)

RESTful Stack

Page 51: 04 - Felipe Oliveira - Think Decoupled! (SOA)

WS-(*) vs RESTful

Page 52: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Gerenciando estado

Page 53: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Descrição dos serviços

Page 54: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Serviços Assíncronos

Page 55: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Não contavam com minha Astúcia

Page 56: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Para onde estamos indo ?

Page 57: 04 - Felipe Oliveira - Think Decoupled! (SOA)

E porque o design orientado a Web ?

Page 58: 04 - Felipe Oliveira - Think Decoupled! (SOA)

Obrigado !! “Quer conhecer mais de SOA e Cloud ? Visitem –

www.soacloud.com.br“