serviços web ou web services - std29006 engenharia de...

45
Serviços web ou Web Services STD6 – Engenharia de Telecomunicações Prof. Emerson Ribeiro de Mello http://docente.ifsc.edu.br/mello/std

Upload: others

Post on 05-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Serviços web ou Web ServicesSTD29006 – Engenharia de Telecomunicações

Prof. Emerson Ribeiro de Mello

http://docente.ifsc.edu.br/mello/std

13 DE ABRIL DE 2020

Page 2: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Arquitetura Orientada a Serviços

Service Oriented Architecture – SOAOrganiza aplicações por meio de um conjunto de interações de serviçosque são acessados por meio de interfaces e protocolos padronizados

interfaces são auto-descritivas e baseadas em padrões abertos

São definidos três papéis:Diretório para registro de serviços – Repositório para publicação elocalização de interfaces dos serviços

Provedor de Serviços – Responsável por publicar interfaces dosserviços que provê, bem como atender requisições dos clientes

Cliente – Aplicação ou outro serviço que envia requisições a umServiço

1/34

Page 3: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Arquitetura Orientada a Serviços

Registro deserviços

Provedor deserviços

PublicarLocalizar

InvocarCliente

Descrição doserviço

Serviço

Descrição doserviço

2/34

Page 4: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

O que são serviços

Neutro à tecnologiaInvocado através de tecnologias padrões (protocolos, mecanimos depublicação e de busca) amplamente aceitas

Fracamente acopladoNão requer o conhecimento prévio de qualquer estrutura internapresente no lado do cliente ou do serviço

Localização transparenteInformações sobre a definição e localização são publicadas em umrepositório e estão acessíveis a uma variedade de clientes,independente da localizações dos mesmos

3/34

Page 5: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Serviços Web (Web Services)

Serviço identificado por uma URL e que faz uso de padrões abertose amplamente difundidos (p.ex. HTTP e XML)

São auto-descritivosCliente e provedor só se preocupam com o formato e conteúdo dasmensagens a serem trocadas

Abstraindo-se dos detalhes de implementação (fraco acoplamento)

Coleção de operações sobre recursos (programas, objetos, bancode dados) que pode ser usada por clientes por meio da Internet

Facilidade para transpor firewalls baseados em filtros de pacotesTráfego para as portas 80 e 443 geralmente estão liberados

4/34

Page 6: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Serviços Web (Web Services)

Servidor web (web server) != Serviço Web (Web Service)

web server – implementa o protocolo HTTP

Web Service – provê um serviço baseado nas operações que foramdefinidas em sua interface

5/34

Page 7: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Representação dos dados

Representação Externa de Dados – acordo para representar dadosprimitivos e estrutura de dados em um formato padrão

Representação binária dos dadoseXternal Data Represenation (XDR)

CORBA IDL

Serialização de objetos Java

Google Protocol Buffers

Representação textual dos dadoseXtensible Markup Language (XML)

JavaScript Object Notation (JSON)

6/34

Page 8: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

eXtensible Markup Language (XML)

XML permite ser estendida – usuários podem criar suas própriasmarcações (tags)

1 <pessoa>

2 <nome>Alice</nome>

3 <sobrenome>dos Santos</sobrenome>

4 <idade>20</idade>

5 <telefones>

6 <numeroTel tipo="residencial">48 3381 2800</numeroTel>

7 <numeroTel tipo="celular">48 93381 2800</numeroTel>

8 </telefones>

9 </pessoa>

7/34

Page 9: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

JavaScript Object Notation (JSON)

10 {

11 "nome": "Alice",

12 "sobrenome": "dos Santos",

13 "idade": 20,

14 "telefones": [

15 {

16 "tipo": "residencial",

17 "#valor": "48 3381 2800"

18 },

19 {

20 "tipo": "celular",

21 "#valor": "48 93381 2800"

22 }

23 ]

24 }

Formato bem aceito em aplicações web, principalmente pelo fato dosnavegadores possuírem interpretadores JavaScript

8/34

Page 10: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Representação de um menu XML x JSON (fonte: Wikipedia)

25 <menu id="file" value="File">

26 <popup>

27 <menuitem value="New" onclick="CreateNewDoc()" />

28 <menuitem value="Open" onclick="OpenDoc()" />

29 <menuitem value="Close" onclick="CloseDoc()" />

30 </popup>

31 </menu>

