Capa
PROCERGS - Cia. de Processamento de Dados
do Estado do Rio Grande do Sul
Impressão
CORAG – Companhia Rio-Grandense de Artes Gráficas
Tiragem
3.000 exemplares
II Workshop sobre Software Livre – WSL2001
(2. : 2001 29 a 31 de maio: Porto Alegre, RS)
Anais / II Workshop sobre Software Livre – WSL2001; editores
Roland Teodorowitsch e Benhur Stein, Porto Alegre, 29 a 31 de maio de
2001. Porto Alegre : Sociedade Brasileira de Computação, 2001.
viii, 66p. ; 29,7cm
1. Software 2. Software Livre 3. Programa I. Título II.
Teodorowitsch, Roland. III. Stein, Benhur.
Endereço:
CORAG – Companhia Rio-Grandense de Artes Gráficas
Av. Cel. Aparício Borges, 2199 – Porto Alegre, RS, Brasil
Telefone: PABX: (51) 339-4242 – Fax: (51) 336-6912
Site: http://www.corag.rs.gov.br
SUMÁRIO
PREFÁCIO ................................................................................................................... v
COMISSÕES .............................................................................................................. vii
SOCIEDADE BRASILEIRA DE COMPUTAÇÃO .................................................viii
Aplicação de Software Livre
Disponibilidade, Detecção e Recuperação de Erros no SGBD Interbase 4.0
Utilizando Software Livre ............................................................................................ 1
Paulo Ricardo Rodegheri, Taisy Silva Weber
O Uso de Software Livre no Desenvolvimento de Aplicações Orientadas a
Objetos para a Web ....................................................................................................... 5
Guilherme Silva de Lacerda, Claudimir Zavalik
Programa de Fomento à Pesquisa: Sistema de Workflow Baseado na Internet ........... 9
Alexandre Cervieri, Tânia R. da Cruz
Desenvolvimento de Software Livre
ANNeF – Artificial Neural Networks Framework: Uma Solução Software
Livre para o Desenvolvimento, Ensino e Pesquisa de Aplicações de
Inteligência Artificial Multiplataforma ...................................................................... 13
João Ricardo Bittencourt, Fernando Osório
Plataforma F@MILIA: Software Livre para o Programa de Saúde da Família ........ 17
Edgard de Faria Corrêa, Heitor G. de A. Figueira, Ivan Saraiva Silva,
Kátia Maria T. da Silva
SkelMod-3D: Um Sistema Livre e Multiplataforma para Modelagem e
Visualização de Corpos Articulados ........................................................................... 21
Rodrigo Berggevist Martins, Anderson Maciel, Luciana Porcher Nedel
Projeto Sistemas Avançados para Comunicação Eletrônica – Software Aberto
de Correio, Agenda e Catálogo .................................................................................. 25
Cláudio F. R. Geyer, Clairmont Borges, Patrícia Kayser Vargas,
Débora Nice Ferrari, Christiano Otero Ávila, Adenauer Correa Yamin,
Cristiano Cachapuz e Lima, Luiz Cláudio Dalmolin, Ricardo Balinski
SAGU, Um Ano Depois... .......................................................................................... 29
Cesar Augusto de Azambuja Brod, Maurício de Castro, Fábio Wiebbelling,
Pablo Dall’Oglio, Vilson Cristiano Gärtner, João Alex Fritsch,
Paulo Mallmann, Ana Paula Fiegenbaum, Thomas Sprietersbach
iii
Software Livre e Processamento de Alto Desempenho
CPAD-PUCRS/HP: GNU/Linux como Plataforma para Pesquisa em Alto
Desempenho ............................................................................................................... 33
Tiago Coelho Ferreto, Fausto Richetti Blanco,
Marco Aurélio Stelmar Netto, César Augusto Fonticielha De Rose
Ferramentas para Desenvolvimento de um Ambiente de Programação sobre
Agregados ................................................................................................................... 36
Alex Sandro Garzão, Lucas Correia Villa Real,
Gerson Geraldo H. Cavalheiro
Software Livre e Educação
FMC-Net: um Ambiente de Suporte ao Ensino Integrado dos Fundamentos
Matemáticos da Ciência da Computação utilizando o ZOPE .................................... 40
Raquel Mello de Miranda, Graçaliz Pereira Dimuro,
Antônio Carlos da Rocha Costa
Free Software in Superior Education: Talking about Freedom to Future
Professionals ............................................................................................................... 43
Willians Jorge Rodrigues, Francisco José Monaco, Adilson Gonzaga,
Manoel Luis de Aguiar
ROODA – Rede cOOperativa De Aprendizagem – Um Software Livre para
a Educação à Distância ............................................................................................... 46
Patricia Alejandra Behar, Juliano de Vargas Bittencourt,
Silvia de Oliveira Kist
Uso de Linux em Aulas do Ensino Fundamental ....................................................... 50
Elemar Marius Berbigier, César Luis Uhry Lauxen
Migração, Laboratórios e Gerência de Recursos
Laboratórios de Informática: Otimizando Recursos .................................................. 53
Frederico Henrique Goldschmidt Neto
Projeto de Migração da Plataforma de Sortware Proprietário para Software
Aberto na UCS ........................................................................................................... 57
Alexandre M. Ribeiro, Heitor Strogulski
Protótipo de Laboratório de Ensino Baseado no PC-Popular em Ambiente
Cliente-Servidor ......................................................................................................... 60
Gicele Martins Teixeira de Souza, Jonilson Batista Campos,
Rômulo Batista Corrêa de Sá, Ulisses Azevedo Leitão
Um Modelo de Gestão Eficiente de Recursos Computacionais ................................ 63
Marcos Castilho, Renato Carmo, Roberto Hexsel
iv
PREFÁCIO
O II Workshop sobre Software Livre – WSL2001, promovido pela Sociedade
Brasileira de Computação (SBC), secretaria do Rio Grande do Sul, e organizado por
uma equipe formada por membros de diversas universidades, é realizado paralelamente ao Fórum Internacional Software Livre 2001. Seu principal objetivo é oferecer à
comunidade acadêmica um espaço para a divulgação de trabalhos e idéias relacionados
ao software livre, ao mesmo tempo que permite que a sociedade tome conhecimento
sobre os rumos da pesquisa nesta área.
O Fórum Internacional Software Livre ocorreu pela primeira vez no início de
maio de 2000. A realização deste Fórum está fortemente ligada ao Projeto Software
Livre RS, uma iniciativa do Governo do Estado do Rio Grande do Sul e de uma série
de universidades e entidades, tanto públicas quanto privadas, cujo principal objetivo é
incentivar o estudo, a pesquisa e a divulgação do tema, viabilizando a adoção de soluções baseadas em software livre em todos os segmentos da sociedade.
Ao longo da organização da primeira edição do Fórum Internacional Software
Livre, a sua Comissão Organizadora detectou a necessidade de realizar um evento
técnico que pudesse servir como um painel da aplicação e do desenvolvimento de
software livre no ambiente acadêmico. Foi então solicitado à SBC e às universidades
que integravam a Comissão Organizadora do Fórum, que fosse organizado um evento
acadêmico contemplando o tema “Software Livre”. Este evento acadêmico recebeu o
nome de Workshop sobre Software Livre (WSL) e foi organizado inicialmente pelas
seguintes instituições: SBC, Centro Universitário FEEVALE, Universidade Federal do
Rio Grande do Sul (UFRGS), Universidade Luterana do Brasil (ULBRA) e Universidade do Vale do Rio dos Sinos (UNISINOS).
A primeira edição do WSL foi um sucesso, superando as expectativas da sua
própria Comissão Organizadora. E foi com grande satisfação que aceitamos a responsabilidade e o desafio de organizar o WSL2001.
Para a organização do WSL2001 foram acrescentados novos membros às suas
comissões. A Comissão Organizadora passou a contar com a participação da Pontifícia
Universidade Católica do Rio Grande do Sul (PUCRS), além de FEEVALE, UFRGS,
ULBRA e UNISINOS. A Comissão de Programa, por sua vez, passou a ser formada
por membros das seguintes instituições: FEEVALE, PUCRS, UFRGS, ULBRA,
UNISINOS, Universidade Federal do Rio Grande do Norte (UFRN), Universidade
Federal de Santa Maria (UFSM) e UNIVATES – Centro Universitário.
v
Também alegra-nos muito saber que, em sua segunda edição, o WSL cresceu e há
indícios de que continuará crescendo nos próximos anos. Pode-se tomar, como indicador
deste crescimento, o número de artigos submetidos. Em 2000, foram submetidos 29 artigos. Em 2001, tivemos 42 submissões. Esta tendência de crescimento, implicará uma
série de reorganizações principalmente na Comissão de Programa do WSL. A principal
delas diz respeito à formação de uma Comissão de Avaliação, que será responsável pela
seleção dos artigos para publicação. Atualmente a Comissão de Programa é responsável
também por esta atividade.
A avaliação de artigos seguiu os mesmos critérios adotados na versão anterior do
WSL. Cada trabalho foi analisado por um grupo de avaliadores, cujas áreas de interesse
estivessem em concordância com a área do artigo e que não tivessem qualquer vínculo
com as instituições de origem dos artigos. Os critérios de avaliação considerados foram:
legibilidade (30% da avaliação), relevância (40%) e mérito técnico (30%). Os trabalhos
foram classificados de acordo com a sua média final, sendo selecionados os artigos que
obtiveram nota maior ou igual a 7. Desta forma, foram selecionados os 18 artigos que
fazem parte deste volume.
Estes artigos foram classificados em 5 grupos que contemplam:
• a aplicação de software livre;
• o desenvolvimento de software livre;
• o sofware livre e o processamento de alto desempenho;
• o software livre e a educação; e
• a migração, os laboratórios e a gerência de recursos.
Gostaríamos, por fim, de deixar registrados os nossos agradecimentos a todos que
tem colaborado para a realização do Fórum e deste Workshop. Em especial: aos patrocinadores do Fórum; às entidades que emprestaram seus membros às nossas comissões
organizadora e de programa; aos autores, que submeteram seus artigos e que prontamente enviaram-nos a versão final de seus trabalhos para publicação; à Comissão de Programa do WSL, que avaliou voluntariamente os artigos e que tem se esforçado para que o
nível científico do Workshop cresça juntamente com o número de submissões de artigos;
e, por fim, à Companhia de Processamento de Dados do Estado do Rio Grande do Sul
(PROCERGS) e à Companhia Rio-Grandense de Artes Gráficas (CORAG), pelo apoio
na impressão dos Anais do WSL2001.
Roland Teodorowitsch (ULBRA)
Coordenador da Comissão Organizadora
Benhur Stein (UFSM)
Coordenador da Comissão de Programa
Porto Alegre, maio de 2001.
vi
COMISSÕES
Comissão Organizadora do WSL2001
César Augusto Fonticielha De Rose (PUCRS)
Denise Bandeira da Silva (UNISINOS)
Douglas Kellermann (FEEVALE)
Luciana Porcher Nedel (UFRGS/PUCRS)
Roland Teodorowitsch (ULBRA) – Coordenador
Comissão de Programa do WSL2001
Benhur Stein (UFSM) – Coordenador
Denise Bandeira da Silva (UNISINOS)
Fernando Santos Osório (UNISINOS)
Francisco Assis Moreira do Nascimento (ULBRA)
Gilberto Fernandes Marchioro (ULBRA)
Ivan Saraiva Silva (UFRN)
Joao Batista Oliveira (PUCRS)
Luciana Porcher Nedel (UFRGS/PUCRS)
Luis Fernando Fortes Garcia (FEEVALE)
Marinho Barcellos (UNISINOS)
Mouriac Hallen Diemer (UNIVATES)
Roland Teodorowitsch (ULBRA)
Taisy Silva Weber (UFRGS)
vii
SOCIEDADE BRASILEIRA DE COMPUTAÇÃO
Diretoria
Presidente:
Vice-Presidente:
Eventos e Comissões Especiais:
Administrativa e Finanças:
Educação:
Publicações:
Planejamento e Programas Especiais:
Secretarias Regionais:
Divulgação e Marketing:
Flávio Rech Wagner (UFRGS)
Luiz Fernanado Gomes Soares (PUC-Rio)
Dilma Menezes da Silva (IME/USP)
Taisy Weber (UFRGS)
Sergio de Melo Schneider (UFU)
Ricardo de Oliveira Anido (UNICAMP)
Claudionor Coelho Junior (UFMG)
Robert Carlisle Burnett (PUCPR)
Geber Ramalho (UFPE)
Conselho
Roberto da Silva Bigonha (UFMG)
Siang Wun Song (USP)
Júlio Cesar Sampaio do Prado Leite (PUC-RJ)
Daniel Schwabe (PUC-RJ)
Ricardo Augusto da Luz Reis (UFRGS)
Daltro José Nunes (UFRGS)
Silvio Romero de Lemos Meira (UFPE)
José Carlos Maldonado (USP/São Carlos)
Therezinha Souza Costa (PUC-Rio)
Claudia Bauzer Medeiros (UNICAMNP)
Rosa Maria Viccari (UFRGS)
Itana Maria Gimenez (UEM)
Eratóstenes Ramalho de Araujo (SOFTEX)
Tarcisio Haroldo Cavalcante Pequeno (UFC)
Jaime Simão Sichman (USP)
Secretaria Regional Rio Grande do Sul
Secretária: Luciana Porcher Nedel (UFRGS/PUCRS) – [email protected]
viii
Anais do II Workshop sobre Software Livre – WSL2001
1
DISPONIBILIDADE, DETECÇÃO E RECUPERAÇÃO DE ERROS NO SGBD
INTERBASE 4.0 UTILIZANDO SOFTWARE LIVRE
Paulo Ricardo Rodegheri ([email protected])
Taisy Silva Weber ([email protected])
PPGC – Instituto de Informática – Universidade Federal do Rio Grande do Sul – UFRGS
Av. Bento Gonçalves, 9500 – Bairro Agronomia – 91501-970 – Porto Alegre – RS
RESUMO
Este trabalho explora a aplicação de técnicas de injeção de falhas para avaliação dos mecanismos de
detecção e recuperação de falhas e dos tempos necessários para disponibilizar o banco de dados aos usuários
após a ocorrência de uma falha que tenha provocado um crash (colapso sem perda de estado). Os recursos
utilizados nos experimentos são o SGBD centralizado INTERBASE versão 4.0, o sistema operacional Linux
Conectiva versão 4.2 kernel versão 2.2.13 rodando sobre um computador Intel Pentium 550 MHz com 128 MB
de memória RAM.
ABSTRACT
This work explores the application of fault injection techniques for evaluation of the fault detection and
of the recovery mechanism and of the necessary times for to available the database to the users after the
occurrence of a fault that has provoked a crash (collapse without state loss). The resources used in the experiments
are the centralized DBMS INTERBASE version 4.0, the operating system Linux Conectiva version 4.2 Kernel
version 2.2.13 running on a computer Intel Pentium 550 MHz with 128 MB of RAM memory.
1 INTRODUÇÃO
Aplicações de bancos de dados são, tradicionalmente, um campo com necessidade de tolerância á
falhas, principalmente visando integridade de dados e disponibilidade. Aplicações que empregam Sistemas
Gerenciadores de Bancos de Dados (SGBDs) requerem que a integridade dos dados armazenados seja preservada
durante a operação normal, bem como após a recuperação ocasionada por uma falha (crash) [1]. Falhas que
afetam o hardware e os meios de armazenamento são inevitáveis. Desta forma, uma parte essencial no sistema
de banco de dados é um esquema de recuperação responsável pela detecção de erros e pela restauração do
banco de dados para um estado consistente, que existia antes da ocorrência da falha.
Este trabalho se propõe a avaliar os mecanismos de detecção e de recuperação de falhas, e a
disponibilidade do banco de dados ao usuário após a ocorrência de uma falha do tipo crash, através de
experimentos que provoquem, de forma deliberada, a indisponibilidade ou queda do sistema quando o SGBD
estiver processando um conjunto de transações. Os experimentos provocam a indisponibilidade do banco de
dados através de duas técnicas, que apesar de serem simples, obtém o resultado desejado, isto é, a queda do
sistema e a interrupção dos serviços fornecidos pelo sistema de banco de dados.
2 MODELO DE FALHAS E INJEÇÃO DE FALHAS
Os experimentos no projeto enfocam falhas do tipo crash. Como não existe a disponibilidade do código
do SGBD nesse projeto, propomos que o melhor nível de atuação para o injetor é o nível do sistema operacional,
onde acessos ao meio de armazenamento e gerência dos processos podem ser facilmente manipulados alterando
o código do sistema operacional ou interceptando chamadas de sistema.
A estrutura mais largamente usada para registrar modificações no banco de dados é o log [4]. Na
ocorrência de uma falha de sistema, o log permite levar o banco de dados estável a um estado consistente. Como
só é possível confiar no armazenamento estável, o SGBD armazena informações de log no armazenamento
estável além do banco de dados.
2
Anais do II Workshop sobre Software Livre – WSL2001
3 PLATAFORMA EXPERIMENTAL
O ambiente operacional é composto de softwares livres: o sistema operacional Linux e o SGBD
INTERBASE 4.0. A forma de condução dos experimentos é descrita abaixo, nos capítulos 4.1 e 4.2.
3.1 O SGBD Interbase
O Interbase é um SGBD relacional, disponível gratuitamente para plataforma Linux, e possui diversas
características que o diferenciam de seus concorrentes. Tradicionais SGBDs comerciais (Sybase, SQL Server,
Oracle, Progress) utilizam mecanismos de log e de pontos de verificação para obter um estado consistente após
a ocorrência e detecção de uma falha. Estes mecanismos geralmente geram uma sobrecarga de processamento
e são potencialmente lentos. O Interbase não usa o conceito de log de transações e de pontos de verificação. Ao
invés disto, mantém informações em TIPs (Transaction Information Pages) [5].
No caso de uma falha de sistema, tão logo o servidor é posto on-line, o Interbase automaticamente
busca nas TIPs por transações ainda não concluídas (uncommitted). Qualquer transação encontrada neste estado
é desfeita e o sistema é imediatamente disponibilizado. Segundo o fornecedor, restaurações automáticas após
uma falha de crash levam tipicamente menos de um segundo, e não necessitam da intervenção do administrador
como na maioria dos bancos de dados [5].
4 OS EXPERIMENTOS
Os experimentos foram realizados em tabelas que continham de 60.000 a 450.000 registros, sendo que
cada registro lógico das tabelas ocupa 78 bytes. As aplicações de inserção, alteração e deleção de dados foram
escritas em SQL, com números variáveis de registros.
4.1 Escritas no Banco de Dados
Por default, o Interbase executa escritas bufferizadas. Isto é, ele não escreve fisicamente dados no disco
até que um evento pré-definido ocorra. Este evento pode ser quando uma certa quantidade de informação tenha
sido coletada para uma escrita, um evento associado tenha ocorrido, ou um certo intervalo de tempo tenha
passado. Se escritas forçadas (forced writes – FW) não estão disponíveis, igualmente o Interbase executa uma
escrita interna. Os dados podem não ser fisicamente escritos em disco, porque o sistema operacional utiliza
buffers para escrita em disco. Se ocorrer uma falha de sistema antes da escrita de dados em disco, então informações
podem ser perdidas. Executando-se escritas forçadas garante-se integridade dos dados e segurança, mas perdese desempenho [5].
4.2 Primeira Técnica
A primeira técnica consiste em matar (kill) um processo pai (uma sessão SQL, chamada isql) que
contém um processo filho (um script SQL), que estabelece atualizações no banco de dados. No total foram
executados 350 experimentos, descritos a seguir, acompanhados de seus resultados e cujo resumo é mostrado
na tabela 1:
• 100 execuções de um processo que inclui 60.000 registros em uma tabela que contém 240.000
registros: 50 execuções sem FW, e 50 execuções com FW; 50 execuções de um processo que altera
um campo tipo varchar de 50 bytes em 240.000 registros de uma tabela, sem FW; 100 execuções de
um processo que altera um campo tipo varchar de 50 bytes em 300.000 registros de uma tabela,
com FW; 100 execuções de um processo que exclui todos os registros de uma tabela que contém
300.000 registros: 50 execuções sem FW e 50 execuções com FW.
OPERAÇÃO
REALIZADA
Inserção 60.000 regs- Sem FW
Inserção 60.000 regs- Com FW
Alteração 240.000 regs –Sem FW
Alteração 300.000 regs – Com FW
Deleção 300.000 regs – Sem FW
Deleção 300.000 regs- Com FW
# (KILL)
PROCESSOS
PAI
50
50
50
100
50
50
#
RECUPERAÇÃO
COM SUCESSO
50
50
50
99
50
50
%
SUCESSO
100,00%
100,00%
100,00%
99,00%
100,00%
100,00%
Tabela 1: Eficiência de Recuperação Matando Processo Pai
#
RECUPER.
COM ERRO
0
0
0
1
0
0
%
ERRO
0,00%
0,00%
0,00%
1,00%
0,00%
0,00%
Anais do II Workshop sobre Software Livre – WSL2001
3
4.3 Segunda Técnica
A segunda técnica consiste no reset geral do equipamento no momento em que um processo estiver
sendo executado e estabelece atualizações no banco de dados, com e sem FW. No total foram executados 75
experimentos, descritos a seguir e acompanhados de seus resultados e cujo resumo é mostrado na tabela 2.
• 12 execuções de um processo que lê 60.000 registros de uma tabela e insere-os em outra tabela que
contém 240.000, sem FW; 10 execuções de um processo que lê 60.000 registros de uma tabela e
insere-os em outra tabela que contém 300.000, com FW; 10 execuções de um processo que lê
150.000 registros de uma tabela e insere-os em outra tabela que contém 300.000, com FW; 13
execuções de um processo que altera um campo tipo varchar de 50 bytes em 300.000 registros de
uma tabela, sem FW; 10 execuções de um processo que altera um campo tipo varchar de 50 bytes
em 300.000 registros de uma tabela, com FW; 10 execuções de um processo que deleta 450.000
registros de uma tabela, sem FW; 10 execuções de um processo que deleta 350.000 ou 450.000
registros de uma tabela, com FW.
OPERAÇÃO
REALIZADA
Inserção de 60.000 regs.
- sem FW
Inserção de 60.000 regs.
- com FW
Inserção de 150.000 regs.
- com FW
Alteração de um campo em 300.000
regs. - sem FW
Alteração de um campo em 300.000
regs. - com FW
Deleção de 450.000 regs. de uma
tabela - sem FW
Deleção de 350.000 ou 450.000 regs.
- com FW
# RESET GERAL
NO
EQUIPAMENTO
12
#
RECUPERAÇÃO
COM SUCESSO
9
%
SUCESSO
10
10
100,00%
0
0,00%
10
10
100,00%
0
0,00%
13
7
53,80%
6(*)
46,20%
10
3
30,00%
7(*)
70,00%
10
1
10,00%
9(*)
90,00%
10
2
20,00%
8(*)
80,00
%
75,00%
#
%
RECUPER ERRO
COM ERRO
3(*)
25,00%
(*) = Em todos os casos houve a detecção do erro, isto é, uma mensagem foi exibida ao usuário.
Tabela 2: Eficiência de Recuperação com Reset Geral no Equipamento
5 CONCLUSÕES
O mecanismo de recuperação mostrou-se bastante confiável quando foi utilizada a primeira técnica,
que consiste em eliminar (kill) um processo pai que contém um processo filho que estabelece atualizações no
banco de dados. Como mostram os dados da tabela 1, o mecanismo de recuperação não foi eficiente uma única
vez (0,29%), sendo, portanto eficiente em 99,71 % dos casos.
Entretanto, o mesmo mecanismo mostrou-se ineficiente quando utilizada a segunda técnica (deve-se
entender o reset geral como um procedimento extremo e estressante, que no caso era executado quando um
conjunto grande de transações estabelecia atualizações no banco de dados).
Nos experimentos de inserção de dados houve uma sensível diferença com o uso do parâmetro forced
writes. Nos 20 experimentos de inserção, nos quais se utilizou o tal parâmetro, o mecanismo mostrou-se
extremamente eficiente, pois em todos os casos (100%), houve sucesso no processo de recuperação. Entretanto,
nos 12 experimentos de inserção em que não se utilizou o parâmetro, o mecanismo não obteve sucesso em três
deles (25%). O mecanismo de recuperação, com processos de inserção, com e sem o parâmetro forced writes,
obteve uma média geral de sucesso, de 86,36 e 90,62%.
Os experimentos de alteração de dados apresentaram resultados surpreendentes, uma vez que, esperavase melhor desempenho do mecanismo de recuperação com o uso do parâmetro forced writes, visto que este é
utilizado com o propósito de garantir integridade e segurança. Num total de 13 execuções, o mecanismo mostrouse eficiente em sete, (53,8%). Nas outras seis, o mecanismo não obteve sucesso (46,2%). Dos 10 experimentos
com o parâmetro forced writes, em apenas três o mecanismo de recuperação obteve sucesso (30%), nos demais
(70%) não obteve sucesso. O mecanismo de recuperação, com os experimentos de alteração, com e sem o
parâmetro forced writes apresentaram uma média geral de sucesso de 43,47%.
Nos experimentos de deleção de dados houve uma pequena diferença com e sem o uso do parâmetro
4
Anais do II Workshop sobre Software Livre – WSL2001
forced writes. Como mostram os dados da tabela 2, os experimentos com o parâmetro apresentaram melhores
resultados: num total de 10 execuções, o mecanismo mostrou-se eficiente em duas (20%). Nas outras oito
execuções (80%) o mecanismo não obteve sucesso. Dos 10 experimentos sem o parâmetro forced writes, em
apenas um (10%), o mecanismo de recuperação obteve sucesso. Nas demais nove, (90%) não obteve sucesso.
Fazendo-se uma média geral dos experimentos de deleção, com e sem o parâmetro forced writes obtém-se uma
média geral do mecanismo de recuperação de 15%.
Portanto, pode-se concluir que o mecanismo de recuperação comportou-se satisfatoriamente apenas
com as operações de inserção. Nas operações de alteração e deleção o mecanismo mostrou-se bastante ineficiente,
mesmo quando utilizado o parâmetro forced writes.
Conclui-se, também, que o mecanismo de detecção de erros do Interbase é bastante eficiente, porque,
de todas ás vezes, com exceção de uma (99,76 % dos casos), que o mecanismo de recuperação não conseguiu
levar o banco de dados a um estado consistente após um erro, quando da tentativa de acesso ao banco de dados,
uma mensagem de erro foi exibida e o acesso não foi permitido. Este tipo de comportamento é interessante e
desejável, uma vez que um banco de dados que esteja em um estado inconsistente e permita acesso aos seus
dados pode gerar informações inconsistentes.
O Interbase mostrou-se bastante eficiente também no quesito disponibilidade. O tempo necessário para
disponibilizar o banco de dados ao usuário foi extremamente baixo (aproximadamente um segundo), mesmo
quando o conjunto de operações e o tamanho das tabelas atualizadas eram grandes. Esta eficiência no desempenho
é graças ao mecanismo utilizado pelo Interbase, que utiliza TIPs ao invés de arquivos de log.
Embora não esteja especificado como um dos objetivos deste trabalho, vale ressaltar a robustez e a
confiabilidade oferecida pelo Linux. Nos 75 experimentos realizados em que foi utilizada a técnica de reset
geral, em apenas um (1,33%) houve a necessidade do uso de force check (fsck) manual. Nos demais 74 casos, o
que representa 98,67%, houve a recuperação automática e a conseqüente disponibilidade do ambiente operacional.
REFERÊNCIAS BIBLIOGRÁFICAS
[1] SABARATNAM, M., TORBJORNSEN, O., Cost of Ensuring Safety in Distributed Database Management
Systems. Proceedings of the 1999 Pacific Rim International Symposium on Dependable Computing.
[2] COSTA, D., MADEIRA, H., Experimental Assessment of COTS DBMS Robustness under Transiente
Faults. (http://dsg.dei.uc.pt) – Jul/00.
[3] KORTH H. F., SILBERSCHATZ, A., Sistema de Banco de Dados – Segunda edição, São Paulo: Makron
Books, 1995.
[4] BERNSTEIN, P., HADZILACOS, V., GOODMAN, N. Concurrency Control and Recovery in Database
Systems. Reading, Massachusetts : Addison-Wesley, , 1987.
[5] A Comparasion of Interbase vs. SQL Server. (http://www.borland.com/interbase/papers) – Jul/00.
Anais do II Workshop sobre Software Livre – WSL2001
5
O USO DE SOFTWARE LIVRE NO DESENVOLVIMENTO DE
APLICAÇÕES ORIENTADAS A OBJETOS PARA A WEB
Guilherme Silva de Lacerda
Claudimir Zavalik
UFRGS – Universidade Federal do Rio Grande do Sul
PPGC – Programa de Pós-Graduação em Computação – Instituto de Informática
E-mail: [email protected]
RESUMO
Este trabalho demonstra a utilização de software livre no desenvolvimento de aplicações orientadas
a objetos para a Web, bem como as interações necessárias para sua implementação. São abordadas algumas
ferramentas de desenvolvimento OO voltadas para a Web, bem como a utilização de um Banco de Dados
Orientado a Objetos para criação de um protótipo.
Palavras-chave: Orientação a Objetos, Programação, Banco de Dados, Web, Software Livre.
1 INTRODUÇÃO
Durante muito tempo, o desenvolvimento de aplicações OO manteve-se restrito a uma camada de
usuários que possuíam acesso às ferramentas, equipamentos e demais recursos tecnológicos necessários
para sua implementação.
O aumento significativo das tecnologias voltadas para a Web, o movimento software livre no mundo,
juntamente com o paradigma da orientação a objetos passaram a estar disponíveis para um número cada
vez maior de desenvolvedores, sem qualquer custo, e disseminando uma nova forma de desenvolvimento
de aplicações.
Mais importante do que armazenar informações de forma organizada e segura em um banco de
dados, é disponibilizá-las a quem de fato as necessita. Uma aplicação utilizando a Web como meio de
comunicação entre o usuário e o sistema passa a ser indispensável para a obtenção de resultados eficientes.
Atualmente, existem várias ferramentas que permitem o desenvolvimento de aplicações para a
Web, com características peculiares a cada plataforma operacional. Face ao contexto sócio-econômico
atual, surgiu então o interesse em desenvolver um protótipo utilizando software livre, eliminando o custo
de aquisição de ferramentas e, principalmente, mantendo o paradigma da orientação a objetos sem
comprometer a qualidade e performance inerentes a aplicação proposta.
Neste contexto, busca-se descrever a experiência obtida na elaboração de uma aplicação que, além
de empregar conceitos da Orientação a Objetos, foi desenvolvida utilizando somente ferramentas de software
livre.
2 FERRAMENTAS DE SOFTWARE LIVRE ORIENTADAS A OBJETOS PARA DESENVOLVIMENTO WEB
Atualmente, existem várias linguagens e ferramentas OO portadas para o ambiente de software
livre. Linguagens como Smalltalk, C++ e Python estão disponíveis para a plataforma Linux, mantendo as
mesmas características que as tornaram populares em outras plataformas.
A seguir, são descritas algumas ferramentas de software livre para desenvolvimento de aplicações
orientadas a objetos, voltadas para a Web.
2.1 C++
Em [3], especifica-se algumas das linguagens com as quais se pode desenvolver programas CGI. A
linguagem C é um grande recurso para desenvolvimentos de programas CGI. Com a evolução desta poderosa
linguagem incorporando outras funções, juntamente com a popularização da orientação a objetos,
disponibilizou-se uma nova versão, conhecida como C++. O compilador C++ distribuído com o Linux é
o g++ [8]. A grande vantagem de se desenvolver programas CGI em C++, é quanto à performance, pois
executa as funções diretamente com as bibliotecas distribuídas com o kernel do sistema operacional. Os
programas CGI devem, obrigatoriamente, converter as informações obtidas em um banco de dados para
um formato suportado pelo servidor Web. Em [12], tem-se a interação do browser com o Banco de Dados,
6
Anais do II Workshop sobre Software Livre – WSL2001
através de programas CGI.
Browser
Serv. Web entrega
o documento HTML
ao browser
Repassa informações ao Serv.
Web (CGI+Dados)
Serv. Web
CGI formata a
resposta do
BD para
HTML
BD retorna a
resposta da
query para o
CGI
Serv. Web executa o
CGI, repassando
para ele os dados
CGI
CGI abre
conexão com o
BD enviando
uma query
SGBD
Figura 1: Interação do Browser com o Banco de Dados através de Programas CGI [12]
2.2 PHP
Segundo [6], PHP é uma linguagem script, embutida em códigos HTML, possuindo poderosos
recursos tanto de formatação quanto de acesso a sistemas gerenciadores de banco de dados. Foi desenvolvida
por Rasmus Lerdorf [6]. Assim como o JavaScript, o PHP possui recursos para criação de classes e métodos
[7]. Com PHP, conforme [1] é possível de se criar classes com estrutura e funcionamento herdadas de
outras classes, porém sem possuir o princípio de herança múltipla.
2.3 Java
A linguagem Java é totalmente baseada em objetos, com inúmeros recursos voltados para a Web
[11]. Entre estes recursos, se pode citar, como em [4], inúmeras APIs para desenvolvimento de applets,
servlets, computação gráfica, acesso a banco de dados, entre outras.
Os applets Java retiram os limites construídos nos programas CGI [2], que podem ser descritos a
seguir:
• Um applet Java pode usar sockets para se conectar a um servidor da camada do meio. A única
restrição é que este servidor terá que residir na mesma máquina do servidor Web com o qual você
transferiu o applet.
• Um applet pode interagir com o servidor em tempo real, ao invés de usar o modo batch como os
programas CGI; e mais, como é escrito em uma linguagem cheia de recursos, pode-se construir uma
verificação de erros de baixo nível nos applets Java.
• Finalmente, um applet Java tem acesso a uma grande variedade de objetos gráficos que residem nos
pacotes Java, permitindo que se programe tarefas gráficas complexas, como por exemplo, arrastar
objetos.
Características como a orientação a objetos, recursos para a Web e disponibilidade da ferramenta
foram fatores determinantes para a escolha da linguagem Java para a implementação do protótipo. Em [9],
ainda se pode encontrar um compilador Java componente do GCC, conhecido como GCJ.
2.4 Ozone-DB
Em [5], Ozone-DB é definido como um sistema gerenciador de banco de dados orientado a objetos,
implementado em Java e distribuído sob a licença de software livre1 . O objetivo do projeto Ozone-DB é,
segundo [5], desenvolver uma tecnologia que permita aos desenvolvedores criar aplicações unicamente
orientadas a objetos em Java, com acesso a banco de dados.
O projeto de desenvolvimento do Ozone-DB teve sua origem na SMB2 , alterando sua licença para
software livre em 1999 [10].
Conforme [5], tem-se inúmeras especificações de características do Ozone-DB, descritas a seguir:
(1) Possui Recursos JDBC/SQL para desenvolvedores, permitindo escrever esquemas e queries em
linguagens externas à linguagem de programação; (2) Possui recursos para testes de muitas ferramentas
Java. A maioria destas ferramentas usam um banco de dados relacional para armazenamento, mapeando
1
Filosofia OpenSource, obtido em http://www.opensource.org .
2
Softwarebueno M&B – empresa fabricante do Ozone-DB, obtido em http://www.smb-tec.com.
Anais do II Workshop sobre Software Livre – WSL2001
7
os objetos para as tabelas; (3) Incorpora o recurso de replicação de dados, devido à facilidade de atualização
dos objetos. Isto é feito pelo Ozone-RMI; e (4) É software livre.
A escolha do Ozone-DB como sistema para armazenamento dos dados deu-se devido à
disponibilidade de código fonte aberto e por se tratar de um sistema gerenciador de banco de dados
totalmente Orientado a objetos, características fundamentais do trabalho proposto.
2.5 Acesso a Banco de Dados via Web, Através de JDBC
Assim como um programa CGI, o Java possui uma maneira de construir programas da camada
superior que sejam armazenados no servidor, ficando disponível a todos os usuários da rede [2].
A JDBC é a versão Java da ODBC: um protocolo com o qual as aplicações e applets Java trocam
dados com o banco de dados [11,2]. A implementação da JDBC consiste em duas partes [2]: (1) um driver
gerenciador que controla o carregamento dos drivers do banco de dados; e (2) um driver que transmite os
dados entre a aplicação e o banco de dados.
A figura 2 ilustra o processo de interação com um banco de dados via Web, através de applets Java
e JDBC.
Browser
Serv. Web entrega
o documento HTML
ao browser
Repassa informações ao Serv.
Web (nome da aplicação Java)
Serv. Web
Aplicação
Java formata
os dados para
exibição
Serv. Web chama o
JVM para rodar a
Aplicação Java
Aplicação
Java
Aplicação Java chama o JDBC
para acessar o BD com os dados
do Usuário
O conteúdo dos resultados
retornam à aplicação
JDBC
BD retorna a
resposta da query
JDBC abre conexão com
o SGBD, enviando a query
SGBD
Figura 2: Interação do Browser com o Banco de Dados através de Applets Java
2.6 Emigrant Web System – Um Exemplo Prático
Para exemplificar todos os conceitos e tecnologias abordadas ao longo deste trabalho, foi desenvolvido
um protótipo de um sistema Web que centralizasse informações relevantes de emigrantes de todo o mundo.
Ao acessar o sistema, o usuário inclui os dados atuais e de sua nacionalidade. O sistema permite também
a atualização desta base de dados via Web pelo próprio usuário e permite saber, por exemplo, quantos emigrantes
residem em um determinado país.
O funcionamento básico do sistema se dá em várias etapas, quais sejam:
1. O usuário acessa a URL do sistema. Ao selecionar uma opção na página principal do sistema, é
disparada a execução de um applet Java responsável pelo recebimento dos dados.
2. A applet Java abre uma conexão com o OODBMS. O applet Java estabelece uma conexão, via
JDBC, com o OODBMS, enviando os dados a serem cadastrados ou consultados.
3. O OODBMS atualiza os dados. O OODBMS executa o método de consulta ou atualização dos dados
do sistema. Caso ocorra um erro, este retorna o erro ocorrido ao applet Java que solicitou o acesso
ao banco de dados.
4. A applet Java trata os resultados. Os resultados do método são tratados pelo applet Java e repassados
ao servidor WWW, que os enviará ao browser do usuário.
Para a modelagem do sistema foi utilizada a UML, com referências em [1]. Para a implementação,
foram utilizadas as seguintes ferramentas: Sistema Operacional GNU-Linux, distribuído pela Conectiva3 ,
servidor Web Apache 4 , juntamente com a linguagem Java5 e o sistema gerenciador de banco de dados
3
4
5
Conectiva Linux, obtido em http://www.conectiva.com.br.
Servidor Web Apache, obtido em http://www.apache.org.
JDK versão 1.2.2 para Linux, obtido em ftp://geolab.ccei.urcamp.tche.br.
8
Anais do II Workshop sobre Software Livre – WSL2001
orientado a objetos Ozone-DB 1 .
Figura 3: Tela Inicial do EWS – Emigrant Web System
3 CONSIDERAÇÕES FINAIS
Este trabalho foi elaborado com o propósito de desenvolver uma aplicação Web orientada a objetos,
acessando um sistema gerenciador de banco de dados orientado a objetos, baseados em software livre.
A orientação a objetos, devido as suas grandes qualidades, é um paradigma de desenvolvimento cada
vez mais disseminado na comunidade GNU, onde procura-se desenvolver tecnologias de última geração mantendo
o seu diferencial, a qualidade.
A vantagem da utilização do paradigma da orientação a objetos relacionada a banco de dados, é o
encapsulamento de métodos diretamente na base de dados, facilitando a manutenção destes métodos que estão
centralizados, sem a necessidade de atualização dos programas. Agregado a esta funcionalidade, pode-se
acrescentar métodos que implementem algoritmos com técnicas de inteligência artificial, bem como características
temporais.
REFERÊNCIAS BIBLIOGRÁFICAS
[1] BARROS, Pablo. Linguagem de Modelagem Unificada em Português. Janeiro de 2000. Disponível em:
<http://cc.usu.edu/~slqz9/uml/>
[2] BUTZEN, Fred. FORBES, Dorothy. Linux Banco de Dados – Como projetar e gerenciar. Rio de Janeiro:
Ciência Moderna, 1997.
[3] CERN. CGI – Common Gateway Interface. Setembro de 1999. Disponível em: <http://
hoohoo.ncsa.uiuc.edu/cgi/intro.html>.
[4] JOHNSON, Eric Foster. Welcome to Linux Programming: New Java-on-Linux Releases from Sun.
Julho de 2000. Disponível em: <http://www.linuxprogramming.com/news/news_sotry.php3?Itsn= 200006-29-001-03-CD-UU>.
[5] OZONE-DB. The Open Source Java ODBMS. Agosto de 2000. Disponível em: <http://www.ozonedb.org>.
[6] PHP. PHP Hypertext Processor – Introduction. Julho de 2000. Disponível em: <http://br.php.net/ manual/
html/introduction.html>.
[7] PHP. PHP Hypertext Processor – Classes and Objects. Julho de 2000. Disponível em: <http://br.php.net/
manual/html/language.oop.html>.
[8] RED HAT. The Developer Network: G++. Agosto de 2000. Disponível em: <http://www.redhat.com/
devnet/c_zone_index.html>.
[9] RED HAT. The GCJ Home Page. Agosto de 2000. Disponível em: <http://sources.redhat.com/java/
gcj2.html>.
[10] SMB-TEC. Softwarebuero M&B. Agosto de 2000. Disponível em: <http://www.smb-tec.com>.
[11] SUN MICROSYSTEMS. The source for Java™ Technology. Julho de 2000. Disponível em: <http://
java.sun.com>.
[12] ZAVALIK, Claudimir. LACERDA, Guilherme S. O Uso de Software Livre no acesso a Banco de Dados
via Web. I Fórum Internacional Software Livre 2000 – Anais do I Workshop de Software Livre WSL2000.
Porto Alegre: UFRGS, 2000.
6
Ozone-DB versão 0.5.5 para Linux, obtido em ftp://www.softwarebuero.de/ozone-src-0.5.5.zip.
Anais do II Workshop sobre Software Livre – WSL2001
9
PROGRAMA DE FOMENTO À PESQUISA: SISTEMA
DE WORKFLOW BASEADO NA INTERNET
Alexandre Cervieri1 ([email protected])
Tânia R. da Cruz2 ([email protected])
Universidade Federal do Rio Grande do Sul – Instituto de Informática
Av. Bento Gonçalves, 9500 – Bloco IV – Campus do Vale – CEP 91501-970
RESUMO
O sucesso da Internet tem alcançado também a esfera do serviço público. Isso se deve não só à facilidade
de uso e desenvolvimento de aplicações para a Internet como também ao emprego do software livre. Este artigo
visa apresentar um sistema de workflow desenvolvido utilizando-se a Internet como infra-estrutura e o software
livre como recurso para facilitar a prestação de serviços na Pró-Reitoria de Pesquisa da UFRGS.
Palavras-chave: Workflow, Internet, Software Livre, PHP
ABSTRACT
Internet success has also reached the public service field. This fact is based not only on its simple
interface and application development but also on the use of free software. The aim of this work is to present a
workflow system, which was developed using the Internet as basis and the free software as a tool to enhance the
services that PROPESQ offers.
Keywords: Workflow, Internet, Free Software, PHP
1 INTRODUÇÃO
O workflow tem sido referenciado como um processo que envolve a definição de rotinas, gravação
automática de dados e o processamento destes para garantir a gerência de processos e a tramitação destas
informações integrando processos informatizados e atividades de indivíduos. Uma interface para estruturar um
workflow pode ser a Internet. Pois a Internet mostra-se uma ferramenta em expansão e tem estendido o seu
potencial também para a prestação de serviços públicos.
Este artigo visa apresentar um sistema de workflow desenvolvido em PHP [9] utilizando-se a Internet
como infra-estrutura para o Programa de Fomento à Pesquisa da PROPESQ. Na seção 2 serão vistos os conceitos
fundamentais de workflow. Na seção 3 será apresentado o cenário atual da Internet nas Instituições públicas e
seu aspecto singular no que se refere à UFRGS. Finalmente na seção 4 serão apresentadas as tecnologias
utilizadas para o desenvolvimento do sistema, bem como suas principais características.
2 WORKFLOW
Workflow management (WFM) é o conjunto de sistemas e serviços aplicados a uma estrutura de fluxo
de trabalho, não somente para o movimento da informação como também para interação de processos e de
trabalho humano que geram a informação [1]. WFM, cujo propósito principal é aumentar a coordenação do
trabalho [4], é o nome recente para as pesquisas voltadas à área de automação de escritórios, à administração de
negócios, aos sistemas de informação e aos trabalhos cooperativos suportados por computador.
Workflow pode envolver desde tarefas de coordenação de atividades não automatizadas até o
processamento de informações complexas relacionadas ao acesso a múltiplos sistemas de informação e
recuperação de dados para a tomada de decisão [8].
Observa-se ainda que um workflow pode estar orientado a pessoas, e neste caso, deve-se considerar
primordial a interação pessoa-computador preocupando-se com as necessidades e as preferências das pessoas
para executarem as atividades, a cultura organizacional e as habilidades (treinamento) das pessoas envolvidas.
Já em um workflow voltado a sistemas devem ser analisadas as necessidades de software, a adaptação e o
1
Mestrando em Ciência da Computação – Universidade Federal do Rio Grande do Sul.
Bacharel em Administração de Empresas com Especialização em Gestão Universitária – Universidade Federal do
Rio Grande do Sul.
2
10
Anais do II Workshop sobre Software Livre – WSL2001
aproveitamento dos recursos tecnológicos já existentes, procurando o desenvolvimento de uma aplicação
adequada à execução das tarefas de workflow, e garantindo a segurança das informações.
3 A INTERNET NAS INSTITUIÇÕES PÚBLICAS
A história do serviço público no Brasil tem mostrado que a Internet traz muitas vantagens e várias
iniciativas têm obtido sucesso, como é o caso da Secretaria da Receita Federal que oferece os serviços de
declaração de imposto de renda pela Internet. Essas vantagens são principalmente a flexibilidade e facilidade de
adaptação, a comunicação assíncrona3 , a alta disponibilidade, e ainda no fato que a Internet é um serviço que
evita o tempo de espera em filas e é a grande responsável pela quebra das barreiras geográficas e de tempo de
deslocamento, obtendo um tratamento indiscriminado e uniforme ao cliente [2].
Assim, uma das metas fundamentais dos serviços pela Internet tem sido, segundo Gates [3] “que os
cidadãos nunca mais precisariam preencher múltiplos formulários ou ir a múltiplos lugares para conseguir
informações”.
Uma das limitações apontadas para a prestação de serviço público na Internet é o percentual restrito de
usuários que têm acesso a esta tecnologia, Entretanto, quando se observa apenas a Internet na Universidade
Federal do Rio Grande do Sul (UFRGS) e sua comunidade acadêmica, este fator inicialmente limitante passa a
ser um facilitador.
Na UFRGS pesquisadores e estudantes possuem acesso à Internet a partir de seus laboratórios, bibliotecas,
núcleos de informática, secretarias e etc. Além desta facilidade de acesso, a escolaridade mínima da clientela é
o curso superior em andamento, o que em termos de comunicação torna-se mais um facilitador. O conhecimento
dos recursos de informática, apesar de heterogêneos, pela área de formação e pela faixa etária variadas, ainda
assim não se tornam fatores limitantes, não obstante que um conhecimento mínimo e familiaridade com
computadores é quase uma unanimidade para a clientela. Acrescenta-se ainda, a estes itens, a velocidade de
transmissão de dados dentro da Universidade, o que não aconteceria em conexões de linha discada, cenário
comum quando o acesso à Internet é feito das residências.
4 SISTEMA DE WORKFLOW PARA O PROGRAMA DE FOMENTO À PESQUISA4
A Pró-Reitoria de Pesquisa (PROPESQ) da UFRGS mantém o Programa de Fomento à Pesquisa que
tem como objetivo financiar pesquisadores (docentes, técnicos administrativos e estudantes), seus projetos e
fazer a sua divulgação. A demanda do programa é através de solicitações de balcão, obedecendo a critérios
previamente estabelecidos e divulgados, assim como prazos pré-fixados. Estas solicitações são analisadas quanto
ao mérito por consultores “ad hoc” e posteriormente são implementados ou não os auxílios pela Pró-Reitoria,
possuindo como demanda média anual aproximada de 1500 pedidos com um atendimento de 70% da demanda
geral.
O sistema de workflow desenvolvido considerou a necessidade de: (i) simplificar as rotinas para os
clientes e para os gerentes e consultores do Programa de Fomento, (ii) diminuir o fluxo de documentos (papel
gerado e tempo despedido na tramitação e arquivamento), (iii) interface de fácil acesso e flexível. Assim o
sistema incorpora funcionalidades como roteamento, monitoração e controle, notificação, designação dos direitos
e gerenciamento dos processos [6] e o princípio da confiabilidade de dados ao incorporar banco de dados.
Dentre as várias alternativas possíveis para a implementação de um sistema com essas exigências, duas
principais abordagens foram analisadas: (i) utilização de módulo cliente ou (ii) utilização da Web (navegador)
como plataforma e software cliente.
Embora ambas às alternativas ofereçam vantagens e desvantagens, exigindo um estudo baseado no nicho em
que seria focalizada a aplicação, conforme já foi exposto a infra-estrutura de rede da UFRGS é um aspecto positivo
para uma aplicação Web, então o ponto analisado foi o ambiente do cliente.
Na análise do ambiente do cliente buscou-se uma solução que exigisse o mínimo de esforço do usuário final,
considerando-se que era desconhecido o conjunto de máquinas e sistemas operacionais utilizados (desde máquinas
com Windows a máquinas baseadas em Unix ou Linux) sendo que o desenvolvimento de um software que rodasse nos
diferentes sistemas operacionais seria mais dispendioso5 .
3
Na comunicação assíncrona não há a necessidade dos interlocutores estarem simultaneamente conectados.
O sistema pode ser acessado pelos estudantes, docentes e técnicos da UFRGS no endereço
http://seberi.propesq.ufrgs.br/fomento2001.
5
Considerou-se a utilização de Java [12] para o desenvolvimento da aplicação cliente, mas esta solução também
exigiria o download e instalação do pacote de suporte a Java para a utilização do sistema.
4
Anais do II Workshop sobre Software Livre – WSL2001
11
Desta forma, a opção adotada foi a abordagem baseada na Web, principalmente devido à: (i) heterogeneidade
dos usuários: aplicação Web exige apenas um navegador com um mínimo de funcionalidade (HTML4 e JavaScript),
o que normalmente já está instalado na máquina do usuário; (ii) heterogeneidade de sistemas operacionais: na rede
da Universidade existem máquinas Windows, Linux, Solaris (Unix) e Macintosh; (iii) dinamismo: com a aplicação
concentrada em um servidor Web consegue-se um maior dinamismo do sistema, possibilitando a melhoria constante
e gradual do sistema ao longo do uso sem a necessidade de interferência (download e instalação) por parte do usuário.
4.1 Tecnologias Utilizadas
As vantagens citadas no item anterior levaram à adoção de um sistema baseado na plataforma Web, em
detrimento de um sistema cliente.
Além dessa decisão, ainda deveríamos levar em consideração o fato de que o sistema, por um determinado
tempo, deveria conviver com as plataformas de software não livre já existentes na PROPESQ. Estes softwares são:
Microsoft Internet Information Services (IIS) integrante do sistema operacional Windows NT como servidor Web,
e o Microsoft Access (versão 97), como gerenciador de banco de dados. Estes softwares legados foram uma
alternativa encontrada para desenvolver o projeto em etapas (três anos até a conclusão dos trabalhos) e uma forma
de incorporar os conhecimentos da equipe de apoio da PROPESQ evitando a necessidade de um re-treinamento
imediato.
Entretanto, a meta final do projeto é não se prender a uma plataforma específica e buscar a maior
independência possível de softwares comerciais não livres. Procurava-se, portanto, uma solução que pudesse, sem
custos extras de desenvolvimento e adaptação, migrar totalmente para uma plataforma livre, ou seja, sistema
operacional Linux, servidor Web Apache [11] e um gerenciador de banco de dados PostgreSQL [10] ou MySQL
[7].
Como conseqüência, a linguagem/plataforma de desenvolvimento escolhida foi o PHP [9]. PHP é baseado
em scripts de servidor, possuindo (i) compatibilidade total entre o ambiente Linux (servidor Apache) e o ambiente
Windows (IIS), (ii) possibilidade de acesso aos mais diversos gerenciadores de banco de dados do mercado (tanto
livres como não livres), (iii) construções de linguagem sofisticadas e, principalmente, é Software Livre (respeitando
a abrangência que esse termo possui, no que se refere à disponibilização do código fonte, permissão de alteração
e livre distribuição do mesmo).
(a )
Sistema do Programa de Fomento
(b )
Camada de abstração de Banco de Dados
Access
Oracle
SQL Server
PostgreSQL
MySQL
Módulo Usuário
Módulo de Gerência
Novas solicitações, edição
e consulta de resultado de
pedidos.
Relatórios de pedidos, análise,
consultoria, buscas e procedimentos
fi n a n c e i r o s e bu r o c r á t i c o s .
Banco de Dados
Figura 1: (a) Camada de Abstração de Banco de Dados, (b) Módulos que Compõem o Sistema
Para complementar, no desenvolvimento da aplicação foi utilizada uma camada de abstração de
gerenciador de banco de dados utilizado, como pode ser vista na Figura 1a. Assim, a migração da aplicação do
banco Access para outro banco de dados poderá ser feita de forma direta.
4.2 Características do Sistema
Assim como pode ser visto na Figura 1b o sistema de workflow do Programa de Fomento está dividindo
em dois macro módulos: de usuário e de gerência. No primeiro, os usuários (docentes, técnicos e estudantes)
têm disponíveis as opções de modalidades de apoio à pesquisa e têm a possibilidade de preencher novas
solicitações, alterar os dados e verificar o resultado de solicitações já avaliadas.
No módulo de gerência, a PROPESQ tem disponíveis funções de busca e gerência das solicitações
preenchidas pelos usuários, envio das solicitações aos consultores (que, no mesmo módulo, poderão analisar e
emitir o seu parecer) e finalmente efetivar a avaliação final e a concessão de recursos.
Este sistema apresenta as funcionalidades básicas de um sistema de workflow, pois há: (i) o transporte
de informações na forma de acesso aos bancos de dados e envio de arquivos; (ii) o monitoramento e controle
sobre o fluxo das atividades através de telas de informação do gerente; (iii) a notificação através do envio
automático de mensagem via correio eletrônico para desencadear o processo de emissão de pareceres [5].
12
Anais do II Workshop sobre Software Livre – WSL2001
A designação de direitos está garantida através da identificação dos usuários internos (username e
senha) e estes estão organizados em diferentes níveis de permissões para acesso aos dados, de acordo com as
rotinas a serem executadas e perfil previamente determinado, mantendo a segurança de acesso aos dados.
5 CONCLUSÕES E TRABALHOS FUTUROS
O caso apresentado vem confirmar os referenciais teóricos de workflow, prestação de serviço via Internet
e adoção de software livre para o desenvolvimento de sistemas. A definição e a implantação de um sistema de
workflow, envolvendo o acesso a múltiplos sistemas de informação e recuperação de dados, preservando a
cultura organizacional e, ao mesmo tempo, inovando tecnologias e introduzindo o conceito de software não
comercial foi um desafio institucional que comprovadamente teve aceitação tanto dos clientes6 como dos gerentes
e demais usuários internos. A interface utilizada, Internet, foi fundamental para esta aceitação devido as suas
facilidades de utilização pelos usuários e desenvolvimento do sistema.
Como continuidade do trabalho foram implantadas modificações visando adequar o sistema a novas
demandas de gerência da PROPESQ e buscando um aprimoramento da interface com o usuário externo, sendo
eliminada a necessidade do papel na troca de informações no ano de 2001.
No planejamento do sistema foi prevista a migração para uma plataforma completamente livre, atualmente
em fase de teste.
BIBLIOGRAFIA
[1] CASANOTO, R. Entrerprise Work Management. Myth or Reality? Part 1, Research Note. IDOM, KAWFL136, Gartner Group, nov. 1995.
[2] EMDLER, A. M. Governo Eletrônico: a Internet como ferramenta de gestão dos serviços públicos.
READ – Revista Eletrônica da Administração. http://read.adm.ufrgs.br. Edição 19 vol 6 nº2 abril 2000.
[3] GATES, William H. A empresa na Velocidade do Pensamento. Companhia das letras, São Paulo-SP,
1999.
[4] JOOSTEN, S. Trigger modelling for workflow analysis. In: Chroust, G and Benczur, al, editor, Workflow
management – challenges, paradigms and products (disponível na Web) proceeding of CON’94, p 236247, Wien, Austria, 1994
[5] KLADIS, C. M.; Freitas, H. M. R. Workflow: ferramenta de suporte a compreensão da organização para
a tomada de decisão. In: Séries Documentos para Estudo PPGA, n.2, p 1-11. Porto Alegre, jul. 1996.
[6] MULDER, E. B. Workflow automation in tree administrative organizations. Master’s thesis, (disponível
na Web) University of Twente, Depto. Of Comp. Sc, Enschede, The Netherlands, 1994.
[7] MySQL. Disponível na Web em http://www.mysql.com (abr. 2001).
[8] NICOLAO, M; Oliveira, J. P. M. Caracterizando Sistemas de Workflow. READ – Revista Eletrônica de
Administração. Disponível na Web em http://read.adm.ufrgs.br. Vol.2, nº 2, novembro 1996.
[9] PHP. Disponível na Web em http://www.php.net (abr. 2001).
[10] PostgreSQL. Disponível na Web em http://www.postgresql.org (abr. 2001).
[11] The Apache Software Foundation. Disponível na Web em http://www.apache.org (abr. 2001).
[12] The Source for Java Technology: java.sun.com. Disponível na Web em http://java.sun.com (abr. 2001).
6
O grau de satisfação dos usuários do sistema foi mensurado através de uma pesquisa pela Internet e divulgada no
endereço http://seberi.propesq.ufrgs.br/fomento2000/pesquisa/resultados.php.
Anais do II Workshop sobre Software Livre – WSL2001
13
ANNEF – ARTIFICIAL NEURAL NETWORKS FRAMEWORK: UMA SOLUÇÃO
SOFTWARE LIVRE PARA O DESENVOLVIMENTO, ENSINO E PESQUISA
DE APLICAÇÕES DE INTELIGÊNCIA ARTIFICIAL MULTIPLATAFORMA
João Ricardo Bittencourt ([email protected])
Fernando Osório ([email protected])
UNISINOS – Universidade do Vale do Rio dos Sinos – Centro de Ciências Exatas e Tecnológicas
Curso de Informática – Mestrado em Computação Aplicada (PIP/CA).
Caixa Postal 275, 93022-000. São Leopoldo, RS, Brasil.
RESUMO
Este trabalho descreve a implementação de um conjunto de classes (framework) destinado a facilitar o
desenvolvimento de aplicações multiplataforma que utilizam algoritmos de Redes Neurais Artificiais. Além de
destacar a importância do desenvolvimento e da distribuição de softwares livres junto a comunidade científica,
onde esperamos contribuir com a criação de uma nova ferramenta aberta de grande utilidade no ensino, pesquisa
e aplicação de técnicas de Inteligência Artificial.
ABSTRACT
We describe the implementation of a framework that will ease the development of multiplataform
applications that use Artificial Neural Networks algorithms. In addition to showing the importance of free
software development and distribution to the scientific community, our main contribution is the implementation
of an open tool useful for teaching, researching and development of applications in the field of Artificial
Intelligence.
1 INTRODUÇÃO
Este trabalho começou com o desenvolvimento do software Neuron Color [4], ferramenta implementada
– em um projeto científico da Universidade do Vale do Rio dos Sinos (UNISINOS) com o objetivo de criar
filtros inteligentes para o processamento de imagens usando Redes Neurais Artificiais. Durante a execução
deste projeto surgiu a necessidade de criar módulos separados para o processamento inteligente das imagens
(algoritmos relacionados as Redes Neurais Artificiais) das demais rotinas de software. Isto ocorreu devido as
grandes dificuldades em efetuar modificações nos algoritmos existentes, pois não havia uma estruturação formal
do software. Com isto buscamos estruturar melhorar nossas ferramentas, para que fosse possível criar um novo
software mais flexível e fácil de ser expandido.
Iniciamos assim o desenvolvimento do ANNeF (Artificial Neural Networks Framework), que consiste
em um conjunto de classes capaz de encapsular as funcionalidades dos algoritmos neurais, permitindo efetuar
múltiplas atualizações e modificações, além de permitir a criação de inúmeras aplicações baseadas neste
framework. A concepção deste baseou-se fundamentalmente em dois princípios: na criação de um software
livre multiplataforma e a busca do desenvolvimento científico na área de Inteligência Artificial.
Gaston Bachelard apud Simões [15] caracteriza o pensamento científico em seis atributos, dos quais
destacamos o seguinte – “a verdade científica é estabelecida pelo trabalho cooperativo e pela intersubjetividade
científica”. Desta forma a distribuição de softwares científicos livremente é uma forma de valorizarmos as
descobertas, no campo da ciência da computação, porque estamos compartilhando saberes e permitindo que
outros sujeitos interajam com estas produções. O trabalho cooperativo permite assim a constante melhoria e
difusão dos conhecimentos.
Stallman [10] expôs em seu ensaio “Why Software Should Be Free”, que em muitas universidades
americanas, em muitos projetos científicos computacionais somente a discussão teórica é compartilhada com a
comunidade, sendo o código-fonte jamais exibido, permanecendo oculto. Nossa postura é a de contribuir para
o desenvolvimento de novas ferramentas na área de Inteligência Artificial, evitando este tipo de abordagem que
restringe a difusão e a validação integral dos conhecimentos. Também o pensamento de Stallman sobre software
livre refere-se “à liberdade dos usuários executarem, copiarem, distribuírem, estudarem, modificarem e
aperfeiçoarem o software.” Devido estes pensamentos que o ANNeF foi projetado como um framework científico
14
Anais do II Workshop sobre Software Livre – WSL2001
de livre distribuição para pesquisadores e desenvolvedores.
O objetivo deste artigo é elucidar sobre o desenvolvimento de uma aplicação científica livre, aplicada
as técnicas de Inteligência Artificial, baseada na livre distribuição de software e do conhecimento científico.
Para isto este artigo está organizado da seguinte forma: seção 2 é uma breve conceituação sobre Redes Neurais
Artificiais; a seção 3 trata da metodologia usada para projetar o ANNeF, destacando as vantagens de usar
frameworks e uma documentação estruturada em projetos de softwares livres; finalmente a seção 4 destaca as
características, vantagens, aplicabilidade e estruturação do ANNeF.
2 REDES NEURAIS ARTIFICIAIS
Através de um modelo abstrato e simplificado dos neurônios humanos podemos desenvolver um
simulador que seja capaz de classificar, generalizar e aprender funções desconhecidas. Um dos modelos de
aprendizado neural mais utilizados na atualidade é o modelo denominado Backpropagation [1,2].
Para que ocorra o aprendizado é necessária uma base de exemplos, conjunto de dados que descrevam os
casos que serão apresentados para a Rede Neural Artificial. O aprendizado do modelo Backpropagation é
conhecido como um aprendizado do tipo supervisionado, onde a rede aprende a responder de modo similar as
respostas apresentadas junto com os casos, sendo estes um conjunto de dados de entrada mais as saídas desejadas.
Usando um processo iterativo (cada uma destas iterações é chamada de época) apresentamos a rede
neural os exemplos contidos na base para que ocorra a adaptação dos pesos (simula o reforço e a inibição das
conexões sinápticas existentes entre os neurônios reais). Desta adaptação de pesos que surge o aprendizado, e
por conseqüência surge também a adaptação do comportamento da rede, que deverá aprender a responder aos
estímulos de entrada de acordo com os exemplos que lhe foram apresentados.
Atualmente encontramos vários softwares de simulação de redes neurais, mas muitos deles são de uso
comercial (Matlab, NeuroDimension/NeuroSolution, entre outros), sem acesso ao código fonte, ou mesmo
restritos a certas plataformas específicas como é o caso do SNNS e do Nevprop. A característica fundamental,
o principal diferencial de nossa proposta é a criação de um software livre em uma linguagem portável (Java),
permitindo assim uma maior disseminação do uso de nossas ferramentas.
3 METODOLOGIA
Nas subseções seguintes serão detalhadas algumas decisões tomadas em relação ao projeto de
desenvolvimento do ANNeF.
3.1 Abordagem Baseada em Framework
Segundo Johnson & Foote (apud Fayad, Shimidt e Jonhson) [17] framework é uma aplicação reusável
e semi-completa que pode ser especializada para produzir aplicações personalizadas. Ao contrário das técnicas
usuais de orientação a objetos que organiza as classes em bibliotecas, frameworks são voltados para unidades
particulares de negócios e domínios de aplicações. O maior benefício desta abordagem está no momento de
criar sub-classes, porque além de herdar as características inerentes as classes-pai, herda-se o comportamento e
o relacionamento destas.
Os principais benefícios em desenvolver um framework são a modularidade, reusabilidade,
extensibilidade e inversão de controle. A modularidade é garantida através da definição de interfaces e o
encapsulamento da implementação de métodos, permitindo um melhoramento na qualidade. Quanto a
reusabilidade é possível criar novas aplicações através de componentes genéricos, garantindo maior produtividade
de programação, garantia de qualidade, performance e confiabilidade do software.
Quanto a extensibilidade é a capacidade de estender funcionalidades a partir de comportamentos,
denominados hot spots, criando desta forma novas características. Finalmente a inversão de controle é a capacidade
do framework a responder eventos externos, mantendo o controle da execução da aplicação.
A escolha deste tipo de técnica de engenharia de software é bastante aplicável quando relacionamos
com a elaboração de softwares científicos livres, porque os desenvolvedores da aplicação conhecem o domínio
da aplicação, no caso Redes Neurais Artificiais. Além disso, quando se desenvolve um software de forma
cooperativa devemos permitir a incorporação de novos requisitos, a reusabilidade de código e a programação
baseada em métodos de interfaces bem definidos, que garantam uma integração modular.
Para elaborar a modelagem foi usado o ArgoUML [13], uma ferramenta software livre que auxilia na
criação de diagramas formalizados na Unified Modeling Language (UML) [8].
Um dos problemas dos frameworks é a dificuldade que os novos usuários tem de aprendê-lo. Para
amenizar este processo de aprendizagem é fundamental uma documentação estruturada [5,6] que descreva os
Anais do II Workshop sobre Software Livre – WSL2001
15
pontos que podem ser modificados e a forma de utilizar a biblioteca padrão. Para isto foi criado o Guia do
Programador [9], um documento baseado na GNU Free Documentation License (GFDL) [14], que reúne todos
os procedimentos de uso e personalizações.
3.2 Linguagem de Programação – Java
A escolha da linguagem Java[12] foi feita de acordo com uma tendência do uso desta linguagem pela
vantagem de ser multiplataforma, permitindo deste modo a construção de aplicações inteligentes portáveis.
Desta forma o ANNeF, pode ser executado sob qualquer plataforma, seja um sistema operacional ou um outro
aparelho eletrônico, por exemplo, um aparelho celular. Além disto, destaca-se pela integração com a Internet,
permitindo a construção de applets e servlets.
4 ANNEF – ARTIFICIAL NEURAL NETWORKS FRAMEWORK
Basicamente o ANNeF constitui-se de um pacote de classes (package) incluído em um pacote de maior
nível hierárquico, denominado ai (Artificial Intelligence), cujo objetivo consiste simplesmente em reunir uma
série de soluções de software livre aplicadas a Inteligência Artificial.
O ANNeF tem como domínio qualquer aplicação que necessite a implementação de algum tipo de Rede
Neural Artificial (RNA). As implementações dos inúmeros modelos de RNAs serão desenvolvidas de forma
gradual, sendo o algoritmo de Backpropagation [1] a primeira implementação.
As principais funcionalidades do framework são: fornecer a implementação de modelos clássicos de
RNAs, tais como Backpropagation e Mapas de Kohonen [2]; permitir a adaptação destes modelos criando
variações, tais como o Quickprop (variação da implementação clássica do Backpropagation); inclusão de novos
modelos de RNAs sem alterar o funcionamento dos demais; definir novas funções de ativação dos neurônios;
definição de importadores de arquivos sinápticos; e oferecer um visualizador gráfico de topologias de RNAs.
Além deste benefício podemos citar os seguintes: totalmente independente de plataforma, pode ser
executado sob qualquer sistema operacional ou dispositivo eletrônico que possua uma Java Virtual Machine
(JVM); utiliza o paradigma de programação orientada a objetos, facilitando a compreensão do problema através
de abstrações e inter-relacionamentos de classes; reutilização de código, reduzindo o tempo de desenvolvimento;
e a facilidade de construir novas aplicações de RNAs, devido a uma API formalizada.
Quanto as possibilidades de aplicação deste framework são inúmeras [7], diversas áreas atualmente
estão utilizando Redes Neurais Artificiais para tratar seus problemas. Dentro da diversidade de áreas possíveis
de uso podemos enumerar as seguintes: reconhecimento de caracteres e/ou palavras; classificação de padrões;
identificação de padrões em imagens; processamento e reconhecimento de sons; processamento de imagens
[4]; aproximação de funções matemáticas; robótica autônoma; sistemas especialistas; agentes autônomos;
interfaces de interações em ambientes virtuais [3]; entretenimento; e segurança, por exemplo, reconhecimento
de impressões digitais.
4.1 A Estruturação do Framework
O ANNeF consiste de um núcleo, com as principais abstrações e características implementadas e uma
biblioteca com modelos neurais.
As classes pertencentes ao núcleo do framework permitem que o desenvolvedor execute as seguintes
personalizações:
i) criação de novas funções de ativação;
ii) criação de importadores de pesos sinápticos;
iii) criação de novos modelos neurais;
iv) geração de bases de exemplos.
Quanto a biblioteca, esta primeira versão do ANNeF oferece para o desenvolvedor as seguintes
facilidades:
i) implementação das funções sigmóide e linear;
ii) importação de arquivos de pesos sinápticos, gerados pelo Nevprop [17];
iii) implementação do algoritmo de aprendizado supervisionado Backpropagation;
iv) implementação do BackpropSimulator, uma ferramenta completa para executar a simulação de
aprendizado do modelo neural citado acima.
16
Anais do II Workshop sobre Software Livre – WSL2001
5 CONSIDERAÇÕES FINAIS
Conclui-se o presente trabalho constatando que a construção de softwares livres é de suma importância
para o progresso da ciência em geral, obviamente afetando o contexto social existente. Desenvolvendo soluções
computacionais e distribuindo estes trabalhos livremente para a comunidade, seja esta acadêmica ou não,
estaremos possibilitando a melhoria desta solução através de um trabalho cooperativo e estaremos permitindo
que novos softwares sejam gerados.
No que se refere ao ANNeF, este software ainda está em sua versão inicial onde se espera que ele ainda
possa sofrer muitas melhorias, que possivelmente serão mais facilmente atingidas com o trabalho cooperativo.
A versão atual da biblioteca do framework contempla somente o algoritmo de Backpropagation, onde
possivelmente a implementação de novos modelos neurais será realizada.
O ANNeF já possui uma versão preliminar disponível que pode ser obtida na Internet no seguinte
endereço: http://www.inf.unisinos.br/~jrbitt/annef/.
REFERÊNCIAS BIBLIOGRÁFICAS
[1] RUMELHART, D. ; HINTON, G & WILLIAMS, R. Learning Internal Representations by Error
Propagation. In: Parallel Distributed Processing: Explorations in the Microstructure of Cognition
– Vol. 1. Cambridge: MIT Press, 1986.
[2] FREEMAN, James A. & SKAPURA, David M. Neural Networks: Algorithms, Applications, and
Programming Techniques. Addison-Wesley Publishing, Reading,1992. 401p.
[3] MUSSE, Soraia R. ; OSÓRIO, Fernando S.; GARAT, Fabien et al. Interaction with Virtual Human Crowds
using Artificial Neural Networks to Recognize Hands Posture. In: Proceedings of III Workshop on
Virtual Reality. Gramado: SBC, 2000, p.107-118.
[4] BITTENCOURT, João Ricardo; OSÓRIO, Fernando S. Adaptive Filters for Image Processing based on
Artificial Neural Network. In: Proceedings of XIII Brazilian Symposium on Computer Graphics and
Image Processing. Gramado: SBC, 2000, p.336.
[5] FROEHLICH, Garry. HOOVER, James H et al. Designing Object-Oriented Frameworks. In: ZAMIR,
Saba (org). Handbook of Object Technology. Nova Iorque: CRC Press, 1999.
[6] FROEHLICH, Garry. HOOVER, James H et al. Using Object-Oriented Frameworks . In: ZAMIR, Saba
(org). Handbook of Object Technology. Nova Iorque: CRC Press, 1999.
[7] OSÓRIO, Fernando S. Redes Neurais Artificiais: Do Aprendizado ao Aprendizado Artificial. I Fórum
de Inteligência Artificial, Canoas, agosto. 1999. Internet: http://www.inf.unisinos.br/~osorio/ IForumIA/
fia99.pdf
[8] UMG. Unified Modeling Language Specification. March, 1999.Internet: http://www.omg.org
[9] ANNeF Guia do Programador – http://www.inf.unisinos.br/~jrbitt/annef/index.html
[10] STALLMAN, Richard. Why Software Should Be Free. 1992. Internet: http://www.gnu.org/philosophy/
shouldbefree.html
[11] What is Free Software? – http://www.gnu.org/philosophy/free-sw.html
[12] Sun Microsystems – http://java.sun.com
[13] ArgoUML 0.8.1 – http://www.argouml.org
[14] GNU Free Documentation License – http://www.gnu.org/copyleft/fdl.html
[15] SIMÕES, Reinério Luiz M. A Imaginação Material segundo Gaston Bachelard. Rio de Janeiro, 1999.
95p. Dissertação (Mestrado), Instituto de Filosofia e Ciências Humanas, Universidade do Estado do Rio
de Janeiro, 1999. Internet: http://www.geocities.com/Athens/Acropolis/9568/ filosofia.html
[16] GOODMAN, Phil; ROSEN, David; PLUMMER, Allen. NevProp (Users Manual). University of Nevada
Center for Biomedical Modeling Research.
[17] FAYAD, M.E; SCHMIDT, D.C.; JOHNSON, R.E. Building Application Frameworks. New York: Willey,
1999, 664p.
Anais do II Workshop sobre Software Livre – WSL2001
17
PLATAFORMA F@MILIA: SOFTWARE LIVRE PARA O
PROGRAMA DE SAÚDE DA FAMÍLIA
Edgard de Faria Corrêa(1,2) ([email protected], [email protected])
Heitor G. de A. Figueira(3) ([email protected])
Ivan Saraiva Silva(3) ([email protected])
Kátia Maria T. da Silva(4) ([email protected])
Superintendência de Informática – SIn / Universidade Federal do Rio Grande do Norte – UFRN(1)
Cursos de Engenharia de Computação e Sistemas de Informação / Universidade Potiguar – UnP(2)
Departamento de Informática e Matemática Aplicada – DIMAp / UFRN(3)
PSF Monteiro – Equipe 5 / Secretaria de Saúde Municipal de Monteiro – Paraíba(4)
RESUMO
O presente artigo apresenta a Plataforma F@MILIA, um software livre “copylefted”, com suporte para
acesso remoto, via Web. Esta plataforma é um bom exemplo de sistema onde se verifica a existência de grande
interesse social e tecnológico para o desenvolvimento do mesmo.
Palavras Chaves: Software Livre, Saúde da Família, Tecnologia da Informação.
ABSTRACT
This paper shows the F@MILIA Platform, a copylefted free software, with Web access support. This
platform is a good example of a system that has a great social and technologic interest on its development.
Key Words: Free Software, Family Health, Information Technology.
1 INTRODUÇÃO
O PSF (Programa de Saúde da Família) é um programa do Ministério da Saúde que visa reorganizar a
prática de saúde publica, levando-a para mais perto dos núcleos familiares. A plataforma F@MILIA foi concebida
e desenvolvida com o objetivo de fornecer às equipes multiprofissionais, responsáveis pela execução dos serviços
de saúde deste programa, uma plataforma aberta, destinada ao planejamento, gerenciamento e acompanhamento
das ações públicas de prevenção, promoção e recuperação da saúde. F@MILIA é um software livre “copylefted”[1]
com suporte para acesso remoto, via WEB. Além disso, inclui ferramentas que permitem realizar análises
estatísticas de dados, auxiliando as equipes na tomada de decisões quanto a possíveis ações curativas e preventivas
de saúde.
Neste artigo a plataforma F@MILIA será apresentada sob duas óticas. Do ponto de vista dos gestores
e dos profissionais de saúde pública, ela é um produto moderno da Tecnologia da Informação (TI), que agrega
uma grande quantidade de recursos e características desejáveis. Do ponto de vista dos profissionais da área de
informática F@MILIA é um sistema que se situa na interseção dos sistemas de interesse social e dos sistemas
de interesse tecnológico, oferecendo espaço para pesquisa e desenvolvimento em diversas sub-áreas do
conhecimento. Na seção 2 será brevemente apresentada a política de utilização de software livre, adotada pelo
Ministério da Saúde, bem como, o sistema informatizado utilizado atualmente pelo PSF. A seção 3 apresentará
as e características e a arquitetura da plataforma. Nas seções 4 e 5, respectivamente, serão vistas a experiência
de utilização da plataforma e as conclusões e considerações finais.
2 A SAÚDE PÚBLICA “LIVRE” NO BRASIL
O Ministério da Saúde, por intermédio do DATASUS, adotou o software livre como base de sua política
na área de informática [2]. Os principais fatores para esta decisão foram: a redução dos custos devidos a aquisição
de sistemas operacionais, bancos de dados e ferramentas de desenvolvimento, entre outros, e a abertura do
código, que permite atualizações e melhorias, sem os entraves econômicos e jurídicos, oriundos da retenção da
propriedade do código.
Dois sistemas importantes, desenvolvidos com a tecnologia de softwares livres, já são usados em várias
unidades de saúde de todo o País. O primeiro deles é o Hospub – Hospital Público, sistema modular e totalmente
integrado de informatização hospitalar. O segundo é o Sistema Central de Marcação de Consultas, desenvolvido
18
Anais do II Workshop sobre Software Livre – WSL2001
para o sistema operacional Linux, com o gerenciador de banco de dados Open Base. Estes sistemas vem sendo
usados há algum tempo e gozam de boa reputação entre os usuários de todos os níveis [2].
Procurando atender as necessidades de informatização do Programa de Saúde da Família (PSF), a
equipe de desenvolvimento da Plataforma F@MILIA se inspirou no esforço nacional de desenvolvimento de
software livre, para produzir um sistema livre de interesse social e tecnológico.
2.1 O Programa de Saúde da Família
O PSF foi criado em 1994, com o intuito de realizar uma reorganização, de caráter substitutivo, da
prática da atenção à saúde pública. No PSF as ações de saúde são executadas, em uma unidade básica de
saúde ou no domicílio dos pacientes, por uma equipe multiprofissional, constituída de, no mínimo, um médico,
um enfermeiro, um auxiliar de enfermagem, de quatro a seis agentes comunitários de saúde (ACS) e um
dentista. Outros profissionais podem ser incorporados às equipes, de acordo com as necessidades e
possibilidades locais. Uma equipe de PSF atua em uma área municipal definida e, nesta área, é responsável
pelo primeiro nível de ações e serviços do sistema local de assistência, denominado atenção básica [3].
Para a realização destas atividades os profissionais das equipes do PSF pouco utilizam os recursos da
Tecnologia de Informação (TI). Atualmente o uso da TI e limitado à alimentação do Sistema de Informação
de Atenção Básica (SIAB) [4, 5], que agrega as informações coletadas pelas equipes. Embora bastante
completo, do ponto de vista do volume e da qualidade das informações coletadas e processadas, o SIAB não
beneficia de maneira imediata as equipes do PSF. Seu uso é, na prática, limitado à avaliação periódica das
atividades de atenção básica de saúde, desenvolvidas pelas equipes. A alimentação do SIAB constitui um
requisito obrigatório para recebimento dos incentivos disponibilizados aos municípios pelo Governo Federal
[3].
3 A PLATAFORMA
Baseada no SIAB, a plataforma F@MILIA busca atender, simultaneamente, aos requisitos dos gestores
de saúde pública e dos profissionais das equipes do PSF. Para os gestores de saúde publica F@MILIA se
propõe a oferecer os mesmos serviços atualmente disponíveis no SIAB, além de incorporar novos recursos,
tais como, auditoria e avaliação de produtividade. Para as equipes do PSF F@MILIA oferece a possibilidade
de transformação dos dados coletados nas consultas e visitas, em recursos usados para o auxílio ao
planejamento e execução de ações de prevenção e recuperação da saúde pública. Para isto F@MILIA oferece
os seguintes recursos: cadastro e prontuário eletrônico; consulta on-line; busca e análise estatística de dados
e permuta de dados com o setor privado e outros serviços públicos. Este último recurso assegurando a referência
e a contra-referência, para clínicas e serviços de maior complexidade, sempre que o estado de saúde do
paciente assim exigir, conforme determina o Ministério da Saúde.
Adicionalmente F@MILIA é uma plataforma aberta (software livre “copylefted”), o que garante a
livre utilização, adaptação e distribuição, por equipes e hospitais públicos ou por clínicas e consultórios
privados.
3.1 Características da Arquitetura
A Plataforma F@MILIA foi desenvolvida como um sistema cliente–servidor. Do lado do servidor é
necessário a instalação de um servidor de banco de dados e um servidor de aplicações. Por coerência com a
proposta de desenvolvimento de um software livre, optou-se pelo servidor de bando de dados PostgreSQL
[6] instalado sobre o sistema operacional Linux, ambos sistemas livres de distribuição gratuita. A plataforma
propriamente dita está organizada como um conjunto de páginas WEB e foi desenvolvida com a linguagem
de programação PHP (Personal Home Page Tools) [7, 8] que também desempenha o papel de servidor de
aplicações e é, igualmente, software livre. Do lado do cliente é necessária apenas a instalação de um navegador
de ambiente WEB (browser).
Estas características apresentam uma certa modularidade, permitindo a um município o
dimensionamento de seu sistema, conforme suas necessidades e recursos. Em municípios com grande
quantidade de unidades básicas de saúde ou com unidades geograficamente distantes, boa infra-estrutura de
comunicação de dados e recursos suficientes para equipar todas as unidades com microcomputadores, uma
máquina servidora poderá ser acessada, via Internet/Intranet, por várias máquinas clientes. Assim, a estrutura
apresentada na Figura 1(a) seria a mais adequada, oferecendo o melhor desempenho. O município pode optar
ainda pela utilização de vários clientes e a instalação dos servidores em uma única máquina (figura 1(b)) ou
pela utilização de uma ou mais maquinas servidoras de forma stand alone (Figura 1(c)). Neste último caso é
Anais do II Workshop sobre Software Livre – WSL2001
19
importante que a máquina servidora ou uma das máquinas servidoras esteja conectada a Internet, para permitir
o acesso dos dados pelos gestores estaduais e federais de saúde pública.
Servidor de
Aplicações
Internet
Cliente
Servidor de
Banco de Dados
(a)
Cliente
Servidores de
Banco de Dados
e de Aplicações
Internet
(b)
Cliente e
Servidores
Internet
(c)
Figura 1: Alternativas de Instalação da Plataforma F@MILIA
3.2 Módulos
A plataforma atualmente está pronta para atender a três atividades básicas das equipes: cadastro; consultas
e buscas e análises estatísticas de dados. Cada uma destas atividade é atendida por uma coleção de páginas
HTML [9].
• Cadastro: Nas páginas destinadas a esta atividade é possível cadastrar: equipes do PSF – que
envolve a definição de segmentos, áreas e microáreas municipais; funções – que permite a inclusão
de novas categorias de profissional na equipe; profissionais – que vincula os profissionais às funções
e equipes já cadastradas; famílias – onde são cadastradas as famílias e seus membros e envolve a
coleta de dados solicitados pela ficha A do Manual do SIAB [4].
• Consulta: Aqui é realizado o acompanhamento propriamente dito das famílias e seus membros.
Busca de pacientes, registro e verificação de consultas e cadastro e acompanhamento em programas
especiais de saúde (portadores de hanseníase ou tuberculose, gestantes, hipertensos e diabéticos)
são algumas das atividades suportadas. O acompanhamento cotidiano dos pacientes é utilizado para
a consolidação de uma base de conhecimento sobre as famílias atendidas. Esta base é usada para a
geração das informações consultadas pelos gestores de saúde pública e para o auxílio ao planejamento
e execução de ações de prevenção e recuperação da saúde pública.
• Buscas e Análises Estatísticas: A plataforma F@MILIA, na sua versão atual, está dotada de uma
ferramenta de busca e análise estatística de dados na base instalada. O objetivo desta ferramenta é
oferecer aos gestores e profissionais da área da saúde uma visão qualificada do trabalho efetuado
pelas equipes do PSF. Na versão atual, pesquisas são efetuadas envolvendo informações da ficha de
atendimento diário [4].
Atualmente, encontra-se em desenvolvimento uma versão completa e robusta desta ferramenta, que
deverá permitir pesquisar o relacionamento estatístico de qualquer informação armazenada. Dentre elas podem
ser citadas:
• Ocorrência de patologias específicas, cadastradas pelo CID1 , que podem ser relacionadas com outras
informações: áreas de risco, faixa etária, endereço, etc.
• Visitas domiciliares poderão ser relacionadas com as microáreas visitadas, sendo possível avaliar a
existência de correlação entre a redução do número de casos e a quantidade/freqüência de visitas
realizadas no período, bem como procedimentos realizados nas visitas, por exemplo.
• Medicação prescrita (data, fornecimento, patologia associada), rejeição, abandono de tratamento,
etc.
3.3
A Plataforma F@MILIA e o Desenvolvimento Tecnológico em Informática
A idéia de desenvolvimento da plataforma F@MILIA surgiu da solicitação da equipe 5 do PSF da
cidade de Monteiro na Paraíba. Embora a solicitação inicial tenha sido por um sistema de pequeno porte, que
auxiliasse na coleta e consolidação dos dados a serem inseridos no SIAB, rapidamente se constatou a viabilidade
e interesse tecnológico de desenvolvimento de um sistema completo, que beneficiasse o trabalho cotidiano dos
profissionais das equipes. Alguns dos temas de interesse tecnológico que podem ser abordados durante o
1
Código Internacional de Doenças.
20
Anais do II Workshop sobre Software Livre – WSL2001
desenvolvimento da plataforma são: a utilização de técnicas de referenciamento e processamento geográfico da
base de dados; a integração de ferramentas de comunicação on-line multimídia, notadamente a vídeo conferência;
a pesquisa e desenvolvimento de arquiteturas de hardware de baixo custo e bom desempenho para os requisitos
da aplicação, a modelagem e desenvolvimento de ferramentas de auditoria e avaliação de produtividade, os
mecanismos de segurança e controle de acesso e a melhoria da ferramenta de busca e análise estatística dos
dados. Estes dois últimos temas são objeto de duas dissertações de mestrado em desenvolvimento no Mestrado
em Sistemas e Computação da UFRN.
4 O PROJETO PILOTO: MONTEIRO/PB
A cidade de Monteiro está localizada no Cariri paraibano, a aproximadamente 300 km da capital, João
Pessoa. Monteiro é uma cidade com 129 anos de emancipação política e 27.685 habitantes, 40% dos quais
habitam na zona rural. A rede de atendimento de saúde de Monteiro conta hoje com: um hospital regional; 4
postos de saúde na zona urbana e 14 na zona rural; quatro equipes do PSF (as equipes são numeradas de 3 a 6),
duas delas (equipes 5 e 6) totalmente dedicadas a zona rural, atendendo a 52% da população.
A plataforma foi desenvolvida com o auxílio dos profissionais de saúde da equipe PSF 5 deste município.
Esta equipe, que deverá iniciar a experiência de utilização em campo da plataforma em maio de 2001, atende
atualmente 715 famílias (2913 pessoas) distribuídas em 6 microáreas, que englobam 23 localidades rurais
(sítios) distantes entre 6 a 30 km do centro do município. Com o início do uso em campo espera-se, por exemplo,
que a integração dos dados relativos ao atendimento das equipes do PSF e do Centro Municipal de Saúde,
possibilite, como resultado prático imediato:
• A redução do fluxo de pacientes para o Centro Municipal de Saúde, e
• A racionalização da distribuição gratuita de remédios pela farmácia pública local.
Como resultados de médio e longo prazo espera-se a consolidação de uma base de dados sobre as
demandas de assistência básica em saúde da população, de forma a possibilitar o planejamento e execução de
ações preventivas e curativas de grande impacto, principalmente no que se refere ao acompanhamento e assistência
aos grupos de risco.
5 CONSIDERAÇÕES FINAIS
Neste artigo foi descrito o processo de modelagem e desenvolvimento de uma plataforma livre (software
livre) para o gerenciamento de atividades de saúde pública da família. Este trabalho foi incentivado e orientado
pelas necessidades da equipe cinco do Programa de Saúde na Família da cidade de Monteiro na Paraíba. Durante
a realização do trabalho verificou-se o grande interesse científico e tecnológico existente no desenvolvimento
de sistemas computacionais para o atendimento de questões de cunho social, de um modo geral, e da área de
saúde pública em particular.
A plataforma F@MILIA resultante do trabalho de modelagem e desenvolvimento oriundo desta demanda
social encontra-se com seus módulos básicos (cadastro, consultas e pesquisas estatísticas) desenvolvidos e
operacionais. Não obstante foi possível identificar uma vasta gama de atividades de pesquisas em informática,
capazes de envolver os esforços da equipe de desenvolvimento por um tempo considerável.
REFERÊNCIAS BIBLIOGRÁFICAS
[1] Free Software Foundation. http://www.fsf.org. Acesso em 20/03/2001
[2] Revista do Linux. http://www.revistadolinux.com.br/ed/001/voceusa.php3. Acesso em 20/03/2001.
[3] Ministério da Saúde. http://www.saude.gov.br. Acesso em 20/03/2001.
[4] SIAB. Manual do Sistema de Informação de Atenção Básica. Secretaria de Assistência à Saúde,
Coordenação de Saúde da Comunidade. Brasília: Ministério da Saúde, 1998.
[5] Ministério da Saúde. http://www.datasus.gov.br. Acesso em 20/03/2001.
[6] PostgreSQL. http://www.postgresql.org. Acesso em 20/03/2001.
[7] VIVAS, M. Curso de Aplicações Web em PHP. CIPSGA: jun 2000.
[8] SOARES, W. Programando em PHP: Conceitos e Aplicações. Érica: São Paulo, 2000.
[9] FIGUEIRA, Heitor G. de A. Sistema de Informação de Saúde Familiar. Relatório de final de curso de
Bacharelado em Sistemas de Informação – Universidade Potiguar, jan 2001.
Anais do II Workshop sobre Software Livre – WSL2001
21
SKELMOD-3D: UM SISTEMA LIVRE E MULTIPLATAFORMA
PARA MODELAGEM E VISUALIZAÇÃO DE CORPOS ARTICULADOS
Rodrigo Berggevist Martins(1,2) ([email protected])
Anderson Maciel(1) ([email protected])
Luciana Porcher Nedel(1,2) ([email protected])
Instituto de Informática, UFRGS(1)
Faculdade de Informática, PUCRS(2)
Porto Alegre-RS – Brasil
RESUMO
Este artigo descreve um aplicativo livre que está sendo construído sob a GPL com a finalidade de
modelar corpos articulados 3D usando ferramentas de software livre. O aplicativo em questão foi desenvolvido
com a linguagem C++ em ambiente Linux e utilizando as bibliotecas livres FLTK e Xerces-C++. Além disso,
usamos a biblioteca gráfica OpenGL para produzir visualização 3D. O artigo descreve rapidamente o projeto
VPAT, no qual o trabalho em questão está inserido, ressaltando a importância do uso da computação gráfica na
área médica.
ABSTRACT
This paper describes an application that is being developed over the GPL License to model 3D articulated
bodies. In the development process we are using C++ programming language, Linux and some other free
libraries, like FLTK and Xerces-C++. In addition we are also using the popular OpenGL library to produce 3D
visualization. The paper also presents the VPAT project, where this work is integrated, highlighting the
potencialities of using Computer Graphics on medical applications.
1 INTRODUÇÃO
Já há algum tempo o Grupo de Computação Gráfica da UFRGS vem concentrando esforços no
desenvolvimento de novos métodos e algoritmos dedicados à solução dos problemas inerentes a aplicações de
computação gráfica e visualização científica na medicina. A busca dessas soluções deixa à mostra desafios que
vão desde a visualização volumétrica de dados extraídos por tomografia computadorizada, ressonância magnética
e ultra-som, até simulações da fisiologia e anatomia humana, como o movimento articulado dos membros ou o
funcionamento dos órgãos vitais (coração, pulmão, etc.).
Há pouco mais de dois anos, visando a criação de um ambiente de trabalho colaborativo que facilitasse
não apenas a produção de software, mas sobretudo a reutilização do código produzido no âmbito das dissertações
de mestrado e teses de doutorado em andamento, o grupo preocupou-se com a concepção de um grande projeto
que facilitasse o trabalho de desenvolvimento local. O projeto VPAT (Criação e Visualização de Pacientes
Virtuais) [1] objetiva a construção progressiva de um ambiente para modelagem, visualização e simulação de
pacientes virtuais. O trabalho apresentado a seguir é parte deste projeto e objetiva a modelagem de corpos
articulados, respeitando as características anatômicas identificadas nas articulações humanas.
2 O PROJETO VPAT
O projeto VPAT, conforme mencionado anteriormente, tem como objetivo gerar modelos de representação
de seres humanos virtuais para uso em aplicações de computação gráfica na área médica. As pesquisas na área
visam permitir o melhor entendimento da forma humana, suas funções e seu desenvolvimento. Espera-se ainda,
com os resultados deste projeto, facilitar a colaboração entre profissionais de diversas especialidades (anatomistas,
radiologistas, engenheiros, físicos, cientistas da computação, matemáticos, bioengenheiros, patologistas,
antropologistas e educadores), promovendo a aplicação da computação gráfica na medicina e na educação. O
crescente número de procedimentos clínicos complexos e a necessidade de simulá-los e ensiná-los incentivam
o desenvolvimento de modelos virtuais. Analogamente aos simuladores de vôo, este tipo de tecnologia permite
ao estudante participar seguida e repetidamente de situações raras e/ou de emergência, e permite aos profissionais
experientes simular procedimentos cirúrgicos de alto risco antes de sua aplicação no paciente real.
Este projeto envolve tanto reconstrução 3D de partes da anatomia humana a partir de imagens médicas,
22
Anais do II Workshop sobre Software Livre – WSL2001
como a síntese de corpos humanos virtuais e seus movimentos. O presente trabalho está situado exatamente na
síntese de corpos humanos virtuais. O VPAT define um modelo para representação de corpos humanos articulados
baseado num estudo anatômico das articulações humanas. Este modelo articular define as propriedades de cada
um dos diferentes tipos de articulações e também uma maneira para organizar as articulações hierarquicamente
de forma a compor um corpo, estabelecendo que tipo e que quantidade de movimento cada articulação pode
apresentar.
Um conjunto de classes baseado nesse modelo articular foi implementado na linguagem C++, permitindo
assim, que um programa simule um corpo humano em movimento. Porém, para que se possa realizar essa
simulação, é necessário configurar um corpo articulado, definindo posições, orientações e relações topológicas
para as articulações. Dessa forma, surge a necessidade de desenvolver um programa para modelar corpos humanos
e que ofereça ferramentas intuitivas para definir os parâmetros do corpo como um todo e de cada articulação
individualmente, permitindo que essa representação seja posteriormente utilizada na simulação de movimento.
A construção desse programa, denominado “SkelMod-3D” constitui o tema central deste artigo.
3 O SISTEMA SKELMOD-3D
Ainda em desenvolvimento, o SkelMod-3D já oferece algumas funcionalidades importantes. Sua interface
gráfica com o usuário consiste de uma janela principal OpenGL [2], uma área gráfica que permite visualização
e navegação em uma ambiente 3D, e de uma janela 2D destinada a configuração dos parâmetros de cada
articulação. Na janela de visualização 3D, o usuário pode criar instâncias de juntas pressionando o botão esquerdo
do mouse em uma posição arbitrária no universo 3D. As juntas são então representadas por esferas, que podem
ser selecionadas e arrastadas para qualquer ponto do universo. Para definir a hierarquia que existe entre as
articulações humanas, permite-se a criação de ligações entre as juntas. Uma ligação entre duas juntas é
representada graficamente por um cilindro unindo o centro da esfera correspondente a junta pai, ao centro da
esfera que define a junta filha. Caso uma esfera que já esteja ligada a outra tenha sua posição modificada
(através da opção de arrasto do mouse), o cilindro que representa a ligação a acompanha de modo a manter a
informação visual da ligação.
Com isso, o usuário pode construir um esqueleto humano simples, ou seja, com informação topológica
mas sem considerar formas humanas reais, posto que as ligações são representadas por cilindros. Entretanto,
para que este modelador cumpra o seu objetivo de fornecer a descrição detalhada necessária para proceder com
a modelagem articular anatômica, ele deve permitir que o usuário defina valores para os parâmetros de cada
articulação, individualmente. Para tanto foi criada uma janela de propriedades que é acessada ao pressionar a
tecla shift mais o botão esquerdo do mouse sobre a articulação selecionada. Nesta janela de parâmetros, podem
ser definidos dados como: número de graus de liberdade da articulação, amplitude do movimento, posição e
orientação de cada um dos seus eixos de movimento, nome da articulação, etc.
Para que essa descrição de corpo articulado possa ser posteriormente utilizada na simulação de
movimento, o modelador SkelMod-3D deve oferecer a possibilidade de gravar o corpo modelado em um arquivo,
de modo que o mesmo possa ser posteriormente importado para outros ambientes de animação. No exemplo em
questão, o BodySim, simulador de movimento do projeto VPAT, em desenvolvimento.
A solução a ser adotada objetivou o uso de um formato de arquivo conhecido e que pudesse ser facilmente
interpretado e estendido. Optou-se então pelo uso de arquivos no formato padrão XML (eXtensible Markup
Language). O XML [3] é um padrão mundial para troca de qualquer tipo de dado estruturado. Embora tenha
sido, até o momento, muito mais usado na troca de documentos pela Web, esse padrão foi desenvolvido para
armazenar qualquer tipo de dado estruturado, tendo se mostrado ideal para dados hierarquicamente estruturados,
como é o caso do esqueleto humano. Em um arquivo XML, os dados são gravados em formato “texto”, com
etiquetas de marcação para separar cada seção, atributo ou objeto. Portanto esses arquivos, além de poderem ser
facilmente compreendidos pelo ser humano, também podem ser editados com o auxílio de qualquer editor de
texto.
Para representar um corpo articulado em um arquivo XML, é preciso, antes de tudo, definir quais
etiquetas serão usadas e como elas devem delimitar as informações que representam o corpo. Essa definição
deve ser colocada em um arquivo DTD (Document Type Definition), que acompanha o XML e contém as regras
que determinam a sua forma. A partir da DTD, pode-se escrever programas para gravar e interpretar arquivos
XML. Para a geração e interpretação destes arquivos no computador existem diversos parsers de licença livre
disponíveis na Internet, desenvolvidos em Java, C++ e outras linguagens. Utilizou-se no desenvolvimento do
SkelMod-3D um destes parsers, que está sendo adaptado para processar um arquivo XML contendo um corpo
articulado e gerando assim, a estrutura de dados do corpo em memória para uso posterior.
Anais do II Workshop sobre Software Livre – WSL2001
23
O SkelMod-3D está ainda em fase de desenvolvimento e testes, mas já apresenta alguns resultados
gráficos, conforme mostra a Figura 1. Na figura observa-se um exemplo do SkelMod-3D em execução. Tendose modelado um corpo bastante simplificado, foi posteriormente selecionada a articulação da coluna responsável
pela junção dos braços com o tronco e a cabeça. A articulação então é exibida em vermelho e abre-se uma janela
de configuração de parâmetros (à esquerda).
Figura 1: Interface Gráfica do SkelMod-3D Executando em Plataforma Linux [4] Usando o Ambiente
de Janelas WindowMaker [5]
4 DECISÕES DE IMPLEMENTAÇÃO
O SkelMod-3D está sendo implementado em linguagem C++ [6] sobre plataforma Linux Red Hat [7],
usando o ambiente de programação Kdevelop [8] e o compilador GNU C [9], que é o compilador padrão da
plataforma para a linguagem C++. Por se tratar de uma aplicação gráfica 3D, foram consideradas também uma
série de outras bibliotecas responsáveis basicamente pela interface gráfica 3D, interface gráfica 2D e manipulação
de arquivos XML.
O projeto VPAT, cujo núcleo é constituído por um framework que objetiva fundamentalmente o reuso
de módulos de programação, foi concebido para ser multiplataforma e, preferencialmente, desenvolvido sob a
licença GPL (GNU Public License). Para tanto, foi realizada uma extensa pesquisa com várias bibliotecas
multiplataforma e livres disponíveis. Do produto deste trabalho, foram selecionadas para uso no projeto e
fundamentalmente no SkelMod-3D, os pacotes abaixo listados.
A opção pela linguagem C++ e pelo uso preferencial de bibliotecas livres, garante portabilidade ao
aplicativo. Apesar de estar sendo oficialmente desenvolvido em ambiente Linux, o SkelMod vem sendo
constantemente testado na plataforma proprietária MSWindows [10], usando o ambiente de programação
MSVisual C++ [11], sem necessidade de alterações relevantes no código.
• Interface Gráfica 3D (OpenGL): Esta biblioteca é um padrão mundial no desenvolvimento de
aplicações gráficas interativas 2D e 3D. Ela utiliza funções implementadas em hardware para acelerar
o processamento de efeitos gráficos, possibilitando a exibição em tempo real de elementos
tridimensionais. Tem sido largamente utilizada no desenvolvimento de aplicações e jogos (por
exemplo Quake III, Half-Life, MDK2) que tenham a necessidade de manipular grandes quantidades
de dados em tempo-real.
Embora ainda não disponha de licença livre, não exige licença para utilização e está disponível
gratuitamente para todas plataformas Linux, Unix, MacOS e MSWindows. Além disso, a Silicon
Graphics, criadora da OpenGL, está em processo de modificação de seus programas de licença para
se adaptar ao lançamento de uma versão OpenGL de código aberto. A OpenGL é hoje uma alternativa
gratuita ao Direct 3D, biblioteca proprietária comercializada pela Microsoft e que permite o
desenvolvimento de aplicações gráficas em ambiente MSWindows.
24
Anais do II Workshop sobre Software Livre – WSL2001
• Interface Gráfica 2D (FLTK): Na implementação da interface de janelas está sendo usada a biblioteca
FLTK (Fast Light Toolkit) [12], que é distribuída sob a GPL e vem acompanhada de uma ferramenta
de fácil manipulação para a criação de janelas com recursos 2D e 3D, o FLUID.
• Manipulação de Arquivos XML (XERCES C++): Fruto do Apache XML Project, o Xerces-C++
[13] é um parser que usa DTDs para validar um arquivo XML, isto é, verifica se ele está de acordo
com as regras definidas na DTD. Ele foi escrito em um subconjunto portável de C++ e facilita a
leitura e escrita de dados XML. O Xerces-C++ fornece uma biblioteca para gerar, manipular e validar
documentos XML de acordo com a recomendação XML 1.0, sendo que a distribuição inclui o
código fonte, exemplos e documentação.
5 CONCLUSÃO E TRABALHOS EM ANDAMENTO
Embora o trabalho ainda esteja em desenvolvimento, já se pode chegar a algumas conclusões,
principalmente no que diz respeito a utilização de ferramentas livres. Verificou-se que é possível desenvolver
software de qualidade utilizando ferramentas de código aberto. Verificou-se também, que essas ferramentas
podem ser modificadas e adaptadas às necessidades da aplicação, o que abre precedente para que o SkelMod3D também seja modificado futuramente por qualquer pessoa interessada, de forma a atender assim as suas
necessidades.
Apesar de já apresentar resultados gráficos, muitos recursos do modelador SkelMod-3D ainda não
foram implementados. Um desses recursos é o interpretador de arquivos XML, necessário para que se possa
testar na prática a eficácia dos corpos humanos modelados quando da simulação de movimento. Está em
desenvolvimento a implementação de recursos de navegação 3D (movimento de fontes de luz, câmera sintética
e do próprio corpo articulado no ambiente de modelagem); a inclusão de novos parâmetros na janela de
propriedades das articulações; e a implementação de uma interface que permita o controle do visualizador 3D
de forma intuitiva.
O modelador de corpos articulados do framework VPAT está sendo desenvolvido para ser um software
multiplataforma e de código aberto, aplicado a finalidades educacionais e médicas. No entanto, o fruto da
pesquisa que resultou na opção pelas plataformas de desenvolvimento mencionadas na Seção 4, não se limitou
em nenhum momento às restrições de aplicação do projeto VPAT. A opção pelas bibliotecas anteriormente
listadas, deu-se em função de ser o SkelMod-3D uma aplicação gráfica interativa e, como tal, necessitar de
ferramentas que permitam a sua execução em tempo-real.
BIBLIOGRAFIA
[1] VPAT – Criação e Visualização de Pacientes Virtuais – http://www.inf.ufrgs.br/cg/vpat
[2] R. S. Wright Jr., M. Sweet, “OpenGL SuperBible”, Waite Group Press, 1998. 714 p.
[3] Linux – http://www.linux.org
[4] XML – http://www.xml.org
[5] WindowMaker – http://www.windowmaker.org
[6] K. Jamsa, L. Klander, “Programando em C/C++ – A Bíblia”, Makron Books, 1012 p.
[7] Red Hat – http://www.redhat.com
[8] Kdevelop – http://www.kdevelop.org
[9] GNU C – http://www.gnu.org/software/gcc/gcc.html
[10] MSWindows – http://www.microsoft.com
[11] Visual C – http://msdn.microsoft.com/vstudio/
[12] FLTK – http://www.fltk.org
[13] Xerces C++ – http://xml.apache.org/xerces-c
Anais do II Workshop sobre Software Livre – WSL2001
25
PROJETO SISTEMAS AVANÇADOS PARA COMUNICAÇÃO ELETRÔNICA –
SOFTWARE ABERTO DE CORREIO, AGENDA E CATÁLOGO
Cláudio F. R. Geyer ([email protected]) – II/UFRGS
Clairmont Borges ([email protected]) – II/UFRGS
Patrícia Kayser Vargas ([email protected]) – UNILASALLE
Débora Nice Ferrari ([email protected]) – UNILASALLE
Christiano Otero Ávila ([email protected]) – UCPel
Adenauer Correa Yamin ([email protected]) – UCPel
Cristiano Cachapuz e Lima ([email protected]) – URCAMP
Luiz Cláudio Dalmolin ([email protected]) – URCAMP
Ricardo Balinski ([email protected]) – PROCERGS
RESUMO
Este artigo descreve os trabalhos que serão desenvolvidos no âmbito de um projeto de pesquisa aprovado
no Edital 06/2000 da FAPERGS. Este projeto contempla uma parceria entre a PROCERGS e as seguintes
universidades: UFRGS, UNILASALLE, UCPel e URCAMP. O objetivo do projeto é o aperfeiçoamento do
sistema DIRETO, o qual oferece serviços eletrônicos de correio, agenda e catálogo. É esperado que os resultados
do projeto contribuam na consolidação do DIRETO como um software de alta tecnologia, atendendo às
necessidades da PROCERGS e de outras instituições/empresas que venham utiliza-lo. Considerando que sua
distribuição será na forma de software livre, a estimativa é que o DIRETO irá atingir mais de 50 mil usuários
somente no setor público estadual.
ABSTRACT
This article describes the works that will be developed in the scope of a research project approved in
the Edictal 06/2000 of FAPERGS. This project contemplates a partnership among PROCERGS and the following
universities: UFRGS, UNILASALLE, UCPel and URCAMP. The objective of the project is the improvement of
the DIRECT system, which offers electronic services of mail, calendar and catalog. It’s expected that the results
of the project contribute in the consolidation of the DIRECT as a software of high technology, assisting to the
needs of PROCERGS and other institutions/enterprises that may use it. Considering that its distribution will be
in the form of free software, the estimate is that the DIRETO will reach more than 50 thousand users only in the
state public sector.
1 INTRODUÇÃO
O uso de redes de computadores, e da Internet de forma especial, potencializa a disponibilização de
informações e estimula mudanças nos processos das mais variadas áreas do conhecimento. Para que essa interação
ocorra são utilizados sistemas especializados para suporte à troca de informações eletrônicas e/ou para realização
de transações computacionais de forma distribuída. Normalmente, as redes de computadores apresentam
características heterogêneas. Essa heterogeneidade ocorre tanto em relação ao hardware quanto ao software,
sendo essa situação válida não somente para os ambientes acadêmicos como para os comerciais. Em grandes
empresas essa heterogeneidade costuma ser mais complexa quando existe um histórico de vários anos de uso da
informática, e onde ainda são mantidos sistemas para mainframe em funcionamento.
Em teoria, essa diversidade de componentes possibilitaria um maior número de configurações, cada
uma das quais mais adequada ao desempenho de uma determinada tarefa ou para uma determinada situação.
Porém, na prática nota-se que o controle dessas diferentes configurações de componentes é bastante complexo.
A computação em ambiente distribuído é complexa, sujeita à falhas e cara para desenvolver, testar e manter.
Para minimizar isto, surgiram diversas alternativas para simplificar a modelagem e a implementação em sistemas
distribuídos heterogêneos ([10] e [15]).
Deste modo, uma das preocupações atuais, tanto em ambientes acadêmicos como empresariais, consiste
na disponibilização de informações distribuídas (o que pode ser obtido através de replicação dos dados e do seu
acesso através de transações distribuídas) bem como a necessidade de padronizar a forma de comunicação entre
os membros dos grupos de trabalho. Para padronizar a comunicação, deve-se obter um produto viável em
26
Anais do II Workshop sobre Software Livre – WSL2001
termos de custos econômicos ao mesmo tempo com características refinadas, como filtros adaptáveis aos perfis
de usuário que facilitem o uso.
Outra motivação importante para esse trabalho é o contexto particular da PROCERGS. A PROCERGS
e a maioria de seus clientes do Estado trabalham desde 1992 com ferramentas proprietárias de correio eletrônico.
Isso causou problemas tais como: (a) dificuldades para comunicação interna e para implementação de ferramentas
de workflow; (b) heterogeneidade dificulta o treinamento dos usuários; (c) custo elevado; (d) falta de integração
entre os componentes dos sistemas.
A PROCERGS então decidiu desenvolver sua própria solução materializada através do produto DIRETO,
que se baseou totalmente em protocolos padrão Internet. Além disso, o DIRETO será um software livre, com
distribuição e licenças gratuitas, a partir de um site a ser construído e mantido pela PROCERGS, segundo os
termos da GNU General Public License (GPL). O DIRETO está em fase de desenvolvimento, possuindo os
recursos básicos e necessários para garantir o seu funcionamento. Porém, recursos mais avançados, os quais
servem de motivação para o presente projeto, serão implementados em versões futuras do produto através dessa
cooperação.
2 APRIMORAMENTOS NO DIRETO
A PROCERGS realizou um levantamento das necessidades que o produto deveria suprir. Estas
necessidades foram divididas em gerais e de ambiente e a partir delas o sistema iniciou seu desenvolvimento. O
DIRETO é um produto modularizado que utiliza os protocolos vCalendar para agenda, STMP e IMAP para
correio e LDAP para catálogo. Ele está sendo desenvolvido utilizando a linguagem de programação Java e
também emprega outros programas de distribuição livre, como os sistemas operacionais GNU Linux e FreeBSD,
o banco de dados PostgreSQL, entre outros.
A primeira versão está em uso pelos funcionários da PROCERGS e novas necessidades estão sendo
detectadas. Assim, o objetivo deste projeto é fornecer subsídios para o desenvolvimento e a incorporação das
seguintes características ao produto DIRETO: (a) Documentação utilizando UML; (b) Metodologia para testes;
(c) Avaliação e otimização de desempenho; (d) Filtros adaptáveis aos perfis de usuários; e (e) Transações
distribuídas. Esses objetivos irão contribuir para a produção de um sistema mais eficiente e tecnologicamente
mais bem acabado. Cada um desses objetivos será detalhado nas seções seguintes.
2.1 Documentação Utilizando UML
Para facilitar a manutenção e agilizar o processo de inclusão de novas características no DIRETO é
fundamental a realização de atividades relacionadas à documentação e testes. Por isso, uma das primeiras tarefas
envolve a realização da documentação. Em um primeiro momento houve uma interação entre a equipe da
PROCERGS e alguns representantes das instituições a fim de obter uma visão geral do sistema. A partir disso os
códigos foram submetidos a uma ferramenta de engenharia reversa a fim de obter um diagrama de classes em
notação UML (Unified Modeling Language) [7]. Esta é uma linguagem para especificação e modelagem de
sistemas orientados a objetos. As etapas seguintes envolvem a análise do código a fim de obter outras visões do
sistema, como por exemplo através de diagramas de seqüência. Também estão sendo desenvolvidos diversos
textos HTML descrevendo tanto aspectos de instalação quanto de codificação.
2.2 Metodologia para Testes
Para a realização de testes será desenvolvida uma metodologia apropriada. A partir da especificação em
UML obtida na fase de documentação serão definidos subsídios para a construção da metodologia. Essa fase
permitirá validar e avaliar diferentes aspectos do sistema. Também é um dos objetivos dessa tarefa consolidar as
propostas de material de treinamento oriundas dos diversos grupos que integram o projeto à medida que o
mesmo se desenvolve.
2.3 Avaliação e Otimização de Desempenho
Para motivar o uso do DIRETO é necessário otimizar o sistema com relação ao desempenho. Por se
tratar de um sistema complexo, somente uma prática de avaliações sistemáticas pode conduzir a otimizações
efetivas [8]. Por exemplo, um ponto a ser avaliado é a eficiência do atual parser de XML.
2.4 Filtros Adaptáveis aos Perfis de Usuários
Atualmente, o excesso de informação é um problema comum para usuários de redes de computadores.
Seja usando correio eletrônico, acessando servidores de notícias (newsgroups) ou servidores WWW, os usuários
Anais do II Workshop sobre Software Livre – WSL2001
27
destes serviços lidam constantemente com o problema de encontrar ou selecionar informações relevantes. Técnicas
de Filtragem (ou Classificação) em [9], [13] e [14] são bastante usadas para organizar as informações ([5], [6]
e [3]), visando ajudar usuários a identificarem mais facilmente as informações que procuram ou desejam. Desta
forma, a inclusão de filtros adaptáveis aos perfis de usuários no DIRETO tem os seguintes objetivos: (a) permitir
que o usuário especifique seu perfil inicial de preferências (quanto ao conteúdo que deseja filtrar na caixa de
entrada do correio eletrônico); (b) realizar a filtragem para cada usuário, baseando-se no seu perfil de preferência
e também considerando a origem e o conteúdo do correio eletrônico; e (c) adaptar continuamente o serviço de
filtragem, usando como feedback as informações oriundas dos perfis de usuários.
O serviço de monitoramento e construção dos perfis de usuários e grupos de usuários é outro ponto
importante [6]. Devido à incerteza existente na construção de perfis, este projeto tem como um de seus objetivos
pesquisar as abordagens estatísticas e probabilísticas usadas na construção de perfis de usuários, assim como os
formalismos usados para modelar e manipular incerteza ([16] e [1]). Esta pesquisa visa aperfeiçoar e dar suporte
ao serviço de filtragem de correio eletrônico, construindo um perfil para cada usuário do software DIRETO, e
criando perfis de grupos de usuários, através da similaridade de seus interesses e comportamentos. Uma vez
criados estes perfis de grupos de usuários, serão aplicadas as técnicas de filtragem colaborativa para aumentar
a sinergia destes grupos ([12], [11], [2], [6] e [17]).
2.5 Transações Distribuídas
No contexto de uma comunicação distribuída, e cliente-servidor em especial, raramente as requisições
são constituídas de operações únicas ou várias requisições executadas como operações independentes, bem
como normalmente os servidores têm a necessidade de atender diversos clientes simultaneamente. Por isso, o
serviço de transações é oferecido em modelos cliente-servidor com o objetivo de permitir consistência,
durabilidade, isolamento e integridade dos dados (propriedades ACID). O uso de transações em sistemas
distribuídos serve para endereçar dois problemas: concorrência e falhas ([4] e [18]). O DIRETO, por ser um
sistema distribuído, também possui a necessidade de realizar um tratamento de transações. Desta forma, este
projeto visa o estudo e implementação de técnicas de transações distribuídas, em especial na organização de
reuniões através do serviço de agenda, sendo o controle destes aspectos vital para manter a consistência do
sistema.
3 CONCLUSÃO
O projeto como um todo se propõe a melhorar a comunicação e a divulgação de informações entre os
diversos órgãos públicos estaduais além de poder ser usado também em outros contextos usuários – órgãos
públicos em geral, universidades, escolas, etc. – por se tratar de um software livre.
A tecnologia desenvolvida pela PROCERGS, e aquela aplicada no DIRETO em especial, serão repassadas
para as universidades e portanto para os alunos de um modo geral contribuindo para uma visão mais aplicada
dos diversos aspectos estudados academicamente.
Por sua vez, a tecnologia desenvolvida pelas universidades através dos seus núcleos de pesquisa será
repassada à PROCERGS que poderá decidir pela sua integração ou não ao seu processo de desenvolvimento.
É importante salientar que além do DIRETO, os subprodutos tecnológicos gerados tanto pela
PROCERGS quanto pelas universidades serão disponibilizados para a comunidade em geral, uma vez que o
projeto será conduzido seguindo as premissas que regem o desenvolvimento de sistemas categorizados como
software livre.
REFERÊNCIAS BIBLIOGRÁFICAS
[1] Machine Learning. In: American Association of Artificial Inteligence. 2000. Disponível em <http://
www.aaai.org/Pathfinder/html/machine_learning.html>. Acesso em 12 dez. 2000.
[2] BILLSUS, Daniel; PAZZANI, Michael J. Learning Collaborative Information Filters. Int. Conf. on Machine
Learning. Proceedings… Morgan Kaufman, Madison, Wiscosin. 1998. Disponível em <http://
www.ics.uci.edu/~pazzani/Publications/MLC98.pdf>. Acesso em 20 jan. 2000.
[3] BRADLEY, P. S., SARAWAGI, S., FAYYAD, U. M. (Ed.). Internet Data Mining. In: SIGKDD Explorations
– Newsletter of the Special Interest Group (SIG) on Knowledge Discovery & Data Mining, June 2000.
Volume 2, Issue 1. Disponível em <http://www.acm.org/sigs/sigkdd/explorations/ issue2-1/>. Acesso em
15 fev. 2001.
[4] CAMPOS, J. B. de A. Um Servidor de Arquivos Distribuído com Suporte a Transações. CPGCC/
UFRGS, 1996. 141p. Dissertação de Mestrado.
28
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
Anais do II Workshop sobre Software Livre – WSL2001
FAORO, M.A., GEYER, C.F.R. Um Agente Para Localização e Organização de Informações. V Semana
Acadêmica do PPGC, Instituto de Informática/UFRGS. Disponível em <http://www.inf.ufrgs.br/pos/
SemanaAcademica/Programa-SA2000.html>. Acesso em: 29 abr. 2001.
HORVITZ, E. Agents with Beliefs: Refletions on Bayesian Methods for User Modeling, pp.441. In:
(Editors) Jameson, A.; Paris, C. and Tasso, C. User Modeling – Proceedings of the Sixth International
Conference (UM97) Springer-Verlag, 1997.
JACOBSON, I., BOOCH, G., RUMBAUGH, J. The Unified Software Development Process. AddisonWesley, 1999.
Killelea, P. Web Performance Tuning. Sebastopol: O´Reilly & Associates, 1998. 368p.
NIGAM, K. et al. Text Classification from Labeled and Unlabeled Documents using EM. In: Machine
Learning Journal, 1-34. Kluwer Academic Publishers. 1999. Disponível em <http://www.cs.cmu.edu/
~knigam/papers/emcat-mlj99.ps>. Acesso em: 31 jan. 2000.
OBJECT MANAGEMENT GROUP. CORBA Definitions. Disponível em <http://www.omg.org>. Acesso
em: 01 mar. 2000.
PAZZANI, Michael J.. A Framework for Collaborative, Cotent-Based and Demographic Filtering. In:
Artificial Intelligence Review. 1999. Disponível em <http://www.ics.uci.edu/~pazzani/Publications/
AIREVIEW.pdf>. Acesso em: 20 jan. 2000.
PENNOCK, D.M., HORVITZ, E. Collaborative Filtering by Personality Diagnosis: A Hybrid Memoryand Model-Based Approach. In: IJCAI Workshop on Machine Learning for Information Filtering,
International Joint Conference on Artificial Intelligence (IJCAI-99), August 1999, Stockholm, Sweden.
Disponível em <ftp://ftp.research.microsoft.com/pub/ejh/cfpd.pdf>. Acesso em: 29 abr. 2001.
SAHAMI, M et al. A Bayesian Approach to Filtering Junk Email. AAAI’98 Workshop on Learning
for Text Categorization, July 27, 1998, Madison, Wisconsin. Disponível em <http://
www.research.microsoft.com/~sdumais/ spam98.ps> Acesso em: 26 jan. 2000.
SEGAL, R. B., KEPHART, Jeffrey O. MailCat: an intelligent assistant for organizing e-mail. In: Proc.
Third Annual Conference on Autonomous Agents, May 1-5, 1999, Seattle, WA USA, p.276-282.
SUN Microsystems. The Source for Java tecnology. Disponível em <http://java.sun.com/> . Acesso em:
03 mar. 2001.
Uncertainty in Artificial Intelligence. In: Proceedings of the 15th UAI Conference. 1999. Disponível em:
<http://www.auai.org/>. Acesso em: 29 abr. 2001.
User Modeling. In: Proceedings of the Seventh International Conference. Ed.Judy Kay, Springer Wien,
New York, 1999. Disponível em: <http://www.um.org/um_99/Proc/>. Acesso em: 29 abr. 2001.
WEIHL, W. E. Transaction-Processing Techniques. In: Distributed Systems, 2nd ed., Sape Mullender
(ed). Addisson-Wesley, 1993. p.329-352.
Anais do II Workshop sobre Software Livre – WSL2001
29
SAGU, UM ANO DEPOIS...
Cesar Augusto de Azambuja Brod
Maurício de Castro
Fábio Wiebbelling
Pablo Dall’Oglio
Vilson Cristiano Gärtner
João Alex Fritsch
Paulo Mallmann
Ana Paula Fiegenbaum
Thomas Sprietersbach
CPD da Univates, Centro Universitário
Rua Avelino Talini, 171
95900-000 Lajeado, RS
E-mail: [email protected]
RESUMO
O SAGU, Sistema Aberto de Gestão Unificada, foi apresentado pela equipe da Univates no WSL2000
e entrou em produção na instituição em julho de 2000. Desde então este sistema que gerencia todo o
relacionamento dos alunos com a instituição de ensino cresceu bastante e acabou ganhando destaque na
comunidade de software livre, e mesmo fora dela, por ser um projeto de aplicação em grande escala de vários
programas e conceitos de desenvolvimento cooperativo. Passado um ano da primeira apresentação do SAGU à
comunidade, este trabalho irá mostrar a evolução do projeto, ferramentas auxiliares desenvolvidas, ferramentas
utilizadas no controle de qualidade do desenvolvimento e a evolução da arquitetura para o SAGU2.
ABSTRACT
SAGU is a Portuguese acronym for “Sistema Aberto de Gestão Unificada”, which translates in English
to “Unified Open Management System”. SAGU was originally designed to automate all of the relationship that
happens between a student and his/her Educational Institution. This relationship happens in the academic,
financial and administrative levels, and SAGU has subsystems – modules – dedicated to all of these levels.
Being a modular, open system, SAGU can be tailored to fit the needs of any Educational Institution. It uses PHP
and PostgreSQL and its server runs on a GNU/Linux operating system. The client is any graphical browser,
such as Netscape, Konqueror or even Internet Explorer, running in any operating system. SAGU is licensed
under the GNU/GPL. SAGU was first introduced to the academic and free software communities in May, 2000.
This article reviews the project evolution, auxiliary tools that have been developed, quality control and the
proposed architecture for SAGU2.
1 UMA BREVE HISTÓRIA DO SAGU
No ano de 1999 o sistema administrativo utilizado pela Univates, baseado em softwares proprietários,
começava a dar sinais de que sua vida estava chegando ao final. Em agosto daquele ano, Cesar Brod, da Brod
Tecnologia, e Fábio Wiebbelling, chefe do CPD da Univates participaram da Linux World Conference and
Expo nos Estados Unidos, onde tomaram contato com algumas experiências de desenvolvimento de aplicações
de bases de dados voltadas para a Web utilizando a linguagem PHP. Quando retornaram ao Brasil, apresentaram
à reitoria uma proposta de desenvolvimento de um novo sistema administrativo, totalmente baseado em software
livre. A Brod Tecnologia foi então contratada para assumir a gestão dos recursos de informática da instituição e
o projeto de criação do novo sistema começou.
O SAGU começou a ser desenvolvido com as seguintes premissas:
• Independência de base de dados: Como os problemas que enfrentávamos no sistema antigo eram em
grande parte devidos à amarração que tínhamos com uma base de dados proprietária, o novo sistema
nos deveria permitir a fácil migração para qualquer outra base caso isto se mostrasse necessário.
• Interface Web: Os usuários deveriam poder acessar o sistema independente do sistema operacional
que rodassem em seus computadores, e o novo sistema também deveria permitir que no futuro
30
Anais do II Workshop sobre Software Livre – WSL2001
migrássemos as estações dos clientes também para software livre (o que começou a ser feito em
janeiro de 2000). A melhor maneira de se conseguir isto era utilizando um browser padrão (Netscape
ou Internet Explorer) como cliente.
• Modularidade: O sistema seria dividido em módulos específicos e bem definidos, de forma que o
processo de desenvolvimento pudesse ser melhor dividido entre os membros da equipe e facilitasse
a colaboração de outros.
Em janeiro de 2000 o novo sistema processou em paralelo o vestibular de verão da Univates, com
sucesso e velocidade superiores ao esperado. Processamentos de classificação que levavam mais de três horas
no sistema anterior, em um servidor Pentium II 400 com 512 Mbytes de memória demoravam apenas alguns
minutos em uma máquina Pentium 200 com 64 Mbytes de memória usada nos testes.
O sistema foi batizado de SAGU (inicialmente um acrônimo para Sistema Aberto de Gestão Universitária,
e hoje Sistema Aberto de Gestão Unificada) pelo pró-Reitor administrativo da Univates, Professor Eloni Salvi,
quando precisávamos de um nome para apresentar o projeto no Workshop de Software Livre, que ocorreu em
paralelo ao 1º Fórum Internacional de Software Livre, nos dias 4 e 5 de maio de 2000.
O SAGU entrou em produção na Univates em julho de 2000, e hoje é responsável pela automação do
relacionamento acadêmico/administrativo e financeiro de mais de 5.000 alunos com a Instituição de Ensino.
O desenvolvimento do SAGU deu-se em tempo recorde, aproveitando a modelagem da base de dados
do sistema anterior. Se por um lado, isto nos permitiu colocar o novo sistema em produção na Univates em
menos de seis meses, por outro herdamos uma estrutura de dados que não era a mais adequada ao crescimento
e ao desenvolvimento cooperativo do sistema. Para a equipe do SAGU é relativamente simples olhar o modelo
ER da base de dados e entender as necessidades de negócio atendidas por este modelo. Para quem está de fora,
porém, um conjunto de tabelas e seus relacionamentos não ilustram de maneira fácil a finalidade do SAGU e de
cada um de seus módulos.
Como nosso intuito é que mais pessoas integrem-se ao desenvolvimento do SAGU precisávamos de
mais algumas coisas:
• A documentação do sistema deve ser clara, e criada de maneira dinâmica, ao mesmo tempo em que
o sistema é desenvolvido;
• Os módulos funcionais que compõem o SAGU devem refletir a necessidade de negócio que atendem,
de tal maneira que quem os programe não precise ser um profundo conhecedor de base de dados;
• A construção da interface de usuário deve poder ser feita por um webdesigner, que não necessite
conhecer a fundo as características internas do sistema.
Desta forma, esperamos poder dividir melhor as tarefas de desenvolvimento do SAGU. Um designer,
por exemplo, pode concentrar-se em criar uma interface agradável para o usuário, sem ter que conhecer a base
de dados. Um administrador de base de dados pode concentrar-se em aspectos de performance da base, não
necessitando conhecer profundamente os programas que a acessam.
2 A ARQUITETURA DO SAGU HOJE
O SAGU possui um módulo de abstração da base de dados (DBAL – Database Abstraction Layer), que
consiste no programa common.php3 e permite que o sistema utilize outras bases de dados que não o PostgreSQL.
Cada um dos módulos do SAGU, porém, é responsável pelo acesso à base de dados e à interface com o usuário.
S
G
B
D
D
B
A
L
.
c
o
m
m
o
n
.
p
h
p
Acadêmico
Financeiro
Vestibular
Ensino Médio
.
.
.
U
S
U
Á
R
I
O
.
W
E
B
Anais do II Workshop sobre Software Livre – WSL2001
31
3 NOVA ARQUITETURA PROPOSTA
Na arquitetura proposta para o SAGU2, temos algumas diferenças. A plataforma de abstração de base
de dados passa a usar mais intensamente as funções de abstração nativas do PHP4 (que ainda não estavam
maduras o suficiente quando começamos a desenvolver o SAGU em PHP3) e uma nova plataforma de interface
com a base de dados será construída. Esta interface (DBI- Database Interface) ainda está sendo estudada, e a
idéia é que ela se constitua em várias classes de funções de bases de dados que possam ser acessadas pelos
módulos de negócio (Acadêmico, Financeiro, etc.) de tal forma que idealmente, nenhum comando SQL necessite
ser implementado diretamente por estes módulos de negócio. Para cada módulo de negócio existirá ainda uma
interface de usuário (UI) e uma pele (Skin). A interface de usuário é construída de acordo com o perfil de cada
usuário e dos módulos que ele poderá utilizar, e a pele é basicamente a forma gráfica pela qual o usuário irá
interagir com o sistema. Desta forma, esperamos ter uma independência ainda maior da interface utilizada pelo
usuário, que pode ser um browser padrão ou em modo texto, ou mesmo uma interface do tipo Gtk1 .
S
G
B
D
D
B
A
L
.
p
h
p
l
i
b
D
B
A
L
Acadêmico
UI
Skin
Financeiro
UI
Skin
Vestibular
UI
Skin
Ensino Médio
UI
Skin
UI
Skin
.
.
.
U
S
U
Á
R
I
O
A documentação da nova arquitetura está sendo feita dentro do padrão UML, utilizando o “Dia”2 .
4 FERRAMENTAS DE GESTÃO DE PROJETO
A medida que o SAGU evoluía e mais desenvolvedores integravam-se ao projeto necessitamos de um
sistema de controle de versões, submissão de problemas, gerenciador de tarefas, arquivo de código, listas de
discussão, backups, enfim, toda a infra-estrutura necessária a boa gestão de um projeto. A solução foi encontrada
no software SourceForge3, utilizada no site de mesmo nome e que foi adaptada a nossa realidade, tornando-se
o site CódigoAberto.ORG, que além de servir de base ao desenvolvimento do SAGU e outros projetos da
Univates ainda oferece hospedagem a outros projetos da comunidade de software livre4 .
5 PROGRAMAS ACESSÓRIOS
Durante o desenvolvimento do SAGU, alguns programas que foram criados como módulos do sistema
ou com funcionalidade específica para a utilização com o mesmo acabaram criando vida própria, dentre eles
destacamos os seguintes:
• psLib5 : biblioteca de funções para a geração dinâmica de documentos no formato PostScript;
1
GTK (http://www.gtk.org The GIMP Toolkit) é um conjunto de ferramentas livres para a criação de interfaces gráficas
para usuários.
2
O Dia (http://www.lysator.liu.se/~alla/dia/) é uma ferramenta de diagramação em software livre.
3
http://sourceforge.net.
4
No momento da produção deste artigo, o CódigoAberto.ORG (http://codigoaberto.org.br) hospedava 22 projetos e
possuia 190 usuários registrados.
5
http://pslib.codigoaberto.org.br.
32
Anais do II Workshop sobre Software Livre – WSL2001
• SAGU-CVS: programa em Tcl/Tk que facilita o controle de envio de novas versões para o CVS6 ;
• dbf2sql7 : classe de conversão de arquivos .DBF (Clipper, dBase) em instruções SQL.
6 O FUTURO DO SAGU
Mais de 80 pessoas de várias instituições de ensino de todo o Brasil acompanham o desenvolvimento
do SAGU através de sua lista de discussões, e muitos deles já estão testando e avaliando o SAGU visando sua
adoção e colaborando de várias formas com o seu desenvolvimento. O SAGU acabou tendo bastante visibilidade
no meio acadêmico e fora dele, sendo mencionado em publicações técnicas (Revista do Linux, Info Exame) e
não técnicas (Revista Amanhã). Isto nos mostra que há espaço e avidez do mercado por soluções em software
livre. O maior desafio em um projeto do tamanho do SAGU é manter e aprimorar a unidade e o controle de
qualidade do desenvolvimento ao mesmo tempo em que se mantém o interesse dos colaboradores e
desenvolvedores independentes.
Nos parece ser apenas uma questão de tempo para que outras instituições de ensino venham a adotar o
SAGU, e que uma comunidade de desenvolvedores possa de forma cooperativa dar suporte às instalações e a
própria comunidade.
6
CVS – Concurrent Versions System (http://www.cvshome.org/) é um sistema de controle de versões largamente
utilizado pela comunidade que desenvolve software livre.
7
http://codigoaberto.org.br/projects/dbf2sql.
Anais do II Workshop sobre Software Livre – WSL2001
33
CPAD-PUCRS/HP: GNU/LINUX COMO PLATAFORMA
PARA PESQUISA EM ALTO DESEMPENHO
Tiago Coelho Ferreto ([email protected])
Fausto Richetti Blanco ([email protected])
Marco Aurélio Stelmar Netto ([email protected])
César Augusto Fonticielha De Rose ([email protected])
Pontifícia Universidade Católica do Rio Grande do Sul
CPAD-PUCRS/HP – Centro de Pesquisa em Alto Desempenho
CEP 90619-900 – Porto Alegre, RS, Brasil
Tel: (051) 320-3500 Ramal: 4463
RESUMO
A área de processamento de alto desempenho está fortemente relacionada ao software livre, devido ao fato de que
a maioria dos sistemas e ferramentas utilizadas na área são distribuídos como tal. O sistema operacional GNU/Linux é um
exemplo disto. Ele é utilizado atualmente em diversos clusters devido principalmente à sua eficiência e estabilidade. Este
artigo apresenta a experiência do Centro de Pesquisa em Alto Desempenho (CPAD – PUCRS/HP) na utilização do GNU/
Linux em clusters. Todos os sistemas e ferramentas desenvolvidos no centro são distribuídos como software livre, com o
intuito de promover a área e compartilhar as experiências adquiridas com outros centros.
ABSTRACT
The High Performance Computing Area is closely related with free software, because mostly of the systems and
tools used in the area are distributed as free software. The operating system GNU/Linux is an example of this. It is used
nowadays in many clusters mainly for its efficiency and stability. This paper presents the Research Center of High Performance Computing (CPAD – PUCRS/HP) experience using GNU/Linux on clusters. All the systems and tools developed in
the center are distributed as free software, to promote the area and share the obtained experiences with other centers.
1 INTRODUÇÃO
O processamento de alto desempenho é considerado uma ferramenta fundamental para as áreas de ciência e
tecnologia [1]. Sua importância estratégica é demonstrada pela quantidade de iniciativas em pesquisa e desenvolvimento
nestas áreas, financiadas por organizações do mundo todo. Um exemplo é a definição nos Estados Unidos de um conjunto
de aplicações prioritárias (Grand Challenges [2], ou grandes desafios) que estão exigindo alto desempenho (e investimentos
do governo para resolvê-las). O processamento de alto desempenho, contudo, depende por sua vez de técnicas do
processamento paralelo, capazes de prover o desempenho necessário àquelas aplicações [2].
Existem diversas arquiteturas para a realização de processamento de alto desempenho [3]. Atualmente a tendência
são as arquiteturas baseadas em agregados, ou simplesmente clusters. Cluster é uma coleção de computadores [4] (estações
de trabalho, máquinas pessoais ou servidores), chamados de nodos, os quais são utilizados exclusivamente para obtenção
de alto desempenho. Estas máquinas são fisicamente interconectadas por uma rede local comum ou de alta performance.
As principais vantagens desta classe [3] são:
• Comportam-se como redes de estações porque os nodos da rede são servidores ou PCs e podem ser
usados em aplicações convencionais;
• Com o uso de placas de comunicação de alta velocidade (SCI [5], Myrinet [6]), o sistema de comunicação
tem um desempenho que se aproxima das MPPs (Massively Parallel Processors), onde a vazão alcança
a ordem de centenas de Mbytes/s e sua latência alguns poucos microsegundos;
• Estações e placas são produzidas em grande escala, o que resulta em um custo total bem menor que um
MPP tanto na compra quanto na manutenção.
Como dito anteriormente, este ramo da informática é utilizado por diversas áreas da ciência. Normalmente, existem
em grandes universidades centros de pesquisa que disponibilizam este tipo de arquitetura. O Centro de Pesquisa em Alto
Desempenho (CPAD) é um destes centros. O projeto CPAD [7] é o resultado de uma parceria entre a Pontifícia Universidade
Católica do Rio Grande do Sul e a Hewlett Packard do Brasil. Os principais objetivos do projeto são:
• Estimular a pesquisa e capacitação nas áreas de arquitetura de software e hardware para processamento
paralelo e distribuído;
34
Anais do II Workshop sobre Software Livre – WSL2001
• Desenvolver camadas de software destinadas a otimizar a utilização do sistema operacional GNU/
Linux em processamento paralelo e distribuído, colocando-as à disposição da comunidade científica
na forma de código aberto;
• Estreitar o relacionamento entre os setores científico e industrial;
• Implantar um centro de pesquisa que forneça a infra-estrutura necessária à pesquisa na área de
processamento paralelo e distribuído.
O CPAD conta hoje com dois clusters. Um deles, chamado de cluster principal, é composto por 16 servidores
HP/E60, cada um contendo 2 processadores Pentium III de 550MHz e 128 MBytes de memória principal. Estes são
interligados por duas redes, uma Fast Ethernet, utilizada para disparar processos e gerenciar o cluster, e uma Myrinet
[6], utilizada para troca de mensagens entre os nodos. O outro cluster é chamado de cluster experimental e é composto
por 4 PCs HP/Vectra VE. Cada nó possui 1 processador Pentium III de 500MHz e 128 MBytes de memória principal.
Estes nodos são interligados por duas redes, uma Fast Ethernet, utilizada para disparar processos e gerenciar o cluster,
e uma rede SCI [5], utilizada para comunicação entre os nodos através de segmentos de memória compartilhados. Para
obter maiores informações é possível acessar o site do CPAD pelo endereço http://www.cpad.pucrs.br.
2 A FUNÇÃO DO SISTEMA OPERACIONAL EM CLUSTERS
O sistema operacional em clusters possui os mesmos objetivos que em uma estação de trabalho [8]. Estes objetivos
são: escalonar os múltiplos processos dos usuários num conjunto único de componentes de hardware (gerenciamento de
recursos, tendo como ênfase os múltiplos processadores e memórias), e prover abstrações para o software de alto-nível.
Algumas destas abstrações incluem a proteção de acesso do usuário a áreas restritas, sincronização de processos, threads e
comunicação, assim como o gerenciamento de dispositivos.
Existem diversas características desejáveis em um sistema operacional de clusters. Entretanto, nota-se que estas
características possuem em certas ocasiões uma exclusividade mútua, onde consegue-se uma melhoria em um certo ponto
decorrente da negatividade de outro fator. As principais características [8] são:
• Gerenciamento: A administração deve ser realizada de forma remota e intuitiva. O gerenciamento possui
relacionamento direto com o conceito de SSI (Single System Image ou Imagem Única do Sistema), onde
cria-se a visão de uma única máquina (transparência), ao invés de diversas máquinas interconectadas.
• Estabilidade: As aplicações executadas nos clusters, pela sua complexidade, costumam durar muito tempo.
Logo, é necessário que o sistema possua solidez contra processos com execução anormal, recuperação
após erro com reconfiguração dinâmica, e usabilidade sobre carga pesada.
• Performance: A performance é essencial para um sistema operacional de cluster, pois os clusters são
construídos para a obtenção de alto desempenho.
• Extensibilidade: O sistema deve possuir mecanismos de integração com novos dispositivos (eg. um novo
tipo de rede de alta performance), através de drivers ou módulos que devem ser incorporados ao sistema
operacional.
• Escalabilidade: A escalabilidade se refere a capacidade do cluster ser aumentado (inclusão de nodos na
máquina), e suporte do sistema neste aumento sem perder eficiência ou apresentar problemas de
funcionamento.
Para obter as características descritas, e tendo em vista a complexidade da criação de um sistema operacional para
clusters, a solução mais usada é a utilização de um sistema operacional convencional juntamente com uma camada intermediária
(middleware). Esta camada deve desenvolver serviços em nível de usuário capazes de satisfazer as principais necessidades de
uma aplicação ou sistema paralelo/distribuído.
3 GNU/LINUX COMO SISTEMA OPERACIONAL PARA CLUSTERS
O sistema operacional GNU/Linux [9] é atualmente a plataforma mais utilizada em clusters, pois atende muito bem
aos requisitos descritos em 2. Para o CPAD, a escolha da plataforma a ser utilizada nas suas máquinas deveria, além de possuir
os principais requisitos de um sistema operacional para clusters, atender às configurações dos clusters, isto é, possuir suporte
às máquinas (nodos) e tecnologias de rede (SCI [5], Myrinet [6]) utilizadas na arquitetura. O GNU/Linux foi escolhido por
satisfazer a estes requisitos. As principais vantagens encontradas no sistema GNU/Linux foram:
• Estabilidade: O GNU/Linux é baseado no sistema operacional Unix, o qual é muito utilizado por
administradores de sistemas devido à sua estabilidade.
• Eficiência: A eficiência do Linux é decorrente do enfoque adotado no seu desenvolvimento, o qual visa
um sistema enxuto e com a utilização de todos os recursos oferecidos pela arquitetura.
• Sistema de rede: O Linux foi criado como um sistema de rede. Já que um cluster é uma rede de máquinas,
sua utilização é direta.
Anais do II Workshop sobre Software Livre – WSL2001
35
• SMP: O Linux possui suporte a SMP (Symmetric Multi-Processing), o qual habilita o escalonamento de
processos e kernel-threads entre os processadores da máquina [11]. Isto é fundamental, pois a utilização
de máquinas SMP é uma tendência na construção de clusters.
• Código aberto: O código-fonte do Linux, por ser aberto, possibilita que partes de sua estrutura sejam
modificados, visando, neste caso, uma melhor adaptação às características do cluster no qual é utilizado.
• Custo: O Linux é gratuito. Ele pode ser adquirido pela Internet sem custo algum. Isto estimula a utilização
e distribuição de software livre, e evita também problemas com licenças de software (eg. Um cluster com
1000 nodos deveria possuir as 1000 licenças do sistema operacional utilizado).
O principal problema encontrado no GNU/Linux são as suas diversas distribuições, tornando algumas distribuições
incompatíveis com outras. Isto ocorre pois ainda não existe um padrão na criação de distribuições GNU/Linux. Este problema
logo deve ser resolvido devido a criação do LSB (Linux Standard Base) [12], o qual visa criar uma plataforma padrão a ser
seguida por todos os distribuidores.
A distribuição escolhida pelo CPAD foi a Slackware [10]. Isto ocorreu devido às suas principais características [13]:
• É uma das distribuições mais antigas de GNU/Linux, mas está ainda em evidência.
• Possui scripts de inicialização e configuração bastante compreensíveis.
• É uma distribuição que fornece bastante liberdade ao administrador.
O Slackware tem como problema principal, o fato de possuir pouca ou nenhuma organização no que diz respeito ao
gerenciamento de dependência de pacotes, ou seja, é possível remover um pacote de software do qual outros pacotes necessitam
para funcionar sem sequer ser avisado disto. Um outro problema encontrado é relacionado ao upgrade da distribuição, o qual
é muito complicado, sendo mais simples fazer backup de dados de usuários e configurações e instalar o novo Slackware a
partir do início.
Para atuar como parte da camada intermediária (middleware), a ser utilizada juntamente com o GNU/Linux no
gerenciamento do cluster, o CPAD desenvolveu um mecanismo de controle de acesso ao cluster baseado em fila de espera,
onde os usuários fazem os pedidos de alocação dos nodos e o sistema vai atendendo pela ordem de chegada. Este mecanismo
possibilita também que sejam alocadas partes do cluster, tendo em vista que mais de um usuário possa utilizar os nodos ao
mesmo tempo sem que interfira na execução dos processos dos demais usuários. Além disso, o CPAD desenvolveu um sistema
de reservas para execução de programas que possuam um tempo de processamento maior que o permitido pelo sistema
baseado em fila de espera.
4 CONCLUSÃO
O GNU/Linux possui as principais características necessárias a um sistema operacional de clusters. Ele possui eficiência,
estabilidade e flexibilidade em relação a mudanças no seu código interno. Desta forma a sua utilização na área de alto desempenho
cresce cada vez mais. O CPAD desenvolve sistemas e ferramentas utilizando o GNU/Linux, e os distribui como código aberto,
facilitando a troca de experiências entre as diversas instituições. O desenvolvimento de software livre utilizando o sistema
operacional GNU/Linux garante a sua continuidade e sobrevivência na pesquisa em alto desempenho.
REFERÊNCIAS BIBLIOGRÁFICAS
[1] DE ROSE, César A.F., ZORZO, F., COSTA, Celso M. da, DOTTI, Fernando L.. Centro de Pesquisa em Alto
Desempenho - CPAD-PUCRS/HP. 1a. ERAD – Escola Regional de Alto Desempenho. Gramado, 2001.
[2] LEWIS, Ted G., EL-REWINI, H.. Introduction to Parallel Computing.
[3] MAI, G. DE ROSE, C.. Arquiteturas paralelas versáteis e de baixo custo para a pesquisa e o ensino
na área de processamento paralelo e distribuído. Conferência Latino Americana de Informática,
Assunção, Paraguai. 1999.
[4] HWANG, Kai, XU, Zhiwei. Scalable Parallel Computing. McGraw-Hill. 1998.
[5] IEEE; IEEE Standart for Scalable Coherent Interface (SCI). IEEE standart, 1596-1992. New York, 1993.
[6] SEITZ, C. L. et. al. Myrinet – A Gigabit-per-Second Local-Area Network. IEEE Micro, vol. 15, n. 1,
Fevereiro 1995, pp. 29-36.
[7] CPAD – Centro de Pesquisa em Alto Desempenho. http://www.cpad.pucrs.br. 2001.
[8] CHAPIN, Steve, WORRINGEN, Joachim. Operating Systems. Cluster Computing White Paper. Versão
2.0. Dezembro de 2000.
[9] Linux – How Good Is It? Executive Summary, D.H. Brown Associates Inc., http://www.dhbrown.com, 1999.
[10] The Slackware Linux Project, http://www.slackware.com.
[11] MENTRÉ, David. Linux SMP-HOWTO. Linux HowTos. http://www.irisa.fr/prive/mentre/smp-howto.
[12] Linux Standard Base, http://www.linuxbase.org.
[13] MACAN, Eduardo M.. As distribuições Linux. Revista de Informação e Tecnologia CCUEC Unicamp.
36
Anais do II Workshop sobre Software Livre – WSL2001
FERRAMENTAS PARA DESENVOLVIMENTO DE UM AMBIENTE
DE PROGRAMAÇÃO SOBRE AGREGADOS
Alex Sandro Garzão1 ([email protected])
Lucas Correia Villa Real2 ([email protected])
Gerson Geraldo H. Cavalheiro ([email protected])
Programa de Pós-Graduação em Computação Aplicada – PIP/CA
Centro de Ciências Tecnológicas e Exatas
Universidade do Vale do Rio dos Sinos
São Leopoldo – RS – Brasil
RESUMO
O uso de agregados de computadores para suporte a execução de aplicações requerendo alta capacidade
de processamento é hoje uma realidade. De baixo custo financeiro, agregados podem ser montados a partir da
interconexão de computadores independentes, não necessariamente idênticos, a uma rede local. O problema
enfrentado no momento é a carência de ferramentas de programação neste tipo de arquitetura. Neste artigo são
apresentadas algumas definições de projeto do Anahí, que tem como base o desenvolvimento de um ambiente
de programação para agregados com elevado potencial de portabilidade.
ABSTRACT
Nowadays the effective use of clusters to support the execution of applications requiring high
performance is a reality. A cluster is a distributed architecture built as a local network of independent computers
(homogeneous or heterogeneous nodes) and not as expensive as a real parallel architecture. Although clusters
are very common at industrial and research centers, there is a few number of programming tools to this kind of
architecture. In this work we describe some directives we adopt to implement Anahí, an environment to
programming under cluster having a high degree of portability.
1 INTRODUÇÃO
Dentre os diferentes aspectos envolvendo o desenvolvimento de software, um dos item sempre levantados
envolve a questão da portabilidade. Em ambientes convencionais de execução, ou seja, em ambientes seqüenciais,
o enfoque dado visa possibilitar a compilação e execução de programas sobre diferentes plataformas,
preferencialmente com um mínimo de alterações no código quando da migração de um software de uma
plataforma para outra. No contexto do processamento de alto desempenho, em especial sobre agregados de
computadores, este problema continua existindo. Contudo, a questão da portabilidade toma outras dimensões.
Em ambientes de processamento paralelo ou distribuído uma forma de ser vista a portabilidade é sob a
ótica do desempenho [7]. Espera-se que um programa concorrente possa ser descrito de tal forma que a descrição
das atividades concorrentes de uma aplicação possa ser feita de forma independente das características da
arquitetura de suporte à execução. Uma abordagem neste sentido é fornecer um ambiente de programação
paralela onde exista uma camada que forneça uma abstração de uma arquitetura genérica – esta camada sendo
responsável por gerir os recursos da máquina em função das atividades concorrentes definidas pelo programa
em execução. Além de oferecer uma visão única de arquitetura para a programação, tal esquema permite
implementar mecanismos de balanceamento de carga cujos algoritmos possam ser adaptados às características
da arquitetura sem ser necessário alterar o código do programa de aplicação [5].
Outra preocupação é o desenvolvimento de programas utilizando ferramentas de programação que
possam ser facilmente encontradas nas mais diferentes configurações dos agregados. Este aspecto não envolve
somente a linguagem de programação, mas também bibliotecas que permitam efetivamente manipular os recursos
de uma arquitetura tal como um agregado.
No restante deste artigo são discutidas decisões de projeto para um ambiente de processamento de alto
1
2
Bolsista de iniciação científica (FAPERGS).
Bolsista de iniciação científica (UNISINOS).
Anais do II Workshop sobre Software Livre – WSL2001
37
desempenho, denominado Anahí. Em um primeiro momento (seção 2) são apresentadas as principais ferramentas
de programação a serem utilizadas, seguido da apresentação de um esboço do ambiente proposto (seção 3) e de
algumas conclusões gerais (seção 4).
2 FERRAMENTAS PARA O PROCESSAMENTO DE ALTO DESEMPENHO
Nos últimos anos o interesse pelo processamento de alto desempenho cresceu consideravelmente, onde
fatores econômicos tiveram, e ainda tem, um papel de destaque neste crescimento. O surgimento de agregados
de computadores popularizaram a programação paralela, uma vez que oferecem uma plataforma de grande
poder de processamento a baixo custo. Tal plataforma pode ser descrita como uma rede local dedicada ao
processamento intensivo, sendo cada nó desta rede local um computador independente. É importante salientar
que nenhum hardware específico é necessário para um agregado, muito embora espera-se uma rede de
comunicação eficiente e que o nó seja generalizado como um computador dotado de diversos processadores
compartilhando uma mesma área de memória. Desta forma, um agregado é considerado uma arquitetura que
possibilita a exploração de paralelismo em dois níveis: intra-nó e entre nós do agregado.
Esta nova arquitetura trouxe consigo novos problemas a serem resolvidos para a programação de sistemas,
uma vez que ainda se observa uma carência de ferramentas de programação. No entanto, um grande esforço
neste sentido já foi desenvolvido: é possível encontrar sobre a maioria dos agregados um conjunto mínimo de
recursos para a implementação de programas.
O restante desta seção comenta brevemente as características de dois destes recursos: as threads POSIX
e o padrão MPI para comunicação. O uso conjunto destes recursos permite explorar a execução concorrente em
diferentes níveis de um agregado.
2.1 Threads POSIX
Para a exploração da concorrência intra-nó, pode-se fazer uso da multiprogramação leve (multithreading),
de forma a obter a criação de vários fluxos de execução dentro de um mesmo processo. Estes fluxos de execução,
ou threads, são considerados “processos leves” porque todos os recursos alocados a um processo são
compartilhados por todas as suas threads (como a descrição de recursos, por exemplo), tornando-as menos
onerosas ao sistema operacional. Além disto o multithreading permite uma exploração imediata do paralelismo
real das arquiteturas SMP (multiprocessadores simétricos que utilizam uma mesma área de memória), provendo
mecanismos de software que transpõem as características do hardware.
O Linux tem disponível a Pthread [10], uma biblioteca de threads que segue o padrão POSIX [10].
Normalmente essa biblioteca é distribuída junto com as distribuições Linux, podendo ser utilizada em programas
C/C++. Como a Pthread (exemplo de uso em [6]) é regida pela licença GPL [1], ela pode ser estudada e
amplamente modificada conforme a necessidade.
A Pthread possui um conjunto de funcionalidades para controlar as threads, que vão desde a criação e
sincronização até mudanças no tipo de escalonamento à ser utilizado. O mecanismo básico de comunicação
entre as threads se dá através da própria memória do processo ao qual elas pertencem. O acesso à memória
ocorre através de simples instruções de leitura e escrita. Obviamente, o acesso concorrente aos dados em memória
realizados em sessões críticas de código podem gerar conflitos de atualização. Para resolver o problema do
compartilhamento de informações, podem ser utilizados mecanismos de sincronização como mutex e variáveis
de condição de forma a garantir a correta semântica da execução do programa.
Esta biblioteca está implementada atualmente em diversos ambientes, oferecidos diretamente pelo sistema
operacional, como em Solaris, AIX e Linux, ou implementadas por uma biblioteca como em Minix.
2.2 MPI
Apesar das várias facilidades fornecidas com o uso das Pthreads, estes recursos não podem auxiliar
quando existe a necessidade de sincronizar ou trocar dados entre nós. Como a arquitetura de memória do
agregado não permite compartilhamento de memória, a única maneira para tal é fazer uso do meio físico que
trata a interconexão entre os nós.
Para utilizar este meio físico, um recurso disponível é o paradigma de envio de mensagens – amplamente
utilizado em arquiteturas paralelas com memória distribuída. Baseado neste paradigma está o
MPI (Message Passing Interface) [11], um padrão definido para oferecer tais tipos de serviço em implementações
de bibliotecas de comunicação.
LAM (Local Area Multiprocessor) [8] é uma biblioteca desenvolvida a partir deste padrão, implementando
todas as suas funcionalidades. Distribuída sob a licença GPL, as maiores vantagens da LAM são dadas pela
38
Anais do II Workshop sobre Software Livre – WSL2001
portabilidade e pela sua facilidade de uso em relação a rotinas de envio de mensagens de baixo nível. Por ser um
projeto free-software, LAM permite que qualquer padrão de funcionalidade possa vir a ser alterado para suprir
alguma necessidade exclusiva do usuário, seja para alterar alguma rotina de escalonamento de mensagens, por
exemplo, ou para migrar a biblioteca para outra plataforma.
O padrão MPI define diretivas de comunicação baseadas nas primitivas Send e Receive, possibilitando
a criação de rotinas não-bloqueantes – onde a rotina responsável pelo envio da mensagem segue seu fluxo de
execução antes do receptor recebê-la – e bloqueantes, onde a rotina aguarda pela recepção da mesma,
possibilitando a reutilização do buffer utilizado no envio da mensagem. Sua solução para a criação remota de
processos consiste na construção de uma máquina virtual, composta por nós virtuais, sobre uma arquitetura
real, onde os processos se organizam de forma autônoma, em um estilo de execução MIMD [6]. Outros recursos
para comunicação em grupo, como Broadcast e Redução, também estão disponíveis no padrão MPI, permitindo
aumentar o leque de aplicações sobre as quais pode vir a ser utilizado.
MPI suporta linguagens C/C++ e Fortran77. Existem outras implementações baseadas neste padrão,
dentre as quais MPICH, TOMPI e Cray T3D (disponível para as máquinas Cray T3D), assim como
implementações baseadas no padrão MPI-2 [12].
3 ESTRUTURA DE ANAHÍ
Uma diretiva básica no desenvolvimento de Anahí é a obtenção de um ambiente de programação para
agregados que tenha um baixo custo e um elevado grau de portabilidade. Assim sendo, para o desenvolvimento
deste ambiente, busca-se soluções de software que sejam modulares e disponíveis sobre os mais diferentes
sistemas, tais como as descritas na seção anterior.
Na figura 1 é apresentado o esqueleto do ambiente de programação Anahí. Neste esquema, a camada de
mais alto nível, API Anahí, consiste em uma interface para desenvolvimento de programas utilizando o ambiente
proposto. Esta API3 oferece recursos para a descrição do paralelismo de uma aplicação em um programa sob a
forma de atividades concorrentes, denominadas tarefas no contexto de Anahí.
O segundo nível, Balanceamento de carga aplicativo, é responsável pelo mapeamento das tarefas
definidas pelo programa sob os recursos de processamento disponíveis em uma arquitetura abstrata. Esta camada
implementa mecanismos que permitem variar o algoritmo de mapeamento conforme a quantidade de recursos
disponíveis na arquitetura abstrata. Abordagens semelhantes ao balanceamento de carga aplicativo podem ser
encontradas em [4, 9, 2].
API Anahí
Portabilidade de desempenho
Interface de programação
Balanceamento de carga aplicativo
Máquina abstrata
Módulos dependentes de arquitetura
Threads POSIX
MPI
Visão de uma arquitetura genérica
Sistema operacional
Máquina real (agregado de computadores)
Figura 1: Esqueleto do Ambiente de Programação Anahí
O terceiro nível, Máquina abstrata, utiliza recursos básicos de programação em ambientes paralelos oferecidos
por ferramentas padrões para construir uma plataforma virtual de execução. Nesta plataforma virtual é construído um
agregado virtual, onde o papel do processador é exercido pelas threads e o compartilhamento de dados entre processadores
executando em diferentes nós é garantido através da biblioteca de comunicação. Encontramos em Athapascan-0 [3] uma
preocupação idêntica, onde uma biblioteca de serviços oferece uma camada de portabilidade de programas.
Finalmente, em um nível mais baixo, o esqueleto salienta a existência de um sistema operacional e de um
agregado real. Espera-se que as características intrínsecas a sistemas operacionais ou arquiteturas específicas estejam
completamente mascaradas pelos três níveis acima descritos.
Outras ferramentas de desenvolvimento utilizadas: o compilador GNU para a linguagem C++ e o sistema
operacional Linux.
3
API: Applicationn Program Interface.
Anais do II Workshop sobre Software Livre – WSL2001
39
4 CONCLUSÃO
Há alguns anos, o processamento de alto desempenho era uma área de trabalho que exigia grandes investimentos.
De custo bastante elevado, as configurações não dispunham de grande diversidade de recursos para a programação, com
baixo potencial de portabilidade, além do acesso a estas máquinas ser restrito a um grupo pequeno de usuários. Com o
surgimento de agregados de computadores abriu-se uma nova frente para o processamento de alto desempenho – não
mais sendo necessário hardwares específicos, disseminou-se o conceito de montar uma rede local dedicada ao cálculo
intensivo. Esta nova realidade mostrou a necessidade de um novo conceito de ferramentas de programação, em que a
portabilidade seja um dos pontos fundamentais.
Este artigo descreveu alguns dos princípios adotados para o desenvolvimento de Anahí, um ambiente de execução
para o processamento de alto desempenho sobre agregados. O diferencial deste ambiente é sua interface de programação,
garantindo dois níveis de portabilidade aos programas: (i) a portabilidade de desempenho, provida por um mecanismo
adaptável de balanceamento de carga, e (ii) a portabilidade de código fonte, por fazer uso de ferramentas que implementam
serviços (threads e comunicações) padrões.
BIBLIOGRAFIA
[1] GNU GENERAL PUBLIC LICENSE, Copyright (C) 1989, 1991, www.gnu.org, 1991.
[2] R. D. Blumofe et al. Cilk: an efficient multithreaded runtime system. ACM SIGPlan Notices, 30(8):207216, Aug. 1995.
[3] J. Briat, I. Ginzburg, M. Pasin, and B. Plateau. Athapascan runtime: Efficiency for irregular problems. In
Proceedings of the Europar’97, pages 590-599, Passau, Aug. 1997. Springer Verlag.
[4] G. G. H. Cavalheiro. A general scheduling framework for parallel execution environments. In Proceedings
of SLAB’01, Brisbane, May 2001 (To appear).
[5] G. G. H. Cavalheiro, Y. Denneulin, and J.-L. Roch. A general modular specification for distributed
schedulers. In Proceedings of Europar’98, Southampton, 1998. Springer Verlag, LNCS 980.
[6] T. Divério and P. Navaux, eds. ERAD’2001 Escola Regional de Alto Desempenho, Gramado, 2001.
[7] T. Hey and J. Ferrante, editors. Portability and performance for parallel processing. John Wiley & Sons,
New York, 1994.
[8] T. O. S. U. Ohio Supercomputer Center. MPI primer / developing with LAM. Nov. 1996.
[9] M. C. Rinard and M. S. Lam. The design, implementation, and evaluation of Jade. ACM Trans. on
Programming Languages and Systems, 20(3):483-545, May 1998.
[10] I. C. Society. American National Standards Institute: IEEE standard for information technology: Portable
Operating System Interface (POSIX). Part 1, system application program interface (API) – amendment 1
– realtime extension [C language]. Silver Spring, 1994.
[11] T. University of Tennessee, Knoxville. The MPI standard. (1.1), 1995.
[12] T. University of Tennessee, Knoxville. MPI-2: Extensions to the message-passing interface. 1997.
40
Anais do II Workshop sobre Software Livre – WSL2001
FMC-NET: UM AMBIENTE DE SUPORTE
AO ENSINO INTEGRADO DOS FUNDAMENTOS MATEMÁTICOS
DA CIÊNCIA DA COMPUTAÇÃO UTILIZANDO O ZOPE1
Raquel Mello de Miranda ([email protected])
Graçaliz Pereira Dimuro ([email protected])
Antônio Carlos da Rocha Costa ([email protected])
Universidade Católica de Pelotas – Escola de Informática
Rua Félix da Cunha, 412
Centro – 96010-000 Pelotas – RS
RESUMO
Este trabalho apresenta a construção de um ambiente de suporte ao Ensino Integrado dos Fundamentos
Matemáticos da Ciência da Computação, utilizando o software Zope. O desenvolvimento deste ambiente,
denominado FMC-net, está sendo realizado como trabalho de conclusão do curso de Ciência da Computação,
na Escola de Informática da Universidade Católica de Pelotas.
Palavras-chave: Zope, Ensino Integrado, Ciência da Computação.
ABSTRACT
This works presents the construction of an environment to support the teaching of Mathematical
Foundations of Computer Science in an integrated way, using the software Zope. This environment, named
FMC-Net, has been developed as final undergraduate project in Computer Science, at Escola de Informática of
Universidade Católica de Pelotas.
Keywords: Zope, Integrated Teaching , Computer Science.
1 INTRODUÇÃO
O presente trabalho está vinculado ao projeto integrado de pesquisa FMC – Fundamentos Matemáticos
da Computação, em desenvolvimento na Escola de Informática da Universidade Católica de Pelotas.
O projeto FMC divide-se em três linhas de atuação – pesquisa teórica, pesquisa aplicada e pesquisa
sobre o ensino dos fundamentos matemáticos da computação.
A proposta do projeto visa particularmente a introdução de novas tecnologias para instrumentalização
do ensino interativo de disciplinas da Matemática e Fundamentos Teóricos, assim como a introdução de
metodologias de ensino semi-presencial com o apoio da Internet.
O objetivo deste trabalho, situado no aspecto de ensino do Projeto FMC, é propor um ambiente de
suporte ao ensino integrado dos fundamentos matemáticos da Ciência da Computação utilizando um software
livre. A primeira aplicação será para a disciplina de Sistemas Discretos II, do curso de Ciência da Computação
da UCPel, que envolve os conteúdos de estruturas algébricas, indução, recursão, reticulados, álgebra booleana
e grafos. A ferramenta utilizada para o desenvolvimento deste ambiente é o ZOPE (Z Object Publishing
Environment).
O FMC-Net será disponibilizado como software livre.
2 ENSINO INTEGRADO
Os currículos de Ciência da Computação e de Sistemas de Informação (Análise de Sistemas) da ESIN/
UCPel estão organizados de forma temática em coleções de disciplinas (por exemplo, disciplinas de Matemática,
disciplinas de Programação, disciplinas de Software Básico e Arquitetura de Computadores, etc.). Constata-se
que o ensino dessas disciplinas não enfatiza adequadamente a integração necessária de suas diferentes atividades,
nem a integração possível entre atividades de ensino, pesquisa e extensão. Assim, diz-se que essa forma de
organização curricular está baseada em coleções isoladas, em oposição a uma organização mais adequada em
1
Este trabalho é parcialmente financiado pelo CNPq e FAPERGS.
Anais do II Workshop sobre Software Livre – WSL2001
41
termos de coleções integradas [1].
Por ensino integrado de disciplinas de um dado conjunto de coleções, entende-se o seguinte:
i) a articulação crescente das diversas disciplinas das diferentes coleções, de modo a dar às atividades
curriculares uma continuidade epistemológica bem evidenciada;
ii) o envolvimento crescente dos alunos na definição e condução dos seus estudos e pesquisas, realizados
no contexto científico e pedagógico de cada coleção;
iii) a caracterização crescente da atividade de ensino-aprendizagem como atividade de pesquisa por
parte dos estudantes.
O ambiente que estamos desenvolvendo visa dar suporte à proposta de ensino integrado.
3 O PAPEL DA INTERNET
Dentro da perspectiva pedagógica adotada no projeto, de buscar-se um currículo de coleções integradas
que promova a articulação das mais diversas atividades de ensino e pesquisa envolvidas na formação de
profissionais da área da Informática e da Ciência da Computação, e seguindo a metodologia de integração
proposta, a Internet tem um papel fundamental.
Em um currículo de coleções integradas, há uma ênfase muito forte na promoção da autonomia dos
estudantes, no sentido de estimulá-los permanentemente à realização de atividades extra-classe.
Faz parte da proposta de investigação pedagógica adotada, a busca da confirmação de que a melhor forma de
organização das disciplinas de um currículo de coleções integradas é a forma semi-presencial, em que uma
parte pequena da disciplina é ministrada através de interações presenciais entre alunos e professores, e a maior
parte é ministrada de modo não-presencial, com apoio da Internet, com interações não só entre alunos e
professores, mas também entre alunos e alunos, entre alunos e alunos-tutores, entre estes e os diversos professores
das diversas coleções envolvidas e entre os próprios professores de disciplinas diferentes [1].
Em uma análise do papel da Internet no Projeto, observa-se que o Zope pode ser usado no
desenvolvimento das formas de integração curricular propostas na metodologia adotada, podendo contribuir no
desenvolvimento de sites WWW, disponibilizando informações sobre as atividades das disciplinas e coleções e
material didático interativo na sua estrutura básica, informações sobre as atividades já vislumbradas intracoleções
e/ou intercoleções, links para sites relacionados, material didático interativo contendo suporte para atividades
entrelaçadas, correio eletrônico, fóruns de discussão e IRCs, permitindo a comunicação entre os participantes
das diversas atividades envolvidas.
4 ZOPE
O ZOPE (Z Object Publishing Environment) é um servidor de aplicativos web de Código Aberto,
desenvolvido pela Digital Creations e uma grande comunidade de usuários. Ele executa em quase todas as
plataformas Unix, bem como Windows NT e pode ser usado com os servidores web mais populares ou construir
o seu próprio no servidor web.
Zope é escrito em Python, uma poderosa linguagem de programação orientada a objetos, apresentando
componentes sensíveis escritos em C.
O objetivo principal do ZOPE é servir páginas web e a manutenção e a administração de um site em
ZOPE são realizadas completamente pela própria web, através de uma interface similar a um gerenciador de
arquivos, usando frames, logins e senhas [3].
Dentre suas principais características podemos citar a possibilidade de colaboração de equipes na criação
e administração de aplicativos comerciais Internet dinâmicos como intranet e portais, a facilidade no
desenvolvimento de funcionalidades como busca local, notícias, personalização, e e-comércio em suas aplicações
Internet [2].
O Zope usa uma linguagem chamada DTML (Document Template Markup Language) ou Linguagem
de Marcação para Modelos de Documentos. O código DTML cria um modelo de documento, que será
transformado em um documento usando dados que podem variar independentemente do modelo. O documento
propriamente dito é criado pelo Zope, no momento da requisição do browser [4].
5 FMC-NET
Para o desenvolvimento do ambiente FMC-Net, inicialmente foi realizado um levantamento dos recursos
e funções desejáveis no sistema, através de uma conversa informal com professores e alunos tutores da disciplina
de Sistemas Discretos II.
De acordo com os dados obtidos, iniciou-se a definição do modelo do ambiente (veja figura 1) que
42
Anais do II Workshop sobre Software Livre – WSL2001
disponibiliza recursos tanto para a proposta de atividades pelo professor quanto para a exposição dos trabalhos
realizados pelos alunos.
A P R E S E N TA Ç Ã O
C O N TATO S
P Á G IN A IN IC IA L
CAD ASTRO
D A D O S G E R A IS
ENTRADA
V E R IFIC A
ACESSO
DAD O S
E S P E C ÍF IC O S
-
M AT E R IA L D E A P O IO
AT IV ID A D E S
N O TA S
DO W NLO AD
P Á G IN A S A L U N O S
UPLO ADS
A P L IC A Ç Õ E S
LIN K S
LIS TA D IS C U S S Ã O
S A IR
Figura 1: Modelagem do Ambiente
Ao acessar o ambiente, cada tipo de usuário (professor, aluno ou visitante) terá alternativas para conduzir
o seu trabalho, baseadas nas diferentes permissões referentes a cada um deles.
O professor terá opções de gerenciamento dos dados referentes à disciplina que ministra. Será permitido
a ele disponibilizar aos alunos materiais de apoio, arquivos para downloads, links relacionados à disciplina,
atividades propostas, aplicações e notas, entre outros.
O aluno poderá visualizar todas estas informações inseridas pelo professor e, conforme o andamento
das atividades, enviar os trabalhos realizados através da opção de upload oferecida pelo ambiente e disponibilizálos através da sua home page pessoal para os demais alunos da turma e visitantes.
Os visitantes, que não estarão cadastrados em disciplinas determinadas, ao acessar o ambiente, poderão
acompanhar os trabalhos que estão sendo realizados nas disciplinas inseridas no ambiente, porém sem permissões
para inserir dados.
A implementação do FMC-Net encontra-se em andamento e, após o término será utilizado na disciplina
de Sistemas Discretos II para que os alunos possam participar na definição e implementação do seu ambiente de
estudo.
6 CONCLUSÃO
Este trabalho apresentou a utilização do software Zope como ferramenta para o desenvolvimento de um
ambiente que dará suporte ao ensino dos fundamentos matemáticos da Ciência da Computação.
A utilização dos recursos da Internet associada às vantagens oferecidas pelo Zope contribuem de forma
satisfatória para a proposta de ensino integrado que se pretende, destacando-se a experiência de ensino semipresencial.
BIBLIOGRAFIA
[1] DIMURO, G. P.; COSTA, A. C. R.; RODRIGUES, F. P. M. Uma experiência de Ensino Integrado dos
Fundamentos Matemáticos da Ciência da Computação. Revista Brasileira de Informática na Educação,
Florianópolis, v.1 n.7, 2000.
[2] ZOPE. Disponível por WWW em http://www.zope.org. 2000.
[3] LLOYD, B. An Introduction to Zope. Disponível por WWW em http://www.devshed.com/ Server_Side/
Zope/Intro. 1999.
[4] MARTINS, L. Introdução ao Zope. Disponível por WWW em http://zope.gf.com.br/ZopeIntro. 2000.
Anais do II Workshop sobre Software Livre – WSL2001
43
FREE SOFTWARE IN SUPERIOR EDUCATION:
TALKING ABOUT FREEDOM TO FUTURE PROFESSIONALS
Willians Jorge Rodrigues ([email protected])
Francisco José Monaco
Adilson Gonzaga
Manoel Luis de Aguiar
Departamento de Engenharia Elétrica – EESC – Universidade de São Paulo
Av. Trabalhador Sãocarlense, 400 – Centro
13566-590 São Carlos – SP
RESUMO
Este artigo reporta a experiência de uma iniciativa de disseminação de Software Livre em uma escola de tecnologia,
destacando investigações sobre as preocupações de estudantes com relação à sua futura atuação profissional nesse campo.
ABSTRACT
This paper reports the experience of an initiative to disseminate Free Software in a school of technology and highlighting investigations on the students’ concerns regarding their future actuation in this field.
1 FREE SOFTWARE IN A SCHOOL OF TECHNOLOGY
The GNUsp Project [1], leaded by an open group of students and researchers at the University of São Paulo (USP),
is a volunteer initiative whose aim is to promote the Free Software (FS) movement within the University. This goal is currently
seen after through the following main action lines:
• to promote the adoption of free software in both education and research activities at the University, by
disseminating knowledge on its benefits and offering effective (both on-line and in loco) support to users
over the campus;
• to encourage both students and researchers to adhere to the FS principles when working on software
development within the University, either in academic or scientific projects, by maintaining an infrastructure
of communication and mutual cooperation;
• to improve software developers’ background on FS utilization and development, by offering a knowledge base
and training tutorials at levels that range from basic software utilization to advance programming techniques.
From the three-year experience at USP campus in São Carlos, we have learned that providing our community with a
suitable support base has been an essential stimulus to novice users. Likewise, in the development field, the interaction between experts and beginners (by means of the GNUsp facilities such as the mailing lists, Web database, software repository
mirror, periodic meetings, advisory board etc.) has been highly effective in raising the overall programmers skills.
Among other actuation areas, FS believers involved in the GNUsp Project are committed to an orientation program
devoted to introduce new users to the elementary FS paradigms, as well as giving them advice on the directions of the free
software movement (FSM). In these times of Linux glory, with the open source software under the media’s spotlight (specially
the lay media), having a clear view of the ongoing revolution is very important – that’s why GNUsp, rather than a LUG1 , is
formally a GNU User Group (GUG?), since we base our work on the GNU software collection [2].
Nonetheless, while we have reasons to commemorate our success in enlarging the number of GNU users in our
community, we have come across several difficulties along the way. Among them, we highlight those arisen from the fact that
our activities are carried out within a school of engineering, where people are preparing to become well-succeeded professionals.
We have noticed that, in spite of the enthusiasm that the philosophy of freedom and cooperation raises in the students’
youth spirit, these are subtly challenged by grave concerns which claim for attention when it’s time to consider the future, the
“real-life”. The quotes are meaningful: they reflect the way many students do think about the problem when the time is near
and they must decide what they will do next: “out there is the market, is the jungle; there is no time for dreams of freedom
anymore” – with this belief in mind, many assume that the party is over and that it is time to work seriously.
Sadly, we have discovered that working seriously, in this case, means forgetting the student-like hopeful soul, dress1
LUG: widespread acronym for “Linux User Group”.
44
Anais do II Workshop sobre Software Livre – WSL2001
ing up in executive-fashioned way and waking up from the free software dream. Indeed, due to the pragmatic view of the
professional world that many students of technological disciplines tend to acquire, this attitude is less rare than one might
expect. This has constituted one of the obstacles to the dissemination of FS culture among young engineers and computer
specialists, who end up by surrendering to the “inexorable hegemony of proprietary technology” when they have to make a
choice in their professional career.
From exhaustive discussions on this matter, carried on by the light of the experience earned from the GNUsp activities, we have identified a few major points worth or being reported. By means of them, we aim to share with other FS
researchers and practitioners the main concerns we were required to face in this front, as well as the arguments that have shown
to be valuable to address them.
2 FREE SOFTWARE AND PROFESSIONAL ACTUATION
When we organized the first seminar on Free Software under the auspices of the GNUsp Project, one of the first
difficulties we came across was an unexpected embarrassment regarding the discussion of its underlying paradigms. Admittedly, talking about moral issues and personal values amid the fairly impersonal atmosphere that pervades the environment of
a school of engineering was not an easy task, neither was the effort to attract the attention of students used to thinking in terms
of commercial values and industrial trends.
It was clear to us, however, that the Free Software concept does concern to an inherently techno-social matter and that
the attempt of dissociating both fundamentally complementary aspects to deliberately avoid polemics is a misleading attitude
that breaks up the conceptual consistence of the original proposal. We have therefore accepted the challenge and decided to
understand the psychosocial factors behind this hindrance.
2.1 How We Came to Where We Are
Back to the primordial days of the computer era in the late 60’s and early 70’s, the overall panorama regarding
software utilization was noticeably diverse from the one existing today. By that time, the restrict number of software users
could be accounted not only to the costs of computer hardware, but also to the operational complexity of rudimentary systems.
As consequence, a set of peculiarities characterizes this period. It was marked by the predominance of the user-driven in-field
development, i.e. once there was not many available off-the-shelf commercial packages, users were usually required to develop
their own software, within the environment where it would be utilized, be it in industry, research centers or schools.
There was nothing unusual with respect to sharing code in that time, since most users were interested only in the use
they could make from the software, instead of on the profit they could obtain by selling commercial packages. Thus, the open
source model and the use of non-proprietary technology and standards were the natural choice in order to allow all interested
users to take part in the worldwide collaborative effort.
However, during the transition from the 70’s to 80’s, the lowering of hardware costs and the simplification of user
interfaces which accompanies the mainframe-to-PC migration has opened the doors to todays dissemination of computer
utilization among non-specialist users. Soon, private companies become aware of the huge potential market, which was been
formed, and it was then that software began to be treated as merchandise.
Adopting the proprietary approach, software suppliers intended that many users bought their products, thereby they
have made use of legal and technical artifices to forbid both non-authorized copies and free shared utilization. Likewise, once
former collaborator developers are then seen as potential competitors, not open but closed source began to be used in order to
prevent copyrighted code from being further improved and adapted by others.
In-field continuous optimization yields to adoption of closed packages and users were then withdrawn from development process, which became manufacturer-driven and thus subject not only to the customers needs but also to the commercial
strategy of the technology holders. These, in turn, replace the idea of a collection of common resources, which could be
cooperatively improved with the market conquest through the imposition of proprietary standards.
2.2 From the Community to the Market
It has been reported by software professionals that this subtle paradigm shift compelled them to change
from the usual open collaborative work to the closed competitive scheme. In order to fit into the new business
model, knowledge sharing which was intensively practiced through the Internet was then replaced by the new
orientation towards information hiding, while the freedom to cooperate with colleagues was substituted by the
isolation of small adversary teams. As result, the instinctive ideal of working for the community was lessened in
favour of individualist objectives and the volunteer spirit, which had been so expressive among programmers
until them, was finally rendered to reminiscences of an ancient time.
In this scenario, the FS movement may be seen as natural reaction of the former software community. Briefly ex-
Anais do II Workshop sobre Software Livre – WSL2001
45
plained, its approach is meant to be more suitable for both users and developers not only because is enforces the convergence
of collaborative efforts in the development of hight-quality cost-effective software resources, but also because it enables an
alternative professional attitude which FS proponents believe to be more tuned to the human values lauder by broadly recognized conceptions towards a more fair and prosperous society.
Thus, if it is definitely queer to conceive anyone arguing against freedom and cooperation, why it so difficult to talk
about it in the sphere of professional education? Actually, the answer becomes apparent once we realize how this question has
been effectively concealed by means of ideological artifices.
We begun by noticing that early during their life in the college, technology students are taught to think about their
professional careers, what is frequently stated in terms of “being prepared for the marked”, actually in such an extent that, for
many, the word market ends up by turning into the holy grail of a prospective worker. Not that being concerned about the field
for professional actuation is not necessary, but the way the problem is presented and the relative importance of values such as
economical viability, personal realization and ethical issues are not always balanced accordingly.
As a matter of fact, the market is the battlefield, where the weak is subjugated by the strong. Mainly in the technological areas, where human-related studies are less frequent than in social disciplines, the golden rule is being competitive. To think
fast, to act first, to fight, to survive – hence the lemma “to survive, you must win; to win, you must be the best”. Products,
companies, professionals, everything, everyone is supposed to be competitive; in this world, not being competitive is being
weak, fated to be a looser. Actually, this war-like atmosphere has gone so far that, beyond competition, some now talk about
“assuming an aggressive campaign against adversaries”, lending the well-succeed profession the appearance of a predator
amid wild enemies, stimulating students to assume this posture as a noble personal character.
Competition, though, is opposite to cooperation. That’s why Free Software concept, based on volunteer spirit and
sense of community seems so odd-fashioned in this field nowadays. After all, in this arena where one’s goal should be to defeat
his potential competitors, there is no place for the dreamers; concerns about moral and ethical principles such as those implied
in the FS proposal just do not apply. The ideological artifice worked and many professionals were convinced that the proprietary software is a natural evolution from an early rudimentary “ingenuous” activity into a structured business branch.
2.3 The Hacker Counter-proposal: Back to the Community
FS proponents, conversely, believe that it just deals with the replacement of one possible model with another one,
which is not necessarily better. From the several approaches we have experimented in order to void those arguments, the rescue
of personal values has proven to be the most effective. Indeed, this is dormant flame that, when evoked, is the door to bring
back our colleagues to the “real real-life”.
We remind them that, since proprietary software became dominant and the in-field development was replaced by the
use of off-the-shelf closed packages, most developers have actually been using sophisticated applications rather than dealing
with raw code and computer internals. Therefore, even within professional instruction programs and universitary courses,
students feel unmotivated to learn the basics of computer engineering; this is left to a restrict set of large world-leader companies, while programmers have been continuously pushed towards what some recognize to be a generation of well-trained
users, strictly skilled in one or other proprietary technology. This clue can be found in the legendary quote: “Do you pine for
the old days of Minix-1.1 when men were men and wrote their own device drivers?” [3]. The words by the young Tourvalds
materialize the feeling, which motivates it. It values the talent and personal commitment in opposition to the professional
impersonalization that proprietary software approach has imposed by subjugating the open cooperative community. It also
criticizes the devaluation of technical competence and individual merit, rescuing the social importance of the volunteer spirit
and the sense of community.
Naturally, such initiative revels the complementary perspective of the Free Software phenomenon, that the Community comprises of people committed to human values and, as it is expectable, they prize personal qualities such as fidelity to
own conceptions, idealism and open social relationship. Thus, the pronounced personality exposure and the indignation face
to the violation of ethics and moral principles, even in the name of the marke, are indeed features of such a “hacker culture”. In
fact, these features explain how this literally anarchical organization can bring together so many different people – from
teenager and undergraduate students to PhD researchers, programming experts and skilled engineers – and have them working
interactively and coherently.
Finally, the essential argument against skepticism: good examples; fortunately, the Free Software Community has
made them abundant.
REFERENCES
[1]
GNUsp. The gnusp project. GNUsp, 2000. http://www.gnusp.br.
[2]
GNU. The gnu project, 1985. http://www.gnu.org.
[3]
Linus Tourvalds. Initial announcement of Linux project. posted to the USENET in alt.os.minix, 1991.
46
Anais do II Workshop sobre Software Livre – WSL2001
ROODA – REDE COOPERATIVA DE APRENDIZAGEM –
UM SOFTWARE LIVRE PARA A EDUCAÇÃO À DISTÂNCIA
Prof. Dra. Patricia Alejandra Behar ([email protected])
Juliano de Vargas Bittencourt1 ([email protected])
Silvia de Oliveira Kist2 ([email protected])
Faculdade de Educação
Pós-Graduação em Informática na Educação
Pós-Graduação em Educação
Universidade Federal do Rio Grande do Sul
Av. Paulo Gama s/n – Prédio 12201 – Centro – 90046-900
Porto Alegre, RS, Brasil
RESUMO
O projeto de pesquisa ROODA- Rede cOOperativa De Aprendizagem – aborda uma área de conhecimento
interdisciplinar que integra a Tecnologia Digital com a Educação como forma inovadora de criação de ambientes
de aprendizagem à distância. O objetivo deste projeto é o desenvolvimento de um software livre para educação
à distância. Ele foi construído a partir das necessidades reais de disciplinas da graduação/UFRGS. Para sua
programação foram utilizados recursos telemáticos a fim de promover a comunicação/interação/cooperação
entre usuários, dentro do ambiente. Foi selecionado o sistema operacional Linux, como servidor e plataforma
de desenvolvimento e, para a construção do sistema, utilizou-se a linguagem de programação PHP 4. O ROODA
é aberto para a criação de versões próprias.
Palavras-chave: educação à distância, ambientes virtuais de aprendizagem, software livre.
ABSTRACT
This research project ROODA – Cooperative Learning Network – deals with an interdisciplinary area
that integrates the Digital Technology and Education, as an innovation technology mechanism to create distance
learning environments. The main goal of this project is the development of a free software to distance education.
It was construct above the real necessities of the graduate courses/UFRGS. For it programmation, it was use
telematic resources to promote the communication, interaction and cooperation between users inside the
environment. It was select the Linux operation system as the host and development platform and, to construct
the system, it was use the PHP 4 program language. The ROODA is open for creation of self-version.
Keywords: distance education, cooperation, learning virtual environments, free software.
1 INTRODUÇÃO
Desde a invenção da imprensa em 1500, a sociedade humana não vivia uma transformação tão grande
na maneira de se comunicar, quanto a que acontece nos dias de hoje. O computador, os hipertextos, as multimídias,
e a Internet, mudaram para sempre a forma como as pessoas percebem o mundo a sua volta. Segundo as idéias
de Lévy [6] “...novas maneiras de pensar e de conviver estão sendo elaboradas no mundo das telecomunicações
e da informática.”. A educação, assim como outras áreas do conhecimento humano, não ficou inerte a essa
revolução. Áreas como a Educação a Distância (EAD) conquistaram o seu espaço graças às novas técnicas que
a vasta rede de conexões da Internet proporcionaram.
Vários produtos de empresas apareceram no final da década de 90, com a promessa de serem ferramentas
adequadas para o ensino através da Rede. Infelizmente, além de caros, eles apenas transportavam o paradigma
do ensino tradicional para o computador, exigindo, muitas vezes, que as pessoas sejam autodidatas, estudando
o material disponibilizado pelos professores, e realizando provas e exercícios que eram automaticamente
corrigidos pelo computador. Tais sistemas são utilizados até hoje em várias instituições e não favorecem a
aprendizagem dos sujeitos; não exploram características da Web como a autoria, a troca e a possibilidade de
1
2
Bolsista BIC-PROPESQ – Instituto de Informática / UFRGS.
Bolsista BIC-FAPERGS – Faculdade de Educação / UFRGS.
Anais do II Workshop sobre Software Livre – WSL2001
47
interagir com pessoas, estejam elas onde estiverem. Além disso, estes ambientes são, na sua maioria, fechados,
impedindo que os usuários possam modificá-los segundo seus próprios critérios.
Tendo em vista este panorama, e a necessidade de ministrar algumas disciplinas à distância na Faculdade
de Educação (FACED) da UFRGS, foi necessário o desenvolvimento de um Ambiente para EAD que melhor
suprisse as necessidades de tais disciplinas. Mas construir um sistema fechado não era suficiente e nem coerente
com a proposta de um novo paradigma educacional, deveriam ser rompidas as barreiras com a educação
tradicional, linear e diretiva, na qual o professor ensina e o aluno aprende.
A opção pelo desenvolvimento de um Software Livre, surgiu da própria filosofia do mesmo, que sob
certo aspecto prega idéias muito semelhantes a algumas linhas da educação. Ambos propõe uma sociedade em
que não exista propriedade sobre o conhecimento e onde a competição seja substituída pela colaboração entre
as partes. Assim, Stallman [12] define que Software Livre não tem nada a ver com preço, mas sim com a
liberdade dos usuários em rodar, modificar e copiar programas. Nesta perspectiva foi e continua sendo construído
o ROODA.
2 FUNDAMENTOS DO ROODA
O ROODA é um ambiente ainda em construção que disponibiliza em um só sistema, várias ferramentas
já existentes, de uma forma simples, através da idéia de Software Livre [12]. Ele foi baseado em algumas
propostas, adaptadas para EAD, encontradas em ambientes de groupware como o Source Forge [11]. Tal sistema,
é um espaço disponível na Web onde programadores de várias partes do mundo reúnem-se remotamente para
trabalhar colaborativamente em projetos. Da mesma forma como no Source Forge, o ROODA tem sua interface
centrada no usuário e no desenvolvimento de suas atividades, e não diretamente no curso/disciplina a ser realizada.
Esta abordagem tem como objetivo contextualizar o usuário com as atividades que está desenvolvendo através
da idéia de área de trabalho. Nesta, ele encontrará acesso às ferramentas do sistema, tais como fóruns de discussão,
diário de bordo e chat, podendo ainda trabalhar em suas páginas pessoais e produções, sejam elas individuais e/
ou coletivas.
O ROODA foi construído a partir das necessidades da disciplina EDU 03375 – O Computador na
Educação, ministrada pela professora Patricia A. Behar3 e, posteriormente, foi disponibilizado a outras disciplinas/
professores da FACED, como a EDU 03384 – Bases Psicopedagógicas e sociais da aprendizagem, ministrada
pelo professor Sérgio Franco4 , tornado-se um ambiente mais genérico.
O objetivo do mesmo é oferecer recursos que potencializem ao aprendiz o trabalho cooperativo, pois
segundo Piaget [9] “a inteligência humana somente se desenvolve no indivíduo em função de interações sociais”.
Também se apropriando de Maturana [7] (p. 229), a construção de conhecimento se estabelece na interação e na
troca. Conforme este, “aprender é o processo de mudança estrutural na convivência”, ou seja, a aprendizagem
é estabelecida através do encontro.
Ao final do semestre 2000/2 contava-se com um ambiente que, apesar de estar no seu estado inicial de
desenvolvimento/utilização, já possuía funções sofisticadas e se mostrava promissor.
3 ESTRUTURA E ORGANIZAÇÃO DO ROODA
O ROODA, como mencionado anteriormente, é constituído de uma série de ferramentas já disponíveis
em outros softwares na Web, só que apresentados de forma integrada.
O fórum de discussão foi criado com o intuito inicial de ser um ponto de referência para a comunicação
da turma, um local onde os tele-aprendizes pudessem se inteirar do que está acontecendo, do que os colegas
estão fazendo; expor as suas dificuldades, dúvidas temporárias e certezas provisórias. Pouco a pouco os fóruns
foram se transformando não só em locais de discussão e reflexão dos assuntos levantados na disciplina, como
também discussão de temas atuais que os alunos e professores traziam para as salas virtuais. Esta ferramenta foi
implementada na forma de um painel eletrônico, onde as mensagens ficam gravadas/registradas, sempre à
disposição de quem quer consultar o que já foi discutido. Para isso, os usuários podem criar seus próprios
fóruns e compartilhá-los de forma privativa com os colegas que desejam.
Inicialmente foi adotada uma forma linear unidimensional de organização das mensagens; depois
constatou-se que isto prejudicava o paralelismo entre os debates. Para tanto, migrou-se para uma forma em que
3
Profa. Adjunta da Faculdade de Educação, Pós-Graduação em Informática na Educação e Pós-Graduação em
Educação/UFRGS. Coordenadora do NUTED-Núcleo de Tecnologia Digital aplicada à Educação e membro do
CINTED – Centro de Estudos Interdisciplinares em Novas Tecnologias na Educação.
4
Vice-diretor da FACED, coordenador do CINTED- e integrante do NUTED (FACED/UFRGS).
48
Anais do II Workshop sobre Software Livre – WSL2001
as mensagens ficassem organizadas em forma de árvore hierárquica, possibilitando que múltiplos assuntos
fossem debatidos simultaneamente dentro de um mesmo fórum através de uma relação de ordem. Entretanto, o
fórum de discussão é uma forma eficiente, mas assíncrona de comunicação, e isso causou ansiedade nos alunos,
já que eles demandavam um “feedback” imediato. Como cada usuário tem o seu horário de trabalho, e algumas
questões e dúvidas demoravam para serem respondidas, a solução que se encontrou foi o desenvolvimento de
um chat para permitir a comunicação síncrona e distribuída.
Segundo o paradigma em que o ROODA foi baseado, a realização de provas não é uma forma eficiente
de avaliar o aprendiz. Portanto, buscou-se uma solução para que estes pudessem mostrar toda a sua produção ao
longo do semestre. O ambiente Source Forge [11] forneceu uma resposta interessante que é o trabalho através
de projetos. Este recurso foi ampliado para um sistema de produções, que na realidade é um mecanismo para
que os tele-aprendizes desenvolvam trabalhos individuais ou grupais, compartilhando arquivos e idéias,
vinculadas ou não às atividades propostas pelo professor. Portanto, cada aluno pode desenvolver produções
segundo o seu interesse ou, ainda, cooperar/colaborar com as de seus colegas. As produções disponibilizam um
local onde os alunos podem registrar o desenvolvimento do seu raciocínio e consolidá-lo através de uma
publicação em HTML, permitindo ao professor, ter acesso não só ao resultado final, mas também ao processo
de desenvolvimento. Isto exigiu um mecanismo de upload, com uma interface amigável, para publicação dos
produções HTML.
Durante as observações realizadas com a turma EDU 03375 sobre o uso do sistema, durante o semestre
passado e nestes primeiros meses do ano letivo, constatou-se um sentimento de isolamento entre os alunos, pois
(segundo eles) não era possível enxergar/perceber a presença das demais pessoas compartilhando o mesmo espaço
virtual. Buscando paralelos na literatura, pode-se verificar que este é um sentimento comum entre os alunos de
cursos a distância [5]. Pensando nesta questão foi desenvolvida a ferramenta, ROODA Finder, que é uma interface
com uma lista que contém todos os colegas da turma conectados no momento em que o usuário se conecta.
Clicando sobre o usuário é possível enviar e receber mensagens on-line. Este mecanismo segue a idéia de ICQ (I
see You), disponível em alguns softwares no mercado.
Quando se trabalha remotamente em um grupo, surge sempre uma necessidade de saber quem está o
“outro lado”. Desta forma, para que as pessoas possam se conhecer melhor, saber mais informações sobre o outro,
foi criado o perfil de usuário, onde todos preenchem um formulário com alguns dados pessoais, existe a flexibilidade
de escrever o que se deseja e, ainda, incluir uma foto.
Pensando ainda na importância de realizar sempre uma reflexão sobre o que foi e está sendo realizado, foi
criado o diário de bordo, com o objetivo que o aluno mostre o caminho da sua aprendizagem, escrevendo as
dificuldades encontradas e/ou as facilidades quanto à realização da sua produção. Este é mais um mecanismo que
dá subsídios para a coleta de dados do professor, a fim que este possa acompanhar toda a trajetória do aluno,
intervindo sempre que necessário. Esta ferramenta também possibilita ao aprendiz tomar consciência da sua
aprendizagem através da comparação entre o seu estado atual e suas dúvidas passadas.
Como o ROODA é voltado ao usuário surgiram questionamentos de como deveria ser a interação do
professor com o ambiente. Optou-se por uma abordagem onde este é mais um usuário, parceiro, facilitador,
colaborador/cooperador da aprendizagem, com algumas funcionalidades exclusivas. Tais funcionalidades permitem
que este acompanhe e oriente os trabalhos dos alunos, através do acesso a toda a sua produção, fazendo colocações/
anotações em uma área específica (este recurso ainda se encontra em desenvolvimento). A idéia é que o aluno seja
avaliado a cada passo, a cada nova construção/re-construção e, consequentemente, novas reestruturações.
4 A CONSTRUÇÃO DO ROODA
O ROODA foi construído como uma série de scripts que rodam em um servidor e são acessíveis através de
um Browser ligado à Internet ou a uma rede. Foi selecionado o sistema operacional Linux, como servidor e
plataforma de desenvolvimento, por se tratar de um Software Livre que está disponível para qualquer pessoa
interessada na utilização do ambiente. Inicialmente, foi utilizado o Conectiva Linux versão 4.2 [3], e posteriormente
migrou-se para o RedHat Linux 7.0 [10]. Para a construção do sistema, utilizou-se a linguagem de programação
PHP 4 [2], que roda como um módulo do servidor de http Apache [1]. Esta linguagem foi escolhida por ser de
grande flexibilidade e fácil compreensão, o que possibilita que pessoas com noções básicas de programação
possam realizar pequenas alterações no sistema. Outro fator determinante foi, que tanto o PHP 4 quanto o Apache,
estão disponíveis na maior parte das distribuições Linux. O ROODA, também utiliza para armazenar os dados, um
servidor de Banco de Dados. Durante um estudo preliminar foram levantadas algumas dúvidas na escolha dos
diversos softwares disponíveis. Optou-se pela construção de uma interface genérica onde fosse fácil a adaptação
para qualquer SGBD. Atualmente o ambiente está sendo executado utilizando o MySql [8].
Anais do II Workshop sobre Software Livre – WSL2001
49
5 TRABALHOS FUTUROS
O próximo passo é a construção de novos recursos que possibilitem ao professor um acompanhamento
mais eficaz do trabalho dos tele-aprendizes. Além disso, é preciso implementar níveis de auxílio ao usuário que
fornecerão ajuda, desde a mais detalhada, até a mais superficial. Isto permite que tanto um usuário leigo quanto
um mais experiente utilizem o sistema da forma mais adequada, de acordo com seu nível de conhecimento
computacional. Cabe enfatizar que é preciso fazer pequenos ajustes em todos os recursos até então implementados,
para um melhor desempenho do ambiente.
6 CONSIDERAÇÕES FINAIS
A decisão de disponibilizar o ROODA sobre GPL [4], mais do que uma questão de escolha é uma
questão de proximidade de filosofias: educação e Software Livre. Certamente esta opção não tornou o ambiente
menos funcional do que os demais existentes no mercado; pelo contrário, possibilitou que as pessoas interessadas
em utilizá-lo, pudessem construir seus cursos sem investimento em software ou hardware específico. Além
disso, em razão do código fonte do sistema ser aberto, é possível que as pessoas colaborem na construção de um
ambiente mais sólido, eficaz, eficiente e, principalmente, confiável, através das alterações que elas próprias
possam vir a realizar e/ou sugerir. Logo, tem-se como vantagem, a possibilidade de cada usuário do sistema
poder construir sua versão customizada/personalizada.
Atualmente, pode-se afirmar que o ROODA, ao mesmo tempo em que está pronto para ser usado,
encontra-se em contínua construção e reconstrução, acompanhando sempre às necessidades dos professores e
tele-aprendizes!
REFERÊNCIAS BIBLIOGRÁFICAS
[1] Apache Software Foundation, Apache Server. Disponível em http://www.apache.org. Acesso em 12 de
Abr. de 2000.
[2] Apache Software Foundation, PHP 4.0. Disponível em http://www.php.net. Acesso em 16 de Jan. de
2001.
[3] CONECTIVA, Linux versão Servidor 4.2. Disponível em ftp://ftp.conectiva.com.br/pub/conectiva/iso/
cl42-cd1.isso. Acesso em 5 de Maio de 2000.
[4] FREE SOFTWARE FOUNDATION, GPL. Disponível em http://www.gnu.org/copyleft/gpl.html. Acesso
em 11 de Nov. de 2000.
[5] HARA, N. e KLING, R. (2000) Students´ Distress with a Web-based Distance Education Course.
Disponível em HTTP://WWW.SLIS.INDIANA.EDU/CSI/WP99_01.HTML.
[6] LÈVY, Pierre. As tecnologias da inteligência: o futuro do pensamento na era da informática. Rio de
Janeiro: editora 34, 1993.
[7] MATURANA, Humberto. El sentido de lo humano. 3 a ed., Santiago: ED. Pedagógicas Chilenas, 1992.
[8] MYSQL AB, Mysql. Disponível em http://www.mysql.com. Acesso em Maio de 2000.
[9] PIAGET, Jean. Psicologia e Pedagogia: a resposta do grande psicólogo aos problemas do ensino. Rio de
Janeiro: Forense, 1970.
[10] REDHAT, RedHat Linux 7.0, Disponível em ftp://ftp.redhat.com/pub/redhat/current/i386/. Acesso em
20 de Março de 2001.
[11] Source Forge, Disponível em: http://sourceforge.net. Acesso em 26 de Abr. de 2000.
[12] STALLMAN, Richard et al. Open Sources: Voices from the Open Source Revolution. EUA: O’Reilly &
Associates, 1999.
50
Anais do II Workshop sobre Software Livre – WSL2001
USO DE LINUX EM AULAS DO ENSINO FUNDAMENTAL
Elemar Marius Berbigier ([email protected]) – UNIJUÍ
César Luis Uhry Lauxen ([email protected]) – EMEFR
DETEC – Departamento de Tecnologia
UNIJUÍ – Universidade Regional do Noroeste do Estado do Rio Grande do Sul
Rua São Francisco, 501
98700-000 Ijuí (RS)
Oficina de Informática – Escola Municipal de Ensino Fundamental Rotermund
Av. Palmeira das Missões, 2335
986400-000 Crissiumal (RS)
RESUMO
Este trabalho objetiva mostrar que existe uma mistificação no uso de software livre e GNU/Linux com
crianças. É apresentada a experiência de uso do sistema operacional GNU/Linux em oficina de informática, por
alguns alunos de sexta a oitava séries do ensino fundamental, onde foi apresentada a filosofia do software livre
e os alunos executaram o processo de instalação da distribuição Conectiva Linux 6.0.
ABSTRACT
This work intends to show that there is a myth in the use of free software and GNU/Linux with children.
It present the experience of using GNU/Linux Operational System in Computing Class, by some students of 6th
to 8th class from basic school, where was showed the philosophy of free software and the students made the
installation process of Conectiva Linux 6.0.
1 INTRODUÇÃO
Os computadores, observando a sua história, sempre foram mistificados, tanto que inicialmente eram
chamados de “cérebros eletrônicos” e ficavam instalados em salas com paredes de vidro, onde podiam ser
observados de longe e de forma segura para os mesmos. Ignorando o caso de servidores, que por segurança
devem permanecer inacessíveis à maioria de seus usuários, já faz vários anos que os computadores diminuíram
de preço e de tamanho, e aumentaram a sua capacidade de processamento e armazenamento, constituindo os
microcomputadores. Estes, invadiram todos os locais, como a mesa da secretária, as residências e as escolas.
Para a maioria dos jovens é na escola que ocorre a iniciação no uso de computadores, e este constituise num processo de ensino no qual o professor, geralmente e infelizmente, limita os alunos às tecnologias que
já são de seu domínio. Como ressaltado na expressão popular “em time que está ganhando não se mexe”, as
pessoas somente mudam a sua rotina quando existem bons motivos para tal. Além disto, tudo que é novo é
difícil de ser incorporado. A mudança de plataforma de software proprietário para software livre, certamente
encaixa-se nesta situação, sendo que os argumentos mais usados para evitar esta transição são: que existe
dificuldade de instalar e usar este tipo de solução, que este ambiente é inadequado aos usuários finais e que os
softwares que são utilizados não existem nesta plataforma.
Na realidade, os argumentos acima são os argumentos dos professores e não os argumentos dos alunos,
pois estes não estão presos a determinados modelos e como tudo é novidade, tudo é passível de ser compreendido
e usado.
Uma forma de romper com estes argumentos é mostrar que é desejável e possível trabalhar com o
software livre nas escolas. É desejável devido à várias questões, por exemplo, aquelas explanadas por Stallmann
em O Projeto GNU [8], principalmente pela independência tecnológica e pela melhor destinação dos recursos
em um país pobre. É possível porque depende de uma decisão mais política ou econômica do que técnica ou
pedagógica em adotar esta solução, porém, geralmente, esta decisão está limitada à disponibilidade de recursos
humanos qualificados e engajados para o trabalho com esta plataforma.
No aspecto de adequação de uso de GNU/Linux em escola de ensino fundamental, existem várias
experiências, como a do Colégio Stella, em Osasco (SP) [4], da Escola Antônio Giúdice, em Porto Alegre (RS)
[2], e a que será aqui apresentada, que está em execução na Escola Municipal de Ensino Fundamental Rotermund,
Anais do II Workshop sobre Software Livre – WSL2001
51
situada na cidade de Crissiumal, localizada na região noroeste do estado do Rio Grande do Sul, que passou a
oferecer aos alunos interessados aulas de conhecimentos em GNU/Linux.
2 A EXPERIÊNCIA
A Escola Municipal de Ensino Fundamental Rotermund trabalha com o sistema de oficinas, nas quais
são oferecidas aulas de dança, teatro, violão, teclado, artes e informática. As aulas são desenvolvidas extracurricularmente e só participam os alunos interessados.
No ano 2000, a escola passou a oferecer cursos de informática para os alunos de sexta a oitava séries.
Os cursos desenvolvidos foram Introdução à Informática e uso de sistema operacional e aplicativo de automação
de escritório baseados em aplicações convencionais. Desde o início, os alunos passaram a saber da existência
de outros sistemas operacionais, além daquele que estavam aprendendo, e passaram, gradativamente, a conhecer
a filosofia GNU.
Estes alunos, não contentes em conhecer apenas a filosofia Software Livre e o projeto GNU, quiseram
ter contato direto com o sistema operacional livre Linux. Então, foi instalado o Conectiva Linux 5.0 em uma das
máquinas, que passou a ser disputada por eles nas horas de intervalo, claro que basicamente para usar os jogos.
Pediram, então, para que fossem ministradas aulas sobre o uso do GNU/Linux, atividade iniciada em março do
ano de 2001, sendo que para tal foi escolhida a distribuição Conectiva Linux 6.0.
Na primeira aula, além da apresentação da história, filosofia e funcionamento do Linux, foi proposto
que os alunos fizessem a instalação do sistema operacional. Tarefa realizada por eles com sucesso. Na seqüência,
aprenderam a criar contas de usuários, configurar a área de trabalho, usar editores de texto e outras atividades
relacionadas à utilização do Linux.
As aulas tiveram grande êxito, surgiram apenas algumas dificuldades para os alunos em relação às
linhas de comando Unix. Como exemplo destas dificuldades, temos os comandos de instalação do StarOffice e
sua habilitação na conta de usuários, visto que foram feitas via Terminal. Também, em relação à diferenciação
de letras maiúsculas e minúsculas, especialmente nas senhas de usuários, além de problemas na criação de
contas de usuário através do Gerenciador de Login, sendo então adotado o Linuxconf para tal tarefa.
Algumas das perguntas que surgiram durante as aulas foram: “Com a criação do disco de boot para
instalação, o Linux é copiado para dentro do disquete?”, “Por que a instalação demora tanto?”, “Por que as
linhas de comando são tão utilizadas?”, “Por que minha senha não é aceita?”, “Por que redigitar a senha?”,
“Como vejo o que tem no disquete?”, “Por que precisamos montar e desmontar o disquete?” e outras perguntas
corriqueiras que todo iniciante faz algum dia.
O que chamou bastante atenção foi o grande interesse dos alunos, que passaram, por exemplo, a competir
para saber quem, por primeiro, conseguiria emprestado o Linux para instalar em sua máquina. Também chamou
atenção o fato de um aluno ter instalado o Linux em sua máquina pessoal, necessitando de auxílio apenas para
o particionamento do HD, já que não era possível o particionamento automático.
Uma das conseqüências interessantes deste trabalho, foi a divulgação dos alunos participantes para
seus colegas de classe, que também quiseram estudar GNU/Linux, além do fato de alguns dos participantes
desenvolverem pouco interesse em continuar trabalhando com outros sistemas operacionais, exceto para jogos.
Até agora, pela grande aceitação do novo sistema pelos alunos, está programada a continuidade do
trabalho, aprofundando os comandos Unix, assim como a instalação e uso de outros softwares para esta
plataforma.
Houve apoio da direção ao tomar conhecimento da idéia de ministrar aulas sobre GNU/Linux na escola,
visto tratar-se de algo novo, promissor e que trata da formação dos alunos, além do custo zero para a instalação
do sistema no laboratório de informática. Foi delegada ao instrutor a função de optar pelos cursos que melhor se
adequassem aos recursos e à infra-estrutura presentes na escola e à formação dos alunos.
Para avaliar esta experiência, após 45 dias do início das aulas, foi realizada uma primeira avaliação por
parte da Coordenação Pedagógica da escola. Segundo a coordenadora pedagógica Scheila F. K. Johann, que
dirigiu a avaliação: “Os alunos vêem o trabalho com Linux como produtivo, inovador e ousado. E, no mundo
atual, é preciso ousar e fazer a diferença. Já na visão dos professores, alguns alunos que participam das aulas de
Linux estão mais participativos e compartilham mais as suas idéias com os colegas, o que é um resultado
positivo que pode ser conseqüência destas aulas”.
Desta forma, o ensino deste sistema operacional já vem trazendo efeitos positivos na escola, e há de
trazer, em breve, muitos mais.
52
Anais do II Workshop sobre Software Livre – WSL2001
3 OBJETIVOS
Na seqüência dos trabalhos pretende-se continuar avaliando, através da Coordenação Pedagógica da
escola, o desempenho destes alunos em sala de aula.
Além disto, pretende-se utilizar ferramentas Linux para as demais disciplinas. Sistemas desenvolvidos
para educação deverão ser utilizados para aulas de ciências, matemática, português e outras disciplinas e os
alunos que hoje participam do curso de Linux deverão ajudar na seleção do software a ser utilizado, fazer sua
instalação e monitorar o uso dos mesmos pelos colegas.
Com relação a hardware, o laboratório de informática, que hoje conta com 5 microcomputadores AMDK6II e 1 Pentium 66 MHz, deverá adquirir mais equipamentos e pretende-se criar uma rede local. Futuramente,
a mais longo prazo, esta rede deverá ser incorporada à Internet.
Já a administração da escola deverá migrar seu sistema para Linux ainda neste ano, com a utilização de
sistema de gestão livre, como o SAGU[6], por exemplo. É esperado sucesso nesta migração, a exemplo do que
ocorreu em tantas entidades, como Banrisul [2][6], União Cultural Brasil – Estados Unidos[5], Duchas Corona
[4] e Nutrimental S/A [4].
4 CONCLUSÃO
É possível que o sistema operacional GNU/Linux faça parte da vida de nossas crianças, para tal, basta
a iniciativa de começarmos a mostrar a elas as várias possibilidades que a informática nos traz, especialmente
no que relaciona-se a sistemas operacionais.
O interesse das crianças e o sucesso das aulas na Escola Municipal de Ensino Fundamental Rotermund
são a prova de que basta a iniciativa por parte dos educadores, para que possamos trazer coisas novas e formar
profissionais mais familiarizados com a tecnologia.
BIBLIOGRAFIA
[1] CERVIERI, Alexandre, WEBER, Raul Fernando & Taisy Silva. “Linux como Ferramenta de Ensino e
Pesquisa”. Estudo de casos: disciplina de Tópicos Especiais – Anais Workshop Software Livre. Porto
Alegre (RS): maio de 2000.
[2] INFO EXAME. “Os pingüins falam tchê!”. Info Exame, n. 179, São Paulo, fevereiro de 2001.
[3] OSÓRIO, Fernando Santos. “Ensino de Informática Usando Linguagens de Programação Baseadas em
Software Livre”. Anais Workshop Software Livre. Porto Alegre (RS): maio de 2000.
[4] REVISTA DO LINUX. “Bom até para crianças”. Revista do Linux, n. 8 , Curitiba (PR): agosto de 2001.
[5] REVISTA DO LINUX. “Linux: um novo idioma”. Revista do Linux, n. 13, Curitiba (PR): Janeiro de
2001.
[6] REVISTA DO LINUX. “O Banrisul adotou a dianteira ao adotar o Linux”. Revista do Linux, n. 15,
Curitiba (PR): março de 2001.
[7] REVISTA DO LINUX. “Para grandes e pequenos”. Revista do Linux, n. 5, Curitiba (PR): maio de 1999.
[8] STALLMANN, Richard; GASS, Elvino Bohn. “O Projeto GNU”. Porto Alegre (RS): 2001.
Anais do II Workshop sobre Software Livre – WSL2001
53
LABORATÓRIOS DE INFORMÁTICA: OTIMIZANDO RECURSOS
Frederico Henrique Goldschmidt Neto ([email protected])
Universidade de Passo Fundo
Rua Vacaria 119 – Vera Cruz – 99040-030 – Passo Fundo (RS)
RESUMO
A informática na educação é uma realidade. Investimentos nesta área tem consumido cada vez mais o
orçamento das instituições de ensino. O uso de laboratórios de informática, antes objetos exclusivos dos cursos
de Ciências da Computação hoje está presente até mesmo em escolinhas infantis. Partindo do pressuposto que
é necessário otimizar ao máximo a utilização dos recursos computacionais, tendo em vista não apenas o elevado
custo e o tempo de vida útil destes equipamentos, mas também a performance educacional do próprio laboratório,
cada hora de não utilização de tais equipamentos gera um custo considerável se comparado com outros recursos
materiais usados para educação.
ABSTRACT
Computer Science in education is a reality. Investments in this area have been consuming the teaching
institutions budget more and more. The computer science laboratories use, which was exclusive at the Computer
Science Courses at the universities or colleges in a recent past, today is present even at schools for children.
From the presupposition that is necessary to improve the maximum the use of the computer resources, considering
not only the cost and lifetime of these equipments, but also the educational performance of the laboratory itself,
every hour which they are not used, it is generated a considerable cost, comparing it with other material
resources used on education.
1 INTRODUÇÃO
Não há mais como evitar – A utilização da informática na educação está se tornando indispensável. O
uso de laboratórios de informática, antes objetos exclusivos dos cursos de Ciências da Computação esta sendo
adotado até mesmo em escolinhas infantis. O próprio Governo Federal através do Programa Nacional de
Informática na Educação – PROINFO [2], está suprindo as escolas públicas de 1º e 2º graus com laboratórios
destinados ao ensino da informática.
Independente da preocupação com o aspecto pedagógico da utilização de laboratórios de informática,
variável de inquestionável valor para o processo, surgem inúmeras perguntas a respeito de como utilizar
plenamente os recursos disponíveis nestes ambiente para fins educacionais: Que softwares utilizar? Como
orientar o aluno para a utilização do laboratório? As máquinas deverão ter acesso a Internet? Como controlar o
acesso a Internet em horário de aula? Como evitar que o aluno, seja por descuido, ou mesmo por vandalismo,
estrague a configuração das máquinas? Como controlar o acesso aos computadores? Como controlar a utilização
de espaço em disco dos servidores? Como controlar a utilização de folhas para impressão? Quais os custos
envolvidos no processo?
Questões como essas, deveriam ser respondidas antes da implantação de um laboratório de informática,
sob pena de sub-utilização das máquinas, elevado custo de manutenção, desperdício de tempo e dinheiro, com
as freqüentes reinstalações de software e formas ineficientes de controle de recursos.
2 O ESTADO DA ARTE EM LABORATÓRIOS DE INFORMÁTICA
Em um projeto ideal para laboratórios de informática, alguns itens devem ser atendidos, se não total,
pelo menos parcialmente, para que se possa obter o máximo de aproveitamento:
1. A instalação de softwares deve ser feita uma única vez;
2. Qualquer sala do laboratório deverá ser usada para qualquer disciplina sem a necessidade de
reinstalação de software;
3. O aluno deve ter a liberdade de escolher, entre várias, qual a configuração de software é mais adequada
ao seu trabalho;
4. Todas as máquinas poderão rodar mais de um sistema operacional, sendo desejável Windows 95/98,
Windows NT, e LINUX;
54
Anais do II Workshop sobre Software Livre – WSL2001
5. O aluno poderá fazer o que precisar na configuração da máquina, desde remover diretórios até
formatar e instalar softwares que sejam necessários para seus trabalhos de aula;
6. Todo o aluno deverá ter espaço em disco nos servidores, seja para a publicação de sua página na
WEB, ou para depósito de arquivos de seu uso particular;
7. Todo o aluno deverá ter seu e-mail;
8. Todo o aluno deverá ter a liberdade de imprimir seus arquivos;
9. O pessoal responsável pelo laboratório deverá poder controlar o acesso a Internet em horários de
aula;
10.Deverão existir interfaces para controle de espaço em disco nos servidores, cotas de papel para
impressão e cadastro de usuários;
11.A rede da instituição deverá estar protegida de “ataques” oriundos do laboratório de informática;
12.O custo de implementação/implantação/recursos humanos deverá ser o mais baixo possível.
Atendidos os itens acima, teremos um laboratório de informática com grande flexibilidade, altamente
gerenciável e com um custo operacional baixo.
3 LABORATÓRIOS DE INFORMÁTICA DA UNIVERSIDADE DE PASSO FUNDO – UPF, UM ESTUDO DE CASO
Levando em consideração todos os itens relacionados no parágrafo anterior, iniciou-se a procura de
soluções que atendessem, senão por completo, pelo menos parcialmente as necessidade da UPF. Através de
pesquisas na Internet foi encontrada uma implementação que atendeu plenamente as nossas necessidades. Esta
solução foi desenvolvida na Universidade de Genebra, Suíça, por David Clerc e Marc Vuilleumier Stückelberg,
que disponibilizaram toda a documentação necessária para a implementação da solução, bem como os softwares
com licença de uso gratuita [1].
Inicialmente foi montado um laboratório piloto, com um servidor e duas máquinas, para testes da
viabilidade técnica da solução. Este pequeno laboratório foi apresentado para as pessoas diretamente relacionadas
com a área de informática e professores da Instituição, tendo sua aceitação imediata.
Em julho de 1997 foi implantado o primeiro laboratório, composto de 6 salas com 21 máquinas cada
uma, um servidor NETWARE e um servidor LINUX, após um semestre de utilização, esta solução foi estendida
a todos os laboratórios de informática da UPF. Atualmente atendemos em torno de 520 máquinas, distribuídas
em 17 laboratórios de informática, localizados no Campus principal e em 5 outros campi distribuídos na região,
utilizando única e exclusivamente máquinas rodando LINUX para o papel de servidor.
Além dos laboratórios implantados na UPF, o corpo técnico da UPF presta suporte para vários estados
do Brasil, além de países de língua latina, tais como Espanha, México e Portugal, dirimindo dúvidas sobre o
processo e auxiliando na implantação, tudo dentro do espírito adotado pelos autores da solução, ou seja
gratuitamente.
3.1 Processo de Carga Automática de Software
Inicialmente, deverá ser instalada configuração de software que se deseja disponibilizar ao aluno em
uma máquina (por exemplo, Windows 95 com Office e Netscape), após efetuada a instalação, inicia-se o processo
de geração de imagem, que gravará uma cópia compactada do disco rígido da máquina recém instalada no
servidor, através de conexão via rede de dados.
O aluno ao ligar sua máquina no laboratório, receberá um menu de opções para escolha do software que
melhor se adeqüe a sua necessidade. A imagem de software escolhida será trazida via rede, através de carga
diretamente do servidor para a máquina local, está imagem será armazenada em uma partição não utilizada do
disco. Após o término da carga, a imagem será descomprimida em outra partição do disco rígido. Terminada a
descompactação, a máquina será automaticamente iniciada com a imagem selecionada pelo usuário.
Como a imagem selecionada fica armazenada no disco rígido, na segunda vez que a opção for acessada
não existirá a necessidade da carga pela rede, precisando somente ser feito o processo de descompactação. Será
necessária uma nova carga via rede somente no caso de atualização de imagem no servidor ou esgotamento da
área reservada para armazenamento de imagem nas máquinas locais, o que é detectado automaticamente pelo
sistema.
Desta forma, alunos e professores tem liberdade de fazer o que for necessário para o andamento da aula,
desde particionar e formatar o disco rígido, até remover diretórios do sistema operacional. Problemas antes
existentes devido a alteração de configuração do sistema, e até mesmo brincadeiras de mau gosto com ícones e
papel de parede deixam de existir. Após terminada a aula, desligam-se as máquinas e o próximo aluno que
necessitar utilizar o laboratório escolherá a opção desejada, e a máquina estará novamente com a instalação
Anais do II Workshop sobre Software Livre – WSL2001
55
recuperada, pronta para ser utilizada.
A flexibilidade deste método permite que em um mesmo laboratório seja possível ministrar aulas de
softwares que utilizem como plataforma os sistemas operacionais Windows 95, Windows 98, Windows NT,
LINUX e DOS, ou até mesmo softwares específicos utilizados por alunos do curso de Ciências da Computação
envolvidos com processamento paralelo e distribuído através de montagem de cluster de computadores,
envolvendo todas as máquinas do laboratório.
3.2 Interfaces de Controle do Laboratório
Para que o laboratório possa ser administrado da forma eficiente, torna-se necessário além da
automatização das instalações de software, oferecer interfaces para que o administrador tenha o controle sobre
os recursos existentes no laboratório. Desta forma o gerenciamento do laboratório é facilitado.
No caso da UPF, são oferecidas as seguintes interfaces para melhor controle e gerenciamento dos
laboratórios:
• Interface para cadastramento de usuários: Permite ao administrador cadastrar alunos, mediante
busca de informações em base de dados gerada pelo sistema acadêmico.
• Interface para controle de cotas: Permite ao administrador gerenciar a utilização do espaço em
disco e quantidade de folhas para impressão.
• Interface para bloqueio de acesso a Internet: Permite ao administrador bloquear o acesso a Internet
mediante solicitação do professor.
3.3 Firewall entre Rede do Laboratório e Rede da Instituição
Para evitar ataques não desejados por parte dos alunos a rede de dados da UPF, os servidores LINUX
existentes nos laboratórios possuem duas placas de rede, desta forma, através de montagens de regras para
filtragem de pacotes TCP/IP, garante-se que os alunos só terão acesso aos recursos necessários para aulas e
pesquisas, garantindo a segurança e a integridade dos dados administrativos e acadêmicos que também trafegam
pela rede.
3.4 Otimização da Utilização da Conexão a Internet
Com a utilização de máquina para efetuar o armazenamento de páginas HTML, consegue-se otimizar a
conexão com a Internet, pois o único meio de acesso a Internet por parte dos alunos é através do servidor de
armazenamento e proxy, desta forma o primeiro acesso a determinado site, é efetuado através do link de dados,
sendo armazenadas as páginas HTML, a segunda conexão para o mesmo site não terá necessidade de sair da
rede interna, pois o dado já está armazenado em servidor local, sendo atendida rapidamente e não impactando
na utilização do link de dados [3].
3.5 Servidor de E-mail para Alunos
Todo o aluno ao ingressar na UPF, tem a seu dispor o cadastro de endereço de e-mail e cota de espaço em disco
em um servidor específico para este fim. Desta forma o aluno tem a liberdade de comunicar-se com outras
pessoas através da Internet, utilizando ferramentas para e-mail instaladas no próprio servidor, ou nas máquinas
do laboratórios via browsers, bem como disponibilizar informações pessoais através de montagem de páginas
HTML em sua área pessoal de trabalho no servidor.
4 INFORMAÇÕES TÉCNICAS
Documentações técnicas de como implementar a solução aqui apresentada, podem ser encontradas em:
• http://cuiwww.unige.ch/info/pc/remote-boot – página dos criadores da solução, contendo inclusive
fórum para discussão/resolução de problemas.
• http://vitoria.upf.tche.br/~fred – página descrevendo a implementação feita na UPF. Complemento
em português da página original.
As interfaces de auxílio ao gerenciamento dos laboratórios foram feitas pelo próprio corpo técnico da
UPF, utilizando-se de ferramentas disponíveis na Internet ou integrantes da distribuição LINUX utilizado em
nossos servidores.
De uma forma bastante breve, o processo de carga das imagens funciona através da utilização de eprom
em placas de rede que utilizam o protocolo DHCP/BOOTP para obtenção de endereço IP, e TFTP para carga de
arquivos.
O armazenamento das imagens, checagem de modificação de versão no servidor, descompactação e
56
Anais do II Workshop sobre Software Livre – WSL2001
geração de imagem é feita utilizando-se os softwares fornecidos pela Universidade de Genebra.
5 CONCLUSÃO
A informática na educação é uma realidade. Para que ela alcance seus objetivos, é necessário otimizar
ao máximo a utilização dos recursos computacionais, fato este que nem sempre é levado em consideração no
inicio do processo de montagem dos laboratórios de informática.
Neste artigo, procurou-se abordar o fornecimento de uma base confiável para que os professores e
alunos possam usar o tempo de permanência no laboratório de informática aprendendo a utilizar o computador,
e não sofrendo com ele.
Toda a solução foi implementada utilizando software livre, pois o sistema operacional usado para executar
os serviços é Linux, os softwares geradores e descompactadores de imagens de instalação são oferecidos de
forma gratuita, e as ferramentas de administração dos laboratórios foram desenvolvidas pelo próprio corpo
técnico da UPF.
O estudo de caso apresentado não pretende ser uma solução definitiva para laboratórios de informática,
mas pode ser um caminho para quem busca através da otimização dos recursos e uso de software livre implementar
mecanismos que garantam maior flexibilidade na utilização dos computadores, menor custo da implementação
e maior controle e gestão sobre as atividades desenvolvidas no laboratório.
REFERÊNCIAS BIBLIOGRÁFICAS
[1] VUILLEUMIER, Marc; CLERC, David . Linux Remote-Boot mini-HOWTO: Configuring Remote-Boot
Workstations with Linux, DOS, Windows 95/98 and Windows NT. Disponível em http://cuiwww.unige.ch/
info/pc/remote-boot/howto.html.
[2] A informatização das escolas públicas é importante e porquê? O que o MEC tem feito neste setor?
Disponível em http://www.proinfo.gov.br/prf_informatizar.htm.
[3] Squid Internet Object Cache. Disponível em http://squid.nlanr.net/Squid/.
Anais do II Workshop sobre Software Livre – WSL2001
57
PROJETO DE MIGRAÇÃO DA PLATAFORMA DE SOFTWARE
PROPRIETÁRIO PARA SOFTWARE ABERTO NA UCS
Alexandre M. Ribeiro ([email protected])
Heitor Strogulski ([email protected])
Departamento de Informática
Centro de Ciências Exatas e Tecnologia
Universidade de Caxias do Sul
Rua Francisco Getúlio Vargas 1130, B. Petrópolis
CEP 95070-560, Caxias do Sul – RS
RESUMO
Este artigo descreve o projeto que se desenvolve atualmente na Universidade de Caxias do Sul para a
migração de uma plataforma baseada em softwares proprietários para uma plataforma baseada majoritariamente
em softwares livres. Será dada especial atenção ao processo de migração em si, que deverá acontecer de maneira
gradual, procurando minimizar problemas de adaptação dos usuários ao novo ambiente.
ABSTRACT
This paper describes the project under development at the University of Caxias do Sul for the migration
of a software platform based on proprietary software into a platform based mostly on free software. It will be
given special attention to the migration process itself, which will be carried out in a gradual manner, trying to
minimize adaptation problems for users in the new environment.
1 INTRODUÇÃO
A Universidade de Caxias do Sul (UCS) conta com um parque instalado de aproximadamente 1800
microcomputadores, na sua grande maioria utilizando os sistemas operacionais MS-Windows 95/98/NT,
interconectados por uma rede TCP/IP. Estes microcomputadores são utilizados tanto para a administração como
para área acadêmica (laboratórios de pesquisa, salas de aula com computadores, …), abrangendo uma vasta
gama de aplicativos. A rede conta com mais de 40 servidores (Novell, Microsoft, Linux, FreeBSD, OpenBSD,
IBM-AIX, etc.), sendo que a maioria, cerca de 30 é baseada no sistema operacional Netware 4.X.
Em 2000 foi iniciado um estudo para substituir esta plataforma, majoritariamente formada por softwares
proprietários, por softwares livres. Espera-se com isso: aumentar a vida útil dos equipamentos, reduzir os
problemas com o controle de licenças, reduzir o tempo de atualização dos softwares, aumentar a flexibilidade
na configuração do ambiente, reduzir custo de propriedade e incentivar a utilização de software livre. Deve
ocorrer também, com a redução dos gastos com licenciamento de software, um acréscimo nos investimentos na
compra de equipamentos e na formação de pessoal. A proposta para este estudo partiu do Núcleo de
Processamento de Dados e do Departamento de Informática, porém, embora a reitoria esteja ciente e apoie este
projeto, cabe salientar que ainda não foi tomada nenhuma decisão sobre qual a envergadura e com que cronograma
ele será implantado. Estas decisões deverão ser tomadas após a conclusão dos estudos preliminares e da análise
dos resultados obtidos.
Logo nos primeiros estudos ficou claro que uma mudança de tal amplitude causaria uma mudança e
choque cultural bastante grande, podendo levar a uma reação dos usuários (15700 pessoas cadastradas na rede)
e a um conseqüente fracasso do projeto. Para contornar este problema foi projetada uma migração, onde as
ferramentas atualmente utilizadas pelos usuários (editores de texto, planilhas, softwares de autoria, banco de
dados, correio eletrônico, ferramentas de desenvolvimento, etc.) seriam gradativamente substituídas por
equivalentes livres.
Esta substituição leva em consideração peculiaridades de cada grupo de usuários. Por exemplo, antes
da substituição dos softwares utilizados nas salas de aula informatizadas é necessário que os professores
selecionem qual vai ser o software que será utilizado, que se familiarize com ele e reveja o planejamento das
suas aulas. Enquanto que, para os softwares utilizados nos setores administrativos da UCS, será necessário
fornecer treinamento para que os funcionários se adaptem aos novos softwares (o que tem um impacto menor,
58
Anais do II Workshop sobre Software Livre – WSL2001
visto que a gama de softwares utilizados por estes é bem menor, se restringindo em grande parte dos casos ao
correio eletrônico, um navegador web e o pacote MS-Office).
2 ARQUITETURA PROPOSTA
A grande questão que deve ser solucionada no projeto de mudança de plataforma é como fazer a transição
entre a plataforma atual e a desejada. O primeiro problema aparece no momento de escolha do sistema operacional
que será instalado nas estações. Para permitir a oferta de softwares livres seria desejável trabalhar com um
sistema operacional também livre, como o Linux, caso contrário a oferta de softwares livres fica extremamente
limitada. Pela facilidade de uso a nível das estações de trabalho, foi escolhido com sistema operacional para
estes computadores o Linux. Porém, utilizando um sistema operacional livre resta o problema de como continuar
utilizando os softwares proprietários.
A primeira solução analisada para este problema foi a emulação das aplicações para Windows no Linux,
mas isto apresenta uma série de inconvenientes, como a perda de performance e problemas de incompatibilidade
com algumas aplicações, o que compromete a efetiva implementação desta solução.
Servidor
Windows
Servidor
Netware
Servidor
Linux/
Unix
Servidor
Tarantella
Cliente
Figura 1: Arquitetura Proposta
A alternativa encontrada para resolver este problema é a utilização de um sistema de publicação de
aplicações via um servidor Web (como por exemplo o Tarantella [8]). Desta forma a estação de trabalho pode
possuir uma configuração leve de Linux, incluindo o pacotes X Windows (como o XFree [9]) e um navegador
web (em alguns casos particulares, pode permanecer como sistema operacional da estação de trabalho alguma
versão de Windows). As aplicações, tanto Windows com Linux são executadas em servidores de aplicação,
tendo somente a sua interface exportada para uma janela de um navegador web. Com isto não existe emulação
em nenhum dos lados. Esta arquitetura, que pode ser observada na Figura 1, concentra a capacidade de
processamento nos servidores, permitindo que computadores mais antigos (desde PCs 486) e com pouca memória
(a partir de 16 Mb) possam rodar aplicações atuais e bem mais pesadas.
Para manter a compatibilidade com a base instalada, num primeiro momento continuam sendo utilizados
como servidores de arquivo, de e-mail e de impressão os servidores Netware. Porém estes serviços devem ser
gradualmente migrados para servidores baseados em softwares livres.
3 ADMINISTRAÇÃO
Dentro de uma tal arquitetura, surge uma nova questão: Como administrar os recursos (usuários, arquivos,
impressoras ...)? Para executar aplicações em vários servidores, os usuários devem estar autenticados em todos
eles. Sem alguma ferramenta auxiliar, no momento em que o usuário se autentica junto ao servidor Tarantella
pode ser utilizada a mesma base de informações que com os servidores Linux, porém seria necessário duplicar
as contas de usuários, uma para Linux e outra para Windows (que, com o uso das ferramentas disponíveis,
poderia ser a mesma dos servidores Netware).
Atualmente é utilizado no gerenciamento dos recursos da rede o serviço de diretório NDS da Novell
[5], que roda nos servidores Netware. Foram realizados testes com uma versão do NDS que roda sobre Linux
(chamado de e-directory), permitindo uma administração centralizada e uniforme dos usuários. Por sua vez, os
servidores Tarantella podem utilizar a mesma base de usuários, consultando o e-directory via o protocolo LDAP
[4].
Esta arquitetura requer muito mais capacidade de processamento por parte dos servidores, que deixam
Anais do II Workshop sobre Software Livre – WSL2001
59
de ser somente servidores de disco para se tornarem servidores de aplicações. Neste sentido, já estão sendo
estudadas alternativas para a utilização de clusters de servidores. Com o Tarantella é possível fazer um
“balanceamento de login”, executando as aplicações no servidor que tem menos usuários conectados num
determinado momento, porém o número de usuários não é uma informação confiável para estimar a carga de
um servidor.
4 APLICATIVOS
Quanto aos aplicativos a serem utilizados, foi iniciado um trabalho junto aos professores (especialmente
com os professores do Departamento de Informática), de avaliação dos softwares que tem condições de substituir
aqueles usados atualmente nas disciplinas.
Este trabalho já levou à identificação de uma série de softwares livres que tem plenas condições de
substituir os equivalentes proprietários. Alguns exemplos são o Koffice (parte do projeto KDE [3]) ou o Open
Office [6] em substituição ao MS-Office e o Gimp [1] em substituição ao Adobe Photoshop. Na área de linguagens
de programação, os compiladores da GNU [2] e o JDK [7] são boas alternativas.
Em paralelo o colegiado do curso de Ciências da Computação está analisando a inclusão da utilização
de software livre como parte do seu plano pedagógico. Além disto já foram iniciados contatos com professores
de outros departamentos, visando mostrar as vantagens desta abordagem.
5 PROJETO PILOTO
Para testar os diversos fatores envolvidos na integração dos componentes da plataforma intermediária
(envolvendo a plataforma atual e a futura), foi desenvolvido um projeto piloto. Os objetivos do projeto piloto
são: desenvolver o knowhow da solução, capacitar o pessoal de suporte, testar as diversas possibilidades e
antecipar possíveis problemas no ambiente.
Neste projeto foi implementada a arquitetura apresentada na figura 1, contendo:
• 1 servidor Linux Red Hat 6.2, que é utilizado como servidor Tarantella e com o NDS e-directory;
• 1 servidor Windows NT 4.0 com o terminal server, que é utilizado como servidor de aplicações
Windows;
• 1 servidor Linux Red Hat 6.2, que é utilizado como servidor de aplicações Linux;
• 1 servidor Netware 5.1 com o NDS.
6 CONCLUSÕES E PERSPECTIVAS
O processo de migração de software proprietário para software livre em uma organização é uma tarefa
delicada, pois envolve uma mudança de cultura por parte de todos usuários. Fazer uma mudança radical pode
causar sérios transtornos e inviabilizar o processo. Por outro lado, a convivência entre os dois mundos é possível,
restando a resolver os aspectos de gerenciamento que se tornam bem mais complexos.
É exatamente na gerência da coabitação dos dois mundos que foi feito o maior esforço, resultando na
adoção de um serviço de diretório único (o NDS e-directory da Novell) e de uma ferramenta para publicação de
aplicações via servidor de aplicações (o Tarantella).
Devido ao fato de ambos os produtos serem relativamente novos, houveram alguns problemas na fase
de testes (como a falta de experiência do pessoal de suporte), que foram sendo gradativamente resolvidos
(também com a liberação de novas versões, mais robustas e completas).
Espera-se ao longo deste ano passar desta fase de laboratório para a efetiva implantação desta solução
na UCS.
REFERÊNCIAS BIBLIOGRÁFICAS
[1] http://www.gimp.org/ Página consultada pela última vez em 30 de abril de 2001.
[2] http://www.gnu.org/ Página consultada pela última vez em 30 de abril de 2001.
[3] http://www.kde.org/ Página consultada pela última vez em 30 de abril de 2001.
[4] http://www.ietf.org/rfc/rfc1777.txt Página consultada pela última vez em 30 de abril de 2001.
[5] http://www.novell.com/products/nds/ Página consultada pela última vez em 02 de abril de 2001.
[6] http://www.openoffice.org/ Página consultada pela última vez em 30 de abril de 2001.
[7] http://www.java.sun.com/ Página consultada pela última vez em 30 de abril de 2001.
[8] http://www.tarantella.com/ Página consultada pela última vez em 02 de abril de 2001.
[9] http://www.xfree86.org/ Página consultada pela última vez em 02 de abril de 2001.
60
Anais do II Workshop sobre Software Livre – WSL2001
PROTÓTIPO DE LABORATÓRIO DE ENSINO BASEADO
NO PC-POPULAR EM AMBIENTE CLIENTE-SERVIDOR
Gicele Martins Teixeira de Souza(1) ([email protected])
Jonilson Batista Campos(1) ([email protected])
Rômulo Batista Corrêa de Sá (1) ([email protected])
Ulisses Azevedo Leitão (2) ([email protected])
Faculdade de Ciência da Computação de Caratinga-MG(1)
Departamento de Física – UFMG(2)
Assessoria Acadêmica das Faculdades Integradas de Caratinga-MG
RESUMO
Esse artigo descreve a experiência da criação do protótipo de laboratório de ensino em ambiente ClienteServidor, usando um sistema de boot remoto, utilizando máquinas com supressão parcial de hardware, tipo PCs
Populares, na FIC – Faculdades Integradas de Caratinga-MG. O projeto tem por objetivo demonstrar a viabilidade da
utilização do PC-Popular num ambiente didático-pedagógico voltado à popularização do ensino de informática, bem
como analisar o desempenho da solução proposta. Serão discutidas estratégias visando uma otimização dos recursos
computacionais, a recuperação de dispositivos de baixo desempenho já existentes e a possibilidade de aquisição de
novas máquinas a custo reduzido, aspectos técnicos da instalação, as adaptações necessárias, a implementação da
rede, sua topologia e a relação de custo-benefício. A implantação de um laboratório de ensino proposto, baseado no
PC-Popular em ambiente Cliente-Servidor, pode contribuir de forma decisiva para a popularização do acesso à
informática no País, aproveitando toda a funcionalidade e performance de uma rede Linux.
ABSTRACT
In this paper we describe an installation study of a prototype educational laboratory for informatic teaching
in a server-client architecture, using microcomputers with suppressed hardware – named Popular PC’s. The project,
carried out in the FIC – Faculdades Integradas de Caratinga (MG), aim to demonstrate the viability of using the
Popular PC’s, with pedagogical purposes, in order to popularize the teaching of informatic in Brazil. The strategies
of computational resources optimization, the technical problems involving the recover of low-performance PC’s and
the acquisition of low price Popular PC’s, as well as the overall performance of the proposed solution will be
discussed. It will be presented the technical details for the installation, the needed adaptations, the intranet
implementation and its topology. The cost analysis will be performed. The proposed prototype educational laboratory
can certainly contribute to the popularization of the digital access in Brazil, taking full advantage of the functionality
and the powerful performance of the Linux operating system working in a server-client environment.
1 INTRODUÇÃO
O projeto de Universalização da Internet [1,2] abre várias portas para diversas outras soluções corporativas
voltadas a popularizar e facilitar o acesso de todos a essa ferramenta. O GNU-Linux tem um papel crucial dentro
desse tipo de projeto, pois não é possível falar de universalização e redução de custos deixando de fora um sistema de
Código Aberto que, além de reduzir custos, oferece maleabilidade, podendo adaptar-se às necessidades dos seus
usuários.
O recente processo de migração [3] para o ambiente Linux, realizado na FIC – Faculdades Integradas de
Caratinga (MG), trouxe essas duas características para os laboratórios: redução de custos e maleabilidade na adequação
aos projetos do curso de Ciência da Computação, além da abertura para pesquisas, desenvolvimentos, treinamento e
uma reciclagem geral em termo de softwares, hardwares e mão de obra.
Os laboratórios de ensino funcionam exclusivamente com Linux e possuem hardwares diferenciados, o que
cria um ambiente heterogêneo. A utilização de aplicativos de licença livre proporcionou estabilidade e robustez à rede
corporativa. As máquinas inferiores executam aplicativos e apresentam quase o mesmo desempenho de máquinas
superiores. A troca do sistema operacional não alterou o quadro em relação a diversidade de hardware, consegui-se
sim um melhor desempenho, juntamente com uma maior utilização do tempo de vida das máquinas. Entretanto,
apesar de todos os resultados positivos já obtidos, ainda persistem problemas devido à diversidade de hardwares
Anais do II Workshop sobre Software Livre – WSL2001
61
instalados. Algumas máquinas não suportam todos os softwares necessários para o curso de Ciência da Computação
e isso gera, novamente, o problema de inutilização de algumas delas.
As discussões apresentadas no I Workshop de Universalização de Acesso a Internet [2] e o projeto do
Computador Popular [4] desenvolvido pela UFMG, deixaram em aberto uma importante agenda: Criar um protótipo
de Laboratório de Ensino, baseado no Computador Popular, que atendesse às expectativas do Ministério da Educação
(MEC), em seu programa de aplicação de verbas do Fundo de Universalização dos Serviços de Telecomunicações (
FUST) [5] na universalização de acesso à Internet nas escolas públicas. As perguntas a serem respondidas pelo
laboratório protótipo estão relacionadas a duas questões básicas: 1) A sua viabilidade técnica e 2) a sua exeqüibilidade
dentro das condições sociais das pequenas cidades do interior do País. O presente projeto pretende ser uma contribuição
a esta agenda.
Observou-se então que poderíamos montar um laboratório utilizando o sistema de boot remoto (ServidorCliente), reaproveitando as máquinas inferiores e, melhor ainda, adquirindo novas máquinas com modificações de
hardwares que as tornassem mais baratas, padronizando assim os laboratórios.
As etapas de desenvolvimento e os resultados obtidos até agora são descritos a seguir.
2 PESQUISA E ADAPTAÇÃO
Após decidir pela utilização do processo de boot remoto (Servidor-Cliente) iniciou-se uma extensa pesquisa
na Internet [6,7,8], encontrando alguns sites que continham informações úteis, mas não atendiam diretamente o
contexto do projeto.
Então partiu-se para a parte de adaptação das informações colhidas para que se adequassem à realidade da
instituição. Um exemplo dessas modificações diz respeito à forma de instalação e autenticação de programas e
arquivos, para que os usuários mantivessem o padrão de utilização dos laboratórios já existentes.
Os aplicativos instalados no Servidor e acessados pelas máquinas clientes seguem listados na tabela abaixo:
Atividade
Sistema Operacional
Suíte de Escritório
Programação
Linguagem C
Linguagem Pascal
Prog. Orientada a Objeto
Banco de Dados
Inteligência Artificial
Aplicativos Utilizados no Curso de Ciência da Computação
Aplicativos
Cursos / Matérias
Linux
Sistemas Operacionais
StarOffice5.2
Todos os cursos
XWPE
Prática Computacional, Algoritmos
Gcc
Prática Computacional, Algoritmos
Gpc e ppc
Prática Computacional, Algoritmos
Jdk (Java)
Prática de Prog. Orientada a Objeto
Mysql e Sql
Banco de Dados
GProlog
Inteligência Artificial e Robótica
Com esses aplicativos conseguiu-se suprir as exigências acadêmicas da faculdade. Uma boa parte deles
não funcionava em todas as nossas máquinas e os resultados obtidos até agora, com a nova tecnologia, estão sendo
satisfatórios.
3 TOPOLOGIA E IMPLEMENTAÇÃO DO PROTÓTIPO SERVIDOR-CLIENTE
Inicialmente o protótipo de sub-rede é composto por máquinas heterogêneas, tornando possível assim a
verificação de performance em hardwares diversos. As máquinas que compõem o protótipo são, conforme a figura 1:
• Servidor: Pentium III – 128MB RAM e 20GB HD;
• 1 máquina-cliente Pentium III – 128 MB RAM;
• 2 máquinas-clientes Celeron 566 – 128MB RAM;
• 2 máquinas-clientes Pentium MMX 166 – 32MB RAM;
Com essas configurações iniciais foi possível obter um índice satisfatório da utilização e do tráfego de
dados no protótipo da sub-rede.
Essa topologia de sub-rede foi desenvolvida para o modelo de um laboratório de ensino, mas outras
topologias foram abordadas como soluções para um dos laboratórios que possuem hardwares defasados, para a
área administrativa e também como soluções comerciais capazes de atender às empresas da região, dentro do perfil
específico de cada uma.
Com a criação do protótipo concluída, deseja-se mostrar também que a topologia usada no projeto pode
ser reestruturada para encaixar dentro das exigências do MEC em seu programa de universalização da Internet nas
escolas públicas. A necessidade da FIC – Faculdades Integradas de Caratinga-MG – é diferente das escolas públicas,
para resolver isso, um estudo paralelo está sendo feito. Com isso a adequação poderá ser executada dentro das
necessidades exigidas por cada escola que desejar usar o protótipo como uma solução viável.
62
Anais do II Workshop sobre Software Livre – WSL2001
Figura 1: Protótipo da Sub-rede – Boot Remoto
4 TESTES INICIAIS
Os testes iniciais de tráfego e desempenho do protótipo mostraram bons resultados em relação aos programas
que estão sendo testados. As máquinas com hardwares inferiores tiveram um desempenho excelente: sem travamentos
num período considerável de tempo e conseguindo executar os mesmos aplicativos que as máquinas superiores. O
servidor apresentou uma performance constante. Quando acessado pelas 5 máquinas, conseguiu direcionar corretamente
os pacotes referentes à sua requisição, o que aconteceu sem um elevado congestionamento de dados na sub-rede.
5 CONCLUSÃO
O projeto está atingindo seu objetivo principal: suprir as necessidades de manutenção e aquisição de máquinas
para a rede de ensino da FIC. Sendo um projeto que apresenta grandes perspectivas de ampliação, pode ser usado e
aperfeiçoado para fazer parte de um grande número de soluções comerciais, públicas e educacionais, bem como servir
de modelo para escolas públicas dentro do plano de universalização da Internet pretendido pelo Governo Federal.
Com a diminuição de gastos usados na aquisição de hardwares e softwares, pretendemos abranger o maior
número de usuários que até então não tinham acesso a esses serviços. Dessa forma a idéia de se usar software livre
crescerá, atraindo novos usuários e usuários de sistemas antigos.
REFERÊNCIAS BIBLIOGRÁFICAS
[1] Vide a definição do Fundo de Universalização dos Serviços de Telecomunicação (FUST): http://
ww.anatel.gov.br.
[2] I Workshop de Universalização do Acesso à Rede de Internet: http://pampulha.luar.dcc.ufmg.br/wua/.
[3] U. A. Leitão et al., “Processo de implantação de um ambiente de Software Livre na Faculdade de Ciência
da Computação de Caratinga”, Anais do I Workshop de Software Livre, Porto Alegre, maio de 2000.
[4] Laboratório de Universalização de Acesso à rede de Internet, LUAR: http://ww.luar.dcc.ufmg.br.
[5] Lei 9998 de 2000, parágrafo 5, item VI: “VI – Implantação de acessos para utilização de serviços de redes
digitais, destinadas ao acesso público, inclusive Internet, em condições favorecidas, a estabelecimentos
de ensino e bibliotecas”.
[6] www.conectiva.com.br.
[7] www.linux.trix.net/mars_bootr.htm.
[8] www.linuxdoc.org/HOWTO/mini/Remote-Boot-3.html#ss3.1.
AGRADECIMENTOS
Agradecemos as importantes sugestões dos professores André Gustavo dos Santos – Coordenador do Curso de
Ciência da Computação – e Ciro Meneses dos Santos. Agradecemos à Equipe de Monitoria de Informática da FIC, pela
colaboração na instalação e testes: Luciana, Izabela, Hebert, Eduardo, Glauber, Pedro. Agradecemos à Prof ª. Rafaela
Lima pela leitura e correção do texto final. Esta pesquisa está sendo realizada com recursos próprios da FIC – Faculdades
Integradas de Caratinga.
Anais do II Workshop sobre Software Livre – WSL2001
63
UM MODELO DE GESTÃO EFICIENTE DE RECURSOS COMPUTACIONAIS
Marcos Castilho ([email protected])
Renato Carmo ([email protected])
Roberto Hexsel ([email protected])
Departamento de Informática da Universidade Federal do Paraná
Caixa Postal 19081, 81531-990, Curitiba, PR
RESUMO
Descreve-se o modelo adotado pelo Departamento de Informática da Universidade Federal do Paraná
para a administração adequada dos seus recursos computacionais em face da demanda das suas atividades de
graduação, pós-graduação, pesquisa e administração. A implementação da solução exposta, fortemente baseada
no uso de Software Livre e no reaproveitamento de componentes de hardware, é analisada. Os efeitos do
modelo adotado sobre a comunidade de usuários, especialmente o corpo discente, são comentados, bem como
as suas vantagens e desvantagens.
ABSTRACT
We describe the approach of the Informatics Department of the Federal University of Paraná used to
make its computational resources meet the needs of its undergraduate, graduate, research and managerial
activities. The directives and policies embedded in the management model are based on the use of Free Software
and on the recycling of hardware components. We discuss the impact of such a model on the user’s community,
specially with regards to undergraduate students.
1 INTRODUÇÃO
A instalação e manutenção de uma rede de computadores, conectada à Internet, para uso da comunidade
de professores, alunos e funcionários de um departamento universitário de Computação não é uma tarefa trivial.
Além da inerente complexidade técnica da tarefa, são também substanciais as dificuldades administrativas
com que se depara, muito especialmente quando se trata do caso das Instituições de Ensino Superior públicas
brasileiras. Nestes casos, à crônica falta de recursos conjuga-se uma legislação inadequada de contratação de
pessoal e aquisição de equipamentos que leva rapidamente à situações de inadministrabilidade.
A fim de afrontar estas situações a equipe de professores do Departamento de Informática (DInf) da
Universidade Federal do Paraná (UFPR) responsável pela administração do conjunto de equipamentos sob o
domínio inf.ufpr.br adotou, a partir de 1999, um modelo de gestão de recursos computacionais, fortemente
baseado no uso de Software Livre que vem se mostrando muito adequado. O objetivo deste artigo é expor
brevemente este modelo.
Em poucas palavras, o modelo detalhado na seção seguinte pode ser entendido como apoiado em duas
idéias centrais: homogeneidade dos recursos a administrar, e reaproveitamento de hardware.
O uso do Software Livre hoje disponível é o que torna um modelo assim efetivamente praticável, na
medida em que:
1. A crônica insuficiência de dotação orçamentária das Instituições Públicas de Ensino implica em que
a aquisição de equipamentos faça-se sempre “a conta gotas”, na medida das possibilidades de captação
de recursos financeiros. Assim, os equipamentos são comprados em épocas diferentes, de diferentes
fornecedores, em diferentes estágios de tecnologia.
2. O resultado a que tende tal conjuntura ao longo do tempo é que o patrimônio resultante se constitua
num verdadeiro “Zoológico do Hardware e do Software”, criando problemas técnicos de
compatibilidade, segurança, atualização, desempenho, etc., que acabam por consumir todas as energias
dos seus responsáveis técnicos.
Quando se considera que o software proprietário, pela sua própria natureza de produto sujeito às leis de
mercado, tende a reproduzir os fenômenos acima descritos, entende-se até que ponto o Software Livre faz o
papel de solução efetivamente libertadora, reduzindo custos de hardware e praticamente eliminando os custos
de software, uma vez que:
1. A possibilidade de acesso ao código fonte permite redução significativa nos custos de manutenção.
64
Anais do II Workshop sobre Software Livre – WSL2001
Muito embora seja verdade que pela qualidade do Software Livre disponível, raras sejam as ocasiões
em que se faz realmente necessária a alteração do código fonte, o fato é que isso permite a opção
administrativa por esta ou aquela solução, ao dar a quem tem a responsabilidade de administrar a
segurança de não correr o risco de tornar-se refém desta ou daquela tecnologia proprietária.
2. Como o Software Livre costuma ser projetado para atender uma ampla variedade de dispositivos de
hardware, muitos deles já obsoletos (e portanto comercialmente desinteressantes), permite uma alta
taxa de reaproveitamento desses dispositivos, diminuindo sensivelmente os gastos com hardware.
3. Pelo mesmo motivo, o Software Livre permite a efetiva homogeneidade dos recursos computacionais,
ainda que instalados em plataformas de hardware muito distintas, amenizando consideravelmente a
pressão administrativa criada pela inevitável variedade de plataformas que, como exposto acima,
tende a criar-se nestes ambientes.
4. Ainda pelo mesmo motivo, o Software Livre dá grande liberdade ao administrador para definir a
funcionalidade dos equipamentos de que dispõe, liberdade limitada apenas pela capacidade do
hardware, ao contrário do que acontece com o software proprietário.
Com base nessas observações e na experiência de 2 anos de operação do inf.ufpr.br nestes moldes,
defendemos que o uso intensivo de Software Livre oferece uma alternativa muito vantajosa para instituições
de limitados recursos financeiros tal como as Instituições Públicas de Ensino, e oferecemos nosso modelo
como uma possível alternativa de gerenciamento de recursos computacionais.
2 O MODELO
O modelo concebido para fazer frente aos problemas atinentes à administração de um parque
computacional heterogêneo e desatualizado, que resulta da situação descrita na seção anterior, consiste de
algumas diretrizes que orientam a administração dos recursos computacionais. Estas diretrizes estão expressas
nas políticas de gestão dos recursos.
Para maior clareza passamos a designar o conjunto de recursos computacionais conectados em rede
simplesmente por “a Rede”. Para atingir a funcionalidade e confiabilidade necessárias aos laboratórios que
servem a um curso de Bacharelado em Informática, a um custo compatível com as disponibilidades, as seguintes
diretrizes são consistentemente seguidas.
1. Utiliza-se o sistema operacional GNU/Linux, na distribuição Debian. Mantém-se um espelho (mirror)
da distribuição Debian GNU/Linux sempre atualizado em um dos servidores de arquivos, com versões
do sistema operacional para cada uma das arquiteturas presentes na Rede. Máquinas de arquiteturas
em que não é possível, ou não se deseje, instalar este sistema são alocadas para o Laboratório de
Sistemas Operacionais;
2. Ao investir na aquisição de equipamentos, dá-se preferência a melhorar o desempenho da conexão
em rede. Muitas vezes isso significa a aquisição de interfaces de rede ou switches de melhor
desempenho, noutras significará a aquisição de processador ou memória para máquinas cujos serviços
estão sendo atendidos no limite da capacidade;
3. A autoridade é centralizada num único grupo de administradores que toma suas decisões tendo em
vista o desempenho global da Rede, consideradas quando é o caso, as necessidades de grupos ou
usuários particulares. Somente os membros deste grupo detém as senhas de administrador das
máquinas; e
4. A disponibilidade de pacotes de software particulares é condicionada à capacidade da Rede estar
apta a executá-lo de maneira satisfatória.
5. Política de atualização em cascata: ao ser necessária a atualização ou substituição de algum item
de hardware em alguma máquina, dá-se preferência a substituir o correspondente item na máquina
melhor configurada, e daí, utilizar o item substituído em outra máquina, de configuração menos boa
e assim sucessivamente até atingir a máquina que originalmente necessitava da atualização.
Tomando-se por base as diretrizes enumeradas acima, e a política de atualização em cascata, o modelo
proposto pode ser considerado sob quatro diferentes pontos de vista: serviços de computação, funcional, hardware,
e conexão.
Do ponto de vista dos serviços de computação, a Rede compõe-se de duas classes de máquinas, que
designaremos servidores e terminais: terminais designam aquelas máquinas cujos consoles podem ser ocupados
pelos usuários da Rede enquanto que o acesso aos servidores se faz sempre de modo remoto e/ou indireto.
Dentre os servidores, distinguimos ainda 3 classes que chamaremos de servidores de processamento, servidores
de arquivos e servidores de (serviços) de rede.
Anais do II Workshop sobre Software Livre – WSL2001
65
Como os próprios nomes indicam, servidores de processamento são as máquinas que efetivamente
executam as tarefas dos usuários, servidores de arquivos são as máquinas responsáveis por armazenamento e
“distribuição” da parte do sistema de arquivos comum a toda a Rede, e servidores de rede são as máquinas onde
estão ativos os programas que implementam o lado servidor dos protocolos que atendem a toda a Rede, como
SMTP, NFS, NIS, DNS.
Do ponto de vista funcional, a Rede apresenta-se ao usuário como uma única entidade de serviços
computacionais1 . O usuário obtém acesso aos recursos da Rede em qualquer dos terminais, e é colocado no
mesmo ambiente2 . A Rede oferece um único domínio NIS e um sistema de arquivos comum para todos os
terminais, que inclui os diretórios de trabalho (home) de cada usuário, e diversos diretórios de interesse geral.
Do ponto de vista do hardware, os servidores de processamento são as máquinas com os melhores
processadores e o máximo de memória disponível na Rede e são conectados à rede física através das interfaces
Ethernet de maior qualidade e capacidade disponíveis. Os servidores de arquivos têm quantidade de memória e
qualidade de interfaces de conexão comparáveis à dos servidores de processamento; usam os melhores
processadores não utilizados por estes últimos, e ao contrário deles, detém os melhores discos disponíveis. Os
servidores de rede têm as melhores interfaces para conexão disponíveis, atendidas as classes acima; processador
e quantidade de memória e disco são proporcionados aos serviços que atendem.
Finalmente, os terminais recebem processadores e quantidade de memória conforme o disponível. Via
de regra estas máquinas têm a mínima quantidade de disco necessária para serem operacionais. Algumas destas
máquinas não têm disco e efetuam bootstrapping remoto, e todo o seu sistema de arquivos reduz-se ao sistema
de arquivos comum da Rede.
Dentre os terminais, aqueles cujo hardware (processador, memória, interface de vídeo e monitor,
principalmente) é capaz disso, são configurados para atuar como emuladores de terminais-X; os demais atuam
como terminais tty. Estações de trabalho obsoletas operam também como emuladores de terminais-X.
De uma maneira geral, os servidores de processamento contém os processadores mais poderosos na
rede; os servidores de arquivos contém os processadores que foram os servidores de processamento da “geração
passada”; entre os terminais figuram praticamente todas as versões dos processadores da família Ix86, melhores
ou iguais ao 80386, bem como estações de trabalho de outras arquiteturas com baixa capacidade de processamento
e memória.
A utilização do Debian GNU/Linux dá uma grande sobrevida a equipamentos completamente
inutilizáveis pelos padrões de mercado, ao permitir que os velhos 386s e 486s continuem em uso como terminais.
A homogeneidade da plataforma de hardware, de padrão aberto, adotada e a facilidade de recombinação de
componentes de hardware do padrão IBM-PC segundo a política de atualização em cascata aumenta ainda mais
essa sobrevida, na medida em que reduz os gastos com hardware ao estritamente necessário em cada caso.
Além disso, essa política seguida consistentemente faz com que a médio prazo cada máquina da Rede
tenha uma certa margem de segurança quanto ao seu desempenho, pois ao aplicar-se a política de atualização
em cascata em regime permanente, as substituições de hardware sempre são feitas de forma a garantir mais que
o mínimo necessário para as necessidades do momento.
Do ponto de vista da conectividade, tantas máquinas quanto possível possuem interfaces Ethernet de
100Mbps, conectadas a uma malha de switches. Considerando-se que o processamento e o armazenamento de
dados são quase totalmente centralizados, os servidores que provêem estes serviços devem estar conectados à
rede física por caminhos de alta capacidade. Estritamente falando, o modelo aqui descrito só é viável se
praticamente toda a rede física for de alta capacidade, dado que pouco do processamento global é efetuado nos
terminais. É portanto imperativo que a rede física seja composta por uma malha de comutadores (switches), ao
invés de uma árvore de hubs ou barramento. Por isso, o dispêndio em equipamentos deve sempre privilegiar a
melhoria na conectividade da rede.
Outro fator fundamental para a viabilidade do modelo, talvez o mais importante e ironicamente o menos
técnico, é a concentração dos recursos tecnológicos e humanos no “centro” da Rede. Uma vez transformada
num terminal, uma máquina passa a demandar um mínimo de esforço administrativo e pode ser mantida em
operação sem necessitar de atualizações substanciais de hardware ou de software. Assim, o esforço administrativo,
bem como o dispêndio em hardware, podem ser concentrados nos servidores.
1
Em consonância com o dístico da Sun: “The network is the computer”.
Entende-se por ambiente o diretório de trabalho, permissões de acesso, um conjunto comum de aplicativos à
disposição, configurados para funcionar de maneira consistente e de acordo com suas preferências.
2
66
Anais do II Workshop sobre Software Livre – WSL2001
A centralização administrativa da Rede num grupo pequeno e harmônico de administradores permite
que os investimentos sejam feitos de maneira racionalizada promovendo a melhoria gradual e global da Rede.
A médio prazo, uma vez que o esquema passa a funcionar em regime, todas as demandas de natureza particular
são atendidas com folga e o desempenho global melhora sensivelmente apesar de o investimento em hardware
ser mínimo.
3 CONCLUSÃO
Além dos aspectos técnicos e administrativos discutidos acima, o modelo aqui exposto possui uma
base pedagógica que sempre esteve presente como “pano-de-fundo” desde a concepção do modelo. Ao
implementar toda uma solução baseada em Software Livre, estimula-se uma série de aspectos positivos na
formação de nossos alunos.
Em disciplinas como Bancos de Dados, Sistemas Operacionais, Construção de Compiladores, Algoritmos
e Estruturas de Dados, por exemplo, a possibilidade de se aplicar a teoria, melhorando algoritmos e verificando
execuções só é possível quando se tem acesso a “como” o sistema foi desenvolvido e não simplesmente a “o
que” ele faz.
O Software Livre implica, por definição, na abertura da possibilidade de se deter todo o conhecimento
embutido em uma aplicação. A tecnologia de sistemas de informação deixa de ser uma “caixa preta” criada por
uma “sociedade superior”, passando a estar ao alcance de todos. Assim, procura-se formar verdadeiros
profissionais capazes de ter uma visão completa de sistema, que vai da concepção ao uso de sistemas de
informação, ao invés de simplesmente prepararmos “usuários com um melhor conhecimento de informática”.