GERENCIADOR DE EMAIL EXPRESSO LIVRE: ESTUDO DE CASO CEPROMAT-MT Elvio Rufino da Silva CEPROMAT - Centro de Processamento de Dados do Estado de Mato Grosso Palácio Paiaguás - Centro Político e Administrativo - Bloco SEPLAN Caixa Postal 10004 CPA Cuiabá, MT 78050-970 Brasil Resumo O artigo sintetiza o uso do gerenciador de e-mail Expresso Livre, demonstrando a infra-estrutura necessária para o funcionamento da aplicação, a padronização dos módulos utilizados na customização do software e apresenta um estudo de caso no Centro de Processamento de Dados no Estado de Mato Grosso. O artigo tem por objetivo difundir a utilização dos softwares livres na rede pública, e sintetizar o uso do gerenciador de e-mail Expresso Livre. Palavras-chave Software livre, Expresso Livre, CEPROMAT. Abstract The article summarizes the use of manager email Express Free, demonstrating the necessary infrastructure to run the application, standardization of the modules used in customizing the software and presents a case study at the Center for Data Processing in the State of Mato Grosso. The article aims to encourage use of free software in public, and summarize the use of manager email Express Free. Keywords open source software, Express Free, CEPROMAT. I. INTRODUÇÃO Quando se houve a expressão fazer download gratuito ou de graça, sem remunerar outrem, isso dá em muitos usuários a sensação de desconfiança de que o produto tem vírus ou não vai funcionar. Tratando-se de software livre, o pensamento sobre estes produtos é normalmente que a instalação é muito complicada e o produto sempre precisa de correções. Esta visão vem sendo modificada ao passar do tempo, com a produção de softwares de qualidade e de grande utilidade nas organizações. Estas soluções ficam disponíveis na internet e normalmente são gerenciadas por grupo de empresas que criam comunidades para corrigir, atualizar e manter estes produtos. Estes softwares são normalmente caracterizados por utilizar uma licença GNU (General Public License), ou simplesmente GPL (Licença Pública Geral), que SILVEIRA cita como, A GPL é uma licença que utiliza os princípios do direito autoral para proteger o software livre e assegurar que ninguém possa torná-lo proprietário. Uma licença de software é um contrato que define as condições de uso daquele programa... A licença GPL assegura as quatro liberdades para o software livre, ou seja, o uso para qualquer fim, o estudo de seus códigos, a sua melhoria e a sua redistribuição. [9]. Isso significa que nos softwares que são regidos por este tipo de licença, o autor cede ao licenciado os direitos de usar, copiar, alterar e redistribuir a sua obra, contudo, a referida licença contém disposição de reciprocidade, isto é, toda obra derivada da original também deve ser distribuída pelos termos desta licença. Este mecanismo foi concebido com o intuito de garantir que as obras derivadas sejam também distribuídas como software livre. [4] Neste sentido pode-se dizer que software livre não quer dizer de graça, sem valor ou de baixa qualidade, existem termos de aceite que geram qualidade na sua produção, e o mais importante, o ambiente colaborativo, conforme cita Oliva, software Livre, isto é, software que respeita as liberdades dos usuários de executar o software para qualquer propósito, de estudar o código fonte do software e adaptá-lo para que faça o que o usuário deseja fazer e distribuir cópias do software, e de melhorar e distribuir as melhorias. Permite que pessoas usem computadores sem abrir mão de serem livres e independentes, sem aceitar condições que os impeçam de obter ou criar o conhecimento desejado. [3] O gerenciador de e-mail Expresso Livre segue estas características, utiliza-se de uma licença GPL e tem uma comunidade que atua na ampliação e manutenção das suas versões disponíveis. Neste artigo será descrito o histórico do gerenciador de e- mail Expresso livre, a arquitetura de implantação, a estrutura de desenvolvimento do software e a apresentação de um estudo de caso para demonstrar a sua aplicabilidade e robustez na sua utilização. Para isto, este artigo estará dividido nos seguintes tópicos: (I) Introdução; (II) Abordagem sobre o Gerenciador de e-mail Expresso Livre: relata um breve histórico do software; (III) Estrutura física para instalação do gerenciador de e-mail Expresso Livre: serão apresentados os componentes físicos e lógicos para o funcionamento da aplicação; (IV) Estrutura de desenvolvimento do gerenciador de e-mail Expresso Livre: aborda a metodologia utilizada para desenvolver a aplicação; (V) Estudo de caso CEPROMAT/MT: Módulo Expresso Reports 1.0: apresenta a empregabilidade do software e demonstra como é possível a expansão deste; (VI) Conclusão. Pg. 1
II. ABORDAGEM SOBRE O GERENCIADOR DE E-MAIL EXPRESSO LIVRE A CELEPAR (Companhia de Informática do Paraná), sociedade de economia mista criada desde 1964, que busca prover para o Estado do Paraná, soluções tecnológicas junto à administração pública estadual, idealizou a criação do Projeto Expresso Livre que foi iniciado em abril de 2004 e trata-se de uma customização feita em cima da ferramenta alemã EGroupWare que reúne diversos serviços essenciais em um ambiente corporativo, tais como: EMail, Catálogo de Endereços, Agenda de Compromissos, Mensagens Instantâneas e Workflow. [1] A Figura 1 apresenta a tela inicial do gerenciador de e-mail Expresso livre. Figura 1 Tela de Login [5] Com mais de 4 anos de implantação na CELEPAR, o projeto é considerado um caso de sucesso, pois conta atualmente com um número superior a 117 mil usuários (Setembro/2009) fazendo parte de sua rede corporativa. Conta com uma equipe de 10 pessoas (Des/Infr/Sup) que administra 11 servidores sendo 6 ambientes Expressos com catálogo único, tem uma média diária de 300 mil e-mails recebidos e entregues e tem o maior ambiente ativo do Expresso já alcançado com 4.000 usuários simultâneos em média. [2] Figura 2 Evolução do nº de usuários usando o Expresso na Rede do Governo do Paraná desde 2004. [6] O Expresso Livre é gerido por um Comitê Gestor, formado pelas empresas: CELEPAR - Empresa de TI do Governo do Paraná e Mantenedora do Projeto DATAPREV - Empresa de TI da Previdência Social SERPRO - Empresa de TI do Governo Federal PRODEB - Empresa de TI do Governo da Bahia PROGNUS - Empresa de Consultoria A partir de 2006 foi criada a comunidade para manter o Expresso Livre, cujo site oficial é: http://www.expressolivre.org. Neste site pode-se encontrar informações detalhadas sobre o Projeto, o fórum com uma lista de discussões sobre o Expresso livre, o ambiente colaborativo (WiKi/Trac/SVN) e a versão de demonstração do Gerenciador. Dentre as empresas públicas e privadas conhecidas que usam o Expresso livre, citamos: [2] AGETIS Sergipe; PRODEPA Pará; PRODEPI Piauí; PRODEB Bahia; PRODAM Amazonas; CODIN Rio Grande do Norte; Agência de TI de Pernambuco; Itaipu Binacional; DATAPREV Empresa de TI da Previdência; SERPRO Empresa de TI do Governo Federal; Ministério da Integração; Ministério da Fazenda; Governo de São Tomé e Príncipe; ICMBIO (Instituto Chico Mendes); PGFN (Procuradoria Geral da Fazenda Nacional); Rede Metodista de Educação Rio Grande do Sul; Unicentro Paraná; III. ESTRUTURA FÍSICA PARA INSTALAÇÃO DO GERENCIADOR DE E-MAIL EXPRESSO LIVRE Para instalação e bom funcionamento do gerenciador de e- mail Expresso Livre, são utilizados em sua infra-estrutura vários softwares livres que formam uma rede responsável pela autenticação, segurança e armazenamento das informações. Os softwares necessários para uma infraestrutura básica, ou seja, o mínimo para funcionar corretamente, seriam os seguintes: Apache: Servidor web, responsável pelo fornecimento das páginas aos usuários. PHP: Linguagem de programação com suporte a orientação a objeto, utilizada para elaborar as páginas web do gerenciador. PostgreSQL: SGBD (Sistema Gestor de Base de Dados), responsável pelo armazenamento das informações necessárias à execução da aplicação, como flags, variáveis dos serviços de correio, traduções do idioma e outras informações. OpenLdap: Protocolo de Leve Acesso a Diretórios (LDAP), responsável por montar a árvore de organizações e usuários, elabora um cadastro básico contendo, por exemplo, nome, sobrenome e senha dos usuários, e de servir como base para outros softwares como o Samba e o Squid, que são utilizados para fazer autenticação dos usuários. Pg. 2
Postfix: Serviço de correio do tipo MTA (Mail Transport Agent), responsável pelo envio das mensagens e trabalha em conjunto com o LDAP, armazenando os dados como e-mail e nome da caixa postal do usuário para realizar a entrega de mensagens aos usuários locais. Cyrus IMAP: Sistema de alta escalabilidade para correio eletrônico, responsável por mapear as caixas dos usuários, gerenciar as mensagens e oferece uma linguagem de filtros ( sieve ) que gerencia cotas por usuário. SASL: Camada de Simples Autenticação e Segurança, responsável pelo método de autenticação das contas dos usuários e do protocolo de segurança de acesso às caixas de mensagens, é integrado com o servidor Cyrus IMAP e o OpenLDAP. Jabber: Protocolo aberto, extensível, baseado em XML, responsável pelo gerenciamento das mensagens instantâneas. A Figura 3 demonstra o esquema de utilização dos softwares necessários para o funcionamento de gerenciador de e-mail Expresso Livre. VI. ESTRUTURA DE DESENVOLVIMENTO DO GERENCIADOR DE E-MAIL EXPRESSO LIVRE O expresso livre, por ser uma customização do EGroupWare, segue uma arquitetura de desenvolvimento de acordo com os padrões de implementação do Core Team do EGroupWare. As especificações do Core Team determinam desde os padrões de codificação da linguagem, até os padrões para a estrutura de diretórios e nomes dos arquivos. Esta arquitetura proposta pelo EGroupWare, divide os diretórios conforme apresentado na Tabela 1. Tabela 1 Estrutura dos diretórios. [8] --appname +--inc --functions.inc.php --header.inc.php --hook_preferences.inc.php --hook_admin.inc.php +--footer.inc.php +--js --base +--js_package_name +--setup --default_records.inc.php --setup.inc.php +--tables_current.inc.php +--templates +--default Figura 3 - Autenticação única para outros serviços. [7] A configuração mínima em relação ao hardware utilizado é uma questão relativa, pois o dimensionamento deverá ser feito baseado em diversos fatores, tais como: nº de usuários cadastrados, média de usuários simultâneos, cota de espaço por usuário, número de mensagens por minuto etc. Exemplificando uma situação tem-se o seguinte cenário, considerando a seguinte média: 1.000 usuários cadastrados; 50 usuários simultâneos; 20 Mb de cota por usuário; 500 mensagens recebidas e entregues. Para esse volume de dados é exigida no mínimo a configuração a seguir: 2 processadores PIII 1.3 Ghz; 2 Gb de memória RAM; 40 Gb de espaço em disco. [1] Legenda: --appname: Diretório da aplicação; +--inc: Diretório que contém as classes e os includes; +--js: Diretório que contém os scripts Javascript(*.js); +--setup: Diretório que contém arquivos e scripts de instalação; +--templates: Diretório que contém o template padrão de interface; Alocados nestes diretórios, existem arquivos que deverão seguir as especificações do Core Team do EGroupWare. Estas especificações referem-se aos padrões de nomes de arquivos que deverão ser utilizados pelo esquema de templates da própria API (Application Program Interface) do PHP. Os nomes dos arquivos estão relacionados com o funcionamento correto da API, pois o padrão de nomes garante que os arquivos sejam invocados corretamente pela API como, por exemplo, na chamada inicial de uma aplicação demonstrada abaixo: /egroupware/index/php?menuaction=email.uiindex.index (email=aplicação;uiindex=classe;index=método). [8] Neste exemplo, para que seja inicializada esta aplicação, Pg. 3
deve-se passar um parâmetro para a 'index.php', localizada na raiz da aplicação do EGroupWare, e a API se encarrega de chamar a sua aplicação através do método executável que deverá estar localizada em uma das classes 'UI'. Para entender esta metodologia de funcionamento das classes, o desenvolvedor deverá compreender a programação em camadas, pois o Framework da aplicação é baseado em uma arquitetura dividida em três camadas: - Interface do usuário (UI): É responsável por gerar o código para o cliente, isto inclui HTML, XML, imagens PNG ou quaisquer outros dados que vão diretamente para o browser. Os métodos desta interface são os únicos que poderão ser invocados pelo browser. Exemplo: class.uinome.inc.php - Componentes das regras de negócio (BO): É responsável por encapsular todas as regras de negócio e intermediar entre a interface do usuário e a interface de manipulação do banco. Exemplo: class.bonome.inc.php - Rotinas de manipulação de dados (SO): É responsável pela comunicação com o back-end do sistema, isto inclui banco de dados, LDAP ou IMAP, também é responsável pela limpeza de objetos e espaços em branco vindos em campos do resultset do banco de dados. Exemplo: class.sonome.inc.php. A Figura 4 representa o fluxo de funcionamento do Framework das aplicações desenvolvidas no Expresso Livre. Tecnologia da Informação (T.I.) para o Estado de Mato Grosso. Participa do Programa Nacional de Gestão do Governo Federal, e está classificada no nível de Gestão 3, dentro do modelo de excelência da gestão pública. A. Arquitetura de rede O CEPROMAT iniciou a utilização do gerenciador de e- mail Expresso Livre em março de 2009, sendo assim uma experiência recente do uso do gerenciador. Neste período o gerenciador atendeu às expectativas do CEPROMAT, que conta com uma equipe de 4 pessoas que administram 2 servidores, sendo um único núcleo de catálogo que tem 10.256 usuários cadastrados, tem uma média diária de 900 usuários simultâneos e registra uma marca de e-mails recebidos e entregues acima de 31 mil e-mails diários (fevereiro/2010). Em referência à arquitetura do Expresso Livre adotada pelo CEPROMAT, a mais apropriada foi a arquitetura simples, considerando o número de usuários em relação ao hardware disponível para gerenciar o catálogo único conforme demonstra a Figura 5. O hardware adquirido para instalação do servidor é suficiente para atender a demanda das 42 organizações que utilizam o serviço ofertado pela empresa. O servidor que administra o Gerenciador Expresso Livre contém as seguintes configurações: - dual Intel(R) Xeon(R) @ 2.33GHz Quadricore - 16 GB memória RAM - 1,7 TeraByte de disco Figura 5 Arquitetura simples: 1 único servidor Figura 4 Framework da Aplicação. [8] V. ESTUDO DE CASO CEPROMAT/MT: MÓDULO EXPRESSO REPORTS 1.0 O Centro de Processamento de Dados do Estado de Mato Grosso (CEPROMAT) é uma empresa dotada de personalidade jurídica de Direito Privado, com patrimônio próprio e autonomia administrativa e financeira. Criado em junho de 1973, o CEPROMAT está vinculada à Secretaria de Estado de Planejamento e Coordenação Geral (SEPLAN/MT), que desenvolve produtos e serviços de B. Customização do Software Em fevereiro de 2010, a equipe de trabalho do CEPROMAT idealizou customizar o gerenciador de acordo com as necessidades das organizações que são gerenciadas pelo órgão. Havia uma necessidade de visualizar os dados dos usuários cadastrados por organização, bem como as suas respectivas cotas gerenciadas pelo servidor. Para suprir esta necessidade, foi elaborado e desenvolvido o Módulo Expresso Reports 1.0, que gera os relatórios para auxiliar as gerências das organizações nas tomadas de decisões. Pg. 4
O módulo Expresso Reports 1.0 ainda não foi submetido ao grupo do Expresso Livre para avaliação com intenção de agregar este módulo ao sistema. O módulo será submetido após estar completo com todos os seus relatórios, de acordo com o planejamento elaborado pela equipe de trabalho do CEPROMAT. Encontram-se finalizados e prontos para utilização 2 (dois) relatórios: 5) Após os dados serem apresentados, o usuário poderá gerar o PDF dos resultados; se esta opção for selecionada o sistema chama uma classe UI de PDF para gerar o arquivo para o usuário. Na Figura 5 e Figura 6 apresentam os relatórios que podem ser gerados pelo módulo Expresso Reports. - Relatório de usuário por Organização - Relatório de cotas de usuário por Organização Os módulos já desenvolvidos foram elaborados de acordo com as especificações do Core Team do EGroupWare, seguindo a padronização do Framework sugerido. Seguindo as regras do Framework, a interface do usuário (UI) é formada pelas classes: - class.uireports.inc.php - class.uireports_users.inc.php - class.uireports_cota.inc.php - class.uireports_fpdf.inc.php Estas classes são responsáveis por gerar os códigos HTML aos clientes, que são apresentados através dos arquivos de templates: - report_users_group.tpl - report_users_group_print.tpl - report_cota_group.tpl - report_cota_group_print.tpl Nestes arquivos estão contidos os códigos HTML das páginas que apresentam os dados já formatados aos clientes. Para fazer as funções das classes de componentes das regras de negócios (BO) e rotinas de manipulações de dados (SO), foram utilizados os includes: - class.pdf.inc.php - class.functions.inc.php - class.db_functions.inc.php - class.imap_functions.inc.php - class.ldap_functions.inc.php O funcionamento do módulo segue as seguintes regras quando um usuário pede um relatório: 1) O cliente requisita à classe UI uma informação através de parâmetros. Estes parâmetros são repassados para a classe de regra de negócio (BO). 2) A classe de regra de negócio (BO), se necessário utiliza a classe de banco de dados (SO), para montar uma estrutura de informação que será retornada às classes BO. 3) A classe BO, após ter as informações requeridas pelo usuário, devolve estas informações à classe UI, que manipula os resultados obtidos para gerar o HTML. 4) A classe UI instancia o template que irá mostrar as informações formatadas como foi requisitado pelo usuário. Figura 5 Relatório de usuário por Organização Figura 5 Relatório de cotas por Organização VI. CONCLUSÃO A tomada de decisão por um software proprietário ou por um software livre deverá ser de acordo com vários fatores que deverão suprir as necessidades encontradas nas organizações. Não há uma lei ou regra que determine as normas de como escolher o produto que deverá estar funcionando dentro das empresas, esta opção é de livre escolha. O mito de que software livre ou software de download gratuito é ruim ou não funciona, deverá ser modificado, principalmente nos softwares livres disponibilizados para fins de uso nas organizações públicas. Pois se percebe uma disposição do governo federal para o avanço de se produzir softwares não proprietários com mais qualidade. O comprometimento da sociedade da tecnologia da informação a melhorar e ampliar os produtos disponíveis, com intenção de produzir softwares de alta qualidade, robustez e segurança, vem difundindo a idéia do uso dos softwares livres nas organizações. Não só por isto, mas também o mais importante a ser mencionado, é que este movimento pelo conhecimento comunitário gera um ganho ao ser humano que amplia os seus conhecimentos e retorna este conhecimento à comunidade, fazendo assim um bem maior em prol da sociedade. A partir deste paradigma, conclui-se que trabalhar com o Gerenciador de e-mail Expresso Livre, permitiu ao Centro de Processamento de Dados do Estado de Mato Grosso (CEPROMAT), avançar na melhoria do serviço de e-mail ofertado para as organizações públicas, customizando a aplicação para adequar-se aos padrões estipulados pelo órgão e ampliando o conhecimento das equipes envolvidas no Projeto. Pg. 5
REFERÊNCIAS BIBLIOGRÁFICAS [1] ALFREDO, João Knopik Júnior; EMÍLIO, Nilton Bührer Neto; LUIZ, Maurício Viani. É LIVRE, RÁPIDO E SEGURO. Revista Linux Magazine, edição 32, julho 2007. [2] EMILIO, Nilton Buhrer Neto. Trabalho apresentado na Latinoware 2008. Foz do Iguaçu. Conferencia Latino America de Software Livre, 2008. http://www.expressolivre.org/html/expressolivre/downloads/documents/expr esso-latinoware2008.pdf [3] OLIVA, Alexandre. Software Privativo é Falta de Educação. Revista Espírito Livre, edição 007, Outubro 2009. [4] SILVA, Josafá Rodrigues Carvalho. Aplicabilidade do contrato de licença GPL em face do ordenamento jurídico brasileiro. Jus Navigandi, Teresina, ano 8, n. 174, 27 dez. 2003. <http://jus2.uol.com.br/doutrina/texto.asp?id=4632>. [5] Site Oficial do Expresso Livre http://www.expressolivre.org/html/expressolivre/index.php?page=videos [6] Ibidem. http://www.expressolivre.org/html/expressolivre/index.php?page=comun idade [7] Ibidem. http://www.expressolivre.org/html/expressolivre/index.php?page=arquit etura Acesso em: 05 mar. 2010. [8] Ibidem. http://www.expressolivre.org/html/expressolivre/downloads/documents/ Expresso-criandonovomodulo.odt Acesso em: 05 mar. 2010. [9] SILVEIRA, Sérgio Amadeu da. Software livre: a luta pela liberdade do conhecimento / Sérgio Amadeu da Silveira. Editora Fundação Perseu Abramo, São Paulo, 2004 (Coleção Brasil Urgente). Pg. 6