Você está na página 1de 13

Professor Clio Conrado

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)

Sistemas Multiusurios (Dependncia Centralizada)

Mainframe

Terminais (Computadores sem CPU)

Diagrama Geral do Sistema

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.

Professor Clio Conrado

www.celioconrado.com

Definio
uma coleo de computadores independentes que se apresenta ao usurio como um sistema nico e consistente. (Tanenbaum)

Vantagens dos Sistemas Distribudos em Relao aos Sistemas Centralizados


Os microprocessadores oferecem uma melhor relao preo/desempenho do que os mainframes Pode ter um poder de processamento maior que Velocidade qualquer mainframes. Algumas aplicaes envolvem mquinas separadas Distribuio inerente fisicamente Se uma mquina falhar o sistema como um todo pode Confiabilidade sobreviver Crescimento incremental O poder computacional pode ser expandido gradualmente, conforme a necessidade. Economia

Principais Caractersticas Chaves:


Compartilhamento de recursos (Hardware: impressoras, CDs. Informao: Arquivos, Dados) Sistemas abertos (propriedades de extenso ambiente computacional) Concorrncia (sincronismo e atualizao dos recursos compartilhados) Escalabilidade (aplicaes em larga escala e preveno de gargalos) Tolerncia a falhas (permite a preveno de problemas) Transparncia

Professor Clio Conrado

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

Professor Clio Conrado

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.

Existem 8 Tipos de Transparncia (Segundo a ISO)

1. Transparncia de Acesso um recurso acessado

Esconde diferenas na representao de dados e como

2. Transparncia de Localizao

Esconde onde um recurso est localizado

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

7. Transparncia de Migrao localizao 8. Transparncia de Persistncia memria ou em disco

Esconde quando um recurso (software) esta em

Professor Clio Conrado

www.celioconrado.com

Aplicaes principais (Alusivas ao uso de redes)


Compartilhamento de Recursos Comunicao de Dados

Controle de Processo

SDCDs (Sistemas Digitais de Controle Distribudos)

Rede de Comunicao
Modulo de Interface para Redes

Aspectos relevantes dos SD


Os sistemas distribudos permitem trazer confiabilidade, desempenho e segurana para toda as operaes de rede. A disponibilidade um ponto forte, pois todos os recursos da rede devem estar disponvel a todos de forma facilitada sob todos os aspectos (acesso, nomenclatura, etc.). O sistema no pode ser mantido como se fosse uma caixa preta, deve ser aberto para poder atender as necessidades dos usurios assim como implementar melhorias e novos servios, neste caso h possibilidade de verificar a carga de processamento de mquina em questo de forma a saber se a mesma poder ou no comportar a nova aplicao. Toda a disponibilidade gera problemas para a manuteno, que envolve processos de replicao e atualizao para que sempre o servio ou recurso esteja disponvel.

Professor Clio Conrado

www.celioconrado.com

Aspectos de projetos dos SD


Objetivos Chaves: Desempenho Confiabilidade Escalabilidade Consistncia Segurana

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

Professor Clio Conrado

www.celioconrado.com

MODELO CLIENTE SERVIDOR


Consiste em estruturar o S.O como um grupo de processos cooperantes, denominados servidores que oferecem servios a processos usurios, denominados clientes, que trocam informaes via mensagens para a execuo de suas tarefas.

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

Professor Clio Conrado

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.

Suas propriedades distintas so:


o processo reativo na aplicao cliente/servidor Possui uma execuo contnua Recebe e responde s solicitaes dos clientes No se comunica com outros servidores enquanto estiver fazendo o papel de servidor Presta servios distribudos Atende a diversos clientes simultaneamente

Tipos de servidores
Servidores de arquivos Servidores de impresso Servidores de Banco de Dados Servidor de Redes

Professor Clio Conrado

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

Professor Clio Conrado

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.

Professor Clio Conrado

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.

Plataformas e Frameworks para Aplicaes Peer-to-Peer


Inicialmente, as aplicaes Peer-to-Peer surgiram monolticas, ou seja, o programa precisava implementar seu prprio protocolo de comunicao Peer-to-Peer para permitir a interoperabilidade entre os ns constituintes do seu sistema em rede. Porm, alm de um grande re-trabalho, estes esforos em requisitos no-funcionais das aplicaes implicava na impossibilidade de comunicao entre sistemas diferentes, mesmo que o servio provido por eles fossem equivalentes. Por exemplo, arquivos compartilhados em sistemas como o Kazaa, eMule e Gnutella ficam acessveis exclusivamente dentro de suas prprias redes, levando usurios a manterem instalados em suas mquinasclientes para cada um dos sistemas de compartilhamento de arquivos que pretenda usar. Outros exemplos de Frameworks para desenvolvimento de aplicaes Peer-to-Peer so: Oog (Duke University), Lancasters P2P Framework(University of Lancaster) COPPEER (UFRJ), sendo os dois ltimos abstraes construdas sobre o JXTA.

Exemplos de Aplicaes Peer-to-Peer 1. kademlia


Kademlia conceito de rede altamente descentralizada baseada em "ns" de rede. Os prprios usurios constituem a estrutura da rede dispensando servidores. Vrias redes utilizam o conceito Kademlia. 1.1 Overnet A rede Overnet uma espcie de eDonkey "paga" preciso comprar o software da empresa que a desenvolveu. uma variante do eDonkey totalmente descentralizada e mais rpida seguindo o conceito Kademlia e foi a primeira implementao da mesma 1.2 Gnutella Rede open-source surgida no final de 2000, utilizada inicialmente por usurios do sistema Linux. Possui uma estrutura altamente descentralizada no havendo mesmo nenhum servidor central sequer. Os usurios constituem a estrutura da prpria rede. Entre os programas que a utilizam, esto o BearShare , LimeWire e agora o Shareaza. 1.3 Gnutella 2 Segundo projeto da rede Gnutella, mas agora com servidores centrais otimizando buscas e o desempenho geral da rede. conhecida principalmente no programa Shareaza. Receberam crticas quando foi criada pelos criadores da Gnutella original. 1.4 Kad Network Rede paralela do software eMule introduzida pelo autor do mesmo em 2004 e uma implementao fiel ao conceito Kademlia. Essa rede tinha por objetivo inicial, oferecer mais fontes aos usurios do programa e mais tarde se tornar numa rede P2P completa.

2. OpenFT
OpenFT um protocolo desenvolvido pelo projeto giFT. O nome "OpenFT" significa "Open

Professor Clio Conrado

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

Professor Clio Conrado

www.celioconrado.com

2. Shareaza www.shareaza.com

3. eMule http://emule-project.net

Você também pode gostar