SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana...

39
SOA e Web Services SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro de 2007

Transcript of SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana...

Page 1: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

SOA e Web ServicesSOA e Web Services

Aluno: Thiago Caproni TavaresOrientador: Prof. Dr. Marcos José Santana

Seminários – Disciplina de Sistemas Distribuídos

22 de Novembro de 2007

Page 2: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

AAgendagenda

Introdução Arquitetura Orientada a Serviço Web Services

– Por que utilizar?– Visão dos web services– Arquitetura– Camada Física– Camada de Descrição– Camada de Descoberta

Objetos Distribuídos e Web Services

Page 3: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

IIntroduçãontrodução

A Internet mudou a maneira de se fazer negócios

Facilidade para o acesso as aplicações HTML e HTTP -> Padrão de troca de

informação Navegadores Web – Tornaram a comunicação

simples e possível

Page 4: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

IIntroduçãontrodução

Problema– Diferentes empresas utilizam diferentes tecnologias

e soluções– Como realizar integração de maneira

automatizada?– Muitas vezes é necessário reimplementar as

soluções

Page 5: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

AArquitetura rquitetura OOrientada a rientada a SServiçoerviço

Forma de reorganização de aplicações– Infra-estrutura de um conjunto de serviços– Acessados através de interfaces padronizadas de

protocolos de mensagens Quando utilizar?

– Quando múltiplas aplicações precisam se comunicar sobre uma variedade de tecnologias e plataformas

Page 6: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

AArquitetura rquitetura OOrientada a rientada a SServiçoerviço

Empresa X Empresa Y

?PHP

JAVA

C++

Python

Perl

PHP

JAVA

C++

Perl

Sockets XML

CORBA

Solução Proprietária

DCOM

RMI

Page 7: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

AArquitetura rquitetura OOrientada a rientada a SServiçoerviço

Base da Arquitetura– Agentes de softwares que se interagem por troca

de mensagens Clientes são agentes que requisitam a

execução de um serviço Provedores são agentes que fornecem o

serviço Ambos podem ser clientes e provedores

Page 8: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

AArquitetura rquitetura OOrientada a rientada a SServiçoerviço

Provedores são responsáveis pela publicação e descrição do serviço

Clientes devem estar aptos a encontrar essas descrições e acessá-los

Três tipos de participante fazem parte da SOA:– O Provedor do Serviço– O Serviço de Descoberta– Cliente do Serviço

Page 9: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

AArquitetura rquitetura OOrientada a rientada a SServiçoerviço

Service Provider

Service Registry Service Client

Publish

Find

Bind

Page 10: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

AArquitetura rquitetura OOrientada a rientada a SServiçoerviço

Um serviço possui uma interface e uma implementação– Função de negócio implementada em software– Encapsulada com uma interface documentada

formalmente (Encapsulamento de caixa-preta)– Modularidade

A interface é uma descrição do conjunto de operações que estão disponíveis para o cliente

Page 11: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

AArquitetura rquitetura OOrientada a rientada a SServiçoerviço

Resumidamente:– A SOA é a base dos web services– Reorganiza as funcionalidades de uma aplicação

através de serviços– Suas principais características são:

Neutralidade de Tecnologia Acoplamento fraco Transparência de localização

Page 12: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

WWeb eb SServiceservices

Tecnologia para computação distribuída baseada na web

Mecanismo popular na implementação de SOA’s

Tem ganhado uma rápida adoção e suporte de empresas:

Page 13: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

WWeb eb SServiceservices

Podem ser vistos como um componente de software onde os detalhes da implementação são escondidos atrás de uma interface.

Apache Axis e Java2WSDL– Ferramentas que obtém interfaces a partir de

sistemas orientados a objetos já existentes

Page 14: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

PPor que or que UUtilizartilizar W Web eb SServiceservices

Interoperabilidade – Independência de hardware, sistemas

operacionais e linguagens de programação Padrões são abertos Uso de XML (Troca de documentos) Integração B2B

Page 15: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

PPor que or que UUtilizartilizar W Web eb SServiceservicesEnterprise Application Integration (EAI)

Page 16: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

PPor que or que UUtilizartilizar W Web eb SServiceservices

Protocolos Envolvidos– HTTP– XML– SOAP– WSDL– UDDI

Page 17: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

VVisão isão ddos os WWeb eb SServiceservices

Combinação– Operações podem ser combinadas entre diversos

WS’s fornecendo uma única funcionalidade

Page 18: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

VVisão isão ddos os WWeb eb SServiceservices

Padrões de Comunicação – Síncrona, assíncrona ou por eventos

Cliente Provedor Cliente Provedor

Δt

Δt

ProvedorCliente

Evento

Síncrona Assíncrona Evento

Page 19: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

VVisão isão ddos os WWeb eb SServiceservices

Modelo de programação não particular– Ambiente web possui uma infinidade de

linguagens de programação– Paradigma de programação dos WS’s são

independentes de qualquer outro paradigma

Page 20: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

VVisão isão ddos os WWeb eb SServiceservices

Representação de mensagens– Representação do SOAP e dos dados são feitas

através de XML– Maior ocupação de espaço com relação ao

formato binário– Maior custo de processamento– Legível para seres humanos e de fácil depuração

Page 21: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

VVisão isão ddos os WWeb eb SServiceservices

Referências de Serviços– Cada serviço na web tem um URI (Uniform

Resource Indentifier)– O URL (Uniform Resource Locator) é a forma

