Web services
-
Upload
cleverson-ledur -
Category
Software
-
view
92 -
download
0
description
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.