Programação Paralela em Arquiteturas Multi-Core/Aplicações Internet: diferenças entre revisões

[edição não verificada][edição não verificada]
Sem resumo de edição
O Grid Computing é um desafio bem maior do que formas mais simples de computação paralela e distribuída. Hoje, a maioria dos projetos de Grid permanecem localizados nos centros de supercomputação e laboratórios universitários. Os centros de pesquisa são ligados a conexões em rede cerca de 20 vezes mais rápidas do que as conexões de banda largas normais, são equipadas com sistemas de armazenamento capazes de lidar com vastos arquivos de dados e com computadores de alta performance. O Grid Computing é um conceito sobre o qual existe ainda uma grande expectativa e que poderá evoluir em diferentes direções, mas que é já hoje entendido como a próxima geração da Web para a comunidade científica.
 
=== P2PPeer-to-Peer ===
 
==== Definição ====
FAZER
 
[[Image:P2P-network.svg|thumb|200px|Exemplo de uma rede Peer-to-Peer.]]
[[Image:Server-based-network.svg|thumb|200px|Exemplo de uma rede de servidor. (Não Peer-to-Peer)]]
 
As redes '''Peer-to-Peer (P2P)''' são um modelo de comunicação em que todas as partes possuem as mesmas capacidades e responsabilidades, podendo também iniciar uma seção de comunicação. Difere do modelo de cliente/servidor, no qual alguns computadores são dedicados a servirem dados a outros. Os computadores que constituem a rede não possuem um papel fixo de cliente ou servidor, pelo contrário, costumam ser considerados de igual nível e assumem o papel de cliente ou de servidor dependendo da transação sendo iniciada ou recebida de um outro ''peer'' da mesma rede.
 
Os nós da rede Peer-to-Peer podem diferir em termos de configuração local, capacidade de processamento, capacidade de armazenamento, largura de banda, entre outras características particulares. O primeiro uso da expressão Peer-to-Peer foi em 1984, com o desenvolvimento do projeto Advanced Peer-to-Peer Networking Architecture na [[Wikipedia:|IBM]].
 
O termo é também utilizado em diferentes tecnologias que adotam o modelo conceitual ponto-a-ponto, tais como o protocolo [[Wikipedia:|NNTP]] (para Usenet News), [[Wikipedia:|SMTP]] (para envio de e-mails) e sistemas de trocas de mensagens instantâneas ([[MSN]], [[ICQ]], [[GTalk]]).
 
Na Internet, Peer-to-Peer é um tipo de rede transiente que permite a um grupo de computadores usuários com um mesmo programa conectarem e terem acesso direto a arquivos no disco rígido um dos outros. Esses programas de compartilhamento de arquivos, como por exemplo o [[Napster]], [[eMule]] e [[Kazaa]], entre outros, forma responsáveis por popularizar o termo P2P.
 
Há também outros tipos de recursos podem ser compartilhandos em redes Peer-to-Peer, tal como capacidade de processamento de máquinas, espaço de armazenamento de arquivos, serviços de software (analogamente aos [[Web Services]]), entre outros.
 
==== Arquitetura e Classificação ====
 
As redes Peer-to-Peer podem ser classificadas em relação o seu uso.
 
* Compartilhamento de arquivos
* Telefonia
* [[Streaming]] de midia, como áudio e video
* Fóruns de discussão
 
Outra classificação possível para as redes Peer-to-Peer é em relação ao grau de centralização delas. Algumas aplicações são baseadas em arquiteturas cliente/servidor para algumas tarefas críticas como a indexação de informações, por exemplo. Outras aplicações usam uma arquitetura Peer-to-Peer pura, sem nenhuma centralização de tarefas. Essa arquitetura completamente descentralizada faz com que os usuários tenham o mínimo de contato com o servidor central, o que provém maior escalabilidade do sistema.
 
As aplicações Peer-to-Peer puras são raras. Em geral é utilizada uma arquitetura híbrida, utilizando alguns elementos centralizadores na execução de algumas tarefas cujo desempenho é crítico. As questões de desempenho são o que induzem a uma centralização parcial das atividades em ``peers`` de maior capacidade.
 
Nas arquiteturas puras, os ''peers'' são iguais, fazendo os papéis de clientes e servidores. Não há um servidor central para controlar a rede, nem um roteador central. Nas arquiteturas híbridas há um servidor central para manter informações sobre os ''peers'' e atender a requisições pelas informações. Os ''peers'' são responsáveis por armazenar dados, deixar o servidor central saber quais arquivos eles querem compartilhar, e disponibilizar os dados a outros ''peers'' quando eles requisitarem.
 
Os ''peers'' numa rede Peer-to-Peer são considerados nós na rede. Existe uma ligação entre quaisquer dois nós que se conhecem, isto é, ''peers'' que sabem a localização do outro na rede. Baseando nisso, as redes Peer-to-Peer também podem ser classificadas como estruturadas ou não-estruturadas.
 
As redes não-estruturadas são formadas quando as ligações são estabelecidas arbitrariamente. São redes que podem ser facilmente construídas quando novos ''peers'' querem entrar na rede, já que basta que ele copie ligações existentes de outro nó da rede e então o novo vai formando suas próprias ligações ao longo do tempo. Nessas redes, se um ''peer'' deseja um dado é necessário fazer uma busca pela rede para achar os ''peers'' que podem disponibilizar o dado. A desvantagem dessas redes é que nem sempre se encontraram ''peers'' para disponibilizar um dado em determinado momento. Os arquivos mais populares são mais fáceis de se encontrar do que um arquivo raro.
 
Uma rede estruturada possui um consistente protocolo global para assegurar que qualquer nó possa distribuir eficientemente um caminho a algum ''peer'' que possui o arquivo que ele busca, mesmo que seja raro. Para isto ser possível é necessário um padrão mais estruturado de ligações.
 
==== Vantagens ====
 
Um fato importante numa rede Peer-to-Peer é que todos os clientes disponibilizam recursos, incluindo largura de banda, espaço de armazenamento e poder computacional. Então, se chega um novo ''peer'', a demanda no sistema aumenta, mas a capacidade total do sistema também aumenta junto, fato que não é verdade numa estrutura cliente/servidor com um número fixo de servidores, onde a adição de novos clientes pode significar uma transferência de dados mais lenta para todos os clientes.
 
A distribuição natural nas redes Peer-to-Peer também aumenta a robustez do sistema em caso de falhas replicando os dados entre os ''peers'' e, nas redes puras, possibilitando aos ''peers'' encontrar os dados sem passar por um servidor central.
 
==== Conclusão ====
 
O interesse nas redes Peer-to-Peer é muito grande por parte de empresas e estudos acadêmicos devido ao poder de comunicação e distribuição de dados que elas podem oferecer. Grandes esforços são feitos para garantir a qualidade dos dados, já que há diversas formas de ataques maliciosos nessas redes, além da qualidade da transmissão e distribuição dos dados.
 
=== Web Crawlers ===
40

edições