Web services

67
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMÁTICA - FACIN PROGRAMA DE PÓS GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO WEB SERVICES Aline Zanin Cleverson Ledur Pedro Henrique Silva

description

Web Services - Distributed Software

Transcript of Web services

Page 1: Web services

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SULFACULDADE DE INFORMÁTICA - FACIN

PROGRAMA DE PÓS GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO

WEB SERVICES

Aline ZaninCleverson Ledur

Pedro Henrique Silva

Page 2: Web services

Cronograma

➔ Web Services; ➔ Componentes Web Services;➔ SOAP;➔ REST;➔ Comparativo WS X CORBA;

Page 3: Web services

ContextoA busca constante pela informação e os avanços das tecnologias nos últimos anos que tendem a utilizar sistemas mais complexos e que se comuniquem gerou uma busca por desenvolvimento de tecnologias que permitissem a integração e comunicação de sistemas para funcionar de forma distribuída.

Page 4: Web services

Contexto

● Assim, surgem tecnologias que permitem a criação de sistemas distribuídos como os padrões propostos CORBA, DCOM, URPC e RMI.

● Estes padrões existem até hoje.

Page 5: Web services

Contexto

Surgem os Web services.Corrigem alguns problemas dos modelos existentes:● Firewall● Interoperabilidade● Complexibilidade

Page 6: Web services

O que é um Web Server?

Page 7: Web services

O que é um Web Server?

Web Service

Page 8: Web services

O que é um Web Server?

Web Service

Page 9: Web services

O que é um Web Server?

Web Service

Aplicações

Page 10: Web services

Web Services vs. Web Sites

Web Sites → Pessoas

Web Services → Software

Page 11: Web services

Web Services

Web services são conjuntos de aplicacões baseadas em Extensible Markup Language (XML) que podem ser publicadas, localizadas e invocadas através da World Wide Web (WEB).

Page 12: Web services

Web Services - Heterogeneidade

Independente de Linguagem, SO e plataforma.

XML, HTML

Page 13: Web services

XMLÉ uma linguagem de marcação recomendada pela W3C para a criação de documentos com dados organizados hierarquicamente, tais como textos, banco de dados ou desenhos vetoriais.

Page 14: Web services

XML- Compartilhamento de Informações entre computadores e aplicações.

- Portabilidade

Page 15: Web services

Principais Tecnologias

SOAP

WSDL

UDDI

Page 16: Web services

WSDLWeb Services Description Language

Page 17: Web services

WSDL

WSDL é um documento XML simples que descreve através de elementos específicos, a estrutura dos serviços web.

Descreve a interface para quem utilizará o serviço.

Page 18: Web services

WSDL - Componentesmessage: é uma abstracão que informa uma definição de tipo que esta efetuando a comunicacão. (I/O, request/response)

portType: conjunto de operacões que são suportadas por pontos finais de conexão.

operation: e uma descrição abstrata descrevendo uma ação que um determinado serviço pode suportar.

Page 19: Web services

WSDL - Componentestype: Elemento opcional, serve para definir os tipos de dados suportados pelo serviço em questão.

binding: Define os protocolos de comunicação que são utilizados.

service: e uma coleção de pontos finais de conexão a que são relacionados.

port: Definem o endereço de localização do Web Service.

Page 20: Web services

WSDL Para exemplificar a importância do WSDL, considere um cenário em que é preciso invocar um método SOAP, e este método é fornecido por um terceiro, porém, sem a existência de um arquivo WSDL, especificando o que a mensagem de requisição deve conter e como vai ser a resposta, no momento do desenvolvimento, e criado um campo em um formato diferente do formato ideal, acarretando em problemas futuros, que não acontecem quando se utiliza WSDL.

Page 21: Web services

UDDIUniversal Description Discovery and

Integration

Page 22: Web services

UDDI

UDDI é um serviço de diretório onde empresas podem registrar e buscar por Web services.

páginas brancas descrevem a companhia: nome, endereço, contatos, etc.

páginas amarelas incluem as categorias, baseada em taxonomias padrões.

páginas verdes descrevem a interface para o serviço, em nível de detalhe suficiente para se escrever uma aplicação que use o Web service.

Page 23: Web services

UDDIConsultas e publicações de registros UDDI são executadas atravéz de mensagens no formato SOAP. Tais operações sao baseadas em especificações de uma API proposta pela UDDI.XML.ORG, orgão responsável por coordenar e desenvolver as especificações do UDDI.

Page 24: Web services

UDDIAs informações definidas em um documento WSDL as quais descrevem um serviço, servem para complementar as informações encontradas em um registro UDDI. O registro UDDI é um arquivo XML composto por cinco tipos de dados, sendo eles:

Page 25: Web services

Voltando ao Web Services...UDDI

WSDL

Web Services

SOAPé acessado usando

ligação para

perm

ite a

co

mun

icaçã

o en

tre

Descreve

Permite a

descoberta de

Page 26: Web services

SOAPSimple Object Access Protocol

Page 27: Web services

