O uso de "applets" Java na
Internet
para
cálculos de Engenharia de Alimentos.
Enrique Ortega
Departamento de Engenharia
de Alimentos DEA, FEA, Unicamp
Campinas, SP, maio de 2001
Introdução
Em diversas universidades do mundo os docentes responsáveis pelas disciplinas de introdução à programação de computadores ou de informática aplicada à engenharia estão se defrontando com a questão seguinte:
Convém adotar a linguagem Java na Universidade?
A linguagem de programação Java oferece grandes vantagens (custo mínimo e recursos modernos) mas por outro lado, também apresenta desvantagens consideráveis (dificuldade de uso e grande risco de perda do investimento em adaptação do sistema computacional local).
Decidimos preparar uma versão em Java do
nosso material didático na Internet: http://www.unicamp.br/fea/ortega/info/curso/welcome.htm
para descobrir a razão custo/benefício
relativa à adoção desta linguagem de programação.
Principais vantagens de Java:
Principais desvantagens de Java:
Material e Método
Fizemos três testes de programação em Java, cada um dos quais com grau crescente de dificuldade.
Aplicativo estudado:
Foi escolhido, para exercício de tradução, o programa de cálculo de uma bomba para água escrito em Pascal e apresentado no II Workshop de Ferramentas de Cálculo Computacional para Engenharia de Alimentos organizado pelo Programa de Ciência e Tecnologia para o Desenvolvimento de Ibero-América (CYTED) na cidade de Puebla, no México (Ortega e colaboradores, 1994).
A linguagem Java pode ser considerada uma evolução da linguagem C que usa alguns recursos da programação gráfica similares aos existentes em Delphi ou Visual Basic. Ela possibilita a elaboração de dois tipos de programas: aplicativos e "applets". Os primeiros rodam no sistema operacional, os segundos rodam nos "browsers" ou navegadores da Internet. Devido ao nosso interesse em educação à distância usando a Internet excluímos do trabalho os aplicativos e privilegiamos a elaboração de "applets" para Internet.
Figura 1. Vista da apresentação inicial do applet.
A linguagem Java exige uma mudança de paradigma na elaboração de programas. Ela disponibiliza 1500 classes ou recursos de programação prontos para serem usados. O trabalho do programador é aprender a usar esses recursos, de acordo com as regras de sintaxe e lógica da linguagem.
Fora isso é necessário aprender a técnica de preparação de applets que consiste de três etapas, sempre usando o Editor ConTEXT:
1. Escrever o programa (o código fonte) e gravar como arquivo-texto com a extensão .java
2. Compilar o programa (estando dentro de ConTEXT) para produzir um código binário que será gravado com a extensão .class
Quadro de componentes disponíveis indicando suas bibliotecas.
No programa usamos alguns desses objetos, os quais listamos a seguir.
Tabela1. Componentes do programa:
Caixas de texto |
TextField tf28Hz = new TextField("",4);
|
Rótulos |
add(new Label("Q m3/h",Label.RIGHT)); |
Botão de ação |
Button button = new Button("Calculo"); add(button); |
Formatação de texto (decimais) |
NumberFormat.getNumberInstance(); |
Diagramação tipo grade |
setLayout(new GridLayout(14,2,4,4)); |
Variáveis |
Double Q, Temp, Alt; |
Método ou função |
double Reynolds(double D, double V, double Dens, double Visc) |
Entrada de valores |
Q = Double.valueOf(tf01Q.getText()).doubleValue(); |
Cálculos |
Re = Reynolds(Dr,
((Q/(3600*0.785*Dr*Dr))), 1000*Ro, 0.001*Mu);
|
Saída de valores |
tf28Hz.setText(String.valueOf(nf2.format(Hz))); |
Figura 2. Applet mostrando resultados.
Tabela 2. Estrutura do programa CalcBomba.java gerador de CalcBomba.class:
Pacotes ou Bibliotecas usadas
Início da classe
CalcBomba derivada da classe Applet
Etapa de inicialização Teste de evento realizado
pelo usuário Ações de programação
decorrentes da intervenção do usuário
Finalização da classe |
import
java.applet.*; public class CalcBomba
extends Applet public void
init() public
boolean action(Event evt, Object arg) } |
Tabela 4. Código da página web CalcBomba.htm:
Cabeçalho da página Referência ao arquivo usado pelo applet e tamanho da janela Fechamento da página |
<HTML> <APPLET CODE="CalcBomba.class" </BODY> |
Variáveis fornecidas inicialmente
Q |
Vazão de água |
m3/h |
T |
Temperatura da água |
Celsius |
Alt |
Altura sobre o nível do mar |
m |
Resultados e dados iniciais que dependem de Q, T e Alt.
Ro |
Densidade |
kg/ m3 |
Mu |
Viscosidade |
CentiPoise |
Pv |
Pressão de vapor |
atm |
Pa |
Pressão atmosférica |
atm |
Ve |
Velocidade econômica |
m/s |
Dsug |
Diâmetro sugerido |
m |
Variáveis a ser fornecidas após primeiros cálculos
Dver |
Diâmetro real |
m |
Rug |
Rugosidade relativa da tubulação |
m |
Variáveis complementares
z1 |
altura na boca de sucção |
m |
z2 |
altura na boca de descarga |
m |
zb |
altura na bomba |
m |
p1 |
pressão na boca de sucção |
atm |
p2 |
pressão na boca de descarga |
atm |
Lsuc |
comprimento total da linha de sucção |
m |
Vals |
válvulas na linha de sucção |
número |
Acss |
acessórios na linha de sucção |
número |
Lrec |
comprimento total da linha de recalque |
m |
Valr |
válvulas na linha de recalque |
número |
Acsr |
acessórios na linha de recalque |
número |
DP |
perda de carga adicional no recalque |
atm |
Ef |
eficiência |
centesimal |
Resultados parciais
Re |
Número de Reynolds |
adimensional |
fD |
Fator de fricção de Darcy |
adimensional |
Resultados finais
Hz |
altura da bomba devida a desnível físico |
m |
Hp |
altura da bomba devida a pressão |
m |
Has |
altura da bomba pelo atrito na sucção |
m |
Har |
altura da bomba pelo atrito no recalque |
m |
Hb |
altura da bomba |
metros de coluna de água |
pr |
pressão na boca de recalque |
atm |
ps |
pressão na boca de sucção |
atm |
NPSH |
altura disponível na sucção |
metros de coluna de água |
CV |
Cavalos necessários no motor |
CV |
US$/h |
Custo de operação por hora |
dolares/hora |
k1 |
constante da equação do encanamento |
m |
k2 |
constante da equação do encanamento |
m/(m3/hora)2 |
Resultados do trabalho:
Conseguimos preparar um programa que roda na Internet, mas somente depois de testar sem sucesso várias versões preliminares do programa, que foram implementadas seguindo as recomendações de diversos livros (1, 2, 3, 4). Todas as versões rodavam no visualizador do Java (appletviewer), porém nem todas funcionavam nos browsers (Internet Explorer e Netscape Navigator). Descobrimos que as soluções propostas nos livros nem sempre funcionam! As explicações são difíceis, entre elas podemos citar:
1. Erros de lógica cometidos pelos programadores (solucionados por meio de estudo dos manuais da linguagem);
2. Como usamos Java 1.3 a versão do compilador disponível no ano 2000, observamos muitos erros de sintaxe ao implementar em nos nossos programas alguns códigos obtidos de programas feitos com versões anteriores do compilador: Java 1,1 (1995) e Java 1.2 (1998). Alguns desses erros eram inócuos para fins de uso do appletviewer porém davam problema nos browsers, outros erros, mais graves, não permitiam a compilação do programa.
3. Na maioria dos livros achamos códigos para as versões 1.1 do compilador que os principais browsers na época (1997-1999) deveriam reconhecer obrigatoriamente. Descobrimos nessa época que os applets preparados com a versões 1.2 e 1.3 ("Java2") não eram reconhecidos por todos os browsers e que tinha que ser instalado um "plug-in específico" no browser.
O applet CalcBomba.class
funciona corretamente mais ainda pode receber melhoras, foi colocado na
Internet, no endereço:
http://www.unicamp.br/fea/ortega/info/cursojava/CalcBomba.htm
O programa realizado pode ser considerado como um primeiro passo na elaboração da versão em Java do programa de cálculo de bombas para fluidos. Planejamos incorporar filtros para os valores fornecidos pelo usuário, aprimorar as correlações empregadas e incorporar uma rotina gráfica que mostre o gráfico da equação do encanamento.
Figura 3. Programa rodando na Internet
Conclusões:
a. É possível preparar e colocar aplicativos de cálculo de Engenharia de Alimentos para rodar diretamente na Internet;
b. O uso da versão gratuita da linguagem demanda um esforço adicional de treinamento para compilar no ambiente do sistema operacional. Este esforço foi facilitado quando passamos a usar o editor ConTEXT;
c. Deve-se aprender a programar em HTML para inserir os aplicativos ("applets") em páginas web;
d. Deve-se ter acesso a algum provedor de serviços da rede internet e aprender a usar a ferramenta FTP para transferir os arquivos;
e. A linguagem é difícil e demanda bastante tempo de leitura e prática de programação para sua aprendizagem;
Tarefas futuras:
Um esforço adicional de análise deve ser feito no futuro para:
Somente depois da realização destas tarefas poderemos nos posicionar sobre a conveniência de adotar esta linguagem, porém consideramos que as perspectivas são boas.
Bibliografia:
1. Chan, M. C.; Griffith, S.W. & Iasi, A. F. "Java 1001 dicas de programação". Editora MAKRON Books, São Paulo, 1999.
2. Lemay, L. & Cadenhead, R. "Aprenda Java em 21 dias". Editora Campus - Sams, Rio de Janeiro, 1999.
3. Holzner, S. "La Biblia de Java 2", Ediciones Anaya Multimedia, Madrid, 2000.
4. Niemayer, P. & Knudsen,, J. "Aprendendo Java". Editora Campus - O´Reilly, Rio de Janeiro, 2000.
5. Ortega, E.; D`Aquarone, V.; Rodrigues, M.I.; Menegalli, F. C. "Programa para cálculo de bombas para alimentos, con gráfico del sistema", II Taller de Herramientas de Cálculo Computacional CYTED, Puebla, México. Editora UPV, Valencia, España, 1994. http://www.upv.es/dtalim/herraweb.htm (2/3/2001).
6. Ortega, E.; Kontur, S.; Basler, M. & Duarte, C. M. "Programas em Java para Modelagem e Simulação de Ecossistemas", FEA, Unicamp, 2000. http://www.unicamp.br/fea/ortega/java/index.htm (2/3/2001).
7. Ortega, E. & Scachetti, A. C. "Programação em Java (Applets AWT) - Aulas de introdução", FEA, Unicamp, 2001. http://www.unicamp.br/fea/ortega/info/curso/welcome.htm (2/3/2001).