BALANCEAMENTO DE REQUISIÇÕES EM CLUSTER DE SERVIDORES WEB: UMA EXTENSÃO PARA O MOD_PROXY_BALANCER DO APACHE

Tamanho: px
Começar a partir da página:

Download "BALANCEAMENTO DE REQUISIÇÕES EM CLUSTER DE SERVIDORES WEB: UMA EXTENSÃO PARA O MOD_PROXY_BALANCER DO APACHE"

Transcrição

1 JÔ SATO BALANCEAMENTO DE REQUISIÇÕES EM CLUSTER DE SERVIDORES WEB: UMA EXTENSÃO PARA O MOD_PROXY_BALANCER DO APACHE MARINGÁ 2007

2 JÔ SATO BALANCEAMENTO DE REQUISIÇÕES EM CLUSTER DE SERVIDORES WEB: UMA EXTENSÃO PARA O MOD_PROXY_BALANCER DO APACHE Dissertação apresentada ao Programa de Pós-Graduação em Ciência da Computação da Universidade Estadual de Maringá, como requisito parcial para obtenção do grau de Mestre em Ciência da Computação. Orientador: Prof. Dr. Ronaldo Augusto de Lara Gonçalves MARINGÁ 2007

3 Dados Internacionais de catalogação-na-publicação Universidade Norte do Paraná Biblioteca Central Ana Cristina Gasparini Freitas Bibliotecária CRB9/792 J266b Sato, Jô. Balanceamento de requisições em cluster de servidores web: uma extensão para o mod_proxy_balancer do apache / Jô Sato. Maringá: [s.n], xiv; 102p. Dissertação (Mestrado). Ciência da computação. Universidade Estadual de Maringá. Orientador: Profº Drº Ronaldo Augusto de Lara Gonçalves 1- Ciência da Computação - dissertação de mestrado UEM 2- Clusters web 3- Servidor web 4- Apache servidor web 5- Mod_proxy_balancer - módulo I- Gonçalves, Ronaldo Augusto de Lara, orient. II- Universidade Estadual de Maringá III- UEM CDU

4 JÔ SATO BALANCEAMENTO DE REQUISIÇÕES EM CLUSTER DE SERVIDORES WEB: UMA EXTENSÃO PARA O MOD_PROXY_BALANCER DO APACHE Dissertação apresentada ao Programa de Pós-Graduação em Ciência da Computação da Universidade Estadual de Maringá, como requisito parcial para obtenção do grau de Mestre em Ciência da Computação. Aprovado em 04/09/2007. BANCA EXAMINADORA

5 AGRADECIMENTOS Agradeço primeiramente a Deus, que sempre me deu forças e iluminou o meu caminho. Por ter me acompanhado, por ter me dado a vida, saúde, bons amigos e uma ótima família. Ao meu orientador, professor Ronaldo Augusto de Lara Gonçalves, pessoa formidável que contribuiu muito para o desenvolvimento do trabalho e para a minha formação como pessoa e pesquisador. Aos meus pais que sempre deram grande apoio, e os meus irmãos e minha namorada que sempre foram grandes amigos, sendo todos eles fundamentais para o meu triunfo. Aos grandes amigos da minha turma, ao professor João Angelo Martini e a secretária Inês que também me auxiliaram nesta jornada. realização deste trabalho. Aos meus amigos e a todos que direta ou indiretamente contribuíram para a

6 EPÍGRAFE "A vida só pode ser compreendida olhando-se para trás; mas só pode ser vivida olhando-se para frente." (Soren Kierkegaard)

7 RESUMO A disponibilização cada vez mais ampla de serviços e informações diversas na Internet tais como movimentações bancárias, pesquisas educacionais, transações comerciais e até jogos interativos, tem aumentado o número de usuários e conseqüentemente o tráfego de dados. Os provedores Web precisam estar preparados para atender esta demanda crescente de processamento e comunicação. Neste sentido, o uso de cluster de servidores Web em conjunto com o balanceamento de requisições tem sido uma estratégia importante pelo fato de distribuir os serviços entre vários processadores de forma balanceada. O presente trabalho descreve e discute questões arquiteturais e operacionais sobre o balanceamento de requisições, principalmente o dinâmico, abordando técnicas, soluções e trabalhos relacionados. Experimentos reais foram realizados sobre um cluster de servidores Apache provido com o módulo de balanceamento de carga mod_proxy_balancer, usando sobrecargas sintéticas intensivas e monitoradas em diferentes configurações. A partir da análise e avaliação do comportamento e dos resultados destes experimentos, um novo método de distribuição de requisições para o módulo mod_proxy_balancer, chamado de byquery, foi proposto, experimentado e avaliado. O método byquery tira proveito das situações em que a sobrecarga de rede não é detectada pelo mod_proxy_balancer pelo fato de ser gerada por agentes externos ao serviço Web. Nestas situações de sobrecarga, os resultados aqui apresentados mostram a eficiência do novo método, quando comparado com os métodos já existentes, podendo reduzir o tempo de atendimento em até 65% no melhor caso, sendo, portanto, recomendado para clusters não dedicados exclusivamente ao serviço Web.

8 ABSTRACT Several services and informations, such as bank transactions, educational researches, commercial transactions and even interactive games are more and more available in Internet, and it has been increasing the number of users and consequently the data traffic. Web providers needs to be prepared to take care of this growing demand of processing and communication. In this direction, the use of cluster of Web servers together with the requests balancing has been an important strategy by the fact of distributing the services among several processors in a balanced way. The present work describes and argues architectural and operational questions on the request balancing, mainly dynamic one, approaching techniques, solutions and related works. Real experiments were accomplished on a cluster of Apache servers provided with the load balance module mod_proxy_balancer, using intensive synthetic overloads and monitored in different configurations. Starting from the analysis and evaluation of the behavior and the results of these experiments, a new method of request distribution to mod_proxy_balancer module, called byquery was proposed, experienced and evaluated. The byquery method takes advantage in situations where network overload is not detected by mod_proxy_balancer by the fact of being generated by external agents to the Web service. In these overload situations, the results here presented show the efficiency of the new method, when compared with the existing methods, being able to reduce the time of attendance up to 65% in the best case, being, therefore, recommended for clusters not dedicated exclusively to the Web service.

9 vii Lista de Definições, Abreviaturas e Siglas Internet Rede mundial de computadores que permite a transferência de dados. É baseada nos protocolos TCP/IP. Domínio Nome que permite identificar uma instituição na Internet. O nome de um domínio consiste de uma seqüência de palavras separadas por pontos (.). Por exemplo, uem.br. TCP/IP - Transport Control Protocol/Internet Program é um conjunto de protocolos para a comunicação de dados, utilizado na Internet e em muitas redes locais. Foi desenvolvido pelo Departamento de Defesa dos Estados Unidos para a comunicação de computadores de sua Rede ARPANET (Advanced Research Products Agency Network). IP - Internet Protocol é um protocolo da camada de rede da família de protocolos TCP/IP, sendo responsável pelo roteamento que permite que duas redes se comuniquem. TCP - Transmission Control Protocol é um protocolo da camada de transporte da família TCP/IP, orientado à conexão, usado com aplicações para serviços como HTTP, FTP e SMTP. UDP - User Datagram Protocol é um protocolo da camada de transporte da família TCP/IP, não orientado a conexão, usado por aplicações como serviço de nomes (DNS). DNS - Domain Name System (DNS) é um serviço/protocolo da família TCP/IP responsável pela conversão de nomes Internet em seus endereços IPs correspondentes. HTTP - Hyper Text Transfer Protocol protocolo que gerencia os acessos às páginas de um site, cujas solicitações são atendidas/executadas por um servidor Web. Browser ou navegador, é um cliente para obter a informação em um servidor Web, sendo responsável por localizar e exibir uma página html no computador requisitante. HTML - Hyper Text Markup Language - linguagem utilizada para a elaboração de páginas eletrônicas. Os browsers interpretam o código desta linguagem para assim exibir as páginas.

10 URL - Uniform Resource Locator - Informa o endereço de um recurso na Internet. Possui o seguinte formato: protocolo://máquina/caminho/recurso viii Porta Termo utilizado para distinguir entre conexões simultâneas em um único host destino. Cada protocolo da camada de aplicação do TCP/IP utiliza uma porta padrão. Servidor Proxy - servidor que recebe as requisições dos clientes e executa os pedidos de conexões a outros servidores (por exemplo: arquivos ou Web). WWW - World Wide Web, ou Web, é definição para a rede de computadores na Internet que disponibiliza informações na forma de hipertexto. Hypertexto - é um documento que apresenta informações nas quais textos, imagens, sons e ações ficam interligados através de associações não lineares que permitem ao usuário percorrer assuntos inter-relacionados de maneira independente da ordem em que são apresentados, através de links. Link é uma referência a outros documentos dentro de um hypertexto. Proxy é um serviço que permite que clientes acessem serviços a partir dele. Também pode fazer um cache de informações que trafegam entre um cliente e um servidor. Nó - Qualquer dispositivo, inclusive servidores e estações de trabalho, ligado a uma rede. Servidor - Programa responsável pelo atendimento a determinado serviço solicitado por um cliente. Cliente - É um processo ou programa que solicita serviços a um servidor. SSI - Single System Image - Imagem Única do Sistema. Conjunto de técnicas que permite ocultar a complexidade sistema distribuído, fazendo que um conjunto de máquinas se comporte como uma única máquina para o cliente.

11 ix HPPCA - High Performance and Parallel Computer Architecture Group Grupo de pesquisa em Computação de Alto Desempenho, abrangendo Simulação Computacional, Avaliação de Desempenho, Arquiteturas Superescalares, Redes de Interconexão e Computação Paralela, que atua junto ao DIN Departamento de Informática da UEM Universidade Estadual de Maringá. Throughput - quantidade de dados que é possível transferir no barramento de dados ou através de um dispositivo por segundo;

12 x LISTA DE FIGURAS Figura 1: Funcionamento de uma Requisição Web Figura 2: Servidor Web/Aplicação Servidor Banco de Dados Figura 3: Sistema Web Distribuído Figura 4: Arquitetura de um Cluster Web Figura 5: Modelo OSI Versus Arquitetura TCP/IP Figura 6: Redirecionamento na Camada 4/ Figura 7: Redirecionamento na Camada 4/3. Reescrita Única de Pacotes Figura 8: Redirecionamento na Camada 4/3. Reescrita Dupla de Pacotes Figura 9: Redirecionamento na Camada Figura 10: Página de gerenciamento do Mod_proxy_balancer Figura 11: Análise de Requisição com o Mod_proxy_balancer Figura 12: Diagrama de ligação dos equipamentos no ambiente de teste no cluster HPPCA. 53 Figura 13: Tempo de resposta utilizando páginas estáticas pelo método byrequests Figura 14: Tempo de resposta para páginas dinâmicas pelo método byrequests Figura 15: Tempo de resposta ideal para o conjunto de teste 4.3 e Figura 16: Comparação tempos método bytraffic e byallproxytraffic Figura 17: Tempo de resposta utilizando o método byquery Figura 18: Tempo de resposta utilizando o método byquery em intervalos de tempo fixo Figura 19: Tempo de resposta com método byquery. Intervalo x ociosidade da CPU Figura 20: Tempos pelos métodos byrequests, bytraffic e byquery Figura 21: Tempos pelos métodos byrequests, bytraffic e byquery nos testes 4.1 e Figura 22: Tempos pelos métodos byrequests, bytraffic e byquery nos testes 4.2 e Figura 23: Tempos pelos métodos byrequests, bytraffic e byquery nos testes 4.3 e

13 xi LISTA DE TABELAS Tabela 1: Direcionamentos das requisições Tabela 2: Tempos de Execução do Teste 4 com Sobrecarga Tabela 3: Tempos de Execução do Teste 8 com Sobrecarga Tabela 4: Teste 4 - Nós que executam download e número de requisições atendidas Tabela 5: Teste 8 - Nós que executam download e número de requisições atendidas Tabela 6: Tempos com download de arquivos específicos nos slaves 1 a Tabela 7: Tempos com download de arquivos específicos nos slaves 5 a Tabela 8: Tempos de Execução do Teste 4 com Sobrecarga Slave Slave Tabela 9: Tempos de Execução do Teste 8 com Sobrecarga Slave Slave Tabela 10: Nós que executam download e número de requisições atendidas byquery... 76

14 xii LISTA DE QUADROS Quadro 1: Configuração Mod_proxy no httpd.conf Quadro 2: Exemplo de configuração Mod_proxy_balancer no httpd.conf Quadro 3: Algoritmo simplificado do método byrequests Quadro 4: Exemplo de escalonamento byrequests com lbfactor igual a Quadro 5. Exemplo de escalonamento byrequests com lbfactor igua1 a Quadro 6: Exemplo do processo de escalonamento byrequests Quadro 7: Exemplo do processo de escalonamento byrequests com a exclusão de um nó Quadro 8: Exemplo do processo de escalonamento bytraffic Quadro 9: Algoritmo simplificado do método bytraffic Quadro 10: Configuração Mod_proxy_balancer no httpd.conf Quadro 11. Configuração do apache para um direcionamento específico Quadro 12: Algoritmo simplificado do método byallproxytraffic Quadro 13. Exemplo de utilização do comando mpstat Quadro 14: Algoritmo simplificado de funcionamento o método byquery Quadro 15: Exemplo do processo de escalonamento byquery Quadro 16: Escalonamento byquery com S2 atendendo o dobro de requisições Quadro 17: Escalonamento byquery - S2 indisponível ou com 100% de carga de CPU Quadro 18: Escalonamento byquery - S2 com 50% de carga de CPU