SOAP - Historia

● Criado por Dave Winer, Don Box, Bob Atkinson, e Mohsen Al-Ghosein em 1998.

● Tornou-se padrão pela W3C em 24 de junho de 2003.

Page 28: Web services

SOAP - O que é?

● Protocolo de troca de mensagens entre sistemas

● Utiliza XML para troca de mensagens● Sua função é a de padronizar o formato e

estrutura das mensagens

Page 29: Web services

SOAP - Funcionalidades

● Interoperabilidade entre sistemas (HTTP, XML)

● Permite a comunicação entre sistemas protegidos por firewalls

● Funciona em modo anônimo ou autenticado

Page 30: Web services

SOAP - Exemplo de Comunicação

Page 31: Web services

SOAP - Estrutura

Uma mensagem SOAP é formada por 3 elementos básicos:

● Envelope● Header● Body

Page 32: Web services

SOAP - Estrutura

Exemplo de mensagem SOAP

Page 33: Web services

SOAP - EnvelopeÉ o elemento principal do XML que representa a mensagem.

<?xml version="1.0"?><soap:Envelopexmlns:soap="http://www.w3.org/2001/12/soap-envelope"soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> … …</soap:Envelope>

Exemplo de SOAP Envelope

Page 34: Web services

SOAP - HeaderÉ um elemento opcional que contém informações especificas a aplicação que está se comunicando (autenticação).

<?xml version="1.0"?><soap:Envelope xmlns:xsi="Schema-Instance" xmlns:xsd="Schema" xmlns:soap="Envelope"> <soap:Header> <Autentica xmlns="Local"> <Usuario>usuario</Usuario> <Senha>senha</Senha> </Autentica> </soap:Header> <soap:Body> …</soap:Body></soap:Envelope>

Exemplo de SOAP Header

Page 35: Web services

SOAP - BodyContém a codificação atual de uma chamada a um método e todos os argumentos de entrada ou uma resposta codificada que contém o resultado de uma chamada a um método.

<?xml version="1.0"?><soap:Envelopexmlns:soap="http://www.w3.org/2001/12/soap-envelope"soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <m:GetPrice xmlns:m="http://www.w3schools.com/prices"> <m:Item>Apples</m:Item> </m:GetPrice></soap:Body> </soap:Envelope>

Exemplo de SOAP Body Request

<?xml version="1.0"?><soap:Envelopexmlns:soap="http://www.w3.org/2001/12/soap-envelope"soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body> <m:GetPriceResponse xmlns:m="http://www.w3schools.com/prices"> <m:Price>1.90</m:Price> </m:GetPriceResponse></soap:Body> </soap:Envelope>

Exemplo de SOAP Body Response

Page 36: Web services

SOAP - FaultElemento opcional que contém as informações dos erros ocorridos no envio da mensagem. Apenas nas mensagens de resposta do servidor.

<?xml version="1.0"?><env:Envelope xmlns:env="http://www.w3.org/2001/12/soap-envelope" > <env:Body> <env:Fault>

<env:Code> <env:Value>env:Sender</env:Value> </env:Code>

<env:Reason> <env:Text xml:lang="en-US">Processing error</env:Text> <env:Text xml:lang="da">Processerings-fejl</env:Text> </env:Reason>

</env:Fault> </env:Body></env:Envelope>

Exemplo de SOAP Fault

Page 37: Web services

Aplicação PráticaSistema de frete utilizando SOAP

Page 38: Web services

Aplicação PráticaPara demonstarmos o funcionamento de um Web Service, utilizamos o protocolo SOAP.Foi desenvolvido um site em PHP, que calcula o frete de um determinado produto, utilizando o Web Service dos Correios.

Page 39: Web services

REST

REpresentational State Transfer

Page 40: Web services

Como Surgiu?Roy Thomas Fielding

● Tese de Doutorado. - Universidade da Califórnia

● Ano 2000● Derivação do REST a partir da análise

de vários estilos arquiteturais.

Page 41: Web services

Características do REST

● Modelo Cliente Servidor;● Sem Estado;● Cache; ● Dividido em Camadas;● Interface Uniforme;● Código sob demanda (opcional);

Page 42: Web services

Modelo Cliente Servidor

Page 43: Web services

Sem Estado

● Cada pedido deve conter toda a informação necessária para seu processamento;

● Apresenta maior escalabilidade;● Implementação facilitada;

Page 44: Web services

Com Cache

● Eficiência de rede

● Performance percebida pelo usuário

● Servidor pode "marcar" respostas como "cacheáveis" ou "não-cacheáveis"

Page 45: Web services

Separação Em Camadas

● Sistemas atuais tendem a ser complexos;

● Componentização e separação em camadas reduzem complexidade e promovem reusabilidade e escalabilidade;

● Boa prática de engenharia de software

Page 46: Web services

Separação Em Camadas

Page 47: Web services

Interface Uniforme

Page 48: Web services

GET : Representa uma acesso de buscar de algum recurso, leituras online ou em cache;

