Escolar Documentos
Profissional Documentos
Cultura Documentos
br
SISTEMAS DISTRIBUÍDOS
WEB SERVICES E
COMPUTAÇÃO EM
NUVEM
Autor: Dra. Sidartha Azevedo Lobo de Carvalho
Revisor: Lizandro de Souza
INICIAR
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&cd… 1/34
11/20/22, 1:46 PM Ead.br
introdução
Introdução
Nesta unidade, você vai aprender: o que é um serviço web (web service); como
se estrutura um sistema baseado em serviços usando a abordagem SOA (Service
Oriented Architecture); como separar as funcionalidades de um sistema para
tornarem-se serviços; aplicações comuns para os serviços web; principais
conceitos que permeiam a computação em nuvem, identificando os principais
tipos de arquiteturas e vendo exemplos práticos dessa abordagem; o que é e
como se estrutura um Cluster e um Grid de computadores, usados para a
computação em nuvem; sistemas distribuídos voltados para gerenciamento de
transações e de arquivos, identificando conceitos-chave e suas aplicações no
mundo real.
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&cd… 2/34
11/20/22, 1:46 PM Ead.br
Web Service
Conceitos Iniciais
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&cd… 3/34
11/20/22, 1:46 PM Ead.br
Os serviços oferecidos devem ser disponibilizados para uso por uma interface
bem definida. Para ilustrar esses serviços, imagine que você, como arquiteto de
software, está modelando um sistema para ser implementado como uma loja
virtual. Essa loja deve ter as funcionalidades de cadastrar produtos, consultar os
produtos disponíveis, verificar estoque, dentre outras.
Diante disso, podemos definir que um serviço é uma funcionalidade que tem
entrada e saída bem definidas (por exemplo: consultar os dados de um cliente,
fornecer informações sobre o tempo, emitir relatórios, dentre outras).
É importante destacar que um serviço web pode ser formado pela integração de
diferentes serviços, sendo possível reutilizar serviços já existentes para compor
um novo serviço. Além disso, ele deve ser autocontido, o que significa não fazer
uso de módulos que não estão presentes na sua implementação (alta coesão e
baixo acoplamento).
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&cd… 4/34
11/20/22, 1:46 PM Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&cd… 5/34
11/20/22, 1:46 PM Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&cd… 6/34
11/20/22, 1:46 PM Ead.br
saiba
mais
Saiba mais
Lembre-se que, em uma arquitetura baseada
em camadas, geralmente a camada só se
comunica com a camada mais próxima; logo,
no exemplo da Figura 4.1, a camada de
infraestrutura somente se comunica com a
camada de componentes, assim como a de
componentes somente se comunica com a de
serviços, não sendo permitida a comunicação
diretamente entre infraestrutura e serviços.
Além disso, há a restrição do fluxo: a camada
superior invoca a camada inferior, não
podendo as camadas inferiores acessarem as
camadas superiores. Para mais informações,
leia o artigo a seguir.
ACESSAR
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&cd… 7/34
11/20/22, 1:46 PM Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&cd… 8/34
11/20/22, 1:46 PM Ead.br
praticar
Vamos Praticar
A arquitetura orientada a serviços é usada em diversos sistemas, que precisam de
modularidade e de separação entre os componentes, fornecendo um baixo
acoplamento e uma alta coesão entre os módulos. Por exemplo, a arquitetura em
camadas é usada no sistema operacional Linux e também nos protocolos de rede
TCP/IP. Dito isso, podemos assumir que um serviço é a representação de um(a) ou
parte de:
a)
infraestrutura.
b)
API.
c)
login.
d)
funcionalidade.
e)
camada.
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&cd… 9/34
11/20/22, 1:46 PM Ead.br
Web Service
Além disso, um serviço é composto por uma parte lógica, projetada para
executar funcionalidades usando um contrato de serviços que expressa quais
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 10/34
11/20/22, 1:46 PM Ead.br
de suas capacidades são disponibilizadas para uso por uma API bem definida.
Geralmente, um serviço web fornece uma descrição do serviço, que pode incluir
definições de interfaces, bem como outras informações relevantes, como a URL
do servidor e dos serviços. Esse contrato de serviço é usado como base para um
entendimento comum entre cliente e servidor quanto ao serviço oferecido.
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&cd… 11/34
11/20/22, 1:46 PM Ead.br
O REST pode ser usado com diversos formatos de dados, porém, o SOAP
suporta somente o uso do XML. O REST é mais genérico que o SOAP, e isso gera
mais complexidade, certo? Errado! O REST é mais genérico e torna o processo
mais simples por permitir diversos formatos de dados. O esforço empregado
para construção usando REST geralmente é menor do que usando SOAP, pois o
SOAP tem diversas restrições que devem ser implementadas. Além disso, o
JavaScript Object Notation (JSON) é muito utilizado com o REST, sendo um
padrão de modelagem de dados muito usado atualmente e suportado pelo
REST.
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 12/34
11/20/22, 1:46 PM Ead.br
Aplicações e Implementação
Para entender melhor como funcionam os serviços, vamos estudar alguns
exemplos práticos do nosso cotidiano: o aplicativo de troca de mensagens
WhatsApp pode utilizar a abordagem REST, enviando uma mensagem pela URL
api.whatsapp.com/send?phone=5588955554444, por exemplo. Os números
após o atributo phone representam o número de telefone que receberá a
mensagem: primeiro, há o código do país (55 – Brasil); depois, o código de área
(88 – interior do Ceará); por fim, o número do telefone.
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 13/34
11/20/22, 1:46 PM Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 14/34
11/20/22, 1:46 PM Ead.br
Parâmetros de
Serviço Retorno do serviço
entrada
Nome: String
Login: String
Email: String
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 15/34
11/20/22, 1:46 PM Ead.br
praticar
Vamos Praticar
Os sistemas baseados em serviços são importantes para prover melhor comunicação
entre os distintos sistemas de uma rede, principalmente a internet. Os sistemas web
podem utilizar tanto a Internet quanto outras redes para se comunicar
(metropolitanas – MAN, de grandes áreas – WAN, dentre outras). De acordo com seu
conhecimento sobre como criar e acessar serviços em uma rede, marque a alternativa
que representa uma URL para um web service que busca um usuário, passando como
parâmetro a variável “Nome” com valor “Maria”.
a)
http://localhost:8080/sis/insereUsuario?Nome=Maria.
b)
http://localhost:8080/sis/buscaUsuario?Maria=Nome.
c)
http://localhost:8080/sis/buscaUsuario?Nome=Maria.
d)
http://localhost:8080/sistema/insere?Nome=Maria.
e)
http://localhost:8080/sis/buscaUser!Nome=Maria.
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 16/34
11/20/22, 1:46 PM Ead.br
Computação em
Nuvem
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 17/34
11/20/22, 1:46 PM Ead.br
Definição e Exemplos
O uso de nuvens na computação permite que diversas empresas executem
grande parte dos serviços ofertados na nuvem. A nuvem geralmente é mantida
por uma empresa terceirizada que vende o serviço de computação e
armazenamento. Fazer uso de uma nuvem pode reduzir a complexidade de
instalação e manutenção de infraestrutura dentro da organização, permitindo
que ela foque esforços em estratégias de negócio. Por outro lado, as empresas
que mantêm as nuvens ganham dinheiro vendendo o serviço e reduzindo os
custos de manutenção e aquisição, por fazerem isso em grande escala.
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 18/34
11/20/22, 1:46 PM Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 19/34
11/20/22, 1:46 PM Ead.br
A seguir, você vai aprender o que são os clusters e os grids dentro dos sistemas
distribuídos.
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 20/34
11/20/22, 1:46 PM Ead.br
reflita
Reflita
Já parou para pensar sobre como é
complexa a administração de diversos
computadores para criar uma
infraestrutura de computação em
nuvem? Reflita também sobre quão
difícil é implementar essa infraestrutura
e fornecer a computação em nuvem
como um serviço.
Cluster e Grid
Os sistemas distribuídos podem ser divididos em Sistemas de Performance,
Sistemas de Informação Distribuída e Sistemas Distribuídos Pervasivos
(TANENBAUM, 2007). Dentro dos sistemas de performance temos os clusters e
os grids. Veja a seguir:
Sistemas
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 21/34
11/20/22, 1:46 PM Ead.br
de
Performance
Cluster:
conjuntos de computadores
com homogeneidade de hardware e
software, ou seja, utilizam a rede local
para comunicação. É uma boa
alternativa aos supercomputadores,
permite a execução paralela de
softwares que permitem paralelismo. É
eleito um nó mestre que controla os
demais e tem acesso a rede externa.
Arquiteturas de Implementação
Vamos entender melhor como funciona a implantação dos serviços de
computação e armazenamento em nuvem, envolvendo nuvens privadas,
públicas, híbridas e comunitárias. Veja a classificação a seguir:
Nuvem privada (
private cloud
): no modelo de nuvem privada, a
organização tem total controle da nuvem, podendo gerenciar os
recursos de forma livre; porém, é necessário realizar o gerenciamento e
a manutenção da infraestrutura da nuvem. Esse tipo de nuvem permite
que as organizações apliquem medidas de segurança mais restritas,
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 22/34
11/20/22, 1:46 PM Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 23/34
11/20/22, 1:46 PM Ead.br
praticar
Vamos Praticar
Os sistemas distribuídos estão presentes em nosso cotidiano: desde o acesso a um
site na internet até o armazenamento de dados na nuvem. Eles podem ser divididos
em Sistemas de Performance (SP), Sistemas de Informação Distribuída (SID) e Sistemas
Distribuídos Pervasivos (SDP). Dentro dos Sistemas de Performance, temos os grids e
os clusters. A partir disso, assinale a alternativa correta.
a)
Os grids têm uma entidade central de controle.
b)
Os SP focam no uso de conexão sem fio.
c)
Os Sistemas Pervasivos tentam garantir os princípios de atomicidade,
consistência, isolamento e durabilidade.
d)
Os SIDs devem apresentar grande poder de processamento e
armazenamento de dados.
e)
Os clusters têm uma entidade central de controle.
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 24/34
11/20/22, 1:46 PM Ead.br
Sistemas de
Transações
Distribuídas e
Sistemas de
Arquivos
Distribuídos
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 25/34
11/20/22, 1:46 PM Ead.br
Definições e Aplicações
O armazenamento em bancos de dados distribuídos deve levar em
consideração alguns conceitos-chave (TANENBAUM, 2007):
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 26/34
11/20/22, 1:46 PM Ead.br
praticar
Vamos Praticar
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 27/34
11/20/22, 1:46 PM Ead.br
a)
Na fragmentação vertical, o banco de dados é dividido em diferentes colunas.
b)
Na fragmentação horizontal, o banco de dados é dividido em diferentes
colunas, e então dividido para os diferentes servidores.
c)
A fragmentação horizontal divide o banco de dados em linhas, mas mantém
todas no mesmo banco de dados.
d)
Na fragmentação vertical, o banco de dados é dividido em diferentes tuplas.
e)
A fragmentação mista não usa a fragmentação vertical.
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 28/34
11/20/22, 1:46 PM Ead.br
indicações
Material
Complementar
FILME
Minority report
Ano:
2002
Comentário:
Esse filme vai ajudar você a entender como
é a integração de diversos sensores para prover uma
computação ubíqua. Além disso, é perceptível o cenário
que faz uso de IoT para oferecer funcionalidades para as
pessoas. Essa imensidão de dados gerados é armazenada
e processada usando os conceitos de computação e
armazenamento em nuvem.
Para conhecer mais sobre o filme, acesse o
trailer
a
seguir.
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 29/34
11/20/22, 1:46 PM Ead.br
TRAILER
LIVRO
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 30/34
11/20/22, 1:46 PM Ead.br
conclusão
Conclusão
Nesta unidade, você aprendeu para que servem os serviços web (web services) e
entendeu como deve realizar o acesso ao serviço web a partir de uma URL. Além
disso, observou que a arquitetura padrão para um serviço web é baseada na
infraestrutura, que provê suporte aos componentes; só então os serviços são
construídos acima dos componentes.
Vimos o protocolo HTTP e seus principais métodos, como POST e GET, usados
para manuseio dos serviços web.
f ê i
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 31/34
11/20/22, 1:46 PM Ead.br
referências
Referências
Bibliográficas
COULOURIS, G.
Sistemas distribuídos:
conceitos e projeto. São Paulo:
Bookman, 2013.
TANENBAUM, A. S.
Sistemas distribuídos:
princípios e práticas. São Paulo:
Pearson Prentice Hall, 2007.
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 32/34
11/20/22, 1:46 PM Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 33/34
11/20/22, 1:46 PM Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=5GnWtWmozPPWX7uSFEMZFg%3d%3d&l=1%2b%2fNkrYo1P%2fYER37whe3BQ%3d%3d&c… 34/34