Buscar

GRA0255 SISTEMAS DISTRIBUÍDOS - 04

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_74637… 1/28
i t d ã
SISTEMAS DISTRIBUÍDOSSISTEMAS DISTRIBUÍDOS
WEB SERVICES EWEB SERVICES E
COMPUTAÇÃO EM NUVEMCOMPUTAÇÃO EM NUVEM
Autor: Dra. Sidartha Azevedo Lobo de Carvalho
Revisor : L izandro de Souza
I N I C I A R
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_74637… 2/28
introduçãoIntroduçã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, identi�cando 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, identi�cando conceitos-chave e suas aplicações no mundo real.
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_74637… 3/28
Um web service, também chamado de serviço web, é um mecanismo que provê uma
interface de comunicação que permite aos clientes interagir com computadores
servidores de forma simpli�cada, não havendo a complexidade da programação
distribuída, como acontece nos sistemas que usam RMI. Em um sistema orientado a
serviços, os clientes acessam funcionalidades em um servidor web por meio de
requisições e respostas formatadas em XML, JSON ou outros protocolos. Além disso,
geralmente essas mensagens são transmitidas usando o protocolo HTTP.
A seguir, vamos entender alguns conceitos dos sistemas orientados a serviços e o
que são os web services, com exemplos práticos. Vamos conhecer também a
arquitetura geral para implementação de sistemas baseados em serviços.
Conceitos Iniciais
Antes de falarmos propriamente dos serviços, é necessário entender o estilo
arquitetural que é baseado no uso dos serviços. O estilo arquitetural orientado a
serviços, também chamado de Service-Oriented Architecture (SOA), tem por
premissa que sejam ofertadas funcionalidades em forma de serviços web.
Os serviços oferecidos devem ser disponibilizados para uso por uma interface bem
de�nida. Para ilustrar esses serviços, imagine que você, como arquiteto de software,
Web ServiceWeb Service
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_74637… 4/28
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, veri�car estoque, dentre outras.
Ao utilizar uma abordagem baseada em serviços, as funcionalidades do sistema
devem ser implementadas como serviços. A partir disso, precisamos ter uma URL
associada a cada funcionalidade oferecida. Por exemplo, para listar os produtos,
podemos ter a URL http://localhost:8080/sistemavendas/listarprodutos; outra URL
seria destinada a remover um produto, passando seu identi�cador como um
parâmetro pela URL (http://localhost:8080/sistemavendas/removerproduto?ID=80), e
assim por diante.
Diante disso, podemos de�nir que um serviço é uma funcionalidade que tem
entrada e saída bem de�nidas (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 signi�ca não fazer uso de
módulos que não estão presentes na sua implementação (alta coesão e baixo
acoplamento).
A partir dessas informações, é perceptível que deve haver meios de comunicação
bem de�nidos para trocar dados entre o requisitante e o requisitado (oferta do
serviço). Essa troca de informação entre os serviços é feita utilizando um protocolo
que descreve como enviar e como receber os dados. Para tanto, utiliza-se descrições
de metadados, como o JSON (JavaScript Object Notation, uma notação padronizada
para transferir dados entre serviços) e também o XML.
Fazer uso de padrões de comunicação auxilia na troca de mensagens entre
diferentes dispositivos. Além disso, novos projetos e adaptações de projetos antigos
devem levar em conta o padrão utilizado para prover a comunicação com sistemas
distintos na internet. A ideia da arquitetura orientada a serviços é que cada serviço
implemente uma ação, como visualizar um formulário ou realizar login. A
arquitetura baseada em serviços precisa de maior trabalho inicial, por conta da
modelagem necessária e sua complexidade de transformação de funcionalidades
em serviços concretos, mas os benefícios são comprovados: reduz a complexidade
do código (serviços são independentes e têm código próprio), diminui o
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_74637… 5/28
acoplamento entre os elementos do software, fornece divisão de tarefas entre os
componentes e pode permitir maior segurança.
A seguir, vamos entender melhor como um sistema baseado em serviços deve ser
estruturado, discutindo alguns pontos da sua arquitetura.
Arquitetura de um Web Service
O projeto de uma arquitetura baseada em serviços é representado por um diagrama
que detalha os componentes e os relacionamentos entre os componentes. A �gura a
seguir ilustra a visão geral do desenho de uma arquitetura orientada a serviços:
Na base do diagrama está a camada chamada de “infraestrutura”; nela estão
contidos os elementos de hardware, como servidores de dados e de páginas web,
conexões físicas de comunicação, entre outros elementos que dão suporte às
demais camadas.
Na camada que se comunica diretamente com a infraestrutura, temos os
componentes. A camada de componentes divide os elementos arquiteturais por
funcionalidades, fazendo com que se agrupem por similaridade de funcionalidades
fornecidas. A camada de componentes é responsável por fornecer as
funcionalidades para a camada de serviço e por implementar os artefatos mais
comuns ao sistema. A camada de serviço é responsável por agregar uma ou mais
funcionalidades para prover uma nova “funcionalidade”, geralmente mais complexa,
chamada de serviço. O serviço é a funcionalidade que é acessada por usuários e
sistemas externos ao sistema baseado em serviços.
Figura 4.1 - Arquitetura de sistemas orientados a serviços 
Fonte: Elaborada pela autora.
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_74637… 6/28
A Figura 4.2 ilustra os componentes de um sistema e compara funcionalidades da
camada de componentes e serviços.
saibamaisSaiba 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 �uxo: 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
Figura 4.2 - Exemplo de arquitetura baseada em serviços 
Fonte: Elaborada pela autora.
https://www.embarcados.com.br/arquitetura-de-software-em-camadas/
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_74637…7/28
A partir da �gura anterior, note que há diversos serviços modelados (enviar
mensagens, efetuar login e salvar cadastro, por exemplo). A ilustração descreve de
forma simples alguns serviços que podem ser oferecidos pelo sistema modelado,
mas, em um sistema comercial, por exemplo, há diversos serviços e componentes
para além do que foi modelado. Um sistema médio pode ter centenas de serviços.
Cada serviço oferecido pelo sistema deve fornecer um meio de comunicação, ou
seja, deve prover uma API de comunicação bem de�nida e seguir um padrão de
nomenclatura que facilite a comunicação com outros sistemas que não se
conhecem. Além disso, cada módulo, componente ou serviço pode fazer uso de
componentes especí�cos oferecidos pelo sistema modelado. Por exemplo, o serviço
envia mensagens, faz uso de um protocolo de comunicação para a troca de
mensagens e de um algoritmo de criptogra�a de dados para prover a segurança dos
dados que trafegam na rede.
praticarVamos 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.
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_74637… 8/28
Um serviço Web é uma coleção de protocolos e padrões públicos utilizados para
trocar informações entre aplicações e sistemas. As aplicações de software são
diversi�cadas, utilizam diversas linguagens de programação e executam em
diferentes plataformas. Note que, para manter a comunicação entre diversos
aplicativos e sistemas, é necessário que eles se conheçam, como acontece com os
sistemas que usam chamada remota de métodos.
Porém, sabemos que a internet é um meio muito diversi�cado e com uma in�nidade
de aplicações e sistemas que precisam se comunicar. Para permitir essa
comunicação com entidades desconhecidas, usamos os serviços. Para que o serviço
seja acessível a uma quantidade maior de aplicações e sistemas, usa-se padrões e
APIs bem de�nidas que determinam as regras que devem ser seguidas para
completar a comunicação entre os elementos.
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 de suas
capacidades são disponibilizadas para uso por uma API bem de�nida. Geralmente,
um serviço web fornece uma descrição do serviço, que pode incluir de�niçõ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.
Web ServiceWeb Service
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_74637… 9/28
A principal característica da maioria dos serviços web refere-se ao fato de que eles
podem processar mensagens que usam protocolos públicos, conhecidos pela
maioria dos sistemas, como o Simple Object Access Protocol (SOAP), que usa
mensagens em XML, ou o Representational State Transfer (REST). No REST, cada
serviço web usa sua própria descrição para descrever as características especí�cas
das mensagens que recebe, na própria mensagem.
Para serem bem descritos e de fácil utilização, os serviços devem:
Ser disponíveis pela internet ou intranet.
Usar padrões de comunicação bem especi�cados.
Ser independente de sistema operacional e de linguagem de programação.
Ter mecanismos de autodescrição dos serviços para permitir ser
descoberto por outros serviços utilizando uma interface.
Antes de conhecer o padrão REST, vamos entender o SOAP. O protocolo SOAP é
mais antigo que a abordagem REST; foi concebido pela empresa Microsoft. É um
protocolo mais rígido quando comparado ao REST. O SOAP impõe regras mais
restritas na troca de mensagens entre os computadores e/ou serviços.
Porém, há pontos similares entre as duas abordagens: o SOAP e o REST utilizam o
protocolo HTTP para representar as mensagens enviadas e recebidas. Por
conseguinte, tanto o SOAP quanto o REST são abordagens que estabelecem como
deve ser o acesso aos serviços web, de�nindo regras de nomenclatura para utilizar e
prover serviços.
Além disso, o protocolo SOAP não é restrito a nenhuma linguagem de programação;
é um protocolo que pode ser implementado em qualquer linguagem, desde que a
linguagem tenha os elementos necessários para a implementação, podendo ser
mais ou menos complexo de usar. O SOAP fornece mecanismos interessantes para
o tratamento de erros. Por exemplo, se houver algum erro durante o envio da
requisição, a resposta deve ter informações sobre o erro, permitindo a identi�cação
e o tratamento de forma automatizada.
Outra característica importante do protocolo SOAP é a obrigatoriedade no uso do
protocolo HTTP, podendo ser substituído pelo protocolo SMTP (Simple Mail Transfer
Protocol) para o transporte das mensagens. Além disso, também é possível utilizar
outras linguagens, como Python e PHP (COULOURIS, 2013).
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 10/28
Em contrapartida, o protocolo REST permite uma implementação mais leve,
trocando o formato XML para fazer uma requisição (usado no SOAP) por uma URL
simples, explorando os métodos do HTTP. Como verbos/métodos do HTTP 1.1,
temos: GET, POST, PUT e DELETE, usados para executar tarefas, tornando a
implementação REST adaptável para a maioria dos sistemas na internet.
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.
Para �nalizar, usar SOAP ou REST vai depender do cenário do problema. Há cenários
em que não é possível implementar o SOAP, como os que usam alguns protocolos
que não são suportados pelo SOAP. Porém, também há cenários que exigem maior
segurança, sendo mais indicado o SOAP. Os cenários para os quais o REST é mais
indicado se resumem aos sistemas simples: não é necessária tanta segurança dos
dados, tem-se tempo curto para o desenvolvimento e a reutilização dos verbos do
HTTP, dentre outros.
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 �m, o número do telefone.
Essa URL pode ser acessada de qualquer dispositivo que implemente o protocolo
HTTP (dispositivo móvel, web browser do computador desktop, um aplicativo etc.). O
uso do HTTP permite grande interoperabilidade entre os elementos comunicantes
da rede, possibilitando uma comunicação mais rica e intuitiva.
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 11/28
A �gura a seguir ilustra a arquitetura de um web service com quatro serviçosdistintos implementados dentro do servidor: 
Na Figura 4.3, os serviços web são acessados pelo requisitante; o servidor, ao
receber a requisição, responde utilizando os serviços implementados. Após decidir
qual web service deve ser acessado, o servidor responde ao requisitante com o
retorno enviado pelo serviço. O quadro a seguir exempli�ca alguns serviços que o
sistema oferece, especi�cando os parâmetros de entrada e saída (retorno do
serviço):
Figura 4.3 - Exemplos de serviços web em uma arquitetura cliente-servidor 
Fonte: Elaborada pela autora.
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 12/28
Quadro 4.1 - Serviços web: nome, parâmetros de entrada e de retorno 
Fonte: Elaborado pela autora.
A primeira coluna do quadro acima apresenta os nomes dos serviços. O nome do
serviço é a sequência de caracteres usada para acessar determinado serviço. Por
exemplo: http://localhost:8080/sistema/apagarUsuario.
Os parâmetros de entrada do serviço podem ser enviados usando o método GET ou
POST do HTTP. Com o método GET, os parâmetros aparecerão na URL do usuário
(por exemplo: http://localhost:80/sistema/apagarUsuario?Nome=Felipe). Por outro
lado, ao utilizar o método POST do HTTP, os parâmetros são passados com o corpo
da mensagem, não permitindo visualizá-los na URL.
O método GET tem restrição de tamanho, ou seja, só passa determinada quantidade
de parâmetros, não excedendo o tamanho máximo da URL. No método POST, não
temos essa restrição, e há maior segurança, tornando a comunicação mais limpa,
sem muitos parâmetros poluindo a URL.
Perceba que, na segunda coluna do quadro, há o nome do atributo e o tipo de dado
usado para representá-lo. Por exemplo, no e-mail é usada uma variável do tipo
String, no ID (identi�cador único) é usado um tipo inteiro (int). Na terceira coluna
estão os atributos de resposta, ou seja, o atributo que será retornado pelo serviço
web. Ter uma clara de�nição dos serviços e parâmetros usados é essencial para a
modelagem de uma boa arquitetura orientada a serviços.
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 13/28
praticarVamos 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.
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 14/28
A arquitetura cliente-servidor é uma das mais utilizadas em todo o mundo para
modelagem de sistemas baseados em comunicação. Porém, nos últimos anos o
cenário vem mudando. As organizações estão utilizando novos conceitos, como a
computação em nuvem, aplicada a diversos negócios para resolver problemas reais
de carência de infraestrutura, processamento e armazenamento de dados.
A partir da expansão e popularização do acesso à internet e do grande aumento nas
taxas de transferência de dados, com o acesso às bandas largas e o avanço das
infraestruturas de hardware mais baratas, as organizações começaram a expandir
seus negócios terceirizando infraestruturas especializadas em processar e
armazenar grandes quantidades de dados. Essas infraestruturas terceirizadas são
chamadas “nuvens”.
A ideia inicial da nuvem computacional era realizar processamento e armazenar
dados fora do ambiente da organização, otimizando o uso de recursos e
economizando dinheiro. Esses locais próprios para processamento e
armazenamento são chamados de “datacenters”, e podem utilizar os conceitos de
“nuvem pública”.
A seguir, vamos entender melhor os conceitos de “nuvem pública” e também
aqueles relacionados ao processamento em nuvem.
Computação emComputação em
NuvemNuvem
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 15/28
De�iniçã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.
Em complemento, imagine que há organizações que precisam ter grande poder de
processamento e armazenamento somente em alguns meses do ano, como é o caso
dos sistemas de imposto de renda, do Enem, do Sisu etc. Para manter essa
infraestrutura, a empresa precisa investir na aquisição dos equipamentos e da mão
de obra utilizada, mesmo que os utilize por pouco tempo. Nos outros meses,
quando não há necessidade de grande poder de processamento e armazenamento,
os equipamentos �cam subutilizados, quase sem uso. Nesse cenário, a empresa terá
gasto muito dinheiro inicial e, durante os meses em que não usa o que contratou,
estará perdendo dinheiro com a depreciação dos equipamentos. Para contornar
esse problema, grande parte desse tipo de organização está aderindo ao uso de
nuvens.
Dentro das nuvens de computação e armazenamento, temos as nuvens públicas, as
privadas e as mistas. Na nuvem pública há o compartilhamento de recursos
(infraestrutura), enquanto na nuvem privada não há compartilhamento com
empresas externas. As nuvens mistas ou híbridas usam parte de infraestrutura
pública e parte de privada. Dentre algumas empresas que fornecem o serviço de
nuvem, temos, por exemplo, Google, Amazon e Microsoft. Essas empresas investem
na aquisição e otimização de infraestrutura para vender processamento e
armazenamento como um serviço. Além disso, podem vender a infraestrutura, uma
plataforma especí�ca ou determinado software dentro da nuvem.
O fornecimento de infraestrutura como um serviço na nuvem é chamado de
Infrastructure as a Service (IaaS). Um exemplo para IaaS é a locação de um
computador reservado contendo o processador Intel Core i7, 3.8 GHz de velocidade,
16GB de memória RAM e Linux Xubuntu. No exemplo anterior, o locador terá
controle total da máquina locada (infraestrutura), podendo usar uma conexão SSH
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 16/28
para enviar comandos de manuseio da infraestrutura. No tipo de locação IaaS,
nenhuma outra organização pode fazer uso do hardware que foi locado, deixando ao
locador um alto grau de manipulação da máquina locada. Em resumo, a IaaS é o
aluguel de uma infraestrutura de forma facilitada.
No outro cenário, no qual temos uma plataforma como serviço, também chamada
de Platform as a Service (PaaS), há a locação de plataformas próprias para
determinado �m. Por exemplo, é possível locar plataformas de criação e
hospedagem de sites, ferramentas e aplicativos especí�cos, dentre outros. A PaaS
provê acesso fácil para que o desenvolvedor de software possa montar o ambiente
necessário para desenvolver o sistema, não tendo de se preocupar com
con�guração e gerenciamento de servidores, bancosde dados, tráfego de rede etc.
No último tipo de serviço ofertado pelas nuvens, temos o software como um serviço,
também chamado de Software as a Service (SaaS). Essa abordagem é a que tem
mais alto nível quando comparada à IaaS e à PaaS. Na SaaS são locados aplicativos
especí�cos armazenados em uma infraestrutura que é transparente ao locador. A
SaaS fornece a possibilidade de acessar serviços bem de�nidos na nuvem: por
exemplo, processar determinada imagem ou arquivo; realizar a conversão de um
valor de temperatura em Celsius para Fahrenheit; converter uma foto PNG para
JPEG, dentre outros.
Agora que você aprendeu alguns conceitos sobre a computação em nuvem, deve
estar se perguntando: Como ocorre a tarifação desses serviços no IaaS, PaaS e SaaS?
Geralmente, usa-se o tipo de tarifação simpli�cado: o locador paga somente o que
utilizar, normalmente medido em horas de uso. Esse tipo de tarifação é chamado de
pay as you go, ou seja, pague o quanto usar. Esse modelo de tarifação bene�cia o
locador do serviço, permitindo atender às situações nas quais precisamos de muito
processamento ou armazenamento, mas por pouco tempo. Sem esse tipo de
tarifação, teríamos que pagar de forma completa por tudo o que gostaríamos que
�casse disponível para nosso uso, o que levaria à subutilização do produto locado.
Perceba que o dimensionamento do processamento e do armazenamento permite
que as empresas projetem sistemas que se bene�ciem desse tipo de estrutura,
principalmente da forma de tarifação usada na locação de nuvens.
Atente-se ao exemplo a seguir, envolvendo a emissão do imposto de renda anual: a
emissão do documento do imposto de renda é realizada durante poucos dias do
ano e utiliza uma grande quantidade de processamento de requisições (computação
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 17/28
e uso de rede) e armazenamento das declarações, pois a maior parte da população
deve enviar esses dados. Esse serviço, para ser ofertado sem o auxílio da nuvem
computacional, precisa de toda essa infraestrutura para dar suporte a milhões de
requisições durante os dias estabelecidos para esse serviço; no restante do ano, o
equipamento �cará sem uso, e dinheiro será gasto com a sua manutenção e
também com a equipe de funcionários que dá suporte à infraestrutura.
A seguir, você vai aprender o que são os clusters e os grids dentro dos sistemas
distribuídos. 
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:
reflitaRe�ita
Já parou para pensar sobre como é
complexa a administração de diversos
computadores para criar uma
infraestrutura de computação em nuvem?
Re�ita também sobre quão difícil é
implementar essa infraestrutura e
fornecer a computação em nuvem como
um serviço.
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 18/28
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 classi�caçã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, tornando-as mais seguras
quando comparadas à segurança de outros tipos de nuvens. De forma
Sistemas
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. 
Grid (ou Grade): faz o uso de federações,
onde pode conter diferentes hardwares,
softwares e tecnologias distintas. É maior
que um cluster e não tem a entidade
central e/ou controladora bem de�nida.
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 19/28
geral, a nuvem privada é mantida e usada por uma única organização ou
por um grupo de organizações que são parceiras. Além disso, a nuvem
privada pode ser classi�cada como: hospedada por um provedor de
serviços ou hospedada pela própria organização.
Nuvem pública (public cloud): a nuvem pública é o modelo mais utilizado,
permitindo que diversas organizações dividam os custos de manutenção da
nuvem e usem os recursos disponíveis. Nesse tipo de nuvem, geralmente
se usa a tarifação pay as you go, adequando o consumo de cada
organização ao valor pago. Em geral, a nuvem pública é oferecida por
grandes instituições, públicas ou privadas. Como exemplo de organizações
mantenedores, temos a Amazon, que oferece o serviço Amazon Web
Service (AWS) para computação na nuvem.
Nuvem comunitária (community cloud): nesse tipo de organização de
nuvem, geralmente a infraestrutura é montada e gerenciada por um grupo
de organizações que compartilham os recursos fornecidos pela nuvem.
Essas organizações partilham dos mesmos interesses, o que permite
reduzir os custos com o compartilhamento. Além disso, também é possível
que a infraestrutura esteja dentro de uma das organizações ou que seja
instalada em um provedor de serviços terceirizado.
Nuvem híbrida (hybrid cloud): na abordagem híbrida há um conjunto de
diversas nuvens. Nesse conjunto, há uma agregação dessas nuvens para
formar uma única, de forma transparente. Essa abordagem enfrenta um
empenho extra para realizar o gerenciamento das diversas nuvens e
convertê-las em uma única, oferecendo transparência ao prover o serviço.
Cada modelo de nuvem tem vantagens e desvantagens, sendo mais ou menos
adequado para determinados cenários. Tanto as nuvens privadas quanto as nuvens
públicas têm alta e�ciência, alta disponibilidade, elasticidade e rápida
implementação. Quanto aos benefícios únicos das redes públicas, podemos citar:
custos iniciais reduzidos, economia proporcionada pela grande escala da nuvem,
simplicidade de gerenciamento ao usuário, pagamento de acordo com o uso. Já a
nuvem privada provê as seguintes vantagens: maior controle de segurança e
qualidade do serviço, integração facilitada, custos totais mais baixos (porém, exige
maior investimento inicial).
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 20/28
praticarVamos 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 �o.
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.
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 21/28
Para completar uma transação, os sistemas de transações distribuídas podem
acessar diversas máquinas, e cada máquina pode contribuir com alguma informação
ou processamento. Um exemplo comum para esses tipos de sistemassão os bancos
de distribuídos. Os bancos de dados distribuídos são os bancos de dados que
compartilham a mesma lógica, porém, são fracamente acoplados. Eles utilizam uma
rede para se comunicar e dividem recursos físicos. Podem ser homogêneos (quando
têm o mesmo banco de dados) ou heterogêneos (diferentes bancos de dados
interagindo).
Os sistemas de arquivos distribuídos são sistemas de armazenamento que usam
diversas máquinas para o armazenamento dos dados. Tanto os sistemas de
transações como os de arquivos distribuídos compartilham os mecanismos de
sincronismo, replicação e consistência dos dados. A seguir, vamos entender melhor
alguns conceitos sobre esses tipos de sistemas e suas aplicações.
Sistemas deSistemas de
TransaçõesTransações
Distribuídas eDistribuídas e
Sistemas de ArquivosSistemas de Arquivos
DistribuídosDistribuídos
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 22/28
De�inições e Aplicações
O armazenamento em bancos de dados distribuídos deve levar em consideração
alguns conceitos-chave (TANENBAUM, 2007):
Replicação dos dados: mantém somente uma cópia de cada dado em
diferentes sites.
Fragmentação: a relação do banco de dados é particionada em diversos
fragmentos; cada fragmento é armazenado em um site diferente.
Replicação e fragmentação: o sistema é particionado em fragmentos, e
cada fragmento é replicado em diferentes máquinas.
Quanto à replicação dos dados, as vantagens são: aumento na disponibilidade e no
paralelismo; o tempo para atualização também aumenta, visto que, quanto mais
dados em locais diferentes houver, maior será o esforço para alcançar todos e
atualizá-los. Em geral, a replicação melhora as consultas do tipo de leitura, enquanto
as do tipo de escrita ou atualização são mais custosas. Além disso, é importante
identi�car o per�l do sistema para ajudar a detectar qual abordagem será melhor:
uma que permita desempenho nas buscas ou nas inserções dos dados.
Quanto à fragmentação dos dados, pode ser usada a fragmentação horizontal ou a
vertical. Na fragmentação horizontal, todas as colunas são mantidas e os dados são
divididos por tuplas (linhas do banco de dados); cada servidor armazena um
fragmento de tuplas. Na fragmentação vertical, o banco de dados é dividido em
diferentes colunas, e então dividido para os diferentes servidores. Também há a
fragmentação mista, que utiliza as duas abordagens (TANENBAUM, 2007).
Outra característica importante dos bancos de dados distribuídos é a transparência
dos dados. O usuário não deve precisar referenciar em qual servidor quer buscar a
informação; o sistema deve se autogerenciar e manter a rastreabilidade dos
fragmentos e as replicações. Todos os servidores têm uma tabela atualizada das
divisões dos fragmentos e podem achar a informação de forma precisa.
Além disso, há o processamento de consultas distribuídas. Nos sistemas
centralizados, analisa-se principalmente a quantidade de acessos ao disco, enquanto
nos bancos de dados distribuídos analisa-se o custo da transmissão do dado na rede
e o ganho com paralelismo. Esse trade-o� deve favorecer o uso do paralelismo e dos
dados distribuídos. Também é preciso analisar a transformação da consulta na visão
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 23/28
do usuário para a visão distribuída, a análise dos caminhos e escolher o melhor
trade-o� para as operações do sistema.
Por �m, cada servidor deve garantir localmente as propriedades Acid (atomicidade,
consistência, isolamento e durabilidade). Um sistema distribuído pode sofrer as
mesmas falhas de um centralizado, adicionadas as falhas inerentes à complexidade
da transmissão e do gerenciamento dos dados particionados, aumentando a
complexidade de uso e do gerenciamento dos sistemas distribuídos.
praticarVamos Praticar
A replicação é uma técnica bastante utilizada nos sistemas distribuídos em geral,
melhorando as consultas do tipo de leitura; contudo, as do tipo de escrita ou atualização
são mais custosas. A replicação dos dados é alcançada nos sistemas distribuídos usando os
conceitos de fragmentos de dados. A partir disso, assinale a alternativa correta.
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.
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 24/28
indicações
Material
Complementar
FILME
Minority report
Ano: 2002
Comentário: Esse �lme 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 �lme, acesse o trailer a seguir.
T R A I L E R
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 25/28
LIVRO
SOA design patterns
Thomas Erl
Editora: Prentice Hall
ISBN: 0136135161
Comentário: Não confunda o protocolo SOAP com a
Arquitetura Orientada a Serviços (SOA). O SOA é um
paradigma de modelagem, enquanto o SOAP é um
protocolo parecido com o REST.
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 26/28
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.
Você entendeu que é possível usar diferentes abordagens para a organização dos
serviços web, como SOAP ou REST; também foi apresentado à forma de organização
dos dados, podendo organizá-los no padrão XML ou no JSON.
Vimos o protocolo HTTP e seus principais métodos, como POST e GET, usados para
manuseio dos serviços web.
Você estudou os principais tipos de arquiteturas para a computação em nuvem:
infraestrutura como um serviço (IaaS), plataforma como um serviço (PaaS) e software
como um serviço (SaaS). Por �m, entendemos as diferenças entre os clusters e os
grids do ponto de vista da organização dos componentes, e também os principais
tipos de nuvens.
 
referências
Referências
Bibliográ�cas
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 27/28
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.
12/09/2021 19:12 Ead.br
https://fadergsead.blackboard.com/webapps/late-course_content_soap-BBLEARN/Controller?ACTION=OPEN_PLAYER&COURSE_ID=_7463… 28/28

Outros materiais