Buscar

comunicação entre processos

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Comunicação entre processos de aplicação
Introdução
Na Internet, as aplicações devem “conversar” entre si, ou seja, o que o usuário deseja deve ser entendido pela outra máquina e respondido. Essa comunicação é feita entre os processos, através da troca de mensagens. O remetente cria mensagens com seus pedidos ao destinatário, que recebe e gera as suas mensagens para responder (ou não) a solicitação.
Por exemplo, numa comunicação Web, o cliente solicita uma página da Internet, através de um determinado tipo de mensagem (no caso, uma requisição HTTP). O servidor recebe a requisição, e envia uma mensagem com a página para o cliente (através de uma resposta HTTP). Porém, se ocorre um erro, o servidor envia mensagens dizendo ao cliente que ouve algum erro.
Geralmente, a comunicação consiste em pares de processos, onde um processo em cada lado envia mensagens para o outro. Isso ocorre na rede através dos sockets, que são os “porta-vozes” de cada host para uma determinada aplicação.
Para que haja essa comunicação, é necessário que os hosts se identifiquem. Para isso, usam o endereço IP. Porém, é necessário também identificar qual processo naquela máquina irá levar as mensagens à aplicação, e essa identificação é chamada de número (ou endereço) de porta.
Modelo TCP/IP
Em um modelo de comunicação, como o TCP/IP, as camadas mais inferiores têm a função de transmitir os dados enviados pela camada de aplicação de maneira confiável, mas não fornecem serviços diretos aos usuários. Já a camada de aplicação, fornece diretamente estes serviços, sendo assim, a camada de aplicação é “a razão de ser de uma rede de computadores”[1]. No modelo TCP/IP não há as camadas de seção e apresentação, que na maioria das aplicações são pouco usadas. Essas duas camadas estão incluidas na camada de aplicação.
Arquiteturas de aplicação 
Uma Arquitetura de Aplicação define a estrutura de comunicação entre os utilizadores da aplicação. Existem basicamente três tipos de arquitetura: Cliente-Servidor, Peer-to-Peer e uma arquitetura híbrida, que é uma mescla das outros duas. Ao contrario de uma arquitetura de rede, que é fixa, ou seja, provê um conjunto específico de serviços as aplicaçõoes, a arquitetura de aplicação deve ser escolhida pelo desenvolvedor da aplicação, determinando o modo que a aplicação vai se comportar nos sistemas finais em uma rede.
Com essa classificação segundo a arquitetura (cliente-servidor, P2P ou híbrida) pode-se entender melhor como se comportam as aplicações em uma rede. Em qualquer uma dessas arquiteturas, uma aplicação se comunica através de pares de processos, onde um é rotulado cliente e outro servidor. Mesmo em uma aplicação do tipo P2P, o par que solicita um arquivo de outra máquina, é denominado cliente, e o outro que fornece é o servidor. Cliente e Servidor
Este modelo praticamente ocupava a única possibilidade e acabava assumindo como unanimidade o posto de arquitetura de aplicação, isso ocorria devido a computadores poderosos, com muita memória, serem muito caros. Com isso, a tendência era que existissem computadores potentes que centralizassem esses efeitos, por isso MainFrames eram utilizados para armazenar dados de clientes para fazer operações remotas.
Na atualidade, apesar do avanço da tecnologia, trazendo computadores pessoais com maior possibilidade de processamento e de memória, com custo baixo, esse modelo ainda se apresenta com muita força e aparentemente terá forças para continuar por muito tempo ainda.
Modelo de arquitetura Cliente-Servidor
Existem dois processos envolvidos, um no host cliente e um outro no host servidor. A comunicação acontece quando um cliente envia uma solicitação pela rede ao processo servidor, e então o processo servidor recebe a mensagem, e executa o trabalho solicitado ou procura pelos dados requisitados e envia uma resposta de volta ao cliente, que estava aguardando. Nesta arquitetura o servidor tem uma aplicação que fornece um determinado serviço e os clientes tem aplicações que utilizam este serviço. Uma característica desta arquitetura, é que um cliente não se comunica com outro cliente, e o servidor, que tem um endereço fixo, esta sempre em funcionamento. Quase sempre um único servidor é incapaz de suportar as requisições de todos os clientes, devido a isso, na maioria dos casos são utilizados vários servidores que constituem um servidor virtual (server farm). Um exemplo claro de aplicação Cliente-Sevidor é a comunicação entre um browser, que é usado para visualizar páginas da internet, em um servidor web. Neste tipo de aplicação o cliente (browser) e o servidor (servidor web) comunicam-se trocando mensagens através do protocolo HTTP.
Server farm: Conjunto de servidores.
Peer-to-Peer
A arquitetura P2P (Peer-to-Peer) consiste em uma comunicação direta entre os clientes, não existe nenhuma divisão fixa entre cliente e servidor. Cada par (peer) ativo requisita e fornece dados a rede, desta forma não existe a dependência do servidor, isso aumenta significativamente a largura de banda e a redução de recursos. Esse tipo de arquitetura é utilizado principalmente por aplicações de compartilhamento de conteúdo, como arquivos contendo áudio, vídeo, dados ou qualquer coisa em formato digital. Outras aplicações orientadas a comunicações de dados, como a telefonia digital, videotelefonia e rádio pela internet também utilizam esta arquitetura. Como exemplo podemos citar o protocolo BitTorrent que utiliza a arquitetura peer-to-peer para compartilhamento de grandes quantidades de dados. Neste exemplo um cliente é capaz de preparar e transmitir qualquer tipo de ficheiro de dados através de uma rede, utilizando o protocolo BitTorrent.
Um peer (par) é qualquer computador que esteja executando uma instância de um cliente. Para compartilhar um arquivo ou grupo de arquivos, um nó primeiro cria um pequeno arquivo chamado "torrent" (por exemplo, Meuarquivo.torrent). Este arquivo contém metadados sobre os arquivos a serem compartilhados e sobre o tracker, que é o computador que coordena a distribuição dos arquivos. As pessoas que querem fazer o download do arquivo devem primeiro obter o arquivo torrent, e depois se conectar ao tracker, que lhes diz a partir de quais outros pares que se pode baixar os pedaços do arquivo.
Glossário
	Protocolo BitTorrent: é um protocolo de rede que permite ao utilizador realizar downloads (descarga) de arquivos, em geral indexados em websites
	Tracker: um servidor que auxilia na comunicação entre dois computadores que utilizam o protocolo P2P BitTorrent. Para que se proceda a uma partilha de ficheiros por BitTorrent é necessário que dois PCs se comuniquem com o servidor