32 {"menu":{

33 "id": "file",

34 "value": "File",

35 "popup":{

36 "menuitem": [

37 {"value": "New", "onclick": "CreateNewDoc()"},

38 {"value": "Open", "onclick": "OpenDoc()"},

39 {"value": "Close", "onclick": "CloseDoc()"}

40 ]

41 }

42 }}

9/34

Page 11: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Sintaxe do JSON – http://json.org/

Um objeto é um conjunto não ordenado de pares chave/valor

Os pares são encapsulados por chaves { e }

Dois pontos é usado para separar chave de valor

Vírgula é usada para separar pares

43 { "nome" : "Alice", "sobrenome" : "dos Santos"}

Um vetor é uma coleção ordenada de valores

Os valores são encapsulados por colchetes [ e ]

Vírgula é usada para separar valores

44 ["poo", "std", "bcd"]

10/34

Page 12: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Sintaxe do JSON – http://json.org/

Em um vetor, o valor pode ser:string, número, true, false, null, objeto ou vetor

Strings são delimitadas por aspas

Números são representados obrigatoriamente na forma decimal eseguem a sintaxe de representação do C/C++/Java

45 { "telefones": [

46 {

47 "id" : 1,

48 "tipo": "residencial",

49 "#valor": "48 3381 2800"

50 },

51 {

52 "id" : 2,

53 "tipo": "celular",

54 "#valor": "48 93381 2800"

55 }

56 ]

57 }

11/34

Page 13: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Arquitetura dos Serviços Web

Baseada no protocolo SOAPPossui diversas especificações para segurança, orquestração, etc.

Ex: WS-Policy, WS-Security, WS-Trust

Baseada no estilo RESTRepresentational State Transfer – REST

Fundamentado nos conceitos da WWW, que são: métodos HTTP, URIe linguagens de marcação (HTML, XML ou JSON)

12/34

Page 14: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Arquitetura dos Serviços Web: abordagem com SOAP

1 Descrever a interface do serviço utilizando uma linguagem padrãoWeb Services Description Language (WSDL)

2 Disponibilizar essa interface (documento XML)P.e. Universal Description, Discovery and Integration (UDDI)

3 Troca de mensagens XML entre clientes e serviçoSOAP

13/34

Page 15: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Arquitetura dos Serviços Web

WSDLWSDL

Cliente 4. Efetua a invocação ServiçoWeb

1. Publica2. Consulta

UDDI3. Obtém a descrição

do serviço

14/34

Page 16: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Web Services Descritpion Language – WSDL

Quais são os serviços oferecidos?

Quais as informações necessárias para invocar um serviço?

Como cliente e servidor sabem como processar as requisições?

Em qual formato o serviço deve enviar as informações para ocliente?

WDSLGramática em XML para especificar interfaces de Serviços Web

Operações disponíveis

Tipos de dados

Protocolos utilizados

Localização do serviço

15/34

Page 17: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Web Services Descritpion Language – WSDL

Quais são os serviços oferecidos?

Quais as informações necessárias para invocar um serviço?

Como cliente e servidor sabem como processar as requisições?

Em qual formato o serviço deve enviar as informações para ocliente?

WDSLGramática em XML para especificar interfaces de Serviços Web

Operações disponíveis

Tipos de dados

Protocolos utilizados

Localização do serviço

15/34

Page 18: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Documento WSDL

Um documento WSDL é composto por três elementos principais

definição dos tipos de dados(types)

especifica a estrutura e oconteúdo das mensagens

operações abstratas(messages e operation)

descreve as operações quepoderão ser executadas

associação dos serviços(port)

especifica como mapear asoperações nos protocolos derede utilizados para otransporte

DocumentoWSDL

Tipos dos dados dasmensagens

Operações abstratas

Associação dos Serviços

Transporte

16/34

Page 19: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Exemplo WSDL: Calculadora.java

58 public class Calculadora{

59

60 public int soma(int i1, int i2){

61 return i1 + i2;

62 }

63

64 public int subtracao(int i1, int i2){

65 return i1 - i2;

66 }

67 }

17/34

Page 20: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Documento WSDL

68 <wsdl:definitions targetNamespace="http://localhost/Calculadora.jws">

69

70 <wsdl:message name="subtracaoRequest">

71 <wsdl:part name="i1" type="xsd:int"/>

72 <wsdl:part name="i2" type="xsd:int"/>

73 </wsdl:message>

74

75 <wsdl:message name="somaRequest">

76 <wsdl:part name="i1" type="xsd:int"/>

