PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL 
FACULDADE DE INFORMÁTICA - FACIN 
PROGRAMA DE PÓS GRADUAÇÃO EM CIÊN...
Cronograma 
➔ Web Services; 
➔ Componentes Web Services; 
➔ SOAP; 
➔ REST; 
➔ Comparativo WS X CORBA;
Contexto 
A busca constante pela informação e os avanços das 
tecnologias nos últimos anos que tendem a utilizar 
sistemas...
Contexto 
● Assim, surgem tecnologias que permitem a 
criação de sistemas distribuídos como os 
padrões propostos CORBA, D...
Contexto 
Surgem os Web services. 
Corrigem alguns problemas dos modelos 
existentes: 
● Firewall 
● Interoperabilidade 
●...
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 public...
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 hierarquicamen...
XML 
- Compartilhamento 
de Informações 
entre computadores 
e aplicações. 
- Portabilidade
Principais Tecnologias 
SOAP 
WSDL 
UDDI
WSDL 
Web Services Description Language
WSDL 
WSDL é um documento XML simples que 
descreve através de elementos específicos, a 
estrutura dos serviços web. 
Desc...
WSDL - Componentes 
message: é uma abstracão que informa uma definição de 
tipo que esta efetuando a comunicacão. (I/O, 
r...
WSDL - Componentes 
type: Elemento opcional, serve para definir os tipos de 
dados suportados pelo serviço em questão. 
bi...
WSDL 
Para exemplificar a importância do WSDL, considere um cenário em que é 
preciso invocar um método SOAP, e este métod...
UDDI 
Universal 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 ...
UDDI 
Consultas e publicações de registros UDDI são executadas 
atravéz de mensagens no formato SOAP. Tais operações 
sao ...
UDDI 
As informações definidas em um documento WSDL as quais descrevem um 
serviço, servem para complementar as informaçõe...
Voltando ao Web Services... 
UDDI 
WSDL 
SOAP é acessado 
Web 
Services 
usando 
ligação para 
permite a 
comunicação entr...
SOAP 
Simple Object Access Protocol
SOAP - Historia 
● Criado por Dave Winer, Don Box, Bob Atkinson, e 
Mohsen Al-Ghosein em 1998. 
● Tornou-se padrão pela W3...
SOAP - O que é? 
● Protocolo de troca de mensagens entre 
sistemas 
● Utiliza XML para troca de mensagens 
● Sua função é ...
SOAP - Funcionalidades 
● Interoperabilidade entre sistemas (HTTP, 
XML) 
● Permite a comunicação entre sistemas 
protegid...
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:Envelope 
xmlns:s...
SOAP - Header 
<?xml version="1.0"?> 
É um elemento <soap:Envelope 
xmlns:opcional xsi="Schema-Instance" 
que contém infor...
SOAP - Body 
<?xml version="1.0"?> 
Contém a codificação <soap:Envelope 
xmlns:soap="atual http://www.de w3.uma org/2001/c...
SOAP - Fault 
<?xml version="1.0"?> 
Elemento <env:Envelope opcional xmlns:env="http://<env:Body> 
que contém www.w3.org/a...
Aplicação Prática 
Sistema de frete utilizando SOAP
Aplicação Prática 
Para demonstarmos o funcionamento de um Web Service, 
utilizamos o protocolo SOAP. 
Foi desenvolvido um...
REST 
REpresentational State Transfer
Como Surgiu? 
Roy Thomas Fielding 
● Tese de Doutorado. - Universidade da 
Califórnia 
● Ano 2000 
● Derivação do REST a p...
Características do REST 
● Modelo Cliente Servidor; 
● Sem Estado; 
● Cache; 
● Dividido em Camadas; 
● Interface Uniforme...
Modelo Cliente Servidor
Sem Estado 
● Cada pedido deve conter toda a informação necessária 
para seu processamento; 
● Apresenta maior escalabilid...
Com Cache 
● Eficiência de rede 
● Performance percebida pelo usuário 
● Servidor pode "marcar" respostas como "cacheáveis...
Separação Em Camadas 
● Sistemas atuais tendem a ser complexos; 
● Componentização e separação em camadas 
reduzem complex...
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ç...
DELETE : Como já está explicito, é representado para 
deletar um recurso; 
HEAD: É usado para obter informações por meio d...
Código Sob Demanda(opcional) 
● Permite expansão das funcionalidades do cliente em 
"runtime" por meio de download e execu...
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...
Identificadores 
● Recursos precisam ser encontrados e manipulados 
em sistemas baseados na web 
● URI 
● Identifica unica...
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 ...
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 ...
Conclusão 
● Web services é uma opção viável devido ao baixo custo de 
implementação, facilidade e interoperabilidade em d...
Referências 
Extensible markup language (xml) 1.0 (fifth edition), 2011. 
Wsdl example tutorial test sample soap web servi...
Referências 
M. Johann. Arquitetura corba. 2012. 
E. Newcomer. Understanding Web services: XML, WSDL, SOAP, and 
UDDI. Ind...
Web services
Próximos SlideShares
Carregando em…5
×

Web services

566 visualizações

Publicada em

Web Services - Distributed Software

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
566
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
36
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Web services

  1. 1. 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
  2. 2. Cronograma ➔ Web Services; ➔ Componentes Web Services; ➔ SOAP; ➔ REST; ➔ Comparativo WS X CORBA;
  3. 3. Contexto A 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.
  4. 4. 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.
  5. 5. Contexto Surgem os Web services. Corrigem alguns problemas dos modelos existentes: ● Firewall ● Interoperabilidade ● Complexibilidade
  6. 6. O que é um Web Server?
  7. 7. O que é um Web Server? Web Service
  8. 8. O que é um Web Server? Web Service
  9. 9. O que é um Web Server? Web Service Aplicações
  10. 10. Web Services vs. Web Sites Web Sites → Pessoas Web Services → Software
  11. 11. 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).
  12. 12. Web Services - Heterogeneidade Independente de Linguagem, SO e plataforma. XML, HTML
  13. 13. 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.
  14. 14. XML - Compartilhamento de Informações entre computadores e aplicações. - Portabilidade
  15. 15. Principais Tecnologias SOAP WSDL UDDI
  16. 16. WSDL Web Services Description Language
  17. 17. 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.
  18. 18. WSDL - Componentes message: é 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.
  19. 19. WSDL - Componentes type: 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.
  20. 20. 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.
  21. 21. UDDI Universal Description Discovery and Integration
  22. 22. 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.
  23. 23. UDDI Consultas 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.
  24. 24. UDDI As 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:
  25. 25. Voltando ao Web Services... UDDI WSDL SOAP é acessado Web Services usando ligação para permite a comunicação entre Descreve Permite a descoberta de
  26. 26. SOAP Simple Object Access Protocol
  27. 27. 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.
  28. 28. 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
  29. 29. SOAP - Funcionalidades ● Interoperabilidade entre sistemas (HTTP, XML) ● Permite a comunicação entre sistemas protegidos por firewalls ● Funciona em modo anônimo ou autenticado
  30. 30. SOAP - Exemplo de Comunicação
  31. 31. SOAP - Estrutura Uma mensagem SOAP é formada por 3 elementos básicos: ● Envelope ● Header ● Body
  32. 32. SOAP - Estrutura Exemplo de mensagem SOAP
  33. 33. SOAP - Envelope É o elemento principal do XML que representa a mensagem. <?xml version="1.0"?> <soap:Envelope xmlns: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
  34. 34. SOAP - Header <?xml version="1.0"?> É um elemento <soap:Envelope xmlns:opcional xsi="Schema-Instance" que contém informações especificas a aplicação xmlns:xsd="Schema" xmlns:soap="que Envelope"> está se comunicando (autenticação). <soap:Header> <Autentica xmlns="Local"> <Usuario>usuario</Usuario> <Senha>senha</Senha> </Autentica> </soap:Header> <soap:Body> … </soap:Body> </soap:Envelope> Exemplo de SOAP Header
  35. 35. SOAP - Body <?xml version="1.0"?> Contém a codificação <soap:Envelope xmlns:soap="atual http://www.de w3.uma org/2001/chamada 12/soap-envelope" a um método e todos os argumentos soap:encodingStyle="de http://entrada www.w3. ou uma resposta codificada que org/contém 2001/12/soap-o resultado encoding"> de uma chamada a um método. <soap:Body> <m:GetPrice GetPriceResponse xmlns:m="xmlns:http://m="www. http://www. w3schools.com/prices"> <m:Item>Price>Apples</1.90</m:m:Price> Item> </m:GetPrice> GetPriceResponse> </soap:Body> </soap:Envelope> Exemplo de SOAP Body Response Exemplo de SOAP Body Request
  36. 36. SOAP - Fault <?xml version="1.0"?> Elemento <env:Envelope opcional xmlns:env="http://<env:Body> que contém www.w3.org/as 2001/informações 12/soap-envelope" dos > erros ocorridos <no env:envio Fault> da mensagem. Apenas nas mensagens de resposta <env:do Code> servidor. <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
  37. 37. Aplicação Prática Sistema de frete utilizando SOAP
  38. 38. Aplicação Prática Para 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.
  39. 39. REST REpresentational State Transfer
  40. 40. 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.
  41. 41. Características do REST ● Modelo Cliente Servidor; ● Sem Estado; ● Cache; ● Dividido em Camadas; ● Interface Uniforme; ● Código sob demanda (opcional);
  42. 42. Modelo Cliente Servidor
  43. 43. Sem Estado ● Cada pedido deve conter toda a informação necessária para seu processamento; ● Apresenta maior escalabilidade; ● Implementação facilitada;
  44. 44. Com Cache ● Eficiência de rede ● Performance percebida pelo usuário ● Servidor pode "marcar" respostas como "cacheáveis" ou "não-cacheáveis"
  45. 45. 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
  46. 46. Separação Em Camadas
  47. 47. Interface Uniforme
  48. 48. 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;
  49. 49. 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.
  50. 50. 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 sejam implementadas antes da implantação
  51. 51. Código Sob Demanda(opcional) ● Reduz a visibilidade do sistema
  52. 52. E como essas características do REST se encaixam na prática?
  53. 53. 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
  54. 54. 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
  55. 55. Recursos http://www.infoq.com/br/articles http://www.infoq.com/br/articles/modular-javascript
  56. 56. 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 ...
  57. 57. Recursos, Identificadores e Representações
  58. 58. Exposição dos Recursos
  59. 59. Acesso por GET
  60. 60. CORBA vs WS
  61. 61. WS vs CORBA: Protocolo Web Services: SOAP, HTML, XML CORBA: IIOP, GIOP
  62. 62. WS vc CORBA: Descrição de Interfaces Web Services: WSDL CORBA: IDL
  63. 63. WS vs CORBA Web Services CORBA Vantagens Troca de grandes quantidades de informação por XML. Acesso a implementação de objetos. Desvantagens Dependência de disponibilidade do serviço. Alto custo de implementação e alteração de regras de Firewall
  64. 64. 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.
  65. 65. Referências Extensible 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.
  66. 66. Referências M. Johann. Arquitetura corba. 2012. E. Newcomer. Understanding Web services: XML, WSDL, SOAP, and UDDI. 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.

×