Você está na página 1de 240

Sistemas

Distribuídos e
Redes
PROFESSORES
Me. Adriane Aparecida Loper
Esp. Cesar Augusto de Carvalho

ACESSE AQUI O SEU


LIVRO NA VERSÃO
DIGITAL!
DIREÇÃO UNICESUMAR
Reitor Wilson de Matos Silva Vice-Reitor Wilson de Matos Silva Filho Pró-Reitor de Administração Wilson de Matos Silva Filho
Pró-Reitor Executivo de EAD William Victor Kendrick de Matos Silva Pró-Reitor de Ensino de EAD Janes Fidélis Tomelin
Presidente da Mantenedora Cláudio Ferdinandi

NEAD - NÚCLEO DE EDUCAÇÃO A DISTÂNCIA


Diretoria Executiva Chrystiano Mincoff, James Prestes, Tiago Stachon Diretoria de Graduação e Pós-graduação Kátia Coelho Diretoria
de Cursos Híbridos Fabricio Ricardo Lazilha Diretoria de Permanência Leonardo Spaine Diretoria de Design Educacional Paula
Renata dos Santos Ferreira Head de Graduação Marcia de Souza Head de Metodologias Ativas Thuinie Medeiros Vilela Daros Head
de Tecnologia e Planejamento Educacional Tania C. Yoshie Fukushima Gerência de Planejamento e Design Educacional Jislaine
Cristina da Silva Gerência de Tecnologia Educacional Marcio Alexandre Wecker Gerência de Produção Digital Diogo Ribeiro Garcia
Gerência de Projetos Especiais Edison Rodrigo Valim Supervisora de Produção Digital Daniele Correia

PRODUÇÃO DE MATERIAIS

Coordenador de Conteúdo Fábio Augusto Gentilin Designer Educacional Bárbara Neves Curadoria Elziane Vieira
Alencar Revisão Textual Ariane Andrade Fabreti e Cindy Mayumi Okamoto Luca Editoração Juliana Duenha Ilustração
Geison Odlevati Ferreira Realidade Aumentada Maicon Douglas Curriel Fotos Shutterstock.

FICHA CATALOGRÁFICA

C397 CENTRO UNIVERSITÁRIO DE MARINGÁ.


Núcleo de Educação a Distância. LOPER, Adriane Aparecida;
CARVALHO, Cesar Augusto de.

Sistemas Distribuídos e Redes. Adriane Aparecida Loper e Cesar


Augusto de Carvalho. Maringá - PR: Unicesumar, 2021.

240 p.
ISBN: 978-65-5615-711-5
“Graduação - EaD”.

1. Redes 2. Sistemas 3. Distribuição. EaD. I. Título.

CDD - 22 ed. 005

Impresso por:

Bibliotecário: João Vivaldo de Souza CRB- 9-1679 Pró Reitoria de Ensino EAD Unicesumar
Diretoria de Design Educacional

NEAD - Núcleo de Educação a Distância


Av. Guedner, 1610, Bloco 4 - Jd. Aclimação - Cep 87050-900 | Maringá - Paraná
www.unicesumar.edu.br | 0800 600 6360
A UniCesumar celebra os seus mais de 30
anos de história avançando a cada dia. Agora,
enquanto Universidade, ampliamos a nossa Tudo isso para honrarmos a
autonomia e trabalhamos diariamente para que nossa missão, que é promover
nossa educação à distância continue como uma a educação de qualidade nas
das melhores do Brasil. Atuamos sobre quatro diferentes áreas do conhecimento,
pilares que consolidam a visão abrangente do formando profissionais
que é o conhecimento para nós: o intelectual, o cidadãos que contribuam para o
profissional, o emocional e o espiritual. desenvolvimento de uma sociedade
justa e solidária.
A nossa missão é a de “Promover a educação de
qualidade nas diferentes áreas do conhecimento,
formando profissionais cidadãos que contribuam
para o desenvolvimento de uma sociedade
justa e solidária”. Neste sentido, a UniCesumar
tem um gênio importante para o cumprimento
integral desta missão: o coletivo. São os nossos
professores e equipe que produzem a cada dia
uma inovação, uma transformação na forma
de pensar e de aprender. É assim que fazemos
juntos um novo conhecimento diariamente.

São mais de 800 títulos de livros didáticos


como este produzidos anualmente, com a
distribuição de mais de 2 milhões de exemplares
gratuitamente para nossos acadêmicos. Estamos
presentes em mais de 700 polos EAD e cinco
campi: Maringá, Curitiba, Londrina, Ponta Grossa
e Corumbá), o que nos posiciona entre os 10
maiores grupos educacionais do país.

Aprendemos e escrevemos juntos esta belíssima


história da jornada do conhecimento. Mário
Quintana diz que “Livros não mudam o mundo,
quem muda o mundo são as pessoas. Os
livros só mudam as pessoas”. Seja bem-vindo à
oportunidade de fazer a sua mudança!

Reitor
Wilson de Matos Silva
Me. Adriane Aparecida Loper

Ainda bem que somos pessoas inteiras! Ainda bem que não
somos 100% trabalho. Além do trabalho, temos família, lazer e
vivemos a vida com responsabilidades, direitos e deveres. Alguns
abusam, mas isso é outra história. Acredito que tudo nessa vida
acontece no momento certo e é para a nossa melhoria como
seres humanos.
Além de professora, tenho uma família e participo de uma
associação de doenças raras. A vida me deu esses desafios e
tento cumpri-los da melhor maneira possível.
Divido o meu tempo entre todos esses afazeres e me sinto
muito grata a Nosso Pai Maior por me dar tanta saúde e dispo-
sição. Embora, se pudesse escolher, permaneceria mais entre
os vinte e os trinta anos e, depois, receberia de braços abertos
essa maturidade que nos é concedida com o passar dessa longa
medida chamada “tempo”.
Tenho certeza que estou no lugar e no momento certo para
construir, com você, esse pedaço de minha história.

Aqui você pode


conhecer um
pouco mais sobre
mim, além das
informações do
meu currículo.
Esp. Cesar Augusto de Carvalho

Olá, meu nome é Cesar e estou na área de redes e telecomunica-


ções desde 2006. No entanto, desde criança, sou um amante da
tecnologia. Vivia fazendo maluquices em meu velho computador
386 (se você teve acesso a algum computador nos anos 90, com
certeza, foi algo parecido). Sou formado em Tecnologia em Redes
de Computadores e Administração de Empresas. Também tenho
a certificação Cisco CCNA e a Amazon AWS Cloud Practitioner. Já
lecionei as disciplinas “Desenvolvimento em Java” e “Desenvol-
vimento em C#” em cursos técnicos. Também ensinei a língua
inglesa como voluntário em projetos sociais.
Meu lado pessoal é bem diversificado. Sou um baterista ama-
dor, toco apenas pelo prazer da música. Sou praticante de Jiu-Jit-
su e, assim como a música, pratico apenas pelo esporte e pelo
condicionamento físico. Além disso, gosto de ler livros de ficção,
tais como os clássicos de Júlio Verne. Por último, mas não menos
importante, gosto de ficar com minha família e fazer viagens e
passeios pelo parque.

Aqui você pode


conhecer um
pouco mais sobre
mim, além das
informações do
meu currículo.
REALIDADE AUMENTADA

Sempre que encontrar esse ícone, esteja conectado à internet e inicie o aplicativo
Unicesumar Experience. Aproxime seu dispositivo móvel da página indicada e veja os
recursos em Realidade Aumentada. Explore as ferramentas do App para saber das
possibilidades de interação de cada objeto.

RODA DE CONVERSA

Professores especialistas e convidados, ampliando as discussões sobre os temas.

PÍLULA DE APRENDIZAGEM

Uma dose extra de conhecimento é sempre bem-vinda. Posicionando seu leitor de QRCode
sobre o código, você terá acesso aos vídeos que complementam o assunto discutido

PENSANDO JUNTOS

Ao longo do livro, você será convidado(a) a refletir, questionar e transformar. Aproveite


este momento.

EXPLORANDO IDEIAS

Com este elemento, você terá a oportunidade de explorar termos e palavras-chave do


assunto discutido, de forma mais objetiva.

EU INDICO

Enquanto estuda, você pode acessar conteúdos online que ampliaram a discussão sobre
os assuntos de maneira interativa usando a tecnologia a seu favor.

Quando identificar o ícone de QR-CODE, utilize o aplicativo Unicesumar


Experience para ter acesso aos conteúdos on-line. O download do aplicativo
está disponível nas plataformas: Google Play App Store
SISTEMAS DISTRIBUÍDOS E REDE

De acordo com Colouris, Dollimore e Kindberg (2007, p. 17), “um sistema distribuído é aquele no qual
os componentes localizados em computadores interligados em rede se comunicam e coordenam
suas ações apenas passando mensagens”.
Vamos entender melhor a definição apresentada?
Estamos inseridos em um universo de tecnologias.
Necessitamos da “máquina” que conhecemos como computador, independentemente do formato
(computador, notebook, tablete e smartphone), para ingressar nesse universo.
Na definição de Sousa (1999, p. 21), rede é “um conjunto de equipamentos interligados de
maneira a trocarem informações e compartilharem recursos como arquivos de dados gravados,
impressoras, modens, softwares e outros equipamentos”.
Você, ao ligar o seu computador ou telefone celular, ao enviar um e-mail ou ao fazer uma bus-
ca por determinado assunto, visualiza uma série de respostas. Essas respostas são em forma de
artigos e fotos, por exemplo.
As principais perguntas são:
Como essa tecnologia toda funciona?
Como conseguimos utilizar e-mails ou nos comunicar em um chat?
Como acesso, em um buscador, uma palavra e tenho todas as respostas rapidamente?
Como jogamos on-line com diversos amigos?
Como o desenvolvimento de mecanismos de busca na web, como o Google, trabalha?
Para entendermos esse universo tecnológico, temos que conhecer os sistemas distribuídos e as redes.
Inicialmente, o que temos que entender é que os computadores e os telefones são conectados
por meio de uma rede de computadores. Essas redes têm a capacidade de conectar diferentes tipos
de componentes, configurações e sistemas operacionais, o que chamamos de heterogeneidade.
Como fazer com que tudo isso funcione? Não é fácil, mas é possível.
Essas redes são estruturadas com diversos componentes físicos e lógicos, os quais estudaremos
ao longo de nossa disciplina. Precisamos entender como funciona a rede das redes, ou seja, a in-
ternet, pois tudo aquilo que acessamos on-line só é possível por meio das redes de computadores
e da internet.
Vamos introduzir um assunto pertinente a nossa disciplina: os jogos. Você já teve essa expe-
riência? Você gosta mais de jogos de ação, aventura, estratégicos, de tabuleiro ou RPG (role-playing
game) em um computador?
Em um jogo, temos a oportunidade de nos divertir e aprender. Somos colocados em ambientes
que nos trazem estratégias, para que possamos chegar até os nossos objetivos. Você tem a compa-
nhia de outros jogadores e, muitas vezes, precisa se unir a eles para atingir os objetivos propostos.
Por exemplo, precisamos encontrar um “traidor”. Apenas conseguiremos achá-lo em um am-
biente colaborativo.
Só tivemos a sensação de “estarmos juntos” pela tecnologia e pela estrutura que as redes e os
sistemas distribuídos nos propiciam. Vamos construir juntos esses conhecimentos?
Suponha que um grupo de três estudantes que cursaram as disciplinas “Redes de computadores”
e “Sistemas distribuídos” se encantaram por elas e decidiram fundar uma startup. Eles desejam
trabalhar com algo que gostam e já perceberam que o futuro está voltado aos aperfeiçoamentos
ligados à internet. Para escolher o foco da startup, pensaram na Internet das Coisas (IoT), na reali-
dade virtual, na realidade mista e nas possíveis tecnologias com grafeno. Em outras palavras, eles
estão focados na tecnologia do futuro.
Para expulsar o estresse, resolveram jogar on-line. Então, surgiu a solução para os problemas
dos três colegas: todos chegaram à conclusão que podem ser consultores sobre como criar e im-
plantar sistemas ou aplicações adequados e resistentes às falhas, os quais serão utilizados nas mais
variadas aplicações tecnológicas modernas.
A partir disso, estruturaremos os pensamentos. Por exemplo, se você está em um jogo multipla-
yer (vários jogadores) on-line, é necessária uma estrutura tecnológica adequada. Se pensarmos em
como os bancos conseguem trabalhar on-line mundialmente, calcando as transações, encontra-se
uma estrutura de redes, computadores, em nuvem e plataformas virtuais, para que tudo aconteça
tranquilamente e seja seguro. Para o simples ato de mandar um e-mail ou ingressar em uma rede
social, é necessária uma estrutura tecnológica.
Os três colegas terão muito trabalho pela frente. Eles devem aprofundar os conhecimentos deles,
para que possam orientar os futuros clientes. Assim como eles, iniciaremos a nossa jornada a partir
do entendimento de definições relacionadas às redes de computadores e aos sistemas distribuídos.
De acordo com a evolução da startup e das necessidades dos clientes, cabe a nós conhecermos o
funcionamento, as possibilidades e a implantação de tecnologias.
Vamos, com os três jovens colegas, iniciar uma jornada de aprendizagem?
CAMINHOS DE
APRENDIZAGEM

1
13 2
41
CONCEITOS E DESAFIOS E
CARACTERÍSTICAS DE ARQUITETURAS
REDES DE DOS SISTEMAS
COMPUTADORES E DISTRIBUÍDOS
SISTEMAS
DISTRIBUÍDOS

3
67 4
95
PROCESSOS E VIRTUALIZAÇÃO
COMUNICAÇÃO EM
REDES E EM
SISTEMAS
DISTRIBUÍDOS

5 123 6
145
TOLERÂNCIA ÀS TECNOLOGIA DE
FALHAS E IMPLANTAÇÃO
SEGURANÇA EM BASEADA EM
SISTEMAS OBJETOS
DISTRIBUÍDOS
7
169
8
187
SISTEMAS DE PROJETO DE REDES
ARQUIVOS
DISTRIBUÍDOS

9
211
GERENCIAMENTO
DE REDES
1
Conceitos e
Características
de Redes de
Computadores e
Sistemas Distribuídos
Me. Adriane Loper

Olá! Nesta unidade, aprenderemos os conceitos iniciais que envolvem


redes de computadores e sistemas distribuídos, assim, analisaremos
a evolução das redes de computadores bem como as suas estruturas
para podermos entender como hoje, com a internet, jogamos online
com vários amigos e comunicamo-nos com qualquer pessoa em
qualquer parte do mundo. Este conjunto de tecnologias permite-nos
percorrer as vias digitais com muita rapidez, além de responder
aos nossos questionamentos. Iniciaremos com o entendimento dos
componentes de uma rede de computadores e as características
desses computadores conectados, que formam um sistema distri-
buído. Sabe aquela sensação de estar em frente ao computador e
poder descobrir várias novidades, sentindo-nos únicos? Pois esta é
a definição de sistemas distribuídos. Vamos aprender?
UNICESUMAR

Se refletirmos, os nossos avós, provavelmente, nunca ouviram falar da internet, até apresentarmos algo
para eles. Os nossos pais tiveram que se adaptar a estas mudanças, com computadores e smartphones.
E nós estamos, aqui, para implementar e aperfeiçoar o que já existe.
A pergunta que responderemos, aqui, será: como se conseguiu chegar às tecnologias que temos
hoje? Como houve essa comunicação de equipamentos para podermos trabalhar ou jogar online com
alguém? Faremos esta caminhada juntos, entendendo as possibilidades que temos.
Você tem a noção de que vários computadores estão conectados a uma rede de alta velocidade e
diversas pessoas podem trabalhar com esses dados, simultaneamente, tanto no envio de um e-mail
quanto no jogo online com os amigos?
Enquanto usuários, desejamos que as informações fornecidas cheguem até nós, rapidamente, e re-
solvam os nossos problemas, como se todos os outros computadores, todas as redes e todos os recursos
estivessem em nossa máquina.
Pois bem, este conceito de um sistema único para o usuário, sistema esse que resolve os problemas,
tem considerável colaboração de redes de aparelhos e de sistemas distribuídos. Estes últimos podem
ser vistos como um conjunto de computadores conectados por meio de uma rede de computadores
e que apresentam um único sistema. O seu objetivo é tornar todos os programas, equipamentos, e,
principalmente, os dados alcançáveis a todas as pessoas nas redes, independentemente da localização
física delas ou dos recursos.
Na prática, os padrões de compartilhamento de recursos variam, amplamente, na abrangência e no
quanto os usuários trabalham em conjunto. Em um extremo, temos um mecanismo de busca na web
que fornece um recurso a usuários de todo o mundo, os quais nunca entram em contato, diretamente.
No outro extremo, no trabalho cooperativo apoiado por computador, um grupo de usuários colabo-
ra, de modo direto, compartilhando recursos, como documentos, em um pequeno grupo fechado. O
padrão de compartilhamento e a distribuição geográfica dos usuários determinam quais mecanismos
o sistema deve fornecer para coordenar as ações destas pessoas.
Antes de implantarmos os sistemas distribuídos, temos que dimensionar a arquitetura física dos
computadores, como hardware e software, que utilizaremos nesse sistema. Assim, compreenderemos
o que acontece, em nosso dia a dia, e poderemos sugerir melhorias nas empresas com a finalidade de
impulsar a nossa carreira profissional.
Uma das características mais importantes de um sistema distribuído é a abstração, pois os usuários
não percebem que a aplicação dele está sendo executada em diversos computadores e em diversas redes
espalhadas nos mais diferentes lugares do mundo. Por isso, esse sistema é cada vez mais utilizado como
padrão em grandes empresas de Tecnologia da Informação.
Com o olhar sobre estas oportunidades que as novas tecnologias nos trazem, pensaremos em uma startup,
afinal, este é um novo negócio impulsionado pelos avanços tecnológicos. Vejamos um exemplo hipotético:
A startup Constelação recebeu a sua primeira demanda. Cláudio, Renato e Marina farão uma
apresentação para a Empresa Irmãos S.A., da área de alimentos. Como a empresa sempre foi focada
no mercado local, até então, trabalhava com pouca tecnologia. A Irmãos S.A. possuem três sistemas de
informação, em três computadores diferentes, um para controlar entradas e saídas de produtos, outro

14
UNIDADE 1

que faz a sua contabilidade e um que organiza os recursos humanos. Os sistemas são descentralizados
e não se conectam por uma rede.
Até este momento, esses sistemas supriam as necessidades da empresa, mas, em 2021, Leônidas, neto
do fundador das Empresas Irmãos S.A., assumiu a empresa e quer expandir os seus negócios, investindo
em tecnologias. Assim, ele contratou a startup Constelação para saber como funcionam as redes de com-
putadores e a internet. Apesar de Leônidas ter certa experiência em tecnologias, os seus colaboradores
pouco a conhecem. Eles não sabem as possibilidades e os avanços existentes aos seus negócios.
Se estivesse nesse caso, o que você mostraria a respeito das possibilidades de as redes de computa-
dores ajudarem o proprietário a impulsionar os negócios?
Pensando na evolução das redes de computadores até chegarmos à internet, uma estrutura básica
de evolução poderia ser criada e demonstrada ao nosso cliente, exemplificando as possibilidades que
elas têm de melhorar a empresa.
Como o nosso cliente e os seus funcionários são leigos em redes, inclusive, em suas tecnologias, e
estamos inseridos em uma consultoria, devemos iniciar apresentando aos nossos clientes que, hoje,
podemos colocar os computadores em rede para facilitar a troca de dados e os seus compartilhamen-
tos por meio de apenas, uma impressora e várias pessoas a utilizando ao mesmo tempo, por exemplo.
Para isso, necessitamos de hardware e software, que devem ter as suas características apresentadas
ao cliente — tais como placa de rede, cabos voltados a essa comunicação, um hub ou switch, os quais
receberão os sinais dos computadores conectados na rede, um servidor que será uma máquina para
prestar serviços à rede e um sistema operacional de rede, o qual suportará os serviços de transmissão
e recepção por meio da rede — e, assim, os colaboradores poderão entrar no universo da internet a
fim de fazer pesquisas e se atualizarem.
Descreva, em seu Diário de Bordo, como você faria estes passos e deixaria claro os benefícios obtidos
com a integração das máquinas.

DIÁRIO DE BORDO

15
UNICESUMAR

Para iniciar as atividades, compreenderemos um pouco mais da evolução pelas quais equipamentos
e, principalmente, as redes de computadores passaram, para conseguirmos a estrutura de sistemas
distribuídos que temos, hoje.
Podemos definir redes de computadores como um conjunto de dispositivos que compartilham
recursos físicos ou lógicos por intermédio de um meio de comunicação. A fim de que as redes (incluindo
a internet) funcionem, troquem mensagens, deve haver regras, as quais foram estruturadas ao longo
dos anos e são chamadas de protocolos. Chamamos de protocolo o conjunto de regras que adminis-
tra a comunicação entre as camadas. O protocolo é entendido e interpretado por todas as máquinas
da rede, mesmo com fabricantes ou sistemas operacionais diferentes. Ele funciona pegando os dados
transmitidos pela rede, então, divide em pedaços menores chamados pacotes, estes possuem, sempre,
os endereços de origem e destino. Os protocolos, entre outras funções, são responsáveis, também, por
estabelecer, controlar, trafegar e encerrar a comunicação.
Há diferentes tipos de protocolos de rede que dependem do tipo de serviço usado e da camada que
estamos trabalhando.

Bem, já que fomos inseridos em uma consultoria sobre redes de


computadores, para que você possa entender as possibilidades exis-
tentes neste universo, sugiro a leitura do primeiro capítulo dos livros
os quais indico, aqui.
Título: Redes de Computadores
Autor: Andrew S. Tanenbaum
Editora: Pearson Prentice Hall

Título: Redes de Computadores e a Internet: Uma nova abordagem


Autor: James F. Kurose
Editora: Addison Wesley
Para acessar, use seu leitor de QR Code.

A composição física, com sua arquitetura de computadores, chamamos de hardware e, para completar,
precisamos de softwares que nos auxiliam para o correto funcionamento.
Temos alguns meios de comunicação que também evoluíram, desde o cabo metálico, a fibra óptica
e as comunicações sem fio, via rádio ou via satélite. As tecnologias de redes de computadores passaram
a ser implementadas a partir da década de 80, pois foram adotados computadores pessoais, com custo
razoável, e havia a necessidade de interligar estes equipamentos. Assim surgiram as primeiras redes locais.

16
UNIDADE 1

Rede é “um conjunto de equipamentos interligados de maneira a trocarem informa-


ções e compartilharem recursos como arquivos de dados gravados, impressoras,
modems, softwares e outros equipamentos” (SOUSA, 1999, p. 21).

Inicialmente, vimos que uma das finalidades principais da rede não era, apenas, o compartilhamento de
recursos, mas a comunicação de dados e a troca de mensagens entre os usuários. Com a estruturação
das redes de computadores, surgiram as facilidades do e-mail (correio eletrônico), possibilitando mais
sustentabilidade por meio da economia de papel.
A princípio, as empresas começaram a compartilhar recursos com as redes de computadores. Um
dos exemplos adotados, rapidamente, foi compartilhar uma impressora entre vários usuários. Das
redes locais (LANs – Local Area Network) passamos a expandir os horizontes com as redes de lon-
ga distância (WANs – Wide Area Network). Posteriormente, veio a rede das redes, a nossa internet.
Como nos afirmam Coulouris et al. (2007, p. 1), “todas elas, tanto separadamente como em conjunto,
compartilham as características básicas que as tornam assuntos relevantes para estudo sob o título de
sistemas distribuídos”.

Grandes sistemas da atualidade e as suas principais aplicações trabalham com o modelo de


sistemas distribuídos. Estes dependem de diversas máquinas, pois, assim, a carga do ambiente
será distribuída. Ao usuário, não importa quantas máquinas estão conectadas, mas que os seus
problemas sejam resolvidos, rapidamente, e que a resposta seja ágil e única.

Vamos nos ambientar aos meios físicos de conexão à rede e aos seus dispositivos? Neste tipo de
conexão existem dois métodos principais para o envio de sinais pelos cabos: a banda base e a banda larga.
Conforme definição de Barrett e King (2010), a banda base faz o uso de uma única frequência fixa
para transmissão dos dados, utilizando toda a largura de banda do cabo na transmissão do sinal. Isso
faz com que a sua intensidade sofra atenuação conforme a distância de transmissão, demandando a
utilização de repetidores com o objetivo de restabelecer o sinal. Nas redes de computadores, todos os
dados trafegam com o método banda base.
Já a banda larga veio substituir o acesso à internet que, antigamente, era feito por um computador
o qual acessava uma linha telefônica. O problema que tínhamos, nesta época, era: ou você usava a
internet ou você usava o telefone, mas, com a banda larga, as vias de conexão aumentaram. Ela é uma
tecnologia em evidência que permite ao usuário final ter recursos disponíveis às transmissão e recepção
de áudio, vídeo e imagem em boa qualidade (BRASIL, 2014).

17
UNICESUMAR

No início das redes, foi utilizado o cabo coaxial, que, hoje, quase não é mais usado. A sua composi-
ção interna baseia-se em um fio de cobre rígido com blindagem metálica externa. Podemos visualizar
o cabo coaxial na Figura 1 (a):

A) B) C) D)

Fios de Kevlar Fibra

Capa

Fio de cobre Revestimento


Isolamento de vidro
Malha de cobre
Isolamento externo

Figura 1 (a) - Coaxial; Figura 1 (b) - UTP; Figura 1 (c) - STP; Figura 1 (d) - Fibra ótica / Fonte: Barrett e King (2010, p. 46-47).

Descrição da Imagem: a figura mostra, por meio de uma ilustração, quatro tipos de cabos que utilizamos em redes de computado-
res. Na Figura 1 (a), temos o cabo coaxial, com suas partes internas à mostra, identificadas de dentro para fora, sendo: fio de cobre,
isolamento, malha de cobre e isolamento externo. Na Figura 1 (b), temos o UTP, cabo de par trançado não blindado. Na Figura 1 (c),
está o STP, cabo de par trançado blindado. Na Figura 1 (d), está a fibra óptica, com sua composição interna, também, à mostra, cujos
componentes estão identificados de fora para dentro, sendo: capa, Fios de Kevlar, revestimento de vidro e fibra.

De acordo com Barrett e King (2010), os cabos UTP (do inglês Unshielded Twisted-Pair) são compos-
tos por quatro pares com oito fios trançados e têm classificações conforme a sua velocidade. Os cabos
UTP, ou cabo de par trançado não blindado, são os mais utilizados para redes de computadores em
função de seu custo-benefício e facilidade de instalação. Os cabos blindados são chamados STP (do
inglês Shielded Twisted-Pair) ou cabo de par trançado blindado, conforme a Figura 1 (c).

O conector RJ-45 é o nome popular do plugue 8P8C. Ele possui oito fios no total e é utilizado
há muitos anos, sendo o modelo padrão e universal para conexões Ethernet, ou seja, qualquer
rede de internet.

18
UNIDADE 1

Quando desejarmos velocidades de transmissão altas e em grandes distâncias, deve-


mos trabalhar com as fibras ópticas. A fibra óptica, segundo Barrett e King (2010, p.
15), é a que “utiliza pulsos de luz para transmitir o sinal, tornando-a imune à grande
maioria das interferências eletromagnéticas”.
O cabo de fibra é constituído por um núcleo e um revestimento de sílica ao seu
redor. Onde os dados são transmitidos, a luz é injetada por leds, ao receber as infor-
mações, o sinal óptico é transformado em sinal elétrico. Nesse tipo de transmissão, é
possível alcançar alta velocidade, na faixa de até 10 terabytes por segundo.
Há dois tipos de fibras ópticas: as monomodo e as multimodo. As fibras mul-
timodos são constituídas por vários feixes luminosos em diferentes ângulos de in-
cidência, propagam-se por meio de diferentes caminhos dentro da fibra, e as fibras
monomodo são aquelas com diâmetro do núcleo tão pequeno que apenas um raio
de luz será transmitido, praticamente, sem reflexão nas paredes internas (ALENCAR,
2012). A Figura 1 (d) mostrou como o cabo de fibra óptica é composto, de forma a
permitir que dados sejam transmitidos. A sua principal desvantagem é o preço, além
das dificuldades de instalação e manutenção.
A padronização de redes sempre foi uma longa discussão. Nos anos 80, cada fabri-
cante possuía soluções próprias e únicas, fazendo com que o cliente fosse obrigado
a adotar soluções fechadas de um único fabricante. Em razão desta dificuldade, os
maiores fabricantes e representantes da indústria reuniram-se em uma comissão
especial da ISO – International Standardization Organization e, em acordos, co-
meçaram a elaborar o modelo OSI – Open Systems Interconnection. Por diversos
fabricantes poderem operar, ele ficou conhecido como sistema aberto.
Em redes de computadores, temos outro conceito importante, que são os proto-
colos, um conjunto de normas que a rede utiliza o qual permite qualquer máquina
conectada à internet se comunicar com outra, também, já conectada na rede. Pode
ser entendido como o conjunto de regras que administra a comunicação entre as
camadas. O protocolo é usado para definir o formato e o significado dos pacotes, os
quais são as mensagens enviadas e pode sofrer alteração, desde que os serviços não
sejam alterados.
Há tipos diferentes de protocolos que escolhemos conforme a necessidade de
realizar tarefas diferentes. A fim de entendermos como o protocolo trabalha, tere-
mos que explorar o Modelo OSI, que garantiu o funcionamento de computadores
de fabricantes diferentes. Para cada camada OSI, teremos um protocolo fazendo
determinada tarefa.
As camadas desse modelo são: física, enlace, rede, transporte, sessão, apre-
sentação e aplicação, conforme apresentadas na Figura 2.

19
UNICESUMAR

Transmissão Recepção

Aplicação Aplicação
Apresentação Apresentação
Sessão Sessão
Transporte Transporte
Rede Rede
Enlace Enlace
Física Física

Figura 2 - Camadas do Modelo OSI / Fonte: Matheus (2018, on-line).

Descrição da Imagem: a figura está apresentando, em forma de esquema, a transmissão e recepção da informação passando pelas
sete camadas do Modelo OSI, citadas no parágrafo anterior. À esquerda, temos um notebook aberto com a palavra “Transmissão” em
cima dele, representando a etapa de mesmo nome e, embaixo dele, há uma série de retângulos, um em cima do outro, com os nomes
das camadas da etapa de Transmissão no centro de cada um. A partir do retângulo no topo até o retângulo localizado na base, estão as
camadas: “Aplicação”, “Apresentação”, “Sessão”, “Transporte”, “Rede”, “Enlace” e “Física”. A camada “Física” da “Transmissão” direciona-se,
com uma seta, para o retângulo escrito “Física”, localizado na base, para o notebook à direita. Este tem a palavra “Recepção” em cima
dele, representando a etapa de mesmo nome e, embaixo dele, há uma série de retângulos, um em cima do outro, com os nomes das
camadas da etapa de Recepção no centro de cada um. A partir do retângulo da base até o que está no topo, vemos as camadas: “Física”,
“Enlace”, “Rede”, “Transporte”, “Sessão”, “Apresentação” e “Aplicação”. O retângulo escrito “Aplicação”, localizado no topo, direciona-se,
com uma seta, para o notebook denominado “Recepção”.

Para detalharmos as camadas do Modelo OSI, o Quadro 1 traz as suas principais funções:

Camada Descrição
A camada de aplicação é a única que “conversa” com os programas interessados
em se comunicar com a rede, atuando como interface para esses programas. O na-
Aplicação vegador web, o programa de e-mail, o Skype, o WhatsApp são alguns exemplos de
programas que se comunicam via internet e o fazem por meio de sua comunicação
com a camada de aplicação.
Esta camada é responsável pela tradução de formatos, caso seja necessário. O seu
trabalho é converter padrões diferentes que possam ser usados pelo programa para
um formato compreensível e tratável pela pilha de protocolos. A camada de apre-
Apresentação
sentação também provê serviços de criptografia de dados, protegendo a informação
em seu trâmite pelas camadas inferiores até a camada de apresentação da máquina
de destino.
É a camada responsável pelo estabelecimento e pela manutenção de uma sessão de
comunicação entre a aplicação no computador de origem e a aplicação no computador
Sessão
de destino. Caso haja falha na comunicação, é esta camada que mantém o estado da
comunicação à retomada quando a comunicação for restabelecida.

20
UNIDADE 1

A camada de transporte da máquina que origina a comunicação é a responsável pela


fragmentação dessa comunicação, dividindo-a em pacotes e a eles adicionando in-
formações que permitam o reagrupamento da mensagem na ordem correta em seu
destino bem como a avaliação da integridade da mensagem nesse mesmo destino.
Transporte
Em caso de erros nos pacotes, é a camada de transporte na máquina de destino que
requisita o reenvio por parte da camada de transporte da camada de origem. Ainda
na máquina de destino, as informações de controle são removidas, e a mensagem é
agrupada antes de ser enviada à camada de sessão.
Ela é a responsável pelo roteamento dos pacotes — transformando o endereço lógico
Rede de destino em endereço físico — e o seu encaminhamento. A camada de rede define
o caminho que a comunicação deverá seguir da origem até o seu destino.
A etapa enlace de dados é a responsável pela comunicação ponto a ponto, ou seja,
entre elementos adjacentes em uma rede de comunicação. Os dados de roteamento
definidos na camada de rede são traduzidos nesta camada, que identifica o elemento
adjacente e para ele direciona o fluxo da comunicação. O processo repete-se até que
Enlace a comunicação atinja o seu destino. A camada de enlace pega os pacotes de dados
recebidos da camada de rede e os transforma em quadros que trafegarão pela rede,
adicionando informações como: o endereço da placa de rede de origem, o endereço
da placa de rede de destino, os dados de controle, os dados em si e a checagem de
redundância cíclica (CRC).
É a camada responsável por transformar os quadros recebidos da camada de enlace
em sinais elétricos ou em sinais eletromagnéticos e os transmitir, de forma que sejam
Física identificados pela camada física da máquina adjacente responsável pela continuidade
do fluxo de comunicação.

Quadro 1 - Camadas do Modelo OSI / Fonte: adaptado de Alencar (2010).

Quando estamos tratando de redes cabeadas, existem dispositivos concentradores específicos — que
servem para interligar computadores e outros dispositivos — operando nas diferentes camadas de uma
rede, como pode ser observado na Figura 3.

Aplicação

Transporte

Rede Roteador ou switch L3

Enlace Bridge ou switch L2

Física Repetidor ou hub

Figura 3 - Dispositivos utilizados em cada camada que operam na rede / Fonte: adaptada de Forouzan (2008).

Descrição da Imagem: uma ilustração composta por cinco retângulos que trazem, no centro, os nomes das cinco camadas. A camada
superior é “Aplicação”, abaixo dela, está a camada “Transporte”, posteriormente, as camadas “Rede”, “Enlace” e “Física”. Depois, em
formato de esquema, estão os dispositivos que cada camada utiliza. Na camada de rede, utiliza-se o roteador ou switch L3, na de enlace,
usa-se o bridge ou switch L2, na camada da física, utiliza-se o repetidor ou o hub.

21
UNICESUMAR

Iremos, agora, aos principais dispositivos de rede, começando pela placa de rede, que pode ser
chamada NIC (Network Interface Card ou controlador de interface de rede). Ela é um dispositivo de
hardware responsável pela conexão entre um computador e uma rede, assim, todos os computadores
e dispositivos que compõem a rede necessitam dessa placa, a qual é o hardware que permite aos com-
putadores conversarem entre si por meio da rede.
A função dela é controlar todo o envio e recebimento de dados. Cada arquitetura de rede exige
um tipo específico de placa e cada placa de rede tem um endereço MAC (Media Access Control ou
controle de acesso de mídia) que é único, formado por um identificador do fabricante.
Figura 4 - Placa de rede / Fonte: Shut-
terstock.

Descrição da Imagem: fotografia


de uma placa de rede, que consti-
tui a interface entre o computador
e o cabo de rede. Na parte frontal,
temos o conector de interface, den-
tre os mais usados, estão os RJ-45.
Temos alguns leds que acendem,
representando o seu funcionamen-
to. Em geral, há leds verdes, laranjas
ou vermelhos, sendo o verde para a
alimentação da placa e o vermelho
para envio ou recepção de dados.

Outro dispositivo que compõe as redes são os hubs. Também chamado concentrador, ele é o dispositivo
que centraliza a conexão de todos os computadores de uma rede, com a capacidade de emitir e receber
mensagens, porém sem realizar, de forma simultânea, os dois processamentos. O hub pertence à ca-
mada de enlace no Modelo OSI, fazendo a repetição de sinais, além de conter as linhas de entrada que
distribuem a conexão.
Um fato importante é o hub ser um equipamento de rede ultrapassado e, assim, pela questão de seu
baixo desempenho em redes que possuem muitos equipamentos conectados, foi substituído pelo switch.

Figura 5 - Hub / Fonte: Shutterstock.

Descrição da Imagem: ilustração


de um dispositivo chamado hub ou
concentrador.

22
UNIDADE 1

Agora, traremos a importância dos switches. O switch ou comutador é um dispositivo muito seme-
lhante ao hub, porém com uma função mais abrangente e de forma mais inteligente. Enquanto o hub
é, apenas, um repetidor de sinais, onde qualquer sinal que chega em uma porta é repetido para todas
as outras portas, o switch envia os sinais, apenas, para a porta destino.

Figura 6 - Switch / Fonte: Shutterstock.

Descrição da Imagem: Fotografia de um rack mostrando três switches. Os três switches possuem 24 portas cada um, estão empilhados
e, no switch do meio, estão conectadas as 24 portas com conectores RJ 45, um para cada computador que estará conectado.

Vamos a mais um elemento importante à composição das redes, que são bridges ou pontes. Este dis-
positivo interliga duas ou mais redes locais que usam protocolos distintos ou iguais, ou seja, permitem
interligar dois segmentos de rede, de forma que eles passem a formar uma única rede. Hoje, é utilizada
para unificar segmentos de rede que se baseiam em mídias diferentes.
As limitações são: o bridge pode conectar, apenas, redes que utilizem a mesma arquitetura (Ethernet,
por exemplo) e que utilizem o mesmo protocolo de rede (TCP/IP, por exemplo).

71:2B:13:45:61:41 71:2B:13:45:61:42 64:2B:13:45:61:12 64:2B:13:45:61:13


1 2
Bridge

LAN 1 LAN 2

Figura 7 - Duas redes interligadas por um bridge / Fonte: Forouzan (2008, p. 448).

Descrição da Imagem: ilustração que representa o funcionamento de bridge. Nesta rede, temos quatro computadores distintos
distribuídos na horizontal, sendo dois conectados na LAN 1 e, acima desses, estão os seus respectivos endereços na rede, sendo:
“71:2B:13:45:61:41” e 71:2B:13:45:61:42, e dois conectados na LAN 2 e, acima desses, estão os seus respectivos endereços na rede,
sendo: “64:2B:13:45:61:12” e “64:2B:13:45:61:13”. Entre a LAN 1 (com dois computadores) e a LAN 2 (com os outros dois computadores),
temos o bridge, que serve para interligar duas redes.

23
UNICESUMAR

Quanto aos roteadores, estes são um “encaminhador”, que é um dispositivo utilizado para fazer a
comutação de protocolos — a comunicação entre diferentes redes de computadores, ou seja, os com-
putadores distantes entre si, podendo, para isso, utilizar as LANs e WANs na internet. Os roteadores
podem ser cabeados ou sem fio e são uma evolução dos switches, pois, além de fazer o trabalho do
switch, ainda selecionam a melhor rota para um pacote de dados chegar até o destino. Pensaremos que
a sua rede é uma cidade, composta de vários bairros e ruas, e que os pacotes são carros. O roteador
fará o importante papel de orientar o carro sobre os melhores caminhos a serem seguidos, mostrando
rotas mais curtas ou menos congestionadas.
Para entendermos um pouco mais, faremos, em nossa disciplina, a referência à estação cliente e à
estação servidora, pois, em um futuro próximo, estudaremos modelos de arquitetura.
Como a internet se tornou uma rede cada vez maior de computadores interligados, houve a ne-
cessidade de dedicar alguns deles ao fornecimento de serviços à rede, enquanto os demais acessam
esses serviços. Assim, os computadores que proviam serviços eram denominados servidores, e os que
acessavam os serviços eram chamados de clientes. A internet pode ser considerada um enorme sistema
para acessar documentos ligados entre si e que possui milhões de clientes e servidores.
A estação cliente é entendida como a estação de trabalho que se encontra conectada na rede
por meio de uma placa de rede e utiliza serviços disponibilizados pela rede. Como exemplos de uso,
podemos trazer os serviços de e-mail e de banco de dados e o sistema de arquivos. Não é necessário
disco ou capacidade de memória ampla, pois ela aproveitará o modelo cliente/servidor para trabalhar.
Os servidores são máquinas mais robustas e de alta performance, maior capacidade de hardware,
com discos de maior capacidade e mais rápidos, boa memória RAM e diversos processadores. Prova-
velmente, os servidores adotarão um padrão de redundância conhecido como RAID.
Os servidores prestam serviços às redes. A parte pesada das aplicações, denominadas aplicação server,
é executada nessas máquinas. Por exemplo: um servidor de e-mails é responsável pelo gerenciamento
das caixas postais dos usuários (os quais podem ter milhares de caixas postais), pelo estabelecimento das
comunicações com as estações cliente e com os servidores de e-mail que são o destino destas mensagens.
A disposição dos componentes físicos e o meio de conexão dos dispositivos na rede mostram como
será definida a topologia das redes de computadores.

A topologia de rede é o padrão pelo qual o meio de rede está conectado aos computadores
e a outros componentes. É como se compõe a rede, e pode ser descrito física ou logicamente.

24
UNIDADE 1

Quanto às topologias físicas de redes, as mais comuns são: estrela, anel, malha, árvore e barramento
(TANEMBAUM, 2007).
A topologia barramento foi uma das primeiras topologias de rede lançadas. Nela, há a troca de
informações entre os pontos através de um mesmo cabo que tem a função de transmitir os dados entre
os computadores. A comunicação é usada em redes do tipo ponto a ponto. O seu desempenho varia
conforme o número de estações, o tipo de cabo utilizado e a utilização da rede pelas estações e aplicações.

Figura 8 - Topologia barramento / Fonte: Shutterstock.

Descrição da Imagem: ilustração que representa a topologia de uma rede, sendo que o significado de topologia nada mais é do que
como são estruturadas as redes. Esta representação é da topologia de barramento, esta rede será representada por uma linha azul
clara que se interliga, na parte de cima da ilustração, com quatro computadores e, na parte de baixo, com três computadores.

A topologia anel foi lançada pela IBM com o surgimento do token ring. Neste tipo de topologia
de rede, as estações estão conectadas em um caminho fechado, diferentemente do barramento. As
mensagens, geralmente, são transmitidas em determinado sentido no anel. Quando uma mensa-
gem é colocada no anel, ela circula por ele até que a estação destino a retire, ou, então, até retornar
à estação que enviou a mensagem.

25
UNICESUMAR

Figura 9 - Topologia anel / Fonte: Shutterstock.

Descrição da Imagem: representação, por meio de uma ilustração, da topologia de anel. Esta rede é apresentada por uma linha azul
clara que se interliga com oito computadores e, como diz o nome, os computadores estão conectados em um único círculo, em forma
de anel.

Na topologia estrela, todas as estações estão, diretamente, conectadas com o dispositivo central (nor-
malmente, um hub), formando um circuito fechado.

26
UNIDADE 1

Figura 10 - Topologia estrela / Fonte: Shutterstock.

Descrição da Imagem: representação, por meio de uma ilustração, da topologia estrela. Esta rede tem esse nome, pois, no layout dela,
a organização tem uma forma semelhante a uma estrela, na qual braços partem de um ponto central. Este dispositivo central mostra,
na imagem, seis retas da cor preta, representando a rede chegando a seis computadores.

Já na topologia malha, cada um dos computadores da rede (nodos) efetua a transferência de dados
entre os dois dispositivos. Podemos ter vários caminhos a seguir, por exemplo, quando enviamos um
e-mail: o importante é que esse e-mail enviado chegue ao seu destino, e a topologia malha consegue
seguir em outro caminho, se houver problemas naquele primeiro caminho escolhido.
Uma topologia de malha pode ser, completa ou parcialmente conectada. Naquela que é, totalmente,
conectada, cada computador tem uma conexão com todos os outros computadores da rede.

27
UNICESUMAR

Figura 11 - Topologia malha / Fonte: Shutterstock.

Descrição da Imagem: representação, por meio de uma ilustração, da topologia malha. O padrão em malha permite a conexão de
todos os dispositivos entre si. Na imagem, temos cinco dispositivos interconectados, sendo eles computadores e servidor.

A topologia árvore, por sua vez, é uma rede cuja característica é a interligação de várias redes e sub-
-redes. Uma rede local pode ser interligada a outra rede local por um concentrador.

28
UNIDADE 1

Topologia árvore

Central switch

Secondary switch Secondary switch

Figura 12 - Topologia árvore / Fonte: Shutterstock.

Descrição da Imagem: representação, por meio de uma ilustração, da topologia árvore, tendo três switches e oito computadores,
no layout, temos duas redes e, posteriormente, duas sub-redes, distribuídas em quatro camadas. Na camada superior, está o switch
central que, por uma linha verde (rede), se interliga a dois switches chamados secundários. Desses dois switches, uma linha verde
(rede) interliga-se a dois computadores, os quais se comunicam, na quarta camada, com mais dois computadores da rede, perfazendo
a estrutura de uma topologia árvore.

Bem, até aqui tivemos boa recordação dos elementos de uma rede local, vimos um pouco
da evolução, da topologia e dos seus dispositivos. Depois de recordarmos os elementos de
uma rede local, será que há algum novo modelo a ser criado, com mais vantagens do que os
modelos tradicionais?

29
UNICESUMAR

Se você tem curiosidade de simular a construção de redes, acesse o


QR-Code e entre neste simulador da Cisco. Você terá uma experiência
muito rica, aprendendo muito sobre como podemos nos aprofundar
na construção de redes de computadores.
Para acessar, use seu leitor de QR Code.

Agora que temos conhecimento prévio a respeito das redes de computadores, podemos iniciar os
conceitos de sistemas distribuídos.
Para Tanenbaum (2007), um sistema distribuído é um conjunto de computadores independente
que se apresenta a seus usuários como um sistema único e coerente. Para Coulouris et al. (2007, p.
2), “um sistema distribuído é aquele no qual os componentes de hardware ou software, localizados
em computadores interligados em rede, comunicam-se e coordenam suas ações apenas enviando
mensagens entre si”.
Com o objetivo de exemplificarmos os primeiros sistemas distribuídos, temos computadores, im-
pressoras e estações de trabalho interligados por uma rede, conforme mostra a Figura 13.

30
UNIDADE 1

Servidor
Computador pessoal

Rede de Comunicação
Impressora

Estação de trabalho

Figura 13 - Princípio dos sistemas distribuídos / Fonte: a autora.

Descrição da Imagem: representação, por meio de uma ilustração, dos princípios de sistemas distribuídos. Aqui, temos uma rede de
comunicação interligada a um computador pessoal, um servidor, uma impressora e uma estação de trabalho. A rede de comunicação
está no centro da imagem.

A partir destas definições, concluímos que só os computadores ligados em rede não caracterizam
sistemas distribuídos, porém temos que aprimorar este conceito.
Teremos, também, um novo olhar sobre hardware e software, pensando em hardware como má-
quinas autônomas e em software como a visão dos usuários. Estes têm a sensação do sistema todo
como um computador único.
Para você saber quando estamos trabalhando com sistemas distribuídos, trago um cientista da
Computação, Leslie Lamport, hoje, com mais de 80 anos, que afirma: “Você sabe que tem um sistema
distribuído quando a falha de um computador do qual você nunca ouviu falar faz com que você pare
completamente de trabalhar” (LAMPORT, 1978, p. 558, tradução da autora).
Tanenbaum (2007) chama a atenção para algumas características em sistemas distribuídos:
• Os computadores (nós) conectados devem ter autonomia.
• Como usuários em sistemas distribuídos, podemos ter pessoas ou programas, porém ambos
veem o sistema como único.
• Os dois têm a sua parcela de colaboração.

31
UNICESUMAR

Tanenbaum (2007, p. 2) afirma que “a meta principal de um sistema distribuído é facilitar aos usuários
e às aplicações o acesso a recursos remotos e seu compartilhamento de maneira controlada e eficiente”.
Quando nos referimos às características de sistemas distribuídos, temos algumas metas a serem
seguidas que elencaremos na sequência.

Recursos
Para Tanenbaum (2007), podemos considerar, como recursos, as diversas impressoras, formas
de memórias, armazenamento, redes, sistemas operacionais e servidores, entre outros.
Quando nos referimos a recursos, falamos, por exemplo, de impressoras de diversos tipos (a
laser, jato de tinta, jato de cera, 3D), plotters, armazenamentos que poderiam ser magnéticos,
ópticos, eletrônicos ou em nuvem, dados em diversos formatos; redes em quaisquer configura-
ções; servidor de e-mail; servidor de arquivo; páginas web; sistemas operacionais, entre outros.
Fonte: adaptado de Tanenbaum (2007).

Trabalhar com sistemas distribuídos é uma tarefa árdua, pois estamos falando de recursos diferentes
distribuídos em rede. Tanenbaum (2007) elenca algumas características/desafios que devemos nos
atentar quando construirmos sistemas distribuídos. Dentre elas, estão:
a) Heterogeneidade.
b) Sistemas abertos.
c) Segurança.
d) Escalabilidade.
e) Tratamento de falhas.
f) Concorrência.
g) Transparência.

Explicaremos cada um dos sete itens, que são de extrema importância na construção de sistemas
distribuídos.
a) Heterogeneidade

A palavra “heterogeneidade” significa, em sistemas distribuídos, diferentes computadores, diferentes


sistemas operacionais. Mas estas diferenças não podem ser percebidas pelos usuários, afinal, eles perce-
bem o sistema como único. Por exemplo, podemos acessar a internet dos mais diferentes dispositivos,
como smartphones, e achamos sempre que somos o único usuário daquele site.

32
UNIDADE 1

Para que tenhamos essa sensação, organizamos uma camada extra de software denominada
middleware, conforme a Figura 14. O middleware implementa a comunicação e oferece suporte
para compartilhamento de recursos a aplicativos distribuídos.

COMPUTADOR 1 COMPUTADOR 2 COMPUTADOR 3 COMPUTADOR 4

Apl. A aplicação B Apl C

Camada do sistema distribuído 

SO Local 1 SO Local 2 SO Local 3 SO Local 4

Figura 14 - Middleware / Fonte: Tanenbaum (2007, p. 2).

Descrição da Imagem: representação, por meio de uma ilustração, do middleware como a camada que pertence, simultaneamente,
aos quatro computadores e que fica localizada entre as aplicações e os sistemas operacionais. Para isso, há a ilustração de quatro
quadrados, lado a lado, os quais representam os computadores, nomeados Computador 1, 2, 3 e 4. Dentro de cada um, estão represen-
tadas as partes internas. Dentro dos computadores, há, em cima, um primeiro retângulo, representando as aplicações, um retângulo
central representando o middleware e retângulos, na parte de baixo, representando os sistemas operacionais dos computadores. Ao
Computador 1 pertence a Aplicação A e o Sistema Operacional Local 1; Os Computadores 2 e 3 possuem, em comum, a Aplicação B; o
Computador 2 tem o Sistema Operacional Local 2, e o Computador 3 tem o Sistema Operacional Local 3; ao Computador 4 pertence a
Aplicação C e o Sistema Operacional Local 4.

Podemos ter middleware para comunicação síncrona, baseada em chamadas de procedimentos


centradas em “objeto/função”, por exemplo, o CORBA e o RMI; para comunicação assíncrona, com
base em filas “centradas na informação”, por exemplo, JMS. Nas próximas unidades, explicaremos o
middleware com mais abrangência.

b) Sistemas abertos

Pode-se dizer que a abertura em relação ao software é permitir a introdução de novos serviços e a im-
plementação dos velhos. Para sistemas distribuídos, pode-se utilizar a independência de fornecedores.


Um sistema computacional é aberto quando ele pode ser estendido e reimplementado
de várias maneiras. O fato de um sistema distribuído ser ou não um sistema aberto é
determinado principalmente pelo grau com que novos serviços de compartilhamento
de recursos podem ser adicionados e disponibilizados para uso por uma variedade de
programas clientes (COULOURIS et al., 2007, p. 17).

c) Segurança

Uma das maiores preocupações que devemos ter, em todo e qualquer aspecto da Tecnologia da In-
formação, é a segurança.

33
UNICESUMAR

A partir da conexão com a internet, podemos entrar em um universo muito inseguro em relação
às informações. A cada dia, temos mais informação sobre golpes, desvios, invasões de contas e sites
ou pichações de páginas, todos estes problemas aparecem com o auxílio da internet. Sendo a internet
um dos exemplos mais comuns de sistemas distribuídos, temos que voltar a nossa atenção ao viés da
segurança. Temos como impedir estes ataques? Não, mas temos obrigação de minimizá-los, por meio
da prevenção. A segurança dos recursos, tratando-se da informação, baseia-se em três pilares, que são:
confidencialidade, integridade e disponibilidade, a tríade CID.
O tipo de serviço prestado por um sistema distribuído é de alto valor. De acordo com Campos
(2007), a segurança de recursos de informação se baseia nos três pilares da segurança da informação:
confidencialidade, integridade e disponibilidade.
Na definição de confidencialidade, Campos (2007, p. 17) afirma: “esse princípio é garantido quando
apenas as pessoas explicitamente autorizadas podem ter acesso à informação”. Por integridade, o mes-
mo autor (2007, p. 18) traz que “esse princípio é garantido quando a informação acessada está completa,
sem alterações e, portanto, completa”. E para a disponibilidade, ele afirma (2007, p. 19): “esse princípio é
garantido quando a informação está acessível, por pessoas autorizadas, sempre que necessário”.


Que ter a clareza que toda a comunicação em um sistema distribuído ocorre sobre redes.
O desafio é enviar informação sensível em mensagens de forma segura. Outra questão
que devemos estar atentos é a garantia da identidade do emissor e do receptor de men-
sagens. Com o avanço dos ciberataques, houve um aumento no ataque de negação de
serviço (DOS), o que fere o princípio da disponibilidade. E a ação possível é procurar
responsáveis depois do ataque ter ocorrido, deixando serviços indisponíveis, o que
poderá causar prejuízos.
A falta de criptografia das mensagens torna as mensagens inseguras. Outro problema é
que quanto maior a conectividade, maiores os spams, entre diversos ataques que podem
ocorrer nas redes (CAMPOS, 2007, p. 20).

d) Escalabilidade

Hoje, a maior e mais fácil comunicação é pela internet. A fim de termos essa comunicação, quem pro-
jeta um sistema distribuído deve ficar atento à escalabilidade. Definem Coulouris et al. (2007, p. 19):


A escalabilidade de um sistema distribuído representa a potencialidade do seu fun-
cionamento em diferentes escalas. Um sistema distribuído deve operar de forma
eficiente independentemente da escala, por exemplo, desde uma pequena intranet até
a internet. Um sistema é escalável se continuar efetivo após acréscimo significativo
de recursos e usuários

34
UNIDADE 1

Tanenbaum e Van Steen (2007, p. 6) trazem que:


A escalabilidade pode ser medida em três dimensões diferentes. Em primeiro lugar, um
sistema pode ser escalável em relação ao seu tamanho, o que significa que é fácil adi-
cionar mais usuários e recursos ao sistema. Em segundo lugar, um sistema pode ser
escalável em termos geográficos, que é um sistema no qual usuários e recursos podem
estar longes uns dos outros. Em terceiro lugar, um sistema pode ser escalável em termos
administrativos, o que significa que ele ainda pode ser fácil de gerenciar, mesmo que
abranja muitas organizações administrativas diferentes. Infelizmente, um sistema esca-
lável em uma ou mais dessas dimensões, muitas vezes, apresenta perda na capacidade
de desempenho à medida que é ampliado.

A dimensão em relação aos domínios administrativos traz à tona os problemas de políticas confli-
tantes em relação à utilização e ao pagamento dos recursos, gerenciamento e segurança.

O termo “recurso” é bastante abstrato, mas caracteriza bem o conjunto de coisas que podem
ser compartilhadas, de maneira útil, em um sistema de computadores interligados em rede.
Será que todos os sistemas distribuídos cumprem as suas tarefas?

e) Tratamento de falhas

Os componentes dos sistemas distribuídos podem falhar. As dúvidas que persistem são saber quando
essas falhas ocorrerão, como identificá-las antes ou até pensar “será que elas, realmente, acontecerão?”.
Coulouris et al. (2007, p. 21) afirmam que:


Quando falhas no hardware ou software ocorrem, podem trazer resultados errados ou
encerrar o processo antes de fornecer respostas. As falhas em um sistema distribuído
não são totais dificultando seu tratamento. Isto é, alguns componentes falham enquanto
outros continuam funcionando.

As técnicas de tratamento de falhas são: detecção de falhas, mascaramento de falhas, tolerância a falhas,
recuperação de falhas e redundância (COULOURIS et al., 2007).
Na detecção de falhas, fazemos a verificação, em geral, por checksum (um cálculo para verificar
somas de bits), sendo que essa técnica detecta erros, verifica se o arquivo está corrompido ou foi mo-
dificado, se há mudanças em pacotes na rede ou dados errados em um arquivo.

35
UNICESUMAR

No mascaramento de falhas, pode-se eliminar uma mensagem danificada, retransmitindo-a e


ocultando-a, fazendo com que tal falha seja menos severa. Pode-se, também, armazenar dados em
discos diferentes para que, caso um esteja danificado, o outro ainda possa estar correto. Nestes casos,
devemos trabalhar com a pior das hipóteses, ou seja, na qual todos os discos estejam corrompidos, e
não poderemos fazer o armazenamento ou a mensagem não poderá ser transmitida em tempo hábil.
Quanto à tolerância a falhas, os sistemas distribuídos apresentam redundância natural, extrema-
mente, proveitosa ao emprego de técnicas de tolerância a falhas. O defeito em um nodo no processador
ou na rede de comunicação não precisa provocar, necessariamente, a queda de todo o sistema, e este
pode ser reconfigurado usando, apenas, os nodos disponíveis
Um sistema distribuído deve prover operação continuada, somente, com pequena queda de desem-
penho, mesmo na presença de qualquer tipo de falha. Podemos exemplificar quando você acessa um
site na internet e o servidor dele está indisponível. Muito rapidamente, você recebe uma mensagem
do seu navegador mostrando esta indisponibilidade, então, fará a escolha de fazer o mesmo acesso, de
novo. Para a recuperação de falhas, como exemplo, temos o rollback (“rolar para trás”) no servidor.
Se estivermos fazendo uma transação e ela, por algum motivo, não se completar, o sistema é obrigado
a recuperar os dados. Isso pode deixar os dados incompletos ou distintos dos valores corretos.
Quanto à redundância, Weber, Jansch-Pôrto e Weber (1990) colocam que ela, para o aumento de
confiabilidade, é quase tão antiga quanto a história dos computadores. As redundâncias podem ser
de hardware, de software, temporal e de informação e todas elas têm algum impacto no sistema, seja
no custo, seja no desempenho, na área (tamanho, peso) ou na potência consumida. Por exemplo, a fim
de detectar falhas em um microprocessador, muitas vezes, é usado outro microprocessador idêntico,
sincronizado ao primeiro, além de um comparador de sinais na saída de ambos (duplicação e compa-
ração). Qualquer diferença na comparação indica que o par de microprocessadores está em desacordo,
portanto, um dos dois está danificado (ou sofreu uma falha temporária).

f) Concorrência

Tanenbaum (2007) descreve concorrência como a situação de diversos usuários acessando o mesmo
recurso, ao mesmo tempo. Por mais rápidas que sejam as respostas dos servidores, os pedidos ao re-
curso serão atendidos, apenas, um por vez. Ainda, segundo Tanenbaum (2007), para a concorrência
de sistemas distribuídos, devemos ter atenção à sincronização. Por exemplo: os lances de um leilão
(devemos ter o cuidado de as respostas serem corretas).

g) Transparência

Quando nos referimos à transparência, remetemos ao início de sistemas distribuídos, fazendo com que
tenhamos uma visão do todo. Tanenbaum (2007, p. 3) define oito formas de transparência:


• Transparência de acesso: os acessos devem ser efetuados com as mesmas operações, sem
que o usuário saiba se o recurso acessado é local ou remoto.

36
UNIDADE 1

• Transparência de localização: não há necessidade de saber a localização física ou


endereço de IP do recurso acessado.
• Transparência de concorrência: vários processos acessam os mesmos recursos com-
partilhados sem interferência.
• Transparência de replicação: múltiplas instâncias de recursos são usadas com a finali-
dade de melhorar o desempenho e/ou a confiabilidade sem usuários e programadores
tomarem conhecimento de suas réplicas.
• Transparência de falhas: permite aos usuários finalizarem suas tarefas, mesmo havendo
falhas em software ou hardware e as mesmas serem tratadas.
• Transparência de mobilidade: permite a movimentação de recursos e clientes dentro
de um sistema sem afetar qualquer operação do usuário.
• Transparência de desempenho: permite ao sistema ser reconfigurado conforme as
necessidades para aumento de desempenho.
• Transparência de escalabilidade: permite mudanças de escala (aumento dos recursos
computacionais) sem alteração de aplicações ou algoritmos.
• Transparência de rede: combinação de transparência de acesso e transparência de
localização.

Agora que temos a nossa conceitualização inicial, vamos aprofun-


dar-nos em disposições de redes para os sistemas distribuídos? Dê
o play e ouça o nosso podcast!

Sistemas distribuídos permitiram-nos a expansão da internet, com as inúmeras possibilidades, tais


como: lojas entrando no e-commerce, algumas tornando-se gigantes, como a Amazon; novas tecno-
logias para pagamento, como exemplo, temos o PayPal; buscadores de rede cada vez mais eficientes e
elaborados; bibliotecas virtuais cada vez mais completas; músicas e filmes baixados por streaming e,
também, a disponibilidade de algo que gostamos muito, os jogos online.
Esses são exemplos de nosso dia a dia com sistemas distribuídos. Por isso, estudamos redes de
computadores e o início desses, para que possamos, conforme Coulouris et al. (2007), implementá-los
nos diversos domínios de aplicação selecionados e aplicações de rede associadas, como em finanças
e comércio, setores de criação e entretenimento, assistência médica, educação, transporte e logística,
ciências e gerenciamento ambiental, entre outros.

37
Bem, agora, temos material suficiente para retornar à nossa primeira demanda, apresentada no
início da unidade, a qual lhe pedi para anotar em seu Diário de Bordo, lembra?
A nossa tarefa era mostrar as possibilidades que redes de computadores podem trazer ao pro-
prietário, a fim de impulsionar os negócios. Que tal criar um Mapa Mental? Você pode iniciar
com o exemplo de como os computadores se comunicam, como ocorreu o início das redes de
computadores, quais são os meios físicos de conexão (cabos, conectores) até chegarmos à fibra
óptica para altas velocidades de transmissão por longas distâncias. Para começar, deixei alguns
termos com o objetivo de você dar continuidade. Vamos lá?

SISTEMAS DISTRIBUÍDOS E REDES DE COMPUTADORES

Definições inicias Definições de


de sistemas redes de
distribuídos computadores
estrutura de redes

desafios características

dispositivos

38
1. Quando desejar altas velocidades de transmissão por longas distâncias, a melhor op-
ção de cabeamento a ser utilizada é a fibra óptica. Em relação à fibra óptica, analise as
afirmativas, a seguir, e assinale a alternativa correta:
I) Nas fibras ópticas, temos dois tipos, que são as monomodo e as multimodo.
II) O tipo monomodo é usado para sinais de grandes distâncias, possui manuseio difícil
e exige muita técnica, além do custo elevado.
III) O tipo monomodo é utilizado para comunicações com redes locais. O sistema mul-
timodo tem diâmetro maior e, assim, é possível transitar mais de um sinal através
de lasers e leds.

É correto o que se afirma em:

a) I e II, somente.
b) I e III, somente.
c) II e III, somente.
d) I, somente.
e) I, II e III.

2. Tanenbaum (2007) descreve que as tecnologias de redes de computadores de alta velo-


cidade passaram a ser implementadas a partir da década de 80. Quando nos referimos
a redes de curta distância, locais, estamos tratando de:
a) Cloud computing.
b) LAN.
c) WAN.
d) VPN.
e) RAN.

3. Para que as diferenças não sejam notadas pelos usuários, e eles tenham a visão de um
sistema único, podemos organizar os sistemas distribuídos por meio de uma camada
de software. Em relação aos sistemas distribuídos, temos uma camada intermediária
entre os aplicativos e os sistemas operacionais, denominada:
a) Thread.
b) Callback.
c) Plataforma.
d) Middleware.
e) Conteinerização.

39
4. É um equipamento utilizado na área da Informática para realizar a conexão de
computadores de uma rede bem como possibilitar a transmissão de informações entre
essas máquinas e que também é utilizado em rádio e telecomunicações. Na televisão
aberta, assim como no rádio, ele refere-se à transmissão e à difusão de determinada
informação, tendo, como característica principal, a transmissão a muitos receptores,
ao mesmo tempo. Estamos falando de:
a) Placa de rede.
b) Hub.
c) Modem.
d) Switch.
e) Roteador.

5. Já compreendemos que o compartilhamento de recursos é uma necessidade quando


trabalhamos com redes de computadores. Comer e Barcellos (2007, p. 150) trazem a
definição: “______________ correspondem a um dispositivo de E/S (entrada/saída) que
se conecta por meio de cabeamento aos nodos de rede. O controlador de interface
da rede (NIC – Network Interface Controller) pode estar ou não integrado à placa-mãe”.

O que completa, corretamente, a lacuna da definição é:

a) Switch.
b) Placas de rede.
c) Hub.
d) Bridge.
e) Roteador.

40
2
Desafios e
Arquiteturas dos
Sistemas Distribuídos
Me. Adriane Loper

Até agora, vimos diversas definições sobre redes de computadores


e sistemas distribuídos. Os jogos online que nos entretêm, a própria
internet e as grandes transações financeiras são exemplos de sis-
temas distribuídos. Para o entendimento de como essa tecnologia
toda trabalha, precisamos compreender e planejar diversas partes
dos nossos sistemas computacionais, incluindo as suas arquitetu-
ras, que são as interligações de nosso sistema. A partir das classi-
ficações do sistema computacional usado, definiremos algumas
configurações necessárias para termos um sistema distribuído.
Nesta construção das partes com o intuito de chegarmos ao todo,
teremos muitos desafios. Vamos aprender?
UNICESUMAR

A pergunta a qual responderemos, nesta etapa, é: o que será necessário conhecer de um sistema compu-
tacional e qual a arquitetura mais adequada de sistemas distribuídos, para chegarmos aos exemplos já
conhecidos, tais como um jogo multiplayer, a internet, as transações financeiras, a Internet das Coisas,
não, apenas, para o seu robusto funcionamento, mas com segurança e menor quantidade de falhas?
Na construção de um sistema computacional, temos que adequar os equipamentos, as formas de
trabalho e as possibilidades de classificação existentes.
Iniciaremos com o conhecimento, definindo estas estruturas para alcançarmos o nosso objetivo,
que é sugerir determinada configuração lógica e física a uma empresa, no momento, a hipotética Me-
d&Med S.A. Neste contexto, demonstraremos tal configuração definindo o que são, como funcionam
e as diferenças entre sistemas centralizados e paralelos, forte e fracamente acoplados.
Nesta sugestão de arquitetura, analisaremos os computadores que fazem parte de sistemas distri-
buídos e têm o funcionamento independente. Cada computador, que podemos chamar de nó, possui
o seu próprio sistema operacional e hardware, mesmo assim, eles serão ligados por meio de rede,
possibilitando o seu funcionamento de forma distribuída.
Veremos que as informações que percorrem essas redes têm muita heterogeneidade, possibilidades
de falhas bem como comprometimento da segurança. Estes são alguns desafios a serem vencidos para
termos sistemas distribuídos com todos os compartilhamentos eficazes e seguros.
A primeira experiência necessária será o conhecimento de quais componentes precisamos para
conseguirmos levar a informação de um local a outro, que é o objetivo dos sistemas distribuídos.
Uma das formas que utilizamos a fim de levar essa informação é pela rede das redes (internet), que
nos permite acessar o que desejamos, de qualquer lugar e com qualquer computador. Outra forma de
trocarmos essas informações é em uma transação bancária. Outro agrupamento de informações são
os jogos online multiplayer.
Navegamos por diversos computadores, equipamentos e redes, tendo a impressão de que esse sistema
todo está trabalhando para nós, e este é, de fato, o objetivo da construção de um sistema distribuído.
Em nossa primeira unidade, entendemos o que é e quais são as necessidades de infraestrutura na
composição de um sistema distribuído. Na presente unidade, aprenderemos muito das necessidades, com
o intuito de formarmos o nosso sistema distribuído e, então, podermos agrupar essas informações para
serem transmitidas a um cliente da startup hipotética, com as características de um sistema distribuído.
Pois bem! A Startup Constelação recebeu a sua segunda demanda. Cláudio, Renato e Marina farão
uma apresentação à Empresa Med&Med S.A., a qual é da área médica. Ela começou há pouco tempo
e tem o seu foco em tecnologia e, por trabalhar com diversos vendedores dos seus equipamentos,
quer possibilitar que os seus vendedores, em qualquer lugar do Brasil, façam acessos à empresa e
passem os seus dados.
Para isso, Cláudio, Renato e Marina terão de mostrar, detalhadamente, quais componentes, tanto na ar-
quitetura de sistema quanto na arquitetura de software, serão necessários para criar esse sistema distribuído.
Bem, para estes três jovens conseguirem fazer uma apresentação sobre as necessidades da empresa
Med&Med S.A., precisamos ajudá-los a compreender como conseguimos interligar componentes. Isso

42
UNIDADE 2

depende da arquitetura de sistema computacional que escolhermos e da organização lógica de sistemas


distribuídos quanto aos componentes de software, ao qual chamamos de arquitetura de software e,
em sua parte de infraestrutura, de arquitetura de sistemas.
Descreva, em seu Diário de Bordo, quais tipos de arquitetura temos e qual a escolha mais adequada
à empresa Med&Med S.A.

DIÁRIO DE BORDO

A partir da definição da arquitetura feita pelo(a) projetista, você verá as implicações nos protocolos
de comunicação e na organização das requisições.
Agora, detalharemos os tipos de sistemas computacionais até chegarmos aos sistemas distribuídos,
os quais são computadores independentes que trabalham juntos para dar ao usuário respostas rápidas,
como em um jogo de computador, dando a impressão de que estamos em um único sistema completo.
Conforme a classificação de tipos de sistemas computacionais, apresentada na Figura 1, entende-
remos onde se localizam os sistemas distribuídos, segundo Tanenbaum (2007).

43
UNICESUMAR

Década de 60 Sistemas
computacionais

Centralizados
Paralelos

Fortemente Fracamente
acoplados acoplados

Simétricos Rede

Distribuídos
Assimétricos

Época Atual

Figura 1 - Classificação dos sistemas computacionais / Fonte: adaptada de Tanenbaum (2007).

Descrição da Imagem: ilustração que mostra a representação hierárquica dos sistemas computacionais desde a década de 60. A
primeira subdivisão é em sistemas centralizados e sistemas paralelos. Os paralelos mostraram-se muito eficientes e foram divididos
em “Fortemente acoplados”, onde se encontram as classificações “Simétricos” e “Assimétricos”, e em “Fracamente acoplados”. O nosso
foco está nos fracamente acoplados, os quais se dividem em “Rede e “Sistemas distribuídos”. Os sistemas computacionais foram clas-
sificados conforme a sua organização. Em nossos estudos, focaremos os sistemas paralelos, que nos trazem os sistemas distribuídos.

Quando definimos sistemas centralizados, trazendo Tanenbaum (2007), há um ponto central, ge-
ralmente, um servidor; as outras máquinas que compõem a arquitetura utilizam a memória dele bem
como o processador e, para sistemas distribuídos, se os usuários e aplicações aumentarem, esse servidor
não terá a mesma performance.
Os sistemas paralelos, para Tanenbaum (2007), consistem em tornar o processamento mais rápido,
usando mais processadores ou máquinas interligadas que têm o comportamento de uma só máquina.
Todos os processamentos que devem ser feitos pelo sistema são resolvidos, de forma paralela, entre
os processadores.

Sistema operacional é o software encarregado em fazer a interface entre usuário e hardware.


Pode ser entendido como o conjunto de softwares cuja função é administrar e gerenciar os
recursos de um sistema, desde componentes de hardware e sistemas de arquivos até progra-
mas de terceiros, estabelecendo a interface entre o computador e o usuário. Os computadores
que conhecemos, hoje, necessitam de um sistema operacional para funcionar.

44
UNIDADE 2

Na maioria das vezes, os sistemas paralelos são baseados em clusters, que são conjuntos de máquinas
interligadas as quais dividem a sua carga de processamento. Coulouris et al. (2007) apontam algumas van-
tagens para o trabalho com sistemas paralelos, dentre elas, a escalabilidade, a produtividade e a economia.

REALIDADE
AUMENTADA

Acesse a nossa R.A. para ver um exemplo de cluster.

Cluster

Nos sistemas paralelos, temos sistemas operacionais para sistemas com múltiplas CPUs (Central
Process Unit) ou Unidade Central de Processamento. As CPUs (Central Process Unit) configuram
o principal item de hardware do computador, que também é denominado processador, por alguns
autores. A CPU é responsável por calcular e realizar tarefas determinadas pelo usuário. Os sistemas
operacionais com múltiplas CPUs são classificados em fracamente acoplados e fortemente acoplados.
Descrever esses softwares:
O software fortemente acoplado dá-se quando os diversos processadores do sistema cooperam na
execução das tarefas, ou seja, há a divisão de um problema por várias CPUs, onde cada CPU trabalha,
em paralelo, a fim de produzir um único resultado. Como exemplo, temos o processamento de imagens.
Já os softwares fracamente acoplados são sistemas independentes que cooperam de alguma for-
ma. Como trazem Silberschatz, Galvin e Greg (2015), um sistema distribuído é um conjunto de nós
fracamente acoplados interconectados por uma rede de comunicação.
Temos diversos exemplos de sistemas distribuídos, por exemplo, a internet, a Internet das Coi-
sas, as intranets das empresas ou de universidades, bancos com diversas agências e diversos caixas
eletrônicos, sistema operacional Unix, computação móvel e ubíqua. Descreveremos, então, como elas
funcionam para nos dar ideias do que necessitamos em nossa apresentação à empresa Med&Med S.A.
Iniciaremos pela descrição da rede das redes, da internet, que nada mais é do que um grande
sistema distribuído. Carvalho e Lotito (2005) definem a internet como uma rede enorme de compu-

45
UNICESUMAR

tadores e dos seus componentes voltada a trabalhar com a informação — esta podendo ir de um lugar
a outro —. Há o fornecimento de serviços aos usuários dessa rede, deixando-os à vontade para fazer
uso deles onde, quando e com a máquina que desejar.
O FTP (File Transfer Protocol) é um protocolo desenvolvido que se encarrega de trabalhar com
arquivos e diretórios da rede, independentemente do sistema operacional utilizado. O FTP também
permite a um usuário conectar-se com um servidor FTP e fazer a transmissão de dados por intranet
ou internet. São estabelecidas duas conexões, a de controle e a de dados, as quais, em conjunto com o
protocolo TCP (Transmisson Control Protocol) garantem mais segurança na transferência das infor-
mações, pois há formas de verificar se a transferência obteve sucesso ou não.
Na descrição da internet, por ser um grande sistema distribuído, podemos ter a mais diversificada
configuração de máquinas e conexões, como mostra a Figura 2.

intranet
ISP

e
bon
ck
ba

one
c kb
ba
En

ba
lac

ck
bo
ed

ne
es
at
éli
te

Computador de mesa:
Servidor:
Enlace de rede:

Figura 2 - Uma parte típica da internet / Fonte: Coulouris et al. (2007, p. 17).

Descrição da Imagem: ilustração que representa a estrutura física da internet, aqui, constituída por: máquinas (hosts) conectadas a
um provedor de serviços (ISP) ou rede local, metropolitana, sem fio etc. Essas redes são interligadas por redes de longa distância
públicas (por exemplo, a internet) ou privadas. Os provedores fornecem o acesso aos usuários domésticos ou de empresas, sendo
possível a manipulação de arquivos de diversos formatos, como texto, imagem, música, vídeo, além de diversas funções, tais como:
participar de reuniões, fazer ligações a partir de redes telefônicas etc.

Com os avanços de várias áreas, tais como: sistemas embarcados, microeletrônica, comunicação e tecnolo-
gia de informação, surge a Internet das Coisas (IoT) (do inglês Internet of Things), a qual é um sistema
distribuído, com comunicação e coordenação, tornando-a muito interessante. Para Evans (2011, p. 2):


A IoT (Internet of Things, internet das coisas), algumas vezes referida como a Internet
dos objetos, mudará tudo, inclusive nós mesmos. Isso pode parecer uma declaração

46
UNIDADE 2

arrojada, mas considere o impacto que a Internet já teve na educação, na comunicação,


nos negócios, na ciência, no governo e na humanidade. Claramente, a Internet é uma
das criações mais importantes e poderosas de toda a história humana.

Já trabalhamos com os exemplos de internet e Internet das Coisas, agora, podemos pensar nas intranets,
utilizadas por várias empresas e universidades. De acordo com Coulouris et al. (2007), a intranet é
uma parte da internet administrada, separadamente, cujo limite pode ser configurado para adquirir
planos de segurança locais.
As intranets são redes privadas que utilizam, em sua estrutura física e lógica, o modelo de internet.
Porém os serviços de rede, como servidores de arquivos e impressão, servidor web e aplicações são de
uso interno. Elas podem ou não estar ligadas à grande rede, mas seguem o funcionamento de sistemas
distribuídos. Na Figura 3, trazemos a representação de uma intranet típica.

Servidor de
e-mail Computadores
de mesa
Servidores de impressão
e outros

Rede local
Servidor web

Servidor de
e-mail
Impressão
Servidor de
arquivos
Outros servidores
Outras porções
da internet

Roteador/

Figura 3 - Intranet / Fonte: Coulouris et al. (2007, p. 18).

Descrição da Imagem: pelo fato de a intranet ser uma rede local, restrita ao ambiente da empresa, demonstramos, nesta figura, por
meio de uma ilustração, a infraestrutura composta de computadores de mesa ligados na rede, servidores, impressoras e roteador/
firewall. O centro da imagem representa a rede local, que está interligando três computadores de mesa com quatro servidores, sendo:
servidores de impressão, servidor web, servidor de e-mail e servidor de arquivos; No lado direito da figura, temos mais três compu-
tadores interligados (via rede local) com outro servidor de e-mail, uma imagem representando outros servidores e um quadrado
pequeno representando uma impressora; na parte inferior da figura, estão mais três computadores interligados (via rede local) com
um roteador/firewall.

No contexto de sistemas distribuídos, podemos acrescentar a computação móvel e ubíqua. Quando


falamos de computação móvel, nos referimos ao acesso à informação a qualquer lugar, a qualquer

47
UNICESUMAR

momento. Tecnicamente, explicando, estamos trabalhando com o processamento de dados, informa-


ções, mobilidade e dispositivos que utilizam a comunicação sem fio. Como exemplo desses disposi-
tivos, podemos incluir notebooks, smartphones, dispositivos embutidos em geladeiras, micro-ondas,
cafeteiras, carros, robôs, sensores, entre outros.
Quando nos referimos à computação ubíqua ou pervasiva, é a computação que não notamos ou
a qual estamos tão acostumados, que não pensamos que, naquele momento, ocorrem ações computa-
cionais, então, é considerada invisível. Como exemplos, temos os leitores óticos para leitura de código
de barras no supermercado, com dispositivos como etiquetas RFID (Radio Frequency Identification ou
Identificação por Rádio Frequência) ou quando compramos a etiqueta para passarmos em pedágios.
Esta forma de computação está disponível em diversos locais físicos.
A Figura 4 mostra a internet conectada com intranets, temos a representação de diversos equipa-
mentos portáteis: notebook, câmeras, telefones móveis, impressoras que pertencem a uma intranet
chamada anfitriã e diversas comunicações, como sinal de satélite. Todos estes elementos conectando-se
à internet, caracterizando um sistema distribuído.

Internet

Intranet anfitriã
Rede local sem fio Intranet doméstica

Telefone Sinal de satélite GPS


móvel
Rede de telefonia 3g
Impressora
Câmera Notebook Site anfitrião

Figura 4 - Equipamentos portáteis em um sistema distribuído / Fonte: Coulouris et al. (2007, p. 20).

Descrição da Imagem: ilustração que apresenta, no centro, a palavra “Internet”, a qual está se comunicando com uma intranet anfi-
triã, um telefone móvel e uma intranet doméstica. Temos um retângulo tracejado que representa o site anfitrião e, dentro dele, está
a intranet anfitriã ligada a uma impressora e a uma câmera. A intranet anfitriã conecta-se, também, à rede local sem fio, a qual se liga
a um notebook. Ainda dentro do retângulo (site anfitrião), temos o telefone móvel, que pode funcionar por sinal de satélite GPS, ou a
rede de telefonia (estes dois elementos estão fora do site anfitrião). Mais à direita, está a representação da intranet doméstica.

48
UNIDADE 2

Já parou para pensar que as transações bancárias são um exemplo de funcionamento de


sistemas distribuídos?

Frequentemente, os sistemas distribuídos são constituídos por peças complexas de software com
componentes dispersos em múltiplas máquinas. Dessa forma, é necessário que esses sistemas sejam,
devidamente, organizados, de modo a controlar esta complexidade.
Tal organização dos sistemas distribuídos é definida pela arquitetura de software e pela arquitetura
de sistema. Enquanto a arquitetura de software esclarece como os componentes lógicos devem ser
organizados e como devem interagir entre si e os demais componentes, por exemplo, podemos falar
dos serviços e páginas, a arquitetura de sistema fornece a estrutura e a organização dos componentes
físicos, como servidores e roteadores.
Iniciamos a nossa discussão acerca disso analisando os componentes, a interconexão entre eles,
os dados trocados e o modo como são configurados, formando o estilo arquitetônico do sistema
distribuído (TANENBAUM, 2007).
Componente, para Tanenbaum (2007, p. 20), pode ser definido como uma “unidade modular (hard-
ware ou software) com interfaces requeridas e fornecidas, muito bem definidas e que pode ser substituída
a qualquer momento dentro do sistema, sempre respeitando suas interfaces. Os componentes estão lo-
calizados em diversas máquinas”. Outro conceito importante é o do conector, “[...] um mecanismo que
serve de mediador da comunicação ou da cooperação entre componentes” (TANENABAUM, 2007, p. 21).
Com a junção de componentes e conectores, é definida a arquitetura de software e foram defi-
nidos, em especial, quatro estilos arquitetônicos, conforme Tanenbaum (2007), que são: arquitetura
em camadas, arquitetura baseada em objetos, arquitetura centrada em dados e arquitetura
baseada em eventos. Já para as arquiteturas de sistemas, temos as arquiteturas centralizadas,
arquiteturas descentralizadas e arquiteturas híbridas.
Iniciaremos a descrição da arquitetura de software pela arquitetura de camadas. O estilo arqui-
tetônico é formulado em termo dos componentes, ou seja, como eles estão conectados uns aos outros;
como os dados são trocados entre os componentes ou como os componentes são configurados em
conjunto para formar um sistema. Quando nos referimos ao componente, ele é uma unidade modu-
lar — com interfaces requeridas e fornecidas bem definidas — substituível dentro de seu ambiente.
Outro elemento importante é o conector, um mecanismo que serve como mediador da comunicação
ou da cooperação entre componentes. Usando componentes e conectores, podemos chegar a várias
configurações, as quais foram classificadas em estilos arquitetônicos.

49
UNICESUMAR

Camada N Nas arquiteturas em camadas, há uma


hierarquia em camadas que mostram quais
componentes podem ser chamados ou não,
Camada N-1 fazendo com que eles se desloquem a cada
camada. Assim, teremos fluxos de requisição
Fluxo de Fluxo de e resposta diferenciados, conforme apresen-
requisição resposta tado na Figura 5. Este modelo é, amplamente,
adotado pela comunidade de redes.
Figura 5 - Estilo arquitetônico em camadas / Fonte: Ta-
Camada 2 nenbaum (2007, p. 21).

Descrição da Imagem: na figura, por meio de um es-


quema desenhado em retângulos, são mostradas as
diferentes camadas em sua hierarquia, sendo o fluxo
Camada 1 de requisição de cima para baixo, ou seja, da camada
N para a 1, e o fluxo de resposta partindo da camada 1
até a N, passando pelas camadas de baixo para cima.
(a)

Nas arquiteturas baseadas em objetos, estes


representam as definições de componentes, Objeto Objeto
como na Figura 6. Esses componentes são
conectados por meio da chamada de méto-
do remoto, que veremos, com detalhes, nas
Objeto Chamada de
próximas unidades. Mas, fornecendo uma ex-
método
plicação rápida, é o mecanismo que permite
ao usuário chamar os processos os quais serão
executados em um computador diferente da- Objeto
quele que o usuário está usando. A RMI (Cha-
mada de Método Remoto) usa um paradigma Objeto
orientado a objetos cujo usuário precisa co-
nhecer o objeto e o método desse objeto que
ele precisa chamar. Essa arquitetura é utilizada (b)
para sistemas de software de grande porte.
Figura 6 - Estilo arquitetônico que se baseia em objetos / Fonte: Tanenbaum (2007, p. 21).

Descrição da Imagem: a figura mostra, por meio de uma ilustração, cinco retângulos representando os objetos, organizadas como um
círculo. Cada um dos objetos representa um componente e eles são conectados por meio de uma chamada de método remoto, aqui,
na figura, são os componentes e que podem estar em diversas máquinas. No meio desses retângulos, temos a chamada de método, a
qual realiza a conexão. A chamada dos objetos está representada por flechas.

50
UNIDADE 2

A arquitetura centrada em dados é conhecida como espaço de dados compartilhado e parte da


premissa de que os processos se comunicam por meio de um repositório comum (passivo ou ativo),
conforme ilustrado na Figura 7.
Os processos são desacoplados no espaço e, também, no tempo, ou seja, eles não precisam se en-
contrar ativados quando a comunicação iniciar. Os sistemas distribuídos que se baseiam na web, em
grande parte, são centrados em dados.

Coponente Componente

Entrega de dados Publicar

Espeço de dados (persistente)


compartilhado

Figura 7 - Estilo arquitetônico com base em dados compartilhados / Fonte: Tanenbaum (2007, p. 21).

Descrição da Imagem: a figura demonstra, por meio de ilustração, um espaço de dados compartilhados, representado pelo contorno
de uma nuvem ligada a dois retângulos que representam os componentes, os quais não precisam estar acoplados no tempo ou no
espaço. O espaço de dados compartilhado representa a sua comunicação com os componentes, por meio de setas que saem do espaço
em direção aos componentes, na entrega de dados, e setas em sentido duplo, espaço-componentes, quando faz referência a publicar.

Falando nas arquiteturas baseadas em eventos, os processos comunicam-se, essencialmente, por


meio da propagação de eventos, os quais, opcionalmente, podem carregar dados. Nos sistemas distri-
buídos, a propagação de eventos vem, de modo geral, associada com o que conhecemos por publish/
subscribe system. Veremos a representação dessa arquitetura na figura 8. As arquiteturas baseadas em
evento podem ser combinadas com arquitetura centrada em dados.

Componente Componente

Entrega do evento
Barramento de eventos

Publicar
Componente

Figura 8 - Estilo arquitetônico com base em eventos / Fonte: Tanenbaum (2007, p. 21).

Descrição da Imagem: ilustração representando o estilo arquitetônico com base em eventos. Aqui, temos o barramento que se baseia
em eventos (o qual fará a propagação de eventos), representado por uma seta bidirecional, no centro da imagem. Ligado a essa seta, em
cima, há dois retângulos simbolizando os componentes entregues, mas só haverá a entrega dos eventos para os componentes que se
subscreverem. Um processo publica um evento enquanto o middleware garante que alguém estará escutando aquele evento. A grande
vantagem desta arquitetura é que os processos são desacoplados e ocorrem em paralelo, sem depender um do outro.

51
UNICESUMAR

Os modelos de arquitetura de software são muito importantes para sistemas distribuídos, porque ela
baliza a arquitetura de sistema. De acordo com Faina (2013, p. 12), “decidir quais os componentes de
software, suas interações e localizações significa gerar uma instância da Arquitetura de Software”. Dentre
as abordagens dessa arquitetura, as mais utilizadas são: as arquiteturas centralizada, descentralizada e
híbrida, chamadas por Tanenbaum (2007) de arquitetura de sistemas.
Iniciaremos a descrição da arquitetura de sistemas pelas arquiteturas centralizadas. Nestas,
comumente, referidas como modelo cliente-servidor, vários clientes solicitam serviços a um servidor,
mas nada impede que um servidor possa ser cliente de outro que ofereça um serviço. Tanenbaum
(2007) define que processos em um sistema distribuído são divididos em dois grupos distintos: os que
oferecem serviços (servidores) e os que os usam (clientes). Podemos verificar esta estrutura na Figura 9.
Nas arquiteturas no modelo cliente-servidor, alguns serviços e recursos serão compartilhados en-
tre vários usuários que podem ser disponibilizados em um único computador, chamado de servidor
multisserviço, ou em computadores definidos, fazendo com que um serviço ou recurso esteja em um
computador, neste caso, sendo chamado de acordo com os serviços disponibilizados, por exemplo,
servidor web, servidor de autenticação de usuários, entre outros servidores específicos.
Esses servidores estão conectados pelos dispositivos que compõem a rede, possibilitando o acesso
das máquinas-clientes remotas. Funcionam em redes locais, as LANs.
A arquitetura cliente-servidor é muito comum em nosso cotidiano. Um exemplo simples é quando
acessamos um website, por meio do navegador de internet instalado no notebook, ou quando verifi-
camos os nossos e-mails no aplicativo do smartphone, ou, mesmo, quando jogamos um game online
no console de videogame, como podemos ver na Figura 9.

Cliente
Solicitação
Processo
Servidor Servidor Servidor
Resultado
Processo Processo
Resultado
Cliente
Processo

Figura 9 - Arquitetura cliente-servidor / Fonte: Coulouris et al. (2007, p. 44).

Descrição da Imagem: ilustração de um esquema com quatro retângulos simbolizando a arquitetura cliente-servidor. Temos a des-
crição da arquitetura cliente-servidor, com os clientes fazendo uma solicitação ao servidor e recebendo o resultado, e um servidor
comportando-se como cliente, fazendo solicitação e recebendo resultado de outro servidor.

Clientes e servidores espalhados na rede interagem por meio de mensagens do tipo requisição e res-
posta, como ilustrado na Figura 10.

52
UNIDADE 2

Espera resultado
Cliente

Requisição Resposta

Servidor
Fornece o serviço
Tempo

Figura 10 - Comportamento de requisição-resposta / Fonte: Tanenbaum (2007, p. 22).

Descrição da Imagem: a figura traz, por meio de uma ilustração, duas linhas não contínuas em paralelo, a linha de cima denominada
“Cliente” e a linha de baixo denominada “Servidor”, com partes contínuas e partes tracejadas. A parte contínua inicia-se com o cliente
fazendo uma requisição, a qual é simbolizada por uma seta que aponta para baixo até chegar à linha “Servidor”. A partir da ponta da
seta, representa-se a ação do servidor, que é fornecer o serviço, então, neste momento, a linha ”Servidor” torna-se contínua por alguns
centímetros, mostrando que quem trabalha, agora, é o servidor, e a sua linha envia uma seta para cima até a linha “Cliente” com a
resposta, tornando essa linha contínua. Na linha “Cliente”, teremos um espaço tracejado que representa a espera do resultado do
servidor. Ambas as linhas se deslocam conforme o tempo.

Mostrando, em mais detalhes, o comportamento da requisição-resposta, quando o cliente pede um


serviço, isto é, faz a requisição, ele empacota uma mensagem ao servidor, identificando o serviço
desejado e os dados de entrada necessários. O servidor, por sua vez, traz os resultados e os empacota
em resposta ao cliente.
Essa transação seria perfeita se todos os componentes de um sistema funcionassem sem nenhuma
falha, mas podemos ter a transmissão perdida e, assim, o cliente não detecta qual ou quais mensagens
se perderam. Para resolvermos este tipo de falha, os sistemas cliente-servidor usam um protocolo
confiável orientado à conexão.
Como os clientes podem fazer requisições aos servidores, e estes podem fazer requisições a outros
servidores, é possível haver algumas dúvidas sobre quem é cliente e quem é servidor, se analisarmos a
arquitetura cliente-servidor, provendo, assim, o acesso de usuários ao banco de dados. Para Tanenbaum
(2007, p. 23, grifos da autora), esta transação traz três níveis com o estilo arquitetônico em camadas, que
são: “nível de interface do usuário, elaborado em programas que permitam aos usuários finais interagir
com as aplicações, como gerenciamento de exibição; nível de processamento, o qual contém as aplica-
ções; e o nível de dados, que gerencia os dados sobre os quais está sendo executada alguma ação”. Como
exemplo desses três níveis, pensemos no mecanismo de busca na internet, conforme veremos na Figura 11.
Pesquisar algo na internet é uma tarefa corriqueira a todos nós. A fim de entendermos melhor estes
níveis descritos, pensaremos na prática. O primeiro passo é abrirmos um mecanismo de busca, como:
Google, Bing ou Yahoo. Depois de aberto, nós, usuários, estamos inseridos no nível de interface do usuá-
rio, no qual digitamos palavras de nossa busca, por exemplo, digitamos “MEC – Ministério da Educação”.
O segundo passo, apesar de parecer automático a nós, usuários, é a exibição de uma variedade
de páginas da web. Bem, neste passo, há o nível de processamento, que se dá pelas palavras-chave
que digitamos, e faz um rastreamento de conteúdos, então, ao identificar as informações, capturam
o conteúdo e entram no nível de dados, que traz e cadastra links encontrados no seu banco de da-
dos, sendo essa página indexada no site de busca. Como resposta da pesquisa, o buscador apresenta

53
UNICESUMAR

diversas opções dos resultados e, quando as clicamos, seremos enviados para o link construído pelo
mecanismo de busca.

Nível de
Interface do usuário interface do
usuário

Expressão da Página HTML que


palavra-chave contém a lista

Gerador de
HTML
Nível de
Gerador de Lista ordenada processamento
consultas de títulos de
páginas
Algoritmo
Consultas ao banco de ordenação
de dados

Títulos de páginas web


com metainformação Nível de
Banco de dados dados
com páginas web

Figura 11 - Organização simplificada de um mecanismo de busca na internet, em três camadas diferentes / Fonte: Tanenbaum
(2007, p. 24).

Descrição da Imagem: a figura demonstra, por meio de uma ilustração, o que acontece em cada nível de camada. A ilustração é
constituída por camadas separadas por linhas tracejadas no nível de interface de usuário, no alto da figura. Depois, temos o nível de
processamento e, embaixo, o nível de dados. No nível de interface de usuário, há um retângulo com a inscrição “Interface de usuário”
dentro dele. No nível de processamento, há três retângulos e setas. O retângulo à esquerda é o gerador de consultas, o qual recebe da
interface de usuário a expressão da palavra-chave representada por uma seta e faz a consulta ao banco de dados do nível de dados.
No nível de dados, temos o desenho cilíndrico de um banco de dados com páginas web, banco que, após a consulta do gerador de
consultas, emite a resposta, representada por uma seta onde constam os títulos de página web com metainformação. Essa seta do
nível de dados passa ao nível de processamento, interligando o retângulo “Algoritmo de ordenação”, este organiza a lista ordenada
de títulos de páginas e transfere ao retângulo “Gerador de HTML”, o qual, através de uma seta, passa ao usuário as páginas HTML que
contêm a lista, encerrando, assim, o funcionamento de um mecanismo de busca na internet.

A organização mais simples é a de dois tipos específicos: um é a máquina-cliente, que contém,


somente, programas os quais implementam o nível de interface do usuário ou parte desse nível,
o outro tipo é a máquina-servidor, que contém programas os quais implementam os níveis de
processamento e de dados.
Para Tanenbaum (2007), nesta abordagem, praticamente tudo é manipulado pelo servidor, enquan-
to o cliente é, na essência, não mais do que um terminal “burro” com, provavelmente, uma interface
gráfica. Outra abordagem consiste em distribuir os programas na camada de aplicação, conforme
mostrado na Figura 12.

54
UNIDADE 2

Máquina cliente
Interface de Interface de Interface de Interface de Interface de
usuário usuário usuário usuário usuário
Aplicação Aplicação Aplicação
Banco de
dados
Interface
de usuário
Aplicação Aplicação Aplicação
Banco de dados Banco de dados Banco de dados Banco de dados Banco de dados
Máquina servidora
(a) (b) (c) (d) (e)

Figura 12 - Alternativas de organizações cliente-servidor. Figura 12 (a) - Na máquina-cliente, só a parte de interface do usuário;
Figura 12 (b) - Possibilidade de colocar todo software de interface de usuário no lado cliente; Figura 12 (c) - Deslocamento de
parte da aplicação na máquina-cliente e na máquina-servidor; Figura 12 (d) - Quando a máquina-cliente é um computador
pessoal ou uma estação de trabalho conectada por uma rede a um sistema de arquivo distribuído ou a um banco de dados;
Figura 12 (e) - Quando o disco local do cliente contém parte dos dados / Fonte: Tanenbaum (2007, p. 25).

Descrição da Imagem: a figura mostra alternativas de organizações cliente-servidor representados em um esquema. Na Figura 12 (a),
teremos, na máquina-cliente, só a parte de interface do usuário, que é dependente do terminal. As aplicações controlam, remotamente,
a apresentação dos dados. Na Figura 12 (b), é mostrada a possibilidade de colocar todo software de interface de usuário no lado cliente.
Assim sendo, o software cliente não faz nenhum processamento, apenas, os necessários para apresentar à interface da aplicação. Na
Figura 12 (c), deslocamos parte da aplicação na máquina-cliente e na máquina-servidor, por exemplo, um formulário que precisa ser,
completamente, preenchido antes de ser processado. A Figura 12 (d) pode ser usada quando a máquina-cliente é um computador
pessoal ou uma estação de trabalho conectada por uma rede a um sistema de arquivo distribuído ou a um banco de dados. Aqui, a
aplicação é executada na máquina-cliente, porém todas as operações com arquivos ou entrada em banco de dados serão feitas pela
máquina-servidor, por exemplo, algumas transações bancárias. A Figura 12 (e) representa a situação em que o disco local do cliente
contém parte dos dados. Como exemplo, ao consultar a web com o seu browser, um cliente pode construir, aos poucos, um cache
em disco local com páginas web, recentemente, consultadas. Devemos observar que, aqui, mostramos, apenas, as divisões claras em
máquinas-cliente e máquinas-servidor.

Para o gerenciamento de sistemas, Tanenbaum (2007) apresenta as definições de modelo de clientes


gordos (fat clients) e clientes magros (thin clients). Segundo Tanenbaum (2007, p. 25),


no modelo cliente-magro, todo o processamento de aplicação e o gerenciamento de da-
dos é realizado no servidor. O cliente é responsável apenas por executar o software de
apresentação. Para este modelo, o servidor é responsável, apenas, pelo gerenciamento
de dados. O software do cliente implementa a lógica da aplicação e as interações com
o usuário do sistema.

Na Figura 13, trazemos a situação comentada, anteriormente, quando um servidor precisa se tornar
cliente, fazendo requisições a outro servidor e, como exemplo, temos o processamento de transações.

55
UNICESUMAR

Interface de Esperar resultado


usuário
Operação de Retomar
(apresentação)
requisição resultado

Servidor de
aplicação Esperar dados
Requisitar Retornar
dados dados

Servidor de
banco de dados
Tempo

Figura 13 - Servidor que age como cliente / Fonte: Tanenbaum (2007, p. 26).

Descrição da Imagem: nesta figura, representada por linhas tracejadas e setas, há a descrição de um cliente fazendo uma requisição
ao servidor de aplicação, e esse servidor fará a requisição a um servidor de banco de dados. Nesta situação, o servidor de aplicação
comporta-se como cliente do servidor de banco de dados.

Continuando a descrição da arquitetura de sistemas, após entendermos as arquiteturas centraliza-


das, iremos às arquiteturas descentralizadas. Nelas, os componentes não estão mais orientados às
requisições determinadas e todo o processamento é executado de forma distribuída, assim, os recursos
compartilhados são replicados nos sistemas de cada usuário. Outra característica é colocar componentes
logicamente diferentes em máquinas diferentes.
Segundo Coulouris et al. (2007), a existência da arquitetura par a par é uma consequência do
crescimento rápido da internet, constituída por milhões de computadores e usuários, abrindo acesso
a recursos compartilhados.
Podemos utilizar as arquiteturas multicamadas do modelo cliente-servidor, as quais são uma
consequência direta da divisão de aplicações em interface do usuário, em componente de processamento
e nível de dados. Como exemplo, temos a distribuição do processamento, que é equivalente a organizar
a aplicação cliente-servidor em arquitetura multicamada, prática conhecida por distribuição vertical.
Há a possibilidade de o cliente ou o servidor ser dividido em partes logicamente equivalentes
e, assim, cada parte operar no seu próprio conjunto de dados, a distribuição é horizontal e, temos,
como exemplo, a arquitetura par a par (P2P). Nesse contexto, na arquitetura par a par ou peer-to-
-peer (P2P), não existe nem um ponto central de coordenação, nem um banco de dados centralizado,
minimizando os problemas de pontos únicos de falhas, porém há a vantagem de nenhum dos pares
possuir uma visão global do sistema.
Os pares são autônomos e podem acessar qualquer outro par, fazendo com que cada um dos
elementos da rede par a par trabalhe, ao mesmo tempo, como cliente e servidor. Um dos problemas
identificados na arquitetura peer-to-peer é quanto à segurança.
Tanenbaum (2007) classifica a arquitetura peer-to-peer em dois tipos básicos: a estruturada e a
não estruturada. Na arquitetura par a par estruturada, a rede de sobreposição — uma rede lógica na

56
UNIDADE 2

qual todo processo tem uma lista de outros pares os quais ele tem permissão para se comunicar — é
construída com a utilização de um procedimento determinístico e, para isso, normalmente, é usada
uma tabela de hash distribuída. Na arquitetura par a par não estruturada, a rede de sobreposição é
aleatória, necessitando disponibilizar algoritmos de busca, a fim de localizar dados ou outros processos.
Conforme apresentado na Figura 14, um exemplo de uma arquitetura par a par é o Napster, usado
para o compartilhamento de músicas, o bitTorrent, empregado na distribuição de arquivos, o streaming
ou o VoIP (Skype).



 








Figura 14 - Arquitetura P2P estruturada / Fonte: Brito e Moura (2005, p. 21).

Descrição da Imagem: a figura mostra, por meio de uma ilustração, sete computadores ligados em rede, demonstrando a arquitetura
par a par (P2P), onde temos as máquinas e o processamento é feito de forma distribuída.

Por fim, apresentaremos, na arquitetura de sistemas, as arquiteturas híbridas, que utilizam modelo clien-
te-servidor combinadas com arquiteturas descentralizadas. O princípio desta combinação é de o modelo
cliente-servidor ser utilizado para os nós se conectarem ao sistema, depois, utilizam esquema descentralizado.
Neste caso, destacam-se os sistemas de servidor de borda e os sistemas distribuídos colaborativos.
Compreendidos os tipos de arquitetura, agora, iniciaremos com os sistemas de servidor de borda,
os quais são sistemas disponibilizados na internet cujos servidores são colocados na “borda”’ da rede.
Tal servidor, em um contexto de administração do sistema, é aquele que reside na borda entre duas
redes, geralmente, uma rede privada e a internet. Tanenbaum (2007) traz, a título de exemplo, o modo
como os provedores de serviços de internet realizam o seu fornecimento. As suas funções são: servir
conteúdo e otimizar a distribuição de conteúdo e de aplicação. A representação disso está na Figura 15.

57
UNICESUMAR

Cliente
Provedor de conteúdo

ISP
ISP

Internet núcleo
Servidos de borda Rede corporativa

Figura 15 - Visão da internet como rede composta por um conjunto de servidores de borda / Fonte: Tanenbaum (2007, p. 31).

Descrição da Imagem: a figura mostra, no centro, a ilustração de uma nuvem que representa a internet. Acima da nuvem, temos, do
lado esquerdo, outra pequena nuvem com um pequeno quadrado cinza, que representa um ISP (Internet Service Provider) ou provedor
de serviços da internet. Saindo dessa pequena nuvem, há três quadrados brancos representando os clientes. No centro, acima da in-
ternet, está o provedor de conteúdos representado por uma seta bidirecional, e um servidor de borda representado como um pequeno
quadrado cinza, o qual fará a distribuição dos conteúdos por meio de setas saindo do servidor de conteúdos para os ISPs, “Servidores
de borda” e “Rede corporativa”. Os servidores de borda são a fronteira entre a rede corporativa e a internet.

Já nos sistemas distribuídos colaborativos, o principal objetivo é iniciar a troca de informações. A


questão principal em muitos desses sistemas é conseguir dar a partida, para o que, muitas vezes, é dis-
ponibilizado como um modelo cliente-servidor tradicional. Após a adição do nó na rede, a distribuição
dos dados é feita de forma descentralizada, a título de exemplo, podemos trazer o compartilhamento
de arquivos BitTorrent. Este refere-se à arquitetura par a par de transferência (download) de arquivos,
conforme a Figura 16.
O BitTorrent nada mais é do que um sistema que permite o compartilhamento de, praticamente,
qualquer arquivo pela internet, sendo utilizado, na maioria das vezes, na distribuição de vídeos, músi-
cas e softwares. O BitTorrent não é um sistema centralizado, mas um protocolo de compartilhamento
de dados. Ao invés de um servidor provendo os dados, há um padrão de comunicação entre vários
computadores, permitindo a localização, a distribuição e a aquisição dos arquivos por todos os usuários.
Quanto ao BitTorrent, quando um usuário final estiver procurando um arquivo, ele também poderá
transferir porções a outros usuários, assim, cria-se um conjunto de partes sendo transferidas. Estamos
trabalhando com a colaboração, o desafio é quando existe grande quantidade de usuários objetivan-
do, apenas, obter os arquivos. Portanto, um arquivo só pode ser transferido quando o cliente que está
transferindo estiver fornecendo conteúdo a mais alguém. Como exemplo, temos plataformas baseadas
em blockchain, como o Bitcoin.

58
UNIDADE 2

Nó cliente
K de N nós

Nó 1


Nó 2
Uma página Arquivo .torrent Lista de nós que
WebBitTorrent Ref a para F Ref. a armazenam F
servidor rastreador
Servidor web de arquivo Servidor de arquivo Rastreador

Nó 3

Figura 16 - Funcionamento principal do BitTorrent / Fonte: Tanenbaum (2007, p. 32).

Descrição da Imagem: a figura mostra, por meio de uma ilustração, o funcionamento do BitTorrent, representando os nós por meio
de círculos e os servidores (web e de arquivo e o rastreador) por meio de retângulos. No BitTorrent, quando um arquivo está sendo
baixado para um computador (nós), “pedacinhos” dele são obtidos de várias outras máquinas, simultaneamente, não, apenas, de uma,
até que esses pedacinhos possam ser montados em conjunto, resultando no arquivo completo. No alto da figura, temos o nó cliente
(um círculo) com uma seta apontando para baixo, para o termo “Servidor web” e, dentro desse servidor, temos uma página web Bit-
Torrent. A seguir, vemos uma seta saindo do servidor web e indo em direção ao servidor de arquivo onde se encontra o arquivo que
será compartilhado, o .torrent, este direciona uma seta para o servidor rastreador, que contém a lista de nós (computadores) os quais
estão compondo aquele arquivo. O nó cliente recebe dos outros nós uma seta, pois o nó cliente está iniciando o ciclo de procura de
um arquivo e, ao mesmo tempo, transferindo conteúdo a outros nós.

Após conhecermos as arquiteturas centralizada, descentralizada e híbrida, podemos constatar que os


sistemas distribuídos são utilizados na arquitetura cliente-servidor, com o compartilhamento de recur-
sos os quais poderão ser de hardware ou software. Afinal, quando abrimos um navegador e acessamos
uma página da internet, estamos trabalhando com o modelo cliente-servidor.
Avançando em nossa disciplina, podemos ter dois tipos de sistemas distribuídos, a computação
em cluster (cluster computing) e a computação em grade (grid computing). Veremos ambos os
tipos para entendermos, um pouco mais, os sistemas distribuídos.
Clusters são grupos de computadores configurados com o objetivo de trabalhar em conjunto com
aplicações específicas. O modo como são configurados dá a impressão de serem um único computador
(FERREIRA, 2008). A estrutura e o agrupamento de computadores pode ser definida como:


Estrutura de agrupamento de computadores ou clusters apresenta vantagens competitivas
em relação aos ambientes multiprocessados de memória compartilhada (computadores
com diversos processadores em uma placa-mãe), permitindo que o acréscimo de com-
putadores torne o sistema mais rápido, possuindo componentes de fácil disponibilidade
e manutenção (PITANGA, 2008, p. 10).

59
UNICESUMAR

Um exemplo de um computador de clusters é o Beowulf, uma categoria de multicomputador que pode


ser utilizada para computações paralelas. Normalmente, ele é composto por um nó (máquina) servi-
dor e um ou mais nós (máquinas) clientes conectados via rede. É construído com hardware comum,
como qualquer computador capaz de operar com Linux, placa de rede padrão Ethernet e switches.
Para esta classe, não é utilizado nenhum hardware feito sob encomenda, além de ela ser, facilmente,
reproduzível (FERREIRA, 2008).
Quando distribuímos os computadores (ou máquinas ou nós), identificamos uma delas como
sendo o nó mestre, cuja função é o gerenciamento dos outros nós. É ele que faz a comunicação com o
usuário. É O nó mestre ou o nó principal que controla o cluster a partir da distribuição de tarefas, do
monitoramento e dos procedimentos relacionados.

Nó mestre Nó de computação Nó de computação Nó de computação

Aplicação de Componente Componente Componente


gerenciamento da da da
aplicação aplicação aplicação
Bibliotecas paralela paralela paralela
paralelas

SO local SO local SO local SO local

Redes de Rede padrão


acesso remoto
Rede de alta velocidade

Figura 17 - Exemplo de um sistema computacional de cluster / Fonte: Tanenbaum (2007, p. 10).

Descrição da Imagem: a figura mostra um esquema representando um sistema computacional de cluster. São quatro retângulos,
todos eles ligados a uma linha que passa embaixo deles (representando as redes). O primeiro, vinculado à rede de acesso remoto, é o
nó mestre, com aplicação de gerenciamento, bibliotecas paralelas e SO local; os demais são os nós de computação, com componente
da aplicação paralela e SO local, vinculados à rede padrão e à rede de alta velocidade, e o terceiro nó de computação é interligado aos
demais por linhas pontilhadas.

Já na computação em grade (grid computing), temos uma infraestrutura de hardware e software


capaz de prover, com baixo custo, consistência e previsibilidade à computação de alto desempenho
(FOSTER et al., 2002).


O termo grade (grid) é usado para se referir ao middleware projetado para permitir o
compartilhamento de recursos como arquivos, computadores, software, dados e sen-
sores em uma escala muito grande. Normalmente, os recursos são compartilhados por
grupos de usuários em diferentes organizações, os quais estão colaborando na solução
de problemas que exigem grandes números de computadores para resolvê-los, pelo
compartilhamento de dados ou pelo compartilhamento de poder de computação
(COULORIS et al., 2007, p. 426).

60
UNIDADE 2

A constituição da computação em grade é composta por quatro camadas: camada base, camada de
conectividade, camada de recursos, camada coletiva e camada de aplicação, e cada uma tem
funções específicas.

A camada base traz recursos para o funcionamento de uma empresa virtual, por
meio do compartilhamento de recursos, e tem o poder de dar seguimento ou não às
solicitações (travamento). A camada de conectividade tem recursos de segurança,
podendo autenticar usuários. A camada de recursos faz o papel de controlar o aces-
so, depois de ele ser autenticado pela camada anterior. A camada coletiva gerencia
os acessos a recursos, possuindo inúmeros protocolos. A camada de aplicação
executa as aplicações dentro da empresa que utiliza a computação grid.

Na Figura 18, demonstraremos a arquitetura em camadas para sistemas de computação em grade.

Aplicações

Camada coletiva

Camada de conectividade Camada de recurso

Camada base

Figura 18 - Arquitetura em camadas para sistemas de computação em grade / Fonte: Tanenbaum (2007, p. 10).

Descrição da Imagem: a figura traz a arquitetura aos sistemas em grade. Representaremos as quatro camadas e as aplicações por
meio de retângulos estruturados em quatro níveis. A camada de aplicações é a camada mais alta, com uma seta para indicar o caminho
à segunda camada, a qual é a camada coletiva. Esta tem duas setas para baixo, conectando às camadas de conectividade e de recurso
que, por sua vez, estão unidas por uma linha e localizam-se na terceira camada. No fim da figura, a quarta camada, localizada de cima
para baixo, corresponde à camada base e recebe duas setas da terceira camada.

Temos diversas possibilidades em organizar sistemas distribuídos. A arquitetura de sistemas considera


onde os componentes que constituem um sistema distribuídos estão colocados nas várias máquinas.
A arquitetura de software foca na organização lógica do software, ou seja, como os componentes
interagem, de que modo eles podem ser estruturados, entre outros.

61
UNICESUMAR

Os sistemas distribuídos têm três objetivos principais: compartilhamento de recursos, desem-


penho e confiabilidade.
(Andrew S. Tanenbaum e Maarten Van Steen)

Refletiremos sobre algumas vantagens de utilizarmos os sistemas distribuídos. Quando falamos de com-
partilhamento de recursos, devemos recordar que é um dos fundamentos de rede de computadores e,
também, é muito importante em sistemas distribuídos. Lembrando que o compartilhamento de recursos
é a capacidade do sistema em compartilhar o acesso a quaisquer recursos utilizados pelos sistemas entre
as máquinas (ou nós) que fazem parte da arquitetura trabalhada. Dentre esses recursos, podemos citar
bancos de dados, links de rede que se conectam à internet, serviços de autenticação e de buscas.
Dentre as vantagens em compartilhar recursos, citamos a questão financeira, com menos infraestru-
tura, já a desvantagem reside na segurança, pois as máquinas têm mais pontos de acesso, tornando-se
vulneráveis a hackers.
Sistemas distribuídos foram projetados para aumentar o desempenho de um sistema. O comporta-
mento de um sistema distribuído é mais eficaz do que nos sistemas centralizados, e isso só é possível
porque, em um sistema distribuído, temos múltiplas instâncias, tanto de hardware quanto de software,
para realizar o processamento necessário. A fim de medirmos esse desempenho, Colouris et al. (2007,
p. 83) nos trazem a possibilidade de utilizarmos como parâmetros.

“Tempo de resposta do servidor; Throughput (taxa de transferência); Quantidade de


recursos consumidos pela rede; Resultados de benchmarks (execução do sistema) e
Tempo de transmissão dos dados”.

62
UNIDADE 2

Por meio desses parâmetros, podemos ter uma noção clara do desempenho de um sistema distribuído.
Quando trazemos a confiabilidade (reliability, em inglês) em sistemas distribuídos, estamos nos
referindo à propriedade com que um sistema operará sem falhas. Um sistema confiável é aquele que
funciona, continuamente, sem interrupção durante um longo período de tempo. Como afirmam
Coulouris et al. (2007), todos os sistemas de computador podem falhar, sendo responsabilidade dos
projetistas do sistema pensar nas consequências das possíveis falhas.
Nos sistemas distribuídos, as falhas são notadas de forma diferente, pois a distribuição indepen-
dente deixa partes da rede, ainda, em funcionamento. Por sua importância em sistemas distribuídos,
traremos, diversas vezes, a confiabilidade aos nossos estudos.

Vamos conhecer um pouco mais dos sistemas computacionais e os


caminhos encontrados até chegarmos aos sistemas distribuídos? Dê
o play em nosso podcast!

Nesta unidade, falamos de arquitetura dos sistemas computacionais e das suas possibilidades dentro
de sistemas distribuídos. Estas definições descrevem ações do nosso cotidiano, tais como: acessar uma
página na internet, depois de acessarmos um mecanismo de busca, como Google, Yahoo ou Bing. São
por meio dessas arquiteturas que conseguimos jogar online com os nossos amigos, postar em nossas
redes sociais e fazer compras no e-commerce. Elas são compostas por hardware e software, a fim de
que a resposta recebida por nós, usuários, seja rápida e satisfatória.
Agora que vimos tudo isso, volte ao início de nossa unidade e pense na solução que poderíamos
apresentar à Med& Med S.A. Você deve saber, a esta altura, que a melhor hipótese seria sugerir a uti-
lização de um sistema.
Para a Med&Med S.A., sugerimos a utilização de um sistema centralizado, no modelo cliente/servi-
dor, onde podemos trabalhar com um servidor no centro da rede. Uma das vantagens é a possibilidade
de remover ou adicionar clientes sem prejuízo do funcionamento da rede.
No sistema centralizado, temos mais segurança do que nos sistemas distribuídos. Apesar de termos
arquiteturas mais modernas, sempre devemos ver a arquitetura adequada. Para a empresa citada, mini-
mizaremos os problemas de acesso e os ataques hackers, o que já demonstra boa solução de problemas.

63
Agora, convido você a realizar um Mapa Mental com os temas principais, aqui, abordados. Dei-
xarei algumas palavras-chave para começar, e o restante é contigo!

Sistemas
computacionais

Centralizado Paralelo

64
1. Segundo Foster et al. (2002), uma grade computacional é uma infraestrutura de har-
dware e software capaz de prover, com baixo custo, consistência e previsibilidade à
computação de alto desempenho. Na ____________________, temos muita heterogenei-
dade, diferentes hardwares, softwares, tecnologia de rede empregada e diferentes
domínios administrativos.

A palavra que completa, corretamente, a lacuna é:

a) Computação em cluster.
b) Computação em grade.
c) Computação em rede.
d) Computação em cliente.
e) Computação em servidor.

2. No ambiente de rede, quando o usuário inicia uma requisição, ela pode se referenciar
a recursos de outros servidores. Leia o trecho, a seguir, e assinale a alternativa correta
que apresenta a palavra correta ao preenchimento da lacuna:

Na arquitetura ____________________, teremos alguns serviços e recursos a serem com-


partilhados com vários usuários e que podem ser disponibilizados em um único com-
putador — sendo chamados de servidores multisserviço — ou segregados, portanto,
nomeados de acordo com os serviços disponibilizados (por exemplo, servidor de banco
de dados, servidor de autenticação de usuários etc.).

A palavra que completa, corretamente, a lacuna é:

a) Cliente-servidor.
b) Ponto a ponto.
c) Descentralizada.
d) Hipercentralizada.
e) Servidor-rede.

3. Dentre as vantagens da arquitetura cliente-servidor, é possível remover ou adicionar


clientes sem prejuízo ao funcionamento da rede. Sobre a arquitetura cliente-servidor,
podemos definir que:
a) Devemos utilizar as melhores tecnologias para ela funcionar.
b) A programação mais robusta ocorre no computador servidor, tornando os computa-
dores-cliente mais leves.
c) Somente os computadores-cliente executam e fornecem os bancos de dados para
toda a rede.
d) Os computadores-servidores têm capacidade muito menor do que os computadores-clientes.
e) Os computadores-servidores sempre são máquinas virtuais.

65
66
3
Processos e
Comunicação em
Redes e em Sistemas
Distribuídos
Me. Adriane Loper

Olá! Nesta unidade, aprenderemos os conceitos dos processos


e a comunicação que envolvem as redes de computadores e os
sistemas distribuídos. Na comunicação entre máquinas, temos al-
guns elementos fundamentais à sua realização. Compreenderemos
a parte importante da comunicação, que são as regras para que
ela aconteça, os chamados protocolos. Para isso, retomaremos
conhecimentos sobre o modelo de referência OSI (Open System In-
terconnection), modelo cliente-servidor que visa à comunicação de
forma adequada para, nós, usuários, quando quisermos fazer, por
exemplo, uma pesquisa na internet. Vamos aprender?
UNICESUMAR

Desde pequenos, aprendemos a comunicarmo-nos, primeiro, com nossos pais e cuidadores, primitiva-
mente, depois, de forma mais ampla, por meio de metodologias escolares. Com o tempo, aprendemos
novas línguas e aperfeiçoamo-nos na arte da comunicação.
Quando falamos em comunicação, referimo-nos às tarefas simples de nosso cotidiano, como um
simples diálogo entre duas pessoas, por meio de um smartphone. Para que essa comunicação se efetue,
precisamos de alguns componentes: um transmissor (no exemplo, é a pessoa que fala); um receptor (a
pessoa que ouve); uma troca de mensagens (é a conversa em si); essa troca deve ser conduzida através
de um canal de comunicação; e a conversa deve obedecer a algum protocolo de comunicação, por
exemplo, o acordo de que, quando um fala, o outro ouve, ou que as pessoas conversem no mesmo
idioma. E assim se concretiza a comunicação.
A fim de entendermos esta prática, montaremos um sistema hipotético de comunicação entre
máquinas. Em termos simples, lembre-se que estes sistemas são constituídos das seguintes partes: a
mensagem, o transmissor, o receptor, o meio e os protocolos.

 
 
 

 



 

  




Figura 1 - Sistema básico de comunicação / Fonte: Souza ([2021], on-line).

Descrição da Imagem: a figura apresenta, por meio de uma ilustração, dois computadores conectados por um fio. À esquerda, está
um computador denominado “Transmissor”. Em cima dele, há uma mensagem com os termos “Passo 1:”, “Passo 2:” e “Passo 3:”, essa
mensagem é denominada “Protocolo”. No meio da figura, há um fio negro denominado “Meio”. Em cima desse fio está um retângulo
azul denominado “Mensagem”, atravessado por uma seta vermelha que vai do primeiro computador em direção ao segundo. À direita,
está um computador denominado “Receptor”, o qual recebe a mensagem e, em cima dele, há uma mensagem com os termos “Passo
1:”, “Passo 2:” e “Passo 3:”, essa mensagem é denominada “Protocolo”.

Não, apenas, as pessoas, mas os animais e as plantas também se comunicam e, graças ao desenvolvi-
mento tecnológico, criamos ferramentas e objetos que podem se comunicar entre si! Por exemplo, os
computadores, por meio da internet. Eles trabalham de forma tão eficiente que, hoje, basta darmos um
clique em um navegador e digitarmos algumas letras que estamos onde queremos. Este “transporte”
realizado em direção ao mundo virtual, como é feito? Pensando no universo computacional, como
as máquinas se comunicam? De que modo a informação (endereço) a qual digitamos é entendida e
produz os resultados desejados?

68
UNIDADE 3

Esta atividade simples de abrir o nosso computador e digitarmos algo em um buscador ocorre
porque aperfeiçoamos as redes de computadores e trabalhamos com sistemas distribuídos. Vamos nos
aprofundar um pouco mais na comunicação entre máquinas?
Estamos trabalhando com a comunicação. No passado, ela era resumida às palavras, aos gestos e
sinais. Hoje, temos a tecnologia para ampliar essa comunicação.
A tecnologia facilitou a arte da comunicação. Atualmente, conseguimos realizá-la online e com
qualquer pessoa ou lugar do mundo, para isso, basta pegarmos o nosso celular ou o nosso computador.
A tecnologia evoluiu e surgiram as redes de computadores as quais, a princípio, limitavam-se a poucos
aparelhos conectados que, posteriormente, conectaram-se a diversos computadores. Para ampliar essa
rede, temos os sistemas distribuídos que associam inúmeras máquinas a configurações distintas, então,
passa-se a impressão de o computador estar trabalhando, apenas, para nós.
Com o intuito de compreendermos, um pouco, como a tecnologia nos auxilia, pensaremos na
comunicação que é feita pela troca de mensagens. Imagine que conhecemos um amigo na China, mas
não falamos chinês, precisamos de um tradutor. O processo entre as máquinas dá-se de modo muito
parecido e, entre elas, esse “tradutor” chama-se protocolo. Pensando, ainda, em nosso amigo chinês, ele
veio te conhecer, aqui, no Brasil, mas há o problema da comunicação. Vamos resolver isso e entender
como os computadores trabalham?
Você buscará o seu amigo no aeroporto e, para resolver a comunicação, levará uma intérprete
bilíngue (português-chinês). Quando o seu amigo chegar, estará tudo resolvido e vocês, com o auxílio
da intérprete, conversarão muito. Então, iremos à parte técnica, os protocolos: estes são dois, entre
você e a intérprete e entre ela e o seu amigo chinês; as camadas: as quais são três, você, a intérprete e
o amigo chinês; o serviço: a tradução de português para chinês e de chinês para português.
Esclarecendo um pouco, trabalharemos com os protocolos, que são o conjunto de regras as quais
administram a comunicação entre as camadas. O protocolo pode sofrer alteração desde que os servi-
ços não sejam alterados. Os serviços são conjuntos de operações que chamamos de primitivas, nas
quais cada camada oferece a sua camada superior. Nos serviços, não há a informação de como essas
operações são implementadas (FOROUZAN, 2008).
Quando nos referimos à comunicação em um sistema distribuído, precisamos compreender que ela
percorre redes. Um aspecto importante a ser trabalhado é a segurança dessas mensagens, principalmente,
quanto ao emissor e ao receptor delas. Aprofundaremos, um pouco mais, nas comunicações, nesta unidade.
Com base no seu conhecimento das necessidades para formarmos o nosso sistema distribuído,
podemos agrupar essas informações a serem transmitidas a um cliente da startup hipotética, com
todas as características de um sistema distribuído.
Faremos uma apresentação à Empresa Super S.A., que trabalha com uma rede de supermercados.
A empresa cresceu nos últimos anos e precisa organizar as suas redes internas (intranets), a fim de
fortalecer como rede de supermercados, já pensando em expansão para diferentes lugares do Brasil. Na
intranet do mercado, circulam informações com o histórico desde a inauguração do primeiro mercado
até o último hipermercado inaugurado mês passado, além de clientes, listas de preços, concorrentes,
entre outras informações importantes em relação ao trabalhador e à empresa, por exemplo, o controle

69
UNICESUMAR

de férias e das entradas para o trabalho. Com vistas a que tudo isso funcione bem, deve haver comu-
nicação entre as máquinas. Portanto, teremos que mostrar como elas comunicam-se tanto nas redes
de computadores quanto em um sistema distribuído.
Se você se encontrasse nesta situação, o que você mostraria a respeito das possibilidades de comu-
nicação entre computadores, e como comporia a boa comunicação entre as máquinas para melhorar
as comunicações entre as lojas que serão implantadas na rede de supermercados?
Agora que você pensou em algumas possibilidades, escreva, no Diário de Bordo, quais ideias aplicaria
à startup para resolver o questionamento, anteriormente, apresentado. Que tal descrever as possibili-
dades de comunicação bem como os seus protocolos, para implantarmos na rede de supermercados?

DIÁRIO DE BORDO

70
UNIDADE 3

Quando analisamos os princípios da comunicação de dados, uma das finalidades principais da rede
não era, apenas, o compartilhamento de recursos, como discos, impressoras ou arquivos. A expressiva
vantagem do uso da rede era a comunicação de dados bem como a troca de mensagens entre os usuários.
Os sistemas de correio eletrônico foram o auge depois da efetivação das redes de computadores, até
atingirmos a internet, a qual trouxe mudanças na cultura organizacional com as possibilidades online.
Mas será que todas as comunicações são perfeitas e totais? Não, nem sempre temos todos os recur-
sos disponíveis. Entenderemos, portanto, essas comunicações entre as máquinas. Com o objetivo de
termos um sistema de comunicação eficiente de dados em redes de computadores, devemos ater-nos
a três características fundamentais, que são: a entrega, a confiabilidade e o tempo de atraso. Vamos
entender um pouco mais essas características?
Quando falamos em entrega, os dados têm precisam direcionados ao destino certo. Somente receberá
os dados o dispositivo ou usuário final, a quem foram destinados esses dados. A confiabilidade ocorre
quando os dados não são modificados, alterados ou corrompidos em uma transmissão, tornando-se,
assim, confiáveis. Quanto ao tempo de atraso, este é um fator crucial, pois os dados vindos de qualquer
sistema devem ter o seu tempo finito e necessita ser cumprido para não termos atrasos importantes.
Iniciaremos detalhando os cinco componentes de um sistema básico de comunicação de dados:
mensagem, transmissor, receptor, meio e protocolos, como apresentado na Figura 2.

Estação de trabalho Modem Canal Modem Servidor

Mensagem Mensagem
Transmissor Meio Receptor
original enviada

Protocolos

Figura 2 - Sistema de comunicação entre estação de trabalho e servidor / Fonte: Ribeiro-Santos (2016, p. 62).

Descrição da Imagem: figura representativa de um sistema de comunicação, representando as partes distintas detalhadas entre uma
estação de trabalho e um servidor. Tem-se a ilustração de um computador que significa a estação de trabalho, ligado a um modem.
Um canal conecta os dois a outro modem e a um servidor. Embaixo das ilustrações, temos os protocolos relativos a cada uma das
representações: mensagem original, transmissor, meio, receptor e mensagem emitida.

71
UNICESUMAR

Nesta figura, mostramos uma estação de trabalho onde está a mensagem original,
ou seja, a mensagem que será transmitida por um modem que representa o trans-
missor. Para que ela chegue ao servidor, necessitamos de um canal. A fim de haver a
compreensão dessa mensagem, ela passará, novamente, por outro modem, que será
chamado de receptor, o qual transmitirá a mensagem emitida para o servidor. Assim
completa-se o ciclo da mensagem original transmitida até o seu destino, o servidor.
Com o intuito de todos os equipamentos comunicarem-se, temos os protocolos.
Explicaremos os componentes, com detalhes, iniciando pela mensagem, a qual
pode ser definida como uma informação a ser transmitida pelo usuário. Ela é
classificada em analógica e digital. Em seguida, definiremos transmissor, receptor,
meio e protocolos.
Mensagens analógicas: nelas, há variação em relação ao tempo, de forma contí-
nua, por exemplo, a nossa fala, uma foto, a posição de um avião em latitude e longitude.
Mensagens digitais: têm, como característica, uma sequência, em ordem, de
símbolos, com um número finito de elementos, por exemplo, mensagens digitais são
as letras de um texto, as teclas do computador, uma sequência de bits 0 e 1.
Transmissor: também pode ser chamado de emissor e é um equipamento que
faz o envio da mensagem de dados. Como exemplo desse transmissor, podemos citar
um computador ou um telefone.
Receptor: trata-se do dispositivo usado para fazer o recebimento da mensagem de
dados. Como exemplo desse receptor, podemos citar um computador ou um telefone.
Meio: é o caminho físico por onde a mensagem é transportada ao receptor.
Protocolos: são conjuntos de regras que fazem a governança da comunicação
de dados, com a finalidade de permitir que os dispositivos se comuniquem, são as
regras aceitas pelos dispositivos. Para todas as ações na rede de computadores, utili-
zamos protocolos, a fim de estabelecer a comunicação entre as partes da rede. Essa
comunicação ou mensagem de um computador a outro pode ser dividida e chamada
de pacotes, os quais são grupos ou sequências de bits ou bytes com uma estrutura.
Protocolos definem tanto o formato quanto a ordem das mensagens, sempre que en-
viadas ou recebidas pelas máquinas da rede, e determinam as ações a serem tomadas
tanto na transmissão quanto na recepção das mensagens.
Segundo Kurose e Ross (2014), pode-se corresponder a comunicação entre pessoas
e máquinas, conforme mostra a Figura 3.

72
UNIDADE 3

 

   

 



 
 
 
  

 



 


   

Figura 3 - Comunicação entre protocolos humanos e máquina / Fonte: adaptada de Kurose e Ross (2014).

Descrição da Imagem: a figura mostra duas ilustrações que exemplificam a comunicação entre humano e máquina. No primeiro
esquema, à esquerda, há as ilustrações de uma silhueta feminina e de uma silhueta masculina, ambos conversam com um padrão
de linguagem (em português), a mulher diz “Oi” e pergunta as horas, ao passo que o homem responde ”Oi” e que são duas horas. No
segundo esquema, à direita, temos a representação de duas máquinas cuja primeira solicita uma conexão TCP, a segunda responde à
conexão, ao passo que a outra recebe o endereço e a outra máquina encaminha o arquivo.

Podemos observar que cada pessoa obedece a uma sequência em relação ao tempo, onde cada um
tem a sua ordem no protocolo. No primeiro esquema apresentado na Figura 3, há duas máquinas e a
comunicação delas assemelha-se a dos seres humanos. Pensaremos na comunicação cliente-servidor:
na figura, a primeira máquina será a máquina-cliente e a segunda será a máquina-servidor.
A comunicação sempre é iniciada pela máquina-cliente. Ela necessita de um serviço, neste exemplo,
é a leitura dos dados de um arquivo, então, a máquina-cliente envia uma mensagem à máquina-servidor
e espera pela mensagem de resposta. A máquina-servidor, após realizar a tarefa requisitada, envia o
resultado, na forma de uma mensagem de resposta, à máquina-cliente. Note que os servidores, em um
sistema deste tipo, apenas respondem às requisições dos clientes.
Em uma rede de computadores, a comunicação entre dois aparelhos também obedece a uma
sequência em relação ao tempo, onde cada um tem a sua ordem no protocolo. O primeiro compu-
tador solicita uma comunicação TCP (Transmission Control Protocol) e o segundo computador
dá a resposta da conexão. O computador faz uma solicitação pelo método GET do endereço URL
e determinado arquivo é acessado.
Por meio da Figura 3, percebe-se que os protocolos de redes funcionam de maneira semelhante à
conversa entre duas pessoas. Devemos incluir, neste raciocínio, algumas abstrações, como o fato de

73
UNICESUMAR

o ser humano compreender alguns fatores, por exemplo, há certa compreensão da língua espanhola
entre os brasileiros, porém as máquinas são exatas, não fazem essas abstrações e, quando falamos de
redes, estamos nos referindo a hardware e software.
A transmissão de dados consiste no processo de envio de dados de uma origem a um destino. Para
isso, é necessário definir os endereços específicos aos destinos. Esses endereços são utilizados pelas
camadas para identificar as transmissões e as recepções. A transferência de dados é muito importante e
preocupante e pode ocorrer de três modos: em apenas um sentido, em dois sentidos de forma alternada
e nos dois sentidos. Kurose e Ross (2014) oferecem as seguintes definições:
No modo simplex, a comunicação dá-se em um único sentido. Como mostra a Figura 4, o com-
putador emite a mensagem e a impressora a recebe.

WRT300N
ROTEADOR

PC-PT PRINTER-PT
COMPUTADOR IMPRESSORA

DIREÇÃO DOS DADOS

Figura 4 - Modo simplex / Fonte: a autora.

Descrição da Imagem: a figura demonstra, por meio de uma ilustração, a direção dos dados na comunicação simplex, esta possui um
sentido único, que vai do computador, à esquerda, para o roteador, ao centro, e para a impressora, à direita.

No modo half-duplex, a comunicação pode acontecer de forma alternada em um mesmo canal, ou


se está transmitindo ou recebendo, porém, nunca, simultaneamente. Podemos ver isso na Figura 5.

Hub-PT
Hub

PC-PT PC-PT
Computador - 01 Computador - 03

PC-PT
Computador - 02

DIREÇÃO DOS DADOS

Figura 5 - Modo half-duplex / Fonte: a autora.

Descrição da Imagem: a figura representa, por meio de uma ilustração, um hub interligado a três computadores, sendo eles chamados
de “Computador 1”, “Computador 2” e “Computador 3”. Esta figura demonstra a direção dos dados na comunicação half-duplex, que
executa recepção ou transmissão, alternadamente, isto é, o hub pode receber ou transmitir os dados aos três computadores, execu-
tando ou a recepção ou a transmissão.

74
UNIDADE 3

Podemos fazer um paralelo com duas pessoas falando em um rádio comunicador, em que a primeira
pessoa fala e a segunda ouve e, depois, responde, e assim efetua-se a transmissão de dados. Se os dois
indivíduos falarem ao mesmo tempo, haverá o que chamamos de colisão. Na rede de computadores,
ocorrerá a colisão desses dados.

Um hub pode interligar todas as máquinas da rede, mas não pode receber e transmitir dados,
ao mesmo tempo.

Há o modo full-duplex que podemos caracterizar como bidirecional, isto é, a comunicação pode
acontecer de forma simultânea, em um mesmo canal. Exemplificaremos na Figura 6.

Switch-PT-Empty
Switch

PC-PT PC-PT
Computador - 01 Computador - 03

PC-PT
Computador - 02

DIREÇÃO DOS DADOS

Figura 6 - Direção dos dados no modo full-duplex / Fonte: a autora.

Descrição da Imagem: a figura representa, por meio de uma ilustração, um switch interligado a três computadores, sendo eles cha-
mados de “Computador 1”, “Computador 2” e “Computador 3”. Esta figura demonstra a direção dos dados na comunicação full-duplex,
que executa recepção ou transmissão, simultaneamente, pois o hardware é organizado em circuitos separados no cabo de rede, pos-
sibilitando tal transmissão. Então, o switch pode fazer transmitir ou receber dados com os três computadores, de forma simultânea.

O switch consegue aumentar o desempenho da rede, pois verifica os cabeçalhos das mensagens
e a retransmite, somente, para a máquina correspondente, criando um canal de comunicação
exclusiva entre origem e destino. Ele representa o modo full-duplex.

75
UNICESUMAR

No contexto de sistemas distribuídos, independentemente da arquitetura, as estruturas que garantem


a comunicação entre processos são:
a) As interfaces de alto nível para programar os sistemas.
b) As características dessas interfaces aos protocolos TCP e UDP, Transmission Control Protocol
(Protocolo de Controle de Transmissões) e User Datagram Protocol (Protocolo de Datagrama
de Usuário), respectivamente, observando os aspectos de confiabilidade e rapidez. O protocolo
TCP controla e garante a completude da transmissão sendo mais lento, já o protocolo UDP é
mais rápido, por não garantir retransmissões em caso de erro (esse é um ponto de atenção).
c) A camada intermediária, chamada middleware, garante uma operação de comunicação comum
aos diversos dispositivos, conforme os tipos de arquiteturas.

Deve-se analisar se a comunicação será do tipo cliente-servidor, também chamada de comunicação


centralizada, ou, em grupo, que é conhecida como comunicação descentralizada.
A partir destas definições primárias, devemos implementar os componentes de interface e de
middleware, conforme o que foi estabelecido à troca de mensagens, afinal, cada forma de comunicação
tem mecanismos para garantir acesso e compartilhamento, de maneira controlada, dos seus recursos
aos dispositivos-clientes bem como aos dispositivos-servidores. Descreveremos, um pouco mais, as
comunicações em sistemas distribuídos, no decorrer desta unidade.

Vamos relembrar os modelos OSI (Open System Interconnection) e TCP/IP?

   








 

 






Aqui, fazemos um comparativo entre as camadas TCP/IP e o modelo OSI.

76
UNIDADE 3

Segundo Tanenbaum e Van Steen (2007), assim como determina o modelo de referência OSI, os pro-
tocolos são organizados em pilha ou camada, porém, em todas as redes, a função primordial é fornecer
serviços às camadas superiores.
O modelo de referência OSI (em português, Sistema Aberto de Interconexão) é um padrão, largamen-
te, utilizado e consolidado, do ponto de vista conceitual. Esta estrutura descreve como é a organização
das camadas envolvidas na comunicação para solicitação e troca de mensagens, visando à prestação
de serviços finais, ou seja, a comunicação dos dispositivos distribuídos na rede.
As camadas do modelo OSI são: física, enlace, rede, transporte, sessão, apresentação e aplicação,
conforme a Figura 7.

Possibilita acesso aos


Aplicação
recursos da rede
Traduzir, criptografar
Apresentação
e comprimir dados
Estabelecer, gerenciar e
Sessão
encerrar sessões
Prover a entrega confiável de
mensagens processo a processo Transporte
e recuperação de erros
Transferir pacotes da origem
Rede ao destino; fornecer ligação
entre redes
Organizar bits em frames,
Enlace de dados
fornecer entrega nó a nó
Transmitir bits através de um
Física meio físico, prover especificações
mecânicas e elétricas

Figura 7 - Resumo da camada OSI (Open System Interconnection/Sistema Aberto de Interconexão) / Fonte: Forouzan (2008, p. 42).

Descrição da Imagem: a figura demonstra as camadas OSI e as suas funções, que são: aplicação (possibilita acesso aos recursos da
rede); apresentação (traduzir, criptografar e comprimir dados); sessão (estabelecer, gerenciar e encerrar sessões); transporte (prover
a entrega confiável de mensagens, processo a processo, e recuperar erros); rede (transferir pacotes da origem ao destino; fornecer
ligação entre redes); enlace de dados (organizar bits em frames, fornecer entrega nó a nó); física (transmitir bits através de um meio
físico, prover especificações mecânicas e elétricas).

Conforme Forouzan (2008), o TCP/IP (Transmission Control Protocol e Internet Protocol) é um


conjunto de protocolos hierárquicos, compostos por módulos interativos, cada um dos quais proven-
do funcionalidades específicas, entretanto os módulos não são, necessariamente, interdependentes.
Enquanto o modelo OSI especifica quais funções pertencem a cada uma de suas camadas, as camadas
do modelo TCP/IP contêm protocolos, relativamente, independentes que podem ser mesclados e com-
binados, dependendo das necessidades do sistema. O termo “hierárquico” significa que cada protocolo
de nível superior é suportado por um ou mais protocolos de nível inferior.
Uma das principais vantagens do TCP/IP é ser um protocolo utilizado tanto em redes locais quanto
em redes de longa distância. Além disso, o TCP/IP adapta-se a sub-redes de diferentes tecnologias físi-
cas bem como de diferentes velocidades, tornando transparente para o usuário o acesso a essas redes.

77
UNICESUMAR


Uma rede IP é criada a partir da utilização de roteadores, equipamentos que trabalham
na camada 3 do modelo OSI e permitem o roteamento dos pacotes IP desde a origem
até o destino.
Podemos destacar como os pontos fortes do TCP/IP:
•Protocolo não orientado a conexão: permite que um pacote siga caminhos distintos
pela rede, garantindo mais flexibilidade e redundância.
•Política de best effort: o TCP/IP é abalizado no melhor esforço. O que isso significa?
Significa que o TCP/IP faz o melhor esforço para entregar os pacotes, no entanto, se
houver uma paralisação da rede ou um congestionamento, alguns pacotes podem não
ser entregues pela rede de pacotes.
•Fragmentação: o IP possui a capacidade de fragmentação, ou seja, pacotes grandes
podem ser fragmentados para facilitar o transporte das informações em redes em que
os protocolos de enlace trabalhem com tamanhos menores do que o pacote IP, como
o Ethernet 1.500 bytes contra até 65.000 bytes do pacote IP (MORAES, 2020, p. 47).

Na camada de transporte, o TCP/IP define três protocolos: Transmission Control Protocol (TCP), User
Datagram Protocol (UDP) e Stream Control Transmission Protocol (SCTP). Na camada de rede, o
protocolo principal definido pelo TCP/IP é o Internet Protocol (IP); existem, também, outros. Conheça,
agora, as principais camadas e os seus tipos de protocolos (a rede é dividida em camadas, cada uma
com uma função específica, tal mostra a Figura 8):
Camada de aplicação: HTTP, SMTP, Telnet, FTP, SSH, NNTP, RDP, IRC, SNMP, POP3, IMAP, SIP,
DNS, PING.
Camada de transporte: TCP, UDP, RTP, DCCP, SCTP.
Camada de rede: IPv4, IPv6, IPsec, ICMP.
Camada de ligação física: Ethernet, Modem, PPP, FDDi.

78
UNIDADE 3

Aplicação 
ões

Apresentação       

Sessão

Transporte   

 
Rede
(internet)

 

Enlace de
dados Protocolos definidos
pelas redes subjacentes
Física 

Figura 8 - Modelo OSI (Open System Interconnection) e TCP/IP (Transmission Control Protocol e Internet Protocol) / Fonte:
Forouzan (2008, p. 43).

Descrição da Imagem: a figura demonstra as camadas OSI (Open System Interconnection), TCP/IP e os seus protocolos corresponden-
tes. O esquema é representado por abas de aplicação, apresentação e sessão, em que há as aplicações SMTP, FTP, HTTP, DNS, SNMO,
TELNET; pela aba de transporte, com as aplicações SCTP, TCP e UDP; a aba de rede (internet), com as aplicações ICMP e IGMP, IP, RARP
e ARP; as abas de enlace de dados e física, com as aplicações de protocolos definidos pelas redes subjacentes (host-rede).

Da mesma forma que em redes de computadores, o modelo é conceitual e cada tecnologia possui as
suas técnicas, além de suas estratégias de funcionamento, possibilidade de adaptação/flexibilização de
camadas e implementação. Uma descrição exemplificada dessa organização é descrita no Quadro 1.
Quanto mais baixa a camada, mais interação e controle do hardware ela tem, quanto mais acima,
mais de alto nível é o seu acesso. Os aplicativos são as plataformas visíveis responsáveis pela interação
direta com os usuários ou outros sistemas, e as camadas superiores fazem requisições às camadas
inferiores. Estas, por sua vez, respondem às superiores.

Camada Descrição Exemplos


Aplicação Nível em que os protocolos são definidos para uma interface de HTTP, FTP, SMTP
serviço.
Apresentação Nível para transmissão de dados em que a representação de redes Segurança TLS,
é independente das utilizadas em cada computador envolvido na CORBA Data Rep.
transmissão.

79
UNICESUMAR

Camada Descrição Exemplos


Sessão Nível para confiabilidade, detecção de falhas e recuperação auto- SIP
mática.
Transporte Nível mais baixo de tratamento de mensagens, antes de serem or- TCP, UDP
ganizadas em pacotes. As mensagens são endereçadas às portas de
comunicação associadas aos processos. Os seus protocolos podem
ser orientados à conexão ou não.
Rede Nível em que os pacotes de dados são transferidos pela rede, por IP, circuitos
meio de roteamento e tabelas de rotas, ou, ainda, de maneira local. virtuais ATM
Enlace Nível responsável pela transmissão de pacotes em uma conexão MAC Ethernet
física, por meio de roteadores ou hosts.
Física Nível em que estão os circuitos e o hardware da rede, modulando os Sinalização
sinais em dados binários sequenciais que trafegam no meio, sendo de banda-base
sinais elétricos, luminosos ou eletromagnéticos, de forma geral.
Ethernet, ISDN
Quadro 1 - Modelo OSI com exemplos de técnicas / Fonte: adaptado de Coulouris et al. (2007).

Detalharemos alguns protocolos, segundo Tanenbaum (2011):

Camada de aplicação na arquitetura cliente-servidor, pro-


tocolos: HTTP, SMTP, FTP, SNMP, DNS
• HTTP (Hypertext Transfer Protocol): permite a comunicação entre um cliente (navegador
web) e um servidor (em que está armazenado o conteúdo), de forma que o cliente possa requisitar
conteúdo, recebê-lo e exibi-lo no navegador, como mostra a Figura 9. Permite, também, a exibi-
ção correta de texto, som, vídeo e streaming (multimídia), além de vários formatos de arquivos.

PROTOCOLO

HTTP
cliente
(navegador)
servidos
(php, java, .net)

internet

Figura 9 - Protocolo HTTP / Fonte: adaptada de Xavier (2019, on-line).

Descrição da Imagem: no centro da figura, temos a ilustração de uma nuvem que traz a palavra “HTTP” no centro, ao seu redor, temos
as representações de internet, cliente e protocolo com setas apontando em direção ao HTTP. A partir do HTTP, há uma seta que aponta
para a representação de servidor.

80
UNIDADE 3

O HTTP é um protocolo de transferência que possibilita às pessoas que inserem a URL do seu site na
web verem os conteúdos e dados nele existentes. A sigla vem do inglês Hypertext Transfer Protocol.

A arquitetura é definida como cliente-servidor quando ela tem um dispositivo com um papel
bem diferente dos outros envolvidos na comunicação. Em geral, esse dispositivo é o servidor,
que costuma ser o mantenedor dos dados, aquele que presta o serviço ou retorna um proces-
samento. Já os outros dispositivos são os nós (dispositivos) clientes, os quais, normalmente, são
os dispositivos requisitantes de serviços ao servidor. Por este motivo, também, essa interação
é conhecida como comportamento de requisição-resposta.
Fonte: adaptado de Tanenbaum e Van Steen (2007).

• SMTP (Simple Mail Transfer Protocol ou Protocolo Simples de Transferência de


E-mail): protocolo utilizado na transferência de e-mail de um servidor a outro, conforme
observado na Figura 10.

Cloud-PT
Cloud0
Server-PT
Server HTTP 1
Server-PT
Server HTTP 2

Switch-PT DSL-Modem-PT
PC-PT Switch0 DSL-Modem-PT Switch-PT PC-PT
DSL Modem0
PC0 DSL Modem1 Switch1 PC1

Figura 10 - Protocolo SMTP / Fonte: a autora.

Descrição da Imagem: a figura mostra, de forma esquematizada, o caminho de um e-mail trocado entre dois usuários, cujo primeiro
usuário tem uma conta de e-mail localizada no Servidor 1, e o protocolo SMTP encarrega-se de transferir o e-mail para o Servidor 2,
fazendo com que o destinatário B consiga acesso à mensagem. O usuário acessa a web, a fim de ver o e-mail, e a comunicação de dados
é via HTTP. As mensagens estarão em um servidor SMTP.

• FTP (File Transfer Protocol): é um protocolo cujo objetivo é efetuar a transferência de arquivos
entre dois dispositivos, conforme a Figura 11.

81
UNICESUMAR

Este protocolo é usado em ambientes web e serve para fazer as transações de arquivos e diretórios de dois
sistemas. Estas ações podem ser transferência, renomeação ou remoção. Em termos de confiabilidade,
temos o TCP em duas partes, uma de controle e outra de dados. O protocolo FTP usa a autenticação
na transferência de novos arquivos.

HOST localizado Cliente FTP


na Internet
Transferência de
Arquivos Bidirecionais

Servidor FTP Usuário 1

Figura 11 - Protocolo FTP / Fonte: Ribeiro-Santos (2016, p. 57).

Descrição da Imagem: a figura mostra a representação de um servidor FTP (host localizado na internet). Na figura, uma seta liga essa
representação a um computador que representa um cliente FTP.

• SNMP (Simple Network Management Protocol): protocolo de monitoração e configuração


de equipamentos em rede, conforme apresenta a Figura 12.

Console de gerenciamento

SNMP

Switch
Roteador

Servidor

Figura 12 - Protocolo SNMP / Fonte: a autora.

Descrição da Imagem: a figura define a configuração de equipamentos em rede, representado por um console de gerenciamento
que está no topo da figura, um roteador, um servidor e um switch. No meio da figura, há setas bidirecionais com as letras “SNMP” que
demonstram o protocolo SNMP cujas funções são a monitoração e configuração de equipamentos em rede.

82
UNIDADE 3

• DNS (Domain Name Server): trata-se de um serviço de resolução de nomes. Faz a transfor-
mação da URL, quando digitamos um endereço da web, por exemplo: https://www.unicesumar.
edu.br/home/ em um endereço em formato de números. Lembramos que toda comunicação
entre os computadores e equipamentos os quais se baseiam no protocolo TCP/IP é feita por
meio do número IP.

URL (Uniform Resource Locator): quando desejamos entrar na internet de nosso computador,
abrimos o nosso navegador e digitamos, por exemplo, https://www.unicesumar.edu.br/home/.
Estamos nos referindo ao endereço virtual da página da Unicesumar.

Depois que digitamos a URL em nosso navegador, há a consulta a um servidor DNS, este, então, en-
contra o dispositivo de destino. Podemos pensar no DNS como um grande banco de dados.
Na camada de transporte, temos dois protocolos:
orientado à conexão (TCP) e não orientado à conexão
Cliente Servidor
(UDP) ou orientado ao datagrama. Os dois são protoco-
los de internet que trabalham com o compartilhamento
de dados. Eles são usados para enviar pacotes ao endere-
PC-PT Server-PT
ço IP, tanto na rede local quanto na internet. Ambos têm
PC0 ServerHTTP1 diferenças e servem a determinadas funções, assim, cabe
Estabelece escolher um deles, conforme a necessidade.
conexão O protocolo TCP traz mais segurança e integridade
de dados, pois há um mecanismo de verificação padrão
de Three-Way Handshake, isto é, primeiro entra em
Confirma contato com a máquina de destino, sincroniza, envia o
conexão pacote de dados e recebe a confirmação de que o pacote
foi enviado, contudo, em relação à garantia de entrega, o
Solicita dados TCP é mais lento do que o UDP. Mostramos o protocolo
TCP na Figura 13, ao lado.
Figura 13 - Protocolo TCP (Transmission Control Protocol) / Fonte: a
Envia dados autora.

Solicita dados Descrição da Imagem: a figura mostra duas ilustrações: a de um com-


não recebidos putador representando o cliente e a de um servidor. Ambos aparecem
lado a lado, e embaixo deles, há setas indicando como o protocolo TCP
faz uma conexão. No protocolo TCP, o cliente estabelece a conexão, o
servidor a confirma e verifica se a transferência foi bem-sucedida ou
se há a necessidade de reenviá-la.

83
UNICESUMAR

O UDP (User Datagram Protocol) é um protocolo não orientado à conexão, ideal para aplicações de
rede cuja latência percebida é fundamental, tais como: comunicações por vídeo e voz, jogos ou um
circuito interno de tevê, os quais podem sofrer alguma perda de dados sem afetar, negativamente, a
qualidade percebida. Por exemplo, em um assalto a uma loja que tenha um circuito interno de tevê,
poderemos acompanhar, em tempo real, o que está acontecendo, sem a necessidade de retransmissão
de dados, pois, neste caso, isso atrapalharia a visualização.

Cliente Servidor

PC-PT Server-PT
PC0 ServerHTTP1

Solicita dados

Envia dados

Figura 14 - Protocolo UDP (User Datagram Protocol) / Fonte: a autora.

Descrição da Imagem: a figura mostra duas ilustrações: um computador representando o cliente e um servidor. Ambos aparecem
lado a lado e, embaixo deles, há setas indicando como o protocolo UDP faz uma solicitação. O protocolo UDP é onde o cliente solicita
os dados e o servidor responde, sem estabelecimento de conexão.

Na camada de internet, temos protocolo para recuperar o endereço físico, o ARP (Address Resolution
Protocol); protocolo para o endereçamento lógico, o IP (Internet Protocol) e protocolo destinado ao
teste de conectividade, o ICMP (Internet Control Message Protocol).
Vamos aprender sobre os protocolos em sistemas distribuídos? A comunicação entre processos
(programas em execução) é uma das partes fundamentais desses sistemas. Devemos entender os modos
pelos quais processos em máquinas diferentes podem trocar informações.
Os sistemas distribuídos atuais são formados por milhares ou milhões de processos espalhados na
internet, por exemplo. Vamos relembrar o middleware? Ele é uma camada intermediária entre sistemas
operacionais e aplicativos. Podemos considerar um conjunto de processos ou objetos, em um grupo de
computadores, que interagem entre si, de forma a implementar a comunicação bem como a oferecer
suporte para o compartilhamento de recursos a aplicativos distribuídos.
A comunicação entre processos distribuídos é feita pela troca de mensagens, a forma mais simples
de comunicação entre processos de um sistema distribuído. As mensagens são armazenadas em pacotes
chamados datagramas, as mensagens são trocadas entre processos localizados em máquinas distintas,
e os protocolos garantem que processos consigam estabelecer a comunicação, mesmo em plataformas
ou em tecnologias diferentes.

84
UNIDADE 3

A arquitetura baseada em objetos é considerada a arquitetura mais solta entre as existentes, cada
objeto é um componente e eles comunicam-se por meio de chamadas de procedimentos remotos
(TANENBAUM; VAN STEEN, 2007).
Exemplos clássicos de aplicação, também chamados de frameworks, utilizados na implementação
de plataformas de middleware, são:
• Java RMI (Remote Method Invocation): significa “invocação de método remoto”. É um framework
de implementação de middleware que se baseia na linguagem de programação Java.
• RPC (Remote Procedure Call): significa “chamada de procedimento remoto”.
• CORBA (Common Object Request Broker Architecture): uma arquitetura voltada à comunicação
de objetos distribuídos. É um framework de implementação de middleware que se baseia na
linguagem de programação C++.
• Akka.NET: framework de implementação de middleware que se baseia no ambiente de progra-
mação .NET, o qual pode utilizar várias linguagens diferentes, por exemplo, Visual Basic e C#.

Nestas técnicas, é permitido chamar um método ou um procedimento de outro objeto, similar ao que
conhecemos na Programação Orientada a Objetos.
Junto com a arquitetura baseada em camadas, a arquitetura baseada em objetos fornece os conceitos
mais importantes à descrição dos sistemas distribuídos. Internamente, a arquitetura baseada em objetos
também possui uma organização em camadas, juntamente com a sua interface: a camada middleware
e a camada de protocolos. Tal organização pode ser visualizada na Figura 15.

Aplicativos

RMI e RPC

Fluxo de Fluxo de
requisição Protocolos e empacotamento resposta

TCP e UDP

Sistemas Operacionais

Figura 15 - Arquitetura baseada em objetos e a sua organização interna / Fonte: a autora.

Descrição da Imagem: a figura demonstra a arquitetura baseada em objetos, por meio de um esquema em que vemos o fluxo de
requisição, à esquerda, acompanhado por uma seta apontada para baixo, e o fluxo de resposta, à direita, com uma seta que aponta
para cima. Entre os dois, há, de cima para baixo, blocos com as informações “Aplicativos”, “RMI e RPC”, “Protocolos e empacotamento”,
“TCP e UDP” e “Sistemas operacionais”.

85
UNICESUMAR

Na arquitetura baseada em objetos, há a invocação do método remoto, que são a chamada de proce-
dimento remoto, os protocolos UDP e TCP e os protocolos de empacotamento. Quando um cliente
invoca um método em um objeto remoto, uma mensagem de invocação é enviada ao processo no
servidor que contém o objeto remoto, e essa mensagem deve especificar qual objeto terá seu método
executado (TANENBAUM; VAN STEEN, 2007). O identificador é responsável por especificar qual
objeto deve ser ativado, ele é uma referência de objeto remoto, assim, costuma utilizar-se de dados de
IP, de porta e horário para a obtenção de um identificador único.
A camada de empacotamento de dados, embora os programas em execução armazenem as suas
informações em estruturas de dados, esses dados, para a comunicação, precisam ser representados de
maneira mais simplificada, como uma sequência de bytes. Dentre as estratégias deste empacotamento,
segundo Tanenbaum e Van Steen (2007), estão:
• Representação de dados comuns do CORBA.
• Serialização de objetos da linguagem Java.
• XMl (Extensible Markup Language), a linguagem de marcação extensível, elaborada para
aplicações web.

Ainda ressaltando que a camada de middleware é um dos fatores principais para o bom funcionamento
de aplicações distribuídas. Então, daremos um exemplo bem comum do funcionamento de sistemas
distribuídos: as nossas redes sociais com inúmeros conteúdos multimídia.
Voltando ao middleware, trata-se da camada localizada entre o sistema operacional, indiferente de
qual ele seja (Windows, Linux, Android ou iOS) e os programas aplicativos. Ele serve para gerenciar
os dados bem como a comunicação entre as camadas. O middleware funciona como uma camada de
tradução destinada a interligar o sistema operacional com os programas (COULOURIS et al., 2007).

Aplicativos e serviços

RMI e RPC
Camadas de
Protocolo baseado em requisição-resposta, 
empacotamento e representação de dados externos

UDP e TCP

Figura 16 - Camadas de middleware / Fonte: Coulouris et al. (2007, p. 146).

Descrição da Imagem: a figura representa as camadas do modelo OSI adequado às camadas de middleware. Para que haja entendi-
mento na comunicação, a camada de middleware é representada por meio de quatro retângulos sobrepostos, onde a primeira camada
representa os aplicativos e serviços, a segunda representa o RMI e o RPC, logo abaixo, na outra camada, temos o protocolo que se
baseia em requisição-resposta, empacotamento e representação de dados externa, demonstrando que a junção das camadas de RMI
e RPC e o protocolo com base em requisição-resposta, empacotamento e representação de dados externa fazem a composição da
denominada camada de middleware e, na última delas, representamos UDP e TCP.

86
UNIDADE 3

Possuímos alguns diferentes middlewares de comunicação entre processos, que são: a RPC (Remote
Procedure Call), chamada de procedimento remoto, a qual é utilizada na comunicação entre processos
remotos e implementada por meio de linguagens de programação estruturadas; e a RMI (Remote
Method Invocation), a invocação de método remoto, implementada por meio de linguagens de pro-
gramação orientadas a objeto. Elas são interfaces de programação usadas para permitir a execução de
métodos e procedimentos entre processos remotos.
Tanenbaum (2007) afirma que uma RPC visa a ocultar grande parte das complexidades da troca de
mensagens, sendo ideal às aplicações cliente-servidor. Para Tanenbaum (2007), a ideia que fundamenta
a RPC é fazer com que uma chamada de procedimento remoto seja “considerada” uma chamada local.
Queremos que a RPC seja transparente, ou seja, o procedimento de chamada não deve estar ciente
de que o procedimento chamado está executando em uma máquina diferente e vice-versa, conforme
ilustrado na Figura 17.

Espera pelo resultado


Cliente

Chamada de Retorno da
procedimento remoto chamada

Requisição Resposta
Servidor

Chamada de procedimento Tempo


local e retorno de resultados

Figura 17 - Princípio de RPC (Remote Procedure Call) entre um programa-cliente e um programa-servidor / Fonte: Tanenbaum
(2007, p. 77).

Descrição da Imagem: a figura mostra o comportamento de um cliente-servidor quanto ao RPC. Há duas linhas em paralelo, uma,
em cima, representando o cliente, outra, embaixo, representando o servidor. Temos duas flechas indicativas das ações e uma flecha,
em paralelo, as indicativas apontam para o cliente e o servidor, enquanto a flecha em paralelo demonstra o tempo. Há a descrição
do cliente com uma linha contínua até a chamada de procedimento remoto, uma linha tracejada enquanto ele espera pelo resultado
e uma linha contínua que vem após o retorno da chamada. O servidor, por sua vez, recebe a requisição e envia a resposta ao cliente.

Ainda para Tanenbaum e Van Steen (2007, p.77), uma chamada de procedimento remoto ocorre nas
seguintes etapas:
a) O procedimento de cliente chama o apêndice de cliente do modo normal.
b) O apêndice de cliente constrói uma mensagem e chama o sistema operacional local.

87
UNICESUMAR

c) O sistema operacional do cliente envia a mensagem para o sistema operacional remoto.


d) O sistema operacional remoto dá a mensagem ao apêndice do servidor.
e) O apêndice de servidor desempacota os parâmetros e chama o servidor.
f) O servidor faz o serviço e retorna o resultado para o apêndice.
g) O apêndice de servidor empacota o resultado em uma mensagem e chama seu sistema ope-
racional local.
h) O sistema operacional do servidor envia a mensagem ao sistema operacional do cliente.
i) O sistema operacional do cliente dá a mensagem ao apêndice de cliente.
j) O apêndice desempacota o resultado e retorna ao cliente.

RMI (‘) significa a invocação de método remoto, cujo objetivo é permitir que um objeto possa invocar
um método em outro objeto remoto e, para Tanenbaum e Van Steen (2007), é o mesmo que o RPC,
porém trabalha com objetos em vez de aplicações.
Nas implementações envolvendo RMI e RPC, o protocolo a ser seguido é constituído de três passos
(COULOURIS et al. 2007):
• doOperation: método para invocar operações remotas. Os seus argumentos são o objeto re-
moto, por meio de IP e porta, e o método a ser executado. Enquanto a resposta não retorna,
esse método permanece bloqueado.
• getRequest: o servidor lê as requisições e executa o serviço.
• sendReply: o servidor retorna com a resposta, fazendo com que o método original seja des-
bloqueado.

Cliente Servidor
Mensagem de requisição

DoOperation 

(espera) Seleciona objeto

Executa método
(continuação) sendReply
Mensagem de resposta

Figura 18 - Comunicação requisição-resposta / Fonte: adaptada de Coulouris et al. (2007).

Descrição da Imagem: a figura ilustra como se dá, ao longo do tempo, a interação das mensagens nesta implementação utilizando o
protocolo TCP. Há dois círculos. No primeiro, temos “DoOperation”, “Espera” e “Continuação”; no segundo, estão “getRequest”, “Seleciona
objeto” e “Executa método – sendReply”. Entre os círculos, temos “Mensagem de requisição” e “Mensagem de resposta”; em cima do
primeiro círculo, está “Cliente” e, em cima do segundo círculo, está “Servidor”.

88
UNIDADE 3

As estratégias envolvidas para manter a comunicação e evitar falhas são: os timeouts (que são limites de
tempo), o descarte de requisições duplicadas e o histórico. Estas técnicas são consideradas, em conjunto,
para a comunicação com mais confiabilidade. Para troca de mensagens entre os programas executados
(processos), temos duas formas de comunicação, sejam elas síncronas, sejam elas assíncronas.
Conforme Tanenbaum e Van Steen (2007), na comunicação síncrona, os processos, tanto o reme-
tente quanto o destino, são sincronizados em cada mensagem, pois, quando se inicia uma mensagem
de envio, o processo será bloqueado até o seu recebimento. Este bloqueio acontece tanto para envio
quanto para recepção. Na comunicação assíncrona, não acontecem bloqueios, fazendo com que a
mensagem vá até um buffer.

Que tal ouvir o nosso podcast, a fim de entender melhor como acon-
tece a comunicação humana e nas máquinas?

Como você consegue acessar o Facebook que está instalado em seu smartphone? Como essa comu-
nicação acontece com os servidores da plataforma? Há duas partes fazendo essa troca: o lado cliente
(front-end) e o lado servidor (back-end).
Uma das formas de integração ocorre pelo protocolo HTTP, porém há outras formas. Pelo protocolo
HTTP, teremos as partes front-end e back-end, para nós, usuários, a parte front-end é a maneira como
enxergamos um site, por meio de seu navegador instalado. O back-end é o que dá estrutura e apoio às
ações do usuário da máquina, como logins e senhas.
Por meio do protocolo HTTP (o protocolo padrão utilizado na navegação web), ao clicar no botão
de login, os nossos dados são enviados, normalmente, por meio da internet, a fim de que a aplicação
possa validar tais informações e liberar (ou negar) o nosso acesso ao sistema.
Como no exemplo trabalhado nesta unidade, a Empresa Super S.A., a qual trabalha com uma rede
de supermercados, pode utilizar uma arquitetura distribuída, afinal, quando utilizamos intranets,
estamos trabalhando com um sistema distribuído.
A intranet fica limitada à rede do supermercado e, neste caso, é restrita aos colaboradores da em-
presa, então, para ter acesso à intranet, é necessário possuir um login e uma senha.

89
UNICESUMAR

Com o objetivo de projetarmos essa arquitetura,


traremos os sistemas distribuídos, onde há a inte-
gração de sistemas, com a possibilidade de trabalhar
com diferentes tecnologias para que duas máquinas
se comuniquem, isto é, troquem informações. Para
construirmos um bom projeto de comunicação, te-
mos que focar no conceito de heterogeneidade, que
nos remete às diferenças e variedades, podendo ter
heterogeneidade de redes, de hardware, de software
(em suas diferentes linguagens de programação), de
sistemas operacionais, entre outros.
Afinal, se pensarmos em diferentes localizações
dos supermercados, como em nosso exemplo, os es-
tabelecimentos estarão localizados em diferentes bair-
ros, cidades ou estados. Tais diferenças, farão com que
usemos máquinas e tecnologias adequadas a cada lo-
calização. Mas, como estudamos, aqui, essas diferenças
são trabalhadas com os protocolos de comunicação,
atingindo o objetivo de sistemas distribuídos, que é
parecer ao usuário um sistema só.
Neste projeto, haverá a necessidade de um
middleware: o software localizado entre os sistemas
operacionais e os aplicativos, que funciona como
um tradutor e permite a comunicação bem como o
gerenciamento de dados a aplicativos distribuídos.
Como exemplo de middleware, precisaremos usar
um framework de implementação, que podem ser os
sugeridos Java RMI ou CORBA.
Apesar de o Java RMI ser um modelo bem des-
tacado para manipular a comunicação em sistemas
distribuídos, o CORBA faz a combinação de invoca-
ção de método e comunicação orientada à mensagem.
Pode-se usar CORBA em um modelo cliente-servi-
dor, sendo o servidor um provedor de serviços, e o
cliente, consumidor desses serviços; um componente
poderá ser trabalhado como cliente ou servidor. E,
assim, as máquinas em diferentes localidades farão a
comunicação desejada.

90
A comunicação entre máquinas tem a função de troca de dados e, fazendo um comparativo com
a comunicação entre duas pessoas, precisamos ter a máquina transmissora e a receptora, que
necessitam de tecnologias as quais traduzam essas necessidades. Pensando nisso e no conteúdo
que vimos no decorrer desta unidade, sugiro que você complete o Mapa Mental, a seguir.

Comunicação
Objetivo
de dados
Comunicação

Componentes
Protocolos

OSI TCP/IP

91
1. Quando trabalhamos com sistemas distribuídos, temos uma camada entre o sistema
operacional e os aplicativos, denominada middleware. Por meio desta camada adicional,
pode-se interligar sistemas operacionais distintos, fazendo com que o usuário não per-
ceba qualquer modificação. Autores como Tanenbaum e Van Steen (2007) descrevem
o recurso existente para a troca de mensagens. Tanenbaum e Steen (2007) trazem-nos
que um(a) ___________visa a ocultar grande parte das complexidades da troca de men-
sagens e é ideal para aplicações cliente-servidor.

Com base nestas informações, assinale a alternativa que apresenta a palavra que
completa, corretamente, a lacuna, a seguir:

a) RPC.
b) UDC.
c) TTD.
d) TCP.
e) TDP.

2. Trabalhamos com frameworks que podem ser adotados para implementação do RPC.
Como exemplos de principais suportes de middleware para objetos distribuídos, Cou-
louris et al. (2007) trazem-nos o Java RMI (Remote Method Invocation), da Oracle/Sun
Microsystems, e o CORBA (Common Object Request Broker Architecture), especificado pela
OMG (Object Management Group) e implementado por diversos fabricantes de software.
Estes que foram citados se referem a padrões de mercado em:
a) Desenvolvimento de aplicações em ambiente distribuído.
b) Definição de bancos de dados corporativos.
c) Sistemas de envio de pacotes encriptados a longas distâncias.
d) Desenvolvimento para web.
e) Desenvolvimento de aplicações orientadas a objetos.

92
3. O protocolo HTTP é utilizado para acessar conteúdo web na rede mundial de computa-
dores. Permite que ocorra a transferência, ponto a ponto, entre clientes e servidores, de
serviços do tipo elástico e streaming (multimídia). O HTTP é um protocolo semelhante ao:
a) DTP, utilizando a conexão TCP para cada transferência, com a conexão permanente
e independente.
b) FTP, utilizando a conexão TCP para cada transferência, com a conexão mantida, apenas,
enquanto dura a transferência.
c) SNMP, utilizando a conexão TCP para cada transferência, com conexão permanente
e independente a cada par de nós.
d) SMTP, utilizando a conexão DHT para cada transferência, com a conexão permanente
e independente a cada par de nós.
e) P2P, utilizando a conexão DHT para cada transferência, com a conexão mantida, ape-
nas, enquanto dura a transferência entre pares de nós.

93
94
4
Virtualização
Me. Adriane Loper

Nesta unidade, aprenderemos os conceitos de virtualização e


conteinerização. Iniciaremos pela Internet, essa enorme rede de
computadores interligados mundialmente com base no protocolo
TCP/IP. Nos sistemas distribuídos, utilizamos diversas máquinas.
Assim, compreenderemos a importância da descrição dos papéis
das máquinas e saberemos como instalá-las e configurá-las. Você
sabia que podemos instalar e utilizar dois sistemas operacionais
em uma mesma máquina, sem precisarmos reiniciar o computador
para trocar de sistema operacional? Também retomaremos alguns
conceitos, como o de processo, afinal, ele desempenha um papel
importante nos sistemas distribuídos.
UNICESUMAR

Para o completo funcionamento de qualquer computador ou telefone celular, precisamos do conjunto


de hardware e de software. O software que faz a checagem da máquina e verifica se ela está apta a iniciar
as funções dela é o sistema operacional. Pensando nisso, a pergunta que responderemos nesta etapa é
a seguinte: como conseguiremos instalar e trabalhar com dois sistemas operacionais em um mesmo
computador, sem o comprometimento de nenhum deles?
Para atingir o nosso objetivo, que é criar uma máquina virtual, nós a definiremos. Uma máquina
virtual é um programa que se comporta como um computador completo, com todas as funcionalidades
de um sistema operacional. Podemos considerar que é um computador funcionando dentro de outro.
Ela utiliza um programa-cliente que age como uma camada de virtualização entre o sistema de um
computador e outro que você quer instalar.
A máquina virtual funciona de modo diferente de um emulador, cuja função principal é a de copiar
os recursos de um programa ou de um sistema e fazê-los funcionar no computador. Ela funciona como
se fosse outro computador e pode rodar outro sistema operacional, diferentemente daquele que você
tem no computador. Por exemplo, se você utiliza o Windows no computador, com a máquina virtual,
você poderá ter o Linux rodando perfeitamente, sem um interferir no outro.
Para criarmos uma máquina virtual, utilizaremos um software de virtualização que nos orientará não
apenas na criação, mas durante a configuração e a instalação. Um exemplo de software de virtualização
é o Virtual Box, que utilizaremos nesta aula. Ele é gratuito e compatível com o Windows, o Linux e o
macOS. Outro exemplo é o VMWare, um software que elabora máquinas virtuais e é compatível com
Windows, Linux e macOS.
Ainda em relação à máquina virtual e aos sistemas operacionais, voltemos a nossa hipotética
startup. Você acabou de ser contratado pela empresa Jogos & Joguinhos S.A e o dono dela, João
Limeira, precisa de ajuda. João participou de uma feira de informática recentemente e se encantou
por um software de realidade virtual. Ele fez uma experiência virtual e observou que ele poderia
ajudar muito a empresa dele.
O revendedor explicou que o software poderia ser modificado para a empresa, mas João teria que
contratar algum programador que trabalhasse com o sistema operacional Linux, pois esse foi o sistema
operacional utilizado no desenvolvimento do software. João voltou para casa cheio de dúvidas. Na
empresa dele, trabalha-se com outro sistema operacional, o Windows: será que ele teria que comprar
outro computador para instalar o Linux? Esse computador teria que trabalhar isolado na rede?
Ao refletir sobre os questionamentos de João, você deve ter respondido que não, que ele não pre-
cisaria comprar outro computador. No entanto, de que forma isso seria possível? Anote em seu diário
de bordo os possíveis caminhos para resolver essa situação.

96
UNIDADE 4

Para isso, pesquisemos um pouco sobre os dois sistemas operacionais (Windows e Linux) e enten-
damos o motivo pelo qual os dois sistemas operacionais não podem ser executados ao mesmo tempo
na mesma máquina.
Nesta unidade, aprenderemos que, com o auxílio de uma máquina virtual, poderemos ter dois
sistemas operacionais em uma mesma máquina, sem que um interfira no outro. O computador
funcionará muito bem.

DIÁRIO DE BORDO

O assunto central a ser trabalhado nesta unidade são as máquinas virtuais e os contêineres.
Primeiramente, exporemos uma figura comparativa. A diferença fundamental entre essas duas
tecnologias se dá no fato de que, nos contêineres, não precisamos de um sistema operacional
instalado em cada contêiner.

97
UNICESUMAR

Máquinas Virtuais Contêiners


Máquina Máquina
Contêiner 1 Contêiner 2
Virtual 1 Virtual 2
Aplicação Aplicação Aplicação Aplicação

Bibliotecas Bibliotecas Bibliotecas Bibliotecas

Sistema Sistema
Operacional Operacional

 Contêiner Engine

S.O. da Máquina Hospedeira S.O. da Máquina Hospedeira

Recursos de Hardware da Recursos de Hardware da


Máquina Hospedeira Máquina Hospedeira

Figura 1 - Comparação entre as máquinas virtuais e os contêineres / Fonte: a autora.

Descrição da Imagem: na figura, são demonstradas as arquiteturas das máquinas virtuais e dos contêineres. Essa representação
acontece por meio de camadas, que são simbolizadas por retângulos. Há dois desenhos: do lado esquerdo, estão as máquinas virtuais
e, do lado direito, os contêineres. Além disso, temos a representação de seis camadas tanto nas máquinas virtuais quanto nos contêi-
neres. Nas máquinas virtuais, na primeira camada, de baixo para cima, encontram-se os recursos de hardware da máquina hospedeira.
Depois, o sistema operacional da máquina hospedeira, seguido do Hypervisor. Por fim, temos o sistema operacional da máquina virtual,
as bibliotecas e as aplicações. Nos contêineres, na primeira camada, de baixo para cima, encontram-se os recursos de hardware da
máquina hospedeira. Depois, está o sistema operacional da máquina hospedeira, seguido do Contêiner Engine/Daemon. Depois, temos
uma camada em branco e, por fim, as bibliotecas e as aplicações.

Imagine um navio com cem contêineres sendo transportados. Se houver um problema com um contêi-
ner (por exemplo, ele se abriu e esparramou toda a carga de soja pelo navio), os outros noventa e nove
continuarão intactos, pois estão separados e protegidos, apesar de estarem no mesmo navio. Partindo
dessa contextualização, podemos definir contêiner como uma máquina virtual mais leve, pois não há
a necessidade de incluir um sistema operacional convidado em todas as instâncias. É possível apenas
utilizar as funções e os recursos do sistema operacional da máquina hospedeira.

Para conhecermos um pouco mais os contêineres, o que você acha


de assistirmos a um vídeo disponível no QR Code ao lado?
Para acessar, use seu leitor de QR Code.

98
UNIDADE 4

Você já percebeu que, para esta disciplina, precisamos relembrar os conceitos de outras, como Redes
de Computadores, Sistemas Operacionais, Banco de Dados e Programação. Hoje, iniciaremos a nossa
conceitualização pelos processos estudados em sistemas operacionais.
Segundo Tanenbaum (2003), o sistema operacional é uma parte essencial de qualquer sistema com-
putacional. Se ele não existisse, os sistemas computacionais funcionariam de outra forma e o usuário
teria que saber os detalhes de hardware para utilizar o computador, o que seria bem complexo.
A função do software chamado “sistema operacional” é controlar o hardware do computador (pro-
cessador, memória, teclado e mouse, por exemplo) e validar que o computador ou o smartphone está
apto a funcionar para o usuário realizar as funções diárias dele, como fazer uma planilha, realizar uma
impressão ou navegar pela Internet.
É ilustrada a integração do hardware e do software com o sistema operacional na Figura 2.
Figura 2 - Sistema operacional / Fonte: a autora.
Software
Descrição da Imagem: trata-se de um esquema que representa, por meio de um
círculo entre dois retângulos (um em cima, o “software”, e outro em baixo, o “hard-
ware”), o sistema operacional, que é a ligação entre o hardware e o software de um
computador. Nas arquiteturas modernas, não há como ter o completo funcionamento
dos computadores sem um sistema operacional.

O sistema operacional controla de forma ordenada e compartilhada


os recursos do computador. Por exemplo: se você estiver digitan-
Sistema
do em um editor de textos e fazendo um download de arquivo, o
operacional
sistema operacional não permite que esses programas acessem ao
mesmo tempo a memória principal, pois isso causaria a perda dos
dados em ambas as ações.
Um dos principais conceitos para os sistemas operacionais
(SO) é o de processo. Uma definição básica de processo é o de um
programa ou uma tarefa em execução. O sistema operacional
é o responsável por administrá-los por meio do gerenciador de
Hardware
processos, que é o responsável por criar, finalizar, escalonar e sin-
cronizar processos e threads.
O sistema operacional tem o objetivo de gerenciar o computador de forma eficiente e produtiva,
facilitando o uso dele, além de limitar as ações executadas pelos programas em função da segurança
e da estabilidade, como o acesso à memória do computador.

Um processo é uma atividade que contém um programa, uma entrada, uma saída
e um estado. Pode ser definido como uma entidade dinâmica que altera o esta-
do à medida que avança a execução. Por outro lado, um programa (um software)
corresponde a um conjunto de processos. Trata-se de uma entidade estática e
permanente, composta apenas por uma sequência de instruções.

99
UNICESUMAR

Ao criar um processo, o sistema operacional deve gerar um espaço de endereço totalmente


independente (aloca memória, copia dados e cria pilha de dados temporários). Antes de alocar
uma nova área na memória, ele deve zerar o conteúdo, a fim de que não haja a interferência
de um processo em outro.
Por isso, trocar o processo que está em execução tem grande custo, além de ser necessário
salvar o estado daquele processo, incluindo a memória, as permissões de acesso e o que estava
sendo executado naquele momento. O sistema operacional também deverá alterar a tabela
de processos, que, agora, tem dados inválidos. Caso o ele esteja sobrecarregado e não consiga
guardar, na memória, todo o conteúdo necessário, ele deverá fazer uma troca (do inglês, swap)
de dados entre a memória e o sistema de armazenamento de arquivos da máquina, o que
tornará a execução ainda mais lenta.

O que você acha de fazer uma analogia para entender processo e programa? Pensemos na fabri-
cação de um brigadeiro. Para o brigadeiro, precisamos dos ingredientes (leite condensado, manteiga
e chocolate em pó), aqui, considerados dados de entrada. Também necessitamos de uma receita
de brigadeiro, aqui, considerado o programa. Você (que fará o brigadeiro) será o processador e
as atividades que você executa (observar a quantidade de cada ingrediente, ler a receita e mexer a
panela até o ponto certo) são os processos. O ponto certo do brigadeiro será o processo final do
programa receita de brigadeiro.
Continuando o nosso exemplo, imagine que você tem filhos pequenos e, enquanto você (proces-
sador) está fazendo o brigadeiro, um de seus filhos cai e começa a chorar na sala. Você (processador)
memoriza a parte em que o brigadeiro está, desliga o fogão e corre em direção ao seu filho. Analisa o que
aconteceu e socorre a criança. Você deixou o brigadeiro incompleto e socorreu o seu filho, que, neste
momento, é a prioridade. Assim, você (processador) alternou de um processo (fazer o brigadeiro)
para outro processo com prioridade maior (socorrer o filho), cada um com o seu programa (receita
de brigadeiro versus cuidados no socorro do filho). Assim que o filho estiver atendido e calmo, você
retornará a fazer o brigadeiro do ponto em que parou. Em outras palavras, um programa (software)
corresponde a um conjunto de processos.
Entendidos os conceitos de programa e processo, agora, compreenderemos outro conceito impor-
tante e muito utilizado em sistemas distribuídos, que é o thread, definida como um processo com
múltiplos fluxos de controle.
Para Machado e Maia (2007), o conceito de thread foi idealizado para a redução do tempo dos
processos em aplicações concorrentes, resultando na economia de recursos de um sistema. Thread foi
construído para ser uma forma de controle dentro do processo, fazendo com que um processo tenha
diversos threads compartilhando os recursos.

100
UNIDADE 4

Para entender melhor o conceito de thread, vamos apresentá-lo utilizando, como


exemplo, um processador de texto (TANENBAUM, 2003). Suponha que você está
escrevendo um livro e é necessário trocar uma palavra errada e que foi escrita em
diversos capítulos. Se o livro estiver em um único arquivo, fica fácil fazer a alteração,
porém, se estiver em arquivos separados, será necessário fazer a correção em cada
um dos arquivos.
Outra questão é: se uma ou duas páginas forem removidas de um arquivo de 300
páginas, o processador de textos terá que formatar todo o documento, em todas as
páginas, até chegar à página retirada, o que causará uma grande demora. Nesse caso,
se forem utilizados threads, um faria a formatação do texto, outro atenderia aos
requisitos do usuário via teclado e um terceiro thread faria o backup dos dados em
disco sem interferir nas ações dos demais threads.
Outro exemplo do uso de threads é em um navegador web: enquanto um thread
carrega imagens ou textos de uma página, outro thread recupera dados de uma
rede. Algumas linguagens de programação, como a Linguagem Java, hoje, bastante
utilizada, são dotadas de recursos para a implantação de threads, o que é chamado
de programação concorrente.

Para compreender ainda mais o trabalho com


threads em Java, leia o artigo “Trabalhando com
Threads em Java”, indicado no QR Code a seguir.
Para acessar, use seu leitor de QR Code.

A implementação de threads durante a execução do processo agiliza o processamen-


to e melhora o desempenho das aplicações. O próprio conceito de threads sustenta
que “são as entidades programadas para a execução sobre a CPU” (TANENBAUM;
WOODHULL, 2008, p. 78).
Logo, ao adicionar threads em uma aplicação, será possível processar dois ou
mais papéis ao mesmo tempo. Por exemplo, em uma edição de arquivos, um thread
seria o responsável por receber os comandos do usuário via teclado, outro seria o
responsável por formatar o arquivo e outro seria o responsável por salvar o arquivo.
Todos trabalhariam em sincronia e executariam as atividades em paralelo.

101
UNICESUMAR

Os sistemas operacionais executam de maneiras diferentes os processos e os threads. O


Windows, por exemplo, trabalha com maior facilidade para gerenciar programas com apenas
um processo e diversos threads que quando gerencia vários processos e poucos threads.
Isso acontece porque, no sistema da Microsoft, a demora para criar um processo e alterá-lo
é muito grande. Enquanto isso, o Linux e os demais sistemas baseados no Unix podem criar
novos processos de maneira muito mais rápida. No entanto, ao serem alterados, os programas
podem apresentar o mesmo desempenho tanto no Linux quanto no Windows.
Fonte: adaptado de O que... ([2021]).

Para Tanenbaum (2007), uma das principais contribuições dos threads em sistemas distribuídos é o
fato de que eles permitem que clientes e servidores sejam construídos de tal modo que a comunicação
e o processamento local possam se sobrepor, o que resulta em alto nível de desempenho.
Nos últimos anos, o conceito de virtualização se tornou muito conhecido. A virtualização permite
que uma aplicação e o ambiente completo, incluindo o sistema operacional, executem concorrentemente
com outras aplicações, mas com alto grau de independência em relação ao software e às plataformas
subjacentes, o que resulta em alto grau de portabilidade. Ela também ajuda a isolar as falhas causadas
por erros ou problemas de segurança.
Com o conceito de virtualização de recursos, as arquiteturas constituídas por apenas uma uni-
dade de processamento, aliadas aos atuais sistemas operacionais, que são providos de processos e de
threads, são oferecidos meios de execução para mais de uma tarefa simultaneamente. A virtualização
permite que o hardware execute várias instâncias de diferentes sistemas paralelamente. Nesse contexto,
aplicações passam a rodar em sistemas operacionais distintos em uma mesma plataforma.
A divisão das responsabilidades entre os componentes que constituem um modelo é um dos
aspectos mais importantes no projeto de um sistema distribuído. A atribuição dos componentes nas
diferentes máquinas (nós) que compõem a rede de interconexão de um modelo físico para os sistemas
distribuídos demanda algumas questões, tais como desempenho, confiabilidade e segurança.
Dessa forma, analisaremos o modelo físico atual considerando a distribuição de responsabilidades
e a atribuição das máquinas (nós) na rede. Por essa razão, a classificação dos processos é essencial.
A classificação de processos auxilia na identificação das responsabilidades no sistema, na avaliação
de cargas de trabalho e na identificação de falhas de forma mais isolada. Inicialmente, classificaremos
os processos da seguinte maneira:
Cliente: processos que, em geral, acessam os recursos oferecidos pelo sistema e realizam solicita-
ções. Tanto clientes quanto servidores podem ser diferentes componentes, como clientes, web services,
clusters, grades, dentre outros.
Servidor: processos que aceitam os pedidos e processam os serviços solicitados pelos clientes.

102
UNIDADE 4

Pensemos na relação cliente-servidor exposta por Tanenbaum (2007). O estudioso determina


que um servidor é um processo que implementa um serviço específico. Por exemplo, um serviço de
banco de dados e cliente é um processo que requisita um serviço de um servidor ao enviar a requisição
e ao esperar a resposta do servidor.
Ao demonstrar a arquitetura cliente-servidor e um banco de dados, é possível trabalhar com a
SQL (Structured Query Language), a fim de realizar uma requisição de dados em um banco de dados
localizado no servidor.
Exemplifiquemos uma query, que é um pedido de uma informação ou de um dado. Esse pedido
também pode ser entendido como uma consulta, uma solicitação ou uma requisição:
SELECT Nome
FROM Cliente
WHERE Nome.Primeironome = Pedro;
Relembrando o Banco de Dados, estamos selecionando (SELECT) todos os nomes da coluna Nome,
da tabela Cliente (FROM), cuja condição (WHERE) de primeiro nome= Pedro seja atendida.
Quando trabalhamos com a manipulação de dados em nosso exemplo de comunicação com um
banco de dados, referimo-nos a três operações básicas: inclusão de dados, exclusão de dados e
alteração de dados.
Quando um usuário (cliente) deseja consultar o banco de dados, ele gera uma solicitação que será
encaminhada ao servidor para ser executada. Os passos desse processo são:

1) O cliente requisita os dados.


2) A requisição é implementada em SQL pela máquina-cliente.
3) A requisição SQL segue utilizando uma rede até o servidor.
4) O servidor executa a requisição, buscando os dados na base local ou onde estiver.
5) A resposta à requisição (tabelas) é enviada de volta à máquina que solicitou.
Assim, os dados são formatados e mostrados ao usuário.

A Figura 3 ilustra um cenário clássico de um sistema de informação distribuído, o qual precisa


lidar com várias transações advindas de diferentes clientes e distribuí-las para os servidores que
têm banco de dados.
As informações são armazenadas ou consultadas, dependendo do tipo de transação. O monitora-
mento do processamento de transações é necessário, com o intuito de permitir que uma aplicação do
cliente consiga acessar múltiplos bancos de dados. Observe, a seguir, um esquema que representa as
máquinas-cliente fazendo as requisições aos servidores, que acessam bancos de dados distintos, com
o monitoramento das transações.

103
UNICESUMAR

Resposta SERVIDOR

BANCO DE DADOS
Transação Requisição

Requisição Requisição
APLICAÇÃO MONITOR DE
SERVIDOR
CLIENTE TRANSAÇÕES
Resposta Resposta BANCO DE DADOS

Requisição
Resposta
SERVIDOR

BANCO DE DADOS

Figura 3 - Monitoramento do processamento de transações / Fonte: Tanenbaum (2007, p. 30).

Descrição da Imagem: trata-se de um esquema que representa as máquinas-cliente fazendo as requisições aos servidores, que acessam
bancos de dados distintos, com o monitoramento das transações. Assim, à esquerda, há um retângulo identificado como “Aplicação
cliente” com uma seta de saída chamada “Requisição” e uma de retorno chamada “Resposta”. Nelas, há um círculo que as perpassa
e, acima de todos, está a seguinte palavra: “Transação”. Em seguida, há um retângulo denominado “Monitor de transações” com três
pares de setas chamadas “Resposta” e “Requisição”. Cada par leva a um retângulo identificado como “Servidor”, que está conectado a
três cilindros identificados como “Banco de dados”.

Há algumas vantagens do modelo cliente-servidor. Por exemplo, ele permite o processamento distri-
buído e deixa a máquina-cliente com menos sobrecarga de recursos. Isso possibilita a roda de outras
aplicações, enquanto a maior parte do processamento é feita pelo servidor.

A linguagem SQL (Structured Query Language) é a mais utilizada para executar comandos em
bancos de dados relacionais que são baseados em tabelas. Essa linguagem de programação
é fácil de manipular, foi desenvolvida pela International Business Machines Corporation (IBM)
e o objetivo dela é que os programadores possam acessar, consultar e modificar os dados
estruturais de uma empresa.

Agora, analisaremos a arquitetura cliente-servidor, para que entendamos os papéis específicos e


compreendamos como é possível fazer a virtualização das máquinas.
As máquinas-cliente executam uma tarefa importante, que é proporcionar aos usuários os meios
de interagir com servidores remotos. Para Tanenbaum (2007), há apenas dois modos para a realização
dessa interação. Primeiro, para cada serviço remoto, a máquina-cliente terá uma contraparte separada
que pode contratar o serviço pela rede. Um exemplo é uma agenda em um Assistente Pessoal Digital

104
UNIDADE 4

(PDA) de um usuário que precisa entrar em sincronia com uma agenda remota, possivelmente compar-
tilhada. Nesse caso, um protocolo de nível de aplicação manipula a sincronização, conforme Figura 4.

Máquina Cliente Máquina Servidor

Aplicação Aplicação
Protocolo
independente
de aplicação
Middleware 

SO Local SO Local

Rede

Figura 4 - Aplicação em rede com o próprio protocolo / Fonte: Tanenbaum (2007, p. 50).

Descrição da Imagem: trata-se de um esquema formado por dois retângulos. Um está à esquerda e representa a máquina-cliente
com aplicação, middleware e SO local. Isso permite ao usuário interagir com servidores remotos, que são representados pelo segundo
retângulo, chamado de máquina-servidor e que carrega aplicação, middleware e SO local. Ambos os retângulos são ligados pelo protocolo
independente de aplicação e o usuário poderá contatar o serviço pela rede.

A segunda solução é fornecer o acesso direto aos serviços remotos, oferecendo apenas uma interface
de usuário conveniente. Em outras palavras, a máquina-cliente é utilizada como um terminal sem
necessidade de armazenamento local, o que resulta em uma solução independente de aplicação, assim
como é visível na Figura 5.

Máquina Cliente Máquina Servidor

Aplicação Aplicação

Protocolo
independente
Middleware de aplicação 

SO Local SO Local

Rede

Figura 5 - Solução geral para permitir o acesso às aplicações remotas / Fonte: Tanenbaum (2007, p. 50).

Descrição da Imagem: na figura, há uma máquina-cliente e uma máquina-servidor. Elas estão lado a lado e se encontram dentro de
um quadrado com três divisões para cada uma. Nessas três divisões, encontramos, de cima para baixo, os aplicativos, o middleware e
o sistema operacional. Além disso, entre os dois quadrados, temos uma seta bidirecional representando o protocolo independente de
aplicação e há uma interligação com a representação tracejada entre os dois sistemas operacionais. É demonstrado que a máquina-
-cliente permite ao usuário interagir sem armazenamento na máquina.

105
UNICESUMAR

Em suma, as máquinas-cliente são as mais simples de serem entendidas, pois são as mesmas máquinas
que utilizamos para a execução de nossas atividades diárias, como acessar um website, jogar um game,
fazer um documento digital, assistir a um vídeo, compartilhar arquivos na nuvem e assistir às nossas
aulas. Exemplos desse tipo de computador são os computadores desktop, laptops e smartphones. Um
exemplo de como essa máquina interage com o usuário é aceitando dados de entrada do teclado e
exibindo dados para o usuário.
As máquinas-servidor, normalmente, são mais complicadas que as máquinas-cliente. Coulouris,
Dollimore e Kindberg (2007) definem servidor como um processo ligado em rede que responde aos
pedidos de programas em execução advindos dos computadores clientes. Quando cliente e servidor
interagem, a sequência de pedido do cliente e resposta do servidor é chamada de requisição remota.
Em outras palavras, o servidor é uma máquina conectada à rede e que recebe e executa as operações
associadas ao serviço. Depois, envia uma resposta ao cliente, contendo dados ou um código de erro, caso o
serviço não possa ser executado. É preciso sempre se atentar para que o pedido se inicie partindo do cliente.
Quando trabalhamos com software, os servidores podem ser de diversos tipos. Dentre eles, podemos
citar os servidores web, os servidores de e-mail, os servidores FTP, os servidores de autenticação e os
servidores de banco de dados. Vejamos mais detalhadamente alguns deles.
Os servidores de e-mail são os equipamentos responsáveis por receber e enviar e-mails. Além disso,
armazenam as caixas postais dos usuários (que podem ter milhares de caixas-postais), estabelecem as
comunicações com as estações-cliente e com os servidores de e-mail que são destino dessas mensagens.
Um dos grandes servidores de e-mail utilizados nos ambientes corporativos na rede Microsoft é o
Microsoft Exchange. Por meio dele, muitas empresas mantêm os serviços de e-mail interno ou externo.
Para a configuração do serviço, devemos informar o caminho/endereço do servidor de e-mail e
o nome de usuário que, geralmente, está cadastrado no servidor de autenticação Active Directory
(AD) para Microsoft e Samba para ambientes livres. O Active Directory (AD) é um banco de dados
e um conjunto de serviços que conectam os usuários aos recursos de rede que precisam para realizar
o trabalho. Ele foi idealizado, com o objetivo de que o usuário, com apenas uma senha, consiga obter
recursos em um diretório único.
Em geral, os servidores de arquivos são os servidores mais comum nas empresas. O servidor de
arquivos é a grande base centralizada de armazenamento de documentos e arquivos. Desse modo, os
usuários podem editar os arquivos localmente, mas preservando-os no servidor de arquivo, para que
outras pessoas tenham acesso. Por isso, esse servidor deve ter uma política de backup bem definida.
O FTP (File Transfer Protocol), em português, “Protocolo de Transferência de Arquivos”, pode ser
definido como um tipo de conexão que permite a comunicação entre dois computadores conectados
à Internet. Por exemplo, quando você acessa um site, na arquitetura cliente-servidor, você é o cliente
e solicita ao servidor de onde aquela página está hospedada que deseja fazer o download da página.
Neste momento, quem está trabalhando é o protocolo FTP. Como interface do cliente, temos, como
exemplos, o SmartFTP e o FileZilla Client.
Os servidores de banco de dados têm a finalidade de armazenar os dados de uma ou mais
aplicações de uma rede. Esse tipo de servidor manipula as informações armazenadas no banco de

106
UNIDADE 4

dados, como os dados de um usuário cadastrado em alguma plataforma de compras. Como exemplos,
temos o Oracle, para ambientes proprietários, e o PostgreSQL ou MongoDb, para ambientes livres. Já
um servidor web serve páginas e documentos por meio do protocolo HTTP. No caso de um ambiente
livre, temos o Apache ou Nginx.
Agora que já conhecemos os papéis das máquinas-cliente e das máquinas-servidor, definiremos as
máquinas virtuais e saberemos como fazer a virtualização e a conteinerização.
Quando nos referimos às máquinas virtuais (VM), estamos descrevendo uma máquina que funcio-
nará igual a uma máquina real, ou seja, por meio de um programa, criamos um computador funcional
dentro de outro. Essa máquina virtual criada trabalha de forma independente e isolada. Você destina
uma parte do seu hardware real para que ela funcione e, por estar isolada, pode rodar outro sistema
operacional na mesma máquina. Esse processo pode ser chamado de processo de virtualização.
Nos anos 60, surgiram as primeiras construções de máquinas virtuais. Esses conceitos foram re-
tomados e atualizados nos anos 90. Nessa época, a virtualização proposta pela empresa VMWare
permitiu um desempenho pequeno. Contudo, esse mercado se expandiu muito e foram elaborados
hardware e software adequados. No início dos anos 2000, com a utilização das máquinas virtuais, o
conceito se expandiu.
Em um mesmo hardware e em plataformas diferentes, podem rodar mais de uma máquina virtual
(MACHADO; MAIA, 2007). Enquanto vantagens das máquinas virtuais, temos a segurança, a confiança
e a disponibilidade, visto que a falha de um software não prejudica os demais serviços e o custo. Por
outro lado, dentre as desvantagens, estão o gerenciamento e o desempenho.
Contudo, como conseguimos fazer a virtualização? Ao analisarmos a composição de um computa-
dor, sabemos que ele é formado por hardware (componentes físicos) e softwares (sistema operacional
e aplicações). Segundo Dawson e Wolf (2011, on-line), a “virtualização desacopla as tarefas e a parte
funcional das aplicações da infraestrutura física necessária para seu funcionamento, permitindo uma
flexibilidade e agilidade sem precedentes em termos de armazenamento, servidores e desktops”. Assim,
podemos fazer a virtualização de hardware, armazenamento e redes além das aplicações.
Com o conceito de computação em nuvem, a virtualização foi explorada em função da economia
de recursos e energia. Uma das formas de virtualização é a criação de máquinas virtuais, que simulam
um ambiente completo com recursos de software e hardware para o usuário.
De acordo com Tanenbaum (2007), uma alternativa da virtualização é fornecer um sistema que
seja implementado como uma camada que protege totalmente o hardware original, mas que oferece,
como interface, o conjunto de instruções completas dele ou de outro hardware. Foi em detrimento de
essa interface poder trabalhar ao mesmo tempo com programas diferentes que foi despertado tanto
interesse. É possível ter vários sistemas operacionais diferentes executando independente e concorren-
temente na mesma plataforma. Em geral, essa camada é chamada de monitor de máquina virtual
(VMM) ou hypervisor ou máquina virtual (VM).
Também definimos um hypervisor como um software que cria e executa máquinas virtuais, ou
seja, separa os recursos físicos dos ambientes virtuais que precisam utilizar os recursos. Os hypervisores
podem ser executados em um sistema operacional (como em um laptop) ou instalados diretamente no

107
UNICESUMAR

hardware (como um servidor), que é o tipo de virtualização preferido das empresas. Os hypervisores
dividem os recursos físicos, para que sejam utilizados por diferentes ambientes virtuais.

Figura 6 - Hypervisor / Fonte: a autora.

Descrição da Imagem: a figura representa as máquinas virtuais, o software hypervisor e o hardware. Assim, apresenta quatro qua-
drados lado a lado. Em cada um está escrito, VM (que representa “máquina virtual”). Depois, temos um retângulo abaixo das quatro
máquinas virtuais, representando hypervisor (que é um software que proporciona a virtualização) e, logo abaixo, temos a representação
de três servidores.

Ainda para Tanenbaum (2007, p. 50), “os VMMs promovem maior desacoplamento entre hardware
e software, o que permite a um ambiente completo ser movido de uma máquina para outra”. Com a
máquina física, há possibilidade de criarmos diversas máquinas virtuais. Isso depende do hardware
que temos para utilizar o software que proporciona a virtualização de acordo com as possibilidades,
já que repartimos recursos.
A virtualização, em resumo, é uma técnica que separa a aplicação e o sistema operacional dos
componentes físicos. É possível afirmar que as máquinas virtuais são abstrações de hardware de
computadores, permitindo que apenas uma máquina física funcione como várias máquinas distintas.
A virtualização contém três componentes principais: o hospedeiro, onde se localiza a máquina física;
o convidado, em que são demonstradas as máquinas virtuais; e a camada de virtualização, ou seja, o
software de emulação para criar as máquinas virtuais. Observe a Figura 7.

108
UNIDADE 4

Figura 7 - Composição das máquinas virtuais / Fonte: a autora


Convidado
Descrição da Imagem: a figura apresenta os elementos dos
três componentes principais da virtualização, que são o convi-
Máquinas Virtuais dado, a camada de virtualização e o hospedeiro. Assim, temos
uma figura dividida em três partes: no primeiro retângulo,
Aplicações temos o convidado, com as aplicações e as máquinas virtuais.
Esse retângulo se liga, por meio de uma seta, ao segundo
retângulo ou à camada de virtualização, com o hardware vir-
tual e o software de emulação, que se liga à terceira camada,
que é o hospedeiro, com o armazenamento, o servidor e a
rede física.

Camada de Virtualização Clustering é uma técnica eficaz para garantir alta


disponibilidade e é ainda mais eficaz, flexível e
Software Emulador eficiente quando combinada com a tecnologia
Hardware Virtual de virtualização. Podemos transformar o nosso
computador físico em várias máquinas virtuais,
a fim de trabalharmos com dois ou mais sistemas
operacionais ao mesmo tempo. Isso é possível?
Sim e sem maiores dificuldades.
Hospedeiro
Na máquina virtual, haverá um sistema opera-
Máquina física cional construído por um software que funciona-
rá como uma aplicação no computador. Quando
você cria a máquina virtual, você também configura nela os recursos de hardware que serão destinados,
tais como parte da memória RAM e do disco rígido.
Nosso computador já tem portas USB e recursos de áudio e vídeo. Eles serão automaticamente
ativados. Dessa forma, se você está rodando uma versão do Windows 10, poderá, dentro dela, ins-
talar uma versão do sistema operacional da Apple, o OS X, qualquer versão anterior do Microsoft
Windows ou uma distribuição do Linux. Com isso, o computador físico agirá como se fosse vários
computadores diferentes.
Como exemplos de softwares para a elaboração das máquinas virtuais, temos o Oracle Virtual Ma-
chine e o VirtualBox. Podemos utilizar as versões gratuitas para construirmos as máquinas virtuais.
Vamos transformar o nosso computador e colocar nele uma máquina virtual? Para tanto, instalaremos
dois sistemas operacionais.
Utilizaremos o VirtualBox©, fabricado pela Oracle®. Esse software tem uma licença do tipo GNU
General Public License (Licença Pública Geral GNU), GNU GPL ou simplesmente GPL. A licença
GPL permite a utilização e o estudo do software de maneira livre para quaisquer fins.
O download do VirtualBox pode ser realizado no site (https://www.virtualbox.org/). Escolha a
versão adequada ao seu sistema operacional. No site, há a documentação que nos auxilia em todo o
processo de manipulação da ferramenta e apresenta informações sobre a tecnologia de virtualização.
Na página inicial, serão apresentadas explicações sobre a VirtualBox, assim como é visível na Figura 8.

109
UNICESUMAR

Figura 8 - Página Inicial do VirtualBox / Fonte: VirtualBox ([2021], on-line)¹.

Descrição da Imagem: trata-se de uma captura da tela inicial do site VirtualBox, que mostra, à esquerda, o ícone do programa com
uma lista de opções da ferramenta. No centro, há um texto com informações a respeito do programa e um grande botão azul para
download. Por fim, há um campo de busca no canto superior direito.

Após o download do instalador, devemos selecionar a opção “Next”, conforme a Figura 9.

Figura 9 - Início da VirtualBox / Fonte: a autora.

Descrição da Imagem: trata-se de uma captura de tela que apresenta a instalação de uma máquina virtual. Na parte inferior, encon-
tram-se duas possibilidades: há o botão “Next”, que permite ir até o próximo passo, e “Cancel”, para cancelar a instalação.

110
UNIDADE 4

Agora, devemos escolher os elementos da instalação que queremos e precisamos definir o local de
instalação. No nosso caso, deixaremos tudo de acordo com o padrão, tendo em vista que você deve
ter 175MB livres em seu HD para a instalação do VirtualBox. Após essas configurações, devemos
selecionar “Next”, conforme Figura 10.

Figura 10 - Local de instalação / Fonte: a autora.

Descrição da Imagem: trata-se da captura de tela da escolha do local de instalação do VirtualBox. É possível definir a pasta em que
o programa será instalado. Há os seguintes botões: “Browse”, “Disk usage”, “Back”, “Next” e “Cancel”. O botão “Next” está selecionado.

Agora, devemos escolher as opções referentes aos atalhos do VirtualBox e selecionar “Next” novamente.
Deixaremos como está, com tudo selecionado, assim como é visível na Figura 11.

111
UNICESUMAR

Figura 11 - Atalhos do VirtualBox / Fonte: a autora.

Descrição da Imagem: trata-se de uma captura de tela de atalhos com as opções do VirtualBox. Encontram-se as seguintes opções:
“Create start menu entries”, “Create a shortcut on the desktop”, “Create a shortcut in the Quick Launch Bar” e “Register file associations”.
Todas elas estão selecionadas e, abaixo, encontram-se os botões “Back”, “Next” e “Cancel”.

Depois de clicarmos em “Next”, aparecerá, na tela, um aviso. Ele afirmará que, temporariamente, você
será desconectado de sua rede, caso você queira prosseguir com a instalação. Clique no botão “Yes”,
conforme Figura 12.

Figura 12 - Aviso / Fonte: a autora.

Descrição da Imagem: captura de tela que contém um aviso do VirtualBox. Ele indica que, para a instalação, a rede será temporaria-
mente desligada. Embaixo, encontram-se os botões “Yes” (sim) e “No” (não)

112
UNIDADE 4

Feito isso, é necessário selecionar “Install” para iniciar a instalação. Depois, devemos aguardar alguns
minutos. O tempo de instalação varia de máquina para máquina.

Figura 13 - Preparado para a instalação / Fonte: a autora.

Descrição da Imagem: trata-se de uma captura de tela que sinaliza que a instalação do VirtualBox será iniciada. Encontram-se os
botões “Back”, “Install” e “Cancel”. O botão “Install” está selecionado

Ao término, é preciso deixar marcada a opção que abre o Virtualbox após a finalização da instalação
e selecionar “Finish”, conforme Figura 14.

Figura 14 - Terminando a instalação / Fonte: a autora.

Descrição da Imagem:trata-se de uma captura de tela que sinaliza que a instalação do VirtualBox será encerrada. Lê-se o aviso “Click
the Finish button to exit the Setup Wizard” e o botão é exposto “Finish” para ser selecionado.

113
UNICESUMAR

Depois de finalizada, a VirtualBox aparecerá na área de trabalho. Com um duplo clique no ícone, é
mostrada a interface do Oracle VM VirtualBox, em que temos várias opções.
Agora, iniciaremos a configuração de uma nova máquina no assistente de criação de máquina vir-
tual. Iremos até a opção “Novo”, que permite criar máquinas virtuais. A partir disso, são habilitadas
as opções de configurações sobre a máquina selecionada: Descartar e Iniciar.

Figura 15 - Criação da máquina virtual com a escolha de nome, memória e disco rígido / Fonte: a autora.

Descrição da Imagem: acabamos de instalar o programa. Agora, dimensionaremos a nossa nova máquina virtual. Na figura, temos
as opções para gerenciarmos a criação de nossa máquina virtual. Assim, do lado esquerdo, encontra-se uma máquina virtual já cons-
truída com o nome Linux. Neste momento, ela está desligada. Esse gerenciador tem uma barra de menu com “Arquivo”, “Máquina” e
“Ajuda”. Também a barra de “Ferramentas”, “Novo”, “Configurações”, “Descartar” e “Iniciar”. Abaixo da barra de “Ferramentas”, temos as
descrições. Neste momento, da máquina virtual já existe. Nas definições de “Geral”, estão o nome da máquina e o sistema operacional
contido nela. Depois, são expostas todas as configurações, como sistema, tela, armazenamento, áudio, rede, USB, pastas comparti-
lhadas e descrição.

114
UNIDADE 4

Com a alternativa “Novo”, o primeiro passo é dar um nome e escolher o sistema operacional, con-
forme a Figura 16.

Figura 16 - Nome e sistema operacional / Fonte: a autora.

Descrição da Imagem: trata-se de uma captura de tela em que nomearemos a máquina e o sistema operacional para ser instalado na
máquina virtual. Encontram-se os seguintes campos: “Nome e “Pasta da Máquina”, em que está selecionado o seguinte diretório: “C:\
Users\adria\VirtualBox VMs. No “Tipo”, está selecionado “Microsoft Windows” e, em relação à Versão, há a opção “Windows 7 (64-bit)”
selecionada”. Seguem, abaixo, os seguintes botões: “Modo expert”, “Próximo (N)” (que está selecionado) e “Cancelar”.

Após nomear a máquina, aqui, chamada Adri, com o sistema operacional Windows, ela será instala-
da em uma pasta da máquina, nesse caso, C:\Users\adria\VirtualBox VMs. No entanto, você poderá
criá-la no diretório que for conveniente, por exemplo C:\Users\José\VirtualBox VMs, pois, em seu
computador, haverá o seu usuário, nesse caso, José.
Clicamos em “Próximo (N)” e escolhemos o tamanho da memória, como na Figura 17.

115
UNICESUMAR

Figura 17 - Criando memória / Fonte: a autora.

Descrição da Imagem: trata-se de uma captura de tela em que se deve escolher a quantidade de memória RAM em megabytes. Há
um indicador em formato de barra horizontal, o qual indica a quantidade de memória a ser escolhida, que vai de 4MB, à esquerda, a
8192 MB, à direita. O valor “2048 MB” é selecionado.

Após escolher o tamanho da memória, clicamos em “Próximo (N)” e configuramos os detalhes do


disco rígido, assim como é feito na Figura 18.

Figura 18 - Criando disco rígido virtual / Fonte: a autora.

Descrição da Imagem: trata-se de uma captura de tela que permite a criação do espaço do disco rígido para utilizar na máquina virtual.
Recomenda-se utilizar um disco rígido de 32,00GB. Lê-se três orientações de escolha: “Não acrescentar um disco rígido virtual”, “Criar
um novo disco rígido virtual” e “Utilizar disco rígido virtual existente”. Abaixo, encontram-se dois botões “Criar” (que é o selecionado)
e “Cancelar”.

116
UNIDADE 4

Após criarmos o disco rígido, devemos escolher os detalhes desse disco. Podemos deixar em VDI
(VirtualBox Disk Image), assim como é visível na Figura 19.

Figura 19 - Criando disco rígido virtual / Fonte: a autora.

Descrição da Imagem: trata-se de uma captura de tela que possibilita criar o espaço do disco rígido para utilizar na máquina virtual.
Deve-se escolher o tipo de arquivo de disco rígido. As opções são: “VDI (VirtualBox Disk Image)”, que está selecionado, “VHD (Virtual
Hard Disk)” e “VMDK (Virtual Machine Disk)”. Abaixo, estão os botões “Modo expert”, “Próximo (N)” (que é o selecionado) e “Cancelar”.

Depois de criarmos o disco rígido, devemos escolher os detalhes desse disco, com a permissão de ser
dinamicamente alocado, o que permite que o arquivo que contém o disco rígido cresça de acordo com
a necessidade, assim como é exposto na Figura 20.

117
UNICESUMAR

Figura 20 - Criando disco rígido virtual / Fonte: a autora.

Descrição da Imagem:trata-se de uma captura de tela que permite criar o espaço do disco rígido para utilizar na máquina virtual. É
preciso escolher se o disco rígido virtual crescerá à medida em que é utilizado ou se deve ser criado com o tamanho máximo. Seguem
as seguintes opções: “Dinamicamente alocado” (opção escolhida) e “Tamanho fixo”. Abaixo, encontram-se os botões “Próximo (N)”, que
é o selecionado, e “Cancelar”.

Após criarmos o disco rígido, precisamos escolher os detalhes desse disco, informando a localização
e o tamanho, assim como é visível na Figura 21.

Figura 21 - Criando disco rígido virtual / Fonte: a autora.

Descrição da Imagem: trata-se de uma captura de tela que permite criar a localização e o tamanho do disco rígido para utilizar na
máquina virtual. Deve ser selecionado o tamanho da imagem de disco virtual em megabytes, que será o limite máximo de dados que
uma máquina poderá armazenar nesse disco rígido. A medida é de 4,00MB a 2,00TB - selecionado por 32,00GB. Abaixo, temos os
botões “Criar” (selecionado) e “Cancelar”.

118
UNIDADE 4

Depois de criarmos o disco rígido, contemplamos as configurações de nossa máquina virtual, assim
como a Figura 22 evidencia.

Figura 22 - Finalização da criação da máquina virtual / Fonte: a autora.

Descrição da Imagem: acabamos de criar a nossa nova máquina virtual. Na figura, temos, do lado esquerdo, uma máquina virtual já
construída. O nome é Adri. Neste momento, ela está desligada. O gerenciador da máquina virtual nos permite que, assim que clicamos
nela, vejamos todas as características da máquina criada. Desse modo, temos uma barra de Menus e uma barra de Ferramentas.
Abaixo da barra de Ferramentas, temos as descrições da máquina virtual Adri. Nas definições de Geral, temos o nome da máquina e o
sistema operacional contido nela (Windows 7- 64 bits). Depois, temos todas as configurações do Sistema, com o tamanho da memória
principal, que, neste caso, é 2048MB, ordem de boot e aceleração. Temos Tela, com memória de vídeo, neste caso, 18MB, controladora
gráfica, servidor de desktop remoto e gravação; também há Armazenamento e Áudio com driver do hospedeiro Windows DirectSound
e controladora Intel HD Áudio. Também há Rede, USB e Pastas Compartilhadas, que, no momento, não existem. Por fim, há a Descrição,
que, no momento, não há nenhuma.

Vamos construir um computador com diferentes sistemas operacio-


nais? Assim, podemos trabalhar com os dois ao mesmo tempo, sem
desligarmos a máquina, apenas instalando uma máquina virtual.

119
UNICESUMAR

Configuramos uma máquina virtual. Podemos, a partir de agora, instalar e trabalhar com dois
sistemas operacionais em uma mesma máquina.
Agora temos um computador dentro de outro computador. Estamos com duas possibilidades
de trabalho e dividimos os recursos entre as duas máquinas quando criamos a máquina virtual.
Por termos o isolamento das máquinas, certamente, as aplicações e os serviços que serão exe-
cutados dentro de uma máquina virtual não poderão interferir no sistema operacional original,
nem em outras máquinas virtuais. Além do mais, as máquinas virtuais podem ser copiadas e
transferidas entre computadores e deletadas quando não é necessário mais usá-las.
A máquina virtual também é uma facilitadora no momento em que estamos utilizando um
sistema operacional mais moderno, mas com softwares mais antigos e que só rodam em de-
terminada versão do sistema operacional. Por exemplo, na minha máquina, tenho o Windows
10 instalado e tenho um software antigo que uso muito e que só roda no sistema operacional
Windows 7. Por fim, é possível criar uma máquina virtual no celular, a fim de dividir a parte do
uso que seja pessoal da profissional.

120
1. Para o usuário, não há uma forma de identificar se a máquina que ele está usando é
real ou virtual, pois o funcionamento das duas é igual. Contudo, hoje, as empresas de
Tecnologia da Informação procuram minimizar os custos em relação à infraestrutura.

Se necessitarmos, na infraestrutura exposta pelo enunciado, instalar dois sistemas


operacionais distintos, podemos utilizar a:

a) Realidade aumentada.
b) Simulação.
c) Virtualização.
d) Emulação.
e) Realidade virtual.

2. O grande objetivo da virtualização é fornecer uma versão virtual de tecnologias essen-


ciais em computação. Sobre a temática, leia o conteúdo a seguir.

______________________é uma técnica eficaz para garantir alta disponibilidade e é ainda


mais eficaz, flexível e eficiente quando combinada com a tecnologia de virtualização.
Uma vantagem para o cluster que é transmitida por essa tecnologia é o balanceamen-
to de carga de aplicativos em um cluster virtual. É possível usar o índice de carga e
a frequência de logons de usuário para obter um status de balanceamento de carga.
Também é possível implementar mecanismos automáticos de scale-up e scale-down
de um cluster virtual com base nesse modelo.

Assinale a alternativa que apresenta o conteúdo que completa corretamente a lacuna


presente no enunciado:

a) Virtualização.
b) Virtual Cluster Mapping.
c) Clustering.
d) Copy on Write (COW).
e) Peer-to-peer.

121
3. O grande objetivo da virtualização é fornecer uma versão virtual das tecnologias es-
senciais em computação.

Considerando os principais fatores que levam a utilização de virtualização, analise as


afirmativas a seguir:

I) Rapidez na implantação.
II) Redução de custos administrativos.
III) Aproveitamento da capacidade de computação e performance.

É correto o que se afirma em:

a) I.
b) I e II.
c) II e III.
d) I e III.
e) I, II e III.

122
5
Tolerância às falhas
e segurança em
sistemas distribuídos
Me. Adriane Loper

Nesta unidade, entenderemos os conceitos de tolerância às falhas


e de segurança em sistemas distribuídos. A tolerância às falhas,
em sistemas distribuídos, é o esforço que o sistema faz quando
ocorre algum erro no funcionamento, para que haja a recuperação.
Diante disso, refletiremos sobre a segurança de computadores e
saberemos como lidar com as ameaças que os sistemas distribuí-
dos podem ser alvos. Portanto, definiremos os tipos de ataques
que podem afetá-los e entenderemos como podemos proteger os
nossos sistemas distribuídos.
UNICESUMAR

Algumas questões importantes e que não são fáceis de responder são: como criar sistemas distribuídos
seguros e com poucas vulnerabilidades? Como trabalhar com tolerância às falhas mesmo após uma
falha de segurança? Aprenderemos as diretivas para atingirmos esses objetivos.
Quando falamos em sistemas distribuídos, estamos nos referindo a inúmeros computadores in-
terligados. Você já pensou em quantas ameaças os sistemas distribuídos podem ser alvos? Quais são
os tipos de ataques que podem afetar os sistemas distribuídos? Como podemos proteger os nossos
sistemas distribuídos?
Iniciaremos os nossos estudos por meio de duas definições clássicas de sistemas distribuídos: a de
Tanenbaum (2007) e a de Coulouris, Dollimore e Kindberg (2007). Para Tanenbaum (2007, p. 1), os
sistemas distribuídos são “um conjunto de computadores independentes que se apresenta a seus usuá-
rios como um sistema único e coerente”. Por outro lado, para Coulouris, Dollimore e Kindberg (2007,
p. 15), trata-se de um sistema em que os “componentes localizados em computadores interligados em
rede se comunicam e coordenam suas ações apenas passando mensagens”.
Desse modo, podemos concluir que os sistemas distribuídos carregam muitas vulnerabilidades
(fraquezas) para possíveis invasões, afinal, são inúmeros os recursos computacionais interligados por
uma rede de comunicação, a fim de fazer o processamento colaborativo de determinada tarefa de for-
ma transparente e coesa, como se apenas um único computador centralizado estivesse executando a
atividade. Esses recursos computacionais podem ter brechas para problemas de segurança no hardware,
no software ou na comunicação.
A segurança dos sistemas distribuídos tem uma dimensão enorme e muito importante. Ela é com-
posta por hardware e software, os quais trabalham com redes, têm sistemas operacionais distintos e
protocolos variados. Para mantermos os recursos computacionais seguros e funcionais, temos que
analisar e aplicar técnicas de tolerância às falhas nos sistemas distribuídos, uma vez que, diante da
composição dos sistemas distribuídos, temos muitos equipamentos e é preciso ter uma redundância
que minimize as falhas. O sistema deverá funcionar mesmo com alguns componentes falhos.
Por exemplo: quando navegamos pela Internet, nosso navegador procurará as informações ne-
cessárias em um ou em mais servidores. Se, nessa busca, um servidor não estiver funcionando, você
receberá rapidamente uma mensagem do seu navegador se deseja tentar de novo. Isso é tolerância às
falhas. Além de termos que projetar bons sistemas distribuídos, nos quais a tolerância às falhas deve
ser um dos aspectos relevantes, devemos pensar na segurança das informações que circulam por todos
os componentes de nossos sistemas. Essa é uma jornada muito importante.
Para pensarmos de forma prática, suponha que você foi contratado para substituir um software legado
que havia na empresa Baterias Melhores S.A. Essa plataforma teve sérios problemas relacionados ao vaza-
mento de informação, fazendo com que muitos clientes e fornecedores da empresa fossem prejudicados.
Diante disso, você precisa fazer um levantamento das possíveis causas desse vazamento e indicar ao
cliente as melhores proteções, tendo em vista que esse software trabalhará em uma plataforma como
serviço (PaaS) e será acessado por meio da Internet.
Para termos segurança na elaboração do nosso projeto de software e para que ele funcione correta-
mente, devemos voltar a nossa atenção aos diversos aspectos relacionados à segurança da informação,

124
UNIDADE 5

como os pilares da segurança da informação (confidencialidade, integridade, disponibilidade, auten-


ticidade e legalidade), os elementos de risco (ativos, vulnerabilidades, agentes de ameaça, ameaças,
vulnerabilidades, probabilidade e impacto) e os mecanismos de defesa necessários, incluindo antivírus,
firewall e políticas de segurança.
Pense sobre a temática e anote as suas considerações no diário de bordo.

DIÁRIO DE BORDO

Em sistemas distribuídos, podemos ter uma, duas ou diversas falhas por diversas razões e em mo-
mentos diferentes. Realmente, isso incomoda todos envolvidos na tecnologia da informação, visto
que não há como prever quando e como a falha acontecerá e justificar o motivo pelo qual ela ocor-
reu. Entretanto, quando ela acontece, temos que fazer com que os sistemas distribuídos continuem
funcionando, para que o cliente não seja prejudicado. Vamos entender os tratamentos de falhas em
sistemas distribuídos?
Um dos princípios essenciais para que os sistemas distribuídos funcionem da melhor maneira é
a tolerância às falhas. Tanenbaum (2007) sustenta que uma característica dos sistemas distribuídos
em comparação aos sistemas de máquina única é a falha parcial. As falhas parciais podem afetar o
funcionamento de alguns componentes, mas não farão o sistema inteiro cair ou sair do ar completa-

125
UNICESUMAR

mente. Essa forma de trabalho dos sistemas distribuídos traz vantagens em relação aos sistemas de
máquina única, pois, na máquina única, a falha seria total.
O objetivo de um projeto de sistemas distribuídos é fazer uma construção tolerante às falhas, para
que os sistemas se recuperem automaticamente das falhas parciais, sem que o desempenho global deles
seja afetado. Os sistemas devem funcionar razoavelmente bem até que a falha seja corrigida. O que
se deseja é que qualquer sistema, mesmo que haja alguma falha, continue funcional e utilize alguma
técnica para solucionar o problema.
Segundo Coulouris, Dollimore e Kindberg (2007), as técnicas de tratamento de falhas são:
• Detecção de falhas.
• Mascaramento de falhas.
• Tolerância às falhas.
• Recuperação de falhas.
• Redundância.

Na detecção de falhas, podemos descobrir a falha por meio do chamado checksum (ou soma de ve-
rificação), que é uma das técnicas usadas para detectar erros, alterações de pacotes na rede e dados
danificados em uma mensagem ou em um arquivo. Por outro lado, com o mascaramento de falhas,
é possível eliminar uma mensagem danificada, retransmitindo-a e ocultando-a. Pode-se armazenar
dados em discos diferentes por segurança.
Outro conceito trazido por Tanenbaum (2007) é o de resiliência de processo. Ele representa as
técnicas para que o sistema se recupere das falhas que acontecem. Como exemplo, temos o multicast
confiável, que trabalha com a confiabilidade da transmissão de mensagens aos processos. A técnica
primordial para resolver falhas é a redundância.
Quando nos referimos à tolerância às falhas, estamos tratando de sistemas confiáveis. A confiabi-
lidade em sistemas distribuídos está centrada em algumas propriedades:
1. Disponibilidade: faz com que um sistema permaneça funcionando corretamente e esteja
pronto para ser usado nas requisições dos usuários.
2. Confiabilidade: refere-se ao tempo de funcionamento sem falhas. Em outras palavras, trata
do tempo em que funciona sem interrupções.
3. Segurança: refere-se à propriedade de não deixar de funcionar principalmente em situações
críticas, como controles de aviação, usinas nucleares, controles de semáforos e e-commerce. Um
dos fatores importantes será a integridade, que estudaremos com mais atenção nesta unidade.
4. Capacidade de manutenção: trata da facilidade de correção das falhas. Deseja que as falhas
sejam encontradas e corrigidas automaticamente.

Para Tanenbaum (2007), podemos descrever as falhas assim como é visualizado na Tabela 1.

126
UNIDADE 5

Tipo de falha Descrição


Falha por queda O servidor para de funcionar, mas estava funcionando corretamente
até parar.
Falha por omissão O servidor não consegue responder a requisições que chegam
Omissão de recebimento O servidor não consegue receber mensagens que chegam
Omissão de envio O servidor não consegue enviar mensagens
Falha de temporização A resposta do servidor se encontra fora do intervalo de tempo
Falha de resposta A resposta do servidor está incorreta
Falha de valor O valor da resposta está errado
Falha de transição de estado O servidor se desvia do fluxo de controle correto
Falha arbitrária Um servidor pode produzir respostas arbitrárias em momentos ar-
bitrários.
Tabela 1 - Diferentes tipos de falhas que podem acontecer em sistemas distribuídos / Fonte: Tanenbaum (2007, p. 196).

Também existem outras classificações de tipos de falhas. Conheça-as a seguir:


Falha transiente: é a que acontece apenas uma vez. Se a operação for repetida, a falha não acontecerá
novamente. Um exemplo é um pássaro voando na frente de um feixe de micro-ondas, interrompendo
a transmissão.
Falha intermitente: é a que acontece algumas vezes, ou seja, não acontece por período indeter-
minado, mas reaparece. É difícil de diagnosticar, já que não há como saber quando irá ocorrer. Como
exemplo, temos o mau contato.
Falha permanente: caracteriza-se por continuar a existir até que o componente com problemas
seja substituído. Um exemplo é um hardware queimado.
Para a recuperação de falhas, temos o rollback (rolar para trás) no servidor. Em outras palavras,
quando estivermos fazendo uma transação e, por qualquer motivo, ela não se completar, o sistema
recuperará os dados.
Uma das principais técnicas para mascarar as falhas é usar a redundância. A redundância, de
acordo com Ferreira, Santos e Antunes (2005), significa a existência de vários métodos para efetuar a
função de algum equipamento alternativo ou a mais. Diante disso, mesmo na presença de falhas, esses
métodos asseguram automaticamente o acesso aos serviços prestados.
Desse modo, com componentes extras o sistema não parará. Esses componentes podem ser re-
dundância de hardware, de software, de tempo e de informação. Conheça-os a seguir:
Redundância de hardware: este tipo de redundância é obtido com a replicação de componentes
eletrônicos. São exemplos: memórias extras e fontes de alimentação extras. Eles assumem as tarefas
do sistema, em caso de falha dos hardwares principais.
Redundância de software:  nessa redundância, são utilizadas várias versões do mesmo software/
tarefa, implementadas segundo a mesma especificação, porém por equipes de desenvolvimento
diferentes (preferencialmente, sem comunicação entre elas).

127
UNICESUMAR

Redundância de tempo: acontece quando uma ação é realizada e, se necessário, é feita novamente.
Por exemplo: se uma transação abortar, ela pode ser refeita sem prejuízo. É especialmente útil quando
as falhas são transientes ou intermitentes.
Redundância de informação: corresponde à duplicação dos dados e/ou adição de informações
redundantes a eles, de forma a permitir a verificação da consistência e/ou correção dos erros detec-
tados, assim como acontece nos códigos de detecção e correção de erros bits extras que podem ser
adicionados para a recuperação de bits deteriorados. Um exemplo é o código de Hamming, um método
que detecta e corrige os erros em uma transmissão binária. É uma forma de colocar bits de verificação
extras, os quais chamamos de bits de paridade.
As falhas têm algumas causas prováveis. A seguir, expomos as explicações dessas causas:
1. Problemas na especificação: especificação incorreta de algoritmos, arquiteturas ou projetos
de HW e SW.
2. Problemas na implementação: codificação equivocada ou utilização de componentes de
baixa qualidade.
3. Defeitos de componentes: defeitos de fabricação.
4. Interferências externas: radiações e interferência eletromagnética.
5. Problemas de segurança: falhas causadas por malwares.
6. Intrusão: exploração de vulnerabilidades.
7. Projeto de software mal feito: pode ficar arcaico, possibilitando falhas na segurança.

Segundo Tanenbaum (2007), se considerarmos as falhas de comunicação ou do canal de comunicação,


precisaremos de uma comunicação confiável entre cliente-servidor, tendo em vista que, no canal de
comunicação, é possível ter falhas por queda, omissão, temporização e arbitrárias. A tolerância às fa-
lhas em sistemas distribuídos é provida a partir das facilidades oferecidas por mecanismos de suporte
básico, também conhecidos como mecanismos de tolerância às falhas.
A implementação dos mecanismos implica em custos adicionais, uma vez que eles precisam de
processamento e de troca de mensagens adicionais para cumprirem corretamente os objetivos deles.
Assim, apesar de serem necessários em situações de falha, os mecanismos de tolerância às falhas podem
comprometer o desempenho do sistema durante o funcionamento normal. Com isso, o projetista deve
conciliar os custos adicionais com a estimativa da carga das aplicações, os requisitos de desempenho
e o grau de confiabilidade desejado para o sistema.
Há diversos mecanismos de tolerância às falhas que dão suporte à implementação de sistemas
distribuídos confiáveis. São exemplos: detectores de defeitos, protocolos de comunicação em grupo,
mecanismos de sincronização de estado entre servidores replicados e protocolos para replicação bi-
zantina. Esses mecanismos variam de acordo com a severidade da falha a ser mascarada e o modelo de
sistema distribuído que eles se propõem a suportar. Dentre esses mecanismos, os detectores de defeitos
e os protocolos de comunicação em grupo são os componentes básicos para a implementação de
muitas facilidades necessárias aos demais mecanismos.

128
UNIDADE 5

Tanenbaum (2007) sustenta que uma das estratégias para tolerar uma falha é organizar vários pro-
cessos idênticos em um só grupo. O princípio fundamental que os processos têm é que, quando uma
mensagem é enviada ao grupo, todos os processos componentes do grupo a recebem, de modo que,
se um processo do grupo falhar, outro o substituirá.
Esses grupos podem ser dinâmicos e precisam tratar os conjuntos de processos como um único
processo. Além disso, podemos ter grupos simples ou hierárquicos, assim como é visível na Figura 1.

grupo simples
grupo hierárquico Coordenador

Operário

(a) (b)

Figura 1 (a) - Grupo simples; (b) - Grupo hierárquico / Fonte: Tanenbaum (2007, p. 199).

Descrição da Imagem: a figura ilustra os grupos simples e hierárquicos, representados por dois círculos presentes em “a” e em “b”.
O primeiro diz respeito ao grupo simples. Desse modo, há, dentro do círculo, uma figura com cinco processos que se interligam. Por
outro lado, o segundo círculo tem, no interior, uma figura com cinco processos. Um deles é o coordenador e os outros quatro pontos,
que são os operários, ligam-se ao “coordenador”.

Nos grupos simples, todos os processos são iguais dentro de um grupo e as decisões são tomadas
coletivamente. Como vantagem, mesmo que um processo caia, o grupo continua a oferecer o serviço.
Por outro lado, a tomada de decisão pode ser complicada, exigindo uma votação. Isso causa um retardo
e pode ser caracterizado como uma desvantagem.
Nos grupos hierárquicos, há certo tipo de hierarquia e existe apenas um processo coordenador. Os
demais são chamados de operários. Sempre que uma requisição é gerada, ela é enviada ao coordenador.
Ele, por sua vez, decide qual é o operário mais adequado para executá-la. A vantagem é que as decisões
são centralizadas. Por outro lado, como desvantagem, caso o coordenador falhe, o serviço falhará.
Como há a comunicação em grupos, devem haver mecanismos para criar e eliminar grupos, e
possibilitar a entrada e a saída de processos em um grupo. Existem duas abordagens para esse geren-
ciamento: servidor de grupo e gerenciamento distribuído.

129
UNICESUMAR

No servidor de grupo, o servidor receberá todas as requisições e terá o armazenamento de todas as


informações dos grupos e dos membros. Esse é um método direto e eficiente. Contudo, por ser centraliza-
do, se o servidor de grupo cair, é perdido o gerenciamento e o grupo precisa ser totalmente reconstruído.
No gerenciamento distribuído, se houver um multicast confiável, um processo pode enviar
uma mensagem a todos os membros do grupo anunciando que deseja se unir ao grupo. Para sair de
um grupo, o processo deve mandar uma mensagem avisando a todos. No entanto, nesse gerencia-
mento, é difícil detectar as quedas e, para entrar ou sair de um grupo, é preciso estar síncrono com
as mensagens enviadas/recebidas.
Os protocolos de comunicação em grupo são fundamentais para a difusão (ou sincronização) contínua
dos estados entre os servidores, permitindo que um servidor secundário esteja apto a assumir o papel do
primário na ocorrência de falhas. É possível considerar a tolerância à falha e a possibilidade de para-
lelismo enquanto propriedades fundamentais de um sistema distribuído. Depois de termos uma visão
relacionada à tolerância às falhas, devemos ter uma segurança adequada para que falhas não ocorram.

Você já ouviu alguém falar do Roadsec? Trata-se de um evento itine-


rante que percorre os estados do Brasil com palestras, atividades e
campeonatos sobre a segurança em tecnologia e desenvolvimento.
Achou interessante? Acesse o QR Code para saber mais!
Para acessar, use seu leitor de QR Code.

Uma das formas seguras de proteção é a segurança multicamadas. Quando nos referimos às mul-
ticamadas, estamos trabalhando com diversas tecnologias para proteger a empresa dos ataques. Em
outras palavras, embora um atacante ultrapasse a primeira camada, ele terá novos desafios pela frente,
o que dificulta o acesso dele.
A Microsoft Corporation afirma que a redução da superfície de ataque também é uma forma de
minimizar os riscos em sistemas distribuídos, ao reduzir as oportunidades de exploração de pontos
fracos e/ou vulnerabilidades (IMPLEMENTAÇÃO..., 2010). Isso pode significar a restrição de acesso
aos serviços do sistema, aplicando aquilo que é conhecido como “privilégio mínimo” e o conceito de
defesa em camadas.
Podemos pensar no conceito de defesa em camadas, que foi baseado em estratégias militares. Desse
modo, uma defesa em camadas envolve os seguintes elementos:
• Limitações de acesso ao ambiente em que se mantém um sistema.
• Restrição de acesso às funcionalidades do sistema.
• Utilização de medidas de segurança, como a exigência de credenciais de acesso para cada nível
que se pretende acessar.

130
UNIDADE 5

Ativo de informação: qualquer bem de valor para uma empresa. São exemplos: servidores,
registros e documentos.
Ataque: incidente de segurança decorrente de uma vulnerabilidade. A vulnerabilidade é uma
fragilidade ou um ponto fraco de um ativo.

A segurança da informação envolve a identificação, a proteção, a detecção, a resposta e a recuperação


(NIST, 2021, on-line)¹.



Identificação Proteção Detecção Resposta Recuperação

Figura 2 - Fases que envolvem a segurança da informação / Fonte: adaptada de NIST (2021, on-line)¹.

Descrição da Imagem: trata-se de um esquema que ilustra, por meio de figuras em formato de seta, as fases que envolvem a segurança
da informação. São elas: identificação, proteção, detecção, resposta e recuperação.

Quando trabalhamos com a segurança da informação, devemos compreender que a segurança deve ser
identificada em todos os componentes de um sistema distribuído. A proteção de dados efetiva exige
a aplicação de técnicas e controles de segurança, o que pode acontecer em três aspectos: tecnologia,
processos e pessoas. Além disso, pode ser dividida em quatro grandes camadas:
1. Endpoint: conhecido como “nível de usuário”, é uma proteção de dados que abrange desde os
dispositivos móveis até os computadores corporativos e pessoais, além de incorporar melhorias
em processos, com o intuito de evitar fraudes e erros operacionais. Também fazem parte os
treinamentos, para que as pessoas tomem conhecimento da preocupação com a privacidade,
e as técnicas que podem ser empregadas, a fim de aumentar o nível de proteção no dia a dia.
2. Servidores: na modalidade on-premises (servidores físicos) ou em servidores em nuvem
(cloud), são necessários níveis de proteção robustos para evitar acessos não autorizados, vaza-
mentos de informações corporativas e dados pessoais confiados à empresa.
3. Rede interna: de acordo com Amorim (2019a), quando falamos da terceira camada, sabemos
das dificuldades, pois são necessárias ações mais robustas, as quais devem ser estruturadas em
conjunto com o time de infraestrutura. Isso não significa que as camadas de endpoint e servi-
dores não tenham essa necessidade, mas, quando tratamos da rede interna, alteramos toda a
arquitetura corporativa para as implementações de segurança.

131
UNICESUMAR

4. Rede externa ou perímetro: em outro artigo, Amorim (2019b) defende que a rede externa ou
perímetro carrega uma atenção especial, tendo em vista o contato dela com o mundo externo.
A maioria dos ataques são provenientes desse ambiente.

Portanto, somente com um conjunto de técnicas e soluções é possível criar um plano de proteção de
dados que minimize os riscos corporativos de uma empresa.

Confira alguns aspectos que merecem atenção em relação à segurança das informações:
Ameaça: possibilidade de um ocorrer incidente visando afetar um ambiente, sistema ou ativo
de informação.
Probabilidade: possibilidade de acontecer uma falha de segurança.
Impacto: consequência de um ataque bem-sucedido.
Controle: compõe os procedimentos executados para sanar as vulnerabilidades de um sistema
de informação.

A segurança dos sistemas distribuídos pode ser dividida em duas etapas: a comunicação de usuários
e processos localizados em máquinas diferentes e a autorização de acesso aos recursos e aos
serviços disponíveis.
A segurança de um sistema distribuído pode ser relacionada aos fatores expostos na figura a seguir.
Figura 3 - Propriedades fundamentais da se-
 gurança da informação / Fonte: Matsunaga
(2018, on-line).

Descrição da Imagem: trata-se de uma


ilustração que representa as propriedades
fundamentais da segurança da informação.
Há três pilares em estilo grego e cada um
CONFIDENCIALIDADE

representa uma propriedade. No primeiro,


está escrito “Disponibilidade”; no segundo,
DISPONIBILIDADE

“Integridade” e, no terceiro, “Confidenciali-


INTEGRIDADE

dade”. Acima desses pilares, encontra-se o


título: “Segurança da informação”.

A segurança da informação se baseia


na Confidencialidade, na Integridade
e na Disponibilidade (CID). Apesar de
serem muito importantes, eles não são
os únicos pilares para os sistemas dis-
tribuídos. Também podemos acres-
centar a autenticidade e o não repúdio.

132
UNIDADE 5

1. Confidencialidade: segundo a ABNT NBR ISO/IEC 27001, a confidencialidade é a propriedade


de que a informação não estará disponível ou será revelada a indivíduos, entidades ou processos
não autorizados (ABNT, 2013). Partindo dessa definição técnica, podemos complementar as
chamadas entidades com máquinas em um sistema distribuído. Um dos mecanismos para se
manter a confidencialidade das comunicações é por meio da utilização da autenticação baseada
em chave privada.
2. Integridade: as informações devem permanecer íntegras, ou seja, não podem sofrer qualquer
tipo de modificação. De acordo com a ABNT NBR ISO/IEC 27001, a integridade é a proprie-
dade de salvaguarda da exatidão e da completeza de ativos (ABNT, 2013).
3. Disponibilidade: tem, como característica, a rápida percepção, em caso de comprometimento.
Os usuários e os administradores dos sistemas identificam rapidamente quando um recurso
se torna indisponível, já que as atividades ficam imediatamente paralisadas. As informações
devem estar disponíveis. Ela é notada quando há um incidente de segurança.
4. Autenticidade: é a garantia de que a informação foi originada de um determinado emissor.
Assim, é possível garantir que a informação não será modificada por agentes não autorizados.
Busca garantir que determinada pessoa ou sistema é, de fato, quem ela diz ser.
5. Irretratabilidade ou não-repúdio: característica de não poder negar as ações referentes à
informação, isto é, o usuário não consegue negar que enviou, acessou, modificou, copiou ou
destruiu a informação. Garante a autenticidade de uma informação utilizada por sistemas dis-
tribuídos. Tem abrangência, pois se aplica às diferentes transmissões, como e-mails e arquivos
entre diferentes organizações.

A ABNT NBR ISO/IEC 27001 também apresenta outras propriedades importantes, como a
responsabilidade, o não repúdio e a confiabilidade.
Já a ISO/IEC 13335-1, que trata dos conceitos e dos modelos para a segurança de TI, cita a
confidencialidade, a integridade, a disponibilidade, a contabilidade, a autenticidade e a con-
fiabilidade como os objetivos a serem definidos, alcançados e mantidos pela segurança de TI.
Fonte: adaptado de ABNT (2013) e ISO (2004).

Podemos fazer uso de diversas ferramentas para que as propriedades da informação sejam preservadas.
Exporemos alguns exemplos:

133
UNICESUMAR

Modelos de criptografia de dados para garantir o princípio de confidencialidade.


Assinatura digital e chaves de sessão para garantir o princípio da integridade.
Políticas de segurança para garantir o princípio da disponibilidade.
Assinatura digital e certificado digital para garantir o princípio da irretratabilidade.

Agora, faremos uma breve explicação de algumas formas de proteção. Começaremos pela criptografia.
A criptografia representa um conjunto de controle de segurança que vai além da proteção da confiden-
cialidade. A evolução da criptografia levou à computação quântica. Existem estudos em criptografia
pós-quântica que visam proteger a informação no mundo da computação quântica.
Uma definição mais recente sustenta que a criptografia é o estudo de técnicas matemáticas relacio-
nadas aos aspectos da segurança da informação, tais como confidencialidade, integridade, autenticação
de entidade e autenticação de origem de dados (MENEZES; OORSCHOT; VANSTONE, 1996).
A criptografia vem sendo empregada para garantir, de forma muito eficaz, a integridade, a confiden-
cialidade e a autenticidade das informações por meio do uso de certificados e de assinaturas digitais,
protegendo muitos atributos de violação da informação.
As chaves criptográficas são usadas para uma série de funções. As propriedades da chave associadas
ao tipo, ao comprimento, ao período e ao tipo de criptografia dependerão da função pretendida.
A chave de sessão é uma chave simétrica de uso único criada para criptografar todas as mensagens
em uma sessão de comunicação.
A assinatura digital é uma técnica em que um usuário, um site ou uma entidade pode com-
provar a própria identidade na Internet. Ela foi criada para garantir a segurança dos negócios on-line.
Assim, utiliza os conceitos de criptografia para assegurar que um documento é seguro. Quem fornece
a assinatura digital é a Autoridade Certificadora (AC). A AC tem a função de verificar a identidade
de um usuário e associar a ele uma chave. Depois, as informações são inseridas em um documento
conhecido como certificado digital.
O certificado digital traz a chave pública do usuário e os dados para validar a identidade dele,
como um CPF ou CNPJ. Pode-se, então, fazer a distribuição desse certificado na Internet. Ele trabalha
com as chaves criptográficas.
A política de segurança carrega um dos papéis mais importantes nas organizações. Uma política de
segurança sólida “determina o tom da segurança para toda a empresa e informa aos funcionários o que é
esperado deles” (SEGURANÇA..., 2016, on-line). Além do mais, todos os funcionários devem estar cientes
da confidencialidade dos dados e das próprias responsabilidades para protegê-los (PADRÃO..., 2016).
Ao utilizarmos essas ferramentas, estamos protegendo o canal de comunicação de nossas aplicações.
Isso proporciona canais seguros nos sistemas distribuídos. Um fator importante em relação aos sistemas
distribuídos é tornar a comunicação segura, fazendo a troca de dados com segurança e envolvendo as
propriedades vinculadas à confiabilidade, à integridade e à autenticidade. Em sistemas distribuídos,
devemos trabalhar com a autenticação tanto das máquinas quanto dos usuários dentro de nosso sistema.

134
UNIDADE 5

As ameaças à segurança podem ser classificadas em quatro tipos: a interceptação, a interrupção, a


modificação e a fabricação. Explicaremos todas essas classificações.
Comecemos pela interceptação. Ela diz respeito a alguém que não pertence ao sistema, ou seja,
alguma entidade não autorizada faz a captura de mensagens trocadas entre usuários e serviços em
um sistema distribuído, ganhando, assim, acesso aos dados ou a um sistema. Isso pode proporcionar
uma série de problemas.
Como exemplo, temos o Man-In-The-Middle, também conhecido como session hijacking ou sequestro
de conexões. Nesse tipo de ataque, o interesse é capturar algo que está circulando em uma rede insegu-
ra, como a Internet. Tenta, de maneira ilícita, conseguir, por exemplo, uma chave privada que pode ser
capturada, o que faz com que a mensagem possa ser cifrada ou decifrada, rompendo a criptografia dela.
Esse tipo de ataque também possibilita a injeção de tráfego, que utiliza a inserção do código SQL
em campos de formulário que não possuem a proteção necessária.


A injeção de SQL é um ataque em que o código mal-intencionado é inserido em cadeias
de caracteres, passadas posteriormente para uma instância do SQL Server para análise
e execução. Qualquer procedimento que construa instruções SQL deve ser verificado
quanto a vulnerabilidades de injeção porque o SQL Server executará todas as consultas
sintaticamente válidas que receber. Mesmo dados com parâmetros podem ser mani-
pulados por um invasor qualificado e determinado.
[...]
A forma principal de injeção SQL consiste em inserção direta de código em variáveis
de entrada de usuário, concatenadas com comandos SQL e executadas. Um ataque
menos direto injeta código mal-intencionado em cadeias de caracteres destinadas a
armazenamento em uma tabela ou como metadados. Quando as cadeias de caracteres
armazenadas são concatenadas subsequentemente em um comando SQL dinâmico, o
código mal-intencionado é executado.
O processo de injeção funciona encerrando prematuramente uma cadeia de caracteres
de texto e anexando um novo comando. Como o comando inserido pode ter cadeias
de caracteres adicionais anexadas a ele antes de ser executado, o malfeitor encerra a
cadeia de caracteres injetada com uma marca de comentário “--”. O texto subsequente
é ignorado no momento da execução (INJEÇÃO..., 2021, on-line).

Na figura a seguir, é mostrado como seria uma conexão normal que foi interceptada. Temos o ataque
Man-In-The-Middle ou “homem do meio”. Nesse ataque, o hacker coloca as armadilhas dele entre a
vítima e os sites relevantes, como sites de bancos e contas de e-mail. Esses ataques são extremamente
eficientes e difíceis de detectar, especialmente por usuários inexperientes ou desavisados.

135
UNICESUMAR

conexão normal

roteador
você Site do banco

conexão interceptada

atacante

Figura 4 - Exemplo de funcionamento do ataque Man-In-The-Middle / Fonte: a autora.

Descrição da Imagem: na figura, no centro, há um símbolo que representa um roteador. Há uma seta do lado esquerdo e outra do
lado direito do roteador: a do lado esquerdo representa a conexão dele com um computador, o qual tem escrito “Você” embaixo. Já
a seta do lado direito simboliza a conexão do roteador com o site do banco, que é representado por uma imagem de um banco com
um cifrão dentro. Esse esquema demonstra a conexão normal. No entanto, embaixo desse esquema, há uma representação de um
atacante, que age no lugar do roteador. Isso demonstra a conexão interceptada.

Outro tipo de ameaça que temos é a interrupção. Ela torna um serviço indisponível temporariamen-
te ou permanentemente, ou seja, acontece quando os dados ou um serviço não estão acessíveis. Um
exemplo é o ataque Distributed Denial of Service (DDoS), em que vários IP’s de uma empresa são
atacados e um pico recorde de transferências não autorizadas é registrado.
Quando há uma coordenação para que as requisições sejam enviadas simultaneamente a partir de
diferentes pontos, o ataque é conhecido como Distributed Denial-of-Service (DDoS). A Figura 5 apre-
senta um ataque DDoS, em que o atacante utiliza masters e daemons para fazer o ataque distribuído
e coordenado à vítima. Os masters são máquinas controladas diretamente pelo atacante, enquanto os
daemons são controlados pelos masters. Os daemons realizam efetivamente o ataque à vítima.

136
UNIDADE 5

Hacker

Master Master Master

Daemon Daemon

Vítimas

Figura 5 - Camadas do ataque do DDoS / Fonte: a autora.

Descrição da Imagem: na figura, é exposto como se realiza um ataque de DDOS. Assim, há quatro camadas. Na parte superior, há
um notebook que representa um hacker com uma sequência de setas representando o ataque de cima para baixo. Essa é a primeira
camada. Na segunda camada, há três computadores chamados de masters, que são as máquinas que recebem os parâmetros para
o ataque. Elas já foram previamente invadidas e são controladas pelo hacker, que comanda os daemons. A terceira camada é repre-
sentada por dois computadores, que são os daemons, as máquinas que efetivamente concretizam o ataque. O ataque parte de várias
origens e dispara simultânea e coordenadamente contra uma ou mais vítimas, de acordo com aquilo que for especificado pelo hacker.
Na quarta camada, encontram-se três computadores sofrendo o ataque de DDOS.

O terceiro risco que temos é a modificação, uma alteração nos dados ou nas configurações em um
componente de um sistema distribuído. Ao fazer essa mudança, o comportamento do sistema pode
se alterar e não conseguir mais operar de maneira correta.
Por último, mas não menos importante, temos a fabricação. Ela simboliza uma informação inde-
vida, a qual pode ser feita por meio da utilização de uma identidade ou um certificado digital falso, a
fim de ter acesso ou realizar alguma atividade não autorizada.

137
UNICESUMAR

De qualquer maneira, intrusos tentam ter acesso ao sistema distribuído. Uma das maneiras de
concretizar o objetivo é a quebra de senhas, com o intuito de obter as chaves de acesso de um usuário
de determinado sistema. Também temos os malwares, que são softwares maliciosos com as mais
diferentes funções e objetivos para sistemas distribuídos. Os mais comuns são os vírus e os Worms.

Vírus: programas que precisam ser executados pelo usuário para contaminar o sistema.
Essa contaminação, geralmente, entre outros problemas, destrói dados. Em função
disso, nunca clique em links desconhecidos.
Worm: programa que se auto propaga ao explorar um sistema ou uma rede. Visa
bloquear todos os recursos disponíveis até torná-los inoperantes.
Cavalo de Troia (Trojan Horse): programa que o próprio usuário instala no siste-
ma supondo que o software executará somente aquela função que ele buscava. No
entanto, o software realiza ações maliciosas com outros programas embutidos nele.
Muito cuidado ao baixar jogos.
Spyware: programas espiões utilizados para roubar informações sobre os sites mais
pesquisados pelo usuário, direcionando-o às propagandas específicas. Também visam
saber as atividades daquele usuário.
Keyloggers: programas de computador capazes de capturar, monitorar, armazenar
e enviar tudo aquilo que o usuário digitou para um invasor. Um dos objetivos é obter
logins e senhas daquele usuário.
Backdoor (Porta dos Fundos): condição utilizada por diversos malwares para conse-
guir acesso remoto ou a execução de comandos em uma rede ou um sistema infectado.
Spam: e-mails que não solicitamos, muitas vezes, como propagandas, para conseguir
dados do usuário.
Adware: programas que exibem uma grande quantidade de propagandas sem a
autorização do usuário. Em geral, não causam prejuízos maiores, apenas incômodo.
Exploits: programas ou uma sequência de comandos que exploram vulnerabilidades ou
defeitos. Com essa exploração, o objetivo é causar um comportamento incomum de um
software ou hardware, concedendo controle do sistema ou acessos não autorizados.
Hoax: boatos ou farsas da Internet. Um exemplo é: a cada envio, uma criança que
passa necessidade receberá 10 centavos.
Phishing: programa cujo objetivo é obter os dados pessoais para praticar golpes. Utili-
zam-se logos e páginas existentes e confiáveis, como o Correio, para enganar as pessoas.
Há todo um preparo para realizar esse golpe, que também envolve a engenharia social.
Ransomware: programa que, de diversas formas, é instalado no computador. Um
exemplo é um pedido de atualização de um software. Depois de instalado, ele cripto-
grafará as informações da máquina. Para obter a chave para descriptografar, o invasor
pede um valor em dinheiro, assemelhando-se a um sequestro do mundo real.

138
UNIDADE 5

Segundo Coulouris et al. (2013), para atacar os sistemas distribuídos, o pretenso invasor necessita do
acesso a algumas formas de comunicação trabalhadas entre os processos. Portanto:


O principal objetivo da segurança é restringir o acesso às informações e aos recursos
apenas para os principais que estejam autorizados a ter acesso. As ameaças contra a
segurança caem em três classes amplas:
Vazamento: a aquisição de informações por destinatários não autorizados;
Falsificação: a alteração não autorizada da informação;
Vandalismo: interferência na operação correta de um sistema, sem ganho para o invasor
(COULOURIS et al., 2013, p. 466, grifos dos autores).

Martins ([2021], on-line) explica que:


Os métodos pelos quais violações de segurança podem ser cometidas em sistemas distri-
buídos dependem da obtenção de acesso aos canais de comunicação existentes, ou do
estabelecimento de canais que mascarem conexões aos principals, com a autoridade
desejada. Isto inclui:
Eavesdropping: obtenção de cópias de mensagem sem autorização. Isto pode ser feito
capturando mensagens diretamente da rede, ou examinando informações que estão
inadequadamente protegidas em dispositivos de armazenamento de dados. Por exemplo,
usando a Internet um computador pode ser configurado com o endereço de rede de
outro, permitindo que este também receba as mensagens endereçadas àquele.
Masquerading (disfarce): envio ou recebimento de mensagens usando a identidade de
outro principal sem a sua autorização.
Message tampering (falsificação de mensagem): captura e alteração do conteúdo das
mensagens antes de passá-las ao destinatário. Isto é difícil de fazer em meios que se
utilizam de broadcast para troca de mensagens, como é o caso das redes Ethernet. De
maneira simplificada, podemos definir broadcast como sendo a entrega simultânea de
uma mensagem para todas as estações da rede.
Replaying: captura e armazenamento das mensagens por um certo período de tempo,
seguido do envio atrasado dessas mensagens aos seus destinatários. Este método de
ataque não pode ser evitado por simples criptografia, uma vez que pode ser usado para
operações do tipo vandalismo, ou roubo de recurso, mesmo quando as mensagens não
podem ser interpretadas pelo criminoso.

A proteção é feita pela definição e implementação de controles de segurança, o que inclui mecanis-
mos de defesa e uso de medidas e técnicas de segurança de redes. Os controles de segurança podem
ser físicos (controle de acesso, por exemplo), tecnológicos (gerenciamento de contas e senhas, por
exemplo) ou processuais (normas de atualização de senhas, por exemplo).

139
UNICESUMAR

O conjunto de controles de segurança faz parte da estratégia de segurança para a prevenção e pode
ser composto por alguns processos, como a gestão de identidades e de acessos, a qual envolve o geren-
ciamento de contas e senhas dos usuários.
Um controle de segurança de tecnologia fundamental é o antivírus, que é aplicado em servidores e
dispositivos dos usuários. Outros mecanismos de defesa tecnológicos são os Firewalls, o controle de acesso
lógico, a criptografia e o monitoramento de redes. Já um exemplo de controle de segurança processual e
humano é a conscientização da segurança e da privacidade realizada na admissão de funcionários.
Quando falamos de mecanismos de segurança em sistemas distribuídos, temos alguns mecanismos
para nos proteger. As três formas mais comuns são a criptografia, a autenticação e o controle do acesso.

Como ter um sistema distribuído tolerante às falhas e com seguran-


ça? Esse é o tema da nossa conversa no podcast desta unidade. Dê
o play e acompanhe!

Usamos criptografia em todos os sistemas. As bases de qualquer criptografia são um algoritmo e uma
chave. Temos as criptografias simétrica e assimétrica. A diferença entre as criptografias simétrica e
assimétrica reside no fato de que os algoritmos de criptografia simétrica usam uma chave única para
a codificação e a decodificação. Por outro lado, a criptografia assimétrica utiliza duas chaves diferentes,
porém relacionadas. Também há diferenças de técnicas de utilização das duas formas de criptografia.
Também são utilizados os algoritmos de hash. Neles, as mensagens são calculadas de maneira uni-
direcional, o que gera um conjunto menor de informações (hash). Para verificação, o mesmo cálculo
unidirecional é feito e os hashs são comparados.
Em sistemas distribuídos, temos que garantir a comunicação segura entre clientes e servidores. Para
essa comunicação, são necessários canais seguros, a fim de proteger os dados em transmissão. Portanto,
os canais seguros protegem o comércio eletrônico e as comunicações em geral.
A autenticação visa validar a identidade do usuário, incluindo uma senha (algo que somente o
usuário sabe), um token (algo que o usuário tem) ou uma biometria de face (algo que o usuário é).
Com base na autenticação, é concedido o acesso ao aos recursos que o usuário precisa.
Temos algumas formas de autenticação. São elas:
• Autenticação baseada em chave privada compartilhada: assegura a confiabilidade.
• Autenticação usando um centro de distribuição de chaves.
• Autenticação baseada em chave pública.

140
UNIDADE 5

Apesar de os sistemas mais utilizados para a autenticação, que são o login e a senha, funcionarem bem
em uma única estação de trabalho, em um sistema distribuído, os recursos estão espalhados pela rede.
Dessa maneira, é necessário um gerenciamento para a autenticação de todas as estações de trabalho,
visto que, autenticando apenas uma, não será confiável para identificar corretamente os usuários para
os serviços de rede.
O serviço de autenticação Kerberos foi desenvolvido pelo Massachusetts Institute of Tecnology
(MIT) e oferece uma forma confiável para verificar a identidade dos usuários. O usuário usa um pro-
grama cliente que pede login e senha e, em seguida, solicita ao Kerberos um tíquete de identificação.
Esse tíquete será criptografado usando a senha do usuário (que o Kerberos já tem) e enviado ao cliente,
que, em posse da senha fornecida pelo usuário, recuperará o tíquete.

Usuário, Cliente, Servidor — Por usuário, queremos dizer um ser humano que usa um programa
ou serviço. Um cliente também usa algo, mas não é necessariamente uma pessoa, pode ser
um programa. Frequentemente, os aplicativos de rede consistem em duas partes: um progra-
ma que é executado em uma máquina e solicita um serviço remoto, e outro programa que
é executado na máquina remota e executa esse serviço. Chamamos esses usuários do lado
do cliente e do lado do servidor do aplicativo, respectivamente. Frequentemente, um cliente
entrará em contato com um servidor em nome de um usuário.
Fonte: Visão... (2006, on-line).

A integridade das mensagens pode ser garantida de duas formas: as assinaturas digitais e as chaves de
sessão. Como mecanismos de proteção, temos o Firewall, que protege as intranets, realizando ações
de filtragem em comunicações recebidas e enviadas.
De acordo com Coulouris, Dollimore e Kindberg (2007, p. 85):


Um firewall cria uma barreira de proteção entre a intranet da organização e o restante
da Internet. Seu propósito é proteger os recursos presentes nos computadores de uma
organização contra o acesso de usuários ou processos externos e, ao mesmo tempo,
controlar o uso dos recursos externos por usuários da própria organização.
[...]
Para permitir que os aplicativos distribuídos superem as restrições impostas pelos
firewalls, há necessidade de produzir um ambiente de rede seguro, no qual uma ampla
variedade de aplicativos distribuídos possa ser implantada, com autenticação fim-a-
-fim, privacidade e segurança. Essa forma mais refinada e flexível de segurança pode
ser obtida com o uso de técnicas de criptografia.

141
UNICESUMAR

Os Firewalls podem ser classificados em dois grupos principais de acordo com a funcionalidade: filtros
e proxies. Nos filtros, o tráfego flui em ambos os sentidos por meio do Firewall, que analisa os pacotes e
permite ou nega a passagem através do filtro. As regras que foram configuradas no Firewall permitem,
ou não, a passagem de pacotes através dos filtros compostos por tuplas do tipo (ação, origem, destino,
tipo, direção, subrede).
Os proxies atuam como intermediários no tráfego entre duas redes. Nesse sentido, os pacotes não
fluem diretamente através dos proxies, assim como acontece com os filtros. O tráfego é interceptado
e gerado a partir do proxy, fazendo com que a sintaxe das regras seja mais detalhada e apresente uma
performance inferior em relação aos filtros.
Em sistemas distribuídos, devemos fazer o uso de mecanismos de autenticação que impeçam ataques
do tipo personificação e spoofing. O uso de certificados de autenticidade fornecidos por autoridades
certificadoras são outro mecanismo de defesa.
Além das medidas de prevenção a ataques, são muito importantes a detecção e a ação contra as
invasões. Os Intrusion Detection Systems (IDS), que detectam e avisam o administrador da rede, po-
dem ser configurados para disparar um alarme. Temos também o Intrusion Detection System (IPS),
que pode ser configurado para derrubar o acesso do invasor.
Em sistemas distribuídos, uma invasão não ocorrerá simultaneamente em todos os hosts que pro-
vêm um determinado serviço, fazendo com que a autenticação e a criptografia ofereçam uma proteção
adicional aos dados na ocorrência de uma invasão. Devido ao fato de os sistemas distribuídos terem
a composição em diferentes máquinas, a segurança desempenha um papel fundamental para termos
sistemas confiáveis.
Neste momento, você pode estar se perguntando: onde aplicarei todos esses conceitos? Como
resposta, você poderá utilizar os conceitos apreendidos na construção de um sistema seguro, o qual
trabalhará em uma plataforma como serviço (PaaS) e será acessado por meio da internet, uma vez
que esse sistema pode ser invadido.
Para que o sistema seja protegido, devemos evitar o vazamento, a falsificação e o vandalismo. Va-
zamento, também conhecido por leakage, é o acesso não autorizado; falsificação, também chamada
de tampering, representa todas as alterações não permitidas da informação que são feitas por um
intruso; por fim, o vandalismo acontece quando há uma invasão. Um exemplo são os sites de empresas
que são invadidos e modificados. Em geral, os danos gerados são menores.
Para evitarmos esses tipos de ataque, temos algumas formas de proteção:
• Primeiro: sempre fazer treinamentos relacionados à conscientização dos colaboradores, afinal,
a segurança é uma responsabilidade de todos.
• Segundo: uso de autenticação, que é um fator importante não apenas para autenticar usuários,
mas máquinas e serviços. A assinatura digital e as chaves de sessão são importantes por trazerem
a criptografia.

142
Agora, convido você a montar um Mapa conceitual com os principais temas, aqui, abordados.
Deixarei palavras-chave para que você inclua os conceitos. Fique a vontade para incluir mais
palavras-chave caso ache pertinente. Bom estudo!

SISTEMAS DISTRIBUÍDOS

Tipos de falhas Segurança

Tolerância a Falhas
Causas
Técnicas de Camadas Propriedades Ferramentas
Estratégias Mascarar Falhas

Redundância de Redundância de Redundância


Informação Tempo Física

143
1. Um determinado banco, o BankoLeal S.A, teria que funcionar 24 horas, pois ele garantiu
isso aos clientes. Contudo, sofreu um ataque e ficou 12 horas fora do ar, resultando
em muitas reclamações de clientes do Brasil inteiro.

Qual é a propriedade de segurança da informação que foi quebrada?

a) Autenticidade.
b) Integridade.
c) Confidencialidade.
d) Disponibilidade.
e) Autorização.

2. Com todas as informações que aparecem diariamente na Internet e em outros meios


de comunicação, devemos proteger tanto os computadores pessoais quanto os com-
putadores da empresa em que trabalhamos.

José, que é administrador dos servidores, avisou o chefe que a empresa tinha sofrido
um ataque de DoS (Denial of Service), pois percebeu que:

a) quando um usuário inseria, no navegador, o endereço do site da empresa, ele era


direcionado a uma página falsa.
b) quando o usuário tentava acessar a página web, aparecia uma mensagem de erro de
senha.
c) quando o usuário tentava acessar a página web, aparecia uma mensagem de erro de
login.
d) o usuário não conseguia acessar a página da empresa, pois o servidor teve uma so-
brecarga de acessos.
e) uma página web do site da empresa foi alterada com informações falsas.

3. Um ataque só acontece porque vulnerabilidades são exploradas pelos atacantes. Nessa


seara, é preciso eliminar os pontos fracos do ambiente em todos os níveis. Há alguns
malwares que não necessitam da ação dos usuários para causar danos. Dentre eles,
há um que se multiplica automaticamente e cria cópias de si mesmo, sobrecarregando
o sistema.

O enunciado descreve as ações do:

a) Cavalo de Troia.
b) Vírus.
c) Ransomware.
d) Vermes (worms).
e) Hoax.

144
6
Tecnologia de
Implantação baseada
em objetos
Esp. Cesar Augusto de Carvalho

Nesta unidade, entenderemos a implantação de sistemas baseados


em objetos. Além disso, conheceremos a definição de objeto do
ponto de vista computacional, o histórico de evolução do modelo
orientado ao objeto a partir dos primeiros sistemas e entenderemos
como podemos utilizar esse recurso na implantação de sistemas
distribuídos. Por fim, saberemos utilizar as melhores práticas de
modelagem de objeto aplicadas aos sistemas distribuídos.
UNICESUMAR

Quando analisamos os primórdios da computação, encontramos programadores e telas escuras. Eles


digitavam linhas e mais linhas de puro código de programação, um trabalho extremamente exaustivo
e complicado. Imagine como seria um chefe de equipe dando instruções a um novo funcionário: ele
precisaria detalhar instrução por instrução, desde as mais simples, como o ato de ligar o computador,
até ao modo como levantar a mão e ligar o botão de ligar e desligar do computador. Não seria mais
fácil apenas dizer “ligue o computador”? Suponha que o computador foi movido para outro lugar:
toda a sequência de instruções precisaria ser atualizada, instrução por instrução, linha por linha. Você
consegue imaginar como seria você desenvolvendo esse trabalho?
Suponha que um computador foi atualizado ou os programas que estão instalados nele foram alte-
rados. Isso seria um trabalho incrivelmente grande e inútil, considerando que cada mínima alteração e
cada simples instrução necessitaria de inúmeras pequenas ordens. Sim, os sistemas eram construídos
de maneira similar, instrução por instrução, comando por comando. Para que um pequeno software
desenvolvido para imprimir uma página em uma impressora funcionasse, era necessário que o progra-
mador fornecesse as instruções para a impressora, pixel por pixel. Isso significa que, para escrever uma
única letra, o programador deveria fornecer as instruções suficientes por meio do próprio programa
para que a impressora fizesse algo do tipo: “espaço, espaço, espaço, ponto, ponto…”.
Agora, na atualidade, como um chefe diz para o novo empregado ligar o computador? Apenas
dizendo: “ligue o computador”. O funcionário, ao ouvir esse comando, automaticamente e de maneira
quase inconsciente, já tem em mente o que fazer. As tarefas necessárias para executar essa ordem já
estão implícitas na própria instrução. Os sistemas baseados em objetos funcionam de forma mais
parecida com o mundo real. A palavra “objeto” não está aqui por acaso. Ao contrário de incontáveis
linhas código, os sistemas orientados a objetos são criados em partes ou em blocos. Esses blocos são
criados uma vez e em qualquer parte dos sistemas você pode acioná-los. O conjunto de instruções
estará funcionando perfeitamente e não precisará ser reescrito, muito parecido com o ato de pedir
para uma pessoa ligar um computador.
Isso é só o começo, visto que exploraremos os recursos desse modelo. Foram criadas as linguagens
de programação orientadas ao objeto, tais como JAVA, C++ e C#, e as inúmeras bibliotecas (blocos
prontos de código). Essas bibliotecas podem facilitar a vida do desenvolvedor. Por exemplo, em rela-
ção à impressão, hoje, é possível efetuar o download de um driver (pequeno software que gerencia o
hardware e diz como trabalhar) que já está programado: basta apenas enviá-lo à informação a ser im-
pressa que ele já sabe como dizer a impressora como imprimir. Mais fácil, não é mesmo? Dessa forma,
seguindo o paradigma da orientação ao objeto, o desenvolvedor pode focar o trabalho na criatividade,
preocupando-se menos com os códigos.
Faça uma pesquisa na Internet sobre as diferenças entre a programação estrutural (também chamada de
procedural) e o paradigma da programação orientada ao objeto. Não foque nos detalhes: tente apenas notar
as diferenças e as semelhanças, e entender o motivo pelo qual foi necessária a criação dessa abordagem.
Anote no diário de bordo as impressões que você teve durante a pesquisa, o que aprendeu sobre a
programação estrutural ou procedural e as diferenças dela em relação ao paradigma da programação
orientada ao objeto. Para lhe ajudar nesta tarefa, tente responder às seguintes perguntas:

146
UNIDADE 6

• Quais são as vantagens da programação orientada ao objeto?


• Qual é a maior diferença entre o paradigma da programação orientada ao objeto em relação à
programação estrutural ou procedural?

DIÁRIO DE BORDO

Já temos uma noção de como funcionam os sistemas baseados em objetos e o sistema procedural ou
estruturado (instrução por instrução). Além disso, sabemos, superficialmente, como o paradigma da
orientação a objetos facilita a vida de quem os programa. Agora, imaginemos um sistema que não
está alocado em apenas um lugar, mas está espalhado por uma rede, em pequenos fragmentos: como
projetar esse sistema pensando em fragmento por fragmento? Neste momento, a resposta já deve estar
na ponta de sua língua: pensando nele como objeto.

147
UNICESUMAR

De maneira simples, considere um grande depósito. Nele, podemos armazenar qualquer objeto, inclu-
sive, criar nossos próprios objetos seguindo um padrão de construção sob medida, como se fosse uma
fábrica de produtos personalizados. Também podemos deixar que pessoas que queremos visitem esse
depósito, usem os objetos e interajam com eles da maneira que desejarem. Estudaremos os pormenores
posteriormente, mas, neste momento, apenas imaginemos como isso pode ser útil no desenvolvimento
de sistemas.
Esse tipo de arquitetura pode ser usado em diversos tipos de sistemas. Contudo, quando falamos
de sistemas distribuídos, o modelo baseado em objetos é fundamental. As razões são inúmeras, mas
alguns motivos para projetar um sistema distribuído baseado em objetos ficam muito evidentes. Dentre
eles, podemos destacar a facilidade de organização das informações, o uso de bibliotecas (conjuntos
de códigos prontos para serem utilizados, normalmente, distribuídos pelo detentor da linguagem ou
pela comunidade) e a crescente cooperação em comunidade para o desenvolvimento e o comparti-
lhamento de conhecimento, assim como é o caso do GitHub, uma imensa plataforma de colaboração
e compartilhamento para o desenvolvimento de códigos em equipe.
Você pode criar uma conta gratuitamente no GitHub, navegar pelos projetos disponibilizados pela
comunidade e ainda compartilhar os seus próprios projetos, fazer o versionamento de software e outras
funções. Atualmente, o mercado de trabalho está muito dinâmico. Não é incomum vermos vagas de
trabalho para desenvolvedor que pedem a sua conta do GitHub, a fim de conhecer os projetos em que
você já trabalhou. Dessa forma, o GitHub também funciona como um portfólio on-line.

Para conhecer mais o GitHub e as inúmeras ferramentas colaborati-


vas, acesse o site oficial por meio do QR Code.
Para acessar, use seu leitor de QR Code.

Ainda em relação ao exemplo do depósito, imaginemos que ele está organizado em corredores para
diferentes tipos de objetos e cada corredor está organizado em prateleiras para diferentes subtipos de
objetos. Podemos acessar esses objetos de forma organizada e sem perdermos muito tempo, uma vez que
todos os objetos estão catalogados e classificados de maneira organizada. Além disso, nesse estoque, um
operador de empilhadeira pode alcançar um objeto que for da alçada dele quase que instantaneamente.
Outro benefício relevante e que devemos considerar ao utilizar esse modelo é a forma como os objetos
são acessados e manipulados. Isso é feito por meio de métodos. Um método é uma interface de acesso ao
objeto usada para acessar as informações do objeto, extrair ou inserir informações e modificá-las. Existem,
ainda, os métodos construtores, que criam objetos, e os métodos destrutores, que destroem os objetos.

148
UNIDADE 6

Seguindo a analogia do depósito, um método seria como uma empilhadeira. Nós podemos usá-la
para alcançar o objeto desejado no alto de uma prateleira. Em relação ao método construtor, ele pode
ser uma bancada de ferramentas, que podemos usar para manipular o objeto. Já no que diz respeito ao
método destrutor, podemos considerá-lo um grande incinerador, o qual podemos usar para destruir
os objetos que não utilizaremos mais.
Quando falamos em objetos do ponto de vista dos sistemas distribuídos, é importante que falemos
de classes. As classes servem para dar forma aos objetos. Nelas, nós definimos todas as características
de um objeto, incluindo para que ele serve, como ele se comporta, a forma, a identidade e os pares e
os objetos semelhantes.
Pensemos no objeto “bolo”. Um bolo terá um sabor entre muitos. Pode ter recheio, ou não, e uma
cobertura diferente, que pode ser decorada ou simples. No entanto, também pode ser sem cobertura.
Em outras palavras, são muitas as combinações possíveis das características para formar um bolo.
Todavia, todos os bolos têm uma coisa em comum: uma forma, não importa se é de alumínio, assim
como aquelas que temos em nossas casas, ou uma profissional, que a padaria utiliza.
Sob essa perspectiva, é perceptível que aquilo que define um bolo é o fato de ele ter sido produzido
por uma forma, independentemente do tamanho, da forma, do sabor ou de qualquer outra caracterís-
tica. Os sistemas orientados a objetos funcionam de maneira análoga, sendo o bolo o objeto e a forma
a classe que o define.

Se você se interessou pelo assunto e deseja explorá-lo de maneira aprofun-


dada, sugiro a leitura do livro apresentado a seguir, disponível na Biblioteca
Virtual.
Título: Aprenda programação orientada a objetos em 21 dias.
Autor: Anthony Sintes
Editora: Pearson
Ano: 2002.
Sinopse: o livro apresenta ferramentas para que o leitor domine os con-
ceitos básicos da Programação Orientada a Objetos (POO) em apenas 21 dias. Assim, ensina a
pensar a POO no início do projeto, a adquirir estratégias para projetar e gerenciar projetos de
programação, a dominar o vocabulário e os conceitos da POO, a aplicar os conhecimentos de
POO em exemplos reais e a obter flexibilidade antes de escrever a primeira linha de código.
Comentário: este livro expõe os principais conceitos do paradigma da programação orientada ao
objeto, explorando a fundo cada elemento, adaptando-o às linguagens de programação usuais.
Vale a pena lê-lo!

149
UNICESUMAR

A seguir, é exposto um modelo de um pequeno sistema de cadastro de uma escola. Considere, ini-
cialmente, um sistema simples, com a função de cadastrar os alunos e os professores. Entretanto, ao
se planejar um sistema, é preciso pensar na possibilidade de ele crescer. Portanto, devemos deixá-lo
aberto para a inserção, a modificação e a exclusão de funções. Esse sistema tem início de forma simples
e carrega as classes apresentadas na figura a seguir.

Indivíduo Endereço

Nome Rua

Telefone Cidade
E-mail Estado

CEP

Aluno Professor

Número de matrícula Salário

Curso

Turma

Figura 1 - Exemplo de sistema orientado a objetos / Fonte: o autor.

Descrição da Imagem: a figura exibe um modelo simples de um sistema orientado a objetos. Assim, há quatro caixas interconectadas.
Cada caixa tem nomes e itens, a saber: “Indivíduo”, com os seguintes itens: “Nome”, “Telefone” e “E-mail”. Ela se conecta à caixa “Ende-
reço”, que carrega os seguintes itens: “Rua”, “Cidade”, “Estado” e “CEP”. Ambas as caixas estão localizadas na parte superior da imagem.
Na parte inferior, conectadas à caixa “Indivíduo”, estão as caixas “Aluno” e “Professor”. A caixa “Aluno” tem os seguintes itens: “Número
de matrícula”, “Curso” e “Turma”. Já a caixa “Professor” tem o item “Salário”.

150
UNIDADE 6

No exemplo anterior, é visível a classe principal, a “Indivíduo”, que reúne todas as informações em
comum para qualquer indivíduo cadastrado no sistema da escola. A classe “Aluno” tem todas as infor-
mações pertinentes somente ao aluno, assim como a classe “Professor” apresenta apenas as informações
relacionadas aos docentes. Já a classe “Endereço” não é exclusiva aos indivíduos. Podemos usá-la para
armazenar o endereço de indivíduos, fornecedores, escolas, secretarias etc. Esse recurso se chama
herança e trataremos desse assunto mais adiante.
Neste momento, é importante recordar: o que são uma classe e um objeto? As classes são “Indivíduo”,
“Endereço”, “Aluno” e “Professor”. Todavia, quais seriam os objetos? Pensemos um pouco: considere
o momento em que um usuário do sistema digitar o nome de um novo aluno.

Nome: Pedro da Silva


Telefone: 43 9 99999999
E-mail: pedrodilva@email.com
Aqui, é visível o objeto Pedro da Silva, que foi criado dentro da classe “Indivíduo”.
Voltemos ao exemplo do bolo: quando o usuário do sistema digitou os dados neces-
sários, ele, provavelmente, preencheu os campos que o formulário pediu, como uma
forma de bolo. O bolo sempre terá a mesma forma. Nesse contexto, independente-
mente do indivíduo, os dados precisam ser preenchidos seguindo a mesma forma,
ficando padronizados.

O modelo orientado a objetos facilita a construção do sistema, já que evita repetições desnecessárias e
apresenta as informações de maneira eficiente. Na construção de sistemas, a organização é fundamental.
Um sistema rápido e estável só pode ser assim, caso seja bem organizado. Quando falamos em sistemas
distribuídos, esse fato é ainda mais importante, dado que eles não estão alocados em apenas um lugar.
No exemplo exposto, o sistema pode facilmente ser manipulado. Ao adicionar outras funções, é
possível reutilizar as classes existentes. Por exemplo, ao criar a classe “Funcionários”, não seria ne-
cessário adicionar os campos “Nome”, “Telefone”, “E-mail” e “Endereço”, visto que eles são herdados
de outras classes. Assim, adicionamos apenas informações referentes ao funcionário, como salário,
horário de trabalho etc.

151
UNICESUMAR

Indivíduo Endereço
Nome Rua
Telefone Cidade

E-mail Estado
CEP

Aluno Funcionários
Número de matrícula Salário
Horário de trabalho Professor
Curso ID de funcionário
Disciplinas
Turma

Figura 2 - Segundo exemplo de sistema orientado a objetos / Fonte: o autor.

Descrição da Imagem: a figura exibe um modelo simples de um sistema orientado a objetos, idêntico ao anterior. Assim, há cinco
caixas interconectadas. Cada uma tem um nome, a saber: “Indivíduo”, “Endereço” (ambas localizadas na parte superior), “Aluno”, “Fun-
cionários” e “Professor”, que estão na parte inferior. A caixa “Aluno” tem os seguintes itens: “Número de matrícula”, “Curso” e “Turma”,
e está conectada à caixa “Funcionários”, que representa a classe funcionários. Desse modo, expõe os seguintes itens: “Salário”, “Horário
de trabalho” e “ID de funcionário”. As caixas “Aluno” e “Funcionários” estão ligadas à caixa superior, a “Indivíduo”, que tem os seguintes
itens: “Nome”, “Telefone” e “E-mail”. Conectada à caixa “Funcionários”, está a caixa “Professor”, que tem o item “Disciplinas”.

Na Figura 2, é perceptível que a classe “Funcionários” foi adicionada e a classe “Professor” passou a ser
uma subclasse de funcionários. Dessa forma, como qualquer funcionário da escola recebe salário, o
campo “Salário” foi movido da classe “Professor” para a “Funcionários”. No futuro, outras subclasses de
funcionários podem ser adicionadas, como inspetores de aluno, diretores e secretários.
Portanto, o sistema é escalável, tendo em vista que pode ser manipulado e aumenta de forma orga-
nizada e com poucas linhas de código. Essa organização não se trata apenas de ser vistosa aos olhos
de quem programa, mas torna o sistema mais rápido e eficiente. A máquina não precisa percorrer
inúmeras linhas de código procurando uma informação, mas vai direto onde precisa.
Os diagramas de classes são desenhos Unified Modeling Language (UML), que, em português,
significa “Linguagem de Modelagem Unificada”. Esses desenhos ajudam a orientar o projeto de uma
maneira mais visual. Muitas vezes, ir direto ao código é trabalhoso e problemático. Quanto à UML:

152
UNIDADE 6


Trata-se de uma linguagem com uma especificação semântica semi formal, que inclui
sintaxe abstrata, regras bem definidas e semântica dinâmica. A UML consegue capturar
a estrutura de sistemas orientados a objeto em um nível acima das linhas individuais
de código, e pode ser expressa em diagramas que englobam a gama de construções que
aparecem em sistemas típicos orientados a objeto. Esses diagramas incluem por exem-
plo, o diagrama de classe (que retrata as construções de herança, associação semântica,
composição e agregação), o diagrama de sequência, o diagrama de colaboração e o
diagrama de estado (PAGE-JONES, 2001, p. 80).

Falaremos mais sobre a UML e os recursos dela adiante. Contudo, basicamente, podemos definir a
UML como um desenho de projeto. Fazemos primeiro o desenho para, depois, escrevermos o código.
Existem diversos recursos para modelagem de sistemas com UML. Embora não seja complexo, para
englobar o paradigma da programação orientada a objeto, a UML se tornou bem extensa em conteúdo.
No material sugerido a seguir, são abordados apenas os conceitos básicos e essenciais, para que você
adquira o conhecimento necessário do ponto de vista dos sistemas distribuídos.

Título: Fundamentos do desenho orientado a objeto com UML


Autor: Meilir Page-Jones
Editora: Makron Books
Ano: 2001.
Sinopse: o livro proporciona sabedoria, ao combinar precisão acadêmica e
assistência prática a todos aqueles que enfrentam os desafios complexos
do desenho e do desenvolvimento de software no século XXI.
Comentário: para saber como construir projetos de software utilizando
UML, recomendo a leitura do livro Fundamentos do Desenho Orientado a Objeto com UML, de
Meilir Page-Jones, disponível na Biblioteca Digital. Ele lhe apresentará, de maneira mais profunda,
as técnicas mais utilizadas na modelagem da programação orientada a objetos, especialmente
o Diagrama de Classes, um conceito basilar nesse tipo de modelagem. Além disso, você pode
explorar as melhores práticas desse tipo de modelagem.

Mantenha em mente a ideia de que tudo é um objeto. “Em princípio tudo é tratado como objeto, e
serviços e recursos são oferecidos na forma de objetos que eles possam invocar” (TANENBAUM;
STEEN, 2008, p. 268).

153
UNICESUMAR

Um diagrama de classes UML funciona como um mapa para o sistema, já que facilita a organização
dos elementos do código. Assim, é fácil encontrar um problema relacionado ao conceito, fazer uma
alteração ou adicionar uma nova classe. Quando você está tentando ir do ponto A de uma grande cidade
para o ponto B, muitas vezes, um mapa pode te ajudar a traçar a melhor rota. Hoje, é muito comum
usar aplicativos de GPS, que fazem esse tipo de planejamento de modo automático. Esse processo não
é muito diferente do processo de traçar um plano para um sistema utilizando a UML como mapa.
Quando pensamos na implantação de um sistema distribuído, devemos considerar como e onde
alocaremos os objetos, qual forma eles terão e como eles se comportarão, além, é claro, de definir quem
poderá acessá-los. Em sistemas distribuídos, algo importante a se destacar é que, normalmente, um
objeto pertencente a uma determinada classe se apresenta como se estivesse alocado em uma única
máquina, ou seja, ele até pode ser distribuído por meio de interfaces, porém, do ponto de vista do
cliente (software cliente, o qual utiliza os serviços oferecidos por um software servidor), é importante
que ele se mostre centralizado, como se estivesse alocado em uma única máquina.


Um aspecto característico, mas que, de certa forma, não é intuitivo, da maioria dos obje-
tos distribuídos é que seu estado não é distribuído: ele reside em uma única máqui-
na. Somente as interfaces implementadas pelo objeto são disponibilizadas em outras
máquinas. Esses objetos também são denominados objetos remotos. Em um objeto
distribuído, em geral o estado em si pode ser distribuído fisicamente por várias máqui-
nas, mas essa distribuição também fica oculta dos clientes sob as interfaces dos objetos
(TANENBAUM; STEEN, 2008, p. 269).

Avancemos um pouco mais em relação ao assunto: as classes, no paradigma da orientação a objetos,


são, na verdade, abstrações do ponto do sistema. Se, para o projetista, a classe é uma espécie de forma
de bolo, para o sistema, ela é a receita. Trata-se de um conjunto detalhado de informações que serão
utilizadas na criação do objeto. Quando o objeto passa por um processo de concretização, todos os
ingredientes do bolo são misturados. Após isso, é levado ao forno. Esse processo se chama instanciali-
zação: é muito comum falarmos “vamos instanciar tal objeto”. Nesse sentido, o ato de instanciar nada
mais é que concretizar o objeto. Instanciado, o objeto está pronto para uso, exatamente como um bolo
saindo de um forno, momento em que está pronto para ser consumido.
Um grande sistema, com muitos recursos e funções, concentrado em um grande servidor, pode
parecer mais simples e fácil de implantar e, talvez, seja mais barato e seguro. No entanto, esse modelo
centralizado apresenta sérios problemas e, muitas vezes, acaba sendo mais caro e menos seguro que
um sistema distribuído em nuvem, por exemplo.

154
UNIDADE 6

Pense: o que aconteceria se um grande servidor colapsasse? Não seria mais prudente espalhar
os diversos segmentos do sistema em servidores diferentes?

Internet

Figura 3 - Sistema distribuído em infraestrutura local / Fonte: o autor.

Descrição da Imagem: trata-se de uma ilustração que mostra, de cima para baixo, uma nuvem representando a Internet. Logo abaixo,
encontra-se uma parede de tijolos com um desenho de uma chama no interior, a fim de simbolizar um Firewall. Mais abaixo, está um
pequeno roteador. Conectado ao roteador, à esquerda, há um cilindro deitado, que representa um barramento de conexão. Conecta-
dos ao barramento, na parte superior, da esquerda para direita, encontram-se dois ícones que representam servidores, um ícone que
representa o banco de dados e um ícone que representa um servidor web. Por outro lado, conectados ao barramento, mas, agora, na
parte inferior, da esquerda para direita, estão dois ícones, os quais simbolizam computadores pessoais. À direita, há um ponto de acesso
Wi-Fi e, conectando-se a esse ponto de acesso, estão três dispositivos móveis: um tablet, um laptop e um smartphone.

155
UNICESUMAR

Do ponto de vista econômico, pensemos nos recursos necessários


para manter um servidor rodando vinte e quatro horas por dia,
sete dias por semana. Isso traz custos voltados à energia elétrica,
ao ar condicionado, a um sistema de nobreaks, a fim de garantir a
alimentação elétrica, caso a energia caia, e ao pessoal treinado para
manter tudo funcionando. Devemos cuidar, ainda, das atualiza-
ções de todos backups e, caso o servidor não esteja mais suprindo
sozinho as necessidades do sistema, precisaremos adicionar mais
servidores. Ainda temos o risco de ocorrer uma falha de hardware
e, para qualquer grande alteração no hardware ou ocorrência de
falha, é necessário parar o sistema para a modificação ou o repa-
ro. Como podemos implantar sistemas mais robustos, seguros,
escaláveis e baratos?

Para saber mais sobre a evolução


das arquiteturas computacionais
tradicionais para a Cloud Compu-
ting, assista ao vídeo indicado.
Para acessar, use seu leitor de
QR Code.

Ao implementar os sistemas distribuídos a partir do paradigma


orientado ao objeto, devemos pensar em uma forma prática de
distribuir os recursos de maneira a garantir a segurança e a efe-
tividade desses sistemas. Com base no exemplo já mencionado
nesta unidade, os objetos “alunos” e “professores” não precisam
estar necessariamente alocados no mesmo servidor, nem mesmo
no mesmo prédio. Eles podem estar alocados, inclusive, em países
diferentes. Isso acontece, pois eles podem ser compartilhados e
acessados por meio das interfaces deles, independentemente de
onde estejam.

156
UNIDADE 6

Figura 4 - Sistema distribuído local e com nuvem / Fonte: o autor.

Descrição da Imagem: a figura mostra, de cima para baixo, uma nuvem com dois servidores dentro. Essa nuvem se conecta a um tubo
horizontal, o qual representa o barramento de conexão. Na parte superior, do lado direito da nuvem, há um ícone de servidor, que
simboliza um servidor conectado diretamente ao barramento. Na parte inferior, encontram-se dois computadores pessoais, os quais
também estão ligados ao barramento central.

Assim como é ilustrado na Figura 4, um sistema pode ser distribuído em servidores locais e servi-
dores em nuvem, formando uma arquitetura híbrida, que seria uma mistura das duas arquiteturas: a
local e a em nuvem. Atualmente, existem diversos provedores de computação em nuvem que oferecem
uma infinidade de serviços. Além disso, na maioria das vezes, eles fazem backup automaticamente
dos dados e são extremamente escaláveis. Isso significa que, caso o serviço de computação em nuvem
que você contratou para hospedar o seu sistema não esteja mais suprindo as necessidades, você pode
redimensioná-lo com poucos cliques. Normalmente, esses serviços são vendidos no sistema “Pay as
you go”, ou seja, você paga apenas o que usar. Nesse sentido, você não precisa mais gastar com energia
elétrica e ar-condicionado, já que o provedor de nuvem que se preocupa com isso.

157
UNICESUMAR

Convido você a olhar um Data Center do Google e entender como


funciona um pouco uma nuvem. Não se esqueça de habilitar as le-
gendas em português!
Para acessar, use seu leitor de QR Code.

Um objeto alocado em uma nuvem está alocado fisicamente onde? É importante saber a loca-
lização física desse objeto? Como vou acessá-lo? Essas são perguntas que vêm naturalmente
em nossas mentes quando falamos de computação em nuvem. Contudo, para o sistema e para
a máquina, esses questionamentos fazem diferença?

Um objeto pode ser acessado por meio do endereço lógico da rede, o endereço IP. É por intermédio dele
que toda a arquitetura da internet funciona. No entanto, ele também pode ser acessado pelo domínio,
quando se utiliza o sistema DNS, sigla que, traduzida do inglês, significa “Sistema de Nomes de Domínios.
Esse sistema faz a tradução do nome de domínio para um IP associado à porta lógica TCP. Dessa forma,
pouca importa onde o objeto está alocado fisicamente, principalmente quando falamos de nuvem.
O endereço lógico IP traz o grande benefício da comunicação global. Você pode acessar serviços dis-
ponibilizados como se fossem locais, mas que estão espalhados pelo mundo. Em outras palavras, o site da
pizzaria do seu bairro pode estar hospedado em outro país, como na Índia. Acredite, isso não é possível
como bem provável, mas, para o navegador do seu laptop ou smartphone, isso não faz a menor diferença.
Ao trabalhar com nuvem, o serviço de container é contratado. Diante disso, alocamos o objeto no con-
tainer e a detentora da nuvem distribui os dados da forma que lhe é conveniente, mas garantindo o acesso
aos objetos e ao backup automático, além de cuidar das atualizações de sistemas operacionais necessárias.
Um container alocado em nuvem torna o conteúdo acessível de qualquer lugar que tenha conexão
com a Internet. A única coisa que temos que fazer é liberar o acesso. Com essa autonomia, ganhamos
recursos extra, como a possibilidade de acessar os dados de qualquer dispositivo compatível com a
aplicação. Assim, a aplicação fica disponível a qualquer hora, lugar e dispositivo.

158
UNIDADE 6

Um exemplo de aplicação em nuvem que é muito utilizado é o serviço de e-mail. Você até pode
baixar os seus e-mails localmente, mas, quando acessa o site do seu provedor de e-mail via web browser,
você está acessando os seus e-mails na nuvem. O browser é apenas a interface. O mesmo processo se
aplica quando você acessa por meio de seu smartphone. Nesse caso, o aplicativo utilizado faz o papel
da interface. Como os e-mails estão na nuvem, é indiferente o meio que você utiliza para acessá-lo.

Aplicação

Figura 5 - Sistema distribuído em nuvem / Fonte: o autor.

Descrição da Imagem: a figura mostra uma nuvem no centro. Dentro dela, há um servidor com a inscrição: “Aplicação”. Ele se conecta
à parte superior da nuvem à esquerda, em que há um tablet. Ainda na parte superior, mas do lado direito, encontra-se um smartphone
se conectando à nuvem. Na parte de baixo, à esquerda, há um laptop se conectando à nuvem. Por fim, do lado direito, um computador
pessoal se conecta à nuvem. Todos esses dispositivos estão se conectando por meio de um ícone de “raio”.

Na Figura 5, é ilustrado o funcionamento de uma arquitetura em nuvem. Lembre-se de que, na nuvem,


não sabemos onde fica o servidor, tão pouco se se trata de um ou mais servidores. O que interessa para
nós, nesse caso, é que os dados estão acessíveis de qualquer lugar.

159
UNICESUMAR

Para conhecer os serviços computacionais em nuvem, você pode


explorar a documentação da Amazon AWS, um dos maiores forne-
cedores de computação em nuvem da atualidade.
Computação em nuvem AWS:

Armazenamento em nuvem:

Para acessar, use seu leitor de QR Code.

Para compreendermos melhor o processo de implantação de um sistema distribuído orientado a


objetos e alocado em nuvem, criaremos um modelo de objeto prático e simples. É válido frisar que
o modelo para esse objeto se trata de uma classe. Dessa forma, a chamaremos de classe “Alunos”. Ela
representa uma pequena base de dados feita para armazenar os dados de um aluno em um possível
sistema de uma escola.

Aluno
Nome
Endereço
Telefone
Curso
E-mail

Figura 6 - Modelo de classe “Aluno” / Fonte: o autor.

Descrição da Imagem: a figura mostra uma caixa com o rótulo “Aluno” em destaque. Abaixo, encontram-se os seguintes campos:
“Nome”, “Endereço”, “Telefone”, “Curso” e “Turma”.

160
UNIDADE 6

Agora, elaboraremos um container na nuvem para alocar os objetos resultantes da classe.

Container
Aluno

Aluno
Nome
Endereço
Telefone
Curso
E-mail

Figura 7 - Modelo de container “Aluno” / Fonte: o autor.

Descrição da Imagem: a figura mostra um cilindro com o nome “Container Aluno”. No interior dele, encontra-se a mesma tabela da
imagem anterior, a chamada “Aluno”. Dentro dela, estão os atributos, incluindo nome, endereço, telefone, curso e turma.

O container nada mais é que um espaço onde podemos armazenar os dados na nuvem de modo que
possamos localizar depois. Pense na nuvem como um emaranhado de servidores, equipamentos de
redes e cabos em grandes espaços dedicados chamados “Data Center”. Esses Data Centers estão es-
palhados pelo mundo, então, dessa forma, dados soltos pela nuvem são inúteis, pois seria impossível
localizá-los e agrupá-los de forma a torna-los utilizáveis. Precisamos de alguma forma de identificá-los
para podermos alcançar. Uma forma de fazer isso é criar um bucket ou container, que é um espaço de
memória alocado no provedor de nuvem para guardar os dados.

Quando configuramos um container, temos acesso a uma série de informações e


grupos de segurança. Liberamos ou bloqueamos o acesso dependendo da aplicação,
das opções referentes aos tipos de armazenamento, da velocidade, da quantidade de
acessos esperados e de outras opções mais avançadas. No entanto, neste momento,
nós nos concentraremos no acesso à informação armazenada. Isso se dá quando
recebemos o endereço lógico do container ou do bucket. No nosso exemplo, seria
algo como:
https://dominioescola/containeraluno:3355
Por meio de uma URL como essa, os recursos podem ser acessados pela rede. Para
entender mais sobre essa URL, acesse-a.
https://dominioescola/containeraluno:3355

161
UNICESUMAR

O Hypertext Transfer Protocol (HTTP) é o protocolo utilizado na comunicação. É desse


modo que dizemos à aplicação como ela acessará os dados. Nesse caso, o protocolo
utilizado é o HTTP, o qual é utilizado para transferência de hipertextos. Comumente,
é usado em web browsers.
https://dominioescola/containeraluno:3355
“dominioescola”. Aqui, configura-se o domínio do container. Também pode ser utilizado
o endereço IP.
https://dominioescola/containeraluno:3355
“containeraluno” é o nome do container propriamente dito. Note que podemos con-
figurar inúmeros containers com somente um domínio ou IP.
https://dominioescola/containeraluno:3355
“3355” é a porta lógica TCP (Telecommunication Protocol). A porta é importante para
separar o tráfego das diferentes aplicações de rede e criar sessões diferentes. É de-
vido às portas lógicas que os servidores saberão para onde enviar as requisições. As
portas lógicas também são muito importantes para garantir a segurança. Podemos
configurar, no Firewall da nuvem, quem pode acessar qual porta e quem não pode
por meio do endereço IP.

Para entender mais sobre URL, acesse o site oficial da nic.br e assista
ao vídeo explicativo.
Para acessar, use seu leitor de QR Code.

Com a classe configurada, o objeto definido e o endereço lógico em mãos, o container está devida-
mente configurado e pronto para uso. Agora, a questão é: como acessamos esse container para salvar
ou buscar dados nele?
Podemos utilizar arquivos de configuração, como XML ou JSON, enviando-os para o endereço de
destino. Basta configurar a aplicação para fazer esse trabalho, preparar os dados e enviá-los, normal-
mente, por meio de uma API, que se trata de uma interface de programação de aplicação ou, em grosso
modo, uma forma de um software se conectar com outro.
Você pode acessar o seu container via web e subir, visualizar ou modificar os dados manualmente.
Entretanto, é via aplicação que se dá a utilidade do container. Esses arquivos de configuração têm uma

162
UNIDADE 6

estrutura básica muito simples, com o nome do campo a ser preenchido seguido dos dados em si. Por
exemplo, para salvar o objeto “Aluno”:

“nome”: “João da Silva”,


“idade”: 29,
“telefone”: 43999999999,
“endereço”: “Rua Maria Alves 151, Maringá-PR”,
“Turma”: “3P”,
“Curso”: “Análise e Desenvolvimento de Sistemas”

Configuramos o nosso sistema para salvar os dados e enviá-los para o container, o qual os armazenará.
Dessa forma, podemos acessá-los de qualquer lugar e a qualquer momento.
Esses arquivos (XML e JSON) têm recursos mais complexos e que podem ser explorados. Eles
podem ser muito importantes no desenvolvimento de sistemas orientados a objetos e, tratando-se de
sistemas distribuídos, eles auxiliam na comunicação. Trata-se de uma forma efetiva de acessar os dados.
Outro formato que vem sendo utilizado é o YAML, porém o funcionamento dele é muito parecido
com os demais.

Caro(a) aluno(a), convido você a escutar nosso podcast. Nele, con-


versamos com um programador com mais de 10 anos de experiên-
cia em programação de sistemas e que acompanhou a evolução dos
sistemas distribuídos e a computação em nuvem. Falaremos sobre o
impacto da Internet nos sistemas distribuídos, as principais tecnolo-
gias na programação de sistemas em nuvem e os prós e os contras.
Vamos juntos?!

Proponho uma gravação de tela em que é criada, na prática, um con-


tainer na nuvem e armazenado um objeto neste container, narrando
o passo a passo.

163
UNICESUMAR

Em um mundo conectado como o de hoje, é cada vez mais comum armazenar os dados em múltiplos
lugares em forma de objeto. Um dos gigantes do streaming, a Netflix, armazena os objetos nos serviços
de nuvem da Amazon AWS (NETFLIX, [2021], on-line)¹. Toda vez que você procura um filme no
catálogo da Netflix ou escreve um título para assistir, você está acessando um objeto de um sistema
distribuído em nuvem.
Depois desse passeio pelo paradigma da programação orientada a objetos, objetos, classes, compu-
tação em nuvem e todos os conceitos apresentados, podemos dizer que sabemos o que é a orientação
a objetos. Entendemos que não é tão complexo como parece ser quando ouvimos o termo pela pri-
meira vez. Na verdade, agora, você já sabe como as coisas ficam bem mais fáceis quando utilizamos a
orientação ao objeto.
Em um mundo conectado como o de hoje, os sistemas distribuídos estão cada vez mais presentes,
em especial, os serviços computacionais no modelo em nuvem, visto que usamos esses serviços todos
os dias. É provável que você os utilizou hoje mesmo. Exemplos são o provedor de e-mail, como Gmail
ou Hotmail, os aplicativos de mensagens instantâneas, como o WhatsApp, e as redes sociais. Todas essas
aplicações têm os dados em nuvem e, em sua grande maioria, utiliza os sistemas distribuídos para se
manterem em funcionamento.
Isso se dá devido à facilidade que estes sistemas proporcionam. Essa facilidade seria impossível
sem o paradigma da orientação a objetos: como o seu e-mail iria armazenar os dados sem agrupar as
informações em um “e-mail” específico? Da mesma maneira, quando você desenvolver ou utilizar os
sistemas profissionalmente, você sempre se referirá aos dados como objetos: “vamos salvar este arqui-
vo”,“vamos fazer este desenho”,“vamos salvar este documento”. Perceba que tudo é um objeto. Somos
humanos, vemos as coisas como objetos. É disso que provém a enorme importância desse paradigma.

164
Agora é sua vez de usar seus novos conhecimentos em um mapa mental. Vamos lá? O mapa ex-
plora os principais conceitos dos sistemas orientados ao objeto. Do lado esquerdo, encontram-se
os conceitos de classe. Seguindo a lógica apresentada, preencha o campo que falta com o item
que herda os atributos da classe pai. Lembre-se dos conceitos de herança e faça uma revisão
sobre esse conceito, caso não se lembre. Do lado direito, encontram-se os conceitos de sistemas
distribuídos, divididos em dois subtipos. Preencha as informações faltantes.

SISTEMA ORIENTADO A OBJETOS

Classe Pai Sistemas Distribuídos

Rede Local

Objeto Container

Atributos

165
1. Quando falamos do paradigma da orientação a objetos, precisamos ter em mente
alguns recursos, como classe, objeto, método e interface.

Quanto às classes é correto afirmar que:

a) Na abordagem orientada ao objeto, tudo é uma classe.


b) As classes servem como uma interface para acesso ao objeto.
c) As classes definem as características em comum dos objetos.
d) As classes são utilizadas para enumerar os objetos.
e) Classes e objetos têm a mesma função.

2. Uma das grandes vantagens do armazenamento de objetos em sistemas distribuídos


é a alta disponibilidade. Isso se deve à:
a) Descentralização dos objetos.
b) Concentração dos objetos.
c) Facilidade de implementação.
d) Organização em classes
e) Alta velocidade da Internet.

3. Ao projetar sistemas orientados a objetos, o projetista pensa em tudo como objeto, de


forma análoga ao mundo real.

Sobre a temática, é correto afirmar que:

a) No desenvolvimento orientado a objetos, devemos recriar as instruções, mesmo que


idênticas, para objetos diferentes, copiando trechos de código para facilitar a progra-
mação.
b) Todos os objetos devem estar em um mesmo container, garantindo a integridade do
sistema.
c) Os objetos só podem ser distribuídos em nuvem.
d) Um objeto funciona como um software auxiliar ao sistema principal.
e) Qualquer coisa pode ser um objeto, inclusive, as coisas abstratas.

166
4. A estrutura de classes facilita a programação, ao reutilizar trechos de código, mantendo
a estrutura mais limpa e organizada.

Sobre a temática, assinale a alternativa correta:

a) As classes pai herdam os atributos das classes filho.


b) As classes pai criam as classes filho.
c) As classes filho herdam os atributos das classes pai.
d) Os objetos filho herdam os atributos dos objetos pai.
e) Não existe herança em sistemas distribuídos.

5. A computação em nuvem está cada dia mais presente em nossas vidas, trazendo inú-
meras vantagens. Dentre elas:
a) Conexão mais rápida, por ser via satélite
b) Nuvens são mais estáveis, pois concentram os dados em um mesmo servidor.
c) Tem alta disponibilidade, por ser distribuída.
d) Não há vantagens em utilizar nuvens.
e) Nuvens podem ser acessadas somente via Wi-Fi.

167
168
7
Sistemas de arquivos
distribuídos
Esp. Cesar Augusto de Carvalho

Nesta unidade, entenderemos o que é um sistema de arquivos e


conheceremos as diferenças dele quando comparado aos sistemas
de arquivos distribuídos. Além disso, compreenderemos os detalhes
do funcionamento de um sistema de arquivos e saberemos a melhor
forma de implantá-lo. Também mencionaremos o funcionamento
dele em nuvem. Vamos começar?
UNICESUMAR

Quando você termina de digitar um trabalho da faculdade ou de fazer uma linda apresentação no
Power Point, por exemplo, o que você faz antes de fechar tudo e desligar? Você salva o arquivo, não é
mesmo? Depois disso, a qualquer momento, você pode ligar o computador novamente e abrir o ar-
quivo, enviá-lo para alguém, fazer alterações, cópias ou até mesmo excluí-lo. No entanto, o que é esse
arquivo, de fato, além de um pequeno ícone em nossa tela?
Exploraremos esse conceito e entenderemos melhor o que realmente se trata esse famigerado arquivo.
Quando falamos de um arquivo salvo em uma pasta de Windows ou em qualquer outro sistema
operacional, logo, o ícone de arquivo anterior nos vem à mente. Trata-se de um ícone simpático que
nos lembra os armários de escritório com inúmeras pastas. Isso é um efeito proposital: o ícone foi
criado para transmitir exatamente essa ideia e, nessa seara, observamos, na prática, o paradigma da
orientação a objetos.
Para melhor entender, o arquivo é, na verdade, uma abstração criada para organizar os dados de
forma metódica e acessível dentro do sistema. Para o usuário, é criada essa abstração na forma de
arquivo. Nesse caso, a semelhança com os arquivos de escritório facilita para o usuário. Como seres
humanos, usamos muito a similaridade para entender os assuntos novos. Assim, ao tratar esse conjunto
de dados como um objeto, podemos assimilar o que representam aqueles dados.
Já imaginou dizer para o computador onde armazenar cada pedaço de informação na memória
física? Um único caractere, por exemplo, utilizando os padrões computacionais mais comuns, tem
cerca de 256 bits no sistema, ou seja, uma combinação de 256 zeros e uns. Ao associar cada bit em um
espaço físico de memória por meio dessa abstração (o arquivo), podemos nos preocupar apenas com
o conteúdo. O sistema se encarrega de armazenar a informação.
Se, em um cenário comum, como um computador doméstico, os sistemas de arquivos são im-
portantes, visto que, sem eles, seria inviável salvar ou compartilhar arquivos, imagine em um sistema
distribuído, em que podem existir dados incontáveis e separados geograficamente? Seria impossível o
funcionamento desse sistema sem a abstração dos dados em objetos, tais como os arquivos e as pastas.
Com base naquilo que você sabe sobre os sistemas distribuídos, redes e Internet, já é possível
imaginar algumas situações em que a computação distribuída em nuvem pode ser a melhor escolha.
Para praticarmos um pouco, considere que você foi contratado por uma loja de departamentos.
Essa loja tem um enorme catálogo de produtos, os quais são armazenados em servidores locais.
Isso tem funcionado bem até aqui, porém, para garantir a segurança e a disponibilidade dos dados,
a gerência da tecnologia da informação lhe pediu para descobrir o melhor provedor de serviços
de nuvem para fazer a migração. Lembre-se de que são milhares de imagens e documentos com
especificações de cada produto.
Para essa atividade, na Internet, faça uma pesquisa sobre o armazenamento de dados em nuvem.
Liste os principais provedores de armazenamento de arquivos em nuvem e delimite aqueles que podem
atender melhor essa migração. Prepare um pequeno plano para essa mudança e destaque os benefícios
da computação em nuvem.
Escreva, em seu diário de bordo, o que você aprendeu pesquisando sobre os provedores de armaze-
namento de arquivos em nuvem. Para lhe ajudar nesta tarefa, tente responder às seguintes perguntas:

170
UNIDADE 7

• O que é mais vantajoso para a loja de departamento? Investir em servidores locais (on premises)
ou migrar os dados para a nuvem?
• Quais são as vantagens e as desvantagens de usar o modelo em nuvem?
• Qual seria a complexidade da migração?

DIÁRIO DE BORDO

Exploraremos alguns modelos de sistemas de arquivos, mas, antes, analisaremos um pouco mais
a parte interna de um arquivo. Assim como já afirmamos, um arquivo é uma abstração criada para
podermos armazenar as informações de forma consistente para o sistema e de forma visual e similar
ao mundo real para o usuário. Contudo, como um sistema salva os dados?

171
UNICESUMAR

Iniciaremos os nossos estudos com um olhar mais superficial e aprofundaremos aos poucos. Primeira-
mente, você precisa ter em mente que um arquivo é um conjunto de “0” e “1” que utiliza o sistema
matemático binário. Dessa forma, um bit nada mais é que um espaço de memória preenchido com “0”
ou “1”. Esse processo de transformar a informação em uma série de dígitos binários é conhecido como
“serialização”. Por meio desse processo, podemos salvar e compartilhar dados somente “quebrando” as
informações em “0s” e “1s”.
Como um computador salva um bit 0 ou 1 em um espaço de disco magnético, por exemplo? Um
espaço de disco magnético, normalmente, chamado de “setores”, é preenchido com uma carga elétrica
positiva se houver “1” e negativa se houver “0”.

Agulha

+ Ca
rga rga
Ca +

Setor

Figura 1 - Exemplo de alocação de espaço em disco / Fonte: o autor.

Descrição da Imagem: a figura mostra, no centro, um cilindro, o qual representa um disco. No interior do cilindro, da esquerda para a
direita, encontra-se uma seta com a descrição “Carga +”, a qual aponta para um retângulo localizado embaixo e com a descrição “Setor”.
No centro, há uma seta mais fina com a descrição “Agulha”. Ela também aponta para o “Setor” e, à direita, encontra-se mais uma seta
com a descrição “Carga +” apontando para “Setor”.

A Figura 1 ilustra, de forma básica, como um bit é salvo em um setor de disco magnético. Na verdade,
o processo é bem simples. O bloco “setor” recebe, da agulha, a carga, que pode ser negativa para “0” e
positiva para “1”. Para manter esse bit “preso”, utilizamos cargas eletromagnéticas iguais e adjacentes,
de forma a usar o efeito de repulsão. Lembre-se dos princípios básicos do magnetismo, em que pola-
ridades iguais se repelem.
Para deletar a informação, uma carga eletromagnética igual e oposta àquela que está armazenada é
injetada. Aqui, visualizamos mais um princípio do eletromagnetismo: cargas iguais e opostas se anulam.

172
UNIDADE 7

Existem outras técnicas de armazenamento de dados. Hoje, encontramos os discos SSD (Solid State
Disc) em ascensão. Eles são muito mais rápidos, visto que não precisam do processo mecânico dos
HDs convencionais, como girar o disco e movimentar a agulha. Todavia, nós, neste momento, vamos
nos concentrar no arquivo, que é a abstração de centenas de milhares de bits armazenados.

Se, para armazenar apenas um bit, toda a física eletromagnética exposta entra em ação, o
que é preciso para armazenar arquivos inteiros? Pense nos gigantescos bancos de dados de
empresas, como a Google.

Agora que tivemos uma breve ideia de como os dados são salvos, começaremos a entender a organi-
zação necessária para estruturar toda essa informação, de forma a deixá-la consistente e acessível. Isso
só é possível graças aos sistemas de arquivos.
Os sistemas de arquivos são conjuntos de padronizações e de regras para salvar, modificar, executar
ou até mesmo deletar os arquivos de acordo com o sistema operacional. O sistema de arquivo legado
FAT16 foi criado para ser utilizado com o sistema operacional MS-DOS. A evolução dele, o FAT32,
foi adaptado para o Windows 98, adicionando diversas funções. Já a partir do Windows NT e o mais
popular Windows 2000, temos o sistema NTFS (New Technology File System), que é o sistema mais
utilizado hoje. Nele, encontramos o suporte aos sistemas distribuídos, mas falaremos disso mais adiante.
Esses sistemas fazem a leitura do nome do arquivo. Pelo nome, o sistema operacional consegue
identificar o que precisa fazer com o arquivo. Por exemplo, quando você termina o seu trabalho da
faculdade e salva o arquivo no disco, ele tem um nome parecido com Trabalho.doc.
O nome que você escolheu é seguido por três dígitos (que podem variar) conhecidos como extensão.
Essa extensão serve para identificar o que fazer com o arquivo. No exemplo exposto, “.doc” evidencia
ao sistema operacional que o arquivo deve ser aberto com o programa Word. Em sistemas operacio-
nais baseados em Linux, as extensões podem ser referenciais, e não obrigatórias, o que depende da
distribuição de Linux que você utiliza e os softwares. Podemos, ainda, encontrar arquivos com duas
extensões. Por exemplo: pagina1.html.zi
No exemplo, visualizamos o nome do arquivo,“pagina1” seguido da extensão “.html”. Isso indica se
tratar de uma página web em html compactada em “zip”. Quanto à estrutura dos arquivos, é importante
ressaltar que o sistema operacional não se preocupa com o conteúdo do arquivo:


Ter o sistema operacional tratando os arquivos como nada mais que sequências de bytes
oferece a máxima flexibilidade. Os programas de usuário podem pôr qualquer coisa que
queiram em seus arquivos e chamá-los do nome que lhes convier. Os sistemas operacio-
nais não ajudam, mas também não atrapalham. Para usuários que queiram fazer coisas

173
UNICESUMAR

incomuns, esta característica pode ser muito importante. Todas as versões de UNIX, do
MS-DOS e do Windows usam este modelo de arquivo (TANENBAUM, 2009, p. 160).

Dessa forma, fazemos o que queremos com os nossos arquivos. O sistema operacional não se preocupa
se inserimos, por exemplo, a palavra “labrador” em uma lista de raças de gato.
Outro aspecto importante, antes de avançarmos para a exploração dos sistemas de arquivos dis-
tribuídos, são os diretórios de arquivos, conhecidos popularmente como pastas. O diretório ou pasta
é, na verdade, outra abstração criada, a fim de organizar os arquivos por meio do agrupamento. Em
alguns casos, podemos trabalhar com arquivos que estão contidos em apenas um diretório. O diretório
raiz é normalmente utilizado em sistemas mais simples ou sistemas embarcados, como é o caso do
roteador de Wi-Fi da sua casa.

Sistema de arquivos

Arquivo 1

Arquivo 2

Arquivo 3

Figura 2 - Alocação de arquivos em diretório raiz / Fonte: o autor.

Descrição da Imagem: a figura exibe um cubo com a seguinte inscrição: “Sistema de arquivos”. Dentro desse cubo, existem três retân-
gulos. São eles, de cima para baixo: Arquivo 1, Arquivo 2 e Arquivo 3.

Um modelo mais complexo e mais elaborado usado pela maioria dos sistemas operacionais é o modelo
hierárquico. Nele, organizamos os arquivos em diretórios e subdiretórios.

174
UNIDADE 7

Sistema de Arquivos

Diretório A

Arquivo 1 Arquivo 2

Diretório B

Arquivo 3

Arquivo 4

Figura 3 - Alocação de arquivos em modelo hierárquico / Fonte: o autor.

Descrição da Imagem: a figura exibe um cubo com a seguinte descrição: “Sistema de Arquivos”. Dentro do cubo, de cima para baixo,
encontra-se um paralelogramo com a descrição: “Diretório A”. Dentro dele, temos dois retângulos, da direita para esquerda, com as
seguintes descrições: Arquivo 1 e Arquivo 2, respectivamente. Logo abaixo, há outro paralelogramo com a descrição: “Diretório B”. Dentro
dele, há um retângulo com a descrição: “Arquivo 3”. Mais abaixo, no cubo, há outro retângulo com a seguinte descrição: “Arquivo 4”.

Assim como é visível na Figura 3, os arquivos podem estar contidos em diretórios ou alocados no
diretório raiz, que é o que a Figura 4 demonstra.

Sistema de arquivos

Diretório A
Arquivo 1 Arquivo 2

Diretório B
Arquivo 3

Arquivo 4

Figura 4 - Alocação de arquivos em modelo hierárquico com subdiretórios / Fonte: o autor.

Descrição da Imagem: na figura, encontra-se um cubo com a seguinte descrição: “Sistemas de Arquivos”. Dentro do cubo, no centro,
há um losango com a descrição: “Diretório A”. Dentro desse losango, de cima para baixo, encontra-se, à esquerda, um retângulo com a
seguinte descrição: “Arquivo 1”. À direita, encontra-se outro retângulo com a descrição “Arquivo 2”. Abaixo, ainda dentro desse losango
maior, temos um losango com a descrição “Diretório B”. Dentro desse losango, encontra-se um retângulo com a descrição “Arquivo 3”.
Abaixo, fora dos losangos, mas ainda dentro do cubo, vemos um retângulo com a seguinte descrição: “Arquivo 4”.

175
UNICESUMAR

Na Figura 4, que representa um exemplo de sistema de arquivos, também é utilizado o modelo hie-
rárquico. Contudo, é perceptível que a utilização de subdiretórios, no caso, o Diretório B, está contida
em A, e o Arquivo 4 está alocado no diretório raiz. Dessa forma, temos muitas opções à disposição e
esses recursos não são explorados somente pelos usuários, mas também pelos sistemas. Acesse a pasta
Windows em seu computador: você verá que o sistema organiza as informações em pastas exatamente
como fazemos. Dessa maneira, a organização fica mais consistente do ponto de vista sistêmico.
Essas foram apenas as noções básicas sobre sistemas de arquivos. Se você se interessou pelo assun-
to, há muito mais conteúdo para ser explorado. Uma excelente fonte para esse conteúdo é o livro que
indico a seguir.

Título: Sistemas operacionais modernos


Autor: Andrew S. Tanenbaum
Editora: Pearson Prentice Hall
Sinopse: Tanenbaum explica os mais recentes avanços tecnológicos da
área e apresenta um vasto conteúdo que trata, por exemplo, do Linux, do
Windows Vista, dos malwares e dos sistemas operacionais embarcados
(como o Symbian, muito usado em smartphones). A linguagem clara e a
reordenação dos capítulos, por exemplo, facilitam a compreensão do leitor,
que conta, inclusive, com novos problemas no fim de cada capítulo. Essa edição é ideal para os
estudantes e os profissionais das ciências da computação, da engenharia da computação e de
sistemas de informação que buscam trabalhar com o que há de mais recente na área.
Comentário: com este livro, você aprenderá todos os recursos dos sistemas operacionais,
incluindo os sistemas de arquivos, com um olhar mais profundo e detalhado. Acesse o livro na
Biblioteca Virtual.

Agora que conhecemos os sistemas de arquivos mais comuns, as principais características e o funcio-
namento deles, avançaremos em direção aos sistemas distribuídos. Nesse contexto, iniciaremos com
um assunto muito importante quando falamos de sistemas distribuídos: o compartilhamento.
O compartilhamento só foi possível devido à evolução das redes de computadores e, por conseguinte,
do desenvolvimento dos sistemas de arquivos específicos para o compartilhamento em rede, assim
como é o caso do NFS (Network File System ou Sistema de Arquivos de Rede). O NFS é um dos mode-
los mais utilizados tanto para as plataformas Linux/Unix quanto para Windows. Se você compartilha
arquivos em rede, provavelmente, você está utilizando NFS. O funcionamento do NFS é basicamente
desenvolvido com base na arquitetura cliente-servidor.

176
UNIDADE 7

Servidor
Cliente

Figura 5 - Modelo cliente-servidor / Fonte: o autor.

Descrição da Imagem: trata-se de uma ilustração que mostra um notebook à esquerda com a seguinte descrição: “Cliente”. Também há
um ícone à direita que representa um servidor com a descrição: “Servidor”. Duas setas estão no centro e entre as imagens do notebook
e do servidor. Elas seguem em direções opostas, simbolizando a troca de informações entre o cliente e o servidor.

Nesse modelo, os dados ficam centralizados no servidor e os clientes acessam de forma remota via
rede local ou Internet. O arquivo não precisa ser copiado para o cliente, ele permanece no servidor. As
modificações são feitas em forma de requisições ao servidor e os sistemas operacionais enviam, em
forma de mensagem, as instruções para que o servidor altere o arquivo. É algo do tipo:
“Servidor, na planilha 1, altera a célula B2 para ‘100’”
O servidor modifica os dados e os guarda. Nesse caso, o volume de informações transmitidas se
dá somente pelas modificações, já que não é necessário fazer o download do arquivo como um todo.

Servidor
Cliente

Figura 6 - Modelo cliente-servidor com carga e descarga / Fonte: o autor.

Descrição da Imagem: trata-se de uma ilustração que mostra um notebook à esquerda com a descrição: “Cliente”. Também há um
ícone à direita que representa um servidor com a seguinte descrição: “Servidor”. No centro, encontram-se dois arquivos: um com duas
setas apontando no sentido do “Servidor” para o “Cliente” e outro com duas setas apontando no sentido do “Cliente” para o “Servidor”.

177
UNICESUMAR

Nesse caso, o cliente solicita ao servidor uma cópia do arquivo, faz as modificações desejadas e o envia
de volta. Nesse modelo, não é possível a colaboração de mais de um cliente ao mesmo tempo e a carga
de dados gerada na rede é maior, uma vez que, para acessar qualquer arquivo, uma cópia é enviada ao
cliente, modificada e devolvida ao servidor.
O serviço de File Transfer Protocol (FTP) ou, em português, Protocolo de Transferência de Arquivos,
um dos protocolos mais usados na carga de arquivos em servidores web, é um exemplo desse tipo de
arquitetura, não sendo possível a atualização em tempo real. O NFS funciona de forma semelhante ao
sistema hierárquico apresentado:


O modelo de sistema de arquivos oferecido pelo NFS é quase igual ao oferecido por sistemas
baseados em Unix. Arquivos são tratados como sequências de bytes não interpretadas
e são organizadas hierarquicamente em um gráfico de nomeação no qual os nós repre-
sentam diretórios e arquivos (TANENBAUM; STEEN, 2008, p. 297).

Em outras palavras, os arquivos em NFS são organizados em diretórios e em subdiretórios, de acordo


com a necessidade do sistema ou do usuário. Outro exemplo de sistema de arquivos distribuídos é o
modelo baseado em cluster.
Já sabemos que o cluster é um conjunto de servidores interligados que trabalham como se fossem um.
Na arquitetura de um cluster, normalmente, temos um computador mestre, que distribui as tarefas para
os computadores servos. Executada a tarefa, o mestre é avisado e outra tarefa lhe é designada. Os clusters
otimizam a velocidade da execução das tarefas, uma vez que, distribuindo as cargas, as tarefas são menores.

Mestre

Figura 7 - Cluster / Fonte: o autor.

Descrição da Imagem: a figura mostra, de


cima para baixo, um servidor com a seguinte
descrição: “Mestre”. Ele está conectado a um
tubo no centro, que representa um barra-
mento de conexão. Abaixo, também conec-
tados ao barramento, estão três servidores
iguais, lado a lado, com a descrição “Servo”.
Servo Servo Servo

178
UNIDADE 7

Para entender como funciona um cluster, assista ao vídeo do Manual


do Mundo. Nele, é construído um pequeno cluster e demonstrado o
funcionamento dele. Vamos conferir?
Para acessar, use seu leitor de QR Code.

Os sistemas de arquivos baseados em clusters podem fatiar o arquivo e distribuir as fatias para os
membros do cluster. Dessa forma, ganha-se em desempenho e cada membro do cluster tem uma car-
ga muito pequena para cuidar. Algumas vezes, a depender do modo como o sistema foi configurado,
essas fatias podem ter cópias em membros diferentes do cluster, formando um arquivo redundante.
Em outras palavras, caso um membro do cluster venha a falhar, o arquivo pode ser recuperado de uma
de duas cópias redundantes.

Figura 8 - Fatiamento de arquivo em cluster / Fonte: o autor.

Descrição da Imagem: a figura mostra, de cima para baixo, à esquerda, um arquivo conectado, por meio de uma seta, a um servidor no
centro. Abaixo desse servidor, estão três setas conectadas a três arquivos menores. Esses três arquivos menores estão se conectando,
por meio de uma seta, a três servidores mais abaixo.

179
UNICESUMAR

As maiores empresas de computação em nuvem, como a Google e a Amazon, utilizam esse tipo de
arquitetura (em cluster) para atender às demandas dos serviços web. A Google, em especial, criou o
próprio sistema de arquivos distribuído, o GFS (Google File System). Você pode acessar essa docu-
mentação (somente em inglês) em:
https://static.googleusercontent.com/media/research.google.com/pt-BR//archive/gfs-sosp2003.pdf
Embora a Google tenha criado o próprio sistema proprietário, ele foi totalmente baseado em NFS,
assim como quase todos os sistemas de arquivos distribuídos.
Outro aspecto importante dos sistemas de arquivos distribuídos é a comunicação. A chave para a
eficiência dos sistemas de arquivos é torná-los independentes do sistema operacional, o que foi pos-
sível graças à criação dos Remote Procedure Calls (RPC), em português, Procedimento de Chamadas
Remotas. Os RPC são requisições enviadas do cliente para o servidor, com o objetivo de extrair a
informação de um arquivo remoto. Simplifiquemos um pouco.
Considere que você é o dono de uma padaria e, todos os dias, pela manhã, um menino chega com
um bilhete em mãos e lhe entrega. Você verifica que o bilhete contém um pedido de quatro pães e
prepara o pacote. Depois, anota o valor na conta do cliente e entrega o pacote de pães para o menino,
que o leva para a casa. Analisando esse cenário, a padaria faz o papel do servidor, pois é onde os dados
são processados e estocados. A casa do menino é o sistema cliente, ou seja, o destino da informação em
questão. O menino, em si, faz o papel do NFS, o sistema de arquivos de rede que controla esse processo.
É ele quem, de fato, faz o transporte da informação a um nível de aplicação, enquanto o bilhete seria
uma RPC, uma requisição detalhada daquilo que é solicitado.

Ainda considerando o cenário da padaria, a conta do cliente seria o registro do sistema ope-
racional?

Quando compartilhamos arquivos em uma rede, devemos ter uma preocupação extra: quem acessará
os dados? Quem pode modificar ou apagar? Os NFS têm suporte para essa configuração. O suporte é
conhecido como travamento. O sistema operacional marca um arquivo como acessível, ou não, a um
usuário ou a um grupo de usuários. Isso depende do modo como está configurado o domínio de rede.

180
UNIDADE 7

O mesmo processo serve para aqueles que podem modificar os arquivos. Dessa forma, podemos
configurar arquivos e pastas do NFS como “somente leitura” para um grupo de usuários e “leitura” ou
“escrita” para outros em um ambiente compartilhado. Isso é extremamente necessário, especialmente
se tratando de arquivos confidenciais ou de dados sensíveis.
Atualmente, é impossível falar de sistemas de arquivos distribuídos sem falar de nuvem. Todos os
conceitos apresentados se aplicam à computação em nuvem. Na verdade, quando falamos de guardar
dados em nuvem, estamos falando de um grande sistema de arquivos distribuídos: embora sejam
aplicados os mesmos conceitos, quem faz todo o controle é a detentora da nuvem ou o provedor. Po-
demos entender a nuvem como um NFS público compartilhado por várias entidades (podem existir
as nuvens privada e dedicada).
A temática sistemas de arquivos distribuídos é imensa. Conhecemos os principais conceitos,
mas você pode explorar esse vasto conteúdo no livro que indico a seguir.

Título: Sistemas distribuídos


Autores: Andrew S. Tanenbaum e Maarten Van Steen
Editora: Pearson Prentice Hall
Sinopse: nesta segunda edição, melhorada e atualizada, Tanenbaum e Van
Steen apresentam os detalhes de funcionamento dos sistemas distribuídos
e as tecnologias subjacentes. Ao separarem os princípios dos paradigmas,
os autores mostram como os princípios se relacionam uns com os outros,
discutindo quatro classes de sistemas distribuídos. Isso permite uma per-
cepção ainda mais abrangente do conteúdo apresentado. Com apresentação clara e concisa, e
uma cobertura equilibrada e sistemática dos princípios, dos conceitos avançados e das tecnologias
de sistema distribuídos, esta é obra de referência tanto para professores quanto para alunos e
profissionais da área.

Neste podcast, será explicada a evolução dos sistemas de arquivos,


desde os mais primitivos, como NT (New Technology), passando por
NFS (Network File System), até chegarmos aos sistemas de arquivo
em nuvem. Vamos conferir?

181
UNICESUMAR

Neste vídeo, criaremos, na prática, um pequeno sistema de arquivo


compartilhado em redes. Assim, demonstraremos os principais re-
cursos e ferramentas, e explicitaremos como podemos configurar as
autorizações para leitura/escrita em cada arquivo ou pasta. Ligue o
seu computador e faça junto!

Com o avanço da tecnologia, é cada vez mais necessário o compartilhamento de informações. A mu-
dança dos sistemas de arquivos para os sistemas de arquivos distribuídos foi o que proporcionou um
ambiente para a evolução. Lembre-se de que, quando você compartilha um documento em rede ou
quando você edita um arquivo em nuvem, você está utilizando um sistema de arquivo distribuído ou
algo parecido, mas que, com toda a certeza, evoluiu dos NFS.
Portanto, para o desenvolvimento de qualquer sistema distribuído, este conhecimento se faz neces-
sário. Quando você estiver desenvolvendo os seus próprios sistemas ou fazendo ajustes em sistemas já
desenvolvidos, será necessário entender os sistemas de arquivos, visto que é por meio deles que os dados
são salvos, processados e compartilhados. Assim, utilizando as técnicas desenvolvidas ao longo desta
unidade, o seu sistema irá condizer com as melhores práticas, tornando-se escalável, responsivo e eficiente.

182
Agora que entendemos como funciona um sistema de arquivos distribuídos, desde a origem até
os mais modernos sistemas, como aqueles utilizados pelas grandes empresas de serviços de nu-
vem, vamos construir um mapa mental para consolidar o conhecimento que adquirimos até aqui.
Neste mapa, observamos, do lado esquerdo, a evolução dos recursos dos sistemas de arquivos
distribuídos até chegar à computação em nuvem. Do lado direito, encontra-se a evolução dos
sistemas de arquivos distribuídos em si. Complete os itens faltantes. Se não se lembrar, revise
os conceitos ou faça uma pesquisa na Internet.

Sistemas de arquivos distribuídos

FAT

Diretório raiz

Modelo cliente servidor


NT

Cluster Nuvem

183
1. Os sistemas de arquivos mais simples podem utilizar um padrão de diretórios simples
ou hierárquicos. Normalmente, em sistemas embarcados, como os roteadores W-Fi
domésticos, um sistema mais simples é suficiente, de forma a poupar os recursos.

Quando utilizamos um sistema de arquivos simples, não hierárquico, salvamos os


arquivos em qual diretório?

a) Em sistemas embarcados, normalmente, utilizamos um padrão Unix.


b) Para os sistemas de arquivos mais simples, um disco SSD é recomendado.
c) Todos os sistemas embarcados utilizam diretórios em árvores.
d) Em sistemas embarcados, normalmente, os arquivos são salvos no diretório raiz.
e) Todos os sistemas embarcados utilizam NFS.

2. A evolução dos sistemas de arquivos a partir do sistema NT (New Technology) possi-


bilitou a evolução para NFS. Consequentemente, foi possível o compartilhamento de
arquivos em uma rede local ou na Internet.

Quanto aos NFS é correto afirmar:

a) São sistemas de arquivos criados para o compartilhamento em rede.


b) Por se tratarem de sistemas de arquivos criados para rede, não é possível utilizar
arquivos em ambientes locais.
c) Somente sistemas operacionais baseados em Unix utilizam NFS.
d) FAT16 evoluiu para FAT32. Dessa forma, FAT32 é o mesmo que NFS.
e) NFS são sistemas de arquivos exclusivos para clusters.

3. Os clusters são pilhas de computadores conectados. Eles são compostos por dois ou
mais computadores trabalhando como um único sistema.

Sobre os clusters, assinale a alternativa correta:

a) Clusters são supercomputadores utilizados apenas por grandes empresas.


b) O surgimento dos NFS possibilitou a criação do modelo computacional em cluster.
c) Clusters são exclusivos para sistemas embarcados.
d) Somente FAT32 suporta cluster.
e) Cluster e computação em nuvem carregam o mesmo conceito.

184
4. Um sistema de arquivos no modelo hierárquico pode ser muito versátil, possibilitando
inúmeras opções de configurações e um nível de organização elevado. Ele pode ser
utilizado não só pelos usuários, como pelos próprios sistemas operacionais.

Sobre os sistemas hierárquicos, assinale a alternativa correta:

a) São sistemas que permitem o armazenamento de arquivos em diretórios e subdire-


tórios.
b) Um sistema hierárquico é uma abstração dos dados.
c) Em sistemas hierárquicos, todos os arquivos são salvos no diretório raiz.
d) Somente sistemas operacionais têm privilégios hierárquicos suficientes para guardar
arquivos em sistemas de arquivos hierárquicos.
e) NFS não suporta sistemas hierárquicos.

5. Os arquivos são, na verdade, abstrações criadas para facilitar a organização das infor-
mações. Do ponto de vista sistêmico, as abstrações são:
a) A união de vários arquivos formando um diretório.
b) Um sistema de arquivos binário.
c) Sistemas NFS.
d) Sistemas de arquivos em nuvem.
e) Um objeto virtual criado para organizar os dados.

6. Quando compartilhamos arquivos em rede, devemos tomar alguns cuidados adicionais,


uma vez que, ao compartilharmos dados, podemos expor informações sensíveis ou
dados sigilosos. Assim, para garantir a segurança, foi criado o recurso de travamento
do arquivo.

Sobre travamento, assinale a alternativa correta:

a) O travamento de arquivo só pode ser utilizado em computação em nuvem.


b) Somente FAT32 tem travamento de arquivos.
c) O travamento pode bloquear a escrita, mas liberar somente a leitura quando necessário.
d) Feito o travamento, a leitura e a escrita ficam bloqueadas no arquivo.
e) NFS não suporta travamento.

185
186
8
Projeto de redes
Esp. Cesar Augusto de Carvalho

Nesta unidade, conheceremos os principais conceitos da elaboração


de projetos de redes. Assim, abarcaremos as principais topologias
de redes e entenderemos o funcionamento delas, com o intuito de
escolher a melhor a ser usada. Também compreenderemos alguns
modelos de segmentação e distribuição dos equipamentos, e apren-
deremos a fazer um plano de endereçamento de redes conciso e
eficiente. Por fim, exploraremos os conceitos de escalabilidade,
capilaridade, segurança e disponibilidade.
UNICESUMAR

Para entendermos a importância de um projeto de redes bem feito, imaginemos o seguinte cenário:
você fundou um escritório de marketing digital e tem uma pequena equipe de 10 funcionários. Como
a empresa está no começo, o escritório tem apenas uma sala compartilhada e você não tem recursos
para financiar um bom projeto de redes. Diante disso, acaba optando pelo “faça você mesmo”: com os
10 funcionários e um fornecedor de internet, sua rede está funcionando perfeitamente.
A empresa começa a fazer sucesso. Desse modo, você decide alugar a sala ao lado e contrata mais
10 funcionários. Você apenas compra mais um switch, o instala na sala ao lado e o conecta à primeira
sala. Tudo continua funcionando bem, mas alguns funcionários reclamam esporadicamente da lentidão
da internet. Como são casos isolados, você segue administrando bem.
Contudo, com o passar do tempo, a empresa cresce muito e você precisa contratar pessoas de di-
versas áreas, incluindo contadores, gerentes e profissionais de marketing. Assim, aluga o andar de cima
inteiro e conecta todos os funcionários à rede original, que é aquela em que começaram os primeiros
funcionários. Agora, muitas pessoas estão reclamando da lentidão. Algumas não conseguem enviar um
e-mail e outras não conseguem acessar a internet. Você está com mais de 200 funcionários e a rede está
completamente travada. Em consequência disso, você pede para que todo mundo trabalhe em casa, a
fim de que possa contratar uma empresa especializada para refazer toda a rede.
Com o cenário apresentado em mente, pensemos: não seria mais produtivo organizar a rede no
início, de maneira que ela suportasse todo o crescimento?
O caso apresentado é fictício, porém, não se engane: situações parecidas acontecem com frequência
e, em muitos casos, são mais graves, pois o impacto gerado por uma rede ineficiente pode proporcionar
danos ao negócio da empresa e até mesmo destruí-lo. Por isso, uma rede bem planejada é necessária.
Grandes empresas, hoje, têm uma infraestrutura de rede conectada com a produção, assim como
acontece com as grandes máquinas das fábricas e do setor agrícola. Além disso, é preciso uma conexão
estável no setor financeiro, incluindo as corretoras da bolsa de valores e os bancos. Enfim, quase tudo
depende de uma conexão estável, inclusive, os pequenos negócios.
Diante do problema apresentado, tente elaborar um pequeno roteiro para evitar os problemas rela-
cionados. Pense na importância do planejamento e tente reverter todas as falhas possíveis no roteiro.
Por exemplo: a empresa contratou mais 10 funcionários. O que devo fazer?
Diante da atividade proposta, responda as perguntas a seguir e anote as respostas no diário de bordo.
Lembre-se de que não há respostas erradas, portanto, foque nas ideias mais criativas.
• Em qual momento eu deveria ter feito um projeto bem elaborado para a rede da minha empresa?
• Qual foi o principal problema?
• Eu poderia ter feito melhor individualmente ou seria melhor ter pedido ajuda?
• O que eu faria diferente para não ter os problemas apresentados?

188
UNIDADE 8

DIÁRIO DE BORDO

Assim como em qualquer outra área da vida, o planejamento é fundamental para o sucesso. Quando
falamos de redes, isso não é diferente. Uma rede bem planejada funciona de maneira mais eficiente.
Além do mais, é capaz de aumentar de tamanho de maneira organizada, mantendo a qualidade.
A técnica que dá a capacidade de crescimento às redes se chama escalabilidade. Ela será estudada
mais a fundo adiante, em conjunto com a capacidade de prover uma conectividade que atenda a todas
as necessidades de uma empresa, inclusive, de maneira remota. Um exemplo é o caso de um funcionário
em home office ou viajando a trabalho que precisa acessar os arquivos da empresa. Essa capacidade
de conexão se chama capilaridade.
As redes são muito úteis no compartilhamento da informação. No entanto, isso traz riscos enormes.
Por isso, outro aspecto importante é a segurança. É preciso controlar quem acessa o que, assim como
a disponibilidade, que representa a quantidade de tempo em que a rede fica disponível. O objetivo é
ter uma disponibilidade que se aproxime de 100% do tempo.
Escalabilidade, capilaridade, segurança e disponibilidade são os pilares de uma rede eficiente. Nesse
sentido, discutiremos cada um desses aspectos, mas, antes, conheceremos alguns conceitos de desenhos
de redes, embora você já tenha explorado de maneira breve em unidades anteriores.

189
UNICESUMAR

Uma rede ineficaz não só traz irritação, como atrapalha a produtividade. Dessa forma, existem
muitas técnicas que, se aplicadas, reduzem ou mitigam esses problemas.

Para que a minha rede tenha todas as características de uma rede eficiente, devo me preocupar
com a escalabilidade, a capilaridade, a segurança e a disponibilidade. Ao transpor esse fato ao
dia a dia, a rede que usamos hoje, seja a de casa, seja a do trabalho, tem essas características?

Você já conheceu as principais topologias de redes. São elas: estrela, anel, barramento, malha e árvore.
Quando pensamos em um projeto, podemos utilizar uma topologia em barramento, que, posteriormente,
crescerá, ao adicionar outros barramentos, tornando-se uma árvore ou um misto de topologias. Volte-
mos ao caso discutido no início desta unidade: em um pequeno escritório de marketing com apenas
10 estações de trabalho, provavelmente, utilizaremos uma topologia semelhante a presente na Figura 1.

Internet

Figura 1 - Topologia barramento / Fonte: o autor.

Descrição da Imagem: trata-se de uma ilustração que tem, de cima para baixo, uma nuvem com a seguinte descrição: “Internet”. Em-
baixo, ela se conecta a um roteador (representado por um retângulo com alguns pontos no formato das portas de entrada). À direita,
conectado ao roteador, encontra-se um tubo, o qual representa o barramento de conexões. Conectando-se ao barramento, há dez
computadores: cinco em cima (em paralelo) e, respectivamente, na mesma direção, cinco embaixo (em paralelo).

190
UNIDADE 8

Essa topologia básica é muito comum de ser encontrada em pequenos escritórios. Normalmente,
um roteador simples ou com Wi-Fi e um switch não gerenciável simples cumprem as demandas.
Portanto, trata-se de uma topologia lógica, a qual fornece uma visão geral da rede. No entanto, para
esse projeto, também precisamos de uma topologia física, que inclui os equipamentos e todas as
conexões. Observe a Figura 2.

Internet

Figura 2 - Topologia física / Fonte: o autor.

Descrição da Imagem: trata-se de uma ilustração que tem, de cima para baixo, uma nuvem com a seguinte descrição: “Internet”.
Embaixo, ela se conecta, por meio de uma linha, a um modem (representado por um pequeno retângulo com pontos representando
as portas de entrada). À direita, o modem se conecta a um roteador (representado por um cilindro com setas direcionais que apon-
tam para fora e para dentro). Conectado ao roteador por meio de uma linha, à direita, temos um switch (representado por uma caixa
retangular com setas direcionais que apontam em direções contrárias). Por fim, conectando-se ao switch, temos dez computadores:
cinco em cima e cinco embaixo.

A partir da topologia física, é possível planejar melhor a rede. Os switches compartilham um segmento
de rede e evitam colisões, uma vez que cada porta do switch é um único domínio de colisão. No entan-
to, em pequenos escritórios, a escolha do switch tende a ser pelo mais barato. Pequenos switches não
gerenciáveis de 12 portas, normalmente, cumprem as demandas necessárias. Todavia, o que acontecerá
se você precisar aumentar a rede? Instalará mais um switch e fará o famoso “cascateamento”? Chegará
um momento em que o pequeno switch não suportará e deverá ser trocado. Para uma topologia como
essa, o mais viável seria um switch gerenciável de 24 portas fast ethernet de 100 mega de velocidade,
com duas portas de 1 Giga para Uplinks (conexão de um switch com outro).

191
UNICESUMAR

A diferença de preço pode não ser muito grande e os benefícios são enormes. Quando o escritório
crescer e outro switch for necessário, a topologia ficará da maneira apresentada na Figura 3.

Internet

1G

Figura 3 - Topologia física cascateada / Fonte: o autor.

Descrição da Imagem: trata-se de uma ilustração que tem, de cima para baixo, uma nuvem com a seguinte descrição: “Internet”.
Embaixo, conectando-se a nuvem, temos um modem. À direita, o modem se conecta a um roteador, que está conectado a um switch.
Conectando-se ao switch, temos dez computadores: cinco em cima e cinco embaixo. Além disso, ainda em conexão, à direita, há outro
conjunto de switch com 10 computadores conectados: cinco em cima e cinco embaixo.

O tipo de topologia com cascateamento, quando utiliza uplinks de 1 G, no mínimo, funciona bem.
No entanto, quando são adicionados muitos switches em linha, o primeiro começa a se sobrecarregar.
Nesse caso, a topologia necessita de alteração, partindo para um modelo hierárquico conhecido como
árvore, o qual é representado na Figura 4.

192
UNIDADE 8

Internet

Figura 4 -Topologia física em árvore / Fonte: o autor.

Descrição da Imagem: trata-se de uma ilustração que tem, de cima para baixo, uma nuvem com a seguinte descrição: “Internet”.
Embaixo, conectando-se à nuvem, temos um modem, o qual se conecta a um roteador, que está na parte inferior. O roteador, por sua
vez, conecta-se a um switch central, que se encontra em uma parte mais inferior. À esquerda, conectando-se ao switch central, temos
outro switch, o qual tem cinco computadores conectados embaixo. Por outro lado, à direita do switch central, temos outro switch
conectado e com cinco computadores embaixo.

A topologia apresentada é muito mais escalável, visto que é possível adicionar switches e fazer com
que todos se conectem ao switch central. O ideal é que o switch central seja monitorado, para que
a capacidade de processamento e de ocupação das portas não chegue no limite. O link de internet
também precisa ser monitorado constantemente. Caso ele se aproxime da ocupação máxima, é
necessário fazer um upgrade.
Esse tipo de estrutura proporciona robustez e facilidade de ampliação, mas também precisa ser
modificado quando o crescimento extrapola os limites. Em empresas maiores, um ponto central de
falha em um switch pode ser catastrófico. Considere uma fábrica que tem todas as máquinas ligadas
em um switch central: o que aconteceria se houvesse uma falha no switch? Para solucionar a proble-
mática, conheceremos uma estrutura parecida, porém, contingenciada, assim como consta na Figura 5.

193
UNICESUMAR

Internet

Figura 5 - Topologia física em árvore com switch central redundante / Fonte: o autor.

Descrição da Imagem: trata-se de uma ilustração que tem, de cima para baixo, uma nuvem com a seguinte descrição: “Internet”.
Embaixo, conectando-se à nuvem, encontra-se um modem, que se conecta a um roteador. Por sua vez, o roteador se conecta a dois
switches centrais. Embaixo, à esquerda, conectando-se ao switch central, está outro switch com cinco computadores conectados. Por
fim, à direita dos switches centrais, temos outro switch conectado e com cinco computadores.

Na Figura 5, existem dois switches centrais ou switches de Core. Esse modelo traz mais disponibi-
lidade à rede, já que a carga dos switches é distribuída entre eles. Caso haja uma falha em um deles,
o outro pode absorver a demanda temporariamente até que o switch defeituoso seja substituído.
Esse modelo ainda é simples, mas muito estável e robusto. Uma rede construída dessa maneira difi-
cilmente sofrerá uma parada abrupta ou terá a rede congestionada, desde que as saídas de internet
estejam devidamente dimensionadas.
As redes podem ser escaláveis, ao serem adicionados mais switches de Core e switches de acesso os
mais próximos do usuário final. Contudo, para as redes de médio porte, é preciso repensar esse modelo.
O modelo de três camadas suporta melhor as redes de médio porte. Entretanto, antes de tratarmos
desse assunto, precisamos entender o conceito de Virtual Local Area Network (VLAN).

194
UNIDADE 8

Uma VLAN é, basicamente, uma rede de camada 2 virtual que, em grosso modo, pode ser o fatia-
mento de um switch ou o grupo de switch em porções diferentes. Segmenta-se, dessa forma, o domínio
de broadcast e se separa o tráfego. Observe a Figura 6.

VLAN 1 - Marketing

VLAN 2 - Financeiro

Figura 6 - Switch segmentado em VLANs / Fonte: o autor.

Descrição da Imagem: trata-se de uma ilustração que tem, de cima para baixo, um retângulo com a seguinte descrição: “VLAN 1 - Mar-
keting”. Dentro dele, existem dois computadores. Ambos se conectam a um switch, que está no centro. Abaixo do switch, encontra-se um
retângulo com a seguinte descrição: “VLAN 2 - Financeiro”. Dentro dele, há dois computadores conectados ao switch que está no centro.

No caso em questão, o tráfego em cada VLAN é separado. Os computadores que pertencem à VLAN
1 não têm comunicação com a VLAN 2, mantendo o tráfego localmente. Isso evita a propagação
desnecessária de quadros de camada 2 pela rede. Essa divisão é feita a partir do acréscimo de uma tag
(etiqueta) no quadro proveniente de uma porta designada a uma VLAN específica. Um exemplo é um
quadro que é recebido de um computador que está na VLAN 2. O quadro recebe uma etiqueta com
o número 2 e só pode ser enviado para as portas que estão habilitadas a receber o tráfego da VLAN 2.
Uma VLAN pode, ainda, ser configurada em mais de um switch.

195
UNICESUMAR

VLAN 1 - Marketing VLAN 2 - Financeiro VLAN 2 - Financeiro VLAN 1 - Marketing

Figura 7 - VLAN Interswitch / Fonte: o autor.

Descrição da Imagem: trata-se de uma ilustração que tem, ao centro, dois switches conectados. Duas linhas os conectam: uma na cor
âmbar, com uma seta bidirecional e, embaixo, outra na cor azul, com uma seta bidirecional. Ao fundo, encontram-se quatro retângulos.
Da esquerda para a direita, há um retângulo na cor âmbar com a seguinte descrição: “VLAN 1 - Marketing”. Depois, há outro retângulo,
mas de cor azul, com a seguinte descrição: “VLAN 2 - Financeiro”. Esses dois retângulos estão atrás do switch esquerdo. Atrás do switch
direito, encontram-se mais dois retângulos: um azul, com a descrição “VLAN 2 - Financeiro” e um âmbar com a descrição: “VLAN 1 -
Marketing”. Cada retângulo tem dois computadores no interior: um em cima e um embaixo. Todos se conectam ao switch.

No caso em questão, ambos os switches, necessariamente, devem estar configurados com as VLANs
1 e 2. Além disso, a conexão entre eles deve ser configurada como Trunk (tronco). Um Trunk é um
tipo de porta de switch que recebe os quadros com a tag (etiqueta) de cada VLAN. Assim, quando o
switch recebe um quadro, ele sabe para qual VLAN enviá-lo. Esse tipo de configuração pode ser feito
com diversos switches e com milhares de VLANs.
Caso o tráfego necessite ser transmitido de uma VLAN para outra, é preciso um elemento de camada
3 na rede, como um roteador ou um switch multicamada. Nesse caso, o elemento é o responsável pela
comunicação inter-VLAN. Confira a Figura 8.

196
UNIDADE 8

Internet

Si Si Core

Distribuição

Acesso

Figura 8 - Topologia física em três camadas / Fonte: o autor.

Descrição da Imagem: trata-se de uma ilustração que tem, de cima para baixo, uma nuvem com a seguinte descrição: “Internet”. Em-
baixo, conectando-se à nuvem, encontra-se um retângulo laranja com a descrição: “Core”. Dentro desse retângulo, existem dois switches
layer 3 (representados por cubos que carregam um círculo com setas direcionais em volta, apontando para fora). Embaixo do retângulo
laranja, encontra-se um retângulo azul com a seguinte descrição: “Distribuição”. Dentro dele, existem dois switches (representados por
caixas retangulares). Embaixo desse retângulo, encontra-se outro com a seguinte descrição: “Acesso”. Dentro dele, encontram-se dois
switches (representados por caixas retangulares). Mais abaixo, há 10 computadores: cinco se conectam ao switch da esquerda e cinco
se conectam ao switch da direita.

Inicialmente, podemos acreditar que esse modelo tem complexidade desnecessária. Todavia, entende-
remos mais a fundo as funcionalidades de cada camada. Esse modelo de três camadas, muitas vezes,
é chamado de modelo em campus hierárquico. “As redes de campus mais bem gerenciadas foram
projetadas normalmente seguindo o modelo hierárquico. Este modelo simplifica o gerenciamento da
rede e permite o crescimento controlado” (WEBB, 2003, p. 17).
A camada superior, o Core, ou núcleo, é a responsável pelo tráfego que vai em direção à internet
ou a outras redes externas. Ela também fornece a conectividade entre outros blocos de switch. Nessa
camada, a velocidade é a prioridade, portanto, nenhum tratamento é realizado nos pacotes ou nos
quadros que trafegam nela. Os switches utilizados precisam ser de grande capacidade, dado o volume
de dados que trafega nessa camada. Enquanto melhor prática, é preciso utilizar switches multicamadas,
que também têm a função de roteador. Dessa maneira, segmenta-se melhor a rede e são evitados

197
UNICESUMAR

enormes domínios de broadcast. Outra função dos switches multicamadas é a capacidade de fazer a
comunicação entre VLANs diferentes.
Já a camada de distribuição é a responsável pela segmentação da camada 2, a divisão da rede em
VLANs. Esses switches, por padrão, não realizam a comunicação inter-VLANs. Nesse caso, o tráfego
precisa ser direcionado para a camada superior (Core), que, por sua vez, interconecta as VLANs dife-
rentes. Se existirem servidores na rede, normalmente, eles serão alocados nessa camada.
A camada de acesso é a camada que concentra as funções locais, como controle de largura de banda,
filtragem de tráfego e protocolos de autenticação. É a essa camada que o usuário final se conectará,
incluindo o computador, o telefone IP, o smartphone ou outro dispositivo de uso final. Nessa camada,
ainda há o tratamento de tráfego e a priorização dos pacotes.
Com a rede organizada dessa forma, o tráfego flui de maneira organizada. A rede ganha uma to-
lerância maior às falhas e tem maior escalabilidade, caso utilize uma técnica conhecida como “Build
Blocks”. Se a rede crescer, pode ser necessário adicionar mais equipamentos. Para tanto, você pode usar
a técnica Build Blocks (tijolos de construção), assim como é explicitado na Figura 9.

Build Block 1 Build Block 2

Si Si Si Si

Figura 9 - Build Block / Fonte: o autor.

Descrição da Imagem: trata-se de uma ilustração que tem, da esquerda para a direita, um retângulo azul com a seguinte descrição:
“Build Block 1”. Do lado direito, encontra-se um retângulo amarelo com a descrição: “Build Block 2”. Cada retângulo tem, de cima para
baixo, dois switches multicamadas, os quais se interconectam. Mais abaixo, cada retângulo tem mais quatro switches de camada: dois
estão interligados entre si. Mais abaixo, cada retângulo tem quatro representações de computadores: dois ligados em cada switch da
parte inferior do retângulo.

198
UNIDADE 8

Com o crescimento da rede, blocos podem ser adicionados, mantendo-se a hierarquia e a homoge-
neidade da rede. Muitos fabricantes vendem kits de Build Blocks, o que pode facilitar a padronização.

Neste vídeo, elaboraremos uma rede completa simulada utilizando


o modelo de três camadas. Aprenderemos desde o desenho até às
configurações básicas. Vamos conferir?

Agora que sabemos como funciona o desenho de redes escaláveis, aprenderemos a criar um bom plano
de endereçamento de camada 3 do modelo OSI (Organization of Standards International).
Na camada 3 do modelo OSI, o endereço utilizado é o endereço IP (Internet Protocol), que é um ende-
reço lógico e único em uma rede. Nesta unidade, aprenderemos a dimensionar a rede IP apropriadamente.
Primeiramente, quando pensamos em um esquema de endereçamento IP, precisamos ter em mente
a capacidade que a rede terá para crescer.
Se você olhar o endereço IP do seu computador pessoal em sua rede Wi-Fi doméstica, provavel-
mente, você verá algo do tipo:
192.168.0.53

Trata-se de um endereço IP de classe C, a classe mais comum em redes domésticas e em pequenos


escritórios. Não se preocupe! Falaremos sobre cada uma das classes de endereçamento, mas, agora,
olharemos mais a fundo o endereço em questão.
Um endereço de classe C tem uma máscara de subrede 255.255.255.0. Essa máscara é uma repre-
sentação binária. Cada porção tem 8 bits, chamada de octeto, em que:
255 = 11111111 e
0 = 00000000

A máscara de subrede nos diz a quantidade de endereços disponíveis na rede. Dessa maneira, devemos
subtrair (255.255.255.255 - máscara). No nosso caso:
(255.255.255.255 - 255.255.255.0) = número de endereços disponíveis para utilização.

Por se tratar de uma representação binária, o cálculo de ser feito octeto por octeto. Assim:
(255 - 255) . (255 - 255) . (255 - 255) . (255 - 0)
O resultado:
0.0.0.255

199
UNICESUMAR

Temos 255 endereços para utilização? Na verdade, não, pois, em um endereço de rede IP, o primeiro
endereço é o endereço da rede, que se trata da identificação da rede como um todo. Já o último é o
endereço de broadcast (transmissão). Um pacote enviado ao endereço de broadcast é escutado por
toda a rede. Observe a seguir.

Endereço de rede:
192.168.0.0
Endereço de broadcast:
192.168.0.255

Para utilização, restam os endereços de 192.168.0.1 a 192.168.0.254. Lembre-se de que, normalmente,


o roteador ou o gateway da rede usa o primeiro endereço disponível, que, nesse caso, é o 192.168.0.1,
restando 253 endereços disponíveis. Esses 253 endereços são suficientes em uma rede doméstica ou de
um pequeno escritório. Contudo, o que acontece quando você precisa de mais endereços? Você pode
adicionar mais redes classe C. Por exemplo:

Rede 1: 192.168.0.0
Rede 2: 192.168.1.0
Rede 3 192.168.2.0

Cada uma dessas redes fornece 254 endereços, sendo um para o roteador ou gateway. Todavia, em uma
rede de campus ou de uma grande rede corporativa, a melhor prática é usar outra classe de endereços.
Entenderemos melhor com alguns exemplos de classes IP privado.

Classe A: 10.0.0.0 Máscara 255.0.0.0


Classe B: 172.16.0.0 Máscara 255.255.0.0
Classe C: 192.168.10.0 Máscara 255.255.255.0

Assim como evidenciamos, a máscara de subrede define a quantidade de endereços disponíveis para
uso. Desse modo:

200
UNIDADE 8

Classe A = 16581375 endereços disponíveis.


Classe B = 65025 endereços disponíveis.
Classe C = 255 endereços disponíveis.

Lembre-se de que devemos subtrair dois endereços de cada classe, um para rede e um para o broadcast.
Um cuidado que devemos tomar ao utilizar faixas de IP muito grandes é em relação ao tamanho
do domínio de broadcast (transmissão). Esses domínios, quando muito grandes, tornam a rede lenta
e difícil de gerenciar. O que podemos fazer, nesse caso, é usar a técnica de subnetting, que divide uma
rede maior em subredes menores por meio da máscara. É possível aplicar essa técnica em qualquer
classe de endereço. Por exemplo:

Rede original: 192.168.0.0 Máscara: 255.255.255.0


Aplicando a técnica de subnetting:
Subrede 1: 192.168.0.0 Máscara: 255.255.255.128
Subrede 2: 192.168.0.128 Máscara: 255.255.255.128

O que houve foi a divisão da rede 192.168.0.0 em duas. Suponha que você deseja dividir a sua rede
em duas VLANs, por exemplo, marketing e financeiro. Cada rede, nesse caso, tem 128 - 2 endereços,
totalizando 126 endereços possíveis.
O que o computador faz para saber o que é o endereço de rede e o que é o endereço de Host (dis-
ponível para a utilização nas máquinas da rede) é o cálculo de binário utilizando um AND (E) lógico.
Para um melhor entendimento, transformaremos o endereço do exemplo em binário:
IP Rede original: 192.168.0.11 = 11000000.10101000.00000000 .00001011
Máscara original: 255.255.255.0 = 11111111 .11111111 . 11111111 .00000000

O AND lógico representa uma comparação entre os dois endereços. Cada dígito deve ser comparado
da esquerda para direita. Quando a máscara estiver com um bit ligado, ou seja, com o dígito “1”, o dígito
do endereço de rede deve ser copiado. Quando a máscara estiver com o bit desligado ou dígito “0”, o
endereço da rede deve ser ignorado. No caso exemplificado:
IP Rede original: 192.168.0.11 = 11000000.10101000.00000000 .00001011
Máscara original: 255.255.255.0 = 11111111 .11111111 . 11111111 .00000000
______________________________________________________________
Endereço de rede: 192.168.0.0 = 11000000.10101000.00000000 .00000000

201
UNICESUMAR

A porção em vermelho definida pela máscara (11111111 .11111111 . 11111111) é a porção de rede,
enquanto a porção em preto ignorada pela máscara (00000000) é a porção de host 256 - 2 = 254
Suponha que uma startup está sendo criada. Ela tem potencial de crescimento exponencial e, por
isso, você escolheu um endereçamento de rede classe A 10.0.0.0, porém, para evitar grandes domínios
de broadcast, o ideal é dividir essa rede em subredes logo no início. Por exemplo:

Rede: 10.0.0.0 Máscara 255.0.0.0 - Não utilizaremos a rede de maneira integral.


Subrede 1: 10.0.0.0 Máscara 255.255.255.0 - Subrede 1 com 254 endereços disponíveis.
Subrede 2: 10.0.1.0 Máscara 255.255.255.0 - Subrede 2 com 254 endereços disponíveis.
Subrede 3: 10.0.2.0 Máscara 255.255.254.0 - Subrede 3 com 510 endereços disponíveis.
Subrede 4: 10.0.4.0 Máscara 255.255.252.0 - Subrede 4 com 1022 endereços dispo-
níveis.

Dessa forma, dividiremos a rede original 10.0.0.0 em redes menores de acordo com a nossa necessidade.

Nesta unidade, conhecemos apenas o necessário sobre as classes de en-


dereços IP. Para saber mais sobre o assunto, consulte o livro Redes de com-
putadores, de Tanenbaum e Wetherall, disponível na sua Biblioteca Virtual.
Título: Redes de computadores
Autores: Andrew S. Tanenbaum e David Wetherall
Editora: Pearson
Ano: 2011
Sinopse: a obra trata diversos assuntos atuais, como redes sem fios (8 2.12
e 8 2.16), redes 3G usadas por smartphones, redes peer-to-peer, mídia em tempo real e telefonia
VOIP. Além disso, oferece ampla cobertura dos aspectos relacionados à qualidade de serviço,
tema aprofundado no Capítulo 5. Diante de todas essas características, o livro é essencial tanto
para estudantes de graduação em Ciência da Computação e Sistemas de Informação quanto
para profissionais que aspiram atualizar e ampliar o próprio conhecimento.
Comentário: este livro explora os principais conceitos de redes de computadores, incluindo as
diversas arquiteturas e protocolos.

202
UNIDADE 8

Título: Construindo Redes Cisco Escalaveis


Autores: Catherine Paquet e Diane Teare
Editora: Pearson
Ano: 2011
Sinopse: em um universo conectado, as redes crescem de maneira expo-
nencial. No entanto, esse crescimento precisa ser metódico e controlado,
a fim de manter a estabilidade da rede. Desse modo, este livro explora os
principais conceitos de escalabilidade em redes da atualidade.

Os endereços IPs apresentados pertencem à versão 4 do protocolo e são divididos entre públicos,
que são roteados na internet, e privados, os quais não são roteados na internet. Para que você entenda
melhor, quando você utiliza a Internet da sua casa, provavelmente, a sua operadora lhe fornece apenas
um endereço público, algo do tipo 201.0.10.221. Esse IP é atribuído à porta de internet do seu roteador
ou porta WAN (Wide Area Network). Dentro da sua rede, na LAN (Local Area Network), você utiliza
IPs privados. Dessa forma, o roteador faz a tradução da comunicação entre os IPs privados para o IP
público. Essa técnica é conhecida como NAT (Network Address Translations) e é utilizada devido à
escassez de endereços públicos na internet.
A versão 6 do protocolo IP, conhecida como IPv6, tem 128 bits em formato hexadecimal e foi criada
para resolver a escassez de endereços públicos, uma vez que tem 128 bits, ou seja, 256^16, o que, por
sua vez, são mais de 340 undecilhões de possibilidades diferentes de endereço IP

Para saber mais sobre o protocolo IPv6 e o funcionamento dele, veja


a página do NIC.br. As explicações são muito divertidas e didáticas!
Para acessar, use seu leitor de QR Code.

Atualmente, falar de segurança da informação é mais necessário que nunca. Com frequência, sa-
bemos de casos de invasão e ataque hacker. Portanto, preparar a nossa rede para se proteger desse
tipo de risco é fundamental.
Um dos itens mais importantes da segurança de rede é o Firewall, um elemento de rede que faz
a checagem e a filtragem dos dados que entram e saem de uma rede. Um Firewall se baseia, normal-

203
UNICESUMAR

mente, nos endereços IP de origem e de destino


e na porta TCP (Transmission Control Protocol)
Internet
para tomar a decisão de encaminhar ou descartar
o pacote que chega às portas.
Dessa forma, um Firewall deve ser posicionado
na saída da rede para a Internet, o que é represen-
tado na Figura 10.
Figura 10 - Topologia com Firewall / Fonte: o autor.

Descrição da Imagem: trata-se de uma ilustração que tem,


de cima para baixo, uma nuvem com a seguinte descrição:
“Internet”. Embaixo, há uma parede de tijolos que represen-
ta um Firewall. Mais abaixo, encontra-se um roteador e, co-
nectando-se a ele, estão quatro switches. Nos dois últimos
switches, temos dois computadores conectados em cada um.

Muitas vezes, precisamos de algumas portas TCP


abertas para alguns serviços, como os de servi-
dores Web, para acesso externo. Nesse caso, uma
solução é a criação de uma DMZ (Demilitarisierte
Zone), que é uma região de rede que tem as por-
tas abertas. Entretanto, uma solução mais segura
seria um segundo Firewall para a DMZ, o que é
simbolizado na Figura 11.

204
UNIDADE 8

Internet

DMZ

Figura 11 - Topologia com DMZ / Fonte: o autor.

Descrição da Imagem: trata-se de uma ilustração que tem, de cima para baixo, uma nuvem com a seguinte descrição: “Internet”.
Embaixo, há uma parede de tijolos que representa um Firewall e, mais abaixo, um roteador. Conectando-se ao roteador, temos quatro
switches. Nos dois últimos switches, estão dois computadores conectados em cada um. À direita da nuvem, há um losango com a
seguinte descrição: “DMZ”. Dentro dele, temos um Firewall, um roteador, um switch e um servidor.

Com esse modelo, podemos liberar apenas as portas necessárias, para que os servidores funcionem.
Todas as outras portas permanecem fechadas e o restante da rede não é colocado em risco.
Com um Firewall, podemos, ainda, configurar VPNs (Virtual Private Network), que são túneis se-
guros pela internet que podemos utilizar para se conectar à rede de forma remota. Um bom exemplo
de aplicabilidade de VPN é quando acessamos arquivos do trabalho em home office. Dessa forma, em
qualquer lugar com acesso à internet, podemos acessar os arquivos disponibilizados pela VPN.
Embora uma VPN possa ser configurada em outros dispositivos, usualmente, um Firewall possui
todos os recursos de segurança necessários para uma comunicação segura por uma VPN.

205
UNICESUMAR

As VPNs provêm a capilaridade, mas não somente. Atualmente, podemos utilizar a computação em
nuvem para usar os recursos de forma remota.
Quanto à disponibilidade, é importante manter os recursos das redes dentro da capacidade segura.
Um projeto de monitoração de redes pode ser eficaz. Estudaremos esse assunto na Unidade 9, além
das contingências de alimentação elétrica, como No Breaks.
Ainda sobre a disponibilidade, devemos pensar em nossa saída para internet. Em uma residência ou
em um pequeno escritório, muitas vezes, a utilização de apenas um provedor de internet pode bastar.
No entanto, em negócios maiores, a indisponibilidade da internet pode ser um problema. Uma saída
para internet redundante com provedores diferentes pode ser uma alternativa.
Existem protocolos que fazem a comutação automática entre links de internet diferentes, assim como
é o caso do VRRP (Virtual Router Redundancy Protocol). Esse protocolo testa a disponibilidade da
internet e direciona o tráfego para o link que estiver funcionando ou muda para o outro, em caso de
indisponibilidade. Existem, ainda, balanceadores de carga no mercado, os quais distribuem o tráfego
de maneira equivalente para dois ou mais links de internet diferentes.
Todos os recursos estudados nesta unidade contribuem para uma boa velocidade de rede. Entretanto,
também devemos dimensionar os links de internet de acordo com a demanda.
Conhecemos as melhores práticas que devem ser utilizadas nos projetos de redes, de forma a manter
a disponibilidade, a escalabilidade, a capilaridade e a segurança. Com esses pilares aplicados, a rede
tende a se manter funcional e rápida, ajudando o negócio a atingir o objetivo dele.

Para entender o que é um ataque hacker, assista ao vídeo do canal


Nerdologia. Acesse o QR Code.
Para acessar, use seu leitor de QR Code.

Neste podcast, entenderemos as melhores práticas nos projetos de


redes. Saberemos o que evitar e quais cuidados devemos tomar. Va-
mos juntos!

206
UNIDADE 8

Chegamos ao final desta unidade e, talvez, você deve estar se perguntando: onde usarei esse conhecimento?
As redes de computadores estão em todos os lugares: na casa, no trabalho, na escola e em qualquer
outro lugar que necessite de comunicação. Nas fábricas, por exemplo, as linhas de produção são conec-
tadas por meio de redes. Dessa forma, são feitos o controle e a telemetria da produção. Os supermerca-
dos têm os caixas conectados e até os restaurantes têm comandas eletrônicas. Portanto, um projeto de
rede pode ser decisivo na boa ou na má performance de um negócio, impactando-o profundamente.
Uma rede bem projetada e bem dimensionada é fundamental para que o negócio seja eficiente.

207
Vamos testar o nosso conhecimento por meio de um mapa mental? Nele, retomaremos os con-
ceitos aprendidos. O mapa lista todas as características de uma rede bem projetada, de forma a
tornar uma rede eficiente. A seguir, estão os quatro pilares das redes eficientes. Preencha a que
está faltando. Embaixo de cada pilar, você encontrará as características e os recursos. Preencha
aqueles que estão em branco. Caso tenha dificuldades, revise o material.

REDE EFICIENTE Segurança

DMZ Portas lógicas


Endereçamento Escalabilidade Disponibilidade

Redundância
Build Blocks Hierarquia

Acesso Core

208
1. Em um mundo conectado como o de hoje, uma rede eficiente é mais que fundamental.
Essa eficiência se dá por:
a) Escalabilidade, capilaridade, segurança e disponibilidade.
b) Velocidade.
c) Custo.
d) Autonomia.
e) Interligação com a internet.

2. O modelo de três camadas proporciona uma melhor organização da rede e possibilita


a escalabilidade controlada. Nesse modelo, qual camada é a responsável pela segmen-
tação em VLANs?
a) Acesso.
b) OSI.
c) Todas.
d) Distribuição.
e) Core.

3. Quando falamos em segurança de redes, o Firewall é um recurso fundamental. Qual


é a função do Firewall?
a) Funciona como um antivírus, impedindo que softwares maliciosos infectem o sistema.
b) Filtra o tráfego baseado em portas lógicas TCP e em endereços de origem e destino.
c) Fornece acesso externo à rede.
d) Impede que usuários acessem sites indesejados.
e) Monitora a saúde interna da rede.

4. As redes, normalmente, crescem em conjunto com o negócio que ela suporta. Dessa
forma, a melhor prática para o crescimento organizado de uma rede é:
a) A substituição de roteadores por switches.
b) A utilização de poucos computadores por switch.
c) Um link de internet rápido.
d) A utilização de poucas VLANs.
e) A utilização de Build Blocks.

209
5. As redes de camadas 2 construídas com switches podem sofrer com domínios de
broadcast muito grandes. Uma das maneiras de controlar esse problema é dividir o
domínio de broadcast em domínios menores.

O feito exposto no enunciado é possível por meio de qual técnica?

a) A filtragem de pacotes com Firewall.


b) Configurando o switch com diferentes redes IP.
c) Trocando as classes IP.
d) DMZ.
e) A utilização de VLANs.

210
9
Gerenciamento de
redes
Esp. Cesar Augusto de Carvalho

Nesta unidade, exploraremos os principais recursos e ferramentas


do gerenciamento de redes. Também compreenderemos a neces-
sidade e os benefícios desse gerenciamento. Bons estudos!
UNICESUMAR

Quando entramos em um grande shopping center, transitamos pelos inúmeros cor-


redores e exploramos as lojas e os serviços oferecidos. É comum notarmos diversas
câmeras de vigilância, que são espalhadas, a fim de abarcar cada metro quadrado
do shopping. Muitas vezes, até nos deparamos com placas com o seguinte pedido:
“Sorria, você está sendo filmado”. Agora, considere um grande shopping que não tem
esse sistema de vigilância. Sem as câmeras e com um grande volume de pessoas nos
finais de semana, a operação do shopping seria viável? Como a administração iria
controlar os fluxos, identificar possíveis problemas e garantir a segurança das pessoas?
O cenário apresentado não se aplica apenas aos shopping centers: qualquer espaço
público que recebe um grande volume de pessoas precisa de um sistema de vigilância.
Gerenciar os espaços sem eles, atualmente, seria uma tarefa que beira o impossível. Em
grandes espaços, é possível perceber que a vigilância está sendo realizada por drones,
por exemplo. Isso é muito comum em grandes fazendas, pois, assim, podemos saber
o que ocorre nos cantos mais remotos.
Quando falamos de redes de computadores, a lógica é exatamente a mesma dos
sistemas de vigilância. Como podemos identificar um problema em uma grande rede
de computadores, se não estamos “vigiando” o que acontece?
Considere a rede de computadores de um resort. Cada apartamento, bar, restauran-
te e relógio de ponto utilizam a rede, sem contar a recepção e a administração. Como
podemos identificar um problema de rede que venha a acontecer antes que comece
a afetar o funcionamento do resort, gerando reclamações por parte dos hóspedes? A
resposta para essa pergunta é simples: usando um sistema de gerenciamento de redes.
Um sistema de gerenciamento de redes monitora os recursos e os dispositivos de
uma rede. A maioria deles é configurada para gerar um alarme, com o intuito de avi-
sar os administradores da rede que algo não está funcionando como deveria. Diante
disso, os administradores podem agir e controlar o problema, muitas vezes, antes de
afetar a utilização da rede. Existem outros recursos dos sistemas de gerenciamento
de rede que são de grande importância, sobretudo em redes de médio e grande porte.
Faremos uma pequena experiência com uma simples ferramenta de diagnóstico
de redes, o Tracert. Esse comando realiza um mapeamento do caminho de rede que
o seu computador faz para acessar algum endereço em uma rede local ou na internet.
Dessa forma, exibe salto por salto de forma simples e fácil de fazer. Vamos lá?!
Passo 1:
No seu computador, digite o comando CMD na barra de busca do Windows e
tecle “Enter”, assim como consta na Figura 1.

212
UNIDADE 9

Figura 1 - Digitando o comando na barra de busca / Fonte: o autor.

Descrição da Imagem: trata-se de uma captura de tela. Nela, temos o ícone do Windows e a barra de busca, em que está escrito CMD.

Passo 2:
Na janela preta que abrir, digite o seguinte comando:
tracert “site da sua escolha”. Insira, entre as aspas, o endereço de um site qualquer da internet e tecle
“Enter”. Por exemplo: tracert www.usp.br.

Figura 2 - Digitando o comando no CMD / Fonte: o autor.

Descrição da Imagem: trata-se de uma captura de tela preta. Nela, lê-se: “C:\WINDOWS\system32\cmd.exe” e “C:\tracert www.usp.br”.

A saída do comando mostrará o caminho que o seu roteador realiza até chegar ao destino. Será algo
como apresentado na Figura 3.

213
UNICESUMAR

Passo 3:

Figura 3 - Caminho feito pelo roteador até chegar ao destino / Fonte: o autor.

Descrição da Imagem: trata-se de uma captura de uma tela preta. Nela, está escrito “C:\tracert www.usp.br” e, na linha de baixo,
encontra-se: “Rastreando a rota para rubus.ne.usp.br [200.144.248.41] com no máximo 30 saltos:”. Abaixo dessa linha, temos outras
doze com os seguintes endereços: 1 2 ms 1 ms 7 ms 192.168.0.1; 2 40 ms 13 ms 11 ms 10.14.0.1; 3 13 ms 12 ms 17
ms bd071867.virtua.com.br [189.7.24.103]; 4 42 ms 10 ms 11 ms embratel-T0-1-0-0-0-agg01.lda.embratel.net.br [189.22.116.17];
5 39 ms 37 ms 31 ms 200.230.141.51; 6 38 ms 38 ms 38 ms ebt-B1421-tcore01.spo.embratel.net.br [200.230.231.62]; 7 35
ms 123 ms 37 ms ebt-H0-9-0-0-agg03.spomb.embratel.net.br [200.230.233.26]; 8 32 ms 32 ms 35 ms peer-G100-0-0-25-agg03.
spomb.embratel.net.br [201.64.240.18]; 9 43 ms 44 ms 63 ms sp-usp.bkb.rnp.br [200.143.255.114]
10 33 ms 38 ms 36 ms 143.107.151.62; 11 * * * Esgotado o tempo limite do pedido.; 12 37 ms 36 ms 38 ms
webhost.uspdigital.usp.br [200.144.248.41]; Rastreamento concluído.; C:\>.

Ao olharmos a saída exposta pela primeira vez, podemos achá-la um pouco confusa. No entanto, não
se preocupe! Entenderemos passo a passo o que está acontecendo.
C:\>tracert www.usp.br
Rastreando a rota para rubus.uspnet.usp.br [200.144.248.41]
Aqui, é visível que o computador utilizou o serviço de DNS (Domain Name Service) para descobrir
o IP (Internet Protocol) do site escolhido.
com no máximo 30 saltos:
1 2 ms 1 ms 7 ms 192.168.0.1
Agora, é perceptível que o computador começou a enviar pacotes de sinalização para os saltos e
trouxe a informação de que ele só pode rastrear até 30 saltos. Essa é uma limitação necessária, para
que os pacotes não trafeguem eternamente na rede. Em seguida, é exposto o número 1, que indica o
primeiro salto seguido dos tempos de resposta, nesse caso, 2 ms (milissegundos), 1 ms, 7 ms e o ende-
reço do salto 192.168.0.1, que, nesse caso, é o meu roteador caseiro.
1 2 ms 1 ms 7 ms 192.168.0.1
2 40 ms 13 ms 11 ms 10.14.0.1
3 13 ms 12 ms 17 ms bd071867.virtua.com.br [189.7.24.103]
4 42 ms 10 ms 11 ms embratel-T0-1-0-0-0-agg01.lda.embratel.net.br [189.22.116.17]

214
UNIDADE 9

5 39 ms 37 ms 31 ms 200.230.141.51
6 38 ms 38 ms 38 ms ebt-B1421-tcore01.spo.embratel.net.br [200.230.231.62]
7 35 ms 123 ms 37 ms ebt-H0-9-0-0-agg03.spomb.embratel.net.br [200.230.233.26]
8 32 ms 32 ms 35 ms peer-G100-0-0-25-agg03.spomb.embratel.net.br [201.64.240.18]
Aqui, são apresentados os próximos saltos, cada um com a respectiva numeração. Esses saltos estão
dentro do provedor de internet que eu estou utilizando para fazer esse teste. A saída do comando nos
dá algumas dicas sobre a localização geográfica dos saltos. Por exemplo:
4 12 ms 17 ms 11 ms embratel-T0-1-0-0-0-agg01.lda.embratel.net.br [189.22.116.17]
Observe o LDA: essa é a sigla para a cidade de Londrina, no Paraná,
no Código Nacional de Localidades (CNL). Você pode consultar o CNL
no QR Code ao lado.
Atenção: nem toda operadora de internet utiliza o CNL. O uso ocorre
por convenção, mas não é obrigatório.

O salto 6 também nos chama atenção:


6 42 ms 38 ms 30 ms ebt-B1421-tcore01.spo.embratel.net.br
[200.230.231.62]
Perceba que, nesse caso, há SPO, que significa São Paulo no CNL.

A partir do salto 9, ingressamos na rede de internet da Universidade de São Paulo (USP):


9 37 ms 42 ms 71 ms sp-usp.bkb.rnp.br [200.143.255.114]

O salto 11 é, provavelmente, um Firewall. Ele não responde a esse tipo de solicitação por questões de segurança:
11 * * * Esgotado o tempo limite do pedido.

Por fim, no salto 12, chegamos ao endereço de destino, o servidor web da USP:
12 36 ms 37 ms 36 ms webhost.uspdigital.usp.br [200.144.248.41]
Rastreamento concluído.
O que fizemos foi rastrear o caminho de uma origem até um destino na internet. Essa é uma
ferramenta básica e que nos ajuda a entender como funciona a internet. Por mais simples que pareça,
nessa experiência, usamos o protocolo ICMP (Internet Control Message Protocol), que não deixa de ser
uma ferramenta de gerenciamento de redes. Agora, repita o teste com diversos sites diferentes. Perceba
as diferenças entre os caminhos. Tente realizar testes em sites estrangeiros também.
Dica: em computadores com Linux ou Mac, para termos o mesmo resultado, devemos utilizar o
comando traceroute.
Considerando a experiência relacionada ao tracert, é possível visualizar o caminho que nosso
computador utiliza para chegar a determinado site. Diante disso, responda às perguntas apresentadas
a seguir em seu diário de bordo. Lembre-se de que não há respostas erradas. Portanto, concentre-se
apenas em suas impressões pessoais:

215
UNICESUMAR

• Se eu consigo rastrear o meu acesso em sites da internet, outra pessoa também consegue saber
onde estou navegando?
• O mesmo processo se aplica quando eu utilizar o meu smartphone?
• Como posso proteger a minha conexão e ter mais privacidade?

DIÁRIO DE BORDO

Quando falamos de redes, devemos ter em mente que cada uma é um único sistema. Nosso olhar sobre
ela deve ser como um todo. Um erro muito comum é, ao se deparar com um problema em um dispo-
sitivo, olhar apenas esse dispositivo. Entretanto, como um grande sistema, muitas vezes, o dispositivo
que acusa o problema não é o causador.

Um exemplo em relação ao nosso corpo: nem todas as dores de cabeça indicam um problema
no cérebro. Pode se tratar de uma infecção por vírus respiratório, como o da gripe. Para diag-
nosticar um problema no corpo, o médico o analisa como um todo, como um grande sistema,
atento a todos os sintomas. Muitas vezes, pode utilizar algumas ferramentas para ajudar no
diagnóstico, como aferir a temperatura e a pressão. Um processo parecido pode ser utilizado
para diagnosticar problemas de redes.

Como podemos obter informações da rede como um todo? Há algo parecido com os exames e os
instrumentos de aferição?

216
UNIDADE 9

Os sistemas de gerenciamento de redes são desenhados para prover os recursos citados, facilitar o
processo de diagnóstico de problemas e garantir que todos os recursos estão funcionando como de-
veriam. Eles também nos ajudam a garantir que a rede não está sendo utilizada mais que a capacidade
normal ou mal dimensionada, por exemplo.
Um dos principais protocolos usados no gerenciamento de redes é o SNMP (Simple Network
Management Protocol). O funcionamento dele é muito simples e exemplificado na Figura 4.

Trap

Trap

Trap

Trap

Servidor
SNMP

Administrador
SNMP

Figura 4 - Funcionamento do SNMP / Fonte: o autor.

Descrição da Imagem: trata-se de uma ilustração que mostra, à esquerda, um servidor com a seguinte descrição: “Servidor SNMP”. À
direita desse servidor, encontra-se um tubo representando um barramento de rede e, conectando-se a esse tubo, na parte superior,
temos os ícones de um roteador, um Firewall, um servidor e um switch, que são os agentes SNMP. De cada um desses agentes, saem
linhas com setas direcionais e o texto “Trap”. Eles apontam para o “Servidor SNMP”. Conectado ao tubo na parte inferior, encontra-se
um computador com a seguinte descrição: “Administrador SNMP”. Há, ainda, uma linha com uma seta direcional que sai do “Servidor
SNMP” e vai até o computador.

217
UNICESUMAR

O protocolo SNMP é configurado em cada dispositivo de rede. Nessa configuração, indicamos o


endereço do servidor SNMP, a versão que estamos utilizando, as opções de autenticação e os “Traps”
que enviaremos. Um Trap é um pacote de informações enviado ao servidor. Esse pacote pode conter
informações sobre o processamento interno do dispositivo, a memória, a temperatura, o uso de banda
das interfaces, a utilização elétrica e outras informações que variam de acordo com o fabricante.
Cada dispositivo de rede configurado com o SNMP passa a ser um agente SNMP. Na Figura 4,
encontram-se quatro agentes SNMP enviando Traps para o servidor, que, por sua vez, processará essas
informações e as tornará acessíveis. Assim, o administrador SNMP pode acessar os dados a qualquer
momento e verificar a “saúde” da rede.

Para demonstrar o funcionamento do protocolo SNMP, neste vídeo,


é criado um ambiente simulado de redes de computadores com al-
guns elementos de redes comuns, como roteadores, switches e ser-
vidores. É configurado neles o protocolo SNMP e o servidor SNMP
recebe as informações. Esse ambiente é simulado no software gra-
tuito “Cisco Packet Tracer”.

O Trap também pode ser configurado para enviar alertas, caso algum evento ocorra. No exemplo pre-
sente na Figura 4, imagine que o switch à direita da topologia esteja em uma sala onde ocorreu uma
falha de ar-condicionado. O switch, então, começa a aquecer e envia um Trap para o servidor SNMP
informando que a temperatura interna dele está acima do ideal. Diante disso, o servidor verificará o
grupo de administradores que deve ser acionado para esse dispositivo e o alerta é enviado para esse
grupo. Existem diversos softwares para servidores SNMP no mercado. Em muitos deles, é possível
configurar alertas por e-mail, SMS e telefone ou exibir o alerta em um dashboard.

Para entender mais o protocolo SNMP, assista ao vídeo do NICbr.


Nele, o funcionamento do protocolo é explicado com uma linguagem
simples e divertida.
Para acessar, use seu leitor de QR Code.

O protocolo SNMP é muito útil e o funcionamento dele é fundamental para manter uma rede com
um alto nível de gerenciamento. Contudo, outros recursos também são valiosos no gerenciamento de

218
UNIDADE 9

redes. Uma topologia bem construída é necessária, pois, com uma boa topologia, podemos ter uma
ideia mais visual da rede. Isso nos ajuda na identificação de problemas ou até mesmo no planejamento
de mudanças. Por meio dela, é possível identificar os dispositivos e os diversos caminhos das redes,
facilitando a resolução de problemas.
A topologia deve ser limpa e conter apenas informações relevantes, como os nomes dos dispositivos
de redes e dos servidores. Para informações mais detalhadas, existem outras ferramentas que estuda-
remos mais adiante. Vejamos, na Figura 5, um exemplo de topologia de rede.

Internet

Circuit ID:ISP01023

Router_ISP01

Switch_CORE01 Switch_CORE02

Switch_ACCESS01 Switch_ACCESS02

Figura 5 - Exemplo de topologia de rede / Fonte: o autor.

Descrição da Imagem: trata-se de uma ilustração que exibe, de cima para baixo, o contorno de uma nuvem que representa a internet.
Embaixo, há um roteador com a seguinte descrição: “Router_ISP01”. Conectando a nuvem ao roteador, há uma linha com a seguinte
descrição: “Circuit ID: ISP01023”. Embaixo, a figura exibe dois switches. Ambos estão conectados ao roteador: o da esquerda tem a
descrição “Switch_CORE01” e o da direita tem a descrição “Switch_CORE02. Embaixo, encontram-se mais dois switches: o da esquerda
tem a descrição “Switch_ACCESS01” e o da direita tem a descrição “Switch_ACCESS02”. Ambos se conectam aos switches de cima.

No exemplo anterior, é apresentada uma topologia limpa e que contém apenas os dispositivos de re-
des e os respectivos nomes. Além do ID da conexão com a internet, essa informação é relevante para
acionamento da operadora, que, caso seja necessário, pode ser incluída.
Sobre as topologias:

219
UNICESUMAR


Toda rede de computador, ao ser construída, baseia-se no princípio de escolha de deter-
minada topologia para a realização do projeto lógico. Ou seja, geralmente se projeta
na topologia lógica antes da implementação física de uma rede, pois, desse modo, au-
menta-se a probabilidade de satisfação, escalonamento, adaptabilidade e desempenho
da rede perante as necessidades do cliente (SILVA, 2020, p. 40).

Para desenhar topologias, uma opção pode ser o site gratuito Draw
IO. Trata-se de uma ferramenta muito simples e fácil de usar. Com ela,
podemos criar desde as topologias básicas até as mais complexas.
Acesse o QR Code e conheça a ferramenta.
Para acessar, use seu leitor de QR Code.

Na topologia lógica, mantemos as informações mais importantes sobre as redes. Todavia, em uma rede
de médio ou de grande porte, somente a topologia pode não ser o suficiente. Suponha que você tem
um smartphone sem agenda de contatos. Seria praticamente impossível armazenar todos os dígitos
mentalmente. Você poderia escrever os contatos em um caderno, assim como era feito antigamente,
mas seria pouco prático para a atualidade.
Em redes, temos o mesmo problema. Quando a rede ainda é pequena, um plano de endereçamento
simples com uma planilha pode funcionar bem, mas, quando a rede cresce, atualizar as informações
a cada mudança em uma planilha se torna cada vez mais complicado. Pensando nisso, foi criado o
IPAM (IP Address Management).
O IPAM é um software especializado em controle de endereços de redes. Nele, cadastramos os
dispositivos e os respectivos endereços IP. Desse modo, quando precisamos saber o endereço de de-
terminado dispositivo, basta consultar o IPAM. Muitos softwares têm a funcionalidade de descoberta
automática da rede. Assim, cada dispositivo e o respectivo endereço são salvos no banco de dados e
podem ser consultados a qualquer momento. Outro recurso interessante do IPAM é a quantidade
de endereços livres e utilizados por subrede, mostrando, ainda, a porcentagem de endereço utilizado
versus o endereço livre.
Um IPAM, normalmente, é usado em um servidor. Acessamos as informações por meio de um
navegador de internet ou por intermédio de um software cliente instalado no computador do admi-
nistrador da rede. Existem muitos distribuidores de IPAM com versões gratuitas e pagas. Em algumas
versões, é possível fazer a administração do escopo de DHCP (Dynamic Host Configuration Protocol)
e DNS (Domain Name System).

220
UNIDADE 9

Para saber mais sobre o funcionamento do IPAM e as vantagens dele,


assista ao vídeo presente no QR Code.
Para acessar, use seu leitor de QR Code.

Além da organização, da monitoração e da documentação, outro elemento importante é a segurança


da rede. Ainda sobre o exemplo do sistema de vigilância de um shopping, considere a seguinte situa-
ção: na central de segurança de um shopping, um vigilante que foi contratado recentemente observa
as câmeras e nota um comportamento fora do comum. Ele percebe que há um homem andando sem
camisa pelo shopping. Diante disso, consulta o manual de instruções do vigilante que está sobre a mesa,
a fim de saber o que fazer nesse caso. Depois de lê-lo, constata que, caso isso aconteça, deve acionar
o segurança que está no corredor mais próximo do incidente, para que peça para o homem colocar a
camisa ou se retirar.
Contudo, o dia do novo vigilante está bem agitado e, dessa vez, nota outro homem que está sem
sapatos. Assim, consulta novamente o manual de instruções e não encontra nenhuma informação
sobre isso. Com base no bom senso e no incidente anterior, decide agir da mesma forma. O vigilante,
então, avisa o segurança do corredor mais próximo pela rádio e pede para que ele solicite que o homem
se retire do local. É possível fazer um paralelo desse caso com um IDS (Intrusion Detection System).


Uma das primeiras medidas de segurança foi a detecção de intrusão chamada de IDS,
que consistia em identificar se algum acesso não autorizado estava sendo feito à rede
interna ou aos sistemas. [...] Assim, os IDS em uma rede também devem monitorar os
pontos críticos, sendo que o ponto de maior vulnerabilidade é a conexão com a rede
externa (ROHLING, 2020, p. 96).

O IDS funciona como um vigilante na central de segurança de um shopping. Ele observa o compor-
tamento da rede e, com base em um conjunto de regras, envia um alerta ao administrador. O IDS
ainda analisa comportamento atípico. Por exemplo, imagine que um hacker conseguiu acesso à rede
e está efetuando um escaneamento para descobrir os endereços de rede internos. Diante disso, o IPS
detecta uma quantidade anormal de pacotes advindos de uma determinada origem e, então, avisa o
administrador por meio de um alerta. O administrador faz alguma ação, como bloquear o endereço
de origem do ataque no Firewall.
No entanto, com a evolução do IDS, é possível agir de forma ativa na detecção e na mitigação do
ataque: essa evolução é chamada IPS (Intrusion Prevention System).

221
UNICESUMAR

Perceba que uma característica padrão do IDS é que ele atua de forma passiva, visto que
apenas envia um alerta e o administrador precisa efetuar a ação que mitiga o ataque.
O IPS age de forma similar ao IDS, porém, ao notar um tráfego incomum na rede, o pró-
prio IPS pode criar uma regra de Firewall para bloquear o invasor de forma automática.

Tanto o IDS quanto o IPS devem ser posicionados de forma estratégica na rede. O tráfego a ser anali-
sado precisa ser copiado para ele ou passar por ele. Dessa forma, há duas posições mais comuns, sendo
uma delas o tráfego passante, que está representado na Figura 6

Internet

IDS/IPS

Figura 6 - IDS/IPS - tráfego passante / Fonte: o autor.

Descrição da Imagem: trata-se de uma representação de uma nuvem simbolizando a internet. Embaixo, conectado a ela, encontra-se
o ícone de uma lupa com duas setas ao centro apontando para direções contrárias. Ele representa o IDS/IPS. Esse ícone se liga ao
Firewall. Mais abaixo, conectando-se ao Firewall, há um tubo que representa o barramento de rede e, ligando-se a esse tudo pela parte
inferior, da esquerda para a direita, encontram-se dois computadores e um servidor.

Com a arquitetura exposta, todo o tráfego passa pelo IDS/IPS. Esse tráfego é, então, analisado e, caso
alguma anomalia seja detectada, o alarme é gerado. A ação é tomada se for um IPS.
A segunda posição mais comum para utilização de um IPS/IDS é em uma porta espelhada de switch,
assim como é apresentado na Figura 7.

222
UNIDADE 9

Internet

IDS/IPS

Figura 7- IDS/IPS - tráfego passante / Fonte: o autor.

Descrição da Imagem: a figura exibe, de cima para baixo, uma nuvem representando a internet. Conectando-se a ela, temos um switch.
Ao lado esquerdo do switch, encontra-se um ícone representando o IDS/IPS. Abaixo, conectado ao switch, temos o Firewall e, abaixo e
conectado a ele, encontra-se um tubo, que representa o barramento de rede. Ligando-se ao barramento, abaixo, da esquerda para a
direita, encontram-se dois computadores e um servidor.

Já na arquitetura apresentada, um switch é utilizado para fazer a conexão. Todo tráfego que ingressa
pela porta que se conecta à internet do switch deve ser copiado para o IDS/IPS. Switches de diversos
fabricantes têm o suporte para essa técnica de espelhamento de porta.
O IPS é uma ferramenta poderosa que protege a rede e faz boa parte do trabalho de forma auto-
matizada. Contudo, existe uma desvantagem: o IPS, por agir de forma automática, pode vir a bloquear
tráfego legítimo. Qualquer tráfego que se assemelha ao que está definido nas regras de bloqueio pode
ser tido como ilegítimo e vir a ser bloqueado. Devido a esse risco, muitos administradores de redes
optam por continuar utilizando o IDS e realizar o bloqueio de forma manual.

223
UNICESUMAR

Neste podcast, conversaremos com Guilherme Fernandes, um es-


pecialista em suporte a redes com mais de 10 anos de experiência.
Nessa conversa, conheceremos as ferramentas de gerenciamento
de rede que são usadas no dia a dia de um time de suporte a redes,
saberemos as ferramentas mais úteis e entenderemos os prós e os
contras delas. Vamos conferir?

Título: Segurança de redes de computadores


Autor: Luís José Rohling
Editora: Contentus
Ano: 2020
Sinopse: este livro traz discussões relacionadas à necessidade de se pensar
na segurança na internet, ao tratar clientes, servidores, medidas de segu-
rança e abrangência de redes de computadores. Também expõe conside-
rações sobre o processo de comunicação, o modelo OSI e as camadas de transporte, de rede e
de enlace. Ainda discute as redes WAN e VPNs, a operação do IPsec, Firewalls e deep web.
Comentário: as diversas técnicas de segurança de redes, o funcionamento e a arquitetura delas
são exploradas neste livro, o qual pode ser encontrado na Biblioteca Virtual.

Título: Projeto estruturado e gerência de redes


Autor: Cassiana Fagundes da Silva
Editora: Contentus
Ano: 2020
Sinopse: este livro trata as questões introdutórias de projetos de redes,
gestão, ciclo de vida e etapas de elaboração. Também aponta fatores críticos
de sucesso para o gerenciamento de projetos, parâmetros avaliados, metas
e requisitos do cliente. Além disso, destaca o plano de testes de rede física, o mapa de rede, a
avaliação da infraestrutura e a importância de se pensar a segurança da informação.
Comentário: disponível na Biblioteca Virtual, este livro explora as ferramentas de gerenciamento
de redes discutidas nesta unidade de maneira mais detalhada.

224
UNIDADE 9

Caro(a), aluno(a), encerramos esta unidade. Nela, exploramos os recursos mais utilizados em geren-
ciamento de redes de computadores, tais como monitoração SNMP, IPAM, IDS, IPS. Em todas as
redes, seja de médio, seja grande porte, você encontrará esses recursos e
protocolos em funcionamento. Um grande exemplo é o sistema bancário
brasileiro. O Banco Central exige alto padrão de segurança de redes, a fim
de trocar informações entre os bancos e os Firewalls. O IPS e o IDS fazem
parte desse padrão, assim como outros recursos de redes.
Para visualização, o documento do Banco Central do Brasil pode ser
acessado pelo QR Code.

225
Agora que estudamos os principais recursos e ferramentas do gerenciamento de redes e en-
tendemos como podemos utilizá-los da melhor forma, chegou o momento de colocar nosso
conhecimento em prática.
Construiremos juntos um mapa mental. Nele, você encontrará os principais recursos de geren-
ciamento de redes que discutimos nesta unidade. Do lado esquerdo do mapa, em vermelho,
encontra-se o protocolo SNMP. Embaixo, estão os principais recursos. Ao centro, em azul, desta-
camos outro aspecto importante do gerenciamento. Sem ele, a rede fica bagunçada, o que pode
atrapalhar a operação da mesma. Por fim, do lado direito, em amarelo, temos algumas técnicas
que nos ajudam a proteger a rede.
Diante daquilo que você aprendeu, preencha os campos em branco. Revise a unidade ou realize
uma pesquisa na internet, caso tenha dificuldade.
Lembre-se de utilizar as melhores práticas aprendidas em seus projetos. Quando o assunto é
“redes”, o controle e a organização são extremamente necessários.

GERENCIAMENTO DE REDES DE COMPUTADORES

SNMP

Agente Topologia I
IPAM
Firewall

IDS IPS
Administrador

226
1. O endereçamento de rede IP (Internet Protocol), quando utilizado em uma rede peque-
na, pode ser facilmente controlado por uma planilha ou algum sistema de anotações
mais básico. Contudo, quando a rede cresce, a planilha se torna ineficaz.

Qual ferramenta pode ser utilizada para controlar o endereçamento de rede IP:

a) IPS.
b) IDS.
c) Firewall.
d) IPAM.
e) Topologia.

2. Assim como um shopping center tem um sistema de vigilância, uma rede de compu-
tadores precisa ser monitorada. Desse modo, é possível saber o estado da rede como
um todo e verificar como está o funcionamento dos dispositivos.

O protocolo mais utilizado para fazer o serviço exposto no enunciado é o:

a) IP.
b) SNMP.
c) DNS.
d) IPAM.
e) PPP.

3. Os IPS são muito úteis, pois analisam o tráfego e agem em caso de anomalia. No en-
tanto, carregam uma desvantagem em relação aos IDS.

Qual seria a desvantagem exposta no enunciado?

a) O IDS pode ser encontrado de forma gratuita, já o IPS não.


b) O IDS analisa e bloqueia o tráfego de forma ativa, enquanto o IPS funciona apenas de
maneira passiva, enviando alertas quando incidentes de segurança ocorrem.
c) O IDS suporta o protocolo IP na versão 6, enquanto o IPS suporta apenas a versão 4
do protocolo.
d) O IDS suporta IPAM, já o IPS não.
e) O IPS pode barrar um tráfego legítimo acidentalmente.

227
4. Uma boa topologia de rede deve ser clara e sucinta. Quais itens uma topologia bem
construída deve conter?
a) Dispositivos de redes, como roteadores, Firewall, switches, servidores e conexão com
a internet.
b) Endereçamento IP da rede.
c) Localização das máquinas de usuário para facilitar o processo de resolução de pro-
blemas.
d) IDS, IPS e IPAM
e) Servidor e agente SNMP.

5. O protocolo SNMP nos ajuda a monitorar a rede, dado que recebe os pacotes vindos
dos dispositivos de redes e informam a condição deles.

Esses pacotes são conhecidos como:

a) IPAM.
b) IPS.
c) Trap.
d) ICMP.
e) Agente SNMP.

6. Os IPAM, além de gerenciarem o endereçamento IP da rede, podem gerenciar outros


recursos. São eles:
a) DNS e DHCP.
b) IPS e IDS.
c) Trap.
d) ICMP.
e) SNMP.

228
UNIDADE 1
ALENCAR, M. A. S. Fundamentos de Redes de Computadores. Manaus: CETAM, 2010. Disponível
em: https://docero.com.br/doc/n0xvx5v. Acesso em: 10 dez. 2021.

ALENCAR, M. S. de. Engenharia de Redes de Computadores. São Paulo: Érica, 2012.

BARRETT, D.; KING, T. Redes de Computadores. Rio de Janeiro: LTC, 2010.

CAMPOS, A. Sistemas de Segurança da Informação: controlando os riscos. 2. ed. Florianópolis:


Visual Books, 2007.

COMER, D.; BARCELLOS, M. Redes de Computadores e Internet: Abrange transmissão de dados,


ligação inter-redes e web. 4. ed. Porto Alegre: Bookman, 2007.

COULOURIS, G. et al. Sistemas Distribuídos: Conceitos e projetos. 5. ed. Porto Alegre: Bookman, 2007.
Disponível em: http://bibliotecaweb.cesumar.br:8080/pergamumweb/vinculos/000042/0000427b.png.
Acesso em: 10 dez. 2021.

FOROUZAN, B. A. Comunicação de Dados e Redes de Computadores. 4. ed. São Paulo: Mc-


Graw-Hill, 2008.

LAMPORT, L. Time, Clocks, and the Ordering of Events in a Distributed System. Communications
of the ACM, v. 21, n. 7, p. 558-565, Jul. 1978.

MATHEUS, Y. O modelo OSI e suas camadas. Alura, 24 jan. 2018. Disponível em: https://www.alura.
com.br/artigos/conhecendo-o-modelo-osi. Acesso em: 10 dez. 2021.

SOUSA, L. B. de. Redes de Computadores: dados, voz e imagem. São Paulo: Érica, 1999.

TANENBAUM, A. S. Organização Estruturada de Computadores. 5. ed. São Paulo: Pearson


Prentice Hall, 2007.

TANENBAUM, A. S.; VAN STEEN, M. Sistemas Distribuídos: princípios e paradigmas. 2. ed. São
Paulo: Pearson Universidades, 2007.

WEBER, T.; JANSCH-PÔRTO, I.; WEBER, R. Fundamentos de tolerância a falhas. In: CONGRESSO
DA SOCIEDADE BRASILEIRA DE COMPUTAÇÃO, 10., 1990, Vitória. Anais [...]. Vitória: SBC;
UFES, 1990.

UNIDADE 2
BRITO, G. A. D. D.; MOURA, A. M. de C. Integração de Dados: dos sistemas tradicionais a sistemas
P2P. Relatório Técnico nº 112/SE9/ABR05. Rio de Janeiro: IME, abr. 2005.

CARVALHO, G.; LOTITO, A. Tecnologias de Acesso à Internet. São Paulo: Novatec, 2005.

229
COULOURIS, G. et al. Sistemas Distribuídos: Conceitos e projetos. 5. ed. Porto Alegre:
Bookman, 2007. Disponível em: http://bibliotecaweb.cesumar.br:8080/pergamumweb/vincu-
los/000042/0000427b.png. Acesso em: 14 dez. 2021.

EVANS, D. A Internet das Coisas: Como a próxima evolução da Internet está mudando tudo. [S.
l.]: IBSG, abr. 2011. Disponível em: https://www.cisco.com/c/dam/global/pt_br/assets/executives/
pdf/internet_of_things_iot_ibsg_0411final.pdf. Acesso em: 13 dez. 2021.

FAINA, L. F. Cap. 02 – Arquiteturas de Sistemas Distribuídos. Uberlândia: Facom, 2013. 60 sli-


des, não color. Disponível em: http://www.facom.ufu.br/~faina/BCC_Crs/GSI028-2014-1S/DL/
DS-Ch02.pdf. Acesso em: 14 dez. 2021.

FERREIRA, R. E. Linux: Guia do Administrador do Sistema. 2. ed. São Paulo: Novatec, 2008.

FOSTER, I. et al. The physiology of the grid: An open grid services architecture for distributed sys-
tems integration. In: GGF – GLOBAL GRID FORUM, 4., 2002, Toronto. Proceedings [...]. Toronto:
GGF, 2002.

PITANGA, M. Construindo Supercomputadores com Linux. 3. ed. Rio de Janeiro: Brasport, 2008.

SILBERSCHATZ, A.; GALVIN, P. B.; GREG, G. Fundamentos de Sistemas Operacionais. 9. ed.


Rio de Janeiro: LTC, 2015.

TANENBAUM, A. S. Organização Estruturada de Computadores. 5. ed. São Paulo: Pearson


Prentice Hall, 2007.

UNIDADE 3
COULOURIS, G. et al. Sistemas Distribuídos: Conceitos e projetos. 5. ed. Porto Alegre:
Bookman, 2007. Disponível em: http://bibliotecaweb.cesumar.br:8080/pergamumweb/vincu-
los/000042/0000427b.png. Acesso em: 15 dez. 2021.

FOROUZAN, B. A. Comunicação de Dados e Redes de Computadores. 4. ed. São Paulo: Mc-


Graw-Hill, 2008.

KUROSE, J. F.; ROSS, K. W. Redes de Computadores e Internet. 6. ed. São Paulo: Pearson, 2014.

MORAES, A. F. de. Redes de Computadores. 8. ed. São Paulo: Érica, 2020.

RIBEIRO-SANTOS, T. C. dos S. de C. Fundamentos de Redes de Computadores. Londrina:


Educacional, 2016.

SOUZA, W. Comunicação de Dados. Brasil Escola, [2021]. Disponível em: https://brasilescola.uol.


com.br/informatica/comunicacao-dados.htm. Acesso em: 15 dez. 2021.

TANENBAUM, A. S. Organização Estruturada de Computadores. 5. ed. São Paulo: Pearson


Prentice Hall, 2007.

TANENBAUM, A. S. Redes de Computadores. 5. ed. São Paulo: Pearson Prentice Hall, 2011.

230
TANENBAUM, A. S.; VAN STEEN, M. Sistemas Distribuídos: princípios e paradigmas. 2. ed. São
Paulo: Pearson Universidades, 2007.

XAVIER, G. Entendendo a web por baixo dos panos. Medium, 16 maio 2019. Disponível em: ht-
tps://medium.com/gutoffline/http-entendendo-%C3%A0-web-por-baixo-dos-panos-cebab8c0d4ca.
Acesso em: 15 dez. 2021.

UNIDADE 4
COULOURIS, G.; DOLLIMORE, J.; KINDBERG, T. Sistemas distribuídos: conceitos e projeto. 4.
ed. Porto Alegre: Bookman, 2007.

DAWSON, P.; WOLF, C. Virtualization key initiative overview. Gartner Research, 22 jul. 2011.
Disponível em: https://www.gartner.com/doc/1745020/virtualization-key-initiative-overview/.
Acesso em: 22 dez. 2021.

MACHADO, F. B.; MAIA, L. P. Arquitetura de sistemas operacionais. 4. ed. Rio de Janeiro: LTV,
2007.

O QUE é Thread? Canaltech, [2021]. Disponível em: https://canaltech.com.br/produtos/o-que-e-


-thread/. Acesso em: 22 dez. 2021.

TANENBAUM, A. S. Organização estruturada de computadores. 5. ed. São Paulo: Pearson Pren-


tice Hall, 2007.

TANENBAUM, A. S. Sistemas operacionais modernos. 2. ed. São Paulo: Pearson, 2003.

TANENBAUM, A. S.; WOODHULL, A. S. Sistemas operacionais: projeto e implementação. 3. ed.


Porto Alegre: Bookman, 2008.

REFERÊNCIAS ON-LINE
¹Em: https://www.virtualbox.org/. Acesso em: 22 dez. 2021.

UNIDADE 5
ABNT. ABNT NBR ISO/IEC 27001. Tecnologia da informação – Técnicas de segurança – Sistemas
de gestão da segurança da informação – Requisitos. Rio de Janeiro: ABNT, 2013.

AMORIM, A. Camadas para atender o ecossistema de segurança em conformidade com a LGPD e


4.658. Security Report, 24 jun. 2019a. Disponível em: https://www.securityreport.com.br/colu-
nas-blogs/camadas-para-atender-o-ecossistema-de-seguranca-para-atender-a-lgpd-e-4-658/#.
YCmd0GhKjIU. Acesso em: 23 dez. 2021.

231
AMORIM, A. Rede Interna: ações que podem auxiliar na jornada da LGPD e 4.658. Security Report,
25 abr. 2019b. Disponível em: https://www.securityreport.com.br/colunas-blogs/rede-interna-a-
coes-que-podem-auxiliar-na-jornada-da-lgpd-e-4-658/#.YCmc_2hKjIU. Acesso em: 23 dez. 2021.

COULOURIS, G. et al. Sistemas distribuídos: conceitos e projeto. 5. ed. Porto Alegre: Bookman, 2013.

COULOURIS, G.; DOLLIMORE, J.; KINDBERG, T. Sistemas distribuídos: conceitos e projeto. 4.


ed. Porto Alegre: Bookman, 2007.

FERREIRA, F. S.; SANTOS, N. C. G. G. D.; ANTUNES, M. Clusters de alta disponibilidade abor-


dagem OpenSource. Leiria: Departamento de Engenharia Informática, 2005.

IMPLEMENTAÇÃO simplificada do Microsoft SDL. [S. l.]: Microsoft Corporation, 2010.

INJEÇÃO de SQL. Microsoft, 14 set. 2021. Disponível em: https://docs.microsoft.com/pt-br/sql/


relational-databases/security/sql-injection?view=sql-server-ver15. Acesso em: 23 dez. 2021.

ISO. ISO/IEC 13335-1. Information Technology - Security Techniques - Management Of Informa-


tion And Communications Technology Security. Geneva: ISO, 2004.

MARTINS, V. Segurança em sistemas distribuídos. Bate Byte, [2021]. Disponível em: http://www.
batebyte.pr.gov.br/Pagina/Seguranca-em-sistemas-distribuidos. Acesso em: 23 dez. 2021.

MATSUNAGA, I. Os pilares da segurança da informação. NSW, 27 set. 2018. Disponível em: https://
nsworld.com.br/os-pilares-da-seguranca-da-informacao/. Acesso em: 23 dez. 2021.

MENEZES, A. J.; OORSCHOT, P. C. van; VANSTONE, S. A. Handbook of applied criptography.


Boca Raton: CRC Press, 1996.

PADRÃO de segurança de dados (DSS) e Padrão de segurança de dados de aplicativos de pagamento


(PA-DSS). Glossário de termos, abreviações e acrônimos. [S. l.: s. n.], 2016. Disponível em: https://
pt.pcisecuritystandards.org/_onelink_/pcisecurity/en2pt/minisite/en/docs/PCI_DSS_v3_Glos-
sary_PT-BR.pdf. Acesso em: 23 dez. 2021.

SEGURANÇA da informação: fazendo acontecer. CPQD, 24 ago. 2016. Disponível em: https://www.
cpqd.com.br/blog/seguranca-da-informacao-e-comunicacao/seguranca-da-informacao-fazendo-a-
contecer/. Acesso em: 23 dez. 2021.

TANENBAUM, A. S. Organização estruturada de computadores. 5. ed. São Paulo: Pearson Pren-


tice Hall, 2007.

VISÃO geral do Kerberos - um serviço de autenticação para sistemas de rede abertos. Cisco, 19
jan. 2006. Disponível em: https://www.cisco.com/c/pt_br/support/docs/security-vpn/kerbe-
ros/16087-1.html. Acesso em: 23 dez. 2021.

REFERÊNCIAS ON-LINE
¹Em: https://www.nist.gov/cyberframework/online-learning/five-functions. Acesso em: 23 dez.
2021.

232
UNIDADE 6
PAGE-JONES, M. Fundamentos do desenho orientado a objeto com UML. 2. ed. São Paulo:
Makron Books, 2001.

TANENBAUM, A. S.; STEEN, M. V. Sistemas distribuídos: princípios e paradigmas. 2. ed. São Paulo:
Pearson Prentice Hall, 2008.

REFERÊNCIA ON-LINE
¹Em: https://aws.amazon.com/pt/solutions/case-studies/netflix/. Acesso em: 27 dez. 2021.

UNIDADE 7
TANENBAUM, A. S. Sistemas operacionais modernos. 3. ed. São Paulo: Pearson Prentice Hall, 2009.

TANENBAUM, A. S.; STEEN, M. V. Sistemas distribuídos: princípios e paradigmas. 2. ed. São Paulo:
Pearson Prentice Hall, 2008.

UNIDADE 8
WEBB, K. Construindo Redes Cisco Usando Comutação Multicamadas. São Paulo: Pearson
Prentice Hall, 2003.

UNIDADE 9
ROHLING, L. J. Segurança de redes de computadores. Curitiba: Contentus, 2020

SILVA, C. F. da. Projeto estruturado e gerência de redes. Curitiba: Contentus, 2020.

233
UNIDADE 1
1. E. As afirmativas I, II e III estão corretas.

2. B. LANs (Local Area Networks) permitem interligar centenas de computadores e compartilhar os


recursos computacionais entre eles.

3. D. Middleware, pois, para que essas diferenças não sejam notadas pelos usuários e eles tenham
a visão de um sistema único, podemos organizar os sistemas distribuídos em uma camada de
software.

4. B. O hub é um equipamento utilizado em algumas redes para fazer a comunicação dos compu-
tadores e tem a capacidade de emitir e receber mensagens, porém não consegue fazer os dois
processamentos de forma simultânea.

5. B. Placas de rede, pois é um dispositivo de hardware responsável pela comunicação entre um


computador e uma rede.

UNIDADE 2
1. B. Computação em grade, pois, nela, temos muita heterogeneidade, diferentes hardwares,
softwares, tecnologia de rede empregada e diferentes domínios administrativos.

2. A. O cliente-servidor é a arquitetura mais conhecida e utilizada nos sistemas informatizados,


tendo a sua origem na década de 70. Neste tipo de arquitetura, teremos alguns serviços e
recursos a serem compartilhados a vários usuários, serviços e recursos esses que podem ser
disponibilizados em um único computador — sendo chamados de servidores multisserviço — ou
sendo segregados, ou seja, um serviço ou recurso por computador e, neste caso, são chamados
de acordo com os serviços disponibilizados (por exemplo, servidor de banco de dados, servidor
de autenticação de usuários etc.).

3. B. A programação mais robusta ocorre no computador-servidor, tornando os computadores-


-cliente mais leves. A arquitetura cliente-servidor é a mais utilizada, consistindo em uma parte
servidor, responsável por prover informações ou acesso a recursos, e a parte cliente, a qual,
por meio de uma rede, se conecta ao servidor com o objetivo de extrair informações ou utilizar
serviços.

O modelo cliente-servidor baseia-se em dois elementos.

Cliente: elemento da rede que utiliza diversos recursos disponibilizados por ela. Servidor: ele-
mento que disponibiliza recursos à rede, prestando, assim, serviços à rede.

234
UNIDADE 3
1. A. Tanenbaum e Van Steen (2007) afirmam que uma RPC visa a ocultar grande parte das com-
plexidades da troca de mensagens e é ideal para aplicações cliente-servidor. A ideia que funda-
menta a RPC, é: quando se faz uma chamada de procedimento remoto, ela pareça como uma
chamada local.

2. A. Como exemplos de principais suportes de middleware para objetos distribuídos, Coulouris et


al. (2007) trazem o Java RMI (Remote Method Invocation), da Oracle/Sun Microsystems, e o CORBA
(Common Object Request Broker Architecture), especificado pela OMG (Object Management Group)
e implementado por diversos fabricantes de software. Também salientamos que a interface é
escrita em Interface Descrition Language (IDL).

3. B. FTP é um protocolo cujo objetivo é efetuar a transferência de arquivos entre dois dispositivos
e usa a conexão TCP para cada transferência, com a conexão mantida, apenas, enquanto dura
a transferência.

UNIDADE 4
1. C.

Trata-se da virtualização, pois, segundo Dawson e Wolf (2011, on-line), a “virtualização desa-
copla as tarefas e a parte funcional das aplicações da infraestrutura física necessária para
seu funcionamento, permitindo uma flexibilidade e agilidade sem precedentes em termos de
armazenamento, servidores e desktops”.

2. C.

Trata-se do clustering, uma técnica eficaz para garantir alta disponibilidade. Ela é ainda mais
eficaz, flexível e eficiente quando combinada com a tecnologia de virtualização.

3. E.

Dentre os fatores da virtualização, temos: rapidez na implantação, redução de custos administrati-


vos, economia de energia elétrica, performance e aproveitamento da capacidade de computação.

235
UNIDADE 5
1. D.

Quando nos referimos à dificuldade de acesso ao sistema, impossibilitando a realização das


tarefas, falamos do conceito de disponibilidade. Um sistema deve ficar disponível aos usuários
pelo maior tempo possível. Caso um usuário não consiga ter acesso ao sistema no momento
em que precisa, considera-se que há uma quebra do conceito de disponibilidade.

2. D.

Os ataques clássicos e que comprometem a disponibilidade são a negação de serviço com o


DoS (Denial of Service) e o DDoS (Distributed Denial of Service). Uma das possibilidades é deixar
o servidor inoperante.

3. D.

Os malwares chamados vermes (worms) se propagam com a exploração de vulnerabilidades


existentes no ambiente. Assim, não necessitam de ações de usuários.

UNIDADE 6
1. C.

As classes definem as características em comum dos objetos, pois funcionam como moldes
para os objetos.

2. A.

Descentralização dos objetos. Com objetos descentralizados, não temos apenas um ponto de
falha. Sendo assim, há um sistema mais tolerante aos erros.

3. E.

Qualquer coisa pode ser um objeto, inclusive, as abstratas. No paradigma da orientação a objeto,
há uma alusão ao mundo real, que vê tudo como um objeto.

4. C.

As classes filho herdam os atributos das classes pai. Dessa forma, o código fica mais conciso e
organizado, além evitar a repetição de trechos desnecessários.

5. C.

Tem alta disponibilidade, por ser distribuída. Os objetos ficam distribuídos de forma que não
estão sujeitos à disponibilidade de apenas um servidor.

236
UNIDADE 7
1. D.

Sistemas embarcados são sistemas criados para funções simples e não têm grande poder de
processamento e armazenamento. Dessa forma, normalmente, utilizam o sistema de arquivos
de maneira mais simples, salvando os dados no diretório raiz.

2. A.

Os NFS foram criados para permitir o compartilhamento de arquivos em rede, seja a local, seja
a Internet.

3. B.

Somente com a criação do NFS foi possível construir os clusters, uma vez que se trata de uma ar-
quitetura distribuída em rede, exigindo um sistema de arquivos que permita o compartilhamento.

4. A.

O modelo hierárquico permite a criação de diretórios dentro do diretório raiz. Isso proporciona
uma melhor organização dos arquivos tanto para os usuários quanto para o sistema.

5. E.

Um arquivo nada mais é que uma abstração, ou seja, um objeto virtual criado para organizar
as informações de maneira semelhante ao mundo real. Como humanos, temos uma percepção
melhor das informações quando tratadas como objeto.

6. C.

O travamento de arquivo permite a liberação ou o bloqueio da leitura ou da escrita, conforme


a necessidade.

UNIDADE 8
1. A.

Os pilares de uma rede eficiente são: escalabilidade, capilaridade, segurança e disponibilidade.

2. D.

A segmentação da rede em VLANs deve ser realizada na camada de distribuição.

237
3. B.

O Firewall é o dispositivo que realiza a filtragem do tráfego com base em portas lógicas TCP e
endereços de origem e destino.

4. E.

A técnica Build Blocks permite o crescimento organizado da rede.

5. E.

Para segmentar um domínio de broadcast, é necessário adicionar VLANs em uma rede L2.

UNIDADE 9
1. D.

O IPAM é um software especializado em gerenciamento de endereçamento IP.

2. B.

O protocolo SNMP é utilizado para monitoração da rede.

3. E.

O IPS pode vir a bloquear tráfego legítimo, caso ele se assemelhe com alguma regra de bloqueio
configurada.

4. A.

A topologia deve conter apenas os dispositivos importantes na ótica da conectividade da rede.

5. C.

Os Traps são pacotes enviados dos dispositivos que estão sendo monitorados ao servidor SNMP.
Esses pacotes contêm as informações sobre os estados dos dispositivos.

6. A.

Os IPAM podem, adicionalmente, controlar o escopo de DHCP e de DNS de uma rede.

238
239
240

Você também pode gostar