|
Acadêmico(a): Rodrigo Siewerdt |
Título: Sistema Escalonador de Requisições para Servidores de Aplicações Distribuídas |
|
Introdução: |
A constante busca por inovação tecnológica e o crescimento do setor de informática nas últimas décadas, com aplicativos cada vez mais complexos para atender necessidades do mercado, provocou o aumento da robustez nas operações executadas pelos sistemas de controle de informações. Por sua vez, a complexidade envolvida evidenciou a necessidade de computadores cada vez mais potentes, devido ao elevado processamento necessário para estas tarefas. Para amenizar essa deficiência, surgiu o conceito de sistemas distribuídos, partilhando a execução das tarefas e reduzindo a sobrecarga nos servidores de aplicações. Além de colaborar para o aumento do desempenho, são também propriedades dos sistemas distribuídos maior flexibilidade e robustez. Flexibilidade diz respeito à adaptação às mudanças de ambiente sem perder funcionalidade e sem necessidade de alteração da estrutura do sistema. Assim devem permitir a adição ou retirada de componentes para atender novos requisitos. Por sua vez, a robustez indica o funcionamento do sistema após uma falha. Esta característica tem forte relação com os aspectos de redundância, natural nos sistemas distribuídos, observandose que existe uma certa independência dos diversos componentes. Isto agrega um certo grau de confiabilidade à aplicação que utiliza essa estrutura, dizem Queiroz e Cunha (1994). De acordo com Lages e Nogueira (1986), o conceito de sistemas de processamento distribuído é um dos campos de pesquisa e desenvolvimento de maior significado na aplicação de computadores. O interesse por sua utilização se deve ao rápido crescimento da tecnologia de circuitos integrados, que torna os mini e microcomputadores cada vez mais poderosos, utilizando processadores com capacidades extremamente maiores e com recursos antes inimagináveis, a um custo bastante acessível, tornando viável o processamento integrado de sistemas complexos de forma distribuída, levando-se em conta as necessidades cada vez mais sofisticadas e apuradas dos usuários. Segundo Elasser, Monien e Preis (2000), um desafio na construção de sistemas distribuídos é promover o deslocamento da carga de servidores sobrecarregados para equipamentos que estejam sem ou com nível baixo de carga. Este contexto vem estimulando estudos sobre a otimização do balanceamento de carga para aplicações distribuídas em redes de computadores e estações de trabalho. Nas abordagens tradicionais de estratégias de balanceamento de carga em servidores distribuídos, o processo é contínuo e iterativo e, geralmente, dividido em monitorar a carga dos servidores por um determinado tempo, determinar a quantidade de carga que deve migrar para outros servidores baseando-se na observação efetuada e migrar a carga estabelecida. Porém, existe um problema envolvendo esse processo, que diz respeito ao tempo utilizado nas observações. Caso seja pequeno demais, o custo de migração poderá ser muito alto e o balanceamento pode não surtir efeito. Por outro lado, se o tempo for muito grande, o desbalanceamento pode perdurar o bastante, chegando a afetar o desempenho global dos servidores. Sendo assim, a determinação do tempo é uma questão imprescindível e depende de características tanto do sistema quanto da aplicação. Outra técnica utilizada para evitar a sobrecarga é descrita como escalonamento de processos. Pela ótica de Bodart et al (2004), essas atividades tem grande importância na utilização de sistemas distribuídos, sendo que o melhor desempenho e a otimização dos sistemas estão intimamente ligados com o uso adequado da capacidade de processamento oferecido pela estrutura instalada. É com este intuito que o trabalho em questão está sendo proposto, buscando-se desenvolver uma nova ferramenta no tratamento do escalonamento dos processos solicitados,visando equilibrar as tarefas de processamento dos sistemas, possibilitando um melhor uso dos recursos disponibilizados. Para aumentar o desempenho dos sistemas e reduzir os custos de obtenção e manutenção dos equipamentos, utiliza-se o conceito de processamento distribuído, onde ocorre a distribuição das operações de um sistema entre vários equipamentos. Utilizando esta tecnologia não existe a necessidade de servidores muito robustos para atender essa condição, porém as tarefas continuam igualmente rápidas e seguras. Para alcançar esse objetivo, entretanto, é necessário observar alguns detalhes e sanar alguns possíveis problemas através de uma aplicação externa, com finalidade de evitar a sobrecarga dos servidores e distribuir as requisições de operações advindas dos clientes, de forma transparente e homogênea, levando em consideração a disponibilidade de recursos dos equipamentos utilizados (servidores). |
|
|