15 xiii SUMÁRIO RESUMO ABSTRACT 1. INTRODUÇÃO SERVIDOR WEB Breve Descrição sobre o Apache CLUSTERS E O SERVIÇO WEB Cluster de Servidores Web Sistema Web Distribuído Cluster Web Arquitetura de um Cluster Web Redirecionamento na Camada 4/ Redirecionamento na Camada 4/ Redirecionamento na Camada Técnicas para Seleção de Servidores e Distribuição de Requisições Soluções de Balanceamento Implementadas em Hardware e Software REVISÃO BIBLIOGRÁFICA Trabalhos Relacionados à Arquitetura de Clusters de Servidores Web Trabalhos Relacionados às Técnicas para Balanceamento de Requisições WEB e Aumento de Disponibilidade INVESTIGAÇÃO DO BALANCEAMENTO DE REQUISIÇÕES NO APACHE E A PROPOSTA DE UM NOVO MÉTODO Visão geral... 43

16 xiv 5.2. Funcionamento do Apache com o Mod_Proxy e o Mod_Proxy_Balancer O método Byrequests O método Bytraffic Monitoramento e Diagrama de Funcionamento Experimentos Preliminares Ferramentas Utilizadas Ambiente de Teste Configuração do Mod_proxy_balancer para Testes com Páginas Estáticas e Dinamicamente Geradas Testes com Tráfego de Rede - Sobrecarga Slave-Master Detectada pelo mod_proxy_balancer Testes com Tráfego de Rede - Sobrecarga Slave-Master não Detectada pelo Mod_proxy_balancer Testes com Tráfego de Rede - Sobrecarga Slave-Slave não Detectada pelo Mod_proxy_balancer Sobrecarga Slave-Slave não Detectada pelo Mod_proxy_balancer - Exclusão do nó com Sobrecarga Novos Métodos para o Mod_proxy_balancer O Método ByAllProxyTraffic O Método Byquery Comparação do Método Byquery com os Métodos já existentes CONCLUSÕES E TRABALHOS FUTUROS REFERÊNCIAS BIBLIOGRÁFICAS APÊNDICE... 83

17 15 1. INTRODUÇÃO A popularização da Internet e o conseqüente aumento no número de usuários fizeram com que a Web (World Wide Web) se tornasse a interface padrão para acesso a aplicações e serviços remotos de sistemas de informação. Atualmente, a disponibilização de aplicações e serviços Web permite movimentações bancárias, declaração de imposto de renda, solicitação de certidões e compras, entre outras atividades. Isto produz um tráfego intenso de dados na Internet, exigindo que os grandes provedores de conteúdo e serviços implementem arquitetura de servidores Web escaláveis, que sejam capazes de lidar com a demanda atual bem como cresçam de acordo com a futura necessidade de desempenho. Segundo Cardellini et al (2002), a velocidade das redes de computadores cresce de maneira mais rápida que a capacidade de processamento dos servidores, tornando o lado do servidor Web um possível gargalo para todo o sistema. Contribui para isto, a substituição dos mecanismos básicos de busca de conteúdo estático por complexos mecanismos para disponibilização de conteúdo dinâmico, utilizados principalmente por aplicações e serviços Web que requerem maiores recursos computacionais e maior segurança na comunicação de dados. Um site popular pode receber milhares de requisições de acesso por segundo, exigindo alta disponibilidade e capacidade de atendimento às requisições. Tais características podem ser obtidas com o balanceamento de requisições entre vários servidores de um cluster (Aversa, L. and Bestavros, 2000), (Iyengar et al, 2000), (Cardellini et al, 2002), (Schroeder et all, 200). Cluster de servidores Web é a solução mais popular para a construção de uma plataforma que ofereça escalabilidade, provendo relativa economia de hardware e software em relação aos grandes servidores de última geração. O estado da arte de soluções comerciais para cluster de servidores Web utiliza um nó redirecionador (despachante, Web switch, frontend) especializado que é o único ponto de contato com os clientes Web e distribui as

18 16 requisições para os demais nós (back-end) no cluster. Estes nós são servidores Web comuns, sendo construídos utilizando hardwares não especializados e executando sistema operacional do tipo Unix-like ou Windows. O nó redirecionador é normalmente um dispositivo que integra hardware e software proprietário desenvolvido pela empresa que fabrica o produto. Os redirecionadores em um cluster de servidores Web podem ser normalmente divididos naqueles que operam na camada 4 e na camada 7. A camada 4 se refere à mesma camada do modelo de referência OSI e ao TCP em redes TCP/IP, indicando que o redirecionador pode somente usar a informação TCP para a distribuição das requisições. Na camada 7, o redirecionador utiliza as informações da camada de aplicação, como por exemplo, o HTTP, caso de servidores Web, para a distribuição das requisições. Uma alternativa gratuita em relação aos redirecionadores comerciais é a utilização do Apache em conjunto com o módulo mod_proxy_balancer. Este módulo permite ao Apache operar como redirecionador na camada 7, viabilizando a construção de cluster de servidores Web de baixo custo. Apresenta dois métodos de balanceamento, byrequests e bytraffic, que consideram o número de requisições e número de bytes, respectivamente, recebidos por cada nó do cluster para a tomada de decisão sobre a distribuição das requisições. Neste trabalho foram analisados os dois métodos de balanceamento do mod_proxy_balancer, efetuados testes e avaliados os resultados. Com base nestes resultados dois novos métodos de balanceamento foram propostos, byallproxytraffic e byquery, sendo o segundo o mais importante e que justifica o presente trabalho. O primeiro é uma modificação do método bytraffic, que utiliza o tráfego contabilizado pelo módulo mod_proxy para tomada de decisão de balanceamento. O segundo considera a utilização das CPUs dos nós do cluster como parâmetros para a tomada de decisão do redirecionamento das requisições. Foram efetuados testes com os dois métodos e comparados os resultados. O método byallproxytraffic

19 17 apresentou melhoria apenas em uma situação. Já o método byquery mostrou a viabilidade de sua implementação. A presente dissertação está organizada da seguinte maneira: o capítulo 2 descreve a organização e o funcionamento de um servidor Web. O capítulo 3 apresenta a arquitetura e funcionamento de um cluster de servidores Web, descrevendo algumas técnicas de balanceamento de requisições. O capítulo 4 apresenta alguns trabalhos relacionados a arquitetura de clusters de servidores Web e algoritmos de balanceamento de requisições. O capítulo 5 analisa o método de balanceamento de requisições do mod_proxy_balancer em experimentos preliminares com os métodos byrequests e principalmente com o bytraffic. Depois de identificadas as possíveis melhorias é prosposto um novo método de balanceamento byquery para o módulo mod_proxy_balancer. Os resultados obtidos pelo novo método são analisados e comparados com os métodos existentes, comprovando sua viabilidade principalmente em clusters não dedicados exclusivamente ao serviço Web. O capítulo 6 apresenta as conclusões finais e os trabalhos futuros.

20 18 2. SERVIDOR WEB Um servidor Web é um aplicativo responsável por fornecer ao computador do cliente os dados solicitados, em tempo real, disponibilizando páginas, fotos ou qualquer outro tipo de objeto ao navegador (browser) do cliente, que interpreta estes dados. Também pode operar recebendo dados do cliente, processando e enviando o resultado para que o cliente possa tomar a ação desejada, como em sistemas de comércio eletrônico e consultas via Web. Um sistema com servidor Web consiste da interação de um cliente, operado por um usuário, com um servidor Web. Na Figura 1, quando o usuário solicita um acesso a um site Web na Internet, o cliente Web solicita o endereço de IP deste site para o servidor DNS local da rede onde está vinculado. O servidor DNS verifica se este site se encontra em cache e em caso afirmativo retorna a informação para o cliente. Caso contrário solicita esta informação aos servidores da hierarquia DNS até chegar ao servidor DNS autoritário do domínio solicitado, que confirma ou não a existência de tal site em sua base de dados. Uma vez confirmada a existência do site e recebida a informação do endereço IP do mesmo, o cliente efetua requisições diretamente ao servidor Web do site desejado. Assim que recebe a requisição, o servidor Web analisa-a e de acordo com restrições de segurança e a existência da informação, transmite os resultados para o navegador (browser), que por sua vez os apresenta para o usuário final. Um site Web na Internet necessita de vários outros serviços, instalados em um ou mais servidores, para que possa funcionar de maneira adequada. Além do protocolo padrão HTTP, provido pelo servidor Web, os principais protocolos que compõem um sistema de serviços Web, entre outros são: HTTPS: http seguro; DNS: para conversão de nomes de um domínio para endereço IP e vice-versa; SMTP, POP e IMAP: para serviços de correio eletrônico ( )

21 19 FTP: para transferência de arquivos; Servidor DNS Local v Cliente Requisição HTTP Internet Servidor DNS Autoritário para o domínio Servidor Web Figura 1: Funcionamento de uma Requisição Web. Na arquitetura mostrada na Figura 1, consideramos que o servidor Web só armazena páginas estáticas, sem prover qualquer outro serviço. As páginas estáticas são na realidade arquivos em formato html armazenados no servidor Web e distribuídos de acordo com as requisições dos clientes. Dizemos estáticas, pois o servidor simplesmente disponibiliza estes arquivos sem modificar seu conteúdo original. Nesta relação só existe a figura do cliente e do servidor, como mostrado anteriormente na Figura 1. Porém, a maioria dos grandes sites Web possui em sua estrutura, servidores capazes de gerar dinamicamente as páginas html a serem exibidas. São as chamadas páginas dinâmicas, que são montadas no lado do servidor, através de aplicações que obtêm conteúdo e informações a partir de um servidor de banco de dados. Nesta arquitetura, os servidores Web que trabalham com páginas dinâmicas também são chamados de servidores de aplicações Web, na qual existe uma relação cliente, servidor Web/Aplicação e servidor de banco de dados, como se pode verificar na Figura 2.

22 20 Figura 2: Servidor Web/Aplicação Servidor Banco de Dados. As páginas dinâmicas facilitam a manutenção do site Web, pois permitem atualizações mais rápidas e em certos casos, um histórico de alterações. Suponha uma página html que informe as datas para inscrição em um determinado evento. A simples prorrogação do período de inscrição envolveria a alteração da página html por um projetista Web. No entanto, se tal informação estivesse armazenada em um banco de dados, qualquer pessoa que tenha acesso ao sistema de inscrição poderia alterar esta informação, que seria automaticamente refletida na página html gerada dinamicamente. Atualmente, a maioria dos provedores de conteúdo trabalha com páginas dinâmicas que podem ser geradas do lado cliente, como em applets java ou em javascripts, ou geradas do lado servidor, como em linguagens Asp, Php e Java (servlets) Breve Descrição sobre o Apache O Apache é atualmente o servidor Web mais utilizado no mundo, segundo Netcraft (Netcraft, 2006). É um software livre e de código aberto, possuindo versões para sistemas operacionais como Windows, Novell, Linux e diversos outros do padrão POSIX (Unix, FreeBSD etc). Foi criado em 1995 por Rob McCool, então funcionário do NCSA (National Center for Supercomputing Applications), Universidade de Illinois. É extremamente

23 21 configurável, robusto e de alto desempenho, sendo continuamente atualizado por uma equipe de voluntários (conhecida como Apache Group) que visam incluir neste servidor Web as inovações pesquisadas no meio acadêmico e pelo próprio grupo, sempre disponibilizando o código fonte gratuitamente via Internet. Este servidor é compatível com o protocolo HTTP versão 1.1. e suas funcionalidades são mantidas através de uma estrutura de módulos, permitindo inclusive que o usuário escreva seus próprios módulos utilizando a API do software (Mockus, 2000). Projetado para prover páginas estáticas, que são arquivos html prontos, quando requisitado por um browser, o Apache pode ter sua funcionalidade ampliada trabalhando em conjunto com uma linguagem que permita a geração dinâmica de páginas como o PHP - PHP: Hypertext Preprocessor - (PHP, 2006), também software livre, é uma linguagem de programação interpretada, muito parecida com a linguagem C em seus tipos de dados e sintaxe. Permite que tags html sejam embutidas em seu código. No entanto, trata-se de uma linguagem modularizada e orientada a objetos. Possui suporte para trabalhar com diversos bancos de dados, como MySQL, PostgreSQL, Oracle e MS SQL Server. Possui versões para sistemas operacionais: Linux, Windows, Mac OS, Novell Netware, Solaris dentre outros. Sites Web como o Wikipédia utilizam o PHP, em conjunto com bases de dados MySQL. O Apache também possui módulos que lhe permitem trabalhar de maneira integrada com servidores de aplicações Web em Java. Devido ao grande crescimento da linguagem Java, muitos desenvolvedores têm optado por criar aplicações Web nesta linguagem, incrementando o uso de servidores de aplicações como Tomcat, Jetty entre outros.