77 <wsdl:part name="i2" type="xsd:int"/>

78 </wsdl:message>

79

80 <wsdl:message name="subtracaoResponse">

81 <wsdl:part name="subtracaoReturn" type="xsd:int"/>

82 </wsdl:message>

83

84 <wsdl:message name="somaResponse">

85 <wsdl:part name="somaReturn" type="xsd:int"/>

86 </wsdl:message>

18/34

Page 21: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Documento WSDL

87 <wsdl:portType name="Calculadora">

88

89 <wsdl:operation name="soma" parameterOrder="i1 i2">

90 <wsdl:input message="impl:somaRequest" name="somaRequest"/>

91 <wsdl:output message="impl:somaResponse" name="somaResponse"/>

92 </wsdl:operation>

93

94 <wsdl:operation name="subtracao" parameterOrder="i1 i2">

95 <wsdl:input message="impl:subtracaoRequest" name="subtracaoRequest"

/>

96 <wsdl:output message="impl:subtracaoResponse" name="

subtracaoResponse"/>

97 </wsdl:operation>

98

99 </wsdl:portType>

19/34

Page 22: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Documento WSDL

100 <wsdl:service name="CalculadoraService">

101

102 <wsdl:port binding="impl:CalculadoraSoapBinding" name="Calculadora">

103 <wsdlsoap:address location="http://localhost/Calculadora.jws"/>

104 </wsdl:port>

105

106 </wsdl:service>

107

108 </wsdl:definitions>

20/34

Page 23: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

SOAP - Protocolo para troca de mensagens (RPC)Uma mensagem SOAP consiste de

EnvelopeElemento raiz no documento XMLque representa a mensagem SOAP

Header (opcional)Oferece mecanismos paraestender a mensagemInformações de roteamento,segurança, coordenação

BodyDocument - A RPC em si faz partedeste elementoFault (opcional)

SOAP Envelope

SOAP Header

Header Block

Header Block

Body Block

Body Block

SOAP Body

. . .

. . .

Comunicação pode ser síncrona ou assíncrona. Mensagens SOAPpodem ser transportadas sobre HTTP, SMTP, JMS, . . .

21/34

Page 24: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Pedido SOAP

109 <?xml version="1.0" encoding="UTF-8"?>

110 <soapenv:Envelope

111 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

112 xmlns:xsd="http://www.w3.org/2001/XMLSchema"

113 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

114 <soapenv:Body>

115 <soma soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/

encoding/">

116 <op1 xsi:type="xsd:int">10</op1>

117 <op2 xsi:type="xsd:int">8</op2>

118 </soma>

119 </soapenv:Body>

120 </soapenv:Envelope>

22/34

Page 25: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Resposta SOAP

121 <?xml version="1.0" encoding="UTF-8"?>

122 <soapenv:Envelope

123 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

124 xmlns:xsd="http://www.w3.org/2001/XMLSchema"

125 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

126 <soapenv:Body>

127 <somaResponse soapenv:encodingStyle=

128 "http://schemas.xmlsoap.org/soap/encoding/">

129

130 <somaReturn xsi:type="xsd:int">

131 18

132 </somaReturn>

133 </somaResponse>

134 </soapenv:Body>

135 </soapenv:Envelope>

23/34

Page 26: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

REST: estilo de arquiteturapara Serviços Web

Page 27: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

REpresentational State Transfer

REST se baseia no comportamento de aplicações web

Recursos estão dispostos em uma rede de páginas (uma máquina deestado virtual), de forma que o usuário progride na aplicação através delinks (transições de estado), que resulta na próxima página (estadoseguinte da aplicação).

24/34

Page 28: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

REpresentational State Transfer

REST se baseia no comportamento de aplicações web

Recursos estão dispostos em uma rede de páginas (uma máquina deestado virtual), de forma que o usuário progride na aplicação através delinks (transições de estado), que resulta na próxima página (estadoseguinte da aplicação).

24/34

Page 29: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

REpresentational State Transfer

fonte: REST in Pratice – Webber, J., Parastatidis, S., Robinson, I.

24/34

Page 30: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Fundamentos do REST

1 RecursosNa web todos os recursos possuem uma URIExemplos:

http://docente.ifsc.edu.br/mello/index.htmlhttp://localhost/blocos/a/laboratorios/sidi

2 AçõesA web possui uma interface uniforme e restrita para interagir com osrecursosMétodos de requisições HTTP: GET, POST, PUT e DELETE

