Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE ESTÁCIO DE SÁ REDES DE COMPUTADORES SISTEMAS DE INFORMAÇÃO Arquitetura de Sistemas Distribuídos Prof. Fernando André fandre.gomes@yahoo.com.br Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Conceitos: “É uma arquitetura onde o processamento da informação é dividido em módulos ou processos distintos. Um processo é responsável pela manutenção da informação (Servidor), enquanto que outro é responsável pela obtenção dos dados (Cliente)”. BATTISTI, (2001, pág. 38). Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Conceitos: “Sistema inovador surgido nos anos 90 e muito utilizado no meio corporativo, baseado em três componentes principais: gerenciamento de banco de dados, que funcionam como servidores; redes, que funcionam como meio de transporte de dados e, finalmente, softwares para acesso aos dados: Clientes”. BATTISTI, (2001, pág 39). Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Estrutura Básica Em uma rede de computadores existem uma ou mais máquinas que atuam como servidores, disponibilizando recursos para as demais máquinas, as quais atuam como clientes. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Estrutura Básica Os servidores oferecem serviços a processos usuários, ou seja, executam a tarefa solicitada e enviam uma resposta ao cliente que se traduz nos dados solicitados. Os clientes solicitam um determinado serviço, através do envio de uma mensagem ao servidor. Enquanto o processo servidor está trabalhando a solicitação, o cliente está livre para realizar outras tarefas. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Cliente O processo cliente realiza o envio das mensagens fazendo algum pedido ao servidor. O cliente é a parte que interage com o usuário, possui a interface que o usuário utiliza para requisitar as tarefas ao servidor, sendo chamado de front-end da aplicação. Os processos clientes gerenciam as atividades dos usuários e realizam as validações dos dados informados por estes. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Modelo de Cliente-Magro Em um modelo cliente-magro, todo o processamento de aplicação e o gerenciamento de dados é realizado no servidor. O cliente é responsável, simplesmente por executar o software de apresentação. Modelo de Cliente-Gordo Nesse modelo, o servidor é responsável somente pelo gerenciamento de dados. O software do cliente implementa a lógica da aplicação e as interações com o usuário do sistema. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Modelo Cliente-Magro (Thin-client) Apresentação Modelo Cliente-Gordo (fat client) Apresentação Processamento de aplicações Figura – Clientes Magros e Gordos Cliente Cliente Gerenciamento de dados Processamento de aplicações Gerenciamento de dados Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Servidor É o processo que responde a uma mensagem solicitando a realização de alguma tarefa por parte do cliente. O processo servidor é chamado de back- end. O processo servidor pode oferecer serviços a muitos clientes, realiza pesquisas, filtragens e atualizações em bancos de dados. Os serviços podem ser realizados diretamente pelo processo servidor ou através de processos escravos criados por este para atender cada pedido do cliente, o que libera o processo mestre do servidor para receber outras solicitações. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Servidor Dedicado Um servidor dedicado, também chamado de servidor de alojamento dedicado ou ainda de servidor de hospedagem é um conjunto de sistemas com determinadas características, configuradas para o tipo de função a realizar, que pode ser desde o alojamento de arquivos, emails, fóruns ou páginas da Internet. Além da alta segurança e sigilo na informação, um servidor dedicado permite ainda uma alta performance na gestão de todos os seus conteúdos. Dispõe também de dispositivos de alta segurança, como geradores próprios, para o caso de falta de energia e de pessoal especializado na sua manutenção. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Transparência de Localização Um aspecto importante nos sistemas cliente/servidor: Transparência Para o usuário não deve existir diferença entre acessar um recurso local ou remoto, não deve ser motivo de preocupação para o usuário a localização do servidor e a natureza da comunicação. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Vantagens Confiabilidade Se uma máquina apresenta algum problema, ainda que seja um dos Servidores, parte do Sistema continua ativo. Matriz de Computadores agregando capacidade de processamento A arquitetura Cliente / Servidor provê meios para que as tarefas sejam feitas sem a monopolização dos recursos. Usuários finais podem trabalhar localmente. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Vantagens O Sistema cresce facilmente Torna-se fácil modernizar o Sistema quando necessário. O Cliente e o Servidor possuem ambientes operacionais individuais/Sistemas Abertos Pode-se misturar várias plataformas para melhor atender às necessidades individuais de diversos setores e usuários. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Desvantagens Manutenção 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, não raras vezes obriga o desenvolvimento de ferramentas próprias. Em função do grande poderio das novas linguagens de programação, esta dificuldade está se tornando cada vez menor. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Desvantagens Treinamento A diferença entre a filosofia de desenvolvimento de software para o microcomputador de um fabricante para o outro, não é como a de uma linguagem de programação para outra. Um treinamento mais efetivo torna- se necessário. Gerenciamento Aumento da complexidade do ambiente e a escassez de ferramentas de auxílio tornam difícil o gerenciamento da rede. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Arquitetura em Duas Camadas No início da utilização do modelo Cliente/Servidor, as aplicações foram desenvolvidas utilizando-se um modelo de desenvolvimento em duas camadas. Neste modelo, um programa, normalmente desenvolvido em um ambiente de desenvolvimento, como o Visual Basic, Delphi ou Power Builder, é instalado em cada Cliente. Este programa acessa dados em um servidor de Banco de dados. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Arquitetura em Duas Camadas A configuração usual Cliente/Servidor encontrada na maioria das empresas, é aquela em que existem vários Clientes requisitando serviços a um único Servidor. Esta arquitetura se caracteriza como sendo centrada no Servidor. Porém na visãodo usuário, ele imagina que existem vários Servidores conectados a somente um Cliente, ou seja, centrado no Cliente. Entretanto, com as várias ligações de comunicação possíveis, existe na realidade uma mistura de Clientes e Servidores. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Arquitetura em Duas Camadas O cliente comunica-se diretamente com o servidor. • A base de dados fica no servidor; • As regras e a lógica da aplicação no cliente; • Problema de manutenção - toda vez que uma aplicação for alterada, tanto bancos de dados como aplicações clientes precisam ser alteradas; • A aplicação cliente precisa ser instalada em todos os nós. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Arquitetura em Duas Camadas Figura – Modelo 2 Camadas Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Arquitetura em Três Camadas Todo o acesso do cliente ao Banco de dados, é feito de acordo com as regras contidas no Servidor de aplicações. O cliente não tem acesso direto ao Banco de dados, sem antes passar pelo servidor de aplicações. Com isso as três camadas são as seguintes: • Apresentação; • Lógica; • Dados. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Arquitetura em Três Camadas Camada de Apresentação Como em duas camadas o programa continua instalado no cliente. Alterações na Interface do programa, geram a necessidade de atualizar a aplicação em todos os computadores, onde esta está sendo utilizada. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Arquitetura em Três Camadas Camada Lógica São as regras do negócio, as quais determinam de que maneira os dados serão utilizados. Esta camada foi deslocada para o Servidor de aplicações. Desta maneira, quando uma regra do negócio for alterada, basta atualizá-la no Servidor de aplicações. Após a atualização, todos os usuários passarão a ter acesso a nova versão, sem que seja necessário reinstalar o programa em cada um dos computadores da rede. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Arquitetura em Três Camadas Camada de Dados Nesta camada temos o servidor de Banco de dados, no qual reside toda a informação necessária para o funcionamento da aplicação. Cabe ressaltar, novamente, que os dados somente são acessados através do Servidor de aplicação, e não diretamente pela aplicação Cliente. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Arquitetura em Três Camadas Figura – Modelo 3 Camadas Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Arquitetura em Três Camadas Figura – Modelo 3 Camadas Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Arquitetura em Quatro Camadas A ideia básica do modelo de 4 camadas, é retirar a apresentação do cliente e centralizá-las em um determinado ponto, o qual na maioria dos casos é um servidor Web. Com isso o próprio Cliente deixa de existir como um programa que precisa ser instalado em cada computador da rede. O acesso a aplicação, é feito através de um Navegador, como o Internet Explorer ou o Mozilla Firefox. Às vezes, continua-se a chamar de 3 camadas porque as camadas Web e Aplicação frequentemente rodam na mesma máquina (para pequenos volumes) Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Arquitetura em Quatro Camadas Para acessar a aplicação, o cliente acessa o endereço da aplicação, utilizando o seu navegador. Por exemplo http://www.empresa-abc.com/sistemas/cadastro.asp . Todo o acesso do cliente ao Banco de dados, é feito de acordo com as regras contidas no Servidor de aplicações. O cliente não tem acesso direto ao Banco de dados, sem antes passar pelo servidor de aplicações. Com isso as quatro camadas são as seguintes: • Camada de Cliente; • Camada de Apresentação; • Camada Lógica; • Camada de Dados. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Arquitetura em Quatro Camadas Camada de Cliente Nesta caso o Cliente é o Navegador utilizado pelo usuário, quer seja o Internet Explorer, quer seja o Netscape Navigator, ou outro Navegador qualquer. Camada de Apresentação Essa camada fica instalada em um Servidor Web. A interface pode ser composta de páginas HTML, ASP, ou qualquer outra tecnologia capaz de gerar conteúdo para o Navegador. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Arquitetura em Quatro Camadas Camada Lógica São as regras do negócio, as quais determinam de que maneira os dados serão utilizados. Esta camada está no Servidor de aplicações. Desta maneira, quando uma regra do negócio for alterada, basta atualizá-la no Servidor de aplicações. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Arquitetura em Quatro Camadas Camada Lógica São as regras do negócio, as quais determinam de que maneira os dados serão utilizados. Esta camada está no Servidor de aplicações. Desta maneira, quando uma regra do negócio for alterada, basta atualizá-la no Servidor de aplicações. Camada de Dados Nesta camada temos o servidor de Banco de dados, no qual reside toda a informação necessária para o funcionamento da aplicação. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Cliente-Servidor Arquitetura em Quatro Camadas Figura – Modelo 4 Camadas Arquitetura de Sistemas Distribuídos Unidade 3. Comunicação nos Sistemas Distribuídos 3.5. Modelo Peer-to-Peer Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Peer-to-Peer Definição “São sistemas distribuídos compostos de nós interconectados, aptos a se auto- organizar em topologias de rede, com o intuito de compartilhar recursos, como conteúdo, ciclos de CPU, largura de banda e armazenamento, com a capacidade de adaptação a faltas e acomodação a um número variável de nós, ao mesmo tempo que mantém a conectividade e o desempenho em níveis aceitáveis, sem a necessidade de suporte ou intermediação de um servidor centralizado.” (Adroutsellis-Theotokis & Spinellis, 2004) Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Peer-to-Peer Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Peer-to-Peer Características • Auto-organização: não há um coordenador da organização, não há um coordenador do Grupo, toda a coordenação é distribuída; • Adaptabilidade: a rede se ajusta ao ambiente mesmo que ocorram falhas; • Escalabilidade: a rede cresce em grande escala, não há ponto de estrangulamento; • Comunicação direta entre os pares: se opõe ao tradicional modelo cliente-servidor. Cada servidor e cada nó pode fornecer ou obter recursos. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Peer-to-Peer 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; • etc. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Peer-to-Peer Arquitetura de Redes P2P Classificação da Arquiteturade Redes P2P • Arquitetura Centralizada: utiliza um servidor central para controle de acesso à rede, para publicação e pesquisa de conteúdo; • Arquitetura Descentralizada: todos os peers possuem funcionalidade equivalente; • Arquitetura Híbrida: alguns peers especiais são chamados de supernós, possuem um papel diferenciado na rede. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Peer-to-Peer Arquitetura de Redes P2P Centralizada • Um servidor central controla as entradas e saídas de peers da rede; • Os peers registram no servidor central os recursos que compartilharão na rede; • Pesquisas por recursos disponíveis nos peers são efetuadas pelo servidor central; • O acesso aos recursos é feito diretamente entre peers; • Exemplos: Napster, eMule. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Peer-to-Peer Arquitetura de Redes P2P Híbrida • Supernós permitem o ingresso dos nós na rede, podendo também exercer atividades de coordenação do funcionamento da rede, indexar os recursos compartilhados pelos nós e permitir a busca por estes recursos; • Após localizado, um recurso pode ser obtido a partir da interação direta entre nós; • Falha de um supernó pode ser tolerada elegendo dinamicamente outro supernó; • Exemplos: Kazzaa, Skype. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Peer-to-Peer Arquitetura de Redes P2P Híbrida Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Peer-to-Peer Arquitetura de Redes P2P Descentralizada • Não há um elemento central; • Todos os nós possuem papel equivalente; • As pesquisas por recursos compartilhados são feitas por inundação (flooding); • Gera um alto tráfego na rede; • Desempenho das pesquisas é ruim devido à necessidade de contactar muitos nós e aguardar a resposta; • Exemplos: Gnutella e JXTA. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Peer-to-Peer Exemplos de Redes P2P eMule • Utiliza vários servidores “centrais” que fazem a indexação de arquivos compartilhados; • As bases de dados usadas pelos servidores para indexação são independentes; • Os peers podem se conectar a um ou mais servidores para efetuar buscas; • Os downloads são feitos diretamente entre peers, sendo possível baixar partes de um arquivo a partir de diferentes peers. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Peer-to-Peer Exemplos de Redes P2P Gnutella • Um nó entra na rede se conectando a qualquer outro nó já existente; • Cada nó faz o papel de cliente para realizar buscas, baixar arquivos de servidor para responder as buscas e pedidos de download; • O protocolo define as mensagens que podem ser trocadas entre nós para fazer pesquisas de arquivos e baixa-los; • Foi aperfeiçoado para tornar--se mais escalável de ser totalmente descentralizado (Ultrapeers e QRP –– Query Routing Protocol). Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Peer-to-Peer Exemplos de Redes P2P JXTA • Proposto pela Sun; • Provê uma infra-estrutura simples de rede P2P com estrutura simples de rede P2P sobre a qual podem ser criadas aplicações que empregam este paradigma de comunicação; • Cria grupos de pares com interesses comuns; • Mensagens JXTA são codificadas em XML; • Permite estabelecimento de conexões seguras; • Possui uma implementação padrão em Java. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Peer-to-Peer Exemplos de Redes P2P Kazaa • Utiliza supernós para acesso à rede e para busca e indexação de conteúdo; Skype • Permite comunicação por áudio ou vídeo entre usuários; • Utiliza supernós e um servidor de login. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Peer-to-Peer Exemplos de Redes P2P BitTorrent • Protocolo P2P para download de arquivos; • Há vários aplicativos clientes compatíveis; • O arquivo compartilhado é dividido em vários pedaços, que são baixados simultaneamente; • Pedaços recebidos já são compartilhados; • O protocolo engloba mecanismos para: o Controlar a integridade dos pedaços de arquivos baixados; o Recompensar quem compartilha arquivos, e penalizar quem tira proveito e não colabora. Arquitetura de Sistemas Distribuídos Comunicação nos Sistemas Distribuídos Modelo Peer-to-Peer Exemplos de Redes P2P BitTorrent • Arquivo .torrent; o Criado por nó seed, que compartilha arquivo; o Contém metadados que descrevem o que descrevem o arquivo e permitem verificar sua integridade; o Indica servidores tracker; o Servidores tracker; o Coordenam a distribuição de arquivos; o Indicam os nós para download; o Controlam a velocidade do download; o Se o nó não colabora (leech), perde banda.
Compartilhar