24 22 3. CLUSTERS E O SERVIÇO WEB O termo cluster é largamente utilizado para definir um conjunto de computadores combinados através de software e equipamentos de rede para formar uma imagem única do sistema (SSI Single System Image) (Baker, 2000). O primeiro cluster de computadores pessoais (PC) foi projetado por Donald Becker e Thomas Sterling para a NASA. Este cluster era composto de 16 computadores Intel 486-DX4 conectados por uma rede ethernet. Este tipo de cluster, composto de computadores comuns e de baixo custo, é chamado de Beowulf (Beowulf, 2007) Os clusters podem ser utilizados para diversos propósitos, cada um possuindo características distintas: Os tipos mais comuns são (Hochstetler & Beringer, 2003): Computação de Alto Desempenho (HPC High Performance Computing): são implementados para prover maior poder de computação para solução de um problema através da distribuição de tarefas entre os diferentes nós do cluster. Comumente utilizados por aplicações científicas, de simulação ou de tratamento de imagens. Alta Disponibilidade (HA High Availability): são construídos para fornecer um ambiente seguro contra falhas, fornecendo uma maior confiabilidade e disponibilidade para serviços através da redundância de componentes (hardware e software). Se um componente falhar, outro nó irá executar sua tarefa. Tais clusters são muito utilizados para executar missões críticas. Hochstetler & Beringer (2003) citam um terceiro tipo de cluster, que é o de balanceamento de carga (HS Horizontal Scaling). Este cluster é projetado para distribuir requisições de serviços para todos os nós do cluster. Também provêem alta disponibilidade através da redundância de componente e alto desempenho de computação pela distribuição de tarefas para os membros do cluster. Um exemplo típico é o cluster de servidores Web. Alguns

25 23 autores, como Baker (2000), citam o balanceamento de carga como uma característica dos clusters de alto desempenho e alta disponibilidade. Segundo Buyya (Buyya, 1999), os clusters também podem ser classificados de acordo com a localização física dos nós e se os recursos computacionais destes estão dedicados ou não exclusivamente para ao processamento do cluster. Como exemplos podemos citar: Pilha de PCs (PoPCs - Pile of PCs): Nesta estrutura, os nós, chamados de escravos são dedicados exclusivamente ao processamento do cluster e conectados em rede são gerenciados por um nó mestre. Os nós escravos não possuem monitor, teclado ou mouse, sendo normalmente empilhados. Cluster de workstations: Nesta configuração, os nós são computadores completos (workstation) utilizados pelos usuários para suas tarefas diárias. Estes nós são utilizados somente em momentos em que estão ociosos, através de um agendamento de tarefas do nó mestre. O nó mestre, diferentemente dos demais, se encontra em local físico diferente e protegido Cluster de Servidores Web Um cluster de servidores Web é classificado como de alta disponibilidade e balanceamento de carga, sendo composto por nós dedicados ou não exclusivamente dedicados ao serviço Web. Em um cluster de servidores Web é possível aumentar a capacidade de atendimento de requisições de acordo com o aumento na quantidade de acessos dos clientes através da inclusão de mais servidores respondendo pelo mesmo serviço. Diversos estudos foram realizados sobre o assunto como por Cardelline et al (1999) (2002) e Aversa & Bestavros (2000). Destes estudos, pode-se verificar que para sistemas com mais de um servidor Web, existem duas classes principais e bem definidas de acordo com a entidade que distribui as requisições: o sistema Web distribuído e o cluster Web.

26 Sistema Web Distribuído O sistema Web distribuído é o mais antigo dos modelos de balanceamento de requisições, consistindo de nós localmente distribuídos onde cada nó possui um endereço IP publicamente visível aos clientes. O roteamento de requisições para um nó servidor é feito da forma convencional (por um servidor DNS qualquer), durante a fase de resolução de endereço IP. A Figura 3 apresenta esta arquitetura. Figura 3: Sistema Web Distribuído. Nesta figura, observamos que o servidor DNS autoritário do domínio faz parte do sistema, pois é responsável pelo roteamento de requisições, apresentando uma transparência para os clientes na obtenção de dados. O servidor DNS autoritário do domínio do sistema Web distribuído traduz um nome simbólico do site (URL) para o endereço IP de um dos nós do sistema a cada consulta que lhe é feita. Este processo permite ao servidor DNS, implementar várias políticas para selecionar o servidor apropriado e propagar o endereço IP deste servidor para os clientes.

27 25 O servidor DNS, entretanto, tem um controle limitado sobre o direcionamento das requisições, pois existem muitos servidores de nomes intermediários que podem fazer cache do mapeamento nome-endereço IP para reduzir tráfego de rede, assim como clientes também podem fazer cache local dessas informações. Para manter um controle do tempo de validade das informações em cache, o parâmetro TTL (time-to-live) é usado. Quando o TTL expira, os servidores DNS intermediários devem buscar (atualizar) as informações no servidor DNS autoritário para o domínio, da mesma maneira que os clientes devem buscar estas informações nos servidores DNS a que eles estão diretamente vinculados (Iyengar, 2000). Esta arquitetura com servidor DNS se diferencia pelo algoritmo de escalonamento utilizado para balancear as requisições com os vários nós do sistema. Com o algoritmo de TTL constante, o DNS seleciona os servidores com base em informações do sistema e atribui o mesmo valor de TTL para todas as requisições de mapeamento de endereços. Existem algoritmos baseados no estado dos servidores Web e no estado dos clientes. Mas o mais famoso, por ser de fácil implementação, é o DNS Round Robin (RR-DNS), no qual não se utiliza qualquer informação do sistema Web distribuído. Esta abordagem não é balanceada, pois não é verificada qualquer informação sobre carga dos servidores do cluster, podendo provocar sobrecarga em alguns nós Cluster Web Este modelo refere-se a uma coleção de máquinas servidoras que se apresenta como uma imagem única do sistema (SSI). Um nó do cluster é configurado como redirecionador (Web switch), sendo o responsável pela tarefa de distribuir as requisições dos clientes aos demais servidores do cluster. Somente o seu endereço IP é visível publicamente aos clientes. Os demais nós têm seus endereços mascarados pelo redirecionador. Cada nó servidor do cluster normalmente possui seu próprio disco e sistema operacional. O controle do

28 26 endereçamento das requisições dos clientes pode ser implementado em hardware ou em software. Na Figura 4, o servidor DNS autoritário para o domínio não faz parte do cluster Web, pois não possui função no sistema de direcionamento de requisições dos clientes. Figura 4: Arquitetura de um Cluster Web Arquitetura de um Cluster Web Em um cluster Web, cada nó deve possuir um endereço privado (interno) de forma que possa ser identificado de maneira única pelo redirecionador e possa receber as requisições de clientes. A Figura 5 mostra as camadas do modelo OSI e as correspondentes no TCP/IP. Camada OSI TCP/IP 7 Aplicação 6 Apresentação Aplicação 5 Sessão 4 Transporte TCP 3 Rede IP 2 Enlace Interface de 1 Física Rede Figura 5: Modelo OSI Versus Arquitetura TCP/IP.

29 27 A identificação de um nó pode ocorrer em diferentes camadas do modelo OSI, mas principalmente em nível de camada de: transporte/enlace - popularmente denominadas de camadas 4/2; transporte/rede chamadas de camadas 4/3; aplicação - camada Redirecionamento na Camada 4/2 Nesta abordagem, existe um servidor de despacho na rede que seleciona um servidor do cluster usando seu endereço físico (MAC) sem necessidade de modificação do cabeçalho do pacote IP, tanto do lado cliente como do servidor Web. Esta solução é transparente para ambos os lados, uma vez que não necessita de reescrita de pacotes. O servidor de despacho pode definir políticas de despacho dinamicamente de acordo com a carga e a disponibilidade do servidor. No entanto, existe uma maior complexidade para sua implementação. O encaminhamento de pacotes (Cardellini, 1999) utiliza esta técnica de balanceamento. Servidor MAC: B IP:X Web Switch MAC: A IP:X Servidor MAC: C IP:X Figura 6: Redirecionamento na Camada 4/ Redirecionamento na Camada 4/3 Um Cluster Web com o redirecionador operando na camada 4/3 pode utilizar técnicas como reescrita de pacotes única ou dupla (Cardellini, 1999):

30 28 Reescrita Única de Pacotes: Na reescrita única de pacotes, existe um único equipamento (redirecionador) visível na Internet que recebe a solicitação e encaminha para um dos servidores do cluster através de um algoritmo roundrobin. Ao definir o servidor que irá atender as requisições do cliente, o redirecionador passa a reescrever o destino dos pacotes IP com o endereço IP do servidor escolhido, e este passa a responder diretamente ao cliente. É importante observar que a comunicação cliente nó servidor Web escolhido sempre passa pelo redirecionador. Já a comunicação servidor Web cliente é direta, sem passar pelo redirecionador. Servidor MAC: B IP: Y Web Switch MAC: A IP: X Servidor MAC: C IP: Z Figura 7: Redirecionamento na Camada 4/3. Reescrita Única de Pacotes. Reescrita Dupla de Pacotes: Na reescrita dupla de pacotes, também existe um único equipamento (redirecionador) visível na Internet que recebe a solicitação e encaminha para um dos servidores do cluster através de um algoritmo roundrobin. Definido o servidor que irá atender as requisições do cliente, o redirecionador passa a reescrever o destino dos pacotes IP com o endereço IP do servidor escolhido, da mesma forma que reescreve a origem dos pacotes com o endereço do cliente. A comunicação cliente nó servidor Web e nó servidor Web cliente é feita pelo redirecionador.

31 29 Figura 8: Redirecionamento na Camada 4/3. Reescrita Dupla de Pacotes. O Linuxvirtualserver (Zhang, 2000) é um exemplo de redirecionador que trabalha na camada 4. Consiste em implementações que quando aplicadas ao kernel do Linux adicionam esta funcionalidade a este sistema operacional. O KTCPVS (Kernel TCP Virtual Server) (Linux Virtual Server Project) é um projeto baseado no Linuxvirtualserver que implementa funcionalidades para operar também na camada Redirecionamento na Camada 7 Um redirecionador operando na camada 7 tem controle do conteúdo da requisição HTTP, podendo implementar algoritmos de balanceamento mais eficazes e prover requisitos de acordo com os diferentes tipos de conteúdo. No entanto, o redirecionamento nesta camada é mais lento se comparado ao redirecionamento na camada 4, pois existe um maior gasto de tempo de processamento para análise das requisições, mas não significando que seja menos eficiente. Entre as possíveis configurações para esta técnica, temos o gateway TCP e a junção TCP: Gateway TCP: Após o redirecionador (proxy) definir o nó que irá atender a requisição, uma conexão é estabelecida entre eles, e o redirecionador passará a agir como uma porta de ligação entre o servidor e o cliente.

32 30 Junção TCP (TCP Splice ) (Marwah, 2006): Existe uma conexão entre o cliente e o redirecionador (proxy), e uma conexão diferente entre o redirecionador e o servidor. Os pacotes são encaminhados a nível de camada de rede. Figura 9: Redirecionamento na Camada7. O redirecionamento na camada 7 também é chamado redirecionamento em nível de aplicação, podendo ser implementado em software operando de forma autônoma ou no próprio servidor Web/Aplicação, como no caso do Apache com mod_proxy_balancer Técnicas para Seleção de Servidores e Distribuição de Requisições As técnicas que um redirecionador pode utilizar para selecionar o servidor que irá receber uma determinada requisição podem ser classificadas (Andreolini, 2002) em estáticas (State-blind), baseadas em informações do servidor (server state-aware), do cliente (client state-aware) e do cliente e servidor (client and server state-aware). O redirecionamento estático gera um custo mínimo de processamento, sendo mais rápido, pois não verifica o estado do servidor que irá receber a requisição. Classificam-se nesta categoria os seguintes métodos:

33 Random: Seleção de servidores que receberão as requisições é feita randomicamente; 31 Round-Robin: Utiliza uma fila circular e um ponteiro para o último servidor selecionado para tomar a decisão de despacho; Weighted Round-Robin: Variação do Round-Robin que utiliza um peso para cada servidor, baseado em sua capacidade de atendimento. Já nos redirecionamentos baseados em informações do servidor, são consideradas informações como utilização de cpu, memória, I/O de rede. Encontram-se nesta categoria: Least Load (LL): Método que seleciona o servidor com menor índice de carga, de acordo com os seguintes fatores: LL-CONN (Connection): Menor número de conexões ativas; LL-CPU: Menor utilização da CPU; LL-DISK: Menor utilização de disco; Dinamic Weighted Round-Robin (WRR):Variação da versão estática, em que considera a capacidade do servidor como um peso, calculado dinamicamente, de acordo com seu índice de carga. No redirecionamento baseado em informações do cliente, primeiramente é avaliada a URL solicitada pelo cliente, definindo assim servidores especializados para atendimento a determinadas requisições, como servidores de cache, multimídia, conteúdo dinâmico, serviços especializados entre outros. São exemplos de métodos que utilizam esta informação: PART - Service Partitioning: Requisições são estaticamente redirecionadas de acordo com os arquivos que manipulam e os serviços que disponibilizam.

