Desenvolvendo com Java Open Source

1.024 visualizações

Publicada em

Palestra apresentada no Instituto Infnet.

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.024
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
11
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Desenvolvendo com Java Open Source

  1. 1. Desenvolvendo com Java e Ferramentas Open-source
  2. 2. Programa e Palestrante <ul><li>Programa: </li></ul><ul><ul><li>O que é Open-source? </li></ul></ul><ul><ul><li>Open-source no Mundo Java. </li></ul></ul><ul><ul><li>Integrated Development Environment. </li></ul></ul><ul><ul><li>Frameworks de Desenvolvimento. </li></ul></ul><ul><ul><li>Softwares de Apoio. </li></ul></ul><ul><ul><li>Sugestão de Ambiente de Desenvolvimento. </li></ul></ul><ul><li>Palestrante: </li></ul><ul><ul><li>Armênio Cardoso </li></ul></ul><ul><ul><li>Consultor, Arquiteto de Sistemas e Professor </li></ul></ul>
  3. 3. O Que é Open-source? <ul><li>“ 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. </li></ul><ul><li>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). </li></ul><ul><li>Open-source é normalmente desenvolvido como uma contribuição voluntária publicada através da Internet. </li></ul>
  4. 4. O Que é Open-source? <ul><li>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. </li></ul><ul><li>O código binário preserva os métodos e tecnologias empregadas pelos seus desenvolvedores, que investem somas consideráveis no desenvolvimento do produto. </li></ul><ul><li>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”. </li></ul>
  5. 5. O Que é Open-source? <ul><li>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. </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul>
  6. 6. O Que é Open-source? <ul><li>Free Software vs. Proprietário: </li></ul>
  7. 7. O Que é Open-source? <ul><li>De acordo com a Free Software Foundation, o software open-source permite que os seus usuários disponham das seguintes prerrogativas: </li></ul><ul><ul><li>Liberdade 0 : Rodar o programa para qualquer propósito. </li></ul></ul><ul><ul><li>Liberdade 1 : Estudar como o programa funciona e adaptar as suas características às suas necessidades. </li></ul></ul><ul><ul><li>Liberdade 2 : Distribuir cópias do software a fim de ajudar outras pessoas. </li></ul></ul><ul><ul><li>Liberdade 3 : Melhorar o software e publicar as suas melhorias de forma que toda a comunidade se beneficie. </li></ul></ul><ul><li>http://www.fsf.org/philosophy/free-sw.html </li></ul>
  8. 8. O Que é Open-source? <ul><li>Referências: </li></ul><ul><ul><li>Free Software Foundation: </li></ul></ul><ul><ul><ul><li>http://www.fsf.org/philosophy/free-sw.html </li></ul></ul></ul><ul><ul><li>GNU: </li></ul></ul><ul><ul><ul><li>http://www.gnu.org </li></ul></ul></ul><ul><ul><li>Open Source Foundation: </li></ul></ul><ul><ul><ul><li>http://www.opensource.org/licenses/ </li></ul></ul></ul><ul><ul><li>Linux: A Bazaar at the Edge of Chaos: </li></ul></ul><ul><ul><ul><li>http://firstmonday.org/issues/issue5_3/kuwabara/index.html </li></ul></ul></ul><ul><ul><li>Source Forge: </li></ul></ul><ul><ul><ul><li>http://www.sourceforge.org </li></ul></ul></ul>
  9. 9. Open-source no Mundo Java <ul><li>http://www.apache.org </li></ul><ul><li>Alexandria </li></ul><ul><li>Cactus </li></ul><ul><li>Commons </li></ul><ul><li>ECS </li></ul><ul><li>HiveMind </li></ul><ul><li>JMeter </li></ul><ul><li>Lucene </li></ul><ul><li>ORO </li></ul><ul><li>POI </li></ul><ul><li>Regexp </li></ul><ul><li>Slide </li></ul><ul><li>Taglibs </li></ul><ul><li>Tapestry </li></ul><ul><li>Tomcat </li></ul><ul><li>Turbine </li></ul><ul><li>Velocity </li></ul><ul><li>Watchdog </li></ul><ul><li>Ant </li></ul><ul><li>Avalon </li></ul><ul><li>Excalibur </li></ul><ul><li>Geronimo </li></ul><ul><li>James </li></ul><ul><li>Logging </li></ul><ul><li>Maven </li></ul><ul><li>Portals </li></ul><ul><li>Struts </li></ul>
  10. 10. Open-source no Mundo Java <ul><li>Aspect-Oriented </li></ul><ul><li>Bloggers </li></ul><ul><li>Build Systems </li></ul><ul><li>ByteCode </li></ul><ul><li>Cache Solutions </li></ul><ul><li>Charting & Reporting </li></ul><ul><li>Chat Servers </li></ul><ul><li>CMS </li></ul><ul><li>Code Analyzers </li></ul><ul><li>Code Coverage </li></ul><ul><li>Collections </li></ul><ul><li>Crawlers </li></ul><ul><li>Databases </li></ul><ul><li>EJB Servers </li></ul><ul><li>Forum Soft </li></ul><ul><li>Groupware </li></ul><ul><li>HTML Parsers </li></ul><ul><li>IDEs </li></ul><ul><li>Installers </li></ul><ul><li>Issue Tracking </li></ul><ul><li>J2EE Frameworks </li></ul><ul><li>JMS </li></ul><ul><li>Job Schedulers </li></ul><ul><li>JSP Tag Libraries </li></ul><ul><li>Network Clients </li></ul><ul><li>Network Servers </li></ul><ul><li>Obfuscators </li></ul><ul><li>Parser Generators </li></ul><ul><li>PDF Libraries </li></ul><ul><li>Persistence </li></ul><ul><li>Portals </li></ul><ul><li>Profilers </li></ul><ul><li>Project Management </li></ul><ul><li>RSS & RDF Tools </li></ul><ul><li>Rule Engines </li></ul><ul><li>Scripting Languages </li></ul><ul><li>Search Engines </li></ul><ul><li>SQL Clients </li></ul><ul><li>Template Engines </li></ul><ul><li>Testing Tools </li></ul><ul><li>UML & Modeling </li></ul><ul><li>Web Frameworks </li></ul><ul><li>Web Mail </li></ul><ul><li>Web Servers </li></ul><ul><li>Web Services </li></ul><ul><li>Web Testing </li></ul><ul><li>Wiki Engines </li></ul><ul><li>Workflow Engines </li></ul><ul><li>XML Parsers </li></ul><ul><li>XML UI Toolkits </li></ul>http://java-source.net
  11. 11. Integrated Development Environment <ul><li>Os ambientes integrados de desenvolvimento de sistemas são ferramentas de produtividade que suportam o ciclo de desenvolvimento de uma aplicação. </li></ul><ul><li>Os elementos mais importantes desses softwares são: </li></ul><ul><ul><li>Editor de programas com verificação e colorização de sintaxe e teclas de atalhos para código. </li></ul></ul><ul><ul><li>Editor de telas. </li></ul></ul><ul><ul><li>Compilador integrado. </li></ul></ul><ul><ul><li>Ferramentas de depuração de código. </li></ul></ul><ul><ul><li>Controle de versão de fontes. </li></ul></ul>
  12. 12. Integrated Development Environment <ul><li>Eclipse </li></ul><ul><ul><li>http://www.eclipse.org </li></ul></ul>
  13. 13. Integrated Development Environment <ul><li>NetBeans </li></ul><ul><ul><li>http://www.netbeans.org </li></ul></ul>
  14. 14. Integrated Development Environment <ul><li>jEdit </li></ul><ul><ul><li>http://www.jedit.org </li></ul></ul>
  15. 15. Frameworks de Desenvolvimento <ul><li>Os frameworks são bibliotecas de classes que visam aumentar a produtividade no desenvolvimento de algum aspecto da aplicação. </li></ul><ul><li>Os elementos mais importantes desses produtos são: </li></ul><ul><ul><li>Especialização. </li></ul></ul><ul><ul><li>Componentização e modularidade. </li></ul></ul><ul><ul><li>Inovação quanto a formas de resolução de problemas. </li></ul></ul>
  16. 16. Frameworks de Desenvolvimento <ul><li>JMeter - ferramenta de monitoração e avaliação de desempenho de aplicações. </li></ul><ul><li>POI - biblioteca para integração de softwares escritos em Java com arquivos MS-Word e MS-Excel. </li></ul><ul><li>Struts - conjunto de APIs que implementam a arquitetura Model-View-Controler para aplicações web. </li></ul>
  17. 17. Frameworks de Desenvolvimento <ul><li>Spring - outro framework MVC. </li></ul><ul><li>WebOnSwing - Que tal criar telas para web como se fossem para o desktop? </li></ul><ul><li>Hibernate - framework para o mapeamento objeto-relacional. </li></ul>
  18. 18. Servidores de Aplicação <ul><li>Os servidores de aplicação atuam como infra-estrutura de processamento de aplicações, implementando serviços comuns, tais como: </li></ul><ul><ul><li>autenticação e autorização de usuários, controle de transações, monitoramento, balanceamento de carga, log e auditoria etc. </li></ul></ul>Aplicação Cliente Browser Páginas JSP EJB Servlets Fontes de Dados Client Tier Web Tier Business Tier Enterprise Information Systems Tier
  19. 19. Servidores de Aplicação <ul><li>Web Tier - http://jakarta.apache.org/tomcat/ </li></ul><ul><li>Business Tier - http://www.jboss.org </li></ul>
  20. 20. Softwares de Apoio <ul><li>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 &quot;workflows&quot;, tais como: </li></ul><ul><ul><li>Requisitos, Análise, Arquitetura, Projeto, Testes, Implantação e Gerenciamento. </li></ul></ul><ul><li>Para a maioria desses workflows existem softwares escritos em Java que são open-source. </li></ul>
  21. 21. Softwares de Apoio <ul><li>Modelagem com UML - http://www.argouml.org </li></ul>
  22. 22. Softwares de Apoio <ul><li>Forum - http://www.jforum.net </li></ul>
  23. 23. Softwares de Apoio <ul><li>Groupware - http://jeteam.sourceforge.net/ </li></ul>
  24. 24. Softwares de Apoio <ul><li>Projetos - http://ganttproject.sourceforge.net </li></ul>
  25. 25. Sugestão de Ambiente de Desenvolvimento <ul><li>ArgoUML </li></ul><ul><li>Eclipse </li></ul><ul><li>Struts </li></ul><ul><li>Hibernate </li></ul><ul><li>Tomcat </li></ul><ul><li>JBoss </li></ul><ul><li>Obrigado! </li></ul><ul><li>[email_address] </li></ul>

×