Web services

Post on 09-Jul-2015

92 views 0 download

description

Web Services - Distributed Software

Transcript of 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

Cronograma

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

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.

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.

Contexto

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

O que é um Web Server?

O que é um Web Server?

Web Service

O que é um Web Server?

Web Service

O que é um Web Server?

Web Service

Aplicações

Web Services vs. Web Sites

Web Sites → Pessoas

Web Services → Software

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

Web Services - Heterogeneidade

Independente de Linguagem, SO e plataforma.

XML, HTML

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.

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

- Portabilidade

Principais Tecnologias

SOAP

WSDL

UDDI

WSDLWeb Services Description Language

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.

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.

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.

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.

UDDIUniversal Description Discovery and

Integration

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.

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.

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:

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

SOAPSimple Object Access Protocol

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.

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

SOAP - Funcionalidades

● Interoperabilidade entre sistemas (HTTP, XML)

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

● Funciona em modo anônimo ou autenticado

SOAP - Exemplo de Comunicação

SOAP - Estrutura

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

● Envelope● Header● Body

SOAP - Estrutura

Exemplo de mensagem SOAP

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

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

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

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

Aplicação PráticaSistema de frete utilizando SOAP

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.

REST

REpresentational State Transfer

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.

Características do REST

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

Modelo Cliente Servidor

Sem Estado

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

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

Com Cache

● Eficiência de rede

● Performance percebida pelo usuário

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

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

Separação Em Camadas

Interface Uniforme

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;

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.

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

Código Sob Demanda(opcional)

● Reduz a visibilidade do sistema

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

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

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

Recursos

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

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

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

Recursos, Identificadores e Representações

Exposição dos Recursos

Acesso por GET

CORBA vs WS

WS vs CORBA: Protocolo

Web Services: SOAP, HTML, XML

CORBA: IIOP, GIOP

WS vc CORBA: Descrição de Interfaces

Web Services: WSDL

CORBA: IDL

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

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.

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.

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.