Características
Auto-organização: não há um coordenador do grupo; toda a
coordenação é distribuída;
Adaptabilidade: rede se ajusta ao ambiente, mesmo que
ocorram falhas;
Escalabilidade: rede cresce em escala facilmente; não há ponto
de estrangulamento;
Comunicação direta entre os pares: se opõe ao tradicional
modelo cliente-servidor, já que cada nó pode ser cliente e
servidor;
Utilização
Compartilhamento de arquivos, imagens, músicas, vídeos, etc.
Atualização de sistemas operacionais e de software aplicativo;
Gerenciamento de redes e sistemas;
Processamento distribuído;
Sincronização de bancos de dados;
Difusão de informações;
Híbrida
Com uma pesquisa realizada pela empresa Xerox, foi detectado que pelo menos 70% dos usuários de P2P não compartilhavam arquivo, enquanto apenas 1% compartilhavam 50% destes, ou seja, a teoria que se tinha de “divisão de trabalho” pelos clientes, não valia na prática. Para isso então, buscou-se uma solução, e esta solução, representou a utilização da arquitetura do tipo híbrida.
Uma híbrida, mescla das outras duas: cliente-servidor/P2P. Esta arquitetura utiliza, por exemplo, para transferência de arquivos o P2P e a arquitetura cliente/servidor para pesquisar quais peers contêm o arquivo desejado. Uma aplicação muito utilizada neste tipo de arquitetura é a de mensagem instantânea. O Windows Live Messenger e oaMSN são bons exemplos, onde usuários podem bater papo online instantaneamente em tempo real. A comunicação desta aplicação é tipicamente P2P, no entanto, para iniciar uma comunicação, um usuário registra-se em um servidor, e verifica quem da sua lista de contatos também está registrado, para a partir de então começar uma comunicação. Essas aplicações também disponibilizam transferência de arquivos, suporte a grupos, emoticons, histórico de chat, suporte a conferência, suporte a Proxy, e outras ferramentas.
Prof. Marcelo Ribeiro

Outros materiais

Outros materiais