34 32 CAP - Client Aware Policy: O Web switch estima o impacto de uma requisição no sistema Web, distribuindo as requisições entre os servidores através da manipulação de uma fila circular, de modo que nenhum componente do sistema seja sobrecarregado. A definição do servidor que irá atender a solicitação é feita de maneira estática de acordo com o serviço requisitado pelo cliente. A combinação de informações do servidor e do cliente é utilizada pela última técnica de seleção de servidores para distribuição de requisições. Nesta categoria, temos: Locality-aware Request Distribution (LARD): analisa o conteúdo da requisição visando distribuí-la de acordo com a localidade e o balanceamento. O princípio é de direcionar as requisições de um objeto Web sempre para um mesmo servidor, aproveitando características de cache de disco. CAP-ALARM: Utiliza um mecanismo de comunicação assíncrona para trocar mensagens de alarme entre os servidores e o redirecionador. Os parâmetros utilizados podem ser carga de CPU, disco, rede etc. Quando ultrapassam um determinado valor, o alarme é disparado Soluções de Balanceamento Implementadas em Hardware e Software Atualmente, a necessidade de um balanceamento de requisições eficiente em sistemas com muitos servidores Web cresce com o aumento no número de aplicações para Internet. Acompanhando esta tendência, muitas empresas e organizações estão concentradas em construir produtos comerciais, desenvolver protótipos para sistemas de servidores Web. Instituições educacionais e indústrias buscam soluções inovadoras e avançadas para esta área. Produtos comerciais implementam soluções em software e hardware proprietário, utilizando algoritmos simples para roteamento e mais fáceis de implementar. Protótipos em pesquisa tendem a explorar áreas novas e prover soluções engenhosas.

35 As soluções em hardware proprietário normalmente são mais eficientes, pois são especialmente desenvolvidas para o balanceamento de carga. Como exemplos podemos citar: 33 CSS (Cisco Systems, 2007): Fabricado pela Cisco, esta série de equipamentos possui algoritmos de balanceamento tradicionais e tendo como destaque o ACA (ArrowPoint Content Aware) que utiliza o tempo de resposta do nós para distribuição de requisições. Segundo o fabricante, opera nas camadas 3 a 5 (parcialmente na camada 7). ServerIron (Foundry Network, 2007): Produzido pela Foundry Network, destacase pela facilidade de configuração e aplicativos de gerenciamento de tráfego de Internet. Segundo o fabricante, opera nas camadas 2 e 7. Big-IP (F5 Network, 2007): Da F5 Network. Combina o uso de hardware especializado com algum controle de funções implementadas em software para roteamento de requisições, para garantir a qualidade de serviços para o usuário final; Application Switches (Nortel Networks, 2007): Da Nortel Networks. Como principais características, possui funções de filtro, balanceamento e segurança de serviços implementados em software. Opera nas camadas 4 e 7. soluções como: Entre as soluções para técnicas de roteamento implementadas em software, temos as LVS (LVS, 2007): Linux Virtual Server é uma ferramenta que é executada no sistema operacional Linux. Suporta serviços de rede com alta escalabilidade e disponibilidade. O balanceamento é feito em nível de protocolo IP (Camada 4). As três técnicas são usadas: tradução de endereço de rede (NAT), por tunelamento IP e via roteamento direto;

36 34 NLB (Microsoft Corporation, 2007): Microsoft's Network Load Balancing usa uma tecnologia de software que suporta uma arquitetura cluster Web. Tem como características principais a segurança de comunicação, roteamento e serviço de acesso remoto. Akamai (Akamai, 2007): Da Akamai Technologies. Provê uma infra-estrutura para comércio eletrônico que garante implementação rápida e fácil; Network Dispatcher (IBM, 2007): Desenvolvida pela IBM, esta solução é capaz de suportar grande escala de acessos a um site Web, através de extensões de kernel que efetuam o rápido repasse de pacotes IP. É fornecido como um componente do IBM WebSphere(R) Edge Server; Zeus's Load Balancer (Zeus Technology, 2007): Da Zeus Technology é uma aplicação que opera exclusivamente na camada 7, para roteamento de requisições para os servidores Web. Outras inúmeras soluções em software, não comerciais e de código aberto, que podemos citar são: Apache com Mod_proxy_balancer, Pen, Pound, Balance e Magicrouter.

37 35 4. REVISÃO BIBLIOGRÁFICA Neste capítulo são apresentados os conceitos relevantes de arquiteturas de clusters de servidores Web, técnicas para balanceamento de requisições WEB e aumento de disponibilidade, que são usados para fundamentação deste trabalho e apoiam o desenvolvimento das implementações Trabalhos Relacionados à Arquitetura de Clusters de Servidores Web Colajanni e Yu (Colajanni e Yu, 1997) propõem um algoritmo, chamado adaptive TTL, que define o valor TTL de uma informação de mapeamento DNS considerando a distribuição desigual de requisições dos clientes e a heterogeneidade dos servidores Web. O resultado de suas simulações mostrou que esta estratégia obteve resultados positivos no balanceamento de carga em servidores Web heterogêneos e geograficamente distribuídos. Cardellini (Cardellini, 1999) discute vários esquemas de balanceamento, classificando-os de acordo com o local onde o balanceamento é realizado. Na abordagem cliente, o balanceamento é feito pelo navegador, como ocorria com o browser Netscape no acesso ao site na qual era gerado randomicamente um número de 1 a i, na qual i é número de servidores que podem atender a requisição do usuário e direcionando-a para wwwi.netscape.com. A abordagem DNS classifica os algoritmos utilizados no balanceamento nos que utilizam informação sobre estado do servidor Web, e os que não utilizam esta informação, como o round robin. Uma outra categoria é a baseada em um redirecionador no qual uma máquina central atua como escalonador e efetua o balanceamento através de redirecionamento http (Berners-lee, 1996) ou reescrita de pacote. Apostolopoulos et al (Apostolopoulos, 2000) propuseram a implementação de um roteamento baseado em conteúdo em nível de hardware que proveria um desempenho melhor que as soluções baseadas em softwares. O sistema chamado de L5 utiliza informações da camada de aplicação em conjunto com os das camadas 2, 3 e 4 para rotear o tráfego de rede.

38 36 Aversa e Bestavros (Aversa e Bestavros, 2000) apresentaram a avaliação de um protótipo de um sistema com servidores Web escalável, utilizando a reescrita de pacotes distribuída (DPR-distributed Packet Rewriting), no qual todos os servidores Web do cluster podem receber e encaminhar as requisições para outros servidores Web que respondem diretamente ao cliente. Comprovaram os benefícios desta técnica em uma comparação com um sistema sem balanceamento e outro com balanceamento randômico. Tem como desvantagem não apresentar um único endereço ip para o sistema e nem desempenhar funções de gateway de rede. Existe um redirecionador que centraliza o recebimento de todas as conexões TCP dos clientes e as encaminha para os verdadeiros servidores Web que podem responder diretamente ao cliente (reescrita única de pacotes) ou responder para o redirecionador para que este encaminhe os pacotes para o cliente (reescrita dupla de pacotes). Também abordando o mapeamento DNS, Cherkasova (Cherkasova, 2000) propõe o FLEX, que visa balanceamento de carga e uso eficiente de memória em um cluster de máquinas hospedando vários sites Web. Os sites são alocados para cada máquina de acordo com suas características de tráfego, visando evitar a duplicação desnecessária de documentos. O direcionamento de tráfego é feito através de um servidor DNS, desde que cada site Web tenha um único nome de domínio. A partir da análise periódica do log de acesso de cada servidor Web é criada uma configuração DNS para os sites hospedados no cluster. Comparado ao método round robin, o FLEX apresentou um desempenho de 2 a 5 vezes superior. Teodoro et al (Teodoro, 2003) definem uma estratégia de balanceamento para cluster Web stateful, comum em sites de comércio eletrônico, na qual é estabelecida uma conexão entre produtos, clientes e sessões. Eles propõem uma estrutura para armazenamento de informações de sessões no caso da necessidade de migração de um cliente para um outro servidor Web. Na maioria das soluções, conexões de um determinado cliente são inicialmente definidas pelo Web switch (redirecionador) para um servidor. Outros pacotes do mesmo

39 37 cliente são roteados para o mesmo servidor por algum tempo (alguns minutos). Após isto o switch limpa a entrada para aquela sessão de sua tabela e computa uma nova associação se uma nova requisição chegar. A migração de sessão está sempre presente quando o Web switch decide rotear todo o tráfego de uma específica sessão para um servidor diferente. Isto é feito para conseguir um melhor balanceamento de carga, no entanto, a decisão de migração de sessão não considera a carga que representa cada sessão nem o custo de migração. A solução proposta visa um balanceamento baseado em sessão, utilizando um PID controller, que define a sessão que deverá ser migrada considerando a carga do servidor e a carga associada com cada sessão. Esta estratégia foi avaliada em uma aplicação e-store (loja virtual) e mostrou uma melhora de desempenho ( mais de 50% para tempo de resposta e 16% para throughput). Xu e Huang (2004) abordam a arquitetura de servidores Web distribuídos, focando principalmente o despachante baseado em DNS. Trazem uma breve introdução sobre cluster Web, na abordagem despachante IP e DNS, além de informações sobre os algoritmos de balanceamento: Round Robin: Concluem que fila circular tem desempenho ruim; Two-Tier-Round-Robin (RR2): classificam os gateways em duas classes: normal e hot. A idéia básica é reduzir a probabilidade que hot domains sejam designados para um mesmo servidor Web. Para isso, é feita uma estatística de requisições por domínio. Dado um período, são contados o número de requisições de endereços de cada domínio e a soma do número atual de conexões http de cada domínio no servidor Web. A razão entre a soma de requisições http sobre o número de requisições de endereço IP é chamada de hidden load weight. O algoritmo RR2 particiona os domínios locais em dois grupos baseados na verificação de que o hidden load weight do domínio local correspondente é menor que o valor limite.

40 38 Se for menor é um domínio normal, caso contrário é um domínio hot Trabalhos Relacionados às Técnicas para Balanceamento de Requisições WEB e Aumento de Disponibilidade Eager (Eager, 1985) descreve as políticas estáticas e adaptativas para transferência de carga de trabalho entre os vários nós de um sistema distribuído. A política estática utiliza-se somente da informação do comportamento padrão do sistema. As decisões de transferência de carga são independentes do estado atual do sistema. Assim, as políticas estáticas também podem ser classificadas como determinísticas (toda carga de trabalho é transferida de um nó para outro) ou probabilísticas (parte da carga de trabalho vai para um nó e a outra parte vai para um outro nó). As políticas estáticas têm a vantagem de serem simples de implementar, pois não necessitam manter e processar informações sobre o estado do sistema. Já as políticas adaptativas, ao contrário, são mais complexas, uma vez que trabalham com a informação atual do estado do sistema para tomada de decisão de transferência de carga de trabalho. No entanto, esta informação possibilita trazer grandes benefícios de desempenho. Visando avaliar as políticas adaptativas, o autor efetua um estudo sobre as estratégias de transferência de carga no qual a decisão é feita pelo nó que vai transferir (sender-initiated) e pelo nó que vai receber (receiver-initiated). Um terceiro método, chamado reservation é similar ao sender-initiated, no entanto, não há divisão de tarefa e somente novas tarefas são transferidas. O Distributed Cooperative Apache Web Server (DC-Apache) é uma proposta de Li e Moon (Li e Moon, 2001) para encontrar escalabilidade de desempenho para servidores Web. Esta solução se baseia na hipótese que a maioria de sites Web tem somente alguns pontos de entrada bem conhecidos que os usuários utilizam para iniciar a navegação. O sistema de DC- Apache manipula dinamicamente os hyperlinks dos documentos html a fim de distribuir pedidos do acesso de clientes entre os múltiplos servidores Web cooperados. Apresenta como características:

41 39 1. Possibilidade de migrar e copiar documentos entre os servidores cooperados; 2. Distribuir requisições para balanceamento de carga; 3. Manter cópias em estado consistente; A solução de DC-Apache apresenta benefícios em relação aos sistemas tradicionais baseados em manipulação de pacotes, serviços DNS e sistemas em que os arquivos se encontram distribuídos: A manipulação de pacotes não é necessária. Não existe entidade redirecionadora que precise manipular cada pacote transferido entre o cliente e o servidor. Isto evita um possível gargalo; Emprega a conectividade dos hyperlinks para controlar diretamente o balanceamento de carga. Não há redirecionamento de requisições que necessitem que o cliente faça duas conexões para um pedido; Pela replicação de dados, pode resolver problemas causados por páginas populares e extremamente acessados; A inclusão de novos servidores é fácil e flexível. Qualquer máquina disponível pode ser adicionada como um servidor cooperativo. Nesta solução, o servidor Web Apache foi modificado para alterar dinamicamente hiperlinks de uma página, a cada requisição de clientes, para os vários servidores cooperados que atendem pelo domínio. Os experimentos mostram que o DC-Apache obteve resultados positivos na distribuição de requisições entre os vários membros do grupo de servidores. O gargalo de desempenho pode ser eliminado pela distribuição de documentos em vários servidores. O projeto Mod_Backhand (Schlossnagle, 2000) é um módulo para o Apache versão 1.x, desenvolvido na universidade Johns Hopkins, destinado a efetuar a distribuição da carga entre vários servidores HTTP. Sua implementação é composta de vários módulos:

