Escolar Documentos
Profissional Documentos
Cultura Documentos
www.celioconrado.com
Sistemas Distribudos
Cenrio at 85
Custo computacional extremamente alto (programas - software - e equipamentos hardware) Conexes entre os equipamentos no apresentavam confiabilidade (interferncias, qualidade)
Mainframe
1985 a ... :
Desenvolvimento dos microprocessadores e a inveno das redes locais ou LANs (Local Area Networks) criaram a infra-estrutura necessria para a criao dos Sistemas Distribudos.
www.celioconrado.com
Definio
uma coleo de computadores independentes que se apresenta ao usurio como um sistema nico e consistente. (Tanenbaum)
www.celioconrado.com
Compartilhamento de recursos Um recurso pode ser desde um componente de hardware at entidade de dados bem definida (arquivos, janelas, banco de dados, objetos). O Gerente de Recursos o mdulo de software que gerencia um conjunto de recursos de um tipo em particular. Sistemas Abertos a caracterstica que define quanto um sistema de computadores pode ser expandido de vrias maneiras. Extenses de Hardware: adio de perifricos, memria, interfaces de comunicao. Extenses de Software: Adio de features do SO, protocolos de comunicao, servios de compartilhamento de recursos. Sistemas abertos so caracterizados pelo fato que suas interfaces so publicadas Sistemas distribudos abertos so baseados na disponibilizao de mecanismos uniformes para comunicao interprocesso e interfaces publicadas para acesso aos recursos compartilhados Sistemas distribudos abertos podem ser construdos por hardware heterogneo e software de diferentes vendedores. Conformidade dos componentes e problemas com integrao. Concorrncia Em um sistema distribudo, existem muitos computadores, cada um com um ou mais processadores. Se existem M computadores, ento no mnimo M processos podem executar em paralelo: Muitos usurios simultaneamente invocam comandos ou interagem com aplicativos. Muitos processos servidores executam concorrentemente, cada um respondendo a diferentes requisies de processos clientes. Escalabilidade Aplicaes distribudas em rede de larga escala - Internet Gargalos que podem ser evitados
www.celioconrado.com
Tolerncia a Falhas Prevenir para que as falhas no afetem outros componentes do sistema Confiabilidade Replicar Funes Problemas Copias Disponibilidade Inconsistncia dos dados > Difcil manter o estado global Duas abordagens: Redundncia de Hardware Recuperao por Software
Transparncia O usurio e o programador desconhecem a separao dos componentes, desta forma, o Sistema inteiro visto como um nico.
2. Transparncia de Localizao
3. Transparncia de Relocao Esconde que um recurso pode ser movido para outra localizao enquanto esta sendo usado. 4. Transparncia de Concorrncia por vrios usurios concorrentes Esconde que um recurso pode ser compartilhado
5. Transparncia de Replicao Mltiplas instancias de uma entidade pode ser usada para aumentar a confiabilidade e desempenho. 6. Transparncia de Falha Esconde a falha e recuperao de um recurso Esconde que um recurso pode mover-se para outra
www.celioconrado.com
Controle de Processo
Rede de Comunicao
Modulo de Interface para Redes
www.celioconrado.com
Questes bsicas de projeto Nomeao: Projetar esquemas de nomes de significado global para identificar recursos e objetos que devem ser suportados por um sistema de interpretao de nomes Comunicao: Otimizar a implementao da comunicao (desempenho e confiabilidade) conservando um modelo de programao de alto nvel para seus usurios. Estrutura de Software: estruturar o sistema para que novos servios possam ser introduzidos (Sistemas Abertos). Alocao de carga de trabalho: Como aprimorar o processamento, a comunicao e alocao de recursos para obter um melhor desempenho (balanceamento de carga) Manuteno de Consistncia: manter a consistncia a um custo razovel e sem causar um grande impacto a performance do sistema talvez o problema mais difcil encontrado no projeto de SDs (atualizaes, replicas, relgios e falhas).
Arquitetura do SDs
www.celioconrado.com
Quando se fala neste modelo em redes locais, a sua implementao bem mais facilitada pois permite que as mensagens sejam feitas de forma mais fcil sem que haja a conexo exclusiva entre o cliente e o servidor, ou seja, o cliente faz uma conexo com o servidor e manda uma tarefa, a conexo fechada, o servidor executa, abre uma nova conexo, envia a resposta ao cliente e fecha a conexo. O modelo tem uma particularidade, cada mquina tem a sua identificao (endereo), que permite ser facilmente encontrada, caso contrrio, o cliente antes de enviar uma tarefa (mensagem) para o servidor teria de localiz-los antes, este processo pode ser demorado dependendo do tamanho da rede, consiste em o cliente enviar mensagens para todos os computadores da rede e esperar respostas de todos para poder identificar o servidor, estas situaes fazem o rendimento global da rede cair. Atualmente, quase sinnimo de rede local, pela sua versatilidade e segurana, com as requisies de servios (mensagens) que no necessitam manter a ligao entre as mquinas cliente e servidor a todo o tempo (deixando a rede livre para novas mensagens). A insero de um servidor em uma rede local aumenta consideravelmente a confiabilidade e o desempenho, assim como a confiabilidade e os recursos de todo o ambiente. O modelo cliente/servidor um paradigma de programao que representa as interaes entre o processos e estruturas do sistema. Esse modelo usado para melhorar a estrutura do sistema operacional, movendo-se a maior quantidade possvel de funes para nveis mais altos do sistema, reduzindo o tamanho do ncleo. O modelo cliente/servidor geralmente refere-se a um modelo onde dois ou mais computadores interagem de modo que um oferece servios aos outros. Este modelo permite ao usurios acessarem informaes e servios de qualquer lugar. Cliente/Servidor uma arquitetura computacional que envolve requisies de servios de clientes para servidores. Portanto a definio para cliente/servidor seria a existncia de uma plataforma base para que as
www.celioconrado.com
aplicaes, onde um ou mais clientes e um ou mais servidores, juntamente com o sistema operacional de rede, executem processamento distribudo. O modelo poderia ser entendido como a interao entre software e hardware em diferentes nveis, implicando na composio de diferentes computadores e aplicaes. Para se entender o paradigma cliente/servidor necessrio observar que o conceito est na ligao lgica e no na fsica. Cliente e servidor pode ou no existir na mesma mquina, porm um ponto importante para uma real abordagem cliente/servidor a necessidade de que a arquitetura definida represente uma computao distribuda.
Caractersticas Cliente
Tambm denomidado de front-end e workstation, um processo que interage com o usurio atravs de uma interface grfica ou no, permitindo consultas ou comandos para a recuperao de dados e anlise, e representando o meio pela qual os resultados so apresentados. Alm disso o processo cliente apresenta algumas caractersticas distintas: um processo ativo na relao cliente/servidor Inicia e termina as conversaes com os servidores, solicitando servios distribudos No se comunica com outros clientes Torna a rede transparente ao usurio
Servidor
Tambm denominado servidor ou back-end, fornece um determinado servio que fica disponvel para todo cliente que o necessita. A natureza e o escopo dos servios so definidos pelo objetivo da aplicao cliente/servidor.
Tipos de servidores
Servidores de arquivos Servidores de impresso Servidores de Banco de Dados Servidor de Redes
www.celioconrado.com
Vantagens do modelo
Confiabilidade: Se uma mquina apresenta algum problema, ainda que seja um dos servidores, parte do sistema continua ativo. O sistema cresce facilmente: Torna-se fcil modernizar o sistema quando necessrio Escalabilidade: Capacidade de responder ao aumento da procura de servios sem degradar a performance. O Cliente e o Servidor possuem ambientes operacionais individuais: Pode-se misturar vrias plataformas para melhor atender s necessidades individuais de diversos setores e usurios.
Desvantagens do modelo
Manuteno: As diversas partes envolvidas nem sempre funcionam bem juntas. Quando algum erro ocorre, existe uma extensa lista de itens a serem investigados. Ferramentas: A escassez de ferramentas de suporte, no raras s vezes obriga o desenvolvimento de ferramentas prprias. Em funo do grande poderio das novas linguagens de programao, esta dificuldade est ser tornando cada vez menor. Gerenciamento: O aumenta da complexidade do ambiente e a escassez de ferramentas de auxlio tornam difcil o gerenciamento da rede
www.celioconrado.com
PERR-TO-PEER Conceito:
uma Tecnologia para estabelecer uma espcie de rede de computadores virtual, onde cada estao possui capacidades e responsabilidades equivalentes. Difere da arquitetura cliente/servidor, no qual alguns computadores so dedicados a servirem dados a outros. Esta definio, porm, ainda demasiado sucinta para representar todos os significados do termo Peer-to-Peer. constituda por computadores ou outros tipos de unidades de processamento que no possuem um papel fixo de cliente ou servidor, pelo contrrio, costumam ser considerados de igual nvel e assumem o papel de cliente ou de servidor dependendo da transao sendo iniciada ou recebida de um outro peer da mesma rede. O primeiro uso da expresso Peer-to-Peer foi em 1984, com o desenvolvimento do projeto Advanced Peer-to-Peer Networking Architecture na IBM. O termo utilizado em diferentes tecnologias que adotam um modelo conceitual "par-a-par", tal como o protocolo NNTP (para Usenet News), SMTP (para envio de e-mail), e sistemas de troca de mensagens instantneas (ICQ, MSN). Porm, o termo tornou-se popular com o surgimento de aplicaes de compartilhamento de arquivo, em outras palavras, programas que possibilitam a distribuio de arquivos em rede, permitindo o acesso de qualquer usurio dessa rede a este recurso. Os ns da rede Peer-to-Peer podem diferir de: Configurao local Capacidade de processamento Capacidade de armazenamento Largura de banda. Em 1999, surgui o Napster, para compartilhamento de arquivos de msica (principalmente MP3), e trouxe o conceito de Peer-to-Peer para a mdia, principalmente aps tornar-se alvo de ataques jurdicos por parte das companhias discografias. Aps o Napster, dezenas de outras aplicaes Peer-to-Peer foram lanadas: LimeWire, iMesh, WinMX, AudioGalaxy, Kazaa, Gnutella, Freenet, Shareaza, eDonkey, eMule, aMule, Bearshare, ANts P2P.
Arquitetura Peer-to-Peer
O Napster e outras aplicaes intituladas Peer-to-Peer, tais como o IRC e o ICQ, so baseadas em uma arquitetura cliente/servidor, pelo menos para algumas tarefas crticas, como indexao de informao. Por outro lado, redes como Gnutella e Freenet usam uma arquitetura Peer-toPeer pura, sem nenhuma centralizao de tarefas. Aparentemente mal empregado, o termo Peer-to-Peer, quando usado para aplicaes como o Napster, ressaltam a importncia do papel exercido pelos ns da rede. Estes passam a servir como provedores de informao, e no apenas consumidores passivos; ainda que de acordo com pesquisadores do Xerox PARC, 70% dos usurios no contribuem com nenhum arquivo, enquanto 1% dos peers responsvel por 50% dos arquivos disponveis.
www.celioconrado.com
A arquitetura completamente descentralizada do Gnutella faz com que os usurios tenham o mnimo de contato com o servidor central, o que alm de promover maior escalabilidade ao sistema, serve de estratgia para evitar os problemas judiciais que terminaram com o Napster.
2. OpenFT
OpenFT um protocolo desenvolvido pelo projeto giFT. O nome "OpenFT" significa "Open
www.celioconrado.com
FastTrack". Entretanto, o OpenFT um protocolo completamente novo, apenas algumas poucas vieram do pouco que se sabia sobre a FastTrack quando o OpenFT foi desenvolvido. Assim como a FastTack, o OpenFT uma rede onde nodos enviam listas de arquivos compartilhados para outros nodos. Isso reduz o consumo de banda necessrio para a pesquisa, entretanto, consumindo mais recursos do processador e mmoria nos nodos.
3. SoulSeek
Pequena rede introduzida para trocas de msicas em 2000. Tem poucos usurios e utiliza software de mesmo nome. Caracteriza-se pelo fato de ter um grande nmero de arquivos raros, e principalmente msica alternativa, apesar do nmero reduzido de usurios. O software cliente tem uma interface simplificada, e permite a adio de usurios em uma hotlist, ou seja, uma lista de contatos que permite saber quando um usurio que tem arquivos relevantes est conectado rede. Tambm h na rede SoulSeek um servio de chat parecido com o IRC, que possibilita uma melhor interao entre os usurios, que tambm podem criar seus prprios canais de batepapo! o p2p um gerenciador de downloads que se liga com outros servidores
Programas
1. Napster
www.celioconrado.com
2. Shareaza www.shareaza.com
3. eMule http://emule-project.net