soa e web services aluno: thiago caproni tavares orientador: prof. dr. marcos josé santana...
TRANSCRIPT
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!!!