42 40 Gerenciamento de Informação de Recurso (RIM): Responsável por obter informações sobre utilização do servidor Web local, e espalhar esta informação para o cluster e coletar informações de utilização de recursos das outras máquinas do cluster; Assistente de Manutenção de Recuso (RMA): Provê a pré-alocação de recursos para operações importantes que não devem ser feitas sob demanda. Mantém um pool de conexões existentes para outros servidores dentro do cluster; Tomador de Decisão (DM): Projetada sobre o conceito de funções candidatas que servem para fazer a escolha do servidor que irá processar a requisição: Ferramenta de Diagnóstico (DT): Provê um mecanismo para monitorar a utilização dos recursos do cluster. Proxy Interno: Executa o trabalho de redirecionamento de requisições. Funcionamento muito similar ao mod_proxy. As funções existentes para tomada de decisão de distribuição são: Off: desabilita o mod_backhand. addself: adiciona um servidor local no final da lista. removeself: remove um servidor da lista. byage (segundos): remove da lista os servidores aqueles que não respondem por um determinado período. O valor padrão é 20 segundos. byload: reordena a lista de acordo com a carga dos servidores. bybusychildren: reordena a lista de servidores de acordo com a quantidade de processos do Apache em espera. bycpu: reordena a lista do servidor da maior quantidade de CPU inativa. Servidores com menor utilização de CPU ficam no topo da lista.

43 41 bylogwindow: elimina os servidores utilizando o critério log2(n). Com 8 servidores ativo, n=3. A escolha será feita entre os 3 primeiros. byrandom: reordena, aleatoriamente, a lista de servidores. bycost: define um custo para cada servidor. bysession (id) : verifica a existência de algum cookie chamado (id). O mod_backhand se mostrou uma solução viável. Atualmente o projeto Wackmole (wackamole, 2007) é sua continuação. O algoritmo de balanceamento, chamado de MOLL (Migration-Optimized Least Loaded), é proposto por Nilson et al (Nilson, 2005). MOOL combina a utilização de duas variáveis muito importantes na tomada de decisão para o redirecionamento: a carga do servidor e o tempo de atraso durante a migração de sessão. A migração pode causar um overhead significativo durante o balanceamento de carga. Por exemplo, sites de comércio eletrônico necessitam da informação armazenada de cada sessão de um usuário. Esta informação de sessão, pode em alguns casos, atingir até vários megabytes. Por isso, a migração de sessão durante um balanceamento pode gerar atrasos que podem representar metade do tempo de resposta. O trabalho descreve e analisa os métodos existentes: random, round robin, least visited e least load; executando 3 experimentos comparativos com o novo método de balanceamento, para requisições, em função da: Carga do servidor: Simulação considerando a carga de CPU baixa (0% a 25%), média (26% a 65%) e alta (66% a 100%). Na primeira situação, MOLL reduziu o tempo de resposta em relação aos algoritmos random, round robin, least visited e least load em 37,9, 36,9, 19,4 e 34,9%, respectivamente. Na terceira situação, a redução foi de 52,1, 51,7, 40,7 e 12,3%; Precisão de carga de servidor: São geradas cargas no servidor que simulam a

44 42 utilização de CPU de 5% a 95%, em intervalos de 5%. Neste experimento é mensurada a precisão do novo método em função do efeito da carga de CPU sobre o tempo de resposta. Somente os métodos least visited e MOLL se mostraram eficientes; Erro de previsão: Neste experimento é estudado o efeito do erro na distribuição e sua relação com o tempo de resposta. Tal situação ocorre quando o servidor escolhido não é o melhor. Após análises com várias porcentagens de carga de CPU, no pior caso o MOLL aumentou o tempo de resposta em 7,1%. O tempo de resposta absoluto foi 8,3 % menor que o do método least load. Assim, os autores concluíram que o novo método é viável na otimização do tempo de resposta para clusters de servidores Web.

45 5. INVESTIGAÇÃO DO BALANCEAMENTO DE REQUISIÇÕES NO APACHE E A PROPOSTA DE UM NOVO MÉTODO 43 Neste capítulo é apresentada uma visão geral do balanceamento de requisições no Apache, introduzindo alguns conceitos e termos utilizados, bem como é apresentado o mecanismo de funcionamento do mod_proxy_balancer e dos métodos de balanceamento já existentes: o byrequests e o bytraffic. Estes métodos são avaliados através de ferramentas de benchmark e os resultados são utilizados para identificação de melhorias implementadas em um novo método de balanceamento, chamado de byquery. O novo método é avaliado e seus resultados comparados com os obtidos pelos já existentes, visando comprovar a viabilidade do novo método Visão geral Quando a Internet surgiu, achava-se que o endereçamento provido pelo protocolo IP seria suficiente para atender a demanda do mundo inteiro. Instituições que solicitavam endereços válidos recebiam uma ou mais faixas inteiras com 256 possibilidades de endereçamento. Assim, computadores da rede interna tinham endereços válidos, podendo acessar e serem acessados por qualquer computador ligado a esta rede no mundo inteiro. No entanto, com o grande crescimento da Internet, foi necessário restringir o número de endereços IPs válidos disponibilizados para os solicitantes, pois caso contrário faltariam endereços para o mundo inteiro. Assim passou-se a utilizar mais criteriosamente o endereçamento para redes internas, já previstas no protocolo, no qual três faixas de endereços em três classes foram disponibilizadas para esse fim. Os endereços dessas classes são utilizados em redes locais e são inválidos na Internet. O termo proxy, que traduzido significa procurador ou intermediário, surgiu da necessidade de permitir acesso de uma rede local à Internet através de um computador ligado à rede interna e à rede externa válida, que compartilha sua conexão com as demais máquinas.

46 44 Toda solicitação de conexão de uma máquina da rede local para um host da Internet é direcionada ao proxy, este, por sua vez, realiza o contato com o host desejado, repassando a resposta à solicitação para a máquina da rede local. De forma semelhante, esta mesma máquina pode permitir que um computador da rede externa acesse algum serviço disponibilizado em um computador da rede interna. Para tal configuração, a máquina ligada às duas redes está atuando como um proxy reverso Funcionamento do Apache com o Mod_Proxy e o Mod_Proxy_Balancer O servidor Web Apache opera como proxy convencional e reverso através da utilização do módulo mod_proxy e realiza o balanceamento de requisições através do mod_proxy_balancer. O mod_proxy é geralmente usado para a distribuição de requisições entre vários servidores Web, ou para prover uma cache de páginas HTML para servidores Web mais lentos. Permite que vários servidores compartilhem uma mesma URL (Uniform Resource Locator). Para os clientes, o servidor proxy representa o servidor Web do domínio, que recebe as requisições e executa os pedidos de conexões à outros servidores que podem ser hosts remotos ou máquinas da rede interna (que não pode ser acessada diretamente via Internet). O mod_proxy tem controle de todas as solicitações dos clientes e das respostas dos servidores a estes clientes. <VirtualHost > ServerAdmin ServerName: ProxyRequests On ProxyPass /download ProxyPassReverse /download </VirtualHost> Quadro 1: Configuração Mod_proxy no httpd.conf.

47 45 O quadro 1 apresenta um exemplo de configuração proxy que deve ser inserido no arquivo de configuração do Apache, o httpd.conf. O termo redirecionador aqui utilizado é sinônimo de proxy, não tendo relação com a diretiva redirect de um outro módulo do Apache, o mod_rewrite. A diretiva ProxyPass permite que a requisição para a URL seja repassada para o servidor local e diretório especificado. No exemplo, toda requisição para a URL será atendida pelo servidor , localizado na rede privada. A diretiva ProxyPassReverse permite a modificação do cabeçalho Location nas mensagens de respostas de redirecionamento enviadas pelo Apache. Isto faz com que o endereço retornado seja o do servidor que realmente atendeu a requisição e não da máquina do redirecionamento. Conseqüentemente, a máquina conseguirá obter endereço do verdadeiro requisitante (não será mais o endereço do redirecionador). O mod_proxy possui suporte para os protocolos AJP13 (Apache JServe Protocol version 1.3), FTP, CONNECT (para SSL), HTTP/0.9, HTTP/1.0, e HTTP/1.1. Também pode ser configurado para conectar com outros módulos proxy. A funcionalidade de proxy do Apache é expandida através de vários módulos adicionais ao mod_proxy tais como: mod_proxy_http, mod_proxy_ftp, mod_proxy_ajp, mod_proxy_balancer e mod_proxy_connect. O suporte ao protocolo SSL/TSL é oferecido pelo mod_ssl enquanto a função de cache é provida pelo mod_cache entre outros. ProxyPass /din22 balancer://master lbmethod=byrequests <Proxy balancer://master/din22> BalancerMember loadfactor=1 route slave1 BalancerMember loadfactor=1 route slave2 </Proxy> Quadro 2: Exemplo de configuração Mod_proxy_balancer no httpd.conf.

48 46 O módulo mod_proxy_balancer, disponível a partir da versão 2.1 do Apache, adiciona a funcionalidade de balanceamento de requisições ao mod_proxy, provendo suporte para os protocolos HTTP, FTP e AJP13. O balanceamento de requisições permite que no caso de falha de algum nó, este seja excluído do redirecionamento em tempo de execução. O quadro 2 apresenta um exemplo de configuração para o mod_proxy_balancer. No mod_proxy_balancer, a diretiva ProxyPass permite a inclusão dos seguintes parâmetros utilizados para o balanceamento: Stickysession: Nome da sessão sticky, se definido. Uma sessão sticky permite manter uma conexão persistente para um específico nó do cluster até que a sessão do cliente seja finalizada; Nofailover: Se habilitada, a sessão corrente é cancelada se um nó for desabilitado; Lbmethod: Define o método de balanceamento, byrequests ou bytraffic; Timeout: Tempo de espera para um nó do cluster; Maxattempts: Número de tentativa antes de desistir de repassar uma requisição para um nó; A diretiva Proxy balancer informa a URL a ter as requisições distribuídas enquanto a diretiva BalancerMember especifica os nós que irão participar do balanceamento. Os seguintes parâmetros podem ser definidos para esta diretiva: lbfactor: É o fator de balanceamento. Informa como as requisições devem ser divididas entre os servidores, ou seja, quanto nós esperamos que cada servidor trabalhe". Quanto maior este valor, mais requisições um servidor irá atender. Representa a quota normalizada de trabalho de um servidor; route: Rota para o nó. A rota é um valor anexado ao nome da sessão, se definida; redirect: rota de redirecionamento do nó.

49 47 Atualmente, o mod_proxy_balancer possui 2 métodos de balanceamento: por quantidade de requisições (byrequests - request counting) e por quantidade de sobrecarga de tráfego (bytraffic - weighted traffic counting). A definição do método de balanceamento é feita pela diretiva lbmethod, previamente definida no arquivo de configurações do Apache O método Byrequests Este método é habilitado definindo-se a diretiva lbmethod como byrequests (lbmethod=byrequests). Tem como princípio distribuir as requisições entre os servidores que participam de um balanceamento de acordo com a configuração pré-definida pela diretiva lbfactor e pela atualização constante da variável lbstatus. O lbstatus informa qual é prioridade (urgência) de servidor em receber requisições para cumprir esta quota de trabalho. Inicialmente é definida a quota de trabalho para cada servidor e então se localiza o servidor candidato (para atender a requisição) com maior prioridade de trabalho (maior lbstatus) dentre todos os servidores que participam do balanceamento. Assim que um servidor é selecionado, seu valor de lbstatus é subtraído da soma do lbfactor de todos os servidores. Como esta soma não muda, a distribuição é feita da maneira especificada pelo fator de balanceamento (Mod_proxy_balancer, 2007). O algoritmo de balanceamento é descrito no quadro 3. para cada servidor que participa do balanceamento servidor lbstatus += servidor lbfactor total factor += servidor lbfactor se servidor lbstatus > candidato lbstatus candidato = servidor candidato lbstatus -= total factor Quadro 3: Algoritmo simplificado do método byrequests.

50 O exemplo a seguir mostra um balanceamento em que todos os membros recebem a mesma quantidade de requisições. 48 Servidor S1 S2 S3 S4 Lbfactor Quadro 4: Exemplo de escalonamento byrequests com lbfactor igual a 1. O escalonamento produzido será: S1 S2 S3 S4... Uma vez que os valores são normalizados, o escalonamento acima tem o mesmo comportamento a seguir. Servidor S1 S2 S3 S4 Lbfactor Quadro 5. Exemplo de escalonamento byrequests com lbfactor igua1 a 25. Alterando o valor de S2 para 3 informaríamos que o servidor S2 atenderá, em média, 3 vezes mais requisições que S1, S3 e S4. Servidor S1 S2 S3 S4 Lbfactor Lbstatus Lbstatus Lbstatus Lbstatus Lbstatus Lbstatus (repetir) Quadro 6: Exemplo do processo de escalonamento byrequests. O escalonamento produzido será: S2 S1 S3 S2 S4 S2... A seqüência de distribuição de requisições se repete após 6 escalonamentos. Se algum servidor estiver indisponível, por

