Informações Principais
     Resumo
     Abstract
     Introdução
     Conclusão
     Download
  
  
  
 
Introdução
 
 
Acadêmico(a): Júlio César Zimermann
Título: Protótipo para Simulação da Difução do Calor em um Ambiente Distribuído com Carga Balanceada
 
Introdução:
A termodinâmica apresenta como um de seus temas o estudo de modelos de difusão térmica, onde são abordados fenômenos de transferência de calor. Dentro deste tema são discutidas as formas como o calor se propaga em diferentes matérias. Supondo-se uma chapa de um material sólido, homogêneo e que permita a difusibilidade térmica constante, de comprimento (L1) e largura (L2) iguais, desprezando-se a espessura, perdas de calor e constantes de difusibilidade térmica. Considerando-se que haja nas extremidades desta chapa quatro fontes de calor, com temperaturas constantes e de diferentes valores. Partindo-se deste modelo acima descrito, apresenta-se um problema de condutividade de calor, onde o calor das regiões mais quentes migra para as regiões mais frias, ao longo do tempo, até que haja equilíbrio (Wolgemuth, 1996, p.289). Discretizando-se esta chapa em partículas de tamanhos conhecidos e através de métodos de cálculos discutidos pela álgebra linear, como o método de Gauss-Seidel, modelado por Hein (2000), pode-se obter a temperatura numérica de cada partícula. O modelo acima proposto foi trabalhado culminando no desenvolvimento de um protótipo, para computadores, implementado em Delphi 5.0, utilizando a modelagem funcional definida por Furlan (1998), conforme ilustrado na fig. 1. Nesta aplicação, fornece-se a temperatura inicial, de quatro fontes de calor, uma em cada extremidade de uma chapa quadrada, para que após o processamento matemático seja apresentada, através de uma interface gráfica, as isofaixas de temperaturas, distintas uma das outras através de cores. Ao utilizar-se este protótipo, implementado em Delphi e com modelagem funcional, concluiu-se que o mesmo era lento no caso de se discretizar a chapa em um número maior de elementos ou determinar uma maior precisão, também chamado de erro, do resultado. A constatação de a estratégia adota para o processamento desta primeira versão, desenvolvida em Delphi, é lenta motivou o desenvolvimento de novas estratégias, utilizando a modelagem orientada a objetos e desenvolvendo um ambiente distribuído, abandonando a linguagem Object Pascal (Delphi), buscando uma nova opção entre as linguagens disponíveis, no caso espefícico optou-se por Java, atraído pelas facilidades encontradas na literatura sobre Java RMI. Uma proposta, para solucionar o problema do tempo de processamento, é o de dividir o cálculo algébrico entre vários computadores, que processem uma porção do problema paralelamente. Considerando-se que um sistema de objetos distribuídos pode adotar uma estrutura cliente-servidor, a invocação de métodos remotos permite que diferentes objetos em diferentes computadores se comuniquem, através de chamadas a objetos remotos. (Deitel, 2001, p. 891). Assim, através de um sistema de processamento paralelo distribuído pode-se discretizar o problema da condutividade do calor, particionando as unidades de processamento. Uma unidade gestora (cliente) divide o sistema de equações para cálculo da temperatura em sistemas menores e os envia para unidades de cálculo (servidores de cálculo), distribuídas ao longo de uma rede de computadores, para que processem paralelamente uma porção dos cálculos e retornem o resultado, seqüencialmente até que uma certa tolerância numérica, determinada como o equilíbrio térmico seja alcançada, chegando-se à solução numérica do problema. Esta aplicação gestora deve promover a distribuição estática de carga entre as unidades de cálculo que apresentarem melhor desempenho ao longo do tempo de processamento. A distribuição estática de carga solicita alocação de recursos antes do processamento numérico do problema. Um modelo de distribuição dinâmica de carga, ao contrário do estático, re-aloca recursos em tempo de execução, o que aumenta o tráfego de mensagens entre os módulos (cliente/servidor) (Hull, 1994), aumentando o tempo de processamento da aplicação. Desta forma, o modelo estático foi escolhido como base para a arquitetura a ser implementada neste trabalho. Como um sistema distribuído apresenta como características a utilização de objetos escritos numa mesma linguagem de programação, com diferentes sistemas operacionais, diferentes máquinas e com diferente capacidade de processamento (Júnior, 2001, p. 146), através do balanceamento de carga analisa-se a carga sobre todos os recursos disponíveis para determinar qual a melhor opção de alocação destes recursos (Balen, 2000, p. 232). O propósito do presente trabalho é desenvolver duas aplicações, uma stand-alone e outra distribuída com balanceamento de carga e comparar o seu desempenho. Ambas aplicações serão concebidas utilizando o modelo orientado a objetos. Rumbaugh (Rumbaugh apud Furlan, 1998, p. 15) define orientação a objeto como “uma nova maneira de pensar os problemas utilizando modelos organizados a partir de conceitos do mundo real. O componente fundamental é o objeto que combina estrutura e comportamento em uma única entidade”. Por opção do autor do presente trabalho a aplicação desenvolvida em Delphi 5.0 foi descartada e utiliza-se a Interface de Programação de Aplicações JavaTM 2 (API – Applications Programming Interface – JavaTM 2), versão 1.4.0_2, Standard Edition, para o desenvolvimento de ambos os protótipos, criando uma base mais sólida para a comparação dos protótipos. O protótipo distribuído utiliza os recursos de Java RMI, que é a tecnologia que permite a comunicação distribuída de um objeto Java com outro. “Uma vez que um método (ou serviço) de um objeto Java é registrado como sendo remotamente acessível, um cliente pode pesquisar este serviço e receber uma referência que permita ao cliente utilizá-lo, isto é, chamar o método” (Deitel, 2001, P. 891).