mais comum de URI– Frequentemente os domínios são mudados– Necessidade de um URN (Uniform Resource

Names)

Page 22: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

VVisão isão ddos os WWeb eb SServiceservices

Transparência– Clientes e provedores lêem e gravam suas

mensagens diretamente em envelopes SOAP utilizando XML

– Linguagens de programação com Java, Perl, Phyton ou C++ oferecem API’s (Application Programming Interface)

– Geração automática dos procedimentos de empacotamento

Page 23: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

AArquitetura rquitetura ddos os WWeb eb SServiceservices

Composta por pelo menos três camadas:– Camada Física– Camada de Descrição– Camada de Descoberta

Page 24: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.
Page 25: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

WWeb eb SServices – ervices – CCamada amada FFísicaísica

Camada física– Camada mais baixa onde está a base de todo o

desenvolvimento dos web services– Sintaxe de roteamento das mensagens– Suporte a transações simples– Assinatura digital– Criptografia– Qualidade de serviço– Protocolos propostos para essa camada: XML-

RPC e SOAP

Page 26: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

WWeb eb SServices – ervices – CCamada amada FFísicaísica

XML-RPC– Utilizado por serviços mais leves– Cada requisição é enviada como uma mensagem

HTTP-POST e as respostas são recebidas através de uma mensagem HTTP 200

– Todas mensagens possuem cabeçalhos HTTP

Page 27: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

WWeb eb SServices – ervices – CCamada amada FFísicaísica

SOAP (Simple Object Access Protocol)– Assim como o XML-RPC, o SOAP é um protocolo

de troca de informações para dados “tipados”– Versão 1.1 foi desvinculada do HTTP,

diferentemente do XML-RPC– Possibilidade da utilização de protocolos como

SMTP, POP3, FTP e etc.– A especificação é composta por três partes: um

envelope, um conjunto de regras de codificação e uma convenção RPC

Page 28: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.
Page 29: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

WWeb eb SServices – ervices – CCamada amada dde e DDescriçãoescrição

Contém a semântica formal para descrever as mensagens que os WS’s podem entender

Descreve as restrições de dados dentro das mensagens, as ontologias e a maneira com que os WS’s podem ser combinados

Os tipos de dados são expressadas por um XML Schema

As semânticas são expressadas pela Web Service Description Language (WSDL)

Page 30: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

WWeb eb SServices – ervices – CCamada amada dde e DDescriçãoescrição

XML Schema– É uma alternativa aos DTD`s (Document Type Definition)– define os elementos e os atributos que podem aparecer em

um documento.– define quais elementos são elementos filhos.– define a ordem e o número dos elementos filhos.– define se um elemento é vazio ou pode conter texto.– define os tipos que podem ser atribuídos a elementos e

atributos.– define padrões e valores fixos a elementos e atributos.

Page 31: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

WWeb eb SServices – ervices – CCamada amada dde e DDescriçãoescrição

WSDL– Análoga a um interface Java ou a linguagem de

definição de interface do CORBA (IDL)– Fornece um mecanismo capaz de descrever as

comunicações de um modo estruturado– Serviços como coleções de endpoints– Alguns Elementos:

Types Message Operation Etc...

Page 32: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.
Page 33: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

WWeb eb SServices – ervices – CCamada amada dde e DDescobertaescoberta

Oferece processos e mecanismos pelos quais os web services podem ser encontrados

Diretório de serviço onde os web services podem ser registrados e encontrados (W3C)

O UDDI (Universal Description Discovery and Integration) provê as interfaces de serviços descritas em um documento WSDL

Page 34: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

WWeb eb SServices – Modelo Geralervices – Modelo Geral

Service Provider

Service Registry Service ClientBusca

WSDL

SOA

PSO

AP

WSD

L

Page 35: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

OObjetos bjetos DDistribuídos e istribuídos e WWeb eb SServiceservices

CORBA e RMI – Objetos remotos Em WS’s não existe o conceito de referências

a objetos– Serviço definido por um endpoint que suporta

várias operações Em termos de objetos distribuídos, os WS

possuem um caráter singleton (stateless) RMI e CORBA foram projetados para uso

dentro de uma organização ou entre um pequeno número de organizações

Page 36: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

OObjetos bjetos DDistribuídos e istribuídos e WWeb eb SServiceservices

WS possui computação orientada a documentos (XML)– Diferentemente de uma requisição a uma instância

de um objeto Objetos distribuídos permitem o acesso ao

mesmo estado repetidamente CORBA – Interoperable Object Reference

– Cliente e Servidor devem possuir o mesmo repositório de interfaces

Page 37: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

OObjetos bjetos DDistribuídos e istribuídos e WWeb eb SServiceservices

Principais diferenças– Não incluem noções de objetos– Referências de objetos– Ciclos de vida– Comunicação através de encapsulamento de

documentos XML

Page 38: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

OObjetos bjetos DDistribuídos e istribuídos e WWeb eb SServiceservices

Objetos distribuídos– Tecnologia robusta e madura– Restrição ao ambiente em que eles foram

projetados (ex. uma intranet corporativa)– Homegeneidade e latência conhecida

Web Services– Computação distribuída sobre a internet– Interoperabilidade– Heterogeneidade de plataformas e redes

Page 39: SOA e Web Services Aluno: Thiago Caproni Tavares Orientador: Prof. Dr. Marcos José Santana Seminários – Disciplina de Sistemas Distribuídos 22 de Novembro.

OOBRIGADO!!!BRIGADO!!!