Web service

26
Web services Francisco Carlos Moraes Junior Marcos Filipe Lino

Transcript of Web service

Page 1: Web service

Web services

Francisco Carlos Moraes JuniorMarcos Filipe Lino

Page 2: Web service

Definição A definição de Web Services de acordo com a W3C diz que é um sistema de software responsável por proporcionar a interação entre duas máquinas através de uma rede.

Page 3: Web service

Outras soluções:

● DCOM (Distributed Component Object Model)● CORBA● JAVA RMI

● Problemas de interoperabilidade● Orientados a ligação● Dependentes de plataforma

Page 4: Web service

Porque webservices?

Page 5: Web service

Reduzir complexidade de integração

O desenvolvimento de aplicações em ambientes corporativos ganhou, com o tempo, proporções que não poderiam ser previstas a curto prazo. Esse crescimento desordenado criou uma espécie de “colcha de retalhos” onde cada componente é desenvolvido para ligar 2 pontos específicos e possuem alto acoplamento dentro do sistema fazendo com que haja uma grande redundância de funcionalidades.

Page 6: Web service

Características● Expõe funcionalidades de programação na web● São acedidos usando protocolos standard HTTP● Comunicam por meio de mensagens● Usam XML para codificar mensagens● Estrutura as mensagens usando o protocolo SOAP● São auto-descritivos permitindo a um cliente facilmente

comunicar com os serviço - WSDL● São serviços que podem ser registrados e facilmente

descobertos

Page 7: Web service

Arquitetura de um web service SOAUma definição técnica de web services SOA poderia ser como um serviço disponibilizado na Internet, descrito via WSDL, registrado via UDDI, acessado utilizando SOAP e com os dados transmitidos sendo representados em XML.

Page 8: Web service

SOAPSOAP (Simple Object Access Protocol) é um protocolo para troca de informações em ambiente distribuído. É baseado em definições XML e utilizado para acessar web services. Esse protocolo encapsula as chamadas e retornos aos métodos dos web services, sendo utilizado, principalmente, sobre HTTP.

Page 9: Web service

De acordo com o W3Schools, a estrutura da mensagem SOAP é definida em um documento XML que contém os seguintes elementos:

SOAP

Page 10: Web service

WSDLWSDL (Web Services Description Language) é a linguagem de descrição de web services baseada em XML. Ela permite, através da definição de um vocabulário em XML, a possibilidade de descrever serviços e a troca de mensagens. Mais especificamente é responsável por prover as informações necessárias para a invocação do web service, como sua localização, operações disponíveis e suas assinaturas.

Page 11: Web service

WSDL

Message : define a part de cada mensagem associada a um tipo PortType : define “glossaryTerms” como um porta e <operation> define o metodo a ser chamadoInput: “getTerms” tem com mensagem de entrada “getTermRequest”output: “getTerms” tem com mensagem de saída ‘“getTermresponse”

Page 12: Web service

UDDIUDDI (Universal Description, Discovery and Integration) é um serviço de diretório onde empresas podem registrar (publicar) e buscar (descobrir) por serviços Web (Web Services). UDDI é ainda um framework de plataforma independente (desenvolvido na plataforma .NET) para descrever e integrar os serviços de negócios usando a internet, possibilitando assim uma exposição controlada dos serviços da empresa. A comunicação é realizada através do SOAP e as interfaces web service são descritas por WSDL.Um serviço de registro UDDI é um WS que gerencia informação sobre provedores, implementações e metadados de serviços. Provedores de serviços podem utilizar UDDI para publicar os serviços que eles oferecem. Usuários de serviços podem usar UDDI para descobrir serviços que lhes interessem e obter os metadados necessários para utilizar esses serviços.

Page 13: Web service

Vantagens do SOAP● Pode atravessar firewalls com facilidade.● Os dados do SOAP são estruturados usando XML. Portanto, as

mensagens podem ser compreendidas por quase todas as plataformas de hardware, sistemas operacionais e linguagens de programação.

● Pode ser usado, potencialmente, em combinação com vários protocolos de transporte de dados, como HTTP, SMTP e FTP.

● O SOAP mapeia satisfatoriamente para o padrão de solicitação / resposta HTTP.

● Pode ser usado tanto de forma anônima como com autenticação (nome/senha).

Page 14: Web service

Desvantagens do SOAP● Pode ser usado tanto de forma anônima como com autenticação

(nome/senha).● Mecanismos de Segurança Imaturos. ● O SOAP não define mecanismo para criptografia do conteúdo de uma