51 49 exemplo, S3, o algoritmo permite o escalonamento correto entre os demais. O escalonamento produzido será: S1 S2 S4.... Nenhuma requisição é encaminhada para o servidor S3 e o escalonamento também não é afetado. Servidor S1 S2 S3 S4 Lbfactor Lbstatus Lbstatus Lbstatus Lbstatus (repetir) Quadro 7: Exemplo do processo de escalonamento byrequests com a exclusão de um nó O método Bytraffic A diretiva lbmethod configurada como bytraffic (lbmethod=bytraffic) habilita este método. A idéia deste escalonamento é semelhante ao do método byrequests, no entanto, contabilizando a quantidade de tráfego (bytes entrando e saindo) manipulada por cada servidor. Este tráfego é normalizado de acordo com o peso de cada servidor no balanceamento, também definido pela diretiva lbfactor: Quanto maior o valor do lbfactor, maior a quantidade de tráfego que um servidor irá receber (Mod_proxy_balancer, 2007). No exemplo a seguir, a configuração indica que o servidor S1 processará um tráfego em bytes duas vezes maior que S2, S3 e S4. Servidor S1 S2 S3 S4 Lbfactor Quadro 8: Exemplo do processo de escalonamento bytraffic.

52 50 Isto não significa necessariamente que S1 processaria duas vezes mais requisições que os demais servidores. Assim, o tamanho da requisição e a resposta são aplicados ao algoritmo de seleção. curmin = 0 para cada servidor que participa do balanceamento trafego=(servidor bytes_transferidos /servidor lbfactor) + (servidor bytes recebidos / servidor lbfactor); se ( nenhum candidato ou trafego < curmin) candidato = servidor curmin =trafego Quadro 9: Algoritmo simplificado do método bytraffic. O servidor com menor soma de bytes transferidos e recebidos será o escolhido para atender a uma requisição entrante Monitoramento e Diagrama de Funcionamento O mod_proxy_balancer possui uma página de gerenciamento, mostrada na figura 10, que permite verificar e alterar parâmetros de balanceamento, além do monitoramento do status dos nós membros. Figura 10: Página de gerenciamento do Mod_proxy_balancer.

53 A Figura 11 apresenta um esquema simplificado do processo de análise de uma requisição pelo mod_proxy_balancer. 51 Figura 11: Análise de Requisição com o Mod_proxy_balancer. Observa-se neste fluxograma que os métodos byrequets e bytraffic estão implementados no item Verifica Lbfator e define o melhor nó. Se após a seleção de um nó, o mesmo se encontrar indisponível, uma nova seleção será feita Experimentos Preliminares Visando avaliar o balanceamento de requisições do Apache, na versão 2.2.4, operando em conjunto com os módulos mod_proxy e mod_proxy_balancer, foram realizados testes com cada um dos métodos de escalonamento. Os experimentos simularam solicitações de clientes para o servidor Web, medindo o tempo para atendimento às mesmas. Neste contexto, para facilitar a investigação, foi necessário pesquisar algumas de ferramentas que medem o desempenho de servidores Web no atendimento a requisições.

54 Ferramentas Utilizadas As ferramentas para avaliação de desempenho de sites Web têm por princípio básico simular requisições de clientes a determinadas URLs e medir o tempo, em segundos ou milisegundos, que o servidor Web necessita para atendê-las (Barford and Crovella, 1998) (Hu et al, 1999). Existem inúmeras ferramentas, comerciais e gratuitas. Neste trabalho foram experimentadas três ferramentas: ApacheBench (ApacheBench, 2006): Ferramenta de benchmark desenvolvida pelo Apache Group para teste da capacidade de atendimento do servidor Web Apache. Desenvolvido na linguagem Perl, basicamente mostra quantas requisições por segundo um servidor Web Apache é capaz de atender. Esta ferramenta vem junto com o código fonte do Apache; Http_load (Poskanzer, 2007): Ferramenta de teste de carga desenvolvido pelo ACME Labs para gerar requisições para um servidor Web. Desenvolvido para ambiente Unix, manipula requisições HTTP e HTTPS. O http_load executa múltiplas consultas http em paralelo para testar a capacidade de atendimento (throughput) do servidor Web. Pode simular conexões com modem de 33,6 kbps (opção throttle) e permite que seja especificada uma lista de URLs a serem testadas. Também é possível especificar a quantidade de conexões em paralelo (opção parallel ) ou o número de requisições geradas por segundo (opção rate). O tempo de teste pode também ser definido (opção seconds N); Httperf (Mosberger, 1998): Aplicativo desenvolvido por David Mosberger do HP Research Labs. É uma ferramenta similar ao Apachebench, provendo um mecanismo para geração de requisições HTTP e medindo o desempenho do servidor Web. Seu código fonte é aberto e é gratuito.

55 53 As três ferramentas de avaliação de desempenho apresentam características semelhantes, no entanto cada uma apresentava suas limitações, como tamanho de página (ApacheBench), número de máximo de requisições (http_load). O httperf atendeu ao requisito de simular requisições de clientes para o servidor Web, informando o tempo necessário para que tais requisições fossem atendidas, sendo o escolhido para ser utilizado nos testes Ambiente de Teste Os testes foram realizados no cluster heterogêneo do HPPCA/DIN/UEM que é composto de um nó mestre chamado de master - e oito nós escravos chamados de slave1 a slave8. A Figura 12 mostra como os equipamentos estão conectados: Switch Cliente Switch Master Slave1 Slave2 Slave3 Slave4 Slave5 Slave6 Slave7 Slave8 Figura 12: Diagrama de ligação dos equipamentos no ambiente de teste no cluster HPPCA. Os equipamentos deste cluster possuem as seguintes configurações: Master: Possui um processador ATHLON de 1,0 GHz, com 512 MB de memória e 20 GB de espaço em disco, com duas interfaces de rede padrão fast ethernet; Slave 1 a 4: Possuem processadores Pentium IV HT de 1,8 GHz, com 512 MB de memória, com uma interface de rede padrão fast ethernet;

Acta Scientiarum. Technology ISSN: 1806-2563 eduem@uem.br Universidade Estadual de Maringá Brasil

Acta Scientiarum. Technology ISSN: 1806-2563 eduem@uem.br Universidade Estadual de Maringá Brasil Acta Scientiarum. Technology ISSN: 1806-2563 eduem@uem.br Universidade Estadual de Maringá Brasil Sato, Jô; Martini, João Angelo; Lara Gonçalves, Ronaldo Augusto Análise do balanceamento de requisições

Leia mais

REDES ESAF. leitejuniorbr@yahoo.com.br 1 Redes - ESAF

REDES ESAF. leitejuniorbr@yahoo.com.br 1 Redes - ESAF REDES ESAF 01 - (ESAF - Auditor-Fiscal da Previdência Social - AFPS - 2002) Um protocolo é um conjunto de regras e convenções precisamente definidas que possibilitam a comunicação através de uma rede.

Leia mais

Redes. Pablo Rodriguez de Almeida Gross

Redes. Pablo Rodriguez de Almeida Gross Redes Pablo Rodriguez de Almeida Gross Conceitos A seguir serão vistos conceitos básicos relacionados a redes de computadores. O que é uma rede? Uma rede é um conjunto de computadores interligados permitindo

Leia mais

Programação WEB Introdução

Programação WEB Introdução Programação WEB Introdução Rafael Vieira Coelho IFRS Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul Campus Farroupilha rafael.coelho@farroupilha.ifrs.edu.br Roteiro 1) Conceitos

Leia mais

Balanceamento Dinâmico de Requisições em Cluster de Servidores Web

Balanceamento Dinâmico de Requisições em Cluster de Servidores Web IX Simpósio em Sistemas Computacionais 101 Balanceamento Dinâmico de Requisições em Cluster de Servidores Web Jô Sato, João A. Martini, Ronaldo A. L. Gonçalves Universidade Estadual de Maringá - Departamento

Leia mais

Computação em cluster

Computação em cluster Computação em cluster Por Marcos Pitanga em 30 de maio de 2003 Introdução Este artigo tem por finalidade dar ao leitor uma visão mais integrada do que vem a ser a computação em cluster e como esta a cada

Leia mais

Desenvolvimento de Aplicações Web

Desenvolvimento de Aplicações Web Desenvolvimento de Aplicações Web André Tavares da Silva andre.silva@udesc.br Método de Avaliação Serão realizadas duas provas teóricas e dois trabalhos práticos. MF = 0,1*E + 0,2*P 1 + 0,2*T 1 + 0,2*P

Leia mais

Redes de Computadores II

Redes de Computadores II Redes de Computadores II INTERNET Protocolos de Aplicação Intranet Prof: Ricardo Luís R. Peres As aplicações na arquitetura Internet, são implementadas de forma independente, ou seja, não existe um padrão

Leia mais

Tipos de Sistemas Distribuídos (Cluster e Grid)

Tipos de Sistemas Distribuídos (Cluster e Grid) Tipos de Sistemas Distribuídos (Cluster e Grid) Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência

Leia mais

Universidade Federal de Mato Grosso

Universidade Federal de Mato Grosso Universidade Federal de Mato Grosso Programação III Curso de Ciência da Computação Prof. Thiago P. da Silva thiagosilva@ufmt.br Material basedado em [Kurose&Ross 2009] e [Gonçalves, 2007] Agenda Internet

Leia mais

UM ESTUDO SOBRE TIPOS DE ALGORITMOS DE DISPATCHER PARA WEB CLUSTERS

UM ESTUDO SOBRE TIPOS DE ALGORITMOS DE DISPATCHER PARA WEB CLUSTERS REVISTA CIENTÍFICA ELETRÔNICA DE SISTEMAS DE INFORMAÇÃO - ISSN 1807-1872 P UBLICAÇÃO C IENTÍFICA DA F ACULDADE DE C IÊNCIAS J URÍDICAS E G ERENCIAIS DE G ARÇA/FAEG A NO II, NÚMERO, 04, FEVEREIRO DE 2006.

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Basedos na Web Capítulo 12 Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Introdução

Leia mais

WWW - World Wide Web

WWW - World Wide Web WWW World Wide Web WWW Cap. 9.1 WWW - World Wide Web Idéia básica do WWW: Estratégia de acesso a uma teia (WEB) de documentos referenciados (linked) em computadores na Internet (ou Rede TCP/IP privada)

Leia mais

TECNOLOGIA WEB INTERNET PROTOCOLOS

TECNOLOGIA WEB INTERNET PROTOCOLOS INTERNET PROTOCOLOS 1 INTERNET Rede mundial de computadores. Também conhecida por Nuvem ou Teia. Uma rede que permite a comunicação de redes distintas entre os computadores conectados. Rede WAN Sistema

Leia mais

Introdução à Informática

Introdução à Informática Introdução à Informática Aula 23 http://www.ic.uff.br/~bianca/introinfo/ Aula 23-07/12/2007 1 Histórico da Internet Início dos anos 60 Um professor do MIT (J.C.R. Licklider) propõe a idéia de uma Rede

Leia mais

Documento de Requisitos de Rede (DRP)

Documento de Requisitos de Rede (DRP) Documento de Requisitos de Rede (DRP) Versão 1.2 SysTrack - Grupo 1 1 Histórico de revisões do modelo Versão Data Autor Descrição 1.0 30/04/2011 João Ricardo Versão inicial 1.1 1/05/2011 André Ricardo

Leia mais

Redes de Computadores LFG TI

Redes de Computadores LFG TI Redes de Computadores LFG TI Prof. Bruno Guilhen Camada de Aplicação Fundamentos Fundamentos Trata os detalhes específicos de cada tipo de aplicação. Mensagens trocadas por cada tipo de aplicação definem

Leia mais

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO Intranets FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO As intranets são redes internas às organizações que usam as tecnologias utilizadas na rede mundial

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

Leia mais

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web; CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.

Leia mais

Informática I. Aula 22. http://www.ic.uff.br/~bianca/informatica1/ Aula 22-03/07/06 1

Informática I. Aula 22. http://www.ic.uff.br/~bianca/informatica1/ Aula 22-03/07/06 1 Informática I Aula 22 http://www.ic.uff.br/~bianca/informatica1/ Aula 22-03/07/06 1 Critério de Correção do Trabalho 1 Organização: 2,0 O trabalho está bem organizado e tem uma coerência lógica. Termos

Leia mais

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural Arquitetura e Protocolos de Rede TCP/IP Modelo Arquitetural Agenda Motivação Objetivos Histórico Família de protocolos TCP/IP Modelo de Interconexão Arquitetura em camadas Arquitetura TCP/IP Encapsulamento

Leia mais

TECNOLOGIA WEB Aula 1 Evolução da Internet Profa. Rosemary Melo

TECNOLOGIA WEB Aula 1 Evolução da Internet Profa. Rosemary Melo TECNOLOGIA WEB Aula 1 Evolução da Internet Profa. Rosemary Melo Tópicos abordados Surgimento da internet Expansão x Popularização da internet A World Wide Web e a Internet Funcionamento e personagens da

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES O QUE É PROTOCOLO? Na comunicação de dados e na interligação em rede, protocolo é um padrão que especifica o formato de dados e as regras a serem seguidas. Sem protocolos, uma rede

Leia mais

FACSENAC. Versão:1.5. Identificador do documento: Projeto Lógico de Redes. Versão do Template Utilizada na Confecção: 1.0. Histórico de revisões

FACSENAC. Versão:1.5. Identificador do documento: Projeto Lógico de Redes. Versão do Template Utilizada na Confecção: 1.0. Histórico de revisões FACSENAC ECOFROTA Documento de Projeto Lógico de Rede Versão:1.5 Data: 21/11/2013 Identificador do documento: Projeto Lógico de Redes Versão do Template Utilizada na Confecção: 1.0 Localização: FacSenac

