Desenvolvendo com Java e Ferramentas Open-source
Programa e Palestrante Programa: O que é Open-source? Open-source no Mundo Java. Integrated Development Environment. Frameworks de Desenvolvimento. Softwares de Apoio. Sugestão de Ambiente de Desenvolvimento. Palestrante: Armênio Cardoso Consultor, Arquiteto de Sistemas e Professor
O Que é Open-source? “ Open-source” se refere a qualquer programa cujo código-fonte está disponível para o uso ou modificação, conforme a necessidade dos seus usuários.  Historicamente os fabricantes de software proprietário não tornam o seu código-fonte disponível, mesmo que o produto já esteja descontinuado (abandonware). Open-source é normalmente desenvolvido como uma contribuição voluntária publicada através da Internet.
O Que é Open-source? Boa parte dos softwares, especialmente os comerciais, são distribuídos somente no formato binário. O código-fonte é altamente protegido na sua publicação e distribuição. O código binário preserva os métodos e tecnologias empregadas pelos seus desenvolvedores, que investem somas consideráveis no desenvolvimento do produto. Os softwares são publicados com uma proteção autoral (copyright) similar a livros. Diferente dos livros, o software adiciona uma proteção adicional quanto a propriedade intelectual na forma de “licenças de uso”.
O Que é Open-source? As licenças se prestam a especificação, esclarecimento e restrição de uso do software. A maioria das licenças requerem a aquisição do direito de uso do software através da sua comercialização. Em contraste com esse cenário, universidades, fundações, organizações não governamentais e empresas mantém projetos de desenvolvimento de softwares open-source. Os objetivos são os mais diversos. O fato incontestável é que a Internet tornou-se solo fértil para o desenvolvimento de projetos open-source.
O Que é Open-source? Free Software vs. Proprietário:
O Que é Open-source? De acordo com a Free Software Foundation, o software open-source permite que os seus usuários disponham das seguintes prerrogativas: Liberdade 0 : Rodar o programa para qualquer propósito. Liberdade 1 : Estudar como o programa funciona e adaptar as suas características às suas necessidades. Liberdade 2 : Distribuir cópias do software a fim de ajudar outras pessoas. Liberdade 3 : Melhorar o software e publicar as suas melhorias de forma que toda a comunidade se beneficie. http://www.fsf.org/philosophy/free-sw.html
O Que é Open-source? Referências: Free Software Foundation: http://www.fsf.org/philosophy/free-sw.html GNU: http://www.gnu.org Open Source Foundation: http://www.opensource.org/licenses/ Linux: A Bazaar at the Edge of Chaos: http://firstmonday.org/issues/issue5_3/kuwabara/index.html Source Forge: http://www.sourceforge.org
Open-source no Mundo Java http://www.apache.org Alexandria  Cactus  Commons  ECS  HiveMind  JMeter  Lucene  ORO  POI  Regexp  Slide  Taglibs  Tapestry  Tomcat  Turbine  Velocity  Watchdog Ant  Avalon  Excalibur  Geronimo  James  Logging  Maven  Portals  Struts
Open-source no Mundo Java Aspect-Oriented Bloggers Build Systems ByteCode Cache Solutions Charting & Reporting Chat Servers CMS Code Analyzers Code Coverage Collections Crawlers Databases EJB Servers Forum Soft Groupware HTML Parsers IDEs  Installers Issue Tracking J2EE Frameworks JMS Job Schedulers JSP Tag Libraries Network Clients Network Servers Obfuscators Parser Generators PDF Libraries Persistence Portals Profilers Project Management RSS & RDF Tools Rule Engines Scripting Languages Search Engines SQL Clients Template Engines Testing Tools UML & Modeling Web Frameworks Web Mail Web Servers Web Services Web Testing Wiki Engines Workflow Engines XML Parsers XML UI Toolkits http://java-source.net
Integrated Development Environment Os ambientes integrados de desenvolvimento de sistemas são ferramentas de produtividade que suportam o ciclo de desenvolvimento de uma aplicação. Os elementos mais importantes desses softwares são: Editor de programas com verificação e colorização de sintaxe e teclas de atalhos para código. Editor de telas. Compilador integrado. Ferramentas de depuração de código. Controle de versão de fontes.
Integrated Development Environment Eclipse  http://www.eclipse.org
Integrated Development Environment NetBeans http://www.netbeans.org
Integrated Development Environment jEdit http://www.jedit.org
Frameworks de Desenvolvimento Os frameworks são bibliotecas de classes que visam aumentar a produtividade no desenvolvimento de algum aspecto da aplicação. Os elementos mais importantes desses produtos são: Especialização. Componentização e modularidade. Inovação quanto a formas de resolução de problemas.
Frameworks de Desenvolvimento JMeter - ferramenta de monitoração e avaliação de desempenho de aplicações. POI - biblioteca para integração de softwares escritos em Java com arquivos MS-Word e MS-Excel. Struts - conjunto de APIs que implementam a arquitetura Model-View-Controler para aplicações web.
Frameworks de Desenvolvimento Spring - outro framework MVC. WebOnSwing - Que tal criar telas para web como se fossem para o desktop? Hibernate - framework para o mapeamento objeto-relacional.
Servidores de Aplicação Os servidores de aplicação atuam como infra-estrutura de processamento de aplicações, implementando serviços comuns, tais como:  autenticação e autorização de usuários, controle de transações, monitoramento, balanceamento de carga, log e auditoria etc. Aplicação Cliente Browser Páginas JSP EJB Servlets Fontes de Dados Client Tier Web Tier Business Tier Enterprise Information Systems Tier
Servidores de Aplicação Web Tier -  http://jakarta.apache.org/tomcat/ Business Tier -  http://www.jboss.org
Softwares de Apoio O desenvolvimento de sistemas não se limita apenas à escrita do código-fonte. O processo de desenvolvimento de sistemas envolve também uma série de "workflows", tais como: Requisitos, Análise, Arquitetura, Projeto, Testes, Implantação e Gerenciamento. Para a maioria desses workflows existem softwares escritos em Java que são open-source.
Softwares de Apoio Modelagem com UML -  http://www.argouml.org
Softwares de Apoio Forum -  http://www.jforum.net
Softwares de Apoio Groupware -  http://jeteam.sourceforge.net/
Softwares de Apoio Projetos -  http://ganttproject.sourceforge.net
Sugestão de Ambiente de Desenvolvimento ArgoUML Eclipse Struts Hibernate Tomcat JBoss Obrigado! [email_address]

