Escolar Documentos
Profissional Documentos
Cultura Documentos
Arquiteturas de Aplicação
As aplicações podem estar organizadas de maneiras diferentes, o que dá origem a três
arquiteturas distintas, sendo elas as seguintes:
Cliente-servidor: o servidor será executado em um hospedeiro e fica escutando requisições
em um IP permanente e em uma porta específica; já o cliente inicia sessões com o servidor,
realizando requisições, podendo ter endereços dinâmicos. Alguns exemplos de protocolos
baseados nessa arquitetura são HTTP, IMAP, FTP.
Peer-to-peer(P2P): nem sempre existirá um único servidor, por isso os pares de
hospedeiros se comunicam entre si. Assim, em um momento um hospedeiro pode atuar
realizando requisições(como um cliente), no outro, pode atuar dando respostas(como um
servidor). Nesse sentido, todos hospedeiros oferecem serviços, havendo endereços
dinâmicos, o que torna o gerenciamento dessa rede um pouco mais complexo, visto que
será necessário ficar verificando quem fornecerá dado serviço. Alguns exemplos de
utilização dessa arquitetura são o BitTorrent e o Skype. Nesta arquitetura, pares solicitam
serviço de outros pares e fornecem serviço em troca de outros pares, o que traz uma
escalabilidade automática - novos pares trazem nova capacidade de serviço, bem como
novas demandas de serviço
Híbrida de cliente-servidor e P2P: é a arquitetura que faz uso das outras duas supracitadas;
No geral, aplicações de mensagem instantâneas fazem uso desse modelo, em que um
usuário(hospedeiro) vai até um servidor e busca um determinado endereço de um um outro
usuário(Client-server), então ele se conecta diretamente com esse outro usuário deste
endereço(P2P).
Sockets
São uma abstração de programação que permite a comunicação entre processos(programa
em execução em um host) - que possibilita a passagem de mensagens - através da rede.
Eles funcionam como a porta de saída de uma casa, estando entre a camada de aplicação
e a camada de transporte. Assim, para que as mensagens saiam da aplicação do
hospedeiro, elas acessam uma porta de saída específica. Tais portas vão variar de acordo
com o tipo de processo. Existem portas padrão para cada serviço, tais como a 8080(HTTP),
25(correio SMTP). Vale ressaltar que o IP pode continuar o mesmo, enquanto as portas irão
variar de acordo com o processo a ser executado. Sabendo que um computador pode ter
vários programas em execução, faz-se necessário identificar com qual programa deseja-se
fazer uma comunicação, o que é feito graças ao socket. A composição IP + porta do
processo caracteriza um identificador.
Exemplo:
O HTTP pode funcionar por meio de dois tipos de conexões, sendo elas as seguintes:
Não persistente: UM objeto é enviado sobre uma conexão TCP, então a comunicação
termina.
Persistente: múltiplos objetos podem ser enviados em uma mesma conexão até que todos
os itens da página sejam enviados. Nesse tipo de conexão, pode ou não acontecer o
paralelismo. Quando ele não acontece, só se requisita um novo objeto quando houver a
confirmação de que o item anterior foi recebido. Com o paralelismo, há requisição paralela
de diversos objetos.
O HTTP funciona com responses de diversos tipos, como 200, 400, etc. As requests, por
sua vez, funcionam como GET, POST, PUT, etc.
Cookies: servidores http não controlam sozinho as últimas sessões que ele realizou. Com a
utilização de cookies, torna-se possível monitorar o estado, isto é, torna-se possível
registrar determinadas informações. Assim, da próxima vez que um usuário for fazer uma
requisição a um servidor, essa requisição levará informações acerca da requisição anterior.
Cache Web: funcionam graças ao proxys(servidor que fica entre o servidor de origem e o
cliente). Esse servidor de cache armazena URLs e informações de páginas que costumam
ser bastante acessadas. Nesse sentido, se uma página não foi modificada, não tem motivo
de entrar em contato com servidor de origem, podendo acessar informações do próprio
servidor de cache.
Aplicações Cliente-servidor:
- FTP: Protocolo de transferência de arquivos entre sistemas de arquivo local e
remoto, do servidor para o cliente. O FTP vai atuar tanto no cliente, quanto no
servidor. Há duas conexões TCP que auxiliam no processo de transferência de
arquivo, sendo a primeira das conexões, a conexão de controle que roda na porta
21, responsável por informar nome, login, senha e comandos. A segunda conexão,
por sua vez, roda na porta 20 e é responsável por transportar o arquivo
propriamente dito. O FTP possui algumas respostas e comandos para que possa
funcionar, sendo eles os seguintes: USER(informa o usuário), PASS(informa senha
do usuário), LIST(llist ao conteúdo do diretório), RETR(copia o arquivo remoto para o
atual), STOR(faz o upload no diretório remoto), 331(usuário ok), 125(conexão de
dados aberta e iniciando transferência), 452(erro ao transferir o arquivo);
Além do SMTP, podem ser utilizados outros protocolos para que o usuário de origem
tenha as suas mensagens “descarregadas” no agente, como o POP3, IMAP ou
HTTP(como o gmail).
DNS:
O DNS, diretório da internet, serve para identificar o nome do hospedeiro em um endereço
IP, sendo uma espécie de tradutor. Ele é um banco de dados distribuído executado em uma
hierarquia de serviços DNS, bem como é um protocolo de camada de aplicação que permite
que os hospedeiros consultem o banco de dados distribuído.
O DNS provê alguns outros serviços, tais como dar um apelido "fácil" de ser memorizado a
um hospedeiro(aliasing) e os servidores de correio, bem como permite um balanceamento
de carga.
É importante ressaltar que nenhum servidor DNS isolado tem todos os mapeamentos para
todos os hospedeiros da internet, por isso os mapeamentos são distribuídos em diferentes
bancos de dados.
Acesso interativo:
O acesso ao DNS pode ser feito de maneira interativa, com uma mensagem indo para um
servidor dns local, vai até o dns raiz, retorna ao dns local, vai até o dns(TLD, contendo os
endereços do .com, .org, .edu), retorna uma outra mensagem até que se consiga chegar ao
endereço do hospedeiro.
Acesso recursivo:
O acesso ao DNS também pode ser feito de maneira recursiva, em que faz-se a pergunta
para o servidor local, o servidor local envia ao dns raiz, o dns raiz passa para um outro
servidor, e isso é feito até que se chegue a resposta ao hospedeiro que fez a pergunta.
Aplicações P2P:
Pode acontecer de em algumas arquiteturas P2P existirem servidores(rastreadores) que
ficam informando quais hospedeiros estão atuando como fornecedores de arquivos em
determinados momentos, em uma atuação parecida com a que o DNS faz.