POST : Representado para efetuar ações de criação, sem o uso de cache;

PUT : Representado como atualizações de um recurso existente;

Page 49: Web services

DELETE : Como já está explicito, é representado para deletar um recurso;

HEAD: É usado para obter informações por meio do cabeçalho da resposta, sem recuperar todo o conteúdo.

OPTIONS: Recupera os métodos HTTP que o servidor aceita.

Page 50: Web services

Código Sob Demanda(opcional)● Permite expansão das funcionalidades do cliente em

"runtime" por meio de download e execução scripts ou applets

● Simplicidade do cliente por possibilitar que menos funcionalidades sejamimplementadas antes da implantação

Page 51: Web services

Código Sob Demanda(opcional)

● Reduz a visibilidade do sistema

Page 52: Web services

E como essas características do REST se encaixam na prática?

Page 53: Web services

Recursos

● Arquitetura REST é "orientadas a recursos";● São o "alicerce" dos sistemas baseados na web;● Pode-se dizer didaticamente que um recurso é um

pacote de “coisas”● HATEOAS - Hypermedia as the Engine of

Application State

Page 54: Web services

Identificadores

● Recursos precisam ser encontrados e manipulados em sistemas baseados na web

● URI● Identifica unicamente (1 URI para 1 recurso)● Torna o recurso endereçável e manipulável por um

protocolo de aplicação: HTTP

Page 55: Web services

Recursos

http://www.infoq.com/br/articles

http://www.infoq.com/br/articles/modular-javascript

Page 56: Web services

Como manipular o estado dos recursos?

● Através de suas representações

● Uma representação é uma visão do estado de um recurso em determinado instante do tempo (uma foto);

● A representação é codificada em formatos padronizados e passíveis de transferência pela web: XML, JSON, CSV ...

Page 57: Web services

Recursos, Identificadores e Representações

Page 58: Web services

Exposição dos Recursos

Page 59: Web services

Acesso por GET

Page 60: Web services

CORBA vs WS

Page 61: Web services

WS vs CORBA: Protocolo

Web Services: SOAP, HTML, XML

CORBA: IIOP, GIOP

Page 62: Web services

WS vc CORBA: Descrição de Interfaces

Web Services: WSDL

CORBA: IDL

Page 63: Web services

WS vs CORBA

Web Services CORBA

Vantagens Troca de grandes

quantidades de informação por XML.

Acesso a implementação de objetos.

DesvantagensDependência de

disponibilidade do serviço.Alto custo de

implementação e alteração de regras de Firewall

Page 64: Web services

Conclusão● Web services é uma opção viável devido ao baixo custo de

implementação, facilidade e interoperabilidade em diferentes plataformas, sistemas operacionais e linguagens de programação.

● Pode ser utilizado como ferramenta de integração de diferentes sistemas uma vez que utiliza protocolos simples e já difundidos.

● Com a grande quantidade de plataformas de hardware e software surgindo, é possível que o uso de web services no futuro aumente.

Page 65: Web services

ReferênciasExtensible markup language (xml) 1.0 (fifth edition), 2011.Wsdl example tutorial test sample soap web service wsdl, 2011.A. K. Becker and D. B. Claro. Web services e xml um novo paradigma da computacão distribuída. 2011.E. Cerami. Web Services Essentials: Distributed Applications with XML-RPC, SOAP, UDDI & WSDL. Cookbook Series. O’Reilly Media, Incorporated, 2002.M. Dantas. Computação distribuída de alto desempenho: redes, clusters e grids computacionais. Axcel Books, 2005.A. DOS SANTOS. Integração de Sistemas com Java. BRASPORT.C. E. e Inovação. Apostila web Agil com vraptor, hibernate e ajax,2011.R. T. Fielding and R. N. Taylor. Principled design of the modern web architecture. ACM Transactions on Internet Technology (TOIT), 2(2):115–150, 2002.A. Freeman and A. Jones. Microsoft .net xml web services: Step by step, 2003.

Page 66: Web services

ReferênciasM. Johann. Arquitetura corba. 2012.E. Newcomer. Understanding Web services: XML, WSDL, SOAP, andUDDI. Independent technology guides. Addison-Wesley, 2002.S. Nunes and G. David. Uma Arquitetura web para servicos web.OASIS. Universal description, discovery and integration v3.0.2 uddi.2004.P. S. B. Pinto. Webservice – a realidade da computação distribuída como ferramenta de integração entre tecnologias. 2011.M. Rozlog. Rest e soap: Usar um dos dois ou ambos?, 2013.S. Seely. Soap: Cross Platform Web Service Development Using Xml.2002.A. Tanenbaum and M. Van Steen. Distributed Systems: Principles and Paradigms. Pearson prentice hall legal series. Pearson Prentice Hall, 2007.A. Vakali and G. Pallis. Web Data Management Practices: Emerging Techniques and Technologies. Gale Virtual Reference Library. Idea Group Pub., 2007.W3C. Soap version 1.2 part 0: Primer (second edition), 2007.

Page 67: Web services