mensagem SOAP, o que evitaria que outros tivessem acesso ao conteúdo da mensagem.

● Não existe garantia quanto à entrega da mensagem. ● Um cliente SOAP não pode enviar uma solicitação a vários servidores,

sem enviar a solicitação a todos os servidores.● Incapacidade de transportar conteudo complexo como arquivos de

imagens ou sons

Page 15: Web service

Ligação SOAP + HTTP Requisição HTTP

POST /item HTTP/1.1 Host: 189.123.345.239 Content-Type: text/plain Content-Length: 200

Uma requisição SOAP é uma requisição HTTP que usa o padrão de request/response definido pelas regras de codificação SOAPHTTP + XML = SOAPUma requisição SOAP pode ser feita através de POST ou GET.

Page 16: Web service

Rest

REST: significa (Representational State Transfer) é um estilo de desenvolvimento de web services que teve origem na tese de doutorado de Roy Fielding

Page 17: Web service

Caracteristicas

● Uso adequado dos métodos HTTP.● Uso adequado de URL’s● Uso adequado de cabeçalho HTTP● Interligação entre vários recursos diferentes

Page 18: Web service

Recursos

O “marco zero” de REST é o recurso. Em REST, tudo é definido em termos de recursos, sendo estes os conjuntos de dados que são trafegados pelo protocolo. Os recursos são representados por URI’s

Page 19: Web service

Exemplo Request

Request: http://localhost:8080/cervejaria/clientes

• http:// - Indica o protocolo que está sendo utilizado (no caso, HTTP);

• localhost:8080 - Indica o servidor de rede que está sendo utilizado e a porta (quando a porta não é especificada, assume-se que é a padrão - no caso do protocolo HTTP, 80);

• cervejaria - Indica o contexto da aplicação, ou seja, a raiz pela qual a aplicação está sendo fornecida para o cliente (Domínio).

• clientes - É o endereço, de fato, do recurso - no caso, a listagem de clientes. Vou me referir a este, daqui em diante, como endereço do recurso.

Page 20: Web service

Exemplo ResponseExemplo de retorno:

<clientes>

<cliente id="1">

<nome>Alexandre</nome>

<dataNascimento>2012-12-01</dataNascimento>

</cliente>

<cliente id="2">

<nome>Paulo</nome>

<dataNascimento>2012-11-01</dataNascimento>

</cliente>

</clientes>

Page 21: Web service

Exemplo ResponseSe você desejar, portanto, retornar um cliente específico, você deve utilizar uma URL diferente. Suponha, por exemplo, que você deseja retornar o cliente com id igual a 1: http://localhost:8080/cervejaria/clientes/1 Isso retornaria algo como:

<cliente id="1"><nome>Alexandre</nome><dataNascimento>2012-12-01</dataNascimento>

</cliente>

Page 22: Web service

HTTP métodosCada método possui particularidades e aplicações de acordo com a necessidade. Estas particularidades são definidas em termos de idempotência, segurança e mecanismo de passagem de parâmetros

• GET• POST• PUT• DELETE• OPTIONS• HEAD• TRACE• CONNECT

Page 23: Web service

Exemplo de código webservice rest

Aplicação sobre bandas musicais.

Page 24: Web service

SOAP VS RESTSOAP:

● independência de transporte (SMTP, HTTP, UDP)● Segurança● Machine-readable● Maior flexibilidade● Interoperabilidade ● Serviço mais robusto.

Page 25: Web service

SOAP VS REST

● Mensagens menores● Simplicidade.● Explora melhor com o HTTP.● A comunicação não é restrita a xml.

Page 26: Web service

Referencias[1]G. Alonso, F. Casati, H. Kuno, V. Machiraju. Web Services: Concepts,Architecture and Applications. Springer Verlag 2004[2]G. Alonso, F. Casati, H. Kuno, V. Machiraju. Web Services: Concepts,Architecture and Applications. Springer Verlag 2004[3]http://www.oreilly.com/catalog/progwebsoap/chapter/ch03.html[4]http://pt.wikipedia.org/wiki/Web_service[5]http://www.caelum.com.br/apostila-java-testes-jsf-web-services-design-patterns/acessando-um-web-service/#6-2-consumindo-dados-de-um-web-service[6]http://www.webopedia.com/TERM/W/Web_Services.html[7]http://www.devmedia.com.br/introducao-as-tecnologias-web-services-soa-soap-wsdl-e-uddi-parte1/2873