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”.