Atividade

1) O que são aplicações distribuídas?

São processos que rodam em hosts distintos e que precisam se comunicar.

2) Defina arquitetura de rede e arquitetura de aplicação distribuída.

Arquitetura de rede é a pilha de protocolos da internet.
Arquitetura de aplicação distribuída são as arquiteturas P2P e Cliente-Servidor que gerenciam aplicações que rodam em hosts diferentes.

3) Quais as diferenças entre protocolo e aplicação?

O protocolo é o conjunto de regras que devem ser seguidas para que aja uma comunicação. A aplicação é uma implementação do protocolo. As aplicações utilizam protocolos como HTTP, SHTTP, DNS.

4) Explique, com o máximo de detalhes, a arquitetura Cliente-Servidor.

 Existem dois papéis bem definidos no sistema, cliente e servidor:

O cliente é o host que realiza as solicitações. Os clientes não se comunicam diretamente, eles se comunicam por meio de um servidor. Por exemplo, se você manda um e-mail, primeiro será direcionado para um servidor, que contenha o seu e-mail e o do destinatário, para que depois da verificação que o e-mail existe, o e-mail seja direcionado a pessoa que você mandou.

O servidor é o host que atente às solicitações. Pode atender mais de um cliente ao mesmo tempo, por isso ele precisa de um endereço/IP conhecido. Os servidores precisam estar sempre disponíveis para atender às solicitações (alta disponibilidade). Por isso é comum ter vários servidores com o mesmo sistema, o mesmo arquivo, para que quando um falhe tenha o outro para atender às solicitações. Dependendo do serviço as vezes é necessário utilizar datacenters (uma fazenda de servidores rodando em paralelo ).

Exemplos de tecnologias que usam a arquitetura cliente-servidor como base: Clound computing e servidores virtualizados. Exemplos de arquiteturas cliente-servidor: Web, FTP e E-mail.
Um desdobramento da arquitetura cliente-servidor é a arquitetura Server-puch. As notificações são baseadas nessa arquitetura.

5) Explique, com o máximo de detalhes, a arquitetura P2P.

Na arquitetura P2P existem pares de sistemas finais que se comunicam diretamente (denominados peer ou pares). Os pares podem ser um celular, um PC, ou laptops de usuários finais comuns. Possui mais escalabilidade (capacidade do serviço se adaptar a demanda) do que a arquitetura cliente-servidor.
Exemplos de arquitetura P2P: Bittorrent e Voip.

6) É possível que aplicações utilizem as duas arquiteturas (Cliente-Servidor e P2P) ao
mesmo tempo? Se sim, explique e dê exemplos.
Sim, é possível. Alguns mensageiros instantâneos como o Whatsapp usam um servidor para verificar os IPs dos participantes (Arquitetura Cliente-servidor). E, as mensagens são enviadas diretamente (Arquitetura P2P). Dessa forma o Whatsapp utiliza uma arquitetura mista.

7) Quais os principais desafios enfrentados pela arquitetura P2P.

• ISP (maior banda de download do que de upload) não é amigável, porque essa arquitetura usa a banda de upload.
• Segurança. Existe uma falta de segurança, pois qualquer um pode utilizar.
• Incentivo. É difícil fazer o usuário participar da arquitetura P2P, pois ele terá que dispor de uma parte da sua rede.

8) O que significa dizer que a arquitetura P2P tem mais escalabilidade que a arquitetura
Cliente-Servidor?

Significa que ela tem uma melhor capacidade de se adequar a demanda do que a Arquitetura Cliente-Servidor. Por exemplo, no BitTorrent os participantes podem servir para disponibilizar os serviços ou para prover os serviços. Quanto mais pessoas utilizando a aplicação melhor já que isso faz com que tenham mais pessoas provendo o serviço, o que otimiza o funcionamento. Diferentemente da Arquitetura Cliente-Servidor, pois essa arquitetura permite vários clientes para um servidor, mas não o contrário. Fazendo com o que o serviço fique mais lento.

9) No contexto de comunicação entre processos, o que é o socket?

Para que ocorra a comunicação entre processos são necessários sockets. Sockets são a interface de comunicação entre o processo e a rede.

10) O programador tem acesso limitado às funcionalidades da rede. Basicamente, quais
são os parâmetros que o programador pode alterar?

Em relação à camada de transporte, o programador possui controles limitados:
•Escolha do protocolo
•Talvez, determinar alguns parâmetros (tamanho do segmento).

11) Como os processos são endereçados?

Para que a comunicação entre os processos ocorram é necessário que um saiba o endereço do outro, situação parecida a de pessoas comunicando-se por carta. O endereçamento de processos ocorre por meio do IP e de uma porta.
IP: o endereço do host que contém o processo.
Porta: número que define qual protocolo o pacote enviado irá seguir.

12) Explique as características de cada um dos serviços de transporte disponibilizados
para aplicações:

a) Transferência confiável de dados

• Correio eletrônico, transferência de documentos Web e aplicações financeiras, precisam de confiabilidade (TCP- retransmissão).
• Multimídia  de áudio/vídeo em tempo real são aplicações tolerantes a perda. (UDP- sem garantia de entrega de dados).

b) Vazão

• Alguns serviços podem requerer uma taxa de transmissão.
Ex. Uma aplicação VoIP que envia a 32 kbits/s, o receptor deverá decodificar na mesma taxa. Se a camada de transporte não for capaz de fornecer a aplicação deverá codificar numa taxa menor ou desistir.
• Aplicações multimídia: aplicação sensível à largura de banda.
• São passíveis adaptações à vazão atual:
Transferência de arquivos, transferências Web: aplicações elásticas.

c) Temporização

• Restrições de tempo
Ex. Jogos online. Um bit transmitido deverá chegar em no máximo 100 ms.

d) Segurança

Alguns serviços podem ser disponibilizados:
• TLS (Transport Layer Security ): usa uma camada que esconde o que está sendo feito antes do endereço IP;
• Sigilo;
• Integridade dos dados.

Comentários

Postagens mais visitadas deste blog

Modelo OSI x Modelo TCP/IP

Multiplexação e comutação

Arquitetura em camadas: modelo hibrido.