CONSTRUÇÃO DE SISTEMAS WEB UTILIZANDO FERRAMENTAS LIVRES ANUÁRIO DA PRODUÇÃO DE INICIAÇÃO CIENTÍFICA DISCENTE Vol. XII, Nº. 14, Ano 2009 Verônica Pedrozo de Medeiros RESUMO Professora Orientadora: Ms. Leticia Teixeira Cottini Soares Professor Colaborador: Fernando Salles Claro Curso: Ciência da Computação FACULDADE ANHANGUERA DE TAUBATÉ Atualmente, o processo de desenvolvimento de sistemas esta cada vez mais completo e exigente, devido às novas tecnologias e às constantes mudanças na área de TI (Tecnologia da Informação). A necessidade da implementação de novos recursos e tecnologia, associada ao fato de que o software desenvolvido deve ser reusável, de qualidade e com custo acessível, torna o processo de desenvolvimento mais complexo. Visando a atender essas necessidades, as ferramentas livres são bons exemplos de como encontrar soluções para problemas até então não compartilhados e buscar, de forma barata e inteligente, melhores rumos para o desenvolvimento de sistemas. Este trabalho descreve as principais ferramentas para o desenvolvimento de sistemas web, desde a fase de concepção até a de implantação. Há uma síntese de cada fase do desenvolvimento de um sistema e as características das ferramentas livres indicadas para cada uma destas fases. Assim, utilizando ferramentas livres será possível corrigir erros e esclarecer as dúvidas em comunidade, facilitando o trabalho dos envolvidos no desenvolvimento e barateando o custo do sistema, pois não necessita de softwares privados e licenças exorbitantes. Palavras-Chave: open source; ferramenta livre; desenvolvimento de software. Anhanguera Educacional S.A. Correspondência/Contato Alameda Maria Tereza, 2000 Valinhos, SP - CEP 13278-181 [email protected] [email protected] Coordenação Instituto de Pesquisas Aplicadas e Desenvolvimento Educacional - IPADE Publicação: 10 de maio de 2010 ANUIC_N14_miolo.pdf 385 Trabalho realizado com o incentivo e fomento da Anhanguera Educacional S.A. 385 7/6/2010 18:17:06 386 Construção de sistemas web utilizando ferramentas livres 1. INTRODUÇÃO Visando a garantir a qualidade, a flexibilidade e a reutilização de código dos programas desenvolvidos e com o objetivo de alcançar a satisfação do cliente, é necessário apresentar soluções inteligentes e inovadoras para um mercado cada vez mais exigente. Muitas dessas soluções são proprietárias, têm o desenvolvimento fechado, o usuário não tem controle sobre as funcionalidades, as correções e os melhoramentos, elas não estão ao alcance de muitos desenvolvedores, pequenas empresas e usuários domésticos interessados porque são caras demais, têm prazo de validade e, muitas vezes deixam a desejar. Com o passar dos anos, o desenvolvimento de sistemas web foi melhorando, problemas com a complexidade do desenvolvimento do projeto foram surgindo, muitos modelos de especificação, modelagem e desenvolvimento foram criados para auxiliar e hoje, uma boa opção para o desenvolvimento de sistemas web, desde sua concepção até sua implantação são as ferramentas livres. Segundo pesquisa realizada na Universidade Federal de Goiás (2007, p. 04). “Software Livre é qualquer software cuja licença garanta ao seu usuário liberdades relacionadas ao uso, alteração e redistribuição”. Seu aspecto fundamental é o fato do código-fonte estar livremente disponível para ser lido, estudado ou modificado por qualquer pessoa interessada.” São várias as vantagens de usar essas ferramentas, dentre elas: a facilidade de manutenção, o alto grau de disponibilidade das ferramentas livres na web e o baixo custo. As ferramentas livres aqui mencionadas são as mais utilizadas no mercado de desenvolvimento de sistemas web, apesar de não apresentarem custos com licenças, elas têm grande qualidade e beneficiam o projeto de desenvolvimento de sistemas a começar pelo custo e a satisfação dos desenvolvedores. Rosa (2007, p. 105) afirma que, “Apesar de parecer apenas programas de computadores, eu vejo o software livre como uma filosofia de vida”. Este trabalho apresenta as características das ferramentas livres mais utilizadas considerando a economia proporcionada e a fuga do uso indevido, ilegal ou pirata de programas proprietários, que pode ser um risco para as empresas, sujeitas e expostas a penalidades. Apresenta também uma comparação entre as ferramentas livres e proprietárias que são destinadas a auxiliar em uma determinada área de desenvolvimento do sistema web. Anuário da Produção de Iniciação Científica Discente • Vol. XII, Nº. 14, Ano 2009 • p. 385-400 ANUIC_N14_miolo.pdf 386 7/6/2010 18:17:06 Verônica Pedrozo de Medeiros 2. 387 OBJETIVO Mostrar de forma simples, clara e objetiva as ferramentas livres mais utilizadas e mais aceitas no mercado atualmente para o desenvolvimento de sistemas web, suas características principais. Por exemplo, analisar as ferramentas JUDE, ArgoUML, Visual Paradigm, Eclipse, Netbeans, JDeveloper, TomCat, GlassFish, JBoss, Struts, Spring, JavaServer Faces, MySQLWorkbench, Open ModelSphere, BRModelo, MySQL, PostgreSQL, Derby para implementação de sistemas web, desde sua concepção até a fase de implantação. Apresentar as ferramentas livres como uma boa opção para o desenvolvimento de sistemas web e demonstrar por meio de tabelas comparativas que muitas dessas ferramentas já competem com as grandes ferramentas proprietárias que, até então, dominavam o mercado. 3. METODOLOGIA Os dados para abordar as características, comparações, vantagens e desvantagens do uso das ferramentas livres foram coletados por meio de pesquisa bibliográfica em livros, revistas especializadas, sites e artigos científicos, objetivando conhecer um pouco mais sobre cada uma das ferramentas. Esses dados contribuíram para a conclusão das quatro primeiras etapas deste projeto de pesquisa, que são: Pesquisa inicial, Pesquisa detalhada, Comparações e Vantagens / Desvantagens da utilização das ferramentas livres. Serão realizadas também entrevistas com quem utiliza ferramentas livres e testes em todas as ferramentas que possibilitarão a conclusão da quinta e última etapa do projeto de pesquisa que é a listagem das dicas de como utilizar alguma ferramentas livres. 4. DESENVOLVIMENTO As ferramentas livres têm sido, nos últimos anos, objeto de atenção por parte da imprensa especializada em informática e profissionais da área. Neste trabalho, é possível verificar que existem ferramentas livres com sofisticação suficiente para atender a grande parte das demandas empresariais. Verifica-se também que pode existir sucesso em sua utilização, principalmente com a redução de custos. Neste trabalho está descrito as principais características das ferramentas livres utilizadas e indicadas para se desenvolver um sistema web. Anuário da Produção de Iniciação Científica Discente • Vol. XII, Nº. 14, Ano 2009 • p. 385-400 ANUIC_N14_miolo.pdf 387 7/6/2010 18:17:06 388 Construção de sistemas web utilizando ferramentas livres 4.1. Modelagem UML A UML (Unified Modeling Language) é uma linguagem visual padrão utilizada para modelar sistemas computacionais por meio do paradigma de Orientação a Objetos, permite a construção de modelos precisos e completos. Ferramenta: JUDE - Versão: JUDE Community 5.5.2 JUDE é uma Ferramenta para Modelagem de Dados UML, com ela é possível realizar uma modelagem de dados complexa. Ela apresenta os dados para o usuário de forma clara e, ainda, possui um layout bem intuitivo (Figura 1). Download no site http://jude.change-vision.com/jude-web/download/index.html. Essa ferramenta desenvolve diagramas com base na UML 1.4 e 2.0 e vem expandindo a cada dia suas funcionalidades e por isso foi aqui observado que ela é uma boa opção para o desenvolvimento de diagramas em UML, até mesmo para “grandes” projetos. São nove tipos diferentes de diagramas UML que a Ferramenta JUDE oferece. JUDE possibilita a importação e a exportação de classes de um programa JAVA, permite a criação automática do diagrama de classe por meio da engenharia reversa. Figura 1 – Apresentação da ferramenta JUDE, com botões intuitivos, ferramenta auto-explicativa. Ferramenta: Visual Paradigm - Versão 7.0 É uma ferramenta que auxilia o desenvolvedor a criar diagramas UML. Tem uma interface de fácil entendimento, apesar de ser uma ferramenta toda no idioma Inglês, seus ícones e menus são bem intuitivos e isso não é nenhum problema para quem deseja trabalhar com essa ferramenta. Compatível com UML 2.2. Anuário da Produção de Iniciação Científica Discente • Vol. XII, Nº. 14, Ano 2009 • p. 385-400 ANUIC_N14_miolo.pdf 388 7/6/2010 18:17:06 Verônica Pedrozo de Medeiros 389 Apresenta inúmeras funcionalidades, como geração do Modelo Entidade Relacionamento (DER), exportação, importação e merge dos formatos XML, XMI e XLS. Importa arquivos do Visio, Rose, Software Architect e Erwin sem perda de informações. O Visual Paradigm não é tão complexo como o ArgoUML. Download no site http://www.visual-paradigm.com/download/. Ferramenta: ArgoUML - Versão 0.28 É uma ferramenta que utiliza a UML para modelar sistemas. Roda sobre a plataforma Java e suporta 10 idiomas (incluindo o português). Essa ferramenta apresenta mais recursos que a ferramenta JUDE, sua interface é bem completa, o que a torna um pouco complexa de se manipular. Download no site http://argouml.tigris.org/. É uma ferramenta que aumenta a produtividade dos programadores, principalmente os iniciantes, já que ela pode gerar a codificação definida com base no diagrama de classe criado. ArgoUML tem suporte a geração de códigos em Java, C++, C#, PHP4 e PHP5. Com ela você poderá importar e exportar projetos em XML e gerar as imagens dos diagramas (Comparação entre ferramentas para UML na Tabela 1). Tabela 1 – Comparativo entre os Diagramas existentes nas ferramentas livres para modelagem UML. Diagramas UML Diagrama de Classes Diagrama de Casos de Uso Diagrama de Estados Diagrama de Atividades Diagrama de Sequência Diagrama de Implantação Diagrama de Estruturas Composta Diagrama de Distribuição JUDE ArgoUML Visual Paradigm Visual UML 1 × × × × × × × — × × × × × — — × × × × × × × × — × × × × × — — — 4.2. Modelagem de Dados A Modelagem de Dados é o processo no qual se planeja a base de dados de um sistema, buscando construir um banco de dados consistente, que reaproveite os recursos do SGBD, que exija menos espaço em disco e, sobretudo, que possa ser bem administrado. Na modelagem são apresentadas as regras de negócio do sistema e a especificação de suas estruturas de dados. 1 Software proprietário da empresa Visual Object Modelers. Anuário da Produção de Iniciação Científica Discente • Vol. XII, Nº. 14, Ano 2009 • p. 385-400 ANUIC_N14_miolo.pdf 389 7/6/2010 18:17:06 390 Construção de sistemas web utilizando ferramentas livres Ferramenta: MySQL Workbench – Versão 5.1.9 OSS É uma ferramenta de modelagem de dados com suporte para as funcionalidades do MySQL, é uma evolução do DBDesigner4. Download no site http://dev.mysql.com/. Roda nas plataformas Microsoft Windows XP e Windows Vista. Apresenta uma interface melhor que a do DBDesigner4. Das três ferramentas aqui listadas, esta é a mais complexa de se trabalhar, além de ser toda no idioma inglês, apresenta alguns nomes que é necessário se ter conhecimento antes de utilizá-la. Seus ícones não são tão intuitivos para os iniciantes, como a ferramenta brModelo, por exemplo. O MySQL Workbench faz sincronia com os modelos de banco de dados, importa e exporta modelos do DBDesigner4, bem como exporta scripts SQL. brModelo - Versão 2.0.0 É uma ferramenta excelente para criar modelos lógicos e físicos de maneira prática, simples e rápida (Figura 2). Download no site Baixaki, ele é bem compacto e pequeno, pode rodar até em pendrive. Como é muito leve, não precisa de um “super computador” para rodá-lo com o desempenho muito bom (Comparação entre as ferramentas de modelagem na Tabela 2). Figura 2 – Exemplo de Modelagem de Dados com brModelo. “Minha ferramenta básica para iniciar qualquer projeto. A Gente cria o modelo conceitual e ele converte para o modelo lógico. Se o autor resolver gerar o script em MySql e outros bdos essa ferramenta será imbatível.” (CELSO BRITO, 2009). Das ferramentas aqui listadas, o brModelo é a única no idioma português, apresenta ícones e menus intuitivos, é de fácil entendimento e manipulação, porém Anuário da Produção de Iniciação Científica Discente • Vol. XII, Nº. 14, Ano 2009 • p. 385-400 ANUIC_N14_miolo.pdf 390 7/6/2010 18:17:06 Verônica Pedrozo de Medeiros 391 apresenta bem menos funcionalidades que as duas outras ferramentas livres acima citadas. Ferramenta: Open ModelSphere - Versão 3.0 O Open ModelSphere é uma ferramenta para modelagem UML e modelagem de dados, foi desenvolvido para ser independente de plataforma, é uma ferramenta de fácil utilização, com ícones intuitivos e menus bem organizados, além disso, tem a vantagem de ser leve. Mesmo sendo totalmente no idioma inglês, não apresenta complexidade. Permite a engenharia reversa, possibilitando assim a visualização gráfica da arquitetura da base de dados, suporta todos os tipos de sistemas de gerenciamento de banco de dados, pois utiliza banco de dados relacional, facilitando assim modificações futuras. Download no site http://www.modelsphere.org/download.html. Com Open ModelSphere é possível especificar recursos, transações, trocas de comunicação, possui sistema de engenharia reversa, geração de scripts, entre outras coisas. A ferramenta não está restrita apenas a modelagem de negócio, com ela é possível desenvolver diagramas UML também. Tabela 2 – Comparativo entre as ferramentas livres para modelagem de dados. Recursos / Funcionalidades brModelo MySQL Workbench Open ModelSphere ERwin 2 Foward Engineering Reverse Engineer Sincronização do Modelo Exportar como Imagem Exportar como PDF Exportar como XML Criação de Modelo Lógico Criação de Modelo Conceitual — — — × — — × × × × × × × — × — × — × × — × × × x x x x — × × × 4.3. Ambientes de Desenvolvimento Um Ambiente de Desenvolvimento é um IDE (Integrated Development Environment), um ambiente integrado para desenvolvimento de software, uma ferramenta que favorece a programação. Ferramenta: JDeveloper - Versão 11g É o IDE Java da Oracle, tem como finalidade, facilitar o desenvolvimento de aplicações que utilizam a linguagem JAVA. Apresenta recursos visuais, o que facilita no 2 Software proprietário, ferramenta CASE da empresa Computer Associates. Anuário da Produção de Iniciação Científica Discente • Vol. XII, Nº. 14, Ano 2009 • p. 385-400 ANUIC_N14_miolo.pdf 391 7/6/2010 18:17:06 392 Construção de sistemas web utilizando ferramentas livres desenvolvimento de aplicações tanto para iniciantes como para experientes programadores Java (Figura 3). Não apresenta tantas informações na internet . Oferece funcionalidades para o desenvolvimento em Java, XML, SQL e PL/SQL, HTML, JavaScript, PHP etc. O download pode ser feito no site da Oracle. “JDeveloper - É a escolha natural para quem trabalha com as tecnologias da Oracle, para J2EE, ORM ou JSF... É uma excelente ferramenta para integrar uma equipe com conhecimento diversificado (experts e novatos).” (MONTALVÃO, 2009). Figura 3 – Programação em Java utilizando o JDeveloper. Ferramenta: Eclipse - Versão: 3.5 O Eclipse é uma IDE para o desenvolvimento de aplicações Java, mas também pode ser usado para o desenvolvimento de aplicações em PHP, C++, etc. Possui um grande número de plug-ins gratuitos disponíveis, para adicionar e ampliar mais recursos ao IDE, também possui refactoring, geração de códigos, atalhos e ícones intuitivos. É um IDE que já atingiu um grande nível de maturidade. (Comparação entre IDE’s na Tabela 3). A diversidade de opções na escolha de plug-ins propicia total liberdade para aprimorar cada vez mais esse IDE, mas por outro lado, isto pode ser fonte de aborrecimentos e confusão para se montar um ambiente suficientemente completo, integrado e produtivo baseado no Eclipse. O download pode ser feito no site da Eclipse. O Eclipse Possibilita a geração automática de entidades a partir de um schema de dados. A versão 3.5 é totalmente compatível com a versão anterior, permitindo assim uma fácil migração. “O Eclipse é um dos IDE’s mais conceituados para a programação Java, por conseqüência um dos mais utilizados “ (MOREIRA, 2009). Anuário da Produção de Iniciação Científica Discente • Vol. XII, Nº. 14, Ano 2009 • p. 385-400 ANUIC_N14_miolo.pdf 392 7/6/2010 18:17:06 Verônica Pedrozo de Medeiros 393 Ferramenta: NetBeans - Versão: 6.7 É uma ferramenta para o programador escrever, compilar e depurar programas Java, C++, C, Ruby, Groovy, etc. Também é possível criar, testar e eliminar os erros de aplicações móveis (celulares). Download no site http://www.netbeans.org/downloads/. O NetBeans permite ao programador criar programas utilizando recursos gráficos, pois possui recursos GUI (que facilita o aprendizado dos iniciantes), ele oferece ferramentas com suporte de criação em todos os componentes Java EE, incluindo EJBs, serviços web, entre outros. É permitida a modelagem de diagramas UML. É uma ferramenta muito fácil de se utilizar, apresenta ícones e menus intuitivos, além disso é toda traduzida para o idioma português. Possui assistente de criação de projeto web, pergunta qual Framework será utilizado, configura o projeto etc. Tabela 3 – Comparativo entre as ferramentas livres para desenvolvimento. Características Suporte para aplicações desktop Suporte para aplicações web Suporte para aplicações móveis Multiplataforma Geração de código Componentes gráficos Desenvolvimento integrado para Java, XML... Modelagem visual baseada em UML Eclipse NetBeans JDeveloper JBuilder3 × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × 4.4. Manipulação de Banco de Dados Para a manipulação e gerenciamento do Banco de Dados é necessário a utilização de um Sistema Gerenciador de Banco de Dados (SGBD). “...Com o avanço do Linux no mundo dos servidores e o aumento da qualidade e oferta dos Banco de Dados gratuitos, muitos optaram por migrar de um SGBD pago para um gratuito” (FRANCELINO, 2008). Ferramenta: MySQL - Versão: 5.1 O MySQL pode ser considerado o mais popular banco de dados open source do mundo. É um banco de dados relacional, isso proporciona velocidade e flexibilidade. Uma das suas interfaces gráficas é o MySQL Control Center, também open source, que auxilia ainda mais o usuário. Download no site http://dev.mysql.com/downloads/. 3 Ferramenta proprietária da empresa Borland. Anuário da Produção de Iniciação Científica Discente • Vol. XII, Nº. 14, Ano 2009 • p. 385-400 ANUIC_N14_miolo.pdf 393 7/6/2010 18:17:06 394 Construção de sistemas web utilizando ferramentas livres A partir da versão 5.x, a ferramenta MySQL se tornou um Sistema Gerenciador de Banco de Dados Cliente/Servidor Completo, pois, foi implantado os recursos de Stored procedures, Cursores, Views, Triggers, Foreign Key e Constraints. Possui consistência, alta performance, confiabilidade, é robusto e fácil de usar. O MySQL possui suporte a SQL é indicado para quem busca uma base de dados completa e de fácil d instalação. (Comparação entre os Bancos de Dados na Tabela 4). “Existem várias razões para utilizar o MySQL, dentre elas se destacam a robustez e desempenho deste SGBD, além da facilidade de instalação, configuração e uso.” (DUARTE, 2008) Ferramenta: PostgreSQL - Versão: 8.3 É um sistema gerenciador de banco de dados relacional, de código aberto e gratuito para qualquer uso. Download no site http://www.postgresql.org/download. Para utilizar uma interface gráfica no Postgre, pode-se utilizar o pgAdmin (Figura 4). O PostegreSQL apresenta o melhor otimizador de consultas dentre todos os banco de dados livres. Com todas as qualidades listadas acima, o PostgreSQL oferece uma utilização muito boa quando comparado ao MySQL e ao Derby, principalmente se tratando de desenvolvimento de sistemas web para empresas. “Vale lembrar que periodicamente o PostgreSQL ganha novas versões que incluem novas funcionalidades. Isto nos dá uma segurança extra em relação ao suporte e evolução do projeto.” (FRANCELINO, 2008). Figura 4 – Ferramenta pgAdmin: Interface Gráfica Livre do PostgreSQL. Anuário da Produção de Iniciação Científica Discente • Vol. XII, Nº. 14, Ano 2009 • p. 385-400 ANUIC_N14_miolo.pdf 394 7/6/2010 18:17:06 Verônica Pedrozo de Medeiros 395 Ferramenta Derby - Versão: 10.5 Derby é o Sistema Gerenciador de Banco de Dados relacional da Apache, desenvolvido em Java-puro. É uma nova versão do Claudscape (SGBD comercial). O Derby possui várias funcionalidades, dentre elas stored procedures e views que o assemelham com os SGBDs aqui estudados. Ele pode funcionar de duas maneiras diferentes: Modo Network (aplicação em rede) e Modo Embedded (aplicação embutida). “... o Derby, não somente é uma grande demonstração da capacidade da plataforma Java, mas também poderá ser uma ferramenta excelente para a maioria das aplicações que precisem de um banco relacional.” (DOEDERLEIN, 2008). O Derby sempre está incorporado a algum produto, seu download pode ser feito no site da Apache. Pode-se utilizar uma interface gráfica para auxiliar o trabalho. Tabela 4 – Comparativo entre as ferramentas livres para a manipulação de banco de dados. Recursos/Funcionalidades Triggres (Gatilhos) Stored Procedures Criptografia View Funções agregadas (count, sum, avg, …) Consultas aninhadas (subselects) Outer Joins Backups on-line MySQL PostgreSQL Derby Oracle 4 × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × × 4.5. Frameworks Um framework é uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica. A utilização de um framework torna-se muito útil no momento em que o desenvolvedor constrói ou utiliza certo componente mais de uma vez. A reutilização de códigos que o framework proporciona é fantástica. Ferramenta: Spring – Versão 3.0 O Spring tem como objetivo facilitar o desenvolvimento de sistemas desktop e de sistemas web, ele possibilita a redução de código e aumenta a produtividade do desenvolvedor. Isto é possível por meio de recursos como a “injeção de dependência”, e redução da quantidade de código XML. Download no site http://www.springsource.org/. 4 Ferramenta proprietária mais utilizada no mercado da empresa Oracle. Anuário da Produção de Iniciação Científica Discente • Vol. XII, Nº. 14, Ano 2009 • p. 385-400 ANUIC_N14_miolo.pdf 395 7/6/2010 18:17:06 396 Construção de sistemas web utilizando ferramentas livres Ele oferece suporte a serviços remotos (robusto e ao mesmo tempo simples). Usando o Spring para acessar serviços remotos, tira-se toda a complexidade dos desenvolvedores, aumentando a produtividade e a qualidade do desenvolvimento. Apresenta vários recursos para controlar a injeção de dependências e o gerenciamento dos objetos em seu container. Mesmo com os novos recursos presentes na plataforma Java EE 5 para a injeção de dependência. “... o Spring mantém-se um passo além, com uma grande variedade de funcionaliades avançadas e produtivas. Além disso, o Spring não exige um container Java EE, podendo ser utilizado também em aplicações Java SE...” (AMADEI, 2007). Ferramenta: Struts – Versão 2.1.8 Foi desenvolvido pela fundação Apache para desenvolvimento de web com Java EE, auxilia a programação no modelo MVC. Ele é um framework baseado em ações, portanto as classes de ação são parte central do framework. Download no site da Apache. Com o Struts observa-se uma melhora com o desempenho das aplicações web, os componentes do Struts são reutilizáveis pela aplicação, ele reduz a necessidade de JSPs redundantes, é leve, compatível com os padrões, é de código fonte aberto e bem documentado. Ele provê uma série de tag libs para criação de formulários (Figura 5). Figura 5 – Exemplo de formulário. Java ServerFaces 2.0 O framework JavaServer Faces é o padrão para a construção de componentes para a interface de usuário em aplicações web. É como se fosse uma caixa de ferramentas cheia de componentes prontos para serem usados que você pode reutilizar de forma rápida e fácil em sua aplicação Web. (Comparação entre os Frameworks na Tabela 5). Esses componentes podem ser simples (campos de entrada de texto) ou complexos (campo de data formatado com um calendário pop-up). Pode-se incorporar os componentes em páginas JSP e usar o framework para manipular a navegação entre páginas JSP diferentes. O download pode ser feito no site http://java.sun.com/. Anuário da Produção de Iniciação Científica Discente • Vol. XII, Nº. 14, Ano 2009 • p. 385-400 ANUIC_N14_miolo.pdf 396 7/6/2010 18:17:06 Verônica Pedrozo de Medeiros 397 Tabela 5 – Comparativo entre os frameworks livres. Funcionalidades Padrão MVC Java EE Java SE Injeção de dependência Acesso remoto Integração com outros Frameworks Plugins Orientado a aspectos Struts Spring JSF × × — — — × × — Spring MVC × × × × × × × × × — × × × × — 4.6. Servidores de Aplicação Um servidor de aplicação é um software desenvolvido para disponibilizar uma aplicação J2EE, também são conhecidos como middleware. Ele é executado em servidores e é acessado pelos clientes através de uma conexão de rede. Ferramenta: Glassfish – Versão 3 GlassFish é um servidor de aplicação desenvolvido pela Sun Microsystems para a plataforma Java EE. Implementa as mais recentes tecnologias do Java EE 5, que ajudam a melhorar a eficiência do desenvolvedor. Seu download pode ser feito no site da Sun. Fornece uma arquitetura aberta e extensível para colaboração entre tecnologia de integração e serviços web em uma arquitetura orientada a serviços. Essa ferramenta engloba componentes além dos padrões dos servidores de aplicação - framework Grizzly, os projetos jMaki, Phobos e o DynaFaces. (Comparação entre os Middleware na Tabela 6). Algumas características do GlassFish são: alta performance, compatibilidade com todos os frameworks populares atualmente, suporte a AJAX, contentor de scripts / web, plataforma aberta e modular, suporte a linguagens dinâmicas como Ruby ou Groovy e suporte total ao Java EE 6. Ferramenta: Tomcat – Versão 6.0 O Tomcat é um servidor de aplicações Java para web, surgiu dentro do conceituado projeto Apache Jakarta (Figura 6). Sua principal característica é estar focado na linguagem de programação Java, em especial nas tecnologias de Servlets e de JSP (Java Server Pages). O Tomcat pode comportar-se como um servidor web (HTTP). Trabalha com as tecnologias de Realms e segurança, JNDI Resources e JDBC DataSources, porém, não implementa pacotes EJB (Enterprise JavaBeans). Anuário da Produção de Iniciação Científica Discente • Vol. XII, Nº. 14, Ano 2009 • p. 385-400 ANUIC_N14_miolo.pdf 397 7/6/2010 18:17:06 398 Construção de sistemas web utilizando ferramentas livres Para utilizar o Tomcat com uma performance satisfatória é recomendável se ter no mínimo 1GB de memória RAM. Seu download é feito no site da Apache. Figura 6 – Interface do Servidor de Aplicação Tomcat. JBoss - Versão: 4.0 O JBoss é um servidor de aplicação Java EE. Possui todo o poder, a flexibilidade e a confiabilidade dos demais servidores citados. Apresenta facilidades também na hora de rodar pela primeira vez os servlets e EJBs. Download no site http://www.jboss.com/. Apresenta atrativos como “hot deploy” e proxies dinâmicos. Outras características são: ser relativamente leve, com consumo baixo de memória e espaço em disco, sem comprometer sua performance. O JBoss não possui limites internos relacionados à quantidade de aplicação, requisições, usuário que é capaz de segurar simultaneamente e transações, ele escala valores de acordo com a capacidade do hardware do computador. “... o JBoss é um software rico e poderoso, que está no centro das principais aplicações corporativas da atualidade. Sua administração deve ser encarada com seriedade, por profissionais especializados e buscando constante aperfeiçoamento.” (LOZANO, 2008). Essa ferramenta não é um servidor que fornece um único serviço, ela proporciona um conjunto de serviços de redes, quase independentes, cada um tem seu próprio protocolo de aplicação, porta TCP e parâmetro de configuração. Anuário da Produção de Iniciação Científica Discente • Vol. XII, Nº. 14, Ano 2009 • p. 385-400 ANUIC_N14_miolo.pdf 398 7/6/2010 18:17:06 Verônica Pedrozo de Medeiros 399 Tabela 6 – Comparativo entre as ferramentas livres para servidor de aplicação. Características Flexibilidade com Java EE 5 Utiliza EJB JSP Suporte a JavaServer Faces Clustering Eclipse IDE suporta Netbeans IDE suporta JDeveloper IDE suporta 5. Tomcat GlassFish JBoss Oracle Application Server 5 × — × × × × × × × × × × × × × × × × × × × × × × × — × × × — × × RESULTADOS O presente trabalho foi de grande importância para auxiliar os desenvolvedores web que não sabem ou têm dúvidas sobre qual ferramenta livre utilizar, devido à falta de informações objetivas. Descrevendo de forma prática as características de cada ferramenta livre aqui proposta, realizando testes, criando tabelas comparativas entre ferramentas livres e proprietárias foi possível reunir nesta pesquisa, as informações relevantes das ferramentas livres mais utilizadas no mercado atualmente. Com base nos testes de instalação e uso realizado em cada uma das ferramentas e nas experiências coletadas (por meio de e-mails informais e conversas), foi possível afirmar como, onde e quando utilizar alguma das ferramentas, bem como as vantagens de se utilizar ferramentas livres para o desenvolvimento web. 6. CONSIDERAÇÕES FINAIS Os objetivos deste projeto de pesquisa foram alcançados. Ao testar cada umas das 18 ferramentas livres aqui presentes e conversar com quem as utilizava, foi possível descrever suas características mais relevantes e indicar onde cada uma delas melhor se aplica. A necessidade de atualização dos tópicos abordados proporcionará que os demais estudantes e outros interessados providenciem a continuidade do projeto de pesquisa. Para o ano que vem, há viabilidade de continuação da pesquisa, desenvolvendo sistemas por meio de estudos de caso, e utilizando algumas das ferramentas livres aqui descritas. 5 Servidor de Aplicação proprietário da empresa Oracle. Anuário da Produção de Iniciação Científica Discente • Vol. XII, Nº. 14, Ano 2009 • p. 385-400 ANUIC_N14_miolo.pdf 399 7/6/2010 18:17:06 400 Construção de sistemas web utilizando ferramentas livres REFERÊNCIAS AMADEI, Daniel Cicero. Indo além com o Spring. Java Magazine, Rio de Janeiro, Ano V, v.45, 2007. BRITO, Celso. brModelo 2.0. Site Baixaki, Brasil, Março / 2009. Disponível em: <http://www.baixaki.com.br/download/brmodelo.htm>. Acesso em 12 out. 2009. DOEDERLEIN, Osvaldo Pinali. Demonstrando o Apache Derby. Java Magazine, Rio de Janeiro, Ano IV, v. 29, 2008. DUARTE, Eder. MySQL. SQL Magazine, Rio de Janeiro, Ano III, v. 37, 2008. FRANCELINO, Fabio Alves. PostgreSQL O caminho das pedras. SQL Magazine, Rio de Janeiro, Ano II, v. 18, 2008. LOZANO, Fernando. JBoss: Instalação, Arquitetura, Configuração, Tuning e Administração. Java Magazine, Rio de Janeiro, Ano V, v. 46, 2008. MONTALVÃO, Michel de. Briga Boa: Eclipse x Netbeans x JDeveloper. Site Java Free, Brasil, Abril / 2009. Disponível em: <http://javafree.uol.com.br/viewtopic.jbb?t=854670>. Acesso em: 26 jul. 2009. MOREIRA, Carlos. O Eclipse aumenta a sua produtividade!. Site Blog Carlos Moreira, Brasil, abr. 2009. Disponível em: < http://blog.carlos-moreira.eti.br/artigos/eclipse/>. Acesso: 26 jul. 2009. ROSA, Guilherme Carvalho da. Identidade cultural em comunidades de usuários e desenvolvedores de software livre: o caso Debian-RS. 2003. 156 f. Dissertação (Mestrado em 2007 [Comunicação Social]) - Pontifícia Universidade Católica, Rio Grande do Sul. UNIVERSIDADE FEDERAL DE GOIÁS - Sistema de Controle Documental do CAC/UFG utilizando exclusivamente ferramentas de Código Aberto. Site Google Docs, Goiás, outubro / 2007. Disponível em: <http://docs.google.com/gview?a=v&q=cache:KREefCZlSeoJ:www.catalao.ufg.br/cc/disc/pfc/2 007/2/propostas/proposta1.pdf+Ferramentas+livres+s%C3%A3o+qualquer+software+cuja+licen %C3%A7a+garanta+ao+seu+usu%C3%A1rio+liberdades&hl=pt-BR&gl=br>. Acesso em: 26 jul. 2009. Anuário da Produção de Iniciação Científica Discente • Vol. XII, Nº. 14, Ano 2009 • p. 385-400 ANUIC_N14_miolo.pdf 400 7/6/2010 18:17:06