Leia mais

TECNOLOGIA WEB. Principais Protocolos na Internet Aula 2. Profa. Rosemary Melo

TECNOLOGIA WEB. Principais Protocolos na Internet Aula 2. Profa. Rosemary Melo TECNOLOGIA WEB Principais Protocolos na Internet Aula 2 Profa. Rosemary Melo Tópicos abordados Compreender os conceitos básicos de protocolo. Definir as funcionalidades dos principais protocolos de Internet.

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES 09/2013 Cap.3 Protocolo TCP e a Camada de Transporte 2 Esclarecimentos Esse material é de apoio para as aulas da disciplina e não substitui a leitura da bibliografia básica. Os professores

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Estilos Arquitetônicos e Arquitetura Cliente/Servidor

Sistemas Distribuídos: Conceitos e Projeto Estilos Arquitetônicos e Arquitetura Cliente/Servidor Sistemas Distribuídos: Conceitos e Projeto Estilos Arquitetônicos e Arquitetura Cliente/Servidor Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática /

Leia mais

Introdução ao Desenvolvimento e Design de Websites

Introdução ao Desenvolvimento e Design de Websites Introdução ao Desenvolvimento e Design de Websites Prof.: Salustiano Rodrigues de Oliveira Email: saluorodrigues@gmail.com Site: www.profsalu.wordpress.com Introdução ao Desenvolvimento e Design de Websites

Leia mais

efagundes com Como funciona a Internet

efagundes com Como funciona a Internet Como funciona a Internet Eduardo Mayer Fagundes 1 Introdução à Internet A Internet é uma rede de computadores mundial que adota um padrão aberto de comunicação, com acesso ilimitado de pessoas, empresas

Leia mais

World Wide Web e Aplicações

World Wide Web e Aplicações World Wide Web e Aplicações Módulo H O que é a WWW Permite a criação, manipulação e recuperação de informações Padrão de fato para navegação, publicação de informações e execução de transações na Internet

Leia mais

GLOSSÁRIO. ActiveX Controls. É essencialmente uma interface usada para entrada e saída de dados para uma aplicação.

GLOSSÁRIO. ActiveX Controls. É essencialmente uma interface usada para entrada e saída de dados para uma aplicação. GLOSSÁRIO Este glossário contém termos e siglas utilizados para Internet. Este material foi compilado de trabalhos publicados por Plewe (1998), Enzer (2000) e outros manuais e referências localizadas na

Leia mais

Universidade Federal do Acre. Centro de Ciências Exatas e Tecnológicas

Universidade Federal do Acre. Centro de Ciências Exatas e Tecnológicas Universidade Federal do Acre Centro de Ciências Exatas e Tecnológicas Universidade Federal do Acre Centro de Ciências Exatas e Tecnológicas Pós-graduação Lato Sensu em Desenvolvimento de Software e Infraestrutura

Leia mais

PRnet/2013. Linguagem de Programação Web

PRnet/2013. Linguagem de Programação Web Linguagem de Programação Web Linguagem de Programação Web Prnet/2013 Linguagem de Programação Web» Programas navegadores» Tipos de URL» Protocolos: HTTP, TCP/IP» Hipertextos (páginas WEB)» HTML, XHTML»

Leia mais

Capítulo 8 - Aplicações em Redes

Capítulo 8 - Aplicações em Redes Capítulo 8 - Aplicações em Redes Prof. Othon Marcelo Nunes Batista Mestre em Informática 1 de 31 Roteiro Sistemas Operacionais em Rede Modelo Cliente-Servidor Modelo P2P (Peer-To-Peer) Aplicações e Protocolos

Leia mais

Modelos de Redes em Camadas

Modelos de Redes em Camadas Modelos de Redes em Camadas Prof. Gil Pinheiro 1 1. Arquitetura de Sistemas de Automação Sistemas Centralizados Sistemas Distribuídos Sistemas Baseados em Redes Arquitetura Cliente-Servidor 2 Sistemas

Leia mais

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural Arquitetura e Protocolos de Rede TCP/IP Modelo Arquitetural Motivação Realidade Atual Ampla adoção das diversas tecnologias de redes de computadores Evolução das tecnologias de comunicação Redução dos

Leia mais

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos Capítulo 8 Sistemas com Múltiplos Processadores 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos 1 Sistemas Multiprocessadores Necessidade contínua de computadores mais rápidos modelo

Leia mais

CONCEITOS BÁSICOS DE INTERNET. Disciplina: INFORMÁTICA 1º Semestre Prof. AFONSO MADEIRA

CONCEITOS BÁSICOS DE INTERNET. Disciplina: INFORMÁTICA 1º Semestre Prof. AFONSO MADEIRA CONCEITOS BÁSICOS DE INTERNET Disciplina: INFORMÁTICA 1º Semestre Prof. AFONSO MADEIRA conceito inicial Amplo sistema de comunicação Conecta muitas redes de computadores Apresenta-se de várias formas Provê

Leia mais

Redes de Computadores. Prof. André Y. Kusumoto andre_unip@kusumoto.com.br

Redes de Computadores. Prof. André Y. Kusumoto andre_unip@kusumoto.com.br Redes de Computadores Prof. André Y. Kusumoto andre_unip@kusumoto.com.br Open Systems Interconnection Modelo OSI No início da utilização das redes de computadores, as tecnologias utilizadas para a comunicação

Leia mais

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc. Implementar servidores de Web/FTP e DFS Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.br Conteúdo programático Introdução ao protocolo HTTP Serviço web

Leia mais

Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação. Associação dos Instrutores NetAcademy - Julho de 2007 - Página

Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação. Associação dos Instrutores NetAcademy - Julho de 2007 - Página Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação 1 Introdução à Camada de Transporte Camada de Transporte: transporta e regula o fluxo de informações da origem até o destino, de forma confiável.

Leia mais

Rede d s d e d Com o pu p t u ado d r o es Conceitos Básicos M d o e d los o de d Re R de d s:

Rede d s d e d Com o pu p t u ado d r o es Conceitos Básicos M d o e d los o de d Re R de d s: Tecnologia em Redes de Computadores Redes de Computadores Professor: André Sobral e-mail: alsobral@gmail.com Conceitos Básicos Modelos de Redes: O O conceito de camada é utilizado para descrever como ocorre

Leia mais

Camada de Aplicação. DNS Domain Name System. Redes de Computadores Prof. Leandro C. Pykosz

Camada de Aplicação. DNS Domain Name System. Redes de Computadores Prof. Leandro C. Pykosz Camada de Aplicação Redes de Computadores Prof. Leandro C. Pykosz Camada de Aplicação A camada de aplicação fornece os serviços "reais" de rede para os usuários. Os níveis abaixo da aplicação fornecem

Leia mais

SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL TÉCNICO EM INFORMÁTICA

SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL TÉCNICO EM INFORMÁTICA SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL TÉCNICO EM INFORMÁTICA Prof. Airton Ribeiro de Sousa E-mail: airton.ribeiros@gmail.com 1 2 - PROTOCOLO Conjunto de regras que controla a comunicação nos computadores

Leia mais

CAPÍTULO 2. Este capítulo tratará :

CAPÍTULO 2. Este capítulo tratará : 1ª PARTE CAPÍTULO 2 Este capítulo tratará : 1. O que é necessário para se criar páginas para a Web. 2. A diferença entre páginas Web, Home Page e apresentação Web 3. Navegadores 4. O que é site, Host,

Leia mais

Prof. Luís Rodolfo. Unidade II REDES DE COMPUTADORES E TELECOMUNICAÇÃO

Prof. Luís Rodolfo. Unidade II REDES DE COMPUTADORES E TELECOMUNICAÇÃO Prof. Luís Rodolfo Unidade II REDES DE COMPUTADORES E TELECOMUNICAÇÃO Redes de computadores e telecomunicação Objetivos da Unidade II Estudar, em detalhes, as camadas: Aplicação Apresentação Sessão Redes

Leia mais

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula Complementar - MODELO DE REFERÊNCIA OSI Este modelo se baseia em uma proposta desenvolvida pela ISO (International Standards Organization) como um primeiro passo em direção a padronização dos protocolos

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 2 - MODELO DE REFERÊNCIA TCP (RM TCP) 1. INTRODUÇÃO O modelo de referência TCP, foi muito usado pela rede ARPANET, e atualmente usado pela sua sucessora, a Internet Mundial. A ARPANET é de grande

Leia mais

FACULDADE PITÁGORAS. Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br

FACULDADE PITÁGORAS. Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br FACULDADE PITÁGORAS DISCIPLINA FUNDAMENTOS DE REDES REDES DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br Material elaborado com base nas apresentações

Leia mais

Autoria Web Apresentação e Visão Geral sobre a Web

Autoria Web Apresentação e Visão Geral sobre a Web Apresentação e Visão Geral sobre a Web Apresentação Thiago Miranda Email: mirandathiago@gmail.com Site: www.thiagomiranda.net Objetivos da Disciplina Conhecer os limites de atuação profissional em Web

Leia mais

Guia de Conectividade Worldspan Go Res! A V A N Ç A D O

Guia de Conectividade Worldspan Go Res! A V A N Ç A D O Guia de Conectividade Worldspan Go Res! A V A N Ç A D O Í n d i c e Considerações Iniciais...2 Rede TCP/IP...3 Produtos para conectividade...5 Diagnosticando problemas na Rede...8 Firewall...10 Proxy...12

Leia mais

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima INFORMÁTICA FUNDAMENTOS DE INTERNET Prof. Marcondes Ribeiro Lima Fundamentos de Internet O que é internet? Nome dado a rede mundial de computadores, na verdade a reunião de milhares de redes conectadas

Leia mais

Sistemas Paralelos e Distribuídos. Prof. Jorge Dantas de Melo Depto. Eng. Comp. e Automação CT - UFRN

Sistemas Paralelos e Distribuídos. Prof. Jorge Dantas de Melo Depto. Eng. Comp. e Automação CT - UFRN Sistemas Paralelos e Distribuídos Prof. Jorge Dantas de Melo Depto. Eng. Comp. e Automação CT - UFRN Conceitos preliminares Paralelismo refere-se a ocorrência simultânea de eventos em um computador Processamento

Leia mais

Programação e Designer para WEB

Programação e Designer para WEB Programação e Designer para WEB Introdução Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa Introdução a hipertexto. A linguagem HTML.

Leia mais

INTERNET. INTERNET http://www.jofilho.pro.br 1/40

INTERNET. INTERNET http://www.jofilho.pro.br 1/40 INTERNET INTERNET http://www.jofilho.pro.br 1/40 OBJETIVOS Apresentar definições e aspectos envolvidos Diferenciar por abrangência Apresentar tecnologias de segurança Apresentar usos e métodos de busca

Leia mais

Redes de Computadores. Protocolos de comunicação: TCP, UDP

Redes de Computadores. Protocolos de comunicação: TCP, UDP Redes de Computadores Protocolos de comunicação: TCP, UDP Introdução ao TCP/IP Transmission Control Protocol/ Internet Protocol (TCP/IP) é um conjunto de protocolos de comunicação utilizados para a troca

Leia mais

SISTEMAS OPERACIONAIS LIVRES SERVICOS DE REDE LOCAL. Professor Carlos Muniz

SISTEMAS OPERACIONAIS LIVRES SERVICOS DE REDE LOCAL. Professor Carlos Muniz SISTEMAS OPERACIONAIS LIVRES SERVICOS DE REDE LOCAL Na internet, cada computador conectado à rede tem um endereço IP. Todos os endereços IPv4 possuem 32 bits. Os endereços IP são atribuídos à interface

Leia mais

CA Nimsoft Monitor para servidores

CA Nimsoft Monitor para servidores DOCUMENTAÇÃO TÉCNICA Setembro de 2012 CA Nimsoft Monitor para servidores agility made possible CA Nimsoft para monitoramento de servidores sumário CA Nimsoft Monitor para servidores 3 visão geral da solução

Leia mais

// Questões para estudo

// Questões para estudo // Questões para estudo 2 // Ferramentas Básicas de Internet e Web 2.0 1. Sobre a internet, marque a opção correta: A) A internet poder ser definida como uma rede mundial, composta por mihões e milhões

Leia mais

The Eucalyptus Open- source Cloud-computing System. Janaina Siqueira Lara Wilpert Marcelo Scheidt Renata Silva

The Eucalyptus Open- source Cloud-computing System. Janaina Siqueira Lara Wilpert Marcelo Scheidt Renata Silva The Eucalyptus Open- source Cloud-computing System Janaina Siqueira Lara Wilpert Marcelo Scheidt Renata Silva Sumário Introdução Trabalhos Correlatos Eucalyptus Design Conclusões Visão Geral Introdução:

Leia mais

MINICURSO WINDOWS SERVER 2008 UTILIZANDO O VMWARE PLAYER

MINICURSO WINDOWS SERVER 2008 UTILIZANDO O VMWARE PLAYER MINICURSO WINDOWS SERVER 2008 UTILIZANDO O VMWARE PLAYER TÁSSIO JOSÉ GONÇALVES GOMES tassiogoncalvesg@gmail.com MINICURSO WINDOWS SERVER 2008 TÁSSIO GONÇALVES - TASSIOGONCALVESG@GMAIL.COM 1 CONTEÚDO Arquitetura