3 RepresentaçõesComo os dados são retornados e representados para os clientesEx: HTML, XML, JSON

SOAP usa o HTTP como protocolo de transporte. REST usa o HTTPcomo protocolo de aplicação

25/34

Page 31: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Fundamentos do REST

1 RecursosNa web todos os recursos possuem uma URIExemplos:

http://docente.ifsc.edu.br/mello/index.htmlhttp://localhost/blocos/a/laboratorios/sidi

2 AçõesA web possui uma interface uniforme e restrita para interagir com osrecursosMétodos de requisições HTTP: GET, POST, PUT e DELETE

3 RepresentaçõesComo os dados são retornados e representados para os clientesEx: HTML, XML, JSON

SOAP usa o HTTP como protocolo de transporte. REST usa o HTTPcomo protocolo de aplicação

25/34

Page 32: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Recursos

Qualquer informação pode ser caracterizada como um recursoEx: página, imagem, coleção de recursos, etc

Recursos são identificados por uma URIUma URI identifica um único recurso, porém um recurso pode possuirmais de uma URI (relação muitos-para-um)

Formato da URI

scheme://host:port/path?queryString#fragment

scheme – HTTP, HTTPS, FTPhost – nome ou IPport – implícito ao esquema (p.e. 80 para http) ou explícitopath – segmentos de texto delimitados por /queryString – lista de parâmetros (nome=valor) delimitados por &fragment – ponto particular dentro um documento

26/34

Page 33: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Recursos

Qualquer informação pode ser caracterizada como um recursoEx: página, imagem, coleção de recursos, etc

Recursos são identificados por uma URIUma URI identifica um único recurso, porém um recurso pode possuirmais de uma URI (relação muitos-para-um)

Formato da URI

scheme://host:port/path?queryString#fragment

scheme – HTTP, HTTPS, FTPhost – nome ou IPport – implícito ao esquema (p.e. 80 para http) ou explícitopath – segmentos de texto delimitados por /queryString – lista de parâmetros (nome=valor) delimitados por &fragment – ponto particular dentro um documento

26/34

Page 34: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Identificação de Recursos

http://localhost/campushttp://localhost/campus/sjhttp://localhost/campus/sj/blocos/ahttp://localhost/campus/sj/blocos/a/laboratorioshttp://localhost/campus/sj/blocos/a/laboratorios/sidi

Ao percorrer o caminho do mais genérico para o mais específico, vocêestará navegando pelos dados

27/34

Page 35: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Ações – Métodos HTTP (verbos)Como as representações dos recursos são trocadas entre clientes e servidor

GET – obtém informações de um recurso

Obter lista com todos campi:GET http://localhost/campus

Obtém capacidade do laboratório de sistemas digitaisGET http://localhost/campus/laboratorios/sidi/capacidade

POST – Cria um recurso

Content: {bloco,laboratorio,equipamentos[],capacidade,. . . }POST http://localhost/campus

PUT – Atualiza um recurso

Atualiza informações do laboratório de sistemas digitaisContent: {bloco,laboratorio,equipamentos[],capacidade,. . . }PUT http://localhost/campus/laboratorios/sidi

DELETE – Remove um recurso

Remove o laboratório redes2DELETE http://localhost/campus/laboratorios/sidi

28/34

Page 36: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Ações – Métodos HTTP (verbos)Como as representações dos recursos são trocadas entre clientes e servidor

GET – obtém informações de um recursoObter lista com todos campi:

GET http://localhost/campusObtém capacidade do laboratório de sistemas digitais

GET http://localhost/campus/laboratorios/sidi/capacidade

POST – Cria um recurso

Content: {bloco,laboratorio,equipamentos[],capacidade,. . . }POST http://localhost/campus

PUT – Atualiza um recurso

Atualiza informações do laboratório de sistemas digitaisContent: {bloco,laboratorio,equipamentos[],capacidade,. . . }PUT http://localhost/campus/laboratorios/sidi

DELETE – Remove um recurso

Remove o laboratório redes2DELETE http://localhost/campus/laboratorios/sidi

28/34

Page 37: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Ações – Métodos HTTP (verbos)Como as representações dos recursos são trocadas entre clientes e servidor

GET – obtém informações de um recurso

Obter lista com todos campi:GET http://localhost/campus

Obtém capacidade do laboratório de sistemas digitaisGET http://localhost/campus/laboratorios/sidi/capacidade