Desenvolvendo com Java Open Source

  • 1.
    Desenvolvendo com Javae Ferramentas Open-source
  • 2.
    Programa e PalestrantePrograma: O que é Open-source? Open-source no Mundo Java. Integrated Development Environment. Frameworks de Desenvolvimento. Softwares de Apoio. Sugestão de Ambiente de Desenvolvimento. Palestrante: Armênio Cardoso Consultor, Arquiteto de Sistemas e Professor
  • 3.
    O Que éOpen-source? “ Open-source” se refere a qualquer programa cujo código-fonte está disponível para o uso ou modificação, conforme a necessidade dos seus usuários. Historicamente os fabricantes de software proprietário não tornam o seu código-fonte disponível, mesmo que o produto já esteja descontinuado (abandonware). Open-source é normalmente desenvolvido como uma contribuição voluntária publicada através da Internet.
  • 4.
    O Que éOpen-source? Boa parte dos softwares, especialmente os comerciais, são distribuídos somente no formato binário. O código-fonte é altamente protegido na sua publicação e distribuição. O código binário preserva os métodos e tecnologias empregadas pelos seus desenvolvedores, que investem somas consideráveis no desenvolvimento do produto. Os softwares são publicados com uma proteção autoral (copyright) similar a livros. Diferente dos livros, o software adiciona uma proteção adicional quanto a propriedade intelectual na forma de “licenças de uso”.
  • 5.
    O Que éOpen-source? As licenças se prestam a especificação, esclarecimento e restrição de uso do software. A maioria das licenças requerem a aquisição do direito de uso do software através da sua comercialização. Em contraste com esse cenário, universidades, fundações, organizações não governamentais e empresas mantém projetos de desenvolvimento de softwares open-source. Os objetivos são os mais diversos. O fato incontestável é que a Internet tornou-se solo fértil para o desenvolvimento de projetos open-source.
  • 6.
    O Que éOpen-source? Free Software vs. Proprietário:
  • 7.
    O Que éOpen-source? De acordo com a Free Software Foundation, o software open-source permite que os seus usuários disponham das seguintes prerrogativas: Liberdade 0 : Rodar o programa para qualquer propósito. Liberdade 1 : Estudar como o programa funciona e adaptar as suas características às suas necessidades. Liberdade 2 : Distribuir cópias do software a fim de ajudar outras pessoas. Liberdade 3 : Melhorar o software e publicar as suas melhorias de forma que toda a comunidade se beneficie. http://www.fsf.org/philosophy/free-sw.html
  • 8.
    O Que éOpen-source? Referências: Free Software Foundation: http://www.fsf.org/philosophy/free-sw.html GNU: http://www.gnu.org Open Source Foundation: http://www.opensource.org/licenses/ Linux: A Bazaar at the Edge of Chaos: http://firstmonday.org/issues/issue5_3/kuwabara/index.html Source Forge: http://www.sourceforge.org
  • 9.
    Open-source no MundoJava http://www.apache.org Alexandria Cactus Commons ECS HiveMind JMeter Lucene ORO POI Regexp Slide Taglibs Tapestry Tomcat Turbine Velocity Watchdog Ant Avalon Excalibur Geronimo James Logging Maven Portals Struts
  • 10.
    Open-source no MundoJava Aspect-Oriented Bloggers Build Systems ByteCode Cache Solutions Charting & Reporting Chat Servers CMS Code Analyzers Code Coverage Collections Crawlers Databases EJB Servers Forum Soft Groupware HTML Parsers IDEs Installers Issue Tracking J2EE Frameworks JMS Job Schedulers JSP Tag Libraries Network Clients Network Servers Obfuscators Parser Generators PDF Libraries Persistence Portals Profilers Project Management RSS & RDF Tools Rule Engines Scripting Languages Search Engines SQL Clients Template Engines Testing Tools UML & Modeling Web Frameworks Web Mail Web Servers Web Services Web Testing Wiki Engines Workflow Engines XML Parsers XML UI Toolkits http://java-source.net
  • 11.
    Integrated Development EnvironmentOs ambientes integrados de desenvolvimento de sistemas são ferramentas de produtividade que suportam o ciclo de desenvolvimento de uma aplicação. Os elementos mais importantes desses softwares são: Editor de programas com verificação e colorização de sintaxe e teclas de atalhos para código. Editor de telas. Compilador integrado. Ferramentas de depuração de código. Controle de versão de fontes.
  • 12.
    Integrated Development EnvironmentEclipse http://www.eclipse.org
  • 13.
    Integrated Development EnvironmentNetBeans http://www.netbeans.org
  • 14.
    Integrated Development EnvironmentjEdit http://www.jedit.org
  • 15.
    Frameworks de DesenvolvimentoOs frameworks são bibliotecas de classes que visam aumentar a produtividade no desenvolvimento de algum aspecto da aplicação. Os elementos mais importantes desses produtos são: Especialização. Componentização e modularidade. Inovação quanto a formas de resolução de problemas.
  • 16.
    Frameworks de DesenvolvimentoJMeter - ferramenta de monitoração e avaliação de desempenho de aplicações. POI - biblioteca para integração de softwares escritos em Java com arquivos MS-Word e MS-Excel. Struts - conjunto de APIs que implementam a arquitetura Model-View-Controler para aplicações web.
  • 17.
    Frameworks de DesenvolvimentoSpring - outro framework MVC. WebOnSwing - Que tal criar telas para web como se fossem para o desktop? Hibernate - framework para o mapeamento objeto-relacional.
  • 18.
    Servidores de AplicaçãoOs servidores de aplicação atuam como infra-estrutura de processamento de aplicações, implementando serviços comuns, tais como: autenticação e autorização de usuários, controle de transações, monitoramento, balanceamento de carga, log e auditoria etc. Aplicação Cliente Browser Páginas JSP EJB Servlets Fontes de Dados Client Tier Web Tier Business Tier Enterprise Information Systems Tier
  • 19.
    Servidores de AplicaçãoWeb Tier - http://jakarta.apache.org/tomcat/ Business Tier - http://www.jboss.org
  • 20.
    Softwares de ApoioO desenvolvimento de sistemas não se limita apenas à escrita do código-fonte. O processo de desenvolvimento de sistemas envolve também uma série de "workflows", tais como: Requisitos, Análise, Arquitetura, Projeto, Testes, Implantação e Gerenciamento. Para a maioria desses workflows existem softwares escritos em Java que são open-source.
  • 21.
    Softwares de ApoioModelagem com UML - http://www.argouml.org
  • 22.
    Softwares de ApoioForum - http://www.jforum.net
  • 23.
    Softwares de ApoioGroupware - http://jeteam.sourceforge.net/
  • 24.
    Softwares de ApoioProjetos - http://ganttproject.sourceforge.net
  • 25.
    Sugestão de Ambientede Desenvolvimento ArgoUML Eclipse Struts Hibernate Tomcat JBoss Obrigado! [email_address]