Leia mais

10/07/2013. Camadas. Principais Aplicações da Internet. Camada de Aplicação. World Wide Web. World Wide Web NOÇÕES DE REDE: CAMADA DE APLICAÇÃO

10/07/2013. Camadas. Principais Aplicações da Internet. Camada de Aplicação. World Wide Web. World Wide Web NOÇÕES DE REDE: CAMADA DE APLICAÇÃO 2 Camadas NOÇÕES DE REDE: CAMADA DE APLICAÇÃO Introdução à Microinformática Prof. João Paulo Lima Universidade Federal Rural de Pernambuco Departamento de Estatística e Informática Aplicação Transporte

Leia mais

Curso: Sistemas de Informação Disciplina: Redes de Computadores Prof. Sergio Estrela Martins

Curso: Sistemas de Informação Disciplina: Redes de Computadores Prof. Sergio Estrela Martins Curso: Sistemas de Informação Disciplina: Redes de Computadores Prof. Sergio Estrela Martins Material de apoio 2 Esclarecimentos Esse material é de apoio para as aulas da disciplina e não substitui a leitura

Leia mais

INTERNET. Surgimento da Internet. Cenário antes do Projeto Arpanet. Aula 04 Prof. André Cardia andre@andrecardia.pro.br. Surgimento da ARPANET

INTERNET. Surgimento da Internet. Cenário antes do Projeto Arpanet. Aula 04 Prof. André Cardia andre@andrecardia.pro.br. Surgimento da ARPANET INTERNET Aula 04 Prof. André Cardia andre@andrecardia.pro.br Surgimento da Internet Projeto militar dos Estados Unidos, em 1969 o departamento de defesa norte americano (DoD), por meio da ARPA (Advanced

Leia mais

Laboratório I 2012. Prof. Hélder Sato MSc. 2/14/12 Laboratório I 1

Laboratório I 2012. Prof. Hélder Sato MSc. 2/14/12 Laboratório I 1 Laboratório I 2012 Prof. Hélder Sato MSc 2/14/12 Laboratório I 1 Apresentação Prof Hélder Sato MSc Bacharel Informática Universidade Positivo Especialista em Redes PUC-PR Mestrado em Informática Aplicada

Leia mais

Capítulo 8 Arquitetura de Computadores Paralelos

Capítulo 8 Arquitetura de Computadores Paralelos Capítulo 8 Arquitetura de Computadores Paralelos Necessidade de máquinas com alta capacidade de computação Aumento do clock => alta dissipação de calor Velocidade limitada dos circuitos => velocidade da

Leia mais

Internet. O que é a Internet?

Internet. O que é a Internet? O que é a Internet? É uma rede de redes de computadores, em escala mundial, que permite aos seus utilizadores partilharem e trocarem informação. A Internet surgiu em 1969 como uma rede de computadores

Leia mais

Prof. Marcelo Cunha Parte 5 www.marcelomachado.com

Prof. Marcelo Cunha Parte 5 www.marcelomachado.com Prof. Marcelo Cunha Parte 5 www.marcelomachado.com Criado em 1974 Protocolo mais utilizado em redes locais Protocolo utilizado na Internet Possui arquitetura aberta Qualquer fabricante pode adotar a sua

Leia mais

SISGEP SISTEMA GERENCIADOR PEDAGÓGICO

SISGEP SISTEMA GERENCIADOR PEDAGÓGICO FACSENAC SISTEMA GERENCIADOR PEDAGÓGICO Projeto Lógico de Rede Versão: 1.2 Data: 25/11/2011 Identificador do documento: Documento de Visão V. 1.7 Histórico de revisões Versão Data Autor Descrição 1.0 10/10/2011

Leia mais

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira Wireshark Captura de Protocolos da camada de aplicação Maicon de Vargas Pereira Camada de Aplicação Introdução HTTP (Hypertext Transfer Protocol) 2 Introdução Camada de Aplicação Suporta os protocolos

Leia mais

FTIN Formação Técnica em Informática Módulo de Administração de Servidores de Rede AULA 02. Prof. Gabriel Silva

FTIN Formação Técnica em Informática Módulo de Administração de Servidores de Rede AULA 02. Prof. Gabriel Silva FTIN Formação Técnica em Informática Módulo de Administração de Servidores de Rede AULA 02 Prof. Gabriel Silva Temas da Aula de Hoje: Revisão da Aula 1. Redes LAN e WAN. Aprofundamento nos Serviços de

Leia mais

GBD. Introdução PROF. ANDREZA S. AREÃO

GBD. Introdução PROF. ANDREZA S. AREÃO GBD Introdução PROF. ANDREZA S. AREÃO Sistema de arquivos X Sistemas de Banco de Dados Sistema de arquivos Sistema de Banco de Dados Aplicativos Dados (arquivos) Aplicativos SGBD Dados (arquivos) O acesso/gerenciamento

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Questões Em uma rede de sobreposição (overlay), mensagens são roteadas de acordo com a topologia da sobreposição. Qual uma importante desvantagem

Leia mais

André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com) Noções de Internet

André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com) Noções de Internet André Aziz (andreaziz.ufrpe@gmail.com) Francielle Santos (francielle.ufrpe@gmail.com) Noções de Internet Noções de Internet: O que é Internet; História da Internet; Recursos da Internet; Serviços não-web.

Leia mais

TCP/IP TCP UDP IP HTTP HTTPS FTP TFTP TELNET POP3 IMAP SMTP SNMP DHCP

TCP/IP TCP UDP IP HTTP HTTPS FTP TFTP TELNET POP3 IMAP SMTP SNMP DHCP TCP/IP TCP UDP IP HTTP HTTPS FTP TFTP TELNET POP3 IMAP SMTP SNMP DHCP HTTP (Hypertext Transfer Protocol ) Protocolo usado na Internet para transferir as páginas da WWW (WEB). HTTPS (HyperText Transfer

Leia mais

Questionário de RC Nota3

Questionário de RC Nota3 Questionário de RC Nota3 Entrega: Individual e escrita à mão. Data de entrega: 30/10. Em todas as questões deverão constar o desenvolvimento da sua resposta, caso contrário a questão será desconsiderada.

Leia mais

Projeto de sistemas O novo projeto do Mercado Internet

Projeto de sistemas O novo projeto do Mercado Internet Projeto de sistemas O novo projeto do Mercado Internet Mercados em potencial de serviços Serviços da Web ftp,http,email,news,icq! Mercados em potencial de serviços FTP IRC Telnet E-mail WWW Videoconferência

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 5 Servidores de Aplicação

Leia mais

Guia de Consulta Rápida HTTP. Décio Jr. Novatec Editora. www.novateceditora.com.br

Guia de Consulta Rápida HTTP. Décio Jr. Novatec Editora. www.novateceditora.com.br Guia de Consulta Rápida HTTP Décio Jr. Novatec Editora www.novateceditora.com.br Guia de Consulta Rápida HTTP de Décio Jr. Copyright 2001 da Novatec Editora Ltda. Todos os direitos reservados. É proibida

Leia mais

GESTÃO DE SISTEMAS OPERACIONAIS II

GESTÃO DE SISTEMAS OPERACIONAIS II GESTÃO DE SISTEMAS OPERACIONAIS II Servidores Definição Servidores História Servidores Tipos Servidores Hardware Servidores Software Evolução do Windows Server Windows Server 2003 Introdução Windows Server

Leia mais

Professor: Macêdo Firmino Disciplina: Redes de Computadores II

Professor: Macêdo Firmino Disciplina: Redes de Computadores II Professor: Macêdo Firmino Disciplina: Redes de Computadores II Na aula de hoje iremos conhecermos e relembrarmos duas ferramentas do Windows, chamadas de ipconfig e nslookup. Além disso, iremos discutirmos

Leia mais

PARANÁ GOVERNO DO ESTADO

PARANÁ GOVERNO DO ESTADO PROTOCOLOS DA INTERNET FAMÍLIA TCP/IP INTRODUÇÃO É muito comum confundir o TCP/IP como um único protocolo, uma vez que, TCP e IP são dois protocolos distintos, ao mesmo tempo que, também os mais importantes

Leia mais

Professor(es): Fernando Pirkel. Descrição da(s) atividade(s):

Professor(es): Fernando Pirkel. Descrição da(s) atividade(s): Professor(es): Fernando Pirkel Descrição da(s) atividade(s): Definir as tecnologias de redes necessárias e adequadas para conexão e compartilhamento dos dados que fazem parte da automatização dos procedimentos

Leia mais

Cap 03 - Camada de Aplicação Internet (Kurose)

Cap 03 - Camada de Aplicação Internet (Kurose) Cap 03 - Camada de Aplicação Internet (Kurose) 1. Qual a diferença entre um Programa de computador e um Processo dentro do computador? R. Processo é um programa que está sendo executado em uma máquina/host,

Leia mais

Módulo 11 A Web e seus aplicativos

Módulo 11 A Web e seus aplicativos Módulo 11 A Web e seus aplicativos Até a década de 90, a internet era utilizada por acadêmicos, pesquisadores e estudantes universitários para a transferência de arquivos e o envio de correios eletrônicos.

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES CURSO TÉCNICO DE INFORMÁTICA Módulo A REDES DE COMPUTADORES Protocolos de Rede FALANDO A MESMA LÍNGUA Um protocolo pode ser comparado a um idioma, onde uma máquina precisa entender o idioma de outra máquina

Leia mais

Metas de um Sistema Distribuído

Metas de um Sistema Distribuído Metas de um Sistema Distribuído Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

Aula 1 Cleverton Hentz

Aula 1 Cleverton Hentz Aula 1 Cleverton Hentz Sumário da Aula Introdução História da Internet Protocolos Hypertext Transfer Protocol 2 A Internet é um conjunto de redes de alcance mundial: Comunicação é transparente para o usuário;

Leia mais

Trabalho de Sistemas Distribuídos

Trabalho de Sistemas Distribuídos Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Petrópolis 2015, v-1.0 Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Trabalho sobre sistemas distribuídos e suas tecnologias. Universidade

Leia mais

Cluster HPC High Performance Computing.

Cluster HPC High Performance Computing. Faculdade de Tecnologia de Guaratinguetá. doze, março de 2009. Cluster HPC High Performance Computing. Diogo Salles, Thiago Pirro, Camilo Bernardes, Paulo Roberto, Ricardo Godoi, Douglas, Fauzer. Sistemas

Leia mais

Redes de Computadores. Funcionamento do Protocolo DNS. Consulta DNS. Consulta DNS. Introdução. Introdução DNS. DNS Domain Name System Módulo 9

Redes de Computadores. Funcionamento do Protocolo DNS. Consulta DNS. Consulta DNS. Introdução. Introdução DNS. DNS Domain Name System Módulo 9 Slide 1 Slide 2 Redes de Computadores Introdução DNS Domain Name System Módulo 9 EAGS SIN / CAP PD PROF. FILIPE ESTRELA filipe80@gmail.com Ninguém manda uma e-mail para fulano@190.245.123.50 e sim para

Leia mais

Introdução. Ciência da Computação DESENVOLVIMENTO DE APLICAÇÕES PARA WEB. Claudinei Dias email: prof.claudinei.dias@gmail.com

Introdução. Ciência da Computação DESENVOLVIMENTO DE APLICAÇÕES PARA WEB. Claudinei Dias email: prof.claudinei.dias@gmail.com Ciência da Computação DESENVOLVIMENTO DE APLICAÇÕES PARA WEB Introdução Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com INTERNET Criada a ARPANET em 1970 com a finalidade de conectar departamentos

Leia mais

Capítulo 5 Noções sobre TCP/IP

Capítulo 5 Noções sobre TCP/IP Capítulo 5 Noções sobre TCP/IP Endereços IP Arquitetura TCP/IP DHCP Redes classe A, B e C Protocolos TCP/IP Estudos complementares 3 Estudos complementares Consulte os capítulos 5 e 12 do livro: Capítulo

Leia mais

SISTEMAS OPERACIONAIS. 01) Considere as seguintes assertivas sobre conceitos de sistemas operacionais:

SISTEMAS OPERACIONAIS. 01) Considere as seguintes assertivas sobre conceitos de sistemas operacionais: SISTEMAS OPERACIONAIS 01) Considere as seguintes assertivas sobre conceitos de sistemas operacionais: I. De forma geral, os sistemas operacionais fornecem certos conceitos e abstrações básicos, como processos,

Leia mais

BANCO DE DADOS CONTEÚDO INFORMÁTICA. Prof.: MARCIO HOLLWEG mhollweg@terra.com.br BANCO DE DADOS SGBD TABELA CONCEITOS BÁSICOS

BANCO DE DADOS CONTEÚDO INFORMÁTICA. Prof.: MARCIO HOLLWEG mhollweg@terra.com.br BANCO DE DADOS SGBD TABELA CONCEITOS BÁSICOS CONTEÚDO HARDWARE - 2 AULAS SISTEMA OPERACIONAL - 2 AULAS INFORMÁTICA Prof.: MARCIO HOLLWEG mhollweg@terra.com.br APLICATIVOS OFFICE - 3 AULAS INTERNET - 1 AULA REDE - 2 AULA SEGURANÇA - 1 AULA BANCO DE

Leia mais