POST – Cria um recursoContent: {bloco,laboratorio,equipamentos[],capacidade,. . . }POST http://localhost/campus

PUT – Atualiza um recurso

Atualiza informações do laboratório de sistemas digitaisContent: {bloco,laboratorio,equipamentos[],capacidade,. . . }PUT http://localhost/campus/laboratorios/sidi

DELETE – Remove um recurso

Remove o laboratório redes2DELETE http://localhost/campus/laboratorios/sidi

28/34

Page 38: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Ações – Métodos HTTP (verbos)Como as representações dos recursos são trocadas entre clientes e servidor

GET – obtém informações de um recurso

Obter lista com todos campi:GET http://localhost/campus

Obtém capacidade do laboratório de sistemas digitaisGET http://localhost/campus/laboratorios/sidi/capacidade

POST – Cria um recurso

Content: {bloco,laboratorio,equipamentos[],capacidade,. . . }POST http://localhost/campus

PUT – Atualiza um recursoAtualiza informações do laboratório de sistemas digitais

Content: {bloco,laboratorio,equipamentos[],capacidade,. . . }PUT http://localhost/campus/laboratorios/sidi

DELETE – Remove um recurso

Remove o laboratório redes2DELETE http://localhost/campus/laboratorios/sidi

28/34

Page 39: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Ações – Métodos HTTP (verbos)Como as representações dos recursos são trocadas entre clientes e servidor

GET – obtém informações de um recurso

Obter lista com todos campi:GET http://localhost/campus

Obtém capacidade do laboratório de sistemas digitaisGET http://localhost/campus/laboratorios/sidi/capacidade

POST – Cria um recurso

Content: {bloco,laboratorio,equipamentos[],capacidade,. . . }POST http://localhost/campus

PUT – Atualiza um recurso

Atualiza informações do laboratório de sistemas digitaisContent: {bloco,laboratorio,equipamentos[],capacidade,. . . }PUT http://localhost/campus/laboratorios/sidi

DELETE – Remove um recursoRemove o laboratório redes2

DELETE http://localhost/campus/laboratorios/sidi

28/34

Page 40: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Pedidos: REST vs SOAPEx: Serviço Web para obter a capacidade de um laboratório

SOAP

136 <?xml version="1.0" encoding="UTF-8"?>

137 <soapenv:Envelope

138 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >

139 <soapenv:body lab="http://localhost/campus/laboratorio">

140 <lab:getCapacidade>

141 <lab:id>redes2</lab:id>

142 </lab:getCapacidade>

143 </soapenv:body>

144 </soapenv:Envelope>

REST

145 GET http://localhost/campus/laboratorios/sidi/capacidade

29/34

Page 41: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

REST: Pedido e resposta

30/34

Page 42: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

REST vs RPC

Chamada de Procedimento Remoto (RPC)Foco na diversidade de operações

146 obterCapacidade(int id);

147 definirCapacidade(int id, int capacidade);

RESTFoco na diversidade de recursos

148 GET http://localhost/laboratorios/sidi/capacidade

149 PUT http://localhost/laboratorios

31/34

Page 43: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Resumo: Objetivo dos Serviços Web

Permitir a integração e interação de aplicativos dispostos em diferenteslocais, escritos em diferentes linguagens e residentes em diferentesarquiteturas. Há espaço para SOAP e REST coexistirem

32/34

Page 44: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

Como codificar Serviços Web em Java

REST não é um padrão (faz uso de padrões: HTTP, URI, XML, etc.)JSR 311: JAX-RS: The Java API for RESTful Web ServicesJersey é a implementação de referência, presente no Java EE 6

SOAP é uma especificação padrão para WSJSR 224: JAX-WS: Java API for XML Web ServicesPresente desde o Java EE 5 (servidor de aplicação Glassfish)

Próxima aulaLaboratório para desenvolvimento de Serviços Web (Java e Python)

33/34

Page 45: Serviços web ou Web Services - STD29006 Engenharia de ...docente.ifsc.edu.br/mello/std/std-aula-13-webservices.pdfDocumento WSDL Um documento WSDL é composto por três elementos

ExercíciosNão é necessário entregar, mas é necessário fazer antes da próxima aula!

1 O que são Serviços Web RESTful?

2 O que são serviços stateless e stateful?

3 O que é WADL? Seria equivalente a qual especificação apresentadana aula?

4 O que são Anotações Java? (Java Annotations)

5 O que são POJOs em Java?

34/34