REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um...
Transcript of REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um...
![Page 1: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/1.jpg)
REST
Eduardo Ferreira dos Santos
Ciência da Computação
Centro Universitário de Brasília � UniCEUB
Outubro, 2016
1 / 35
![Page 2: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/2.jpg)
Sumário
1 Web Services
2 RESTArquiteturaImplementação
2 / 35
![Page 3: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/3.jpg)
Web Services
1 Web Services
2 RESTArquiteturaImplementação
3 / 35
![Page 4: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/4.jpg)
Web Services
Recapitulando
Figura 1.1: Recordando a razão da existência da Internet [Heart et al., 1978]4 / 35
![Page 5: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/5.jpg)
Web Services
Compartilhamento de recursos
Os computadores foram construídos primeiramente para compartilharrecursos;
Importância do hardware e vendor lock-in;
Como fazer o compartilhamento de recursos em uma arquiteturadistribuída;
Conceito de Web Services.
5 / 35
![Page 6: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/6.jpg)
Web Services
Sistemas distribuídos
Um sistema distribuído consiste em um conjunto discreto deagentes de software que devem trabalhar em conjunto paraexecutar uma tarefa. Além disso, os agentes em um sistemadistribuído não operam no mesmo ambiente de processamento,de forma que eles precisam se comunicar através de pilhas deprotocolo de hardware e/ou software em uma rede.[Booth et al., 2004]
A comunicação é menos con�ável e mais lenta;Os programadores precisam se preocupar com questões como:
Latência;Concorrência;Possibilidade de falha.
6 / 35
![Page 7: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/7.jpg)
Web Services
De�nição
Um Web Service é um sistema de software desenhado parasuportar a interoperabilidade entre máquinas em uma rede.Possui uma interface descrita em um formato processado pormáquina (normalmente WSDL). Outros sistemas interagem como Web service utilizado as operações contidas em sua descriçãoutilizando mensagens SOAP, normalmente convertidas em HTTPutilizando serialização XML, junto com outros padrões da Webrelacionados. [Booth et al., 2004].
7 / 35
![Page 8: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/8.jpg)
Web Services
Arquitetura
Figura 1.2: Processo de conexão a um Web service [Booth et al., 2004]
8 / 35
![Page 9: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/9.jpg)
Web Services
SOA
Service Oriented Architecture � SOA � é um tipo de sistemadistribuído que se caacteriza por algumas propriedades[Booth et al., 2004]:
Visão Lógica Se preocupa com o que o sistema faz, e não como faz;Orientado a mensagens O serviço é de�nido em termos das
mensagens trocadas entre os sistemas;Orientado à descrição Utilização de metadados processáveis por
máquina;Granularidade Número pequeno de operações com mensagens grandes
e complexas;Orientados à rede Normalmente são programados para funcionar em
rede;Neutralidade de plataforma As mensagens devem ser enviadas em um
formato independente de plataforma, normalmenteutilizando XML.
9 / 35
![Page 10: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/10.jpg)
Web Services
Camadas
Figura 1.3: Camadas em um Web service [Booth et al., 2004]
10 / 35
![Page 11: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/11.jpg)
Web Services
Exemplo de SOA
Figura 1.4: Exemplo de aplicação SOA 1
1Fonte:
http://docs.oracle.com/cd/E13156_01/wloc/docs103/example/ex_service.html11 / 35
![Page 12: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/12.jpg)
Web Services
Topologia SOA
Figura 1.5: Exemplo de topologia aplicação SOA 2
2Fonte:
http://docs.oracle.com/cd/E13156_01/wloc/docs103/example/ex_service.html12 / 35
![Page 13: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/13.jpg)
REST
1 Web Services
2 RESTArquiteturaImplementação
13 / 35
![Page 14: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/14.jpg)
REST
De�nições [Elkenstein, 2008]
REST � Representational State Transfer;
Se baseia em um protocolo de comunicações stateless, cliente-servidor,passível de cache;
O REST é um estilo arquitetural para construir aplicações baseadas narede;
Em praticamente todos os casos, o protocolo HTTP é utilizado;
Ao invés de utilizar chamadas complexas como RPC, CORBA ouSOAP, o protocolo HTTP é utilizada para realizar chamadas entre asmáquinas;
É possível imaginar a World Wide Web � WWW � como umaimplementação baseada na arquitetura REST.
14 / 35
![Page 15: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/15.jpg)
REST
Características
Os agentes identi�cam os objetos no sistema através de URI �Uniform Resource Identi�er;
A comunicação de estado, representação e descrição dos objetos érealizada através de um dos formatos já utilizados na Web (XML,HTML, PNG, CSS, JPEG);
A troca de informações é realizada através de um dos protocolos queutilizam URI para identi�car os objetos direta ou indiretamente;
Utilização das operações de CRUD associadas a métodos;
Apesar de ser bastante simples, não há nada que seja de�nido paraWeb Services que não possa ser implementado utilizando REST;
O REST não é um padrão. Cada linguagem/ferramenta pode possuirsua própria implementação.
15 / 35
![Page 16: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/16.jpg)
REST Arquitetura
1 Web Services
2 RESTArquiteturaImplementação
16 / 35
![Page 17: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/17.jpg)
REST Arquitetura
Interface Uniforme
Principal característica do REST: interface uniforme entre oscomponentes [Fielding, 2000];Princípio da neutralidade em Engenharia de Software:
A arquitetura geral do sistema é simpli�cada;A visibilidade das das interações é melhorada;As implementações são desacopladas dos serviços que fornecem.
Ao exigir um formato padrão para circulação de informações, assumealguma degradação de performance;
A interface REST é otimizada para funcionar com o protocolo detransmissão HTTP.
17 / 35
![Page 18: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/18.jpg)
REST Arquitetura
Restrições
Restrições arquiteturais necessárias para obter uma interface uniforme,guiando o comportamento dos componentes [Fielding, 2000]:
1 Identi�cação de recursos;2 Manipulação dos recursos através de representações;3 Mensagens auto-descritivas;4 Utilização de hipermídia como máquina de estados para as aplicações.
As quatro restrições formam a de�nição de REST;
Cada operação no REST deve ser auto-contida, ou seja, cadarequisição contém todas as informações necessárias ao servidor pararealizar a transação.
18 / 35
![Page 19: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/19.jpg)
REST Arquitetura
Código on-demand
O conjunto de funcionalidades dos clientes pode ser estendidobaixando e executando código no formato de applets ou scripts;
Aumenta a extensibilidade do sistema;
Nem todas as features precisam estar disponíveis no momento daprimeira implementação.
19 / 35
![Page 20: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/20.jpg)
REST Arquitetura
Arquitetura e restrições
Figura 2.1: Derivação da arquitetura do REST com base nas restrições[Fielding, 2000]
20 / 35
![Page 21: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/21.jpg)
REST Arquitetura
Componentes arquiteturais
Componentes arquiteturais chave para uma implementação válida deREST [Elkenstein, 2008]:
Recursos Identi�cados logicamente por URL. Tanto o estado comoa funcionalidade são representados através dos recursos(resources);
Os recursos são universalmente endereçáveis utilizandoos conceitos de URI e URL;Tratam-se de elementos chave do desenho de umsistema RESTful;Os recursos não são vistos como objetos que recebemmétodos, e sim como elementos auto-contidos, quedevem conter todas as informações necessárias para suarepresentação.
Dados linkados Os recursos contém toda informação relevante à suadescrição ou contém hyperlinks para outros recursos;
Stateless Toda requisição deve conter todos os dados necessáriopara completá-la, e não deve depender de interaçãoprévia com outras requisições. 21 / 35
![Page 22: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/22.jpg)
REST Implementação
1 Web Services
2 RESTArquiteturaImplementação
22 / 35
![Page 23: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/23.jpg)
REST Implementação
SOAP x REST
Problema: encontrar um usuário numa agenda de telefones com baseno ID [Fielding, 2000].
Chamada SOAP:
Listing 1: Chamada SOAP para encontrar um usuário em um catálogotelefônico [Elkenstein, 2008]<? xml v e r s i o n=" 1.0 "?><soap :Enve l opexm ln s : s oap=" http: // www . w3 . org /2001/12/ soap - envelope "s o a p : e n c o d i n gS t y l e=" http: // www . w3 . org /2001/12/ soap - encoding ">
5 <soap :body pb=" http: // www . acme . com / phonebook "><pb :G e tU s e rDe t a i l s><pb:Use r ID>12345</ pb :Use r ID>
</ pb :G e tU s e rDe t a i l s></ soap:Body>
10 </ soap :Enve l ope>
Chamada HTTP:GET http://www.acme.com/phonebook/UserDetails/12345 HTTP/1.1
23 / 35
![Page 24: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/24.jpg)
REST Implementação
Simplicidade
Na chamada SOAP, todo o conteúdo da chamada deve ser embutidono corpo da requisição;
O resultado provavelmente será um arquivo XML, embutido dentro do�envelope� SOAP;
No caso da chamada REST, trata-se apenas de uma requisição GETsem nenhum dado;
O resultado será escrito diretamente na conexão, sem a necessidade deestar dentro de nenhum �envelope�;
Ambas podem trazer o mesmo conjunto de informações, mas solicitare tratar a resposta é mais simples no REST.
24 / 35
![Page 25: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/25.jpg)
REST Implementação
Utilização de parâmetros
Vamos supor agora que vamos adicionar �ltros à chamada REST;
É possível adicionar vários parâmetros utilizando a especi�cação doprotocolo HTTP:
GET http://www.acme.com/phonebook/UserDetails?firstName=John&lastName=Doe HTTP/1.1
A resposta a uma requisição REST pode ser em qualquer formato,inclusive XML;
Contudo, requisições REST raramente utilizam XML na resposta. Namaior parte dos casos, tratar o conteúdo do XML não é necessáriopara obter o resultado esperado pela requisição;
25 / 35
![Page 26: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/26.jpg)
REST Implementação
Respostas
A requisição REST vai gerar uma resposta HTTP;Sempre é necessário validar a resposta. A validação deve ocorrer deduas formas:
1 Código de retorno do protocolo HTTP. Ex.: HTTP 200 Ok2 Validade dos dados da requisição. Ex.: parsing de XML
Listing 2: Resposta de chamada XML [Elkenstein, 2008]<par t s− l i s t><pa r t i d=" 3322 "><name>ACME Boomerang</name><desc>
5 Used by Coyote i n <i>Zoom at the Top</ i> , 1962</ desc><p r i c e c u r r e n c y=" usd " qu an t i t y=" 1 ">17.32</ p r i c e><u r i>h t t p : //www. acme . com/ p a r t s /3322</ u r i>
</ pa r t>10 <pa r t i d=" 783 ">
<name>ACME Dehydrated Bou lde r s</name><desc>Used by Coyote i n <i>Scrambled Aches</ i> , 1957
</ desc>15 <p r i c e c u r r e n c y=" usd " qu an t i t y=" pack ">19.95</ p r i c e>
<u r i>h t t p : //www. acme . com/ p a r t s /783</ u r i></ pa r t>
</ pa r t s− l i s t>
26 / 35
![Page 27: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/27.jpg)
REST Implementação
JSON
Mesma resposta no formato JSON:
Listing 3: Resposta de chamada no JSON{
[{
"id": 3322,
5 "name": "ACME Boomerang","desc": "Used by Coyote in <i>Zoom at the Top </i>, 1962","price": {
"currency": "usd","quantity": 1,
10 "value": 17.32},"uri": "http://www.acme.com/parts/3322"
},{
15 "id": 783,"name": "ACME Dehydrated Boulders","desc": "Used by Coyote in <i>Scrambled Aches </i>, 1957","price": {
"currency": "usd",
20 "quantity": "pack","value": 19.95
},"uri": "http://www.acme.com/parts/783"
}
25 ]} 27 / 35
![Page 28: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/28.jpg)
REST Implementação
Vantagens JSON
Utilização de Javascript Object Notation � JSON;
Transporte transparente de objetos utilizando HTTP;
Maior facilidade de serialização em diferentes linguagens;
Na maior parte das linguagens o formato JSON é nativo para objetos.
28 / 35
![Page 29: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/29.jpg)
REST Implementação
AJAX
Asynchronous Javascript and XML � AJAX;
Método de comunicação que torna o desenvolvimento mais interativo;
Utilização de requisições do tipo XMLHttpRequest;
O AJAX segue os princípios do REST: cada requisição do tipoXMLHttpRequest pode ser vista como uma requisição a um serviço doREST;
Aproveita-se das chamadas nativas do browser do usuário para enviarcomandos ao servidor.
29 / 35
![Page 30: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/30.jpg)
REST Implementação
Comandos
Organização de comandos das requisições com base no método HTTP:
GET Consultas em modo somente leitura. Similares aocomando SELECT;
POST Inserção de dados. Similares ao comando INSERT;PUT Atualização de dados. Similares ao comando UPDATE;
DELETE Remoção de dados. Similares ao comando DELETE.
Cada comando representa uma operação a ser implementada naaplicação;
Questões relativas à segurança e isolamento.
30 / 35
![Page 31: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/31.jpg)
REST Implementação
Dados do REST
Figura 2.2: Elementos de dados em aplicações REST [Fielding, 2000]
31 / 35
![Page 32: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/32.jpg)
REST Implementação
Aplicações RESTful
Alguns princípios de desenvolvimento devem ser seguidos para tornar aaplicação RESTful, ou compatível com o REST [Elkenstein, 2008]:
1 Utilize os elementos de dados (Figura 31);2 Não utilize URLs físicas. O recurso deve possuir um signi�cado
tangível. Ex.:
Ruim http://www.acme.com/inventory/product003.xml
Bom http://www.acme.com/inventory/product003
3 Não retorne uma quantidade de informações demasiadamente grande.Sempre que possível, forneça paginação;
4 Tente garantir que a reposta a uma requisição REST não seja alteradaem demasia e forneça documentação;
5 Forneça sempre que possível URL's reais para novas ações. Ex.: aoretornar uma lista de produtos, cada produto deve conter sua URL paraa operação GET (ver exemplo 3)
6 Utilize os comandos HTTP para produzir mudanças de estado nosobjetos.
32 / 35
![Page 33: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/33.jpg)
REST Implementação
OBRIGADO!!!
PERGUNTAS???
33 / 35
![Page 34: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/34.jpg)
REST Implementação
Booth, D., Haas, H., McCabe, F., Newcomer, E., Champion, M.,Ferris, C., and Orchard, D. (2004).Web services architecture.Technical report.Disponível em https://www.w3.org/TR/ws-arch/ Acessado em06/10/2016.
Elkenstein, M. (2008).Learn rest: A tutorial.Disponível em http://rest.elkstein.org/ Acessado em20/10/2016.
Fielding, R. T. (2000).Architectural styles and the design of network-based softwarearchitectures.PhD thesis, University of California, Irvine.
Heart, F., McKenzie, A., McQuillian, J., and Walden, D. (1978).Arpanet completion report.
34 / 35
![Page 35: REST - Blog de Eduardo Santos Services Sistemas distribuídos Um sistema distribuído consiste em um conjunto discreto de agentes de software que devem trabalhar em conjunto para executar](https://reader034.fdocumentos.tips/reader034/viewer/2022051509/5bad0e7009d3f23f0d8c9607/html5/thumbnails/35.jpg)
REST Implementação
Technical report.Disponível em:http://som.csudh.edu/fac/lpress/history/arpamaps/ Acessadoem 25/07/2016.
35 / 35