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

Post on 17-Apr-2015

103 views 0 download

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

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

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

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

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

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

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

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

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

AArquitetura rquitetura OOrientada a rientada a SServiçoerviço

Service Provider

Service Registry Service Client

Publish

Find

Bind

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

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

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:

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

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

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

PPor que or que UUtilizartilizar W Web eb SServiceservices

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

VVisão isão ddos os WWeb eb SServiceservices

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

WS’s fornecendo uma única funcionalidade

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

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

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

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)

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

AArquitetura rquitetura ddos os WWeb eb SServiceservices

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

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

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

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

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)

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.

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

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

WWeb eb SServices – Modelo Geralervices – Modelo Geral

Service Provider

Service Registry Service ClientBusca

WSDL

SOA

PSO

AP

WSD

L

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

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

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

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

OOBRIGADO!!!BRIGADO!!!