O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 70 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Anúncio

Semelhante a Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho (20)

Mais de Tchelinux (20)

Anúncio

Mais recentes (20)

Desenvolvendo Aplicações Livres em Java - João Avelino Bellomo Filho

  1. 1. 1º Seminário de Software Livre Tchêlinux Gravataí ­ ULBRA Desenvolvendo Aplicações Livres em Java João Avelino Bellomo Filho Ranieri de Souza Fernandes
  2. 2. Desenvolvendo Aplicações Livres em Java Os Palestrantes Tchelinux - ULBRA Gravataí
  3. 3. Desenvolvendo Aplicações Livres em Java Agenda ✔ Java, como começou... ✔ Plataforma Java ✔ Java e Software Livre ✔ Ferramentas: Eclipse, Netbeans, etc... ✔ Servidor de Aplicação ✔ Frameworks: Google Web Toolkit, ANDROID,  OpenLazlo, etc... Tchelinux - ULBRA Gravataí
  4. 4. Desenvolvendo Aplicações Livres em Java Java, como começou? ✔ Linguagem Oak ✔ Green Project → *7 (StarSeven) ✔ Objetivos ✔ Orientada a objetos ✔ Permitir a execução em diferentes  S.O.s ✔ Conter suporte nativo para redes ✔ Execução segura a partir de fontes remotas ✔ Fácil de usar aproveitando características de  outras Linguagens Tchelinux - ULBRA Gravataí
  5. 5. Desenvolvendo Aplicações Livres em Java Java, como começou? ✔ Linguagem Oak ✔ Green Project ✔ Objetivos ✔ A integração com o Netscape Browser ✔ Applets, Java 2, evolução do desenvolvimento Tchelinux - ULBRA Gravataí
  6. 6. Desenvolvendo Aplicações Livres em Java Quem ”manda” no Java? ✔ JCP – Java Community Process ✔ Qualquer um pode se inscrever ✔ O processo é aberto desde o início ✔ O papel da Sun Tchelinux - ULBRA Gravataí
  7. 7. Desenvolvendo Aplicações Livres em Java Membros JCP ✔ Apache Software Foundation ✔ BEA Systems ✔ Borland ✔ Google ✔ Fujitsu Limited ✔ Hewlett­Packard ✔ IBM ✔ Intel ✔ Oracle ✔ Red Hat  ✔ SAP ✔ Sun Microsystems ✔ ... Tchelinux - ULBRA Gravataí
  8. 8. Desenvolvendo Aplicações Livres em Java Brasil no JCP ✔ SouJava ✔ Bruno Souza ✔ Marlon Luz ✔ Osvaldo Pinali Doederlein ✔ Waldir Pires Jr. ✔ ... Tchelinux - ULBRA Gravataí
  9. 9. Desenvolvendo Aplicações Livres em Java O que é realmente o Java? ✔ A visão comum ­ linguagem ✔ O que realmente é? Tchelinux - ULBRA Gravataí
  10. 10. Desenvolvendo Aplicações Livres em Java Plataforma Java ✔ Três grande subdivisões: • JSE (Java SE): Java Standard Edition • JEE (Java EE): Java Enterprise Edition • JME (Java ME): Java Micro Edition Tchelinux - ULBRA Gravataí
  11. 11. Desenvolvendo Aplicações Livres em Java JVM – O segredo da portabilidade Tchelinux - ULBRA Gravataí
  12. 12. Desenvolvendo Aplicações Livres em Java JVM – O segredo da portabilidade ✔ Java Virtual Machine é, a grosso modo, um  interpretador de bytecodes ✔ Interpreta os bytecodes e transforma­os em uma  série de instruções nativas, utilizando recursos  do SO. ✔ É a base de toda plataforma Java ✔ Contém a API, o gerenciamento de memória, e  todos os recursos base utilizados pelas outras  edições Tchelinux - ULBRA Gravataí
  13. 13. Desenvolvendo Aplicações Livres em Java JVM – O segredo do desempenho J I T  Compilador just­in­time Tchelinux - ULBRA Gravataí
  14. 14. Desenvolvendo Aplicações Livres em Java JVM – O segredo do desempenho ✔ Paul Buchheit foi o  criador e líder de  desenvolvimento do  Gmail. Tchelinux - ULBRA Gravataí
  15. 15. Desenvolvendo Aplicações Livres em Java JVM – O segredo do desempenho Trecho da entrevista com  Orkut Buyukkokten, criador do Orkut “ Ontem, aqui na Abril, nós conversamos com o Orkut umas  duas horas. Ele contou que criou o site de relacionamentos  em .Net – gosta particularmente de C# pela rapidez de  programação – mas teve de passar para Java por ter a  escalabilidade necessária.  A passagem de uma tecnologia  para a outra durou um ano – daí as 80 horas por semana”  (InfoOnline) Tchelinux - ULBRA Gravataí
  16. 16. Desenvolvendo Aplicações Livres em Java A API Java ✔ Conjunto de funcionalidades nativas da linguagem ✔ Carga dinâmica de bibliotecas ✔ Abstração do sistema operacional ✔ O que não estiver implementado, é facilmente  integrado ✔ Não é engessado. O programador pode fazer  suas próprias implementações ✔ Garbage Collector Tchelinux - ULBRA Gravataí
  17. 17. Desenvolvendo Aplicações Livres em Java Garbage Collector Tchelinux - ULBRA Gravataí
  18. 18. Desenvolvendo Aplicações Livres em Java Detalhes sobre a plataforma ✔ JSE (Java SE): contém a JVM, API e recursos Tchelinux - ULBRA Gravataí
  19. 19. Desenvolvendo Aplicações Livres em Java Detalhes sobre a plataforma ✔ JME (Java ME): é, basicamente, um subset da  JSE, utilizada para ambientes embedded ✔ É a tecnologia mais utilizada no mundo para  dispositivos embedded ✔ Pode rodar numa infinidade de dispositivos:  telefones celulares, PDA's, TV's, impressoras,  etc... ✔ Possui um robusto sistema de segurança,  protocolos de comunicação integrados e todas  as características de portabilidade do Java Tchelinux - ULBRA Gravataí
  20. 20. Desenvolvendo Aplicações Livres em Java Detalhes sobre a plataforma ✔ JEE (Java EE): é a plataforma de  desenvolvimento de aplicações enterprise ✔ É construída sobre a J2SE ✔ Provê recursos para desenvolvimento de  aplicações de grande porte, multi­camadas,  portáveis e escaláveis ✔ Possibilita o desenvolvimento da aplicação,  livrando o programador de criar do zero  estruturas altamente complexas e que não estão  diretamente relacionadas à lógica da aplicação Tchelinux - ULBRA Gravataí
  21. 21. Desenvolvendo Aplicações Livres em Java Detalhes sobre a plataforma ✔ J2EE (Java EE):  • JDBC (Java Database Connectivity), utilizado no  acesso a bancos de dados; • Servlets, são utilizados para o desenvolvimento de  aplicações Web com conteúdo dinâmico  • JSP (Java Server Pages), um especialização do  servlet que permite que conteúdo dinâmico seja  facilmente desenvolvido. Tchelinux - ULBRA Gravataí
  22. 22. Desenvolvendo Aplicações Livres em Java Detalhes sobre a plataforma ✔ JEE (Java EE):  • JTA (Java Transaction API), é uma API que  padroniza o tratamento de transações dentro de uma  aplicação Java. • EJBs, utilizados no desenvolvimento de  componentes de software. • JCA (Java Connector Architecture), é uma API que  padroniza a ligação a aplicações legadas. Tchelinux - ULBRA Gravataí
  23. 23. Desenvolvendo Aplicações Livres em Java Detalhes sobre a plataforma ✔ Java Card:  ✔ Interoperabilidade: “Escreva uma vez e rode em qualquer Java Card; ✔ Seguro: Além do ambiente de execução seguro herdado de JSE, Java Card  implementa diversas funções criptográficas, aproveitando as funções dos cartões  inteligentes como tokens criptográficos; ✔ É Java! Aproveite seus conhecimentos JSE para desenvolver para cartões  inteligentes! ✔ Capacidade de múltiplos aplicativos no mesmo cartão inteligente ✔ Dinâmico: É possível instalar um novo applet que já foi distribuído. Se precisar  atualizar o serviço no cartão de seus clientes, na próxima vez que o cartão for  inserido no terminal ele será atualizado. ✔ Compatível com padrões da indústria: Suporta a norma ISO7816 e padrões de  telecomunicações. Boa parte dos SIM Cards no Brasil são JavaCards. Tchelinux - ULBRA Gravataí
  24. 24. Desenvolvendo Aplicações Livres em Java Hmmm... E onde está o Software Livre??? Tchelinux - ULBRA Gravataí
  25. 25. Desenvolvendo Aplicações Livres em Java Considerações Filosóficas ✔ O que é Software Livre??? “Softwares que são fornecidos aos seus usuários com a liberdade de executar, estudar, modificar e repassar (com ou sem alterações) sem que, para isso, os usuários tenham que pedir permissão ao autor do programa.” ✔ O que define um Software como Livre? O Licenciamento, a licença de uso adotada. Tchelinux - ULBRA Gravataí
  26. 26. Desenvolvendo Aplicações Livres em Java Considerações Filosóficas ✔ Licenças de Software Livre: • GPL (General Public License) • BSD (Berkeley Software Distribution) • Mozilla • Apache • etc ... Tchelinux - ULBRA Gravataí
  27. 27. Desenvolvendo Aplicações Livres em Java Considerações Filosóficas ✔ Quais as motivações de desenvolver Software  Livre? • Ambiente de teste amplo • Desenvolvimento Colaborativo • O nome do Desenvolvedor fica conhecido • Devolve a sociedade, e recebe dela, conhecimento • etc... Tchelinux - ULBRA Gravataí
  28. 28. Desenvolvendo Aplicações Livres em Java Java não é e nunca será  Software Livre! Java não é software,  é uma especificação! As implementações de  Java que podem ser  Software Livre! Tchelinux - ULBRA Gravataí
  29. 29. Desenvolvendo Aplicações Livres em Java Por quê Java? ✔ O processo sempre foi aberto ✔ A Sun liberou o código­fonte de toda a plataforma ✔ A estratégia dos grandes (IDEs, ferramentas) ✔ É um padrão de indústria ✔ As características favorecem a usabilidade ✔ A disputa entre .Net X Java ✔ Possui um grande portfólio de aplicações Open  Source ✔ Foi adotada pela indústria como alternativa às  soluções fechadas Tchelinux - ULBRA Gravataí
  30. 30. Desenvolvendo Aplicações Livres em Java Java e o Software Livre ✔ Freshmeat ranking de linguagens ✔ 1­ C  (8851 projetos)   ✔ 2­ Java  (5822 projetos)   ✔ 3­ C++  (4867 projects)   ✔ Portal java.net ✔ Projetos   ✔ Grupos de usuários ✔ Foruns  Tchelinux - ULBRA Gravataí
  31. 31. Desenvolvendo Aplicações Livres em Java Adoção do Java TIOBE Programming Community Index for November 2007 Tchelinux - ULBRA Gravataí
  32. 32. Desenvolvendo Aplicações Livres em Java Adoção do Java TIOBE Programming Community Index for November 2007 Tchelinux - ULBRA Gravataí
  33. 33. Desenvolvendo Aplicações Livres em Java Qual é a linguagem com mais linhas de código escrito no mundo? COBOL! Tchelinux - ULBRA Gravataí
  34. 34. Desenvolvendo Aplicações Livres em Java Cobol ✔ O Cobol é a linguagem mais usada no mundo todo, podendo  chegar a mais de 75% dos códigos existentes. 5 bilhões de li­ nhas de código de Cobol são adicionadas todos os anos aos  DataCenters do mundo inteiro. (fonte: itweb) ✔ Mais de 83% das transações mundiais são feitas em Cobol. Mais  de 60% das informações residentes na Web estão em  Mainframe. ✔ Mais de 95% das aplicações financeiras e seguridade são  processadas em Cobol. ✔ Raras universidade possui em sua grade cursos relacionados à  plataforma Mainframe.  Tchelinux - ULBRA Gravataí
  35. 35. Desenvolvendo Aplicações Livres em Java Qual das linguagens de  programação modernas  roda em Mainframes? JAVA! Tchelinux - ULBRA Gravataí
  36. 36. Desenvolvendo Aplicações Livres em Java Java no Mainframe Tchelinux - ULBRA Gravataí
  37. 37. Desenvolvendo Aplicações Livres em Java Quais ferramentas  existem para se trabalhar com Java? Tchelinux - ULBRA Gravataí
  38. 38. Desenvolvendo Aplicações Livres em Java O JDK ✔ java (runtime) ✔ javac (compilador) ✔ javadoc (documentador) ✔ jar ✔ jarsigner ✔ javaws ✔ jconsole ✔ ... Tchelinux - ULBRA Gravataí
  39. 39. Desenvolvendo Aplicações Livres em Java Ferramentas de Desenvolvimento ✔ JConsole Tchelinux - ULBRA Gravataí
  40. 40. Desenvolvendo Aplicações Livres em Java Ferramentas de Desenvolvimento ✔ Eclipse Tchelinux - ULBRA Gravataí
  41. 41. Desenvolvendo Aplicações Livres em Java Ferramentas de Desenvolvimento ✔ Eclipse • Open Source • Multiplataforma • Grande gama de plugins e recursos • Desenvolvimento para todas as edições • Extremamente intuitivo • Diversos “Sabores” Tchelinux - ULBRA Gravataí
  42. 42. Desenvolvendo Aplicações Livres em Java Ferramentas de Desenvolvimento ✔ Eclipse Foundation • Europa Fall – 3.3.2 • http://www.eclipse.org • Várias opções disponíveis • IDE for Java Developers (79M) • IDE for Java EE Developers (125M) • IDE for C/C++ Developers (59M) • For RCP/Plugin Developers (153M) • Classic (137M) Tchelinux - ULBRA Gravataí
  43. 43. Desenvolvendo Aplicações Livres em Java Ferramentas de Desenvolvimento ✔ EasyEclipse • Mantida por um time de desenvolvedores • http://www.easyeclipse.org/ • Opções oferecidas: • Exper Java  (1.2.2 – 121M / 1.3.1.1 ­ 133M) • Desktop Java (1.2.2 – 127M/ 1.3.1.1 ­ 139M) • Server Java (1.2.2 – 223M) • Mobile Java (1.2.2 – 131M/ 1.3.1.1 ­ 152M) • For Plugins and RCP Apps (1.2.2 – 209M/ 1.3.1.1 – 224M) • For C/C++; Ruby and Rails; PHP; Python; LAMP; etc ... Tchelinux - ULBRA Gravataí
  44. 44. Desenvolvendo Aplicações Livres em Java Ferramentas de Desenvolvimento ✔ NetBeans Tchelinux - ULBRA Gravataí
  45. 45. Desenvolvendo Aplicações Livres em Java Ferramentas de Desenvolvimento ✔ Netbeans • Open Source • Multiplataforma • Grande gama de plugins e recursos • Desenvolvimento para todas as edições • Extremamente intuitivo Tchelinux - ULBRA Gravataí
  46. 46. Desenvolvendo Aplicações Livres em Java Ferramentas de Desenvolvimento ✔ Netbeans 6.1 • Editor Improvements • Ruby/JRuby/Ruby on Rails Support • Easier Installation and Upgrading • Swing GUI Development • Profiling • Web and Java EE • Mobility • SOA • UML • C/C++ • NetBeans Platform API Improvements Tchelinux - ULBRA Gravataí
  47. 47. Desenvolvendo Aplicações Livres em Java Ferramentas de Desenvolvimento ✔ JEdit Tchelinux - ULBRA Gravataí
  48. 48. Desenvolvendo Aplicações Livres em Java Ferramentas de Desenvolvimento ✔ Kdevelop Tchelinux - ULBRA Gravataí
  49. 49. Desenvolvendo Aplicações Livres em Java Quem ganha com a existência  destas IDE's opensource? ✔ Quem quer aprender ✔ Quem quer trabalhar ✔ Quem quer ensinar ✔ Quem quer empreender ✔ Quem não trabalha com Java!? Tchelinux - ULBRA Gravataí
  50. 50. Desenvolvendo Aplicações Livres em Java Outras Ferramentas ✔ Jude (UML) ✔ Argo UML ✔ JFreeChart ✔ JGoodies ✔ JavaDB (Derby)  ✔ HSQLDB ✔ ... Tchelinux - ULBRA Gravataí
  51. 51. Desenvolvendo Aplicações Livres em Java Servidores de Aplicação JEE ✔ Diversos fornecedores de soluções ✔ Diversos servidores certificados ✔ O poder da escolha, você decide ✔ Facilita negociações de contratos Tchelinux - ULBRA Gravataí
  52. 52. Desenvolvendo Aplicações Livres em Java Servidores de Aplicação JEE ­ Open ✔ JBoss (RedHat) ✔ Geronimo (Apache) ✔ GlassFish ✔ TomCat ✔ JOnAS ✔ OpenEJB ✔ ... Tchelinux - ULBRA Gravataí
  53. 53. Desenvolvendo Aplicações Livres em Java Servidores de Aplicação JEE  33 fornecedores  ✔ Apache Software  ✔ IONA Technologies ✔ SAS Institute, Inc. Foundation ✔ IronFlare ✔ SeeBeyond ✔ ATG ✔ JBoss Group ✔ Sonic Software  ✔ BEA Systems ✔ Kingdee Middleware Corporation ✔ Borland Corp. ✔ Macromedia ✔ SpiritSoft ✔ Caucho Technology, Inc. ✔ NEC ✔ Sun Microsystems ✔ DataDirect Technologies ✔ Nokia ✔ Sybase, Inc. ✔ Fujitsu ✔ (Novell) SilverStream ✔ TIBCO Software Inc. ✔ Hewlett­Packard ✔ ObjectWeb ✔ Tmax Soft ✔ Hitachi ✔ Oracle Corporation ✔ TongTech Co., Ltd ✔ IBM ✔ Pramati ✔ Trifork Technologies ✔ SAP ✔ webMethods Tchelinux - ULBRA Gravataí
  54. 54. Desenvolvendo Aplicações Livres em Java O que é um framework?  “Um framework provê uma solução para uma  família de problemas semelhantes, sendo  flexível e extensível para permitir a  construção de várias aplicações com menor  esforço, especificando apenas as  particularidades de cada aplicação.” Tchelinux - ULBRA Gravataí
  55. 55. Desenvolvendo Aplicações Livres em Java Frameworks ✔ Struts ✔ Spring ✔ Hibernate ✔ JavaServer Faces  ✔ JDO  ✔ JUnit ✔ Ant  ✔ Jasper Report / iReport ✔ JMeter Tchelinux - ULBRA Gravataí
  56. 56. Desenvolvendo Aplicações Livres em Java Frameworks – R.I.A. ✔ GWT (Google Web Toolkit) ✔ Openlaszlo  ✔ Flex (Adobe) ✔ Thinlet ✔ ThinWire ✔ Java Web Start ✔ DWR ✔ ... Tchelinux - ULBRA Gravataí
  57. 57. Desenvolvendo Aplicações Livres em Java Framework – Google Web Toolkit  ✔ Simplifica o desenvolvimento de aplicações AJAX ✔ “Hosted Mode”, com depuração do código ✔ Javascript compatível com principais navegadores ✔ Suporte a Internacionalização ✔ Integração com principais IDE’s ✔ Licença  Apache 2.0 ✔ Mais de 8.000 membros no GWT Developer Forum ✔ Mais de 300 membros no GWT Contributors Forum ✔ Muitos patches externos incluídos no GWT 1.4 ✔ Mais de 1.000.000 de downloads Tchelinux - ULBRA Gravataí
  58. 58. Desenvolvendo Aplicações Livres em Java Framework – Google Web Toolkit  Tchelinux - ULBRA Gravataí
  59. 59. Desenvolvendo Aplicações Livres em Java Framework – Android ✔ Plataforma Open Source para Dispositivos Móveis ✔ Open Handset Alliance ✔ Google, Motorola, Intel, NVIDIA, etc ... ✔ Padronização para Aplicações ✔ API de acesso a hardware em C/C++ ✔ Desenvolvimento em JAVA ✔ DVM – Dalvik Virtual Machine (.dex) ✔ S.O. Linux, kernel 2.6 Tchelinux - ULBRA Gravataí
  60. 60. Desenvolvendo Aplicações Livres em Java Framework – Android ­ Recursos ✔ Browser integrado ✔ API gráfica 2D e 3D – OpenGL ✔ Base de dados SQLite ✔ Multimídia (Mpeg, H.264, MP3, JPG, etc ...) ✔ Telefonia GSM ✔ Bluetooth, EDGE, 3G e WiFi ✔ Câmera, GPS, acelerômetro, etc... ✔ Ambiente Integrado de Desenvolvimento (Eclipse) ✔ Emulador de Dispositívo Móvel ✔ Suporte a Fonte TrueType Tchelinux - ULBRA Gravataí
  61. 61. Desenvolvendo Aplicações Livres em Java Framework – Android ­ Arquitetura Tchelinux - ULBRA Gravataí
  62. 62. Desenvolvendo Aplicações Livres em Java Framework – Android IDE e Emulador Tchelinux - ULBRA Gravataí
  63. 63. Desenvolvendo Aplicações Livres em Java Framework – OpenLaszlo ✔ Simplifica o desenvolvimento de aplicações AJAX ✔ Interfaces "cinemáticas" e dinâmicas ✔ linguagem LZX declarativa, mesclando XML e  Javascript ✔ Gera flash ou DHTML dinâmicamente ✔ Roda em container web Java Tchelinux - ULBRA Gravataí
  64. 64. Desenvolvendo Aplicações Livres em Java Framework – OpenLaszlo  Tchelinux - ULBRA Gravataí
  65. 65. Desenvolvendo Aplicações Livres em Java Apache Software Foundation ✔ Projeto jakarta ✔ TomCat ✔ Harmony  ✔ Commons ✔ Velocity ✔ XMLBeans ✔ DB Project ✔ Harmony  ✔ .... Tchelinux - ULBRA Gravataí
  66. 66. Desenvolvendo Aplicações Livres em Java Outras linguagens na JVM ✔ Jython (python) ✔ Javascript (rhino) ✔ Groove ✔ JRuby (Ruby) Tchelinux - ULBRA Gravataí
  67. 67. Desenvolvendo Aplicações Livres em Java Demonstração ✔ Instalação da JDK ✔ Download da documentação ✔ Instalação do Netbeans ✔ Instalação dos pacotes adicionais Tchelinux - ULBRA Gravataí
  68. 68. Desenvolvendo Aplicações Livres em Java ??? Conclusão   ?? ? Tchelinux - ULBRA Gravataí
  69. 69. Desenvolvendo Aplicações Livres em Java Bibliografia ✔ java.sun.com ✔ www.portaljava.com ✔ www.javafree.com.br ✔ www.jcp.org/en/participation/members/ ✔ http://www­03.ibm.com/systems/z/zaap/ ✔ http://paulbuchheit.blogspot.com/2007/06/java­is­faster­than­c.html ✔ http://www.tiobe.com/tpci.htm ✔ http://info.abril.com.br/blog/sandra/20070410_listar.shtml ✔ http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htm ✔ http://pt.wikipedia.org/wiki/Java_Card Tchelinux - ULBRA Gravataí
  70. 70. Desenvolvendo Aplicações Livres em Java Bibliografia ✔ http://www.javaworld.com/javaworld/jw­01­2002/jw­0111­hotspotgc.html ✔ http://java.net Tchelinux - ULBRA Gravataí

×